The little light bulb showing homing warning in Cockpit was broken and I replaced it; Rewritten code to show weapon text in Cockpit and Statusbar slightly; Instead of using hardcoded weapon strings, use from descent.txb and fixed too long spreadfire string properly

This commit is contained in:
zicodxx 2010-02-19 00:24:32 +00:00
parent 7a174eec94
commit 9ac473335f
2 changed files with 37 additions and 46 deletions

View file

@ -1,5 +1,9 @@
D2X-Rebirth Changelog
20100219
--------
main/gauges.c: The little light bulb showing homing warning in Cockpit was broken and I replaced it; Rewritten code to show weapon text in Cockpit and Statusbar slightly
20100215
--------
libmve/mveplay.c: Added another bunch of macros to fix sound initialisation for Movies when program is compiled without SDL_mixer

View file

@ -186,7 +186,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#define PRIMARY_W_PIC_Y (HIRESMODE?370:154)
#define PRIMARY_W_TEXT_X HUD_SCALE_X(HIRESMODE?182:87)
#define PRIMARY_W_TEXT_Y HUD_SCALE_Y(HIRESMODE?400:157)
#define PRIMARY_AMMO_X HUD_SCALE_X(HIRESMODE?186:(96-3))
#define PRIMARY_AMMO_X HUD_SCALE_X(HIRESMODE?186:93)
#define PRIMARY_AMMO_Y HUD_SCALE_Y(HIRESMODE?420:171)
#define SECONDARY_W_PIC_X (HIRESMODE?466:234)
#define SECONDARY_W_PIC_Y (HIRESMODE?374:154)
@ -265,12 +265,12 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#define SB_PRIMARY_W_PIC_Y (HIRESMODE?382:154)
#define SB_PRIMARY_W_TEXT_X HUD_SCALE_X(SB_PRIMARY_W_BOX_LEFT+(HIRESMODE?50:24)) //(51+23)
#define SB_PRIMARY_W_TEXT_Y HUD_SCALE_Y(HIRESMODE?390:157)
#define SB_PRIMARY_AMMO_X HUD_SCALE_X(SB_PRIMARY_W_BOX_LEFT+(HIRESMODE?(38+20):30)) //((SB_PRIMARY_W_BOX_LEFT+33)-3) //(51+32)
#define SB_PRIMARY_AMMO_X HUD_SCALE_X(SB_PRIMARY_W_BOX_LEFT+(HIRESMODE?58:30)) //((SB_PRIMARY_W_BOX_LEFT+33)-3) //(51+32)
#define SB_PRIMARY_AMMO_Y HUD_SCALE_Y(HIRESMODE?410:171)
#define SB_SECONDARY_W_PIC_X (HIRESMODE?385:(SB_SECONDARY_W_BOX_LEFT+27)) //(212+27)
#define SB_SECONDARY_W_PIC_Y (HIRESMODE?382:154)
#define SB_SECONDARY_W_TEXT_X HUD_SCALE_X(SB_SECONDARY_W_BOX_LEFT+2) //212
#define SB_SECONDARY_W_TEXT_Y HUD_SCALE_Y(HIRESMODE?389:157)
#define SB_SECONDARY_W_TEXT_Y HUD_SCALE_Y(HIRESMODE?390:157)
#define SB_SECONDARY_AMMO_X HUD_SCALE_X(SB_SECONDARY_W_BOX_LEFT+(HIRESMODE?(14-4):11)) //(212+9)
#define SB_SECONDARY_AMMO_Y HUD_SCALE_Y(HIRESMODE?414:171)
@ -350,7 +350,6 @@ int weapon_box_states[2] = {WS_SET, WS_SET};
fix weapon_box_fade_values[2];
int Color_0_31_0 = -1;
fix Last_warning_beep_time = 0; // Time we last played homing missile warning beep.
int Last_homing_warning_shown = -1;
extern int HUD_nmessages, hud_first; // From hud.c
extern char HUD_messages[HUD_MAX_NUM][HUD_MESSAGE_LENGTH+5];
extern fix ThisLevelTime;
@ -915,36 +914,32 @@ void play_homing_warning(void)
// -----------------------------------------------------------------------------
void show_homing_warning(void)
{
if ((PlayerCfg.CockpitMode[1] == CM_STATUS_BAR) || (Endlevel_sequence)) {
if (Last_homing_warning_shown == 1) {
PAGE_IN_GAUGE( GAUGE_HOMING_WARNING_OFF );
hud_bitblt( HUD_SCALE_X(HOMING_WARNING_X), HUD_SCALE_Y(HOMING_WARNING_Y), &GameBitmaps[ GET_GAUGE_INDEX(GAUGE_HOMING_WARNING_OFF) ]);
Last_homing_warning_shown = 0;
}
if (Endlevel_sequence)
{
PAGE_IN_GAUGE( GAUGE_HOMING_WARNING_OFF );
hud_bitblt( HUD_SCALE_X(HOMING_WARNING_X), HUD_SCALE_Y(HOMING_WARNING_Y), &GameBitmaps[ GET_GAUGE_INDEX(GAUGE_HOMING_WARNING_OFF) ]);
return;
}
gr_set_current_canvas( NULL );
if (Players[Player_num].homing_object_dist >= 0) {
if (GameTime & 0x4000) {
if (Last_homing_warning_shown != 1) {
PAGE_IN_GAUGE( GAUGE_HOMING_WARNING_ON );
hud_bitblt( HUD_SCALE_X(HOMING_WARNING_X), HUD_SCALE_Y(HOMING_WARNING_Y), &GameBitmaps[ GET_GAUGE_INDEX(GAUGE_HOMING_WARNING_ON) ]);
Last_homing_warning_shown = 1;
}
} else {
if (Last_homing_warning_shown != 0) {
PAGE_IN_GAUGE( GAUGE_HOMING_WARNING_OFF );
hud_bitblt( HUD_SCALE_X(HOMING_WARNING_X), HUD_SCALE_Y(HOMING_WARNING_Y), &GameBitmaps[ GET_GAUGE_INDEX(GAUGE_HOMING_WARNING_OFF) ]);
Last_homing_warning_shown = 0;
}
if (Players[Player_num].homing_object_dist >= 0)
{
if (GameTime & 0x4000)
{
PAGE_IN_GAUGE( GAUGE_HOMING_WARNING_ON );
hud_bitblt( HUD_SCALE_X(HOMING_WARNING_X), HUD_SCALE_Y(HOMING_WARNING_Y), &GameBitmaps[ GET_GAUGE_INDEX(GAUGE_HOMING_WARNING_ON) ]);
}
} else if (Last_homing_warning_shown != 0) {
else
{
PAGE_IN_GAUGE( GAUGE_HOMING_WARNING_OFF );
hud_bitblt( HUD_SCALE_X(HOMING_WARNING_X), HUD_SCALE_Y(HOMING_WARNING_Y), &GameBitmaps[ GET_GAUGE_INDEX(GAUGE_HOMING_WARNING_OFF) ]);
}
}
else
{
PAGE_IN_GAUGE( GAUGE_HOMING_WARNING_OFF );
hud_bitblt( HUD_SCALE_X(HOMING_WARNING_X), HUD_SCALE_Y(HOMING_WARNING_Y), &GameBitmaps[ GET_GAUGE_INDEX(GAUGE_HOMING_WARNING_OFF) ]);
Last_homing_warning_shown = 0;
}
}
@ -1941,7 +1936,6 @@ void draw_keys()
void draw_weapon_info_sub(int info_index,gauge_box *box,int pic_x,int pic_y,char *name,int text_x,int text_y)
{
grs_bitmap *bm;
char *p;
//clear the window
gr_setcolor(BM_XRGB(0,0,0));
@ -1952,7 +1946,9 @@ void draw_weapon_info_sub(int info_index,gauge_box *box,int pic_x,int pic_y,char
{
bm=&GameBitmaps[Weapon_info[info_index].hires_picture.index];
PIGGY_PAGE_IN( Weapon_info[info_index].hires_picture );
} else {
}
else
{
bm=&GameBitmaps[Weapon_info[info_index].picture.index];
PIGGY_PAGE_IN( Weapon_info[info_index].picture );
}
@ -1965,28 +1961,19 @@ void draw_weapon_info_sub(int info_index,gauge_box *box,int pic_x,int pic_y,char
{
gr_set_fontcolor(BM_XRGB(0,20,0),-1 );
if ((p=strchr(name,'\n'))!=NULL) {
*p=0;
if ((strchr(name,'\n'))!=NULL)
{
gr_printf(text_x,text_y,name);
gr_printf(text_x,text_y+LINE_SPACING,p+1);
*p='\n';
} else
}
else
gr_printf(text_x,text_y,name);
// For laser, show level and quadness
if (info_index == LASER_ID || info_index == SUPER_LASER_ID) {
char temp_str[7];
sprintf(temp_str, "%s: 0", TXT_LVL);
temp_str[5] = Players[Player_num].laser_level+1 + '0';
gr_printf(text_x,text_y+LINE_SPACING, temp_str);
if (Players[Player_num].flags & PLAYER_FLAGS_QUAD_LASERS) {
strcpy(temp_str, TXT_QUAD);
gr_printf(text_x,text_y+(LINE_SPACING*2), temp_str);
}
if (info_index == LASER_ID || info_index == SUPER_LASER_ID)
{
gr_printf(text_x,text_y+LINE_SPACING, "%s: %i", TXT_LVL, Players[Player_num].laser_level+1);
if (Players[Player_num].flags & PLAYER_FLAGS_QUAD_LASERS)
gr_printf(text_x,text_y+(LINE_SPACING*2), TXT_QUAD);
}
}
}