Skip to content

Commit

Permalink
Add mp_legacy_bombtarget_touch cvar
Browse files Browse the repository at this point in the history
  • Loading branch information
In-line committed Jan 5, 2018
1 parent cff951a commit 974daa6
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 8 deletions.
7 changes: 7 additions & 0 deletions dist/game.cfg
Expand Up @@ -172,3 +172,10 @@ sv_alltalk 0
//
// Default value: "300"
mp_item_staytime 300
// Legacy func_bomb_target touch. New one is more strict.
// 0 - New behavior
// 1 - Legacy behavior
//
// Default value: "0"
mp_legacy_bombtarget_touch "0"
12 changes: 7 additions & 5 deletions regamedll/dlls/game.cpp
Expand Up @@ -110,11 +110,12 @@ cvar_t round_restart_delay = { "mp_round_restart_delay", "5", FCVAR_SERVER, 0.
cvar_t showtriggers = { "showtriggers", "0", 0, 0.0f, nullptr }; // debug cvar shows triggers
// TODO: Maybe it's better to register in the engine?

cvar_t hostagehurtable = { "mp_hostage_hurtable", "1", FCVAR_SERVER, 0.0f, nullptr };
cvar_t roundover = { "mp_roundover", "0", FCVAR_SERVER, 0.0f, nullptr };
cvar_t forcerespawn = { "mp_forcerespawn", "0", FCVAR_SERVER, 0.0f, nullptr };
cvar_t show_radioicon = { "mp_show_radioicon", "1", FCVAR_SERVER, 1.0f, nullptr };
cvar_t item_staytime = { "mp_item_staytime", "300", FCVAR_SERVER, 300.0f, nullptr };
cvar_t hostagehurtable = { "mp_hostage_hurtable", "1", FCVAR_SERVER, 0.0f, nullptr };
cvar_t roundover = { "mp_roundover", "0", FCVAR_SERVER, 0.0f, nullptr };
cvar_t forcerespawn = { "mp_forcerespawn", "0", FCVAR_SERVER, 0.0f, nullptr };
cvar_t show_radioicon = { "mp_show_radioicon", "1", FCVAR_SERVER, 1.0f, nullptr };
cvar_t item_staytime = { "mp_item_staytime", "300", FCVAR_SERVER, 300.0f, nullptr };
cvar_t legacy_bombtarget_touch = { "mp_legacy_bombtarget_touch", "0", FCVAR_SERVER, 0.0f, nullptr };

void GameDLL_Version_f()
{
Expand Down Expand Up @@ -267,6 +268,7 @@ void EXT_FUNC GameDLLInit()
CVAR_REGISTER(&forcerespawn);
CVAR_REGISTER(&show_radioicon);
CVAR_REGISTER(&item_staytime);
CVAR_REGISTER(&legacy_bombtarget_touch);

// print version
CONSOLE_ECHO("ReGameDLL version: " APP_VERSION "\n");
Expand Down
1 change: 1 addition & 0 deletions regamedll/dlls/game.h
Expand Up @@ -151,6 +151,7 @@ extern cvar_t roundover;
extern cvar_t forcerespawn;
extern cvar_t show_radioicon;
extern cvar_t item_staytime;
extern cvar_t legacy_bombtarget_touch;

#endif

Expand Down
11 changes: 10 additions & 1 deletion regamedll/dlls/triggers.cpp
Expand Up @@ -1833,14 +1833,23 @@ void CBombTarget::Spawn()
SetUse(&CBombTarget::BombTargetUse);
}

bool CBombTarget::IsPlayerInBombSite(CBasePlayer *pPlayer)
{
return Intersects(pPlayer->pev->origin, pPlayer->pev->origin);
}

void CBombTarget::BombTargetTouch(CBaseEntity *pOther)
{
if (!pOther->IsPlayer())
return;

CBasePlayer *pPlayer = static_cast<CBasePlayer *>(pOther);

if (pPlayer->m_bHasC4)
if (pPlayer->m_bHasC4
#ifdef REGAMEDLL_FIXES
&& (!legacy_bombtarget_touch.value && IsPlayerInBombSite(pPlayer))
#endif
)
{
pPlayer->m_signals.Signal(SIGNAL_BOMB);
pPlayer->m_pentCurBombTarget = ENT(pev);
Expand Down
4 changes: 2 additions & 2 deletions regamedll/dlls/triggers.h
Expand Up @@ -406,10 +406,10 @@ class CBuyZone: public CBaseTrigger

class CBombTarget: public CBaseTrigger
{
private:
bool IsPlayerInBombSite(CBasePlayer *pPlayer);
public:
virtual void Spawn();

public:
void EXPORT BombTargetTouch(CBaseEntity *pOther);
void EXPORT BombTargetUse(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value);
};
Expand Down

0 comments on commit 974daa6

Please sign in to comment.