Esempio n. 1
0
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;
}
Esempio n. 2
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);
}    
Esempio n. 3
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;
}
Esempio n. 4
0
int DoZillaMove(short SpriteNum)
{
    SPRITEp sp = &sprite[SpriteNum];
    USERp u = User[SpriteNum];
    short choose;
    static int handle;

    //if (TEST(u->Flags,SPR_SLIDING))
    //DoActorSlide(SpriteNum);

    // Random Zilla taunts
    if (!FX_SoundActive(handle))
    {
        choose = STD_RANDOM_RANGE(1000);
        if (choose > 990)
            handle = PlaySound(DIGI_Z16004,&sp->x,&sp->y,&sp->z,v3df_none);
        else if (choose > 985)
            handle = PlaySound(DIGI_Z16004,&sp->x,&sp->y,&sp->z,v3df_none);
        else if (choose > 980)
            handle = PlaySound(DIGI_Z16004,&sp->x,&sp->y,&sp->z,v3df_none);
        else if (choose > 975)
            handle = PlaySound(DIGI_Z16004,&sp->x,&sp->y,&sp->z,v3df_none);
    }


    if (u->track >= 0)
        ActorFollowTrack(SpriteNum, ACTORMOVETICS);
    else
        (*u->ActorActionFunc)(SpriteNum);

    KeepActorOnFloor(SpriteNum);

    if (DoActorSectorDamage(SpriteNum))
    {
        return 0;
    }

    return 0;
}
Esempio n. 5
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);
}