Polish triggers, add initial monstermaker guff
This commit is contained in:
parent
1670f8f783
commit
10fc61c84e
26 changed files with 142 additions and 96 deletions
|
@ -16,7 +16,6 @@ client/env_laser.cpp
|
|||
client/func_lod.cpp
|
||||
client/func_dustmotes.cpp
|
||||
client/sky_camera.cpp
|
||||
server/func_ladder.cpp
|
||||
server/trigger_gravity.cpp
|
||||
client/info_notnull.cpp
|
||||
client/point_message.cpp
|
||||
|
|
|
@ -69,7 +69,6 @@ CBaseEntity::RenderFXPass(void)
|
|||
effects = EF_FULLBRIGHT;
|
||||
break;
|
||||
case RM_SOLID:
|
||||
alpha = 1.0f;
|
||||
break;
|
||||
case RM_ADDITIVE:
|
||||
effects = EF_ADDITIVE;
|
||||
|
@ -110,6 +109,10 @@ CBaseEntity::RenderFXPass(void)
|
|||
float
|
||||
CBaseEntity::predraw(void)
|
||||
{
|
||||
if (!modelindex) {
|
||||
return PREDRAW_NEXT;
|
||||
}
|
||||
|
||||
#ifdef GS_RENDERFX
|
||||
RenderFXPass();
|
||||
#endif
|
||||
|
@ -137,7 +140,7 @@ CBaseEntity::ProcessWordQue(void)
|
|||
}
|
||||
|
||||
sound(this, CHAN_VOICE, m_pSentenceQue[m_iSentencePos].m_strSnd, 1.0, ATTN_NORM, 100, SOUNDFLAG_FOLLOW);
|
||||
dprint(sprintf("^2CBaseEntity::ProcessWordQue^7: Speaking %s\n", m_pSentenceQue[m_iSentencePos].m_strSnd));
|
||||
dprint(sprintf("^2CBaseEntity::^3ProcessWordQue^7: Speaking %s\n", m_pSentenceQue[m_iSentencePos].m_strSnd));
|
||||
m_iSentencePos++;
|
||||
|
||||
if (m_iSentenceCount == m_iSentenceCount) {
|
||||
|
@ -347,6 +350,6 @@ CBaseEntity_ParseSentence(void)
|
|||
targ = (CBaseEntity)ent;
|
||||
targ.Sentence(sentence);
|
||||
} else {
|
||||
print(sprintf("^1CBaseNPC_ParseSentence^7: Entity %d not in PVS\n", e));
|
||||
print(sprintf("^3CBaseNPC_ParseSentence^7: Entity %d not in PVS\n", e));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -90,20 +90,20 @@ float ambient_generic::SendEntity(entity ePEnt, float fChanged)
|
|||
void ambient_generic::UseNormal(void)
|
||||
{
|
||||
sound(this, CHAN_VOICE, m_strActivePath, m_flVolume, m_flRadius, m_flPitch);
|
||||
print( sprintf( "%s::UseNormal: Play `%s`\n",
|
||||
this.classname, m_strActivePath ) );
|
||||
dprint( sprintf( "^2ambient_generic::^3UseNormal^7: %s plays `%s`\n",
|
||||
m_strTarget, m_strActivePath ) );
|
||||
}
|
||||
|
||||
void ambient_generic::UseLoop(void)
|
||||
{
|
||||
if (m_iToggleSwitch == TRUE) {
|
||||
dprint( sprintf( "%s::UseLoop: Stop `%s`\n",
|
||||
this.classname, m_strActivePath ) );
|
||||
dprint( sprintf( "^2ambient_generic::^3UseLoop^7: %s stops `%s`\n",
|
||||
m_strTarget, m_strActivePath ) );
|
||||
m_strActivePath = "common/null.wav";
|
||||
} else {
|
||||
m_strActivePath = m_strSoundPath;
|
||||
dprint( sprintf( "%s::UseLoop: Play `%s`\n",
|
||||
this.classname, m_strActivePath ) );
|
||||
dprint( sprintf( "^2ambient_generic::^3UseLoop^7: %s plays `%s`\n",
|
||||
m_strTarget, m_strActivePath ) );
|
||||
}
|
||||
|
||||
m_iToggleSwitch = 1 - m_iToggleSwitch;
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
vector dest;
|
||||
|
@ -159,14 +158,14 @@ void CBaseMonster::FreeState(void)
|
|||
CBaseTrigger trigger = 0;
|
||||
trigger = (CBaseTrigger)find(trigger, CBaseTrigger::m_strTargetName, m_strRouteEnded);
|
||||
if (!trigger) {
|
||||
dprint(sprintf("^1CBaseMonster::FreeState^7: %s doesn't exist. Won't trigger\n", m_strRouteEnded));
|
||||
dprint(sprintf("^1CBaseMonster::^3FreeState^7: %s doesn't exist. Won't trigger\n", m_strRouteEnded));
|
||||
}
|
||||
|
||||
if (trigger.Trigger != __NULL__) {
|
||||
dprint(sprintf("^2CBaseMonster::FreeState^7: %s triggered %f\n", m_strRouteEnded, time));
|
||||
dprint(sprintf("^2CBaseMonster::^3FreeState^7: %s triggered %f\n", m_strRouteEnded, time));
|
||||
trigger.Trigger();
|
||||
} else {
|
||||
dprint(sprintf("^1CBaseMonster::FreeState^7: %s not a valid trigger\n", m_strRouteEnded));
|
||||
dprint(sprintf("^1CBaseMonster::^3FreeState^7: %s not a valid trigger\n", m_strRouteEnded));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -196,14 +195,14 @@ void CBaseMonster::CheckRoute(void)
|
|||
flDist = floor( vlen( evenpos - origin ) );
|
||||
|
||||
if ( flDist < 8 ) {
|
||||
dprint(sprintf("^2CBaseMonster::CheckRoute^7: %s reached node\n", this.m_strTargetName));
|
||||
dprint(sprintf("^2CBaseMonster::^3CheckRoute^7: %s reached node\n", this.m_strTargetName));
|
||||
m_iCurNode--;
|
||||
velocity = [0,0,0]; /* clamp friction */
|
||||
}
|
||||
|
||||
if (m_iCurNode < -1) {
|
||||
ClearRoute();
|
||||
dprint(sprintf("^2CBaseMonster::CheckRoute^7: %s reached end\n", this.m_strTargetName));
|
||||
dprint(sprintf("^2CBaseMonster::^3CheckRoute^7: %s reached end\n", this.m_strTargetName));
|
||||
|
||||
/* mark that we've ended a sequence, if we're in one and que anim */
|
||||
if (m_iSequenceState == SEQUENCESTATE_ACTIVE) {
|
||||
|
@ -212,12 +211,12 @@ void CBaseMonster::CheckRoute(void)
|
|||
m_iSequenceState = SEQUENCESTATE_ENDING;
|
||||
think = FreeState;
|
||||
nextthink = time + duration;
|
||||
dprint(sprintf("^2CBaseMonster::CheckRoute^7: %s overriding anim for %f seconds (modelindex %d, frame %d)\n", this.m_strTargetName, duration, modelindex, m_flSequenceEnd));
|
||||
dprint(sprintf("^2CBaseMonster::^3CheckRoute^7: %s overriding anim for %f seconds (modelindex %d, frame %d)\n", this.m_strTargetName, duration, modelindex, m_flSequenceEnd));
|
||||
} else {
|
||||
/* we still need to trigger targets */
|
||||
think = FreeState;
|
||||
nextthink = time;
|
||||
dprint(sprintf("^2CBaseMonster::CheckRoute^7: %s has no anim, finished sequence.\n", this.m_strTargetName));
|
||||
dprint(sprintf("^2CBaseMonster::^3CheckRoute^7: %s has no anim, finished sequence.\n", this.m_strTargetName));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -265,7 +264,7 @@ void CBaseMonster::NewRoute(vector destination)
|
|||
/* we can walk there directly */
|
||||
tracebox(p.origin, p.mins, p.maxs, dest, TRUE, this);
|
||||
if (trace_fraction == 1.0) {
|
||||
dprint("^2CBaseMonster::NewRoute^7: Walking directly to last node\n");
|
||||
dprint("^2CBaseMonster::^3NewRoute^7: Walking directly to last node\n");
|
||||
p.m_iCurNode = -1;
|
||||
}
|
||||
}
|
||||
|
@ -391,9 +390,11 @@ void CBaseMonster::Respawn(void)
|
|||
setmodel(this, m_oldModel);
|
||||
setsize(this, base_mins, base_maxs);
|
||||
setorigin(this, m_oldOrigin);
|
||||
droptofloor();
|
||||
}
|
||||
|
||||
void CBaseMonster::CBaseMonster(void)
|
||||
{
|
||||
CBaseEntity::CBaseEntity();
|
||||
Respawn();
|
||||
}
|
||||
|
|
|
@ -117,10 +117,11 @@ void CBaseTrigger :: InitPointTrigger ( void )
|
|||
void CBaseTrigger :: InitBrushTrigger ( void )
|
||||
{
|
||||
precache_model( m_oldModel );
|
||||
setmodel( this, m_oldModel );
|
||||
movetype = MOVETYPE_NONE;
|
||||
solid = SOLID_TRIGGER;
|
||||
setmodel( this, m_oldModel );
|
||||
#ifdef GS_DEVELOPER
|
||||
m_iRenderMode = RM_SOLID;
|
||||
m_flRenderAmt = 0.25f;
|
||||
#else
|
||||
modelindex = 0;
|
||||
|
|
|
@ -74,7 +74,7 @@ void env_laser::think(void)
|
|||
angles = t.origin;
|
||||
|
||||
if (!t) {
|
||||
print(sprintf("^1env_laser::think^7: %s has no valid target. Aborting\n", m_strTargetName));
|
||||
print(sprintf("^1env_laser::^3think^7: %s has no valid target. Aborting\n", m_strTargetName));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -281,10 +281,10 @@ void func_button::Blocked(void)
|
|||
|
||||
void func_button::SetMovementDirection(void)
|
||||
{
|
||||
if (m_oldAngle == '0 -1 0') {
|
||||
m_vecMoveDir = '0 0 1';
|
||||
} else if (m_oldAngle == '0 -2 0') {
|
||||
m_vecMoveDir = '0 0 -1';
|
||||
if (m_oldAngle == [0,-1,0]) {
|
||||
m_vecMoveDir = [0,0,1];
|
||||
} else if (m_oldAngle == [0,-2,0]) {
|
||||
m_vecMoveDir = [0,0,-1];
|
||||
} else {
|
||||
makevectors(m_oldAngle);
|
||||
m_vecMoveDir = v_forward;
|
||||
|
|
|
@ -284,7 +284,7 @@ void func_door_rotating::RotToDest(vector vDestAngle, void() func)
|
|||
float flTravelLength, flTravelTime;
|
||||
|
||||
if (!m_flSpeed) {
|
||||
dprint(sprintf("^1func_door_rotating::RotToDest^7: No speed defined for %s!", m_strTargetName));
|
||||
dprint(sprintf("^1func_door_rotating::^3RotToDest^7: No speed defined for %s!", m_strTargetName));
|
||||
func_door_rotating::Respawn();
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -60,7 +60,7 @@ void func_guntarget::Move(void)
|
|||
node = (path_corner)find(world, CBaseTrigger::m_strTargetName, m_strTarget);
|
||||
|
||||
if (!node) {
|
||||
dprint(sprintf("^1func_guntarget::Move^7: Path node for %s not found!\n", m_strTargetName));
|
||||
dprint(sprintf("^1func_guntarget::^3Move^7: Path node for %s not found!\n", m_strTargetName));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -86,7 +86,7 @@ void func_guntarget::NextPath(void)
|
|||
{
|
||||
path_corner node;
|
||||
|
||||
print(sprintf("^2func_guntarget^7: Talking to current target %s... ", m_strTarget));
|
||||
print(sprintf("^2func_guntarget::^3NextPath^7: Talking to current target %s... ", m_strTarget));
|
||||
node = (path_corner)find(world, path_corner::m_strTargetName, m_strTarget);
|
||||
|
||||
if (!node) {
|
||||
|
|
|
@ -30,35 +30,31 @@ string g_laddersnd[] = {
|
|||
class func_ladder:CBaseEntity
|
||||
{
|
||||
void() func_ladder;
|
||||
#ifdef CSQC
|
||||
virtual void() Initialized;
|
||||
#endif
|
||||
|
||||
virtual void() Respawn;
|
||||
};
|
||||
|
||||
|
||||
void func_ladder::Respawn(void)
|
||||
{
|
||||
setmodel( this, m_oldModel );
|
||||
movetype = MOVETYPE_NONE;
|
||||
skin = CONTENT_LADDER;
|
||||
solid = SOLID_BSP;
|
||||
|
||||
#ifdef GS_DEVELOPER
|
||||
m_iRenderMode = RM_SOLID;
|
||||
m_flRenderAmt = 0.25f;
|
||||
#else
|
||||
m_iRenderMode = RM_SOLID;
|
||||
m_flRenderAmt = 0.0f;
|
||||
#endif
|
||||
}
|
||||
|
||||
void func_ladder :: func_ladder ( void )
|
||||
{
|
||||
#ifdef SSQC
|
||||
setmodel( this, model );
|
||||
setmodel( this, m_oldModel );
|
||||
movetype = MOVETYPE_NONE;
|
||||
skin = CONTENT_LADDER;
|
||||
solid = SOLID_BSP;
|
||||
|
||||
#ifdef GS_DEVELOPER
|
||||
m_flRenderAmt = 0.5f;
|
||||
#else
|
||||
m_flRenderAmt = 0.0001f;
|
||||
#endif
|
||||
#else
|
||||
Init();
|
||||
setorigin(this, origin);
|
||||
#endif
|
||||
}
|
||||
|
||||
void func_ladder :: Initialized (void)
|
||||
{
|
||||
setmodel( this, model );
|
||||
movetype = MOVETYPE_NONE;
|
||||
skin = CONTENT_LADDER;
|
||||
solid = SOLID_BSP;
|
||||
setorigin(this, origin);
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ void func_tracktrain::GoToTarget(void)
|
|||
f = find(world, CBaseTrigger::m_strTargetName, m_strTarget);
|
||||
|
||||
if (!f) {
|
||||
dprint(sprintf("^1func_tracktrain::GoToTarget^7: Trigger-Target for %s not found! Removing.\n", m_strTargetName));
|
||||
dprint(sprintf("^1func_tracktrain::^3GoToTarget^7: Trigger-Target for %s not found! Removing.\n", m_strTargetName));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -83,7 +83,7 @@ void func_tracktrain::Find(void)
|
|||
entity f = find(world, CBaseTrigger::m_strTargetName, m_strTarget);
|
||||
|
||||
if (!f) {
|
||||
dprint(sprintf("^1func_tracktrain::GoToTarget^7: Trigger-Target %s for %s not found! Removing.\n", m_strTarget, m_strTargetName));
|
||||
dprint(sprintf("^1func_tracktrain::^3GoToTarget^7: Trigger-Target %s for %s not found! Removing.\n", m_strTarget, m_strTargetName));
|
||||
remove(this);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -125,7 +125,7 @@ func_train::GoToTarget(void)
|
|||
flTravelTime = (vlen(vecVelocity) / m_flSpeed);
|
||||
|
||||
if (!flTravelTime) {
|
||||
print("^1func_train::GoToTarget^7: Distance short, going next\n");
|
||||
print("^1func_train::^3GoToTarget^7: Distance short, going next\n");
|
||||
think = NextPath;
|
||||
nextthink = ltime;
|
||||
return;
|
||||
|
@ -173,7 +173,7 @@ func_train::NextPath(void)
|
|||
|
||||
/* warp next frame */
|
||||
if (eNode.spawnflags & PC_TELEPORT) {
|
||||
print(sprintf("^1func_train::NextPath^7: Node %s wants %s to teleport\n", eNode.m_strTargetName, m_strTargetName));
|
||||
print(sprintf("^1func_train::^3NextPath^7: Node %s wants %s to teleport\n", eNode.m_strTargetName, m_strTargetName));
|
||||
think = NextPath;
|
||||
nextthink = ltime;
|
||||
return;
|
||||
|
|
|
@ -25,13 +25,28 @@ spawn.
|
|||
|
||||
class monstermaker : CBaseTrigger
|
||||
{
|
||||
string m_strMonster;
|
||||
|
||||
void() monstermaker;
|
||||
virtual void() Trigger;
|
||||
};
|
||||
|
||||
void monstermaker :: Trigger ( void )
|
||||
void monstermaker::Trigger ( void )
|
||||
{
|
||||
static void monstermaker_spawnunit(void) {
|
||||
callfunction(self.classname);
|
||||
}
|
||||
|
||||
if (isfunction(strcat("spawnfunc_", m_strMonster))) {
|
||||
entity unit = spawn();
|
||||
unit.classname = strcat("spawnfunc_", m_strMonster);
|
||||
unit.think = monstermaker_spawnunit;
|
||||
unit.nextthink = time + 0.1f;
|
||||
print(sprintf("^2monstermaker::^3Trigger^7: Spawning %s\n", m_strMonster));
|
||||
setorigin(unit, origin);
|
||||
} else {
|
||||
print(sprintf("^1monstermaker::^3Trigger^7: cannot call spawnfunction for %s\n", m_strMonster));
|
||||
}
|
||||
}
|
||||
|
||||
void monstermaker :: monstermaker ( void )
|
||||
|
@ -40,6 +55,9 @@ void monstermaker :: monstermaker ( void )
|
|||
|
||||
for ( int i = 1; i < ( tokenize( __fullspawndata ) - 1 ); i += 2 ) {
|
||||
switch ( argv( i ) ) {
|
||||
case "monstertype":
|
||||
m_strMonster = argv(i+1);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -61,7 +61,7 @@ void multi_manager :: Trigger (void)
|
|||
|
||||
entity eFind = find(world, CBaseTrigger::m_strTargetName, wow.m_strTarget);
|
||||
|
||||
dprint( sprintf( "^2%s::Trigger^7: %s (%s)\n",
|
||||
dprint( sprintf( "^2%s::^3Trigger^7: %s (%s)\n",
|
||||
this.classname, wow.m_strTarget, eFind.classname ) );
|
||||
|
||||
CBaseTrigger::UseTargets();
|
||||
|
|
|
@ -45,11 +45,11 @@ void scripted_sentence::Trigger(void)
|
|||
entity speaker = find(world, CBaseEntity::m_strTargetName, m_strSpeaker);
|
||||
|
||||
if (!speaker) {
|
||||
print(sprintf("^1scripted_sentence::Trigger^7: Couldn't find %s!\n", m_strSpeaker));
|
||||
print(sprintf("^1scripted_sentence::^3Trigger^7: Couldn't find %s!\n", m_strSpeaker));
|
||||
return;
|
||||
}
|
||||
|
||||
dprint(sprintf("^2scripted_sentence::Trigger^7: %s on %s\n", m_strSentence, m_strSpeaker));
|
||||
dprint(sprintf("^2scripted_sentence::^3Trigger^7: %s on %s\n", m_strSentence, m_strSpeaker));
|
||||
|
||||
WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET);
|
||||
WriteByte(MSG_MULTICAST, EV_SENTENCE);
|
||||
|
|
|
@ -109,7 +109,7 @@ void scripted_sequence::Trigger(void)
|
|||
m_iEnabled = FALSE;
|
||||
}
|
||||
|
||||
dprint(sprintf("^2scripted_sequence::Trigger^7: with spawnflags %d\n", spawnflags));
|
||||
dprint(sprintf("^2scripted_sequence::^3Trigger^7: with spawnflags %d\n", spawnflags));
|
||||
f = (CBaseMonster)find(world, CBaseEntity::m_strTargetName, m_strMonster);
|
||||
|
||||
/* target doesn't exist/hasn't spawned */
|
||||
|
@ -125,7 +125,7 @@ void scripted_sequence::Trigger(void)
|
|||
|
||||
/* cancel out. this trigger is broken. */
|
||||
if (!f) {
|
||||
dprint(sprintf("^1scripted_sequence::Trigger^7: Unknown target %s\n", m_strMonster));
|
||||
dprint(sprintf("^1scripted_sequence::^3Trigger^7: Unknown target %s\n", m_strMonster));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,11 +30,11 @@ class trigger_auto:CBaseTrigger
|
|||
float m_flDelay;
|
||||
|
||||
void() trigger_auto;
|
||||
virtual void() think;
|
||||
virtual void() Processing;
|
||||
virtual void() Respawn;
|
||||
};
|
||||
|
||||
void trigger_auto::think(void)
|
||||
void trigger_auto::Processing(void)
|
||||
{
|
||||
// This is weird, because ents may not be spawned yet.
|
||||
// However, Half-Life doesn't care about this, either.
|
||||
|
@ -42,9 +42,9 @@ void trigger_auto::think(void)
|
|||
CBaseTrigger::UseTargets_Delay(m_flDelay);
|
||||
|
||||
if (spawnflags & 1) {
|
||||
dprint( sprintf( "%s::think: %s removed self after trigger\n",
|
||||
m_strTargetName, this.classname ) );
|
||||
remove(this);
|
||||
dprint( sprintf( "^2trigger_auto::^3think^7: %s triggerer removed self\n",
|
||||
m_strTarget) );
|
||||
think = __NULL__;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -64,5 +64,6 @@ void trigger_auto::trigger_auto(void)
|
|||
break;
|
||||
}
|
||||
}
|
||||
think = Processing;
|
||||
CBaseTrigger::CBaseTrigger();
|
||||
}
|
||||
|
|
|
@ -25,7 +25,9 @@ class trigger_autosave:CBaseTrigger
|
|||
{
|
||||
float m_flDelay;
|
||||
void() trigger_autosave;
|
||||
|
||||
virtual void() touch;
|
||||
virtual void() Respawn;
|
||||
};
|
||||
|
||||
void trigger_autosave::touch(void)
|
||||
|
@ -42,7 +44,7 @@ void trigger_autosave::touch(void)
|
|||
msg_entity = this;
|
||||
multicast(origin, MULTICAST_ALL);
|
||||
|
||||
dprint( sprintf( "^2trigger_autosave::touch^7: %s called autosave\n",
|
||||
dprint( sprintf( "^2trigger_autosave::^3touch^7: %s called autosave\n",
|
||||
other.netname) );
|
||||
|
||||
localcmd("save autosave");
|
||||
|
@ -56,6 +58,18 @@ void trigger_autosave::touch(void)
|
|||
solid = SOLID_NOT;
|
||||
}
|
||||
|
||||
void trigger_autosave::Respawn(void)
|
||||
{
|
||||
solid = SOLID_TRIGGER;
|
||||
#ifdef GS_DEVELOPER
|
||||
m_iRenderMode = RM_SOLID;
|
||||
m_flRenderAmt = 0.25f;
|
||||
#else
|
||||
m_iRenderMode = RM_SOLID;
|
||||
m_flRenderAmt = 0.0f;
|
||||
#endif
|
||||
}
|
||||
|
||||
void trigger_autosave::trigger_autosave(void)
|
||||
{
|
||||
if (cvar("sv_playerslots") > 1) {
|
||||
|
|
|
@ -43,7 +43,7 @@ void trigger_camera::Trigger(void)
|
|||
|
||||
Client_TriggerCamera(eActivator, origin, angles, m_flWait);
|
||||
|
||||
dprint( sprintf( "^2trigger_camera::Trigger^7: Camera at %v, %v, for %f sec/s requested\n",
|
||||
dprint( sprintf( "^2trigger_camera::^3Trigger^7: Camera at %v, %v, for %f sec/s requested\n",
|
||||
this.classname, origin, angles, m_flWait ) );
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,9 @@ class trigger_cdaudio : CBaseTrigger
|
|||
{
|
||||
int m_iCDTrack;
|
||||
void() trigger_cdaudio;
|
||||
|
||||
virtual void() Trigger;
|
||||
virtual void() Respawn;
|
||||
};
|
||||
|
||||
void trigger_cdaudio :: Trigger ( void )
|
||||
|
@ -34,7 +36,7 @@ void trigger_cdaudio :: Trigger ( void )
|
|||
return;
|
||||
}
|
||||
|
||||
dprint( sprintf( "^2trigger_cdaudio::Trigger^7: CD Track %i requested\n",
|
||||
dprint( sprintf( "^2trigger_cdaudio::^3Trigger^7: CD Track %i requested\n",
|
||||
m_iCDTrack ) );
|
||||
|
||||
WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET);
|
||||
|
@ -46,6 +48,18 @@ void trigger_cdaudio :: Trigger ( void )
|
|||
remove( this );
|
||||
}
|
||||
|
||||
void trigger_cdaudio::Respawn(void)
|
||||
{
|
||||
solid = SOLID_TRIGGER;
|
||||
#ifdef GS_DEVELOPER
|
||||
m_iRenderMode = RM_SOLID;
|
||||
m_flRenderAmt = 0.25f;
|
||||
#else
|
||||
m_iRenderMode = RM_SOLID;
|
||||
m_flRenderAmt = 0.0f;
|
||||
#endif
|
||||
}
|
||||
|
||||
void trigger_cdaudio :: trigger_cdaudio ( void )
|
||||
{
|
||||
for ( int i = 1; i < ( tokenize( __fullspawndata ) - 1 ); i += 2 ) {
|
||||
|
|
|
@ -80,14 +80,14 @@ void trigger_changelevel::Change(void)
|
|||
info_landmark lm = (info_landmark)e;
|
||||
/* found it */
|
||||
if (lm.m_strTargetName == m_strLandmark) {
|
||||
dprint(sprintf("^2trigger_changelevel::Change^7: Found landmark for %s\n", m_strLandmark));
|
||||
dprint(sprintf("^2trigger_changelevel::^3Change^7: Found landmark for %s\n", m_strLandmark));
|
||||
landmark = lm;
|
||||
g_landmarkpos = m_activator.origin - landmark.origin;
|
||||
}
|
||||
}
|
||||
changelevel(m_strMap, m_strLandmark);
|
||||
} else {
|
||||
dprint( sprintf( "^2trigger_changelevel::Change^7: Change to `%s`\n",
|
||||
dprint( sprintf( "^2trigger_changelevel::^3Change^7: Change to `%s`\n",
|
||||
m_strMap ) );
|
||||
changelevel(m_strMap);
|
||||
}
|
||||
|
@ -103,12 +103,12 @@ void trigger_changelevel::Trigger(void)
|
|||
m_activator = eActivator;
|
||||
|
||||
if (m_flChangeDelay) {
|
||||
dprint( sprintf( "^2trigger_changelevel::Trigger^7: Delayed change to `%s` in %d sec/s\n",
|
||||
dprint( sprintf( "^2trigger_changelevel::^3Trigger^7: Delayed change to `%s` in %d sec/s\n",
|
||||
m_strMap, m_flChangeDelay ) );
|
||||
think = Change;
|
||||
nextthink = time + m_flChangeDelay;
|
||||
} else {
|
||||
dprint( sprintf( "^2trigger_changelevel::Trigger^7: Change to `%s` requested\n",
|
||||
dprint( sprintf( "^2trigger_changelevel::^3Trigger^7: Change to `%s` requested\n",
|
||||
m_strMap ) );
|
||||
Change();
|
||||
}
|
||||
|
@ -151,7 +151,7 @@ vector Landmark_GetSpot(void)
|
|||
info_landmark lm = (info_landmark)e;
|
||||
/* found it */
|
||||
if (lm.m_strTargetName == startspot) {
|
||||
dprint(sprintf("^2Landmark_GetSpot^7: Found landmark for %s\n", startspot));
|
||||
dprint(sprintf("^3Landmark_GetSpot^7: Found landmark for %s\n", startspot));
|
||||
landmark = lm;
|
||||
return landmark.origin + g_landmarkpos;
|
||||
}
|
||||
|
|
|
@ -53,12 +53,12 @@ class trigger_hurt:CBaseTrigger
|
|||
void trigger_hurt::Trigger(void)
|
||||
{
|
||||
if (solid != SOLID_NOT) {
|
||||
dprint( sprintf( "trigger_hurt::Trigger: %s deactivated\n",
|
||||
dprint( sprintf( "trigger_hurt::^3Trigger: %s deactivated\n",
|
||||
m_strTargetName ) );
|
||||
solid = SOLID_NOT;
|
||||
touch = __NULL__;
|
||||
} else {
|
||||
dprint( sprintf( "trigger_hurt::Trigger: %s activated\n",
|
||||
dprint( sprintf( "trigger_hurt::^3Trigger: %s activated\n",
|
||||
m_strTargetName ) );
|
||||
solid = SOLID_TRIGGER;
|
||||
touch = Touch;
|
||||
|
@ -99,7 +99,7 @@ void trigger_hurt::Touch(void)
|
|||
|
||||
Damage_Apply(other, this, m_iDamage, 0, DMG_GENERIC);
|
||||
|
||||
dprint( sprintf( "^2trigger_hurt::Touch^7: Hurting '%s' with %i\n",
|
||||
dprint( sprintf( "^2trigger_hurt::^3Touch^7: Hurting '%s' with %i\n",
|
||||
other.netname, m_iDamage ) );
|
||||
|
||||
// Shut it down if used once
|
||||
|
|
|
@ -69,18 +69,17 @@ void trigger_multiple::touch(void)
|
|||
nextthink = time + m_flWait;
|
||||
}
|
||||
solid = SOLID_NOT;
|
||||
|
||||
#ifdef GS_DEVELOPER
|
||||
alpha = 0.001f;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* TODO: Make this redundant */
|
||||
void trigger_multiple::Respawn(void)
|
||||
{
|
||||
solid = SOLID_TRIGGER;
|
||||
#ifdef GS_DEVELOPER
|
||||
alpha = 0.5f;
|
||||
m_iRenderMode = RM_SOLID;
|
||||
m_flRenderAmt = 0.25f;
|
||||
#else
|
||||
m_iRenderMode = RM_SOLID;
|
||||
m_flRenderAmt = 0.0f;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -37,6 +37,7 @@ class trigger_once:CBaseTrigger
|
|||
{
|
||||
float m_flDelay;
|
||||
void() trigger_once;
|
||||
|
||||
virtual void() touch;
|
||||
virtual void() Respawn;
|
||||
};
|
||||
|
@ -51,17 +52,17 @@ void trigger_once::touch(void)
|
|||
CBaseTrigger::UseTargets();
|
||||
}
|
||||
solid = SOLID_NOT;
|
||||
#ifdef GS_DEVELOPER
|
||||
alpha = 0.001f;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* TODO: Make this redundant */
|
||||
void trigger_once::Respawn(void)
|
||||
{
|
||||
solid = SOLID_TRIGGER;
|
||||
#ifdef GS_DEVELOPER
|
||||
alpha = 0.5f;
|
||||
m_iRenderMode = RM_SOLID;
|
||||
m_flRenderAmt = 0.25f;
|
||||
#else
|
||||
m_iRenderMode = RM_SOLID;
|
||||
m_flRenderAmt = 0.0f;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -77,6 +78,6 @@ void trigger_once::trigger_once(void)
|
|||
}
|
||||
}
|
||||
|
||||
CBaseEntity::CBaseEntity();
|
||||
CBaseTrigger::InitBrushTrigger();
|
||||
CBaseTrigger::CBaseTrigger();
|
||||
InitBrushTrigger();
|
||||
}
|
||||
|
|
|
@ -38,10 +38,10 @@ void trigger_teleport::touch(void)
|
|||
if (eTarget) {
|
||||
vector endpos = eTarget.origin + [0,0,16];
|
||||
setorigin(other, endpos);
|
||||
dprint( sprintf( "^2trigger_teleport::touch^7: Teleported '%s' to `%v`\n",
|
||||
dprint( sprintf( "^2trigger_teleport::^3touch^7: Teleported '%s' to `%v`\n",
|
||||
other.netname, endpos ) );
|
||||
} else {
|
||||
print( sprintf( "^2trigger_teleport::touch^7: Failed to teleport '%s'\n",
|
||||
print( sprintf( "^2trigger_teleport::^3touch^7: Failed to teleport '%s'\n",
|
||||
other.netname ) );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -76,14 +76,13 @@ Sentences_GetSamples(string word)
|
|||
|
||||
/* you never know what NPCs might do */
|
||||
if (word == "") {
|
||||
print("^1ERROR: No sentence supplied.\n");
|
||||
return "";
|
||||
}
|
||||
|
||||
/* check if the word is present at all */
|
||||
for (int i = 0; i < g_sentences_count; i++) {
|
||||
if (g_sentences[i] == word) {
|
||||
print(sprintf("^2Sentences: Found %s\n", word));
|
||||
print(sprintf("^3Sentences_GetSamples^7: Found %s\n", word));
|
||||
return word;
|
||||
}
|
||||
}
|
||||
|
@ -100,7 +99,7 @@ Sentences_GetSamples(string word)
|
|||
/* if we've got one, choose a random sample of them */
|
||||
if (gc) {
|
||||
int r = floor(random(0, gc));
|
||||
print(sprintf("^2Sentences: Choosing %s%i\n", word, r));
|
||||
print(sprintf("^3Sentences_GetSamples^7: Choosing %s%i\n", word, r));
|
||||
return sprintf("%s%i", word, r);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue