Refactoring & fix warnings VS2015.

Ignore VS2015 files.
Add ResetSequenceInfo in SetNewPlayerModel.
Interface API CCSPlayer: Added ResetSequenceInfo and reworked RemovePlayerItem
Bump minor version
This commit is contained in:
s1lent 2017-01-29 05:56:29 +06:00
parent 3a12271c3f
commit 90d08ee3a0
93 changed files with 598 additions and 625 deletions

3
.gitignore vendored
View File

@ -12,8 +12,11 @@
**/msvc/*.opensdf **/msvc/*.opensdf
**/msvc/*.user **/msvc/*.user
**/msvc/*.suo **/msvc/*.suo
**/msvc/*.db
**/msvc/*.opendb
**/msvc/*.txt **/msvc/*.txt
**/msvc/*.amplxeproj **/msvc/*.amplxeproj
**/msvc/.vs
**/msvc/ipch **/msvc/ipch
regamedll/version/appversion.h regamedll/version/appversion.h

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug MP Play|Win32"> <ProjectConfiguration Include="Debug MP Play|Win32">
<Configuration>Debug MP Play</Configuration> <Configuration>Debug MP Play</Configuration>
@ -51,31 +51,31 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug MP|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug MP|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release MP|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release MP|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release MP Play|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release MP Play|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug MP Play|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug MP Play|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v140</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Nav|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Nav|Win32'" Label="Configuration">
@ -87,7 +87,7 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>

View File

@ -1,3 +1,3 @@
majorVersion=5 majorVersion=5
minorVersion=1 minorVersion=2
maintenanceVersion=0 maintenanceVersion=0

View File

@ -12,8 +12,8 @@ TYPEDESCRIPTION CAirtank::m_SaveData[] =
#endif #endif
LINK_ENTITY_TO_CLASS(item_airtank, CAirtank, CCSAirtank); LINK_ENTITY_TO_CLASS(item_airtank, CAirtank, CCSAirtank)
IMPLEMENT_SAVERESTORE(CAirtank, CGrenade); IMPLEMENT_SAVERESTORE(CAirtank, CGrenade)
void CAirtank::__MAKE_VHOOK(Spawn)() void CAirtank::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -24,7 +24,7 @@ BOOL C9MMAmmo::__MAKE_VHOOK(AddAmmo)(CBaseEntity *pOther)
return TRUE; return TRUE;
} }
LINK_ENTITY_TO_CLASS(ammo_9mm, C9MMAmmo, CCS9MMAmmo); LINK_ENTITY_TO_CLASS(ammo_9mm, C9MMAmmo, CCS9MMAmmo)
void CBuckShotAmmo::__MAKE_VHOOK(Spawn)() void CBuckShotAmmo::__MAKE_VHOOK(Spawn)()
{ {
@ -50,7 +50,7 @@ BOOL CBuckShotAmmo::__MAKE_VHOOK(AddAmmo)(CBaseEntity *pOther)
return TRUE; return TRUE;
} }
LINK_ENTITY_TO_CLASS(ammo_buckshot, CBuckShotAmmo, CCSBuckShotAmmo); LINK_ENTITY_TO_CLASS(ammo_buckshot, CBuckShotAmmo, CCSBuckShotAmmo)
void C556NatoAmmo::__MAKE_VHOOK(Spawn)() void C556NatoAmmo::__MAKE_VHOOK(Spawn)()
{ {
@ -76,7 +76,7 @@ BOOL C556NatoAmmo::__MAKE_VHOOK(AddAmmo)(CBaseEntity *pOther)
return TRUE; return TRUE;
} }
LINK_ENTITY_TO_CLASS(ammo_556nato, C556NatoAmmo, CCS556NatoAmmo); LINK_ENTITY_TO_CLASS(ammo_556nato, C556NatoAmmo, CCS556NatoAmmo)
void C556NatoBoxAmmo::__MAKE_VHOOK(Spawn)() void C556NatoBoxAmmo::__MAKE_VHOOK(Spawn)()
{ {
@ -102,7 +102,7 @@ BOOL C556NatoBoxAmmo::__MAKE_VHOOK(AddAmmo)(CBaseEntity *pOther)
return TRUE; return TRUE;
} }
LINK_ENTITY_TO_CLASS(ammo_556natobox, C556NatoBoxAmmo, CCS556NatoBoxAmmo); LINK_ENTITY_TO_CLASS(ammo_556natobox, C556NatoBoxAmmo, CCS556NatoBoxAmmo)
void C762NatoAmmo::__MAKE_VHOOK(Spawn)() void C762NatoAmmo::__MAKE_VHOOK(Spawn)()
{ {
@ -128,7 +128,7 @@ BOOL C762NatoAmmo::__MAKE_VHOOK(AddAmmo)(CBaseEntity *pOther)
return TRUE; return TRUE;
} }
LINK_ENTITY_TO_CLASS(ammo_762nato, C762NatoAmmo, CCS762NatoAmmo); LINK_ENTITY_TO_CLASS(ammo_762nato, C762NatoAmmo, CCS762NatoAmmo)
void C45ACPAmmo::__MAKE_VHOOK(Spawn)() void C45ACPAmmo::__MAKE_VHOOK(Spawn)()
{ {
@ -154,7 +154,7 @@ BOOL C45ACPAmmo::__MAKE_VHOOK(AddAmmo)(CBaseEntity *pOther)
return TRUE; return TRUE;
} }
LINK_ENTITY_TO_CLASS(ammo_45acp, C45ACPAmmo, CCS45ACPAmmo); LINK_ENTITY_TO_CLASS(ammo_45acp, C45ACPAmmo, CCS45ACPAmmo)
void C50AEAmmo::__MAKE_VHOOK(Spawn)() void C50AEAmmo::__MAKE_VHOOK(Spawn)()
{ {
@ -180,7 +180,7 @@ BOOL C50AEAmmo::__MAKE_VHOOK(AddAmmo)(CBaseEntity *pOther)
return TRUE; return TRUE;
} }
LINK_ENTITY_TO_CLASS(ammo_50ae, C50AEAmmo, CCS50AEAmmo); LINK_ENTITY_TO_CLASS(ammo_50ae, C50AEAmmo, CCS50AEAmmo)
void C338MagnumAmmo::__MAKE_VHOOK(Spawn)() void C338MagnumAmmo::__MAKE_VHOOK(Spawn)()
{ {
@ -206,7 +206,7 @@ BOOL C338MagnumAmmo::__MAKE_VHOOK(AddAmmo)(CBaseEntity *pOther)
return TRUE; return TRUE;
} }
LINK_ENTITY_TO_CLASS(ammo_338magnum, C338MagnumAmmo, CCS338MagnumAmmo); LINK_ENTITY_TO_CLASS(ammo_338magnum, C338MagnumAmmo, CCS338MagnumAmmo)
void C57MMAmmo::__MAKE_VHOOK(Spawn)() void C57MMAmmo::__MAKE_VHOOK(Spawn)()
{ {
@ -232,7 +232,7 @@ BOOL C57MMAmmo::__MAKE_VHOOK(AddAmmo)(CBaseEntity *pOther)
return TRUE; return TRUE;
} }
LINK_ENTITY_TO_CLASS(ammo_57mm, C57MMAmmo, CCS57MMAmmo); LINK_ENTITY_TO_CLASS(ammo_57mm, C57MMAmmo, CCS57MMAmmo)
void C357SIGAmmo::__MAKE_VHOOK(Spawn)() void C357SIGAmmo::__MAKE_VHOOK(Spawn)()
{ {
@ -258,4 +258,4 @@ BOOL C357SIGAmmo::__MAKE_VHOOK(AddAmmo)(CBaseEntity *pOther)
return TRUE; return TRUE;
} }
LINK_ENTITY_TO_CLASS(ammo_357sig, C357SIGAmmo, CCS357SIGAmmo); LINK_ENTITY_TO_CLASS(ammo_357sig, C357SIGAmmo, CCS357SIGAmmo)

View File

@ -16,7 +16,7 @@ TYPEDESCRIPTION CBaseAnimating::m_SaveData[] =
#endif #endif
IMPLEMENT_SAVERESTORE(CBaseAnimating, CBaseDelay); IMPLEMENT_SAVERESTORE(CBaseAnimating, CBaseDelay)
float CBaseAnimating::StudioFrameAdvance(float flInterval) float CBaseAnimating::StudioFrameAdvance(float flInterval)
{ {
@ -116,7 +116,7 @@ void EXT_FUNC CBaseAnimating::__API_HOOK(ResetSequenceInfo)()
m_flLastEventCheck = gpGlobals->time; m_flLastEventCheck = gpGlobals->time;
} }
BOOL CBaseAnimating::GetSequenceFlags() int CBaseAnimating::GetSequenceFlags()
{ {
void *pmodel = GET_MODEL_PTR(ENT(pev)); void *pmodel = GET_MODEL_PTR(ENT(pev));
return ::GetSequenceFlags(pmodel, pev); return ::GetSequenceFlags(pmodel, pev);
@ -125,7 +125,6 @@ BOOL CBaseAnimating::GetSequenceFlags()
float CBaseAnimating::SetBoneController(int iController, float flValue) float CBaseAnimating::SetBoneController(int iController, float flValue)
{ {
void *pmodel = GET_MODEL_PTR(ENT(pev)); void *pmodel = GET_MODEL_PTR(ENT(pev));
return SetController(pmodel, pev, iController, flValue); return SetController(pmodel, pev, iController, flValue);
} }

View File

@ -537,7 +537,7 @@ C_DLLEXPORT int Server_GetBlendingInterface(int version, struct sv_blending_inte
#ifdef REGAMEDLL_FIXES // SSE2 version #ifdef REGAMEDLL_FIXES // SSE2 version
void AngleQuaternion(vec_t *angles, vec_t *quaternion) void AngleQuaternion(vec_t *angles, vec_t *quaternion)
{ {
static const ALIGN16_BEG int ps_signmask[4] ALIGN16_END = { 0x80000000, 0, 0x80000000, 0 }; static const ALIGN16_BEG size_t ps_signmask[4] ALIGN16_END = { 0x80000000, 0, 0x80000000, 0 };
__m128 a = _mm_loadu_ps(angles); __m128 a = _mm_loadu_ps(angles);
a = _mm_mul_ps(a, _mm_load_ps(_ps_0p5)); //a *= 0.5 a = _mm_mul_ps(a, _mm_load_ps(_ps_0p5)); //a *= 0.5

View File

@ -34,7 +34,7 @@ Vector VecBModelOrigin(entvars_t *pevBModel)
return pevBModel->absmin + (pevBModel->size * 0.5f); return pevBModel->absmin + (pevBModel->size * 0.5f);
} }
LINK_ENTITY_TO_CLASS(func_wall, CFuncWall, CCSFuncWall); LINK_ENTITY_TO_CLASS(func_wall, CFuncWall, CCSFuncWall)
void CFuncWall::__MAKE_VHOOK(Spawn)() void CFuncWall::__MAKE_VHOOK(Spawn)()
{ {
@ -58,7 +58,7 @@ void CFuncWall::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller,
} }
} }
LINK_ENTITY_TO_CLASS(func_wall_toggle, CFuncWallToggle, CCSFuncWallToggle); LINK_ENTITY_TO_CLASS(func_wall_toggle, CFuncWallToggle, CCSFuncWallToggle)
void CFuncWallToggle::__MAKE_VHOOK(Spawn)() void CFuncWallToggle::__MAKE_VHOOK(Spawn)()
{ {
@ -107,7 +107,7 @@ void CFuncWallToggle::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pC
} }
} }
LINK_ENTITY_TO_CLASS(func_conveyor, CFuncConveyor, CCSFuncConveyor); LINK_ENTITY_TO_CLASS(func_conveyor, CFuncConveyor, CCSFuncConveyor)
void CFuncConveyor::__MAKE_VHOOK(Spawn)() void CFuncConveyor::__MAKE_VHOOK(Spawn)()
{ {
@ -154,7 +154,7 @@ void CFuncConveyor::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCal
UpdateSpeed(pev->speed); UpdateSpeed(pev->speed);
} }
LINK_ENTITY_TO_CLASS(func_illusionary, CFuncIllusionary, CCSFuncIllusionary); LINK_ENTITY_TO_CLASS(func_illusionary, CFuncIllusionary, CCSFuncIllusionary)
void CFuncIllusionary::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CFuncIllusionary::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -184,7 +184,7 @@ void CFuncIllusionary::__MAKE_VHOOK(Spawn)()
// MAKE_STATIC(ENT(pev)); // MAKE_STATIC(ENT(pev));
} }
LINK_ENTITY_TO_CLASS(func_monsterclip, CFuncMonsterClip, CCSFuncMonsterClip); LINK_ENTITY_TO_CLASS(func_monsterclip, CFuncMonsterClip, CCSFuncMonsterClip)
void CFuncMonsterClip::__MAKE_VHOOK(Spawn)() void CFuncMonsterClip::__MAKE_VHOOK(Spawn)()
{ {
@ -198,8 +198,8 @@ void CFuncMonsterClip::__MAKE_VHOOK(Spawn)()
pev->flags |= FL_MONSTERCLIP; pev->flags |= FL_MONSTERCLIP;
} }
LINK_ENTITY_TO_CLASS(func_rotating, CFuncRotating, CCSFuncRotating); LINK_ENTITY_TO_CLASS(func_rotating, CFuncRotating, CCSFuncRotating)
IMPLEMENT_SAVERESTORE(CFuncRotating, CBaseEntity); IMPLEMENT_SAVERESTORE(CFuncRotating, CBaseEntity)
void CFuncRotating::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CFuncRotating::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -601,8 +601,8 @@ void CFuncRotating::__MAKE_VHOOK(Blocked)(CBaseEntity *pOther)
pOther->TakeDamage(pev, pev, pev->dmg, DMG_CRUSH); pOther->TakeDamage(pev, pev, pev->dmg, DMG_CRUSH);
} }
LINK_ENTITY_TO_CLASS(func_pendulum, CPendulum, CCSPendulum); LINK_ENTITY_TO_CLASS(func_pendulum, CPendulum, CCSPendulum)
IMPLEMENT_SAVERESTORE(CPendulum, CBaseEntity); IMPLEMENT_SAVERESTORE(CPendulum, CBaseEntity)
void CPendulum::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CPendulum::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {

View File

@ -4,7 +4,7 @@
// Give 3rd-party to get the virtual table of the object. // Give 3rd-party to get the virtual table of the object.
// Example: AMXModX module: Hamsandwich // Example: AMXModX module: Hamsandwich
// RegisterHam(Ham_Spawn, "bot", "CCSBot__Spawn", 1); // RegisterHam(Ham_Spawn, "bot", "CCSBot__Spawn", 1);
LINK_ENTITY_TO_CLASS(bot, CCSBot, CAPI_CSBot); LINK_ENTITY_TO_CLASS(bot, CCSBot, CAPI_CSBot)
#endif #endif
// Return the number of bots following the given player // Return the number of bots following the given player

View File

@ -141,25 +141,25 @@ void hideProgressMeter()
void CCSBot::StartLearnProcess() void CCSBot::StartLearnProcess()
{ {
startProgressMeter("#CZero_LearningMap"); startProgressMeter("#CZero_LearningMap");
drawProgressMeter(0, "#CZero_LearningMap"); drawProgressMeter(0, "#CZero_LearningMap");
BuildLadders(); BuildLadders();
Vector normal; Vector normal;
Vector pos = pev->origin; Vector pos = pev->origin;
SnapToGrid(&pos.x); SnapToGrid(&pos.x);
SnapToGrid(&pos.y); SnapToGrid(&pos.y);
if (!GetGroundHeight(&pos, &pos.z, &normal)) if (!GetGroundHeight(&pos, &pos.z, &normal))
{ {
CONSOLE_ECHO("ERROR: Start position invalid\n\n"); CONSOLE_ECHO("ERROR: Start position invalid\n\n");
m_processMode = PROCESS_NORMAL; m_processMode = PROCESS_NORMAL;
return; return;
} }
m_currentNode = new CNavNode(&pos, &normal); m_currentNode = new CNavNode(&pos, &normal);
m_goalPosition = pev->origin; m_goalPosition = pev->origin;
m_processMode = PROCESS_LEARN; m_processMode = PROCESS_LEARN;
} }
@ -350,10 +350,10 @@ void CCSBot::UpdateLearnProcess()
float startTime = g_engfuncs.pfnTime(); float startTime = g_engfuncs.pfnTime();
while (g_engfuncs.pfnTime() - startTime < updateTimesliceDuration) while (g_engfuncs.pfnTime() - startTime < updateTimesliceDuration)
{ {
if (LearnStep() == false) if (LearnStep() == false)
{ {
StartAnalyzeAlphaProcess(); StartAnalyzeAlphaProcess();
return; return;
} }
} }
} }
@ -389,19 +389,19 @@ bool CCSBot::AnalyzeAlphaStep()
void CCSBot::UpdateAnalyzeAlphaProcess() void CCSBot::UpdateAnalyzeAlphaProcess()
{ {
float startTime = g_engfuncs.pfnTime(); float startTime = g_engfuncs.pfnTime();
while (g_engfuncs.pfnTime() - startTime < updateTimesliceDuration) while (g_engfuncs.pfnTime() - startTime < updateTimesliceDuration)
{ {
if (AnalyzeAlphaStep() == false) if (AnalyzeAlphaStep() == false)
{ {
drawProgressMeter(0.5f, "#CZero_AnalyzingHidingSpots"); drawProgressMeter(0.5f, "#CZero_AnalyzingHidingSpots");
CleanupApproachAreaAnalysisPrep(); CleanupApproachAreaAnalysisPrep();
StartAnalyzeBetaProcess(); StartAnalyzeBetaProcess();
return; return;
} }
} }
float progress = (double(_currentIndex) / double(_navAreaCount)) * 0.5f; float progress = (double(_currentIndex) / double(_navAreaCount)) * 0.5f;
drawProgressMeter(progress, "#CZero_AnalyzingHidingSpots"); drawProgressMeter(progress, "#CZero_AnalyzingHidingSpots");
} }
@ -416,32 +416,32 @@ void CCSBot::StartAnalyzeBetaProcess()
bool CCSBot::AnalyzeBetaStep() bool CCSBot::AnalyzeBetaStep()
{ {
++_currentIndex; ++_currentIndex;
if (m_analyzeIter == TheNavAreaList.end()) if (m_analyzeIter == TheNavAreaList.end())
return false; return false;
CNavArea *area = (*m_analyzeIter); CNavArea *area = (*m_analyzeIter);
area->ComputeSpotEncounters(); area->ComputeSpotEncounters();
area->ComputeSniperSpots(); area->ComputeSniperSpots();
++m_analyzeIter; ++m_analyzeIter;
return true; return true;
} }
void CCSBot::UpdateAnalyzeBetaProcess() void CCSBot::UpdateAnalyzeBetaProcess()
{ {
float startTime = g_engfuncs.pfnTime(); float startTime = g_engfuncs.pfnTime();
while (g_engfuncs.pfnTime() - startTime < updateTimesliceDuration) while (g_engfuncs.pfnTime() - startTime < updateTimesliceDuration)
{ {
if (AnalyzeBetaStep() == false) if (AnalyzeBetaStep() == false)
{ {
drawProgressMeter(1, "#CZero_AnalyzingApproachPoints"); drawProgressMeter(1, "#CZero_AnalyzingApproachPoints");
StartSaveProcess(); StartSaveProcess();
return; return;
} }
} }
float progress = (double(_currentIndex) / double(_navAreaCount) + 1.0f) * 0.5f; float progress = (double(_currentIndex) / double(_navAreaCount) + 1.0f) * 0.5f;
drawProgressMeter(progress, "#CZero_AnalyzingApproachPoints"); drawProgressMeter(progress, "#CZero_AnalyzingApproachPoints");
} }

View File

@ -1584,7 +1584,7 @@ bool CCSBot::ComputePath(CNavArea *goalArea, const Vector *goal, RouteType route
DestroyPath(); DestroyPath();
CNavArea *startArea = m_lastKnownArea; CNavArea *startArea = m_lastKnownArea;
if (startArea == NULL) if (!startArea)
return false; return false;
// note final specific position // note final specific position
@ -1622,7 +1622,7 @@ bool CCSBot::ComputePath(CNavArea *goalArea, const Vector *goal, RouteType route
// get count // get count
int count = 0; int count = 0;
CNavArea *area; CNavArea *area;
for (area = effectiveGoalArea; area != NULL; area = area->GetParent()) for (area = effectiveGoalArea; area; area = area->GetParent())
{ {
++count; ++count;
} }
@ -1642,7 +1642,7 @@ bool CCSBot::ComputePath(CNavArea *goalArea, const Vector *goal, RouteType route
// build path // build path
m_pathLength = count; m_pathLength = count;
for (area = effectiveGoalArea; count && area != NULL; area = area->GetParent()) for (area = effectiveGoalArea; count && area; area = area->GetParent())
{ {
--count; --count;
m_path[ count ].area = area; m_path[ count ].area = area;

View File

@ -52,8 +52,8 @@ TYPEDESCRIPTION CEnvSpark::m_SaveData[] =
#endif // HOOK_GAMEDLL #endif // HOOK_GAMEDLL
IMPLEMENT_SAVERESTORE(CEnvGlobal, CBaseEntity); IMPLEMENT_SAVERESTORE(CEnvGlobal, CBaseEntity)
LINK_ENTITY_TO_CLASS(env_global, CEnvGlobal, CCSEnvGlobal); LINK_ENTITY_TO_CLASS(env_global, CEnvGlobal, CCSEnvGlobal)
void CEnvGlobal::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CEnvGlobal::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -134,8 +134,8 @@ void CEnvGlobal::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller
gGlobalState.EntityAdd(m_globalstate, gpGlobals->mapname, newState); gGlobalState.EntityAdd(m_globalstate, gpGlobals->mapname, newState);
} }
IMPLEMENT_SAVERESTORE(CMultiSource, CBaseEntity); IMPLEMENT_SAVERESTORE(CMultiSource, CBaseEntity)
LINK_ENTITY_TO_CLASS(multisource, CMultiSource, CCSMultiSource); LINK_ENTITY_TO_CLASS(multisource, CMultiSource, CCSMultiSource)
// Cache user-entity-field values until spawn is called. // Cache user-entity-field values until spawn is called.
void CMultiSource::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CMultiSource::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
@ -293,7 +293,7 @@ void CMultiSource::Register()
pev->spawnflags &= ~SF_MULTI_INIT; pev->spawnflags &= ~SF_MULTI_INIT;
} }
IMPLEMENT_SAVERESTORE(CBaseButton, CBaseToggle); IMPLEMENT_SAVERESTORE(CBaseButton, CBaseToggle)
void CBaseButton::__MAKE_VHOOK(Precache)() void CBaseButton::__MAKE_VHOOK(Precache)()
{ {
@ -445,7 +445,7 @@ BOOL CBaseButton::__MAKE_VHOOK(TakeDamage)(entvars_t *pevInflictor, entvars_t *p
// 1) wooden clunk // 1) wooden clunk
// 2) metallic click // 2) metallic click
// 3) in-out // 3) in-out
LINK_ENTITY_TO_CLASS(func_button, CBaseButton, CCSButton); LINK_ENTITY_TO_CLASS(func_button, CBaseButton, CCSButton)
void CBaseButton::__MAKE_VHOOK(Spawn)() void CBaseButton::__MAKE_VHOOK(Spawn)()
{ {
@ -832,16 +832,14 @@ void CBaseButton::ButtonBackHome()
} }
} }
LINK_ENTITY_TO_CLASS(func_rot_button, CRotButton, CCSRotButton); LINK_ENTITY_TO_CLASS(func_rot_button, CRotButton, CCSRotButton)
void CRotButton::__MAKE_VHOOK(Spawn)() void CRotButton::__MAKE_VHOOK(Spawn)()
{ {
char *pszSound; char *pszSound;
//---------------------------------------------------- // determine sounds for buttons
//determine sounds for buttons // a sound of 0 should not make a sound
//a sound of 0 should not make a sound
//----------------------------------------------------
pszSound = ButtonSound(m_sounds); pszSound = ButtonSound(m_sounds);
PRECACHE_SOUND(pszSound); PRECACHE_SOUND(pszSound);
pev->noise = ALLOC_STRING(pszSound); pev->noise = ALLOC_STRING(pszSound);
@ -898,8 +896,8 @@ void CRotButton::__MAKE_VHOOK(Spawn)()
//SetTouch(ButtonTouch); //SetTouch(ButtonTouch);
} }
IMPLEMENT_SAVERESTORE(CMomentaryRotButton, CBaseToggle); IMPLEMENT_SAVERESTORE(CMomentaryRotButton, CBaseToggle)
LINK_ENTITY_TO_CLASS(momentary_rot_button, CMomentaryRotButton, CCSMomentaryRotButton); LINK_ENTITY_TO_CLASS(momentary_rot_button, CMomentaryRotButton, CCSMomentaryRotButton)
void CMomentaryRotButton::__MAKE_VHOOK(Spawn)() void CMomentaryRotButton::__MAKE_VHOOK(Spawn)()
{ {
@ -1113,9 +1111,9 @@ void CMomentaryRotButton::UpdateSelfReturn(float value)
} }
} }
IMPLEMENT_SAVERESTORE(CEnvSpark, CBaseEntity); IMPLEMENT_SAVERESTORE(CEnvSpark, CBaseEntity)
LINK_ENTITY_TO_CLASS(env_spark, CEnvSpark, CCSEnvSpark); LINK_ENTITY_TO_CLASS(env_spark, CEnvSpark, CCSEnvSpark)
LINK_ENTITY_TO_CLASS(env_debris, CEnvSpark, CCSEnvSpark); LINK_ENTITY_TO_CLASS(env_debris, CEnvSpark, CCSEnvSpark)
void CEnvSpark::__MAKE_VHOOK(Spawn)() void CEnvSpark::__MAKE_VHOOK(Spawn)()
{ {
@ -1197,7 +1195,7 @@ void CEnvSpark::SparkStop(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYP
SetThink(NULL); SetThink(NULL);
} }
LINK_ENTITY_TO_CLASS(button_target, CButtonTarget, CCSButtonTarget); LINK_ENTITY_TO_CLASS(button_target, CButtonTarget, CCSButtonTarget)
void CButtonTarget::__MAKE_VHOOK(Spawn)() void CButtonTarget::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -521,7 +521,7 @@ public:
public: public:
// Basic Monster Animation functions // Basic Monster Animation functions
float StudioFrameAdvance(float flInterval = 0.0f); // accumulate animation frame time from last time called until now float StudioFrameAdvance(float flInterval = 0.0f); // accumulate animation frame time from last time called until now
BOOL GetSequenceFlags(); int GetSequenceFlags();
int LookupActivity(int activity); int LookupActivity(int activity);
int LookupActivityHeaviest(int activity); int LookupActivityHeaviest(int activity);
int LookupSequence(const char *label); int LookupSequence(const char *label);

View File

@ -195,7 +195,7 @@ void EXT_FUNC ClientKill(edict_t *pEntity)
} }
} }
LINK_HOOK_VOID_CHAIN(ShowMenu, (CBasePlayer *pPlayer, int bitsValidSlots, int nDisplayTime, BOOL fNeedMore, char *pszText), pPlayer, bitsValidSlots, nDisplayTime, fNeedMore, pszText); LINK_HOOK_VOID_CHAIN(ShowMenu, (CBasePlayer *pPlayer, int bitsValidSlots, int nDisplayTime, BOOL fNeedMore, char *pszText), pPlayer, bitsValidSlots, nDisplayTime, fNeedMore, pszText)
void EXT_FUNC __API_HOOK(ShowMenu)(CBasePlayer *pPlayer, int bitsValidSlots, int nDisplayTime, BOOL fNeedMore, char *pszText) void EXT_FUNC __API_HOOK(ShowMenu)(CBasePlayer *pPlayer, int bitsValidSlots, int nDisplayTime, BOOL fNeedMore, char *pszText)
{ {
@ -1282,7 +1282,7 @@ void BuyItem(CBasePlayer *pPlayer, int iSlot)
} }
} }
LINK_HOOK_CHAIN(CBaseEntity *, BuyWeaponByWeaponID, (CBasePlayer *pPlayer, WeaponIdType weaponID), pPlayer, weaponID); LINK_HOOK_CHAIN(CBaseEntity *, BuyWeaponByWeaponID, (CBasePlayer *pPlayer, WeaponIdType weaponID), pPlayer, weaponID)
CBaseEntity *EXT_FUNC __API_HOOK(BuyWeaponByWeaponID)(CBasePlayer *pPlayer, WeaponIdType weaponID) CBaseEntity *EXT_FUNC __API_HOOK(BuyWeaponByWeaponID)(CBasePlayer *pPlayer, WeaponIdType weaponID)
{ {
@ -1338,7 +1338,7 @@ CBaseEntity *EXT_FUNC __API_HOOK(BuyWeaponByWeaponID)(CBasePlayer *pPlayer, Weap
return pEntity; return pEntity;
} }
LINK_HOOK_VOID_CHAIN(HandleMenu_ChooseAppearance, (CBasePlayer *player, int slot), player, slot); LINK_HOOK_VOID_CHAIN(HandleMenu_ChooseAppearance, (CBasePlayer *player, int slot), player, slot)
void EXT_FUNC __API_HOOK(HandleMenu_ChooseAppearance)(CBasePlayer *player, int slot) void EXT_FUNC __API_HOOK(HandleMenu_ChooseAppearance)(CBasePlayer *player, int slot)
{ {
@ -1495,7 +1495,7 @@ void EXT_FUNC __API_HOOK(HandleMenu_ChooseAppearance)(CBasePlayer *player, int s
} }
} }
LINK_HOOK_CHAIN(BOOL, HandleMenu_ChooseTeam, (CBasePlayer *player, int slot), player, slot); LINK_HOOK_CHAIN(BOOL, HandleMenu_ChooseTeam, (CBasePlayer *player, int slot), player, slot)
// returns true if the selection has been handled and the player's menu // returns true if the selection has been handled and the player's menu
// can be closed...false if the menu should be displayed again // can be closed...false if the menu should be displayed again
@ -1984,7 +1984,7 @@ void Radio3(CBasePlayer *player, int slot)
} }
} }
LINK_HOOK_CHAIN(bool, BuyGunAmmo, (CBasePlayer *player, CBasePlayerItem *weapon, bool bBlinkMoney), player, weapon, bBlinkMoney); LINK_HOOK_CHAIN(bool, BuyGunAmmo, (CBasePlayer *player, CBasePlayerItem *weapon, bool bBlinkMoney), player, weapon, bBlinkMoney)
bool EXT_FUNC __API_HOOK(BuyGunAmmo)(CBasePlayer *player, CBasePlayerItem *weapon, bool bBlinkMoney) bool EXT_FUNC __API_HOOK(BuyGunAmmo)(CBasePlayer *player, CBasePlayerItem *weapon, bool bBlinkMoney)
{ {
@ -2292,7 +2292,7 @@ BOOL HandleRadioAliasCommands(CBasePlayer *pPlayer, const char *pszCommand)
{ {
radio.func(pPlayer, radio.slot); radio.func(pPlayer, radio.slot);
return TRUE; return TRUE;
} }
} }
return FALSE; return FALSE;
@ -3240,14 +3240,15 @@ void EXT_FUNC InternalCommand(edict_t *pEntity, const char *pcmd, const char *pa
// Use CMD_ARGV, CMD_ARGV, and CMD_ARGC to get pointers the character string command. // Use CMD_ARGV, CMD_ARGV, and CMD_ARGC to get pointers the character string command.
void EXT_FUNC ClientCommand_(edict_t *pEntity) void EXT_FUNC ClientCommand_(edict_t *pEntity)
{ {
const char *pcmd = CMD_ARGV_(0);
const char *parg1 = CMD_ARGV_(1);
// Is the client spawned yet? // Is the client spawned yet?
if (!pEntity->pvPrivateData) if (!pEntity->pvPrivateData)
return; return;
g_ReGameHookchains.m_InternalCommand.callChain(InternalCommand, pEntity, pcmd, parg1); static char command[128] = "";
Q_strncpy(command, CMD_ARGV_(0), sizeof command - 1);
command[sizeof command - 1] = '\0';
g_ReGameHookchains.m_InternalCommand.callChain(InternalCommand, pEntity, command, CMD_ARGV_(1));
} }
// called after the player changes userinfo - gives dll a chance to modify it before it gets sent into the rest of the engine. // called after the player changes userinfo - gives dll a chance to modify it before it gets sent into the rest of the engine.

View File

@ -7,12 +7,12 @@
DebugOutputLevel outputLevel[ NUM_LEVELS ] = DebugOutputLevel outputLevel[ NUM_LEVELS ] =
{ {
{ "bot", DEBUG_BOT }, { "bot", DEBUG_BOT },
{ "career", DEBUG_CAREER }, { "career", DEBUG_CAREER },
{ "tutor", DEBUG_TUTOR }, { "tutor", DEBUG_TUTOR },
{ "stats", DEBUG_STATS }, { "stats", DEBUG_STATS },
{ "hostage", DEBUG_HOSTAGE }, { "hostage", DEBUG_HOSTAGE },
{ "all", DEBUG_ALL } { "all", DEBUG_ALL }
}; };
unsigned int theDebugOutputTypes; unsigned int theDebugOutputTypes;
@ -62,28 +62,22 @@ void PrintDebugFlags()
theDebugBuffer[0] = '\0'; theDebugBuffer[0] = '\0';
tmp = BufPrintf(theDebugBuffer, remainder, "mp_debug:\n"); tmp = BufPrintf(theDebugBuffer, remainder, "mp_debug:\n");
for (int i = 0; i < NUM_LEVELS - 1; ++i) for (auto level : outputLevel) {
{
DebugOutputLevel level = outputLevel[i];
tmp = BufPrintf(tmp, remainder, " %s: %s\n", level.name, (theDebugOutputTypes & level.value) ? "on" : "off"); tmp = BufPrintf(tmp, remainder, " %s: %s\n", level.name, (theDebugOutputTypes & level.value) ? "on" : "off");
} }
SERVER_PRINT(theDebugBuffer); SERVER_PRINT(theDebugBuffer);
} }
void SetDebugFlag(const char *flagStr, bool state) void SetDebugFlag(const char *flagStr, bool state)
{ {
if (flagStr != NULL) if (flagStr)
{ {
DebugOutputType flag; for (auto level : outputLevel)
for (int i = 0; i < ARRAYSIZE(outputLevel); ++i)
{ {
DebugOutputLevel level = outputLevel[ i ];
if (FStrEq(level.name, flagStr)) if (FStrEq(level.name, flagStr))
{ {
flag = level.value; DebugOutputType flag = level.value;
if (state) if (state)
theDebugOutputTypes |= flag; theDebugOutputTypes |= flag;
else else
@ -100,17 +94,13 @@ void SetDebugFlag(const char *flagStr, bool state)
void PrintDebugFlag(const char *flagStr) void PrintDebugFlag(const char *flagStr)
{ {
if (flagStr != NULL) if (flagStr)
{ {
DebugOutputType flag; for (auto level : outputLevel)
for (int i = 0; i < ARRAYSIZE(outputLevel); ++i)
{ {
DebugOutputLevel level = outputLevel[ i ];
if (FStrEq(level.name, flagStr)) if (FStrEq(level.name, flagStr))
{ {
flag = level.value; SERVER_PRINT(SharedVarArgs("mp_debug: %s is %s\n", flagStr, (level.value & theDebugOutputTypes) ? "on" : "off"));
SERVER_PRINT(SharedVarArgs("mp_debug: %s is %s\n", flagStr, (flag & theDebugOutputTypes) ? "on" : "off"));
return; return;
} }
} }
@ -124,18 +114,18 @@ void UTIL_SetDprintfFlags(const char *flagStr)
if (!IsDeveloper()) if (!IsDeveloper())
return; return;
if (flagStr != NULL && flagStr[0] != '\0') if (!flagStr || !flagStr[0]) {
{
if (flagStr[0] == '+')
SetDebugFlag(&flagStr[1], true);
else if (flagStr[0] == '-')
SetDebugFlag(&flagStr[1], false);
else
PrintDebugFlag(flagStr);
}
else
PrintDebugFlags(); PrintDebugFlags();
return;
}
if (flagStr[0] == '+')
SetDebugFlag(&flagStr[1], true);
else if (flagStr[0] == '-')
SetDebugFlag(&flagStr[1], false);
else
PrintDebugFlag(flagStr);
} }
NOXREF void UTIL_BotDPrintf(char *pszMsg, ...) NOXREF void UTIL_BotDPrintf(char *pszMsg, ...)

View File

@ -23,7 +23,7 @@ TYPEDESCRIPTION CMomentaryDoor::m_SaveData[] =
#endif #endif
IMPLEMENT_SAVERESTORE(CBaseDoor, CBaseToggle); IMPLEMENT_SAVERESTORE(CBaseDoor, CBaseToggle)
// play door or button locked or unlocked sounds. // play door or button locked or unlocked sounds.
// pass in pointer to valid locksound struct. // pass in pointer to valid locksound struct.
@ -187,10 +187,10 @@ void CBaseDoor::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
// 2) base // 2) base
// 3) stone chain // 3) stone chain
// 4) screechy metal // 4) screechy metal
LINK_ENTITY_TO_CLASS(func_door, CBaseDoor, CCSDoor); LINK_ENTITY_TO_CLASS(func_door, CBaseDoor, CCSDoor)
// func_water - same as a door. // func_water - same as a door.
LINK_ENTITY_TO_CLASS(func_water, CBaseDoor, CCSDoor); LINK_ENTITY_TO_CLASS(func_water, CBaseDoor, CCSDoor)
void CBaseDoor::__MAKE_VHOOK(Spawn)() void CBaseDoor::__MAKE_VHOOK(Spawn)()
{ {
@ -845,7 +845,7 @@ void CBaseDoor::__MAKE_VHOOK(Blocked)(CBaseEntity *pOther)
// 2) base // 2) base
// 3) stone chain // 3) stone chain
// 4) screechy metal // 4) screechy metal
LINK_ENTITY_TO_CLASS(func_door_rotating, CRotDoor, CCSRotDoor); LINK_ENTITY_TO_CLASS(func_door_rotating, CRotDoor, CCSRotDoor)
void CRotDoor::__MAKE_VHOOK(Restart)() void CRotDoor::__MAKE_VHOOK(Restart)()
{ {
@ -951,8 +951,8 @@ void CRotDoor::__MAKE_VHOOK(SetToggleState)(int state)
UTIL_SetOrigin(pev, pev->origin); UTIL_SetOrigin(pev, pev->origin);
} }
LINK_ENTITY_TO_CLASS(momentary_door, CMomentaryDoor, CCSMomentaryDoor); LINK_ENTITY_TO_CLASS(momentary_door, CMomentaryDoor, CCSMomentaryDoor)
IMPLEMENT_SAVERESTORE(CMomentaryDoor, CBaseToggle); IMPLEMENT_SAVERESTORE(CMomentaryDoor, CBaseToggle)
void CMomentaryDoor::__MAKE_VHOOK(Spawn)() void CMomentaryDoor::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -61,9 +61,9 @@ TYPEDESCRIPTION CGibShooter::m_SaveData[] =
#endif // HOOK_GAMEDLL #endif // HOOK_GAMEDLL
LINK_ENTITY_TO_CLASS(info_target, CPointEntity, CCSPointEntity); LINK_ENTITY_TO_CLASS(info_target, CPointEntity, CCSPointEntity)
LINK_ENTITY_TO_CLASS(env_bubbles, CBubbling, CCSBubbling); LINK_ENTITY_TO_CLASS(env_bubbles, CBubbling, CCSBubbling)
IMPLEMENT_SAVERESTORE(CBubbling, CBaseEntity); IMPLEMENT_SAVERESTORE(CBubbling, CBaseEntity)
void CBubbling::__MAKE_VHOOK(Spawn)() void CBubbling::__MAKE_VHOOK(Spawn)()
{ {
@ -154,7 +154,7 @@ void CBubbling::FizzThink()
pev->nextthink = gpGlobals->time + 2.5f - (0.1f * m_frequency); pev->nextthink = gpGlobals->time + 2.5f - (0.1f * m_frequency);
} }
LINK_ENTITY_TO_CLASS(beam, CBeam, CCSBeam); LINK_ENTITY_TO_CLASS(beam, CBeam, CCSBeam)
void CBeam::__MAKE_VHOOK(Spawn)() void CBeam::__MAKE_VHOOK(Spawn)()
{ {
@ -350,9 +350,9 @@ void CBeam::DoSparks(const Vector &start, const Vector &end)
} }
} }
LINK_ENTITY_TO_CLASS(env_lightning, CLightning, CCSLightning); LINK_ENTITY_TO_CLASS(env_lightning, CLightning, CCSLightning)
LINK_ENTITY_TO_CLASS(env_beam, CLightning, CCSLightning); LINK_ENTITY_TO_CLASS(env_beam, CLightning, CCSLightning)
IMPLEMENT_SAVERESTORE(CLightning, CBeam); IMPLEMENT_SAVERESTORE(CLightning, CBeam)
void CLightning::__MAKE_VHOOK(Spawn)() void CLightning::__MAKE_VHOOK(Spawn)()
{ {
@ -846,8 +846,8 @@ void CLightning::BeamUpdateVars()
} }
} }
LINK_ENTITY_TO_CLASS(env_laser, CLaser, CCSLaser); LINK_ENTITY_TO_CLASS(env_laser, CLaser, CCSLaser)
IMPLEMENT_SAVERESTORE(CLaser, CBeam); IMPLEMENT_SAVERESTORE(CLaser, CBeam)
void CLaser::__MAKE_VHOOK(Spawn)() void CLaser::__MAKE_VHOOK(Spawn)()
{ {
@ -1005,8 +1005,8 @@ void CLaser::StrikeThink()
pev->nextthink = gpGlobals->time + 0.1f; pev->nextthink = gpGlobals->time + 0.1f;
} }
LINK_ENTITY_TO_CLASS(env_glow, CGlow, CCSGlow); LINK_ENTITY_TO_CLASS(env_glow, CGlow, CCSGlow)
IMPLEMENT_SAVERESTORE(CGlow, CPointEntity); IMPLEMENT_SAVERESTORE(CGlow, CPointEntity)
void CGlow::__MAKE_VHOOK(Spawn)() void CGlow::__MAKE_VHOOK(Spawn)()
{ {
@ -1044,7 +1044,7 @@ void CGlow::Animate(float frames)
} }
} }
LINK_ENTITY_TO_CLASS(env_bombglow, CBombGlow, CCSBombGlow); LINK_ENTITY_TO_CLASS(env_bombglow, CBombGlow, CCSBombGlow)
void CBombGlow::__MAKE_VHOOK(Spawn)() void CBombGlow::__MAKE_VHOOK(Spawn)()
{ {
@ -1096,8 +1096,8 @@ void CBombGlow::__MAKE_VHOOK(Think)()
pev->nextthink = gpGlobals->time + 0.05f; pev->nextthink = gpGlobals->time + 0.05f;
} }
LINK_ENTITY_TO_CLASS(env_sprite, CSprite, CCSSprite); LINK_ENTITY_TO_CLASS(env_sprite, CSprite, CCSSprite)
IMPLEMENT_SAVERESTORE(CSprite, CPointEntity); IMPLEMENT_SAVERESTORE(CSprite, CPointEntity)
void CSprite::__MAKE_VHOOK(Spawn)() void CSprite::__MAKE_VHOOK(Spawn)()
{ {
@ -1272,8 +1272,8 @@ void CSprite::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, U
} }
} }
IMPLEMENT_SAVERESTORE(CGibShooter, CBaseDelay); IMPLEMENT_SAVERESTORE(CGibShooter, CBaseDelay)
LINK_ENTITY_TO_CLASS(gibshooter, CGibShooter, CCSGibShooter); LINK_ENTITY_TO_CLASS(gibshooter, CGibShooter, CCSGibShooter)
void CGibShooter::__MAKE_VHOOK(Precache)() void CGibShooter::__MAKE_VHOOK(Precache)()
{ {
@ -1425,7 +1425,7 @@ void CGibShooter::ShootThink()
} }
} }
LINK_ENTITY_TO_CLASS(env_shooter, CEnvShooter, CCSEnvShooter); LINK_ENTITY_TO_CLASS(env_shooter, CEnvShooter, CCSEnvShooter)
void CEnvShooter::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CEnvShooter::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -1497,7 +1497,7 @@ CGib *CEnvShooter::__MAKE_VHOOK(CreateGib)()
return pGib; return pGib;
} }
LINK_ENTITY_TO_CLASS(test_effect, CTestEffect, CCSTestEffect); LINK_ENTITY_TO_CLASS(test_effect, CTestEffect, CCSTestEffect)
void CTestEffect::__MAKE_VHOOK(Spawn)() void CTestEffect::__MAKE_VHOOK(Spawn)()
{ {
@ -1571,7 +1571,7 @@ void CTestEffect::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCalle
m_flStartTime = gpGlobals->time; m_flStartTime = gpGlobals->time;
} }
LINK_ENTITY_TO_CLASS(env_blood, CBlood, CCSBlood); LINK_ENTITY_TO_CLASS(env_blood, CBlood, CCSBlood)
void CBlood::__MAKE_VHOOK(Spawn)() void CBlood::__MAKE_VHOOK(Spawn)()
{ {
@ -1659,7 +1659,7 @@ void CBlood::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, US
} }
} }
LINK_ENTITY_TO_CLASS(env_shake, CShake, CCSShake); LINK_ENTITY_TO_CLASS(env_shake, CShake, CCSShake)
void CShake::__MAKE_VHOOK(Spawn)() void CShake::__MAKE_VHOOK(Spawn)()
{ {
@ -1703,7 +1703,7 @@ void CShake::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, US
UTIL_ScreenShake(pev->origin, Amplitude(), Frequency(), Duration(), Radius()); UTIL_ScreenShake(pev->origin, Amplitude(), Frequency(), Duration(), Radius());
} }
LINK_ENTITY_TO_CLASS(env_fade, CFade, CCSFade); LINK_ENTITY_TO_CLASS(env_fade, CFade, CCSFade)
void CFade::__MAKE_VHOOK(Spawn)() void CFade::__MAKE_VHOOK(Spawn)()
{ {
@ -1752,7 +1752,7 @@ void CFade::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, USE
SUB_UseTargets(this, USE_TOGGLE, 0); SUB_UseTargets(this, USE_TOGGLE, 0);
} }
LINK_ENTITY_TO_CLASS(env_message, CMessage, CCSMessage); LINK_ENTITY_TO_CLASS(env_message, CMessage, CCSMessage)
void CMessage::__MAKE_VHOOK(Spawn)() void CMessage::__MAKE_VHOOK(Spawn)()
{ {
@ -1845,7 +1845,7 @@ void CMessage::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller,
SUB_UseTargets(this, USE_TOGGLE, 0); SUB_UseTargets(this, USE_TOGGLE, 0);
} }
LINK_ENTITY_TO_CLASS(env_funnel, CEnvFunnel, CCSEnvFunnel); LINK_ENTITY_TO_CLASS(env_funnel, CEnvFunnel, CCSEnvFunnel)
void CEnvFunnel::__MAKE_VHOOK(Precache)() void CEnvFunnel::__MAKE_VHOOK(Precache)()
{ {
@ -1891,7 +1891,7 @@ void CEnvBeverage::__MAKE_VHOOK(Precache)()
PRECACHE_SOUND("weapons/g_bounce3.wav"); PRECACHE_SOUND("weapons/g_bounce3.wav");
} }
LINK_ENTITY_TO_CLASS(env_beverage, CEnvBeverage, CCSEnvBeverage); LINK_ENTITY_TO_CLASS(env_beverage, CEnvBeverage, CCSEnvBeverage)
void CEnvBeverage::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) void CEnvBeverage::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
{ {
@ -1933,7 +1933,7 @@ void CItemSoda::__MAKE_VHOOK(Precache)()
; ;
} }
LINK_ENTITY_TO_CLASS(item_sodacan, CItemSoda, CCSItemSoda); LINK_ENTITY_TO_CLASS(item_sodacan, CItemSoda, CCSItemSoda)
void CItemSoda::__MAKE_VHOOK(Spawn)() void CItemSoda::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -13,7 +13,7 @@ TYPEDESCRIPTION CEnvExplosion::m_SaveData[] =
#endif #endif
LINK_ENTITY_TO_CLASS(spark_shower, CShower, CCSShower); LINK_ENTITY_TO_CLASS(spark_shower, CShower, CCSShower)
void CShower::__MAKE_VHOOK(Spawn)() void CShower::__MAKE_VHOOK(Spawn)()
{ {
@ -67,8 +67,8 @@ void CShower::__MAKE_VHOOK(Touch)(CBaseEntity *pOther)
} }
} }
IMPLEMENT_SAVERESTORE(CEnvExplosion, CBaseMonster); IMPLEMENT_SAVERESTORE(CEnvExplosion, CBaseMonster)
LINK_ENTITY_TO_CLASS(env_explosion, CEnvExplosion, CCSEnvExplosion); LINK_ENTITY_TO_CLASS(env_explosion, CEnvExplosion, CCSEnvExplosion)
void CEnvExplosion::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CEnvExplosion::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {

View File

@ -169,8 +169,8 @@ void CBreakable::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
CBaseDelay::KeyValue(pkvd); CBaseDelay::KeyValue(pkvd);
} }
LINK_ENTITY_TO_CLASS(func_breakable, CBreakable, CCSBreakable); LINK_ENTITY_TO_CLASS(func_breakable, CBreakable, CCSBreakable)
IMPLEMENT_SAVERESTORE(CBreakable, CBaseEntity); IMPLEMENT_SAVERESTORE(CBreakable, CBaseEntity)
void CBreakable::__MAKE_VHOOK(Spawn)() void CBreakable::__MAKE_VHOOK(Spawn)()
{ {
@ -855,8 +855,8 @@ int CBreakable::__MAKE_VHOOK(DamageDecal)(int bitsDamageType)
return CBaseEntity::DamageDecal(bitsDamageType); return CBaseEntity::DamageDecal(bitsDamageType);
} }
LINK_ENTITY_TO_CLASS(func_pushable, CPushable, CCSPushable); LINK_ENTITY_TO_CLASS(func_pushable, CPushable, CCSPushable)
IMPLEMENT_SAVERESTORE(CPushable, CBreakable); IMPLEMENT_SAVERESTORE(CPushable, CBreakable)
void CPushable::__MAKE_VHOOK(Spawn)() void CPushable::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -59,7 +59,7 @@ Vector gTankSpread[] =
const int MAX_FIRING_SPREADS = ARRAYSIZE(gTankSpread); const int MAX_FIRING_SPREADS = ARRAYSIZE(gTankSpread);
IMPLEMENT_SAVERESTORE(CFuncTank, CBaseEntity); IMPLEMENT_SAVERESTORE(CFuncTank, CBaseEntity)
void CFuncTank::__MAKE_VHOOK(Spawn)() void CFuncTank::__MAKE_VHOOK(Spawn)()
{ {
@ -654,7 +654,7 @@ void CFuncTank::StopRotSound()
pev->spawnflags &= ~SF_TANK_SOUNDON; pev->spawnflags &= ~SF_TANK_SOUNDON;
} }
LINK_ENTITY_TO_CLASS(func_tank, CFuncTankGun, CCSFuncTankGun); LINK_ENTITY_TO_CLASS(func_tank, CFuncTankGun, CCSFuncTankGun)
void CFuncTankGun::__MAKE_VHOOK(Fire)(const Vector &barrelEnd, const Vector &forward, entvars_t *pevAttacker) void CFuncTankGun::__MAKE_VHOOK(Fire)(const Vector &barrelEnd, const Vector &forward, entvars_t *pevAttacker)
{ {
@ -693,8 +693,8 @@ void CFuncTankGun::__MAKE_VHOOK(Fire)(const Vector &barrelEnd, const Vector &for
CFuncTank::Fire(barrelEnd, forward, pevAttacker); CFuncTank::Fire(barrelEnd, forward, pevAttacker);
} }
LINK_ENTITY_TO_CLASS(func_tanklaser, CFuncTankLaser, CCSFuncTankLaser); LINK_ENTITY_TO_CLASS(func_tanklaser, CFuncTankLaser, CCSFuncTankLaser)
IMPLEMENT_SAVERESTORE(CFuncTankLaser, CFuncTank); IMPLEMENT_SAVERESTORE(CFuncTankLaser, CFuncTank)
void CFuncTankLaser::__MAKE_VHOOK(Activate)() void CFuncTankLaser::__MAKE_VHOOK(Activate)()
{ {
@ -789,7 +789,7 @@ void CFuncTankLaser::__MAKE_VHOOK(Fire)(const Vector &barrelEnd, const Vector &f
} }
} }
LINK_ENTITY_TO_CLASS(func_tankrocket, CFuncTankRocket, CCSFuncTankRocket); LINK_ENTITY_TO_CLASS(func_tankrocket, CFuncTankRocket, CCSFuncTankRocket)
void CFuncTankRocket::__MAKE_VHOOK(Precache)() void CFuncTankRocket::__MAKE_VHOOK(Precache)()
{ {
@ -819,7 +819,7 @@ void CFuncTankRocket::__MAKE_VHOOK(Fire)(const Vector &barrelEnd, const Vector &
CFuncTank::Fire(barrelEnd, forward, pev); CFuncTank::Fire(barrelEnd, forward, pev);
} }
LINK_ENTITY_TO_CLASS(func_tankmortar, CFuncTankMortar, CCSFuncTankMortar); LINK_ENTITY_TO_CLASS(func_tankmortar, CFuncTankMortar, CCSFuncTankMortar)
void CFuncTankMortar::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CFuncTankMortar::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -855,8 +855,8 @@ void CFuncTankMortar::__MAKE_VHOOK(Fire)(const Vector &barrelEnd, const Vector &
CFuncTank::Fire(barrelEnd, forward, pev); CFuncTank::Fire(barrelEnd, forward, pev);
} }
LINK_ENTITY_TO_CLASS(func_tankcontrols, CFuncTankControls, CCSFuncTankControls); LINK_ENTITY_TO_CLASS(func_tankcontrols, CFuncTankControls, CCSFuncTankControls)
IMPLEMENT_SAVERESTORE(CFuncTankControls, CBaseEntity); IMPLEMENT_SAVERESTORE(CFuncTankControls, CBaseEntity)
void CFuncTankControls::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) void CFuncTankControls::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
{ {

View File

@ -137,7 +137,7 @@ void CGameRules::__MAKE_VHOOK(RefreshSkillData)()
gSkillData.healthkitCapacity = 15; gSkillData.healthkitCapacity = 15;
} }
LINK_HOOK_CHAIN2(CGameRules *, InstallGameRules); LINK_HOOK_CHAIN2(CGameRules *, InstallGameRules)
CGameRules *EXT_FUNC __API_HOOK(InstallGameRules)() CGameRules *EXT_FUNC __API_HOOK(InstallGameRules)()
{ {

View File

@ -26,7 +26,7 @@ TYPEDESCRIPTION CGrenade::m_SaveData[] =
#endif #endif
LINK_ENTITY_TO_CLASS(grenade, CGrenade, CCSGrenade); LINK_ENTITY_TO_CLASS(grenade, CGrenade, CCSGrenade)
void CGrenade::Explode(Vector vecSrc, Vector vecAim) void CGrenade::Explode(Vector vecSrc, Vector vecAim)
{ {
@ -1385,4 +1385,4 @@ NOXREF void CGrenade::UseSatchelCharges(entvars_t *pevOwner, SATCHELCODE code)
} }
} }
IMPLEMENT_SAVERESTORE(CGrenade, CBaseMonster); IMPLEMENT_SAVERESTORE(CGrenade, CBaseMonster)

View File

@ -16,8 +16,8 @@ TYPEDESCRIPTION CRecharge::m_SaveData[] =
#endif #endif
IMPLEMENT_SAVERESTORE(CRecharge, CBaseEntity); IMPLEMENT_SAVERESTORE(CRecharge, CBaseEntity)
LINK_ENTITY_TO_CLASS(func_recharge, CRecharge, CCSRecharge); LINK_ENTITY_TO_CLASS(func_recharge, CRecharge, CCSRecharge)
void CRecharge::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CRecharge::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {

View File

@ -24,15 +24,15 @@ TYPEDESCRIPTION CWreckage::m_SaveData[] =
#endif #endif
IMPLEMENT_SAVERESTORE(CCycler, CBaseToggle); IMPLEMENT_SAVERESTORE(CCycler, CBaseToggle)
void CGenericCycler::__MAKE_VHOOK(Spawn)() void CGenericCycler::__MAKE_VHOOK(Spawn)()
{ {
GenericCyclerSpawn((char *)STRING(pev->model), Vector(-16, -16, 0), Vector(16, 16, 72)); GenericCyclerSpawn((char *)STRING(pev->model), Vector(-16, -16, 0), Vector(16, 16, 72));
} }
LINK_ENTITY_TO_CLASS(cycler, CGenericCycler, CCSGenericCycler); LINK_ENTITY_TO_CLASS(cycler, CGenericCycler, CCSGenericCycler)
LINK_ENTITY_TO_CLASS(cycler_prdroid, CCyclerProbe, CCSCyclerProbe); LINK_ENTITY_TO_CLASS(cycler_prdroid, CCyclerProbe, CCSCyclerProbe)
void CCyclerProbe::__MAKE_VHOOK(Spawn)() void CCyclerProbe::__MAKE_VHOOK(Spawn)()
{ {
@ -161,8 +161,8 @@ BOOL CCycler::__MAKE_VHOOK(TakeDamage)(entvars_t *pevInflictor, entvars_t *pevAt
return FALSE; return FALSE;
} }
LINK_ENTITY_TO_CLASS(cycler_sprite, CCyclerSprite, CCSCyclerSprite); LINK_ENTITY_TO_CLASS(cycler_sprite, CCyclerSprite, CCSCyclerSprite)
IMPLEMENT_SAVERESTORE(CCyclerSprite, CBaseEntity); IMPLEMENT_SAVERESTORE(CCyclerSprite, CBaseEntity)
void CCyclerSprite::__MAKE_VHOOK(Spawn)() void CCyclerSprite::__MAKE_VHOOK(Spawn)()
{ {
@ -242,7 +242,7 @@ void CCyclerSprite::Animate(float frames)
} }
} }
LINK_ENTITY_TO_CLASS(cycler_weapon, CWeaponCycler, CCSWeaponCycler); LINK_ENTITY_TO_CLASS(cycler_weapon, CWeaponCycler, CCSWeaponCycler)
void CWeaponCycler::__MAKE_VHOOK(Spawn)() void CWeaponCycler::__MAKE_VHOOK(Spawn)()
{ {
@ -302,8 +302,8 @@ void CWeaponCycler::__MAKE_VHOOK(SecondaryAttack)()
m_flNextSecondaryAttack = gpGlobals->time + 0.3f; m_flNextSecondaryAttack = gpGlobals->time + 0.3f;
} }
IMPLEMENT_SAVERESTORE(CWreckage, CBaseToggle); IMPLEMENT_SAVERESTORE(CWreckage, CBaseToggle)
LINK_ENTITY_TO_CLASS(cycler_wreckage, CWreckage, CCSWreckage); LINK_ENTITY_TO_CLASS(cycler_wreckage, CWreckage, CCSWreckage)
void CWreckage::__MAKE_VHOOK(Spawn)() void CWreckage::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -16,7 +16,7 @@ TYPEDESCRIPTION CWallHealth::m_SaveData[] =
#endif #endif
LINK_ENTITY_TO_CLASS(item_healthkit, CHealthKit, CCSHealthKit); LINK_ENTITY_TO_CLASS(item_healthkit, CHealthKit, CCSHealthKit)
void CHealthKit::__MAKE_VHOOK(Spawn)() void CHealthKit::__MAKE_VHOOK(Spawn)()
{ {
@ -58,8 +58,8 @@ BOOL CHealthKit::__MAKE_VHOOK(MyTouch)(CBasePlayer *pPlayer)
return FALSE; return FALSE;
} }
IMPLEMENT_SAVERESTORE(CWallHealth, CBaseEntity); IMPLEMENT_SAVERESTORE(CWallHealth, CBaseEntity)
LINK_ENTITY_TO_CLASS(func_healthcharger, CWallHealth, CCSWallHealth); LINK_ENTITY_TO_CLASS(func_healthcharger, CWallHealth, CCSWallHealth)
void CWallHealth::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CWallHealth::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {

View File

@ -170,8 +170,8 @@ struct
{ HOSTAGE_CHATTER_DEATH_CRY, "hostage/hdie/hdeath3.wav" }, { HOSTAGE_CHATTER_DEATH_CRY, "hostage/hdie/hdeath3.wav" },
}; };
LINK_ENTITY_TO_CLASS(hostage_entity, CHostage, CCSHostage); LINK_ENTITY_TO_CLASS(hostage_entity, CHostage, CCSHostage)
LINK_ENTITY_TO_CLASS(monster_scientist, CHostage, CCSHostage); LINK_ENTITY_TO_CLASS(monster_scientist, CHostage, CCSHostage)
void CHostage::__MAKE_VHOOK(Spawn)() void CHostage::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -348,7 +348,7 @@ public:
// compute distance travelled along path so far // compute distance travelled along path so far
float dist; float dist;
if (ladder != NULL) if (ladder)
{ {
const float ladderCost = 10.0f; const float ladderCost = 10.0f;
return ladder->m_length * ladderCost + fromArea->GetCostSoFar(); return ladder->m_length * ladderCost + fromArea->GetCostSoFar();

View File

@ -44,7 +44,7 @@ ItemInfo itemInfo[] = {
// NOTE: useless thing // NOTE: useless thing
#ifndef REGAMEDLL_FIXES #ifndef REGAMEDLL_FIXES
LINK_ENTITY_TO_CLASS(world_items, CWorldItem, CCSWorldItem); LINK_ENTITY_TO_CLASS(world_items, CWorldItem, CCSWorldItem)
void CWorldItem::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CWorldItem::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -189,7 +189,7 @@ BOOL CItemSuit::__MAKE_VHOOK(MyTouch)(CBasePlayer *pPlayer)
return TRUE; return TRUE;
} }
LINK_ENTITY_TO_CLASS(item_suit, CItemSuit, CCSItemSuit); LINK_ENTITY_TO_CLASS(item_suit, CItemSuit, CCSItemSuit)
#endif #endif
void CItemBattery::__MAKE_VHOOK(Spawn)() void CItemBattery::__MAKE_VHOOK(Spawn)()
@ -242,7 +242,7 @@ BOOL CItemBattery::__MAKE_VHOOK(MyTouch)(CBasePlayer *pPlayer)
return FALSE; return FALSE;
} }
LINK_ENTITY_TO_CLASS(item_battery, CItemBattery, CCSItemBattery); LINK_ENTITY_TO_CLASS(item_battery, CItemBattery, CCSItemBattery)
void CItemAntidote::__MAKE_VHOOK(Spawn)() void CItemAntidote::__MAKE_VHOOK(Spawn)()
{ {
@ -269,7 +269,7 @@ BOOL CItemAntidote::__MAKE_VHOOK(MyTouch)(CBasePlayer *pPlayer)
return TRUE; return TRUE;
} }
LINK_ENTITY_TO_CLASS(item_antidote, CItemAntidote, CCSItemAntidote); LINK_ENTITY_TO_CLASS(item_antidote, CItemAntidote, CCSItemAntidote)
// NOTE: useless thing // NOTE: useless thing
#ifndef REGAMEDLL_FIXES #ifndef REGAMEDLL_FIXES
@ -291,7 +291,7 @@ BOOL CItemSecurity::__MAKE_VHOOK(MyTouch)(CBasePlayer *pPlayer)
return TRUE; return TRUE;
} }
LINK_ENTITY_TO_CLASS(item_security, CItemSecurity, CCSItemSecurity); LINK_ENTITY_TO_CLASS(item_security, CItemSecurity, CCSItemSecurity)
#endif #endif
void CItemLongJump::__MAKE_VHOOK(Spawn)() void CItemLongJump::__MAKE_VHOOK(Spawn)()
@ -334,7 +334,7 @@ BOOL CItemLongJump::__MAKE_VHOOK(MyTouch)(CBasePlayer *pPlayer)
return FALSE; return FALSE;
} }
LINK_ENTITY_TO_CLASS(item_longjump, CItemLongJump, CCSItemLongJump); LINK_ENTITY_TO_CLASS(item_longjump, CItemLongJump, CCSItemLongJump)
void CItemKevlar::__MAKE_VHOOK(Spawn)() void CItemKevlar::__MAKE_VHOOK(Spawn)()
{ {
@ -377,7 +377,7 @@ BOOL CItemKevlar::__MAKE_VHOOK(MyTouch)(CBasePlayer *pPlayer)
return TRUE; return TRUE;
} }
LINK_ENTITY_TO_CLASS(item_kevlar, CItemKevlar, CCSItemKevlar); LINK_ENTITY_TO_CLASS(item_kevlar, CItemKevlar, CCSItemKevlar)
void CItemAssaultSuit::__MAKE_VHOOK(Spawn)() void CItemAssaultSuit::__MAKE_VHOOK(Spawn)()
{ {
@ -419,7 +419,7 @@ BOOL CItemAssaultSuit::__MAKE_VHOOK(MyTouch)(CBasePlayer *pPlayer)
return TRUE; return TRUE;
} }
LINK_ENTITY_TO_CLASS(item_assaultsuit, CItemAssaultSuit, CCSItemAssaultSuit); LINK_ENTITY_TO_CLASS(item_assaultsuit, CItemAssaultSuit, CCSItemAssaultSuit)
void CItemThighPack::__MAKE_VHOOK(Spawn)() void CItemThighPack::__MAKE_VHOOK(Spawn)()
{ {
@ -467,7 +467,7 @@ BOOL CItemThighPack::__MAKE_VHOOK(MyTouch)(CBasePlayer *pPlayer)
return TRUE; return TRUE;
} }
LINK_ENTITY_TO_CLASS(item_thighpack, CItemThighPack, CCSItemThighPack); LINK_ENTITY_TO_CLASS(item_thighpack, CItemThighPack, CCSItemThighPack)
ItemID GetItemIdByName(const char *pszName) ItemID GetItemIdByName(const char *pszName)
{ {

View File

@ -13,8 +13,8 @@ TYPEDESCRIPTION CLight::m_SaveData[] =
#endif #endif
LINK_ENTITY_TO_CLASS(light, CLight, CCSLight); LINK_ENTITY_TO_CLASS(light, CLight, CCSLight)
IMPLEMENT_SAVERESTORE(CLight, CPointEntity); IMPLEMENT_SAVERESTORE(CLight, CPointEntity)
// Cache user-entity-field values until spawn is called. // Cache user-entity-field values until spawn is called.
void CLight::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CLight::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
@ -106,8 +106,8 @@ void CLight::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, US
} }
} }
LINK_ENTITY_TO_CLASS(light_spot, CLight, CCSLight); LINK_ENTITY_TO_CLASS(light_spot, CLight, CCSLight)
LINK_ENTITY_TO_CLASS(light_environment, CEnvLight, CCSEnvLight); LINK_ENTITY_TO_CLASS(light_environment, CEnvLight, CCSEnvLight)
void CEnvLight::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CEnvLight::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {

View File

@ -90,4 +90,4 @@ void CMapInfo::UpdateOnRemove()
g_pMapInfo = nullptr; g_pMapInfo = nullptr;
} }
LINK_ENTITY_TO_CLASS(info_map_parameters, CMapInfo, CCSMapInfo); LINK_ENTITY_TO_CLASS(info_map_parameters, CMapInfo, CCSMapInfo)

View File

@ -27,7 +27,7 @@ TYPEDESCRIPTION CGamePlayerZone::m_SaveData[] =
#endif #endif
IMPLEMENT_SAVERESTORE(CRuleEntity, CBaseEntity); IMPLEMENT_SAVERESTORE(CRuleEntity, CBaseEntity)
void CRuleEntity::__MAKE_VHOOK(Spawn)() void CRuleEntity::__MAKE_VHOOK(Spawn)()
{ {
@ -73,7 +73,7 @@ void CRuleBrushEntity::__MAKE_VHOOK(Spawn)()
CRuleEntity::Spawn(); CRuleEntity::Spawn();
} }
LINK_ENTITY_TO_CLASS(game_score, CGameScore, CCSGameScore); LINK_ENTITY_TO_CLASS(game_score, CGameScore, CCSGameScore)
void CGameScore::__MAKE_VHOOK(Spawn)() void CGameScore::__MAKE_VHOOK(Spawn)()
{ {
@ -110,7 +110,7 @@ void CGameScore::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller
} }
} }
LINK_ENTITY_TO_CLASS(game_end, CGameEnd, CCSGameEnd); LINK_ENTITY_TO_CLASS(game_end, CGameEnd, CCSGameEnd)
void CGameEnd::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) void CGameEnd::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
{ {
@ -120,8 +120,8 @@ void CGameEnd::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller,
g_pGameRules->EndMultiplayerGame(); g_pGameRules->EndMultiplayerGame();
} }
LINK_ENTITY_TO_CLASS(game_text, CGameText, CCSGameText); LINK_ENTITY_TO_CLASS(game_text, CGameText, CCSGameText)
IMPLEMENT_SAVERESTORE(CGameText, CRulePointEntity); IMPLEMENT_SAVERESTORE(CGameText, CRulePointEntity)
void CGameText::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CGameText::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -211,7 +211,7 @@ void CGameText::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller,
} }
} }
LINK_ENTITY_TO_CLASS(game_team_master, CGameTeamMaster, CCSGameTeamMaster); LINK_ENTITY_TO_CLASS(game_team_master, CGameTeamMaster, CCSGameTeamMaster)
void CGameTeamMaster::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CGameTeamMaster::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -321,7 +321,7 @@ BOOL CGameTeamMaster::TeamMatch(CBaseEntity *pActivator)
#endif #endif
} }
LINK_ENTITY_TO_CLASS(game_team_set, CGameTeamSet, CCSGameTeamSet); LINK_ENTITY_TO_CLASS(game_team_set, CGameTeamSet, CCSGameTeamSet)
void CGameTeamSet::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) void CGameTeamSet::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
{ {
@ -345,8 +345,8 @@ void CGameTeamSet::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCall
} }
} }
LINK_ENTITY_TO_CLASS(game_zone_player, CGamePlayerZone, CCSGamePlayerZone); LINK_ENTITY_TO_CLASS(game_zone_player, CGamePlayerZone, CCSGamePlayerZone)
IMPLEMENT_SAVERESTORE(CGamePlayerZone, CRuleBrushEntity); IMPLEMENT_SAVERESTORE(CGamePlayerZone, CRuleBrushEntity)
void CGamePlayerZone::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CGamePlayerZone::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -430,7 +430,7 @@ void CGamePlayerZone::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pC
} }
LINK_ENTITY_TO_CLASS(game_player_hurt, CGamePlayerHurt, CCSGamePlayerHurt); LINK_ENTITY_TO_CLASS(game_player_hurt, CGamePlayerHurt, CCSGamePlayerHurt)
void CGamePlayerHurt::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) void CGamePlayerHurt::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
{ {
@ -453,7 +453,7 @@ void CGamePlayerHurt::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pC
} }
} }
LINK_ENTITY_TO_CLASS(game_counter, CGameCounter, CCSGameCounter); LINK_ENTITY_TO_CLASS(game_counter, CGameCounter, CCSGameCounter)
void CGameCounter::__MAKE_VHOOK(Spawn)() void CGameCounter::__MAKE_VHOOK(Spawn)()
{ {
@ -499,7 +499,7 @@ void CGameCounter::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCall
} }
} }
LINK_ENTITY_TO_CLASS(game_counter_set, CGameCounterSet, CCSGameCounterSet); LINK_ENTITY_TO_CLASS(game_counter_set, CGameCounterSet, CCSGameCounterSet)
void CGameCounterSet::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) void CGameCounterSet::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
{ {
@ -514,7 +514,7 @@ void CGameCounterSet::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pC
} }
} }
LINK_ENTITY_TO_CLASS(game_player_equip, CGamePlayerEquip, CCSGamePlayerEquip); LINK_ENTITY_TO_CLASS(game_player_equip, CGamePlayerEquip, CCSGamePlayerEquip)
void CGamePlayerEquip::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CGamePlayerEquip::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -586,7 +586,7 @@ void CGamePlayerEquip::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *p
EquipPlayer(pActivator); EquipPlayer(pActivator);
} }
LINK_ENTITY_TO_CLASS(game_player_team, CGamePlayerTeam, CCSGamePlayerTeam); LINK_ENTITY_TO_CLASS(game_player_team, CGamePlayerTeam, CCSGamePlayerTeam)
const char *CGamePlayerTeam::TargetTeamName(const char *pszTargetName) const char *CGamePlayerTeam::TargetTeamName(const char *pszTargetName)
{ {

View File

@ -17,8 +17,8 @@ TYPEDESCRIPTION CFuncMortarField::m_SaveData[] =
#endif #endif
LINK_ENTITY_TO_CLASS(func_mortar_field, CFuncMortarField, CCSFuncMortarField); LINK_ENTITY_TO_CLASS(func_mortar_field, CFuncMortarField, CCSFuncMortarField)
IMPLEMENT_SAVERESTORE(CFuncMortarField, CBaseToggle); IMPLEMENT_SAVERESTORE(CFuncMortarField, CBaseToggle)
void CFuncMortarField::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CFuncMortarField::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -153,7 +153,7 @@ void CFuncMortarField::FieldUse(CBaseEntity *pActivator, CBaseEntity *pCaller, U
} }
} }
LINK_ENTITY_TO_CLASS(monster_mortar, CMortar, CCSMortar); LINK_ENTITY_TO_CLASS(monster_mortar, CMortar, CCSMortar)
void CMortar::__MAKE_VHOOK(Spawn)() void CMortar::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -177,7 +177,7 @@ BOOL CHalfLifeMultiplay::IsCareer()
return IS_CAREER_MATCH(); return IS_CAREER_MATCH();
} }
LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN2(CHalfLifeMultiplay, CSGameRules, ServerDeactivate); LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN2(CHalfLifeMultiplay, CSGameRules, ServerDeactivate)
void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(ServerDeactivate)() void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(ServerDeactivate)()
{ {
@ -638,7 +638,7 @@ void CHalfLifeMultiplay::__MAKE_VHOOK(RefreshSkillData)()
gSkillData.plrDmgRPG = 120; gSkillData.plrDmgRPG = 120;
} }
LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN2(CHalfLifeMultiplay, CSGameRules, RemoveGuns); LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN2(CHalfLifeMultiplay, CSGameRules, RemoveGuns)
void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(RemoveGuns)() void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(RemoveGuns)()
{ {
@ -669,7 +669,7 @@ void CHalfLifeMultiplay::UpdateTeamScores()
MESSAGE_END(); MESSAGE_END();
} }
LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN2(CHalfLifeMultiplay, CSGameRules, CleanUpMap); LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN2(CHalfLifeMultiplay, CSGameRules, CleanUpMap)
void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(CleanUpMap)() void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(CleanUpMap)()
{ {
@ -729,7 +729,7 @@ void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(CleanUpMap)()
PLAYBACK_EVENT((FEV_GLOBAL | FEV_RELIABLE), 0, m_usResetDecals); PLAYBACK_EVENT((FEV_GLOBAL | FEV_RELIABLE), 0, m_usResetDecals);
} }
LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN2(CHalfLifeMultiplay, CSGameRules, GiveC4); LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN2(CHalfLifeMultiplay, CSGameRules, GiveC4)
void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(GiveC4)() void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(GiveC4)()
{ {
@ -920,7 +920,7 @@ void CHalfLifeMultiplay::QueueCareerRoundEndMenu(float tmDelay, int iWinStatus)
} }
} }
LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN2(CHalfLifeMultiplay, CSGameRules, CheckWinConditions); LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN2(CHalfLifeMultiplay, CSGameRules, CheckWinConditions)
// Check if the scenario has been won/lost. // Check if the scenario has been won/lost.
void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(CheckWinConditions)() void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(CheckWinConditions)()
@ -1538,7 +1538,7 @@ void CHalfLifeMultiplay::SwapAllPlayers()
UpdateTeamScores(); UpdateTeamScores();
} }
LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN2(CHalfLifeMultiplay, CSGameRules, BalanceTeams); LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN2(CHalfLifeMultiplay, CSGameRules, BalanceTeams)
void EXT_FUNC CHalfLifeMultiplay::__API_HOOK(BalanceTeams)() void EXT_FUNC CHalfLifeMultiplay::__API_HOOK(BalanceTeams)()
{ {
@ -1631,7 +1631,7 @@ void EXT_FUNC CHalfLifeMultiplay::__API_HOOK(BalanceTeams)()
} }
} }
LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN2(CHalfLifeMultiplay, CSGameRules, CheckMapConditions); LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN2(CHalfLifeMultiplay, CSGameRules, CheckMapConditions)
void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(CheckMapConditions)() void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(CheckMapConditions)()
{ {
@ -1666,7 +1666,7 @@ void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(CheckMapConditions)()
m_bMapHasVIPSafetyZone = (UTIL_FindEntityByClassname(NULL, "func_vip_safetyzone") != NULL); m_bMapHasVIPSafetyZone = (UTIL_FindEntityByClassname(NULL, "func_vip_safetyzone") != NULL);
} }
LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN2(CHalfLifeMultiplay, CSGameRules, RestartRound); LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN2(CHalfLifeMultiplay, CSGameRules, RestartRound)
void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(RestartRound)() void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(RestartRound)()
{ {
@ -3211,7 +3211,7 @@ BOOL CHalfLifeMultiplay::__MAKE_VHOOK(IsCoOp)()
return gpGlobals->coop; return gpGlobals->coop;
} }
LINK_HOOK_CLASS_CUSTOM_CHAIN(BOOL, CHalfLifeMultiplay, CSGameRules, FShouldSwitchWeapon, (CBasePlayer *pPlayer, CBasePlayerItem *pWeapon), pPlayer, pWeapon); LINK_HOOK_CLASS_CUSTOM_CHAIN(BOOL, CHalfLifeMultiplay, CSGameRules, FShouldSwitchWeapon, (CBasePlayer *pPlayer, CBasePlayerItem *pWeapon), pPlayer, pWeapon)
BOOL EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(FShouldSwitchWeapon)(CBasePlayer *pPlayer, CBasePlayerItem *pWeapon) BOOL EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(FShouldSwitchWeapon)(CBasePlayer *pPlayer, CBasePlayerItem *pWeapon)
{ {
@ -3233,7 +3233,7 @@ BOOL EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(FShouldSwitchWeapon)(CBasePlayer *
return FALSE; return FALSE;
} }
LINK_HOOK_CLASS_CUSTOM_CHAIN(BOOL, CHalfLifeMultiplay, CSGameRules, GetNextBestWeapon, (CBasePlayer *pPlayer, CBasePlayerItem *pCurrentWeapon), pPlayer, pCurrentWeapon); LINK_HOOK_CLASS_CUSTOM_CHAIN(BOOL, CHalfLifeMultiplay, CSGameRules, GetNextBestWeapon, (CBasePlayer *pPlayer, CBasePlayerItem *pCurrentWeapon), pPlayer, pCurrentWeapon)
BOOL EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(GetNextBestWeapon)(CBasePlayer *pPlayer, CBasePlayerItem *pCurrentWeapon) BOOL EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(GetNextBestWeapon)(CBasePlayer *pPlayer, CBasePlayerItem *pCurrentWeapon)
{ {
@ -3436,13 +3436,13 @@ void CHalfLifeMultiplay::__MAKE_VHOOK(InitHUD)(CBasePlayer *pl)
} }
} }
auto SendMsgBombDrop = [&pl](const int iFlag, const Vector& pos) auto SendMsgBombDrop = [&pl](const int flag, const Vector& pos)
{ {
MESSAGE_BEGIN(MSG_ONE, gmsgBombDrop, NULL, pl->edict()); MESSAGE_BEGIN(MSG_ONE, gmsgBombDrop, NULL, pl->edict());
WRITE_COORD(pos.x); WRITE_COORD(pos.x);
WRITE_COORD(pos.y); WRITE_COORD(pos.y);
WRITE_COORD(pos.z); WRITE_COORD(pos.z);
WRITE_BYTE(iFlag); WRITE_BYTE(flag);
MESSAGE_END(); MESSAGE_END();
}; };
@ -3578,7 +3578,7 @@ void CHalfLifeMultiplay::__MAKE_VHOOK(ClientDisconnected)(edict_t *pClient)
CheckWinConditions(); CheckWinConditions();
} }
LINK_HOOK_CLASS_CUSTOM_CHAIN(float, CHalfLifeMultiplay, CSGameRules, FlPlayerFallDamage, (CBasePlayer *pPlayer), pPlayer); LINK_HOOK_CLASS_CUSTOM_CHAIN(float, CHalfLifeMultiplay, CSGameRules, FlPlayerFallDamage, (CBasePlayer *pPlayer), pPlayer)
float EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(FlPlayerFallDamage)(CBasePlayer *pPlayer) float EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(FlPlayerFallDamage)(CBasePlayer *pPlayer)
{ {
@ -3586,7 +3586,7 @@ float EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(FlPlayerFallDamage)(CBasePlayer *
return pPlayer->m_flFallVelocity * DAMAGE_FOR_FALL_SPEED * 1.25; return pPlayer->m_flFallVelocity * DAMAGE_FOR_FALL_SPEED * 1.25;
} }
LINK_HOOK_CLASS_CUSTOM_CHAIN(BOOL, CHalfLifeMultiplay, CSGameRules, FPlayerCanTakeDamage, (CBasePlayer *pPlayer, CBaseEntity *pAttacker), pPlayer, pAttacker); LINK_HOOK_CLASS_CUSTOM_CHAIN(BOOL, CHalfLifeMultiplay, CSGameRules, FPlayerCanTakeDamage, (CBasePlayer *pPlayer, CBaseEntity *pAttacker), pPlayer, pAttacker)
BOOL EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(FPlayerCanTakeDamage)(CBasePlayer *pPlayer, CBaseEntity *pAttacker) BOOL EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(FPlayerCanTakeDamage)(CBasePlayer *pPlayer, CBaseEntity *pAttacker)
{ {
@ -3697,7 +3697,7 @@ void CHalfLifeMultiplay::__MAKE_VHOOK(PlayerThink)(CBasePlayer *pPlayer)
} }
} }
LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN(CHalfLifeMultiplay, CSGameRules, PlayerSpawn, (CBasePlayer *pPlayer), pPlayer); LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN(CHalfLifeMultiplay, CSGameRules, PlayerSpawn, (CBasePlayer *pPlayer), pPlayer)
// Purpose: Player has just spawned. Equip them. // Purpose: Player has just spawned. Equip them.
void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(PlayerSpawn)(CBasePlayer *pPlayer) void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(PlayerSpawn)(CBasePlayer *pPlayer)
@ -3711,7 +3711,7 @@ void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(PlayerSpawn)(CBasePlayer *pPlayer)
pPlayer->SetPlayerModel(false); pPlayer->SetPlayerModel(false);
} }
LINK_HOOK_CLASS_CUSTOM_CHAIN(BOOL, CHalfLifeMultiplay, CSGameRules, FPlayerCanRespawn, (CBasePlayer *pPlayer), pPlayer); LINK_HOOK_CLASS_CUSTOM_CHAIN(BOOL, CHalfLifeMultiplay, CSGameRules, FPlayerCanRespawn, (CBasePlayer *pPlayer), pPlayer)
BOOL EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(FPlayerCanRespawn)(CBasePlayer *pPlayer) BOOL EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(FPlayerCanRespawn)(CBasePlayer *pPlayer)
{ {
@ -3785,7 +3785,7 @@ int CHalfLifeMultiplay::__MAKE_VHOOK(IPointsForKill)(CBasePlayer *pAttacker, CBa
return 1; return 1;
} }
LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN(CHalfLifeMultiplay, CSGameRules, PlayerKilled, (CBasePlayer *pVictim, entvars_t *pKiller, entvars_t *pInflictor), pVictim, pKiller, pInflictor); LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN(CHalfLifeMultiplay, CSGameRules, PlayerKilled, (CBasePlayer *pVictim, entvars_t *pKiller, entvars_t *pInflictor), pVictim, pKiller, pInflictor)
void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(PlayerKilled)(CBasePlayer *pVictim, entvars_t *pKiller, entvars_t *pInflictor) void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(PlayerKilled)(CBasePlayer *pVictim, entvars_t *pKiller, entvars_t *pInflictor)
{ {
@ -3937,7 +3937,7 @@ void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(PlayerKilled)(CBasePlayer *pVictim
} }
} }
LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN(CHalfLifeMultiplay, CSGameRules, DeathNotice, (CBasePlayer *pVictim, entvars_t *pKiller, entvars_t *pevInflictor), pVictim, pKiller, pevInflictor); LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN(CHalfLifeMultiplay, CSGameRules, DeathNotice, (CBasePlayer *pVictim, entvars_t *pKiller, entvars_t *pevInflictor), pVictim, pKiller, pevInflictor)
void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(DeathNotice)(CBasePlayer *pVictim, entvars_t *pKiller, entvars_t *pevInflictor) void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(DeathNotice)(CBasePlayer *pVictim, entvars_t *pKiller, entvars_t *pevInflictor)
{ {
@ -4111,7 +4111,7 @@ int CHalfLifeMultiplay::__MAKE_VHOOK(WeaponShouldRespawn)(CBasePlayerItem *pWeap
return GR_WEAPON_RESPAWN_YES; return GR_WEAPON_RESPAWN_YES;
} }
LINK_HOOK_CLASS_CUSTOM_CHAIN(BOOL, CHalfLifeMultiplay, CSGameRules, CanHavePlayerItem, (CBasePlayer *pPlayer, CBasePlayerItem *pItem), pPlayer, pItem); LINK_HOOK_CLASS_CUSTOM_CHAIN(BOOL, CHalfLifeMultiplay, CSGameRules, CanHavePlayerItem, (CBasePlayer *pPlayer, CBasePlayerItem *pItem), pPlayer, pItem)
BOOL EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(CanHavePlayerItem)(CBasePlayer *pPlayer, CBasePlayerItem *pItem) BOOL EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(CanHavePlayerItem)(CBasePlayer *pPlayer, CBasePlayerItem *pItem)
{ {
@ -4188,7 +4188,7 @@ float CHalfLifeMultiplay::__MAKE_VHOOK(FlHEVChargerRechargeTime)()
return 30; return 30;
} }
LINK_HOOK_CLASS_CUSTOM_CHAIN(int, CHalfLifeMultiplay, CSGameRules, DeadPlayerWeapons, (CBasePlayer *pPlayer), pPlayer); LINK_HOOK_CLASS_CUSTOM_CHAIN(int, CHalfLifeMultiplay, CSGameRules, DeadPlayerWeapons, (CBasePlayer *pPlayer), pPlayer)
int EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(DeadPlayerWeapons)(CBasePlayer *pPlayer) int EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(DeadPlayerWeapons)(CBasePlayer *pPlayer)
{ {
@ -4200,7 +4200,7 @@ int CHalfLifeMultiplay::__MAKE_VHOOK(DeadPlayerAmmo)(CBasePlayer *pPlayer)
return GR_PLR_DROP_AMMO_ACTIVE; return GR_PLR_DROP_AMMO_ACTIVE;
} }
LINK_HOOK_CLASS_CUSTOM_CHAIN(edict_t *, CHalfLifeMultiplay, CSGameRules, GetPlayerSpawnSpot, (CBasePlayer *pPlayer), pPlayer); LINK_HOOK_CLASS_CUSTOM_CHAIN(edict_t *, CHalfLifeMultiplay, CSGameRules, GetPlayerSpawnSpot, (CBasePlayer *pPlayer), pPlayer)
edict_t *EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(GetPlayerSpawnSpot)(CBasePlayer *pPlayer) edict_t *EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(GetPlayerSpawnSpot)(CBasePlayer *pPlayer)
{ {
@ -4270,7 +4270,7 @@ BOOL CHalfLifeMultiplay::__MAKE_VHOOK(FAllowMonsters)()
#endif #endif
} }
LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN2(CHalfLifeMultiplay, CSGameRules, GoToIntermission); LINK_HOOK_CLASS_VOID_CUSTOM_CHAIN2(CHalfLifeMultiplay, CSGameRules, GoToIntermission)
void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(GoToIntermission)() void EXT_FUNC CHalfLifeMultiplay::__API_VHOOK(GoToIntermission)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_HOOK_CHAIN(int, GetForceCamera, (CBasePlayer *pObserver), pObserver); LINK_HOOK_CHAIN(int, GetForceCamera, (CBasePlayer *pObserver), pObserver)
int EXT_FUNC __API_HOOK(GetForceCamera)(CBasePlayer *pObserver) int EXT_FUNC __API_HOOK(GetForceCamera)(CBasePlayer *pObserver)
{ {
@ -19,7 +19,7 @@ int EXT_FUNC __API_HOOK(GetForceCamera)(CBasePlayer *pObserver)
return retVal; return retVal;
} }
LINK_HOOK_CLASS_CHAIN(CBasePlayer *, CBasePlayer, Observer_IsValidTarget, (int iPlayerIndex, bool bSameTeam), iPlayerIndex, bSameTeam); LINK_HOOK_CLASS_CHAIN(CBasePlayer *, CBasePlayer, Observer_IsValidTarget, (int iPlayerIndex, bool bSameTeam), iPlayerIndex, bSameTeam)
CBasePlayer *EXT_FUNC CBasePlayer::__API_HOOK(Observer_IsValidTarget)(int iPlayerIndex, bool bSameTeam) CBasePlayer *EXT_FUNC CBasePlayer::__API_HOOK(Observer_IsValidTarget)(int iPlayerIndex, bool bSameTeam)
{ {

View File

@ -21,8 +21,8 @@ TYPEDESCRIPTION CPathTrack::m_SaveData[] =
#endif #endif
LINK_ENTITY_TO_CLASS(path_corner, CPathCorner, CCSPathCorner); LINK_ENTITY_TO_CLASS(path_corner, CPathCorner, CCSPathCorner)
IMPLEMENT_SAVERESTORE(CPathCorner, CPointEntity); IMPLEMENT_SAVERESTORE(CPathCorner, CPointEntity)
void CPathCorner::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CPathCorner::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -40,8 +40,8 @@ void CPathCorner::__MAKE_VHOOK(Spawn)()
assert(("path_corner without a targetname", !FStringNull(pev->targetname))); assert(("path_corner without a targetname", !FStringNull(pev->targetname)));
} }
IMPLEMENT_SAVERESTORE(CPathTrack, CBaseEntity); IMPLEMENT_SAVERESTORE(CPathTrack, CBaseEntity)
LINK_ENTITY_TO_CLASS(path_track, CPathTrack, CCSPathTrack); LINK_ENTITY_TO_CLASS(path_track, CPathTrack, CCSPathTrack)
void CPathTrack::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CPathTrack::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {

View File

@ -61,7 +61,7 @@ TYPEDESCRIPTION CGunTarget::m_SaveData[] =
#endif // HOOK_GAMEDLL #endif // HOOK_GAMEDLL
IMPLEMENT_SAVERESTORE(CBasePlatTrain, CBaseToggle); IMPLEMENT_SAVERESTORE(CBasePlatTrain, CBaseToggle)
void CBasePlatTrain::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CBasePlatTrain::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -232,7 +232,7 @@ void CFuncPlat::CallHitBottom()
HitBottom(); HitBottom();
} }
LINK_ENTITY_TO_CLASS(func_plat, CFuncPlat, CCSFuncPlat); LINK_ENTITY_TO_CLASS(func_plat, CFuncPlat, CCSFuncPlat)
#define noiseMovement noise #define noiseMovement noise
#define noiseStopMoving noise1 #define noiseStopMoving noise1
@ -511,8 +511,8 @@ void CFuncPlat::__MAKE_VHOOK(Blocked)(CBaseEntity *pOther)
} }
} }
LINK_ENTITY_TO_CLASS(func_platrot, CFuncPlatRot, CCSFuncPlatRot); LINK_ENTITY_TO_CLASS(func_platrot, CFuncPlatRot, CCSFuncPlatRot)
IMPLEMENT_SAVERESTORE(CFuncPlatRot, CFuncPlat); IMPLEMENT_SAVERESTORE(CFuncPlatRot, CFuncPlat)
void CFuncPlatRot::SetupRotation() void CFuncPlatRot::SetupRotation()
{ {
@ -588,8 +588,8 @@ void CFuncPlatRot::RotMove(Vector &destAngle, float time)
} }
} }
LINK_ENTITY_TO_CLASS(func_train, CFuncTrain, CCSFuncTrain); LINK_ENTITY_TO_CLASS(func_train, CFuncTrain, CCSFuncTrain)
IMPLEMENT_SAVERESTORE(CFuncTrain, CBasePlatTrain); IMPLEMENT_SAVERESTORE(CFuncTrain, CBasePlatTrain)
void CFuncTrain::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CFuncTrain::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -918,8 +918,8 @@ void CFuncTrain::__MAKE_VHOOK(OverrideReset)()
} }
} }
IMPLEMENT_SAVERESTORE(CFuncTrackTrain, CBaseEntity); IMPLEMENT_SAVERESTORE(CFuncTrackTrain, CBaseEntity)
LINK_ENTITY_TO_CLASS(func_tracktrain, CFuncTrackTrain, CCSFuncTrackTrain); LINK_ENTITY_TO_CLASS(func_tracktrain, CFuncTrackTrain, CCSFuncTrackTrain)
void CFuncTrackTrain::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CFuncTrackTrain::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -1580,7 +1580,7 @@ void CFuncTrackTrain::__MAKE_VHOOK(Precache)()
m_usAdjustPitch = PRECACHE_EVENT(1, "events/train.sc"); m_usAdjustPitch = PRECACHE_EVENT(1, "events/train.sc");
} }
LINK_ENTITY_TO_CLASS(func_traincontrols, CFuncTrainControls, CCSFuncTrainControls); LINK_ENTITY_TO_CLASS(func_traincontrols, CFuncTrainControls, CCSFuncTrainControls)
void CFuncTrainControls::Find() void CFuncTrainControls::Find()
{ {
@ -1621,8 +1621,8 @@ BOOL CFuncTrackChange::__MAKE_VHOOK(IsTogglePlat)()
return TRUE; return TRUE;
} }
LINK_ENTITY_TO_CLASS(func_trackchange, CFuncTrackChange, CCSFuncTrackChange); LINK_ENTITY_TO_CLASS(func_trackchange, CFuncTrackChange, CCSFuncTrackChange)
IMPLEMENT_SAVERESTORE(CFuncTrackChange, CFuncPlatRot); IMPLEMENT_SAVERESTORE(CFuncTrackChange, CFuncPlatRot)
void CFuncTrackChange::__MAKE_VHOOK(Spawn)() void CFuncTrackChange::__MAKE_VHOOK(Spawn)()
{ {
@ -1958,7 +1958,7 @@ void CFuncTrackChange::__MAKE_VHOOK(HitTop)()
EnableUse(); EnableUse();
} }
LINK_ENTITY_TO_CLASS(func_trackautochange, CFuncTrackAuto, CCSFuncTrackAuto); LINK_ENTITY_TO_CLASS(func_trackautochange, CFuncTrackAuto, CCSFuncTrackAuto)
// Auto track change // Auto track change
void CFuncTrackAuto::__MAKE_VHOOK(UpdateAutoTargets)(int toggleState) void CFuncTrackAuto::__MAKE_VHOOK(UpdateAutoTargets)(int toggleState)
@ -2049,8 +2049,8 @@ void CFuncTrackAuto::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCa
} }
} }
LINK_ENTITY_TO_CLASS(func_guntarget, CGunTarget, CCSGunTarget); LINK_ENTITY_TO_CLASS(func_guntarget, CGunTarget, CCSGunTarget)
IMPLEMENT_SAVERESTORE(CGunTarget, CBaseMonster); IMPLEMENT_SAVERESTORE(CGunTarget, CBaseMonster)
void CGunTarget::__MAKE_VHOOK(Spawn)() void CGunTarget::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -281,7 +281,7 @@ void WriteSigonMessages()
} }
} }
LINK_ENTITY_TO_CLASS(player, CBasePlayer, CCSPlayer); LINK_ENTITY_TO_CLASS(player, CBasePlayer, CCSPlayer)
void CBasePlayer::SendItemStatus() void CBasePlayer::SendItemStatus()
{ {
@ -339,7 +339,7 @@ const char *GetCSModelName(int item_id)
return modelName; return modelName;
} }
LINK_HOOK_CLASS_CHAIN(bool, CBasePlayer, SetClientUserInfoName, (char *infobuffer, char *szNewName), infobuffer, szNewName); LINK_HOOK_CLASS_CHAIN(bool, CBasePlayer, SetClientUserInfoName, (char *infobuffer, char *szNewName), infobuffer, szNewName)
bool EXT_FUNC CBasePlayer::__API_HOOK(SetClientUserInfoName)(char *infobuffer, char *szNewName) bool EXT_FUNC CBasePlayer::__API_HOOK(SetClientUserInfoName)(char *infobuffer, char *szNewName)
{ {
@ -388,8 +388,8 @@ void CBasePlayer::SetPlayerModel(BOOL HasC4)
char *model; char *model;
#ifdef REGAMEDLL_ADD #ifdef REGAMEDLL_ADD
auto& modelEx = CSPlayer()->m_szModel; auto modelEx = CSPlayer()->m_szModel;
if (*modelEx != '\0') { if (modelEx[0] != '\0') {
model = modelEx; model = modelEx;
} else } else
#endif #endif
@ -521,7 +521,7 @@ CBasePlayer *CBasePlayer::GetNextRadioRecipient(CBasePlayer *pStartPlayer)
return NULL; return NULL;
} }
LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, Radio, (const char *msg_id, const char *msg_verbose, short pitch, bool showIcon), msg_id, msg_verbose, pitch, showIcon); LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, Radio, (const char *msg_id, const char *msg_verbose, short pitch, bool showIcon), msg_id, msg_verbose, pitch, showIcon)
void EXT_FUNC CBasePlayer::__API_HOOK(Radio)(const char *msg_id, const char *msg_verbose, short pitch, bool showIcon) void EXT_FUNC CBasePlayer::__API_HOOK(Radio)(const char *msg_id, const char *msg_verbose, short pitch, bool showIcon)
{ {
@ -720,7 +720,7 @@ void CBasePlayer::DeathSound()
} }
} }
LINK_HOOK_CLASS_CHAIN(BOOL, CBasePlayer, TakeHealth, (float flHealth, int bitsDamageType), flHealth, bitsDamageType); LINK_HOOK_CLASS_CHAIN(BOOL, CBasePlayer, TakeHealth, (float flHealth, int bitsDamageType), flHealth, bitsDamageType)
// override takehealth // override takehealth
// bitsDamageType indicates type of damage healed. // bitsDamageType indicates type of damage healed.
@ -748,7 +748,7 @@ bool CBasePlayer::IsHittingShield(Vector &vecDirection, TraceResult *ptr)
return false; return false;
} }
LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, TraceAttack, (entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType), pevAttacker, flDamage, vecDir, ptr, bitsDamageType); LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, TraceAttack, (entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType), pevAttacker, flDamage, vecDir, ptr, bitsDamageType)
void EXT_FUNC CBasePlayer::__API_VHOOK(TraceAttack)(entvars_t *pevAttacker, float flDamage, VectorRef vecDir, TraceResult *ptr, int bitsDamageType) void EXT_FUNC CBasePlayer::__API_VHOOK(TraceAttack)(entvars_t *pevAttacker, float flDamage, VectorRef vecDir, TraceResult *ptr, int bitsDamageType)
{ {
@ -974,7 +974,7 @@ void LogAttack(CBasePlayer *pAttacker, CBasePlayer *pVictim, int teamAttack, int
} }
} }
LINK_HOOK_CLASS_CHAIN(BOOL, CBasePlayer, TakeDamage, (entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType), pevInflictor, pevAttacker, flDamage, bitsDamageType); LINK_HOOK_CLASS_CHAIN(BOOL, CBasePlayer, TakeDamage, (entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType), pevInflictor, pevAttacker, flDamage, bitsDamageType)
// Take some damage. // Take some damage.
// RETURN: TRUE took damage, FALSE otherwise // RETURN: TRUE took damage, FALSE otherwise
@ -1579,12 +1579,16 @@ void CBasePlayer::PackDeadPlayerItems()
RemoveAllItems(TRUE); RemoveAllItems(TRUE);
} }
LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, GiveDefaultItems); LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, GiveDefaultItems)
void EXT_FUNC CBasePlayer::__API_HOOK(GiveDefaultItems)() void EXT_FUNC CBasePlayer::__API_HOOK(GiveDefaultItems)()
{ {
RemoveAllItems(FALSE); RemoveAllItems(FALSE);
// NOTE: NOTE: It is already does reset inside RemoveAllItems
#ifndef REGAMEDLL_FIXES
m_bHasPrimary = false; m_bHasPrimary = false;
#endif
#ifdef REGAMEDLL_ADD #ifdef REGAMEDLL_ADD
switch (m_iTeam) switch (m_iTeam)
@ -2004,7 +2008,7 @@ void CBasePlayer::SendFOV(int fov)
MESSAGE_END(); MESSAGE_END();
} }
LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, Killed, (entvars_t *pevAttacker, int iGib), pevAttacker, iGib); LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, Killed, (entvars_t *pevAttacker, int iGib), pevAttacker, iGib)
void EXT_FUNC CBasePlayer::__API_VHOOK(Killed)(entvars_t *pevAttacker, int iGib) void EXT_FUNC CBasePlayer::__API_VHOOK(Killed)(entvars_t *pevAttacker, int iGib)
{ {
@ -2320,7 +2324,7 @@ BOOL CBasePlayer::IsBombGuy()
return m_bHasC4; return m_bHasC4;
} }
LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, SetAnimation, (PLAYER_ANIM playerAnim), playerAnim); LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, SetAnimation, (PLAYER_ANIM playerAnim), playerAnim)
void EXT_FUNC CBasePlayer::__API_HOOK(SetAnimation)(PLAYER_ANIM playerAnim) void EXT_FUNC CBasePlayer::__API_HOOK(SetAnimation)(PLAYER_ANIM playerAnim)
{ {
@ -3041,7 +3045,7 @@ NOXREF void CBasePlayer::ThrowWeapon(char *pszItemName)
} }
} }
LINK_ENTITY_TO_CLASS(weapon_shield, CWShield, CCSShield); LINK_ENTITY_TO_CLASS(weapon_shield, CWShield, CCSShield)
void CWShield::__MAKE_VHOOK(Spawn)() void CWShield::__MAKE_VHOOK(Spawn)()
{ {
@ -3097,7 +3101,7 @@ void CWShield::__MAKE_VHOOK(Touch)(CBaseEntity *pOther)
} }
} }
LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, GiveShield, (bool bDeploy), bDeploy); LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, GiveShield, (bool bDeploy), bDeploy)
void EXT_FUNC CBasePlayer::__API_HOOK(GiveShield)(bool bDeploy) void EXT_FUNC CBasePlayer::__API_HOOK(GiveShield)(bool bDeploy)
{ {
@ -3134,7 +3138,7 @@ void CBasePlayer::RemoveShield()
} }
} }
LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, DropShield, (bool bDeploy), bDeploy); LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, DropShield, (bool bDeploy), bDeploy)
void EXT_FUNC CBasePlayer::__API_HOOK(DropShield)(bool bDeploy) void EXT_FUNC CBasePlayer::__API_HOOK(DropShield)(bool bDeploy)
{ {
@ -3214,7 +3218,7 @@ NOXREF void CBasePlayer::ThrowPrimary()
DropShield(); DropShield();
} }
LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, AddAccount, (int amount, RewardType type, bool bTrackChange), amount, type, bTrackChange); LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, AddAccount, (int amount, RewardType type, bool bTrackChange), amount, type, bTrackChange)
#ifdef REGAMEDLL_ADD #ifdef REGAMEDLL_ADD
void EXT_FUNC CBasePlayer::__API_HOOK(AddAccount)(int amount, RewardType type, bool bTrackChange) void EXT_FUNC CBasePlayer::__API_HOOK(AddAccount)(int amount, RewardType type, bool bTrackChange)
@ -3409,7 +3413,7 @@ void CBasePlayer::MenuPrint(const char *msg)
MESSAGE_END(); MESSAGE_END();
} }
LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, MakeVIP); LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, MakeVIP)
void EXT_FUNC CBasePlayer::__API_HOOK(MakeVIP)() void EXT_FUNC CBasePlayer::__API_HOOK(MakeVIP)()
{ {
@ -3507,7 +3511,7 @@ void CBasePlayer::JoiningThink()
} }
} }
LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, Disappear); LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, Disappear)
void EXT_FUNC CBasePlayer::__API_HOOK(Disappear)() void EXT_FUNC CBasePlayer::__API_HOOK(Disappear)()
{ {
@ -3682,7 +3686,7 @@ void CBasePlayer::PlayerDeathThink()
} }
} }
LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, RoundRespawn); LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, RoundRespawn)
void EXT_FUNC CBasePlayer::__API_VHOOK(RoundRespawn)() void EXT_FUNC CBasePlayer::__API_VHOOK(RoundRespawn)()
{ {
@ -3744,7 +3748,7 @@ void CBasePlayer::StartDeathCam()
} }
} }
LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, StartObserver, (Vector &vecPosition, Vector &vecViewAngle), vecPosition, vecViewAngle); LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, StartObserver, (Vector &vecPosition, Vector &vecViewAngle), vecPosition, vecViewAngle)
void EXT_FUNC CBasePlayer::__API_HOOK(StartObserver)(Vector &vecPosition, Vector &vecViewAngle) void EXT_FUNC CBasePlayer::__API_HOOK(StartObserver)(Vector &vecPosition, Vector &vecViewAngle)
{ {
@ -4031,7 +4035,7 @@ void CBasePlayer::HostageUsed()
m_flDisplayHistory |= DHF_HOSTAGE_USED; m_flDisplayHistory |= DHF_HOSTAGE_USED;
} }
LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, Jump); LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, Jump)
void EXT_FUNC CBasePlayer::__API_VHOOK(Jump)() void EXT_FUNC CBasePlayer::__API_VHOOK(Jump)()
{ {
@ -4103,7 +4107,7 @@ NOXREF void FixPlayerCrouchStuck(edict_t *pPlayer)
} }
} }
LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, Duck); LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, Duck)
void EXT_FUNC CBasePlayer::__API_VHOOK(Duck)() void EXT_FUNC CBasePlayer::__API_VHOOK(Duck)()
{ {
@ -4111,14 +4115,14 @@ void EXT_FUNC CBasePlayer::__API_VHOOK(Duck)()
SetAnimation(PLAYER_WALK); SetAnimation(PLAYER_WALK);
} }
LINK_HOOK_CLASS_CHAIN2(int, CBasePlayer, ObjectCaps); LINK_HOOK_CLASS_CHAIN2(int, CBasePlayer, ObjectCaps)
int EXT_FUNC CBasePlayer::__API_VHOOK(ObjectCaps)() int EXT_FUNC CBasePlayer::__API_VHOOK(ObjectCaps)()
{ {
return (CBaseMonster::ObjectCaps() & ~FCAP_ACROSS_TRANSITION); return (CBaseMonster::ObjectCaps() & ~FCAP_ACROSS_TRANSITION);
} }
LINK_HOOK_CLASS_CHAIN2(int, CBasePlayer, Classify); LINK_HOOK_CLASS_CHAIN2(int, CBasePlayer, Classify)
// ID's player as such. // ID's player as such.
int EXT_FUNC CBasePlayer::__API_VHOOK(Classify)() int EXT_FUNC CBasePlayer::__API_VHOOK(Classify)()
@ -4126,7 +4130,7 @@ int EXT_FUNC CBasePlayer::__API_VHOOK(Classify)()
return CLASS_PLAYER; return CLASS_PLAYER;
} }
LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, AddPoints, (int score, BOOL bAllowNegativeScore), score, bAllowNegativeScore); LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, AddPoints, (int score, BOOL bAllowNegativeScore), score, bAllowNegativeScore)
void EXT_FUNC CBasePlayer::__API_VHOOK(AddPoints)(int score, BOOL bAllowNegativeScore) void EXT_FUNC CBasePlayer::__API_VHOOK(AddPoints)(int score, BOOL bAllowNegativeScore)
{ {
@ -4159,7 +4163,7 @@ void EXT_FUNC CBasePlayer::__API_VHOOK(AddPoints)(int score, BOOL bAllowNegative
MESSAGE_END(); MESSAGE_END();
} }
LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, AddPointsToTeam, (int score, BOOL bAllowNegativeScore), score, bAllowNegativeScore); LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, AddPointsToTeam, (int score, BOOL bAllowNegativeScore), score, bAllowNegativeScore)
void EXT_FUNC CBasePlayer::__API_VHOOK(AddPointsToTeam)(int score, BOOL bAllowNegativeScore) void EXT_FUNC CBasePlayer::__API_VHOOK(AddPointsToTeam)(int score, BOOL bAllowNegativeScore)
{ {
@ -4252,7 +4256,7 @@ bool CBasePlayer::CanPlayerBuy(bool display)
return true; return true;
} }
LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, PreThink); LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, PreThink)
void EXT_FUNC CBasePlayer::__API_VHOOK(PreThink)() void EXT_FUNC CBasePlayer::__API_VHOOK(PreThink)()
{ {
@ -4718,6 +4722,10 @@ void CBasePlayer::SetNewPlayerModel(const char *modelName)
{ {
SET_MODEL(edict(), modelName); SET_MODEL(edict(), modelName);
m_modelIndexPlayer = pev->modelindex; m_modelIndexPlayer = pev->modelindex;
#ifdef REGAMEDLL_FIXES
ResetSequenceInfo();
#endif
} }
// UpdatePlayerSound - updates the position of the player's // UpdatePlayerSound - updates the position of the player's
@ -4829,7 +4837,7 @@ void CBasePlayer::UpdatePlayerSound()
gpGlobals->v_forward.z = 0; gpGlobals->v_forward.z = 0;
} }
LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, PostThink); LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, PostThink)
void EXT_FUNC CBasePlayer::__API_VHOOK(PostThink)() void EXT_FUNC CBasePlayer::__API_VHOOK(PostThink)()
{ {
@ -5182,7 +5190,7 @@ void CBasePlayer::SetScoreAttrib(CBasePlayer *dest)
} }
} }
LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, Spawn); LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, Spawn)
void EXT_FUNC CBasePlayer::__API_VHOOK(Spawn)() void EXT_FUNC CBasePlayer::__API_VHOOK(Spawn)()
{ {
@ -5539,7 +5547,7 @@ void EXT_FUNC CBasePlayer::__API_VHOOK(Spawn)()
#endif #endif
} }
LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, Precache); LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, Precache)
void EXT_FUNC CBasePlayer::__API_VHOOK(Precache)() void EXT_FUNC CBasePlayer::__API_VHOOK(Precache)()
{ {
@ -5924,7 +5932,7 @@ void CBloodSplat::Spray()
pev->nextthink = gpGlobals->time + 0.1f; pev->nextthink = gpGlobals->time + 0.1f;
} }
LINK_HOOK_CLASS_CHAIN(CBaseEntity *, CBasePlayer, GiveNamedItem, (const char *pszName), pszName); LINK_HOOK_CLASS_CHAIN(CBaseEntity *, CBasePlayer, GiveNamedItem, (const char *pszName), pszName)
CBaseEntity *EXT_FUNC CBasePlayer::__API_HOOK(GiveNamedItem)(const char *pszName) CBaseEntity *EXT_FUNC CBasePlayer::__API_HOOK(GiveNamedItem)(const char *pszName)
{ {
@ -6052,7 +6060,7 @@ void CBasePlayer::ForceClientDllUpdate()
HandleSignals(); HandleSignals();
} }
LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, ImpulseCommands); LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, ImpulseCommands)
void EXT_FUNC CBasePlayer::__API_VHOOK(ImpulseCommands)() void EXT_FUNC CBasePlayer::__API_VHOOK(ImpulseCommands)()
{ {
@ -6404,7 +6412,7 @@ void CBasePlayer::HandleSignals()
} }
} }
LINK_HOOK_CLASS_CHAIN(BOOL, CBasePlayer, AddPlayerItem, (CBasePlayerItem *pItem), pItem); LINK_HOOK_CLASS_CHAIN(BOOL, CBasePlayer, AddPlayerItem, (CBasePlayerItem *pItem), pItem)
// Add a weapon to the player (Item == Weapon == Selectable Object) // Add a weapon to the player (Item == Weapon == Selectable Object)
BOOL EXT_FUNC CBasePlayer::__API_VHOOK(AddPlayerItem)(CBasePlayerItem *pItem) BOOL EXT_FUNC CBasePlayer::__API_VHOOK(AddPlayerItem)(CBasePlayerItem *pItem)
@ -6472,7 +6480,7 @@ BOOL EXT_FUNC CBasePlayer::__API_VHOOK(AddPlayerItem)(CBasePlayerItem *pItem)
return FALSE; return FALSE;
} }
LINK_HOOK_CLASS_CHAIN(BOOL, CBasePlayer, RemovePlayerItem, (CBasePlayerItem *pItem), pItem); LINK_HOOK_CLASS_CHAIN(BOOL, CBasePlayer, RemovePlayerItem, (CBasePlayerItem *pItem), pItem)
BOOL EXT_FUNC CBasePlayer::__API_VHOOK(RemovePlayerItem)(CBasePlayerItem *pItem) BOOL EXT_FUNC CBasePlayer::__API_VHOOK(RemovePlayerItem)(CBasePlayerItem *pItem)
{ {
@ -6509,7 +6517,7 @@ BOOL EXT_FUNC CBasePlayer::__API_VHOOK(RemovePlayerItem)(CBasePlayerItem *pItem)
return FALSE; return FALSE;
} }
LINK_HOOK_CLASS_CHAIN(int, CBasePlayer, GiveAmmo, (int iCount, char *szName, int iMax), iCount, szName, iMax); LINK_HOOK_CLASS_CHAIN(int, CBasePlayer, GiveAmmo, (int iCount, char *szName, int iMax), iCount, szName, iMax)
// Returns the unique ID for the ammo, or -1 if error // Returns the unique ID for the ammo, or -1 if error
int EXT_FUNC CBasePlayer::__API_VHOOK(GiveAmmo)(int iCount, char *szName, int iMax) int EXT_FUNC CBasePlayer::__API_VHOOK(GiveAmmo)(int iCount, char *szName, int iMax)
@ -6725,7 +6733,7 @@ void CBasePlayer::SendWeatherInfo()
} }
} }
LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, UpdateClientData); LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, UpdateClientData)
// resends any changed player HUD info to the client. // resends any changed player HUD info to the client.
// Called every frame by PlayerPreThink // Called every frame by PlayerPreThink
@ -7126,7 +7134,7 @@ void CBasePlayer::EnableControl(BOOL fControl)
pev->flags &= ~FL_FROZEN; pev->flags &= ~FL_FROZEN;
} }
LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, ResetMaxSpeed); LINK_HOOK_CLASS_VOID_CHAIN2(CBasePlayer, ResetMaxSpeed)
void EXT_FUNC CBasePlayer::__API_VHOOK(ResetMaxSpeed)() void EXT_FUNC CBasePlayer::__API_VHOOK(ResetMaxSpeed)()
{ {
@ -7269,7 +7277,7 @@ int CBasePlayer::GetCustomDecalFrames()
return m_nCustomSprayFrames; return m_nCustomSprayFrames;
} }
LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, Blind, (float duration, float holdTime, float fadeTime, int alpha), duration, holdTime, fadeTime, alpha); LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, Blind, (float duration, float holdTime, float fadeTime, int alpha), duration, holdTime, fadeTime, alpha)
void EXT_FUNC CBasePlayer::__API_VHOOK(Blind)(float duration, float holdTime, float fadeTime, int alpha) void EXT_FUNC CBasePlayer::__API_VHOOK(Blind)(float duration, float holdTime, float fadeTime, int alpha)
{ {
@ -7417,7 +7425,7 @@ void CBasePlayer::UpdateStatusBar()
} }
} }
LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, DropPlayerItem, (const char *pszItemName), pszItemName); LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, DropPlayerItem, (const char *pszItemName), pszItemName)
// DropPlayerItem - drop the named item, or if no name, the active item. // DropPlayerItem - drop the named item, or if no name, the active item.
void EXT_FUNC CBasePlayer::__API_HOOK(DropPlayerItem)(const char *pszItemName) void EXT_FUNC CBasePlayer::__API_HOOK(DropPlayerItem)(const char *pszItemName)
@ -7840,7 +7848,7 @@ void CDeadHEV::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
CBaseMonster::KeyValue(pkvd); CBaseMonster::KeyValue(pkvd);
} }
LINK_ENTITY_TO_CLASS(monster_hevsuit_dead, CDeadHEV, CCSDeadHEV); LINK_ENTITY_TO_CLASS(monster_hevsuit_dead, CDeadHEV, CCSDeadHEV)
void CDeadHEV::__MAKE_VHOOK(Spawn)() void CDeadHEV::__MAKE_VHOOK(Spawn)()
{ {
@ -7868,7 +7876,7 @@ void CDeadHEV::__MAKE_VHOOK(Spawn)()
MonsterInitDead(); MonsterInitDead();
} }
LINK_ENTITY_TO_CLASS(player_weaponstrip, CStripWeapons, CCSStripWeapons); LINK_ENTITY_TO_CLASS(player_weaponstrip, CStripWeapons, CCSStripWeapons)
void CStripWeapons::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) void CStripWeapons::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
{ {
@ -7889,8 +7897,8 @@ void CStripWeapons::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCal
} }
} }
LINK_ENTITY_TO_CLASS(player_loadsaved, CRevertSaved, CCSRevertSaved); LINK_ENTITY_TO_CLASS(player_loadsaved, CRevertSaved, CCSRevertSaved)
IMPLEMENT_SAVERESTORE(CRevertSaved, CPointEntity); IMPLEMENT_SAVERESTORE(CRevertSaved, CPointEntity)
void CRevertSaved::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CRevertSaved::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -7967,7 +7975,7 @@ void CInfoIntermission::__MAKE_VHOOK(Think)()
} }
} }
LINK_ENTITY_TO_CLASS(info_intermission, CInfoIntermission, CCSInfoIntermission); LINK_ENTITY_TO_CLASS(info_intermission, CInfoIntermission, CCSInfoIntermission)
void CBasePlayer::StudioEstimateGait() void CBasePlayer::StudioEstimateGait()
{ {
@ -9447,7 +9455,7 @@ void CBasePlayer::TeamChangeUpdate()
} }
} }
LINK_HOOK_CLASS_CHAIN(bool, CBasePlayer, HasRestrictItem, (ItemID item, ItemRestType type), item, type); LINK_HOOK_CLASS_CHAIN(bool, CBasePlayer, HasRestrictItem, (ItemID item, ItemRestType type), item, type)
bool EXT_FUNC CBasePlayer::__API_HOOK(HasRestrictItem)(ItemID item, ItemRestType type) { bool EXT_FUNC CBasePlayer::__API_HOOK(HasRestrictItem)(ItemID item, ItemRestType type) {
return false; return false;
@ -9550,7 +9558,7 @@ void CBasePlayer::UpdateOnRemove()
} }
#endif #endif
LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, OnSpawnEquip, (bool addDefault, bool equipGame), addDefault, equipGame); LINK_HOOK_CLASS_VOID_CHAIN(CBasePlayer, OnSpawnEquip, (bool addDefault, bool equipGame), addDefault, equipGame)
void EXT_FUNC CBasePlayer::__API_HOOK(OnSpawnEquip)(bool addDefault, bool equipGame) void EXT_FUNC CBasePlayer::__API_HOOK(OnSpawnEquip)(bool addDefault, bool equipGame)
{ {
@ -9587,7 +9595,7 @@ void CBasePlayer::HideTimer()
MESSAGE_END(); MESSAGE_END();
} }
LINK_HOOK_CLASS_CHAIN2(bool, CBasePlayer, MakeBomber); LINK_HOOK_CLASS_CHAIN2(bool, CBasePlayer, MakeBomber)
bool EXT_FUNC CBasePlayer::__API_HOOK(MakeBomber)() bool EXT_FUNC CBasePlayer::__API_HOOK(MakeBomber)()
{ {
@ -9612,7 +9620,7 @@ bool EXT_FUNC CBasePlayer::__API_HOOK(MakeBomber)()
return true; return true;
} }
LINK_HOOK_CLASS_CHAIN2(bool, CBasePlayer, GetIntoGame); LINK_HOOK_CLASS_CHAIN2(bool, CBasePlayer, GetIntoGame)
bool EXT_FUNC CBasePlayer::__API_HOOK(GetIntoGame)() bool EXT_FUNC CBasePlayer::__API_HOOK(GetIntoGame)()
{ {

View File

@ -79,8 +79,8 @@ sentenceg rgsentenceg[CSENTENCEG_MAX];
char grgszTextureName[CTEXTURESMAX][CBTEXTURENAMEMAX]; char grgszTextureName[CTEXTURESMAX][CBTEXTURENAMEMAX];
char grgchTextureType[CTEXTURESMAX]; char grgchTextureType[CTEXTURESMAX];
LINK_ENTITY_TO_CLASS(ambient_generic, CAmbientGeneric, CCSAmbientGeneric); LINK_ENTITY_TO_CLASS(ambient_generic, CAmbientGeneric, CCSAmbientGeneric)
IMPLEMENT_SAVERESTORE(CAmbientGeneric, CBaseEntity); IMPLEMENT_SAVERESTORE(CAmbientGeneric, CBaseEntity)
// -1 : "Default" // -1 : "Default"
// 0 : "Everywhere" // 0 : "Everywhere"
@ -854,8 +854,8 @@ void CAmbientGeneric::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
CBaseEntity::KeyValue(pkvd); CBaseEntity::KeyValue(pkvd);
} }
LINK_ENTITY_TO_CLASS(env_sound, CEnvSound, CCSEnvSound); LINK_ENTITY_TO_CLASS(env_sound, CEnvSound, CCSEnvSound)
IMPLEMENT_SAVERESTORE(CEnvSound, CBaseEntity); IMPLEMENT_SAVERESTORE(CEnvSound, CBaseEntity)
void CEnvSound::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CEnvSound::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -1815,8 +1815,8 @@ float TEXTURETYPE_PlaySound(TraceResult *ptr, Vector vecSrc, Vector vecEnd, int
return fvolbar; return fvolbar;
} }
LINK_ENTITY_TO_CLASS(speaker, CSpeaker, CCSSpeaker); LINK_ENTITY_TO_CLASS(speaker, CSpeaker, CCSSpeaker)
IMPLEMENT_SAVERESTORE(CSpeaker, CBaseEntity); IMPLEMENT_SAVERESTORE(CSpeaker, CBaseEntity)
// ambient_generic - general-purpose user-defined static sound // ambient_generic - general-purpose user-defined static sound
void CSpeaker::__MAKE_VHOOK(Spawn)() void CSpeaker::__MAKE_VHOOK(Spawn)()

View File

@ -9,7 +9,7 @@ CSoundEnt *pSoundEnt = NULL;
#endif #endif
LINK_ENTITY_TO_CLASS(soundent, CSoundEnt, CCSSoundEnt); LINK_ENTITY_TO_CLASS(soundent, CSoundEnt, CCSSoundEnt)
// CSound - Clear - zeros all fields for a sound // CSound - Clear - zeros all fields for a sound
void CSound::Clear() void CSound::Clear()

View File

@ -50,15 +50,15 @@ void CNullEntity::__MAKE_VHOOK(Spawn)()
REMOVE_ENTITY(ENT(pev)); REMOVE_ENTITY(ENT(pev));
} }
LINK_ENTITY_TO_CLASS(info_null, CNullEntity, CCSNullEntity); LINK_ENTITY_TO_CLASS(info_null, CNullEntity, CCSNullEntity)
// These are the new entry points to entities. // These are the new entry points to entities.
LINK_ENTITY_TO_CLASS(info_player_deathmatch, CBaseDMStart, CCSDMStart); LINK_ENTITY_TO_CLASS(info_player_deathmatch, CBaseDMStart, CCSDMStart)
LINK_ENTITY_TO_CLASS(info_player_start, CPointEntity, CCSPointEntity); LINK_ENTITY_TO_CLASS(info_player_start, CPointEntity, CCSPointEntity)
LINK_ENTITY_TO_CLASS(info_vip_start, CBaseDMStart, CCSDMStart); LINK_ENTITY_TO_CLASS(info_vip_start, CBaseDMStart, CCSDMStart)
LINK_ENTITY_TO_CLASS(info_landmark, CPointEntity, CCSPointEntity); LINK_ENTITY_TO_CLASS(info_landmark, CPointEntity, CCSPointEntity)
LINK_ENTITY_TO_CLASS(info_hostage_rescue, CPointEntity, CCSPointEntity); LINK_ENTITY_TO_CLASS(info_hostage_rescue, CPointEntity, CCSPointEntity)
LINK_ENTITY_TO_CLASS(info_bomb_target, CPointEntity, CCSPointEntity); LINK_ENTITY_TO_CLASS(info_bomb_target, CPointEntity, CCSPointEntity)
void CBaseDMStart::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CBaseDMStart::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -123,7 +123,7 @@ void CBaseEntity::SUB_DoNothing()
; ;
} }
IMPLEMENT_SAVERESTORE(CBaseDelay, CBaseEntity); IMPLEMENT_SAVERESTORE(CBaseDelay, CBaseEntity)
void CBaseDelay::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CBaseDelay::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -182,7 +182,7 @@ void FireTargets(const char *targetName, CBaseEntity *pActivator, CBaseEntity *p
} }
} }
LINK_ENTITY_TO_CLASS(DelayedUse, CBaseDelay, CCSDelay); LINK_ENTITY_TO_CLASS(DelayedUse, CBaseDelay, CCSDelay)
void CBaseDelay::SUB_UseTargets(CBaseEntity *pActivator, USE_TYPE useType, float value) void CBaseDelay::SUB_UseTargets(CBaseEntity *pActivator, USE_TYPE useType, float value)
{ {
@ -287,7 +287,7 @@ void CBaseDelay::DelayThink()
REMOVE_ENTITY(ENT(pev)); REMOVE_ENTITY(ENT(pev));
} }
IMPLEMENT_SAVERESTORE(CBaseToggle, CBaseAnimating); IMPLEMENT_SAVERESTORE(CBaseToggle, CBaseAnimating)
void CBaseToggle::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CBaseToggle::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {

View File

@ -310,8 +310,8 @@ void CHalfLifeTraining::__MAKE_VHOOK(CheckWinConditions)()
} }
} }
IMPLEMENT_SAVERESTORE(CBaseGrenCatch, CBaseEntity); IMPLEMENT_SAVERESTORE(CBaseGrenCatch, CBaseEntity)
LINK_ENTITY_TO_CLASS(func_grencatch, CBaseGrenCatch, CCSGrenCatch); LINK_ENTITY_TO_CLASS(func_grencatch, CBaseGrenCatch, CCSGrenCatch)
void CBaseGrenCatch::__MAKE_VHOOK(Spawn)() void CBaseGrenCatch::__MAKE_VHOOK(Spawn)()
{ {
@ -439,8 +439,8 @@ void CFuncWeaponCheck::__MAKE_VHOOK(Spawn)()
SET_MODEL(ENT(pev), STRING(pev->model)); SET_MODEL(ENT(pev), STRING(pev->model));
} }
IMPLEMENT_SAVERESTORE(CFuncWeaponCheck, CBaseEntity); IMPLEMENT_SAVERESTORE(CFuncWeaponCheck, CBaseEntity)
LINK_ENTITY_TO_CLASS(func_weaponcheck, CFuncWeaponCheck, CCSFuncWeaponCheck); LINK_ENTITY_TO_CLASS(func_weaponcheck, CFuncWeaponCheck, CCSFuncWeaponCheck)
void CFuncWeaponCheck::__MAKE_VHOOK(Touch)(CBaseEntity *pOther) void CFuncWeaponCheck::__MAKE_VHOOK(Touch)(CBaseEntity *pOther)
{ {

View File

@ -68,8 +68,8 @@ TYPEDESCRIPTION CTriggerCamera::m_SaveData[] =
char st_szNextMap[cchMapNameMost]; char st_szNextMap[cchMapNameMost];
char st_szNextSpot[cchMapNameMost]; char st_szNextSpot[cchMapNameMost];
LINK_ENTITY_TO_CLASS(func_friction, CFrictionModifier, CCSFrictionModifier); LINK_ENTITY_TO_CLASS(func_friction, CFrictionModifier, CCSFrictionModifier)
IMPLEMENT_SAVERESTORE(CFrictionModifier, CBaseEntity); IMPLEMENT_SAVERESTORE(CFrictionModifier, CBaseEntity)
void CFrictionModifier::__MAKE_VHOOK(Spawn)() void CFrictionModifier::__MAKE_VHOOK(Spawn)()
{ {
@ -103,8 +103,8 @@ void CFrictionModifier::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
CBaseEntity::KeyValue(pkvd); CBaseEntity::KeyValue(pkvd);
} }
LINK_ENTITY_TO_CLASS(trigger_auto, CAutoTrigger, CCSAutoTrigger); LINK_ENTITY_TO_CLASS(trigger_auto, CAutoTrigger, CCSAutoTrigger)
IMPLEMENT_SAVERESTORE(CAutoTrigger, CBaseDelay); IMPLEMENT_SAVERESTORE(CAutoTrigger, CBaseDelay)
void CAutoTrigger::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CAutoTrigger::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -171,8 +171,8 @@ void CAutoTrigger::Restart()
} }
#endif #endif
LINK_ENTITY_TO_CLASS(trigger_relay, CTriggerRelay, CCSTriggerRelay); LINK_ENTITY_TO_CLASS(trigger_relay, CTriggerRelay, CCSTriggerRelay)
IMPLEMENT_SAVERESTORE(CTriggerRelay, CBaseDelay); IMPLEMENT_SAVERESTORE(CTriggerRelay, CBaseDelay)
void CTriggerRelay::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CTriggerRelay::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -211,8 +211,8 @@ void CTriggerRelay::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *pCal
} }
} }
LINK_ENTITY_TO_CLASS(multi_manager, CMultiManager, CCSMultiManager); LINK_ENTITY_TO_CLASS(multi_manager, CMultiManager, CCSMultiManager)
IMPLEMENT_SAVERESTORE(CMultiManager, CBaseToggle); IMPLEMENT_SAVERESTORE(CMultiManager, CBaseToggle)
void CMultiManager::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CMultiManager::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -396,7 +396,7 @@ void CMultiManager::ManagerUse(CBaseEntity *pActivator, CBaseEntity *pCaller, US
pev->nextthink = gpGlobals->time; pev->nextthink = gpGlobals->time;
} }
LINK_ENTITY_TO_CLASS(env_render, CRenderFxManager, CCSRenderFxManager); LINK_ENTITY_TO_CLASS(env_render, CRenderFxManager, CCSRenderFxManager)
void CRenderFxManager::__MAKE_VHOOK(Spawn)() void CRenderFxManager::__MAKE_VHOOK(Spawn)()
{ {
@ -430,7 +430,7 @@ void CRenderFxManager::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntity *p
} }
} }
LINK_ENTITY_TO_CLASS(trigger, CBaseTrigger, CCSTrigger); LINK_ENTITY_TO_CLASS(trigger, CBaseTrigger, CCSTrigger)
void CBaseTrigger::InitTrigger() void CBaseTrigger::InitTrigger()
{ {
@ -475,7 +475,7 @@ void CBaseTrigger::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
CBaseToggle::KeyValue(pkvd); CBaseToggle::KeyValue(pkvd);
} }
LINK_ENTITY_TO_CLASS(trigger_monsterjump, CTriggerMonsterJump, CCSTriggerMonsterJump); LINK_ENTITY_TO_CLASS(trigger_monsterjump, CTriggerMonsterJump, CCSTriggerMonsterJump)
void CTriggerMonsterJump::__MAKE_VHOOK(Spawn)() void CTriggerMonsterJump::__MAKE_VHOOK(Spawn)()
{ {
@ -532,7 +532,7 @@ void CTriggerMonsterJump::__MAKE_VHOOK(Touch)(CBaseEntity *pOther)
pev->nextthink = gpGlobals->time; pev->nextthink = gpGlobals->time;
} }
LINK_ENTITY_TO_CLASS(trigger_cdaudio, CTriggerCDAudio, CCSTriggerCDAudio); LINK_ENTITY_TO_CLASS(trigger_cdaudio, CTriggerCDAudio, CCSTriggerCDAudio)
// Changes tracks or stops CD when player touches // Changes tracks or stops CD when player touches
// HACK: overloaded HEALTH to avoid adding new field // HACK: overloaded HEALTH to avoid adding new field
@ -635,7 +635,7 @@ void CTriggerCDAudio::PlayTrack()
UTIL_Remove(this); UTIL_Remove(this);
} }
LINK_ENTITY_TO_CLASS(target_cdaudio, CTargetCDAudio, CCSTargetCDAudio); LINK_ENTITY_TO_CLASS(target_cdaudio, CTargetCDAudio, CCSTargetCDAudio)
void CTargetCDAudio::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CTargetCDAudio::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -688,7 +688,7 @@ void CTargetCDAudio::Play()
UTIL_Remove(this); UTIL_Remove(this);
} }
LINK_ENTITY_TO_CLASS(trigger_hurt, CTriggerHurt, CCSTriggerHurt); LINK_ENTITY_TO_CLASS(trigger_hurt, CTriggerHurt, CCSTriggerHurt)
void CTriggerHurt::__MAKE_VHOOK(Spawn)() void CTriggerHurt::__MAKE_VHOOK(Spawn)()
{ {
@ -927,7 +927,7 @@ void CBaseTrigger::HurtTouch(CBaseEntity *pOther)
} }
} }
LINK_ENTITY_TO_CLASS(trigger_multiple, CTriggerMultiple, CCSTriggerMultiple); LINK_ENTITY_TO_CLASS(trigger_multiple, CTriggerMultiple, CCSTriggerMultiple)
void CTriggerMultiple::__MAKE_VHOOK(Spawn)() void CTriggerMultiple::__MAKE_VHOOK(Spawn)()
{ {
@ -961,7 +961,7 @@ void CTriggerMultiple::__MAKE_VHOOK(Spawn)()
} }
} }
LINK_ENTITY_TO_CLASS(trigger_once, CTriggerOnce, CCSTriggerOnce); LINK_ENTITY_TO_CLASS(trigger_once, CTriggerOnce, CCSTriggerOnce)
void CTriggerOnce::__MAKE_VHOOK(Spawn)() void CTriggerOnce::__MAKE_VHOOK(Spawn)()
{ {
@ -1099,7 +1099,7 @@ void CBaseTrigger::CounterUse(CBaseEntity *pActivator, CBaseEntity *pCaller, USE
ActivateMultiTrigger(m_hActivator); ActivateMultiTrigger(m_hActivator);
} }
LINK_ENTITY_TO_CLASS(trigger_counter, CTriggerCounter, CCSTriggerCounter); LINK_ENTITY_TO_CLASS(trigger_counter, CTriggerCounter, CCSTriggerCounter)
void CTriggerCounter::__MAKE_VHOOK(Spawn)() void CTriggerCounter::__MAKE_VHOOK(Spawn)()
{ {
@ -1115,7 +1115,7 @@ void CTriggerCounter::__MAKE_VHOOK(Spawn)()
SetUse(&CTriggerCounter::CounterUse); SetUse(&CTriggerCounter::CounterUse);
} }
LINK_ENTITY_TO_CLASS(trigger_transition, CTriggerVolume, CCSTriggerVolume); LINK_ENTITY_TO_CLASS(trigger_transition, CTriggerVolume, CCSTriggerVolume)
// Define space that travels across a level transition // Define space that travels across a level transition
void CTriggerVolume::__MAKE_VHOOK(Spawn)() void CTriggerVolume::__MAKE_VHOOK(Spawn)()
@ -1130,7 +1130,7 @@ void CTriggerVolume::__MAKE_VHOOK(Spawn)()
pev->modelindex = 0; pev->modelindex = 0;
} }
LINK_ENTITY_TO_CLASS(fireanddie, CFireAndDie, CCSFireAndDie); LINK_ENTITY_TO_CLASS(fireanddie, CFireAndDie, CCSFireAndDie)
void CFireAndDie::__MAKE_VHOOK(Spawn)() void CFireAndDie::__MAKE_VHOOK(Spawn)()
{ {
@ -1149,8 +1149,8 @@ void CFireAndDie::__MAKE_VHOOK(Think)()
UTIL_Remove(this); UTIL_Remove(this);
} }
LINK_ENTITY_TO_CLASS(trigger_changelevel, CChangeLevel, CCSChangeLevel); LINK_ENTITY_TO_CLASS(trigger_changelevel, CChangeLevel, CCSChangeLevel)
IMPLEMENT_SAVERESTORE(CChangeLevel, CBaseTrigger); IMPLEMENT_SAVERESTORE(CChangeLevel, CBaseTrigger)
// Cache user-entity-field values until spawn is called. // Cache user-entity-field values until spawn is called.
void CChangeLevel::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CChangeLevel::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
@ -1529,7 +1529,7 @@ NOXREF void NextLevel()
} }
} }
LINK_ENTITY_TO_CLASS(func_ladder, CLadder, CCSLadder); LINK_ENTITY_TO_CLASS(func_ladder, CLadder, CCSLadder)
void CLadder::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CLadder::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -1561,7 +1561,7 @@ void CLadder::__MAKE_VHOOK(Spawn)()
pev->movetype = MOVETYPE_PUSH; pev->movetype = MOVETYPE_PUSH;
} }
LINK_ENTITY_TO_CLASS(trigger_push, CTriggerPush, CCSTriggerPush); LINK_ENTITY_TO_CLASS(trigger_push, CTriggerPush, CCSTriggerPush)
void CTriggerPush::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CTriggerPush::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -1702,7 +1702,7 @@ void CBaseTrigger::TeleportTouch(CBaseEntity *pOther)
pevToucher->velocity = pevToucher->basevelocity = g_vecZero; pevToucher->velocity = pevToucher->basevelocity = g_vecZero;
} }
LINK_ENTITY_TO_CLASS(trigger_teleport, CTriggerTeleport, CCSTriggerTeleport); LINK_ENTITY_TO_CLASS(trigger_teleport, CTriggerTeleport, CCSTriggerTeleport)
void CTriggerTeleport::__MAKE_VHOOK(Spawn)() void CTriggerTeleport::__MAKE_VHOOK(Spawn)()
{ {
@ -1710,8 +1710,8 @@ void CTriggerTeleport::__MAKE_VHOOK(Spawn)()
SetTouch(&CTriggerTeleport::TeleportTouch); SetTouch(&CTriggerTeleport::TeleportTouch);
} }
LINK_ENTITY_TO_CLASS(info_teleport_destination, CPointEntity, CCSPointEntity); LINK_ENTITY_TO_CLASS(info_teleport_destination, CPointEntity, CCSPointEntity)
LINK_ENTITY_TO_CLASS(func_buyzone, CBuyZone, CCSBuyZone); LINK_ENTITY_TO_CLASS(func_buyzone, CBuyZone, CCSBuyZone)
void CBuyZone::__MAKE_VHOOK(Spawn)() void CBuyZone::__MAKE_VHOOK(Spawn)()
{ {
@ -1738,7 +1738,7 @@ void CBuyZone::BuyTouch(CBaseEntity *pOther)
} }
} }
LINK_ENTITY_TO_CLASS(func_bomb_target, CBombTarget, CCSBombTarget); LINK_ENTITY_TO_CLASS(func_bomb_target, CBombTarget, CCSBombTarget)
void CBombTarget::__MAKE_VHOOK(Spawn)() void CBombTarget::__MAKE_VHOOK(Spawn)()
{ {
@ -1767,7 +1767,7 @@ void CBombTarget::BombTargetUse(CBaseEntity *pActivator, CBaseEntity *pCaller, U
SUB_UseTargets(NULL, USE_TOGGLE, 0); SUB_UseTargets(NULL, USE_TOGGLE, 0);
} }
LINK_ENTITY_TO_CLASS(func_hostage_rescue, CHostageRescue, CCSHostageRescue); LINK_ENTITY_TO_CLASS(func_hostage_rescue, CHostageRescue, CCSHostageRescue)
void CHostageRescue::__MAKE_VHOOK(Spawn)() void CHostageRescue::__MAKE_VHOOK(Spawn)()
{ {
@ -1788,7 +1788,7 @@ void CHostageRescue::HostageRescueTouch(CBaseEntity *pOther)
} }
} }
LINK_ENTITY_TO_CLASS(func_escapezone, CEscapeZone, CCSEscapeZone); LINK_ENTITY_TO_CLASS(func_escapezone, CEscapeZone, CCSEscapeZone)
void CEscapeZone::__MAKE_VHOOK(Spawn)() void CEscapeZone::__MAKE_VHOOK(Spawn)()
{ {
@ -1833,7 +1833,7 @@ void CEscapeZone::EscapeTouch(CBaseEntity *pOther)
} }
} }
LINK_ENTITY_TO_CLASS(func_vip_safetyzone, CVIP_SafetyZone, CCSVIP_SafetyZone); LINK_ENTITY_TO_CLASS(func_vip_safetyzone, CVIP_SafetyZone, CCSVIP_SafetyZone)
void CVIP_SafetyZone::__MAKE_VHOOK(Spawn)() void CVIP_SafetyZone::__MAKE_VHOOK(Spawn)()
{ {
@ -1861,7 +1861,7 @@ void CVIP_SafetyZone::VIP_SafetyTouch(CBaseEntity *pOther)
} }
} }
LINK_ENTITY_TO_CLASS(trigger_autosave, CTriggerSave, CCSTriggerSave); LINK_ENTITY_TO_CLASS(trigger_autosave, CTriggerSave, CCSTriggerSave)
void CTriggerSave::__MAKE_VHOOK(Spawn)() void CTriggerSave::__MAKE_VHOOK(Spawn)()
{ {
@ -1889,7 +1889,7 @@ void CTriggerSave::SaveTouch(CBaseEntity *pOther)
SERVER_COMMAND("autosave\n"); SERVER_COMMAND("autosave\n");
} }
LINK_ENTITY_TO_CLASS(trigger_endsection, CTriggerEndSection, CCSTriggerEndSection); LINK_ENTITY_TO_CLASS(trigger_endsection, CTriggerEndSection, CCSTriggerEndSection)
void CTriggerEndSection::EndSectionUse(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) void CTriggerEndSection::EndSectionUse(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
{ {
@ -1951,7 +1951,7 @@ void CTriggerEndSection::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
CBaseTrigger::KeyValue(pkvd); CBaseTrigger::KeyValue(pkvd);
} }
LINK_ENTITY_TO_CLASS(trigger_gravity, CTriggerGravity, CCSTriggerGravity); LINK_ENTITY_TO_CLASS(trigger_gravity, CTriggerGravity, CCSTriggerGravity)
void CTriggerGravity::__MAKE_VHOOK(Spawn)() void CTriggerGravity::__MAKE_VHOOK(Spawn)()
{ {
@ -1968,8 +1968,8 @@ void CTriggerGravity::GravityTouch(CBaseEntity *pOther)
pOther->pev->gravity = pev->gravity; pOther->pev->gravity = pev->gravity;
} }
LINK_ENTITY_TO_CLASS(trigger_changetarget, CTriggerChangeTarget, CCSTriggerChangeTarget); LINK_ENTITY_TO_CLASS(trigger_changetarget, CTriggerChangeTarget, CCSTriggerChangeTarget)
IMPLEMENT_SAVERESTORE(CTriggerChangeTarget, CBaseDelay); IMPLEMENT_SAVERESTORE(CTriggerChangeTarget, CBaseDelay)
void CTriggerChangeTarget::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CTriggerChangeTarget::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -2004,8 +2004,8 @@ void CTriggerChangeTarget::__MAKE_VHOOK(Use)(CBaseEntity *pActivator, CBaseEntit
} }
} }
LINK_ENTITY_TO_CLASS(trigger_camera, CTriggerCamera, CCSTriggerCamera); LINK_ENTITY_TO_CLASS(trigger_camera, CTriggerCamera, CCSTriggerCamera)
IMPLEMENT_SAVERESTORE(CTriggerCamera, CBaseDelay); IMPLEMENT_SAVERESTORE(CTriggerCamera, CBaseDelay)
void CTriggerCamera::__MAKE_VHOOK(Spawn)() void CTriggerCamera::__MAKE_VHOOK(Spawn)()
{ {
@ -2272,10 +2272,10 @@ void CTriggerCamera::Move()
pev->velocity = ((pev->movedir * pev->speed) * fraction) + (pev->velocity * (1 - fraction)); pev->velocity = ((pev->movedir * pev->speed) * fraction) + (pev->velocity * (1 - fraction));
} }
LINK_ENTITY_TO_CLASS(env_snow, CWeather, CCSWeather); LINK_ENTITY_TO_CLASS(env_snow, CWeather, CCSWeather)
LINK_ENTITY_TO_CLASS(func_snow, CWeather, CCSWeather); LINK_ENTITY_TO_CLASS(func_snow, CWeather, CCSWeather)
LINK_ENTITY_TO_CLASS(env_rain, CWeather, CCSWeather); LINK_ENTITY_TO_CLASS(env_rain, CWeather, CCSWeather)
LINK_ENTITY_TO_CLASS(func_rain, CWeather, CCSWeather); LINK_ENTITY_TO_CLASS(func_rain, CWeather, CCSWeather)
void CWeather::__MAKE_VHOOK(Spawn)() void CWeather::__MAKE_VHOOK(Spawn)()
{ {
@ -2318,4 +2318,4 @@ void CClientFog::__MAKE_VHOOK(Spawn)()
pev->rendermode = kRenderTransTexture; pev->rendermode = kRenderTransTexture;
} }
LINK_ENTITY_TO_CLASS(env_fog, CClientFog, CCSClientFog); LINK_ENTITY_TO_CLASS(env_fog, CClientFog, CCSClientFog)

View File

@ -12,7 +12,7 @@ CBaseTutorStateSystem::~CBaseTutorStateSystem()
int CBaseTutorStateSystem::GetCurrentStateType() const int CBaseTutorStateSystem::GetCurrentStateType() const
{ {
if (m_currentState != NULL) if (m_currentState)
{ {
return m_currentState->GetType(); return m_currentState->GetType();
} }

View File

@ -228,7 +228,7 @@ void CBaseTutor::DisplayNewStateDescriptionToPlayer()
{ {
CBasePlayer *localPlayer = UTIL_GetLocalPlayer(); CBasePlayer *localPlayer = UTIL_GetLocalPlayer();
if (localPlayer == NULL) if (!localPlayer)
return; return;
char *desc = m_stateSystem->GetCurrentStateString(); char *desc = m_stateSystem->GetCurrentStateString();
@ -260,7 +260,7 @@ void CBaseTutor::CalculatePathForObjective(CBaseEntity *player)
bool CBaseTutor::__MAKE_VHOOK(IsEntityInViewOfPlayer)(CBaseEntity *entity, CBasePlayer *player) bool CBaseTutor::__MAKE_VHOOK(IsEntityInViewOfPlayer)(CBaseEntity *entity, CBasePlayer *player)
{ {
if (entity == NULL || player == NULL) if (!entity || !player)
return false; return false;
if (cv_tutor_view_distance.value < (entity->pev->origin - player->pev->origin).Length()) if (cv_tutor_view_distance.value < (entity->pev->origin - player->pev->origin).Length())
@ -284,7 +284,7 @@ bool CBaseTutor::__MAKE_VHOOK(IsEntityInViewOfPlayer)(CBaseEntity *entity, CBase
bool CBaseTutor::__MAKE_VHOOK(IsPlayerLookingAtPosition)(Vector *origin, CBasePlayer *player) bool CBaseTutor::__MAKE_VHOOK(IsPlayerLookingAtPosition)(Vector *origin, CBasePlayer *player)
{ {
if (origin == NULL || player == NULL) if (!origin || !player)
return false; return false;
if (cv_tutor_look_distance.value < (*origin - player->pev->origin).Length()) if (cv_tutor_look_distance.value < (*origin - player->pev->origin).Length())
@ -306,7 +306,7 @@ bool CBaseTutor::__MAKE_VHOOK(IsPlayerLookingAtPosition)(Vector *origin, CBasePl
bool CBaseTutor::__MAKE_VHOOK(IsPlayerLookingAtEntity)(CBaseEntity *entity, CBasePlayer *player) bool CBaseTutor::__MAKE_VHOOK(IsPlayerLookingAtEntity)(CBaseEntity *entity, CBasePlayer *player)
{ {
if (entity == NULL || player == NULL) if (!entity || !player)
return false; return false;
UTIL_MakeVectors(player->pev->v_angle); UTIL_MakeVectors(player->pev->v_angle);
@ -330,7 +330,7 @@ bool CBaseTutor::__MAKE_VHOOK(IsPlayerLookingAtEntity)(CBaseEntity *entity, CBas
bool CBaseTutor::__MAKE_VHOOK(IsBombsiteInViewOfPlayer)(CBaseEntity *entity, CBasePlayer *player) bool CBaseTutor::__MAKE_VHOOK(IsBombsiteInViewOfPlayer)(CBaseEntity *entity, CBasePlayer *player)
{ {
if (entity == NULL || player == NULL) if (!entity || !player)
return false; return false;
Vector bombSiteCenter = (entity->pev->absmax + entity->pev->absmin) * 0.5f; Vector bombSiteCenter = (entity->pev->absmax + entity->pev->absmin) * 0.5f;
@ -356,7 +356,7 @@ bool CBaseTutor::__MAKE_VHOOK(IsBombsiteInViewOfPlayer)(CBaseEntity *entity, CBa
bool CBaseTutor::__MAKE_VHOOK(IsEntityInBombsite)(CBaseEntity *bombsite, CBaseEntity *entity) bool CBaseTutor::__MAKE_VHOOK(IsEntityInBombsite)(CBaseEntity *bombsite, CBaseEntity *entity)
{ {
if (bombsite == NULL || entity == NULL) if (!bombsite || !entity)
return false; return false;
if (entity->pev->origin.x <= bombsite->pev->absmax.x if (entity->pev->origin.x <= bombsite->pev->absmax.x
@ -380,7 +380,7 @@ bool CBaseTutor::DoMessagesHaveSameID(int id1, int id2)
TutorMessage *message1 = GetTutorMessageDefinition(id1); TutorMessage *message1 = GetTutorMessageDefinition(id1);
TutorMessage *message2 = GetTutorMessageDefinition(id2); TutorMessage *message2 = GetTutorMessageDefinition(id2);
if (message1 == NULL || message2 == NULL) if (!message1 || !message2)
return false; return false;
if (message1->m_duplicateID && message2->m_duplicateID) if (message1->m_duplicateID && message2->m_duplicateID)

View File

@ -38,21 +38,21 @@ CCSTutorStateSystem::CCSTutorStateSystem()
CCSTutorStateSystem::~CCSTutorStateSystem() CCSTutorStateSystem::~CCSTutorStateSystem()
{ {
if (m_currentState != NULL) if (m_currentState)
{ {
delete m_currentState; delete m_currentState;
m_currentState = NULL; m_currentState = nullptr;
} }
} }
bool CCSTutorStateSystem::__MAKE_VHOOK(UpdateState)(GameEventType event, CBaseEntity *entity, CBaseEntity *other) bool CCSTutorStateSystem::__MAKE_VHOOK(UpdateState)(GameEventType event, CBaseEntity *entity, CBaseEntity *other)
{ {
if (m_currentState == NULL) if (m_currentState == nullptr)
{ {
m_currentState = new CCSTutorUndefinedState; m_currentState = new CCSTutorUndefinedState;
} }
if (m_currentState != NULL) if (m_currentState)
{ {
TutorStateType nextStateType = static_cast<TutorStateType>(m_currentState->CheckForStateTransition(event, entity, other)); TutorStateType nextStateType = static_cast<TutorStateType>(m_currentState->CheckForStateTransition(event, entity, other));
@ -69,7 +69,7 @@ bool CCSTutorStateSystem::__MAKE_VHOOK(UpdateState)(GameEventType event, CBaseEn
char *CCSTutorStateSystem::__MAKE_VHOOK(GetCurrentStateString)() char *CCSTutorStateSystem::__MAKE_VHOOK(GetCurrentStateString)()
{ {
if (m_currentState != NULL) if (m_currentState)
{ {
return m_currentState->GetStateString(); return m_currentState->GetStateString();
} }
@ -113,11 +113,10 @@ int CCSTutorUndefinedState::HandlePlayerSpawned(CBaseEntity *entity, CBaseEntity
{ {
CBasePlayer *localPlayer = UTIL_GetLocalPlayer(); CBasePlayer *localPlayer = UTIL_GetLocalPlayer();
if (localPlayer != NULL) if (localPlayer)
{ {
CBasePlayer *player = static_cast<CBasePlayer *>(entity); CBasePlayer *player = static_cast<CBasePlayer *>(entity);
if (player && player->IsPlayer() && player == localPlayer)
if (player != NULL && player->IsPlayer() && player == localPlayer)
{ {
// flags // flags
return TUTOR_STATE_FLAG_1; return TUTOR_STATE_FLAG_1;
@ -164,11 +163,10 @@ int CCSTutorWaitingForStartState::HandlePlayerSpawned(CBaseEntity *entity, CBase
{ {
CBasePlayer *localPlayer = UTIL_GetLocalPlayer(); CBasePlayer *localPlayer = UTIL_GetLocalPlayer();
if (localPlayer != NULL) if (localPlayer)
{ {
CBasePlayer *player = static_cast<CBasePlayer *>(entity); CBasePlayer *player = static_cast<CBasePlayer *>(entity);
if (player && player->IsPlayer() && player == localPlayer)
if (player != NULL && player->IsPlayer() && player == localPlayer)
{ {
// flags // flags
return TUTOR_STATE_FLAG_1; return TUTOR_STATE_FLAG_1;

View File

@ -2467,7 +2467,7 @@ void NORETURN Sys_Error(const char *error, ...)
CONSOLE_ECHO("FATAL ERROR (shutting down): %s\n", text); CONSOLE_ECHO("FATAL ERROR (shutting down): %s\n", text);
//TerminateProcess(GetCurrentProcess(), 1); int *null = 0;
*((int *)NULL) = 0; *null = 0;
while (true); exit(-1);
} }

View File

@ -39,12 +39,12 @@
#define _LOG_TRACE\ #define _LOG_TRACE\
static int iNumPassed = 0;\ static int iNumPassed = 0;\
printf2(__FUNCTION__":: iNumPassed - %d", iNumPassed++); printf2("%s:: iNumPassed - %d", __FUNCTION__, iNumPassed++);
#define _LOG_TRACE2\ #define _LOG_TRACE2\
static int iNumPassedt = 0;\ static int iNumPassedt = 0;\
printf2(__FUNCTION__":: iNumPassed - %d", iNumPassedt++);\ printf2("%s:: iNumPassed - %d", __FUNCTION__, iNumPassedt++);\
_logf(__FUNCTION__":: iNumPassed - %d", iNumPassedt++); _logf("%s:: iNumPassed - %d", __FUNCTION__, iNumPassedt++);
// Makes these more explicit, and easier to find // Makes these more explicit, and easier to find
#ifdef HOOK_GAMEDLL #ifdef HOOK_GAMEDLL

View File

@ -41,8 +41,8 @@ void FixupAngles2(Vector &v)
v.z = Fix2(v.z); v.z = Fix2(v.z);
} }
IMPLEMENT_SAVERESTORE(CFuncVehicle, CBaseEntity); IMPLEMENT_SAVERESTORE(CFuncVehicle, CBaseEntity)
LINK_ENTITY_TO_CLASS(func_vehicle, CFuncVehicle, CCSFuncVehicle); LINK_ENTITY_TO_CLASS(func_vehicle, CFuncVehicle, CCSFuncVehicle)
void CFuncVehicle::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd) void CFuncVehicle::__MAKE_VHOOK(KeyValue)(KeyValueData *pkvd)
{ {
@ -943,7 +943,7 @@ void CFuncVehicle::__MAKE_VHOOK(Precache)()
m_usAdjustPitch = PRECACHE_EVENT(1, "events/vehicle.sc"); m_usAdjustPitch = PRECACHE_EVENT(1, "events/vehicle.sc");
} }
LINK_ENTITY_TO_CLASS(func_vehiclecontrols, CFuncVehicleControls, CCSFuncVehicleControls); LINK_ENTITY_TO_CLASS(func_vehiclecontrols, CFuncVehicleControls, CCSFuncVehicleControls)
void CFuncVehicleControls::Find() void CFuncVehicleControls::Find()
{ {

View File

@ -471,8 +471,8 @@ void W_Precache()
PRECACHE_SOUND("weapons/generic_reload.wav"); PRECACHE_SOUND("weapons/generic_reload.wav");
} }
IMPLEMENT_SAVERESTORE(CBasePlayerItem, CBaseAnimating); IMPLEMENT_SAVERESTORE(CBasePlayerItem, CBaseAnimating)
IMPLEMENT_SAVERESTORE(CBasePlayerWeapon, CBasePlayerItem); IMPLEMENT_SAVERESTORE(CBasePlayerWeapon, CBasePlayerItem)
void CBasePlayerItem::__MAKE_VHOOK(SetObjectCollisionBox)() void CBasePlayerItem::__MAKE_VHOOK(SetObjectCollisionBox)()
{ {
@ -1596,8 +1596,8 @@ float CBasePlayerWeapon::GetNextAttackDelay(float delay)
return flNextAttack; return flNextAttack;
} }
LINK_ENTITY_TO_CLASS(weaponbox, CWeaponBox, CCSWeaponBox); LINK_ENTITY_TO_CLASS(weaponbox, CWeaponBox, CCSWeaponBox)
IMPLEMENT_SAVERESTORE(CWeaponBox, CBaseEntity); IMPLEMENT_SAVERESTORE(CWeaponBox, CBaseEntity)
void CWeaponBox::__MAKE_VHOOK(Precache)() void CWeaponBox::__MAKE_VHOOK(Precache)()
{ {
@ -2440,7 +2440,7 @@ void CArmoury::__MAKE_VHOOK(SetObjectCollisionBox)()
} }
#endif #endif
LINK_ENTITY_TO_CLASS(armoury_entity, CArmoury, CCSArmoury); LINK_ENTITY_TO_CLASS(armoury_entity, CArmoury, CCSArmoury)
// true - keep the amount of bpammo // true - keep the amount of bpammo
// false - let take away bpammo // false - let take away bpammo

View File

@ -82,7 +82,7 @@ class CDecal: public CBaseEntity
void EXPORT TriggerDecal(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value); void EXPORT TriggerDecal(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
}; };
LINK_ENTITY_TO_CLASS(infodecal, CDecal, CCSDecal); LINK_ENTITY_TO_CLASS(infodecal, CDecal, CCSDecal)
void CDecal::Spawn() void CDecal::Spawn()
{ {
@ -175,7 +175,7 @@ class CCorpse: public CBaseEntity
virtual int ObjectCaps() { return FCAP_DONT_SAVE; } virtual int ObjectCaps() { return FCAP_DONT_SAVE; }
}; };
LINK_ENTITY_TO_CLASS(bodyque, CCorpse, CCSCorpse); LINK_ENTITY_TO_CLASS(bodyque, CCorpse, CCSCorpse)
static void InitBodyQue() static void InitBodyQue()
{ {
@ -412,7 +412,7 @@ void EXT_FUNC ResetGlobalState()
gInitHUD = TRUE; gInitHUD = TRUE;
} }
LINK_ENTITY_TO_CLASS(worldspawn, CWorld, CCSWorld); LINK_ENTITY_TO_CLASS(worldspawn, CWorld, CCSWorld)
void CWorld::__MAKE_VHOOK(Spawn)() void CWorld::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_ak47, CAK47, CCSAK47); LINK_ENTITY_TO_CLASS(weapon_ak47, CAK47, CCSAK47)
void CAK47::__MAKE_VHOOK(Spawn)() void CAK47::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_aug, CAUG, CCSAUG); LINK_ENTITY_TO_CLASS(weapon_aug, CAUG, CCSAUG)
void CAUG::__MAKE_VHOOK(Spawn)() void CAUG::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_awp, CAWP, CCSAWP); LINK_ENTITY_TO_CLASS(weapon_awp, CAWP, CCSAWP)
void CAWP::__MAKE_VHOOK(Spawn)() void CAWP::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_c4, CC4, CCSC4); LINK_ENTITY_TO_CLASS(weapon_c4, CC4, CCSC4)
void CC4::__MAKE_VHOOK(Spawn)() void CC4::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_deagle, CDEAGLE, CCSDEAGLE); LINK_ENTITY_TO_CLASS(weapon_deagle, CDEAGLE, CCSDEAGLE)
void CDEAGLE::__MAKE_VHOOK(Spawn)() void CDEAGLE::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_elite, CELITE, CCSELITE); LINK_ENTITY_TO_CLASS(weapon_elite, CELITE, CCSELITE)
void CELITE::__MAKE_VHOOK(Spawn)() void CELITE::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_famas, CFamas, CCSFamas); LINK_ENTITY_TO_CLASS(weapon_famas, CFamas, CCSFamas)
void CFamas::__MAKE_VHOOK(Spawn)() void CFamas::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_fiveseven, CFiveSeven, CCSFiveSeven); LINK_ENTITY_TO_CLASS(weapon_fiveseven, CFiveSeven, CCSFiveSeven)
void CFiveSeven::__MAKE_VHOOK(Spawn)() void CFiveSeven::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_flashbang, CFlashbang, CCSFlashbang); LINK_ENTITY_TO_CLASS(weapon_flashbang, CFlashbang, CCSFlashbang)
void CFlashbang::__MAKE_VHOOK(Spawn)() void CFlashbang::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_g3sg1, CG3SG1, CCSG3SG1); LINK_ENTITY_TO_CLASS(weapon_g3sg1, CG3SG1, CCSG3SG1)
void CG3SG1::__MAKE_VHOOK(Spawn)() void CG3SG1::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_galil, CGalil, CCSGalil); LINK_ENTITY_TO_CLASS(weapon_galil, CGalil, CCSGalil)
void CGalil::__MAKE_VHOOK(Spawn)() void CGalil::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_glock18, CGLOCK18, CCSGLOCK18); LINK_ENTITY_TO_CLASS(weapon_glock18, CGLOCK18, CCSGLOCK18)
void CGLOCK18::__MAKE_VHOOK(Spawn)() void CGLOCK18::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_hegrenade, CHEGrenade, CCSHEGrenade); LINK_ENTITY_TO_CLASS(weapon_hegrenade, CHEGrenade, CCSHEGrenade)
void CHEGrenade::__MAKE_VHOOK(Spawn)() void CHEGrenade::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_knife, CKnife, CCSKnife); LINK_ENTITY_TO_CLASS(weapon_knife, CKnife, CCSKnife)
void CKnife::__MAKE_VHOOK(Spawn)() void CKnife::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_m249, CM249, CCSM249); LINK_ENTITY_TO_CLASS(weapon_m249, CM249, CCSM249)
void CM249::__MAKE_VHOOK(Spawn)() void CM249::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_m3, CM3, CCSM3); LINK_ENTITY_TO_CLASS(weapon_m3, CM3, CCSM3)
void CM3::__MAKE_VHOOK(Spawn)() void CM3::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_m4a1, CM4A1, CCSM4A1); LINK_ENTITY_TO_CLASS(weapon_m4a1, CM4A1, CCSM4A1)
void CM4A1::__MAKE_VHOOK(Spawn)() void CM4A1::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_mac10, CMAC10, CCSMAC10); LINK_ENTITY_TO_CLASS(weapon_mac10, CMAC10, CCSMAC10)
void CMAC10::__MAKE_VHOOK(Spawn)() void CMAC10::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_mp5navy, CMP5N, CCSMP5N); LINK_ENTITY_TO_CLASS(weapon_mp5navy, CMP5N, CCSMP5N)
void CMP5N::__MAKE_VHOOK(Spawn)() void CMP5N::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_p228, CP228, CCSP228); LINK_ENTITY_TO_CLASS(weapon_p228, CP228, CCSP228)
void CP228::__MAKE_VHOOK(Spawn)() void CP228::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_p90, CP90, CCSP90); LINK_ENTITY_TO_CLASS(weapon_p90, CP90, CCSP90)
void CP90::__MAKE_VHOOK(Spawn)() void CP90::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_scout, CSCOUT, CCSSCOUT); LINK_ENTITY_TO_CLASS(weapon_scout, CSCOUT, CCSSCOUT)
void CSCOUT::__MAKE_VHOOK(Spawn)() void CSCOUT::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_sg550, CSG550, CCSSG550); LINK_ENTITY_TO_CLASS(weapon_sg550, CSG550, CCSSG550)
void CSG550::__MAKE_VHOOK(Spawn)() void CSG550::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_sg552, CSG552, CCSSG552); LINK_ENTITY_TO_CLASS(weapon_sg552, CSG552, CCSSG552)
void CSG552::__MAKE_VHOOK(Spawn)() void CSG552::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_smokegrenade, CSmokeGrenade, CCSSmokeGrenade); LINK_ENTITY_TO_CLASS(weapon_smokegrenade, CSmokeGrenade, CCSSmokeGrenade)
void CSmokeGrenade::__MAKE_VHOOK(Spawn)() void CSmokeGrenade::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_tmp, CTMP, CCSTMP); LINK_ENTITY_TO_CLASS(weapon_tmp, CTMP, CCSTMP)
void CTMP::__MAKE_VHOOK(Spawn)() void CTMP::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_ump45, CUMP45, CCSUMP45); LINK_ENTITY_TO_CLASS(weapon_ump45, CUMP45, CCSUMP45)
void CUMP45::__MAKE_VHOOK(Spawn)() void CUMP45::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_usp, CUSP, CCSUSP); LINK_ENTITY_TO_CLASS(weapon_usp, CUSP, CCSUSP)
void CUSP::__MAKE_VHOOK(Spawn)() void CUSP::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -1,6 +1,6 @@
#include "precompiled.h" #include "precompiled.h"
LINK_ENTITY_TO_CLASS(weapon_xm1014, CXM1014, CCSXM1014); LINK_ENTITY_TO_CLASS(weapon_xm1014, CXM1014, CCSXM1014)
void CXM1014::__MAKE_VHOOK(Spawn)() void CXM1014::__MAKE_VHOOK(Spawn)()
{ {

View File

@ -44,7 +44,7 @@ private:
// this was a root node // this was a root node
unsigned int rootId = GetRoodNodeId(node->key); unsigned int rootId = GetRoodNodeId(node->key);
if (m_RootNodes[rootId] != node) { if (m_RootNodes[rootId] != node) {
Sys_Error(__FUNCTION__ ": invalid root node"); Sys_Error("%s: invalid root node", __FUNCTION__);
return; return;
} }

View File

@ -33,6 +33,15 @@
// to help identify nav files // to help identify nav files
#define NAV_MAGIC_NUMBER 0xFEEDFACE #define NAV_MAGIC_NUMBER 0xFEEDFACE
// version
// 1 = hiding spots as plain vector array
// 2 = hiding spots as HidingSpot objects
// 3 = Encounter spots use HidingSpot ID's instead of storing vector again
// 4 = Includes size of source bsp file to verify nav data correlation
// ---- Beta Release at V4 -----
// 5 = Added Place info
#define NAV_VERSION 5
// A place is a named group of navigation areas // A place is a named group of navigation areas
typedef unsigned int Place; typedef unsigned int Place;

View File

@ -38,6 +38,15 @@
// to help identify nav files // to help identify nav files
#define NAV_MAGIC_NUMBER 0xFEEDFACE #define NAV_MAGIC_NUMBER 0xFEEDFACE
// version
// 1 = hiding spots as plain vector array
// 2 = hiding spots as HidingSpot objects
// 3 = Encounter spots use HidingSpot ID's instead of storing vector again
// 4 = Includes size of source bsp file to verify nav data correlation
// ---- Beta Release at V4 -----
// 5 = Added Place info
#define NAV_VERSION 5
// A place is a named group of navigation areas // A place is a named group of navigation areas
typedef unsigned int Place; typedef unsigned int Place;

View File

@ -30,7 +30,7 @@ void PlaceDirectory::Reset()
bool PlaceDirectory::IsKnown(Place place) const bool PlaceDirectory::IsKnown(Place place) const
{ {
std::vector<Place>::const_iterator it = std::find(m_directory.begin(), m_directory.end(), place); auto it = std::find(m_directory.begin(), m_directory.end(), place);
return (it != m_directory.end()); return (it != m_directory.end());
} }
@ -39,8 +39,7 @@ PlaceDirectory::EntryType PlaceDirectory::GetEntry(Place place) const
if (place == UNDEFINED_PLACE) if (place == UNDEFINED_PLACE)
return 0; return 0;
std::vector<Place>::const_iterator it = std::find(m_directory.begin(), m_directory.end(), place); auto it = std::find(m_directory.begin(), m_directory.end(), place);
if (it == m_directory.end()) if (it == m_directory.end())
{ {
assert(false && "PlaceDirectory::GetEntry failure"); assert(false && "PlaceDirectory::GetEntry failure");
@ -81,17 +80,16 @@ Place PlaceDirectory::EntryToPlace(EntryType entry) const
void PlaceDirectory::Save(int fd) void PlaceDirectory::Save(int fd)
{ {
// store number of entries in directory // store number of entries in directory
EntryType count = m_directory.size(); EntryType count = (EntryType)m_directory.size();
Q_write(fd, &count, sizeof(EntryType)); Q_write(fd, &count, sizeof(EntryType));
// store entries // store entries
std::vector<Place>::iterator it; for (auto id : m_directory)
for (it = m_directory.begin(); it != m_directory.end(); ++it)
{ {
const char *placeName = TheBotPhrases->IDToName(*it); auto placeName = TheBotPhrases->IDToName(id);
// store string length followed by string itself // store string length followed by string itself
unsigned short len = Q_strlen(placeName) + 1; unsigned short len = (unsigned short)Q_strlen(placeName) + 1;
Q_write(fd, &len, sizeof(unsigned short)); Q_write(fd, &len, sizeof(unsigned short));
Q_write(fd, placeName, len); Q_write(fd, placeName, len);
} }
@ -117,19 +115,10 @@ void PlaceDirectory::Load(SteamFile *file)
} }
} }
char *GetBspFilename(const char *navFilename) char *GetBspFilename()
{ {
static char bspFilename[256]; static char bspFilename[256];
Q_sprintf(bspFilename, "maps\\%s.bsp", STRING(gpGlobals->mapname)); Q_snprintf(bspFilename, sizeof(bspFilename), "maps\\%s.bsp", STRING(gpGlobals->mapname));
int len = Q_strlen(bspFilename);
if (len < 3)
return NULL;
bspFilename[len - 3] = 'b';
bspFilename[len - 2] = 's';
bspFilename[len - 1] = 'p';
return bspFilename; return bspFilename;
} }
@ -169,13 +158,10 @@ void CNavArea::Save(int fd, unsigned int version)
for (int d = 0; d < NUM_DIRECTIONS; ++d) for (int d = 0; d < NUM_DIRECTIONS; ++d)
{ {
// save number of connections for this direction // save number of connections for this direction
unsigned int count = m_connect[d].size(); size_t count = m_connect[d].size();
Q_write(fd, &count, sizeof(unsigned int)); Q_write(fd, &count, sizeof(size_t));
NavConnectList::const_iterator iter; for (auto connect : m_connect[d]) {
for (iter = m_connect[d].begin(); iter != m_connect[d].end(); ++iter)
{
NavConnect connect = (*iter);
Q_write(fd, &connect.area->m_id, sizeof(unsigned int)); Q_write(fd, &connect.area->m_id, sizeof(unsigned int));
} }
} }
@ -189,16 +175,15 @@ void CNavArea::Save(int fd, unsigned int version)
} }
else else
{ {
count = m_hidingSpotList.size(); count = (unsigned char)m_hidingSpotList.size();
} }
Q_write(fd, &count, sizeof(unsigned char)); Q_write(fd, &count, sizeof(unsigned char));
// store HidingSpot objects // store HidingSpot objects
unsigned int saveCount = 0; unsigned int saveCount = 0;
for (HidingSpotList::iterator iter = m_hidingSpotList.begin(); iter != m_hidingSpotList.end(); ++iter) for (auto spot : m_hidingSpotList)
{ {
HidingSpot *spot = (*iter);
spot->Save(fd, version); spot->Save(fd, version);
// overflow check // overflow check
@ -251,50 +236,45 @@ void CNavArea::Save(int fd, unsigned int version)
if (cv_bot_debug.value > 0.0f) if (cv_bot_debug.value > 0.0f)
CONSOLE_ECHO(" m_spotEncounterList.size() = %d\n", count); CONSOLE_ECHO(" m_spotEncounterList.size() = %d\n", count);
SpotEncounter *e; for (auto spote : m_spotEncounterList)
for (SpotEncounterList::iterator iter = m_spotEncounterList.begin(); iter != m_spotEncounterList.end(); ++iter)
{ {
e = &(*iter); if (spote.from.area)
Q_write(fd, &spote.from.area->m_id, sizeof(unsigned int));
if (e->from.area)
Q_write(fd, &e->from.area->m_id, sizeof(unsigned int));
else else
Q_write(fd, &zero, sizeof(unsigned int)); Q_write(fd, &zero, sizeof(unsigned int));
unsigned char dir = e->fromDir; unsigned char dir = spote.fromDir;
Q_write(fd, &dir, sizeof(unsigned char)); Q_write(fd, &dir, sizeof(unsigned char));
if (e->to.area) if (spote.to.area)
Q_write(fd, &e->to.area->m_id, sizeof(unsigned int)); Q_write(fd, &spote.to.area->m_id, sizeof(unsigned int));
else else
Q_write(fd, &zero, sizeof(unsigned int)); Q_write(fd, &zero, sizeof(unsigned int));
dir = e->toDir; dir = spote.toDir;
Q_write(fd, &dir, sizeof(unsigned char)); Q_write(fd, &dir, sizeof(unsigned char));
// write list of spots along this path // write list of spots along this path
unsigned char spotCount; unsigned char spotCount;
if (e->spotList.size() > 255) if (spote.spotList.size() > 255)
{ {
spotCount = 255; spotCount = 255;
CONSOLE_ECHO("Warning: NavArea #%d: Truncated encounter spot list to 255\n", m_id); CONSOLE_ECHO("Warning: NavArea #%d: Truncated encounter spot list to 255\n", m_id);
} }
else else
{ {
spotCount = e->spotList.size(); spotCount = (unsigned char)spote.spotList.size();
} }
Q_write(fd, &spotCount, sizeof(unsigned char)); Q_write(fd, &spotCount, sizeof(unsigned char));
saveCount = 0; saveCount = 0;
for (SpotOrderList::iterator oiter = e->spotList.begin(); oiter != e->spotList.end(); ++oiter) for (auto order : spote.spotList)
{ {
SpotOrder *order = &(*oiter);
// order->spot may be NULL if we've loaded a nav mesh that has been edited but not re-analyzed // order->spot may be NULL if we've loaded a nav mesh that has been edited but not re-analyzed
unsigned int id = (order->spot) ? order->spot->GetID() : 0; unsigned int id = (order.spot) ? order.spot->GetID() : 0;
Q_write(fd, &id, sizeof(unsigned int)); Q_write(fd, &id, sizeof(unsigned int));
unsigned char t = 255 * order->t; unsigned char t = 255 * order.t;
Q_write(fd, &t, sizeof(unsigned char)); Q_write(fd, &t, sizeof(unsigned char));
// overflow check // overflow check
@ -467,15 +447,15 @@ void CNavArea::Load(SteamFile *file, unsigned int version)
m_spotEncounterList.push_back(encounter); m_spotEncounterList.push_back(encounter);
} }
if (version < 5) if (version >= NAV_VERSION)
return; {
// Load Place data
PlaceDirectory::EntryType entry;
file->Read(&entry, sizeof(entry));
// Load Place data // convert entry to actual Place
PlaceDirectory::EntryType entry; SetPlace(placeDirectory.EntryToPlace(entry));
file->Read(&entry, sizeof(entry)); }
// convert entry to actual Place
SetPlace(placeDirectory.EntryToPlace(entry));
} }
NavErrorType CNavArea::PostLoad() NavErrorType CNavArea::PostLoad()
@ -485,14 +465,10 @@ NavErrorType CNavArea::PostLoad()
// connect areas together // connect areas together
for (int d = 0; d < NUM_DIRECTIONS; ++d) for (int d = 0; d < NUM_DIRECTIONS; ++d)
{ {
NavConnectList::iterator iter; for (auto connect : m_connect[d])
for (iter = m_connect[d].begin(); iter != m_connect[d].end(); ++iter)
{ {
NavConnect *connect = &(*iter); connect.area = TheNavAreaGrid.GetNavAreaByID(connect.id);
if (connect.id && connect.area == NULL)
unsigned int id = connect->id;
connect->area = TheNavAreaGrid.GetNavAreaByID(id);
if (id && connect->area == NULL)
{ {
CONSOLE_ECHO("ERROR: Corrupt navigation data. Cannot connect Navigation Areas.\n"); CONSOLE_ECHO("ERROR: Corrupt navigation data. Cannot connect Navigation Areas.\n");
error = NAV_CORRUPT_DATA; error = NAV_CORRUPT_DATA;
@ -526,44 +502,39 @@ NavErrorType CNavArea::PostLoad()
} }
// resolve spot encounter IDs // resolve spot encounter IDs
SpotEncounter *e; for (auto spote : m_spotEncounterList)
for (SpotEncounterList::iterator iter = m_spotEncounterList.begin(); iter != m_spotEncounterList.end(); ++iter)
{ {
e = &(*iter); spote.from.area = TheNavAreaGrid.GetNavAreaByID(spote.from.id);
if (spote.from.area == NULL)
e->from.area = TheNavAreaGrid.GetNavAreaByID(e->from.id);
if (e->from.area == NULL)
{ {
CONSOLE_ECHO("ERROR: Corrupt navigation data. Missing \"from\" Navigation Area for Encounter Spot.\n"); CONSOLE_ECHO("ERROR: Corrupt navigation data. Missing \"from\" Navigation Area for Encounter Spot.\n");
error = NAV_CORRUPT_DATA; error = NAV_CORRUPT_DATA;
} }
e->to.area = TheNavAreaGrid.GetNavAreaByID(e->to.id); spote.to.area = TheNavAreaGrid.GetNavAreaByID(spote.to.id);
if (e->to.area == NULL) if (spote.to.area == NULL)
{ {
CONSOLE_ECHO("ERROR: Corrupt navigation data. Missing \"to\" Navigation Area for Encounter Spot.\n"); CONSOLE_ECHO("ERROR: Corrupt navigation data. Missing \"to\" Navigation Area for Encounter Spot.\n");
error = NAV_CORRUPT_DATA; error = NAV_CORRUPT_DATA;
} }
if (e->from.area && e->to.area) if (spote.from.area && spote.to.area)
{ {
// compute path // compute path
float halfWidth; float halfWidth;
ComputePortal(e->to.area, e->toDir, &e->path.to, &halfWidth); ComputePortal(spote.to.area, spote.toDir, &spote.path.to, &halfWidth);
ComputePortal(e->from.area, e->fromDir, &e->path.from, &halfWidth); ComputePortal(spote.from.area, spote.fromDir, &spote.path.from, &halfWidth);
const float eyeHeight = HalfHumanHeight; const float eyeHeight = HalfHumanHeight;
e->path.from.z = e->from.area->GetZ(&e->path.from) + eyeHeight; spote.path.from.z = spote.from.area->GetZ(&spote.path.from) + eyeHeight;
e->path.to.z = e->to.area->GetZ(&e->path.to) + eyeHeight; spote.path.to.z = spote.to.area->GetZ(&spote.path.to) + eyeHeight;
} }
// resolve HidingSpot IDs // resolve HidingSpot IDs
for (SpotOrderList::iterator oiter = e->spotList.begin(); oiter != e->spotList.end(); ++oiter) for (auto order : spote.spotList)
{ {
SpotOrder *order = &(*oiter); order.spot = GetHidingSpotByID(order.id);
if (order.spot == NULL)
order->spot = GetHidingSpotByID(order->id);
if (order->spot == NULL)
{ {
CONSOLE_ECHO("ERROR: Corrupt navigation data. Missing Hiding Spot\n"); CONSOLE_ECHO("ERROR: Corrupt navigation data. Missing Hiding Spot\n");
error = NAV_CORRUPT_DATA; error = NAV_CORRUPT_DATA;
@ -573,10 +544,8 @@ NavErrorType CNavArea::PostLoad()
// build overlap list // build overlap list
// TODO: Optimize this // TODO: Optimize this
for (NavAreaList::iterator oiter = TheNavAreaList.begin(); oiter != TheNavAreaList.end(); ++oiter) for (auto area : TheNavAreaList)
{ {
CNavArea *area = *oiter;
if (area == this) if (area == this)
continue; continue;
@ -630,18 +599,12 @@ bool SaveNavigationMap(const char *filename)
Q_write(fd, &magic, sizeof(unsigned int)); Q_write(fd, &magic, sizeof(unsigned int));
// store version number of file // store version number of file
// 1 = hiding spots as plain vector array unsigned int version = NAV_VERSION;
// 2 = hiding spots as HidingSpot objects
// 3 = Encounter spots use HidingSpot ID's instead of storing vector again
// 4 = Includes size of source bsp file to verify nav data correlation
// ---- Beta Release at V4 -----
// 5 = Added Place info
unsigned int version = 5;
Q_write(fd, &version, sizeof(unsigned int)); Q_write(fd, &version, sizeof(unsigned int));
// get size of source bsp file and store it in the nav file // get size of source bsp file and store it in the nav file
// so we can test if the bsp changed since the nav file was made // so we can test if the bsp changed since the nav file was made
char *bspFilename = GetBspFilename(filename); char *bspFilename = GetBspFilename();
if (bspFilename == NULL) if (bspFilename == NULL)
return false; return false;
@ -653,14 +616,10 @@ bool SaveNavigationMap(const char *filename)
// Build a directory of the Places in this map // Build a directory of the Places in this map
placeDirectory.Reset(); placeDirectory.Reset();
NavAreaList::iterator it; for (auto area : TheNavAreaList)
for (it = TheNavAreaList.begin(); it != TheNavAreaList.end(); ++it)
{ {
CNavArea *area = (*it);
Place place = area->GetPlace(); Place place = area->GetPlace();
if (place) {
if (place)
{
placeDirectory.AddPlace(place); placeDirectory.AddPlace(place);
} }
} }
@ -673,9 +632,7 @@ bool SaveNavigationMap(const char *filename)
Q_write(fd, &count, sizeof(unsigned int)); Q_write(fd, &count, sizeof(unsigned int));
// store each area // store each area
for (it = TheNavAreaList.begin(); it != TheNavAreaList.end(); ++it) for (auto area : TheNavAreaList) {
{
CNavArea *area = (*it);
area->Save(fd, version); area->Save(fd, version);
} }
@ -686,8 +643,9 @@ bool SaveNavigationMap(const char *filename)
FILE *fp = Q_fopen("c:\\tmp\\nav.obj", "w"); FILE *fp = Q_fopen("c:\\tmp\\nav.obj", "w");
if (fp) if (fp)
{ {
for (NavAreaList::iterator iter = TheNavAreaList.begin(); iter != TheNavAreaList.end(); ++iter) for (auto area : TheNavAreaList) {
(*iter)->Save(fp); area->Save(fd);
}
Q_fclose(fp); Q_fclose(fp);
} }
@ -795,7 +753,7 @@ void SanityCheckNavigationMap(const char *mapName)
// read file version number // read file version number
unsigned int version; unsigned int version;
result = navFile.Read(&version, sizeof(unsigned int)); result = navFile.Read(&version, sizeof(unsigned int));
if (!result || version > 5) if (!result || version > NAV_VERSION)
{ {
CONSOLE_ECHO("ERROR: Unknown version in navigation file %s.\n", navFilename); CONSOLE_ECHO("ERROR: Unknown version in navigation file %s.\n", navFilename);
return; return;
@ -861,7 +819,7 @@ NavErrorType LoadNavigationMap()
// read file version number // read file version number
unsigned int version; unsigned int version;
result = navFile.Read(&version, sizeof(unsigned int)); result = navFile.Read(&version, sizeof(unsigned int));
if (!result || version > 5) if (!result || version > NAV_VERSION)
{ {
CONSOLE_ECHO("ERROR: Unknown navigation file version.\n"); CONSOLE_ECHO("ERROR: Unknown navigation file version.\n");
return NAV_BAD_FILE_VERSION; return NAV_BAD_FILE_VERSION;
@ -874,7 +832,7 @@ NavErrorType LoadNavigationMap()
navFile.Read(&saveBspSize, sizeof(unsigned int)); navFile.Read(&saveBspSize, sizeof(unsigned int));
// verify size // verify size
char *bspFilename = GetBspFilename(filename); char *bspFilename = GetBspFilename();
if (bspFilename == NULL) if (bspFilename == NULL)
return NAV_INVALID_FILE; return NAV_INVALID_FILE;
@ -891,7 +849,7 @@ NavErrorType LoadNavigationMap()
} }
// load Place directory // load Place directory
if (version >= 5) if (version >= NAV_VERSION)
{ {
placeDirectory.Load(&navFile); placeDirectory.Load(&navFile);
} }
@ -916,9 +874,9 @@ NavErrorType LoadNavigationMap()
const Extent *areaExtent = area->GetExtent(); const Extent *areaExtent = area->GetExtent();
// check validity of nav area // check validity of nav area
if (areaExtent->lo.x >= areaExtent->hi.x || areaExtent->lo.y >= areaExtent->hi.y) if (areaExtent->lo.x >= areaExtent->hi.x || areaExtent->lo.y >= areaExtent->hi.y) {
CONSOLE_ECHO("WARNING: Degenerate Navigation Area #%d at ( %g, %g, %g )\n", CONSOLE_ECHO("WARNING: Degenerate Navigation Area #%d at ( %g, %g, %g )\n", area->GetID(), area->m_center.x, area->m_center.y, area->m_center.z);
area->GetID(), area->m_center.x, area->m_center.y, area->m_center.z); }
if (areaExtent->lo.x < extent.lo.x) if (areaExtent->lo.x < extent.lo.x)
extent.lo.x = areaExtent->lo.x; extent.lo.x = areaExtent->lo.x;
@ -936,19 +894,17 @@ NavErrorType LoadNavigationMap()
// add the areas to the grid // add the areas to the grid
TheNavAreaGrid.Initialize(extent.lo.x, extent.hi.x, extent.lo.y, extent.hi.y); TheNavAreaGrid.Initialize(extent.lo.x, extent.hi.x, extent.lo.y, extent.hi.y);
NavAreaList::iterator iter; for (auto area : TheNavAreaList) {
for (iter = TheNavAreaList.begin(); iter != TheNavAreaList.end(); ++iter) TheNavAreaGrid.AddNavArea(area);
TheNavAreaGrid.AddNavArea(*iter); }
// allow areas to connect to each other, etc // allow areas to connect to each other, etc
for (iter = TheNavAreaList.begin(); iter != TheNavAreaList.end(); ++iter) for (auto area : TheNavAreaList) {
{
CNavArea *area = (*iter);
area->PostLoad(); area->PostLoad();
} }
// load legacy location file (Places) // load legacy location file (Places)
if (version < 5) if (version < NAV_VERSION)
{ {
LoadLocationFile(filename); LoadLocationFile(filename);
} }

View File

@ -61,7 +61,6 @@ private:
extern char *MP_COM_GetToken(); extern char *MP_COM_GetToken();
extern char *MP_COM_Parse(char *data); extern char *MP_COM_Parse(char *data);
char *GetBspFilename(const char *navFilename);
bool SaveNavigationMap(const char *filename); bool SaveNavigationMap(const char *filename);
void LoadLocationFile(const char *filename); void LoadLocationFile(const char *filename);
void SanityCheckNavigationMap(const char *mapName); // Performs a lightweight sanity-check of the specified map's nav mesh void SanityCheckNavigationMap(const char *mapName); // Performs a lightweight sanity-check of the specified map's nav mesh

View File

@ -103,7 +103,7 @@ void *GetOriginalFuncAddrOrDie(const char *funcName)
return (void*) cfh->originalAddress; return (void*) cfh->originalAddress;
} }
regamedll_syserror(__FUNCTION__": Could not find function '%s'", funcName); regamedll_syserror("%s: Could not find function '%s'", __FUNCTION__, funcName);
return NULL; return NULL;
} }
@ -126,7 +126,7 @@ void *GetFuncRefAddrOrDie(const char *funcName)
return (void*)cfh->originalAddress; return (void*)cfh->originalAddress;
} }
regamedll_syserror(__FUNCTION__": Could not find function '%s'", funcName); regamedll_syserror("%s: Could not find function '%s'", __FUNCTION__, funcName);
return NULL; return NULL;
} }
@ -158,7 +158,7 @@ int HookGameDLL(size_t gameAddr, size_t engAddr)
{ {
if (!GetAddress(&g_GameDLLModule, (Address *)refData, g_BaseOffset)) if (!GetAddress(&g_GameDLLModule, (Address *)refData, g_BaseOffset))
{ {
_logf(__FUNCTION__ ": symbol not found \"%s\", symbol index: %i", refData->symbolName, refData->symbolIndex); _logf("%s: symbol not found \"%s\", symbol index: %i", __FUNCTION__, refData->symbolName, refData->symbolIndex);
success = false; success = false;
} }
refData++; refData++;
@ -169,7 +169,7 @@ int HookGameDLL(size_t gameAddr, size_t engAddr)
{ {
if (!GetAddress(&g_GameDLLModule, (Address *)refFunc, g_BaseOffset)) if (!GetAddress(&g_GameDLLModule, (Address *)refFunc, g_BaseOffset))
{ {
_logf(__FUNCTION__ ": symbol not found \"%s\", symbol index: %i", refFunc->symbolName, refFunc->symbolIndex); _logf("%s: symbol not found \"%s\", symbol index: %i", __FUNCTION__, refFunc->symbolName, refFunc->symbolIndex);
success = false; success = false;
} }
refFunc++; refFunc++;
@ -180,7 +180,7 @@ int HookGameDLL(size_t gameAddr, size_t engAddr)
{ {
if (!GetAddress(&g_GameDLLModule, (Address*)hookFunc, g_BaseOffset)) if (!GetAddress(&g_GameDLLModule, (Address*)hookFunc, g_BaseOffset))
{ {
_logf(__FUNCTION__ ": symbol not found \"%s\", symbol index: %i", hookFunc->symbolName, hookFunc->symbolIndex); _logf("%s: symbol not found \"%s\", symbol index: %i", __FUNCTION__, hookFunc->symbolName, hookFunc->symbolIndex);
success = false; success = false;
} }
hookFunc++; hookFunc++;
@ -191,7 +191,7 @@ int HookGameDLL(size_t gameAddr, size_t engAddr)
{ {
if (!GetAddress(&g_GameDLLModule, (Address *)refVtbl, g_BaseOffset)) if (!GetAddress(&g_GameDLLModule, (Address *)refVtbl, g_BaseOffset))
{ {
_logf(__FUNCTION__ ": symbol not found \"%s\"", refVtbl->symbolName); _logf("%s: symbol not found \"%s\"", __FUNCTION__, refVtbl->symbolName);
success = false; success = false;
} }
refVtbl++; refVtbl++;
@ -199,7 +199,7 @@ int HookGameDLL(size_t gameAddr, size_t engAddr)
if (!success) if (!success)
{ {
_logf(__FUNCTION__ ": failed to hook gamedll!"); _logf("%s: failed to hook gamedll!", __FUNCTION__);
return FALSE; return FALSE;
} }

View File

@ -433,13 +433,13 @@ void ProcessModuleData(Module *module)
int i = 0; int i = 0;
PIMAGE_DOS_HEADER dosHeader = (PIMAGE_DOS_HEADER)module->base; PIMAGE_DOS_HEADER dosHeader = (PIMAGE_DOS_HEADER)module->base;
if (dosHeader->e_magic != IMAGE_DOS_SIGNATURE) { if (dosHeader->e_magic != IMAGE_DOS_SIGNATURE) {
regamedll_syserror(__FUNCTION__": Invalid DOS header signature"); regamedll_syserror("%s: Invalid DOS header signature", __FUNCTION__);
return; return;
} }
PIMAGE_NT_HEADERS NTHeaders = (PIMAGE_NT_HEADERS)((size_t)module->base + dosHeader->e_lfanew); PIMAGE_NT_HEADERS NTHeaders = (PIMAGE_NT_HEADERS)((size_t)module->base + dosHeader->e_lfanew);
if (NTHeaders->Signature != 0x4550) { if (NTHeaders->Signature != 0x4550) {
regamedll_syserror(__FUNCTION__": Invalid NT header signature"); regamedll_syserror("%s: Invalid NT header signature", __FUNCTION__);
return; return;
} }
@ -453,7 +453,7 @@ void ProcessModuleData(Module *module)
} }
if (CodeSection == NULL) { if (CodeSection == NULL) {
regamedll_syserror(__FUNCTION__": Code section not found"); regamedll_syserror("%s: Code section not found", __FUNCTION__);
return; return;
} }
@ -865,14 +865,13 @@ void VirtualTableInit(void *ptr, const char *baseClass)
VirtualTableRef *refsVtbl = GetVirtualTableRefAddr(baseClass); VirtualTableRef *refsVtbl = GetVirtualTableRefAddr(baseClass);
if (!refsVtbl) if (!refsVtbl)
{ {
regamedll_syserror(__FUNCTION__": Missing vtable for \"%s\"", baseClass); regamedll_syserror("%s: Missing vtable for \"%s\"", __FUNCTION__, baseClass);
} }
/* /*
int nCount = vtable_size(refsVtbl->originalAddress); int nCount = vtable_size(refsVtbl->originalAddress);
if (nCount != refsVtbl->size) if (nCount != refsVtbl->size)
regamedll_syserror(__FUNCTION__": Invalid size virtual table, expected [%d], got [%d]", nCount, refsVtbl->size); regamedll_syserror("%s: Invalid size virtual table, expected [%d], got [%d]", __FUNCTION__, nCount, refsVtbl->size);
*/ */
int **ivtable = *(int ***)ptr; int **ivtable = *(int ***)ptr;
@ -898,11 +897,11 @@ void HIDDEN GetAddressVtableByClassname(const char *szClassName, const int iOffs
edict_t *pObject = CREATE_ENTITY(); edict_t *pObject = CREATE_ENTITY();
void *addr = GetFunctionEntity(szClassName); void *addr = GetFunctionEntity(szClassName);
if (addr == NULL) if (addr == NULL)
{ {
//can't create object. //can't create object.
printf2(__FUNCTION__ ":: Not found export function of binaries. Presumably looks '__declspec(dllexport) void %s(entvars_t *pev)'", szClassName); printf2("%s: Not found export function of binaries. Presumably looks '__declspec(dllexport) void %s(entvars_t *pev)'", __FUNCTION__, szClassName);
REMOVE_ENTITY(pObject); REMOVE_ENTITY(pObject);
return; return;
} }
@ -918,7 +917,8 @@ void HIDDEN GetAddressVtableByClassname(const char *szClassName, const int iOffs
vtable = (void *)refsVtbl->originalAddress; vtable = (void *)refsVtbl->originalAddress;
} }
printf2(__FUNCTION__ "* ADDRESS VTABLE: %p | ADDRESS VIRTUAL FUNC: %p", printf2("%s: ADDRESS VTABLE: %p | ADDRESS VIRTUAL FUNC: %p",
__FUNCTION__,
OffsetToRebase((size_t)vtable), OffsetToRebase((size_t)vtable),
OffsetToRebase(*(((size_t **)&vtable)[ iOffset ]))); OffsetToRebase(*(((size_t **)&vtable)[ iOffset ])));
} }

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug MP Play|Win32"> <ProjectConfiguration Include="Debug MP Play|Win32">
<Configuration>Debug MP Play</Configuration> <Configuration>Debug MP Play</Configuration>
@ -1172,58 +1172,58 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120_xp</PlatformToolset> <PlatformToolset>v140_xp</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Play|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Play|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v140</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug MP|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug MP|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v140</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release MP|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release MP|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release MP Play|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release MP Play|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug MP Play|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug MP Play|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v120</PlatformToolset> <PlatformToolset>v140</PlatformToolset>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Tests|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Tests|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120_xp</PlatformToolset> <PlatformToolset>v140_xp</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120_xp</PlatformToolset> <PlatformToolset>v140_xp</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Play|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Play|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120_xp</PlatformToolset> <PlatformToolset>v140_xp</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>

View File

@ -36,7 +36,7 @@
#include "items.h" #include "items.h"
#define REGAMEDLL_API_VERSION_MAJOR 5 #define REGAMEDLL_API_VERSION_MAJOR 5
#define REGAMEDLL_API_VERSION_MINOR 1 #define REGAMEDLL_API_VERSION_MINOR 2
// CBasePlayer::Spawn hook // CBasePlayer::Spawn hook
typedef IVoidHookChainClass<class CBasePlayer> IReGameHook_CBasePlayer_Spawn; typedef IVoidHookChainClass<class CBasePlayer> IReGameHook_CBasePlayer_Spawn;

View File

@ -95,6 +95,7 @@ public:
virtual void Disappear(); virtual void Disappear();
virtual void MakeVIP(); virtual void MakeVIP();
virtual bool MakeBomber(); virtual bool MakeBomber();
virtual void ResetSequenceInfo();
CBasePlayer *BasePlayer() const; CBasePlayer *BasePlayer() const;
public: public:

View File

@ -33,18 +33,17 @@ bool AbstractHookChainRegistry::findHook(void* hookFunc) const
if (m_Hooks[i] == hookFunc) if (m_Hooks[i] == hookFunc)
return true; return true;
} }
return false; return false;
} }
void AbstractHookChainRegistry::addHook(void* hookFunc, int priority) void AbstractHookChainRegistry::addHook(void* hookFunc, int priority)
{ {
if (!hookFunc) { if (!hookFunc) {
Sys_Error(__FUNCTION__ " Parameter hookFunc can't be a nullptr"); Sys_Error("%s: Parameter hookFunc can't be a nullptr", __FUNCTION__);
} }
if (findHook(hookFunc)) { if (findHook(hookFunc)) {
Sys_Error(__FUNCTION__ " The same handler can't be used twice on the hookchain."); Sys_Error("%s: The same handler can't be used twice on the hookchain.", __FUNCTION__);
} }
for (auto i = 0; i < MAX_HOOKS_IN_CHAIN; i++) for (auto i = 0; i < MAX_HOOKS_IN_CHAIN; i++)
@ -63,7 +62,7 @@ void AbstractHookChainRegistry::addHook(void* hookFunc, int priority)
} }
if (m_NumHooks >= MAX_HOOKS_IN_CHAIN) { if (m_NumHooks >= MAX_HOOKS_IN_CHAIN) {
Sys_Error(__FUNCTION__ " MAX_HOOKS_IN_CHAIN limit hit"); Sys_Error("%s: MAX_HOOKS_IN_CHAIN limit hit", __FUNCTION__);
} }
m_NumHooks++; m_NumHooks++;

View File

@ -40,7 +40,7 @@ public:
IHookChainImpl(void** hooks, origfunc_t orig) : m_Hooks(hooks), m_OriginalFunc(orig) IHookChainImpl(void** hooks, origfunc_t orig) : m_Hooks(hooks), m_OriginalFunc(orig)
{ {
if (orig == NULL) if (orig == NULL)
Sys_Error(__FUNCTION__ ": Non-void HookChain without original function."); Sys_Error("%s: Non-void HookChain without original function.", __FUNCTION__);
} }
virtual ~IHookChainImpl() {} virtual ~IHookChainImpl() {}

View File

@ -32,7 +32,7 @@
#include "regamedll_interfaces_impl.h" #include "regamedll_interfaces_impl.h"
#define GAMEHOOK_REGISTRY(func)\ #define GAMEHOOK_REGISTRY(func)\
IReGameHookRegistry_##func* CReGameHookchains::##func() { return &m_##func; } IReGameHookRegistry_##func* CReGameHookchains::func() { return &m_##func; }
// CBasePlayer::Spawn hook // CBasePlayer::Spawn hook
typedef IVoidHookChainClassImpl<CBasePlayer> CReGameHook_CBasePlayer_Spawn; typedef IVoidHookChainClassImpl<CBasePlayer> CReGameHook_CBasePlayer_Spawn;

View File

@ -239,10 +239,7 @@ bool EXT_FUNC CCSPlayer::RemovePlayerItem(const char* pszItemName)
auto pItem = GetItemByName(pszItemName); auto pItem = GetItemByName(pszItemName);
if (pItem) if (pItem)
{ {
if (pItem->iItemSlot() == PRIMARY_WEAPON_SLOT) { if (FClassnameIs(pItem->pev, "weapon_c4")) {
pPlayer->m_bHasPrimary = false;
}
else if (FClassnameIs(pItem->pev, "weapon_c4")) {
pPlayer->m_bHasC4 = false; pPlayer->m_bHasC4 = false;
pPlayer->pev->body = 0; pPlayer->pev->body = 0;
pPlayer->SetBombIcon(FALSE); pPlayer->SetBombIcon(FALSE);
@ -256,6 +253,11 @@ bool EXT_FUNC CCSPlayer::RemovePlayerItem(const char* pszItemName)
if (pPlayer->RemovePlayerItem(pItem)) { if (pPlayer->RemovePlayerItem(pItem)) {
pPlayer->pev->weapons &= ~(1 << pItem->m_iId); pPlayer->pev->weapons &= ~(1 << pItem->m_iId);
pItem->Kill(); pItem->Kill();
if (!pPlayer->m_rgpPlayerItems[PRIMARY_WEAPON_SLOT]) {
pPlayer->m_bHasPrimary = false;
}
return true; return true;
} }
} }
@ -294,7 +296,7 @@ void EXT_FUNC CCSPlayer::DropPlayerItem(const char *pszItemName) { BasePlayer()-
void EXT_FUNC CCSPlayer::RemoveShield() { BasePlayer()->RemoveShield(); } void EXT_FUNC CCSPlayer::RemoveShield() { BasePlayer()->RemoveShield(); }
void EXT_FUNC CCSPlayer::RemoveAllItems(bool bRemoveSuit) { BasePlayer()->RemoveAllItems(bRemoveSuit ? TRUE : FALSE); } void EXT_FUNC CCSPlayer::RemoveAllItems(bool bRemoveSuit) { BasePlayer()->RemoveAllItems(bRemoveSuit ? TRUE : FALSE); }
void EXT_FUNC CCSPlayer::SetPlayerModel(bool bHasC4) { BasePlayer()->SetPlayerModel(bHasC4 ? TRUE : FALSE); } void EXT_FUNC CCSPlayer::SetPlayerModel(bool bHasC4) { BasePlayer()->SetPlayerModel(bHasC4 ? TRUE : FALSE); }
void EXT_FUNC CCSPlayer::SetPlayerModelEx(const char *modelName) { strncpy(m_szModel, modelName, sizeof(m_szModel) - 1); m_szModel[sizeof(m_szModel) - 1] = '\0'; }; void EXT_FUNC CCSPlayer::SetPlayerModelEx(const char *modelName) { Q_strncpy(m_szModel, modelName, sizeof(m_szModel) - 1); m_szModel[sizeof(m_szModel) - 1] = '\0'; };
void EXT_FUNC CCSPlayer::SetNewPlayerModel(const char *modelName) { BasePlayer()->SetNewPlayerModel(modelName); } void EXT_FUNC CCSPlayer::SetNewPlayerModel(const char *modelName) { BasePlayer()->SetNewPlayerModel(modelName); }
void EXT_FUNC CCSPlayer::ClientCommand(const char *cmd, const char *arg1, const char *arg2, const char *arg3) { BasePlayer()->ClientCommand(cmd, arg1, arg2, arg3); } void EXT_FUNC CCSPlayer::ClientCommand(const char *cmd, const char *arg1, const char *arg2, const char *arg3) { BasePlayer()->ClientCommand(cmd, arg1, arg2, arg3); }
void EXT_FUNC CCSPlayer::SetProgressBarTime(int time) { BasePlayer()->SetProgressBarTime(time); } void EXT_FUNC CCSPlayer::SetProgressBarTime(int time) { BasePlayer()->SetProgressBarTime(time); }
@ -319,3 +321,4 @@ CBasePlayerItem *EXT_FUNC CCSPlayer::GetItemByName(const char *itemName) { retur
void EXT_FUNC CCSPlayer::Disappear() { BasePlayer()->Disappear(); } void EXT_FUNC CCSPlayer::Disappear() { BasePlayer()->Disappear(); }
void EXT_FUNC CCSPlayer::MakeVIP() { BasePlayer()->MakeVIP(); } void EXT_FUNC CCSPlayer::MakeVIP() { BasePlayer()->MakeVIP(); }
bool EXT_FUNC CCSPlayer::MakeBomber() { return BasePlayer()->MakeBomber(); } bool EXT_FUNC CCSPlayer::MakeBomber() { return BasePlayer()->MakeBomber(); }
void EXT_FUNC CCSPlayer::ResetSequenceInfo() { BasePlayer()->ResetSequenceInfo(); }