diff options
author | Samuel Villareal | 2010-09-06 22:27:11 +0000 |
---|---|---|
committer | Samuel Villareal | 2010-09-06 22:27:11 +0000 |
commit | a368593e8f268c3400c5810654232ffa9f0d2704 (patch) | |
tree | 7f450adf905f0552701b8583c0904c0a7f5331f2 | |
parent | 25e014bf2602d3f145da54a9329854aa615a3f75 (diff) | |
download | chocolate-doom-a368593e8f268c3400c5810654232ffa9f0d2704.tar.gz chocolate-doom-a368593e8f268c3400c5810654232ffa9f0d2704.tar.bz2 chocolate-doom-a368593e8f268c3400c5810654232ffa9f0d2704.zip |
+ More codepointers implemented
Subversion-branch: /branches/strife-branch
Subversion-revision: 2025
-rw-r--r-- | src/strife/p_enemy.c | 49 |
1 files changed, 46 insertions, 3 deletions
diff --git a/src/strife/p_enemy.c b/src/strife/p_enemy.c index e7de0dbd..eda65b8c 100644 --- a/src/strife/p_enemy.c +++ b/src/strife/p_enemy.c @@ -2466,8 +2466,31 @@ void A_TeleportBeacon(mobj_t* actor) } +// +// A_BodyParts +// +// villsa [STRIFE] new codepointer +// void A_BodyParts(mobj_t* actor) { + mobjtype_t type; + mobj_t* mo; + angle_t an; + if(actor->flags & MF_NOBLOOD) + type = MT_JUNK; + else + type = MT_MEAT; + + mo = P_SpawnMobj(actor->x, actor->y, actor->z + (24*FRACUNIT), type); + P_SetMobjState(mo, mo->info->spawnstate + (P_Random()%19)); + + an = ((P_Random() << 13) / 255); + mo->angle = an << ANGLETOFINESHIFT; + + mo->momx += FixedMul(finecosine[an], (P_Random() & 0xf)<<FRACBITS); + mo->momy += FixedMul(finesine[an], (P_Random() & 0xf)<<FRACBITS); + mo->momz += (P_Random() & 0xf)<<FRACBITS; + } @@ -2476,14 +2499,28 @@ void A_ClaxonBlare(mobj_t* actor) } +// +// A_ActiveSound +// +// villsa [STRIFE] new codepointer +// void A_ActiveSound(mobj_t* actor) { - + if(actor->info->activesound) + { + if(!leveltime & 7) + S_StartSound(actor, actor->info->activesound); + } } +// +// A_ClearSoundTarget +// +// villsa [STRIFE] new codepointer +// void A_ClearSoundTarget(mobj_t* actor) { - + actor->subsector->sector->soundtarget = NULL; } void A_DropBurnFlesh(mobj_t* actor) @@ -2491,9 +2528,15 @@ void A_DropBurnFlesh(mobj_t* actor) } +// +// A_FlameDeath +// +// villsa [STRIFE] new codepointer +// void A_FlameDeath(mobj_t* actor) { - + actor->flags |= MF_NOGRAVITY; + actor->momz = (P_Random() & 3) << FRACBITS; } void A_ClearForceField(mobj_t* actor) |