void Area_NoclipSpawn(ServerEntity_t *area) { area->v.movetype = MOVETYPE_PUSH; area->Physics.solid = SOLID_NOT; Entity_SetModel(area, area->v.model); Entity_SetOrigin(area, area->v.origin); }
void Point_ParticleSpawn(ServerEntity_t *ent) { if(ent->local.count <= 0) ent->local.count = 1; if(ent->Model.fScale <= 0) ent->Model.fScale = 7; Engine.Server_PrecacheResource(RESOURCE_SPRITE,ent->v.model); Entity_SetOrigin(ent,ent->v.origin); switch(ent->local.style) { case PARTICLE_DEFAULT: break; case PARTICLE_STACK: ent->v.velocity[2] += 15.0f; break; default: Engine.Con_Warning("Unknown particle type (%i)!\n",ent->local.style); } if(ent->local.dAttackFinished > 0) { ent->v.think = Point_ParticleEmit; ent->v.dNextThink = Server.dTime+ent->local.dAttackFinished; } else ent->v.use = Point_ParticleTrigger; }
void Point_MultiTriggerSpawn(ServerEntity_t *eEntity) { if(!eEntity->v.targetname) { Engine.Con_Warning("No targetname set for point_multitrigger! (%i %i %i)\n", (int)eEntity->v.origin[0], (int)eEntity->v.origin[1], (int)eEntity->v.origin[2]); Entity_Remove(eEntity); return; } if(!eEntity->v.message) { Engine.Con_Warning("No message set for point_multitrigger! (%i %i %i)\n", (int)eEntity->v.origin[0], (int)eEntity->v.origin[1], (int)eEntity->v.origin[2]); Entity_Remove(eEntity); return; } if(!eEntity->local.style) eEntity->local.style = 0; eEntity->v.use = Point_MultiTriggerUse; Entity_SetOrigin(eEntity,eEntity->v.origin); }
// [4/7/2012] Renamed to Discus_SpawnProjectile ~hogsy void Discus_SpawnProjectile(ServerEntity_t *ent,vec3_t org) { ServerEntity_t *eDiscus; MathVector3f_t mvDirection; eDiscus = Entity_Spawn(); eDiscus->v.cClassname = "discus"; eDiscus->v.movetype = MOVETYPE_FLYBOUNCE; eDiscus->Physics.iSolid = SOLID_BBOX; eDiscus->v.effects = EF_MOTION_ROTATE; eDiscus->v.enemy = ent; // [4/8/2012] Updated to use owner instead ~hogsy eDiscus->local.eOwner = ent; eDiscus->local.hit = 0; Math_MVToVector(Weapon_Aim(ent), mvDirection); Math_VectorScale(mvDirection, 700.0f, eDiscus->v.velocity); Math_MVToVector(Math_VectorToAngles(eDiscus->v.velocity), eDiscus->v.angles); eDiscus->v.TouchFunction = Discus_ProjectileTouch; Entity_SetModel(eDiscus, "models/w_daedalus.md2"); Entity_SetSizeVector(eDiscus, g_mvOrigin3f, g_mvOrigin3f); Entity_SetOrigin(eDiscus, org); Sound(ent,CHAN_WEAPON,"weapons/discus/discusthrow.wav",255,ATTN_NORM); }
void Inmater_Spawn(ServerEntity_t *eInmater) { Server_PrecacheModel(MODEL_INMATER_BODY); Entity_SetPhysics(eInmater, SOLID_SLIDEBOX, 3.0f, 4.5f); eInmater->Monster.type = MONSTER_INMATER; eInmater->Monster.Frame = Inmater_Think; eInmater->Monster.Pain = Inmater_Pain; Entity_SetKilledFunction(eInmater, Inmater_Die); eInmater->v.takedamage = true; eInmater->v.movetype = MOVETYPE_STEP; eInmater->v.health = INMATER_MAX_HEALTH; eInmater->v.netname = "Inmater"; eInmater->v.frame = 0; eInmater->local.maxhealth = INMATER_MAX_HEALTH; AI_SetState(eInmater, AI_STATE_AWAKE); AI_SetThink(eInmater, AI_THINK_IDLE); Entity_SetModel(eInmater, MODEL_INMATER_BODY); Entity_SetSize(eInmater, -16.0f, -16.0f, -24.0f, 16.0f, 16.0f, 32.0f); Entity_SetOrigin(eInmater, eInmater->v.origin); Entity_DropToFloor(eInmater); }
bool Entity_DropToFloor(ServerEntity_t *eEntity) { MathVector3f_t vEnd; trace_t trGround; Math_VectorCopy(eEntity->v.origin, vEnd); vEnd[2] -= 256; trGround = Engine.Server_Move(eEntity->v.origin, eEntity->v.mins, eEntity->v.maxs, vEnd, false, eEntity); if (trGround.fraction == 1 || trGround.bAllSolid) { Engine.Con_Warning("Entity is stuck in world! (%s) (%i %i %i)\n", eEntity->v.cClassname, (int)eEntity->v.origin[0], (int)eEntity->v.origin[1], (int)eEntity->v.origin[2]); return false; } // Use SetOrigin so that it's automatically linked. Entity_SetOrigin(eEntity, trGround.endpos); Entity_AddFlags(eEntity, FL_ONGROUND); eEntity->v.groundentity = trGround.ent; return true; }
void Area_RotateSpawn(ServerEntity_t *area) { if(!area->local.speed) { area->local.speed = 100; } #if 0 // [26/7/2012] Check our spawn flags ~hogsy if(area->local.style == STYLE_ROTATE_DOOR) { if(area->v.spawnflags & SPAWNFLAG_ROTATE_REVERSE) { } if(area->v.spawnflags & SPAWNFLAG_ROTATE_X) area->v.movedir[0] = 1.0f; else if(area->v.spawnflags & SPAWNFLAG_ROTATE_Y) area->v.movedir[1] = 1.0f; else area->v.movedir[2] = 1.0f; Math_VectorCopy(area->v.angles,area->local.pos1); area->local.pos2[0] = area->local.pos1[0]+area->v.movedir[0]*area->local.distance; area->v.TouchFunction = Area_RotateTouch; area->local.dMoveFinished = 0; } else #endif { if(area->v.spawnflags & SPAWNFLAG_ROTATE_REVERSE) { area->local.speed *= -1; } if(area->v.spawnflags & SPAWNFLAG_ROTATE_X) { area->v.avelocity.x = area->local.speed; } if(area->v.spawnflags & SPAWNFLAG_ROTATE_Y) { area->v.avelocity.y = area->local.speed; } if(area->v.spawnflags & SPAWNFLAG_ROTATE_Z) { area->v.avelocity.z = area->local.speed; } } Entity_SetBlockedFunction(area, Area_RotateBlocked); area->v.movetype = MOVETYPE_PUSH; area->v.think = Area_RotateThink; area->v.nextthink = Server.time + 1000000000.0; // TODO: This is a hack. A dirty filthy hack. Curse it and its family! area->Physics.solid = SOLID_BSP; Entity_SetModel(area,area->v.model); Entity_SetSizeVector(area,area->v.mins,area->v.maxs); Entity_SetOrigin(area,area->v.origin); }
void Point_FlareSpawn(ServerEntity_t *eFlare) { Engine.Server_PrecacheResource(RESOURCE_SPRITE,eFlare->v.model); Entity_SetOrigin(eFlare,eFlare->v.origin); // Flare(ent->v.origin,ent->local.red,ent->local.green,ent->local.blue,ent->alpha,ent->local.scale,ent->v.model); }
void Area_ButtonSpawn(ServerEntity_t *eArea) { float fDist; PLVector3D vMoveDir; if(!eArea->v.spawnflags) eArea->v.spawnflags = 0; if(eArea->local.cSoundStart) Server_PrecacheSound(eArea->local.cSoundStart); if (eArea->local.sound_stop) Server_PrecacheSound(eArea->local.sound_stop); if(eArea->local.cSoundMoving) Server_PrecacheSound(eArea->local.cSoundMoving); if(eArea->local.cSoundReturn) Server_PrecacheSound(eArea->local.cSoundReturn); eArea->v.movetype = MOVETYPE_PUSH; eArea->Physics.solid = SOLID_BSP; // [18/5/2013] Changed to use ! check instead since it's safer here ~hogsy if(eArea->local.lip == 0) { eArea->local.lip = 4; } eArea->local.value = 0; eArea->local.flags = STATE_BOTTOM; Entity_SetModel(eArea,eArea->v.model); Entity_SetOrigin(eArea,eArea->v.origin); Entity_SetSizeVector(eArea,eArea->v.mins,eArea->v.maxs); eArea->local.pos1 = eArea->v.origin; Area_SetMoveDirection(eArea->v.angles,eArea->v.movedir); vMoveDir.x = std::fabs(eArea->v.movedir.x); vMoveDir.y = std::fabs(eArea->v.movedir.y); vMoveDir.z = std::fabs(eArea->v.movedir.z); fDist = vMoveDir.x*eArea->v.size.x+ vMoveDir.y*eArea->v.size.y+ vMoveDir.z*eArea->v.size.z- eArea->local.lip; Math_VectorMake(eArea->local.pos1,fDist,eArea->v.movedir,&eArea->local.pos2); if(eArea->v.spawnflags != 32) { // Toggle eArea->v.TouchFunction = Area_ButtonTouch; } if (eArea->local.damage) { Entity_SetBlockedFunction(eArea, Area_ButtonBlocked); } eArea->v.use = Area_ButtonUse; }
void Area_KillSpawn(ServerEntity_t *area) { area->Physics.solid = SOLID_TRIGGER; Entity_SetModel(area, area->v.model); Entity_SetOrigin(area, area->v.origin); Entity_SetTouchFunction(area, Area_KillTouch); area->v.model = 0; }
void Point_EffectSpawn(ServerEntity_t *eEntity) { if(eEntity->v.noise) Server_PrecacheSound(eEntity->v.noise); eEntity->v.use = Point_EffectUse; Entity_SetOrigin(eEntity,eEntity->v.origin); }
void Area_CalculateMovementDone(ServerEntity_t *area) { Entity_SetOrigin(area, area->local.finaldest); area->v.velocity = 0; if(area->local.think1) { area->local.think1(area, area); } }
void Point_DynamicLight(ServerEntity_t *ent) { Entity_SetOrigin(ent,ent->v.origin); ent->v.effects = EF_LIGHT_GREEN; ent->v.think = Point_DynamicLightThink; ent->v.dNextThink = Server.dTime+0.1; }
void Area_PlatformSpawn(ServerEntity_t *area) { if(!area->v.spawnflags) { area->v.spawnflags = 0; } if(area->local.cSoundStart) { Server_PrecacheSound(area->local.cSoundStart); } if (area->local.sound_stop) { Server_PrecacheSound(area->local.sound_stop); } if(area->local.cSoundMoving) { Server_PrecacheSound(area->local.cSoundMoving); } if(area->local.cSoundReturn) { Server_PrecacheSound(area->local.cSoundReturn); } area->v.movetype = MOVETYPE_PUSH; area->Physics.solid = SOLID_BSP; if(area->local.count == 0) { area->local.count = 100; } if(area->local.wait == 0) { area->local.wait = 3; } if(area->local.damage == 0) { area->local.damage = 20; } area->local.value = 0; area->local.flags = STATE_BOTTOM; Entity_SetModel(area,area->v.model); Entity_SetOrigin(area,area->v.origin); Entity_SetSizeVector(area,area->v.mins,area->v.maxs); area->local.pos1 = area->v.origin; Area_SetMoveDirection(area->v.angles, area->v.movedir); float dist = (float)area->local.count; Math_VectorMake(area->local.pos1, dist, area->v.movedir, &area->local.pos2); if(area->v.spawnflags != 32) { // Toggle area->v.TouchFunction = Area_PlatformTouch; } if (area->local.damage) { Entity_SetBlockedFunction(area, Area_PlatformBlocked); } area->v.use = Area_PlatformUse; }
void Area_ClimbSpawn(ServerEntity_t *area) { Area_SetMoveDirection(area->v.angles, area->v.movedir); area->v.TouchFunction = Area_ClimbTouch; area->Physics.solid = SOLID_TRIGGER; Entity_SetModel(area,area->v.model); Entity_SetOrigin(area,area->v.origin); area->v.model = 0; }
void Point_NullSpawn(ServerEntity_t *eEntity) { // Remove if there is no name given! if (!eEntity->v.cName || (eEntity->v.cName[0] == ' ')) { Entity_Remove(eEntity); return; } Entity_SetOrigin(eEntity,eEntity->v.origin); }
// Just for the compiler ~eukara void Area_DetailSpawn(ServerEntity_t *area) { if(!area->v.model) { g_engine->Con_Warning("Area entity with no model!\n"); Entity_Remove(area); return; } Entity_SetModel(area,area->v.model); Entity_SetOrigin(area,area->v.origin); }
// [4/8/2012] Renamed to SideWinder_SpawnMissle ~hogsy void SideWinder_SpawnMissle(edict_t *ent,float fSpeed,float ox) { // [26/2/2012] Revised and fixed ~hogsy vec3_t vOrg; edict_t *eMissile = Entity_Spawn(); /* TODO: Spawn a flare at our position too ~hogsy */ eMissile->v.cClassname = "sidewindermissile"; eMissile->v.movetype = MOVETYPE_FLYMISSILE; eMissile->v.effects = EF_PARTICLE_SMOKE|EF_DIMLIGHT; eMissile->Physics.iSolid = SOLID_BBOX; eMissile->Physics.eIgnore = ent; eMissile->local.speed = SIDEWINDER_MAXSPEED; eMissile->local.eOwner = ent; eMissile->local.count = 0; // [4/8/2012] Change our speed depending on what contents we're within ~hogsy eMissile->local.speed = fSpeed; Math_VectorScale(Engine.Aim(ent),eMissile->local.speed,eMissile->v.velocity); Math_AngleVectors(ent->v.v_angle, // [4/8/2012] Set up our angle vectors ~hogsy eMissile->v.vForward, eMissile->local.vRight, eMissile->local.vUp); Math_VectorCopy(ent->v.v_angle,eMissile->v.angles); Entity_SetModel(eMissile,"models/sidewinder_missile.md2"); Math_VectorCopy(ent->v.origin,vOrg); vOrg[0] += eMissile->v.vForward[0]*8+eMissile->local.vRight[0]*ox; vOrg[1] += eMissile->v.vForward[1]*8+eMissile->local.vRight[1]*ox; vOrg[2] += eMissile->v.vForward[2]*24; Entity_SetSizeVector(eMissile,mv3Origin,mv3Origin); Entity_SetOrigin(eMissile,vOrg); // [4/8/2012] Time at which we'll be removed if nothing hit ~hogsy eMissile->local.fSpawnDelay = (float)(Server.dTime+8.0); eMissile->v.TouchFunction = SideWinder_MissileExplode; eMissile->v.dNextThink = Server.dTime+0.05; eMissile->v.think = SideWinder_Think; // [4/8/2012] Moved so we do this last! ~hogsy Engine.LinkEntity(eMissile,false); }
void Point_DamageSpawn(ServerEntity_t *eEntity) { if(!eEntity->local.iDamage) eEntity->local.iDamage = 10; if(!eEntity->local.style) eEntity->local.style = DAMAGE_TYPE_NORMAL; eEntity->v.use = Point_DamageUse; Entity_SetOrigin(eEntity,eEntity->v.origin); }
void Area_PushSpawn(ServerEntity_t *area) { if(!area->local.speed) area->local.speed = 500.0f; Area_SetMoveDirection(area->v.angles, area->v.movedir); area->v.TouchFunction = Area_PushTouch; area->Physics.solid = SOLID_TRIGGER; Entity_SetModel(area,area->v.model); Entity_SetOrigin(area,area->v.origin); Entity_SetSizeVector(area,area->v.mins,area->v.maxs); area->v.model = 0; }
void C4Vizatergo_PrimaryAttack(ServerEntity_t *eOwner) { MathVector3f_t vOrigin; MathVector3f_t mvDirection; ServerEntity_t *c4ball = Entity_Spawn(); Sound(eOwner,CHAN_AUTO,"weapons/c4/c4fire.wav",255,ATTN_NORM); Sound(eOwner,CHAN_AUTO,"weapons/c4/c4cock.wav",255,ATTN_NORM); Weapon_Animate(eOwner,C4Animation_Fire1); Weapon_ViewPunch(eOwner, 7, true); eOwner->v.iPrimaryAmmo = eOwner->local.iC4Ammo -= 1; c4ball->v.cClassname = "c4ball"; c4ball->v.movetype = MOVETYPE_BOUNCE; c4ball->local.style = AMMO_C4BOMBS; // Cleaner way to tell if this can explode or not :V ~hogsy c4ball->local.iC4Ammo = 1; // [11/8/2013] Since style is used for other shit too LAWL ~hogsy c4ball->local.eOwner = eOwner; // Set the physical properties. c4ball->Physics.iSolid = SOLID_BBOX; c4ball->Physics.fMass = 0.9f; c4ball->Physics.eIgnore = eOwner; c4ball->Physics.fGravity = SERVER_GRAVITY; Math_MVToVector(Weapon_Aim(eOwner), mvDirection); Math_VectorScale(mvDirection, C4VIZATERGO_MAX_RANGE, c4ball->v.velocity); c4ball->v.velocity[pY] += 20.0f; Math_MVToVector(Math_VectorToAngles(c4ball->v.velocity),c4ball->v.angles); Math_VectorCopy(eOwner->v.origin,vOrigin); c4ball->v.TouchFunction = C4Vizatergo_C4BallTouch; c4ball->v.think = C4Vizatergo_Think; c4ball->v.dNextThink = Server.dTime + 2.5; Entity_SetModel(c4ball,"models/c4ammo.md2"); Entity_SetSizeVector(c4ball,g_mvOrigin3f,g_mvOrigin3f); Entity_SetOrigin(c4ball,vOrigin); if(eOwner->local.attackb_finished > Server.dTime) // No attack boost... eOwner->local.dAttackFinished = Server.dTime+0.6; else eOwner->local.dAttackFinished = Server.dTime+1.2; }
void Area_PushableSpawn(ServerEntity_t *area) { // TODO: If designed to be breakable, make breakable? ~eukara /* if (area->v.health) { Area_BreakableSpawn(area); } */ //area->Physics.fGravity = cv_server_gravity.value; area->v.angles = 0; area->Physics.solid = SOLID_SLIDEBOX; area->v.movetype = MOVETYPE_STEP; Entity_SetModel(area,area->v.model); Entity_SetOrigin(area,area->v.origin); Entity_SetSizeVector(area,area->v.mins,area->v.maxs); area->v.TouchFunction = Area_PushableTouch; area->v.think = Area_PushableThink; }
void Area_TriggerSpawn(ServerEntity_t *area) { if(!area->v.targetname) { g_engine->Con_Warning("'targetname' not set for trigger! (%i %i %i)\n", (int)area->v.origin.x, (int)area->v.origin.y, (int)area->v.origin.z); return; } area->v.TouchFunction = Area_TriggerTouch; area->Physics.solid = SOLID_TRIGGER; Entity_SetModel(area,area->v.model); Entity_SetOrigin(area,area->v.origin); area->v.model = 0; }
void Area_ChangeLevel(ServerEntity_t *area) { if(!area->v.targetname) { g_engine->Con_Warning("No targetname set for area_changelevel! (%i %i %i)\n", (int)area->v.origin.x, (int)area->v.origin.y, (int)area->v.origin.z); return; } area->v.TouchFunction = Area_ChangeLevelTouch; area->Physics.solid = SOLID_TRIGGER; Entity_SetModel(area,area->v.model); Entity_SetOrigin(area,area->v.origin); area->v.model = 0; }
void Point_MonsterSpawn(ServerEntity_t *eMonster) { if (cvServerMonsters.value <= 0) { Entity_Remove(eMonster); return; } // Set its origin and angles... Entity_SetOrigin(eMonster, eMonster->v.origin); Entity_SetAngles(eMonster, eMonster->v.angles); Server.iMonsters++; switch(eMonster->local.style) { #ifdef GAME_OPENKATANA case MONSTER_PRISONER: eMonster->v.cClassname = "monster_prisoner"; Prisoner_Spawn(eMonster); break; case MONSTER_LASERGAT: eMonster->v.cClassname = "monster_lasergat"; LaserGat_Spawn(eMonster); break; case MONSTER_INMATER: eMonster->v.cClassname = "monster_inmater"; Inmater_Spawn(eMonster); break; #elif GAME_ADAMAS case MONSTER_HURLER: eMonster->v.cClassname = "monster_hurler"; Hurler_Spawn(eMonster); break; #endif default: Engine.Con_Warning("Invalid monster type (%i)!\n",eMonster->local.style); // Reduce the monster count. ~hogsy Server.iMonsters--; Entity_Remove(eMonster); } }
void Area_WallSpawn(ServerEntity_t *area) { if(!area->v.model) { g_engine->Con_Warning("Area entity with no model!\n"); Entity_Remove(area); return; } if(area->v.name) { area->v.use = Area_WallUse; } area->v.movetype = MOVETYPE_PUSH; area->local.value = 1; Entity_SetModel(area,area->v.model); Entity_SetOrigin(area,area->v.origin); }
void Point_TimedTriggerSpawn(ServerEntity_t *eEntity) { if(!eEntity->v.targetname) { Engine.Con_Warning("No targetname set for point_timedtrigger (%f %f %f)!\n", eEntity->v.origin[0], eEntity->v.origin[1], eEntity->v.origin[2]); Entity_Remove(eEntity); return; } eEntity->v.use = Point_TimedTriggerUse; if(eEntity->v.spawnflags & 32) eEntity->v.use(eEntity); Entity_SetOrigin(eEntity,eEntity->v.origin); }
void Hermes_PrimaryAttack(edict_t *ent) { float *dir; edict_t *cloud = Entity_Spawn(); cloud->v.cClassname = "cloud"; cloud->v.movetype = MOVETYPE_FLYMISSILE; cloud->Physics.iSolid = SOLID_TRIGGER; cloud->local.hit = 10; cloud->local.eOwner = ent; //SetSize(cloud,-16,-16,-16,16,16,16); Entity_SetOrigin(cloud,ent->v.origin); Engine.MakeVectors(ent->v.v_angle); dir = Engine.Aim(ent); cloud->v.velocity[0] = dir[0]*100; cloud->v.velocity[1] = dir[1]*100; cloud->v.velocity[2] = dir[2]*100; cloud->v.dNextThink = Server.dTime+0.3; cloud->v.think = Hermes_CloudThink; cloud->v.TouchFunction = HermesCloudTouch; Math_VectorAddValue(cloud->v.avelocity,300.0f,cloud->v.avelocity); if(ent->local.attackb_finished > Server.dTime) // No attack boost... ent->local.dAttackFinished = Server.dTime+0.35; else ent->local.dAttackFinished = Server.dTime+0.7; #if 0 if(rand()%3 == 1) //Weapon_Animate(ent,FALSE,12,17,0.07f,10,19,0,FALSE); else if(rand()%3 == 2) //Weapon_Animate(ent,FALSE,18,23,0.07f,10,19,0,FALSE); else //Weapon_Animate(ent,FALSE,24,29,0.07f,10,19,0,FALSE); #endif }
void Point_LogicSpawn(ServerEntity_t *eEntity) { if(!eEntity->local.cTarget1) { Engine.Con_Warning("No target1 set for point_logic! (%i %i %i)\n", (int)eEntity->v.origin[0], (int)eEntity->v.origin[1], (int)eEntity->v.origin[2]); Entity_Remove(eEntity); return; } if(!eEntity->local.cTarget2 && eEntity->local.style != 3) { Engine.Con_Warning("No target2 set for point_logic! (%i %i %i)\n", (int)eEntity->v.origin[0], (int)eEntity->v.origin[1], (int)eEntity->v.origin[2]); Entity_Remove(eEntity); return; } if(!eEntity->local.style) eEntity->local.style = 1; if(!eEntity->local.dWait) eEntity->local.dWait = 1; if(eEntity->local.style != 3) eEntity->local.iValue = 0; else eEntity->local.iValue = 1; Entity_SetOrigin(eEntity,eEntity->v.origin); eEntity->v.think = Point_LogicThink; eEntity->v.dNextThink = Server.dTime+1.0f; }
void Point_MessageSpawn(ServerEntity_t *eEntity) { if(!eEntity->v.message) { Engine.Con_Warning("Parameter 'message' not set! (%s) (%i %i %i)\n", eEntity->v.cClassname, (int)eEntity->v.origin[0], (int)eEntity->v.origin[1], (int)eEntity->v.origin[2]); Entity_Remove(eEntity); return; } Entity_SetOrigin(eEntity,eEntity->v.origin); switch(eEntity->local.style) { case POINT_MSG_CENTER: eEntity->v.use = Point_MessageCenter; break; case POINT_MSG_LOCALMESSAGE: eEntity->v.use = Point_MessageLocal; break; case POINT_MSG_SERVERMESSAGE: eEntity->v.use = Point_MessageServer; break; case POINT_MSG_INFOMESSAGE: eEntity->v.use = Point_InfoMessage; break; default: Engine.Con_Warning("Parameter 'style' not set! (%s) (%i %i %i)\n", eEntity->v.cClassname, (int)eEntity->v.origin[0], (int)eEntity->v.origin[1], (int)eEntity->v.origin[2]); Entity_Remove(eEntity); } }