Help can now be disbled/enabled independantly from the game mode (easy/normal)
This commit is contained in:
parent
e153579ad1
commit
6036625699
1
defs.h
1
defs.h
|
@ -817,6 +817,7 @@ extern tiletype_t fakeblock;
|
||||||
extern int gtime;
|
extern int gtime;
|
||||||
extern int timer;
|
extern int timer;
|
||||||
extern int gamemode;
|
extern int gamemode;
|
||||||
|
extern int showhelp;
|
||||||
extern SDL_Color red;
|
extern SDL_Color red;
|
||||||
extern SDL_Color black;
|
extern SDL_Color black;
|
||||||
extern SDL_Color blue;
|
extern SDL_Color blue;
|
||||||
|
|
|
@ -10,6 +10,7 @@ int numlevels;
|
||||||
int maxlevid;
|
int maxlevid;
|
||||||
|
|
||||||
int gamemode; // easy or hard?
|
int gamemode; // easy or hard?
|
||||||
|
int showhelp; // show help text?
|
||||||
|
|
||||||
spriteinfo_t spriteinfo[MAXPTYPES];
|
spriteinfo_t spriteinfo[MAXPTYPES];
|
||||||
|
|
||||||
|
|
53
rc.c
53
rc.c
|
@ -329,6 +329,7 @@ int main (int argc, char **argv) {
|
||||||
|
|
||||||
|
|
||||||
gamemode = GM_NORM; // default
|
gamemode = GM_NORM; // default
|
||||||
|
showhelp = B_TRUE; // default
|
||||||
|
|
||||||
|
|
||||||
// try to get hiscores
|
// try to get hiscores
|
||||||
|
@ -7813,6 +7814,7 @@ void dotitlescreen(void) {
|
||||||
char svnver[MIDBUFLEN];
|
char svnver[MIDBUFLEN];
|
||||||
SDL_Surface *titlebg;
|
SDL_Surface *titlebg;
|
||||||
SDL_Surface *cointext, *text, *text2, *easy, *norm, *ver;
|
SDL_Surface *cointext, *text, *text2, *easy, *norm, *ver;
|
||||||
|
SDL_Surface *help, *helpon, *helpoff;
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
SDL_Rect area;
|
SDL_Rect area;
|
||||||
int timer = 0;
|
int timer = 0;
|
||||||
|
@ -7838,6 +7840,9 @@ void dotitlescreen(void) {
|
||||||
text2 = TTF_RenderText_Solid(font[TEXTSIZE_TITLE], "Select game mode:", red);
|
text2 = TTF_RenderText_Solid(font[TEXTSIZE_TITLE], "Select game mode:", red);
|
||||||
easy = TTF_RenderText_Solid(font[TEXTSIZE_TITLE], "Easy Mode", red2);
|
easy = TTF_RenderText_Solid(font[TEXTSIZE_TITLE], "Easy Mode", red2);
|
||||||
norm = TTF_RenderText_Solid(font[TEXTSIZE_TITLE], "Normal Mode", red2);
|
norm = TTF_RenderText_Solid(font[TEXTSIZE_TITLE], "Normal Mode", red2);
|
||||||
|
help = TTF_RenderText_Solid(font[TEXTSIZE_TITLE], "Hints:", green);
|
||||||
|
helpoff = TTF_RenderText_Solid(font[TEXTSIZE_TITLE], "Off", green2);
|
||||||
|
helpon = TTF_RenderText_Solid(font[TEXTSIZE_TITLE], "On", green2);
|
||||||
|
|
||||||
sprintf(svnver, "v0.%d",REV);
|
sprintf(svnver, "v0.%d",REV);
|
||||||
ver = TTF_RenderText_Solid(font[TEXTSIZE_VER], svnver, greenish);
|
ver = TTF_RenderText_Solid(font[TEXTSIZE_VER], svnver, greenish);
|
||||||
|
@ -7980,6 +7985,48 @@ void dotitlescreen(void) {
|
||||||
}
|
}
|
||||||
SDL_BlitSurface(norm, NULL, screen, &area);
|
SDL_BlitSurface(norm, NULL, screen, &area);
|
||||||
|
|
||||||
|
// help on/off
|
||||||
|
area.x = 320 - 100 +2;
|
||||||
|
area.y = 480 - 50 +2;
|
||||||
|
SDL_SetColors(help, &black, 1, 1);
|
||||||
|
SDL_BlitSurface(help, NULL, screen, &area);
|
||||||
|
|
||||||
|
area.x -= 2; area.y -= 2;
|
||||||
|
SDL_SetColors(help, &red, 1, 1);
|
||||||
|
SDL_BlitSurface(help, NULL, screen, &area);
|
||||||
|
|
||||||
|
// "on"
|
||||||
|
area.x += (help->w+10)+2;
|
||||||
|
area.y = 480 - 50 +2;
|
||||||
|
SDL_SetColors(helpon, &black, 1, 1);
|
||||||
|
SDL_BlitSurface(helpon, NULL, screen, &area);
|
||||||
|
|
||||||
|
area.x -= 2; area.y -= 2;
|
||||||
|
if ((showhelp == B_FALSE) || (texton)) { // on not blinking
|
||||||
|
// normal
|
||||||
|
SDL_SetColors(helpon, &red2, 1, 1);
|
||||||
|
} else {
|
||||||
|
// white
|
||||||
|
SDL_SetColors(helpon, &white, 1, 1);
|
||||||
|
}
|
||||||
|
SDL_BlitSurface(helpon, NULL, screen, &area);
|
||||||
|
|
||||||
|
// "off"
|
||||||
|
area.x += (helpon->w+10)+2;
|
||||||
|
area.y = 480 - 50 +2;
|
||||||
|
SDL_SetColors(helpoff, &black, 1, 1);
|
||||||
|
SDL_BlitSurface(helpoff, NULL, screen, &area);
|
||||||
|
|
||||||
|
area.x -= 2; area.y -= 2;
|
||||||
|
if ((showhelp == B_TRUE) || (texton)) { // off not blinking
|
||||||
|
// normal
|
||||||
|
SDL_SetColors(helpoff, &red2, 1, 1);
|
||||||
|
} else {
|
||||||
|
// white
|
||||||
|
SDL_SetColors(helpoff, &white, 1, 1);
|
||||||
|
}
|
||||||
|
SDL_BlitSurface(helpoff, NULL, screen, &area);
|
||||||
|
|
||||||
// level description
|
// level description
|
||||||
if (gamemode == GM_EASY) {
|
if (gamemode == GM_EASY) {
|
||||||
int x,y;
|
int x,y;
|
||||||
|
@ -7987,7 +8034,7 @@ void dotitlescreen(void) {
|
||||||
|
|
||||||
desc = TTF_RenderText_Solid(font[TEXTSIZE_TITLE2], "Permenant armour and extra time (-50% score penalty)", black);
|
desc = TTF_RenderText_Solid(font[TEXTSIZE_TITLE2], "Permenant armour and extra time (-50% score penalty)", black);
|
||||||
startx = 320 - (desc->w/2);
|
startx = 320 - (desc->w/2);
|
||||||
starty = 240 + (desc->h)*3;
|
starty = 240 + (desc->h)*2;
|
||||||
for (x = startx-1 ; x <= startx+1; x++) {
|
for (x = startx-1 ; x <= startx+1; x++) {
|
||||||
for (y = starty-1 ; y <= starty+1; y++) {
|
for (y = starty-1 ; y <= starty+1; y++) {
|
||||||
area.x = x; area.y = y;
|
area.x = x; area.y = y;
|
||||||
|
@ -8219,6 +8266,10 @@ void handletitleinput(int key) {
|
||||||
gamemode = GM_EASY;
|
gamemode = GM_EASY;
|
||||||
} else if (key == SDLK_DOWN) {
|
} else if (key == SDLK_DOWN) {
|
||||||
gamemode = GM_NORM;
|
gamemode = GM_NORM;
|
||||||
|
} else if (key == SDLK_LEFT) {
|
||||||
|
showhelp = B_TRUE;
|
||||||
|
} else if (key == SDLK_RIGHT) {
|
||||||
|
showhelp = B_FALSE;
|
||||||
} else if ((key == SDLK_z) || (key == SDLK_RETURN)) {
|
} else if ((key == SDLK_z) || (key == SDLK_RETURN)) {
|
||||||
playfx(FX_1UP);
|
playfx(FX_1UP);
|
||||||
titledone = B_TRUE;
|
titledone = B_TRUE;
|
||||||
|
|
3
shared.c
3
shared.c
|
@ -502,7 +502,8 @@ int loadlevel(int wnum, int lnum, int wantmonsters) {
|
||||||
int delay;
|
int delay;
|
||||||
|
|
||||||
if (level->initm[i].id == P_HELP) {
|
if (level->initm[i].id == P_HELP) {
|
||||||
if (gamemode != GM_EASY) continue;
|
// is help disabled?
|
||||||
|
if (showhelp == B_FALSE ) continue;
|
||||||
strncpy(name, level->initm[i].help, MIDBUFLEN);
|
strncpy(name, level->initm[i].help, MIDBUFLEN);
|
||||||
} else {
|
} else {
|
||||||
sprintf(name, "Monster-%d",i);
|
sprintf(name, "Monster-%d",i);
|
||||||
|
|
Loading…
Reference in New Issue