/*
Copyright (C) 2003 Parallel Realities
Copyright (C) 2011, 2012, 2013 Guus Sliepen
-Copyright (C) 2012, 2015 Julian Marchant
+Copyright (C) 2012, 2015, 2016 onpon4 <onpon4@riseup.net>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
#include "Starfighter.h"
-// God, I hate this file! :((
-
+// XXX: Magic number
Planet systemPlanet[10];
mission currentMission;
static mission missions[MISN_MAX];
-void initPlanetMissions(signed char system)
+void initPlanetMissions(int system)
{
+ // XXX: Magic number
for (int i = 0 ; i < 10 ; i++)
{
systemPlanet[i].missionNumber = -1; // no mission for this planet
switch(system)
{
// Spirit
- case 0:
- systemPlanet[0].missionNumber = MISN_HAIL;
- systemPlanet[0].missionCompleted = 0;
+ case SYSTEM_SPIRIT:
+ systemPlanet[PLANET_HAIL].missionNumber = MISN_HAIL;
+ systemPlanet[PLANET_HAIL].missionCompleted = 0;
- systemPlanet[1].missionNumber = MISN_CERADSE;
- systemPlanet[1].missionCompleted = 0;
+ systemPlanet[PLANET_CERADSE].missionNumber = MISN_CERADSE;
+ systemPlanet[PLANET_CERADSE].missionCompleted = 0;
- systemPlanet[2].missionNumber = MISN_HINSTAG;
- systemPlanet[2].missionCompleted = 0;
+ systemPlanet[PLANET_HINSTAG].missionNumber = MISN_HINSTAG;
+ systemPlanet[PLANET_HINSTAG].missionCompleted = 0;
- systemPlanet[3].missionNumber = MISN_JOLDAR;
- systemPlanet[3].missionCompleted = 0;
+ systemPlanet[PLANET_JOLDAR].missionNumber = MISN_JOLDAR;
+ systemPlanet[PLANET_JOLDAR].missionCompleted = 0;
- systemPlanet[4].missionNumber = MISN_MOEBO;
- systemPlanet[4].missionCompleted = -1;
+ systemPlanet[PLANET_MOEBO].missionNumber = MISN_MOEBO;
+ systemPlanet[PLANET_MOEBO].missionCompleted = -1;
break;
// Eyananth
- case 1:
- systemPlanet[0].missionNumber = MISN_NEROD;
- systemPlanet[0].missionCompleted = 0;
+ case SYSTEM_EYANANTH:
+ systemPlanet[PLANET_NEROD].missionNumber = MISN_NEROD;
+ systemPlanet[PLANET_NEROD].missionCompleted = 0;
- systemPlanet[1].missionNumber = MISN_ALLEZ;
- systemPlanet[1].missionCompleted = 0;
+ systemPlanet[PLANET_ALLEZ].missionNumber = MISN_ALLEZ;
+ systemPlanet[PLANET_ALLEZ].missionCompleted = 0;
- systemPlanet[2].missionNumber = MISN_URUSOR;
- systemPlanet[2].missionCompleted = -1;
+ systemPlanet[PLANET_URUSOR].missionNumber = MISN_URUSOR;
+ systemPlanet[PLANET_URUSOR].missionCompleted = -1;
- systemPlanet[3].missionNumber = MISN_DORIM;
- systemPlanet[3].missionCompleted = -1;
+ systemPlanet[PLANET_DORIM].missionNumber = MISN_DORIM;
+ systemPlanet[PLANET_DORIM].missionCompleted = -1;
- systemPlanet[4].missionNumber = MISN_ELAMALE;
- systemPlanet[4].missionCompleted = -2;
+ systemPlanet[PLANET_ELAMALE].missionNumber = MISN_ELAMALE;
+ systemPlanet[PLANET_ELAMALE].missionCompleted = -2;
// This one is for the slaves
- systemPlanet[9].missionNumber = MISN_RESCUESLAVES;
- systemPlanet[9].missionCompleted = 0;
+ systemPlanet[PLANET_RESCUESLAVES].missionNumber = MISN_RESCUESLAVES;
+ systemPlanet[PLANET_RESCUESLAVES].missionCompleted = 0;
break;
// Mordor
- case 2:
- systemPlanet[0].missionNumber = MISN_ODEON;
- systemPlanet[0].missionCompleted = 0;
+ case SYSTEM_MORDOR:
+ systemPlanet[PLANET_ODEON].missionNumber = MISN_ODEON;
+ systemPlanet[PLANET_ODEON].missionCompleted = 0;
- systemPlanet[1].missionNumber = MISN_FELLON;
- systemPlanet[1].missionCompleted = 0;
+ systemPlanet[PLANET_FELLON].missionNumber = MISN_FELLON;
+ systemPlanet[PLANET_FELLON].missionCompleted = 0;
- systemPlanet[2].missionNumber = MISN_SIVEDI;
- systemPlanet[2].missionCompleted = -1;
+ systemPlanet[PLANET_SIVEDI].missionNumber = MISN_SIVEDI;
+ systemPlanet[PLANET_SIVEDI].missionCompleted = -1;
- systemPlanet[3].missionNumber = MISN_ALMARTHA;
- systemPlanet[3].missionCompleted = -1;
+ systemPlanet[PLANET_ALMARTHA].missionNumber = MISN_ALMARTHA;
+ systemPlanet[PLANET_ALMARTHA].missionCompleted = -1;
- systemPlanet[4].missionNumber = MISN_POSWIC;
- systemPlanet[4].missionCompleted = -2;
+ systemPlanet[PLANET_POSWIC].missionNumber = MISN_POSWIC;
+ systemPlanet[PLANET_POSWIC].missionCompleted = -2;
- systemPlanet[5].missionNumber = MISN_ELLESH;
- systemPlanet[5].missionCompleted = -3;
+ systemPlanet[PLANET_ELLESH].missionNumber = MISN_ELLESH;
+ systemPlanet[PLANET_ELLESH].missionCompleted = -3;
// This one is for the experimental fighter
- systemPlanet[9].missionNumber = MISN_CLOAKFIGHTER;
- systemPlanet[9].missionCompleted = 0;
+ systemPlanet[PLANET_CLOAKFIGHTER].missionNumber = MISN_CLOAKFIGHTER;
+ systemPlanet[PLANET_CLOAKFIGHTER].missionCompleted = 0;
break;
// Sol
- case 3:
- systemPlanet[8].missionNumber = MISN_PLUTO;
- systemPlanet[8].missionCompleted = 0;
+ case SYSTEM_SOL:
+ systemPlanet[PLANET_PLUTO].missionNumber = MISN_PLUTO;
+ systemPlanet[PLANET_PLUTO].missionCompleted = 0;
- systemPlanet[7].missionNumber = MISN_NEPTUNE;
- systemPlanet[7].missionCompleted = 0;
+ systemPlanet[PLANET_NEPTUNE].missionNumber = MISN_NEPTUNE;
+ systemPlanet[PLANET_NEPTUNE].missionCompleted = 0;
- systemPlanet[6].missionNumber = MISN_URANUS;
- systemPlanet[6].missionCompleted = 0;
+ systemPlanet[PLANET_URANUS].missionNumber = MISN_URANUS;
+ systemPlanet[PLANET_URANUS].missionCompleted = 0;
- systemPlanet[5].missionNumber = MISN_SATURN;
- systemPlanet[5].missionCompleted = -1;
+ systemPlanet[PLANET_SATURN].missionNumber = MISN_SATURN;
+ systemPlanet[PLANET_SATURN].missionCompleted = -1;
- systemPlanet[4].missionNumber = MISN_JUPITER;
- systemPlanet[4].missionCompleted = -2;
+ systemPlanet[PLANET_JUPITER].missionNumber = MISN_JUPITER;
+ systemPlanet[PLANET_JUPITER].missionCompleted = -2;
- systemPlanet[3].missionNumber = MISN_MARS;
- systemPlanet[3].missionCompleted = -3;
+ systemPlanet[PLANET_MARS].missionNumber = MISN_MARS;
+ systemPlanet[PLANET_MARS].missionCompleted = -3;
- systemPlanet[2].missionNumber = MISN_EARTH;
- systemPlanet[2].missionCompleted = -4;
+ systemPlanet[PLANET_EARTH].missionNumber = MISN_EARTH;
+ systemPlanet[PLANET_EARTH].missionCompleted = -4;
- systemPlanet[1].missionNumber = MISN_VENUS;
- systemPlanet[1].missionCompleted = -5;
+ systemPlanet[PLANET_VENUS].missionNumber = MISN_VENUS;
+ systemPlanet[PLANET_VENUS].missionCompleted = -5;
break;
}
void checkForBossMission()
{
+ // XXX: Magic number
for (int i = 0 ; i < 10 ; i++)
{
if ((systemPlanet[i].missionCompleted == 0) && (systemPlanet[i].missionNumber != -1))
for (int i = 0 ; i < 3 ; i++)
{
strcpy(missions[m].primaryObjective[i], "");
- missions[m].primaryType[i] = NONE;
+ missions[m].primaryType[i] = M_NONE;
missions[m].target1[i] = -1;
missions[m].targetValue1[i] = -1;
missions[m].timeLimit1[i] = -2;
for (int i = 0 ; i < 3 ; i++)
{
strcpy(missions[m].secondaryObjective[i], "");
- missions[m].secondaryType[i] = NONE;
+ missions[m].secondaryType[i] = M_NONE;
missions[m].target2[i] = -1;
missions[m].targetValue2[i] = -1;
missions[m].timeLimit2[i] = -2;
if (currentMission.timeLimit2[i] > engine.minutes)
engine.minutes = currentMission.timeLimit2[i];
- if (currentMission.completed1[i] == 0)
+ if (currentMission.completed1[i] == OB_INCOMPLETE)
currentMission.remainingObjectives1++;
- if (currentMission.completed2[i] == 0)
+ if (currentMission.completed2[i] == OB_INCOMPLETE)
currentMission.remainingObjectives1++;
}
for (int i = 0 ; i < 3 ; i++)
{
if ((currentMission.timeLimit1[i] == -1) && (currentMission.completed1[i] == OB_INCOMPLETE))
- currentMission.completed1[i] = -2;
+ currentMission.completed1[i] = OB_JUST_FAILED;
}
for (int i = 0 ; i < 3 ; i++)
{
if ((currentMission.timeLimit2[i] == -1) && (currentMission.completed2[i] == OB_INCOMPLETE))
- currentMission.completed2[i] = -2;
+ currentMission.completed2[i] = OB_JUST_FAILED;
}
// Find out if there are any uncompleted missions that require the timer
char message[25];
if ((*targetValue <= 0) && (type != M_PROTECT_TARGET) &&
- (type != M_PROTECT_PICKUP))
+ (type != M_PROTECT_PICKUP))
{
- *completed = 2;
+ *completed = OB_JUST_COMPLETED;
checkTimer();
if ((game.area == MISN_URUSOR) && (type == M_DISABLE_TARGET))
- setRadioMessage(FACE_SID, "Êäµë´Ï¤òÁ´¤Æ¹Ò¹ÔÉÔǽ¤Ë¤·¤¿!", 1);
+ setRadioMessage(FS_SID, "Êäµë´Ï¤ò¹Ò¹ÔÉÔǽ¤Ë¤·¤¿!", 1);
}
else
{
}
break;
case M_PROTECT_PICKUP:
- *completed = -2;
+ *completed = OB_JUST_FAILED;
switch(id)
{
case P_CARGO:
sprintf(message, "²ßʪ¤¬Ç˲õ¤µ¤ì¤¿!");
if (game.area == MISN_CERADSE) // Get lectured by Sid
- setRadioMessage(FACE_SID, "¥¯¥ê¥¹¡¢½ÅÍפʲßʪ¤À¤¾!! 1¤Ä¤â¼º¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¤È¸À¤Ã¤¿¤Ï¤º¤À!!", 1);
+ setRadioMessage(FS_SID, "¥¯¥ê¥¹¡¢½ÅÍפʲßʪ¤À¤¾!! 1¤Ä¤â¼º¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¤È¸À¤Ã¤¿¤Ï¤º¤À!!", 1);
break;
case P_ESCAPEPOD:
sprintf(message, "æ½Ð¥Ý¥Ã¥É¤¬¼º¤ï¤ì¤¿!");
if (game.area == MISN_ODEON) // Get lectured by Phoebe
- setRadioMessage(FACE_PHOEBE, "¤¢¤¢¡Ä¥¦¡¼¥·¥å¥é¡Ä", 1);
+ setRadioMessage(FS_PHOEBE, "¤¢¤¢¡Ä¥¦¡¼¥·¥å¥é¡Ä", 1);
break;
}
break;
case M_PROTECT_TARGET:
if (*targetValue <= 0)
{
- *completed = -2;
+ *completed = OB_JUST_FAILED;
switch (game.area)
{
case MISN_NEROD:
- setRadioMessage(FACE_SID, "ÃÜÀ¸¡¢¥¯¥ê¥¹! Èà½÷¤ò¼º¤Ã¤Æ¤·¤Þ¤Ã¤¿¤¾!", 1);
+ setRadioMessage(FS_SID, "ÃÜÀ¸¡¢¥¯¥ê¥¹! Èà½÷¤ò¼º¤Ã¤Æ¤·¤Þ¤Ã¤¿¤¾!", 1);
break;
case MISN_ALLEZ:
- setRadioMessage(FACE_CREW, "¤¦¤ï¤¢¤¢!! Á¥ÂÎÇË¡Ä»¡Ä¡Ä", 1);
+ setRadioMessage(FS_CREW, "¤¦¤ï¤¢¤¢!! Á¥ÂÎÇË¡Ä»¡Ä¡Ä", 1);
break;
case MISN_URUSOR:
- setRadioMessage(FACE_SID, "¥¯¥ê¥¹¡¢¹Ò¹ÔÉÔǽ¤Ë¤¹¤ë¤ó¤À¡¢Ç˲õ¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤!!", 1);
+ setRadioMessage(FS_SID, "¥¯¥ê¥¹¡¢¹Ò¹ÔÉÔǽ¤Ë¤¹¤ë¤ó¤À¡¢Ç˲õ¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤!!", 1);
break;
}
}
case M_DESTROY_TARGET_TYPE:
if ((*targetValue <= 10) || (*targetValue % 10 == 0))
{
- if ((rand() % 2) == 0)
+ if (CHANCE(0.5))
sprintf(message, "¤¢¤È %dÀÉ ¤À¡Ä", *targetValue);
else
sprintf(message, "%dÀÉ Ç˲õ¤·¤í¡Ä", *targetValue);
if ((type == M_DESTROY_TARGET_TYPE) && (id == CD_SID))
{
setInfoLine("¥·¥É¤Ï»à¤ó¤À!!", FONT_RED);
- setRadioMessage(FACE_CHRIS, "¥·¥É¡¢¤¹¡Ä¤¹¤Þ¤ó¡Ä¡Ä", 1);
- currentMission.completed1[0] = -2;
+ setRadioMessage(FS_CHRIS, "¥·¥É¡¢¤¹¡Ä¤¹¤Þ¤ó¡Ä¡Ä", 1);
+ currentMission.completed1[0] = OB_JUST_FAILED;
}
for (int i = 0 ; i < 3 ; i++)
if ((currentMission.completed1[i] == OB_INCOMPLETE) || (currentMission.completed1[i] == OB_CONDITION))
{
if ((currentMission.primaryType[i] == type) &&
- ((currentMission.target1[i] == id) ||
- (currentMission.target1[i] == CD_ANY)))
+ ((currentMission.target1[i] == id) ||
+ (currentMission.target1[i] == CD_ANY)))
{
matched = 1;
currentMission.targetValue1[i] -= value;
if ((currentMission.completed2[i] == OB_INCOMPLETE) || (currentMission.completed2[i] == OB_CONDITION))
{
if ((currentMission.secondaryType[i] == type) &&
- ((currentMission.target2[i] == id) ||
- (currentMission.target2[i] == CD_ANY)))
+ ((currentMission.target2[i] == id) ||
+ (currentMission.target2[i] == CD_ANY)))
{
currentMission.targetValue2[i] -= value;
evaluateRequirement(type, id, ¤tMission.completed2[i], ¤tMission.targetValue2[i], FONT_YELLOW);
{
setInfoLine("*** »îºîÀïÆ®µ¡¤òÇ˲õ - ºîÀﴰλ ***", FONT_GREEN);
systemPlanet[9].missionCompleted = 1;
- setRadioMessage(FACE_CHRIS, "WEAPCO¤Î´ñ½±¤Ê¤É¡¢¤¿¤¤¤·¤¿¤³¤È¤Ê¤¤¤Ê!", 1);
+ setRadioMessage(FS_CHRIS, "WEAPCO¤Î´ñ½±¹¶·â¤Ê¤É¡¢¤¿¤¤¤·¤¿¤³¤È¤Ï¤Ê¤¤¤Ê!", 1);
game.experimentalShield = 0;
}
}
This is only used as few times in the game.
Missions 11 and 23 to be exact!
*/
-static char revealHiddenObjectives()
+static int revealHiddenObjectives()
{
- char allDone = 1;
+ int allDone = 1;
char string[255] = "";
for (int i = 0 ; i < 3 ; i++)
if (game.area == MISN_ELAMALE)
{
mission_killAllEnemies();
- syncScriptEvents();
+ events_sync();
aliens[ALIEN_KLINE].active = true;
aliens[ALIEN_KLINE].x = player.x + 1000;
aliens[ALIEN_KLINE].y = player.y;
{
if ((currentMission.primaryType[i] == M_DESTROY_ALL_TARGETS) && (engine.allAliensDead) && (currentMission.remainingObjectives1 + currentMission.remainingObjectives2 == 1))
{
- currentMission.completed1[i] = 2;
+ currentMission.completed1[i] = OB_JUST_COMPLETED;
checkTimer();
}
}
{
if ((currentMission.secondaryType[i] == M_DESTROY_ALL_TARGETS) && (engine.allAliensDead) && (currentMission.remainingObjectives1 + currentMission.remainingObjectives2 == 1))
{
- currentMission.completed2[i] = 2;
+ currentMission.completed2[i] = OB_JUST_COMPLETED;
checkTimer();
}
}
for (int i = 0 ; i < 3 ; i++)
{
- if (currentMission.completed1[i] == 2)
+ if (currentMission.completed1[i] == OB_JUST_COMPLETED)
{
if (currentMission.remainingObjectives1 > 1)
{
if (game.area != MISN_INTERCEPTION)
setInfoLine("*** ¼çÍפÊǤ̳¤ò´°Î» ***", FONT_GREEN);
else
- setInfoLine("*** ·Þ·âµ¡¤ò·âÇË ***", FONT_GREEN);
+ setInfoLine("*** ·Þ·âÉôÂâ¤ò·âÇË ***", FONT_GREEN);
currentMission.completed1[i] = OB_COMPLETED;
// do some area specific things
}
if (game.area == MISN_EARTH)
- setRadioMessage(FACE_CHRIS, "¤ªÁ°¤é¤Ï»Ä¤Ã¤Æ¤³¤³¤òÍÞ¤¨¤Æ¤¤¤Æ¤¯¤ì¡£²¶¤Ï¥±¥¹¥é¥ó¤òÄɤ¦!", 1);
+ setRadioMessage(FS_CHRIS, "¤³¤³¤òÍÞ¤¨¤Æ¤¤¤Æ¤¯¤ì¡£²¶¤Ï¥±¥¹¥é¥ó¤òÄɤ¦!", 1);
}
}
- if (currentMission.completed2[i] == 2)
+ if (currentMission.completed2[i] == OB_JUST_COMPLETED)
{
if (currentMission.remainingObjectives2 > 1)
{
}
}
- if (currentMission.completed1[i] == -2)
+ if (currentMission.completed1[i] == OB_JUST_FAILED)
{
setInfoLine(">>> ºîÀZÇÔ <<<", FONT_RED);
currentMission.completed1[i] = OB_FAILED;
}
- if (currentMission.completed2[i] == -2)
+ if (currentMission.completed2[i] == OB_JUST_FAILED)
{
setInfoLine(">>> Êä½õŪ¤ÊǤ̳¤ò¼ºÇÔ <<<", FONT_RED);
currentMission.completed2[i] = OB_FAILED;
}
}
- signed char remaining;
+ int remaining;
bool add = false;
bool allDone = true;
for (int i = 0 ; i < 3 ; i++)
{
- if (currentMission.primaryType[i] != NONE)
+ if (currentMission.primaryType[i] != M_NONE)
{
- if (currentMission.completed1[i] == 0)
+ if (currentMission.completed1[i] == OB_INCOMPLETE)
{
currentMission.remainingObjectives1++;
if (currentMission.primaryType[i] == M_DESTROY_ALL_TARGETS)
allDone = false;
}
- if (currentMission.completed1[i] < 0)
+ if (currentMission.completed1[i] < OB_INCOMPLETE)
return false;
}
- if (currentMission.secondaryType[i] != NONE)
+ if (currentMission.secondaryType[i] != M_NONE)
{
- if (currentMission.completed2[i] == 0)
+ if (currentMission.completed2[i] == OB_INCOMPLETE)
{
currentMission.remainingObjectives2++;
if (currentMission.secondaryType[i] == M_DESTROY_ALL_TARGETS)
{
for (int i = 0 ; i < 3 ; i++)
{
- if (currentMission.completed1[i] < 0)
+ if (currentMission.completed1[i] < OB_INCOMPLETE)
{
return true;
}
SDL_FillRect(screen, &r, SDL_MapRGB(screen->format, 0, i, 0));
}
- blevelRect(140, 70, 500, 20, 0x00, 0x77, 0x00);
- blevelRect(140, 90, 500, 130, 0x00, 0x33, 0x00);
- drawString("¼çÍפÊǤ̳", 150, 74, FONT_WHITE);
+ screen_drawRect(140, 70, 500, 20, 0x00, 0x77, 0x00);
+ screen_drawRect(140, 90, 500, 130, 0x00, 0x33, 0x00);
+ screen_renderString("¼çÍפÊǤ̳", 150, 74, FONT_WHITE);
for (int i = 0 ; i < 3 ; i++)
{
- if ((currentMission.primaryType[i] != NONE) && (currentMission.completed1[i] != OB_HIDDEN))
+ if ((currentMission.primaryType[i] != M_NONE) && (currentMission.completed1[i] != OB_HIDDEN))
{
- drawString(currentMission.primaryObjective[i], 160, 114 + (i * 30), FONT_WHITE);
+ screen_renderString(currentMission.primaryObjective[i], 160, 114 + (i * 30), FONT_WHITE);
}
}
- if (currentMission.secondaryType[0] != NONE)
+ if (currentMission.secondaryType[0] != M_NONE)
{
- blevelRect(140, 230, 500, 20, 0x00, 0x77, 0x77);
- blevelRect(140, 250, 500, 130, 0x00, 0x33, 0x33);
- drawString("Êä½õŪ¤ÊǤ̳", 150, 234, FONT_WHITE);
+ screen_drawRect(140, 230, 500, 20, 0x00, 0x77, 0x77);
+ screen_drawRect(140, 250, 500, 130, 0x00, 0x33, 0x33);
+ screen_renderString("Êä½õŪ¤ÊǤ̳", 150, 234, FONT_WHITE);
for (int i = 0 ; i < 3 ; i++)
{
- if (currentMission.secondaryType[i] != NONE)
+ if (currentMission.secondaryType[i] != M_NONE)
{
- drawString(currentMission.secondaryObjective[i], 160, 274 + (i * 30), FONT_WHITE);
+ screen_renderString(currentMission.secondaryObjective[i], 160, 274 + (i * 30), FONT_WHITE);
game.secondaryMissions++;
}
}
}
- blevelRect(140, 390, 500, 20, 0x77, 0x77, 0x00);
- blevelRect(140, 410, 500, 130, 0x33, 0x33, 0x00);
- drawString("ÄɲäξðÊó", 150, 394, FONT_WHITE);
+ screen_drawRect(140, 390, 500, 20, 0x77, 0x77, 0x00);
+ screen_drawRect(140, 410, 500, 130, 0x33, 0x33, 0x00);
+ screen_renderString("ÄɲäξðÊó", 150, 394, FONT_WHITE);
}
/*
*/
void missionBriefScreen()
{
- clearScreen(black);
- updateScreen();
+ screen_clear(black);
+ renderer_update();
if (game.area != MISN_INTERCEPTION)
{
- clearScreen(black);
+ screen_clear(black);
drawBriefScreen();
if (currentMission.timeLimit1[0] > 0)
sprintf(temp, "À©¸Â»þ´Ö: %dʬ", currentMission.timeLimit1[0]);
else
sprintf(temp, "%dʬ´Ö À¸¤±ä¤Ó¤ë", currentMission.timeLimit1[0]);
- drawString(temp, -1, 500, FONT_RED);
+ screen_renderString(temp, -1, 500, FONT_RED);
}
switch (game.area)
case MISN_ELLESH:
case MISN_MARS:
case MISN_VENUS:
- drawString("¥Õ¥§¡¼¥Ù¡¦¥ì¥Ã¥¯¥¹¤Ï»²²Ã¤·¤Ê¤¤", 160, 420, FONT_WHITE);
+ screen_renderString("¥Õ¥§¡¼¥Ù¡¦¥ì¥Ã¥¯¥¹¤Ï»²²Ã¤·¤Ê¤¤", 160, 420, FONT_WHITE);
if (game.hasWingMate2)
- drawString("¥¦¡¼¥·¥å¥é¡¦¥ì¥Ã¥¯¥¹¤Ï»²²Ã¤·¤Ê¤¤", 160, 450, FONT_WHITE);
+ screen_renderString("¥¦¡¼¥·¥å¥é¡¦¥ì¥Ã¥¯¥¹¤Ï»²²Ã¤·¤Ê¤¤", 160, 450, FONT_WHITE);
break;
}
if ((game.area == MISN_URUSOR) ||
(game.area == MISN_POSWIC) ||
(game.area == MISN_EARTH))
- drawString("¥·¥É¡¦¥¦¥£¥ë¥½¥ó¤¬ºîÀï¤Ë»²²Ã¤¹¤ë", 160, 480, FONT_WHITE);
+ screen_renderString("¥·¥É¡¦¥¦¥£¥ë¥½¥ó¤¬ºîÀï¤Ë»²²Ã¤¹¤ë", 160, 480, FONT_WHITE);
- updateScreen();
+ renderer_update();
}
loadGameGraphics();
- textSurface(4, "\8e¼\8e°\8eÙ\8eÄ\8eÞ", 25, 550, FONT_WHITE);
- textSurface(5, "\8eÌ\8eß\8e×\8e½\8eÞ\8eÏ:", 250, 550, FONT_WHITE);
+ gfx_createTextObject(TS_SHIELD, "\8e¼\8e°\8eÙ\8eÄ\8eÞ", screen->w / 32, screen->h - 50, FONT_WHITE);
+ gfx_createTextObject(TS_PLASMA_T, "\8eÌ\8eß\8e×\8e½\8eÞ\8eÏ:", screen->w * 5 / 16, screen->h - 50, FONT_WHITE);
if (player.weaponType[1] == W_CHARGER)
- textSurface(6, "\8eÁ\8e¬\8e°\8e¼\8eÞ", 385, 550, FONT_WHITE);
+ gfx_createTextObject(TS_AMMO_T, "\8eÁ\8e¬\8e°\8e¼\8eÞ", screen->w / 2, screen->h - 50, FONT_WHITE);
else if (player.weaponType[1] == W_LASER)
- textSurface(6, "\8eµ\8eÝ\8eÄ\8eÞ", 405, 550, FONT_WHITE);
+ gfx_createTextObject(TS_AMMO_T, "\8eµ\8eÝ\8eÄ\8eÞ", screen->w / 2 + 20, screen->h - 50, FONT_WHITE);
else
- textSurface(6, "\8eÛ\8e¹\8e¯\8eÄ:", 385, 550, FONT_WHITE);
-
- textSurface(7, "\8eÀ\8e°\8e¹\8eÞ\8e¯\8eÄ", 550, 550, FONT_WHITE);
- textSurface(8, "\8e·\8e¬\8e¯\8e¼\8e: $", 25, 20, FONT_WHITE);
- textSurface(9, "\8eÉ\8eº\8eØ \8eÉ \8e»\8e¸\8e¾\8eÝ:", 550, 20, FONT_WHITE);
- textSurface(10, "\8eÉ\8eº\8eØ\8e¼\8eÞ\8e¶\8eÝ - ", 260, 20, FONT_WHITE);
- textSurface(11, "\8e¶\8eØ\8e®\8e¸", 25, 570, FONT_WHITE);
- textSurface(12, "\8eÊ\8eÝ\8e²", 250, 570, FONT_WHITE);
- textSurface(13, "\8eÚ\8eÝ\8e¼\8e¬\8e¿\8e¸\8eÄ\8eÞ", 485, 570, FONT_WHITE);
+ gfx_createTextObject(TS_AMMO_T, "\8eÛ\8e¹\8e¯\8eÄ:", screen->w / 2, screen->h - 50, FONT_WHITE);
+
+ gfx_createTextObject(TS_TARGET, "\8eÀ\8e°\8e¹\8eÞ\8e¯\8eÄ", screen->w * 11 / 16, screen->h - 50, FONT_WHITE);
+ gfx_createTextObject(TS_TARGET_SID, "\8e¼\8eÄ\8eÞ", screen->w * 11 / 16 + 27, screen->h - 50, FONT_WHITE);
+ gfx_createTextObject(TS_TARGET_PHOEBE, "\8eÌ\8eª\8e°\8eÍ\8eÞ", screen->w * 11 / 16, screen->h - 50, FONT_WHITE);
+ gfx_createTextObject(TS_TARGET_KLINE, "\8e¹\8e½\8e×\8eÝ", screen->w * 11 / 16 + 9, screen->h - 50, FONT_WHITE);
+ gfx_createTextObject(TS_CASH_T, "\8e·\8e¬\8e¯\8e¼\8e: $", 25, 20, FONT_WHITE);
+ gfx_createTextObject(TS_OBJECTIVES_T, "\8eÉ\8eº\8eØ \8eÉ \8e»\8e¸\8e¾\8eÝ:", screen->w - 250, 20, FONT_WHITE);
+ gfx_createTextObject(TS_TIME_T, "\8eÉ\8eº\8eØ\8e¼\8eÞ\8e¶\8eÝ - ", screen->w / 2 - 140, 20, FONT_WHITE);
+ gfx_createTextObject(TS_POWER, "\8e¶\8eØ\8e®\8e¸", screen->w / 32, screen->h - 30, FONT_WHITE);
+ gfx_createTextObject(TS_OUTPUT, "\8eÊ\8eÝ\8e²", screen->w * 5 / 16, screen->h - 30, FONT_WHITE);
+ gfx_createTextObject(TS_COOLER, "\8eÚ\8eÝ\8e¼\8e¬\8e¿\8e¸\8eÄ\8eÞ", screen->w * 97 / 160, screen->h - 30, FONT_WHITE);
audio_playRandomTrack();
if (game.area != MISN_INTERCEPTION)
{
- drawString("ENTER¥¡¼¤ò²¡¤¹¤È³¤±¤ë¡Ä", -1, 550, FONT_WHITE);
+ screen_renderString("ENTER¥¡¼¤ò²¡¤¹¤È³¤±¤ë¡Ä", -1, 550, FONT_WHITE);
- updateScreen();
+ renderer_update();
flushInput();
engine.done = 0;
while (true)
{
- delayFrame();
+ game_delayFrame();
getPlayerInput();
if ((engine.keyState[KEY_FIRE]) || (engine.keyState[KEY_ALTFIRE]) ||
(engine.keyState[KEY_ESCAPE]))
break;
}
- clearScreen(black);
- updateScreen();
- clearScreen(black);
+ screen_clear(black);
+ renderer_update();
+ screen_clear(black);
}
engine.gameSection = SECTION_GAME;
if (game.area != MISN_INTERCEPTION)
{
- clearScreen(black);
- updateScreen();
+ screen_clear(black);
+ renderer_update();
if (game.shots > 0)
game.accuracy = (game.hits * 100) / game.shots;
- clearScreen(black);
+ screen_clear(black);
drawBriefScreen();
for (int i = 0 ; i < 3 ; i++)
{
- if (currentMission.primaryType[i] != NONE)
+ if (currentMission.primaryType[i] != M_NONE)
{
if ((game.area != MISN_POSWIC) || (i != 1))
- drawString("COMPLETED", 550, 114 + (i * 30), FONT_GREEN);
+ screen_renderString("COMPLETED", 550, 114 + (i * 30), FONT_GREEN);
else
- drawString("FAILED", 550, 114 + (i * 30), FONT_RED);
+ screen_renderString("FAILED", 550, 114 + (i * 30), FONT_RED);
}
}
- if (currentMission.secondaryType[0] != NONE)
+ if (currentMission.secondaryType[0] != M_NONE)
{
for (int i = 0 ; i < 3 ; i++)
{
- if (currentMission.secondaryType[i] != NONE)
+ if (currentMission.secondaryType[i] != M_NONE)
{
strcpy(temp, currentMission.secondaryObjective[i]);
- if (currentMission.completed2[i] >= 1)
+ if (currentMission.completed2[i] >= OB_COMPLETED)
{
- drawString("COMPLETED", 550, 274 + (i * 30), FONT_GREEN);
+ screen_renderString("COMPLETED", 550, 274 + (i * 30), FONT_GREEN);
game.secondaryMissionsCompleted++;
}
else
{
- drawString("FAILED", 550, 274 + (i * 30), FONT_RED);
+ screen_renderString("FAILED", 550, 274 + (i * 30), FONT_RED);
}
}
}
{
shield_bonus = player.shield * 10;
sprintf(temp, "¥·¡¼¥ë¥É ¥Ü¡¼¥Ê¥¹: $%.3d", shield_bonus);
- drawString(temp, -1, 430, FONT_WHITE);
+ screen_renderString(temp, -1, 430, FONT_WHITE);
game.cash += shield_bonus;
game.cashEarned += shield_bonus;
}
engine.timeTaken / 3600, (engine.timeTaken / 60) % 60,
engine.timeTaken % 60);
- drawString(temp, -1, 500, FONT_WHITE);
+ screen_renderString(temp, -1, 500, FONT_WHITE);
// Do some mission specific stuff here...
if (game.area == MISN_HAIL)
checkForBossMission();
- updateScreen();
+ renderer_update();
flushInput();
engine.done = 0;
while (true)
{
- delayFrame();
+ game_delayFrame();
getPlayerInput();
if ((engine.keyState[KEY_FIRE]))
break;
missions[MISN_CERADSE].completed1[1] = OB_CONDITION;
sprintf(missions[MISN_CERADSE].secondaryObjective[0],
- "»Ä¸¤¹¤ëWEPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
+ "»Ä¸¤¹¤ëWEAPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
missions[MISN_CERADSE].secondaryType[0] = M_DESTROY_ALL_TARGETS;
missions[MISN_CERADSE].completed2[0] = OB_INCOMPLETE;
sprintf(missions[MISN_HINSTAG].primaryObjective[0],
- "5ÀɤÎWEPCO¤Î¥ß¥µ¥¤¥ëÄú¤òÇ˲õ¤¹¤ë");
+ "5ÀɤÎWEAPCO¤Î¥ß¥µ¥¤¥ëÄú¤òÇ˲õ¤¹¤ë");
missions[MISN_HINSTAG].primaryType[0] = M_DESTROY_TARGET_TYPE;
missions[MISN_HINSTAG].target1[0] = CD_MISSILEBOAT;
missions[MISN_HINSTAG].targetValue1[0] = 5;
missions[MISN_HINSTAG].completed1[0] = OB_INCOMPLETE;
sprintf(missions[MISN_HINSTAG].secondaryObjective[0],
- "»Ä¸¤¹¤ëWEPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
+ "»Ä¸¤¹¤ëWEAPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
missions[MISN_HINSTAG].secondaryType[0] = M_DESTROY_ALL_TARGETS;
missions[MISN_HINSTAG].completed2[0] = OB_INCOMPLETE;
missions[MISN_JOLDAR].completed1[0] = OB_INCOMPLETE;
sprintf(missions[MISN_JOLDAR].secondaryObjective[0],
- "»Ä¸¤¹¤ëWEPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
+ "»Ä¸¤¹¤ëWEAPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
missions[MISN_JOLDAR].secondaryType[0] = M_DESTROY_ALL_TARGETS;
missions[MISN_JOLDAR].completed2[0] = OB_INCOMPLETE;
missions[MISN_NEROD].completed1[1] = OB_CONDITION;
sprintf(missions[MISN_NEROD].primaryObjective[2],
- "WEPCO¤Î·³ÃĤò·âÇˤ¹¤ë");
+ "WEAPCO¤Î·³ÃĤò·âÇˤ¹¤ë");
missions[MISN_NEROD].primaryType[2] = M_DESTROY_TARGET_TYPE;
missions[MISN_NEROD].target1[2] = CD_ANY;
missions[MISN_NEROD].targetValue1[2] = 35;
missions[MISN_ALLEZ].completed1[1] = OB_CONDITION;
sprintf(missions[MISN_ALLEZ].secondaryObjective[0],
- "»Ä¸¤¹¤ëWEPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
+ "»Ä¸¤¹¤ëWEAPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
missions[MISN_ALLEZ].secondaryType[0] = M_DESTROY_ALL_TARGETS;
missions[MISN_ALLEZ].completed2[0] = OB_INCOMPLETE;
missions[MISN_URUSOR].completed1[0] = OB_INCOMPLETE;
sprintf(missions[MISN_URUSOR].primaryObjective[1],
- "»Ä¸¤¹¤ëWEPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
+ "»Ä¸¤¹¤ëWEAPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
missions[MISN_URUSOR].primaryType[1] = M_DESTROY_ALL_TARGETS;
missions[MISN_URUSOR].completed1[1] = OB_INCOMPLETE;
sprintf(missions[MISN_ELAMALE].primaryObjective[0],
- "WEPCO¤ÎºÎ·¡Á¥¤òÇ˲õ¤¹¤ë");
+ "WEAPCO¤ÎºÎ·¡Á¥¤òÇ˲õ¤¹¤ë");
missions[MISN_ELAMALE].primaryType[0] = M_DESTROY_TARGET_TYPE;
missions[MISN_ELAMALE].target1[0] = CD_BOSS;
missions[MISN_ELAMALE].targetValue1[0] = 1;
missions[MISN_ODEON].completed1[2] = OB_CONDITION;
sprintf(missions[MISN_ODEON].secondaryObjective[0],
- "»Ä¸¤¹¤ëWEPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
+ "»Ä¸¤¹¤ëWEAPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
missions[MISN_ODEON].secondaryType[0] = M_DESTROY_ALL_TARGETS;
missions[MISN_ODEON].completed2[0] = OB_INCOMPLETE;
missions[MISN_FELLON].completed1[0] = OB_INCOMPLETE;
sprintf(missions[MISN_FELLON].primaryObjective[1],
- "¾¯¤Ê¤¯¤È¤â1ÀɤβòÊü·³¤Î´ÏÁ¥¤¬À¸¤»Ä¤ë");
+ "¾¯¤Ê¤¯¤È¤â1ÀɤÎÈ¿Í𷳤δÏÁ¥¤¬À¸¤»Ä¤ë");
missions[MISN_FELLON].primaryType[1] = M_PROTECT_TARGET;
missions[MISN_FELLON].target1[1] = CD_REBELCARRIER;
missions[MISN_FELLON].targetValue1[1] = 2;
missions[MISN_ALMARTHA].completed1[0] = OB_INCOMPLETE;
sprintf(missions[MISN_ALMARTHA].primaryObjective[1],
- "»Ä¸¤¹¤ëWEPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
+ "»Ä¸¤¹¤ëWEAPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
missions[MISN_ALMARTHA].primaryType[1] = M_DESTROY_ALL_TARGETS;
missions[MISN_ALMARTHA].completed1[1] = OB_INCOMPLETE;
missions[MISN_POSWIC].completed1[0] = OB_INCOMPLETE;
sprintf(missions[MISN_POSWIC].primaryObjective[1],
- "½ÅÌò¤ÎÈÂÁ÷¤òÁ˻ߤ¹¤ë");
+ "½ÅÌò¤Î°ÜÁ÷¤òÁ˻ߤ¹¤ë");
missions[MISN_POSWIC].primaryType[1] = M_ESCAPE_TARGET;
missions[MISN_POSWIC].target1[1] = CD_BOSS;
missions[MISN_POSWIC].targetValue1[1] = 1;
missions[MISN_POSWIC].completed1[1] = OB_INCOMPLETE;
sprintf(missions[MISN_POSWIC].primaryObjective[2],
- "»Ä¸¤¹¤ëWEPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
+ "»Ä¸¤¹¤ëWEAPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
missions[MISN_POSWIC].primaryType[2] = M_DESTROY_ALL_TARGETS;
missions[MISN_POSWIC].completed1[2] = OB_INCOMPLETE;
sprintf(missions[MISN_ELLESH].primaryObjective[0],
- "½ÅÌò¤ÎÈÂÁ÷Á¥¤òÇ˲õ¤¹¤ë");
+ "½ÅÌò¤Î°ÜÁ÷Á¥¤òÇ˲õ¤¹¤ë");
missions[MISN_ELLESH].primaryType[0] = M_DESTROY_TARGET_TYPE;
missions[MISN_ELLESH].target1[0] = CD_BOSS;
missions[MISN_ELLESH].targetValue1[0] = 1;
missions[MISN_PLUTO].completed1[0] = OB_INCOMPLETE;
sprintf(missions[MISN_PLUTO].primaryObjective[1],
- "»Ä¸¤¹¤ëWEPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
+ "»Ä¸¤¹¤ëWEAPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
missions[MISN_PLUTO].primaryType[1] = M_DESTROY_ALL_TARGETS;
missions[MISN_PLUTO].completed1[1] = OB_INCOMPLETE;
missions[MISN_NEPTUNE].completed1[0] = OB_INCOMPLETE;
sprintf(missions[MISN_NEPTUNE].primaryObjective[1],
- "»Ä¸¤¹¤ëWEPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
+ "»Ä¸¤¹¤ëWEAPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
missions[MISN_NEPTUNE].primaryType[1] = M_DESTROY_ALL_TARGETS;
missions[MISN_NEPTUNE].completed1[1] = OB_INCOMPLETE;
missions[MISN_URANUS].completed1[0] = OB_INCOMPLETE;
sprintf(missions[MISN_URANUS].primaryObjective[1],
- "»Ä¸¤¹¤ëWEPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
+ "»Ä¸¤¹¤ëWEAPCO¤ÎÀïÆ®µ¡¤òÁ´¤ÆÇ˲õ¤¹¤ë");
missions[MISN_URANUS].primaryType[1] = M_DESTROY_ALL_TARGETS;
missions[MISN_URANUS].completed1[1] = OB_INCOMPLETE;
missions[MISN_SATURN].completed1[0] = OB_INCOMPLETE;
sprintf(missions[MISN_SATURN].primaryObjective[1],
- "»Ä¸¤¹¤ëWEPCO¤Î´ÏÁ¥¤òÁ´¤ÆÇ˲õ¤¹¤ë");
+ "»Ä¸¤¹¤ëWEAPCO¤Î´ÏÁ¥¤òÁ´¤ÆÇ˲õ¤¹¤ë");
missions[MISN_SATURN].primaryType[1] = M_DESTROY_ALL_TARGETS;
missions[MISN_SATURN].completed1[1] = OB_INCOMPLETE;
missions[MISN_JUPITER].completed1[1] = OB_HIDDEN;
sprintf(missions[MISN_JUPITER].primaryObjective[2],
- "¥¿¥¤¥é¡¼¤Î»Ù±ç¼Ô¤òÅݤ¹");
+ "¥¯¥é¥¹¤Î»Ù±ç¼Ô¤òÅݤ¹");
missions[MISN_JUPITER].primaryType[2] = M_DESTROY_ALL_TARGETS;
missions[MISN_JUPITER].target1[1] = CD_FIREFLY;
missions[MISN_JUPITER].targetValue1[1] = 4;
missions[MISN_JUPITER].addAliens = ALWAYS;
- sprintf(missions[MISN_MARS].primaryObjective[0], "¥¢¥¹¥Æ¥í¥¤¥É¥Ù¥ë¥È¤ò¿Ê¤à");
+ sprintf(missions[MISN_MARS].primaryObjective[0], "¥¢¥¹¥Æ¥í¥¤¥É¥Ù¥ë¥È¤ò¹Ò¹Ô¤¹¤ë");
missions[MISN_MARS].primaryType[0] = M_DESTROY_TARGET_TYPE;
missions[MISN_MARS].target1[0] = CD_BOSS;
missions[MISN_MARS].targetValue1[0] = 1;