int NullSerp(short SpriteNum) { SPRITEp sp = &sprite[SpriteNum]; USERp u = User[SpriteNum]; if (TEST(u->Flags,SPR_SLIDING)) DoActorSlide(SpriteNum); KeepActorOnFloor(SpriteNum); //DoActorSectorDamage(SpriteNum); return 0; }
int NullGoro(short SpriteNum) { SPRITEp sp = &sprite[SpriteNum]; USERp u = User[SpriteNum]; ASSERT(SpriteNum >= 0); if (TEST(u->Flags,SPR_SLIDING)) DoActorSlide(SpriteNum); KeepActorOnFloor(SpriteNum); DoActorSectorDamage(SpriteNum); return(0); }
int DoSerpMove(short SpriteNum) { SPRITEp sp = &sprite[SpriteNum]; USERp u = User[SpriteNum]; if (TEST(u->Flags,SPR_SLIDING)) DoActorSlide(SpriteNum); if (u->track >= 0) ActorFollowTrack(SpriteNum, ACTORMOVETICS); else (*u->ActorActionFunc)(SpriteNum); // serp ring if (sp->pal != 16) { switch (u->Counter2) { case 0: if (u->Health != u->MaxHealth) { NewStateGroup(SpriteNum, sg_SerpSkullSpell); u->Counter2++; } break; case 1: //if (u->Health <= DIV2(u->MaxHealth)) { if (u->Counter <= 0) NewStateGroup(SpriteNum, sg_SerpSkullSpell); } break; } } KeepActorOnFloor(SpriteNum); //DoActorSectorDamage(SpriteNum); return 0; }
int DoGoroMove(short SpriteNum) { SPRITEp sp = &sprite[SpriteNum]; USERp u = User[SpriteNum]; ASSERT(SpriteNum >= 0); if (TEST(u->Flags,SPR_SLIDING)) DoActorSlide(SpriteNum); if (u->track >= 0) ActorFollowTrack(SpriteNum, ACTORMOVETICS); else (*u->ActorActionFunc)(SpriteNum); ASSERT(User[SpriteNum]); KeepActorOnFloor(SpriteNum); DoActorSectorDamage(SpriteNum); return(0); }