ReGameDLL_CS/regamedll/dlls/func_break.cpp
s1lentq 2f82bb17ae Reversed some function from player.cpp
Better implemented static members by all objects of the class
MSVC: Added loading of custom configurations for the test demo with the launch --regamedll-cfg-init filename.cfg (NOTE: The config should be in the "tests" folder)
Gradle script: Added stuff for each the test demo and their auto-unpacking the root folder HLDS
2015-07-05 17:19:59 +06:00

518 lines
14 KiB
C++

#include "precompiled.h"
/*
* Globals initialization
*/
#ifndef HOOK_GAMEDLL
// Just add more items to the bottom of this array and they will automagically be supported
// This is done instead of just a classname in the FGD so we can control which entities can
// be spawned, and still remain fairly flexible
const char *CBreakable::pSpawnObjects[] =
{
NULL,
"item_battery",
"item_healthkit",
"weapon_9mmhandgun",
"ammo_9mmclip",
"weapon_9mmAR",
"ammo_9mmAR",
"ammo_ARgrenades",
"weapon_shotgun",
"ammo_buckshot",
"weapon_crossbow",
"ammo_crossbow",
"weapon_357",
"ammo_357",
"weapon_rpg",
"ammo_rpgclip",
"ammo_gaussclip",
"weapon_handgrenade",
"weapon_tripmine",
"weapon_satchel",
"weapon_snark",
"weapon_hornetgun",
"weapon_usp",
"weapon_glock18",
"weapon_awp",
"weapon_mp5n",
"weapon_m249",
"weapon_m3",
"weapon_m4a1",
"weapon_tmp",
"weapon_g3sg1",
"weapon_flashbang"
};
const char *CBreakable::pSoundsWood[] =
{
"debris/wood1.wav",
"debris/wood2.wav",
"debris/wood3.wav",
};
const char *CBreakable::pSoundsFlesh[] =
{
"debris/flesh1.wav",
"debris/flesh2.wav",
"debris/flesh3.wav",
"debris/flesh5.wav",
"debris/flesh6.wav",
"debris/flesh7.wav",
};
const char *CBreakable::pSoundsMetal[] =
{
"debris/metal1.wav",
"debris/metal2.wav",
"debris/metal3.wav",
};
const char *CBreakable::pSoundsConcrete[] =
{
"debris/concrete1.wav",
"debris/concrete2.wav",
"debris/concrete3.wav",
};
const char *CBreakable::pSoundsGlass[] =
{
"debris/glass1.wav",
"debris/glass2.wav",
"debris/glass3.wav",
};
char *CPushable::m_soundNames[] =
{
"debris/pushbox1.wav",
"debris/pushbox2.wav",
"debris/pushbox3.wav"
};
TYPEDESCRIPTION CBreakable::m_SaveData[] =
{
DEFINE_FIELD(CBreakable, m_Material, FIELD_INTEGER),
DEFINE_FIELD(CBreakable, m_Explosion, FIELD_INTEGER),
DEFINE_FIELD(CBreakable, m_angle, FIELD_FLOAT),
DEFINE_FIELD(CBreakable, m_iszGibModel, FIELD_STRING),
DEFINE_FIELD(CBreakable, m_iszSpawnObject, FIELD_STRING),
};
TYPEDESCRIPTION CPushable::m_SaveData[] =
{
DEFINE_FIELD(CPushable, m_maxSpeed, FIELD_FLOAT),
DEFINE_FIELD(CPushable, m_soundTime, FIELD_TIME),
};
#else // HOOK_GAMEDLL
const char *(*CBreakable::ppSpawnObjects)[32];
const char *(*CBreakable::ppSoundsWood)[3];
const char *(*CBreakable::ppSoundsFlesh)[6];
const char *(*CBreakable::ppSoundsMetal)[3];
const char *(*CBreakable::ppSoundsConcrete)[3];
const char *(*CBreakable::ppSoundsGlass)[3];
char *(*CPushable::pm_soundNames)[3];
TYPEDESCRIPTION (*CBreakable::pm_SaveData)[5];
TYPEDESCRIPTION (*CPushable::pm_SaveData)[2];
#endif // HOOK_GAMEDLL
/* <85bf3> ../cstrike/dlls/func_break.cpp:76 */
NOBODY void CBreakable::KeyValue_(KeyValueData *pkvd)
{
// FStrEq(const char *sz1,
// const char *sz2); // 90
// FStrEq(const char *sz1,
// const char *sz2); // 103
// FStrEq(const char *sz1,
// const char *sz2); // 107
// FStrEq(const char *sz1,
// const char *sz2); // 112
// FStrEq(const char *sz1,
// const char *sz2); // 117
// FStrEq(const char *sz1,
// const char *sz2); // 124
// FStrEq(const char *sz1,
// const char *sz2); // 129
// {
// int object; // 119
// atoi(const char *__nptr); // 119
// }
// atoi(const char *__nptr); // 126
// ExplosionSetMagnitude(CBreakable *const this,
// int magnitude); // 126
// {
// int i; // 92
// atoi(const char *__nptr); // 92
// }
}
/* <86426> ../cstrike/dlls/func_break.cpp:139 */
LINK_ENTITY_TO_CLASS(func_breakable, CBreakable);
/* <85b30> ../cstrike/dlls/func_break.cpp:155 */
IMPLEMENT_SAVERESTORE(CBreakable, CBaseEntity);
/* <85663> ../cstrike/dlls/func_break.cpp:157 */
NOBODY void CBreakable::Spawn_(void)
{
}
/* <8568a> ../cstrike/dlls/func_break.cpp:191 */
NOBODY void CBreakable::Restart_(void)
{
}
/* <864f1> ../cstrike/dlls/func_break.cpp:260 */
NOBODY const char **CBreakable::MaterialSoundList(Materials precacheMaterial, int &soundCount)
{
// {
// const char ** pSoundList; // 262
// }
}
/* <86526> ../cstrike/dlls/func_break.cpp:303 */
NOBODY void CBreakable::MaterialSoundPrecache(Materials precacheMaterial)
{
// {
// const char ** pSoundList; // 305
// int i; // 306
// int soundCount; // 306
// MaterialSoundList(Materials precacheMaterial,
// int &soundCount); // 308
// }
}
/* <86598> ../cstrike/dlls/func_break.cpp:316 */
NOBODY void CBreakable::MaterialSoundRandom(edict_t *pEdict, Materials soundMaterial, float volume)
{
// {
// const char ** pSoundList; // 318
// int soundCount; // 319
// MaterialSoundList(Materials precacheMaterial,
// int &soundCount); // 321
// EMIT_SOUND(edict_t *entity,
// int channel,
// const char *sample,
// float volume,
// float attenuation); // 324
// }
}
/* <8634b> ../cstrike/dlls/func_break.cpp:328 */
NOBODY void CBreakable::Precache_(void)
{
// {
// const char *pGibName; // 330
// MaterialSoundPrecache(Materials precacheMaterial); // 386
// }
}
/* <86676> ../cstrike/dlls/func_break.cpp:401 */
NOBODY void CBreakable::DamageSound(void)
{
// {
// int pitch; // 403
// float fvol; // 404
// char *rgpsz; // 405
// int i; // 406
// int material; // 407
// }
}
/* <8691c> ../cstrike/dlls/func_break.cpp:475 */
NOBODY void CBreakable::BreakTouch(CBaseEntity *pOther)
{
// {
// float flDamage; // 477
// entvars_t *pevToucher; // 478
// Length(const Vector *const this); // 500
// }
}
/* <85f2d> ../cstrike/dlls/func_break.cpp:538 */
NOBODY void CBreakable::Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
{
// Use(CBreakable *const this,
// class CBaseEntity *pActivator,
// class CBaseEntity *pCaller,
// USE_TYPE useType,
// float value); // 538
}
/* <85964> ../cstrike/dlls/func_break.cpp:554 */
NOBODY void CBreakable::TraceAttack_(entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType)
{
// {
// float flVolume; // 565
// EMIT_SOUND(edict_t *entity,
// int channel,
// const char *sample,
// float volume,
// float attenuation); // 568
// EMIT_SOUND(edict_t *entity,
// int channel,
// const char *sample,
// float volume,
// float attenuation); // 569
// }
// Vector(Vector *const this,
// const Vector &v); // 580
}
/* <86719> ../cstrike/dlls/func_break.cpp:588 */
NOBODY int CBreakable::TakeDamage_(entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType)
{
// {
// Vector vecTemp; // 590
// operator*(const Vector *const this,
// float fl); // 606
// operator+(const Vector *const this,
// const Vector &v); // 606
// operator-(const Vector *const this,
// const Vector &v); // 606
// Normalize(const Vector *const this); // 621
// operator*(const Vector *const this,
// float fl); // 596
// operator+(const Vector *const this,
// const Vector &v); // 596
// operator-(const Vector *const this,
// const Vector &v); // 596
// }
}
/* <856fe> ../cstrike/dlls/func_break.cpp:653 */
NOBODY void CBreakable::Die(void)
{
// {
// Vector vecSpot; // 655
// Vector vecVelocity; // 656
// class CBaseEntity *pEntity; // 657
// char cFlag; // 658
// int pitch; // 659
// float fvol; // 660
// float size; // 790
// Vector mins; // 798
// Vector maxs; // 799
// class CBaseEntity *pList; // 804
// int count; // 805
// operator+(const Vector *const this,
// const Vector &v); // 755
// MESSAGE_BEGIN(int msg_dest,
// int msg_type,
// const float *pOrigin,
// edict_t *ed); // 756
// operator*(const Vector *const this,
// float fl); // 755
// operator+(const Vector *const this,
// const Vector &v); // 755
// Vector(Vector *const this,
// const Vector &v); // 798
// Vector(Vector *const this,
// const Vector &v); // 799
// {
// int i; // 808
// }
// Explodable(CBreakable *const this); // 825
// edict(CBaseEntity *const this); // 827
// operator*(const Vector *const this,
// float fl); // 747
// edict(CBaseEntity *const this); // 822
// }
}
/* <86992> ../cstrike/dlls/func_break.cpp:833 */
NOBODY BOOL CBreakable::IsBreakable(void)
{
}
/* <85a99> ../cstrike/dlls/func_break.cpp:839 */
NOBODY int CBreakable::DamageDecal_(int bitsDamageType)
{
// DamageDecal(CBreakable *const this,
// int bitsDamageType); // 839
}
/* <869b4> ../cstrike/dlls/func_break.cpp:888 */
LINK_ENTITY_TO_CLASS(func_pushable, CPushable);
/* <85e0b> ../cstrike/dlls/func_break.cpp:886 */
IMPLEMENT_SAVERESTORE(CPushable, CBreakable);
/* <856d7> ../cstrike/dlls/func_break.cpp:893 */
NOBODY void CPushable::Spawn_(void)
{
}
/* <863eb> ../cstrike/dlls/func_break.cpp:920 */
NOBODY void CPushable::Precache_(void)
{
// {
// int i; // 922
// }
}
/* <85fa3> ../cstrike/dlls/func_break.cpp:930 */
NOBODY void CPushable::KeyValue_(KeyValueData *pkvd)
{
// {
// int bbox; // 934
// }
// FStrEq(const char *sz1,
// const char *sz2); // 932
// FStrEq(const char *sz1,
// const char *sz2); // 958
// KeyValue(CBreakable *const this,
// KeyValueData *pkvd); // 964
// atof(const char *__nptr); // 960
// KeyValue(CPushable *const this,
// KeyValueData *pkvd); // 930
}
/* <86c0d> ../cstrike/dlls/func_break.cpp:969 */
NOBODY void CPushable::Use_(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
{
// Use(CPushable *const this,
// class CBaseEntity *pActivator,
// class CBaseEntity *pCaller,
// USE_TYPE useType,
// float value); // 969
// operator!=(const Vector *const this,
// const Vector &v); // 978
}
/* <86b99> ../cstrike/dlls/func_break.cpp:983 */
NOBODY void CPushable::Touch_(CBaseEntity *pOther)
{
// FClassnameIs(entvars_t *pev,
// const char *szClassname); // 985
}
/* <86a82> ../cstrike/dlls/func_break.cpp:992 */
NOBODY void CPushable::Move(CBaseEntity *pOther, int push)
{
// {
// entvars_t *pevToucher; // 994
// int playerTouch; // 995
// float factor; // 1015
// float length; // 1035
// VARS(edict_t *pent); // 998
// STOP_SOUND(edict_t *entity,
// int channel,
// const char *sample); // 1056
// EMIT_SOUND(edict_t *entity,
// int channel,
// const char *sample,
// float volume,
// float attenuation); // 1051
// }
}
/* <868b0> ../cstrike/dlls/func_break.cpp:1061 */
NOBODY int CPushable::TakeDamage_(entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType)
{
// TakeDamage(CPushable *const this,
// entvars_t *pevInflictor,
// entvars_t *pevAttacker,
// float flDamage,
// int bitsDamageType); // 1061
}
#ifdef HOOK_GAMEDLL
void CBreakable::Spawn(void)
{
Spawn_();
}
void CBreakable::Precache(void)
{
Precache_();
}
void CBreakable::Restart(void)
{
Restart_();
}
void CBreakable::KeyValue(KeyValueData *pkvd)
{
KeyValue_(pkvd);
}
int CBreakable::Save(CSave &save)
{
return Save_(save);
}
int CBreakable::Restore(CRestore &restore)
{
return Restore_(restore);
}
void CBreakable::TraceAttack(entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType)
{
TraceAttack_(pevAttacker, flDamage, vecDir, ptr, bitsDamageType);
}
int CBreakable::TakeDamage(entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType)
{
return TakeDamage_(pevInflictor, pevAttacker, flDamage, bitsDamageType);
}
int CBreakable::DamageDecal(int bitsDamageType)
{
return DamageDecal_(bitsDamageType);
}
void CBreakable::Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
{
Use_(pActivator, pCaller, useType, value);
}
void CPushable::Spawn(void)
{
Spawn_();
}
void CPushable::Precache(void)
{
Precache_();
}
void CPushable::KeyValue(KeyValueData *pkvd)
{
KeyValue_(pkvd);
}
int CPushable::Save(CSave &save)
{
return Save_(save);
}
int CPushable::Restore(CRestore &restore)
{
return Restore_(restore);
}
int CPushable::TakeDamage(entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType)
{
return TakeDamage_(pevInflictor, pevAttacker, flDamage, bitsDamageType);
}
void CPushable::Touch(CBaseEntity *pOther)
{
Touch_(pOther);
}
void CPushable::Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
{
Use_(pActivator, pCaller, useType, value);
}
#endif // HOOK_GAMEDLL