diff options
author | Clyne Sullivan <tullivan99@gmail.com> | 2015-12-09 08:14:12 -0500 |
---|---|---|
committer | Clyne Sullivan <tullivan99@gmail.com> | 2015-12-09 08:14:12 -0500 |
commit | 380137ca06c2c74806c1838cb10ef3a17dda8406 (patch) | |
tree | de0058e97e1259efc07b153c0b46bebb8772fa5a /src/ui.cpp | |
parent | d2aa39603eb8a26142a0230188d2572fb0398af5 (diff) |
fade improvements
Diffstat (limited to 'src/ui.cpp')
-rw-r--r-- | src/ui.cpp | 88 |
1 files changed, 54 insertions, 34 deletions
@@ -61,6 +61,8 @@ extern void mainLoop(void); */ bool fadeEnable = false; +bool fadeWhite = false; +bool fadeFast = false; unsigned int fadeIntensity = 0; bool inBattle = false; @@ -452,6 +454,11 @@ namespace ui { mainLoop(); }while(ui::dialogBoxExists); } + void waitForCover(void){ + do{ + mainLoop(); + }while(fadeIntensity != 255); + } void importantText(const char *text,...){ va_list textArgs; @@ -525,7 +532,7 @@ namespace ui { Mix_PlayChannel(1,dialogClick,0); } - }else if(!dialogImportant){ + }else if(!dialogImportant && !fadeIntensity){ vec2 hub = { (SCREEN_WIDTH/2+offset.x)-fontSize*10, @@ -560,11 +567,34 @@ namespace ui { } } } + void dialogAdvance(void){ + unsigned char i; + if(!typeOutDone){ + typeOutDone = true; + return; + } + + for(i=0;i<dialogOptCount;i++){ + if(mouse.x > dialogOptLoc[i][0] && + mouse.x < dialogOptLoc[i][2] && + mouse.y > dialogOptLoc[i][1] && + mouse.y < dialogOptLoc[i][1] + 16 ){ // fontSize + dialogOptChosen = i + 1; + goto DONE; + } + } +DONE: + if(dialogImportant){ + dialogImportant = false; + setFontSize(16); + toggleBlack(); + } + dialogBoxExists = false; + } void handleEvents(void){ static bool left=true,right=false; static vec2 premouse={0,0}; static int heyOhLetsGo = 0; - unsigned char i; World *tmp; SDL_Event e; @@ -582,28 +612,7 @@ namespace ui { break; case SDL_MOUSEBUTTONDOWN: if((e.button.button&SDL_BUTTON_RIGHT)&&dialogBoxExists){ - - if(!typeOutDone){ - typeOutDone = true; - break; - } - - for(i=0;i<dialogOptCount;i++){ - if(mouse.x > dialogOptLoc[i][0] && - mouse.x < dialogOptLoc[i][2] && - mouse.y > dialogOptLoc[i][1] && - mouse.y < dialogOptLoc[i][1] + 16 ){ // fontSize - dialogOptChosen = i + 1; - goto DONE; - } - } -DONE: - if(dialogImportant){ - dialogImportant = false; - setFontSize(16); - toggleBlack(); - } - dialogBoxExists = false; + dialogAdvance(); } break; /* @@ -612,12 +621,18 @@ DONE: case SDL_KEYDOWN: if(SDL_KEY == SDLK_ESCAPE){ gameRunning = false; + return; + }else if(SDL_KEY == SDLK_SPACE){ + if(dialogBoxExists) + dialogAdvance(); + else if(player->ground){ + player->vel.y=.4; + player->loc.y+=HLINE*2; + player->ground=false; + } break; }else if(!dialogBoxExists){//&&!fadeEnable){ switch(SDL_KEY){ - case SDLK_ESCAPE: - gameRunning=false; - break; case SDLK_a: player->vel.x=-.15; player->left = true; @@ -645,13 +660,6 @@ DONE: currentWorld=((Arena *)currentWorld)->exitArena(player); else currentWorld=currentWorld->goInsideStructure(player); break; - case SDLK_SPACE: - if(player->ground){ - player->vel.y=.4; - player->loc.y+=HLINE*2; - player->ground=false; - } - break; case SDLK_i: tmp=currentWorld; currentWorld=currentWorld->goWorldBack(player); // Go back a layer if possible @@ -757,5 +765,17 @@ DONE: void toggleBlack(void){ fadeEnable ^= true; + fadeWhite = false; + fadeFast = false; + } + void toggleBlackFast(void){ + fadeEnable ^= true; + fadeWhite = false; + fadeFast = true; + } + void toggleWhite(void){ + fadeEnable ^= true; + fadeWhite = true; + fadeFast = false; } } |