Ejemplo n.º 1
0
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);
    }
}
Ejemplo n.º 2
0
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);
      }
   }

}
Ejemplo n.º 5
0
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;
      }
    }
  }
}