CBaseTrigger/s: Overhauled the system to keep proper track of its activators. This was important in some mods who'd e.g. call a trigger_camera over longer periods of time and expected to target the same player as before as part of a multi_manager.
This commit is contained in:
parent
d8ce029466
commit
d3b488b7bf
55 changed files with 190 additions and 206 deletions
|
@ -257,6 +257,7 @@ CSQC_UpdateView(float w, float h, float focus)
|
|||
setproperty(VF_CL_VIEWANGLES, view_angles);
|
||||
setproperty(VF_ANGLES, view_angles);
|
||||
} else {
|
||||
pSeat->m_vecCameraOrigin = [0,0,0];
|
||||
if (pl.health) {
|
||||
if (autocvar_cl_thirdperson == TRUE) {
|
||||
makevectors(view_angles);
|
||||
|
@ -525,15 +526,25 @@ CSQC_Parse_Event(void)
|
|||
GameMessage_Parse();
|
||||
break;
|
||||
case EV_CAMERATRIGGER:
|
||||
pSeat->m_vecCameraOrigin[0] = readcoord();
|
||||
pSeat->m_vecCameraOrigin[1] = readcoord();
|
||||
pSeat->m_vecCameraOrigin[2] = readcoord();
|
||||
vector cam_newpos;
|
||||
|
||||
cam_newpos[0] = readcoord();
|
||||
cam_newpos[1] = readcoord();
|
||||
cam_newpos[2] = readcoord();
|
||||
|
||||
pSeat->m_vecCameraAngle[0] = readcoord();
|
||||
pSeat->m_vecCameraAngle[1] = readcoord();
|
||||
pSeat->m_vecCameraAngle[2] = readcoord();
|
||||
|
||||
pSeat->m_flCameraTime = time + readfloat();
|
||||
|
||||
/* if the same camera as last-time (hack) is still active,
|
||||
then make sure it becomes inactive... */
|
||||
if (pSeat->m_vecCameraOrigin == cam_newpos) {
|
||||
pSeat->m_flCameraTime = 0.0f;
|
||||
} else {
|
||||
pSeat->m_vecCameraOrigin = cam_newpos;
|
||||
}
|
||||
break;
|
||||
case EV_ANGLE:
|
||||
vector a;
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#define VALVE
|
||||
#define GEARBOX
|
||||
#define GS_RENDERFX
|
||||
#define CLASSIC_VGUI
|
||||
|
||||
#includelist
|
||||
../../shared/fteextensions.qc
|
||||
|
|
|
@ -65,7 +65,7 @@ server/trigger_relay.cpp
|
|||
server/env_shooter.cpp
|
||||
server/gibshooter.cpp
|
||||
server/env_beverage.cpp
|
||||
server/env_global.cpp
|
||||
//server/env_global.cpp
|
||||
server/env_laser.cpp
|
||||
server/item_food.cpp
|
||||
server/speaker.cpp
|
||||
|
|
|
@ -343,7 +343,7 @@ CBaseMonster::FreeState(void)
|
|||
|
||||
if (trigger.Trigger != __NULL__) {
|
||||
dprint(sprintf("^2CBaseMonster::^3FreeState^7: %s triggered %f\n", m_strRouteEnded, time));
|
||||
trigger.Trigger(TRIG_TOGGLE);
|
||||
trigger.Trigger(this, TRIG_TOGGLE);
|
||||
} else {
|
||||
dprint(sprintf("^1CBaseMonster::^3FreeState^7: %s not a valid trigger\n", m_strRouteEnded));
|
||||
}
|
||||
|
|
|
@ -40,9 +40,9 @@ class CBaseTrigger:CBaseEntity
|
|||
|
||||
void(void) CBaseTrigger;
|
||||
|
||||
virtual void(int) Trigger;
|
||||
virtual void(int) UseTargets;
|
||||
virtual void(int, float) UseTargets_Delay;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(entity, int) UseTargets;
|
||||
virtual void(entity, int, float) UseTargets_Delay;
|
||||
virtual int(void) GetValue;
|
||||
virtual int(void) GetMaster;
|
||||
virtual void(void) InitBrushTrigger;
|
||||
|
@ -50,14 +50,14 @@ class CBaseTrigger:CBaseEntity
|
|||
};
|
||||
|
||||
void
|
||||
CBaseTrigger::UseTargets(int state)
|
||||
CBaseTrigger::UseTargets(entity act, int state)
|
||||
{
|
||||
for (entity f = world; (f = find(f, CBaseTrigger::m_strTargetName, m_strTarget));) {
|
||||
CBaseTrigger trigger = (CBaseTrigger)f;
|
||||
dprint(sprintf("^2%s::^3UseTargets^7: Triggering %s `%s`\n",
|
||||
this.classname, f.classname, trigger.m_strTargetName));
|
||||
dprint(sprintf("^2%s::^3UseTargets^7: Triggering %s `%s` from %s\n",
|
||||
this.classname, f.classname, trigger.m_strTargetName, act.classname));
|
||||
if (trigger.Trigger != __NULL__) {
|
||||
trigger.Trigger(state);
|
||||
trigger.Trigger(act, state);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -66,8 +66,8 @@ CBaseTrigger::UseTargets(int state)
|
|||
print(m_strMessage);
|
||||
print("\n");
|
||||
} else {
|
||||
if (m_strMessage && eActivator.flags & FL_CLIENT) {
|
||||
centerprint(eActivator, m_strMessage);
|
||||
if (m_strMessage && act.flags & FL_CLIENT) {
|
||||
centerprint(act, m_strMessage);
|
||||
}
|
||||
}*/
|
||||
|
||||
|
@ -80,11 +80,10 @@ CBaseTrigger::UseTargets(int state)
|
|||
}
|
||||
|
||||
void
|
||||
CBaseTrigger::UseTargets_Delay(int state, float fDelay)
|
||||
CBaseTrigger::UseTargets_Delay(entity act, int state, float fDelay)
|
||||
{
|
||||
static void Entities_UseTargets_Delay_Think(void) {
|
||||
eActivator = self.owner;
|
||||
CBaseTrigger::UseTargets(self.health); /* ugly */
|
||||
CBaseTrigger::UseTargets(self.owner, self.health); /* ugly */
|
||||
remove(self);
|
||||
}
|
||||
|
||||
|
@ -92,7 +91,7 @@ CBaseTrigger::UseTargets_Delay(int state, float fDelay)
|
|||
this.classname, m_strTarget));
|
||||
|
||||
CBaseTrigger eTimer = spawn(CBaseTrigger);
|
||||
eTimer.owner = eActivator;
|
||||
eTimer.owner = act;
|
||||
eTimer.think = Entities_UseTargets_Delay_Think;
|
||||
eTimer.m_strTarget = m_strTarget;
|
||||
eTimer.nextthink = time + fDelay;
|
||||
|
@ -137,7 +136,7 @@ CBaseTrigger::GetMaster(void)
|
|||
}
|
||||
|
||||
void
|
||||
CBaseTrigger::Trigger(int state)
|
||||
CBaseTrigger::Trigger(entity act, int state)
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ class button_target:CBaseTrigger
|
|||
void(void) button_target;
|
||||
|
||||
virtual void(void) Respawn;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(int) Damage;
|
||||
};
|
||||
|
||||
|
@ -47,7 +47,7 @@ button_target::Respawn(void)
|
|||
{
|
||||
/* yuck */
|
||||
static void PUseWrapper(void) {
|
||||
Trigger(TRIG_TOGGLE);
|
||||
Trigger(eActivator, TRIG_TOGGLE);
|
||||
}
|
||||
|
||||
SetMovetype(MOVETYPE_PUSH);
|
||||
|
@ -69,20 +69,20 @@ button_target::Respawn(void)
|
|||
}
|
||||
|
||||
void
|
||||
button_target::Trigger(int status)
|
||||
button_target::Trigger(entity act, int status)
|
||||
{
|
||||
/* make unusable */
|
||||
PlayerUse = __NULL__;
|
||||
takedamage = DAMAGE_NO;
|
||||
|
||||
frame = 1 - frame;
|
||||
UseTargets(status);
|
||||
UseTargets(act, status);
|
||||
}
|
||||
|
||||
void
|
||||
button_target::Damage(int hit)
|
||||
{
|
||||
Trigger(TRIG_TOGGLE); /* TODO: Set state? */
|
||||
Trigger(g_dmg_eAttacker, TRIG_TOGGLE); /* TODO: Set state? */
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -46,11 +46,11 @@ class env_beverage:CBaseTrigger
|
|||
int m_iReady;
|
||||
int m_iSkin;
|
||||
void(void) env_beverage;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
};
|
||||
|
||||
void
|
||||
env_beverage::Trigger(int unused)
|
||||
env_beverage::Trigger(entity act, int unused)
|
||||
{
|
||||
if (m_iReady == FALSE || m_iUses <= 0) {
|
||||
return;
|
||||
|
|
|
@ -39,7 +39,7 @@ class env_explosion:CBaseTrigger
|
|||
float m_flMaxDelay;
|
||||
|
||||
void(void) env_explosion;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
};
|
||||
|
||||
void env_explosion::env_explosion(void)
|
||||
|
@ -56,7 +56,7 @@ void env_explosion::env_explosion(void)
|
|||
CBaseTrigger::CBaseTrigger();
|
||||
}
|
||||
|
||||
void env_explosion::Trigger(int state)
|
||||
void env_explosion::Trigger(entity act, int state)
|
||||
{
|
||||
FX_Explosion(origin);
|
||||
|
||||
|
|
|
@ -40,10 +40,10 @@ class env_fade:CBaseTrigger
|
|||
float m_flFadeHold;
|
||||
|
||||
void(void) env_fade;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
};
|
||||
|
||||
void env_fade::Trigger(int state)
|
||||
void env_fade::Trigger(entity act, int state)
|
||||
{
|
||||
WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET);
|
||||
WriteByte(MSG_MULTICAST, EV_FADE);
|
||||
|
@ -54,7 +54,7 @@ void env_fade::Trigger(int state)
|
|||
WriteFloat(MSG_MULTICAST, m_flFadeDuration);
|
||||
WriteFloat(MSG_MULTICAST, m_flFadeHold);
|
||||
WriteByte(MSG_MULTICAST, spawnflags);
|
||||
msg_entity = eActivator;
|
||||
msg_entity = act;
|
||||
|
||||
if (spawnflags & EVF_ONLYUSER) {
|
||||
multicast([0,0,0], MULTICAST_ONE_R);
|
||||
|
|
|
@ -54,7 +54,7 @@ class env_laser:CBaseTrigger
|
|||
void(void) env_laser;
|
||||
|
||||
virtual void(void) think;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) Respawn;
|
||||
virtual void(void) ParentUpdate;
|
||||
virtual float(entity, float) SendEntity;
|
||||
|
@ -85,7 +85,7 @@ void env_laser::think(void)
|
|||
}
|
||||
}
|
||||
|
||||
void env_laser::Trigger(int state)
|
||||
void env_laser::Trigger(entity act, int state)
|
||||
{
|
||||
switch (state) {
|
||||
case TRIG_OFF:
|
||||
|
|
|
@ -41,11 +41,11 @@ class env_message:CBaseTrigger
|
|||
|
||||
void(void) env_message;
|
||||
|
||||
virtual void(int) Play;
|
||||
virtual void(entity, int) Play;
|
||||
virtual void(void) Respawn;
|
||||
};
|
||||
|
||||
void env_message::Play(int state)
|
||||
void env_message::Play(entity act, int state)
|
||||
{
|
||||
WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET);
|
||||
WriteByte(MSG_MULTICAST, EV_MESSAGE);
|
||||
|
@ -58,7 +58,7 @@ void env_message::Play(int state)
|
|||
msg_entity = this;
|
||||
multicast(origin, MULTICAST_ALL);
|
||||
} else {
|
||||
msg_entity = eActivator;
|
||||
msg_entity = act;
|
||||
multicast(origin, MULTICAST_ONE_R);
|
||||
}
|
||||
|
||||
|
|
|
@ -36,11 +36,11 @@ enumflags
|
|||
class env_render:CBaseTrigger
|
||||
{
|
||||
void(void) env_render;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
};
|
||||
|
||||
void
|
||||
env_render::Trigger(int state)
|
||||
env_render::Trigger(entity act, int state)
|
||||
{
|
||||
for (entity e = world;
|
||||
(e = find(e, CBaseEntity::m_strTargetName, m_strTarget));) {
|
||||
|
|
|
@ -37,10 +37,10 @@ class env_shake:CBaseTrigger
|
|||
float m_flFrequency;
|
||||
|
||||
void(void) env_shake;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity act, int) Trigger;
|
||||
};
|
||||
|
||||
void env_shake::Trigger(int state)
|
||||
void env_shake::Trigger(entity act, int state)
|
||||
{
|
||||
for (entity e = world; (e = find(e, ::classname, "player"));) {
|
||||
WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET);
|
||||
|
@ -54,7 +54,7 @@ void env_shake::Trigger(int state)
|
|||
}
|
||||
}
|
||||
|
||||
void env_shake::env_shake (void)
|
||||
void env_shake::env_shake(void)
|
||||
{
|
||||
for (int i = 1; i < (tokenize(__fullspawndata) - 1); i += 2) {
|
||||
switch (argv(i)) {
|
||||
|
|
|
@ -48,7 +48,7 @@ class env_shooter:CBaseTrigger
|
|||
void(void) env_shooter;
|
||||
virtual void(void) Respawn;
|
||||
virtual void(void) ShootGib;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
};
|
||||
|
||||
void
|
||||
|
@ -79,7 +79,7 @@ env_shooter::ShootGib(void)
|
|||
}
|
||||
|
||||
void
|
||||
env_shooter::Trigger(int state)
|
||||
env_shooter::Trigger(entity act, int state)
|
||||
{
|
||||
switch (state) {
|
||||
case TRIG_OFF:
|
||||
|
@ -92,9 +92,9 @@ env_shooter::Trigger(int state)
|
|||
break;
|
||||
default:
|
||||
if (think == __NULL__)
|
||||
Trigger(TRIG_ON);
|
||||
Trigger(act, TRIG_ON);
|
||||
else
|
||||
Trigger(TRIG_OFF);
|
||||
Trigger(act, TRIG_OFF);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ class env_spark:CBaseTrigger
|
|||
void(void) env_spark;
|
||||
virtual void(void) CreateSpark;
|
||||
virtual void(void) TimedSpark;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) Respawn;
|
||||
};
|
||||
|
||||
|
@ -69,7 +69,7 @@ void env_spark::TimedSpark(void)
|
|||
}
|
||||
|
||||
/* TODO: Implement state */
|
||||
void env_spark::Trigger(int state)
|
||||
void env_spark::Trigger(entity act, int state)
|
||||
{
|
||||
if (spawnflags & EVSPARK_TOGGLE) {
|
||||
if (think != __NULL__) {
|
||||
|
|
|
@ -44,7 +44,7 @@ class env_sprite:CBaseTrigger
|
|||
float m_flEffects;
|
||||
|
||||
void(void) env_sprite;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual float(entity, float) Network;
|
||||
};
|
||||
|
||||
|
@ -92,7 +92,7 @@ void env_sprite::NetworkOnce(void)
|
|||
}
|
||||
|
||||
/* TODO: Implement state */
|
||||
void env_sprite::Trigger(int state)
|
||||
void env_sprite::Trigger(entity act, int state)
|
||||
{
|
||||
if (spawnflags & ENVS_PLAYONCE) {
|
||||
NetworkOnce();
|
||||
|
|
|
@ -115,7 +115,7 @@ class func_breakable:CBaseTrigger
|
|||
void(void) func_breakable;
|
||||
virtual void(void) Respawn;
|
||||
virtual void(void) Explode;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) PlayerTouch;
|
||||
/*virtual void(void) PressureDeath;*/
|
||||
virtual void(int) Pain;
|
||||
|
@ -167,7 +167,7 @@ func_breakable::Explode(void)
|
|||
FX_BreakModel(vlen(size) / 10, absmin, absmax, [0,0,0], m_iMaterial);
|
||||
FX_Explosion(rp);
|
||||
Damage_Radius(rp, this, m_flExplodeMag, m_flExplodeMag * 2.5f, TRUE, 0);
|
||||
CBaseTrigger::UseTargets(TRIG_TOGGLE);
|
||||
CBaseTrigger::UseTargets(this, TRIG_TOGGLE);
|
||||
CBaseEntity::Hide();
|
||||
}
|
||||
|
||||
|
@ -218,13 +218,14 @@ func_breakable::Death(int body)
|
|||
nextthink = time + random(0.0,0.5);
|
||||
} else {
|
||||
FX_BreakModel(vlen(size) / 10, absmin, absmax, [0,0,0], m_iMaterial);
|
||||
CBaseTrigger::UseTargets(TRIG_TOGGLE);
|
||||
/* TODO: ability to have whoever destroyed the crate be the activator */
|
||||
CBaseTrigger::UseTargets(this, TRIG_TOGGLE);
|
||||
CBaseEntity::Hide();
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
func_breakable::Trigger(int state)
|
||||
func_breakable::Trigger(entity act, int state)
|
||||
{
|
||||
if (health > 0)
|
||||
func_breakable::Death(0);
|
||||
|
@ -240,7 +241,8 @@ void
|
|||
func_breakable::PlayerTouch(void)
|
||||
{
|
||||
static void TriggerWrap(void) {
|
||||
Trigger(TRIG_TOGGLE);
|
||||
/* TODO: 'this' should be the person who touched the ent instead */
|
||||
Trigger(this, TRIG_TOGGLE);
|
||||
}
|
||||
|
||||
if (other.classname == classname) {
|
||||
|
|
|
@ -133,7 +133,7 @@ class func_button:CBaseTrigger
|
|||
virtual void(void) MoveAway;
|
||||
virtual void(void) Touch;
|
||||
virtual void(void) Blocked;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) Use;
|
||||
virtual void(int) Pain;
|
||||
virtual void(int) Death;
|
||||
|
@ -235,7 +235,7 @@ void func_button::MoveAway(void)
|
|||
}
|
||||
|
||||
/* TODO: Handle state */
|
||||
void func_button::Trigger(int state)
|
||||
void func_button::Trigger(entity act, int state)
|
||||
{
|
||||
if (m_flNextTrigger > time) {
|
||||
return;
|
||||
|
@ -260,17 +260,16 @@ void func_button::Trigger(int state)
|
|||
MoveAway();
|
||||
|
||||
if (m_flDelay) {
|
||||
UseTargets_Delay(TRIG_TOGGLE, m_flDelay);
|
||||
UseTargets_Delay(act, TRIG_TOGGLE, m_flDelay);
|
||||
} else {
|
||||
UseTargets(TRIG_TOGGLE);
|
||||
UseTargets(act, TRIG_TOGGLE);
|
||||
}
|
||||
}
|
||||
|
||||
void func_button::Touch(void)
|
||||
{
|
||||
if (other.movetype == MOVETYPE_WALK) {
|
||||
eActivator = other;
|
||||
Trigger(TRIG_TOGGLE);
|
||||
Trigger(other, TRIG_TOGGLE);
|
||||
|
||||
if (!(spawnflags & SF_BTT_TOUCH_ONLY)) {
|
||||
touch = __NULL__;
|
||||
|
@ -280,7 +279,7 @@ void func_button::Touch(void)
|
|||
|
||||
void func_button::Use(void)
|
||||
{
|
||||
Trigger(TRIG_TOGGLE);
|
||||
Trigger(eActivator, TRIG_TOGGLE);
|
||||
}
|
||||
|
||||
void func_button::Pain (int body)
|
||||
|
@ -290,7 +289,7 @@ void func_button::Pain (int body)
|
|||
|
||||
void func_button::Death (int body)
|
||||
{
|
||||
Trigger(TRIG_TOGGLE);
|
||||
Trigger(g_dmg_eAttacker, TRIG_TOGGLE);
|
||||
health = m_oldHealth;
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ class func_conveyor:CBaseTrigger
|
|||
void(void) func_conveyor;
|
||||
|
||||
virtual void(void) Respawn;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) touch;
|
||||
virtual void(void) SetMovementDirection;
|
||||
};
|
||||
|
@ -59,7 +59,7 @@ func_conveyor::touch(void)
|
|||
|
||||
/* TODO: Handle state? */
|
||||
void
|
||||
func_conveyor::Trigger(int state)
|
||||
func_conveyor::Trigger(entity act, int state)
|
||||
{
|
||||
/* changes direction */
|
||||
m_flSpeed = -m_flSpeed;
|
||||
|
|
|
@ -98,7 +98,7 @@ class func_door:CBaseTrigger
|
|||
virtual void(void) Arrived;
|
||||
virtual void(void) Returned;
|
||||
virtual void(void) Respawn;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) Blocked;
|
||||
virtual void(void) Touch;
|
||||
virtual void(void) Use;
|
||||
|
@ -109,7 +109,7 @@ void
|
|||
func_door::Use(void)
|
||||
{
|
||||
eActivator.gflags &= ~GF_USE_RELEASED;
|
||||
Trigger(TRIG_TOGGLE);
|
||||
Trigger(eActivator, TRIG_TOGGLE);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -154,7 +154,7 @@ func_door::Returned(void)
|
|||
t = (CBaseTrigger)find(world, CBaseTrigger::m_strTargetName, m_strFire);
|
||||
|
||||
if (t) {
|
||||
t.Trigger(TRIG_TOGGLE);
|
||||
t.Trigger(this, TRIG_TOGGLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -205,7 +205,7 @@ func_door::MoveAway(void)
|
|||
}
|
||||
|
||||
void
|
||||
func_door::Trigger(int state)
|
||||
func_door::Trigger(entity act, int state)
|
||||
{
|
||||
if (GetMaster() == 0)
|
||||
return;
|
||||
|
@ -220,9 +220,9 @@ func_door::Trigger(int state)
|
|||
/* only trigger stuff once we are done moving */
|
||||
if ((m_iState == DOORSTATE_RAISED) || (m_iState == DOORSTATE_LOWERED)) {
|
||||
if (m_flDelay > 0) {
|
||||
CBaseTrigger::UseTargets_Delay(TRIG_TOGGLE, m_flDelay);
|
||||
CBaseTrigger::UseTargets_Delay(act, TRIG_TOGGLE, m_flDelay);
|
||||
} else {
|
||||
CBaseTrigger::UseTargets(TRIG_TOGGLE);
|
||||
CBaseTrigger::UseTargets(act, TRIG_TOGGLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -252,8 +252,7 @@ func_door::Touch(void)
|
|||
|
||||
if (other.movetype == MOVETYPE_WALK) {
|
||||
if (other.absmin[2] <= maxs[2] - 2) {
|
||||
eActivator = other;
|
||||
Trigger(TRIG_TOGGLE);
|
||||
Trigger(other, TRIG_TOGGLE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -267,9 +266,9 @@ func_door::Blocked(void)
|
|||
|
||||
if (m_flWait >= 0) {
|
||||
if (m_iState == DOORSTATE_DOWN) {
|
||||
MoveAway ();
|
||||
MoveAway();
|
||||
} else {
|
||||
MoveBack ();
|
||||
MoveBack();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@ class func_door_rotating:CBaseTrigger
|
|||
virtual void(void) Returned;
|
||||
virtual void(void) Back;
|
||||
virtual void(void) Away;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) Use;
|
||||
virtual void(void) Touch;
|
||||
virtual void(void) Blocked;
|
||||
|
@ -196,15 +196,15 @@ void func_door_rotating::Away(void)
|
|||
RotToDest(m_vecPos2 * fDirection, Arrived);
|
||||
}
|
||||
|
||||
void func_door_rotating::Trigger(int state)
|
||||
void func_door_rotating::Trigger(entity act, int state)
|
||||
{
|
||||
if (GetMaster() == FALSE) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_flNextAction > time) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_flNextAction = time + m_flWait;
|
||||
|
||||
if (state == TRIG_TOGGLE) {
|
||||
|
@ -222,16 +222,16 @@ void func_door_rotating::Trigger(int state)
|
|||
|
||||
|
||||
if (m_flDelay) {
|
||||
CBaseTrigger::UseTargets_Delay(TRIG_TOGGLE, m_flDelay);
|
||||
CBaseTrigger::UseTargets_Delay(act, TRIG_TOGGLE, m_flDelay);
|
||||
} else {
|
||||
CBaseTrigger::UseTargets(TRIG_TOGGLE);
|
||||
CBaseTrigger::UseTargets(act, TRIG_TOGGLE);
|
||||
}
|
||||
}
|
||||
|
||||
void func_door_rotating::Use(void)
|
||||
{
|
||||
eActivator.gflags &= ~GF_USE_RELEASED;
|
||||
Trigger(TRIG_TOGGLE);
|
||||
Trigger(eActivator, TRIG_TOGGLE);
|
||||
}
|
||||
|
||||
void func_door_rotating::Touch(void)
|
||||
|
@ -239,14 +239,12 @@ void func_door_rotating::Touch(void)
|
|||
if (spawnflags & SF_ROT_USE) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_iLocked) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (other.movetype == MOVETYPE_WALK) {
|
||||
eActivator = other;
|
||||
Trigger(TRIG_TOGGLE);
|
||||
Trigger(other, TRIG_TOGGLE);
|
||||
}
|
||||
touch = __NULL__;
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ class func_guntarget:CBaseTrigger
|
|||
virtual void(void) NextPath;
|
||||
virtual void(void) Move;
|
||||
virtual void(void) Stop;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity act, int) Trigger;
|
||||
virtual void(int) Death;
|
||||
};
|
||||
|
||||
|
@ -104,7 +104,7 @@ void func_guntarget::Death(int iHitBody)
|
|||
|
||||
for (a = world; (a = find(a, CBaseTrigger::m_strTargetName, m_strFire));) {
|
||||
CBaseTrigger trigger = (CBaseTrigger)a;
|
||||
trigger.Trigger(TRIG_TOGGLE);
|
||||
trigger.Trigger(g_dmg_eAttacker, TRIG_TOGGLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -117,7 +117,7 @@ void func_guntarget::Stop(void)
|
|||
}
|
||||
|
||||
/* TODO: Handle state? */
|
||||
void func_guntarget::Trigger(int state)
|
||||
void func_guntarget::Trigger(entity act, int state)
|
||||
{
|
||||
flags = (1 << FL_FROZEN) | flags;
|
||||
|
||||
|
@ -135,7 +135,7 @@ void func_guntarget::Trigger(int state)
|
|||
void func_guntarget::Respawn(void)
|
||||
{
|
||||
static void ThinkWrap(void) {
|
||||
Trigger(TRIG_TOGGLE);
|
||||
Trigger(this, TRIG_TOGGLE);
|
||||
}
|
||||
|
||||
SetSolid(SOLID_BSP);
|
||||
|
|
|
@ -45,7 +45,7 @@ class func_pendulum:CBaseTrigger
|
|||
|
||||
virtual void(void) customphysics;
|
||||
virtual void(void) Respawn;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
};
|
||||
|
||||
void
|
||||
|
@ -67,7 +67,7 @@ func_pendulum::customphysics(void)
|
|||
}
|
||||
|
||||
void
|
||||
func_pendulum::Trigger(int state)
|
||||
func_pendulum::Trigger(entity act, int state)
|
||||
{
|
||||
switch (state) {
|
||||
case TRIG_OFF:
|
||||
|
|
|
@ -52,7 +52,7 @@ class func_rotating:CBaseTrigger
|
|||
|
||||
void(void) func_rotating;
|
||||
virtual void(void) Respawn;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) Rotate;
|
||||
virtual void(void) Blocked;
|
||||
virtual void(void) SetMovementDirection;
|
||||
|
@ -66,7 +66,7 @@ func_rotating::Rotate(void)
|
|||
|
||||
/* TODO: Handle state */
|
||||
void
|
||||
func_rotating::Trigger(int state)
|
||||
func_rotating::Trigger(entity act, int state)
|
||||
{
|
||||
if (vlen(avelocity)) {
|
||||
avelocity = [0,0,0];
|
||||
|
|
|
@ -31,7 +31,7 @@ class func_tracktrain:CBaseTrigger
|
|||
virtual void(void) Find;
|
||||
virtual void(void) NextPath;
|
||||
virtual void(void) GoToTarget;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) Respawn;
|
||||
};
|
||||
|
||||
|
@ -72,7 +72,7 @@ void func_tracktrain::NextPath(void)
|
|||
GoToTarget();
|
||||
}
|
||||
|
||||
void func_tracktrain::Trigger(int state)
|
||||
void func_tracktrain::Trigger(entity act, int state)
|
||||
{
|
||||
GoToTarget();
|
||||
}
|
||||
|
|
|
@ -83,7 +83,7 @@ class func_train:CBaseTrigger
|
|||
void(void) func_train;
|
||||
virtual void(void) NextPath;
|
||||
virtual void(void) GoToTarget;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) Respawn;
|
||||
virtual void(void) Blocked;
|
||||
};
|
||||
|
@ -154,7 +154,7 @@ func_train::NextPath(void)
|
|||
|
||||
/* fire the path_corners' target */
|
||||
if (eNode.m_strMessage) {
|
||||
eNode.Trigger(TRIG_TOGGLE);
|
||||
eNode.Trigger(this, TRIG_TOGGLE);
|
||||
}
|
||||
|
||||
/* stuff for the ears */
|
||||
|
@ -195,7 +195,7 @@ func_train::NextPath(void)
|
|||
|
||||
/* TODO: Handle state? */
|
||||
void
|
||||
func_train::Trigger(int state)
|
||||
func_train::Trigger(entity act, int state)
|
||||
{
|
||||
GoToTarget();
|
||||
}
|
||||
|
|
|
@ -24,11 +24,11 @@ On idTech 2 BSPs, it will change texture variants when triggered.
|
|||
class func_wall:CBaseTrigger
|
||||
{
|
||||
void(void) func_wall;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
};
|
||||
|
||||
void
|
||||
func_wall::Trigger(int state)
|
||||
func_wall::Trigger(entity act, int state)
|
||||
{
|
||||
switch (state) {
|
||||
case TRIG_OFF:
|
||||
|
|
|
@ -34,11 +34,11 @@ class func_wall_toggle:CBaseTrigger
|
|||
|
||||
void(void) func_wall_toggle;
|
||||
virtual void(void) Respawn;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
};
|
||||
|
||||
void
|
||||
func_wall_toggle::Trigger(int state)
|
||||
func_wall_toggle::Trigger(entity act, int state)
|
||||
{
|
||||
switch (state) {
|
||||
case TRIG_OFF:
|
||||
|
@ -71,7 +71,7 @@ func_wall_toggle::Respawn(void)
|
|||
m_oldmodelindex = modelindex;
|
||||
|
||||
if (spawnflags & FTW_STARTHIDDEN) {
|
||||
Trigger(TRIG_OFF);
|
||||
Trigger(this, TRIG_OFF);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -61,10 +61,10 @@ class game_text:CBaseTrigger
|
|||
|
||||
void(void) game_text;
|
||||
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
};
|
||||
|
||||
void game_text::Trigger(int state)
|
||||
void game_text::Trigger(entity act, int state)
|
||||
{
|
||||
WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET);
|
||||
WriteByte(MSG_MULTICAST, EV_TEXT);
|
||||
|
@ -88,7 +88,7 @@ void game_text::Trigger(int state)
|
|||
msg_entity = this;
|
||||
multicast(origin, MULTICAST_ALL);
|
||||
} else {
|
||||
msg_entity = eActivator;
|
||||
msg_entity = act;
|
||||
multicast(origin, MULTICAST_ONE_R);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,13 +35,13 @@ class infodecal:CBaseTrigger
|
|||
string m_strTexture;
|
||||
|
||||
void(void) infodecal;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) Respawn;
|
||||
};
|
||||
|
||||
/* TODO: Handle state? */
|
||||
void
|
||||
infodecal::Trigger(int state)
|
||||
infodecal::Trigger(entity act, int state)
|
||||
{
|
||||
decal new = spawn(decal);
|
||||
new.Place(origin, m_strTexture);
|
||||
|
@ -54,7 +54,7 @@ infodecal::Respawn(void)
|
|||
/* this will be invisible by default */
|
||||
if (!m_strTargetName) {
|
||||
/* spawn automatically, remove self */
|
||||
Trigger(TRIG_TOGGLE);
|
||||
Trigger(this, TRIG_TOGGLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -60,11 +60,11 @@ class light:CBaseTrigger
|
|||
string m_strPattern;
|
||||
|
||||
void(void) light;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) Respawn;
|
||||
};
|
||||
|
||||
void light::Trigger(int state)
|
||||
void light::Trigger(entity act, int state)
|
||||
{
|
||||
switch (state) {
|
||||
case TRIG_OFF:
|
||||
|
|
|
@ -49,31 +49,23 @@ class monstermaker:CBaseTrigger
|
|||
int m_iTotalMonsters;
|
||||
float m_flDelay;
|
||||
int m_iMaxChildren;
|
||||
int m_iEnabled;
|
||||
string m_strChildName;
|
||||
|
||||
void(void) monstermaker;
|
||||
|
||||
virtual void(void) Spawner;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) Respawn;
|
||||
virtual void(void) TurnOn;
|
||||
virtual void(void) TurnOff;
|
||||
virtual int(void) GetValue;
|
||||
};
|
||||
|
||||
int
|
||||
monstermaker::GetValue(void)
|
||||
{
|
||||
return m_iEnabled;
|
||||
}
|
||||
|
||||
void
|
||||
monstermaker::TurnOff(void)
|
||||
{
|
||||
think = __NULL__;
|
||||
nextthink = 0;
|
||||
m_iEnabled = 0;
|
||||
m_iValue = 0;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -81,7 +73,7 @@ monstermaker::TurnOn(void)
|
|||
{
|
||||
think = Spawner;
|
||||
nextthink = time + m_flDelay;
|
||||
m_iEnabled = 1;
|
||||
m_iValue = 1;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -142,7 +134,7 @@ monstermaker::Spawner(void)
|
|||
m_iMonsterSpawned++;
|
||||
|
||||
if (m_strTarget) {
|
||||
UseTargets(TRIG_TOGGLE);
|
||||
UseTargets(this, TRIG_TOGGLE);
|
||||
}
|
||||
|
||||
/* inherit the monsterclip flag */
|
||||
|
@ -170,7 +162,7 @@ monstermaker::Spawner(void)
|
|||
}
|
||||
|
||||
void
|
||||
monstermaker::Trigger(int state)
|
||||
monstermaker::Trigger(entity act, int state)
|
||||
{
|
||||
switch (state) {
|
||||
case TRIG_OFF:
|
||||
|
@ -180,7 +172,7 @@ monstermaker::Trigger(int state)
|
|||
TurnOn();
|
||||
break;
|
||||
default:
|
||||
if (m_iEnabled)
|
||||
if (m_iValue)
|
||||
TurnOff();
|
||||
else
|
||||
TurnOn();
|
||||
|
|
|
@ -29,16 +29,10 @@ again before it has finished triggering it's previous list of entities.
|
|||
|
||||
class multi_manager_sub:CBaseTrigger
|
||||
{
|
||||
entity m_eActivator;
|
||||
int m_iValue;
|
||||
virtual int(void) GetValue;
|
||||
};
|
||||
|
||||
int
|
||||
multi_manager_sub::GetValue(void)
|
||||
{
|
||||
return m_iValue;
|
||||
}
|
||||
|
||||
class multi_manager:CBaseTrigger
|
||||
{
|
||||
multi_manager_sub m_eTriggers[16];
|
||||
|
@ -46,18 +40,12 @@ class multi_manager:CBaseTrigger
|
|||
int m_iBusy;
|
||||
int m_iValue;
|
||||
|
||||
virtual void(int) Trigger;
|
||||
virtual int(void) GetValue;
|
||||
virtual void(entity, int) Trigger;
|
||||
};
|
||||
|
||||
int
|
||||
multi_manager::GetValue(void)
|
||||
{
|
||||
return m_iValue;
|
||||
}
|
||||
|
||||
void
|
||||
multi_manager::Trigger(int state)
|
||||
multi_manager::Trigger(entity act, int state)
|
||||
{
|
||||
static void mm_enttrigger (void) {
|
||||
multi_manager_sub wow = (multi_manager_sub)self;
|
||||
|
@ -67,7 +55,7 @@ multi_manager::Trigger(int state)
|
|||
dprint(sprintf("^2%s::^3Trigger^7: %s (%s)\n",
|
||||
this.classname, wow.m_strTarget, eFind.classname));
|
||||
|
||||
CBaseTrigger::UseTargets(TRIG_TOGGLE);
|
||||
CBaseTrigger::UseTargets(wow.m_eActivator, TRIG_TOGGLE);
|
||||
}
|
||||
|
||||
m_iValue = TRUE;
|
||||
|
@ -95,6 +83,7 @@ multi_manager::Trigger(int state)
|
|||
m_eTriggers[b].think = mm_enttrigger;
|
||||
m_eTriggers[b].nextthink = time + stof(argv(i+1));
|
||||
m_eTriggers[b].m_iValue = TRUE;
|
||||
m_eTriggers[b].m_eActivator = act;
|
||||
b++;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ class multisource:CBaseTrigger
|
|||
|
||||
virtual void(void) Respawn;
|
||||
virtual int(void) QueryTargets;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
};
|
||||
|
||||
int
|
||||
|
@ -63,7 +63,7 @@ multisource::QueryTargets(void)
|
|||
}
|
||||
|
||||
void
|
||||
multisource::Trigger(int unused)
|
||||
multisource::Trigger(entity act, int unused)
|
||||
{
|
||||
if (QueryTargets() == FALSE) {
|
||||
dprint(sprintf("[^1MULTISOURCE^7] %s is inactive.\n", m_strTargetName));
|
||||
|
@ -73,7 +73,7 @@ multisource::Trigger(int unused)
|
|||
|
||||
dprint(sprintf("[^1MULTISOURCE^7] %s is now active.\n", m_strTargetName));
|
||||
m_iValue = TRUE;
|
||||
CBaseTrigger::UseTargets(TRIG_TOGGLE);
|
||||
CBaseTrigger::UseTargets(act, TRIG_TOGGLE);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -53,12 +53,12 @@ class path_corner:CBaseTrigger
|
|||
float m_flWait;
|
||||
|
||||
void(void) path_corner;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) Respawn;
|
||||
};
|
||||
|
||||
void
|
||||
path_corner::Trigger(int state)
|
||||
path_corner::Trigger(entity act, int state)
|
||||
{
|
||||
entity a;
|
||||
|
||||
|
@ -68,7 +68,7 @@ path_corner::Trigger(int state)
|
|||
|
||||
for (a = world; (a = find(a, CBaseTrigger::m_strTargetName, m_strMessage));) {
|
||||
CBaseTrigger trigger = (CBaseTrigger)a;
|
||||
trigger.Trigger(state);
|
||||
trigger.Trigger(act, state);
|
||||
m_iFired = TRUE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ class player_loadsaved:CBaseTrigger
|
|||
float m_flFadeHold;
|
||||
|
||||
void(void) player_loadsaved;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) ReloadSave;
|
||||
};
|
||||
|
||||
|
@ -47,7 +47,7 @@ player_loadsaved::ReloadSave(void)
|
|||
}
|
||||
|
||||
void
|
||||
player_loadsaved::Trigger(int unused)
|
||||
player_loadsaved::Trigger(entity act, int unused)
|
||||
{
|
||||
WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET);
|
||||
WriteByte(MSG_MULTICAST, EV_FADE);
|
||||
|
@ -60,7 +60,7 @@ player_loadsaved::Trigger(int unused)
|
|||
WriteByte(MSG_MULTICAST, 0);
|
||||
msg_entity = world;
|
||||
multicast([0,0,0], MULTICAST_ALL);
|
||||
env_message_single(eActivator, m_strMessage);
|
||||
env_message_single(act, m_strMessage);
|
||||
|
||||
think = ReloadSave;
|
||||
nextthink = time + m_flLoadTime;
|
||||
|
|
|
@ -23,19 +23,19 @@ Strips the activator of all of its weapons.
|
|||
class player_weaponstrip:CBaseTrigger
|
||||
{
|
||||
void(void) player_weaponstrip;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
};
|
||||
|
||||
void
|
||||
player_weaponstrip::Trigger(int unused)
|
||||
player_weaponstrip::Trigger(entity act, int unused)
|
||||
{
|
||||
base_player pl;
|
||||
|
||||
if (!(eActivator.flags & FL_CLIENT)) {
|
||||
if (!(act.flags & FL_CLIENT)) {
|
||||
return;
|
||||
}
|
||||
|
||||
pl = (base_player)eActivator;
|
||||
pl = (base_player)act;
|
||||
|
||||
for (int i = 1; i < Weapon_GetCount(); i++) {
|
||||
pl.g_items &= ~Weapon_GetBitID(i);
|
||||
|
|
|
@ -38,11 +38,11 @@ class scripted_sentence:CBaseTrigger
|
|||
float m_flDuration;
|
||||
|
||||
void(void) scripted_sentence;
|
||||
virtual void(int state) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
};
|
||||
|
||||
void
|
||||
scripted_sentence::Trigger(int unused)
|
||||
scripted_sentence::Trigger(entity act, int unused)
|
||||
{
|
||||
entity speaker = find(world, CBaseEntity::m_strTargetName, m_strSpeaker);
|
||||
|
||||
|
|
|
@ -92,13 +92,13 @@ class scripted_sequence:CBaseTrigger
|
|||
int m_iMove;
|
||||
|
||||
void(void) scripted_sequence;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) InitIdle;
|
||||
virtual void(void) Respawn;
|
||||
};
|
||||
|
||||
void
|
||||
scripted_sequence::Trigger(int unused)
|
||||
scripted_sequence::Trigger(entity act, int unused)
|
||||
{
|
||||
CBaseMonster f;
|
||||
float duration;
|
||||
|
|
|
@ -41,7 +41,7 @@ trigger_auto::Processing(void)
|
|||
// This is weird, because ents may not be spawned yet.
|
||||
// However, Half-Life doesn't care about this, either.
|
||||
// So why should we?
|
||||
CBaseTrigger::UseTargets_Delay(m_iTriggerState, m_flDelay);
|
||||
CBaseTrigger::UseTargets_Delay(this, m_iTriggerState, m_flDelay);
|
||||
|
||||
if (spawnflags & 1) {
|
||||
dprint(sprintf("^2trigger_auto::^3think^7: %s triggerer removed self\n", m_strTarget));
|
||||
|
|
|
@ -33,8 +33,6 @@ class trigger_autosave:CBaseTrigger
|
|||
void
|
||||
trigger_autosave::touch(void)
|
||||
{
|
||||
eActivator = other;
|
||||
|
||||
/* saved text */
|
||||
WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET);
|
||||
WriteByte(MSG_MULTICAST, EV_MESSAGE);
|
||||
|
@ -48,13 +46,13 @@ trigger_autosave::touch(void)
|
|||
dprint(sprintf("^2trigger_autosave::^3touch^7: %s called autosave\n",
|
||||
other.netname));
|
||||
|
||||
//localcmd("save autosave\n");
|
||||
//readcmd("save autosave\n");
|
||||
Hide();
|
||||
|
||||
if (m_flDelay > 0) {
|
||||
CBaseTrigger::UseTargets_Delay(TRIG_TOGGLE, m_flDelay);
|
||||
CBaseTrigger::UseTargets_Delay(other, TRIG_TOGGLE, m_flDelay);
|
||||
} else {
|
||||
CBaseTrigger::UseTargets(TRIG_TOGGLE);
|
||||
CBaseTrigger::UseTargets(other, TRIG_TOGGLE);
|
||||
}
|
||||
solid = SOLID_NOT;
|
||||
}
|
||||
|
|
|
@ -30,16 +30,16 @@ class trigger_camera:CBaseTrigger
|
|||
float m_flWait;
|
||||
|
||||
void(void) trigger_camera;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
};
|
||||
|
||||
void
|
||||
trigger_camera::Trigger(int state)
|
||||
trigger_camera::Trigger(entity act, int state)
|
||||
{
|
||||
if (m_flDelay > 0) {
|
||||
CBaseTrigger::UseTargets_Delay(TRIG_TOGGLE, m_flDelay);
|
||||
CBaseTrigger::UseTargets_Delay(act, TRIG_TOGGLE, m_flDelay);
|
||||
} else {
|
||||
CBaseTrigger::UseTargets(TRIG_TOGGLE);
|
||||
CBaseTrigger::UseTargets(act, TRIG_TOGGLE);
|
||||
}
|
||||
|
||||
if (m_strMoveTo) {
|
||||
|
@ -49,7 +49,7 @@ trigger_camera::Trigger(int state)
|
|||
}
|
||||
}
|
||||
|
||||
Client_TriggerCamera(eActivator, origin, angles, m_flWait);
|
||||
Client_TriggerCamera(act, origin, angles, m_flWait);
|
||||
//eActivator.view2 = this;
|
||||
|
||||
dprint(sprintf("^2trigger_camera::^3Trigger^7: Camera at %v, %v, for %f sec/s requested\n",
|
||||
|
|
|
@ -26,15 +26,15 @@ class trigger_cdaudio:CBaseTrigger
|
|||
int m_iCDTrack;
|
||||
void(void) trigger_cdaudio;
|
||||
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) Respawn;
|
||||
virtual void(void) touch;
|
||||
};
|
||||
|
||||
void
|
||||
trigger_cdaudio::Trigger(int unused)
|
||||
trigger_cdaudio::Trigger(entity act, int unused)
|
||||
{
|
||||
if (!(other.flags & FL_CLIENT)) {
|
||||
if (!(act.flags & FL_CLIENT)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -53,7 +53,7 @@ trigger_cdaudio::Trigger(int unused)
|
|||
void
|
||||
trigger_cdaudio::touch(void)
|
||||
{
|
||||
Trigger(TRIG_TOGGLE);
|
||||
Trigger(other, TRIG_TOGGLE);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -53,7 +53,7 @@ class trigger_changelevel:CBaseTrigger
|
|||
|
||||
void(void) trigger_changelevel;
|
||||
virtual void(void) Change;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) TouchTrigger;
|
||||
virtual void(void) Respawn;
|
||||
virtual int(entity, entity) IsInside;
|
||||
|
@ -97,7 +97,7 @@ trigger_changelevel::Change(void)
|
|||
}
|
||||
|
||||
void
|
||||
trigger_changelevel::Trigger(int unused)
|
||||
trigger_changelevel::Trigger(entity act, int unused)
|
||||
{
|
||||
/* this means a delayed trigger is active */
|
||||
if (nextthink > 0.0f)
|
||||
|
@ -122,8 +122,7 @@ trigger_changelevel::Trigger(int unused)
|
|||
void
|
||||
trigger_changelevel::TouchTrigger(void)
|
||||
{
|
||||
eActivator = other;
|
||||
Trigger(TRIG_TOGGLE);
|
||||
Trigger(other, TRIG_TOGGLE);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -45,13 +45,13 @@ class trigger_hurt:CBaseTrigger
|
|||
float m_flDelay;
|
||||
void(void) trigger_hurt;
|
||||
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) touch;
|
||||
virtual void(void) Respawn;
|
||||
};
|
||||
|
||||
void
|
||||
trigger_hurt::Trigger(int state)
|
||||
trigger_hurt::Trigger(entity act, int state)
|
||||
{
|
||||
switch (state) {
|
||||
case TRIG_OFF:
|
||||
|
@ -63,9 +63,9 @@ trigger_hurt::Trigger(int state)
|
|||
break;
|
||||
default:
|
||||
if (solid == SOLID_NOT)
|
||||
Trigger(TRIG_ON);
|
||||
Trigger(act, TRIG_ON);
|
||||
else
|
||||
Trigger(TRIG_OFF);
|
||||
Trigger(act, TRIG_OFF);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -87,17 +87,17 @@ trigger_hurt::touch(void)
|
|||
if (other.flags & FL_CLIENT) {
|
||||
eActivator = other;
|
||||
if (m_flDelay > 0) {
|
||||
CBaseTrigger::UseTargets_Delay(TRIG_TOGGLE, m_flDelay);
|
||||
CBaseTrigger::UseTargets_Delay(other, TRIG_TOGGLE, m_flDelay);
|
||||
} else {
|
||||
CBaseTrigger::UseTargets(TRIG_TOGGLE);
|
||||
CBaseTrigger::UseTargets(other, TRIG_TOGGLE);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
eActivator = other;
|
||||
if (m_flDelay > 0) {
|
||||
CBaseTrigger::UseTargets_Delay(TRIG_TOGGLE, m_flDelay);
|
||||
CBaseTrigger::UseTargets_Delay(other, TRIG_TOGGLE, m_flDelay);
|
||||
} else {
|
||||
CBaseTrigger::UseTargets(TRIG_TOGGLE);
|
||||
CBaseTrigger::UseTargets(other, TRIG_TOGGLE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -109,7 +109,7 @@ trigger_hurt::touch(void)
|
|||
|
||||
/* shut it down if used once */
|
||||
if (spawnflags & SF_HURT_ONCE) {
|
||||
Trigger(TRIG_OFF);
|
||||
Trigger(other, TRIG_OFF);
|
||||
}
|
||||
|
||||
m_flNextTrigger = time + m_flNextDmg;
|
||||
|
@ -122,9 +122,9 @@ trigger_hurt::Respawn(void)
|
|||
m_flNextTrigger = 0.0f;
|
||||
|
||||
if (spawnflags & SF_HURT_OFF) {
|
||||
Trigger(TRIG_OFF);
|
||||
Trigger(this, TRIG_OFF);
|
||||
} else {
|
||||
Trigger(TRIG_ON);
|
||||
Trigger(this, TRIG_ON);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -89,9 +89,9 @@ trigger_look::Touch(void)
|
|||
|
||||
/* trigger and disable entity, for now */
|
||||
if (m_flDelay > 0) {
|
||||
UseTargets_Delay(TRIG_TOGGLE, m_flDelay);
|
||||
UseTargets_Delay(other, TRIG_TOGGLE, m_flDelay);
|
||||
} else {
|
||||
UseTargets(TRIG_TOGGLE);
|
||||
UseTargets(other, TRIG_TOGGLE);
|
||||
}
|
||||
solid = SOLID_NOT;
|
||||
}
|
||||
|
|
|
@ -46,8 +46,6 @@ class trigger_multiple:CBaseTrigger
|
|||
void
|
||||
trigger_multiple::touch(void)
|
||||
{
|
||||
eActivator = other;
|
||||
|
||||
if (GetMaster() == FALSE)
|
||||
return;
|
||||
|
||||
|
@ -62,9 +60,9 @@ trigger_multiple::touch(void)
|
|||
}
|
||||
|
||||
if (m_flDelay > 0) {
|
||||
UseTargets_Delay(TRIG_TOGGLE, m_flDelay);
|
||||
UseTargets_Delay(other, TRIG_TOGGLE, m_flDelay);
|
||||
} else {
|
||||
UseTargets(TRIG_TOGGLE);
|
||||
UseTargets(other, TRIG_TOGGLE);
|
||||
}
|
||||
|
||||
/* This is effectively a trigger_once...*/
|
||||
|
|
|
@ -51,14 +51,13 @@ trigger_once::touch(void)
|
|||
if (GetMaster() == FALSE)
|
||||
return;
|
||||
|
||||
eActivator = other;
|
||||
solid = SOLID_NOT; /* make inactive */
|
||||
m_iValue = 1;
|
||||
|
||||
if (m_flDelay > 0) {
|
||||
CBaseTrigger::UseTargets_Delay(TRIG_TOGGLE, m_flDelay);
|
||||
CBaseTrigger::UseTargets_Delay(other, TRIG_TOGGLE, m_flDelay);
|
||||
} else {
|
||||
CBaseTrigger::UseTargets(TRIG_TOGGLE);
|
||||
CBaseTrigger::UseTargets(other, TRIG_TOGGLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ class trigger_push:CBaseTrigger
|
|||
|
||||
virtual void(void) touch;
|
||||
virtual void(void) Respawn;
|
||||
virtual void(int state) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) SetMovementDirection;
|
||||
};
|
||||
|
||||
|
@ -60,7 +60,7 @@ trigger_push::SetMovementDirection(void)
|
|||
}
|
||||
|
||||
void
|
||||
trigger_push::Trigger(int state)
|
||||
trigger_push::Trigger(entity act, int state)
|
||||
{
|
||||
switch (state) {
|
||||
case TRIG_OFF:
|
||||
|
|
|
@ -39,12 +39,12 @@ class trigger_relay:CBaseTrigger
|
|||
int m_iEnabled;
|
||||
|
||||
void(void) trigger_relay;
|
||||
virtual void(int) Trigger;
|
||||
virtual void(entity, int) Trigger;
|
||||
virtual void(void) Respawn;
|
||||
};
|
||||
|
||||
void
|
||||
trigger_relay::Trigger(int state)
|
||||
trigger_relay::Trigger(entity act, int state)
|
||||
{
|
||||
if (m_iEnabled == FALSE)
|
||||
return;
|
||||
|
@ -52,9 +52,9 @@ trigger_relay::Trigger(int state)
|
|||
m_iEnabled = FALSE;
|
||||
|
||||
if (m_flDelay > 0) {
|
||||
CBaseTrigger::UseTargets_Delay(m_iTriggerState, m_flDelay);
|
||||
CBaseTrigger::UseTargets_Delay(act, m_iTriggerState, m_flDelay);
|
||||
} else {
|
||||
CBaseTrigger::UseTargets(m_iTriggerState);
|
||||
CBaseTrigger::UseTargets(act, m_iTriggerState);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -94,7 +94,7 @@ item_c4::Logic(void)
|
|||
for (entity e = world; (e = find(e, ::classname, "func_bomb_target"));) {
|
||||
CBaseTrigger trigger = (CBaseTrigger)e;
|
||||
if (trigger.Trigger != __NULL__) {
|
||||
trigger.Trigger(TRIG_TOGGLE);
|
||||
trigger.Trigger(this, TRIG_TOGGLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ void item_suit::touch(void)
|
|||
sound(other, CHAN_ITEM, "items/tr_kevlar.wav", 1, ATTN_NORM);
|
||||
pl.g_items |= ITEM_SUIT;
|
||||
|
||||
CBaseTrigger::UseTargets(TRIG_TOGGLE);
|
||||
CBaseTrigger::UseTargets(other, TRIG_TOGGLE);
|
||||
|
||||
if (cvar("sv_playerslots") == 1) {
|
||||
remove(self);
|
||||
|
|
|
@ -47,7 +47,7 @@ void item_longjump::touch(void)
|
|||
sound(other, CHAN_VOICE, "fvox/powermove_on.wav", 1, ATTN_NORM);
|
||||
pl.g_items |= ITEM_LONGJUMP;
|
||||
|
||||
CBaseTrigger::UseTargets(TRIG_TOGGLE);
|
||||
CBaseTrigger::UseTargets(other, TRIG_TOGGLE);
|
||||
|
||||
if (real_owner || cvar("sv_playerslots") == 1) {
|
||||
remove(self);
|
||||
|
|
|
@ -47,7 +47,7 @@ void item_suit::touch(void)
|
|||
pl.g_items |= ITEM_SUIT;
|
||||
m_iValue = TRUE;
|
||||
|
||||
CBaseTrigger::UseTargets(TRIG_TOGGLE);
|
||||
CBaseTrigger::UseTargets(other, TRIG_TOGGLE);
|
||||
|
||||
if (real_owner || cvar("sv_playerslots") == 1) {
|
||||
remove(self);
|
||||
|
|
|
@ -28,7 +28,7 @@ void item_pickup::touch(void)
|
|||
Logging_Pickup(other, this, __NULL__);
|
||||
Sound_Play(other, CHAN_ITEM, "weapon.pickup");
|
||||
|
||||
CBaseTrigger::UseTargets(TRIG_TOGGLE);
|
||||
CBaseTrigger::UseTargets(other, TRIG_TOGGLE);
|
||||
|
||||
if (real_owner || m_iWasDropped == 1 || cvar("sv_playerslots") == 1) {
|
||||
remove(self);
|
||||
|
|
Loading…
Reference in a new issue