summaryrefslogtreecommitdiff
path: root/sourcemod/scripting/gokz-hud/racing_text.sp
diff options
context:
space:
mode:
Diffstat (limited to 'sourcemod/scripting/gokz-hud/racing_text.sp')
-rw-r--r--sourcemod/scripting/gokz-hud/racing_text.sp167
1 files changed, 0 insertions, 167 deletions
diff --git a/sourcemod/scripting/gokz-hud/racing_text.sp b/sourcemod/scripting/gokz-hud/racing_text.sp
deleted file mode 100644
index ac6ea3d..0000000
--- a/sourcemod/scripting/gokz-hud/racing_text.sp
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- Uses HUD text to show the race countdown and a start message.
-
- This is manually refreshed when a race starts to show the start message as
- soon as possible, improving responsiveness.
-*/
-
-
-
-static Handle racingHudSynchronizer;
-static float countdownStartTime[MAXPLAYERS + 1];
-
-
-
-// =====[ EVENTS ]=====
-
-void OnPluginStart_RacingText()
-{
- racingHudSynchronizer = CreateHudSynchronizer();
-}
-
-void OnPlayerRunCmdPost_RacingText(int client, int cmdnum)
-{
- int updateSpeed = gB_FastUpdateRate[client] ? 3 : 6;
- if (gB_GOKZRacing && cmdnum % updateSpeed == 2)
- {
- UpdateRacingText(client);
- }
-}
-
-void OnRaceInfoChanged_RacingText(int raceID, RaceInfo prop, int newValue)
-{
- if (prop != RaceInfo_Status)
- {
- return;
- }
-
- if (newValue == RaceStatus_Countdown)
- {
- for (int client = 1; client <= MaxClients; client++)
- {
- if (GOKZ_RC_GetRaceID(client) == raceID)
- {
- countdownStartTime[client] = GetGameTime();
- }
- }
- }
- else if (newValue == RaceStatus_Aborting)
- {
- for (int client = 1; client <= MaxClients; client++)
- {
- if (GOKZ_RC_GetRaceID(client) == raceID)
- {
- ClearRacingText(client);
- }
- }
- }
- else if (newValue == RaceStatus_Started)
- {
- for (int client = 1; client <= MaxClients; client++)
- {
- if (GOKZ_RC_GetRaceID(client) == raceID)
- {
- UpdateRacingText(client);
- }
- }
- }
-}
-
-
-
-// =====[ PRIVATE ]=====
-
-static void UpdateRacingText(int client)
-{
- KZPlayer player = KZPlayer(client);
-
- if (player.Fake)
- {
- return;
- }
-
- if (player.Alive)
- {
- ShowRacingText(player, player);
- }
- else
- {
- KZPlayer targetPlayer = KZPlayer(player.ObserverTarget);
- if (targetPlayer.ID != -1 && !targetPlayer.Fake)
- {
- ShowRacingText(player, targetPlayer);
- }
- }
-}
-
-static void ClearRacingText(int client)
-{
- ClearSyncHud(client, racingHudSynchronizer);
-}
-
-static void ShowRacingText(KZPlayer player, KZPlayer targetPlayer)
-{
- if (GOKZ_RC_GetStatus(targetPlayer.ID) != RacerStatus_Racing)
- {
- return;
- }
-
- int raceStatus = GOKZ_RC_GetRaceInfo(GOKZ_RC_GetRaceID(targetPlayer.ID), RaceInfo_Status);
- if (raceStatus == RaceStatus_Countdown)
- {
- ShowCountdownText(player, targetPlayer);
- }
- else if (raceStatus == RaceStatus_Started)
- {
- ShowStartedText(player, targetPlayer);
- }
-}
-
-static void ShowCountdownText(KZPlayer player, KZPlayer targetPlayer)
-{
- float timeToStart = (countdownStartTime[targetPlayer.ID] + RC_COUNTDOWN_TIME) - GetGameTime();
- int colour[4];
- GetCountdownColour(timeToStart, colour);
-
- SetHudTextParams(-1.0, 0.3, GetTextHoldTime(gB_FastUpdateRate[player.ID] ? 3 : 6), colour[0], colour[1], colour[2], colour[3], 0, 1.0, 0.0, 0.0);
- ShowSyncHudText(player.ID, racingHudSynchronizer, "%t\n\n%d", "Get Ready", IntMax(RoundToCeil(timeToStart), 1));
-}
-
-static void GetCountdownColour(float timeToStart, int buffer[4])
-{
- // From red to green
- if (timeToStart >= RC_COUNTDOWN_TIME)
- {
- buffer[0] = 255;
- buffer[1] = 0;
- }
- else if (timeToStart > RC_COUNTDOWN_TIME / 2.0)
- {
- buffer[0] = 255;
- buffer[1] = RoundFloat(-510.0 / RC_COUNTDOWN_TIME * timeToStart + 510.0);
- }
- else if (timeToStart > 0.0)
- {
- buffer[0] = RoundFloat(510.0 / RC_COUNTDOWN_TIME * timeToStart);
- buffer[1] = 255;
- }
- else
- {
- buffer[0] = 0;
- buffer[1] = 255;
- }
-
- buffer[2] = 0;
- buffer[3] = 255;
-}
-
-static void ShowStartedText(KZPlayer player, KZPlayer targetPlayer)
-{
- if (targetPlayer.TimerRunning)
- {
- return;
- }
-
- SetHudTextParams(-1.0, 0.3, GetTextHoldTime(gB_FastUpdateRate[player.ID] ? 3 : 6), 0, 255, 0, 255, 0, 1.0, 0.0, 0.0);
- ShowSyncHudText(player.ID, racingHudSynchronizer, "%t", "Go!");
-} \ No newline at end of file