2019-12-07 11:57 EST


View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0002391FSSCPHUDpublic2011-11-15 18:24
ReporterFUBAR-BDHR 
Assigned ToThe_E 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
Product Version3.6.13 
Target Version3.6.14Fixed in Version3.6.13 
Summary0002391: Problems when using non-default gauge names
DescriptionBasically 2_lock1.ani is no longer in my hud_gauges.tbl. All ships use a different file name. The effect loads and works in game but a warning about 2_lock1.ani missing is still produced. Tracking this it seems that hud_init_missile_lock() in hudlock.cpp still uses the old hardcoded array to get the filename for that gauge. I assume the same thing will happen if lockspin is renamed as well.

Line that passes the data in question:

hud_anim_init(&Lock_gauge, 0, 0, Lock_fname[Hud_reticle_style][gr_screen.res]);
TagsNo tags attached.
Attached Files
  • patch file icon hudcleanup.patch (5,096 bytes) 2011-11-15 08:30 -
    Index: code/hud/hud.cpp
    ===================================================================
    --- code/hud/hud.cpp	(revision 7990)
    +++ code/hud/hud.cpp	(working copy)
    @@ -2466,18 +2466,11 @@
     }
     
     /**
    - * @brief Load in ::Kills_gauge if required
    + * @brief Obsolete initializer for the kills gauge. Now superseded by the new HUD code.
      */
     void hud_init_kills_gauge()
     {
    -	if ( !Kills_gauge_loaded ) {
    -		Kills_gauge.first_frame = bm_load_animation(Kills_fname[gr_screen.res], &Kills_gauge.num_frames);
    -		if ( Kills_gauge.first_frame == -1 ) {
    -			Warning(LOCATION, "Could not load in the kills ani: Kills_fname[gr_screen.res]\n");
    -			return;
    -		}
    -		Kills_gauge_loaded = 1;
    -	}
    +	Kills_gauge_loaded = 1;
     }
     
     /**
    Index: code/hud/hudtarget.cpp
    ===================================================================
    --- code/hud/hudtarget.cpp	(revision 7990)
    +++ code/hud/hudtarget.cpp	(working copy)
    @@ -1002,82 +1002,14 @@
     // Init data used for the weapons display on the HUD
     void hud_weapons_init()
     {
    -	int i, j, k, hud_index, gauge_index, hud_warned;
    -
     	Weapon_flash_info.is_bright = 0;
    -	for ( i = 0; i < MAX_WEAPON_FLASH_LINES; i++ ) {
    +	for ( int i = 0; i < MAX_WEAPON_FLASH_LINES; i++ ) {
     		Weapon_flash_info.flash_duration[i] = 1;
     		Weapon_flash_info.flash_next[i] = 1;
     	}
     
    -	if ( !Weapon_gauges_loaded )
    -	{
    -		hud_warned = 0;
    -		New_weapon.first_frame = bm_load("weapon6");
    -
    -		for (hud_index = 0; hud_index < NUM_HUD_SETTINGS; hud_index++)
    -		{
    -			for ( gauge_index = 0; gauge_index < NUM_WEAPON_GAUGES; gauge_index++ )
    -			{
    -				Weapon_gauges[hud_index][gauge_index].first_frame = bm_load_animation(Weapon_gauge_fnames[hud_index][gr_screen.res][gauge_index], &Weapon_gauges[hud_index][gauge_index].num_frames);
    -
    -				// file not found?
    -				if ( Weapon_gauges[hud_index][gauge_index].first_frame < 0 )
    -				{
    -					// if this is the ballistic hud setting, load the conventional ani
    -					if (hud_index)
    -					{
    -						// give a single warning
    -						if (!hud_warned)
    -						{
    -							// commented because it gets annoying, and the warning really isn't needed anyway - Goober5000
    -							//Warning(LOCATION, "Warning: Ballistic HUD graphics not found.  Defaulting to original graphics.\n");
    -							hud_warned = 1;
    -						}
    -
    -						Weapon_gauges[hud_index][gauge_index].first_frame = bm_load_animation(Weapon_gauge_fnames[0][gr_screen.res][gauge_index], &Weapon_gauges[hud_index][gauge_index].num_frames);
    -
    -						// and test again
    -						if ( Weapon_gauges[hud_index][gauge_index].first_frame < 0 )
    -						{
    -							Warning(LOCATION,"Cannot load hud ani: %s\n",Weapon_gauge_fnames[hud_index][gr_screen.res][gauge_index]);
    -						}
    -					}
    -					// otherwise, display the regular warning
    -					else
    -					{
    -						Warning(LOCATION,"Cannot load hud ani: %s\n",Weapon_gauge_fnames[hud_index][gr_screen.res][gauge_index]);
    -					}
    -				}
    -			}
    -		}
    -
    -		// reset the old coordinates if hud_warned
    -		if (hud_warned)
    -		{
    -			// don't reset the first one, but reset all others
    -			for (hud_index = 1; hud_index < NUM_HUD_SETTINGS; hud_index++)
    -			{
    -				for (i = 0; i < GR_NUM_RESOLUTIONS; i++)
    -				{
    -					for (k = 0; k < 2; k++)
    -					{
    -						for (j = 0; j < 3; j++)
    -						{
    -							Weapon_gauge_primary_coords[hud_index][i][j][k] = Weapon_gauge_primary_coords[0][i][j][k];
    -						}
    -						for (j = 0; j < 5; j++)
    -						{
    -							Weapon_gauge_secondary_coords[hud_index][i][j][k] = Weapon_gauge_secondary_coords[0][i][j][k];
    -						}
    -						Weapon_title_coords[hud_index][i][k] = Weapon_title_coords[0][i][k];
    -					}
    -				}
    -			}
    -		}
    -
    -		Weapon_gauges_loaded = 1;
    -	}
    +	// The E: There used to be a number of checks here. They are no longer needed, as the new HUD code handles it on its own.
    +	Weapon_gauges_loaded = 1;
     }
     
     // init data used to play the homing "proximity warning" sound
    Index: code/mission/missiontraining.cpp
    ===================================================================
    --- code/mission/missiontraining.cpp	(revision 7990)
    +++ code/mission/missiontraining.cpp	(working copy)
    @@ -372,17 +372,9 @@
     	for (i = 0; i < TRAINING_MESSAGE_QUEUE_MAX; i++)
     		Training_message_queue[i].special_message = NULL;
     
    -	if ( !Directive_frames_loaded ) {
    -		for ( i = 0; i < NUM_DIRECTIVE_GAUGES; i++ ) {
    -			Directive_gauge[i].first_frame = bm_load_animation(Directive_fnames[i], &Directive_gauge[i].num_frames);
    -			if ( Directive_gauge[i].first_frame < 0 ) {
    -				Warning(LOCATION,"Cannot load hud ani: %s\n", Directive_fnames[i]);
    -			}
    -		}
    -
    -		Directive_frames_loaded = 1;
    -	}
    -
    +	// The E: This is now handled by the new HUD code. No need to check here.
    +	Directive_frames_loaded = 1;
    +	
     	// only clear player flags if this is actually a training mission
     	if ( The_mission.game_type & MISSION_TYPE_TRAINING ) {
     		Player->flags &= ~(PLAYER_FLAGS_MATCH_TARGET | PLAYER_FLAGS_MSG_MODE | PLAYER_FLAGS_AUTO_TARGETING | PLAYER_FLAGS_AUTO_MATCH_SPEED | PLAYER_FLAGS_LINK_PRIMARY | PLAYER_FLAGS_LINK_SECONDARY );
    
    patch file icon hudcleanup.patch (5,096 bytes) 2011-11-15 08:30 +

-Relationships
+Relationships

-Notes

~0012620

FUBAR-BDHR (developer)

Changing this to a list as I've run into the same issue with directives1 2 & 3 in missiontraining.cpp training_mission_init(). Definitions are at line 122 in missiontraining.cpp.

Also confirmed the lockspin one.

~0012621

FUBAR-BDHR (developer)

Adding time1 to the list. Hardcoded value used in hud_init_kills_gauge()in hud.cpp and defined at line 194.

~0012622

FUBAR-BDHR (developer)

Same with weapons1 thru weapons5 (but not weapons6). Hardcoded value still used in hud_weapons_init()in hudtarget.cpp and defined at line 405. Looks like the _b versions are as well.

~0012647

The_E (administrator)

Resolved in trunk revision 7102

~0012964

FUBAR-BDHR (developer)

Re-opening this as there are still a bunch of gauges with the issue. So far I've found:

directive1.ani
directive2.ani
directive3.ani
kills1.ani
weapons1.ani
weapons2.ani
weapons3.ani
weapons4.ani
weapons5.ani
weapons1_b.ani
weapons2_b.ani
weapons3_b.ani
weapons4_b.ani
weapons5_b.ani

Also for some reason the weapons?_b weapons files don't show up as missing unless weapons? is also missing.

~0012965

The_E (administrator)

Please check the attached patch.

~0012970

The_E (administrator)

Revised patch committed in revision 7997
+Notes

-Issue History
Date Modified Username Field Change
2011-02-01 04:56 FUBAR-BDHR New Issue
2011-02-02 05:13 FUBAR-BDHR Note Added: 0012620
2011-02-02 05:13 FUBAR-BDHR Summary Problem when using non-default lock (and probably lockspin) indicator name => Problems when using non-default gauge names
2011-02-02 22:43 FUBAR-BDHR Note Added: 0012621
2011-02-03 20:51 FUBAR-BDHR Note Added: 0012622
2011-03-31 13:17 chief1983 Target Version => 3.6.14
2011-04-04 09:02 The_E Note Added: 0012647
2011-04-04 09:02 The_E Status new => resolved
2011-04-04 09:02 The_E Fixed in Version => 3.6.13
2011-04-04 09:02 The_E Resolution open => fixed
2011-04-04 09:02 The_E Assigned To => The_E
2011-11-15 05:17 FUBAR-BDHR Note Added: 0012964
2011-11-15 05:17 FUBAR-BDHR Status resolved => feedback
2011-11-15 05:17 FUBAR-BDHR Resolution fixed => reopened
2011-11-15 08:19 The_E File Added: hudcleanup.patch
2011-11-15 08:30 The_E File Deleted: hudcleanup.patch
2011-11-15 08:30 The_E File Added: hudcleanup.patch
2011-11-15 08:30 The_E Note Added: 0012965
2011-11-15 18:24 The_E Note Added: 0012970
2011-11-15 18:24 The_E Status feedback => resolved
2011-11-15 18:24 The_E Resolution reopened => fixed
+Issue History