Skip to content

Commit

Permalink
New tweak: Speedometer!
Browse files Browse the repository at this point in the history
  • Loading branch information
CK authored and CK committed Aug 22, 2023
1 parent 23660c3 commit 102d61d
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 0 deletions.
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,12 @@ server variable: `sv_game_timer`

Print a game timer in the corner of players' HUDs.

### Speedometer

server variable: `sv_speedometer`

Print a speedometer in players' HUDs.

### Faster Blasters

server game variable: `g_faster_blasters`
Expand Down
1 change: 1 addition & 0 deletions src/g_local.h
Original file line number Diff line number Diff line change
Expand Up @@ -1897,6 +1897,7 @@ extern cvar_t* g_grapple_damage;
// Q2ETweaks game cvar externs
extern cvar_t* sv_centerprint_frags;
extern cvar_t* sv_game_timer;
extern cvar_t* sv_speedometer;
extern cvar_t* g_faster_blasters;
extern cvar_t* g_faster_rockets;
extern cvar_t* g_no_self_damage;
Expand Down
2 changes: 2 additions & 0 deletions src/g_main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ cvar_t* g_weapon_respawn_time;
// Q2ETweaks game cvar definitions
cvar_t* sv_centerprint_frags;
cvar_t* sv_game_timer;
cvar_t* sv_speedometer;
cvar_t* g_faster_blasters;
cvar_t* g_faster_rockets;
cvar_t* g_no_self_damage;
Expand Down Expand Up @@ -259,6 +260,7 @@ void InitGame()
// Q2ETweaks init game cvars
sv_centerprint_frags = gi.cvar("sv_centerprint_frags", "0", CVAR_NOFLAGS);
sv_game_timer = gi.cvar("sv_game_timer", "0", CVAR_NOFLAGS);
sv_speedometer = gi.cvar("sv_speedometer", "0", CVAR_NOFLAGS);
g_faster_blasters = gi.cvar("g_faster_blasters", "0", CVAR_NOFLAGS);
g_faster_rockets = gi.cvar("g_faster_rockets", "0", CVAR_NOFLAGS);
g_no_self_damage = gi.cvar("g_no_self_damage", "0", CVAR_NOFLAGS);
Expand Down
3 changes: 3 additions & 0 deletions src/g_spawn.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1388,6 +1388,9 @@ static void G_InitStatusbar()

// Q2ETweaks game timer
sb.ifstat(STAT_GAME_TIMER).xv(0).yb(-78).stat_string2(STAT_GAME_TIMER).endifstat();

// Q2ETweaks speedometer
sb.ifstat(STAT_HEALTH_BARS).yt(272).health_bars().endifstat();
}

// ---- more shared stuff ----
Expand Down
2 changes: 2 additions & 0 deletions src/p_client.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2349,6 +2349,8 @@ void ClientBeginDeathmatch(edict_t *ent)
q2etweaks_welcome += "\tCenterprint Frags\n";
if (sv_game_timer->integer)
q2etweaks_welcome += "\tGame Timer\n";
if (sv_speedometer->integer)
q2etweaks_welcome += "\tSpeedometer\n";
if (g_faster_blasters->integer)
q2etweaks_welcome += "\tFaster Blasters\n";
if (g_faster_rockets->integer)
Expand Down
14 changes: 14 additions & 0 deletions src/p_hud.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1090,6 +1090,20 @@ void G_SetStats(edict_t *ent)
gi.configstring(CONFIG_GAME_TIMER, game_timer);
}
}

// Q2ETweaks speedometer
if (sv_speedometer->integer)
{
vec3_t ground_velocity = ent->client->oldvelocity;
ground_velocity.z = 0.0;
int ground_speed = ground_velocity.length();
byte* speedometer_byte = reinterpret_cast<byte*>(&ent->client->ps.stats[STAT_HEALTH_BARS]);
float speedometer_fracton = ((float)ground_speed) / 500.0;
*speedometer_byte = ((byte)(speedometer_fracton * 0b01111111)) | 0b10000000;
char speedometer_value[64];
G_FmtTo(speedometer_value, "{}", ground_speed);
gi.configstring(CONFIG_HEALTH_BAR_NAME, speedometer_value);
}
}

/*
Expand Down

0 comments on commit 102d61d

Please sign in to comment.