예제 #1
0
int NullZilla(short SpriteNum)
{
    USERp u = User[SpriteNum];
    SPRITEp sp = User[SpriteNum]->SpriteP;

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

#if 0
    if (u->State == s_ZillaDie)
    {
        getzsofslope(sp->sectnum, sp->x, sp->y, &u->hiz, &u->loz);
        u->lo_sectp = &sector[sp->sectnum];
        u->hi_sectp = &sector[sp->sectnum];
        sp->z = u->loz;
    }
#endif

    //if (!TEST(u->Flags,SPR_CLIMBING))
    //    KeepActorOnFloor(SpriteNum);
    getzsofslope(sp->sectnum, sp->x, sp->y, &u->hiz, &u->loz);
    u->lo_sectp = &sector[sp->sectnum];
    u->hi_sectp = &sector[sp->sectnum];
    u->lo_sp = NULL;
    u->hi_sp = NULL;
    sp->z = u->loz;

    DoActorSectorDamage(SpriteNum);

    return 0;
}
예제 #2
0
파일: goro.c 프로젝트: TheCycoONE/jfsw
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);
}    
예제 #3
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;
}
예제 #4
0
파일: goro.c 프로젝트: TheCycoONE/jfsw
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);
}