.float trail_oldtime;
.float fade_time, fade_rate;
-void SUB_Null()
-{
-}
-
void SUB_Stop()
{
self.move_velocity = self.move_avelocity = '0 0 0';
self.mins = '0 0 -4';
self.maxs = '0 0 -4';
self.move_movetype = MOVETYPE_BOUNCE;
- self.move_touch = SUB_Null;
+ self.move_touch = func_null;
self.move_bounce_factor = g_balance_electro_secondary_bouncefactor;
self.move_bounce_stopspeed = g_balance_electro_secondary_bouncestop;
break;
self.mins = '-3 -3 -3';
self.maxs = '3 3 3';
self.move_movetype = MOVETYPE_BOUNCE;
- self.move_touch = SUB_Null;
+ self.move_touch = func_null;
self.move_bounce_factor = g_balance_grenadelauncher_bouncefactor;
self.move_bounce_stopspeed = g_balance_grenadelauncher_bouncestop;
break;
self.colormod = '2 1 1';
self.alphamod = 0.5;
self.move_movetype = MOVETYPE_BOUNCE;
- self.move_touch = SUB_Null;
+ self.move_touch = func_null;
break;
case PROJECTILE_PORTO_BLUE:
self.colormod = '1 1 2';
self.alphamod = 0.5;
self.move_movetype = MOVETYPE_BOUNCE;
- self.move_touch = SUB_Null;
+ self.move_touch = func_null;
break;
case PROJECTILE_HAGAR_BOUNCING:
self.move_movetype = MOVETYPE_BOUNCE;
- self.move_touch = SUB_Null;
+ self.move_touch = func_null;
break;
case PROJECTILE_CRYLINK_BOUNCING:
self.move_movetype = MOVETYPE_BOUNCE;
- self.move_touch = SUB_Null;
+ self.move_touch = func_null;
break;
case PROJECTILE_FIREBALL:
loopsound(self, CH_SHOTS_SINGLE, "weapons/fireball_fly2.wav", VOL_BASE, ATTN_NORM);
case PROJECTILE_FIREMINE:
loopsound(self, CH_SHOTS_SINGLE, "weapons/fireball_fly.wav", VOL_BASE, ATTN_NORM);
self.move_movetype = MOVETYPE_BOUNCE;
- self.move_touch = SUB_Null;
+ self.move_touch = func_null;
self.mins = '-4 -4 -4';
self.maxs = '4 4 4';
break;
self.mins = '0 0 -4';
self.maxs = '0 0 -4';
self.move_movetype = MOVETYPE_BOUNCE;
- self.move_touch = SUB_Null;
+ self.move_touch = func_null;
self.move_bounce_factor = g_balance_electro_secondary_bouncefactor;
self.move_bounce_stopspeed = g_balance_electro_secondary_bouncestop;
break;
METHOD(Button, mouseDrag, float(entity, vector))
METHOD(Button, mouseRelease, float(entity, vector))
METHOD(Button, focusEnter, void(entity))
- ATTRIB(Button, onClick, void(entity, entity), SUB_Null)
+ ATTRIB(Button, onClick, void(entity, entity), func_null)
ATTRIB(Button, onClickEntity, entity, NULL)
ATTRIB(Button, src, string, string_null)
ATTRIB(Button, srcSuffix, string, string_null)
{
if(cvar("menu_sounds"))
localsound("sound/misc/menu2.wav");
- me.onClick(me, me.onClickEntity);
+ if(me.onClick)
+ me.onClick(me, me.onClickEntity);
}
me.pressed = 0;
}
{
// keyboard click timer expired? Fire the event then.
if not(me.disabled)
- me.onClick(me, me.onClickEntity);
+ if(me.onClick)
+ me.onClick(me, me.onClickEntity);
}
me.clickTime -= frametime;
float menuNotTheFirstFrame;
float menuMouseMode;
-void SUB_Null() { }
-
void m_sync()
{
updateCompression();
float conwidth, conheight; // "virtual" conwidth/height values for other stuff to assume for scaling
-void SUB_Null();
-
float preMenuInit(); // you have to define this for pre-menu initialization. Return 0 if initialization needs to be retried a frame later, 1 if it succeeded.
void preMenuDraw(); // this is run before the menu is drawn. You may put some stuff there that has to be done every frame.
void postMenuDraw(); // this is run just after the menu is drawn (or not). Useful to draw something over everything else.
METHOD(XonoticInputBox, setText, void(entity, string))
ATTRIB(XonoticInputBox, fontSize, float, SKINFONTSIZE_NORMAL)
ATTRIB(XonoticInputBox, image, string, SKINGFX_INPUTBOX)
- ATTRIB(XonoticInputBox, onChange, void(entity, entity), SUB_Null)
+ ATTRIB(XonoticInputBox, onChange, void(entity, entity), func_null)
ATTRIB(XonoticInputBox, onChangeEntity, entity, NULL)
- ATTRIB(XonoticInputBox, onEnter, void(entity, entity), SUB_Null)
+ ATTRIB(XonoticInputBox, onEnter, void(entity, entity), func_null)
ATTRIB(XonoticInputBox, onEnterEntity, entity, NULL)
ATTRIB(XonoticInputBox, marginLeft, float, SKINMARGIN_INPUTBOX_CHARS)
ATTRIB(XonoticInputBox, marginRight, float, SKINMARGIN_INPUTBOX_CHARS)
if(me.text != new)
{
SUPER(XonoticInputBox).setText(me, new);
- me.onChange(me, me.onChangeEntity);
+ if(me.onChange)
+ me.onChange(me, me.onChangeEntity);
if(me.saveImmediately)
me.saveCvars(me);
}
me.saveCvars(me);
r = 1;
}
- me.onEnter(me, me.onEnterEntity);
+ if(me.onEnter)
+ me.onEnter(me, me.onEnterEntity);
}
if(SUPER(XonoticInputBox).keyDown(me, key, ascii, shift))
r = 1;
setmodel (e, "models/ebomb.mdl");
e.movetype = MOVETYPE_NONE;
e.solid = SOLID_NOT;
- e.think = SUB_Null;
+ e.think = func_null;
e.nextthink = -1;
e.scale = 16;
}
setmodel(self,"");
self.solid = SOLID_NOT;
self.takedamage = DAMAGE_NO;
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
self.enemy = world;
self.think = zombie_spawn;
self.nextthink = time + autocvar_g_monster_zombie_respawntime;
ball.velocity = '0 0 0';
ball.movetype = MOVETYPE_NONE;
- ball.touch = SUB_Null;
+ ball.touch = func_null;
ball.effects |= EF_NOSHADOW;
ball.scale = 1; // scale down.
if (self.cnt < 2) { // step 1
if (time == self.teamtime)
bprint("The ", ColoredTeamName(self.team), " held the ball for too long.\n");
- self.touch = SUB_Null;
+ self.touch = func_null;
self.movetype = MOVETYPE_NOCLIP;
self.velocity = '0 0 0'; // just in case?
if(!self.cnt)
ball.cnt = 1;
ball.think = ResetBall;
if (ball.classname == "nexball_basketball")
- ball.touch = football_touch; // better than SUB_Null: football control until the ball gets reset
+ ball.touch = football_touch; // better than func_null: football control until the ball gets reset
ball.nextthink = time + autocvar_g_nexball_delay_goal * (self.team != GOAL_OUT);
}
void bumb_die()
{
self.health = 0;
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
self.solid = SOLID_CORPSE;
self.takedamage = DAMAGE_NO;
self.deadflag = DEAD_DYING;
self.superweapons_finished = 0;
self.pushltime = 0;
self.istypefrag = 0;
- self.think = SUB_Null;
+ self.think = func_null;
self.nextthink = 0;
self.hook_time = 0;
self.runes = 0;
self.invincible_finished = 0;
self.pushltime = 0;
// players have no think function
- self.think = SUB_Null;
+ self.think = func_null;
self.nextthink = 0;
self.hook_time = 0;
self.dmg_team = 0;
self.health = self.max_health;
self.takedamage = DAMAGE_NO;
self.bot_attack = FALSE;
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
self.state = 1;
func_breakable_colormod();
}
self.state = 1;
self.think = GrapplingHookThink;
self.nextthink = time;
- self.touch = SUB_Null;
+ self.touch = func_null;
self.velocity = '0 0 0';
self.movetype = MOVETYPE_NONE;
self.hook_length = -1;
setorigin (self, self.origin);
//self.pflags = PFLAGS_FULLDYNAMIC;
self.solid = SOLID_NOT;
- //self.blocked = SUB_Null;
+ //self.blocked = func_null;
//if (self.spawnflags & DNOSHADOW)
// self.pflags = self.pflags + PFLAGS_NOSHADOW;
//if (self.spawnflags & START_OFF)
-void SUB_Null() {}
float SUB_True() { return 1; }
float SUB_False() { return 0; }
controller.think1 = self.think;
// the thinking is now done by the controller
- self.think = SUB_Null;
+ self.think = func_null;
self.nextthink = self.ltime + traveltime;
// invoke controller
else
{ // we can't just remove (self) here, because this is a touch function
// called wheil C code is looping through area links...
- self.touch = SUB_Null;
+ self.touch = func_null;
}
}
self.takedamage = DAMAGE_YES;
self.solid = SOLID_BBOX;
}
- self.think = SUB_Null;
+ self.think = func_null;
self.team = self.team_saved;
}
void delay_reset()
{
- self.think = SUB_Null;
+ self.think = func_null;
}
void spawnfunc_trigger_delay()
self.velocity = '0 0 0';
self.movetype = MOVETYPE_NONE;
self.effects |= EF_NODRAW;
- self.touch = SUB_Null;
+ self.touch = func_null;
self.think = ka_TimeScoring;
self.nextthink = time + autocvar_g_keepaway_score_timeinterval;
self.takedamage = DAMAGE_NO;
ball.velocity = '0 0 0';
ball.movetype = MOVETYPE_NONE;
- ball.touch = SUB_Null;
+ ball.touch = func_null;
ball.effects |= EF_NOSHADOW;
ball.scale = 1; // scale down.
{
if(time == self.teamtime)
bprint("The ", ColoredTeamName(self.team), " held the ball for too long.\n");
- self.touch = SUB_Null;
+ self.touch = func_null;
self.movetype = MOVETYPE_NOCLIP;
self.velocity = '0 0 0'; // just in case?
if(!self.cnt)
ball.cnt = 1;
ball.think = ResetBall;
if(ball.classname == "nexball_basketball")
- ball.touch = football_touch; // better than SUB_Null: football control until the ball gets reset
+ ball.touch = football_touch; // better than func_null: football control until the ball gets reset
ball.nextthink = time + autocvar_g_nexball_delay_goal * (self.team != GOAL_OUT);
}
{
entity ball, attacker;
attacker = self.owner;
- //self.think = SUB_Null;
+ //self.think = func_null;
//self.enemy = world;
PROJECTILE_TOUCH;
self.islinked = FALSE;
self.isshielded = FALSE;
self.takedamage = DAMAGE_NO; // can't be hurt anymore
- self.event_damage = SUB_Null; // won't do anything if hurt
+ self.event_damage = func_null; // won't do anything if hurt
self.count = 0; // reset counter
self.think = onslaught_generator_deaththink; // explosion sequence
self.nextthink = time; // start exploding immediately
self.isshielded = TRUE;
self.enemy.solid = SOLID_NOT;
self.enemy.colormap = self.colormap;
- self.think = self.enemy.think = SUB_Null;
- self.nextthink = 0; // don't like SUB_Null :P
+ self.think = self.enemy.think = func_null;
+ self.nextthink = 0; // don't like func_null :P
setmodel(self, "models/onslaught/controlpoint_pad.md3");
//setsize(self, '-32 -32 0', '32 32 8');
{
portal.skin = 2;
portal.solid = SOLID_NOT;
- portal.touch = SUB_Null;
- portal.think = SUB_Null;
+ portal.touch = func_null;
+ portal.think = func_null;
portal.effects = 0;
portal.nextthink = 0;
portal.takedamage = DAMAGE_NO;
{
portal.skin = 2;
portal.solid = SOLID_NOT;
- portal.touch = SUB_Null;
- portal.think = SUB_Null;
+ portal.touch = func_null;
+ portal.think = func_null;
portal.effects = EF_ADDITIVE;
portal.nextthink = 0;
portal.takedamage = DAMAGE_YES;
{
portal.skin = 1;
portal.solid = SOLID_NOT;
- portal.touch = SUB_Null;
- portal.think = SUB_Null;
+ portal.touch = func_null;
+ portal.think = func_null;
portal.effects = EF_STARDUST | EF_BLUE;
portal.nextthink = 0;
portal.takedamage = DAMAGE_YES;
other.runes = other.runes | self.runes | self.enemy.runes;
- //self.think = SUB_Null;
+ //self.think = func_null;
//self.nextthink = 0;
self.think = RuneCarriedThink;
self.nextthink = time;
- self.touch = SUB_Null;
+ self.touch = func_null;
self.solid = SOLID_NOT;
setorigin(self, self.origin);
// take over the touch() function, so we can mark secret as found
self.touch = trigger_secret_touch;
// ignore triggering;
- self.use = SUB_Null;
+ self.use = func_null;
}
if(self.classname != "droppedweapon")
{
- self.think = SUB_Null;
+ self.think = func_null;
self.nextthink = 0;
if(self.waypointsprite_attached)
if (self.spawnflags & PUSH_ONCE)
{
- self.touch = SUB_Null;
+ self.touch = func_null;
self.think = SUB_Remove;
self.nextthink = time;
}
void plat_use()
{
- self.use = SUB_Null;
+ self.use = func_null;
if (self.state != 4)
objerror ("plat_use: not in up state");
plat_go_down();
// wait for targets to spawn
self.nextthink = self.ltime + 999999999;
- self.think = SUB_Null;
+ self.think = func_null;
// TODO make a reset function for this one
}
controller.nextthink = time + 1;
controller.think = func_bobbing_controller_think;
self.nextthink = self.ltime + 999999999;
- self.think = SUB_Null;
+ self.think = func_null;
// Savage: Reduce bandwith, critical on e.g. nexdm02
self.effects |= EF_LOWPRECISION;
controller.nextthink = time + 1;
controller.think = func_pendulum_controller_think;
self.nextthink = self.ltime + 999999999;
- self.think = SUB_Null;
+ self.think = func_null;
//self.effects |= EF_LOWPRECISION;
setorigin(self, self.pos1);
self.velocity = '0 0 0';
self.state = STATE_BOTTOM;
- self.think = SUB_Null;
+ self.think = func_null;
}
// spawnflags require key (for now only func_door)
self.angles = self.pos1;
self.avelocity = '0 0 0';
self.state = STATE_BOTTOM;
- self.think = SUB_Null;
+ self.think = func_null;
}
void door_rotating_init_startopen()
self.takedamage = DAMAGE_YES;
}
setorigin(self, self.oldorigin);
- self.think = SUB_Null;
+ self.think = func_null;
}
/*QUAKED spawnfunc_func_door_secret (0 .5 .8) ? open_once 1st_left 1st_down no_shoot always_shoot
controller.nextthink = time + 1;
controller.think = func_fourier_controller_think;
self.nextthink = self.ltime + 999999999;
- self.think = SUB_Null;
+ self.think = func_null;
// Savage: Reduce bandwith, critical on e.g. nexdm02
self.effects |= EF_LOWPRECISION;
// wait for targets to spawn
self.nextthink = self.ltime + 999999999;
- self.think = SUB_Null;
+ self.think = func_null;
// Savage: Reduce bandwith, critical on e.g. nexdm02
self.effects |= EF_LOWPRECISION;
self.solid = SOLID_NOT;
self.tur_head.solid = self.solid;
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
self.takedamage = DAMAGE_NO;
self.health = 0;
if (self.health <= 0)
{
- self.event_damage = SUB_Null;
- self.tur_head.event_damage = SUB_Null;
+ self.event_damage = func_null;
+ self.tur_head.event_damage = func_null;
self.takedamage = DAMAGE_NO;
self.nextthink = time;
self.think = turret_stdproc_die;
{
self.takedamage = DAMAGE_NO;
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
#ifdef TURRET_DEBUG
float d;
d = RadiusDamage (self, self.owner, self.owner.shot_dmg, 0, self.owner.shot_radius, self, self.owner.shot_force, self.totalfrags, world);
self.movetype = MOVETYPE_WALK;
self.effects &~= EF_NODRAW;
self.alpha = 1;
- self.PlayerPhysplug = SUB_Null;
+ self.PlayerPhysplug = func_null;
self.view_ofs = PL_VIEW_OFS;
self.event_damage = PlayerDamage;
self.hud = HUD_NORMAL;
other.solid = SOLID_NOT;
other.movetype = MOVETYPE_NOCLIP;
other.alpha = -1;
- other.event_damage = SUB_Null;
+ other.event_damage = func_null;
other.view_ofs = '0 0 0';
other.hud = _gun.hud;
other.PlayerPhysplug = _gun.PlayerPhysplug;
if(random() > 0.5)
_body.touch = bumb_blowup;
else
- _body.touch = SUB_Null;
+ _body.touch = func_null;
_body.think = bumb_diethink;
_body.nextthink = time;
pointparticles(particleeffectnum("explosion_medium"), findbetterlocation(self.origin, 16), '0 0 0', 1);
self.health = 0;
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
self.solid = SOLID_CORPSE;
self.takedamage = DAMAGE_NO;
self.deadflag = DEAD_DYING;
self.colormod = '0 0 0';
self.avelocity = '0 0 0';
self.velocity = '0 0 0';
- self.touch = SUB_Null;
+ self.touch = func_null;
self.nextthink = 0;
setorigin(self, self.pos1);
void racer_die()
{
self.health = 0;
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
self.solid = SOLID_CORPSE;
self.takedamage = DAMAGE_NO;
self.deadflag = DEAD_DYING;
self.velocity = '0 0 0';
setorigin(self, self.pos1);
- self.touch = SUB_Null;
+ self.touch = func_null;
self.nextthink = 0;
}
void raptor_die()
{
self.health = 0;
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
self.solid = SOLID_CORPSE;
self.takedamage = DAMAGE_NO;
self.deadflag = DEAD_DYING;
void spiderbot_die()
{
self.health = 0;
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
self.takedamage = DAMAGE_NO;
- self.touch = SUB_Null;
+ self.touch = func_null;
self.cnt = 3.4 + time + random() * 2;
self.think = spiderbot_blowup;
self.nextthink = time;
if(self.health < 1)
{
self.takedamage = DAMAGE_NO;
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
self.think = self.use;
self.nextthink = time;
}
PROJECTILE_TOUCH;
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
RadiusDamage (self, self.realowner, self.shot_dmg, 0, self.shot_radius, self, self.shot_force, self.totalfrags, other);
remove (self);
self.owner.movetype = MOVETYPE_NOCLIP;
self.owner.alpha = -1;
self.owner.vehicle = self;
- self.owner.event_damage = SUB_Null;
+ self.owner.event_damage = func_null;
self.owner.view_ofs = '0 0 0';
self.colormap = self.owner.colormap;
if(self.tur_head)
_player.movetype = MOVETYPE_WALK;
_player.effects &~= EF_NODRAW;
_player.alpha = 1;
- _player.PlayerPhysplug = SUB_Null;
+ _player.PlayerPhysplug = func_null;
_player.vehicle = world;
_player.view_ofs = PL_VIEW_OFS;
_player.event_damage = PlayerDamage;
self.think = self.W_BallisticBullet_LeaveSolid_think_save;
self.nextthink = max(time, self.W_BallisticBullet_LeaveSolid_nextthink_save);
- self.W_BallisticBullet_LeaveSolid_think_save = SUB_Null;
+ self.W_BallisticBullet_LeaveSolid_think_save = func_null;
self.flags &~= FL_ONGROUND;
void W_PrepareExplosionByDamage(entity attacker, void() explode)
{
self.takedamage = DAMAGE_NO;
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
if((attacker.flags & FL_CLIENT) && !autocvar_g_projectiles_keep_owner)
{
if(IsFlying(other))
AnnounceTo(self.realowner, "electrobitch");
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
self.takedamage = DAMAGE_NO;
if (self.movetype == MOVETYPE_BOUNCE)
{
{
W_Plasma_TriggerCombo(self.origin, autocvar_g_balance_electro_combo_comboradius, self.realowner);
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
RadiusDamage (self, self.realowner, autocvar_g_balance_electro_combo_damage, autocvar_g_balance_electro_combo_edgedamage, autocvar_g_balance_electro_combo_radius, world, autocvar_g_balance_electro_combo_force, WEP_ELECTRO | HITTYPE_BOUNCE, world); // use THIS type for a combo because primary can't bounce
remove (self);
}
vector dir;
float d;
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
self.takedamage = DAMAGE_NO;
// 1. dist damage
if(IsFlying(other))
AnnounceTo(self.realowner, "airshot");
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
self.takedamage = DAMAGE_NO;
if(self.movetype == MOVETYPE_NONE)
if(IsFlying(other))
AnnounceTo(self.realowner, "airshot");
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
self.takedamage = DAMAGE_NO;
if(self.movetype == MOVETYPE_NONE)
void W_Hagar_Explode (void)
{
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
RadiusDamage (self, self.realowner, autocvar_g_balance_hagar_primary_damage, autocvar_g_balance_hagar_primary_edgedamage, autocvar_g_balance_hagar_primary_radius, world, autocvar_g_balance_hagar_primary_force, self.projectiledeathtype, other);
remove (self);
void W_Hagar_Explode2 (void)
{
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
RadiusDamage (self, self.realowner, autocvar_g_balance_hagar_secondary_damage, autocvar_g_balance_hagar_secondary_edgedamage, autocvar_g_balance_hagar_secondary_radius, world, autocvar_g_balance_hagar_secondary_force, self.projectiledeathtype, other);
remove (self);
{
PROJECTILE_TOUCH;
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
if(self.projectiledeathtype & HITTYPE_SECONDARY)
RadiusDamage (self, self.realowner, autocvar_g_balance_hlac_secondary_damage, autocvar_g_balance_hlac_secondary_edgedamage, autocvar_g_balance_hlac_secondary_radius, world, autocvar_g_balance_hlac_secondary_force, self.projectiledeathtype, other);
void W_Hook_Explode2 (void)
{
- self.event_damage = SUB_Null;
- self.touch = SUB_Null;
+ self.event_damage = func_null;
+ self.touch = func_null;
self.effects |= EF_NODRAW;
self.think = W_Hook_ExplodeThink;
{
PROJECTILE_TOUCH;
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
if (self.dmg)
RadiusDamage (self, self.realowner, autocvar_g_balance_laser_secondary_damage, autocvar_g_balance_laser_secondary_edgedamage, autocvar_g_balance_laser_secondary_radius, world, autocvar_g_balance_laser_secondary_force, self.projectiledeathtype, other);
else
newmine.mine_time = self.mine_time;
- newmine.touch = SUB_Null;
+ newmine.touch = func_null;
newmine.think = W_Mine_Think;
newmine.nextthink = time;
newmine.cnt = self.cnt;
if(IsFlying(other))
AnnounceTo(self.realowner, "airshot");
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
self.takedamage = DAMAGE_NO;
RadiusDamage (self, self.realowner, autocvar_g_balance_minelayer_damage, autocvar_g_balance_minelayer_edgedamage, autocvar_g_balance_minelayer_radius, world, autocvar_g_balance_minelayer_force, self.projectiledeathtype, other);
void W_Mine_DoRemoteExplode ()
{
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
self.takedamage = DAMAGE_NO;
if(self.movetype == MOVETYPE_NONE || self.movetype == MOVETYPE_FOLLOW)
if(IsFlying(other))
AnnounceTo(self.realowner, "airshot");
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
self.takedamage = DAMAGE_NO;
RadiusDamage (self, self.realowner, autocvar_g_balance_rocketlauncher_damage, autocvar_g_balance_rocketlauncher_edgedamage, autocvar_g_balance_rocketlauncher_radius, world, autocvar_g_balance_rocketlauncher_force, self.projectiledeathtype, other);
{
W_Rocket_Unregister();
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
self.takedamage = DAMAGE_NO;
RadiusDamage (self, self.realowner, autocvar_g_balance_rocketlauncher_remote_damage, autocvar_g_balance_rocketlauncher_remote_edgedamage, autocvar_g_balance_rocketlauncher_remote_radius, world, autocvar_g_balance_rocketlauncher_remote_force, self.projectiledeathtype | HITTYPE_BOUNCE, world);
// ============================
void Seeker_Missile_Explode ()
{
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
RadiusDamage (self, self.realowner, autocvar_g_balance_seeker_missile_damage, autocvar_g_balance_seeker_missile_edgedamage, autocvar_g_balance_seeker_missile_radius, world, autocvar_g_balance_seeker_missile_force, self.projectiledeathtype, other);
remove (self);
// ============================
void Seeker_Flac_Explode ()
{
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
RadiusDamage (self, self.realowner, autocvar_g_balance_seeker_flac_damage, autocvar_g_balance_seeker_flac_edgedamage, autocvar_g_balance_seeker_flac_radius, world, autocvar_g_balance_seeker_flac_force, self.projectiledeathtype, other);
te_knightspike(org2);
- self.event_damage = SUB_Null;
+ self.event_damage = func_null;
Damage_DamageInfo(self.origin, 0, 0, 0, self.velocity, WEP_SEEKER | HITTYPE_HEADSHOT, other.species, self);
if (other.takedamage == DAMAGE_AIM && other.deadflag == DEAD_NO)