void drawTitle() { int i; int r, g, b; int sx, sy; char *stgChr = "STAGE"; char *quitChr = "QUIT"; char *mdChr[] = {"NORMAL MODE", "PSY MODE", "IKA MODE", "GW MODE"}; int mdChrX[] = {270, 330, 330, 350}; char mdIni[] = {'N', 'P', 'I', 'G'}; drawTitleBoard(); for ( i=-MODE_NUM ; i<STAGE_NUM+1 ; i++ ) { if ( i < 0 ) { if ( 4+i == mode ) { r = 100; g = 100; b = 240; } else { r = 150; g = 150; b = 200; } } else if ( i < QUIT_STAGE_NUM && hiScore.cleard[mode][i] ) { r = 240; g = 180; b = 180; } else { r = 210; g = 210; b = 240; } sx = stageX[i+MODE_NUM]; sy = stageY[i+MODE_NUM]; if ( i == slcStg ) { int sz = STG_BOX_SIZE*3/2; if ( titleCnt < 16 ) sz = sz*titleCnt/16; drawBox(sx, sy, sz, sz, r, g, b); sz = sz*3/5; if ( i < 0 ) { int md = MODE_NUM+i; drawString(mdChr[md], mdChrX[md], 133, 12, 0, 150, 150, 200); drawLetter(mdIni[md]-'A'+10, sx, sy, sz, 0, 150, 150, 240); } else if ( i < QUIT_STAGE_NUM ) { makeStageStr(i); drawString(stageStr, sx-sz, sy, sz, 0, 210, 210, 240); drawString(stgChr, 330, 133, 12, 0, 210, 210, 240); drawString(stageStr, 445, 133, 12, 0, 210, 210, 240); drawNumCenter(hiScore.score[mode][i], 466, 168, 12, 210, 210, 240); } else { drawLetter('Q'-'A'+10, sx, sy, sz, 0, 210, 210, 240); drawString(quitChr, 410, 133, 12, 0, 210, 210, 240); } } else { drawBox(sx, sy, STG_BOX_SIZE/2, STG_BOX_SIZE/2, r*2/3, g*2/3, b*2/3); } } drawString(mdChr[mode], mdChrX[mode], 455, 12, 0, 150, 150, 200); }
//senquack - partial conversion to fixed point //void drawTitle() { // int i; // int r, g, b; // int sx, sy; // char *stgChr = "STAGE"; // char *quitChr = "QUIT"; // char *mdChr[] = {"NORMAL MODE", "PSY MODE", "IKA MODE", "GW MODE"}; // int mdChrX[] = {270, 330, 330, 350}; // char mdIni[] = {'N', 'P', 'I', 'G'}; // drawTitleBoard(); // // for ( i=-MODE_NUM ; i<STAGE_NUM+1 ; i++ ) { // if ( i < 0 ) { // if ( 4+i == mode ) { // r = 100; g = 100; b = 240; // } else { // r = 150; g = 150; b = 200; // } // } else if ( i < QUIT_STAGE_NUM && hiScore.cleard[mode][i] ) { // r = 240; g = 180; b = 180; // } else { // r = 210; g = 210; b = 240; // } // sx = stageX[i+MODE_NUM]; sy = stageY[i+MODE_NUM]; // if ( i == slcStg ) { // int sz = STG_BOX_SIZE*3/2; // if ( titleCnt < 16 ) sz = sz*titleCnt/16; // drawBox(sx, sy, sz, sz, r, g, b); // sz = sz*3/5; // if ( i < 0 ) { // int md = MODE_NUM+i; // drawString(mdChr[md], mdChrX[md], 133, 12, 0, 150, 150, 200); // drawLetter(mdIni[md]-'A'+10, sx, sy, sz, 0, 150, 150, 240); // } else if ( i < QUIT_STAGE_NUM ) { // makeStageStr(i); // drawString(stageStr, sx-sz, sy, sz, 0, 210, 210, 240); // drawString(stgChr, 330, 133, 12, 0, 210, 210, 240); // drawString(stageStr, 445, 133, 12, 0, 210, 210, 240); // drawNumCenter(hiScore.score[mode][i], 466, 168, 12, 210, 210, 240); // } else { // drawLetter('Q'-'A'+10, sx, sy, sz, 0, 210, 210, 240); // drawString(quitChr, 410, 133, 12, 0, 210, 210, 240); // } // } else { // drawBox(sx, sy, STG_BOX_SIZE/2, STG_BOX_SIZE/2, r*2/3, g*2/3, b*2/3); // } // } // drawString(mdChr[mode], mdChrX[mode], 455, 12, 0, 150, 150, 200); //} void drawTitle() { int i; int r, g, b; int sx, sy; char *stgChr = "STAGE"; char *quitChr = "QUIT"; char *mdChr[] = {"NORMAL MODE", "PSY MODE", "IKA MODE", "GW MODE"}; int mdChrX[] = {270, 330, 330, 350}; char mdIni[] = {'N', 'P', 'I', 'G'}; drawTitleBoard(); for ( i=-MODE_NUM ; i<STAGE_NUM+1 ; i++ ) { if ( i < 0 ) { if ( 4+i == mode ) { r = 100; g = 100; b = 240; } else { r = 150; g = 150; b = 200; } } else if ( i < QUIT_STAGE_NUM && hiScore.cleard[mode][i] ) { r = 240; g = 180; b = 180; } else { r = 210; g = 210; b = 240; } sx = stageX[i+MODE_NUM]; sy = stageY[i+MODE_NUM]; if ( i == slcStg ) { int sz = STG_BOX_SIZE*3/2; if ( titleCnt < 16 ) sz = sz*titleCnt/16; #ifdef FIXEDMATH drawBox(INT2FNUM(sx), INT2FNUM(sy), INT2FNUM(sz), INT2FNUM(sz), r, g, b); #else drawBox(sx, sy, sz, sz, r, g, b); #endif //FIXEDMATH sz = sz*3/5; if ( i < 0 ) { int md = MODE_NUM+i; drawString(mdChr[md], mdChrX[md], 133, 12, 0, 150, 150, 200); // letter at top N/P/G/I drawLetter(mdIni[md]-'A'+10, sx, sy, sz, 0, 150, 150, 240); } else if ( i < QUIT_STAGE_NUM ) { makeStageStr(i); // 2-char stage ID below (1a, 2a, etc) drawString(stageStr, sx-sz, sy, sz, 0, 210, 210, 240); drawString(stgChr, 330, 133, 12, 0, 210, 210, 240); drawString(stageStr, 445, 133, 12, 0, 210, 210, 240); drawNumCenter(hiScore.score[mode][i], 466, 168, 12, 210, 210, 240); } else { // "q" for quit drawLetter('Q'-'A'+10, sx, sy, sz, 0, 210, 210, 240); drawString(quitChr, 410, 133, 12, 0, 210, 210, 240); } } else { #ifdef FIXEDMATH drawBox(INT2FNUM(sx), INT2FNUM(sy), INT2FNUM(STG_BOX_SIZE)/2, INT2FNUM(STG_BOX_SIZE)/2, r*2/3, g*2/3, b*2/3); #else drawBox(sx, sy, STG_BOX_SIZE/2, STG_BOX_SIZE/2, r*2/3, g*2/3, b*2/3); #endif //FIXEDMATH } } drawString(mdChr[mode], mdChrX[mode], 455, 12, 0, 150, 150, 200); // senquack - visual indicator for added cheats (they disable saving of high-scores however) if (settings.extra_lives > 0 || settings.extra_bombs > 0) { char *cheat_str = "CHEAT"; drawString(cheat_str, 285, 230, 12, 0, 255, 100, 100); cheat_str = "MODE"; drawString(cheat_str, 295, 270, 12, 0, 255, 100, 100); } }