Converted consts to #define calls.

This commit is contained in:
Julie Marchant 2019-05-21 01:51:39 -04:00
parent aa9d673aab
commit e22a2bc168
9 changed files with 143 additions and 128 deletions

View File

@ -42,8 +42,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
Object alien_defs[CD_MAX]; Object alien_defs[CD_MAX];
Object aliens[ALIEN_MAX]; Object aliens[ALIEN_MAX];
static const int nChrisKillMessage = 15; #define NMSG_CHRIS_KILL 15
static const char *chrisKillMessage[nChrisKillMessage] = { static const char *chrisKillMessage[NMSG_CHRIS_KILL] = {
"Take that, robot oppressors!", "Take that, robot oppressors!",
"Come on, WEAPCO, give me a challenge already!", "Come on, WEAPCO, give me a challenge already!",
"Is that all you've got?", "Is that all you've got?",
@ -61,8 +61,8 @@ static const char *chrisKillMessage[nChrisKillMessage] = {
"Maybe you should change your name to WEEPCO!" "Maybe you should change your name to WEEPCO!"
}; };
static const int nPhoebeKillMessage = 11; #define NMSG_PHOEBE_KILL 11
static const char *phoebeKillMessage[nPhoebeKillMessage] = { static const char *phoebeKillMessage[NMSG_PHOEBE_KILL] = {
"I got another one!", "I got another one!",
"Target destroyed!", "Target destroyed!",
"One more for me!", "One more for me!",
@ -76,8 +76,8 @@ static const char *phoebeKillMessage[nPhoebeKillMessage] = {
"I got it!" "I got it!"
}; };
static const int nUrsulaKillMessage = 14; #define NMSG_URSULA_KILL 14
static const char *ursulaKillMessage[nUrsulaKillMessage] = { static const char *ursulaKillMessage[NMSG_URSULA_KILL] = {
"Kicked your ass!", "Kicked your ass!",
"You ain't so tough!", "You ain't so tough!",
"I was always a better WEAPCO pilot than you!", "I was always a better WEAPCO pilot than you!",
@ -1788,7 +1788,7 @@ void alien_destroy(Object *alien, Object *attacker)
if (CHANCE(1 / 16.) && (alien->flags & FL_WEAPCO) && if (CHANCE(1 / 16.) && (alien->flags & FL_WEAPCO) &&
(!(alien->flags & FL_NOBANTER))) (!(alien->flags & FL_NOBANTER)))
{ {
r = rand() % nChrisKillMessage; r = rand() % NMSG_CHRIS_KILL;
radio_setMessage(FS_CHRIS, chrisKillMessage[r], 0); radio_setMessage(FS_CHRIS, chrisKillMessage[r], 0);
} }
} }
@ -1798,7 +1798,7 @@ void alien_destroy(Object *alien, Object *attacker)
if (CHANCE(1 / 8.) && (alien-> flags & FL_WEAPCO) && if (CHANCE(1 / 8.) && (alien-> flags & FL_WEAPCO) &&
(!(alien->flags & FL_NOBANTER))) (!(alien->flags & FL_NOBANTER)))
{ {
r = rand() % nPhoebeKillMessage; r = rand() % NMSG_PHOEBE_KILL;
radio_setMessage(FS_PHOEBE, phoebeKillMessage[r], 0); radio_setMessage(FS_PHOEBE, phoebeKillMessage[r], 0);
} }
} }
@ -1808,7 +1808,7 @@ void alien_destroy(Object *alien, Object *attacker)
if (CHANCE(1 / 8.) && (alien-> flags & FL_WEAPCO) && if (CHANCE(1 / 8.) && (alien-> flags & FL_WEAPCO) &&
(!(alien->flags & FL_NOBANTER))) (!(alien->flags & FL_NOBANTER)))
{ {
r = rand() % nUrsulaKillMessage; r = rand() % NMSG_URSULA_KILL;
radio_setMessage(FS_URSULA, ursulaKillMessage[r], 0); radio_setMessage(FS_URSULA, ursulaKillMessage[r], 0);
} }
} }
@ -1943,3 +1943,7 @@ void alien_hurt(Object *alien, Object *attacker, int damage, int ion)
alien->systemPower = alien->maxShield; alien->systemPower = alien->maxShield;
} }
} }
#undef NMSG_CHRIS_KILL
#undef NMSG_PHOEBE_KILL
#undef NMSG_URSULA_KILL

View File

@ -62,14 +62,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DEFAULT_SCREEN_WIDTH MAX(SCREEN_WIDTH, 640) #define DEFAULT_SCREEN_WIDTH MAX(SCREEN_WIDTH, 640)
#define DEFAULT_SCREEN_HEIGHT MAX(SCREEN_HEIGHT, 480) #define DEFAULT_SCREEN_HEIGHT MAX(SCREEN_HEIGHT, 480)
#define STARS_NUM 200 #define STARS_NUM 200
const int xViewBorder = 100; #define X_VIEW_BORDER 100
const int yViewBorder = 100; #define Y_VIEW_BORDER 100
const float cameraMaxSpeed = 3.; #define CAMERA_MAX_SPEED 3.
const int maxHoming = 20; #define MAX_HOMING 20
const int maxDoubleHoming = 15; #define MAX_DOUBLE_HOMING 15
const int maxMicroHoming = 10; #define MAX_MICRO_HOMING 10
#define RAY_DAMAGE_DELAY 10
const int rayDamageDelay = 10;
// Object Flags // Object Flags
#define FL_WEAPCO 1 #define FL_WEAPCO 1

View File

@ -31,7 +31,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "radio.h" #include "radio.h"
static Event events[MAX_EVENTS]; static Event events[MAX_EVENTS];
static const char *klineGreeting[] = {
#define NMSG_KLINE_GREETING 4
static const char *klineGreeting[NMSG_KLINE_GREETING] = {
"How nice to see you again, Bainfield!", "How nice to see you again, Bainfield!",
"It all ends here, rebel!", "It all ends here, rebel!",
"I hope you won't disappoint me this time...", "I hope you won't disappoint me this time...",
@ -57,7 +59,7 @@ void events_init()
{ {
events[0].time = 2; events[0].time = 2;
events[0].face = FS_KLINE; events[0].face = FS_KLINE;
strcpy(events[0].message, klineGreeting[rand() % 4]); strcpy(events[0].message, klineGreeting[rand() % NMSG_KLINE_GREETING]);
} }
break; break;
@ -385,3 +387,5 @@ void events_sync()
} }
} }
} }
#undef NMSG_KLINE_GREETING

View File

@ -63,39 +63,39 @@ static Star stars[STARS_NUM];
static Uint32 frameLimit = 0; static Uint32 frameLimit = 0;
static int thirds = 0; static int thirds = 0;
static const int nKlineInsult = 3; #define NMSG_KLINE_INSULT 3
static const char *klineInsult[nKlineInsult] = { static const char *klineInsult[NMSG_KLINE_INSULT] = {
"Pathetic.", "How very disappointing...", "Heroic. And stupid." "Pathetic.", "How very disappointing...", "Heroic. And stupid."
}; };
static const int nKlineVenusInsult = 2; #define NMSG_KLINE_VENUS_INSULT 2
static const char *klineVenusInsult[nKlineVenusInsult] = { static const char *klineVenusInsult[NMSG_KLINE_VENUS_INSULT] = {
"Fool.", "And now you're nothing but a DEAD hero." "Fool.", "And now you're nothing but a DEAD hero."
}; };
static const int nPhoebePlayerHitMessage = 3; #define NMSG_PHOEBE_PLAYER_HIT 3
static const char *phoebePlayerHitMessage[nPhoebePlayerHitMessage] = { static const char *phoebePlayerHitMessage[NMSG_PHOEBE_PLAYER_HIT] = {
"Oops! Sorry!", "Oops! Sorry!",
"Whoops! Are you OK, Chris?", "Whoops! Are you OK, Chris?",
"Oh, sorry! I didn't see you there!" "Oh, sorry! I didn't see you there!"
}; };
static const int nUrsulaPlayerHitMessage = 3; #define NMSG_URSULA_PLAYER_HIT 3
static const char *ursulaPlayerHitMessage[nUrsulaPlayerHitMessage] = { static const char *ursulaPlayerHitMessage[NMSG_URSULA_PLAYER_HIT] = {
"Get out of the way!", "Get out of the way!",
"Don't fly into my missiles!", "Don't fly into my missiles!",
"Dammit, Chris, you made me miss!" "Dammit, Chris, you made me miss!"
}; };
static const int nPlayerPhoebeHitMessage = 3; #define NMSG_PLAYER_PHOEBE_HIT 3
static const char *playerPhoebeHitMessage[nPlayerPhoebeHitMessage] = { static const char *playerPhoebeHitMessage[NMSG_PLAYER_PHOEBE_HIT] = {
"OW! I hope that was an accident!", "OW! I hope that was an accident!",
"Chris, please be more careful!", "Chris, please be more careful!",
"Ouch! What are you shooting at me for?" "Ouch! What are you shooting at me for?"
}; };
static const int nPlayerUrsulaHitMessage = 5; #define NMSG_PLAYER_URSULA_HIT 5
static const char *playerUrsulaHitMessage[nPlayerUrsulaHitMessage] = { static const char *playerUrsulaHitMessage[NMSG_PLAYER_URSULA_HIT] = {
"I am NOT your enemy!", "I am NOT your enemy!",
"Hey! Watch it!", "Hey! Watch it!",
"What are you doing?! Shoot THEM!", "What are you doing?! Shoot THEM!",
@ -727,9 +727,9 @@ static void game_doBullets()
{ {
game.hits++; game.hits++;
if (aliens[i].classDef == CD_PHOEBE) if (aliens[i].classDef == CD_PHOEBE)
radio_setMessage(FS_PHOEBE, playerPhoebeHitMessage[rand() % nPlayerPhoebeHitMessage], 0); radio_setMessage(FS_PHOEBE, playerPhoebeHitMessage[rand() % NMSG_PLAYER_PHOEBE_HIT], 0);
else if (aliens[i].classDef == CD_URSULA) else if (aliens[i].classDef == CD_URSULA)
radio_setMessage(FS_URSULA, playerUrsulaHitMessage[rand() % nPlayerUrsulaHitMessage], 0); radio_setMessage(FS_URSULA, playerUrsulaHitMessage[rand() % NMSG_PLAYER_URSULA_HIT], 0);
} }
if (!(aliens[i].flags & FL_IMMORTAL)) if (!(aliens[i].flags & FL_IMMORTAL))
@ -790,11 +790,11 @@ static void game_doBullets()
{ {
if (bullet->owner->classDef == CD_PHOEBE) if (bullet->owner->classDef == CD_PHOEBE)
{ {
radio_setMessage(FS_PHOEBE, phoebePlayerHitMessage[rand() % nPhoebePlayerHitMessage], 0); radio_setMessage(FS_PHOEBE, phoebePlayerHitMessage[rand() % NMSG_PHOEBE_PLAYER_HIT], 0);
} }
else if (bullet->owner->classDef == CD_URSULA) else if (bullet->owner->classDef == CD_URSULA)
{ {
radio_setMessage(FS_URSULA, ursulaPlayerHitMessage[rand() % nUrsulaPlayerHitMessage], 0); radio_setMessage(FS_URSULA, ursulaPlayerHitMessage[rand() % NMSG_URSULA_PLAYER_HIT], 0);
} }
} }
@ -1439,15 +1439,15 @@ static void game_doPlayer()
{ {
if (xmoved) if (xmoved)
{ {
if (player.x < xViewBorder) if (player.x < X_VIEW_BORDER)
{ {
engine.smx += xViewBorder - player.x; engine.smx += X_VIEW_BORDER - player.x;
player.x = xViewBorder; player.x = X_VIEW_BORDER;
} }
else if (player.x > screen->w - xViewBorder) else if (player.x > screen->w - X_VIEW_BORDER)
{ {
engine.smx += (screen->w - xViewBorder) - player.x; engine.smx += (screen->w - X_VIEW_BORDER) - player.x;
player.x = screen->w - xViewBorder; player.x = screen->w - X_VIEW_BORDER;
} }
} }
else if (game.difficulty != DIFFICULTY_ORIGINAL) else if (game.difficulty != DIFFICULTY_ORIGINAL)
@ -1455,13 +1455,13 @@ static void game_doPlayer()
cd = player.x - screen->w / 2; cd = player.x - screen->w / 2;
if (cd < 0) if (cd < 0)
{ {
cc = MAX(cd / 10, MAX(0, engine.ssx) - cameraMaxSpeed); cc = MAX(cd / 10, MAX(0, engine.ssx) - CAMERA_MAX_SPEED);
player.x -= cc; player.x -= cc;
engine.smx -= cc; engine.smx -= cc;
} }
else if (cd > 0) else if (cd > 0)
{ {
cc = MIN(cd / 10, cameraMaxSpeed + MIN(0, engine.ssx)); cc = MIN(cd / 10, CAMERA_MAX_SPEED + MIN(0, engine.ssx));
player.x -= cc; player.x -= cc;
engine.smx -= cc; engine.smx -= cc;
} }
@ -1469,15 +1469,15 @@ static void game_doPlayer()
if (ymoved) if (ymoved)
{ {
if (player.y < yViewBorder) if (player.y < Y_VIEW_BORDER)
{ {
engine.smy += yViewBorder - player.y; engine.smy += Y_VIEW_BORDER - player.y;
player.y = yViewBorder; player.y = Y_VIEW_BORDER;
} }
else if (player.y > screen->h - yViewBorder) else if (player.y > screen->h - Y_VIEW_BORDER)
{ {
engine.smy += (screen->h - yViewBorder) - player.y; engine.smy += (screen->h - Y_VIEW_BORDER) - player.y;
player.y = screen->h - yViewBorder; player.y = screen->h - Y_VIEW_BORDER;
} }
} }
else if (game.difficulty != DIFFICULTY_ORIGINAL) else if (game.difficulty != DIFFICULTY_ORIGINAL)
@ -1485,13 +1485,13 @@ static void game_doPlayer()
cd = player.y - screen->h / 2; cd = player.y - screen->h / 2;
if (cd < 0) if (cd < 0)
{ {
cc = MAX(cd / 10, MAX(0, engine.ssy) - cameraMaxSpeed); cc = MAX(cd / 10, MAX(0, engine.ssy) - CAMERA_MAX_SPEED);
player.y -= cc; player.y -= cc;
engine.smy -= cc; engine.smy -= cc;
} }
else if (cd > 0) else if (cd > 0)
{ {
cc = MIN(cd / 10, cameraMaxSpeed + MIN(0, engine.ssy)); cc = MIN(cd / 10, CAMERA_MAX_SPEED + MIN(0, engine.ssy));
player.y -= cc; player.y -= cc;
engine.smy -= cc; engine.smy -= cc;
} }
@ -1499,8 +1499,8 @@ static void game_doPlayer()
} }
else else
{ {
LIMIT(player.x, xViewBorder, screen->w - xViewBorder); LIMIT(player.x, X_VIEW_BORDER, screen->w - X_VIEW_BORDER);
LIMIT(player.y, yViewBorder, screen->h - yViewBorder); LIMIT(player.y, Y_VIEW_BORDER, screen->h - Y_VIEW_BORDER);
} }
} }
@ -1531,9 +1531,9 @@ static void game_doPlayer()
if (aliens[ALIEN_KLINE].active) if (aliens[ALIEN_KLINE].active)
{ {
if (game.area == MISN_VENUS) if (game.area == MISN_VENUS)
radio_setMessage(FS_KLINE, klineVenusInsult[rand() % nKlineVenusInsult], 1); radio_setMessage(FS_KLINE, klineVenusInsult[rand() % NMSG_KLINE_VENUS_INSULT], 1);
else else
radio_setMessage(FS_KLINE, klineInsult[rand() % nKlineInsult], 1); radio_setMessage(FS_KLINE, klineInsult[rand() % NMSG_KLINE_INSULT], 1);
} }
else if ((aliens[ALIEN_BOSS].active) && (aliens[ALIEN_BOSS].classDef == CD_KRASS)) else if ((aliens[ALIEN_BOSS].active) && (aliens[ALIEN_BOSS].classDef == CD_KRASS))
{ {
@ -1560,8 +1560,8 @@ static void game_doPlayer()
} }
} }
LIMIT(engine.ssx, -cameraMaxSpeed, cameraMaxSpeed); LIMIT(engine.ssx, -CAMERA_MAX_SPEED, CAMERA_MAX_SPEED);
LIMIT(engine.ssy, -cameraMaxSpeed, cameraMaxSpeed); LIMIT(engine.ssy, -CAMERA_MAX_SPEED, CAMERA_MAX_SPEED);
// Specific for the mission were you have to chase the Executive Transport // Specific for the mission were you have to chase the Executive Transport
if (((game.area == MISN_ELLESH) && (player.shield > 0)) || if (((game.area == MISN_ELLESH) && (player.shield > 0)) ||
@ -2580,3 +2580,10 @@ int game_mainLoop()
return rtn; return rtn;
} }
#undef NMSG_KLINE_INSULT
#undef NMSG_KLINE_VENUS_INSULT
#undef NMSG_PHOEBE_PLAYER_HIT
#undef NMSG_URSULA_PLAYER_HIT
#undef NMSG_PLAYER_PHOEBE_HIT
#undef NMSG_PLAYER_URSULA_HIT

View File

@ -1492,7 +1492,7 @@ int intermission()
case 3: case 3:
x = screen->w / 2 - savesSurface->w / 2; x = screen->w / 2 - savesSurface->w / 2;
y = intermission_ycenter - savesSurface->h / 2; y = INTERMISSION_YCENTER - savesSurface->h / 2;
screen_blit(savesSurface, x, y); screen_blit(savesSurface, x, y);
saveSlot = save_showSlots(savesSurface, saveSlot, x, y); saveSlot = save_showSlots(savesSurface, saveSlot, x, y);
break; break;
@ -1503,14 +1503,14 @@ int intermission()
case 5: case 5:
x = screen->w / 2 - commsSurface->w / 2; x = screen->w / 2 - commsSurface->w / 2;
y = intermission_ycenter - commsSurface->h / 2; y = INTERMISSION_YCENTER - commsSurface->h / 2;
screen_blit(commsSurface, x, y); screen_blit(commsSurface, x, y);
intermission_doComms(commsSurface, x, y); intermission_doComms(commsSurface, x, y);
break; break;
case 6: case 6:
x = screen->w / 2 - optionsSurface->w / 2; x = screen->w / 2 - optionsSurface->w / 2;
y = intermission_ycenter - optionsSurface->h / 2; y = INTERMISSION_YCENTER - optionsSurface->h / 2;
screen_blit(optionsSurface, x, y); screen_blit(optionsSurface, x, y);
intermission_doOptions(optionsSurface, x, y); intermission_doOptions(optionsSurface, x, y);
break; break;

View File

@ -25,7 +25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
extern Planet intermission_planets[MAX_PLANETS]; extern Planet intermission_planets[MAX_PLANETS];
const int intermission_ycenter = 50 + (DEFAULT_SCREEN_HEIGHT - 150) / 2; #define INTERMISSION_YCENTER (50 + (screen->h - 150) / 2)
void intermission_initPlanets(int system); void intermission_initPlanets(int system);
void intermission_unlockPlanets(); void intermission_unlockPlanets();

View File

@ -176,7 +176,7 @@ void ship_fireRay(Object *ship)
player.image[0]->h, ray.x, ray.y, ray.w, ray.h) && player.image[0]->h, ray.x, ray.y, ray.w, ray.h) &&
(!engine.cheatShield) && (engine.missionCompleteTimer == 0)) (!engine.cheatShield) && (engine.missionCompleteTimer == 0))
{ {
player_damage(1, rayDamageDelay); player_damage(1, RAY_DAMAGE_DELAY);
explosion_add(player.x, player.y, SP_SMALL_EXPLOSION); explosion_add(player.x, player.y, SP_SMALL_EXPLOSION);
audio_playSound(SFX_HIT, player.x, player.y); audio_playSound(SFX_HIT, player.x, player.y);

View File

@ -31,6 +31,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "player.h" #include "player.h"
#include "save.h" #include "save.h"
#include "screen.h" #include "screen.h"
#include "shop.h"
#include "weapons.h" #include "weapons.h"
typedef struct ShopItem_ { typedef struct ShopItem_ {
@ -43,11 +44,6 @@ typedef struct ShopItem_ {
} ShopItem; } ShopItem;
static const int shop_w = 600;
static const int shop_x = DEFAULT_SCREEN_WIDTH / 2 - shop_w / 2;
static const int shop_h = 336;
static const int shop_y = intermission_ycenter - shop_h / 2;
static ShopItem shopItems[SHOP_MAX]; static ShopItem shopItems[SHOP_MAX];
static int shopSelectedItem; static int shopSelectedItem;
@ -265,8 +261,8 @@ static void drawShop()
for (int i = 0 ; i < icons ; i++) for (int i = 0 ; i < icons ; i++)
{ {
gfx_blit(gfx_sprites[shopItems[i].image], shopItems[i].x + 10 - shop_x, gfx_blit(gfx_sprites[shopItems[i].image], shopItems[i].x + 10 - SHOP_X,
shopItems[i].y - shop_y - 48, gfx_shopSprites[SHOP_S_CATALOG]); shopItems[i].y - SHOP_Y - 48, gfx_shopSprites[SHOP_S_CATALOG]);
} }
sprintf(description, "Shield : %d", player.maxShield); sprintf(description, "Shield : %d", player.maxShield);
@ -437,7 +433,7 @@ void shop_init()
shopItems[SHOP_HOMING_MISSILE].price = 7500; shopItems[SHOP_HOMING_MISSILE].price = 7500;
strcpy(shopItems[SHOP_HOMING_MISSILE].name, "Homing Missile Launcher"); strcpy(shopItems[SHOP_HOMING_MISSILE].name, "Homing Missile Launcher");
sprintf(shopItems[SHOP_HOMING_MISSILE].description, sprintf(shopItems[SHOP_HOMING_MISSILE].description,
"Fires homing missile (max %i missiles)", maxHoming); "Fires homing missile (max %i missiles)", MAX_HOMING);
shopItems[SHOP_HOMING_MISSILE].image = 22; shopItems[SHOP_HOMING_MISSILE].image = 22;
shopItems[SHOP_CHARGER].price = 10000; shopItems[SHOP_CHARGER].price = 10000;
@ -449,66 +445,66 @@ void shop_init()
strcpy(shopItems[SHOP_DOUBLE_HOMING_MISSILES].name, strcpy(shopItems[SHOP_DOUBLE_HOMING_MISSILES].name,
"Dual Homing Missile Launcher"); "Dual Homing Missile Launcher");
sprintf(shopItems[SHOP_DOUBLE_HOMING_MISSILES].description, sprintf(shopItems[SHOP_DOUBLE_HOMING_MISSILES].description,
"Fires two homing missiles (max %i missiles)", maxDoubleHoming); "Fires two homing missiles (max %i missiles)", MAX_DOUBLE_HOMING);
shopItems[SHOP_DOUBLE_HOMING_MISSILES].image = 24; shopItems[SHOP_DOUBLE_HOMING_MISSILES].image = 24;
shopItems[SHOP_MICRO_HOMING_MISSILES].price = 15000; shopItems[SHOP_MICRO_HOMING_MISSILES].price = 15000;
strcpy(shopItems[SHOP_MICRO_HOMING_MISSILES].name, strcpy(shopItems[SHOP_MICRO_HOMING_MISSILES].name,
"Homing Micro Missile Launcher"); "Homing Micro Missile Launcher");
sprintf(shopItems[SHOP_MICRO_HOMING_MISSILES].description, sprintf(shopItems[SHOP_MICRO_HOMING_MISSILES].description,
"Fires several small homing missiles (max %i missiles)", maxMicroHoming); "Fires several small homing missiles (max %i missiles)", MAX_MICRO_HOMING);
shopItems[SHOP_MICRO_HOMING_MISSILES].image = 25; shopItems[SHOP_MICRO_HOMING_MISSILES].image = 25;
shopItems[SHOP_PLASMA_MAX_OUTPUT].x = shop_x; shopItems[SHOP_PLASMA_MAX_OUTPUT].x = SHOP_X;
shopItems[SHOP_PLASMA_MAX_OUTPUT].y = shop_y + 70; shopItems[SHOP_PLASMA_MAX_OUTPUT].y = SHOP_Y + 70;
shopItems[SHOP_PLASMA_MAX_DAMAGE].x = shop_x + 50; shopItems[SHOP_PLASMA_MAX_DAMAGE].x = SHOP_X + 50;
shopItems[SHOP_PLASMA_MAX_DAMAGE].y = shop_y + 70; shopItems[SHOP_PLASMA_MAX_DAMAGE].y = SHOP_Y + 70;
shopItems[SHOP_PLASMA_MAX_RATE].x = shop_x + 100; shopItems[SHOP_PLASMA_MAX_RATE].x = SHOP_X + 100;
shopItems[SHOP_PLASMA_MAX_RATE].y = shop_y + 70; shopItems[SHOP_PLASMA_MAX_RATE].y = SHOP_Y + 70;
shopItems[SHOP_PLASMA_MIN_OUTPUT].x = shop_x; shopItems[SHOP_PLASMA_MIN_OUTPUT].x = SHOP_X;
shopItems[SHOP_PLASMA_MIN_OUTPUT].y = shop_y + 130; shopItems[SHOP_PLASMA_MIN_OUTPUT].y = SHOP_Y + 130;
shopItems[SHOP_PLASMA_MIN_DAMAGE].x = shop_x + 50; shopItems[SHOP_PLASMA_MIN_DAMAGE].x = SHOP_X + 50;
shopItems[SHOP_PLASMA_MIN_DAMAGE].y = shop_y + 130; shopItems[SHOP_PLASMA_MIN_DAMAGE].y = SHOP_Y + 130;
shopItems[SHOP_PLASMA_MIN_RATE].x = shop_x + 100; shopItems[SHOP_PLASMA_MIN_RATE].x = SHOP_X + 100;
shopItems[SHOP_PLASMA_MIN_RATE].y = shop_y + 130; shopItems[SHOP_PLASMA_MIN_RATE].y = SHOP_Y + 130;
shopItems[SHOP_PLASMA_AMMO].x = shop_x + 250; shopItems[SHOP_PLASMA_AMMO].x = SHOP_X + 250;
shopItems[SHOP_PLASMA_AMMO].y = shop_y + 70; shopItems[SHOP_PLASMA_AMMO].y = SHOP_Y + 70;
shopItems[SHOP_ROCKET_AMMO].x = shop_x + 300; shopItems[SHOP_ROCKET_AMMO].x = SHOP_X + 300;
shopItems[SHOP_ROCKET_AMMO].y = shop_y + 70; shopItems[SHOP_ROCKET_AMMO].y = SHOP_Y + 70;
shopItems[SHOP_PLASMA_MAX_AMMO].x = shop_x + 350; shopItems[SHOP_PLASMA_MAX_AMMO].x = SHOP_X + 350;
shopItems[SHOP_PLASMA_MAX_AMMO].y = shop_y + 70; shopItems[SHOP_PLASMA_MAX_AMMO].y = SHOP_Y + 70;
shopItems[SHOP_ROCKET_MAX_AMMO].x = shop_x + 400; shopItems[SHOP_ROCKET_MAX_AMMO].x = SHOP_X + 400;
shopItems[SHOP_ROCKET_MAX_AMMO].y = shop_y + 70; shopItems[SHOP_ROCKET_MAX_AMMO].y = SHOP_Y + 70;
shopItems[SHOP_DOUBLE_ROCKETS].x = shop_x + 250; shopItems[SHOP_DOUBLE_ROCKETS].x = SHOP_X + 250;
shopItems[SHOP_DOUBLE_ROCKETS].y = shop_y + 130; shopItems[SHOP_DOUBLE_ROCKETS].y = SHOP_Y + 130;
shopItems[SHOP_MICRO_ROCKETS].x = shop_x + 300; shopItems[SHOP_MICRO_ROCKETS].x = SHOP_X + 300;
shopItems[SHOP_MICRO_ROCKETS].y = shop_y + 130; shopItems[SHOP_MICRO_ROCKETS].y = SHOP_Y + 130;
shopItems[SHOP_LASER].x = shop_x + 350; shopItems[SHOP_LASER].x = SHOP_X + 350;
shopItems[SHOP_LASER].y = shop_y + 130; shopItems[SHOP_LASER].y = SHOP_Y + 130;
shopItems[SHOP_HOMING_MISSILE].x = shop_x + 400; shopItems[SHOP_HOMING_MISSILE].x = SHOP_X + 400;
shopItems[SHOP_HOMING_MISSILE].y = shop_y + 130; shopItems[SHOP_HOMING_MISSILE].y = SHOP_Y + 130;
shopItems[SHOP_CHARGER].x = shop_x + 450; shopItems[SHOP_CHARGER].x = SHOP_X + 450;
shopItems[SHOP_CHARGER].y = shop_y + 130; shopItems[SHOP_CHARGER].y = SHOP_Y + 130;
shopItems[SHOP_DOUBLE_HOMING_MISSILES].x = shop_x + 500; shopItems[SHOP_DOUBLE_HOMING_MISSILES].x = SHOP_X + 500;
shopItems[SHOP_DOUBLE_HOMING_MISSILES].y = shop_y + 130; shopItems[SHOP_DOUBLE_HOMING_MISSILES].y = SHOP_Y + 130;
shopItems[SHOP_MICRO_HOMING_MISSILES].x = shop_x + 550; shopItems[SHOP_MICRO_HOMING_MISSILES].x = SHOP_X + 550;
shopItems[SHOP_MICRO_HOMING_MISSILES].y = shop_y + 130; shopItems[SHOP_MICRO_HOMING_MISSILES].y = SHOP_Y + 130;
shopSelectedItem = -1; shopSelectedItem = -1;
@ -609,19 +605,19 @@ static void buy(int i)
return; return;
} }
if ((player.weaponType[1] == W_HOMING_MISSILE) && if ((player.weaponType[1] == W_HOMING_MISSILE) &&
(player.ammo[1] >= maxHoming)) (player.ammo[1] >= MAX_HOMING))
{ {
shopSelectedItem = -9; shopSelectedItem = -9;
return; return;
} }
if ((player.weaponType[1] == W_DOUBLE_HOMING_MISSILES) && if ((player.weaponType[1] == W_DOUBLE_HOMING_MISSILES) &&
(player.ammo[1] >= maxDoubleHoming)) (player.ammo[1] >= MAX_DOUBLE_HOMING))
{ {
shopSelectedItem = -9; shopSelectedItem = -9;
return; return;
} }
if ((player.weaponType[1] == W_MICRO_HOMING_MISSILES) && if ((player.weaponType[1] == W_MICRO_HOMING_MISSILES) &&
(player.ammo[1] >= maxMicroHoming)) (player.ammo[1] >= MAX_MICRO_HOMING))
{ {
shopSelectedItem = -9; shopSelectedItem = -9;
return; return;
@ -679,19 +675,19 @@ static void buy(int i)
return; return;
} }
if ((player.weaponType[1] == W_HOMING_MISSILE) && if ((player.weaponType[1] == W_HOMING_MISSILE) &&
(game.maxRocketAmmo >= maxHoming)) (game.maxRocketAmmo >= MAX_HOMING))
{ {
shopSelectedItem = -9; shopSelectedItem = -9;
return; return;
} }
if ((player.weaponType[1] == W_DOUBLE_HOMING_MISSILES) && if ((player.weaponType[1] == W_DOUBLE_HOMING_MISSILES) &&
(game.maxRocketAmmo >= maxDoubleHoming)) (game.maxRocketAmmo >= MAX_DOUBLE_HOMING))
{ {
shopSelectedItem = -9; shopSelectedItem = -9;
return; return;
} }
if ((player.weaponType[1] == W_MICRO_HOMING_MISSILES) && if ((player.weaponType[1] == W_MICRO_HOMING_MISSILES) &&
(game.maxRocketAmmo >= maxMicroHoming)) (game.maxRocketAmmo >= MAX_MICRO_HOMING))
{ {
shopSelectedItem = -9; shopSelectedItem = -9;
return; return;
@ -757,10 +753,10 @@ static void buy(int i)
shop_sellSecondaryWeapon(); shop_sellSecondaryWeapon();
player.weaponType[1] = W_HOMING_MISSILE; player.weaponType[1] = W_HOMING_MISSILE;
while (game.maxRocketAmmo > maxHoming) while (game.maxRocketAmmo > MAX_HOMING)
sell(SHOP_ROCKET_MAX_AMMO); sell(SHOP_ROCKET_MAX_AMMO);
LIMIT(game.maxRocketAmmo, 5, maxHoming); LIMIT(game.maxRocketAmmo, 5, MAX_HOMING);
shopSelectedItem = -1; shopSelectedItem = -1;
break; break;
@ -793,10 +789,10 @@ static void buy(int i)
shop_sellSecondaryWeapon(); shop_sellSecondaryWeapon();
player.weaponType[1] = W_DOUBLE_HOMING_MISSILES; player.weaponType[1] = W_DOUBLE_HOMING_MISSILES;
while (game.maxRocketAmmo > maxDoubleHoming) while (game.maxRocketAmmo > MAX_DOUBLE_HOMING)
sell(SHOP_ROCKET_MAX_AMMO); sell(SHOP_ROCKET_MAX_AMMO);
LIMIT(game.maxRocketAmmo, 5, maxDoubleHoming); LIMIT(game.maxRocketAmmo, 5, MAX_DOUBLE_HOMING);
shopSelectedItem = -1; shopSelectedItem = -1;
break; break;
@ -809,10 +805,10 @@ static void buy(int i)
shop_sellSecondaryWeapon(); shop_sellSecondaryWeapon();
player.weaponType[1] = W_MICRO_HOMING_MISSILES; player.weaponType[1] = W_MICRO_HOMING_MISSILES;
while (game.maxRocketAmmo > maxMicroHoming) while (game.maxRocketAmmo > MAX_MICRO_HOMING)
sell(SHOP_ROCKET_MAX_AMMO); sell(SHOP_ROCKET_MAX_AMMO);
LIMIT(game.maxRocketAmmo, 5, maxMicroHoming); LIMIT(game.maxRocketAmmo, 5, MAX_MICRO_HOMING);
shopSelectedItem = -1; shopSelectedItem = -1;
break; break;
} }
@ -1048,17 +1044,17 @@ static void sell(int i)
void shop_show() void shop_show()
{ {
int icons = SHOP_MAX; int icons = SHOP_MAX;
int sell_x = shop_x + shop_w - gfx_sprites[SP_SELL]->w - 2; int sell_x = SHOP_X + SHOP_WIDTH - gfx_sprites[SP_SELL]->w - 2;
int sell_y = shop_y + 183; int sell_y = SHOP_Y + 183;
int buy_x = sell_x - gfx_sprites[SP_BUY]->w - 5; int buy_x = sell_x - gfx_sprites[SP_BUY]->w - 5;
int buy_y = shop_y + 183; int buy_y = SHOP_Y + 183;
screen_blit(gfx_shopSprites[SHOP_S_SHIP_INFO], shop_x, shop_y); screen_blit(gfx_shopSprites[SHOP_S_SHIP_INFO], SHOP_X, SHOP_Y);
screen_blit(gfx_shopSprites[SHOP_S_CATALOG], shop_x, shop_y + 50); screen_blit(gfx_shopSprites[SHOP_S_CATALOG], SHOP_X, SHOP_Y + 50);
screen_blit(gfx_shopSprites[SHOP_S_ITEM_INFO], shop_x, shop_y + 180); screen_blit(gfx_shopSprites[SHOP_S_ITEM_INFO], SHOP_X, SHOP_Y + 180);
screen_blit(gfx_shopSprites[SHOP_S_PRIMARY], shop_x, shop_y + 245); screen_blit(gfx_shopSprites[SHOP_S_PRIMARY], SHOP_X, SHOP_Y + 245);
screen_blit(gfx_shopSprites[SHOP_S_POWERUP], shop_x + 203, shop_y + 245); screen_blit(gfx_shopSprites[SHOP_S_POWERUP], SHOP_X + 203, SHOP_Y + 245);
screen_blit(gfx_shopSprites[SHOP_S_SECONDARY], shop_x + 406, shop_y + 245); screen_blit(gfx_shopSprites[SHOP_S_SECONDARY], SHOP_X + 406, SHOP_Y + 245);
if (shopSelectedItem > -1) if (shopSelectedItem > -1)
{ {
@ -1066,7 +1062,7 @@ void shop_show()
screen_blit(gfx_sprites[SP_SELL], sell_x, sell_y); screen_blit(gfx_sprites[SP_SELL], sell_x, sell_y);
} }
screen_blit(gfx_sprites[SP_FIREFLY], shop_x + 280, shop_y + 15); screen_blit(gfx_sprites[SP_FIREFLY], SHOP_X + 280, SHOP_Y + 15);
if (game.system == 0) if (game.system == 0)
icons = SHOP_DOUBLE_ROCKETS + 1; icons = SHOP_DOUBLE_ROCKETS + 1;

View File

@ -23,6 +23,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "defs.h" #include "defs.h"
#include "structs.h" #include "structs.h"
#define SHOP_WIDTH 600
#define SHOP_HEIGHT 336
#define SHOP_X (screen->w / 2 - SHOP_WIDTH / 2)
#define SHOP_Y (INTERMISSION_YCENTER - SHOP_HEIGHT / 2)
void shop_init(); void shop_init();
void shop_show(); void shop_show();