Polish triggers, add initial monstermaker guff

This commit is contained in:
Marco Cawthorne 2020-03-31 09:04:05 +02:00
parent 1670f8f783
commit 10fc61c84e
26 changed files with 142 additions and 96 deletions

View File

@ -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

View File

@ -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));
}
}

View File

@ -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;

View File

@ -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();
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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) {

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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();

View File

@ -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);

View File

@ -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;
}
}

View File

@ -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();
}

View File

@ -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) {

View File

@ -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 ) );
}

View File

@ -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 ) {

View File

@ -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;
}

View File

@ -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

View File

@ -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
}

View File

@ -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();
}

View File

@ -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 ) );
}
}

View File

@ -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);
}