diff --git a/addons/sourcemod/scripting/include/shavit/core.inc b/addons/sourcemod/scripting/include/shavit/core.inc index 82df251d..c583664d 100644 --- a/addons/sourcemod/scripting/include/shavit/core.inc +++ b/addons/sourcemod/scripting/include/shavit/core.inc @@ -27,6 +27,9 @@ #define SHAVIT_VERSION "3.2.1a" #define STYLE_LIMIT 256 +// god i fucking hate sourcemod. NULL_VECTOR isn't const so it's not guaranteed to be 0,0,0 +#define ZERO_VECTOR view_as({0,0,0}) + #define SHAVIT_LOG_QUERIES 0 #include diff --git a/addons/sourcemod/scripting/include/shavit/tas-oblivious.inc b/addons/sourcemod/scripting/include/shavit/tas-oblivious.inc index 47b345a5..c43649e9 100644 --- a/addons/sourcemod/scripting/include/shavit/tas-oblivious.inc +++ b/addons/sourcemod/scripting/include/shavit/tas-oblivious.inc @@ -42,7 +42,7 @@ stock float ground_delta_opt(int client, float angles[3], float move[3], float s float fore[3], side[3], wishvel[3]; float wishspeed; - GetAngleVectors(angles, fore, side, NULL_VECTOR); + GetAngleVectors(angles, fore, side, ZERO_VECTOR); fore[2] = 0.0; side[2] = 0.0; @@ -150,7 +150,7 @@ stock Action ObliviousOnPlayerRunCmd(int client, int& buttons, int& impulse, flo float _fore[3], _side[3], _wishvel[3], _wishdir[3]; float _wishspeed, _wishspd, _currentspeed; - GetAngleVectors(angles, _fore, _side, NULL_VECTOR); + GetAngleVectors(angles, _fore, _side, ZERO_VECTOR); _fore[2] = 0.0; _side[2] = 0.0; NormalizeVector(_fore, _fore); NormalizeVector(_side, _side); @@ -178,7 +178,7 @@ stock Action ObliviousOnPlayerRunCmd(int client, int& buttons, int& impulse, flo float tmp[3]; tmp[0] = 0.0; tmp[2] = 0.0; tmp[1] = normalize_yaw(angles[1] + delta_opt); - GetAngleVectors(tmp, fore, side, NULL_VECTOR); + GetAngleVectors(tmp, fore, side, ZERO_VECTOR); fore[2] = 0.0; side[2] = 0.0; NormalizeVector(fore, fore); NormalizeVector(side, side); diff --git a/addons/sourcemod/scripting/include/shavit/tas-xutax.inc b/addons/sourcemod/scripting/include/shavit/tas-xutax.inc index 7e5bf402..018368f6 100644 --- a/addons/sourcemod/scripting/include/shavit/tas-xutax.inc +++ b/addons/sourcemod/scripting/include/shavit/tas-xutax.inc @@ -226,13 +226,13 @@ stock float GetMaxDeltaInAir(float flVelocity[2], float flMaxSpeed, float flSurf flTemp[1] = flBestYawLeft; flTemp[2] = 0.0; - GetAngleVectors(flTemp, vecBestLeft3D, NULL_VECTOR, NULL_VECTOR); + GetAngleVectors(flTemp, vecBestLeft3D, ZERO_VECTOR, ZERO_VECTOR); flTemp[0] = 0.0; flTemp[1] = flBestYawRight; flTemp[2] = 0.0; - GetAngleVectors(flTemp, vecBestRight3D, NULL_VECTOR, NULL_VECTOR); + GetAngleVectors(flTemp, vecBestRight3D, ZERO_VECTOR, ZERO_VECTOR); float vecBestRight[2], vecBestLeft[2]; @@ -286,13 +286,13 @@ stock void GetIdealMovementsInAir(float flYawWantedDir, float flVelocity[2], flo tempAngle[1] = flBestYawRight; tempAngle[2] = 0.0; - GetAngleVectors(tempAngle, vecBestDirRight, NULL_VECTOR, NULL_VECTOR); + GetAngleVectors(tempAngle, vecBestDirRight, ZERO_VECTOR, ZERO_VECTOR); tempAngle[0] = 0.0; tempAngle[1] = flBestYawLeft; tempAngle[2] = 0.0; - GetAngleVectors(tempAngle, vecBestDirLeft, NULL_VECTOR, NULL_VECTOR); + GetAngleVectors(tempAngle, vecBestDirLeft, ZERO_VECTOR, ZERO_VECTOR); // Our wanted direction. float vecBestDir[2]; @@ -333,7 +333,7 @@ stock void GetIdealMovementsInAir(float flYawWantedDir, float flVelocity[2], flo tempAngle[2] = 0.0; // Convert our yaw wanted direction to vectors. - GetAngleVectors(tempAngle, vecForwardWantedDir3D, vecRightWantedDir3D, NULL_VECTOR); + GetAngleVectors(tempAngle, vecForwardWantedDir3D, vecRightWantedDir3D, ZERO_VECTOR); vecForwardWantedDir[0] = vecForwardWantedDir3D[0]; vecForwardWantedDir[1] = vecForwardWantedDir3D[1]; diff --git a/addons/sourcemod/scripting/shavit-misc.sp b/addons/sourcemod/scripting/shavit-misc.sp index ba7e4814..211ad2e6 100644 --- a/addons/sourcemod/scripting/shavit-misc.sp +++ b/addons/sourcemod/scripting/shavit-misc.sp @@ -1192,7 +1192,7 @@ public void Shavit_OnStop(int client, int track) void DumbSetVelocity(int client, float fSpeed[3]) { // Someone please let me know if any of these are unnecessary. - SetEntPropVector(client, Prop_Data, "m_vecBaseVelocity", NULL_VECTOR); + SetEntPropVector(client, Prop_Data, "m_vecBaseVelocity", ZERO_VECTOR); SetEntPropVector(client, Prop_Data, "m_vecVelocity", fSpeed); SetEntPropVector(client, Prop_Data, "m_vecAbsVelocity", fSpeed); // m_vecBaseVelocity+m_vecVelocity } @@ -1374,14 +1374,14 @@ void ClearViewPunch(int victim) { if(gEV_Type == Engine_CSGO) { - SetEntPropVector(victim, Prop_Send, "m_viewPunchAngle", NULL_VECTOR); - SetEntPropVector(victim, Prop_Send, "m_aimPunchAngle", NULL_VECTOR); - SetEntPropVector(victim, Prop_Send, "m_aimPunchAngleVel", NULL_VECTOR); + SetEntPropVector(victim, Prop_Send, "m_viewPunchAngle", ZERO_VECTOR); + SetEntPropVector(victim, Prop_Send, "m_aimPunchAngle", ZERO_VECTOR); + SetEntPropVector(victim, Prop_Send, "m_aimPunchAngleVel", ZERO_VECTOR); } else { - SetEntPropVector(victim, Prop_Send, "m_vecPunchAngle", NULL_VECTOR); - SetEntPropVector(victim, Prop_Send, "m_vecPunchAngleVel", NULL_VECTOR); + SetEntPropVector(victim, Prop_Send, "m_vecPunchAngle", ZERO_VECTOR); + SetEntPropVector(victim, Prop_Send, "m_vecPunchAngleVel", ZERO_VECTOR); } } } diff --git a/addons/sourcemod/scripting/shavit-zones.sp b/addons/sourcemod/scripting/shavit-zones.sp index a050d73e..e8b2ed60 100644 --- a/addons/sourcemod/scripting/shavit-zones.sp +++ b/addons/sourcemod/scripting/shavit-zones.sp @@ -1325,10 +1325,10 @@ public void Shavit_OnChatConfigLoaded() void ClearZone(int index) { - gV_MapZones[index][0] = NULL_VECTOR; - gV_MapZones[index][1] = NULL_VECTOR; - gV_Destinations[index] = NULL_VECTOR; - gV_ZoneCenter[index] = NULL_VECTOR; + gV_MapZones[index][0] = ZERO_VECTOR; + gV_MapZones[index][1] = ZERO_VECTOR; + gV_Destinations[index] = ZERO_VECTOR; + gV_ZoneCenter[index] = ZERO_VECTOR; gA_ZoneCache[index].bZoneInitialized = false; gA_ZoneCache[index].bPrebuilt = false; @@ -1588,8 +1588,8 @@ public void OnClientConnected(int client) for (int i = 0; i < TRACKS_SIZE; i++) { - gF_ClimbButtonCache[client][i][0] = NULL_VECTOR; - gF_ClimbButtonCache[client][i][1] = NULL_VECTOR; + gF_ClimbButtonCache[client][i][0] = ZERO_VECTOR; + gF_ClimbButtonCache[client][i][1] = ZERO_VECTOR; } bool empty_HasSetStart[TRACKS_SIZE]; @@ -1739,7 +1739,7 @@ void SetStart(int client, int track, bool anglesonly) if (anglesonly) { - gF_StartPos[client][track] = NULL_VECTOR; + gF_StartPos[client][track] = ZERO_VECTOR; } else { @@ -1786,8 +1786,8 @@ public Action Command_DeleteSetStart(int client, int args) void DeleteSetStart(int client, int track) { gB_HasSetStart[client][track] = false; - gF_StartPos[client][track] = view_as({0.0, 0.0, 0.0}); - gF_StartAng[client][track] = view_as({0.0, 0.0, 0.0}); + gF_StartPos[client][track] = ZERO_VECTOR; + gF_StartAng[client][track] = ZERO_VECTOR; char query[512]; @@ -2025,14 +2025,13 @@ void ClearCustomSpawn(int track) { if(track != -1) { - gF_CustomSpawn[track] = NULL_VECTOR; - + gF_CustomSpawn[track] = ZERO_VECTOR; return; } for(int i = 0; i < TRACKS_SIZE; i++) { - gF_CustomSpawn[i] = NULL_VECTOR; + gF_CustomSpawn[i] = ZERO_VECTOR; } } @@ -2180,7 +2179,7 @@ public Action Command_Beamer(int client, int args) #if 1 // this sometimes helps with the beam getting stuck in walls float fwd[3]; - GetAngleVectors(direction, fwd, NULL_VECTOR, NULL_VECTOR); + GetAngleVectors(direction, fwd, ZERO_VECTOR, ZERO_VECTOR); ScaleVector(fwd, -1.5); AddVectors(fwd, startpos, startpos); #endif @@ -3068,10 +3067,10 @@ void Reset(int client) gB_WaitingForChatInput[client] = false; gI_ZoneID[client] = -1; - gV_Point1[client] = NULL_VECTOR; - gV_Point2[client] = NULL_VECTOR; - gV_Teleport[client] = NULL_VECTOR; - gV_WallSnap[client] = NULL_VECTOR; + gV_Point1[client] = ZERO_VECTOR; + gV_Point2[client] = ZERO_VECTOR; + gV_Teleport[client] = ZERO_VECTOR; + gV_WallSnap[client] = ZERO_VECTOR; } void ShowPanel(int client, int step) @@ -4014,7 +4013,7 @@ public Action Timer_Draw(Handle Timer, any data) if(gI_ZoneType[client] == Zone_Teleport && !EmptyVector(gV_Teleport[client])) { - TE_SetupEnergySplash(gV_Teleport[client], NULL_VECTOR, false); + TE_SetupEnergySplash(gV_Teleport[client], ZERO_VECTOR, false); TE_SendToAll(0.0); } }