summaryrefslogtreecommitdiff
path: root/src/strife/p_enemy.c
diff options
context:
space:
mode:
authorSamuel Villareal2010-09-06 22:27:11 +0000
committerSamuel Villareal2010-09-06 22:27:11 +0000
commita368593e8f268c3400c5810654232ffa9f0d2704 (patch)
tree7f450adf905f0552701b8583c0904c0a7f5331f2 /src/strife/p_enemy.c
parent25e014bf2602d3f145da54a9329854aa615a3f75 (diff)
downloadchocolate-doom-a368593e8f268c3400c5810654232ffa9f0d2704.tar.gz
chocolate-doom-a368593e8f268c3400c5810654232ffa9f0d2704.tar.bz2
chocolate-doom-a368593e8f268c3400c5810654232ffa9f0d2704.zip
+ More codepointers implemented
Subversion-branch: /branches/strife-branch Subversion-revision: 2025
Diffstat (limited to 'src/strife/p_enemy.c')
-rw-r--r--src/strife/p_enemy.c49
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)