From 19c82e97e37922fde061d861a9c29c43671e80c9 Mon Sep 17 00:00:00 2001 From: zicodxx <> Date: Fri, 19 Feb 2010 00:24:32 +0000 Subject: [PATCH] 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 --- CHANGELOG.txt | 4 +++ main/gauges.c | 86 +++++++++++++++++++++------------------------------ main/text.c | 11 ++++--- main/weapon.c | 8 ----- 4 files changed, 47 insertions(+), 62 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index d37df8a9b..68a548219 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,5 +1,9 @@ D1X-Rebirth Changelog +20100219 +-------- +main/gauges.c, main/text.c, main/weapon.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; Instead of using hardcoded weapon strings, use from descent.txb and fixed too long spreadfire string properly + 20100214 -------- d1x.ini, arch/include/joy.h, arch/sdl/joy.c, main/endlevel.c, main/inferno.c, main/kconfig.c, main/slew.c, misc/args.c: Cleaning up Joystick code and on the way supporting more axes and buttons; Also fixed bug with channel_mask byte causing trouble using some axes ingame; Added argument to set environment variable which disables sticky keys (for SDL >= 1.2.14) diff --git a/main/gauges.c b/main/gauges.c index dff4eb403..00d3e2850 100644 --- a/main/gauges.c +++ b/main/gauges.c @@ -44,6 +44,7 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "text.h" #include "render.h" #include "piggy.h" +#include "laser.h" #include "playsave.h" #include "rle.h" #include "byteswap.h" @@ -189,7 +190,7 @@ COPYRIGHT 1993-1998 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?405:234) @@ -287,13 +288,13 @@ COPYRIGHT 1993-1998 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):11)) //(212+9) #define SB_SECONDARY_AMMO_Y HUD_SCALE_Y(HIRESMODE?414:171) @@ -342,7 +343,6 @@ int weapon_box_states[2]; 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; extern char HUD_messages[HUD_MAX_NUM][HUD_MESSAGE_LENGTH+5]; @@ -876,38 +876,33 @@ 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) { - PIGGY_PAGE_IN( Gauges[GAUGE_HOMING_WARNING_OFF] ); - hud_bitblt( HOMING_WARNING_X, HOMING_WARNING_Y, &GameBitmaps[Gauges[GAUGE_HOMING_WARNING_OFF].index]); - Last_homing_warning_shown = 0; - } + if (Endlevel_sequence) + { + PIGGY_PAGE_IN( Gauges[GAUGE_HOMING_WARNING_OFF] ); + hud_bitblt( HOMING_WARNING_X, HOMING_WARNING_Y, &GameBitmaps[Gauges[GAUGE_HOMING_WARNING_OFF].index]); return; } gr_set_current_canvas( NULL ); - if (Players[Player_num].homing_object_dist >= 0) { - - if (GameTime & 0x4000) { - if (Last_homing_warning_shown != 1) { - PIGGY_PAGE_IN(Gauges[GAUGE_HOMING_WARNING_ON]); - hud_bitblt( HOMING_WARNING_X, HOMING_WARNING_Y, &GameBitmaps[Gauges[GAUGE_HOMING_WARNING_ON].index]); - Last_homing_warning_shown = 1; - } - } else { - if (Last_homing_warning_shown != 0) { - PIGGY_PAGE_IN(Gauges[GAUGE_HOMING_WARNING_OFF]); - hud_bitblt( HOMING_WARNING_X, HOMING_WARNING_Y, &GameBitmaps[Gauges[GAUGE_HOMING_WARNING_OFF].index]); - Last_homing_warning_shown = 0; - } + if (Players[Player_num].homing_object_dist >= 0) + { + if (GameTime & 0x4000) + { + PIGGY_PAGE_IN(Gauges[GAUGE_HOMING_WARNING_ON]); + hud_bitblt( HOMING_WARNING_X, HOMING_WARNING_Y, &GameBitmaps[Gauges[GAUGE_HOMING_WARNING_ON].index]); } - } else if (Last_homing_warning_shown != 0) { + else + { + PIGGY_PAGE_IN(Gauges[GAUGE_HOMING_WARNING_OFF]); + hud_bitblt( HOMING_WARNING_X, HOMING_WARNING_Y, &GameBitmaps[Gauges[GAUGE_HOMING_WARNING_OFF].index]); + } + } + else + { PIGGY_PAGE_IN(Gauges[GAUGE_HOMING_WARNING_OFF]); hud_bitblt( HOMING_WARNING_X, HOMING_WARNING_Y, &GameBitmaps[Gauges[GAUGE_HOMING_WARNING_OFF].index]); - Last_homing_warning_shown = 0; } - } void hud_show_homing_warning(void) @@ -1703,29 +1698,20 @@ void draw_weapon_info_sub(int info_index,gauge_box *box,int pic_x,int pic_y,char if (PlayerCfg.HudMode == 0) { 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 == 0) { - 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); - } + + // For laser, show level and quadness + if (info_index == 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); } } } @@ -1743,13 +1729,13 @@ void draw_weapon_info(int weapon_type,int weapon_num) { if (PlayerCfg.CockpitMode[1] == CM_STATUS_BAR) { - draw_weapon_info_sub(Primary_weapon_to_weapon_info[weapon_num],&gauge_boxes[SB_PRIMARY_BOX],SB_PRIMARY_W_PIC_X,SB_PRIMARY_W_PIC_Y,Primary_weapon_names_short[weapon_num],SB_PRIMARY_W_TEXT_X,SB_PRIMARY_W_TEXT_Y); + draw_weapon_info_sub(Primary_weapon_to_weapon_info[weapon_num],&gauge_boxes[SB_PRIMARY_BOX],SB_PRIMARY_W_PIC_X,SB_PRIMARY_W_PIC_Y,PRIMARY_WEAPON_NAMES_SHORT(weapon_num),SB_PRIMARY_W_TEXT_X,SB_PRIMARY_W_TEXT_Y); x=SB_PRIMARY_AMMO_X; y=SB_PRIMARY_AMMO_Y; } else { - draw_weapon_info_sub(Primary_weapon_to_weapon_info[weapon_num],&gauge_boxes[COCKPIT_PRIMARY_BOX],PRIMARY_W_PIC_X,PRIMARY_W_PIC_Y, Primary_weapon_names_short[weapon_num],PRIMARY_W_TEXT_X,PRIMARY_W_TEXT_Y); + draw_weapon_info_sub(Primary_weapon_to_weapon_info[weapon_num],&gauge_boxes[COCKPIT_PRIMARY_BOX],PRIMARY_W_PIC_X,PRIMARY_W_PIC_Y, PRIMARY_WEAPON_NAMES_SHORT(weapon_num),PRIMARY_W_TEXT_X,PRIMARY_W_TEXT_Y); x=PRIMARY_AMMO_X; y=PRIMARY_AMMO_Y; } diff --git a/main/text.c b/main/text.c index 3d9d9b70c..a7855cc56 100644 --- a/main/text.c +++ b/main/text.c @@ -305,10 +305,13 @@ void load_text() switch(i) { char *extra; char *str; - - case 145: - Text_string[i]=(char *) d_malloc(sizeof(char) * 48); - strcpy(Text_string[i],"Sidewinder &\nThrustmaster FCS &\nWingman Extreme"); + + case 116: + if (!stricmp(Text_string[i], "SPREADFIRE")) // This string is too long to fit in the cockpit-box + { + memset(Text_string[i], '\0', sizeof(char)*(strlen(Text_string[i])+1)); + strncpy(Text_string[i], "SPREAD", sizeof(char)*6); + } break; case 330: diff --git a/main/weapon.c b/main/weapon.c index 91b416b6f..dc4e488f9 100644 --- a/main/weapon.c +++ b/main/weapon.c @@ -45,14 +45,6 @@ ubyte DefaultSecondaryOrder[] = { 4, 3, 1, 0, 255, 2 }; extern ubyte MenuReordering; ubyte Cycling=0; -char *Primary_weapon_names_short[MAX_PRIMARY_WEAPONS] = { - "Laser", - "Vulcan", - "Spread", - "Plasma", - "Fusion" -}; - // ------------------------------------------------------------------------------------ // Return: // Bits set: