Added a new "original" difficulty.

This difficulty is meant to imitate the original Project: Starfighter
as closely as possible, for purists.
This commit is contained in:
onpon4 2015-03-28 09:51:49 -04:00
parent 7e69ee79ad
commit e105d6a1cc
8 changed files with 34 additions and 10 deletions

View File

@ -425,7 +425,7 @@ void doBullets()
}
}
if ((currentGame.difficulty > DIFFICULTY_EASY) &&
if ((currentGame.difficulty != DIFFICULTY_EASY) &&
((bullet->owner == &player) || (bullet->id == WT_ROCKET)))
{
for (int j = 0 ; j < 20 ; j++)

View File

@ -50,8 +50,9 @@ void addCollectable(float x, float y, int type, int value, int life)
{
type = P_PLASMA_RATE;
if ((currentGame.difficulty >= DIFFICULTY_NIGHTMARE) ||
((currentGame.difficulty > DIFFICULTY_EASY) &&
if ((currentGame.difficulty == DIFFICULTY_NIGHTMARE) ||
((currentGame.difficulty != DIFFICULTY_EASY) &&
(currentGame.difficulty != DIFFICULTY_ORIGINAL) &&
((currentGame.area == 5) || (currentGame.area == 11) ||
(currentGame.area == 18) || (currentGame.area == 25))))
{

View File

@ -374,10 +374,12 @@ enum {
// Difficulties
enum {
DIFFICULTY_EASY,
DIFFICULTY_EASY = 0,
DIFFICULTY_NORMAL,
DIFFICULTY_HARD,
DIFFICULTY_NIGHTMARE
DIFFICULTY_NIGHTMARE,
DIFFICULTY_ORIGINAL,
DIFFICULTY_MAX
};
extern const char *systemNames[];

View File

@ -106,6 +106,16 @@ void newGame()
player.maxShield = 1;
currentGame.maxRocketAmmo = 5;
break;
case DIFFICULTY_ORIGINAL:
player.maxShield = 25;
currentGame.minPlasmaRateLimit = 3;
currentGame.minPlasmaDamageLimit = 3;
currentGame.minPlasmaOutputLimit = 3;
currentGame.maxPlasmaRateLimit = 5;
currentGame.maxPlasmaDamageLimit = 5;
currentGame.maxPlasmaOutputLimit = 5;
break;
}
player.shield = player.maxShield;

View File

@ -527,7 +527,8 @@ int galaxyMap()
signed char saveSlot = -1;
// Remove the Supercharge, if it is there
if (currentGame.difficulty > DIFFICULTY_EASY)
if ((currentGame.difficulty != DIFFICULTY_EASY) &&
(currentGame.difficulty != DIFFICULTY_ORIGINAL))
{
weapon[W_PLAYER_WEAPON].reload[0] = MAX(
weapon[W_PLAYER_WEAPON].reload[0],

View File

@ -158,6 +158,9 @@ void updateSystemStatus()
currentGame.area = 6;
strcpy(currentGame.stationedName, "Nerod");
initPlanetMissions(currentGame.system);
if (currentGame.difficulty == DIFFICULTY_ORIGINAL)
player.maxShield = 50;
}
else if (currentGame.area == 11)
{
@ -166,6 +169,9 @@ void updateSystemStatus()
currentGame.area = 12;
strcpy(currentGame.stationedName, "Odeon");
initPlanetMissions(currentGame.system);
if (currentGame.difficulty == DIFFICULTY_ORIGINAL)
player.maxShield = 75;
}
else if (currentGame.area == 18)
{
@ -174,6 +180,9 @@ void updateSystemStatus()
currentGame.area = 19;
strcpy(currentGame.stationedName, "Pluto");
initPlanetMissions(currentGame.system);
if (currentGame.difficulty == DIFFICULTY_ORIGINAL)
player.maxShield = 100;
}
else // Update the mission for the planet
{

View File

@ -244,7 +244,7 @@ void doPlayer()
player.x = screen->w - xViewBorder;
}
}
else
else if (currentGame.difficulty != DIFFICULTY_ORIGINAL)
{
cd = player.x - screen->w / 2;
if (cd < 0)
@ -273,7 +273,7 @@ void doPlayer()
player.y = screen->h - yViewBorder;
}
}
else
else if (currentGame.difficulty != DIFFICULTY_ORIGINAL)
{
cd = player.y - screen->h / 2;
if (cd < 0)

View File

@ -73,6 +73,8 @@ static void createDifficultyMenu()
textSurface(TS_DIFFICULTY, "DIFFICULTY - HARD", -1, 370, FONT_WHITE);
else if (currentGame.difficulty == DIFFICULTY_NIGHTMARE)
textSurface(TS_DIFFICULTY, "DIFFICULTY - NIGHTMARE!", -1, 370, FONT_WHITE);
else if (currentGame.difficulty == DIFFICULTY_ORIGINAL)
textSurface(TS_DIFFICULTY, "DIFFICULTY - ORIGINAL", -1, 370, FONT_WHITE);
else
textSurface(TS_DIFFICULTY, "DIFFICULTY - NORMAL", -1, 370, FONT_WHITE);
}
@ -430,8 +432,7 @@ int doTitle()
else if (selectedOption == 2)
{
currentGame.difficulty++;
if (currentGame.difficulty > DIFFICULTY_NIGHTMARE)
currentGame.difficulty = DIFFICULTY_EASY;
currentGame.difficulty %= DIFFICULTY_MAX;
}
else if (selectedOption == listLength)
{