|
|
|
@ -144,14 +144,17 @@ public: |
|
|
|
|
DOME_DECAL=new olc::Decal(new olc::Sprite("assets/dome.png")); |
|
|
|
|
BASE_OBJECTS["DOME"]=DOME_DECAL; |
|
|
|
|
LoadMap("assets/maps/map1"); |
|
|
|
|
DisplayMessageBox(7); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void GetAnyKeyPress() override {
|
|
|
|
|
if (messageBoxVisible) { |
|
|
|
|
while (messageBoxCursor<messageBoxRefText.length()) { |
|
|
|
|
advanceMessageBox(); |
|
|
|
|
if (messageBoxCursor!=messageBoxRefText.length()) { |
|
|
|
|
while (messageBoxCursor<messageBoxRefText.length()) { |
|
|
|
|
advanceMessageBox(); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
messageBoxVisible=false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
switch (GAME_STATE) { |
|
|
|
@ -267,6 +270,18 @@ public: |
|
|
|
|
if (!CUTSCENE_FLAGS[0]) { |
|
|
|
|
CUTSCENE_FLAGS[0]=true; |
|
|
|
|
DisplayMessageBox(0); |
|
|
|
|
} else |
|
|
|
|
if (!CUTSCENE_FLAGS[1]) { |
|
|
|
|
CUTSCENE_FLAGS[1]=true; |
|
|
|
|
DisplayMessageBox(1); |
|
|
|
|
} else |
|
|
|
|
if (!CUTSCENE_FLAGS[2]) { |
|
|
|
|
CUTSCENE_FLAGS[2]=true; |
|
|
|
|
DisplayMessageBox(2); |
|
|
|
|
} else |
|
|
|
|
if (!CUTSCENE_FLAGS[3]) { |
|
|
|
|
CUTSCENE_FLAGS[3]=true; |
|
|
|
|
DisplayMessageBox(3); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}break; |
|
|
|
@ -393,12 +408,14 @@ public: |
|
|
|
|
GradientFillRectDecal({WIDTH/2,HEIGHT/2},{WIDTH/2,HEIGHT/2},{100, 10, 255,ALPHA_SCREEN2},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1},{100, 10, 255,ALPHA_SCREEN1}); |
|
|
|
|
}break; |
|
|
|
|
} |
|
|
|
|
DrawDialogBox({4,HEIGHT-60},{WIDTH/3,16},olc::Pixel(18, 0, 33,180)); |
|
|
|
|
DrawDialogBox({0,HEIGHT-48},{WIDTH,48},olc::Pixel(18, 0, 33,180)); |
|
|
|
|
DrawStringPropDecal({8,HEIGHT-40},messageBoxText); |
|
|
|
|
DrawStringPropDecal({8,HEIGHT-57},messageBoxSpeaker); |
|
|
|
|
if (messageBoxCursor==messageBoxRefText.length()) { |
|
|
|
|
DrawStringPropDecal({WIDTH-16-sin(frameCount*8/60.0)*3,HEIGHT-8+cos(frameCount*6/60.0)*0.6},"v",olc::Pixel(173, 74, 255,(0.5*sin(frameCount*8/60.0)+0.5)*128+128),{sin(frameCount*8/60.0),0.5}); |
|
|
|
|
if (messageBoxVisible) { |
|
|
|
|
DrawDialogBox({4,HEIGHT-60},{WIDTH/2,16},olc::Pixel(18, 0, 33,180)); |
|
|
|
|
DrawDialogBox({0,HEIGHT-48},{WIDTH,48},olc::Pixel(18, 0, 33,180)); |
|
|
|
|
DrawStringPropDecal({8,HEIGHT-40},messageBoxText); |
|
|
|
|
DrawStringPropDecal({8,HEIGHT-57},messageBoxSpeaker); |
|
|
|
|
if (messageBoxCursor==messageBoxRefText.length()) { |
|
|
|
|
DrawStringPropDecal({WIDTH-16-(float)sin(frameCount*8/60.0)*3,HEIGHT-8+(float)(cos(frameCount*6/60.0)*0.6)},"v",olc::Pixel(173, 74, 255,(0.5*sin(frameCount*8/60.0)+0.5)*128+128),{(float)sin(frameCount*8/60.0),0.5}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
FillRectDecal({0,0},{WIDTH,HEIGHT},olc::Pixel(0,0,0,transparency)); |
|
|
|
|
} |
|
|
|
@ -417,10 +434,10 @@ public: |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void DrawDialogBox(const olc::vi2d &pos, const olc::vi2d &size, olc::Pixel p = olc::WHITE, olc::Pixel p2 = olc::DARK_GREY, olc::Pixel p3 = olc::VERY_DARK_GREY) { |
|
|
|
|
FillRectDecal({pos.x,pos.y},size,p2); |
|
|
|
|
FillRectDecal({pos.x+1,pos.y+1},{size.x-2,size.y-2},p); |
|
|
|
|
FillRectDecal({pos.x+2,pos.y+2},{size.x-4,size.y-4},p3); |
|
|
|
|
FillRectDecal({pos.x+3,pos.y+3},{size.x-5,size.y-5},p); |
|
|
|
|
FillRectDecal({(float)pos.x,(float)pos.y},size,p2); |
|
|
|
|
FillRectDecal({(float)pos.x+1,(float)pos.y+1},{(float)size.x-2,(float)size.y-2},p); |
|
|
|
|
FillRectDecal({(float)pos.x+2,(float)pos.y+2},{(float)size.x-4,(float)size.y-4},p3); |
|
|
|
|
FillRectDecal({(float)pos.x+3,(float)pos.y+3},{(float)size.x-5,(float)size.y-5},p); |
|
|
|
|
Draw({pos.x,pos.y},olc::BLACK); |
|
|
|
|
Draw({pos.x+size.x,pos.y+size.y},olc::BLACK); |
|
|
|
|
Draw({pos.x+size.x,pos.y},olc::BLACK); |
|
|
|
|