void drawBossScoreAtr() { if ( bsCnt < 32 ) return; drawNumCenter(bossScore, 450, 240, 16, 200, 200, 220); if ( bsCnt < 64 ) return; drawBox(320, 272, 150, 4, 200, 200, 220); if ( bsCnt < 96 ) return; drawNumCenter(1, 230, 306, 16, 200, 200, 220); drawLetter(39, 260, 306, 16, 0, 200, 200 ,220); drawNumCenter(shipUsed, 340, 306, 16, 200, 200, 220); if ( mode == NORMAL_MODE ) { drawLetter(39, 380, 306, 16, 0, 200, 200 ,220); drawNumCenter(bombUsed, 450, 306, 16, 200, 200, 220); } if ( bsCnt < 128 ) return; drawNumCenter(bsAdd, 450, 380, 19, 200, 220, 200); if ( status == STAGE_CLEAR ) { char *scChr = "STAGE CLEAR"; drawString(scChr, 190, 440, 15, 0, 180, 220, 180); } }
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); } }
void drawRPanel_rotated() { int y; int ml; // Show FPS if (settings.show_fps) { drawString(fpsStr, 167, 68, 6, 0, 200, 200, 200); drawNumHoriz(fps(), 200, 68, 6, 200, 200, 200); } if ( left >= 0 ) { //orig; had to be adjusted below to support screen-rotation: // drawString(lStr, 40+480, 280, 18, 1, 200, 200, 222); // drawLetter(left, 40+480, 420, 18, 1, 230, 180, 150); drawString(lStr, 168, 33, 6, 0, 200, 200, 222); drawLetter(left, 213, 33, 6, 0, 230, 180, 150); switch ( mode ) { case NORMAL_MODE: //orig; had to be adjusted below to support screen-rotation: // drawString(bStr, 90+480, 280, 18, 1, 200, 200, 222); // drawLetter(bomb, 90+480, 420, 18, 1, 230, 180, 150); drawString(bStr, 228, 33, 6, 0, 200, 200, 222); drawLetter(bomb, 273, 33, 6, 0, 230, 180, 150); break; case PSY_MODE: ml = ship.grzCnt/40; //orig; had to be adjusted below to support screen-rotation: // drawBox(550, 460, 50, 8, 120, 120, 120); // drawBox(500+ml, 460, ml, 8, 210, 210, 240); #ifdef FIXEDMATH drawBox(INT2FNUM(425), INT2FNUM(20), INT2FNUM(50), INT2FNUM(8), 120, 120, 120); drawBox(INT2FNUM(375+ml), INT2FNUM(20), INT2FNUM(ml), INT2FNUM(8), 210, 210, 240); #else drawBox(425, 20, 50, 8, 120, 120, 120); drawBox(375+ml, 20, ml, 8, 210, 210, 240); #endif //FIXEDMATH break; case GW_MODE: ml = (ship.rfMtr-ship.rfMtrDec)/40; //orig; had to be adjusted below to support screen-rotation: // drawBox(550, 460, 50, 8, 120, 120, 120); // drawBox(500+ml, 460, ml, 8, 210, 240, 210); #ifdef FIXEDMATH drawBox(INT2FNUM(425), INT2FNUM(20), INT2FNUM(50), INT2FNUM(8), 120, 120, 120); drawBox(INT2FNUM(375+ml), INT2FNUM(20), INT2FNUM(ml), INT2FNUM(8), 210, 240, 210); #else drawBox(425, 20, 50, 8, 120, 120, 120); drawBox(375+ml, 20, ml, 8, 210, 240, 210); #endif //FIXEDMATH if ( ml >= 50 ) { // drawString(okStr, 540, 460, 10, 0, 230, 240, 230); //orig; had to be adjusted below to support screen-rotation: drawString(okStr, 415, 20, 10, 0, 230, 240, 230); } break; } } //these are disabled under rotated mode: // y = 24; // drawString(stageStr, 124+480, y, 24, 1, 200, 200, 222); // y += 24*1.7f*2; // drawLetter(38, 124+480, y, 24, 1, 200, 200, 222); // y += 24*1.7f; // drawNumRight(scene+1, 124+480, y, 24, 200, 200, 222); if (status != TITLE) { if (mode == NORMAL_MODE) { drawString(stageStr, 288, 33, 6, 0, 200, 200, 222); drawLetter(38, 305, 33, 6, 0, 200, 200, 222); drawNumCenter(scene+1, 312, 33, 6, 200, 200, 222); } else { // Draw this farther to left since we're not displaying bomb amount in these modes drawString(stageStr, 228, 33, 6, 0, 200, 200, 222); drawLetter(38, 245, 33, 6, 0, 200, 200, 222); drawNumCenter(scene+1, 252, 33, 6, 200, 200, 222); } } }
void drawTitleMenu() { int i; char *stgChr = "STAGE"; char *endlessChr = "ENDLESS"; char *hardChr = "HARD"; char *extChr = "EXTREME"; char *insChr = "INSANE"; char *quitChr = "QUIT"; for ( i=0 ; i<STG_BOX_NUM ; i++ ) { if ( i == slcStg ) { int sz = STG_BOX_SIZE+6+sctbl[(titleCnt*16)&(DIV-1)]/24; drawBox(stageX[i], stageY[i], sz, sz, 16*2-14, 16*2-3, buf); if ( i < STAGE_NUM ) { drawStringBuf(stgChr, 180, 80, 12, 2, 16*1-14, 16*1-2, buf, 0); drawNumCenter(i+1, 308, 80, 12, 16*1-14, 16*1-2); } else { switch ( i ) { case 10: drawStringBuf(endlessChr, 188, 80, 12, 2, 16*1-14, 16*1-2, buf, 0); break; case 11: drawStringBuf(endlessChr, 93, 80, 12, 2, 16*1-14, 16*1-2, buf, 0); drawStringBuf(hardChr, 248, 80, 12, 2, 16*1-14, 16*1-2, buf, 0); break; case 12: drawStringBuf(endlessChr, 36, 80, 12, 2, 16*1-14, 16*1-2, buf, 0); drawStringBuf(extChr, 190, 80, 12, 2, 16*1-14, 16*1-2, buf, 0); break; case 13: drawStringBuf(endlessChr, 56, 80, 12, 2, 16*1-14, 16*1-2, buf, 0); drawStringBuf(insChr, 210, 80, 12, 2, 16*1-14, 16*1-2, buf, 0); break; case 14: drawStringBuf(quitChr, 230, 80, 12, 2, 16*1-14, 16*1-2, buf, 0); break; } } if ( i < STAGE_NUM+ENDLESS_STAGE_NUM ) { drawNumCenter(hiScore.stageScore[i], 308, 112, 12, 16*1-14, 16*1-2); } } drawBox(stageX[i], stageY[i], STG_BOX_SIZE, STG_BOX_SIZE, 16*1-14, 16*1-3, buf); if ( i < 9 ) { drawNumCenter(i+1, stageX[i], stageY[i], 12, 16*1-16, 16*1-1); } else { switch ( i ) { case 9: drawNumCenter(10, stageX[i]+8, stageY[i], 12, 16*1-16, 16*1-1); break; case 10: drawLetterBuf('E'-'A'+10, stageX[i], stageY[i], 12, 2, 16*1-16, 16*1-1, buf, 0); break; case 11: drawLetterBuf('E'-'A'+10, stageX[i]-8, stageY[i], 12, 2, 16*1-16, 16*1-1, buf, 0); drawLetterBuf('H'-'A'+10, stageX[i]+8, stageY[i], 12, 2, 16*1-16, 16*1-1, buf, 0); break; case 12: drawLetterBuf('E'-'A'+10, stageX[i]-8, stageY[i], 12, 2, 16*1-16, 16*1-1, buf, 0); drawLetterBuf('E'-'A'+10, stageX[i]+8, stageY[i], 12, 2, 16*1-16, 16*1-1, buf, 0); break; case 13: drawLetterBuf('E'-'A'+10, stageX[i]-8, stageY[i], 12, 2, 16*1-16, 16*1-1, buf, 0); drawLetterBuf('I'-'A'+10, stageX[i]+8, stageY[i], 12, 2, 16*1-16, 16*1-1, buf, 0); break; case 14: drawLetterBuf('Q'-'A'+10, stageX[i], stageY[i], 12, 2, 16*1-16, 16*1-1, buf, 0); break; } } } }