aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui.cpp
diff options
context:
space:
mode:
authorClyne Sullivan <tullivan99@gmail.com>2015-12-09 08:14:12 -0500
committerClyne Sullivan <tullivan99@gmail.com>2015-12-09 08:14:12 -0500
commit380137ca06c2c74806c1838cb10ef3a17dda8406 (patch)
treede0058e97e1259efc07b153c0b46bebb8772fa5a /src/ui.cpp
parentd2aa39603eb8a26142a0230188d2572fb0398af5 (diff)
fade improvements
Diffstat (limited to 'src/ui.cpp')
-rw-r--r--src/ui.cpp88
1 files changed, 54 insertions, 34 deletions
diff --git a/src/ui.cpp b/src/ui.cpp
index f843e7d..d72bf2c 100644
--- a/src/ui.cpp
+++ b/src/ui.cpp
@@ -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;
}
}