this.move_movetype = MOVETYPE_NONE;
}
+void Projectile_ContentsTransition(int prev, int current)
+{ENGINE_EVENT();
+ if(current == CONTENT_WATER)
+ {
+ pointparticles(EFFECT_WATER_SPLASH_SMALL, this.move_origin, this.move_velocity, 1);
+ }
+}
+
void Projectile_ResetTrail(entity this, vector to)
{
this.trail_oldorigin = to;
settouch(this, SUB_Stop);
this.move_movetype = MOVETYPE_TOSS;
this.alphamod = 1;
+ this.contentstransition = Projectile_ContentsTransition;
switch (this.cnt)
{
EFFECT(1, TR_KNIGHTSPIKE, "TR_KNIGHTSPIKE")
EFFECT(1, TR_VORESPIKE, "TR_VORESPIKE")
EFFECT(0, TE_SPARK, "TE_SPARK")
+EFFECT(0, WATER_SPLASH_SMALL, "water_splash_small")
+EFFECT(0, WATER_SPLASH_LARGE, "water_splash_large")
EFFECT(1, ROCKETMINSTA_LASER_RED, "rocketminsta_laser_red")
EFFECT(1, ROCKETMINSTA_LASER_BLUE, "rocketminsta_laser_blue")
{
// dprintf("_Movetype_CheckWater(): Original: '%d', New: '%d'\n", this.move_watertype, nativecontents);
if(this.contentstransition)
- this.contentstransition(this.move_watertype, nativecontents);
+ WITHSELF(this, this.contentstransition(this.move_watertype, nativecontents));
}
this.move_waterlevel = WATERLEVEL_NONE;
{
// dprintf("_Movetype_CheckWaterTransition(): Origin: %s, Direct: '%d', Original: '%d', New: '%d'\n", vtos(ent.move_origin), pointcontents(ent.move_origin), ent.move_watertype, contents);
if(ent.contentstransition)
- ent.contentstransition(ent.move_watertype, contents);
+ WITHSELF(ent, ent.contentstransition(ent.move_watertype, contents));
}
if(contents <= CONTENT_WATER)