From 651a7f55fbe17708ed83f4ec01844c15bd709353 Mon Sep 17 00:00:00 2001 From: onpon4 Date: Thu, 31 Dec 2015 10:47:27 -0500 Subject: [PATCH] Did some more cleanup, removing more "shape" magic numbers. --- src/defs.h | 30 +++++++++- src/game.cpp | 62 +++++++++---------- src/gfx.cpp | 30 ++++------ src/gfx.h | 9 ++- src/intermission.cpp | 138 +++++++++++++++++++++---------------------- src/loadSave.cpp | 16 ++--- src/misc.cpp | 20 ++++--- src/missions.cpp | 36 +++++------ src/resources.cpp | 2 +- src/screen.cpp | 5 ++ src/screen.h | 1 + src/shop.cpp | 32 +++++----- src/title.cpp | 74 ++++++++++++----------- 13 files changed, 245 insertions(+), 210 deletions(-) diff --git a/src/defs.h b/src/defs.h index 432daec..d144762 100644 --- a/src/defs.h +++ b/src/defs.h @@ -100,6 +100,8 @@ along with this program. If not, see . #define MAX_FONTSHAPES 6 #define MAX_SHOPSHAPES 6 #define MAX_CARGO 20 +#define MAX_INFOLINES 3 +#define MAX_STATUSLINES 30 #define SHIP_HIT_INDEX 60 @@ -261,7 +263,7 @@ enum { CD_URSULA }; -// Text shapes +// Text shapes (main menu) enum { TS_PRESENTS, @@ -291,6 +293,32 @@ enum { TS_DIFFICULTY }; +// Text shapes (intermission) +enum { +}; + +// Text shapes (mission) +enum { + + TS_RADIO = MAX_INFOLINES, + TS_SHIELD, + TS_PLASMA_T, + TS_AMMO_T, + TS_TARGET, + TS_CASH_T, + TS_OBJECTIVES_T, + TS_TIME_T, + TS_POWER, + TS_OUTPUT, + TS_COOLER, + TS_PAUSED, + TS_TIME, + TS_PLASMA, + TS_AMMO, + TS_CASH, + TS_OBJECTIVES +}; + // Menu types enum { diff --git a/src/game.cpp b/src/game.cpp index b9fa2e2..6012cbb 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -1617,7 +1617,7 @@ static void game_doArrow(int i) if (i != engine.targetIndex) return; - if (gfx_text[3].life > 0) + if (gfx_text[TS_RADIO].life > 0) return; if (sxy == sx) { @@ -1649,24 +1649,24 @@ static void game_doHud() fontColor = FONT_YELLOW; else fontColor = FONT_WHITE; - screen_blitText(10); // time remaining + screen_blitText(TS_TIME_T); sprintf(text, "%.2d:%.2d", engine.minutes, engine.seconds); - textSurface(30, text, 410, 21, fontColor); - screen_blitText(30); + gfx_createTextObject(TS_TIME, text, 410, 21, fontColor); + screen_blitText(TS_TIME); } if (game.area != MISN_INTERCEPTION) { - screen_blitText(9); // mission objectives + screen_blitText(TS_OBJECTIVES_T); sprintf(text, "%d", (currentMission.remainingObjectives1 + currentMission.remainingObjectives2)); - textSurface(39, text, 745, 21, FONT_WHITE); - screen_blitText(39); + gfx_createTextObject(TS_OBJECTIVES, text, 745, 21, FONT_WHITE); + screen_blitText(TS_OBJECTIVES); } - screen_blitText(8); // cash + screen_blitText(TS_CASH_T); // cash sprintf(text, "%.6d", game.cash); - textSurface(38, text, 90, 21, FONT_WHITE); - screen_blitText(38); + gfx_createTextObject(TS_CASH, text, 90, 21, FONT_WHITE); + screen_blitText(TS_CASH); for (int i = 0; i < ALIEN_MAX; i++) game_doArrow(i); @@ -1677,12 +1677,12 @@ static void game_doHud() if (player.ammo[0] <= 25) fontColor = FONT_YELLOW; if (player.ammo[0] <= 10) fontColor = FONT_RED; } - screen_blitText(5); // plasma ammo + screen_blitText(TS_PLASMA_T); sprintf(text, "%.3d", player.ammo[0]); - textSurface(35, text, 320, 551, fontColor); - screen_blitText(35); + gfx_createTextObject(TS_PLASMA, text, 320, 551, fontColor); + screen_blitText(TS_PLASMA); - screen_blitText(6); + screen_blitText(TS_AMMO_T); if ((player.weaponType[1] != W_CHARGER) && (player.weaponType[1] != W_LASER)) { @@ -1691,8 +1691,8 @@ static void game_doHud() else fontColor = FONT_WHITE; sprintf(text, "%.3d", player.ammo[1]); // rocket ammo - textSurface(36, text, 465, 551, fontColor); - screen_blitText(36); + gfx_createTextObject(TS_AMMO, text, 465, 551, fontColor); + screen_blitText(TS_AMMO); } if (((player.weaponType[1] == W_CHARGER) || (player.weaponType[1] == W_LASER)) && (player.ammo[1] > 0)) @@ -1767,7 +1767,7 @@ static void game_doHud() } } - for (int i = 0 ; i < 3 ; i++) + for (int i = 0 ; i < MAX_INFOLINES ; i++) { if (gfx_text[i].life > 0) { @@ -1777,18 +1777,20 @@ static void game_doHud() if (gfx_text[i].life == 0) { - copyInfoLine(i + 1, i); - copyInfoLine(i + 2, i + 1); - gfx_text[2].life = 0; + for (int j = i ; j < MAX_INFOLINES - 1 ; j++) + { + copyInfoLine(j + 1, j); + } + gfx_text[MAX_INFOLINES - 1].life = 0; } } } // Show the radio message if there is one - if (gfx_text[3].life > 0) + if (gfx_text[TS_RADIO].life > 0) { - screen_blit(messageBox, (800 - messageBox->w) / 2, 50); - gfx_text[3].life--; + screen_blit(messageBox, (screen->w - messageBox->w) / 2, 50); + gfx_text[TS_RADIO].life--; } // Do the target's remaining shield (if required) @@ -1796,7 +1798,7 @@ static void game_doHud() { if ((engine.targetIndex > -1) && (aliens[engine.targetIndex].shield > 0) && (engine.targetIndex > 9)) { - screen_blitText(7); + screen_blitText(TS_TARGET); bar.w = 1; bar.h = 12; bar.x = 620; @@ -1816,7 +1818,7 @@ static void game_doHud() } } - screen_blitText(11); + screen_blitText(TS_POWER); bar.w = 25; bar.h = 12; @@ -1835,7 +1837,7 @@ static void game_doHud() bar.x += 30; } - screen_blitText(12); + screen_blitText(TS_OUTPUT); bar.w = 25; bar.h = 12; @@ -1856,7 +1858,7 @@ static void game_doHud() bar.x += 30; } - screen_blitText(13); + screen_blitText(TS_COOLER); bar.w = 25; bar.h = 12; @@ -1876,7 +1878,7 @@ static void game_doHud() bar.x += 30; } - screen_blitText(4); + screen_blitText(TS_SHIELD); if (player.shield < 1) return; @@ -2250,8 +2252,8 @@ int game_mainLoop() if (engine.paused) { - textSurface(22, "PAUSED", -1, screen->h / 2, FONT_WHITE); - screen_blitText(22); + gfx_createTextObject(TS_PAUSED, "PAUSED", -1, screen->h / 2, FONT_WHITE); + screen_blitText(TS_PAUSED); renderer_update(); audio_pauseMusic(); diff --git a/src/gfx.cpp b/src/gfx.cpp index ce356f4..729bdbc 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -303,7 +303,7 @@ void gfx_drawCircle(int xc, int yc, int R, SDL_Surface *PIX, int col) } } -void blevelRect(SDL_Surface *dest, int x, int y, int w, int h, Uint8 red, Uint8 green, Uint8 blue) +void gfx_drawRect(SDL_Surface *dest, int x, int y, int w, int h, Uint8 red, Uint8 green, Uint8 blue) { SDL_Rect r = {(int16_t)x, (int16_t)y, (uint16_t)w, (uint16_t)h}; SDL_FillRect(dest, &r, SDL_MapRGB(screen->format, red, green, blue)); @@ -314,12 +314,7 @@ void blevelRect(SDL_Surface *dest, int x, int y, int w, int h, Uint8 red, Uint8 gfx_drawLine(dest, x + w, y + 1, x + w, y + h, SDL_MapRGB(screen->format, 128, 128, 128)); } -void blevelRect(int x, int y, int w, int h, Uint8 red, Uint8 green, Uint8 blue) -{ - blevelRect(screen, x, y, w, h, red, green, blue); -} - -SDL_Surface *createSurface(int width, int height) +SDL_Surface *gfx_createSurface(int width, int height) { SDL_Surface *surface; Uint32 rmask, gmask, bmask, amask; @@ -348,23 +343,24 @@ SDL_Surface *createSurface(int width, int height) return surface; } -SDL_Surface *textSurface(const char *inString, int color) +SDL_Surface *gfx_createTextSurface(const char *inString, int color) { - SDL_Surface *surface = createSurface(strlen(inString) * 9, 16); + // XXX: Magic numbers + SDL_Surface *surface = gfx_createSurface(strlen(inString) * 9, 16); gfx_renderString(inString, 1, 1, color, 0, surface); return gfx_setTransparent(surface); } -void textSurface(int index, const char *inString, int x, int y, int fontColor) +void gfx_createTextObject(int index, const char *inString, int x, int y, int fontColor) { /* Shortcut: if we already rendered the same string in the same color, don't render it again. */ if(gfx_text[index].text && gfx_text[index].image && gfx_text[index].fontColor == fontColor && !strcmp(gfx_text[index].text, inString)) { gfx_text[index].x = x; gfx_text[index].y = y; if (x == -1) - gfx_text[index].x = (800 - gfx_text[index].image->w) / 2; + gfx_text[index].x = (screen->w - gfx_text[index].image->w) / 2; return; } @@ -376,14 +372,14 @@ void textSurface(int index, const char *inString, int x, int y, int fontColor) { SDL_FreeSurface(gfx_text[index].image); } - gfx_text[index].image = textSurface(inString, fontColor); + gfx_text[index].image = gfx_createTextSurface(inString, fontColor); if (x == -1) - gfx_text[index].x = (800 - gfx_text[index].image->w) / 2; + gfx_text[index].x = (screen->w - gfx_text[index].image->w) / 2; } SDL_Surface *alphaRect(int width, int height, Uint8 red, Uint8 green, Uint8 blue) { - SDL_Surface *surface = createSurface(width, height); + SDL_Surface *surface = gfx_createSurface(width, height); SDL_FillRect(surface, NULL, SDL_MapRGB(surface->format, red, green, blue)); @@ -403,18 +399,18 @@ void createMessageBox(SDL_Surface *face, const char *message, signed char transp if (transparent) messageBox = alphaRect(550, 60, 0x00, 0x00, 0x00); else - messageBox = createSurface(550, 60); + messageBox = gfx_createSurface(550, 60); signed char x = 60; if (face != NULL) { - blevelRect(messageBox, 0, 0, messageBox->w - 1, messageBox->h - 1, 0x00, 0x00, 0xaa); + gfx_drawRect(messageBox, 0, 0, messageBox->w - 1, messageBox->h - 1, 0x00, 0x00, 0xaa); gfx_blit(face, 5, 5, messageBox); } else { - blevelRect(messageBox, 0, 0, messageBox->w - 1, messageBox->h - 1, 0x00, 0x00, 0x00); + gfx_drawRect(messageBox, 0, 0, messageBox->w - 1, messageBox->h - 1, 0x00, 0x00, 0x00); x = 10; } diff --git a/src/gfx.h b/src/gfx.h index fc1364c..0e5fd56 100644 --- a/src/gfx.h +++ b/src/gfx.h @@ -38,11 +38,10 @@ int gfx_renderString(const char *in, int x, int y, int fontColor, int wrap, SDL_ void gfx_putPixel(SDL_Surface *surface, int x, int y, Uint32 pixel); void gfx_drawLine(SDL_Surface *dest, int x1, int y1, int x2, int y2, int col); void gfx_drawCircle(int xc, int yc, int R, SDL_Surface *PIX, int col); -extern void blevelRect(SDL_Surface *dest, int x, int y, int w, int h, Uint8 red, Uint8 green, Uint8 blue); -extern void blevelRect(int x, int y, int w, int h, Uint8 red, Uint8 green, Uint8 blue); -extern SDL_Surface *createSurface(int width, int height); -extern SDL_Surface *textSurface(const char *inString, int color); -extern void textSurface(int index, const char *inString, int x, int y, int fontColor); +void gfx_drawRect(SDL_Surface *dest, int x, int y, int w, int h, Uint8 red, Uint8 green, Uint8 blue); +SDL_Surface *gfx_createSurface(int width, int height); +SDL_Surface *gfx_createTextSurface(const char *inString, int color); +void gfx_createTextObject(int index, const char *inString, int x, int y, int fontColor); extern SDL_Surface *alphaRect(int width, int height, Uint8 red, Uint8 green, Uint8 blue); extern void createMessageBox(SDL_Surface *face, const char *message, signed char transparent); extern void freeGraphics(); diff --git a/src/intermission.cpp b/src/intermission.cpp index 7d9db0b..f348341 100644 --- a/src/intermission.cpp +++ b/src/intermission.cpp @@ -42,7 +42,7 @@ static void intermission_setStatusLines() sprintf(string, "System : %s", systemNames[game.system]); - textSurface(0, string, 0, 0, FONT_WHITE); + gfx_createTextObject(0, string, 0, 0, FONT_WHITE); signed char total = 0; signed char completed = 0; @@ -65,86 +65,86 @@ static void intermission_setStatusLines() } for (int i = 0 ; i < 30 ; i++) - textSurface(i, "", 0, 0, FONT_WHITE); + gfx_createTextObject(i, "", 0, 0, FONT_WHITE); sprintf(string, "Missions Completed : %d/%d", completed, total); - textSurface(1, string, 0, 0, FONT_WHITE); + gfx_createTextObject(1, string, 0, 0, FONT_WHITE); sprintf(string, "Shots Fired : %d", game.shots); - textSurface(2, string, 0, 0, FONT_WHITE); + gfx_createTextObject(2, string, 0, 0, FONT_WHITE); sprintf(string, "Hits Scored : %d", game.hits); - textSurface(3, string, 0, 0, FONT_WHITE); + gfx_createTextObject(3, string, 0, 0, FONT_WHITE); sprintf(string, "Accuracy : %d%%", game.accuracy); - textSurface(4, string, 0, 0, FONT_WHITE); + gfx_createTextObject(4, string, 0, 0, FONT_WHITE); sprintf(string, "Enemies Killed by Others : %d", game.totalOtherKills); - textSurface(5, string, 0, 0, FONT_WHITE); + gfx_createTextObject(5, string, 0, 0, FONT_WHITE); sprintf(string, "Total Cash Earned : %d", game.cashEarned); - textSurface(6, string, 0, 0, FONT_WHITE); + gfx_createTextObject(6, string, 0, 0, FONT_WHITE); - textSurface(7, "*** Chris ***", 0, 0, FONT_WHITE); + gfx_createTextObject(7, "*** Chris ***", 0, 0, FONT_WHITE); sprintf(string, "Enemies Killed : %d", game.totalKills); - textSurface(8, string, 0, 0, FONT_WHITE); + gfx_createTextObject(8, string, 0, 0, FONT_WHITE); sprintf(string, "Shield Restores Picked Up : %d", game.shieldPickups); - textSurface(9, string, 0, 0, FONT_WHITE); + gfx_createTextObject(9, string, 0, 0, FONT_WHITE); sprintf(string, "Plasma Cells Picked Up : %d", game.cellPickups); - textSurface(10, string, 0, 0, FONT_WHITE); + gfx_createTextObject(10, string, 0, 0, FONT_WHITE); sprintf(string, "Rockets Picked Up : %d", game.rocketPickups); - textSurface(11, string, 0, 0, FONT_WHITE); + gfx_createTextObject(11, string, 0, 0, FONT_WHITE); sprintf(string, "Powerups Picked Up : %d", game.rocketPickups); - textSurface(12, string, 0, 0, FONT_WHITE); + gfx_createTextObject(12, string, 0, 0, FONT_WHITE); sprintf(string, "Mines Destroyed : %d", game.minesKilled); - textSurface(13, string, 0, 0, FONT_WHITE); + gfx_createTextObject(13, string, 0, 0, FONT_WHITE); sprintf(string, "Slaves Rescued : %d", game.slavesRescued); - textSurface(14, string, 0, 0, FONT_WHITE); + gfx_createTextObject(14, string, 0, 0, FONT_WHITE); sprintf(string, "Cargo Picked Up : %d", game.cargoPickups); - textSurface(15, string, 0, 0, FONT_WHITE); + gfx_createTextObject(15, string, 0, 0, FONT_WHITE); if (game.hasWingMate1) { - textSurface(16, "*** Phoebe ***", 0, 0, FONT_WHITE); + gfx_createTextObject(16, "*** Phoebe ***", 0, 0, FONT_WHITE); sprintf(string, "Enemies Killed : %d", game.wingMate1Kills); - textSurface(17, string, 0, 0, FONT_WHITE); + gfx_createTextObject(17, string, 0, 0, FONT_WHITE); sprintf(string, "Ejections : %d", game.wingMate1Ejects); - textSurface(18, string, 0, 0, FONT_WHITE); + gfx_createTextObject(18, string, 0, 0, FONT_WHITE); } if (game.hasWingMate2) { - textSurface(19, "*** Ursula ***", 0, 0, FONT_WHITE); + gfx_createTextObject(19, "*** Ursula ***", 0, 0, FONT_WHITE); sprintf(string, "Enemies Killed : %d", game.wingMate2Kills); - textSurface(20, string, 0, 0, FONT_WHITE); + gfx_createTextObject(20, string, 0, 0, FONT_WHITE); sprintf(string, "Ejections : %d", game.wingMate2Ejects); - textSurface(21, string, 0, 0, FONT_WHITE); + gfx_createTextObject(21, string, 0, 0, FONT_WHITE); } signed char percentage = 0; if ((game.secondaryMissions > 0) && (game.secondaryMissionsCompleted > 0)) percentage = (game.secondaryMissionsCompleted / game.secondaryMissions) * 100; sprintf(string, "Seconday Missions Completed : %d / %d (%d%%)", game.secondaryMissionsCompleted, game.secondaryMissions, percentage); - textSurface(24, string, 0, 0, FONT_WHITE); + gfx_createTextObject(24, string, 0, 0, FONT_WHITE); int timeTaken = game.timeTaken; snprintf(string, sizeof string, "Total Time : %2d:%02d:%02d", timeTaken / 3600, (timeTaken / 60) % 60, timeTaken % 60); - textSurface(26, string, -1, 0, FONT_WHITE); - textSurface(27, "Current Status", -1, 0, FONT_WHITE); + gfx_createTextObject(26, string, -1, 0, FONT_WHITE); + gfx_createTextObject(27, "Current Status", -1, 0, FONT_WHITE); gfx_text[0].y = 400; gfx_text[0].x = 150; @@ -337,9 +337,9 @@ static void intermission_showStatus(SDL_Surface *infoSurface) } } - blevelRect(100, 80, 600, 20, 0x00, 0x00, 0x99); + screen_drawRect(100, 80, 600, 20, 0x00, 0x00, 0x99); - blevelRect(100, 400, 600, 20, 0x00, 0x00, 0x99); + screen_drawRect(100, 400, 600, 20, 0x00, 0x00, 0x99); screen_blitText(26); screen_blitText(27); @@ -352,7 +352,7 @@ static void intermission_updateCommsSurface(SDL_Surface *comms) char string[255]; - blevelRect(comms, 0, 10, comms->w - 1, 55, 0x00, 0x22, 0x00); + gfx_drawRect(comms, 0, 10, comms->w - 1, 55, 0x00, 0x22, 0x00); gfx_blit(shape[FACE_CHRIS], 20, 15, comms); gfx_renderString("Chris Bainfield", 80, 15, FONT_WHITE, 0, comms); sprintf(string, "Current Location: %s", systemPlanet[game.stationedPlanet].name); @@ -363,7 +363,7 @@ static void intermission_createCommsSurface(SDL_Surface *comms) { engine.commsSection = 0; - blevelRect(comms, 0, 0, comms->w - 1, comms->h - 1, 0x00, 0x00, 0x25); + gfx_drawRect(comms, 0, 0, comms->w - 1, comms->h - 1, 0x00, 0x00, 0x25); gfx_renderString("+++ RECEIVED MESSAGES +++", 115, 80, FONT_GREEN, 0, comms); @@ -374,7 +374,7 @@ static void intermission_createCommsSurface(SDL_Surface *comms) if ((systemPlanet[i].messageSlot != -1) && (systemPlanet[i].missionCompleted == 0)) { yOffset = systemPlanet[i].messageSlot * 60; - blevelRect(comms, 0, 105 + yOffset, comms->w - 1, 55, 0x00, 0x00, 0x77); + gfx_drawRect(comms, 0, 105 + yOffset, comms->w - 1, 55, 0x00, 0x00, 0x77); gfx_blit(shape[systemPlanet[i].faceImage], 20, 110 + yOffset, comms); gfx_renderString(systemPlanet[i].from, 80, 110 + yOffset, FONT_WHITE, 0, comms); gfx_renderString(systemPlanet[i].subject, 80, 130 + yOffset, FONT_CYAN, 0, comms); @@ -407,7 +407,7 @@ static void intermission_createMissionDetailSurface(SDL_Surface *comms, int miss if (mission == -1) return; - blevelRect(comms, 0, 0, comms->w - 1, comms->h - 1, 0x00, 0x00, 0x25); + gfx_drawRect(comms, 0, 0, comms->w - 1, comms->h - 1, 0x00, 0x00, 0x25); sprintf(string, "data/brief%d.txt", mission); @@ -440,7 +440,7 @@ static void intermission_createMissionDetailSurface(SDL_Surface *comms, int miss fclose(fp); - blevelRect(comms, 5, comms->h - 28, 180, 20, 0x25, 0x00, 0x00); + gfx_drawRect(comms, 5, comms->h - 28, 180, 20, 0x25, 0x00, 0x00); gfx_renderString("RETURN TO MESSAGES", 15, comms->h - 25, FONT_WHITE, 1, comms); engine.commsSection = 1; @@ -476,39 +476,39 @@ static void intermission_createOptions(SDL_Surface *optionsSurface) { SDL_FillRect(optionsSurface, NULL, black); - blevelRect(optionsSurface, 0, 0, optionsSurface->w - 2, optionsSurface->h - 2, 0x00, 0x00, 0x44); + gfx_drawRect(optionsSurface, 0, 0, optionsSurface->w - 2, optionsSurface->h - 2, 0x00, 0x00, 0x44); gfx_renderString("++ OPTIONS ++", 105, 8, FONT_WHITE, 0, optionsSurface); - blevelRect(optionsSurface, 190, 45, 50, 22, 0x00, 0x00, 0x00); - blevelRect(optionsSurface, 250, 45, 50, 22, 0x00, 0x00, 0x00); - blevelRect(optionsSurface, 20, 45, 150, 22, 0x00, 0x00, 0x00); + gfx_drawRect(optionsSurface, 190, 45, 50, 22, 0x00, 0x00, 0x00); + gfx_drawRect(optionsSurface, 250, 45, 50, 22, 0x00, 0x00, 0x00); + gfx_drawRect(optionsSurface, 20, 45, 150, 22, 0x00, 0x00, 0x00); if (engine.useSound) - blevelRect(optionsSurface, 190, 45, 50, 22, 0xff, 0x00, 0x00); + gfx_drawRect(optionsSurface, 190, 45, 50, 22, 0xff, 0x00, 0x00); else - blevelRect(optionsSurface, 250, 45, 50, 22, 0xff, 0x00, 0x00); + gfx_drawRect(optionsSurface, 250, 45, 50, 22, 0xff, 0x00, 0x00); gfx_renderString("ON", 207, 50, FONT_WHITE, 0, optionsSurface); gfx_renderString("OFF", 263, 50, FONT_WHITE, 0, optionsSurface); gfx_renderString("SOUND", 30, 50, FONT_WHITE, 0, optionsSurface); - blevelRect(optionsSurface, 190, 95, 50, 22, 0x00, 0x00, 0x00); - blevelRect(optionsSurface, 250, 95, 50, 22, 0x00, 0x00, 0x00); - blevelRect(optionsSurface, 20, 95, 150, 22, 0x00, 0x00, 0x00); + gfx_drawRect(optionsSurface, 190, 95, 50, 22, 0x00, 0x00, 0x00); + gfx_drawRect(optionsSurface, 250, 95, 50, 22, 0x00, 0x00, 0x00); + gfx_drawRect(optionsSurface, 20, 95, 150, 22, 0x00, 0x00, 0x00); if (engine.useMusic) - blevelRect(optionsSurface, 190, 95, 50, 22, 0xff, 0x00, 0x00); + gfx_drawRect(optionsSurface, 190, 95, 50, 22, 0xff, 0x00, 0x00); else - blevelRect(optionsSurface, 250, 95, 50, 22, 0xff, 0x00, 0x00); + gfx_drawRect(optionsSurface, 250, 95, 50, 22, 0xff, 0x00, 0x00); gfx_renderString("ON", 207, 100, FONT_WHITE, 0, optionsSurface); gfx_renderString("OFF", 263, 100, FONT_WHITE, 0, optionsSurface); gfx_renderString("MUSIC", 30, 100, FONT_WHITE, 0, optionsSurface); - blevelRect(optionsSurface, 190, 145, 50, 22, 0x00, 0x00, 0x00); - blevelRect(optionsSurface, 250, 145, 50, 22, 0x00, 0x00, 0x00); - blevelRect(optionsSurface, 20, 145, 150, 22, 0x00, 0x00, 0x00); + gfx_drawRect(optionsSurface, 190, 145, 50, 22, 0x00, 0x00, 0x00); + gfx_drawRect(optionsSurface, 250, 145, 50, 22, 0x00, 0x00, 0x00); + gfx_drawRect(optionsSurface, 20, 145, 150, 22, 0x00, 0x00, 0x00); if (engine.fullScreen) - blevelRect(optionsSurface, 190, 145, 50, 22, 0xff, 0x00, 0x00); + gfx_drawRect(optionsSurface, 190, 145, 50, 22, 0xff, 0x00, 0x00); else - blevelRect(optionsSurface, 250, 145, 50, 22, 0xff, 0x00, 0x00); + gfx_drawRect(optionsSurface, 250, 145, 50, 22, 0xff, 0x00, 0x00); gfx_renderString("ON", 207, 150, FONT_WHITE, 0, optionsSurface); gfx_renderString("OFF", 263, 150, FONT_WHITE, 0, optionsSurface); gfx_renderString("FULLSCREEN", 30, 150, FONT_WHITE, 0, optionsSurface); @@ -630,9 +630,9 @@ int intermission() intermission_setSystemPlanets(); SDL_Surface *statsSurface = alphaRect(600, 330, 0x00, 0x00, 0x99); - SDL_Surface *savesSurface = createSurface(350, 300); - SDL_Surface *optionsSurface = createSurface(320, 240); - SDL_Surface *commsSurface = createSurface(450, 400); + SDL_Surface *savesSurface = gfx_createSurface(350, 300); + SDL_Surface *optionsSurface = gfx_createSurface(320, 240); + SDL_Surface *commsSurface = gfx_createSurface(450, 400); createSavesSurface(savesSurface, -1); intermission_createOptions(optionsSurface); @@ -672,30 +672,30 @@ int intermission() textObject iconInfo[12]; - iconInfo[0].image = textSurface("Start Next Mission", FONT_WHITE); - iconInfo[1].image = textSurface("View System Map", FONT_WHITE); - iconInfo[2].image = textSurface("Current Status", FONT_WHITE); - iconInfo[3].image = textSurface("Save Game", FONT_WHITE); - iconInfo[4].image = textSurface("Upgrade FIREFLY", FONT_WHITE); - iconInfo[5].image = textSurface("Comms", FONT_WHITE); - iconInfo[6].image = textSurface("Options", FONT_WHITE); - iconInfo[7].image = textSurface("Exit to Title Screen", FONT_WHITE); + iconInfo[0].image = gfx_createTextSurface("Start Next Mission", FONT_WHITE); + iconInfo[1].image = gfx_createTextSurface("View System Map", FONT_WHITE); + iconInfo[2].image = gfx_createTextSurface("Current Status", FONT_WHITE); + iconInfo[3].image = gfx_createTextSurface("Save Game", FONT_WHITE); + iconInfo[4].image = gfx_createTextSurface("Upgrade FIREFLY", FONT_WHITE); + iconInfo[5].image = gfx_createTextSurface("Comms", FONT_WHITE); + iconInfo[6].image = gfx_createTextSurface("Options", FONT_WHITE); + iconInfo[7].image = gfx_createTextSurface("Exit to Title Screen", FONT_WHITE); sprintf(string, "System : %s", systemNames[game.system]); - iconInfo[8].image = textSurface(string, FONT_WHITE); + iconInfo[8].image = gfx_createTextSurface(string, FONT_WHITE); sprintf(string, "Stationed At: %s", systemPlanet[game.stationedPlanet].name); - iconInfo[9].image = textSurface(string, FONT_WHITE); + iconInfo[9].image = gfx_createTextSurface(string, FONT_WHITE); if (game.destinationPlanet > -1) sprintf(string, "Destination: %s", systemPlanet[game.destinationPlanet].name); else strcpy(string, "Destination: None"); - iconInfo[10].image = textSurface(string, FONT_WHITE); + iconInfo[10].image = gfx_createTextSurface(string, FONT_WHITE); for (int i = 0 ; i < 9 ; i++) iconInfo[i].x = (800 - iconInfo[i].image->w) / 2; - iconInfo[11].image = textSurface("Go to Destination Planet", FONT_WHITE); + iconInfo[11].image = gfx_createTextSurface("Go to Destination Planet", FONT_WHITE); bool rescreen_drawBackground = true; @@ -777,10 +777,10 @@ int intermission() distance = 1; SDL_FreeSurface(iconInfo[9].image); - iconInfo[9].image = textSurface(systemPlanet[game.stationedPlanet].name, FONT_WHITE); + iconInfo[9].image = gfx_createTextSurface(systemPlanet[game.stationedPlanet].name, FONT_WHITE); SDL_FreeSurface(iconInfo[10].image); - iconInfo[10].image = textSurface(systemPlanet[game.destinationPlanet].name, FONT_WHITE); + iconInfo[10].image = gfx_createTextSurface(systemPlanet[game.destinationPlanet].name, FONT_WHITE); section = 8; @@ -812,14 +812,14 @@ int intermission() { sprintf(string, "Stationed At: %s", systemPlanet[game.stationedPlanet].name); SDL_FreeSurface(iconInfo[9].image); - iconInfo[9].image = textSurface(string, FONT_WHITE); + iconInfo[9].image = gfx_createTextSurface(string, FONT_WHITE); intermission_updateCommsSurface(commsSurface); } else { sprintf(string, "Destination: %s", systemPlanet[game.destinationPlanet].name); SDL_FreeSurface(iconInfo[10].image); - iconInfo[10].image = textSurface(string, FONT_WHITE); + iconInfo[10].image = gfx_createTextSurface(string, FONT_WHITE); } } @@ -877,7 +877,7 @@ int intermission() strcpy(game.stationedName, systemPlanet[game.stationedPlanet].name); SDL_FreeSurface(iconInfo[9].image); - iconInfo[9].image = textSurface(string, FONT_WHITE); + iconInfo[9].image = gfx_createTextSurface(string, FONT_WHITE); intermission_updateCommsSurface(commsSurface); section = 1; rescreen_drawBackground = true; diff --git a/src/loadSave.cpp b/src/loadSave.cpp index 195e0df..18ab5a3 100644 --- a/src/loadSave.cpp +++ b/src/loadSave.cpp @@ -49,7 +49,7 @@ int initSaveSlots() { sprintf(saveSlot[i], (i == 0 ? "AUTOSAVE (Empty)" : "Empty")); if (engine.gameSection == SECTION_TITLE) - textSurface(TS_SAVESLOT_0 + i, saveSlot[i], -1, imagePos, + gfx_createTextObject(TS_SAVESLOT_0 + i, saveSlot[i], -1, imagePos, FONT_WHITE); } else @@ -72,7 +72,7 @@ int initSaveSlots() } if (engine.gameSection == SECTION_TITLE) - textSurface(TS_SAVESLOT_0 + i, saveSlot[i], -1, + gfx_createTextObject(TS_SAVESLOT_0 + i, saveSlot[i], -1, imagePos, FONT_WHITE); if (stat(fileName, &fileInfo) != -1) @@ -170,14 +170,14 @@ void createSavesSurface(SDL_Surface *savesSurface, signed char clickedSlot) { int y = 10; - blevelRect(savesSurface, 0, 0, 348, 298, 0x00, 0x00, 0x00); + gfx_drawRect(savesSurface, 0, 0, 348, 298, 0x00, 0x00, 0x00); for (int i = 1 ; i <= 5 ; i++) { if (clickedSlot == i) - blevelRect(savesSurface, 5, y, 338, 25, 0x99, 0x00, 0x00); + gfx_drawRect(savesSurface, 5, y, 338, 25, 0x99, 0x00, 0x00); else - blevelRect(savesSurface, 5, y, 338, 25, 0x00, 0x00, 0x99); + gfx_drawRect(savesSurface, 5, y, 338, 25, 0x00, 0x00, 0x99); gfx_renderString(saveSlot[i], 70, y + 5, FONT_WHITE, 0, savesSurface); y += 30; } @@ -191,9 +191,9 @@ void createSavesSurface(SDL_Surface *savesSurface, signed char clickedSlot) case 3: case 4: case 5: - blevelRect(savesSurface, 5, 265, 100, 25, 0x00, 0x99, 0x00); - blevelRect(savesSurface, 125, 265, 100, 25, 0x99, 0x99, 0x00); - blevelRect(savesSurface, 243, 265, 100, 25, 0x99, 0x00, 0x00); + gfx_drawRect(savesSurface, 5, 265, 100, 25, 0x00, 0x99, 0x00); + gfx_drawRect(savesSurface, 125, 265, 100, 25, 0x99, 0x99, 0x00); + gfx_drawRect(savesSurface, 243, 265, 100, 25, 0x99, 0x00, 0x00); gfx_renderString("SAVE", 40, 270, FONT_WHITE, 0, savesSurface); gfx_renderString("CANCEL", 150, 270, FONT_WHITE, 0, savesSurface); gfx_renderString("DELETE", 270, 270, FONT_WHITE, 0, savesSurface); diff --git a/src/misc.cpp b/src/misc.cpp index a8563dd..42254b1 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -30,7 +30,7 @@ void clearInfoLines() // from a to b void copyInfoLine(int a, int b) { - textSurface(b, gfx_text[a].text, -1, 0, gfx_text[a].fontColor); + gfx_createTextObject(b, gfx_text[a].text, -1, 0, gfx_text[a].fontColor); gfx_text[b].life = gfx_text[a].life; } @@ -44,7 +44,7 @@ void setInfoLine(const char *in, int color) { int index = -1; - for (int i = 0 ; i < 3 ; i++) + for (int i = 0 ; i < MAX_INFOLINES ; i++) { if ((gfx_text[i].life == 0) && (index == -1)) { @@ -55,12 +55,14 @@ void setInfoLine(const char *in, int color) // Bump down if (index == -1) { - index = 2; - copyInfoLine(1, 0); - copyInfoLine(2, 1); + index = MAX_INFOLINES - 1; + for (int i = 1 ; i < MAX_INFOLINES ; i++) + { + copyInfoLine(i, i - 1); + } } - textSurface(index, in, -1, 0, color); + gfx_createTextObject(index, in, -1, 0, color); gfx_text[index].life = 240; } @@ -71,11 +73,11 @@ Phoebe or Ursula's banter to interrupt an important message */ void setRadioMessage(signed char face, const char *in, int priority) { - if ((gfx_text[3].life > 0) && (priority == 0)) + if ((gfx_text[TS_RADIO].life > 0) && (priority == 0)) return; - textSurface(3, in, -1, 50, FONT_WHITE); - gfx_text[3].life = 240; + gfx_createTextObject(TS_RADIO, in, -1, 50, FONT_WHITE); + gfx_text[TS_RADIO].life = 240; SDL_Surface *faceShape = NULL; if (face > -1) diff --git a/src/missions.cpp b/src/missions.cpp index 7f85da0..aa58008 100644 --- a/src/missions.cpp +++ b/src/missions.cpp @@ -713,8 +713,8 @@ static void drawBriefScreen() 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); + screen_drawRect(140, 70, 500, 20, 0x00, 0x77, 0x00); + screen_drawRect(140, 90, 500, 130, 0x00, 0x33, 0x00); screen_renderString("Primary Objectives", 150, 74, FONT_WHITE); for (int i = 0 ; i < 3 ; i++) @@ -727,8 +727,8 @@ static void drawBriefScreen() if (currentMission.secondaryType[0] != NONE) { - blevelRect(140, 230, 500, 20, 0x00, 0x77, 0x77); - blevelRect(140, 250, 500, 130, 0x00, 0x33, 0x33); + screen_drawRect(140, 230, 500, 20, 0x00, 0x77, 0x77); + screen_drawRect(140, 250, 500, 130, 0x00, 0x33, 0x33); screen_renderString("Secondary Objectives", 150, 234, FONT_WHITE); for (int i = 0 ; i < 3 ; i++) @@ -741,8 +741,8 @@ static void drawBriefScreen() } } - blevelRect(140, 390, 500, 20, 0x77, 0x77, 0x00); - blevelRect(140, 410, 500, 130, 0x33, 0x33, 0x00); + screen_drawRect(140, 390, 500, 20, 0x77, 0x77, 0x00); + screen_drawRect(140, 410, 500, 130, 0x33, 0x33, 0x00); screen_renderString("Additional Information", 150, 394, FONT_WHITE); } @@ -795,23 +795,23 @@ void missionBriefScreen() } loadGameGraphics(); - textSurface(4, "Shield", 25, 550, FONT_WHITE); - textSurface(5, "Plasma:", 250, 550, FONT_WHITE); + gfx_createTextObject(TS_SHIELD, "Shield", 25, 550, FONT_WHITE); + gfx_createTextObject(TS_PLASMA_T, "Plasma:", 250, 550, FONT_WHITE); if (player.weaponType[1] == W_CHARGER) - textSurface(6, "Charge", 385, 550, FONT_WHITE); + gfx_createTextObject(TS_AMMO_T, "Charge", 385, 550, FONT_WHITE); else if (player.weaponType[1] == W_LASER) - textSurface(6, "Heat", 405, 550, FONT_WHITE); + gfx_createTextObject(TS_AMMO_T, "Heat", 405, 550, FONT_WHITE); else - textSurface(6, "Rockets:", 385, 550, FONT_WHITE); + gfx_createTextObject(TS_AMMO_T, "Rockets:", 385, 550, FONT_WHITE); - textSurface(7, "Target", 550, 550, FONT_WHITE); - textSurface(8, "Cash: $", 25, 20, FONT_WHITE); - textSurface(9, "Objectives Remaining:", 550, 20, FONT_WHITE); - textSurface(10, "Time Remaining - ", 260, 20, FONT_WHITE); - textSurface(11, "Power", 25, 570, FONT_WHITE); - textSurface(12, "Output", 250, 570, FONT_WHITE); - textSurface(13, "Cooler", 485, 570, FONT_WHITE); + gfx_createTextObject(TS_TARGET, "Target", 550, 550, FONT_WHITE); + gfx_createTextObject(TS_CASH_T, "Cash: $", 25, 20, FONT_WHITE); + gfx_createTextObject(TS_OBJECTIVES_T, "Objectives Remaining:", 550, 20, FONT_WHITE); + gfx_createTextObject(TS_TIME_T, "Time Remaining - ", 260, 20, FONT_WHITE); + gfx_createTextObject(TS_POWER, "Power", 25, 570, FONT_WHITE); + gfx_createTextObject(TS_OUTPUT, "Output", 250, 570, FONT_WHITE); + gfx_createTextObject(TS_COOLER, "Cooler", 485, 570, FONT_WHITE); audio_playRandomTrack(); if (game.area != MISN_INTERCEPTION) diff --git a/src/resources.cpp b/src/resources.cpp index fdf8b1f..c0980bb 100644 --- a/src/resources.cpp +++ b/src/resources.cpp @@ -79,7 +79,7 @@ void loadGameGraphics() { if (shipShape[i - SHIP_HIT_INDEX] == NULL) continue; - shipShape[i] = createSurface(shipShape[i - SHIP_HIT_INDEX]->w, + shipShape[i] = gfx_createSurface(shipShape[i - SHIP_HIT_INDEX]->w, shipShape[i - SHIP_HIT_INDEX]->h); SDL_SetSurfaceBlendMode(shipShape[i - SHIP_HIT_INDEX], SDL_BLENDMODE_NONE); gfx_blit(shipShape[i - SHIP_HIT_INDEX], 0, 0, shipShape[i]); diff --git a/src/screen.cpp b/src/screen.cpp index f289e6a..d7db0d6 100644 --- a/src/screen.cpp +++ b/src/screen.cpp @@ -117,3 +117,8 @@ void screen_clear(Uint32 color) { SDL_FillRect(screen, NULL, color); } + +void screen_drawRect(int x, int y, int w, int h, Uint8 red, Uint8 green, Uint8 blue) +{ + gfx_drawRect(screen, x, y, w, h, red, green, blue); +} diff --git a/src/screen.h b/src/screen.h index 14ed43c..563739b 100644 --- a/src/screen.h +++ b/src/screen.h @@ -34,5 +34,6 @@ void screen_addBuffer(int x, int y, int w, int h); void screen_flushBuffer(); void screen_unBuffer(); void screen_clear(Uint32 color); +void screen_drawRect(int x, int y, int w, int h, Uint8 red, Uint8 green, Uint8 blue); #endif diff --git a/src/shop.cpp b/src/shop.cpp index 4d005c0..f79fca7 100644 --- a/src/shop.cpp +++ b/src/shop.cpp @@ -153,16 +153,16 @@ static void drawShop() } for (int i = 0 ; i < 3 ; i++) - shopSurface[i] = createSurface(246, 91); + shopSurface[i] = gfx_createSurface(246, 91); for (int i = 0 ; i < 3 ; i++) { - blevelRect(shopSurface[i], 0, 0, 245, 90, 0x00, 0x00, 0x55); - blevelRect(shopSurface[i], 0, 0, 245, 20, 0x00, 0x00, 0x99); + gfx_drawRect(shopSurface[i], 0, 0, 245, 90, 0x00, 0x00, 0x55); + gfx_drawRect(shopSurface[i], 0, 0, 245, 20, 0x00, 0x00, 0x99); } shopSurface[4] = alphaRect(601, 101, 0x00, 0x00, 0x00); - blevelRect(shopSurface[4], 0, 0, 600, 100, 0x00, 0x00, 0x33); + gfx_drawRect(shopSurface[4], 0, 0, 600, 100, 0x00, 0x00, 0x33); switch (shopSelectedItem) { @@ -177,22 +177,22 @@ static void drawShop() case 1: case 2: case 8: - blevelRect(shopSurface[1], 0, 0, 245, 90, 0x55, 0x00, 0x00); - blevelRect(shopSurface[1], 0, 0, 245, 20, 0x99, 0x00, 0x00); + gfx_drawRect(shopSurface[1], 0, 0, 245, 90, 0x55, 0x00, 0x00); + gfx_drawRect(shopSurface[1], 0, 0, 245, 20, 0x99, 0x00, 0x00); break; case 3: case 4: - blevelRect(shopSurface[4], 0, 0, 600, 100, 0x33, 0x00, 0x00); + gfx_drawRect(shopSurface[4], 0, 0, 600, 100, 0x33, 0x00, 0x00); break; case 5: case 6: case 7: - blevelRect(shopSurface[0], 0, 0, 245, 90, 0x55, 0x00, 0x00); - blevelRect(shopSurface[0], 0, 0, 245, 20, 0x99, 0x00, 0x00); + gfx_drawRect(shopSurface[0], 0, 0, 245, 90, 0x55, 0x00, 0x00); + gfx_drawRect(shopSurface[0], 0, 0, 245, 20, 0x99, 0x00, 0x00); break; default: - blevelRect(shopSurface[2], 0, 0, 245, 90, 0x55, 0x00, 0x00); - blevelRect(shopSurface[2], 0, 0, 245, 20, 0x99, 0x00, 0x00); + gfx_drawRect(shopSurface[2], 0, 0, 245, 90, 0x55, 0x00, 0x00); + gfx_drawRect(shopSurface[2], 0, 0, 245, 20, 0x99, 0x00, 0x00); break; } @@ -224,9 +224,9 @@ static void drawShop() drawSecondaryWeaponSurface(); - shopSurface[3] = createSurface(601, 121); + shopSurface[3] = gfx_createSurface(601, 121); - blevelRect(shopSurface[3], 0, 0, 600, 120, 0x00, 0x00, 0x22); + gfx_drawRect(shopSurface[3], 0, 0, 600, 120, 0x00, 0x00, 0x22); gfx_renderString("Temporary Weapons", 10, 2, FONT_WHITE, 0, shopSurface[3]); gfx_renderString("Ammo and Storage", 260, 2, FONT_WHITE, 0, shopSurface[3]); @@ -259,9 +259,9 @@ static void drawShop() sprintf(description, "Rockets : %.3d", player.ammo[1]); gfx_renderString(description, 475, 80, FONT_WHITE, 0, shopSurface[4]); - shopSurface[5] = createSurface(601, 56); - blevelRect(shopSurface[5], 0, 0, 600, 35, 0x00, 0x99, 0x00); - blevelRect(shopSurface[5], 0, 20, 600, 35, 0x00, 0x33, 0x00); + shopSurface[5] = gfx_createSurface(601, 56); + gfx_drawRect(shopSurface[5], 0, 0, 600, 35, 0x00, 0x99, 0x00); + gfx_drawRect(shopSurface[5], 0, 20, 600, 35, 0x00, 0x33, 0x00); gfx_renderString("Information", 5, 4, FONT_WHITE, 0, shopSurface[5]); switch (shopSelectedItem) diff --git a/src/title.cpp b/src/title.cpp index faef7a2..c047790 100644 --- a/src/title.cpp +++ b/src/title.cpp @@ -65,18 +65,18 @@ static signed char showLoadMenu() static void createDifficultyMenu() { - textSurface(TS_START_GAME, "START GAME", -1, 350, FONT_WHITE); + gfx_createTextObject(TS_START_GAME, "START GAME", -1, 350, FONT_WHITE); if (game.difficulty == DIFFICULTY_EASY) - textSurface(TS_DIFFICULTY, "DIFFICULTY - EASY", -1, 370, FONT_WHITE); + gfx_createTextObject(TS_DIFFICULTY, "DIFFICULTY - EASY", -1, 370, FONT_WHITE); else if (game.difficulty == DIFFICULTY_HARD) - textSurface(TS_DIFFICULTY, "DIFFICULTY - HARD", -1, 370, FONT_WHITE); + gfx_createTextObject(TS_DIFFICULTY, "DIFFICULTY - HARD", -1, 370, FONT_WHITE); else if (game.difficulty == DIFFICULTY_NIGHTMARE) - textSurface(TS_DIFFICULTY, "DIFFICULTY - NIGHTMARE!", -1, 370, FONT_WHITE); + gfx_createTextObject(TS_DIFFICULTY, "DIFFICULTY - NIGHTMARE!", -1, 370, FONT_WHITE); else if (game.difficulty == DIFFICULTY_ORIGINAL) - textSurface(TS_DIFFICULTY, "DIFFICULTY - ORIGINAL", -1, 370, FONT_WHITE); + gfx_createTextObject(TS_DIFFICULTY, "DIFFICULTY - ORIGINAL", -1, 370, FONT_WHITE); else - textSurface(TS_DIFFICULTY, "DIFFICULTY - NORMAL", -1, 370, FONT_WHITE); + gfx_createTextObject(TS_DIFFICULTY, "DIFFICULTY - NORMAL", -1, 370, FONT_WHITE); } static signed char showDifficultyMenu() @@ -93,24 +93,24 @@ static signed char showDifficultyMenu() static void createOptionsMenu() { if (engine.useSound) - textSurface(TS_SOUND, "SOUND - ON", -1, 350, FONT_WHITE); + gfx_createTextObject(TS_SOUND, "SOUND - ON", -1, 350, FONT_WHITE); else - textSurface(TS_SOUND, "SOUND - OFF", -1, 350, FONT_WHITE); + gfx_createTextObject(TS_SOUND, "SOUND - OFF", -1, 350, FONT_WHITE); if (engine.useMusic) - textSurface(TS_MUSIC, "MUSIC - ON", -1, 370, FONT_WHITE); + gfx_createTextObject(TS_MUSIC, "MUSIC - ON", -1, 370, FONT_WHITE); else - textSurface(TS_MUSIC, "MUSIC - OFF", -1, 370, FONT_WHITE); + gfx_createTextObject(TS_MUSIC, "MUSIC - OFF", -1, 370, FONT_WHITE); if (engine.fullScreen) - textSurface(TS_FULLSCREEN, "FULLSCREEN - ON", -1, 390, FONT_WHITE); + gfx_createTextObject(TS_FULLSCREEN, "FULLSCREEN - ON", -1, 390, FONT_WHITE); else - textSurface(TS_FULLSCREEN, "FULLSCREEN - OFF", -1, 390, FONT_WHITE); + gfx_createTextObject(TS_FULLSCREEN, "FULLSCREEN - OFF", -1, 390, FONT_WHITE); if (engine.autoPause) - textSurface(TS_AUTOPAUSE, "AUTOPAUSE - ON", -1, 410, FONT_WHITE); + gfx_createTextObject(TS_AUTOPAUSE, "AUTOPAUSE - ON", -1, 410, FONT_WHITE); else - textSurface(TS_AUTOPAUSE, "AUTOPAUSE - OFF", -1, 410, FONT_WHITE); + gfx_createTextObject(TS_AUTOPAUSE, "AUTOPAUSE - OFF", -1, 410, FONT_WHITE); } static signed char showOptionsMenu() @@ -129,31 +129,31 @@ static signed char showOptionsMenu() static void createCheatMenu() { if (engine.cheatShield) - textSurface(TS_UNLIMITED_SHIELD, "UNLIMITED SHIELD - ON", -1, 350, + gfx_createTextObject(TS_UNLIMITED_SHIELD, "UNLIMITED SHIELD - ON", -1, 350, FONT_WHITE); else - textSurface(TS_UNLIMITED_SHIELD, "UNLIMITED SHIELD - OFF", -1, 350, + gfx_createTextObject(TS_UNLIMITED_SHIELD, "UNLIMITED SHIELD - OFF", -1, 350, FONT_WHITE); if (engine.cheatAmmo) - textSurface(TS_UNLIMITED_AMMO, "UNLIMITED AMMO - ON", -1, 370, + gfx_createTextObject(TS_UNLIMITED_AMMO, "UNLIMITED AMMO - ON", -1, 370, FONT_WHITE); else - textSurface(TS_UNLIMITED_AMMO, "UNLIMITED AMMO - OFF", -1, 370, + gfx_createTextObject(TS_UNLIMITED_AMMO, "UNLIMITED AMMO - OFF", -1, 370, FONT_WHITE); if (engine.cheatCash) - textSurface(TS_UNLIMITED_CASH, "UNLIMITED CASH - ON", -1, 390, + gfx_createTextObject(TS_UNLIMITED_CASH, "UNLIMITED CASH - ON", -1, 390, FONT_WHITE); else - textSurface(TS_UNLIMITED_CASH, "UNLIMITED CASH - OFF", -1, 390, + gfx_createTextObject(TS_UNLIMITED_CASH, "UNLIMITED CASH - OFF", -1, 390, FONT_WHITE); if (engine.cheatTime) - textSurface(TS_UNLIMITED_TIME, "UNLIMITED TIME - ON", -1, 410, + gfx_createTextObject(TS_UNLIMITED_TIME, "UNLIMITED TIME - ON", -1, 410, FONT_WHITE); else - textSurface(TS_UNLIMITED_TIME, "UNLIMITED TIME - OFF", -1, 410, + gfx_createTextObject(TS_UNLIMITED_TIME, "UNLIMITED TIME - OFF", -1, 410, FONT_WHITE); } @@ -208,19 +208,19 @@ int doTitle() int sfx = ((screen->w - sflogo->w) / 2); int sfy = ((screen->h - sflogo->h) / 2); - textSurface(TS_PRESENTS, "PRESENTS", -1, 300, FONT_WHITE); - textSurface(TS_AN_SDL_GAME, "AN SDL GAME", -1, 300, FONT_WHITE); - textSurface(TS_START_NEW_GAME, "START NEW GAME", -1, 350, FONT_WHITE); - textSurface(TS_LOAD_GAME, "LOAD GAME", -1, 370, FONT_WHITE); - textSurface(TS_CONTINUE_CURRENT_GAME, "CONTINUE CURRENT GAME", -1, 390, + gfx_createTextObject(TS_PRESENTS, "PRESENTS", -1, 300, FONT_WHITE); + gfx_createTextObject(TS_AN_SDL_GAME, "AN SDL GAME", -1, 300, FONT_WHITE); + gfx_createTextObject(TS_START_NEW_GAME, "START NEW GAME", -1, 350, FONT_WHITE); + gfx_createTextObject(TS_LOAD_GAME, "LOAD GAME", -1, 370, FONT_WHITE); + gfx_createTextObject(TS_CONTINUE_CURRENT_GAME, "CONTINUE CURRENT GAME", -1, 390, FONT_WHITE); - textSurface(TS_OPTIONS, "OPTIONS", -1, 410, FONT_WHITE); - textSurface(TS_CHEAT_OPTIONS, "CHEAT OPTIONS", -1, 430, FONT_WHITE); - textSurface(TS_QUIT, "QUIT", -1, 430, FONT_WHITE); + gfx_createTextObject(TS_OPTIONS, "OPTIONS", -1, 410, FONT_WHITE); + gfx_createTextObject(TS_CHEAT_OPTIONS, "CHEAT OPTIONS", -1, 430, FONT_WHITE); + gfx_createTextObject(TS_QUIT, "QUIT", -1, 430, FONT_WHITE); createOptionsMenu(); createDifficultyMenu(); - textSurface(TS_BACK_TO_MAIN_MENU, "BACK TO MAIN MENU", -1, 0, FONT_WHITE); + gfx_createTextObject(TS_BACK_TO_MAIN_MENU, "BACK TO MAIN MENU", -1, 0, FONT_WHITE); createCheatMenu(); @@ -317,7 +317,7 @@ int doTitle() { screen_addBuffer(0, 0, screen->w, screen->h); - blevelRect(optionRec.x, optionRec.y, optionRec.w, optionRec.h, redGlow, 0x00, 0x00); + screen_drawRect(optionRec.x, optionRec.y, optionRec.w, optionRec.h, redGlow, 0x00, 0x00); switch(menuType) { @@ -577,16 +577,16 @@ void showStory() fp = fopen("data/intro.txt", "rb"); - int i = 0; + int index = 0; int nextPos = -1; char string[255]; while (fscanf(fp, "%d %[^\n]%*c", &nextPos, string) == 2) { y += nextPos; - textSurface(i, string, -1, y, FONT_WHITE); + gfx_createTextObject(index, string, -1, y, FONT_WHITE); - i++; + index++; } fclose(fp); @@ -608,6 +608,8 @@ void showStory() if ((engine.keyState[KEY_FIRE] || engine.keyState[KEY_ALTFIRE])) break; + // XXX: The fact that it's line 8 that's watched is completely + // arbitrary. It might be prudent to replace this with something else. if (gfx_text[8].y > (screen->h / 2) + 150) { for (int i = 0 ; i < 9 ; i++) @@ -710,7 +712,7 @@ void doCredits() while (fscanf(fp, "%d %[^\n]%*c", &yPos, text) == 2) { lastCredit++; - credit[lastCredit].image = textSurface(text, FONT_WHITE); + credit[lastCredit].image = gfx_createTextSurface(text, FONT_WHITE); credit[lastCredit].x = (screen->w - credit[lastCredit].image->w) / 2; yPos2 += yPos; credit[lastCredit].y = yPos2;