Added Shavit_OnTrackChanged and Shavit_OnReplaysLoaded

This commit is contained in:
KiD Fearless 2019-12-18 12:14:22 -07:00
parent ea00c86026
commit c42d14f46d
3 changed files with 44 additions and 0 deletions

View File

@ -612,6 +612,16 @@ forward void Shavit_OnResume(int client, int track);
*/ */
forward void Shavit_OnStyleChanged(int client, int oldstyle, int newstyle, int track, bool manual); forward void Shavit_OnStyleChanged(int client, int oldstyle, int newstyle, int track, bool manual);
/**
* Called when a player changes their bhop track.
*
* @param client Client index.
* @param oldtrack Old bhop track.
* @param newtrack New bhop track.
* @noreturn
*/
forward void Shavit_OnTrackChanged(int client, int oldtrack, int newtrack);
/** /**
* Called when the styles configuration finishes loading and it's ready to load everything into the cache. * Called when the styles configuration finishes loading and it's ready to load everything into the cache.
* *
@ -734,6 +744,13 @@ forward void Shavit_OnReplayStart(int client);
*/ */
forward void Shavit_OnReplayEnd(int client); forward void Shavit_OnReplayEnd(int client);
/**
* Called when all replays files have been loaded.
*
* @noreturn
*/
forward void Shavit_OnReplaysLoaded();
/** /**
* Called when top left HUD updates. * Called when top left HUD updates.
* *

View File

@ -79,6 +79,7 @@ Handle gH_Forwards_OnEnd = null;
Handle gH_Forwards_OnPause = null; Handle gH_Forwards_OnPause = null;
Handle gH_Forwards_OnResume = null; Handle gH_Forwards_OnResume = null;
Handle gH_Forwards_OnStyleChanged = null; Handle gH_Forwards_OnStyleChanged = null;
Handle gH_Forwards_OnTrackChanged = null;
Handle gH_Forwards_OnStyleConfigLoaded = null; Handle gH_Forwards_OnStyleConfigLoaded = null;
Handle gH_Forwards_OnDatabaseLoaded = null; Handle gH_Forwards_OnDatabaseLoaded = null;
Handle gH_Forwards_OnChatConfigLoaded = null; Handle gH_Forwards_OnChatConfigLoaded = null;
@ -231,6 +232,7 @@ public void OnPluginStart()
gH_Forwards_OnPause = CreateGlobalForward("Shavit_OnPause", ET_Event, Param_Cell, Param_Cell); gH_Forwards_OnPause = CreateGlobalForward("Shavit_OnPause", ET_Event, Param_Cell, Param_Cell);
gH_Forwards_OnResume = CreateGlobalForward("Shavit_OnResume", ET_Event, Param_Cell, Param_Cell); gH_Forwards_OnResume = CreateGlobalForward("Shavit_OnResume", ET_Event, Param_Cell, Param_Cell);
gH_Forwards_OnStyleChanged = CreateGlobalForward("Shavit_OnStyleChanged", ET_Event, Param_Cell, Param_Cell, Param_Cell, Param_Cell, Param_Cell); gH_Forwards_OnStyleChanged = CreateGlobalForward("Shavit_OnStyleChanged", ET_Event, Param_Cell, Param_Cell, Param_Cell, Param_Cell, Param_Cell);
gH_Forwards_OnTrackChanged = CreateGlobalForward("Shavit_OnTrackChanged", ET_Event, Param_Cell, Param_Cell, Param_Cell);
gH_Forwards_OnStyleConfigLoaded = CreateGlobalForward("Shavit_OnStyleConfigLoaded", ET_Event, Param_Cell); gH_Forwards_OnStyleConfigLoaded = CreateGlobalForward("Shavit_OnStyleConfigLoaded", ET_Event, Param_Cell);
gH_Forwards_OnDatabaseLoaded = CreateGlobalForward("Shavit_OnDatabaseLoaded", ET_Event); gH_Forwards_OnDatabaseLoaded = CreateGlobalForward("Shavit_OnDatabaseLoaded", ET_Event);
gH_Forwards_OnChatConfigLoaded = CreateGlobalForward("Shavit_OnChatConfigLoaded", ET_Event); gH_Forwards_OnChatConfigLoaded = CreateGlobalForward("Shavit_OnChatConfigLoaded", ET_Event);
@ -1068,6 +1070,15 @@ public int StyleMenu_Handler(Menu menu, MenuAction action, int param1, int param
return 0; return 0;
} }
void CallOnTrackChanged(int client, int oldtrack, int newtrack)
{
Call_StartForward(gH_Forwards_OnTrackChanged);
Call_PushCell(client);
Call_PushCell(oldtrack);
Call_PushCell(newtrack);
Call_Finish();
}
void CallOnStyleChanged(int client, int oldstyle, int newstyle, bool manual) void CallOnStyleChanged(int client, int oldstyle, int newstyle, bool manual)
{ {
Call_StartForward(gH_Forwards_OnStyleChanged); Call_StartForward(gH_Forwards_OnStyleChanged);
@ -1698,6 +1709,11 @@ public int Native_LoadSnapshot(Handle handler, int numParams)
timer_snapshot_t snapshot; timer_snapshot_t snapshot;
GetNativeArray(2, snapshot, sizeof(timer_snapshot_t)); GetNativeArray(2, snapshot, sizeof(timer_snapshot_t));
if(gA_Timers[client].iTrack != snapshot.iTimerTrack)
{
CallOnTrackChanged(client, gA_Timers[client].iTrack, snapshot.iTimerTrack);
}
gA_Timers[client].iTrack = snapshot.iTimerTrack; gA_Timers[client].iTrack = snapshot.iTimerTrack;
if(gA_Timers[client].iStyle != snapshot.bsStyle && Shavit_HasStyleAccess(client, snapshot.bsStyle)) if(gA_Timers[client].iStyle != snapshot.bsStyle && Shavit_HasStyleAccess(client, snapshot.bsStyle))
@ -1782,6 +1798,12 @@ void StartTimer(int client, int track)
gA_Timers[client].iJumps = 0; gA_Timers[client].iJumps = 0;
gA_Timers[client].iTotalMeasures = 0; gA_Timers[client].iTotalMeasures = 0;
gA_Timers[client].iGoodGains = 0; gA_Timers[client].iGoodGains = 0;
if(gA_Timers[client].iTrack != track)
{
CallOnTrackChanged(client, gA_Timers[client].iTrack, track);
}
gA_Timers[client].iTrack = track; gA_Timers[client].iTrack = track;
gA_Timers[client].bEnabled = true; gA_Timers[client].bEnabled = true;
gA_Timers[client].iSHSWCombination = -1; gA_Timers[client].iSHSWCombination = -1;

View File

@ -122,6 +122,7 @@ bool gB_Late = false;
// forwards // forwards
Handle gH_OnReplayStart = null; Handle gH_OnReplayStart = null;
Handle gH_OnReplayEnd = null; Handle gH_OnReplayEnd = null;
Handle gH_OnReplaysLoaded = null;
// server specific // server specific
float gF_Tickrate = 0.0; float gF_Tickrate = 0.0;
@ -222,6 +223,7 @@ public void OnPluginStart()
// forwards // forwards
gH_OnReplayStart = CreateGlobalForward("Shavit_OnReplayStart", ET_Event, Param_Cell, Param_Cell, Param_Cell, Param_Cell); gH_OnReplayStart = CreateGlobalForward("Shavit_OnReplayStart", ET_Event, Param_Cell, Param_Cell, Param_Cell, Param_Cell);
gH_OnReplayEnd = CreateGlobalForward("Shavit_OnReplayEnd", ET_Event, Param_Cell, Param_Cell, Param_Cell, Param_Cell); gH_OnReplayEnd = CreateGlobalForward("Shavit_OnReplayEnd", ET_Event, Param_Cell, Param_Cell, Param_Cell, Param_Cell);
gH_OnReplaysLoaded = CreateGlobalForward("Shavit_OnReplaysLoaded", ET_Event);
// game specific // game specific
gEV_Type = GetEngineVersion(); gEV_Type = GetEngineVersion();
@ -875,6 +877,9 @@ public void OnMapStart()
loaded = DefaultLoadReplay(i, j); loaded = DefaultLoadReplay(i, j);
} }
Call_StartForward(gH_OnReplaysLoaded);
Call_Finish();
if(!gCV_CentralBot.BoolValue) if(!gCV_CentralBot.BoolValue)
{ {
ServerCommand((gEV_Type != Engine_TF2)? "bot_add":"tf_bot_add"); ServerCommand((gEV_Type != Engine_TF2)? "bot_add":"tf_bot_add");