mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-30 07:41:22 +00:00
- DECORATE related Hexen fixes.
SVN r1153 (trunk)
This commit is contained in:
parent
d533f839dd
commit
81132c809f
23 changed files with 83 additions and 84 deletions
|
@ -15,12 +15,6 @@
|
|||
static FRandom pr_staffcheck ("CStaffCheck");
|
||||
static FRandom pr_blink ("CStaffBlink");
|
||||
|
||||
void A_CStaffInitBlink (AActor *actor);
|
||||
void A_CStaffCheckBlink (AActor *actor);
|
||||
void A_CStaffCheck (AActor *actor);
|
||||
void A_CStaffAttack (AActor *actor);
|
||||
void A_CStaffMissileSlither (AActor *);
|
||||
|
||||
// Serpent Staff Missile ----------------------------------------------------
|
||||
|
||||
class ACStaffMissile : public AActor
|
||||
|
|
|
@ -21,28 +21,6 @@ static FRandom pr_firedemonsplotch ("FiredSplotch");
|
|||
// special2 whether strafing or not
|
||||
//============================================================================
|
||||
|
||||
void A_FiredRocks (AActor *);
|
||||
void A_FiredSpawnRock (AActor *);
|
||||
void A_SmBounce (AActor *);
|
||||
void A_FiredChase (AActor *);
|
||||
void A_FiredAttack (AActor *);
|
||||
void A_FiredSplotch (AActor *);
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
// A_FiredRocks
|
||||
//
|
||||
//============================================================================
|
||||
|
||||
DEFINE_ACTION_FUNCTION(AActor, A_FiredRocks)
|
||||
{
|
||||
A_FiredSpawnRock (self);
|
||||
A_FiredSpawnRock (self);
|
||||
A_FiredSpawnRock (self);
|
||||
A_FiredSpawnRock (self);
|
||||
A_FiredSpawnRock (self);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
// A_FiredSpawnRock
|
||||
|
@ -93,6 +71,21 @@ void A_FiredSpawnRock (AActor *actor)
|
|||
actor->flags &= ~MF_JUSTATTACKED;
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
// A_FiredRocks
|
||||
//
|
||||
//============================================================================
|
||||
|
||||
DEFINE_ACTION_FUNCTION(AActor, A_FiredRocks)
|
||||
{
|
||||
A_FiredSpawnRock (self);
|
||||
A_FiredSpawnRock (self);
|
||||
A_FiredSpawnRock (self);
|
||||
A_FiredSpawnRock (self);
|
||||
A_FiredSpawnRock (self);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
//
|
||||
// A_SmBounce
|
||||
|
|
|
@ -25,11 +25,11 @@ static FRandom pr_fogspawn ("FogSpawn");
|
|||
|
||||
DEFINE_ACTION_FUNCTION(AActor, A_FogSpawn)
|
||||
{
|
||||
static const PClass *fogs[3] =
|
||||
static const char *fogs[3] =
|
||||
{
|
||||
PClass::FindClass ("FogPatchSmall"),
|
||||
PClass::FindClass ("FogPatchMedium"),
|
||||
PClass::FindClass ("FogPatchLarge")
|
||||
"FogPatchSmall",
|
||||
"FogPatchMedium",
|
||||
"FogPatchLarge"
|
||||
};
|
||||
|
||||
AActor *mo=NULL;
|
||||
|
|
|
@ -48,11 +48,11 @@
|
|||
#define BALL2_ANGLEOFFSET (ANGLE_MAX/3)
|
||||
#define BALL3_ANGLEOFFSET ((ANGLE_MAX/3)*2)
|
||||
|
||||
DECLARE_ACTION(A_SlowBalls)
|
||||
DECLARE_ACTION(A_StopBalls)
|
||||
DECLARE_ACTION(A_AccelBalls)
|
||||
DECLARE_ACTION(A_DecelBalls)
|
||||
DECLARE_ACTION(A_SorcOffense2)
|
||||
void A_SlowBalls (AActor *actor);
|
||||
void A_StopBalls (AActor *actor);
|
||||
void A_AccelBalls (AActor *actor);
|
||||
void A_DecelBalls (AActor *actor);
|
||||
void A_SorcOffense2 (AActor *actor);
|
||||
void A_DoBounceCheck (AActor *actor, const char *sound);
|
||||
|
||||
static FRandom pr_heresiarch ("Heresiarch");
|
||||
|
@ -234,7 +234,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_SorcSpinBalls)
|
|||
fixed_t z;
|
||||
|
||||
self->SpawnState += 2; // [RH] Don't spawn balls again
|
||||
CALL_ACTION(A_SlowBalls, self);
|
||||
A_SlowBalls(self);
|
||||
self->args[0] = 0; // Currently no defense
|
||||
self->args[3] = SORC_NORMAL;
|
||||
self->args[4] = SORCBALL_INITIAL_SPEED; // Initial orbit speed
|
||||
|
@ -301,12 +301,12 @@ DEFINE_ACTION_FUNCTION(AActor, A_SorcBallOrbit)
|
|||
break;
|
||||
|
||||
case SORC_DECELERATE: // Balls decelerating
|
||||
CALL_ACTION(A_DecelBalls, actor);
|
||||
A_DecelBalls(actor);
|
||||
actor->SorcUpdateBallAngle ();
|
||||
break;
|
||||
|
||||
case SORC_ACCELERATE: // Balls accelerating
|
||||
CALL_ACTION(A_AccelBalls, actor);
|
||||
A_AccelBalls(actor);
|
||||
actor->SorcUpdateBallAngle ();
|
||||
break;
|
||||
|
||||
|
@ -352,7 +352,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_SorcBallOrbit)
|
|||
else
|
||||
{
|
||||
// Do rapid fire spell
|
||||
CALL_ACTION(A_SorcOffense2, actor);
|
||||
A_SorcOffense2(actor);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -395,14 +395,14 @@ DEFINE_ACTION_FUNCTION(AActor, A_SpeedBalls)
|
|||
//
|
||||
// A_SlowBalls
|
||||
//
|
||||
// Set balls to slow mode - self is sorcerer
|
||||
// Set balls to slow mode - actor is sorcerer
|
||||
//
|
||||
//============================================================================
|
||||
|
||||
DEFINE_ACTION_FUNCTION(AActor, A_SlowBalls)
|
||||
void A_SlowBalls(AActor *actor)
|
||||
{
|
||||
self->args[3] = SORC_DECELERATE; // slow mode
|
||||
self->args[2] = SORCBALL_INITIAL_SPEED; // target speed
|
||||
actor->args[3] = SORC_DECELERATE; // slow mode
|
||||
actor->args[2] = SORCBALL_INITIAL_SPEED; // target speed
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
|
@ -414,9 +414,9 @@ DEFINE_ACTION_FUNCTION(AActor, A_SlowBalls)
|
|||
//
|
||||
//============================================================================
|
||||
|
||||
DEFINE_ACTION_FUNCTION(AActor, A_StopBalls)
|
||||
void A_StopBalls(AActor *scary)
|
||||
{
|
||||
AHeresiarch *actor = static_cast<AHeresiarch *> (self);
|
||||
AHeresiarch *actor = static_cast<AHeresiarch *> (scary);
|
||||
int chance = pr_heresiarch();
|
||||
actor->args[3] = SORC_STOPPING; // stopping mode
|
||||
actor->args[1] = 0; // Reset rotation counter
|
||||
|
@ -440,13 +440,13 @@ DEFINE_ACTION_FUNCTION(AActor, A_StopBalls)
|
|||
//
|
||||
// A_AccelBalls
|
||||
//
|
||||
// Increase ball orbit speed - self is ball
|
||||
// Increase ball orbit speed - actor is ball
|
||||
//
|
||||
//============================================================================
|
||||
|
||||
DEFINE_ACTION_FUNCTION(AActor, A_AccelBalls)
|
||||
void A_AccelBalls(AActor *actor)
|
||||
{
|
||||
AActor *sorc = self->target;
|
||||
AActor *sorc = actor->target;
|
||||
|
||||
if (sorc->args[4] < sorc->args[2])
|
||||
{
|
||||
|
@ -458,7 +458,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_AccelBalls)
|
|||
if (sorc->args[4] >= SORCBALL_TERMINAL_SPEED)
|
||||
{
|
||||
// Reached terminal velocity - stop balls
|
||||
CALL_ACTION(A_StopBalls, sorc);
|
||||
A_StopBalls(sorc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -467,13 +467,13 @@ DEFINE_ACTION_FUNCTION(AActor, A_AccelBalls)
|
|||
//
|
||||
// A_DecelBalls
|
||||
//
|
||||
// Decrease ball orbit speed - self is ball
|
||||
// Decrease ball orbit speed - actor is ball
|
||||
//
|
||||
//============================================================================
|
||||
|
||||
DEFINE_ACTION_FUNCTION(AActor, A_DecelBalls)
|
||||
void A_DecelBalls(AActor *actor)
|
||||
{
|
||||
AActor *sorc = self->target;
|
||||
AActor *sorc = actor->target;
|
||||
|
||||
if (sorc->args[4] > sorc->args[2])
|
||||
{
|
||||
|
@ -640,12 +640,12 @@ void ASorcBall1::CastSorcererSpell ()
|
|||
//
|
||||
//============================================================================
|
||||
|
||||
DEFINE_ACTION_FUNCTION(AActor, A_SorcOffense2)
|
||||
void A_SorcOffense2(AActor *actor)
|
||||
{
|
||||
angle_t ang1;
|
||||
AActor *mo;
|
||||
int delta, index;
|
||||
AActor *parent = self->target;
|
||||
AActor *parent = actor->target;
|
||||
AActor *dest = parent->target;
|
||||
int dist;
|
||||
|
||||
|
@ -655,11 +655,11 @@ DEFINE_ACTION_FUNCTION(AActor, A_SorcOffense2)
|
|||
return;
|
||||
}
|
||||
|
||||
index = self->args[4] << 5;
|
||||
self->args[4] += 15;
|
||||
index = actor->args[4] << 5;
|
||||
actor->args[4] += 15;
|
||||
delta = (finesine[index])*SORCFX4_SPREAD_ANGLE;
|
||||
delta = (delta>>FRACBITS)*ANGLE_1;
|
||||
ang1 = self->angle + delta;
|
||||
ang1 = actor->angle + delta;
|
||||
mo = P_SpawnMissileAngle(parent, PClass::FindClass("SorcFX4"), ang1, 0);
|
||||
if (mo)
|
||||
{
|
||||
|
|
|
@ -332,7 +332,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_LastZap)
|
|||
mo = Spawn<ALightningZap> (self->x, self->y, self->z, ALLOW_REPLACE);
|
||||
if (mo)
|
||||
{
|
||||
mo->SetState (mo->FindState ("Death"));
|
||||
mo->SetState (mo->FindState (NAME_Death));
|
||||
mo->momz = 40*FRACUNIT;
|
||||
mo->Damage = 0;
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ void APigPlayer::MorphPlayerThink ()
|
|||
{ // Snout sniff
|
||||
if (player->ReadyWeapon != NULL)
|
||||
{
|
||||
P_SetPspriteNF(player, ps_weapon, player->ReadyWeapon->FindState(NAME_Flash));
|
||||
P_SetPsprite(player, ps_weapon, player->ReadyWeapon->FindState("Grunt"));
|
||||
}
|
||||
S_Sound (this, CHAN_VOICE, "PigActive1", 1, ATTN_NORM); // snort
|
||||
return;
|
||||
|
|
|
@ -18,6 +18,7 @@ static FRandom pr_thrustraise ("ThrustRaise");
|
|||
class AThrustFloor : public AActor
|
||||
{
|
||||
DECLARE_CLASS (AThrustFloor, AActor)
|
||||
HAS_OBJECT_POINTERS
|
||||
public:
|
||||
void Serialize (FArchive &arc);
|
||||
|
||||
|
@ -27,7 +28,9 @@ public:
|
|||
TObjPtr<AActor> DirtClump;
|
||||
};
|
||||
|
||||
IMPLEMENT_CLASS (AThrustFloor)
|
||||
IMPLEMENT_POINTY_CLASS (AThrustFloor)
|
||||
DECLARE_POINTER (DirtClump)
|
||||
END_POINTERS
|
||||
|
||||
void AThrustFloor::Serialize (FArchive &arc)
|
||||
{
|
||||
|
|
|
@ -12,7 +12,6 @@ ACTOR ClericBoss 10101
|
|||
Monster
|
||||
+FLOORCLIP +TELESTOMP
|
||||
+DONTMORPH
|
||||
-CANUSEWALLS
|
||||
PainSound "PlayerClericPain"
|
||||
DeathSound "PlayerClericCrazyDeath"
|
||||
Obituary "$OBCBOSS"
|
||||
|
|
|
@ -121,8 +121,9 @@ ACTOR CircleFlame
|
|||
Radius 6
|
||||
Damage 2
|
||||
DamageType "Fire"
|
||||
+NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
|
||||
+NOTELEPORT
|
||||
Projectile
|
||||
-ACTIVATEIMPACT
|
||||
-ACTIVATEPCROSS
|
||||
RenderStyle Add
|
||||
DeathSound "ClericFlameCircle"
|
||||
|
||||
|
@ -165,7 +166,6 @@ ACTOR CFlameMissile native
|
|||
DamageType "Fire"
|
||||
Projectile
|
||||
+INVISIBLE
|
||||
-BLOODSPLATTER
|
||||
RenderStyle Add
|
||||
|
||||
action native A_CFlamePuff();
|
||||
|
|
|
@ -13,7 +13,6 @@ ACTOR FighterBoss 10100
|
|||
+FLOORCLIP
|
||||
+TELESTOMP
|
||||
+DONTMORPH
|
||||
-CANUSEWALLS
|
||||
PainSound "PlayerFighterPain"
|
||||
DeathSound "PlayerFighterCrazyDeath"
|
||||
Obituary "$OB_FBOSS"
|
||||
|
|
|
@ -16,7 +16,6 @@ ACTOR FireDemon 10060
|
|||
Monster
|
||||
+DROPOFF +NOGRAVITY +FLOAT
|
||||
+FLOORCLIP +INVULNERABLE +TELESTOMP
|
||||
-CANUSEWALLS
|
||||
SeeSound "FireDemonSpawn"
|
||||
PainSound "FireDemonPain"
|
||||
DeathSound "FireDemonDeath"
|
||||
|
|
|
@ -192,6 +192,7 @@ ACTOR ZPoisonShroom : PoisonBag 8104
|
|||
{
|
||||
Spawn:
|
||||
SHRM A 5 A_PoisonShroom
|
||||
Goto Pain+1
|
||||
Pain:
|
||||
SHRM A 6
|
||||
SHRM B 8 A_Pain
|
||||
|
|
|
@ -25,8 +25,6 @@ ACTOR Heresiarch 10080 native
|
|||
|
||||
action native A_SorcSpinBalls();
|
||||
action native A_SpeedBalls();
|
||||
action native A_SlowBalls();
|
||||
action native A_StopBalls();
|
||||
action native A_SorcBossAttack();
|
||||
action native A_SpawnFizzle();
|
||||
|
||||
|
@ -83,15 +81,12 @@ ACTOR SorcBall native
|
|||
-ACTIVATEPCROSS
|
||||
+FULLVOLDEATH
|
||||
+CANBOUNCEWATER
|
||||
+NOBOUNCESOUND
|
||||
+NOWALLBOUNCESND
|
||||
+HEXENBOUNCE
|
||||
SeeSound "SorcererBallBounce"
|
||||
DeathSound "SorcererBigBallExplode"
|
||||
|
||||
action native A_SorcBallOrbit();
|
||||
action native A_AccelBalls();
|
||||
action native A_DecelBalls();
|
||||
action native A_SorcOffense2();
|
||||
action native A_SorcBallPop();
|
||||
action native A_BounceCheck ();
|
||||
}
|
||||
|
@ -110,6 +105,7 @@ ACTOR SorcBall1 : SorcBall native
|
|||
SBMP B 2 A_BounceCheck
|
||||
Wait
|
||||
Death:
|
||||
SBS4 D 0 A_ChangeFlag("NOBOUNCESOUND", 1)
|
||||
SBS4 D 5 A_Explode(255,255)
|
||||
SBS4 E 5
|
||||
SBS4 FGH 6
|
||||
|
@ -132,6 +128,7 @@ ACTOR SorcBall2 : SorcBall native
|
|||
SBMB B 2 A_BounceCheck
|
||||
Wait
|
||||
Death:
|
||||
SBS4 D 0 A_ChangeFlag("NOBOUNCESOUND", 1)
|
||||
SBS3 D 5 A_Explode(255,255)
|
||||
SBS3 E 5
|
||||
SBS3 FGH 6
|
||||
|
@ -153,6 +150,7 @@ ACTOR SorcBall3 : SorcBall native
|
|||
SBMG B 2 A_BounceCheck
|
||||
Wait
|
||||
Death:
|
||||
SBS4 D 0 A_ChangeFlag("NOBOUNCESOUND", 1)
|
||||
SBS3 D 5 A_Explode(255,255)
|
||||
SBS3 E 5
|
||||
SBS3 FGH 6
|
||||
|
@ -189,7 +187,7 @@ ACTOR SorcFX1
|
|||
SBS1 BCD 3 Bright A_SorcFX1Seek
|
||||
Loop
|
||||
Death:
|
||||
FHFX S 2 Bright A_Explode(30)
|
||||
FHFX S 2 Bright A_Explode(30, 128)
|
||||
FHFX SS 6 Bright
|
||||
Stop
|
||||
}
|
||||
|
@ -275,7 +273,7 @@ ACTOR SorcFX3
|
|||
ACTOR SorcFX3Explosion
|
||||
{
|
||||
+NOBLOCKMAP
|
||||
+MISSILE
|
||||
+NOGRAVITY
|
||||
+NOTELEPORT
|
||||
RenderStyle Translucent
|
||||
Alpha 0.4
|
||||
|
@ -309,7 +307,7 @@ ACTOR SorcFX4
|
|||
Loop
|
||||
Death:
|
||||
SBS4 D 2 Bright
|
||||
SBS4 E 2 Bright A_Explode(20)
|
||||
SBS4 E 2 Bright A_Explode(20, 128)
|
||||
SBS4 FGH 2 Bright
|
||||
Stop
|
||||
}
|
||||
|
|
|
@ -15,7 +15,6 @@ ACTOR Korax 10200
|
|||
+DONTMORPH
|
||||
+NOTARGET
|
||||
+NOICEDEATH
|
||||
+BOSSDEATH
|
||||
SeeSound "KoraxSight"
|
||||
AttackSound "KoraxAttack"
|
||||
PainSound "KoraxPain"
|
||||
|
|
|
@ -12,7 +12,6 @@ ACTOR MageBoss 10102
|
|||
Monster
|
||||
+FLOORCLIP +TELESTOMP
|
||||
+DONTMORPH
|
||||
-CANUSEWALLS
|
||||
PainSound "PlayerMagePain"
|
||||
DeathSound "PlayerMageCrazyDeath"
|
||||
Obituary "$OB_MBOSS"
|
||||
|
|
|
@ -79,7 +79,8 @@ ACTOR IceShard : FrostMissile
|
|||
Game Hexen
|
||||
SpawnID 65
|
||||
DamageType "Ice"
|
||||
+NOTELEPORT
|
||||
-ACTIVATEIMPACT
|
||||
-ACTIVATEPCROSS
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
|
@ -130,7 +130,9 @@ ACTOR LightningZap native
|
|||
Radius 15
|
||||
Height 35
|
||||
Damage 2
|
||||
+NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
|
||||
Projectile
|
||||
-ACTIVATEIMPACT
|
||||
-ACTIVATEPCROSS
|
||||
RenderStyle Add
|
||||
|
||||
action native A_ZapMimic();
|
||||
|
|
|
@ -118,7 +118,7 @@ ACTOR MWeapBloodscourge : MageWeapon native
|
|||
|
||||
ACTOR MageStaffFX2 native
|
||||
{
|
||||
Speed 18
|
||||
Speed 17
|
||||
Height 8
|
||||
Damage 4
|
||||
DamageType "Fire"
|
||||
|
|
|
@ -60,7 +60,9 @@ ACTOR PigPlayer : PlayerPawn native
|
|||
Radius 16
|
||||
Height 24
|
||||
Speed 1
|
||||
+WINDTHRUST
|
||||
+NOSKIN
|
||||
-PICKUP
|
||||
PainSound "PigPain"
|
||||
DeathSound "PigDeath"
|
||||
Player.JumpZ 6
|
||||
|
|
|
@ -85,6 +85,11 @@ ACTOR ThrustFloorUp : ThrustFloor 10091
|
|||
SpawnID 104
|
||||
+SOLID
|
||||
+NOTELEPORT +FLOORCLIP
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
Goto ThrustInit2
|
||||
}
|
||||
}
|
||||
|
||||
// Spike down ---------------------------------------------------------------
|
||||
|
@ -95,4 +100,9 @@ ACTOR ThrustFloorDown : ThrustFloor 10090
|
|||
+NOTELEPORT +FLOORCLIP
|
||||
+INVISIBLE
|
||||
SpawnID 105
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
Goto ThrustInit1
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,7 +14,6 @@ ACTOR Wraith 34
|
|||
Monster
|
||||
+NOGRAVITY +DROPOFF +FLOAT
|
||||
+FLOORCLIP +TELESTOMP
|
||||
-ACTIVATEIMPACT
|
||||
SeeSound "WraithSight"
|
||||
AttackSound "WraithAttack"
|
||||
PainSound "WraithPain"
|
||||
|
|
|
@ -63,7 +63,7 @@ ACTOR Minotaur 9 native
|
|||
Goto See
|
||||
HammerLoop:
|
||||
MNTR X 12
|
||||
Loop
|
||||
Goto Hammer
|
||||
Charge:
|
||||
MNTR U 2 A_MinotaurCharge
|
||||
Loop
|
||||
|
|
|
@ -12,6 +12,7 @@ ACTOR Acolyte : StrifeHumanoid
|
|||
Monster
|
||||
+SEESDAGGERS
|
||||
+NOSPLASHALERT
|
||||
+FLOORCLIP
|
||||
MinMissileChance 150
|
||||
Tag "ACOLYTE"
|
||||
SeeSound "acolyte/sight"
|
||||
|
|
Loading…
Reference in a new issue