From 10fc61c84efc9e13bcf47e446642b429be76ab9c Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Tue, 31 Mar 2020 09:04:05 +0200 Subject: [PATCH] Polish triggers, add initial monstermaker guff --- src/gs-entbase/client.src | 1 - src/gs-entbase/client/baseentity.cpp | 9 ++-- src/gs-entbase/server/ambient_generic.cpp | 12 ++--- src/gs-entbase/server/basemonster.cpp | 19 ++++---- src/gs-entbase/server/basetrigger.cpp | 3 +- src/gs-entbase/server/env_laser.cpp | 2 +- src/gs-entbase/server/func_button.cpp | 8 ++-- src/gs-entbase/server/func_door_rotating.cpp | 2 +- src/gs-entbase/server/func_guntarget.cpp | 4 +- src/gs-entbase/server/func_ladder.cpp | 44 +++++++++---------- src/gs-entbase/server/func_tracktrain.cpp | 4 +- src/gs-entbase/server/func_train.cpp | 4 +- src/gs-entbase/server/monstermaker.cpp | 20 ++++++++- src/gs-entbase/server/multi_manager.cpp | 2 +- src/gs-entbase/server/scripted_sentence.cpp | 4 +- src/gs-entbase/server/scripted_sequence.cpp | 4 +- src/gs-entbase/server/trigger_auto.cpp | 11 ++--- src/gs-entbase/server/trigger_autosave.cpp | 16 ++++++- src/gs-entbase/server/trigger_camera.cpp | 2 +- src/gs-entbase/server/trigger_cdaudio.cpp | 16 ++++++- src/gs-entbase/server/trigger_changelevel.cpp | 10 ++--- src/gs-entbase/server/trigger_hurt.cpp | 6 +-- src/gs-entbase/server/trigger_multiple.cpp | 11 +++-- src/gs-entbase/server/trigger_once.cpp | 15 ++++--- src/gs-entbase/server/trigger_teleport.cpp | 4 +- src/server/sentences.c | 5 +-- 26 files changed, 142 insertions(+), 96 deletions(-) diff --git a/src/gs-entbase/client.src b/src/gs-entbase/client.src index a6d71486..b909dca6 100644 --- a/src/gs-entbase/client.src +++ b/src/gs-entbase/client.src @@ -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 diff --git a/src/gs-entbase/client/baseentity.cpp b/src/gs-entbase/client/baseentity.cpp index 6e6ab9c2..f7311050 100644 --- a/src/gs-entbase/client/baseentity.cpp +++ b/src/gs-entbase/client/baseentity.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)); } } diff --git a/src/gs-entbase/server/ambient_generic.cpp b/src/gs-entbase/server/ambient_generic.cpp index b9b36c7a..adc1bc2a 100644 --- a/src/gs-entbase/server/ambient_generic.cpp +++ b/src/gs-entbase/server/ambient_generic.cpp @@ -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; diff --git a/src/gs-entbase/server/basemonster.cpp b/src/gs-entbase/server/basemonster.cpp index a46fee7c..e4f10c27 100644 --- a/src/gs-entbase/server/basemonster.cpp +++ b/src/gs-entbase/server/basemonster.cpp @@ -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(); } diff --git a/src/gs-entbase/server/basetrigger.cpp b/src/gs-entbase/server/basetrigger.cpp index 8d9e4acd..63fe006b 100644 --- a/src/gs-entbase/server/basetrigger.cpp +++ b/src/gs-entbase/server/basetrigger.cpp @@ -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; diff --git a/src/gs-entbase/server/env_laser.cpp b/src/gs-entbase/server/env_laser.cpp index e60df84c..5bef85da 100644 --- a/src/gs-entbase/server/env_laser.cpp +++ b/src/gs-entbase/server/env_laser.cpp @@ -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; } diff --git a/src/gs-entbase/server/func_button.cpp b/src/gs-entbase/server/func_button.cpp index d8b1bc00..c30a10d8 100644 --- a/src/gs-entbase/server/func_button.cpp +++ b/src/gs-entbase/server/func_button.cpp @@ -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; diff --git a/src/gs-entbase/server/func_door_rotating.cpp b/src/gs-entbase/server/func_door_rotating.cpp index d3ef2c9f..dcde8ffd 100644 --- a/src/gs-entbase/server/func_door_rotating.cpp +++ b/src/gs-entbase/server/func_door_rotating.cpp @@ -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; } diff --git a/src/gs-entbase/server/func_guntarget.cpp b/src/gs-entbase/server/func_guntarget.cpp index cc59637e..c45f3115 100644 --- a/src/gs-entbase/server/func_guntarget.cpp +++ b/src/gs-entbase/server/func_guntarget.cpp @@ -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) { diff --git a/src/gs-entbase/server/func_ladder.cpp b/src/gs-entbase/server/func_ladder.cpp index 2396912f..c3542c44 100644 --- a/src/gs-entbase/server/func_ladder.cpp +++ b/src/gs-entbase/server/func_ladder.cpp @@ -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); } diff --git a/src/gs-entbase/server/func_tracktrain.cpp b/src/gs-entbase/server/func_tracktrain.cpp index d94a9fce..df51cac7 100644 --- a/src/gs-entbase/server/func_tracktrain.cpp +++ b/src/gs-entbase/server/func_tracktrain.cpp @@ -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; } diff --git a/src/gs-entbase/server/func_train.cpp b/src/gs-entbase/server/func_train.cpp index c408cce1..a852e99d 100644 --- a/src/gs-entbase/server/func_train.cpp +++ b/src/gs-entbase/server/func_train.cpp @@ -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; diff --git a/src/gs-entbase/server/monstermaker.cpp b/src/gs-entbase/server/monstermaker.cpp index 403fc462..5d87a76c 100644 --- a/src/gs-entbase/server/monstermaker.cpp +++ b/src/gs-entbase/server/monstermaker.cpp @@ -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; } diff --git a/src/gs-entbase/server/multi_manager.cpp b/src/gs-entbase/server/multi_manager.cpp index 245dd89e..5fd2d44f 100644 --- a/src/gs-entbase/server/multi_manager.cpp +++ b/src/gs-entbase/server/multi_manager.cpp @@ -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(); diff --git a/src/gs-entbase/server/scripted_sentence.cpp b/src/gs-entbase/server/scripted_sentence.cpp index 590dec28..01c2c25d 100644 --- a/src/gs-entbase/server/scripted_sentence.cpp +++ b/src/gs-entbase/server/scripted_sentence.cpp @@ -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); diff --git a/src/gs-entbase/server/scripted_sequence.cpp b/src/gs-entbase/server/scripted_sequence.cpp index a8da5078..cd75851e 100644 --- a/src/gs-entbase/server/scripted_sequence.cpp +++ b/src/gs-entbase/server/scripted_sequence.cpp @@ -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; } } diff --git a/src/gs-entbase/server/trigger_auto.cpp b/src/gs-entbase/server/trigger_auto.cpp index c166aafc..8019cc39 100644 --- a/src/gs-entbase/server/trigger_auto.cpp +++ b/src/gs-entbase/server/trigger_auto.cpp @@ -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(); } diff --git a/src/gs-entbase/server/trigger_autosave.cpp b/src/gs-entbase/server/trigger_autosave.cpp index 34578b7c..092327be 100644 --- a/src/gs-entbase/server/trigger_autosave.cpp +++ b/src/gs-entbase/server/trigger_autosave.cpp @@ -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) { diff --git a/src/gs-entbase/server/trigger_camera.cpp b/src/gs-entbase/server/trigger_camera.cpp index 14b5054e..17803b04 100644 --- a/src/gs-entbase/server/trigger_camera.cpp +++ b/src/gs-entbase/server/trigger_camera.cpp @@ -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 ) ); } diff --git a/src/gs-entbase/server/trigger_cdaudio.cpp b/src/gs-entbase/server/trigger_cdaudio.cpp index 5729278b..c376b15b 100644 --- a/src/gs-entbase/server/trigger_cdaudio.cpp +++ b/src/gs-entbase/server/trigger_cdaudio.cpp @@ -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 ) { diff --git a/src/gs-entbase/server/trigger_changelevel.cpp b/src/gs-entbase/server/trigger_changelevel.cpp index 87d8699d..5b874974 100644 --- a/src/gs-entbase/server/trigger_changelevel.cpp +++ b/src/gs-entbase/server/trigger_changelevel.cpp @@ -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; } diff --git a/src/gs-entbase/server/trigger_hurt.cpp b/src/gs-entbase/server/trigger_hurt.cpp index 7694128f..0f544269 100644 --- a/src/gs-entbase/server/trigger_hurt.cpp +++ b/src/gs-entbase/server/trigger_hurt.cpp @@ -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 diff --git a/src/gs-entbase/server/trigger_multiple.cpp b/src/gs-entbase/server/trigger_multiple.cpp index 25e8d195..1e559d7d 100644 --- a/src/gs-entbase/server/trigger_multiple.cpp +++ b/src/gs-entbase/server/trigger_multiple.cpp @@ -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 } diff --git a/src/gs-entbase/server/trigger_once.cpp b/src/gs-entbase/server/trigger_once.cpp index 00a38c7b..38b14d18 100644 --- a/src/gs-entbase/server/trigger_once.cpp +++ b/src/gs-entbase/server/trigger_once.cpp @@ -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(); } diff --git a/src/gs-entbase/server/trigger_teleport.cpp b/src/gs-entbase/server/trigger_teleport.cpp index bbe64fac..9236899c 100644 --- a/src/gs-entbase/server/trigger_teleport.cpp +++ b/src/gs-entbase/server/trigger_teleport.cpp @@ -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 ) ); } } diff --git a/src/server/sentences.c b/src/server/sentences.c index 6bbb2c2c..8d3a5db2 100644 --- a/src/server/sentences.c +++ b/src/server/sentences.c @@ -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); }