Call HUD_init_message_va directly from powerup_basic

This commit is contained in:
Kp 2013-06-23 16:19:50 +00:00
parent 2b20eeb6e2
commit 6aada62c4d
3 changed files with 20 additions and 14 deletions

View file

@ -112,10 +112,23 @@ void HUD_render_message_frame()
gr_set_curfont( GAME_FONT );
}
static int is_worth_showing(int class_flag)
{
if (PlayerCfg.NoRedundancy && (class_flag & HM_REDUNDANT))
return 0;
if (PlayerCfg.MultiMessages && (Game_mode & GM_MULTI) && !(class_flag & HM_MULTI))
return 0;
return 1;
}
// Call to flash a message on the HUD. Returns true if message drawn.
// (message might not be drawn if previous message was same)
int HUD_init_message_va(int class_flag, char * format, va_list args)
int HUD_init_message_va(int class_flag, const char * format, va_list args)
{
if (!is_worth_showing(class_flag))
return 0;
int i, j;
#ifndef macintosh
char message[HUD_MESSAGE_LENGTH+1] = "";
@ -177,18 +190,11 @@ int HUD_init_message_va(int class_flag, char * format, va_list args)
return 1;
}
int HUD_init_message(int class_flag, char * format, ... )
int HUD_init_message(int class_flag, const char * format, ... )
{
int ret;
va_list args;
if (PlayerCfg.NoRedundancy && class_flag & HM_REDUNDANT)
return 0;
if (PlayerCfg.MultiMessages && Game_mode & GM_MULTI && !(class_flag & HM_MULTI))
return 0;
va_start(args, format);
ret = HUD_init_message_va(class_flag, format, args);
va_end(args);

View file

@ -1,6 +1,8 @@
#ifndef _HUD_MSG_H
#define _HUD_MSG_H
#include <stdarg.h>
#define HUD_MESSAGE_LENGTH 150
#define HUD_MAX_NUM_DISP 4
#define HUD_MAX_NUM_STOR 20
@ -14,6 +16,7 @@
extern int HUD_toolong;
extern void HUD_clear_messages();
extern void HUD_render_message_frame();
extern int HUD_init_message(int class_flag, char * format, ... );
int HUD_init_message(int class_flag, const char * format, ... );
int HUD_init_message_va(int class_flag, const char * format, va_list args);
#endif

View file

@ -130,17 +130,14 @@ void draw_powerup(object *obj)
void powerup_basic(int redadd, int greenadd, int blueadd, int score, const char *format, ...)
{
char text[120];
va_list args;
va_start(args, format );
vsprintf(text, format, args);
HUD_init_message_va(HM_DEFAULT, format, args);
va_end(args);
PALETTE_FLASH_ADD(redadd,greenadd,blueadd);
HUD_init_message(HM_DEFAULT, "%s", text);
add_points_to_score(score);
}