diff --git a/src/defs.h b/src/defs.h
index 88cc87d..4a77281 100644
--- a/src/defs.h
+++ b/src/defs.h
@@ -414,7 +414,8 @@ enum {
FACE_KLINE,
FACE_PHOEBE,
FACE_URSULA,
- FACE_CREW
+ FACE_CREW,
+ FACE_MAX
};
// Missions
diff --git a/src/gfx.cpp b/src/gfx.cpp
index 2fec6bc..80da961 100644
--- a/src/gfx.cpp
+++ b/src/gfx.cpp
@@ -23,6 +23,7 @@ along with this program. If not, see .
SDL_Surface *gfx_background;
SDL_Surface *gfx_sprites[MAX_SPRITES];
+SDL_Surface *gfx_faceSprites[FACE_MAX];
SDL_Surface *gfx_shipSprites[MAX_SHIPSPRITES];
SDL_Surface *gfx_fontSprites[MAX_FONTSPRITES];
SDL_Surface *gfx_shopSprites[MAX_SHOPSPRITES];
diff --git a/src/gfx.h b/src/gfx.h
index ba69a3a..f1a004b 100644
--- a/src/gfx.h
+++ b/src/gfx.h
@@ -24,6 +24,7 @@ along with this program. If not, see .
extern SDL_Surface *gfx_background;
extern SDL_Surface *gfx_sprites[MAX_SPRITES];
+extern SDL_Surface *gfx_faceSprites[FACE_MAX];
extern SDL_Surface *gfx_shipSprites[MAX_SHIPSPRITES];
extern SDL_Surface *gfx_fontSprites[MAX_FONTSPRITES];
extern SDL_Surface *gfx_shopSprites[MAX_SHOPSPRITES];
diff --git a/src/intermission.cpp b/src/intermission.cpp
index 749f980..acbb032 100644
--- a/src/intermission.cpp
+++ b/src/intermission.cpp
@@ -353,7 +353,7 @@ static void intermission_updateCommsSurface(SDL_Surface *comms)
char string[255];
gfx_drawRect(comms, 0, 10, comms->w - 1, 55, 0x00, 0x22, 0x00);
- gfx_blit(gfx_sprites[FACE_CHRIS], 20, 15, comms);
+ gfx_blit(gfx_faceSprites[FACE_CHRIS], 20, 15, comms);
gfx_renderString("Chris Bainfield", 80, 15, FONT_WHITE, 0, comms);
sprintf(string, "Current Location: %s", systemPlanet[game.stationedPlanet].name);
gfx_renderString(string, 80, 35, FONT_WHITE, 0, comms);
@@ -375,7 +375,7 @@ static void intermission_createCommsSurface(SDL_Surface *comms)
{
yOffset = systemPlanet[i].messageSlot * 60;
gfx_drawRect(comms, 0, 105 + yOffset, comms->w - 1, 55, 0x00, 0x00, 0x77);
- gfx_blit(gfx_sprites[systemPlanet[i].faceImage], 20, 110 + yOffset, comms);
+ gfx_blit(gfx_faceSprites[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);
gfx_renderString("INCOMPLETE", 350, 110 + yOffset, FONT_RED, 0, comms);
@@ -426,7 +426,7 @@ static void intermission_createMissionDetailSurface(SDL_Surface *comms, int miss
faceNumber = getFace(string);
if (faceNumber > -1)
{
- gfx_blit(gfx_sprites[faceNumber], 10, y, comms);
+ gfx_blit(gfx_faceSprites[faceNumber], 10, y, comms);
col = FONT_WHITE;
}
else
@@ -608,12 +608,12 @@ int intermission()
gfx_sprites[34] = gfx_loadImage("gfx/planet_orange.png");
// Faces (as defines)
- gfx_sprites[FACE_CHRIS] = gfx_loadImage("gfx/face_chris.png");
- gfx_sprites[FACE_SID] = gfx_loadImage("gfx/face_sid.png");
- gfx_sprites[FACE_KRASS] = gfx_loadImage("gfx/face_krass.png");
- gfx_sprites[FACE_PHOEBE] = gfx_loadImage("gfx/face_phoebe.png");
- gfx_sprites[FACE_URSULA] = gfx_loadImage("gfx/face_ursula.png");
- gfx_sprites[FACE_KLINE] = gfx_loadImage("gfx/face_kline.png");
+ gfx_faceSprites[FACE_CHRIS] = gfx_loadImage("gfx/face_chris.png");
+ gfx_faceSprites[FACE_SID] = gfx_loadImage("gfx/face_sid.png");
+ gfx_faceSprites[FACE_KRASS] = gfx_loadImage("gfx/face_krass.png");
+ gfx_faceSprites[FACE_PHOEBE] = gfx_loadImage("gfx/face_phoebe.png");
+ gfx_faceSprites[FACE_URSULA] = gfx_loadImage("gfx/face_ursula.png");
+ gfx_faceSprites[FACE_KLINE] = gfx_loadImage("gfx/face_kline.png");
engine.done = 0;
engine.keyState[KEY_FIRE] = 0;
diff --git a/src/misc.cpp b/src/misc.cpp
index 929ce5f..13aba1d 100644
--- a/src/misc.cpp
+++ b/src/misc.cpp
@@ -71,17 +71,18 @@ Sets a radio message that appears at the top of the screen. Used for
script events, etc. We send a message priority too, since we don't want
Phoebe or Ursula's banter to interrupt an important message
*/
-void setRadioMessage(signed char face, const char *in, int priority)
+void setRadioMessage(int face, const char *in, int priority)
{
+ SDL_Surface *faceShape = NULL;
+
if ((gfx_textSprites[TS_RADIO].life > 0) && (priority == 0))
return;
gfx_createTextObject(TS_RADIO, in, -1, 50, FONT_WHITE);
gfx_textSprites[TS_RADIO].life = 240;
- SDL_Surface *faceShape = NULL;
if (face > -1)
- faceShape = gfx_sprites[face];
+ faceShape = gfx_faceSprites[face];
gfx_createMessageBox(faceShape, in, 1);
}
@@ -97,7 +98,7 @@ int getFace(const char *face)
for (int i = 0 ; i < 7 ; i++)
{
if (strcmp(faces[i], face) == 0)
- return 90 + i;
+ return FACE_CHRIS + i;
}
return -1;
diff --git a/src/misc.h b/src/misc.h
index 68f694a..c309781 100644
--- a/src/misc.h
+++ b/src/misc.h
@@ -23,7 +23,7 @@ along with this program. If not, see .
extern void clearInfoLines();
void copyInfoLine(int a, int b);
extern void setInfoLine(const char *in, int color);
-extern void setRadioMessage(signed char face, const char *in, int priority);
+extern void setRadioMessage(int face, const char *in, int priority);
extern int getFace(const char *face);
extern void resetLists();
diff --git a/src/script.cpp b/src/script.cpp
index 442b622..311b4a6 100644
--- a/src/script.cpp
+++ b/src/script.cpp
@@ -193,7 +193,7 @@ void doCutscene(int scene)
face = NULL;
if (cutMessage[currentMessage].face != -1)
- face = gfx_sprites[cutMessage[currentMessage].face];
+ face = gfx_faceSprites[cutMessage[currentMessage].face];
gfx_createMessageBox(face, cutMessage[currentMessage].message, 0);
}
}