Skip to content

Commit

Permalink
[#9] Use mod colours instead of listing all the weapons as well, not …
Browse files Browse the repository at this point in the history
…sure about the colours yet I kind of just went with random ones
  • Loading branch information
taysta committed Oct 2, 2023
1 parent 438db44 commit 2e99b5d
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 78 deletions.
5 changes: 1 addition & 4 deletions codemp/cgame/hud_local.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,12 @@
#define HUD_LOCAL_H
#define MAX_OBITUARY 16

extern vec4_t hud_weapon_colors[WP_NUM_WEAPONS];
extern const char *hud_weapon_icons[WP_NUM_WEAPONS];
extern vec4_t hud_mod_colors[MOD_MAX];
extern const char *hud_mod_icons[MOD_MAX];

typedef struct {
qhandle_t icon_death; // for generic kill message
qhandle_t icon_weapon[WP_NUM_WEAPONS]; // weapon icons for the vertical ammo status bar
qhandle_t icon_mod[MOD_MAX]; // means of death icons
qhandle_t itemicons[MAX_ITEMS];
} hud_media_t;

extern hud_media_t hud_media;
Expand Down
28 changes: 11 additions & 17 deletions codemp/cgame/hud_obituary.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,17 +53,11 @@ void hud_drawobituary( void ) {
y = 25;

for ( p = hud_obituary; p < hud_obituary + hud_numobituary; p++ ) {
if ( p->weapon > WP_NONE && p->weapon < WP_NUM_WEAPONS ) {
deathicon = hud_media.icon_weapon[p->weapon];
wepcolor[0] = hud_weapon_colors[p->weapon][0];
wepcolor[1] = hud_weapon_colors[p->weapon][1];
wepcolor[2] = hud_weapon_colors[p->weapon][2];
wepcolor[3] = color[3];
} else {
deathicon = hud_media.icon_mod[p->mod];
wepcolor[0] = wepcolor[1] = wepcolor[2] = 1.0f;
wepcolor[3] = color[3];
}
deathicon = hud_media.icon_mod[p->mod];
wepcolor[0] = hud_mod_colors[p->mod][0];
wepcolor[1] = hud_mod_colors[p->mod][1];
wepcolor[2] = hud_mod_colors[p->mod][2];
wepcolor[3] = color[3];

if ( cg.time - p->time > OBITUARY_FADEOUTTIME ) {
color[3] = 1.0f - ( (float)cg.time - p->time - OBITUARY_FADEOUTTIME ) / ( OBITUARY_TIMEOUT - OBITUARY_FADEOUTTIME );
Expand All @@ -75,15 +69,15 @@ void hud_drawobituary( void ) {
if ( p->killer == p->victim || p->killer == ENTITYNUM_WORLD ) {
CG_Text_Paint( x, y, 0.4f, colorWhite, va( "%s ^7%s", cgs.clientinfo[p->victim].name, "suicides" ), 0, 2, 2, FONT_MEDIUM);

y += 24;
y += 30;
continue;
}
dim = CG_Text_Width( cgs.clientinfo[p->killer].name, 0.4f, FONT_MEDIUM);
dim = CG_Text_Width( cgs.clientinfo[p->killer].name, 0.6f, FONT_MEDIUM);
CG_Text_Paint( x, y, 0.4f, colorWhite, cgs.clientinfo[p->killer].name, 0, 0, 4, FONT_MEDIUM );
CG_Text_Paint( x + dim + 30 , y, 0.4f, colorWhite, cgs.clientinfo[p->victim].name, 0, 0, 4, FONT_MEDIUM );
trap->R_SetColor( NULL );
CG_DrawPic( x + dim + 6, y - 2, 18, 18, deathicon );
y += 24;
CG_Text_Paint( x + dim + (36 * cgs.widthRatioCoef), y, 0.6f, colorWhite, cgs.clientinfo[p->victim].name, 0, 0, 4, FONT_MEDIUM );
trap->R_SetColor( wepcolor );
CG_DrawPic( x + dim + (6 * cgs.widthRatioCoef), y - 3, 24 * cgs.widthRatioCoef, 24, deathicon );
y += 30;
}
trap->R_SetColor( NULL );
}
Expand Down
102 changes: 45 additions & 57 deletions codemp/cgame/hud_shared.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,48 +2,50 @@
#include "cg_local.h"
#include "hud_local.h"

vec4_t hud_weapon_colors[WP_NUM_WEAPONS] = {
{ 1.0f, 1.0f, 1.0f, 1.0f }, // WP_NONE
{ 0.0f, 1.0f, 1.0f, 1.0f }, // WP_STUN_BATON
{ 1.0f, 1.0f, 0.0f, 1.0f }, // WP_MELEE
{ 0.5f, 0.0f, 1.0f, 1.0f }, // WP_SABER
{ 0.0f, 1.0f, 1.0f, 1.0f }, // WP_BRYAR_PISTOL
{ 1.0f, 1.0f, 0.5f, 1.0f }, // WP_BLASTER
{ 0.0f, 1.0f, 0.0f, 1.0f }, // WP_DISRUPTOR
{ 0.0f, 1.0f, 0.5f, 1.0f }, // WP_BOWCASTER
{ 0.0f, 0.0f, 1.0f, 1.0f }, // WP_REPEATER
{ 0.5f, 1.0f, 0.0f, 1.0f }, // WP_DEMP2
{ 1.0f, 0.5f, 0.0f, 1.0f }, // WP_FLECHETTE
{ 1.0f, 0.0f, 0.0f, 1.0f }, // WP_ROCKET_LAUNCHER
{ 1.0f, 1.0f, 1.0f, 1.0f }, // WP_THERMAL
{ 1.0f, 1.0f, 0.4f, 1.0f }, // WP_TRIP_MINE
{ 1.0f, 0.4f, 0.0f, 1.0f }, // WP_DET_PACK
{ 1.0f, 0.0f, 1.0f, 1.0f }, // WP_CONCUSSION
{ 0.0f, 1.0f, 1.0f, 1.0f }, // WP_BRYAR_OLD
{ 0.0f, 0.5f, 1.0f, 1.0f }, // WP_EMPLACED_GUN
{ 1.0f, 1.0f, 1.0f, 1.0f }, // WP_TURRET
};

const char *hud_weapon_icons[WP_NUM_WEAPONS] = {
"", // WP_NONE
"gfx/hud/w_icon_stunbaton", // WP_STUN_BATON
"gfx/hud/w_icon_melee", // WP_MELEE
"gfx/hud/w_icon_lightsaber", // WP_SABER
"gfx/hud/w_icon_blaster_pistol", // WP_BRYAR_PISTOL
"gfx/hud/w_icon_blaster", // WP_BLASTER
"gfx/hud/w_icon_disruptor", // WP_DISRUPTOR
"gfx/hud/w_icon_bowcaster", // WP_BOWCASTER
"gfx/hud/w_icon_repeater", // WP_REPEATER
"gfx/hud/w_icon_demp2", // WP_DEMP2
"gfx/hud/w_icon_flachette", // WP_FLECHETTE
"gfx/hud/w_icon_merrsonn", // WP_ROCKET_LAUNCHER
"gfx/hud/w_icon_thermal", // WP_THERMAL
"gfx/hud/w_icon_tripmine", // WP_TRIP_MINE
"gfx/hud/w_icon_detpack", // WP_DET_PACK
"gfx/hud/w_icon_c_rifle", // WP_CONCUSSION
"gfx/hud/w_icon_briar", // WP_BRYAR_OLD
"gfx/hud/w_icon_blaster", // WP_EMPLACED_GUN
"gfx/hud/w_icon_blaster", // WP_TURRET
vec4_t hud_mod_colors[MOD_MAX] = {
{ 1.0f, 1.0f, 1.0f, 1.0f }, // MOD_UNKNOWN
{ 0.0f, 1.0f, 1.0f, 1.0f }, // MOD_STUN_BATON
{ 1.0f, 1.0f, 0.0f, 1.0f }, // MOD_MELEE
{ 0.5f, 0.0f, 1.0f, 1.0f }, // MOD_SABER
{ 0.0f, 1.0f, 1.0f, 1.0f }, // MOD_BRYAR_PISTOL
{ 0.0f, 1.0f, 1.0f, 1.0f }, // MOD_BRYAR_PISTOL_ALT
{ 0.0f, 1.0f, 0.5f, 1.0f }, // MOD_BLASTER
{ 0.0f, 1.0f, 0.5f, 1.0f }, // MOD_TURBLAST
{ 0.0f, 1.0f, 0.0f, 1.0f }, // MOD_DISRUPTOR
{ 0.0f, 1.0f, 0.0f, 1.0f }, // MOD_DISRUPTOR_SPLASH
{ 0.0f, 1.0f, 0.0f, 1.0f }, // MOD_DISRUPTOR_SNIPER
{ 0.0f, 1.0f, 0.5f, 1.0f }, // MOD_BOWCASTER
{ 0.0f, 0.0f, 1.0f, 1.0f }, // MOD_REPEATER
{ 0.0f, 0.0f, 1.0f, 1.0f }, // MOD_REPEATER_ALT
{ 0.0f, 0.0f, 1.0f, 1.0f }, // MOD_REPEATER_ALT_SPLASH
{ 0.5f, 1.0f, 0.0f, 1.0f }, // MOD_DEMP2
{ 0.5f, 1.0f, 0.0f, 1.0f }, // MOD_DEMP2_ALT
{ 1.0f, 0.5f, 0.0f, 1.0f }, // MOD_FLECHETTE
{ 1.0f, 0.5f, 0.0f, 1.0f }, // MOD_FLECHETTE_ALT_SPLASH
{ 1.0f, 0.0f, 0.0f, 1.0f }, // MOD_ROCKET
{ 1.0f, 0.0f, 0.0f, 1.0f }, // MOD_ROCKET_SPLASH
{ 1.0f, 0.0f, 0.0f, 1.0f }, // MOD_ROCKET_HOMING
{ 1.0f, 0.0f, 0.0f, 1.0f }, // MOD_ROCKET_HOMING_SPLASH
{ 1.0f, 0.4f, 0.0f, 1.0f }, // MOD_THERMAL
{ 1.0f, 0.4f, 0.0f, 1.0f }, // MOD_THERMAL_SPLASH
{ 1.0f, 1.0f, 0.4f, 1.0f }, // MOD_TRIP_MINE_SPLASH
{ 1.0f, 1.0f, 0.4f, 1.0f }, // MOD_TIMED_MINE_SPLASH
{ 1.0f, 0.4f, 0.0f, 1.0f }, // MOD_DET_PACK_SPLASH
{ 0.0f, 1.0f, 0.0f, 1.0f }, // MOD_VEHICLE
{ 1.0f, 0.0f, 1.0f, 1.0f }, // MOD_CONC
{ 1.0f, 0.0f, 1.0f, 1.0f }, // MOD_CONC_ALT
{ 1.0f, 0.4f, 0.0f, 1.0f }, // MOD_FORCE_DARK
{ 1.0f, 1.0f, 1.0f, 1.0f }, // MOD_SENTRY
{ 0.0f, 0.0f, 1.0f, 1.0f }, // MOD_WATER
{ 0.0f, 1.0f, 0.0f, 1.0f }, // MOD_SLIME
{ 1.0f, 0.0f, 0.0f, 1.0f }, // MOD_LAVA
{ 0.0f, 0.0f, 0.0f, 1.0f }, // MOD_CRUSH
{ 0.4f, 0.2f, 0.3f, 1.0f }, // MOD_TELEFRAG
{ 1.0f, 1.0f, 0.6f, 1.0f }, // MOD_FALLING
{ 0.5f, 0.2f, 0.7f, 1.0f }, // MOD_SUICIDE
{ 0.0f, 1.0f, 0.0f, 1.0f }, // MOD_TARGET_LASER
{ 1.0f, 1.0f, 0.6f, 1.0f }, // MOD_TRIGGER_HURT
{ 1.0f, 1.0f, 1.0f, 1.0f } // MOD_TEAM_CHANGE
};

const char *hud_mod_icons[ MOD_MAX ] = {
Expand Down Expand Up @@ -71,7 +73,7 @@ const char *hud_mod_icons[ MOD_MAX ] = {
"hud/mod/merrsonn_alt", // MOD_ROCKET_HOMING
"hud/mod/merrsonn_alt", // MOD_ROCKET_HOMING_SPLASH
"hud/mod/thermal", // MOD_THERMAL
"hud/mod/thermal_alt", // MOD_THERMAL_SPLASH
"hud/mod/thermal", // MOD_THERMAL_SPLASH
"hud/mod/mine", // MOD_TRIP_MINE_SPLASH
"hud/mod/mine", // MOD_TIMED_MINE_SPLASH
"hud/mod/detpack", // MOD_DET_PACK_SPLASH
Expand All @@ -97,22 +99,8 @@ hud_media_t hud_media;
// get all the required assets
void hud_initmedia( void ) {
int i;

for ( i = 0; i < WP_NUM_WEAPONS; i++ ) {
hud_media.icon_weapon[i] = trap->R_RegisterShaderNoMip( hud_weapon_icons[i] );
}
for ( i = 0; i < MOD_MAX; i++ ) {
hud_media.icon_mod[i] = trap->R_RegisterShaderNoMip( hud_mod_icons[i] );
}

for ( i = 0; i < bg_numItems; i++ ) {
if ( bg_itemlist[i].icon != NULL && bg_itemlist[i].icon[0] )
{
hud_media.itemicons[i] = trap->R_RegisterShaderNoMip( bg_itemlist[i].icon );
}
else {
hud_media.itemicons[i] = -1;
}
}
}

0 comments on commit 2e99b5d

Please sign in to comment.