Show hud messages.

This commit is contained in:
Steve 2018-02-04 07:50:54 +00:00
parent d3db893190
commit 5588abc063
4 changed files with 47 additions and 4 deletions

View File

@ -23,6 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
static int messageTime; static int messageTime;
static char message[MAX_DESCRIPTION_LENGTH]; static char message[MAX_DESCRIPTION_LENGTH];
static int messageType; static int messageType;
static SDL_Color messageColor;
static char infoMessage[MAX_DESCRIPTION_LENGTH]; static char infoMessage[MAX_DESCRIPTION_LENGTH];
@ -30,6 +31,8 @@ void initHud(void)
{ {
messageTime = FPS * 2; messageTime = FPS * 2;
messageType = MSG_STANDARD; messageType = MSG_STANDARD;
strcpy(message, "");
messageColor = colors.white;
} }
void doHud(void) void doHud(void)
@ -46,11 +49,27 @@ void doHud(void)
void drawHud(void) void drawHud(void)
{ {
drawText(SCREEN_WIDTH / 2, SCREEN_HEIGHT - 25, 14, TA_CENTER, colors.white, "Bob [%.0f, %.0f]", world.bob->x / MAP_TILE_SIZE, world.bob->y / MAP_TILE_SIZE); int x, y;
if (messageTime > 0)
{
drawRect(0, SCREEN_HEIGHT - 32, SCREEN_WIDTH, 32, 0, 0, 0, 200);
drawText(SCREEN_WIDTH / 2, SCREEN_HEIGHT - 26, 16, TA_CENTER, messageColor, message);
}
if (dev.debug)
{
x = -camera.x + world.bob->x + (world.bob->w / 2);
y = -camera.y + world.bob->y - world.bob->h;
drawText(x, y, 14, TA_CENTER, colors.white, "[%.0f, %.0f]", world.bob->x / MAP_TILE_SIZE, world.bob->y / MAP_TILE_SIZE);
}
} }
void setGameplayMessage(int newMessageType, const char *format, ...) void setGameplayMessage(int newMessageType, const char *format, ...)
{ {
int i;
char newMessage[MAX_DESCRIPTION_LENGTH]; char newMessage[MAX_DESCRIPTION_LENGTH];
va_list args; va_list args;
@ -66,7 +85,28 @@ void setGameplayMessage(int newMessageType, const char *format, ...)
messageType = newMessageType; messageType = newMessageType;
messageTime = FPS * 3; messageTime = FPS * 3;
for (i = 0 ; i < strlen(message) ; i++)
{
message[i] = toupper(message[i]);
}
SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO, "%s", message); SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO, "%s", message);
switch (messageType)
{
case MSG_STANDARD:
case MSG_GAMEPLAY:
messageColor = colors.white;
break;
case MSG_PROGRESS:
messageColor = colors.cyan;
break;
case MSG_OBJECTIVE:
messageColor = colors.green;
break;
}
} }
} }

View File

@ -22,6 +22,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
extern void showWidgetGroup(char *groupName); extern void showWidgetGroup(char *groupName);
extern void drawText(int x, int y, int size, int align, SDL_Color c, const char *format, ...); extern void drawText(int x, int y, int size, int align, SDL_Color c, const char *format, ...);
extern void drawRect(int x, int y, int w, int h, int r, int g, int b, int a);
extern Dev dev;
extern Camera camera;
extern Colors colors; extern Colors colors;
extern World world; extern World world;

View File

@ -43,6 +43,8 @@ void initWorld(void)
initObjectives(); initObjectives();
initHud();
world.enemySpawnTimer = (FPS * rrnd(world.minEnemySpawnTime, world.maxEnemySpawnTime)); world.enemySpawnTimer = (FPS * rrnd(world.minEnemySpawnTime, world.maxEnemySpawnTime));
world.state = WS_START; world.state = WS_START;
@ -65,9 +67,6 @@ void initWorld(void)
app.delegate.draw = draw; app.delegate.draw = draw;
startMission(); startMission();
world.bob->x = 110 * MAP_TILE_SIZE;
world.bob->y = 105 * MAP_TILE_SIZE;
} }
static void logic(void) static void logic(void)

View File

@ -52,6 +52,7 @@ extern void drawMap(void);
extern void blitScaled(SDL_Texture *texture, int x, int y, int w, int h, int center); extern void blitScaled(SDL_Texture *texture, int x, int y, int w, int h, int center);
extern void clearScreen(void); extern void clearScreen(void);
extern void drawHud(void); extern void drawHud(void);
extern void initHud(void);
extern App app; extern App app;
extern Dev dev; extern Dev dev;