mirror of
https://github.com/s1lentq/ReGameDLL_CS.git
synced 2025-03-03 17:25:24 +03:00
Fix linux compilation
cleanup fixed offset some of a members of the class Reversed CRecharge, CCStrikeGameMgrHelper, CVoiceGameMgr
This commit is contained in:
parent
56c2cb635f
commit
c35c7c60b3
@ -125,7 +125,7 @@ void setupToolchain(NativeBinarySpec b) {
|
|||||||
}
|
}
|
||||||
b.lib LazyNativeDepSet.create(dep_bzip2, 'bzip2', b.buildType.name, true)
|
b.lib LazyNativeDepSet.create(dep_bzip2, 'bzip2', b.buildType.name, true)
|
||||||
|
|
||||||
cfg.singleDefines 'USE_BREAKPAD_HANDLER', 'DEDICATED', 'REGAMEDLL_SELF'
|
cfg.singleDefines 'USE_BREAKPAD_HANDLER', 'DEDICATED', 'REGAMEDLL_SELF', 'HOOK_GAMEDLL'
|
||||||
|
|
||||||
if (cfg instanceof MsvcToolchainConfig) {
|
if (cfg instanceof MsvcToolchainConfig) {
|
||||||
|
|
||||||
@ -168,9 +168,13 @@ void setupToolchain(NativeBinarySpec b) {
|
|||||||
|
|
||||||
// TODO: check it
|
// TODO: check it
|
||||||
//if (!unitTestExecutable && !mpLib) {
|
//if (!unitTestExecutable && !mpLib) {
|
||||||
cfg.singleDefines 'HOOK_GAMEDLL'
|
// cfg.singleDefines 'HOOK_GAMEDLL'
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
if (unitTestExecutable) {
|
||||||
|
cfg.singleDefines 'REGAMEDLL_UNIT_TESTS'
|
||||||
|
}
|
||||||
|
|
||||||
if (regamedllFixes) {
|
if (regamedllFixes) {
|
||||||
cfg.singleDefines 'REGAMEDLL_FIXES', 'REGAMEDLL_CHECKS'
|
cfg.singleDefines 'REGAMEDLL_FIXES', 'REGAMEDLL_CHECKS'
|
||||||
}
|
}
|
||||||
|
@ -175,16 +175,6 @@ typedef struct mleaf_s
|
|||||||
byte ambient_sound_level[ NUM_AMBIENTS ];
|
byte ambient_sound_level[ NUM_AMBIENTS ];
|
||||||
} mleaf_t;
|
} mleaf_t;
|
||||||
|
|
||||||
#ifdef CUSTOM_H
|
|
||||||
|
|
||||||
void da(void)
|
|
||||||
{
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif// TI_LOX
|
|
||||||
|
|
||||||
|
|
||||||
struct msurface_s
|
struct msurface_s
|
||||||
{
|
{
|
||||||
int visframe; // should be drawn when node is crossed
|
int visframe; // should be drawn when node is crossed
|
||||||
|
@ -1297,7 +1297,6 @@ private:
|
|||||||
|
|
||||||
};/* size: 8, cachelines: 1, members: 2 */
|
};/* size: 8, cachelines: 1, members: 2 */
|
||||||
|
|
||||||
|
|
||||||
/* <5a0af3> ../cstrike/dlls/bot/cs_bot.h:1114 */
|
/* <5a0af3> ../cstrike/dlls/bot/cs_bot.h:1114 */
|
||||||
class PathCost
|
class PathCost
|
||||||
{
|
{
|
||||||
@ -1396,7 +1395,84 @@ public:
|
|||||||
private:
|
private:
|
||||||
CCSBot *m_bot;
|
CCSBot *m_bot;
|
||||||
RouteType m_route;
|
RouteType m_route;
|
||||||
};
|
|
||||||
|
};/* size: 8, cachelines: 1, members: 2 */
|
||||||
|
|
||||||
|
/* <568fae> ../cstrike/dlls/bot/states/cs_bot_follow.cpp:95 */
|
||||||
|
class FollowTargetCollector
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
FollowTargetCollector(CBasePlayer *player)
|
||||||
|
{
|
||||||
|
m_player = player;
|
||||||
|
|
||||||
|
Vector playerVel = player->pev->velocity;
|
||||||
|
|
||||||
|
m_forward.x = playerVel.x;
|
||||||
|
m_forward.y = playerVel.y;
|
||||||
|
|
||||||
|
float speed = m_forward.NormalizeInPlace();
|
||||||
|
|
||||||
|
Vector playerOrigin = player->pev->origin;
|
||||||
|
|
||||||
|
const float walkSpeed = 100.0f;
|
||||||
|
if (speed < walkSpeed)
|
||||||
|
{
|
||||||
|
m_cutoff.x = playerOrigin.x;
|
||||||
|
m_cutoff.y = playerOrigin.y;
|
||||||
|
|
||||||
|
m_forward.x = 0.0f;
|
||||||
|
m_forward.y = 0.0f;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const float k = 1.5f; // 2.0f;
|
||||||
|
float trimSpeed = min(speed, 200.0f);
|
||||||
|
|
||||||
|
m_cutoff.x = playerOrigin.x + k * trimSpeed * m_forward.x;
|
||||||
|
m_cutoff.y = playerOrigin.y + k * trimSpeed * m_forward.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_targetAreaCount = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum { MAX_TARGET_AREAS = 128 };
|
||||||
|
|
||||||
|
/* <568dc3> ../cstrike/dlls/bot/states/cs_bot_follow.cpp:124 */
|
||||||
|
bool operator()(CNavArea *area)
|
||||||
|
{
|
||||||
|
if (m_targetAreaCount >= MAX_TARGET_AREAS)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// only use two-way connections
|
||||||
|
if (!area->GetParent() || area->IsConnected(area->GetParent(), NUM_DIRECTIONS))
|
||||||
|
{
|
||||||
|
if (m_forward.IsZero())
|
||||||
|
{
|
||||||
|
m_targetArea[ m_targetAreaCount++ ] = area;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// collect areas in the direction of the player's forward motion
|
||||||
|
Vector2D to(((*area->GetCenter()).x - m_cutoff.x), (*area->GetCenter()).y - m_cutoff.y);
|
||||||
|
to.NormalizeInPlace();
|
||||||
|
|
||||||
|
//if (DotProduct( to, m_forward ) > 0.7071f)
|
||||||
|
if ((to.x * m_forward.x + to.y * m_forward.y) > 0.7071f)
|
||||||
|
m_targetArea[ m_targetAreaCount++ ] = area;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (m_targetAreaCount < MAX_TARGET_AREAS);
|
||||||
|
}
|
||||||
|
|
||||||
|
CBasePlayer *m_player;
|
||||||
|
Vector2D m_forward;
|
||||||
|
Vector2D m_cutoff;
|
||||||
|
CNavArea *m_targetArea[ MAX_TARGET_AREAS ];
|
||||||
|
int m_targetAreaCount;
|
||||||
|
|
||||||
|
};/* size: 536, cachelines: 9, members: 5 */
|
||||||
|
|
||||||
#ifdef HOOK_GAMEDLL
|
#ifdef HOOK_GAMEDLL
|
||||||
|
|
||||||
|
@ -387,7 +387,7 @@ public:
|
|||||||
NOBODY static void MonitorBotCVars(void);
|
NOBODY static void MonitorBotCVars(void);
|
||||||
NOBODY static void MaintainBotQuota(void);
|
NOBODY static void MaintainBotQuota(void);
|
||||||
NOBODY static bool AddBot(BotProfile *profile, BotProfileTeamType team);
|
NOBODY static bool AddBot(BotProfile *profile, BotProfileTeamType team);
|
||||||
NOBODY static bool BotAddCommand(BotProfileTeamType, bool isFromConsole);
|
NOBODY static bool BotAddCommand(BotProfileTeamType team, bool isFromConsole);
|
||||||
|
|
||||||
#ifndef HOOK_GAMEDLL
|
#ifndef HOOK_GAMEDLL
|
||||||
private:
|
private:
|
||||||
|
@ -26,83 +26,6 @@ NOBODY void FollowState::ComputeLeaderMotionState(float leaderSpeed)
|
|||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <568fae> ../cstrike/dlls/bot/states/cs_bot_follow.cpp:95 */
|
|
||||||
class FollowTargetCollector
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
FollowTargetCollector(CBasePlayer *player)
|
|
||||||
{
|
|
||||||
m_player = player;
|
|
||||||
|
|
||||||
Vector playerVel = player->pev->velocity;
|
|
||||||
|
|
||||||
m_forward.x = playerVel.x;
|
|
||||||
m_forward.y = playerVel.y;
|
|
||||||
|
|
||||||
float speed = m_forward.NormalizeInPlace();
|
|
||||||
|
|
||||||
Vector playerOrigin = player->pev->origin;
|
|
||||||
|
|
||||||
const float walkSpeed = 100.0f;
|
|
||||||
if (speed < walkSpeed)
|
|
||||||
{
|
|
||||||
m_cutoff.x = playerOrigin.x;
|
|
||||||
m_cutoff.y = playerOrigin.y;
|
|
||||||
|
|
||||||
m_forward.x = 0.0f;
|
|
||||||
m_forward.y = 0.0f;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const float k = 1.5f; // 2.0f;
|
|
||||||
float trimSpeed = min(speed, 200.0f);
|
|
||||||
|
|
||||||
m_cutoff.x = playerOrigin.x + k * trimSpeed * m_forward.x;
|
|
||||||
m_cutoff.y = playerOrigin.y + k * trimSpeed * m_forward.y;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_targetAreaCount = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
enum { MAX_TARGET_AREAS = 128 };
|
|
||||||
|
|
||||||
/* <568dc3> ../cstrike/dlls/bot/states/cs_bot_follow.cpp:124 */
|
|
||||||
bool operator()(CNavArea *area)
|
|
||||||
{
|
|
||||||
if (m_targetAreaCount >= MAX_TARGET_AREAS)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// only use two-way connections
|
|
||||||
if (!area->GetParent() || area->IsConnected(area->GetParent(), NUM_DIRECTIONS))
|
|
||||||
{
|
|
||||||
if (m_forward.IsZero())
|
|
||||||
{
|
|
||||||
m_targetArea[ m_targetAreaCount++ ] = area;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// collect areas in the direction of the player's forward motion
|
|
||||||
Vector2D to(((*area->GetCenter()).x - m_cutoff.x), (*area->GetCenter()).y - m_cutoff.y);
|
|
||||||
to.NormalizeInPlace();
|
|
||||||
|
|
||||||
//if (DotProduct( to, m_forward ) > 0.7071f)
|
|
||||||
if ((to.x * m_forward.x + to.y * m_forward.y) > 0.7071f)
|
|
||||||
m_targetArea[ m_targetAreaCount++ ] = area;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return (m_targetAreaCount < MAX_TARGET_AREAS);
|
|
||||||
}
|
|
||||||
|
|
||||||
CBasePlayer *m_player;
|
|
||||||
Vector2D m_forward;
|
|
||||||
Vector2D m_cutoff;
|
|
||||||
CNavArea *m_targetArea[ MAX_TARGET_AREAS ];
|
|
||||||
int m_targetAreaCount;
|
|
||||||
|
|
||||||
};/* size: 536, cachelines: 9, members: 5 */
|
|
||||||
|
|
||||||
|
|
||||||
/* <569368> ../cstrike/dlls/bot/states/cs_bot_follow.cpp:164 */
|
/* <569368> ../cstrike/dlls/bot/states/cs_bot_follow.cpp:164 */
|
||||||
NOBODY void FollowState::OnUpdate(CCSBot *me)
|
NOBODY void FollowState::OnUpdate(CCSBot *me)
|
||||||
{
|
{
|
||||||
|
@ -74,7 +74,6 @@ public:
|
|||||||
void SendPartialNotification(void);
|
void SendPartialNotification(void);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//int ()(void) * * _vptr.CCareerTask;
|
|
||||||
|
|
||||||
bool m_isComplete;
|
bool m_isComplete;
|
||||||
const char *m_name;
|
const char *m_name;
|
||||||
@ -95,13 +94,15 @@ private:
|
|||||||
|
|
||||||
typedef std::list<CCareerTask *> CareerTaskList;
|
typedef std::list<CCareerTask *> CareerTaskList;
|
||||||
|
|
||||||
|
/* <1efed1> ../cstrike/dlls/career_tasks.cpp:636 */
|
||||||
class CCareerTaskManager
|
class CCareerTaskManager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CCareerTaskManager(void);
|
CCareerTaskManager(void);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void Create(void);
|
static void Create(void);
|
||||||
|
|
||||||
void Reset(bool deleteTasks);
|
void Reset(bool deleteTasks);
|
||||||
void AddTask(const char *taskName, const char *weaponName, int eventCount, bool mustLive, bool crossRounds, bool isComplete);
|
void AddTask(const char *taskName, const char *weaponName, int eventCount, bool mustLive, bool crossRounds, bool isComplete);
|
||||||
|
|
||||||
@ -138,19 +139,17 @@ public:
|
|||||||
void UnlatchRoundEndMessage(void);
|
void UnlatchRoundEndMessage(void);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CareerTaskList m_tasks; // Lin - 0 | Win - 0
|
|
||||||
|
|
||||||
#if defined(_WIN32) && defined(HOOK_GAMEDLL)
|
#if defined(_WIN32) && defined(HOOK_GAMEDLL)
|
||||||
// TODO: std::list have be size with 12 on platform Windows
|
int unknown_padding1;
|
||||||
|
|
||||||
int padding_std_list_size_12;
|
|
||||||
|
|
||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
int m_nextId; // Lin - 8 | Win - 12
|
CareerTaskList m_tasks;
|
||||||
float m_roundStartTime; // Lin - 12 | Win - 16
|
|
||||||
int m_taskTime; // Lin - 16 | Win - 20
|
int m_nextId;
|
||||||
int m_finishedTaskTime; // Lin - 20 | Win - 24
|
float m_roundStartTime;
|
||||||
|
int m_taskTime;
|
||||||
|
int m_finishedTaskTime;
|
||||||
|
|
||||||
int m_finishedTaskRound;
|
int m_finishedTaskRound;
|
||||||
GameEventType m_roundEndMessage;
|
GameEventType m_roundEndMessage;
|
||||||
@ -168,6 +167,7 @@ struct TaskInfo
|
|||||||
|
|
||||||
};/* size: 12, cachelines: 1, members: 3 */
|
};/* size: 12, cachelines: 1, members: 3 */
|
||||||
|
|
||||||
|
/* <1ef56d> ../cstrike/dlls/career_tasks.cpp:139 */
|
||||||
class CPreventDefuseTask: public CCareerTask
|
class CPreventDefuseTask: public CCareerTask
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -430,7 +430,7 @@ public:
|
|||||||
}
|
}
|
||||||
virtual BOOL ReflectGauss(void)
|
virtual BOOL ReflectGauss(void)
|
||||||
{
|
{
|
||||||
return (IsBSPModel() && pev->takedamage == 0.0f);
|
return (IsBSPModel() && pev->takedamage == DAMAGE_NO);
|
||||||
}
|
}
|
||||||
virtual BOOL HasTarget(string_t targetname)
|
virtual BOOL HasTarget(string_t targetname)
|
||||||
{
|
{
|
||||||
@ -667,7 +667,10 @@ class CPointEntity: public CBaseEntity
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NOBODY virtual void Spawn(void);
|
NOBODY virtual void Spawn(void);
|
||||||
NOBODY virtual int ObjectCaps(void);
|
NOBODY virtual int ObjectCaps(void)
|
||||||
|
{
|
||||||
|
return ObjectCaps_();
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HOOK_GAMEDLL
|
#ifdef HOOK_GAMEDLL
|
||||||
|
|
||||||
@ -918,17 +921,12 @@ public:
|
|||||||
int Restore_(CRestore &restore);
|
int Restore_(CRestore &restore);
|
||||||
int ObjectCaps_(void)
|
int ObjectCaps_(void)
|
||||||
{
|
{
|
||||||
if(pev->takedamage == 0.0f)
|
if(pev->takedamage == DAMAGE_NO)
|
||||||
return FCAP_IMPULSE_USE;
|
return FCAP_IMPULSE_USE;
|
||||||
|
|
||||||
return (CBaseToggle:: ObjectCaps() & ~FCAP_ACROSS_TRANSITION);
|
return (CBaseToggle::ObjectCaps() & ~FCAP_ACROSS_TRANSITION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -98,6 +98,9 @@ NOBODY void CBaseDoor::SetToggleState_(int state)
|
|||||||
// int state); // 350
|
// int state); // 350
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define noiseMoving noise1
|
||||||
|
#define noiseArrived noise2
|
||||||
|
|
||||||
/* <6924c> ../cstrike/dlls/doors.cpp:359 */
|
/* <6924c> ../cstrike/dlls/doors.cpp:359 */
|
||||||
NOBODY void CBaseDoor::Precache_(void)
|
NOBODY void CBaseDoor::Precache_(void)
|
||||||
{
|
{
|
||||||
|
@ -32,9 +32,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define noiseMoving noise1
|
|
||||||
#define noiseArrived noise2
|
|
||||||
|
|
||||||
#define DOOR_SENTENCEWAIT 6
|
#define DOOR_SENTENCEWAIT 6
|
||||||
#define DOOR_SOUNDWAIT 3
|
#define DOOR_SOUNDWAIT 3
|
||||||
#define BUTTON_SOUNDWAIT 0.5
|
#define BUTTON_SOUNDWAIT 0.5
|
||||||
|
@ -79,12 +79,6 @@ LINK_ENTITY_TO_CLASS(env_bubbles, CBubbling);
|
|||||||
/* <741e0> ../cstrike/dlls/effects.cpp:68 */
|
/* <741e0> ../cstrike/dlls/effects.cpp:68 */
|
||||||
IMPLEMENT_SAVERESTORE(CBubbling, CBaseEntity);
|
IMPLEMENT_SAVERESTORE(CBubbling, CBaseEntity);
|
||||||
|
|
||||||
/* <73427> ../cstrike/dlls/effects.cpp:48 */
|
|
||||||
NOBODY int CBubbling::ObjectCaps_(void)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* <7344d> ../cstrike/dlls/effects.cpp:73 */
|
/* <7344d> ../cstrike/dlls/effects.cpp:73 */
|
||||||
NOBODY void CBubbling::Spawn_(void)
|
NOBODY void CBubbling::Spawn_(void)
|
||||||
{
|
{
|
||||||
@ -1245,11 +1239,6 @@ int CSprite::Restore(CRestore &restore)
|
|||||||
return Restore_(restore);
|
return Restore_(restore);
|
||||||
}
|
}
|
||||||
|
|
||||||
int CSprite::ObjectCaps(void)
|
|
||||||
{
|
|
||||||
return ObjectCaps_();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CSprite::Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
|
void CSprite::Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
|
||||||
{
|
{
|
||||||
Use_(pActivator, pCaller, useType, value);
|
Use_(pActivator, pCaller, useType, value);
|
||||||
@ -1265,16 +1254,6 @@ void CBeam::Precache(void)
|
|||||||
Precache_();
|
Precache_();
|
||||||
}
|
}
|
||||||
|
|
||||||
int CBeam::ObjectCaps(void)
|
|
||||||
{
|
|
||||||
return ObjectCaps_();
|
|
||||||
}
|
|
||||||
|
|
||||||
Vector CBeam::Center(void)
|
|
||||||
{
|
|
||||||
return Center_();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CLaser::Spawn(void)
|
void CLaser::Spawn(void)
|
||||||
{
|
{
|
||||||
Spawn_();
|
Spawn_();
|
||||||
@ -1330,11 +1309,6 @@ int CBubbling::Restore(CRestore &restore)
|
|||||||
return Restore_(restore);
|
return Restore_(restore);
|
||||||
}
|
}
|
||||||
|
|
||||||
int CBubbling::ObjectCaps(void)
|
|
||||||
{
|
|
||||||
return ObjectCaps_();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CBubbling::Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
|
void CBubbling::Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
|
||||||
{
|
{
|
||||||
Use_(pActivator, pCaller, useType, value);
|
Use_(pActivator, pCaller, useType, value);
|
||||||
|
@ -77,14 +77,10 @@ public:
|
|||||||
NOBODY virtual void Restart(void);
|
NOBODY virtual void Restart(void);
|
||||||
NOBODY virtual int Save(CSave &save);
|
NOBODY virtual int Save(CSave &save);
|
||||||
NOBODY virtual int Restore(CRestore &restore);
|
NOBODY virtual int Restore(CRestore &restore);
|
||||||
NOBODY virtual int ObjectCaps(void);
|
NOBODY virtual int ObjectCaps(void)
|
||||||
//{
|
{
|
||||||
// int flags = 0;
|
return ObjectCaps_();
|
||||||
// if (pev->spawnflags & SF_SPRITE_TEMPORARY)
|
}
|
||||||
// flags = FCAP_DONT_SAVE;
|
|
||||||
|
|
||||||
// return (CBaseEntity :: ObjectCaps() & ~FCAP_ACROSS_TRANSITION)|flags;
|
|
||||||
//}
|
|
||||||
NOBODY virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
NOBODY virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
||||||
|
|
||||||
#ifdef HOOK_GAMEDLL
|
#ifdef HOOK_GAMEDLL
|
||||||
@ -100,7 +96,7 @@ public:
|
|||||||
if (pev->spawnflags & SF_SPRITE_TEMPORARY)
|
if (pev->spawnflags & SF_SPRITE_TEMPORARY)
|
||||||
flags = FCAP_DONT_SAVE;
|
flags = FCAP_DONT_SAVE;
|
||||||
|
|
||||||
return (CBaseEntity :: ObjectCaps() & ~FCAP_ACROSS_TRANSITION)|flags;
|
return (CBaseEntity::ObjectCaps() & ~FCAP_ACROSS_TRANSITION)|flags;
|
||||||
}
|
}
|
||||||
void Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
void Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
||||||
|
|
||||||
@ -187,18 +183,14 @@ class CBeam: public CBaseEntity
|
|||||||
public:
|
public:
|
||||||
NOBODY virtual void Spawn(void);
|
NOBODY virtual void Spawn(void);
|
||||||
NOBODY virtual void Precache(void);
|
NOBODY virtual void Precache(void);
|
||||||
NOBODY virtual int ObjectCaps(void);
|
NOBODY virtual int ObjectCaps(void)
|
||||||
//{
|
{
|
||||||
// int flags = 0;
|
return ObjectCaps_();
|
||||||
// if (pev->spawnflags & SF_BEAM_TEMPORARY)
|
}
|
||||||
// flags = FCAP_DONT_SAVE;
|
NOBODY virtual Vector Center(void)
|
||||||
|
{
|
||||||
// return (CBaseEntity::ObjectCaps() & ~FCAP_ACROSS_TRANSITION)|flags;
|
return Center_();
|
||||||
//}
|
}
|
||||||
NOBODY virtual Vector Center(void);
|
|
||||||
//{
|
|
||||||
// return (GetStartPos() + GetEndPos()) * 0.5;
|
|
||||||
//}
|
|
||||||
|
|
||||||
#ifdef HOOK_GAMEDLL
|
#ifdef HOOK_GAMEDLL
|
||||||
|
|
||||||
@ -402,10 +394,10 @@ public:
|
|||||||
NOBODY virtual void KeyValue(KeyValueData *pkvd);
|
NOBODY virtual void KeyValue(KeyValueData *pkvd);
|
||||||
NOBODY virtual int Save(CSave &save);
|
NOBODY virtual int Save(CSave &save);
|
||||||
NOBODY virtual int Restore(CRestore &restore);
|
NOBODY virtual int Restore(CRestore &restore);
|
||||||
NOBODY virtual int ObjectCaps(void);
|
NOBODY virtual int ObjectCaps(void)
|
||||||
//{
|
{
|
||||||
// return 0;//CBaseEntity::ObjectCaps() & ~FCAP_ACROSS_TRANSITION;
|
return ObjectCaps_();
|
||||||
//}
|
}
|
||||||
NOBODY virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
NOBODY virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
||||||
|
|
||||||
#ifdef HOOK_GAMEDLL
|
#ifdef HOOK_GAMEDLL
|
||||||
@ -415,7 +407,10 @@ public:
|
|||||||
void KeyValue_(KeyValueData *pkvd);
|
void KeyValue_(KeyValueData *pkvd);
|
||||||
int Save_(CSave &save);
|
int Save_(CSave &save);
|
||||||
int Restore_(CRestore &restore);
|
int Restore_(CRestore &restore);
|
||||||
int ObjectCaps_(void);
|
int ObjectCaps_(void)
|
||||||
|
{
|
||||||
|
return CBaseEntity::ObjectCaps() & ~FCAP_ACROSS_TRANSITION;
|
||||||
|
}
|
||||||
void Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
void Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
||||||
|
|
||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
|
@ -82,6 +82,8 @@ extern enginefuncs_t g_engfuncs;
|
|||||||
#define CRC32_FINAL (*g_engfuncs.pfnCRC32_Final)
|
#define CRC32_FINAL (*g_engfuncs.pfnCRC32_Final)
|
||||||
#define RANDOM_LONG (*g_engfuncs.pfnRandomLong)
|
#define RANDOM_LONG (*g_engfuncs.pfnRandomLong)
|
||||||
#define RANDOM_FLOAT (*g_engfuncs.pfnRandomFloat)
|
#define RANDOM_FLOAT (*g_engfuncs.pfnRandomFloat)
|
||||||
|
#define ADD_SERVER_COMMAND (*g_engfuncs.pfnAddServerCommand)
|
||||||
|
#define SET_CLIENT_LISTENING (*g_engfuncs.pfnVoice_SetClientListening)
|
||||||
#define GETPLAYERAUTHID (*g_engfuncs.pfnGetPlayerAuthId)
|
#define GETPLAYERAUTHID (*g_engfuncs.pfnGetPlayerAuthId)
|
||||||
#define IS_CAREER_MATCH (*g_engfuncs.pfnIsCareerMatch)
|
#define IS_CAREER_MATCH (*g_engfuncs.pfnIsCareerMatch)
|
||||||
|
|
||||||
|
@ -485,12 +485,6 @@ LINK_ENTITY_TO_CLASS(func_tankcontrols, CFuncTankControls);
|
|||||||
/* <8d71d> ../cstrike/dlls/func_tank.cpp:995 */
|
/* <8d71d> ../cstrike/dlls/func_tank.cpp:995 */
|
||||||
IMPLEMENT_SAVERESTORE(CFuncTankControls, CBaseEntity);
|
IMPLEMENT_SAVERESTORE(CFuncTankControls, CBaseEntity);
|
||||||
|
|
||||||
/* <8d2ea> ../cstrike/dlls/func_tank.cpp:997 */
|
|
||||||
NOBODY int CFuncTankControls::ObjectCaps_(void)
|
|
||||||
{
|
|
||||||
return (CBaseEntity::ObjectCaps() & ~FCAP_ACROSS_TRANSITION) | FCAP_IMPULSE_USE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* <8d310> ../cstrike/dlls/func_tank.cpp:1003 */
|
/* <8d310> ../cstrike/dlls/func_tank.cpp:1003 */
|
||||||
NOBODY void CFuncTankControls::Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
|
NOBODY void CFuncTankControls::Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
|
||||||
{
|
{
|
||||||
@ -631,11 +625,6 @@ int CFuncTankControls::Restore(CRestore &restore)
|
|||||||
return Restore_(restore);
|
return Restore_(restore);
|
||||||
}
|
}
|
||||||
|
|
||||||
int CFuncTankControls::ObjectCaps(void)
|
|
||||||
{
|
|
||||||
return ObjectCaps_();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CFuncTankControls::Think(void)
|
void CFuncTankControls::Think(void)
|
||||||
{
|
{
|
||||||
Think_();
|
Think_();
|
||||||
|
@ -260,7 +260,10 @@ public:
|
|||||||
NOBODY virtual void Spawn(void);
|
NOBODY virtual void Spawn(void);
|
||||||
NOBODY virtual int Save(CSave &save);
|
NOBODY virtual int Save(CSave &save);
|
||||||
NOBODY virtual int Restore(CRestore &restore);
|
NOBODY virtual int Restore(CRestore &restore);
|
||||||
NOBODY virtual int ObjectCaps(void);
|
NOBODY virtual int ObjectCaps(void)
|
||||||
|
{
|
||||||
|
return ObjectCaps_();
|
||||||
|
}
|
||||||
NOBODY virtual void Think(void);
|
NOBODY virtual void Think(void);
|
||||||
NOBODY virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
NOBODY virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
||||||
|
|
||||||
@ -269,7 +272,10 @@ public:
|
|||||||
void Spawn_(void);
|
void Spawn_(void);
|
||||||
int Save_(CSave &save);
|
int Save_(CSave &save);
|
||||||
int Restore_(CRestore &restore);
|
int Restore_(CRestore &restore);
|
||||||
int ObjectCaps_(void);
|
int ObjectCaps_(void)
|
||||||
|
{
|
||||||
|
return (CBaseEntity::ObjectCaps() & ~FCAP_ACROSS_TRANSITION) | FCAP_IMPULSE_USE;
|
||||||
|
}
|
||||||
void Think_(void);
|
void Think_(void);
|
||||||
void Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
void Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
||||||
|
|
||||||
|
@ -85,6 +85,13 @@ void CGameRules::RefreshSkillData_(void)
|
|||||||
/* <ada23> ../cstrike/dlls/gamerules.cpp:157 */
|
/* <ada23> ../cstrike/dlls/gamerules.cpp:157 */
|
||||||
NOBODY CGameRules *InstallGameRules(void)
|
NOBODY CGameRules *InstallGameRules(void)
|
||||||
{
|
{
|
||||||
|
SERVER_COMMAND("exec game.cfg\n");
|
||||||
|
SERVER_EXECUTE();
|
||||||
|
|
||||||
|
if (!gpGlobals->deathmatch)
|
||||||
|
return new CHalfLifeTraining;
|
||||||
|
|
||||||
|
return new CHalfLifeMultiplay;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HOOK_GAMEDLL
|
#ifdef HOOK_GAMEDLL
|
||||||
|
@ -35,7 +35,9 @@
|
|||||||
#include "game_shared/voice_gamemgr.h"
|
#include "game_shared/voice_gamemgr.h"
|
||||||
|
|
||||||
#define MAX_RULE_BUFFER 1024
|
#define MAX_RULE_BUFFER 1024
|
||||||
|
#define MAX_VOTE_MAPS 100
|
||||||
#define ITEM_RESPAWN_TIME 30
|
#define ITEM_RESPAWN_TIME 30
|
||||||
|
#define MAX_VIP_QUEUES 5
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
@ -487,7 +489,7 @@ public:
|
|||||||
int m_iTotalArmourCount;
|
int m_iTotalArmourCount;
|
||||||
int m_iUnBalancedRounds;
|
int m_iUnBalancedRounds;
|
||||||
int m_iNumEscapeRounds;
|
int m_iNumEscapeRounds;
|
||||||
int m_iMapVotes[100];
|
int m_iMapVotes[ MAX_VOTE_MAPS ];
|
||||||
int m_iLastPick;
|
int m_iLastPick;
|
||||||
int m_iMaxMapTime;
|
int m_iMaxMapTime;
|
||||||
int m_iMaxRounds;
|
int m_iMaxRounds;
|
||||||
@ -498,7 +500,7 @@ public:
|
|||||||
float m_flForceChaseCamValue;
|
float m_flForceChaseCamValue;
|
||||||
float m_flFadeToBlackValue;
|
float m_flFadeToBlackValue;
|
||||||
CBasePlayer *m_pVIP;
|
CBasePlayer *m_pVIP;
|
||||||
CBasePlayer *VIPQueue[5];
|
CBasePlayer *VIPQueue[ MAX_VIP_QUEUES ];
|
||||||
protected:
|
protected:
|
||||||
float m_flIntermissionEndTime;
|
float m_flIntermissionEndTime;
|
||||||
float m_flIntermissionStartTime;
|
float m_flIntermissionStartTime;
|
||||||
@ -537,23 +539,75 @@ class CMapInfo: public CPointEntity
|
|||||||
public:
|
public:
|
||||||
virtual void Spawn(void);
|
virtual void Spawn(void);
|
||||||
virtual void KeyValue(KeyValueData *pkvd);
|
virtual void KeyValue(KeyValueData *pkvd);
|
||||||
|
|
||||||
|
#ifdef HOOK_GAMEDLL
|
||||||
|
|
||||||
|
void Spawn_(void);
|
||||||
|
void KeyValue_(KeyValueData *pkvd);
|
||||||
|
|
||||||
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
public:
|
public:
|
||||||
int m_iBuyingStatus;
|
int m_iBuyingStatus;
|
||||||
float m_flBombRadius;
|
float m_flBombRadius;
|
||||||
|
|
||||||
};/* size: 160, cachelines: 3, members: 3 */
|
};/* size: 160, cachelines: 3, members: 3 */
|
||||||
|
|
||||||
|
/* <111732> ../cstrike/dlls/multiplay_gamerules.cpp:292 */
|
||||||
|
class CCStrikeGameMgrHelper: public IVoiceGameMgrHelper
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual bool CanPlayerHearPlayer(CBasePlayer *pListener, CBasePlayer *pSender)
|
||||||
|
{
|
||||||
|
return CanPlayerHearPlayer_(pListener, pSender);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef HOOK_GAMEDLL
|
||||||
|
|
||||||
|
bool CanPlayerHearPlayer_(CBasePlayer *pListener, CBasePlayer *pSender)
|
||||||
|
{
|
||||||
|
if (!pSender->IsPlayer() || pListener->m_iTeam != pSender->m_iTeam)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
BOOL bListenerAlive = pListener->IsAlive();
|
||||||
|
BOOL bSenderAlive = pSender->IsAlive();
|
||||||
|
|
||||||
|
if (pListener->IsObserver())
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (bListenerAlive)
|
||||||
|
{
|
||||||
|
if (!bSenderAlive)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (bSenderAlive)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (bListenerAlive == bSenderAlive);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
|
};/* size: 4, cachelines: 1, members: 1 */
|
||||||
|
|
||||||
#ifdef HOOK_GAMEDLL
|
#ifdef HOOK_GAMEDLL
|
||||||
|
|
||||||
#define g_pGameRules (*pg_pGameRules)
|
#define g_pGameRules (*pg_pGameRules)
|
||||||
|
#define g_GameMgrHelper (*pg_GameMgrHelper)
|
||||||
|
#define sv_clienttrace (*psv_clienttrace)
|
||||||
|
#define g_pMPGameRules (*pg_pMPGameRules)
|
||||||
|
|
||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
extern CHalfLifeMultiplay *g_pGameRules;
|
extern CHalfLifeMultiplay *g_pGameRules;
|
||||||
|
extern CCStrikeGameMgrHelper g_GameMgrHelper;
|
||||||
|
extern cvar_t *sv_clienttrace;
|
||||||
|
extern CHalfLifeMultiplay *g_pMPGameRules;
|
||||||
|
|
||||||
NOBODY CGameRules *InstallGameRules(void);
|
CGameRules *InstallGameRules(void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Multiplay gamerules
|
* Multiplay gamerules
|
||||||
|
@ -703,11 +703,6 @@ int CGrenade::Restore(CRestore &restore)
|
|||||||
Restore_(restore);
|
Restore_(restore);
|
||||||
}
|
}
|
||||||
|
|
||||||
//int CGrenade::ObjectCaps(void)
|
|
||||||
//{
|
|
||||||
// return ObjectCaps_();
|
|
||||||
//}
|
|
||||||
|
|
||||||
void CGrenade::Killed(entvars_t *pevAttacker, int iGib)
|
void CGrenade::Killed(entvars_t *pevAttacker, int iGib)
|
||||||
{
|
{
|
||||||
Killed_(pevAttacker, iGib);
|
Killed_(pevAttacker, iGib);
|
||||||
|
39
regamedll/dlls/h_ai.h
Normal file
39
regamedll/dlls/h_ai.h
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License as published by the
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at
|
||||||
|
* your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software Foundation,
|
||||||
|
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* In addition, as a special exception, the author gives permission to
|
||||||
|
* link the code of this program with the Half-Life Game Engine ("HL
|
||||||
|
* Engine") and Modified Game Libraries ("MODs") developed by Valve,
|
||||||
|
* L.L.C ("Valve"). You must obey the GNU General Public License in all
|
||||||
|
* respects for all of the code used other than the HL Engine and MODs
|
||||||
|
* from Valve. If you modify this file, you may extend this exception
|
||||||
|
* to your version of the file, but you are not obligated to do so. If
|
||||||
|
* you do not wish to do so, delete this exception statement from your
|
||||||
|
* version.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef H_AI_H
|
||||||
|
#define H_AI_H
|
||||||
|
#ifdef _WIN32
|
||||||
|
#pragma once
|
||||||
|
#endif
|
||||||
|
|
||||||
|
NOBODY BOOL FBoxVisible(entvars_t *pevLooker, entvars_t *pevTarget, Vector &vecTargetOrigin, float flSize);
|
||||||
|
NOBODY Vector VecCheckToss(entvars_t *pev, Vector &vecSpot1, Vector vecSpot2, float flGravityAdj);
|
||||||
|
NOBODY Vector VecCheckThrow(entvars_t *pev, Vector &vecSpot1, Vector vecSpot2, float flSpeed, float flGravityAdj);
|
||||||
|
|
||||||
|
#endif // H_AI_H
|
@ -29,55 +29,142 @@ LINK_ENTITY_TO_CLASS(func_recharge, CRecharge);
|
|||||||
/* <c648b> ../cstrike/dlls/h_battery.cpp:66 */
|
/* <c648b> ../cstrike/dlls/h_battery.cpp:66 */
|
||||||
void CRecharge::KeyValue_(KeyValueData *pkvd)
|
void CRecharge::KeyValue_(KeyValueData *pkvd)
|
||||||
{
|
{
|
||||||
// FStrEq(const char *sz1,
|
if (FStrEq(pkvd->szKeyName, "style")
|
||||||
// const char *sz2); // 68
|
|| FStrEq(pkvd->szKeyName, "height")
|
||||||
// FStrEq(const char *sz1,
|
|| FStrEq(pkvd->szKeyName, "value1")
|
||||||
// const char *sz2); // 69
|
|| FStrEq(pkvd->szKeyName, "value2")
|
||||||
// FStrEq(const char *sz1,
|
|| FStrEq(pkvd->szKeyName, "value3"))
|
||||||
// const char *sz2); // 70
|
{
|
||||||
// FStrEq(const char *sz1,
|
pkvd->fHandled = TRUE;
|
||||||
// const char *sz2); // 71
|
}
|
||||||
// FStrEq(const char *sz1,
|
else if (FStrEq(pkvd->szKeyName, "dmdelay"))
|
||||||
// const char *sz2); // 72
|
{
|
||||||
// FStrEq(const char *sz1,
|
m_iReactivate = atoi(pkvd->szValue);
|
||||||
// const char *sz2); // 76
|
pkvd->fHandled = TRUE;
|
||||||
// atoi(const char *__nptr); // 78
|
}
|
||||||
|
else
|
||||||
|
CBaseToggle::KeyValue(pkvd);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <c616f> ../cstrike/dlls/h_battery.cpp:85 */
|
/* <c616f> ../cstrike/dlls/h_battery.cpp:85 */
|
||||||
void CRecharge::Spawn_(void)
|
void CRecharge::Spawn_(void)
|
||||||
{
|
{
|
||||||
|
Precache();
|
||||||
|
|
||||||
|
pev->solid = SOLID_BSP;
|
||||||
|
pev->movetype = MOVETYPE_PUSH;
|
||||||
|
|
||||||
|
UTIL_SetOrigin(pev, pev->origin); // set size and link into world
|
||||||
|
UTIL_SetSize(pev, pev->mins, pev->maxs);
|
||||||
|
SET_MODEL(ENT(pev), STRING(pev->model));
|
||||||
|
|
||||||
|
m_iJuice = (int)gSkillData.suitchargerCapacity;
|
||||||
|
pev->frame = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <c6122> ../cstrike/dlls/h_battery.cpp:99 */
|
/* <c6122> ../cstrike/dlls/h_battery.cpp:99 */
|
||||||
void CRecharge::Precache_(void)
|
void CRecharge::Precache_(void)
|
||||||
{
|
{
|
||||||
|
PRECACHE_SOUND("items/suitcharge1.wav");
|
||||||
|
PRECACHE_SOUND("items/suitchargeno1.wav");
|
||||||
|
PRECACHE_SOUND("items/suitchargeok1.wav");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <c630e> ../cstrike/dlls/h_battery.cpp:107 */
|
/* <c630e> ../cstrike/dlls/h_battery.cpp:107 */
|
||||||
void CRecharge::Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
|
void CRecharge::Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
|
||||||
{
|
{
|
||||||
// FClassnameIs(entvars_t *pev,
|
// if it's not a player, ignore
|
||||||
// const char *szClassname); // 110
|
if (!FClassnameIs(pActivator->pev, "player"))
|
||||||
// Use(CRecharge *const this,
|
return;
|
||||||
// class CBaseEntity *pActivator,
|
|
||||||
// class CBaseEntity *pCaller,
|
// if there is no juice left, turn it off
|
||||||
// USE_TYPE useType,
|
if (m_iJuice <= 0)
|
||||||
// float value); // 107
|
{
|
||||||
|
pev->frame = 1;
|
||||||
|
Off();
|
||||||
|
}
|
||||||
|
|
||||||
|
// if the player doesn't have the suit, or there is no juice left, make the deny noise
|
||||||
|
if (m_iJuice <= 0 || !(pActivator->pev->weapons & (1 << WEAPON_SUIT)))
|
||||||
|
{
|
||||||
|
if (m_flSoundTime <= gpGlobals->time)
|
||||||
|
{
|
||||||
|
m_flSoundTime = gpGlobals->time + 0.62;
|
||||||
|
EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/suitchargeno1.wav", 0.85, ATTN_NORM);
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
pev->nextthink = pev->ltime + 0.25;
|
||||||
|
SetThink(&CRecharge::Off);
|
||||||
|
|
||||||
|
// Time to recharge yet?
|
||||||
|
if (m_flNextCharge >= gpGlobals->time)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Make sure that we have a caller
|
||||||
|
if (!pActivator)
|
||||||
|
return;
|
||||||
|
|
||||||
|
m_hActivator = pActivator;//EHANDLE::CBaseEntity *operator=
|
||||||
|
|
||||||
|
//only recharge the player
|
||||||
|
if (!m_hActivator->IsPlayer())
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Play the on sound or the looping charging sound
|
||||||
|
if (!m_iOn)
|
||||||
|
{
|
||||||
|
m_iOn++;
|
||||||
|
EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/suitchargeok1.wav", 0.85, ATTN_NORM);
|
||||||
|
m_flSoundTime = gpGlobals->time + 0.56;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_iOn == 1 && m_flSoundTime <= gpGlobals->time)
|
||||||
|
{
|
||||||
|
m_iOn++;
|
||||||
|
EMIT_SOUND(ENT(pev), CHAN_STATIC, "items/suitcharge1.wav", 0.85, ATTN_NORM);
|
||||||
|
}
|
||||||
|
|
||||||
|
// charge the player
|
||||||
|
if (m_hActivator->pev->armorvalue < 100)
|
||||||
|
{
|
||||||
|
m_iJuice--;
|
||||||
|
m_hActivator->pev->armorvalue += 1;
|
||||||
|
|
||||||
|
if (m_hActivator->pev->armorvalue > 100)
|
||||||
|
m_hActivator->pev->armorvalue = 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
// govern the rate of charge
|
||||||
|
m_flNextCharge = gpGlobals->time + 0.1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <c6149> ../cstrike/dlls/h_battery.cpp:178 */
|
/* <c6149> ../cstrike/dlls/h_battery.cpp:178 */
|
||||||
void CRecharge::Recharge(void)
|
void CRecharge::Recharge(void)
|
||||||
{
|
{
|
||||||
|
m_iJuice = gSkillData.suitchargerCapacity;
|
||||||
|
pev->frame = 0;
|
||||||
|
SetThink(&CRecharge::SUB_DoNothing);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <c622e> ../cstrike/dlls/h_battery.cpp:185 */
|
/* <c622e> ../cstrike/dlls/h_battery.cpp:185 */
|
||||||
void CRecharge::Off(void)
|
void CRecharge::Off(void)
|
||||||
{
|
{
|
||||||
// STOP_SOUND(edict_t *entity,
|
// Stop looping sound.
|
||||||
// int channel,
|
if (m_iOn > 1)
|
||||||
// const char *sample); // 189
|
STOP_SOUND(ENT(pev), CHAN_STATIC, "items/suitcharge1.wav");
|
||||||
// Off(CRecharge *const this); // 185
|
|
||||||
|
m_iOn = 0;
|
||||||
|
|
||||||
|
if (!m_iJuice && (m_iReactivate = g_pGameRules->FlHEVChargerRechargeTime()) > 0)
|
||||||
|
{
|
||||||
|
pev->nextthink = pev->ltime + m_iReactivate;
|
||||||
|
SetThink(&CRecharge::Recharge);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
SetThink(&CRecharge::SUB_DoNothing);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HOOK_GAMEDLL
|
#ifdef HOOK_GAMEDLL
|
||||||
|
@ -35,16 +35,32 @@
|
|||||||
class CRecharge: public CBaseToggle
|
class CRecharge: public CBaseToggle
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NOBODY virtual void Spawn(void);
|
virtual void Spawn(void);
|
||||||
NOBODY virtual void Precache(void);
|
virtual void Precache(void);
|
||||||
NOBODY virtual void KeyValue(KeyValueData *pkvd);
|
virtual void KeyValue(KeyValueData *pkvd);
|
||||||
NOBODY virtual int Save(CSave &save);
|
virtual int Save(CSave &save);
|
||||||
NOBODY virtual int Restore(CRestore &restore);
|
virtual int Restore(CRestore &restore);
|
||||||
NOBODY virtual int ObjectCaps(void)
|
virtual int ObjectCaps(void)
|
||||||
|
{
|
||||||
|
return ObjectCaps_();
|
||||||
|
}
|
||||||
|
virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
||||||
|
|
||||||
|
#ifdef HOOK_GAMEDLL
|
||||||
|
|
||||||
|
void Spawn_(void);
|
||||||
|
void Precache_(void);
|
||||||
|
void KeyValue_(KeyValueData *pkvd);
|
||||||
|
int Save_(CSave &save);
|
||||||
|
int Restore_(CRestore &restore);
|
||||||
|
int ObjectCaps_(void)
|
||||||
{
|
{
|
||||||
return ((CBaseToggle::ObjectCaps()|FCAP_CONTINUOUS_USE) & ~FCAP_ACROSS_TRANSITION);
|
return ((CBaseToggle::ObjectCaps()|FCAP_CONTINUOUS_USE) & ~FCAP_ACROSS_TRANSITION);
|
||||||
}
|
}
|
||||||
NOBODY virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
void Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
||||||
|
|
||||||
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void EXPORT Off(void);
|
void EXPORT Off(void);
|
||||||
void EXPORT Recharge(void);
|
void EXPORT Recharge(void);
|
||||||
@ -65,19 +81,6 @@ public:
|
|||||||
int m_iOn;
|
int m_iOn;
|
||||||
float m_flSoundTime;
|
float m_flSoundTime;
|
||||||
|
|
||||||
#ifdef HOOK_GAMEDLL
|
|
||||||
|
|
||||||
NOBODY void Spawn_(void);
|
|
||||||
NOBODY void Precache_(void);
|
|
||||||
NOBODY void KeyValue_(KeyValueData *pkvd);
|
|
||||||
NOBODY int Save_(CSave &save);
|
|
||||||
NOBODY int Restore_(CRestore &restore);
|
|
||||||
NOBODY void Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
|
||||||
|
|
||||||
#endif // HOOK_GAMEDLL
|
|
||||||
|
|
||||||
};/* size: 332, cachelines: 6, members: 7 */
|
};/* size: 332, cachelines: 6, members: 7 */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif // H_BATTERY_H
|
#endif // H_BATTERY_H
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
CHostageManager *g_pHostages;
|
CHostageManager *g_pHostages;
|
||||||
|
int g_iHostageNumber;
|
||||||
|
|
||||||
/* <45c3fa> ../cstrike/dlls/hostage/hostage.cpp:47 */
|
/* <45c3fa> ../cstrike/dlls/hostage/hostage.cpp:47 */
|
||||||
LINK_ENTITY_TO_CLASS(hostage_entity, CHostage);
|
LINK_ENTITY_TO_CLASS(hostage_entity, CHostage);
|
||||||
|
@ -271,10 +271,12 @@ private:
|
|||||||
#ifdef HOOK_GAMEDLL
|
#ifdef HOOK_GAMEDLL
|
||||||
|
|
||||||
#define g_pHostages (*pg_pHostages)
|
#define g_pHostages (*pg_pHostages)
|
||||||
|
#define g_iHostageNumber (*pg_iHostageNumber)
|
||||||
|
|
||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
extern CHostageManager *g_pHostages;
|
extern CHostageManager *g_pHostages;
|
||||||
|
extern int g_iHostageNumber;
|
||||||
|
|
||||||
NOBODY void Hostage_RegisterCVars(void);
|
NOBODY void Hostage_RegisterCVars(void);
|
||||||
NOBODY void InstallHostageManager(void);
|
NOBODY void InstallHostageManager(void);
|
||||||
|
@ -13,12 +13,6 @@ TYPEDESCRIPTION CLight::m_SaveData[] =
|
|||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
TYPEDESCRIPTION CLight::m_SaveData2[] =
|
|
||||||
{
|
|
||||||
DEFINE_FIELD(CLight, m_iStyle, FIELD_INTEGER),
|
|
||||||
DEFINE_FIELD(CLight, m_iszPattern, FIELD_STRING),
|
|
||||||
};
|
|
||||||
|
|
||||||
TYPEDESCRIPTION (*CLight::m_SaveData)[2];
|
TYPEDESCRIPTION (*CLight::m_SaveData)[2];
|
||||||
|
|
||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
@ -153,9 +147,6 @@ void CEnvLight::KeyValue_(KeyValueData *pkvd)
|
|||||||
g = pow( g / 114.0, 0.6 ) * 264;
|
g = pow( g / 114.0, 0.6 ) * 264;
|
||||||
b = pow( b / 114.0, 0.6 ) * 264;
|
b = pow( b / 114.0, 0.6 ) * 264;
|
||||||
|
|
||||||
//r = (int)(powf(r / 114.0, 0.6) * 264);
|
|
||||||
//g = (int)(powf(g / 114.0, 0.6) * 264);
|
|
||||||
//b = (int)(powf(b / 114.0, 0.6) * 264);
|
|
||||||
pkvd->fHandled = TRUE;
|
pkvd->fHandled = TRUE;
|
||||||
|
|
||||||
char szColor[64];
|
char szColor[64];
|
||||||
|
@ -55,7 +55,7 @@ public:
|
|||||||
void Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
void Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
||||||
|
|
||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
static TYPEDESCRIPTION m_SaveData2[2];
|
|
||||||
#ifndef HOOK_GAMEDLL
|
#ifndef HOOK_GAMEDLL
|
||||||
static TYPEDESCRIPTION m_SaveData[2];
|
static TYPEDESCRIPTION m_SaveData[2];
|
||||||
#else // HOOK_GAMEDLL
|
#else // HOOK_GAMEDLL
|
||||||
|
@ -157,12 +157,6 @@ NOBODY void CGameText::Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_T
|
|||||||
// float value); // 321
|
// float value); // 321
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <eee07> ../cstrike/dlls/maprules.cpp:357 */
|
|
||||||
NOBODY int CGameTeamMaster::ObjectCaps_(void)
|
|
||||||
{
|
|
||||||
return CRulePointEntity:: ObjectCaps() | FCAP_MASTER;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* <f0bfe> ../cstrike/dlls/maprules.cpp:371 */
|
/* <f0bfe> ../cstrike/dlls/maprules.cpp:371 */
|
||||||
LINK_ENTITY_TO_CLASS(game_team_master, CGameTeamMaster);
|
LINK_ENTITY_TO_CLASS(game_team_master, CGameTeamMaster);
|
||||||
|
|
||||||
@ -489,11 +483,6 @@ void CGameTeamMaster::KeyValue(KeyValueData *pkvd)
|
|||||||
KeyValue_(pkvd);
|
KeyValue_(pkvd);
|
||||||
}
|
}
|
||||||
|
|
||||||
int CGameTeamMaster::ObjectCaps(void)
|
|
||||||
{
|
|
||||||
return ObjectCaps_();
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOL CGameTeamMaster::IsTriggered(CBaseEntity *pActivator)
|
BOOL CGameTeamMaster::IsTriggered(CBaseEntity *pActivator)
|
||||||
{
|
{
|
||||||
return IsTriggered_(pActivator);
|
return IsTriggered_(pActivator);
|
||||||
|
@ -218,7 +218,10 @@ class CGameTeamMaster: public CRulePointEntity
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NOBODY virtual void KeyValue(KeyValueData *pkvd);
|
NOBODY virtual void KeyValue(KeyValueData *pkvd);
|
||||||
NOBODY virtual int ObjectCaps(void);
|
NOBODY virtual int ObjectCaps(void)
|
||||||
|
{
|
||||||
|
return ObjectCaps_();
|
||||||
|
}
|
||||||
NOBODY virtual BOOL IsTriggered(CBaseEntity *pActivator);
|
NOBODY virtual BOOL IsTriggered(CBaseEntity *pActivator);
|
||||||
NOBODY virtual const char *TeamID(void);
|
NOBODY virtual const char *TeamID(void);
|
||||||
NOBODY virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
NOBODY virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
||||||
@ -226,7 +229,10 @@ public:
|
|||||||
#ifdef HOOK_GAMEDLL
|
#ifdef HOOK_GAMEDLL
|
||||||
|
|
||||||
void KeyValue_(KeyValueData *pkvd);
|
void KeyValue_(KeyValueData *pkvd);
|
||||||
int ObjectCaps_(void);
|
int ObjectCaps_(void)
|
||||||
|
{
|
||||||
|
return CRulePointEntity::ObjectCaps() | FCAP_MASTER;
|
||||||
|
}
|
||||||
BOOL IsTriggered_(CBaseEntity *pActivator);
|
BOOL IsTriggered_(CBaseEntity *pActivator);
|
||||||
const char *TeamID_(void);
|
const char *TeamID_(void);
|
||||||
void Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
void Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
||||||
|
@ -116,7 +116,7 @@ class CGib: public CBaseEntity
|
|||||||
public:
|
public:
|
||||||
virtual int ObjectCaps(void)
|
virtual int ObjectCaps(void)
|
||||||
{
|
{
|
||||||
return (CBaseEntity :: ObjectCaps() & ~FCAP_ACROSS_TRANSITION)|FCAP_DONT_SAVE;
|
return (CBaseEntity::ObjectCaps() & ~FCAP_ACROSS_TRANSITION)|FCAP_DONT_SAVE;
|
||||||
}
|
}
|
||||||
public:
|
public:
|
||||||
NOBODY void Spawn(const char *szGibModel);
|
NOBODY void Spawn(const char *szGibModel);
|
||||||
|
@ -6,17 +6,17 @@
|
|||||||
#ifndef HOOK_GAMEDLL
|
#ifndef HOOK_GAMEDLL
|
||||||
|
|
||||||
//static char mp_com_token[1500];
|
//static char mp_com_token[1500];
|
||||||
//cvar_t *sv_clienttrace;
|
cvar_t *sv_clienttrace;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
//char mp_com_token[1500];
|
//char mp_com_token[1500];
|
||||||
//cvar_t *sv_clienttrace;
|
cvar_t *sv_clienttrace;
|
||||||
|
|
||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
//CCStrikeGameMgrHelper g_GameMgrHelper;
|
CCStrikeGameMgrHelper g_GameMgrHelper;
|
||||||
//CHalfLifeMultiplay *g_pMPGameRules;
|
CHalfLifeMultiplay *g_pMPGameRules;
|
||||||
|
|
||||||
//void info_map_parameters(entvars_t *pev)
|
//void info_map_parameters(entvars_t *pev)
|
||||||
|
|
||||||
@ -128,7 +128,7 @@ BOOL CHalfLifeMultiplay::IsCareer(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* <113e08> ../cstrike/dlls/multiplay_gamerules.cpp:263 */
|
/* <113e08> ../cstrike/dlls/multiplay_gamerules.cpp:263 */
|
||||||
NOBODY void CMapInfo::KeyValue(KeyValueData *pkvd)
|
NOBODY void CMapInfo::KeyValue_(KeyValueData *pkvd)
|
||||||
{
|
{
|
||||||
// FStrEq(const char *sz1,
|
// FStrEq(const char *sz1,
|
||||||
// const char *sz2); // 265
|
// const char *sz2); // 265
|
||||||
@ -140,7 +140,7 @@ NOBODY void CMapInfo::KeyValue(KeyValueData *pkvd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* <112879> ../cstrike/dlls/multiplay_gamerules.cpp:280 */
|
/* <112879> ../cstrike/dlls/multiplay_gamerules.cpp:280 */
|
||||||
NOBODY void CMapInfo::Spawn(void)
|
NOBODY void CMapInfo::Spawn_(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -150,35 +150,6 @@ NOBODY void CMapInfo::Spawn(void)
|
|||||||
// GetClassPtr<CMapInfo>(CMapInfo *a); // 288
|
// GetClassPtr<CMapInfo>(CMapInfo *a); // 288
|
||||||
//}
|
//}
|
||||||
|
|
||||||
/* <111732> ../cstrike/dlls/multiplay_gamerules.cpp:292 */
|
|
||||||
class CCStrikeGameMgrHelper: public IVoiceGameMgrHelper
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual bool CanPlayerHearPlayer(CBasePlayer *pListener, CBasePlayer *pSender)
|
|
||||||
{
|
|
||||||
if (pListener->m_iTeam == pSender->m_iTeam)
|
|
||||||
{
|
|
||||||
BOOL bListenerAlive = pListener->IsAlive();
|
|
||||||
BOOL bSenderAlive = pSender->IsAlive();
|
|
||||||
|
|
||||||
if (!pListener->pev->iuser1)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
if (!bListenerAlive)
|
|
||||||
{
|
|
||||||
if (bSenderAlive)
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!bSenderAlive)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return (bListenerAlive == bSenderAlive);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};/* size: 4, cachelines: 1, members: 1 */
|
|
||||||
|
|
||||||
/* <11474f> ../cstrike/dlls/multiplay_gamerules.cpp:331 */
|
/* <11474f> ../cstrike/dlls/multiplay_gamerules.cpp:331 */
|
||||||
NOBODY void Broadcast(const char *sentence)
|
NOBODY void Broadcast(const char *sentence)
|
||||||
{
|
{
|
||||||
@ -223,22 +194,187 @@ NOBODY void ReadMultiplayCvars(CHalfLifeMultiplay *mp)
|
|||||||
/* <11492c> ../cstrike/dlls/multiplay_gamerules.cpp:479 */
|
/* <11492c> ../cstrike/dlls/multiplay_gamerules.cpp:479 */
|
||||||
NOBODY CHalfLifeMultiplay::CHalfLifeMultiplay(void)
|
NOBODY CHalfLifeMultiplay::CHalfLifeMultiplay(void)
|
||||||
{
|
{
|
||||||
// {
|
m_VoiceGameMgr.Init(&g_GameMgrHelper, gpGlobals->maxClients);
|
||||||
// float flAutoKickIdle; // 570
|
RefreshSkillData();
|
||||||
// bool installedCommands; // 633
|
|
||||||
// RefreshSkillData(CHalfLifeMultiplay *const this); // 483
|
m_flIntermissionEndTime = 0;
|
||||||
// {
|
m_flIntermissionStartTime = 0;
|
||||||
// int j; // 541
|
m_fTeamCount = 0;
|
||||||
// }
|
m_iAccountCT = 0;
|
||||||
// {
|
m_iAccountTerrorist = 0;
|
||||||
// char *lservercfgfile; // 612
|
m_iHostagesRescued = 0;
|
||||||
// {
|
m_iRoundWinStatus = 0;
|
||||||
// char szCommand; // 616
|
m_iNumCTWins = 0;
|
||||||
// }
|
m_iNumTerroristWins = 0;
|
||||||
// }
|
m_pVIP = NULL;
|
||||||
// {
|
m_iNumCT = 0;
|
||||||
// }
|
m_iNumTerrorist = 0;
|
||||||
// }
|
m_iNumSpawnableCT = 0;
|
||||||
|
m_iNumSpawnableTerrorist = 0;
|
||||||
|
m_bMapHasCameras = 2;
|
||||||
|
g_fGameOver = FALSE;
|
||||||
|
|
||||||
|
m_iLoserBonus = 1400;
|
||||||
|
m_iNumConsecutiveCTLoses = 0;
|
||||||
|
m_iNumConsecutiveTerroristLoses = 0;
|
||||||
|
m_iC4Guy = 0;
|
||||||
|
m_bBombDefused = false;
|
||||||
|
m_bTargetBombed = false;
|
||||||
|
m_bFreezePeriod = TRUE;
|
||||||
|
m_bLevelInitialized = false;
|
||||||
|
m_tmNextPeriodicThink = 0;
|
||||||
|
m_bFirstConnected = 0;
|
||||||
|
m_bCompleteReset = false;
|
||||||
|
m_flRequiredEscapeRatio = 0.5;
|
||||||
|
m_iNumEscapers = 0;
|
||||||
|
m_bCTCantBuy = false;
|
||||||
|
m_bTCantBuy = false;
|
||||||
|
m_flBombRadius = 500.0;
|
||||||
|
m_iTotalGunCount = 0;
|
||||||
|
m_iTotalGrenadeCount = 0;
|
||||||
|
m_iTotalArmourCount = 0;
|
||||||
|
m_iConsecutiveVIP = 0;
|
||||||
|
m_iUnBalancedRounds = 0;
|
||||||
|
m_iNumEscapeRounds = 0;
|
||||||
|
m_bRoundTerminating = false;
|
||||||
|
|
||||||
|
g_iHostageNumber = 0;
|
||||||
|
|
||||||
|
m_bBombDropped = FALSE;
|
||||||
|
m_iMaxRounds = (int)CVAR_GET_FLOAT("mp_maxrounds");
|
||||||
|
|
||||||
|
if (m_iMaxRounds < 0)
|
||||||
|
{
|
||||||
|
m_iMaxRounds = 0;
|
||||||
|
CVAR_SET_FLOAT("mp_maxrounds", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
m_iTotalRoundsPlayed = 0;
|
||||||
|
m_iMaxRoundsWon = (int)CVAR_GET_FLOAT("mp_winlimit");
|
||||||
|
|
||||||
|
if (m_iMaxRoundsWon < 0)
|
||||||
|
{
|
||||||
|
m_iMaxRoundsWon = 0;
|
||||||
|
CVAR_SET_FLOAT("mp_winlimit", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
memset(m_iMapVotes, 0, sizeof(m_iMapVotes));
|
||||||
|
|
||||||
|
m_iLastPick = 1;
|
||||||
|
m_bMapHasEscapeZone = false;
|
||||||
|
m_iMapHasVIPSafetyZone = 0;
|
||||||
|
m_bMapHasBombZone = false;
|
||||||
|
m_bMapHasRescueZone = false;
|
||||||
|
m_iStoredSpectValue = (int)allow_spectators.value;
|
||||||
|
|
||||||
|
for (int j = 0; j < MAX_VIP_QUEUES; j++)
|
||||||
|
VIPQueue[ j ] = NULL;
|
||||||
|
|
||||||
|
CVAR_SET_FLOAT("cl_himodels", 0);
|
||||||
|
ReadMultiplayCvars(this);
|
||||||
|
|
||||||
|
m_iIntroRoundTime += 2;
|
||||||
|
m_fMaxIdlePeriod = m_iRoundTime * 2;
|
||||||
|
|
||||||
|
float flAutoKickIdle = CVAR_GET_FLOAT("mp_autokick_timeout");
|
||||||
|
if (flAutoKickIdle > 0.0)
|
||||||
|
m_fMaxIdlePeriod = flAutoKickIdle;
|
||||||
|
|
||||||
|
m_bInCareerGame = false;
|
||||||
|
m_iRoundTimeSecs = m_iIntroRoundTime;
|
||||||
|
|
||||||
|
if (IS_DEDICATED_SERVER())
|
||||||
|
{
|
||||||
|
CVAR_SET_FLOAT("pausable", 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (IsCareer())
|
||||||
|
{
|
||||||
|
CVAR_SET_FLOAT("pausable", 1);
|
||||||
|
CVAR_SET_FLOAT("sv_aim", 0);
|
||||||
|
CVAR_SET_FLOAT("sv_maxspeed", 322);
|
||||||
|
CVAR_SET_FLOAT("sv_cheats", 0);
|
||||||
|
CVAR_SET_FLOAT("mp_windifference", 2);
|
||||||
|
|
||||||
|
m_bInCareerGame = true;
|
||||||
|
UTIL_LogPrintf("Career Start\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CVAR_SET_FLOAT("pausable", 0);
|
||||||
|
|
||||||
|
const char *lservercfgfile = CVAR_GET_STRING("lservercfgfile");
|
||||||
|
|
||||||
|
if (lservercfgfile && *lservercfgfile)
|
||||||
|
{
|
||||||
|
char szCommand[256];
|
||||||
|
ALERT(at_console, "Executing listen server config file\n");
|
||||||
|
Q_sprintf(szCommand, "exec %s\n", lservercfgfile);
|
||||||
|
SERVER_COMMAND(szCommand);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m_fRoundCount = 0;
|
||||||
|
m_fIntroRoundCount = 0;
|
||||||
|
|
||||||
|
InstallBotControl();
|
||||||
|
InstallHostageManager();
|
||||||
|
|
||||||
|
m_bSkipSpawn = m_bInCareerGame;
|
||||||
|
|
||||||
|
static bool installedCommands = false;
|
||||||
|
|
||||||
|
if (!installedCommands)
|
||||||
|
{
|
||||||
|
if (UTIL_IsGame("czero"))
|
||||||
|
{
|
||||||
|
#if defined(HOOK_GAMEDLL) && !defined(REGAMEDLL_UNIT_TESTS)
|
||||||
|
ADD_SERVER_COMMAND("career_continue", (xcommand_t)GetOriginalFuncAddrOrDefault("_Z13SV_Continue_fv", (void *)SV_Continue_f));
|
||||||
|
ADD_SERVER_COMMAND("career_matchlimit", (xcommand_t)GetOriginalFuncAddrOrDefault("_Z21SV_CareerMatchLimit_fv", (void *)SV_CareerMatchLimit_f));
|
||||||
|
ADD_SERVER_COMMAND("career_add_task", (xcommand_t)GetOriginalFuncAddrOrDefault("_Z18SV_CareerAddTask_fv", (void *)SV_CareerAddTask_f));
|
||||||
|
ADD_SERVER_COMMAND("career_endround", (xcommand_t)GetOriginalFuncAddrOrDefault("_Z20SV_Career_EndRound_fv", (void *)SV_Career_EndRound_f));
|
||||||
|
ADD_SERVER_COMMAND("career_restart", (xcommand_t)GetOriginalFuncAddrOrDefault("_Z19SV_Career_Restart_fv", (void *)SV_Career_Restart_f));
|
||||||
|
ADD_SERVER_COMMAND("tutor_toggle", (xcommand_t)GetOriginalFuncAddrOrDefault("_Z17SV_Tutor_Toggle_fv", (void *)SV_Tutor_Toggle_f));
|
||||||
|
#else
|
||||||
|
ADD_SERVER_COMMAND("career_continue", SV_Continue_f);
|
||||||
|
ADD_SERVER_COMMAND("career_matchlimit", SV_CareerMatchLimit_f);
|
||||||
|
ADD_SERVER_COMMAND("career_add_task", SV_CareerAddTask_f);
|
||||||
|
ADD_SERVER_COMMAND("career_endround", SV_Career_EndRound_f);
|
||||||
|
ADD_SERVER_COMMAND("career_restart", SV_Career_Restart_f);
|
||||||
|
ADD_SERVER_COMMAND("tutor_toggle", SV_Tutor_Toggle_f);
|
||||||
|
#endif // HOOK_GAMEDLL
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(HOOK_GAMEDLL) && !defined(REGAMEDLL_UNIT_TESTS)
|
||||||
|
ADD_SERVER_COMMAND("perf_test", (xcommand_t)GetOriginalFuncAddrOrDefault("_Z15loopPerformancev", (void *)loopPerformance));
|
||||||
|
ADD_SERVER_COMMAND("print_ent", (xcommand_t)GetOriginalFuncAddrOrDefault("_Z13printEntitiesv", (void *)printEntities));
|
||||||
|
#else
|
||||||
|
ADD_SERVER_COMMAND("perf_test", loopPerformance);
|
||||||
|
ADD_SERVER_COMMAND("print_ent", printEntities);
|
||||||
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
|
installedCommands = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_fCareerRoundMenuTime = 0;
|
||||||
|
m_fCareerMatchMenuTime = 0;
|
||||||
|
m_iCareerMatchWins = 0;
|
||||||
|
|
||||||
|
m_iRoundWinDifference = (int)CVAR_GET_FLOAT("mp_windifference");
|
||||||
|
CCareerTaskManager::Create();
|
||||||
|
|
||||||
|
if (m_iRoundWinDifference < 1)
|
||||||
|
{
|
||||||
|
m_iRoundWinDifference = 1;
|
||||||
|
CVAR_SET_FLOAT("mp_windifference", 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
sv_clienttrace = CVAR_GET_POINTER("sv_clienttrace");
|
||||||
|
InstallTutor(CVAR_GET_POINTER("tutor_enable") != NULL);
|
||||||
|
|
||||||
|
g_pMPGameRules = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <113b92> ../cstrike/dlls/multiplay_gamerules.cpp:678 */
|
/* <113b92> ../cstrike/dlls/multiplay_gamerules.cpp:678 */
|
||||||
@ -1488,6 +1624,16 @@ NOBODY void CHalfLifeMultiplay::ClientUserInfoChanged_(CBasePlayer *pPlayer, cha
|
|||||||
|
|
||||||
#ifdef HOOK_GAMEDLL
|
#ifdef HOOK_GAMEDLL
|
||||||
|
|
||||||
|
void CMapInfo::Spawn(void)
|
||||||
|
{
|
||||||
|
Spawn_();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CMapInfo::KeyValue(KeyValueData *pkvd)
|
||||||
|
{
|
||||||
|
KeyValue_(pkvd);
|
||||||
|
}
|
||||||
|
|
||||||
void CHalfLifeMultiplay::RefreshSkillData(void)
|
void CHalfLifeMultiplay::RefreshSkillData(void)
|
||||||
{
|
{
|
||||||
RefreshSkillData_();
|
RefreshSkillData_();
|
||||||
|
@ -70,18 +70,6 @@ TYPEDESCRIPTION (*CGunTarget::m_SaveData)[1];
|
|||||||
|
|
||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
/* <12d629> ../cstrike/dlls/plats.cpp:36 */
|
|
||||||
NOBODY int CBasePlatTrain::ObjectCaps_(void)
|
|
||||||
{
|
|
||||||
return CBaseEntity::ObjectCaps() & ~FCAP_ACROSS_TRANSITION;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* <12d64f> ../cstrike/dlls/plats.cpp:41 */
|
|
||||||
NOBODY BOOL CBasePlatTrain::IsTogglePlat_(void)
|
|
||||||
{
|
|
||||||
return (pev->spawnflags & SF_PLAT_TOGGLE) != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* <12e11a> ../cstrike/dlls/plats.cpp:59 */
|
/* <12e11a> ../cstrike/dlls/plats.cpp:59 */
|
||||||
IMPLEMENT_SAVERESTORE(CBasePlatTrain, CBaseToggle);
|
IMPLEMENT_SAVERESTORE(CBasePlatTrain, CBaseToggle);
|
||||||
|
|
||||||
@ -105,6 +93,8 @@ NOBODY void CBasePlatTrain::KeyValue_(KeyValueData *pkvd)
|
|||||||
// atof(const char *__nptr); // 90
|
// atof(const char *__nptr); // 90
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define noiseMoving noise
|
||||||
|
#define noiseArrived noise1
|
||||||
|
|
||||||
/* <12d675> ../cstrike/dlls/plats.cpp:105 */
|
/* <12d675> ../cstrike/dlls/plats.cpp:105 */
|
||||||
NOBODY void CBasePlatTrain::Precache_(void)
|
NOBODY void CBasePlatTrain::Precache_(void)
|
||||||
@ -132,6 +122,9 @@ NOBODY void CFuncPlat::CallHitBottom(void)
|
|||||||
/* <130666> ../cstrike/dlls/plats.cpp:244 */
|
/* <130666> ../cstrike/dlls/plats.cpp:244 */
|
||||||
LINK_ENTITY_TO_CLASS(func_plat, CFuncPlat);
|
LINK_ENTITY_TO_CLASS(func_plat, CFuncPlat);
|
||||||
|
|
||||||
|
#define noiseMovement noise
|
||||||
|
#define noiseStopMoving noise1
|
||||||
|
|
||||||
/* <130730> ../cstrike/dlls/plats.cpp:275 */
|
/* <130730> ../cstrike/dlls/plats.cpp:275 */
|
||||||
NOBODY void CFuncPlat::Setup(void)
|
NOBODY void CFuncPlat::Setup(void)
|
||||||
{
|
{
|
||||||
@ -697,12 +690,6 @@ NOBODY void CFuncTrackTrain::Precache_(void)
|
|||||||
/* <1314d9> ../cstrike/dlls/plats.cpp:1595 */
|
/* <1314d9> ../cstrike/dlls/plats.cpp:1595 */
|
||||||
LINK_ENTITY_TO_CLASS(func_traincontrols, CFuncTrainControls);
|
LINK_ENTITY_TO_CLASS(func_traincontrols, CFuncTrainControls);
|
||||||
|
|
||||||
/* <12d7cc> ../cstrike/dlls/plats.cpp:1591 */
|
|
||||||
NOBODY int CFuncTrainControls::ObjectCaps_(void)
|
|
||||||
{
|
|
||||||
return CBaseEntity::ObjectCaps() & ~FCAP_ACROSS_TRANSITION;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* <12fb10> ../cstrike/dlls/plats.cpp:1598 */
|
/* <12fb10> ../cstrike/dlls/plats.cpp:1598 */
|
||||||
NOBODY void CFuncTrainControls::Find(void)
|
NOBODY void CFuncTrainControls::Find(void)
|
||||||
{
|
{
|
||||||
@ -922,32 +909,6 @@ NOBODY void CFuncTrackAuto::Use_(CBaseEntity *pActivator, CBaseEntity *pCaller,
|
|||||||
// float value); // 2083
|
// float value); // 2083
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <12d873> ../cstrike/dlls/plats.cpp:2146 */
|
|
||||||
NOBODY int CGunTarget::BloodColor_(void)
|
|
||||||
{
|
|
||||||
return DONT_BLEED;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* <12d899> ../cstrike/dlls/plats.cpp:2147 */
|
|
||||||
NOBODY int CGunTarget::Classify_(void)
|
|
||||||
{
|
|
||||||
return CLASS_MACHINE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* <12d8bf> ../cstrike/dlls/plats.cpp:2150 */
|
|
||||||
NOBODY Vector CGunTarget::BodyTarget_(const Vector &posSrc)
|
|
||||||
{
|
|
||||||
return pev->origin;
|
|
||||||
// Vector(Vector *const this,
|
|
||||||
// const Vector &v); // 2150
|
|
||||||
}
|
|
||||||
|
|
||||||
/* <12d921> ../cstrike/dlls/plats.cpp:2152 */
|
|
||||||
NOBODY int CGunTarget::ObjectCaps_(void)
|
|
||||||
{
|
|
||||||
return CBaseEntity::ObjectCaps() & ~FCAP_ACROSS_TRANSITION;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* <131c90> ../cstrike/dlls/plats.cpp:2163 */
|
/* <131c90> ../cstrike/dlls/plats.cpp:2163 */
|
||||||
LINK_ENTITY_TO_CLASS(func_guntarget, CGunTarget);
|
LINK_ENTITY_TO_CLASS(func_guntarget, CGunTarget);
|
||||||
|
|
||||||
@ -1051,16 +1012,6 @@ int CBasePlatTrain::Restore(CRestore &restore)
|
|||||||
return Restore_(restore);
|
return Restore_(restore);
|
||||||
}
|
}
|
||||||
|
|
||||||
int CBasePlatTrain::ObjectCaps(void)
|
|
||||||
{
|
|
||||||
return ObjectCaps_();
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOL CBasePlatTrain::IsTogglePlat(void)
|
|
||||||
{
|
|
||||||
return IsTogglePlat_();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CFuncPlat::Spawn(void)
|
void CFuncPlat::Spawn(void)
|
||||||
{
|
{
|
||||||
Spawn_();
|
Spawn_();
|
||||||
@ -1096,11 +1047,6 @@ void CFuncPlat::HitBottom(void)
|
|||||||
HitBottom_();
|
HitBottom_();
|
||||||
}
|
}
|
||||||
|
|
||||||
int CPlatTrigger::ObjectCaps(void)
|
|
||||||
{
|
|
||||||
return ObjectCaps_();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CPlatTrigger::Touch(CBaseEntity *pOther)
|
void CPlatTrigger::Touch(CBaseEntity *pOther)
|
||||||
{
|
{
|
||||||
Touch_(pOther);
|
Touch_(pOther);
|
||||||
@ -1141,11 +1087,6 @@ void CFuncPlatRot::HitBottom(void)
|
|||||||
HitBottom_();
|
HitBottom_();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void CFuncTrain::Spawn(void)
|
void CFuncTrain::Spawn(void)
|
||||||
{
|
{
|
||||||
Spawn_();
|
Spawn_();
|
||||||
@ -1226,11 +1167,6 @@ int CFuncTrackTrain::Restore(CRestore &restore)
|
|||||||
return Restore_(restore);
|
return Restore_(restore);
|
||||||
}
|
}
|
||||||
|
|
||||||
int CFuncTrackTrain::ObjectCaps(void)
|
|
||||||
{
|
|
||||||
return ObjectCaps_();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CFuncTrackTrain::OverrideReset(void)
|
void CFuncTrackTrain::OverrideReset(void)
|
||||||
{
|
{
|
||||||
OverrideReset_();
|
OverrideReset_();
|
||||||
@ -1256,17 +1192,6 @@ void CFuncTrainControls::Spawn(void)
|
|||||||
Spawn_();
|
Spawn_();
|
||||||
}
|
}
|
||||||
|
|
||||||
int CFuncTrainControls::ObjectCaps(void)
|
|
||||||
{
|
|
||||||
return ObjectCaps_();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void CFuncTrackChange::Spawn(void)
|
void CFuncTrackChange::Spawn(void)
|
||||||
{
|
{
|
||||||
Spawn_();
|
Spawn_();
|
||||||
@ -1347,14 +1272,6 @@ void CFuncTrackAuto::UpdateAutoTargets(int toggleState)
|
|||||||
UpdateAutoTargets_(toggleState);
|
UpdateAutoTargets_(toggleState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void CGunTarget::Spawn(void)
|
void CGunTarget::Spawn(void)
|
||||||
{
|
{
|
||||||
Spawn_();
|
Spawn_();
|
||||||
@ -1370,39 +1287,19 @@ int CGunTarget::Restore(CRestore &restore)
|
|||||||
return Restore_(restore);
|
return Restore_(restore);
|
||||||
}
|
}
|
||||||
|
|
||||||
int CGunTarget::ObjectCaps(void)
|
|
||||||
{
|
|
||||||
return ObjectCaps_();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CGunTarget::Activate(void)
|
void CGunTarget::Activate(void)
|
||||||
{
|
{
|
||||||
Activate_();
|
Activate_();
|
||||||
}
|
}
|
||||||
|
|
||||||
int CGunTarget::Classify(void)
|
|
||||||
{
|
|
||||||
return Classify_();
|
|
||||||
}
|
|
||||||
|
|
||||||
int CGunTarget::TakeDamage(entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType)
|
int CGunTarget::TakeDamage(entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType)
|
||||||
{
|
{
|
||||||
return TakeDamage_(pevInflictor, pevAttacker, flDamage, bitsDamageType);
|
return TakeDamage_(pevInflictor, pevAttacker, flDamage, bitsDamageType);
|
||||||
}
|
}
|
||||||
|
|
||||||
int CGunTarget::BloodColor(void)
|
|
||||||
{
|
|
||||||
return BloodColor_();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CGunTarget::Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
|
void CGunTarget::Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
|
||||||
{
|
{
|
||||||
Use_(pActivator, pCaller, useType, value);
|
Use_(pActivator, pCaller, useType, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector CGunTarget::BodyTarget(const Vector &posSrc)
|
|
||||||
{
|
|
||||||
return BodyTarget_(posSrc);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
|
@ -34,14 +34,6 @@
|
|||||||
|
|
||||||
#define SF_PLAT_TOGGLE 0x0001
|
#define SF_PLAT_TOGGLE 0x0001
|
||||||
|
|
||||||
// CBasePlatTrain
|
|
||||||
#define noiseMoving noise
|
|
||||||
#define noiseArrived noise1
|
|
||||||
|
|
||||||
// CFuncPlat
|
|
||||||
#define noiseMovement noise
|
|
||||||
#define noiseStopMoving noise1
|
|
||||||
|
|
||||||
#define TRAIN_STARTPITCH 60
|
#define TRAIN_STARTPITCH 60
|
||||||
#define TRAIN_MAXPITCH 200
|
#define TRAIN_MAXPITCH 200
|
||||||
#define TRAIN_MAXSPEED 1000
|
#define TRAIN_MAXSPEED 1000
|
||||||
@ -62,10 +54,16 @@ public:
|
|||||||
NOBODY virtual void KeyValue(KeyValueData *pkvd);
|
NOBODY virtual void KeyValue(KeyValueData *pkvd);
|
||||||
NOBODY virtual int Save(CSave &save);
|
NOBODY virtual int Save(CSave &save);
|
||||||
NOBODY virtual int Restore(CRestore &restore);
|
NOBODY virtual int Restore(CRestore &restore);
|
||||||
NOBODY virtual int ObjectCaps(void);
|
NOBODY virtual int ObjectCaps(void)
|
||||||
|
{
|
||||||
|
return ObjectCaps_();
|
||||||
|
}
|
||||||
|
|
||||||
// This is done to fix spawn flag collisions between this class and a derived class
|
// This is done to fix spawn flag collisions between this class and a derived class
|
||||||
NOBODY virtual BOOL IsTogglePlat(void);
|
NOBODY virtual BOOL IsTogglePlat(void)
|
||||||
|
{
|
||||||
|
return IsTogglePlat_();
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HOOK_GAMEDLL
|
#ifdef HOOK_GAMEDLL
|
||||||
|
|
||||||
@ -73,8 +71,14 @@ public:
|
|||||||
void KeyValue_(KeyValueData *pkvd);
|
void KeyValue_(KeyValueData *pkvd);
|
||||||
int Save_(CSave &save);
|
int Save_(CSave &save);
|
||||||
int Restore_(CRestore &restore);
|
int Restore_(CRestore &restore);
|
||||||
int ObjectCaps_(void);
|
int ObjectCaps_(void)
|
||||||
BOOL IsTogglePlat_(void);
|
{
|
||||||
|
return CBaseEntity::ObjectCaps() & ~FCAP_ACROSS_TRANSITION;
|
||||||
|
}
|
||||||
|
BOOL IsTogglePlat_(void)
|
||||||
|
{
|
||||||
|
return (pev->spawnflags & SF_PLAT_TOGGLE) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
@ -131,7 +135,10 @@ public:
|
|||||||
class CPlatTrigger: public CBaseEntity
|
class CPlatTrigger: public CBaseEntity
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NOBODY virtual int ObjectCaps(void);
|
NOBODY virtual int ObjectCaps(void)
|
||||||
|
{
|
||||||
|
return ObjectCaps_();
|
||||||
|
}
|
||||||
NOBODY virtual void Touch(CBaseEntity *pOther);
|
NOBODY virtual void Touch(CBaseEntity *pOther);
|
||||||
|
|
||||||
#ifdef HOOK_GAMEDLL
|
#ifdef HOOK_GAMEDLL
|
||||||
@ -249,12 +256,18 @@ class CFuncTrainControls: public CBaseEntity
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NOBODY virtual void Spawn(void);
|
NOBODY virtual void Spawn(void);
|
||||||
NOBODY virtual int ObjectCaps(void);
|
NOBODY virtual int ObjectCaps(void)
|
||||||
|
{
|
||||||
|
return ObjectCaps_();
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HOOK_GAMEDLL
|
#ifdef HOOK_GAMEDLL
|
||||||
|
|
||||||
void Spawn_(void);
|
void Spawn_(void);
|
||||||
int ObjectCaps_(void);
|
int ObjectCaps_(void)
|
||||||
|
{
|
||||||
|
return CBaseEntity::ObjectCaps() & ~FCAP_ACROSS_TRANSITION;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
@ -370,26 +383,50 @@ public:
|
|||||||
NOBODY virtual void Spawn(void);
|
NOBODY virtual void Spawn(void);
|
||||||
NOBODY virtual int Save(CSave &save);
|
NOBODY virtual int Save(CSave &save);
|
||||||
NOBODY virtual int Restore(CRestore &restore);
|
NOBODY virtual int Restore(CRestore &restore);
|
||||||
NOBODY virtual int ObjectCaps(void);
|
NOBODY virtual int ObjectCaps(void)
|
||||||
|
{
|
||||||
|
return ObjectCaps_();
|
||||||
|
}
|
||||||
NOBODY virtual void Activate(void);
|
NOBODY virtual void Activate(void);
|
||||||
NOBODY virtual int Classify(void);
|
NOBODY virtual int Classify(void)
|
||||||
|
{
|
||||||
|
return Classify_();
|
||||||
|
}
|
||||||
NOBODY virtual int TakeDamage(entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType);
|
NOBODY virtual int TakeDamage(entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType);
|
||||||
NOBODY virtual int BloodColor(void);
|
NOBODY virtual int BloodColor(void)
|
||||||
|
{
|
||||||
|
return BloodColor_();
|
||||||
|
}
|
||||||
NOBODY virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
NOBODY virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
||||||
NOBODY virtual Vector BodyTarget(const Vector &posSrc);
|
NOBODY virtual Vector BodyTarget(const Vector &posSrc)
|
||||||
|
{
|
||||||
|
return BodyTarget_(posSrc);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HOOK_GAMEDLL
|
#ifdef HOOK_GAMEDLL
|
||||||
|
|
||||||
void Spawn_(void);
|
void Spawn_(void);
|
||||||
int Save_(CSave &save);
|
int Save_(CSave &save);
|
||||||
int Restore_(CRestore &restore);
|
int Restore_(CRestore &restore);
|
||||||
int ObjectCaps_(void);
|
int ObjectCaps_(void)
|
||||||
|
{
|
||||||
|
return CBaseEntity::ObjectCaps() & ~FCAP_ACROSS_TRANSITION;
|
||||||
|
}
|
||||||
void Activate_(void);
|
void Activate_(void);
|
||||||
int Classify_(void);
|
int Classify_(void)
|
||||||
|
{
|
||||||
|
return CLASS_MACHINE;
|
||||||
|
}
|
||||||
int TakeDamage_(entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType);
|
int TakeDamage_(entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType);
|
||||||
int BloodColor_(void);
|
int BloodColor_(void)
|
||||||
|
{
|
||||||
|
return DONT_BLEED;
|
||||||
|
}
|
||||||
void Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
void Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
||||||
Vector BodyTarget_(const Vector &posSrc);
|
Vector BodyTarget_(const Vector &posSrc)
|
||||||
|
{
|
||||||
|
return pev->origin;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
@ -412,22 +449,8 @@ private:
|
|||||||
|
|
||||||
};/* size: 408, cachelines: 7, members: 3 */
|
};/* size: 408, cachelines: 7, members: 3 */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
NOBODY void PlatSpawnInsideTrigger(entvars_t *pevPlatform);
|
NOBODY void PlatSpawnInsideTrigger(entvars_t *pevPlatform);
|
||||||
NOBODY float Fix(float angle);
|
NOBODY float Fix(float angle);
|
||||||
NOBODY void FixupAngles(Vector &v);
|
NOBODY void FixupAngles(Vector &v);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif // PLATS_H
|
#endif // PLATS_H
|
||||||
|
@ -770,7 +770,7 @@ int TrainSpeed(int iSpeed, int iMax)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* <153c8e> ../cstrike/dlls/player.cpp:902 */
|
/* <153c8e> ../cstrike/dlls/player.cpp:902 */
|
||||||
void CBasePlayer::DeathSound(void)
|
NOXREF void CBasePlayer::DeathSound(void)
|
||||||
{
|
{
|
||||||
switch (RANDOM_LONG(1, 4))
|
switch (RANDOM_LONG(1, 4))
|
||||||
{
|
{
|
||||||
@ -823,7 +823,7 @@ void CBasePlayer::TraceAttack_(entvars_t *pevAttacker, float flDamage, Vector ve
|
|||||||
if (CVAR_GET_FLOAT("mp_friendlyfire") == 0 && m_iTeam == pAttacker->m_iTeam)
|
if (CVAR_GET_FLOAT("mp_friendlyfire") == 0 && m_iTeam == pAttacker->m_iTeam)
|
||||||
bShouldBleed = false;
|
bShouldBleed = false;
|
||||||
|
|
||||||
if (!pev->takedamage)
|
if (pev->takedamage == DAMAGE_NO)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_LastHitGroup = ptr->iHitgroup;
|
m_LastHitGroup = ptr->iHitgroup;
|
||||||
@ -3202,14 +3202,8 @@ NOBODY void FixPlayerCrouchStuck(edict_t *pPlayer)
|
|||||||
/* <153ef5> ../cstrike/dlls/player.cpp:4580 */
|
/* <153ef5> ../cstrike/dlls/player.cpp:4580 */
|
||||||
NOBODY void CBasePlayer::Duck_(void)
|
NOBODY void CBasePlayer::Duck_(void)
|
||||||
{
|
{
|
||||||
//TODO: check it, check last of update.
|
|
||||||
#ifdef _WIN32
|
|
||||||
if (pev->button & IN_DUCK)
|
if (pev->button & IN_DUCK)
|
||||||
SetAnimation(PLAYER_WALK);
|
SetAnimation(PLAYER_WALK);
|
||||||
#else
|
|
||||||
if (pev->button & IN_DUCK && pev->modelindex && (m_flFlinchTime < gpGlobals->time || pev->health <= 0.0f))
|
|
||||||
SetAnimation(PLAYER_WALK);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <150f8f> ../cstrike/dlls/player.cpp:4591 */
|
/* <150f8f> ../cstrike/dlls/player.cpp:4591 */
|
||||||
@ -3761,11 +3755,6 @@ NOBODY const char *CBasePlayer::TeamID_(void)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <151094> ../cstrike/dlls/player.cpp:7007 */
|
|
||||||
NOBODY int CSprayCan::ObjectCaps_(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/* <1573aa> ../cstrike/dlls/player.cpp:7010 */
|
/* <1573aa> ../cstrike/dlls/player.cpp:7010 */
|
||||||
NOBODY void CSprayCan::Spawn(entvars_t *pevOwner)
|
NOBODY void CSprayCan::Spawn(entvars_t *pevOwner)
|
||||||
{
|
{
|
||||||
@ -5699,11 +5688,6 @@ int CBasePlayer::Restore(CRestore &restore)
|
|||||||
return Restore_(restore);
|
return Restore_(restore);
|
||||||
}
|
}
|
||||||
|
|
||||||
int CBasePlayer::ObjectCaps(void)
|
|
||||||
{
|
|
||||||
return ObjectCaps_();
|
|
||||||
}
|
|
||||||
|
|
||||||
int CBasePlayer::Classify(void)
|
int CBasePlayer::Classify(void)
|
||||||
{
|
{
|
||||||
return Classify_();
|
return Classify_();
|
||||||
@ -5919,11 +5903,6 @@ void CSprayCan::Think(void)
|
|||||||
Think_();
|
Think_();
|
||||||
}
|
}
|
||||||
|
|
||||||
int CSprayCan::ObjectCaps(void)
|
|
||||||
{
|
|
||||||
return ObjectCaps_();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CInfoIntermission::Spawn(void)
|
void CInfoIntermission::Spawn(void)
|
||||||
{
|
{
|
||||||
Spawn_();
|
Spawn_();
|
||||||
|
@ -329,12 +329,18 @@ class CSprayCan: public CBaseEntity
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NOBODY virtual void Think(void);
|
NOBODY virtual void Think(void);
|
||||||
NOBODY virtual int ObjectCaps(void);
|
NOBODY virtual int ObjectCaps(void)
|
||||||
|
{
|
||||||
|
return ObjectCaps_();
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HOOK_GAMEDLL
|
#ifdef HOOK_GAMEDLL
|
||||||
|
|
||||||
void Think_(void);
|
void Think_(void);
|
||||||
int ObjectCaps_(void);
|
int ObjectCaps_(void)
|
||||||
|
{
|
||||||
|
return FCAP_DONT_SAVE;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
@ -362,10 +368,10 @@ public:
|
|||||||
NOBODY virtual void Precache(void);
|
NOBODY virtual void Precache(void);
|
||||||
NOBODY virtual int Save(CSave &save);
|
NOBODY virtual int Save(CSave &save);
|
||||||
NOBODY virtual int Restore(CRestore &restore);
|
NOBODY virtual int Restore(CRestore &restore);
|
||||||
virtual int ObjectCaps(void);
|
NOBODY virtual int ObjectCaps(void)
|
||||||
//{
|
{
|
||||||
// return (CBaseMonster::ObjectCaps() & ~FCAP_ACROSS_TRANSITION);
|
return ObjectCaps_();
|
||||||
//}
|
}
|
||||||
virtual int Classify(void);
|
virtual int Classify(void);
|
||||||
virtual void TraceAttack(entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType);
|
virtual void TraceAttack(entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType);
|
||||||
NOBODY virtual int TakeDamage(entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType);
|
NOBODY virtual int TakeDamage(entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType);
|
||||||
@ -562,7 +568,7 @@ public:
|
|||||||
void FlashlightTurnOn(void);
|
void FlashlightTurnOn(void);
|
||||||
NOBODY void FlashlightTurnOff(void);
|
NOBODY void FlashlightTurnOff(void);
|
||||||
NOBODY void UpdatePlayerSound(void);
|
NOBODY void UpdatePlayerSound(void);
|
||||||
void DeathSound(void);
|
NOXREF void DeathSound(void);
|
||||||
void SetAnimation(PLAYER_ANIM playerAnim);
|
void SetAnimation(PLAYER_ANIM playerAnim);
|
||||||
NOBODY void SetWeaponAnimType(const char *szExtention);
|
NOBODY void SetWeaponAnimType(const char *szExtention);
|
||||||
NOBODY void CheatImpulseCommands(int iImpulse);
|
NOBODY void CheatImpulseCommands(int iImpulse);
|
||||||
|
@ -111,7 +111,10 @@ public:
|
|||||||
NOBODY virtual void KeyValue(KeyValueData* pkvd);
|
NOBODY virtual void KeyValue(KeyValueData* pkvd);
|
||||||
NOBODY virtual int Save(CSave &save);
|
NOBODY virtual int Save(CSave &save);
|
||||||
NOBODY virtual int Restore(CRestore &restore);
|
NOBODY virtual int Restore(CRestore &restore);
|
||||||
NOBODY virtual int ObjectCaps(void);
|
NOBODY virtual int ObjectCaps(void)
|
||||||
|
{
|
||||||
|
return ObjectCaps_();
|
||||||
|
}
|
||||||
NOBODY virtual void OverrideReset(void);
|
NOBODY virtual void OverrideReset(void);
|
||||||
NOBODY virtual BOOL OnControls(entvars_t *pev);
|
NOBODY virtual BOOL OnControls(entvars_t *pev);
|
||||||
NOBODY virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
NOBODY virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
|
||||||
|
@ -140,7 +140,7 @@ public:
|
|||||||
int Restore_(CRestore &restore);
|
int Restore_(CRestore &restore);
|
||||||
int ObjectCaps_(void)
|
int ObjectCaps_(void)
|
||||||
{
|
{
|
||||||
return m_bIsC4 != false ? FCAP_CONTINUOUS_USE : 0;
|
return m_bIsC4 ? FCAP_CONTINUOUS_USE : 0;
|
||||||
}
|
}
|
||||||
void Killed_(entvars_t *pevAttacker, int iGib);
|
void Killed_(entvars_t *pevAttacker, int iGib);
|
||||||
int BloodColor_(void)
|
int BloodColor_(void)
|
||||||
|
60
regamedll/engine/cmd.h
Normal file
60
regamedll/engine/cmd.h
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License as published by the
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at
|
||||||
|
* your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software Foundation,
|
||||||
|
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* In addition, as a special exception, the author gives permission to
|
||||||
|
* link the code of this program with the Half-Life Game Engine ("HL
|
||||||
|
* Engine") and Modified Game Libraries ("MODs") developed by Valve,
|
||||||
|
* L.L.C ("Valve"). You must obey the GNU General Public License in all
|
||||||
|
* respects for all of the code used other than the HL Engine and MODs
|
||||||
|
* from Valve. If you modify this file, you may extend this exception
|
||||||
|
* to your version of the file, but you are not obligated to do so. If
|
||||||
|
* you do not wish to do so, delete this exception statement from your
|
||||||
|
* version.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef CMD_H
|
||||||
|
#define CMD_H
|
||||||
|
#ifdef _WIN32
|
||||||
|
#pragma once
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FCMD_HUD_COMMAND BIT(0)
|
||||||
|
#define FCMD_GAME_COMMAND BIT(1)
|
||||||
|
#define FCMD_WRAPPER_COMMAND BIT(2)
|
||||||
|
|
||||||
|
/* <8f1> ../engine/cmd.h:65 */
|
||||||
|
typedef void (*xcommand_t)(void);
|
||||||
|
|
||||||
|
/* <904> ../engine/cmd.h:71 */
|
||||||
|
typedef struct cmd_function_s
|
||||||
|
{
|
||||||
|
struct cmd_function_s *next;
|
||||||
|
char *name;
|
||||||
|
xcommand_t function;
|
||||||
|
int flags;
|
||||||
|
|
||||||
|
} cmd_function_t;
|
||||||
|
|
||||||
|
/* <95a> ../engine/cmd.h:80 */
|
||||||
|
typedef enum cmd_source_s
|
||||||
|
{
|
||||||
|
src_client = 0, // came in over a net connection as a clc_stringcmd. host_client will be valid during this state.
|
||||||
|
src_command = 1, // from the command buffer.
|
||||||
|
|
||||||
|
} cmd_source_t;
|
||||||
|
|
||||||
|
#endif // CMD_H
|
@ -52,6 +52,7 @@
|
|||||||
|
|
||||||
typedef unsigned int string_t; // from engine's pr_comp.h;
|
typedef unsigned int string_t; // from engine's pr_comp.h;
|
||||||
typedef int EOFFSET;
|
typedef int EOFFSET;
|
||||||
|
typedef int BOOL;
|
||||||
|
|
||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
typedef enum { false, true } qboolean;
|
typedef enum { false, true } qboolean;
|
||||||
|
@ -253,6 +253,10 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
#if defined(_WIN32) && defined(HOOK_GAMEDLL)
|
||||||
|
int unknown_padding1;
|
||||||
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
BotProfileList m_profileList;
|
BotProfileList m_profileList;
|
||||||
VoiceBankList m_voiceBanks;
|
VoiceBankList m_voiceBanks;
|
||||||
|
|
||||||
|
@ -49,8 +49,7 @@ HidingSpotList TheHidingSpotList;
|
|||||||
NavAreaList TheNavAreaList;
|
NavAreaList TheNavAreaList;
|
||||||
CNavAreaGrid TheNavAreaGrid;
|
CNavAreaGrid TheNavAreaGrid;
|
||||||
CNavArea *(*CNavArea::m_openList);
|
CNavArea *(*CNavArea::m_openList);
|
||||||
|
bool (*CNavArea::m_isReset);
|
||||||
//bool CNavArea::m_isReset = false;
|
|
||||||
|
|
||||||
//float lastDrawTimestamp;
|
//float lastDrawTimestamp;
|
||||||
NavAreaList goodSizedAreaList;
|
NavAreaList goodSizedAreaList;
|
||||||
@ -210,49 +209,46 @@ NOBODY CNavArea::CNavArea(CNavNode *nwNode, class CNavNode *neNode, class CNavNo
|
|||||||
/* <4d58d7> ../game_shared/bot/nav_area.cpp:295 */
|
/* <4d58d7> ../game_shared/bot/nav_area.cpp:295 */
|
||||||
NOBODY CNavArea::~CNavArea(void)
|
NOBODY CNavArea::~CNavArea(void)
|
||||||
{
|
{
|
||||||
// {
|
#ifndef HOOK_GAMEDLL
|
||||||
// iterator iter; // 302
|
if (m_isReset)
|
||||||
// {
|
#else
|
||||||
// class CNavArea *area; // 305
|
if (*m_isReset)
|
||||||
// OnDestroyNotify(CNavArea *const this,
|
#endif // HOOK_GAMEDLL
|
||||||
// class CNavArea *dead); // 310
|
{
|
||||||
// }
|
//m_overlapList.~list();
|
||||||
// operator++(_List_iterator<CNavArea*> *const this); // 303
|
//m_ladder->~list();
|
||||||
// {
|
//m_connect->~list();
|
||||||
// int i; // 314
|
//m_spotEncounterList.~list();
|
||||||
// { /* ~CNavArea+0x18e */
|
//m_hidingSpotList.~list();
|
||||||
// iterator liter; // 316
|
|
||||||
// {
|
return;
|
||||||
// class CNavLadder *ladder; // 318
|
}
|
||||||
// OnDestroyNotify(CNavLadder *const this,
|
|
||||||
// class CNavArea *dead); // 320
|
// tell the other areas we are going away
|
||||||
// }
|
NavAreaList::iterator iter;
|
||||||
// operator++(_List_iterator<CNavLadder*> *const this); // 316
|
for (iter = TheNavAreaList.begin(); iter != TheNavAreaList.end(); ++iter)
|
||||||
// }
|
{
|
||||||
// }
|
CNavArea *area = *iter;
|
||||||
// RemoveNavArea(CNavAreaGrid *const this,
|
|
||||||
// class CNavArea *area); // 325
|
if (area == this)
|
||||||
// }
|
continue;
|
||||||
// ~list(list<CNavArea*, std::allocator<CNavArea*>> *const this,
|
|
||||||
// int const __in_chrg); // 295
|
area->OnDestroyNotify(this);
|
||||||
// ~list(list<CNavLadder*, std::allocator<CNavLadder*>> *const this,
|
}
|
||||||
// int const __in_chrg); // 295
|
|
||||||
// ~list(list<NavConnect, std::allocator<NavConnect>> *const this,
|
// unhook from ladders
|
||||||
// int const __in_chrg); // 295
|
for (int i = 0; i < NUM_LADDER_DIRECTIONS; ++i)
|
||||||
// ~list(list<SpotEncounter, std::allocator<SpotEncounter>> *const this,
|
{
|
||||||
// int const __in_chrg); // 295
|
for (NavLadderList::iterator liter = m_ladder[i].begin(); liter != m_ladder[i].end(); ++liter)
|
||||||
// ~list(list<HidingSpot*, std::allocator<HidingSpot*>> *const this,
|
{
|
||||||
// int const __in_chrg); // 295
|
CNavLadder *ladder = *liter;
|
||||||
// ~list(list<CNavArea*, std::allocator<CNavArea*>> *const this,
|
|
||||||
// int const __in_chrg); // 295
|
ladder->OnDestroyNotify(this);
|
||||||
// ~list(list<CNavLadder*, std::allocator<CNavLadder*>> *const this,
|
}
|
||||||
// int const __in_chrg); // 295
|
}
|
||||||
// ~list(list<NavConnect, std::allocator<NavConnect>> *const this,
|
|
||||||
// int const __in_chrg); // 295
|
// remove the area from the grid
|
||||||
// ~list(list<SpotEncounter, std::allocator<SpotEncounter>> *const this,
|
TheNavAreaGrid.RemoveNavArea(this);
|
||||||
// int const __in_chrg); // 295
|
|
||||||
// ~list(list<HidingSpot*, std::allocator<HidingSpot*>> *const this,
|
|
||||||
// int const __in_chrg); // 295
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <4c67f0> ../game_shared/bot/nav_area.cpp:333 */
|
/* <4c67f0> ../game_shared/bot/nav_area.cpp:333 */
|
||||||
@ -1510,6 +1506,16 @@ NOBODY void CNavArea::UpdateOnOpenList(void)
|
|||||||
/* <4cbdbc> ../game_shared/bot/nav_area.cpp:2713 */
|
/* <4cbdbc> ../game_shared/bot/nav_area.cpp:2713 */
|
||||||
NOBODY void CNavArea::RemoveFromOpenList(void)
|
NOBODY void CNavArea::RemoveFromOpenList(void)
|
||||||
{
|
{
|
||||||
|
if (m_prevOpen)
|
||||||
|
m_prevOpen->m_nextOpen = m_nextOpen;
|
||||||
|
else
|
||||||
|
(*m_openList) = m_nextOpen;
|
||||||
|
|
||||||
|
if (m_nextOpen)
|
||||||
|
m_nextOpen->m_prevOpen = m_prevOpen;
|
||||||
|
|
||||||
|
// zero is an invalid marker
|
||||||
|
m_openMarker = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <4cbddf> ../game_shared/bot/nav_area.cpp:2731 */
|
/* <4cbddf> ../game_shared/bot/nav_area.cpp:2731 */
|
||||||
|
@ -524,12 +524,13 @@ private:
|
|||||||
friend class CCSBotManager;
|
friend class CCSBotManager;
|
||||||
|
|
||||||
void Initialize(void);
|
void Initialize(void);
|
||||||
static bool m_isReset;
|
|
||||||
|
|
||||||
#ifndef HOOK_GAMEDLL
|
#ifndef HOOK_GAMEDLL
|
||||||
|
static bool m_isReset;
|
||||||
static unsigned int m_nextID;
|
static unsigned int m_nextID;
|
||||||
#else
|
#else
|
||||||
public:
|
public:
|
||||||
|
static bool (*m_isReset);
|
||||||
static unsigned int (*m_nextID);
|
static unsigned int (*m_nextID);
|
||||||
private:
|
private:
|
||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
@ -549,7 +550,16 @@ private:
|
|||||||
float m_danger[MAX_AREA_TEAMS];
|
float m_danger[MAX_AREA_TEAMS];
|
||||||
float m_dangerTimestamp[MAX_AREA_TEAMS];
|
float m_dangerTimestamp[MAX_AREA_TEAMS];
|
||||||
|
|
||||||
|
#if defined(_WIN32) && defined(HOOK_GAMEDLL)
|
||||||
|
int unknown_padding1;
|
||||||
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
HidingSpotList m_hidingSpotList;
|
HidingSpotList m_hidingSpotList;
|
||||||
|
|
||||||
|
#if defined(_WIN32) && defined(HOOK_GAMEDLL)
|
||||||
|
int unknown_padding2;
|
||||||
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
SpotEncounterList m_spotEncounterList;
|
SpotEncounterList m_spotEncounterList;
|
||||||
|
|
||||||
enum { MAX_APPROACH_AREAS = 16 };
|
enum { MAX_APPROACH_AREAS = 16 };
|
||||||
@ -579,14 +589,38 @@ public:
|
|||||||
private:
|
private:
|
||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
CNavArea *m_nextOpen, *m_prevOpen;
|
CNavArea *m_nextOpen;
|
||||||
|
CNavArea *m_prevOpen;
|
||||||
unsigned int m_openMarker;
|
unsigned int m_openMarker;
|
||||||
|
|
||||||
NavConnectList m_connect[NUM_DIRECTIONS];
|
#ifdef _WIN32
|
||||||
NavLadderList m_ladder[NUM_LADDER_DIRECTIONS];
|
int unknown_padding3;
|
||||||
|
#endif // _WIN32
|
||||||
|
|
||||||
|
NavConnectList m_connect[ NUM_DIRECTIONS ];
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
int unknown_padding4;
|
||||||
|
int unknown_padding5;
|
||||||
|
|
||||||
|
int unknown_padding6;
|
||||||
|
int unknown_padding7;
|
||||||
|
#endif // _WIN32
|
||||||
|
|
||||||
|
NavLadderList m_ladder[ NUM_LADDER_DIRECTIONS ];
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
int unknown_padding8;
|
||||||
|
#endif // _WIN32
|
||||||
|
|
||||||
|
CNavNode *m_node[ NUM_CORNERS ];
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
int unknown_padding9;
|
||||||
|
#endif // _WIN32
|
||||||
|
|
||||||
CNavNode *m_node[NUM_CORNERS];
|
|
||||||
NavAreaList m_overlapList;
|
NavAreaList m_overlapList;
|
||||||
|
|
||||||
CNavArea *m_prevHash;
|
CNavArea *m_prevHash;
|
||||||
CNavArea *m_nextHash;
|
CNavArea *m_nextHash;
|
||||||
|
|
||||||
@ -594,11 +628,13 @@ private:
|
|||||||
|
|
||||||
extern NavAreaList TheNavAreaList;
|
extern NavAreaList TheNavAreaList;
|
||||||
|
|
||||||
|
/* <4c1534> ../game_shared/bot/nav_area.h:417 */
|
||||||
inline bool CNavArea::IsDegenerate(void) const
|
inline bool CNavArea::IsDegenerate(void) const
|
||||||
{
|
{
|
||||||
return (m_extent.lo.x >= m_extent.hi.x || m_extent.lo.y >= m_extent.hi.y);
|
return (m_extent.lo.x >= m_extent.hi.x || m_extent.lo.y >= m_extent.hi.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* <568e1d> ../game_shared/bot/nav_area.h:422 */
|
||||||
inline CNavArea *CNavArea::GetAdjacentArea(NavDirType dir, int i) const
|
inline CNavArea *CNavArea::GetAdjacentArea(NavDirType dir, int i) const
|
||||||
{
|
{
|
||||||
NavConnectList::const_iterator iter;
|
NavConnectList::const_iterator iter;
|
||||||
@ -611,6 +647,7 @@ inline CNavArea *CNavArea::GetAdjacentArea(NavDirType dir, int i) const
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* <5a01dc> ../game_shared/bot/nav_area.h:435 */
|
||||||
inline bool CNavArea::IsOpen(void) const
|
inline bool CNavArea::IsOpen(void) const
|
||||||
{
|
{
|
||||||
#ifndef HOOK_GAMEDLL
|
#ifndef HOOK_GAMEDLL
|
||||||
@ -620,6 +657,7 @@ inline bool CNavArea::IsOpen(void) const
|
|||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* <5a0a62> ../game_shared/bot/nav_area.h:440 */
|
||||||
inline bool CNavArea::IsOpenListEmpty(void)
|
inline bool CNavArea::IsOpenListEmpty(void)
|
||||||
{
|
{
|
||||||
#ifndef HOOK_GAMEDLL
|
#ifndef HOOK_GAMEDLL
|
||||||
@ -629,6 +667,7 @@ inline bool CNavArea::IsOpenListEmpty(void)
|
|||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* <5a1483> ../game_shared/bot/nav_area.h:445 */
|
||||||
inline CNavArea *CNavArea::PopOpenList(void)
|
inline CNavArea *CNavArea::PopOpenList(void)
|
||||||
{
|
{
|
||||||
#ifndef HOOK_GAMEDLL
|
#ifndef HOOK_GAMEDLL
|
||||||
@ -649,6 +688,7 @@ inline CNavArea *CNavArea::PopOpenList(void)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* <5a0a2a> ../game_shared/bot/nav_area.h:460 */
|
||||||
inline bool CNavArea::IsClosed(void) const
|
inline bool CNavArea::IsClosed(void) const
|
||||||
{
|
{
|
||||||
if (IsMarked() && !IsOpen())
|
if (IsMarked() && !IsOpen())
|
||||||
@ -657,16 +697,19 @@ inline bool CNavArea::IsClosed(void) const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* <5a0a46> ../game_shared/bot/nav_area.h:468 */
|
||||||
inline void CNavArea::AddToClosedList(void)
|
inline void CNavArea::AddToClosedList(void)
|
||||||
{
|
{
|
||||||
Mark();
|
Mark();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* <5a01f8> ../game_shared/bot/nav_area.h:473 */
|
||||||
inline void CNavArea::RemoveFromClosedList(void)
|
inline void CNavArea::RemoveFromClosedList(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* <4cf943> ../game_shared/bot/nav_area.cpp:4947 */
|
||||||
class CNavAreaGrid
|
class CNavAreaGrid
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -38,6 +38,6 @@
|
|||||||
#define VOICE_MAX_PLAYERS 32
|
#define VOICE_MAX_PLAYERS 32
|
||||||
#define VOICE_MAX_PLAYERS_DW ((VOICE_MAX_PLAYERS / 32) + !!(VOICE_MAX_PLAYERS & 31))
|
#define VOICE_MAX_PLAYERS_DW ((VOICE_MAX_PLAYERS / 32) + !!(VOICE_MAX_PLAYERS & 31))
|
||||||
|
|
||||||
typedef CBitVec<VOICE_MAX_PLAYERS> CPlayerBitVec;
|
typedef CBitVec< VOICE_MAX_PLAYERS > CPlayerBitVec;
|
||||||
|
|
||||||
#endif // VOICE_COMMON_H
|
#endif // VOICE_COMMON_H
|
||||||
|
@ -5,137 +5,220 @@
|
|||||||
*/
|
*/
|
||||||
#ifndef HOOK_GAMEDLL
|
#ifndef HOOK_GAMEDLL
|
||||||
|
|
||||||
//cvar_t voice_serverdebug = { "voice_serverdebug", "0" };
|
cvar_t voice_serverdebug = { "voice_serverdebug", "0" };
|
||||||
//cvar_t sv_alltalk = { "sv_alltalk", "0", FCVAR_SERVER };
|
cvar_t sv_alltalk = { "sv_alltalk", "0", FCVAR_SERVER };
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
//cvar_t voice_serverdebug;
|
cvar_t voice_serverdebug;
|
||||||
//cvar_t sv_alltalk;
|
cvar_t sv_alltalk;
|
||||||
|
|
||||||
#endif // HOOK_GAMEDLL
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
//CPlayerBitVec g_PlayerModEnable;
|
CPlayerBitVec g_PlayerModEnable;
|
||||||
//CBitVec<32> g_BanMasks[32];
|
CBitVec< VOICE_MAX_PLAYERS > g_BanMasks[ VOICE_MAX_PLAYERS ];
|
||||||
//CBitVec<32> g_SentGameRulesMasks[32];
|
CBitVec< VOICE_MAX_PLAYERS > g_SentGameRulesMasks[ VOICE_MAX_PLAYERS ];
|
||||||
//CBitVec<32> g_SentBanMasks[32];
|
CBitVec< VOICE_MAX_PLAYERS > g_SentBanMasks[ VOICE_MAX_PLAYERS ];
|
||||||
//CPlayerBitVec g_bWantModEnable;
|
CPlayerBitVec g_bWantModEnable;
|
||||||
|
|
||||||
/* <2d3c38> ../game_shared/voice_gamemgr.cpp:68 */
|
/* <2d3c38> ../game_shared/voice_gamemgr.cpp:68 */
|
||||||
NOBODY void VoiceServerDebug(const char *pFmt, ...)
|
void VoiceServerDebug(const char *pFmt, ...)
|
||||||
{
|
{
|
||||||
// {
|
char msg[4096];
|
||||||
// char msg; // 70
|
va_list marker;
|
||||||
// va_list marker; // 71
|
|
||||||
// }
|
if (!voice_serverdebug.value)
|
||||||
|
return;
|
||||||
|
|
||||||
|
va_start(marker, pFmt);
|
||||||
|
Q_vsnprintf(msg, sizeof(msg), pFmt, marker);
|
||||||
|
va_end(marker);
|
||||||
|
|
||||||
|
ALERT(at_console, "%s", msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <2d3cd1> ../game_shared/voice_gamemgr.cpp:89 */
|
/* <2d3cd1> ../game_shared/voice_gamemgr.cpp:89 */
|
||||||
CVoiceGameMgr::CVoiceGameMgr(void)
|
CVoiceGameMgr::CVoiceGameMgr(void)
|
||||||
{
|
{
|
||||||
|
m_UpdateInterval = 0;
|
||||||
|
m_nMaxPlayers = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <2d3c98> ../game_shared/voice_gamemgr.cpp:96 */
|
/* <2d3c98> ../game_shared/voice_gamemgr.cpp:96 */
|
||||||
CVoiceGameMgr::~CVoiceGameMgr(void)
|
CVoiceGameMgr::~CVoiceGameMgr(void)
|
||||||
{
|
{
|
||||||
// ~CVoiceGameMgr(CVoiceGameMgr::~CVoiceGameMgr(); // 98
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <2d3d0b> ../game_shared/voice_gamemgr.cpp:101 */
|
/* <2d3d0b> ../game_shared/voice_gamemgr.cpp:101 */
|
||||||
NOBODY bool CVoiceGameMgr::Init(IVoiceGameMgrHelper *pHelper, int maxClients)
|
bool CVoiceGameMgr::Init(IVoiceGameMgrHelper *pHelper, int maxClients)
|
||||||
{
|
{
|
||||||
|
m_pHelper = pHelper;
|
||||||
|
m_nMaxPlayers = (maxClients > VOICE_MAX_PLAYERS) ? VOICE_MAX_PLAYERS : maxClients;
|
||||||
|
|
||||||
|
PRECACHE_MODEL("sprites/voiceicon.spr");
|
||||||
|
|
||||||
|
m_msgPlayerVoiceMask = REG_USER_MSG("VoiceMask", VOICE_MAX_PLAYERS_DW * 4 * 2);
|
||||||
|
m_msgRequestState = REG_USER_MSG("ReqState", 0);
|
||||||
|
|
||||||
|
// register voice_serverdebug if it hasn't been registered already
|
||||||
|
if (!CVAR_GET_POINTER("voice_serverdebug"))
|
||||||
|
CVAR_REGISTER(&voice_serverdebug);
|
||||||
|
|
||||||
|
if (!CVAR_GET_POINTER("sv_alltalk"))
|
||||||
|
CVAR_REGISTER(&sv_alltalk);
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <2d3d4e> ../game_shared/voice_gamemgr.cpp:123 */
|
/* <2d3d4e> ../game_shared/voice_gamemgr.cpp:123 */
|
||||||
NOBODY void CVoiceGameMgr::SetHelper(IVoiceGameMgrHelper *pHelper)
|
NOXREF void CVoiceGameMgr::SetHelper(IVoiceGameMgrHelper *pHelper)
|
||||||
{
|
{
|
||||||
|
m_pHelper = pHelper;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <2d4486> ../game_shared/voice_gamemgr.cpp:129 */
|
/* <2d4486> ../game_shared/voice_gamemgr.cpp:129 */
|
||||||
NOBODY void CVoiceGameMgr::Update(double frametime)
|
void CVoiceGameMgr::Update(double frametime)
|
||||||
{
|
{
|
||||||
|
// Only update periodically.
|
||||||
|
m_UpdateInterval += frametime;
|
||||||
|
|
||||||
|
if(m_UpdateInterval >= UPDATE_INTERVAL)
|
||||||
|
UpdateMasks();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <2d3d82> ../game_shared/voice_gamemgr.cpp:140 */
|
/* <2d3d82> ../game_shared/voice_gamemgr.cpp:140 */
|
||||||
NOBODY void CVoiceGameMgr::ClientConnected(edict_t *pEdict)
|
void CVoiceGameMgr::ClientConnected(edict_t *pEdict)
|
||||||
{
|
{
|
||||||
// {
|
int index = ENTINDEX(pEdict) - 1;
|
||||||
// int index; // 142
|
|
||||||
// ENTINDEX(edict_t *pEdict); // 142
|
// Clear out everything we use for deltas on this guy.
|
||||||
// operator=(CBitVecAccessor *const this,
|
g_bWantModEnable[index] = true;
|
||||||
// int val); // 145
|
g_SentGameRulesMasks[index].Init(0);
|
||||||
// Init(CBitVec<32> *const this,
|
g_SentBanMasks[index].Init(0);
|
||||||
// int val); // 146
|
|
||||||
// Init(CBitVec<32> *const this,
|
|
||||||
// int val); // 147
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Called to determine if the Receiver has muted (blocked) the Sender
|
||||||
|
// Returns true if the receiver has blocked the sender
|
||||||
|
|
||||||
/* <2d3ec5> ../game_shared/voice_gamemgr.cpp:152 */
|
/* <2d3ec5> ../game_shared/voice_gamemgr.cpp:152 */
|
||||||
NOBODY bool CVoiceGameMgr::PlayerHasBlockedPlayer(CBasePlayer *pReceiver, CBasePlayer *pSender)
|
bool CVoiceGameMgr::PlayerHasBlockedPlayer(CBasePlayer *pReceiver, CBasePlayer *pSender)
|
||||||
{
|
{
|
||||||
// {
|
int iReceiverIndex, iSenderIndex;
|
||||||
// int iReceiverIndex; // 154
|
|
||||||
// int iSenderIndex; // 154
|
if (!pReceiver || !pSender)
|
||||||
// entindex(CBaseEntity *const this); // 159
|
return false;
|
||||||
// entindex(CBaseEntity *const this); // 160
|
|
||||||
// operator uint32(CBitVecAccessor *const this); // 165
|
iReceiverIndex = pReceiver->entindex() - 1;
|
||||||
// }
|
iSenderIndex = pSender->entindex() - 1;
|
||||||
|
|
||||||
|
if (iReceiverIndex < 0 || iReceiverIndex >= m_nMaxPlayers || iSenderIndex < 0 || iSenderIndex >= m_nMaxPlayers)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return (g_BanMasks[ iReceiverIndex ][ iSenderIndex ] != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
NOBODY bool CVoiceGameMgr::ClientCommand(CBasePlayer *pPlayer, const char *cmd)
|
/* <2d401a> ../game_shared/voice_gamemgr.cpp:169 */
|
||||||
|
bool CVoiceGameMgr::ClientCommand(CBasePlayer *pPlayer, const char *cmd)
|
||||||
{
|
{
|
||||||
|
int playerClientIndex = pPlayer->entindex() - 1;
|
||||||
|
if (playerClientIndex < 0 || playerClientIndex >= m_nMaxPlayers)
|
||||||
|
{
|
||||||
|
VoiceServerDebug("CVoiceGameMgr::ClientCommand: cmd %s from invalid client (%d)\n", cmd, playerClientIndex);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool bBan = Q_stricmp(cmd, "vban") == 0;
|
||||||
|
if (bBan && CMD_ARGC() >= 2)
|
||||||
|
{
|
||||||
|
for (int i = 1; i < CMD_ARGC(); i++)
|
||||||
|
{
|
||||||
|
uint32 mask = 0;
|
||||||
|
sscanf(CMD_ARGV(i), "%x", &mask);
|
||||||
|
|
||||||
|
if (i <= VOICE_MAX_PLAYERS_DW)
|
||||||
|
{
|
||||||
|
VoiceServerDebug("CVoiceGameMgr::ClientCommand: vban (0x%x) from %d\n", mask, playerClientIndex);
|
||||||
|
g_BanMasks[ playerClientIndex ].SetDWord(i - 1, mask);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
VoiceServerDebug("CVoiceGameMgr::ClientCommand: invalid index (%d)\n", i);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (Q_stricmp(cmd, "VModEnable") == 0 && CMD_ARGC() >= 2)
|
||||||
|
{
|
||||||
|
VoiceServerDebug("CVoiceGameMgr::ClientCommand: VModEnable (%d)\n", !!atoi(CMD_ARGV(1)));
|
||||||
|
|
||||||
|
g_PlayerModEnable[ playerClientIndex ] = !!atoi(CMD_ARGV(1));
|
||||||
|
g_bWantModEnable[ playerClientIndex ] = false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* <2d416b> ../game_shared/voice_gamemgr.cpp:215 */
|
/* <2d416b> ../game_shared/voice_gamemgr.cpp:215 */
|
||||||
NOBODY void CVoiceGameMgr::UpdateMasks(void)
|
void CVoiceGameMgr::UpdateMasks(void)
|
||||||
{
|
{
|
||||||
// {
|
m_UpdateInterval = 0;
|
||||||
// bool bAllTalk; // 219
|
|
||||||
// {
|
bool bAllTalk = !!(sv_alltalk.value);
|
||||||
// int iClient; // 221
|
|
||||||
// {
|
for (int iClient = 0; iClient < m_nMaxPlayers; iClient++)
|
||||||
// class CBaseEntity *pEnt; // 223
|
{
|
||||||
// class CBasePlayer *pPlayer; // 234
|
CBaseEntity *pEnt = UTIL_PlayerByIndex(iClient + 1);
|
||||||
// CPlayerBitVec gameRulesMask; // 236
|
|
||||||
// operator uint32(CBitVecAccessor *const this); // 228
|
if (!pEnt || !pEnt->IsPlayer())
|
||||||
// MESSAGE_BEGIN(int msg_dest,
|
continue;
|
||||||
// int msg_type,
|
|
||||||
// const float *pOrigin,
|
CBasePlayer *pPlayer = (CBasePlayer *)pEnt;
|
||||||
// entvars_t *ent); // 230
|
CPlayerBitVec gameRulesMask;
|
||||||
// CBitVec(CBitVec<32> *const this); // 236
|
|
||||||
// {
|
// Request the state of their "VModEnable" cvar.
|
||||||
// int iOtherClient; // 240
|
if (g_bWantModEnable[ iClient ])
|
||||||
// {
|
{
|
||||||
// class CBaseEntity *pEnt; // 242
|
MESSAGE_BEGIN(MSG_ONE, m_msgRequestState, NULL, pEnt->pev);
|
||||||
// operator=(CBitVecAccessor *const this,
|
MESSAGE_END();
|
||||||
// int val); // 245
|
}
|
||||||
// }
|
|
||||||
// }
|
if (g_PlayerModEnable[ iClient ])
|
||||||
// operator!=(CBitVec<32> *const this,
|
{
|
||||||
// const class CBitVec<32> &other); // 251
|
// Build a mask of who they can hear based on the game rules.
|
||||||
// operator!=(CBitVec<32> *const this,
|
for (int iOtherClient = 0; iOtherClient < m_nMaxPlayers; iOtherClient++)
|
||||||
// const class CBitVec<32> &other); // 252
|
{
|
||||||
// {
|
CBaseEntity *pEnt = UTIL_PlayerByIndex(iOtherClient + 1);
|
||||||
// int dw; // 258
|
|
||||||
// operator=(CBitVec<32> *const this,
|
if (pEnt && (bAllTalk || m_pHelper->CanPlayerHearPlayer(pPlayer, (CBasePlayer *)pEnt)))
|
||||||
// const class CBitVec<32> &other); // 254
|
{
|
||||||
// operator=(CBitVec<32> *const this,
|
gameRulesMask[ iOtherClient ] = true;
|
||||||
// const class CBitVec<32> &other); // 255
|
}
|
||||||
// MESSAGE_BEGIN(int msg_dest,
|
}
|
||||||
// int msg_type,
|
}
|
||||||
// const float *pOrigin,
|
|
||||||
// entvars_t *ent); // 257
|
// If this is different from what the client has, send an update.
|
||||||
// }
|
if (gameRulesMask != g_SentGameRulesMasks[ iClient ] || g_BanMasks[ iClient ] != g_SentBanMasks[ iClient ])
|
||||||
// {
|
{
|
||||||
// int iOtherClient; // 268
|
g_SentGameRulesMasks[ iClient ] = gameRulesMask;
|
||||||
// {
|
g_SentBanMasks[ iClient ] = g_BanMasks[ iClient ];
|
||||||
// bool bCanHear; // 270
|
|
||||||
// operator uint32(CBitVecAccessor *const this); // 270
|
MESSAGE_BEGIN(MSG_ONE, m_msgPlayerVoiceMask, NULL, pPlayer->pev);
|
||||||
// operator uint32(CBitVecAccessor *const this); // 270
|
int dw;
|
||||||
// }
|
for (dw = 0; dw < VOICE_MAX_PLAYERS_DW; dw++)
|
||||||
// }
|
{
|
||||||
// }
|
WRITE_LONG(gameRulesMask.GetDWord(dw));
|
||||||
// }
|
WRITE_LONG(g_BanMasks[ iClient ].GetDWord(dw));
|
||||||
// }
|
}
|
||||||
|
MESSAGE_END();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Tell the engine.
|
||||||
|
for (int iOtherClient = 0; iOtherClient < m_nMaxPlayers; iOtherClient++)
|
||||||
|
{
|
||||||
|
bool bCanHear = gameRulesMask[ iOtherClient ] && !g_BanMasks[ iClient ][ iOtherClient ];
|
||||||
|
SET_CLIENT_LISTENING(iClient + 1, iOtherClient + 1, bCanHear);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,14 +32,39 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define UPDATE_INTERVAL 0.3
|
||||||
|
|
||||||
#include "voice_common.h"
|
#include "voice_common.h"
|
||||||
|
|
||||||
|
#ifdef HOOK_GAMEDLL
|
||||||
|
|
||||||
|
#define voice_serverdebug (*pvoice_serverdebug)
|
||||||
|
#define sv_alltalk (*psv_alltalk)
|
||||||
|
|
||||||
|
#define g_PlayerModEnable (*pg_PlayerModEnable)
|
||||||
|
#define g_BanMasks (*pg_BanMasks)
|
||||||
|
#define g_SentGameRulesMasks (*pg_SentGameRulesMasks)
|
||||||
|
#define g_SentBanMasks (*pg_SentBanMasks)
|
||||||
|
#define g_bWantModEnable (*pg_bWantModEnable)
|
||||||
|
|
||||||
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
|
extern cvar_t voice_serverdebug;
|
||||||
|
extern cvar_t sv_alltalk;
|
||||||
|
|
||||||
|
extern CPlayerBitVec g_PlayerModEnable;
|
||||||
|
extern CBitVec< VOICE_MAX_PLAYERS > g_BanMasks[ VOICE_MAX_PLAYERS ];
|
||||||
|
extern CBitVec< VOICE_MAX_PLAYERS > g_SentGameRulesMasks[ VOICE_MAX_PLAYERS ];
|
||||||
|
extern CBitVec< VOICE_MAX_PLAYERS > g_SentBanMasks[ VOICE_MAX_PLAYERS ];
|
||||||
|
extern CPlayerBitVec g_bWantModEnable;
|
||||||
|
|
||||||
/* <111716> ../game_shared/voice_gamemgr.h:23 */
|
/* <111716> ../game_shared/voice_gamemgr.h:23 */
|
||||||
class IVoiceGameMgrHelper
|
class IVoiceGameMgrHelper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~IVoiceGameMgrHelper() {}
|
virtual ~IVoiceGameMgrHelper() {}
|
||||||
NOBODY virtual bool CanPlayerHearPlayer(CBasePlayer *pListener, CBasePlayer *pTalker) = 0;
|
NOBODY virtual bool CanPlayerHearPlayer(CBasePlayer *pListener, CBasePlayer *pTalker) = 0;
|
||||||
|
|
||||||
};/* size: 4, cachelines: 1, members: 1 */
|
};/* size: 4, cachelines: 1, members: 1 */
|
||||||
|
|
||||||
class CVoiceGameMgr
|
class CVoiceGameMgr
|
||||||
@ -47,20 +72,30 @@ class CVoiceGameMgr
|
|||||||
public:
|
public:
|
||||||
CVoiceGameMgr(void);
|
CVoiceGameMgr(void);
|
||||||
virtual ~CVoiceGameMgr(void);
|
virtual ~CVoiceGameMgr(void);
|
||||||
NOBODY bool Init(IVoiceGameMgrHelper *pHelper, int maxClients);
|
|
||||||
NOBODY void SetHelper(IVoiceGameMgrHelper *pHelper);
|
bool Init(IVoiceGameMgrHelper *pHelper, int maxClients);
|
||||||
NOBODY void Update(double frametime);
|
NOXREF void SetHelper(IVoiceGameMgrHelper *pHelper);
|
||||||
NOBODY void ClientConnected(edict_t *pEdict);
|
void Update(double frametime);
|
||||||
NOBODY bool ClientCommand(CBasePlayer *pPlayer, const char *cmd);
|
void ClientConnected(edict_t *pEdict);
|
||||||
NOBODY bool PlayerHasBlockedPlayer(CBasePlayer *pReceiver, CBasePlayer *pSender);
|
bool ClientCommand(CBasePlayer *pPlayer, const char *cmd);
|
||||||
|
bool PlayerHasBlockedPlayer(CBasePlayer *pReceiver, CBasePlayer *pSender);
|
||||||
|
|
||||||
|
#ifdef HOOK_GAMEDLL
|
||||||
|
public:
|
||||||
|
#else
|
||||||
private:
|
private:
|
||||||
NOBODY void UpdateMasks(void);
|
#endif // HOOK_GAMEDLL
|
||||||
|
|
||||||
|
void UpdateMasks(void);
|
||||||
private:
|
private:
|
||||||
int m_msgPlayerVoiceMask;
|
int m_msgPlayerVoiceMask;
|
||||||
int m_msgRequestState;
|
int m_msgRequestState;
|
||||||
IVoiceGameMgrHelper *m_pHelper;
|
IVoiceGameMgrHelper *m_pHelper;
|
||||||
int m_nMaxPlayers;
|
int m_nMaxPlayers;
|
||||||
double m_UpdateInterval;
|
double m_UpdateInterval;
|
||||||
|
|
||||||
};/* size: 28, cachelines: 1, members: 6 */
|
};/* size: 28, cachelines: 1, members: 6 */
|
||||||
|
|
||||||
|
void VoiceServerDebug(const char *pFmt, ...);
|
||||||
|
|
||||||
#endif // VOICE_GAMEMGR_H
|
#endif // VOICE_GAMEMGR_H
|
||||||
|
@ -99,12 +99,14 @@ extern const size_t g_BaseOffset = NULL;
|
|||||||
//#define Nav_Region
|
//#define Nav_Region
|
||||||
//#define Hostage_Region
|
//#define Hostage_Region
|
||||||
//#define GameShr_BotProfile_Region
|
//#define GameShr_BotProfile_Region
|
||||||
|
//#define VoiceManager_Region
|
||||||
|
|
||||||
//#define Data_References_Region
|
//#define Data_References_Region
|
||||||
//#define Function_References_Region
|
//#define Function_References_Region
|
||||||
|
|
||||||
FunctionHook g_FunctionHooks[] =
|
FunctionHook g_FunctionHooks[] =
|
||||||
{
|
{
|
||||||
|
|
||||||
#ifndef Mem_Region
|
#ifndef Mem_Region
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
@ -1775,6 +1777,7 @@ FunctionHook g_FunctionHooks[] =
|
|||||||
#endif // MapRules_Region
|
#endif // MapRules_Region
|
||||||
|
|
||||||
#ifndef HintMessage_Region
|
#ifndef HintMessage_Region
|
||||||
|
|
||||||
//CHintMessage
|
//CHintMessage
|
||||||
//{ 0x0, "_ZNK12CHintMessage11GetDurationEv", mfunc_ptr_cast(&CHintMessage::GetDuration) }, // NOXREF
|
//{ 0x0, "_ZNK12CHintMessage11GetDurationEv", mfunc_ptr_cast(&CHintMessage::GetDuration) }, // NOXREF
|
||||||
//{ 0x0, "_ZN12CHintMessage4SendER11CBaseEntity", mfunc_ptr_cast(&CHintMessage::Send) }, // NOXREF
|
//{ 0x0, "_ZN12CHintMessage4SendER11CBaseEntity", mfunc_ptr_cast(&CHintMessage::Send) }, // NOXREF
|
||||||
@ -2405,7 +2408,7 @@ FunctionHook g_FunctionHooks[] =
|
|||||||
|
|
||||||
#ifndef GameRules_Region
|
#ifndef GameRules_Region
|
||||||
|
|
||||||
//{ 0x0, "_Z16InstallGameRulesv", (size_t)&InstallGameRules },
|
//{ 0x01D80C90, "_Z16InstallGameRulesv", (size_t)&InstallGameRules },
|
||||||
{ 0x01D80C00, "_ZN10CGameRules16RefreshSkillDataEv", mfunc_ptr_cast(&CGameRules::RefreshSkillData_) },
|
{ 0x01D80C00, "_ZN10CGameRules16RefreshSkillDataEv", mfunc_ptr_cast(&CGameRules::RefreshSkillData_) },
|
||||||
//{ 0x0, "_ZN10CGameRules18GetPlayerSpawnSpotEP11CBasePlayer", mfunc_ptr_cast(&CGameRules::GetPlayerSpawnSpot_) },
|
//{ 0x0, "_ZN10CGameRules18GetPlayerSpawnSpotEP11CBasePlayer", mfunc_ptr_cast(&CGameRules::GetPlayerSpawnSpot_) },
|
||||||
//{ 0x0, "_ZN10CGameRules17CanHavePlayerItemEP11CBasePlayerP15CBasePlayerItem", mfunc_ptr_cast(&CGameRules::CanHavePlayerItem_) },
|
//{ 0x0, "_ZN10CGameRules17CanHavePlayerItemEP11CBasePlayerP15CBasePlayerItem", mfunc_ptr_cast(&CGameRules::CanHavePlayerItem_) },
|
||||||
@ -2464,6 +2467,7 @@ FunctionHook g_FunctionHooks[] =
|
|||||||
|
|
||||||
//CHalfLifeMultiplay
|
//CHalfLifeMultiplay
|
||||||
//virtual func
|
//virtual func
|
||||||
|
//{ 0x01D8B8A0, "_ZN18CHalfLifeMultiplayC2Ev", mfunc_ptr_cast(&CHalfLifeMultiplay::CHalfLifeMultiplay) }, // constuctor
|
||||||
{ 0x01D8BF00, "_ZN18CHalfLifeMultiplay16RefreshSkillDataEv", mfunc_ptr_cast(&CHalfLifeMultiplay::RefreshSkillData_) },
|
{ 0x01D8BF00, "_ZN18CHalfLifeMultiplay16RefreshSkillDataEv", mfunc_ptr_cast(&CHalfLifeMultiplay::RefreshSkillData_) },
|
||||||
//{ 0x0, "_ZN18CHalfLifeMultiplay5ThinkEv", mfunc_ptr_cast(&CHalfLifeMultiplay::Think_) },
|
//{ 0x0, "_ZN18CHalfLifeMultiplay5ThinkEv", mfunc_ptr_cast(&CHalfLifeMultiplay::Think_) },
|
||||||
//{ 0x0, "_ZN18CHalfLifeMultiplay16IsAllowedToSpawnEP11CBaseEntity", mfunc_ptr_cast(&CHalfLifeMultiplay::IsAllowedToSpawn_) },
|
//{ 0x0, "_ZN18CHalfLifeMultiplay16IsAllowedToSpawnEP11CBaseEntity", mfunc_ptr_cast(&CHalfLifeMultiplay::IsAllowedToSpawn_) },
|
||||||
@ -2559,7 +2563,7 @@ FunctionHook g_FunctionHooks[] =
|
|||||||
//{ 0x0, "_Z9BroadcastPKc", (size_t)&Broadcast },
|
//{ 0x0, "_Z9BroadcastPKc", (size_t)&Broadcast },
|
||||||
{ 0x01D8B780, "_Z7GetTeami", (size_t)&GetTeam },
|
{ 0x01D8B780, "_Z7GetTeami", (size_t)&GetTeam },
|
||||||
//{ 0x0, "_Z15EndRoundMessagePKci", (size_t)&EndRoundMessage },
|
//{ 0x0, "_Z15EndRoundMessagePKci", (size_t)&EndRoundMessage },
|
||||||
//{ 0x0, "_ZL18ReadMultiplayCvarsP18CHalfLifeMultiplay", (size_t)&ReadMultiplayCvars },
|
//{ 0x01D8BD80, "_ZL18ReadMultiplayCvarsP18CHalfLifeMultiplay", (size_t)&ReadMultiplayCvars },
|
||||||
//{ 0x0, "_Z15DestroyMapCycleP10mapcycle_s", (size_t)&DestroyMapCycle },
|
//{ 0x0, "_Z15DestroyMapCycleP10mapcycle_s", (size_t)&DestroyMapCycle },
|
||||||
//{ 0x0, "_Z15MP_COM_GetTokenv", (size_t)&MP_COM_GetToken },
|
//{ 0x0, "_Z15MP_COM_GetTokenv", (size_t)&MP_COM_GetToken },
|
||||||
//{ 0x0, "_Z12MP_COM_ParsePc", (size_t)&MP_COM_Parse },
|
//{ 0x0, "_Z12MP_COM_ParsePc", (size_t)&MP_COM_Parse },
|
||||||
@ -2568,6 +2572,13 @@ FunctionHook g_FunctionHooks[] =
|
|||||||
//{ 0x0, "_Z12CountPlayersv", (size_t)&CountPlayers },
|
//{ 0x0, "_Z12CountPlayersv", (size_t)&CountPlayers },
|
||||||
//{ 0x0, "_Z20ExtractCommandStringPcS_", (size_t)&ExtractCommandString },
|
//{ 0x0, "_Z20ExtractCommandStringPcS_", (size_t)&ExtractCommandString },
|
||||||
//{ 0x0, "_Z11GetMapCountv", (size_t)&GetMapCount },
|
//{ 0x0, "_Z11GetMapCountv", (size_t)&GetMapCount },
|
||||||
|
//CCStrikeGameMgrHelper
|
||||||
|
//virtual func
|
||||||
|
{ 0x01D8B630, "_ZN21CCStrikeGameMgrHelper19CanPlayerHearPlayerEP11CBasePlayerS1_", mfunc_ptr_cast(&CCStrikeGameMgrHelper::CanPlayerHearPlayer_) },
|
||||||
|
//CMapInfo
|
||||||
|
//virtual func
|
||||||
|
//{ 0x0, "_ZN21CCStrikeGameMgrHelper19CanPlayerHearPlayerEP11CBasePlayerS1_", mfunc_ptr_cast(&CMapInfo::Spawn_) },
|
||||||
|
//{ 0x0, "_ZN21CCStrikeGameMgrHelper19CanPlayerHearPlayerEP11CBasePlayerS1_", mfunc_ptr_cast(&CMapInfo::KeyValue_) },
|
||||||
|
|
||||||
#endif // Multiplay_GameRules_Region
|
#endif // Multiplay_GameRules_Region
|
||||||
|
|
||||||
@ -2626,7 +2637,7 @@ FunctionHook g_FunctionHooks[] =
|
|||||||
//{ 0x0, "_ZNK11CCareerTask10IsValidForEP11CBasePlayer ", mfunc_ptr_cast(&CCareerTask::IsValidFor) },
|
//{ 0x0, "_ZNK11CCareerTask10IsValidForEP11CBasePlayer ", mfunc_ptr_cast(&CCareerTask::IsValidFor) },
|
||||||
//{ 0x0, "_ZN11CCareerTask23SendPartialNotificationEv", mfunc_ptr_cast(&CCareerTask::SendPartialNotification) },
|
//{ 0x0, "_ZN11CCareerTask23SendPartialNotificationEv", mfunc_ptr_cast(&CCareerTask::SendPartialNotification) },
|
||||||
//CCareerTaskManager
|
//CCareerTaskManager
|
||||||
//{ 0x0, "_ZN18CCareerTaskManager6CreateEv", mfunc_ptr_cast(&CCareerTaskManager::Create) },
|
//{ 0x01DDD750, "_ZN18CCareerTaskManager6CreateEv", mfunc_ptr_cast(&CCareerTaskManager::Create) },
|
||||||
//{ 0x01DDD800, "_ZN18CCareerTaskManager5ResetEb", mfunc_ptr_cast(&CCareerTaskManager::Reset) },
|
//{ 0x01DDD800, "_ZN18CCareerTaskManager5ResetEb", mfunc_ptr_cast(&CCareerTaskManager::Reset) },
|
||||||
//{ 0x0, "_ZN18CCareerTaskManager7AddTaskEPKcS1_ibbb", mfunc_ptr_cast(&CCareerTaskManager::AddTask) },
|
//{ 0x0, "_ZN18CCareerTaskManager7AddTaskEPKcS1_ibbb", mfunc_ptr_cast(&CCareerTaskManager::AddTask) },
|
||||||
//{ 0x0, "_ZN18CCareerTaskManager11HandleEventE13GameEventTypeP11CBasePlayerS2_", mfunc_ptr_cast(&CCareerTaskManager::HandleEvent) },
|
//{ 0x0, "_ZN18CCareerTaskManager11HandleEventE13GameEventTypeP11CBasePlayerS2_", mfunc_ptr_cast(&CCareerTaskManager::HandleEvent) },
|
||||||
@ -3895,7 +3906,6 @@ FunctionHook g_FunctionHooks[] =
|
|||||||
//{ 0x0, "_ZN9IdleState7OnEnterEP6CCSBot", mfunc_ptr_cast(&IdleState::OnEnter) },
|
//{ 0x0, "_ZN9IdleState7OnEnterEP6CCSBot", mfunc_ptr_cast(&IdleState::OnEnter) },
|
||||||
//{ 0x0, "_ZN9IdleState8OnUpdateEP6CCSBot", mfunc_ptr_cast(&IdleState::OnUpdate) },
|
//{ 0x0, "_ZN9IdleState8OnUpdateEP6CCSBot", mfunc_ptr_cast(&IdleState::OnUpdate) },
|
||||||
//{ 0x0, "_ZNK9IdleState7GetNameEv", mfunc_ptr_cast(&IdleState::GetName) },
|
//{ 0x0, "_ZNK9IdleState7GetNameEv", mfunc_ptr_cast(&IdleState::GetName) },
|
||||||
//{ 0x0, "___XAXAXAX____", mfunc_ptr_cast(&IdleState::OnExit) },
|
|
||||||
//HuntState
|
//HuntState
|
||||||
//virtual func
|
//virtual func
|
||||||
//{ 0x0, "_ZN9HuntState7OnEnterEP6CCSBot", mfunc_ptr_cast(&HuntState::OnEnter) },
|
//{ 0x0, "_ZN9HuntState7OnEnterEP6CCSBot", mfunc_ptr_cast(&HuntState::OnEnter) },
|
||||||
@ -3991,13 +4001,17 @@ FunctionHook g_FunctionHooks[] =
|
|||||||
//non-virtual func
|
//non-virtual func
|
||||||
//{ 0x0, "_ZN14UseEntityState9SetEntityEP11CBaseEntity", mfunc_ptr_cast(&UseEntityState::SetEntity) }, // NOXREF
|
//{ 0x0, "_ZN14UseEntityState9SetEntityEP11CBaseEntity", mfunc_ptr_cast(&UseEntityState::SetEntity) }, // NOXREF
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
//{ 0x01D12F90, "_ZN8PathCostclEP8CNavAreaS1_PK10CNavLadder", mfunc_ptr_cast(&FollowTargetCollector::operator()) },
|
||||||
|
#endif // _WIN32
|
||||||
|
|
||||||
#endif // CS_BotState_Region
|
#endif // CS_BotState_Region
|
||||||
|
|
||||||
#ifndef Bot_Region
|
#ifndef Bot_Region
|
||||||
|
|
||||||
//ActiveGrenade
|
//ActiveGrenade
|
||||||
//virtual func
|
//virtual func
|
||||||
//{ 0x0, "__XAX__", mfunc_ptr_cast(&ActiveGrenade::ActiveGrenade) },
|
//{ 0x0, "_ZN13ActiveGrenadeC2EiP8CGrenade", mfunc_ptr_cast(&ActiveGrenade::ActiveGrenade) },
|
||||||
{ 0x01D34080, "_ZN13ActiveGrenade12OnEntityGoneEv", mfunc_ptr_cast(&ActiveGrenade::OnEntityGone) },
|
{ 0x01D34080, "_ZN13ActiveGrenade12OnEntityGoneEv", mfunc_ptr_cast(&ActiveGrenade::OnEntityGone) },
|
||||||
{ 0x01D340A0, "_ZNK13ActiveGrenade7IsValidEv", mfunc_ptr_cast(&ActiveGrenade::IsValid) },
|
{ 0x01D340A0, "_ZNK13ActiveGrenade7IsValidEv", mfunc_ptr_cast(&ActiveGrenade::IsValid) },
|
||||||
//{ 0x0, "_ZNK13ActiveGrenade8IsEntityEP8CGrenade", mfunc_ptr_cast(&ActiveGrenade::IsEntity) }, // NOXREF
|
//{ 0x0, "_ZNK13ActiveGrenade8IsEntityEP8CGrenade", mfunc_ptr_cast(&ActiveGrenade::IsEntity) }, // NOXREF
|
||||||
@ -4265,20 +4279,24 @@ FunctionHook g_FunctionHooks[] =
|
|||||||
|
|
||||||
#ifndef H_Region
|
#ifndef H_Region
|
||||||
|
|
||||||
|
//AI
|
||||||
|
//{ 0x01D848B0, "_Z11FBoxVisibleP9entvars_sS0_R6Vectorf", (size_t)&FBoxVisible }, // NOXREF
|
||||||
|
//{ 0x01D84A10, "_Z12VecCheckTossP9entvars_sRK6VectorS1_f", (size_t)&VecCheckToss }, // NOXREF
|
||||||
|
//{ 0x01D84EB0, "_Z13VecCheckThrowP9entvars_sRK6VectorS1_ff", (size_t)&VecCheckThrow }, // NOXREF
|
||||||
|
|
||||||
//CRecharge
|
//CRecharge
|
||||||
//virtual func
|
//virtual func
|
||||||
//{ 0x0, "_ZN9CRecharge5SpawnEv", mfunc_ptr_cast(&CRecharge::Spawn_) },
|
{ 0x01D851E0, "_ZN9CRecharge5SpawnEv", mfunc_ptr_cast(&CRecharge::Spawn_) },
|
||||||
//{ 0x0, "_ZN9CRecharge8PrecacheEv", mfunc_ptr_cast(&CRecharge::Precache_) },
|
{ 0x01D85270, "_ZN9CRecharge8PrecacheEv", mfunc_ptr_cast(&CRecharge::Precache_) },
|
||||||
//{ 0x01D85130, "_ZN9CRecharge8KeyValueEP14KeyValueData_s", mfunc_ptr_cast(&CRecharge::KeyValue_) },
|
{ 0x01D85130, "_ZN9CRecharge8KeyValueEP14KeyValueData_s", mfunc_ptr_cast(&CRecharge::KeyValue_) },
|
||||||
//{ 0x0, "_ZN9CRecharge4SaveER5CSave", mfunc_ptr_cast(&CRecharge::Save_) },
|
{ 0x01D85070, "_ZN9CRecharge4SaveER5CSave", mfunc_ptr_cast(&CRecharge::Save_) },
|
||||||
//{ 0x0, "_ZN9CRecharge7RestoreER8CRestore", mfunc_ptr_cast(&CRecharge::Restore_) },
|
{ 0x01D850A0, "_ZN9CRecharge7RestoreER8CRestore", mfunc_ptr_cast(&CRecharge::Restore_) },
|
||||||
//{ 0x0, "_ZN9CRecharge10ObjectCapsEv", mfunc_ptr_cast(&CRecharge::ObjectCaps_) },
|
{ 0x01D85120, "_ZN9CRecharge10ObjectCapsEv", mfunc_ptr_cast(&CRecharge::ObjectCaps_) },
|
||||||
//{ 0x01D852A0, "_ZN9CRecharge3UseEP11CBaseEntityS1_8USE_TYPEf", mfunc_ptr_cast(&CRecharge::Use_) },
|
{ 0x01D852A0, "_ZN9CRecharge3UseEP11CBaseEntityS1_8USE_TYPEf", mfunc_ptr_cast(&CRecharge::Use_) },
|
||||||
//non-virtual func
|
//non-virtual func
|
||||||
//{ 0x01D850D0, "func_recharge", (size_t)&func_recharge },
|
//{ 0x01D850D0, "func_recharge", (size_t)&func_recharge },
|
||||||
//{ 0x0, "_ZN9CRecharge3OffEv", mfunc_ptr_cast(&CRecharge::Off) },
|
{ 0x01D855A0, "_ZN9CRecharge3OffEv", mfunc_ptr_cast(&CRecharge::Off) },
|
||||||
//{ 0x0, "_ZN9CRecharge3OffEv", mfunc_ptr_cast(&CRecharge::Off) },
|
{ 0x01D85570, "_ZN9CRecharge8RechargeEv", mfunc_ptr_cast(&CRecharge::Recharge) },
|
||||||
//{ 0x0, "_ZN9CRecharge8RechargeEv", mfunc_ptr_cast(&CRecharge::Recharge) },
|
|
||||||
//CCycler
|
//CCycler
|
||||||
//virtual func
|
//virtual func
|
||||||
//{ 0x0, "_ZN7CCycler5SpawnEv", mfunc_ptr_cast(&CCycler::Spawn_) },
|
//{ 0x0, "_ZN7CCycler5SpawnEv", mfunc_ptr_cast(&CCycler::Spawn_) },
|
||||||
@ -4582,12 +4600,30 @@ FunctionHook g_FunctionHooks[] =
|
|||||||
//{ 0x0, "_ZN17BotProfileManager13GetCustomSkinEi", mfunc_ptr_cast(&BotProfileManager::GetCustomSkin) },
|
//{ 0x0, "_ZN17BotProfileManager13GetCustomSkinEi", mfunc_ptr_cast(&BotProfileManager::GetCustomSkin) },
|
||||||
{ 0x01D35DD0, "_ZN17BotProfileManager22GetCustomSkinModelnameEi", mfunc_ptr_cast(&BotProfileManager::GetCustomSkinModelname) },
|
{ 0x01D35DD0, "_ZN17BotProfileManager22GetCustomSkinModelnameEi", mfunc_ptr_cast(&BotProfileManager::GetCustomSkinModelname) },
|
||||||
{ 0x01D35DB0, "_ZN17BotProfileManager18GetCustomSkinFnameEi", mfunc_ptr_cast(&BotProfileManager::GetCustomSkinFname) },
|
{ 0x01D35DB0, "_ZN17BotProfileManager18GetCustomSkinFnameEi", mfunc_ptr_cast(&BotProfileManager::GetCustomSkinFname) },
|
||||||
//{ 0x0, "_ZN17BotProfileManager18GetCustomSkinIndexEPKcS1_", mfunc_ptr_cast(&BotProfileManager::GetCustomSkinIndex) },
|
//{ 0x01D35DF0, "_ZN17BotProfileManager18GetCustomSkinIndexEPKcS1_", mfunc_ptr_cast(&BotProfileManager::GetCustomSkinIndex) }, // NOXREF
|
||||||
//{ 0x0, "_ZNK17BotProfileManager13GetVoiceBanksEv", mfunc_ptr_cast(&BotProfileManager::GetVoiceBanks) }, // NOXREF
|
//{ 0x0, "_ZNK17BotProfileManager13GetVoiceBanksEv", mfunc_ptr_cast(&BotProfileManager::GetVoiceBanks) }, // NOXREF
|
||||||
//{ 0x0, "_ZN17BotProfileManager18FindVoiceBankIndexEPKc", mfunc_ptr_cast(&BotProfileManager::FindVoiceBankIndex) },
|
//{ 0x0, "_ZN17BotProfileManager18FindVoiceBankIndexEPKc", mfunc_ptr_cast(&BotProfileManager::FindVoiceBankIndex) },
|
||||||
|
|
||||||
#endif // GameShr_BotProfile_Region
|
#endif // GameShr_BotProfile_Region
|
||||||
|
|
||||||
|
#ifndef VoiceManager_Region
|
||||||
|
|
||||||
|
//CVoiceGameMgr
|
||||||
|
//virtual func
|
||||||
|
//{ 0x0, "_ZN13CVoiceGameMgrD0Ev", mfunc_ptr_cast(&CVoiceGameMgr::~CVoiceGameMgr) },
|
||||||
|
//non-virtual func
|
||||||
|
//{ 0x01DCC6F0, "_ZN13CVoiceGameMgrC2Ev", mfunc_ptr_cast(&CVoiceGameMgr::CVoiceGameMgr) },
|
||||||
|
{ 0x01DCC740, "_ZN13CVoiceGameMgr4InitEP19IVoiceGameMgrHelperi", mfunc_ptr_cast(&CVoiceGameMgr::Init) },
|
||||||
|
//{ 0x01DCC7D0, "_ZN13CVoiceGameMgr9SetHelperEP19IVoiceGameMgrHelper", mfunc_ptr_cast(&CVoiceGameMgr::SetHelper) }, // NOXREF
|
||||||
|
{ 0x01DCC7E0, "_ZN13CVoiceGameMgr6UpdateEd", mfunc_ptr_cast(&CVoiceGameMgr::Update) },
|
||||||
|
{ 0x01DCC800, "_ZN13CVoiceGameMgr15ClientConnectedEP7edict_s", mfunc_ptr_cast(&CVoiceGameMgr::ClientConnected) },
|
||||||
|
{ 0x01DCC910, "_ZN13CVoiceGameMgr13ClientCommandEP11CBasePlayerPKc", mfunc_ptr_cast(&CVoiceGameMgr::ClientCommand) },
|
||||||
|
{ 0x01DCC890, "_ZN13CVoiceGameMgr22PlayerHasBlockedPlayerEP11CBasePlayerS1_", mfunc_ptr_cast(&CVoiceGameMgr::PlayerHasBlockedPlayer) },
|
||||||
|
{ 0x01DCCB10, "_ZN13CVoiceGameMgr11UpdateMasksEv", mfunc_ptr_cast(&CVoiceGameMgr::UpdateMasks) },
|
||||||
|
{ 0x01DCCAB0, "_Z14GetBspFilenamePKc", (size_t)&VoiceServerDebug },
|
||||||
|
|
||||||
|
#endif // VoiceManager_Region
|
||||||
|
|
||||||
#ifndef Nav_Region
|
#ifndef Nav_Region
|
||||||
|
|
||||||
//Nav_File
|
//Nav_File
|
||||||
@ -4726,16 +4762,16 @@ FunctionHook g_FunctionHooks[] =
|
|||||||
//{ 0x0, "", mfunc_ptr_cast<CNAV_AREA_TWO_VECTOR>(&CNavArea::CNavArea) },
|
//{ 0x0, "", mfunc_ptr_cast<CNAV_AREA_TWO_VECTOR>(&CNavArea::CNavArea) },
|
||||||
//{ 0x0, "", mfunc_ptr_cast<CNAV_AREA_VECTOR>(&CNavArea::CNavArea) },
|
//{ 0x0, "", mfunc_ptr_cast<CNAV_AREA_VECTOR>(&CNavArea::CNavArea) },
|
||||||
//{ 0x0, "", mfunc_ptr_cast<CNAV_AREA_NAVNODE>(&CNavArea::CNavArea) },
|
//{ 0x0, "", mfunc_ptr_cast<CNAV_AREA_NAVNODE>(&CNavArea::CNavArea) },
|
||||||
//{ 0x0, "", mfunc_ptr_cast(&CNavArea::~CNavArea) },
|
//{ 0x01D386A0, "", mfunc_ptr_cast(&CNavArea::~CNavArea) },
|
||||||
//{ 0x0, "_ZN8CNavArea10InitializeEv", mfunc_ptr_cast(&CNavArea::Initialize) },
|
//{ 0x0, "_ZN8CNavArea10InitializeEv", mfunc_ptr_cast(&CNavArea::Initialize) },
|
||||||
//{ 0x0, "_ZN8CNavArea15OnDestroyNotifyEPS_", mfunc_ptr_cast(&CNavArea::OnDestroyNotify) },
|
//{ 0x01D388A0, "_ZN8CNavArea15OnDestroyNotifyEPS_", mfunc_ptr_cast(&CNavArea::OnDestroyNotify) }, // NOXREF
|
||||||
//{ 0x0, "_ZN8CNavArea9ConnectToEPS_10NavDirType", mfunc_ptr_cast(&CNavArea::ConnectTo) },
|
//{ 0x0, "_ZN8CNavArea9ConnectToEPS_10NavDirType", mfunc_ptr_cast(&CNavArea::ConnectTo) },
|
||||||
//{ 0x0, "_ZN8CNavArea10DisconnectEPS_", mfunc_ptr_cast(&CNavArea::Disconnect) },
|
//{ 0x01D389D0, "_ZN8CNavArea10DisconnectEPS_", mfunc_ptr_cast(&CNavArea::Disconnect) }, // NOXREF
|
||||||
//{ 0x0, "_ZN8CNavArea11FinishMergeEPS_", mfunc_ptr_cast(&CNavArea::FinishMerge) },
|
//{ 0x0, "_ZN8CNavArea11FinishMergeEPS_", mfunc_ptr_cast(&CNavArea::FinishMerge) },
|
||||||
//{ 0x0, "_ZN8CNavArea24MergeAdjacentConnectionsEPS_", mfunc_ptr_cast(&CNavArea::MergeAdjacentConnections) },
|
//{ 0x0, "_ZN8CNavArea24MergeAdjacentConnectionsEPS_", mfunc_ptr_cast(&CNavArea::MergeAdjacentConnections) },
|
||||||
//{ 0x0, "_ZN8CNavArea11AssignNodesEPS_", mfunc_ptr_cast(&CNavArea::AssignNodes) },
|
//{ 0x01D38D70, "_ZN8CNavArea11AssignNodesEPS_", mfunc_ptr_cast(&CNavArea::AssignNodes) },
|
||||||
//{ 0x0, "_ZN8CNavArea9SplitEditEbfPPS_S1_", mfunc_ptr_cast(&CNavArea::SplitEdit) },
|
//{ 0x0, "_ZN8CNavArea9SplitEditEbfPPS_S1_", mfunc_ptr_cast(&CNavArea::SplitEdit) },
|
||||||
//{ 0x0, "_ZNK8CNavArea11IsConnectedEPKS_10NavDirType", mfunc_ptr_cast(&CNavArea::IsConnected) },
|
//{ 0x01D390F0, "_ZNK8CNavArea11IsConnectedEPKS_10NavDirType", mfunc_ptr_cast(&CNavArea::IsConnected) },
|
||||||
//{ 0x0, "_ZN8CNavArea19ComputeHeightChangeEPKS_", mfunc_ptr_cast(&CNavArea::ComputeHeightChange) },
|
//{ 0x0, "_ZN8CNavArea19ComputeHeightChangeEPKS_", mfunc_ptr_cast(&CNavArea::ComputeHeightChange) },
|
||||||
//{ 0x0, "_ZN8CNavArea15FinishSplitEditEPS_10NavDirType", mfunc_ptr_cast(&CNavArea::FinishSplitEdit) },
|
//{ 0x0, "_ZN8CNavArea15FinishSplitEditEPS_10NavDirType", mfunc_ptr_cast(&CNavArea::FinishSplitEdit) },
|
||||||
//{ 0x0, "_ZN8CNavArea10SpliceEditEPS_", mfunc_ptr_cast(&CNavArea::SpliceEdit) },
|
//{ 0x0, "_ZN8CNavArea10SpliceEditEPS_", mfunc_ptr_cast(&CNavArea::SpliceEdit) },
|
||||||
@ -4760,7 +4796,7 @@ FunctionHook g_FunctionHooks[] =
|
|||||||
//{ 0x0, "_ZN8CNavArea16DrawMarkedCornerE13NavCornerTypehhhi", mfunc_ptr_cast(&CNavArea::DrawMarkedCorner) },
|
//{ 0x0, "_ZN8CNavArea16DrawMarkedCornerE13NavCornerTypehhhi", mfunc_ptr_cast(&CNavArea::DrawMarkedCorner) },
|
||||||
//{ 0x0, "_ZN8CNavArea13AddToOpenListEv", mfunc_ptr_cast(&CNavArea::AddToOpenList) },
|
//{ 0x0, "_ZN8CNavArea13AddToOpenListEv", mfunc_ptr_cast(&CNavArea::AddToOpenList) },
|
||||||
//{ 0x0, "_ZN8CNavArea16UpdateOnOpenListEv", mfunc_ptr_cast(&CNavArea::UpdateOnOpenList) },
|
//{ 0x0, "_ZN8CNavArea16UpdateOnOpenListEv", mfunc_ptr_cast(&CNavArea::UpdateOnOpenList) },
|
||||||
//{ 0x0, "_ZN8CNavArea18RemoveFromOpenListEv", mfunc_ptr_cast(&CNavArea::RemoveFromOpenList) },
|
//{ 0x01D3DBC0, "_ZN8CNavArea18RemoveFromOpenListEv", mfunc_ptr_cast(&CNavArea::RemoveFromOpenList) },
|
||||||
//{ 0x0, "_ZN8CNavArea16ClearSearchListsEv", mfunc_ptr_cast(&CNavArea::ClearSearchLists) },
|
//{ 0x0, "_ZN8CNavArea16ClearSearchListsEv", mfunc_ptr_cast(&CNavArea::ClearSearchLists) },
|
||||||
//{ 0x0, "_ZNK8CNavArea9GetCornerE13NavCornerType", mfunc_ptr_cast(&CNavArea::GetCorner) },
|
//{ 0x0, "_ZNK8CNavArea9GetCornerE13NavCornerType", mfunc_ptr_cast(&CNavArea::GetCorner) },
|
||||||
//{ 0x0, "_ZNK8CNavArea21IsHidingSpotCollisionEPK6Vector", mfunc_ptr_cast(&CNavArea::IsHidingSpotCollision) },
|
//{ 0x0, "_ZNK8CNavArea21IsHidingSpotCollisionEPK6Vector", mfunc_ptr_cast(&CNavArea::IsHidingSpotCollision) },
|
||||||
@ -4783,7 +4819,7 @@ FunctionHook g_FunctionHooks[] =
|
|||||||
//{ 0x0, "_ZN12CNavAreaGrid5ResetEv", mfunc_ptr_cast(&CNavAreaGrid::Reset) },
|
//{ 0x0, "_ZN12CNavAreaGrid5ResetEv", mfunc_ptr_cast(&CNavAreaGrid::Reset) },
|
||||||
//{ 0x0, "_ZN12CNavAreaGrid10InitializeEffff", mfunc_ptr_cast(&CNavAreaGrid::Initialize) },
|
//{ 0x0, "_ZN12CNavAreaGrid10InitializeEffff", mfunc_ptr_cast(&CNavAreaGrid::Initialize) },
|
||||||
//{ 0x0, "_ZN12CNavAreaGrid10AddNavAreaEP8CNavArea", mfunc_ptr_cast(&CNavAreaGrid::AddNavArea) },
|
//{ 0x0, "_ZN12CNavAreaGrid10AddNavAreaEP8CNavArea", mfunc_ptr_cast(&CNavAreaGrid::AddNavArea) },
|
||||||
//{ 0x0, "_ZN12CNavAreaGrid13RemoveNavAreaEP8CNavArea", mfunc_ptr_cast(&CNavAreaGrid::RemoveNavArea) },
|
//{ 0x01D43560, "_ZN12CNavAreaGrid13RemoveNavAreaEP8CNavArea", mfunc_ptr_cast(&CNavAreaGrid__RemoveNavArea) },
|
||||||
//!@{ 0x01D43710, "_ZNK12CNavAreaGrid10GetNavAreaEPK6Vectorf", mfunc_ptr_cast(&CNavAreaGrid::GetNavArea) }, // Used refs
|
//!@{ 0x01D43710, "_ZNK12CNavAreaGrid10GetNavAreaEPK6Vectorf", mfunc_ptr_cast(&CNavAreaGrid::GetNavArea) }, // Used refs
|
||||||
//!@{ 0x01D43860, "_ZNK12CNavAreaGrid17GetNearestNavAreaEPK6Vectorb", mfunc_ptr_cast(&CNavAreaGrid::GetNearestNavArea) }, // Used refs
|
//!@{ 0x01D43860, "_ZNK12CNavAreaGrid17GetNearestNavAreaEPK6Vectorb", mfunc_ptr_cast(&CNavAreaGrid::GetNearestNavArea) }, // Used refs
|
||||||
//{ 0x0, "_ZNK12CNavAreaGrid14GetNavAreaByIDEj", mfunc_ptr_cast(&CNavAreaGrid::GetNavAreaByID) },
|
//{ 0x0, "_ZNK12CNavAreaGrid14GetNavAreaByIDEj", mfunc_ptr_cast(&CNavAreaGrid::GetNavAreaByID) },
|
||||||
@ -5014,7 +5050,7 @@ FunctionHook g_FunctionHooks[] =
|
|||||||
//{ 0x0, "_ZN19HostageAnimateState6OnExitEP14CHostageImprov", mfunc_ptr_cast(&HostageAnimateState::OnExit) },
|
//{ 0x0, "_ZN19HostageAnimateState6OnExitEP14CHostageImprov", mfunc_ptr_cast(&HostageAnimateState::OnExit) },
|
||||||
//{ 0x0, "_ZNK19HostageAnimateState7GetNameEv", mfunc_ptr_cast(&HostageAnimateState::GetName) },
|
//{ 0x0, "_ZNK19HostageAnimateState7GetNameEv", mfunc_ptr_cast(&HostageAnimateState::GetName) },
|
||||||
//non-virtual func
|
//non-virtual func
|
||||||
//{ 0x01D49D60, "_ZN19HostageAnimateState5ResetEv", mfunc_ptr_cast(&HostageAnimateState__Reset) },
|
//{ 0x01D49D60, "_ZN19HostageAnimateState5ResetEv", mfunc_ptr_cast(&HostageAnimateState::Reset) },
|
||||||
//{ 0x0, "_ZN19HostageAnimateState11AddSequenceEP14CHostageImprovPKcff", mfunc_ptr_cast<ADD_SEQUENCE_NAME>(&HostageAnimateState::AddSequence) },
|
//{ 0x0, "_ZN19HostageAnimateState11AddSequenceEP14CHostageImprovPKcff", mfunc_ptr_cast<ADD_SEQUENCE_NAME>(&HostageAnimateState::AddSequence) },
|
||||||
//{ 0x01D49F00, "_ZN19HostageAnimateState11AddSequenceEP14CHostageImproviff", mfunc_ptr_cast<ADD_SEQUENCE_NUMBER>(&HostageAnimateState::AddSequence) },
|
//{ 0x01D49F00, "_ZN19HostageAnimateState11AddSequenceEP14CHostageImproviff", mfunc_ptr_cast<ADD_SEQUENCE_NUMBER>(&HostageAnimateState::AddSequence) },
|
||||||
//{ 0x0, "_ZNK19HostageAnimateState6IsBusyEv", mfunc_ptr_cast(&HostageAnimateState::IsBusy) },
|
//{ 0x0, "_ZNK19HostageAnimateState6IsBusyEv", mfunc_ptr_cast(&HostageAnimateState::IsBusy) },
|
||||||
@ -5173,6 +5209,7 @@ AddressRef g_DataRefs[] =
|
|||||||
|
|
||||||
{ 0x01E61E4C, "WorldGraph", (size_t)&pWorldGraph },
|
{ 0x01E61E4C, "WorldGraph", (size_t)&pWorldGraph },
|
||||||
{ 0x01E61B98, "g_pGameRules", (size_t)&pg_pGameRules },
|
{ 0x01E61B98, "g_pGameRules", (size_t)&pg_pGameRules },
|
||||||
|
{ 0x01E62560, "g_pMPGameRules", (size_t)&pg_pMPGameRules },
|
||||||
|
|
||||||
{ 0x01E0B0B0, "weaponAliasInfo", (size_t)&pweaponAliasInfo },
|
{ 0x01E0B0B0, "weaponAliasInfo", (size_t)&pweaponAliasInfo },
|
||||||
{ 0x01E0B1E8, "weaponBuyAliasInfo", (size_t)&pweaponBuyAliasInfo },
|
{ 0x01E0B1E8, "weaponBuyAliasInfo", (size_t)&pweaponBuyAliasInfo },
|
||||||
@ -5304,6 +5341,17 @@ AddressRef g_DataRefs[] =
|
|||||||
{ 0x01E61B84, "g_psv_aim", (size_t)&pg_psv_aim },//TODO: unused, used cvar_t *sv_aim
|
{ 0x01E61B84, "g_psv_aim", (size_t)&pg_psv_aim },//TODO: unused, used cvar_t *sv_aim
|
||||||
{ 0x01E63598, "sv_aim", (size_t)&psv_aim },
|
{ 0x01E63598, "sv_aim", (size_t)&psv_aim },
|
||||||
|
|
||||||
|
{ 0x01E61E6C, "sv_clienttrace", (size_t)&psv_clienttrace },
|
||||||
|
{ 0x01E61E68, "g_GameMgrHelper", (size_t)&pg_GameMgrHelper },
|
||||||
|
{ 0x01E22624, "voice_serverdebug", (size_t)&pvoice_serverdebug },
|
||||||
|
{ 0x01E22638, "sv_alltalk", (size_t)&psv_alltalk },
|
||||||
|
|
||||||
|
{ 0x01E75D20, "g_PlayerModEnable", (size_t)&pg_PlayerModEnable },
|
||||||
|
{ 0x01E75D28, "g_BanMasks", (size_t)&pg_BanMasks },
|
||||||
|
{ 0x01E75DA8, "g_SentGameRulesMasks", (size_t)&pg_SentGameRulesMasks },
|
||||||
|
{ 0x01E75E30, "g_SentBanMasks", (size_t)&pg_SentBanMasks },
|
||||||
|
{ 0x01E75E28, "g_bWantModEnable", (size_t)&pg_bWantModEnable },
|
||||||
|
|
||||||
{ 0x01E76580, "s_tutorDisabledThisGame", (size_t)&ps_tutorDisabledThisGame },
|
{ 0x01E76580, "s_tutorDisabledThisGame", (size_t)&ps_tutorDisabledThisGame },
|
||||||
{ 0x01E76584, "s_nextCvarCheckTime", (size_t)&ps_nextCvarCheckTime },
|
{ 0x01E76584, "s_nextCvarCheckTime", (size_t)&ps_nextCvarCheckTime },
|
||||||
|
|
||||||
@ -5460,6 +5508,7 @@ AddressRef g_DataRefs[] =
|
|||||||
|
|
||||||
{ 0x01E1BE38, "_ZN6CLight10m_SaveDataE", mfunc_ptr_cast(&CLight::m_SaveData) },
|
{ 0x01E1BE38, "_ZN6CLight10m_SaveDataE", mfunc_ptr_cast(&CLight::m_SaveData) },
|
||||||
{ 0x01E1BB00, "_ZN11CWallHealth10m_SaveDataE", mfunc_ptr_cast(&CWallHealth::m_SaveData) },
|
{ 0x01E1BB00, "_ZN11CWallHealth10m_SaveDataE", mfunc_ptr_cast(&CWallHealth::m_SaveData) },
|
||||||
|
{ 0x01E1B850, "_ZN9CRecharge10m_SaveDataE", mfunc_ptr_cast(&CRecharge::m_SaveData) },
|
||||||
//{ 0x0, "_ZN16CFuncMortarField10m_SaveDataE", mfunc_ptr_cast(&CFuncMortarField::m_SaveData) },
|
//{ 0x0, "_ZN16CFuncMortarField10m_SaveDataE", mfunc_ptr_cast(&CFuncMortarField::m_SaveData) },
|
||||||
//{ 0x0, "_ZN13CEnvExplosion10m_SaveDataE", mfunc_ptr_cast(&CEnvExplosion::m_SaveData) },
|
//{ 0x0, "_ZN13CEnvExplosion10m_SaveDataE", mfunc_ptr_cast(&CEnvExplosion::m_SaveData) },
|
||||||
//{ 0x0, "_ZN13CFuncRotating10m_SaveDataE", mfunc_ptr_cast(&CFuncRotating::m_SaveData) },
|
//{ 0x0, "_ZN13CFuncRotating10m_SaveDataE", mfunc_ptr_cast(&CFuncRotating::m_SaveData) },
|
||||||
@ -5563,7 +5612,9 @@ AddressRef g_DataRefs[] =
|
|||||||
{ 0x01E11588, "_ZN10HidingSpot8m_nextIDE", mfunc_ptr_cast(&HidingSpot::m_nextID) },
|
{ 0x01E11588, "_ZN10HidingSpot8m_nextIDE", mfunc_ptr_cast(&HidingSpot::m_nextID) },
|
||||||
//{ 0x0, "_ZN10HidingSpot14m_masterMarkerE", mfunc_ptr_cast(&HidingSpot::m_masterMarker) },
|
//{ 0x0, "_ZN10HidingSpot14m_masterMarkerE", mfunc_ptr_cast(&HidingSpot::m_masterMarker) },
|
||||||
|
|
||||||
|
{ 0x01E2A100, "_ZN8CNavArea9m_isResetE", mfunc_ptr_cast(&CNavArea::m_isReset) },
|
||||||
{ 0x01E2A0FC, "_ZN8CNavArea10m_openListE", mfunc_ptr_cast(&CNavArea::m_openList) },
|
{ 0x01E2A0FC, "_ZN8CNavArea10m_openListE", mfunc_ptr_cast(&CNavArea::m_openList) },
|
||||||
|
|
||||||
//{ 0x0, "lastDrawTimestamp", (size_t)&plastDrawTimestamp },
|
//{ 0x0, "lastDrawTimestamp", (size_t)&plastDrawTimestamp },
|
||||||
//{ 0x0, "goodSizedAreaList", (size_t)&pgoodSizedAreaList },
|
//{ 0x0, "goodSizedAreaList", (size_t)&pgoodSizedAreaList },
|
||||||
//{ 0x0, "markedArea", (size_t)&pmarkedArea },
|
//{ 0x0, "markedArea", (size_t)&pmarkedArea },
|
||||||
@ -5586,6 +5637,7 @@ AddressRef g_DataRefs[] =
|
|||||||
{ 0x01E287F0, "TheBotPhrases", (size_t)&pTheBotPhrases },
|
{ 0x01E287F0, "TheBotPhrases", (size_t)&pTheBotPhrases },
|
||||||
{ 0x01E7657C, "TheTutor", (size_t)&pTheTutor },
|
{ 0x01E7657C, "TheTutor", (size_t)&pTheTutor },
|
||||||
{ 0x01E2A25C, "g_pHostages", (size_t)&pg_pHostages },
|
{ 0x01E2A25C, "g_pHostages", (size_t)&pg_pHostages },
|
||||||
|
{ 0x01E2A258, "g_iHostageNumber", (size_t)&pg_iHostageNumber },
|
||||||
|
|
||||||
{ 0x01E16EE0, "outputLevel", (size_t)&poutputLevel },
|
{ 0x01E16EE0, "outputLevel", (size_t)&poutputLevel },
|
||||||
{ 0x01E61B40, "theDebugOutputTypes", (size_t)&ptheDebugOutputTypes },
|
{ 0x01E61B40, "theDebugOutputTypes", (size_t)&ptheDebugOutputTypes },
|
||||||
|
@ -27,4 +27,5 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
#include "cmd.h"
|
||||||
#include "unicode_strtools.h"
|
#include "unicode_strtools.h"
|
||||||
|
@ -543,6 +543,7 @@
|
|||||||
<ClInclude Include="..\dlls\hostage\hostage_improv.h" />
|
<ClInclude Include="..\dlls\hostage\hostage_improv.h" />
|
||||||
<ClInclude Include="..\dlls\hostage\hostage_localnav.h" />
|
<ClInclude Include="..\dlls\hostage\hostage_localnav.h" />
|
||||||
<ClInclude Include="..\dlls\hostage\hostage_states.h" />
|
<ClInclude Include="..\dlls\hostage\hostage_states.h" />
|
||||||
|
<ClInclude Include="..\dlls\h_ai.h" />
|
||||||
<ClInclude Include="..\dlls\h_battery.h" />
|
<ClInclude Include="..\dlls\h_battery.h" />
|
||||||
<ClInclude Include="..\dlls\h_cycler.h" />
|
<ClInclude Include="..\dlls\h_cycler.h" />
|
||||||
<ClInclude Include="..\dlls\h_export.h" />
|
<ClInclude Include="..\dlls\h_export.h" />
|
||||||
@ -579,6 +580,7 @@
|
|||||||
<ClInclude Include="..\dlls\vehicle.h" />
|
<ClInclude Include="..\dlls\vehicle.h" />
|
||||||
<ClInclude Include="..\dlls\weapons.h" />
|
<ClInclude Include="..\dlls\weapons.h" />
|
||||||
<ClInclude Include="..\engine\cdll_int.h" />
|
<ClInclude Include="..\engine\cdll_int.h" />
|
||||||
|
<ClInclude Include="..\engine\cmd.h" />
|
||||||
<ClInclude Include="..\engine\common.h" />
|
<ClInclude Include="..\engine\common.h" />
|
||||||
<ClInclude Include="..\engine\custom.h" />
|
<ClInclude Include="..\engine\custom.h" />
|
||||||
<ClInclude Include="..\engine\customentity.h" />
|
<ClInclude Include="..\engine\customentity.h" />
|
||||||
|
@ -1094,6 +1094,12 @@
|
|||||||
<ClInclude Include="..\dlls\sound.h">
|
<ClInclude Include="..\dlls\sound.h">
|
||||||
<Filter>dlls</Filter>
|
<Filter>dlls</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\dlls\h_ai.h">
|
||||||
|
<Filter>dlls</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\engine\cmd.h">
|
||||||
|
<Filter>engine</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="..\linux\appversion.sh">
|
<None Include="..\linux\appversion.sh">
|
||||||
|
@ -119,6 +119,7 @@
|
|||||||
#include "hostage/hostage_improv.h"
|
#include "hostage/hostage_improv.h"
|
||||||
|
|
||||||
#include "airtank.h"
|
#include "airtank.h"
|
||||||
|
#include "h_ai.h"
|
||||||
#include "h_cycler.h"
|
#include "h_cycler.h"
|
||||||
#include "h_battery.h"
|
#include "h_battery.h"
|
||||||
|
|
||||||
|
@ -25,35 +25,50 @@
|
|||||||
#define REPEAT_OFFSETOF(st,memb)\
|
#define REPEAT_OFFSETOF(st,memb)\
|
||||||
offsetof(st,memb), offsetof(st,memb)
|
offsetof(st,memb), offsetof(st,memb)
|
||||||
|
|
||||||
|
#define REPEAT_SIZEOF_PRINT(st)\
|
||||||
|
printf("sizeof %s: 0x%2X (%d)\n", #st, sizeof(st), sizeof(st))
|
||||||
|
|
||||||
|
#define REPEAT_OFFSETOF_PRINT(st,memb)\
|
||||||
|
printf("sizeof %s::%s: 0x%2X (%d)\n", #st, #memb, offsetof(st,memb), offsetof(st,memb))
|
||||||
|
|
||||||
TEST(StructOffsets, ReversingChecks, 5000)
|
TEST(StructOffsets, ReversingChecks, 5000)
|
||||||
{
|
{
|
||||||
|
// sizeof class
|
||||||
|
REPEAT_SIZEOF_PRINT(CNavArea);
|
||||||
|
REPEAT_SIZEOF_PRINT(CBot);
|
||||||
|
REPEAT_SIZEOF_PRINT(CCSBot);
|
||||||
|
REPEAT_SIZEOF_PRINT(CBotManager);
|
||||||
|
REPEAT_SIZEOF_PRINT(CCSBotManager);
|
||||||
|
REPEAT_SIZEOF_PRINT(BotPhraseManager);
|
||||||
|
REPEAT_SIZEOF_PRINT(CBasePlayer);
|
||||||
|
REPEAT_SIZEOF_PRINT(ActiveGrenade);
|
||||||
|
|
||||||
|
REPEAT_SIZEOF_PRINT(CHostageImprov);
|
||||||
|
REPEAT_SIZEOF_PRINT(HostageStateMachine);
|
||||||
|
REPEAT_SIZEOF_PRINT(HostageFollowState);
|
||||||
|
REPEAT_SIZEOF_PRINT(CHalfLifeMultiplay);
|
||||||
|
REPEAT_SIZEOF_PRINT(CHalfLifeTraining);
|
||||||
|
|
||||||
|
// offset the members
|
||||||
|
REPEAT_OFFSETOF_PRINT(CBaseEntity, pev);
|
||||||
|
REPEAT_OFFSETOF_PRINT(CBaseEntity, has_disconnected);
|
||||||
|
|
||||||
|
// assert
|
||||||
|
CHECK_CLASS_SIZE(CNavArea, 0x238u, 0x214u);
|
||||||
|
|
||||||
CHECK_CLASS_SIZE(CBasePlayer, 0x9B0, 0x9C4);
|
CHECK_CLASS_SIZE(CBasePlayer, 0x9B0, 0x9C4);
|
||||||
CHECK_CLASS_SIZE(CHostageImprov, 0x1C8Cu, 0x1C8Cu);
|
CHECK_CLASS_SIZE(CHostageImprov, 0x1C8Cu, 0x1C8Cu);
|
||||||
CHECK_CLASS_SIZE(BotPhraseManager, 0x21Cu, 0x214u);
|
CHECK_CLASS_SIZE(BotPhraseManager, 0x21Cu, 0x214u);
|
||||||
|
|
||||||
|
CHECK_CLASS_SIZE(CHalfLifeMultiplay, 0x2D0u, 0x2C4u);
|
||||||
|
CHECK_CLASS_SIZE(CHalfLifeTraining, 0x2E8u, 0x2D8u);
|
||||||
|
|
||||||
//CHECK_CLASS_SIZE(CBotManager, 12u, 12);
|
//CHECK_CLASS_SIZE(CBotManager, 12u, 12);
|
||||||
//CHECK_CLASS_SIZE(CCSBotManager, 740, 0x2E0u);//0x2E4u | 0x2E0u
|
//CHECK_CLASS_SIZE(CCSBotManager, 740, 0x2E0u);//0x2E4u | 0x2E0u
|
||||||
|
|
||||||
//CHECK_CLASS_SIZE(HostageStateMachine, 0x10, 0x10);
|
//CHECK_CLASS_SIZE(HostageStateMachine, 0x10, 0x10);
|
||||||
//CHECK_CLASS_SIZE(HostageFollowState, 0x4C, 0x4C);
|
//CHECK_CLASS_SIZE(HostageFollowState, 0x4C, 0x4C);
|
||||||
//CHECK_CLASS_SIZE(CCSBot, 0x2CA0, 0x2CA0);
|
//CHECK_CLASS_SIZE(CCSBot, 0x2CA0, 0x2CA0);
|
||||||
|
|
||||||
printf("sizeof CBot: 0x%2X (%d)\n", REPEAT_SIZEOF(CBot));
|
|
||||||
printf("sizeof CCSBot: 0x%2X (%d)\n", REPEAT_SIZEOF(CCSBot));
|
|
||||||
|
|
||||||
printf("sizeof CBotManager: 0x%2X (%d)\n", REPEAT_SIZEOF(CBotManager));
|
|
||||||
printf("sizeof CCSBotManager: 0x%2X (%d)\n", REPEAT_SIZEOF(CCSBotManager));
|
|
||||||
printf("sizeof BotPhraseManager: 0x%2X (%d)\n", REPEAT_SIZEOF(BotPhraseManager));
|
|
||||||
|
|
||||||
printf("sizeof CBasePlayer: 0x%2X (%d)\n", REPEAT_SIZEOF(CBasePlayer));
|
|
||||||
printf("sizeof ActiveGrenade: 0x%2X (%d)\n", REPEAT_SIZEOF(ActiveGrenade));
|
|
||||||
printf("sizeof CHostageImprov: 0x%2X (%d)\n", REPEAT_SIZEOF(CHostageImprov));
|
|
||||||
printf("sizeof HostageStateMachine: 0x%2X (%d)\n", REPEAT_SIZEOF(HostageStateMachine));
|
|
||||||
printf("sizeof HostageFollowState: 0x%2X (%d)\n", REPEAT_SIZEOF(HostageFollowState));
|
|
||||||
|
|
||||||
printf("offsetof CBaseEntity::pev: 0x%2X (%d)\n", REPEAT_OFFSETOF(CBaseEntity, pev));
|
|
||||||
printf("offsetof CBaseEntity::has_disconnected: 0x%2X (%d)\n", REPEAT_OFFSETOF(CBaseEntity, has_disconnected));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma warning( pop )
|
#pragma warning( pop )
|
||||||
|
Loading…
x
Reference in New Issue
Block a user