mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-06 13:01:03 +00:00
56a3dcfe80
This appears to be the only case where an actor was set to a state owned by a completely unrelated actor which would present some problems with state owner checking in AActor::SetState, so let's better get rid of it ASAP. I believe the only reason this wasn't changed when all actors were exported 8 years ago was that old binary DEHSUPP lump.
625 lines
9.7 KiB
Text
625 lines
9.7 KiB
Text
// --------------------------------------------------------------------------
|
|
//
|
|
// Doom weapon base class
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class DoomWeapon : Weapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.Kickback 100;
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// Fist
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class Fist : Weapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.SelectionOrder 3700;
|
|
Weapon.Kickback 100;
|
|
Obituary "$OB_MPFIST";
|
|
Tag "$TAG_FIST";
|
|
+WEAPON.WIMPY_WEAPON
|
|
+WEAPON.MELEEWEAPON
|
|
}
|
|
States
|
|
{
|
|
Ready:
|
|
PUNG A 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
PUNG A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
PUNG A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
PUNG B 4;
|
|
PUNG C 4 A_Punch;
|
|
PUNG D 5;
|
|
PUNG C 4;
|
|
PUNG B 5 A_ReFire;
|
|
Goto Ready;
|
|
}
|
|
}
|
|
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// Pistol
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class Pistol : DoomWeapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.SelectionOrder 1900;
|
|
Weapon.AmmoUse 1;
|
|
Weapon.AmmoGive 20;
|
|
Weapon.AmmoType "Clip";
|
|
Obituary "$OB_MPPISTOL";
|
|
+WEAPON.WIMPY_WEAPON
|
|
Inventory.Pickupmessage "$PICKUP_PISTOL_DROPPED";
|
|
Tag "$TAG_PISTOL";
|
|
}
|
|
States
|
|
{
|
|
Ready:
|
|
PISG A 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
PISG A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
PISG A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
PISG A 4;
|
|
PISG B 6 A_FirePistol;
|
|
PISG C 4;
|
|
PISG B 5 A_ReFire;
|
|
Goto Ready;
|
|
Flash:
|
|
PISF A 7 Bright A_Light1;
|
|
Goto LightDone;
|
|
PISF A 7 Bright A_Light1;
|
|
Goto LightDone;
|
|
Spawn:
|
|
PIST A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// Chainsaw
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class Chainsaw : Weapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.Kickback 0;
|
|
Weapon.SelectionOrder 2200;
|
|
Weapon.UpSound "weapons/sawup";
|
|
Weapon.ReadySound "weapons/sawidle";
|
|
Inventory.PickupMessage "$GOTCHAINSAW";
|
|
Obituary "$OB_MPCHAINSAW";
|
|
Tag "$TAG_CHAINSAW";
|
|
+WEAPON.MELEEWEAPON
|
|
}
|
|
States
|
|
{
|
|
Ready:
|
|
SAWG CD 4 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
SAWG C 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
SAWG C 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
SAWG AB 4 A_Saw;
|
|
SAWG B 0 A_ReFire;
|
|
Goto Ready;
|
|
Spawn:
|
|
CSAW A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// Shotgun
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class Shotgun : DoomWeapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.SelectionOrder 1300;
|
|
Weapon.AmmoUse 1;
|
|
Weapon.AmmoGive 8;
|
|
Weapon.AmmoType "Shell";
|
|
Inventory.PickupMessage "$GOTSHOTGUN";
|
|
Obituary "$OB_MPSHOTGUN";
|
|
Tag "$TAG_SHOTGUN";
|
|
}
|
|
States
|
|
{
|
|
Ready:
|
|
SHTG A 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
SHTG A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
SHTG A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
SHTG A 3;
|
|
SHTG A 7 A_FireShotgun;
|
|
SHTG BC 5;
|
|
SHTG D 4;
|
|
SHTG CB 5;
|
|
SHTG A 3;
|
|
SHTG A 7 A_ReFire;
|
|
Goto Ready;
|
|
Flash:
|
|
SHTF A 4 Bright A_Light1;
|
|
SHTF B 3 Bright A_Light2;
|
|
Goto LightDone;
|
|
Spawn:
|
|
SHOT A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// Shotgun
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class SuperShotgun : DoomWeapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.SelectionOrder 400;
|
|
Weapon.AmmoUse 2;
|
|
Weapon.AmmoGive 8;
|
|
Weapon.AmmoType "Shell";
|
|
Inventory.PickupMessage "$GOTSHOTGUN2";
|
|
Obituary "$OB_MPSSHOTGUN";
|
|
Tag "$TAG_SUPERSHOTGUN";
|
|
}
|
|
States
|
|
{
|
|
Ready:
|
|
SHT2 A 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
SHT2 A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
SHT2 A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
SHT2 A 3;
|
|
SHT2 A 7 A_FireShotgun2;
|
|
SHT2 B 7;
|
|
SHT2 C 7 A_CheckReload;
|
|
SHT2 D 7 A_OpenShotgun2;
|
|
SHT2 E 7;
|
|
SHT2 F 7 A_LoadShotgun2;
|
|
SHT2 G 6;
|
|
SHT2 H 6 A_CloseShotgun2;
|
|
SHT2 A 5 A_ReFire;
|
|
Goto Ready;
|
|
// unused states
|
|
SHT2 B 7;
|
|
SHT2 A 3;
|
|
Goto Deselect;
|
|
Flash:
|
|
SHT2 I 4 Bright A_Light1;
|
|
SHT2 J 3 Bright A_Light2;
|
|
Goto LightDone;
|
|
Spawn:
|
|
SGN2 A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// Chaingun
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class Chaingun : DoomWeapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.SelectionOrder 700;
|
|
Weapon.AmmoUse 1;
|
|
Weapon.AmmoGive 20;
|
|
Weapon.AmmoType "Clip";
|
|
Inventory.PickupMessage "$GOTCHAINGUN";
|
|
Obituary "$OB_MPCHAINGUN";
|
|
Tag "$TAG_CHAINGUN";
|
|
}
|
|
States
|
|
{
|
|
Ready:
|
|
CHGG A 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
CHGG A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
CHGG A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
CHGG AB 4 A_FireCGun;
|
|
CHGG B 0 A_ReFire;
|
|
Goto Ready;
|
|
Flash:
|
|
CHGF A 5 Bright A_Light1;
|
|
Goto LightDone;
|
|
CHGF B 5 Bright A_Light2;
|
|
Goto LightDone;
|
|
Spawn:
|
|
MGUN A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// Rocket launcher
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class RocketLauncher : DoomWeapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.SelectionOrder 2500;
|
|
Weapon.AmmoUse 1;
|
|
Weapon.AmmoGive 2;
|
|
Weapon.AmmoType "RocketAmmo";
|
|
+WEAPON.NOAUTOFIRE
|
|
Inventory.PickupMessage "$GOTLAUNCHER";
|
|
Tag "$TAG_ROCKETLAUNCHER";
|
|
}
|
|
States
|
|
{
|
|
Ready:
|
|
MISG A 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
MISG A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
MISG A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
MISG B 8 A_GunFlash;
|
|
MISG B 12 A_FireMissile;
|
|
MISG B 0 A_ReFire;
|
|
Goto Ready;
|
|
Flash:
|
|
MISF A 3 Bright A_Light1;
|
|
MISF B 4 Bright;
|
|
MISF CD 4 Bright A_Light2;
|
|
Goto LightDone;
|
|
Spawn:
|
|
LAUN A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
class Rocket : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius 11;
|
|
Height 8;
|
|
Speed 20;
|
|
Damage 20;
|
|
Projectile;
|
|
+RANDOMIZE
|
|
+DEHEXPLOSION
|
|
+ROCKETTRAIL
|
|
SeeSound "weapons/rocklf";
|
|
DeathSound "weapons/rocklx";
|
|
Obituary "$OB_MPROCKET";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
MISL A 1 Bright;
|
|
Loop;
|
|
Death:
|
|
MISL B 8 Bright A_Explode;
|
|
MISL C 6 Bright;
|
|
MISL D 4 Bright;
|
|
Stop;
|
|
BrainExplode:
|
|
MISL BC 10 Bright;
|
|
MISL D 10 A_BrainExplode;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// Grenade -- Taken and adapted from Skulltag, with MBF stuff added to it
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class Grenade : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius 8;
|
|
Height 8;
|
|
Speed 25;
|
|
Damage 20;
|
|
Projectile;
|
|
-NOGRAVITY
|
|
+RANDOMIZE
|
|
+DEHEXPLOSION
|
|
+GRENADETRAIL
|
|
BounceType "Doom";
|
|
Gravity 0.25;
|
|
SeeSound "weapons/grenlf";
|
|
DeathSound "weapons/grenlx";
|
|
BounceSound "weapons/grbnce";
|
|
Obituary "$OB_GRENADE";
|
|
DamageType "Grenade";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
SGRN A 1 Bright;
|
|
Loop;
|
|
Death:
|
|
MISL B 8 Bright A_Explode;
|
|
MISL C 6 Bright;
|
|
MISL D 4 Bright;
|
|
Stop;
|
|
Grenade:
|
|
MISL A 1000 A_Die;
|
|
Wait;
|
|
Detonate:
|
|
MISL B 4 A_Scream;
|
|
MISL C 6 A_Detonate;
|
|
MISL D 10;
|
|
Stop;
|
|
Mushroom:
|
|
MISL B 8 A_Mushroom;
|
|
Goto Death+1;
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// Plasma rifle
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class PlasmaRifle : DoomWeapon
|
|
{
|
|
Default
|
|
{
|
|
Weapon.SelectionOrder 100;
|
|
Weapon.AmmoUse 1;
|
|
Weapon.AmmoGive 40;
|
|
Weapon.AmmoType "Cell";
|
|
Inventory.PickupMessage "$GOTPLASMA";
|
|
Tag "$TAG_PLASMARIFLE";
|
|
}
|
|
States
|
|
{
|
|
Ready:
|
|
PLSG A 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
PLSG A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
PLSG A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
PLSG A 3 A_FirePlasma;
|
|
PLSG B 20 A_ReFire;
|
|
Goto Ready;
|
|
Flash:
|
|
PLSF A 4 Bright A_Light1;
|
|
Goto LightDone;
|
|
PLSF B 4 Bright A_Light1;
|
|
Goto LightDone;
|
|
Spawn:
|
|
PLAS A -1;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
class PlasmaBall : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius 13;
|
|
Height 8;
|
|
Speed 25;
|
|
Damage 5;
|
|
Projectile;
|
|
+RANDOMIZE
|
|
RenderStyle "Add";
|
|
Alpha 0.75;
|
|
SeeSound "weapons/plasmaf";
|
|
DeathSound "weapons/plasmax";
|
|
Obituary "$OB_MPPLASMARIFLE";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
PLSS AB 6 Bright;
|
|
Loop;
|
|
Death:
|
|
PLSE ABCDE 4 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// BFG 2704
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class PlasmaBall1 : PlasmaBall
|
|
{
|
|
Default
|
|
{
|
|
Damage 4;
|
|
BounceType "Classic";
|
|
BounceFactor 1.0;
|
|
Obituary "$OB_MPBFG_MBF";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
PLS1 AB 6 Bright;
|
|
Loop;
|
|
Death:
|
|
PLS1 CDEFG 4 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
class PlasmaBall2 : PlasmaBall1
|
|
{
|
|
States
|
|
{
|
|
Spawn:
|
|
PLS2 AB 6 Bright;
|
|
Loop;
|
|
Death:
|
|
PLS2 CDE 4 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------------
|
|
//
|
|
// BFG 9000
|
|
//
|
|
// --------------------------------------------------------------------------
|
|
|
|
class BFG9000 : DoomWeapon
|
|
{
|
|
Default
|
|
{
|
|
Height 20;
|
|
Weapon.SelectionOrder 2800;
|
|
Weapon.AmmoUse 40;
|
|
Weapon.AmmoGive 40;
|
|
Weapon.AmmoType "Cell";
|
|
+WEAPON.NOAUTOFIRE;
|
|
Inventory.PickupMessage "$GOTBFG9000";
|
|
Tag "$TAG_BFG9000";
|
|
}
|
|
States
|
|
{
|
|
Ready:
|
|
BFGG A 1 A_WeaponReady;
|
|
Loop;
|
|
Deselect:
|
|
BFGG A 1 A_Lower;
|
|
Loop;
|
|
Select:
|
|
BFGG A 1 A_Raise;
|
|
Loop;
|
|
Fire:
|
|
BFGG A 20 A_BFGsound;
|
|
BFGG B 10 A_GunFlash;
|
|
BFGG B 10 A_FireBFG;
|
|
BFGG B 20 A_ReFire;
|
|
Goto Ready;
|
|
Flash:
|
|
BFGF A 11 Bright A_Light1;
|
|
BFGF B 6 Bright A_Light2;
|
|
Goto LightDone;
|
|
Spawn:
|
|
BFUG A -1;
|
|
Stop;
|
|
OldFire:
|
|
BFGG A 10 A_BFGsound;
|
|
BFGG BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 1 A_FireOldBFG;
|
|
BFGG B 0 A_Light0;
|
|
BFGG B 20 A_ReFire;
|
|
Goto Ready;
|
|
}
|
|
}
|
|
|
|
|
|
class BFGBall : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius 13;
|
|
Height 8;
|
|
Speed 25;
|
|
Damage 100;
|
|
Projectile;
|
|
+RANDOMIZE
|
|
RenderStyle "Add";
|
|
Alpha 0.75;
|
|
DeathSound "weapons/bfgx";
|
|
Obituary "$OB_MPBFG_BOOM";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
BFS1 AB 4 Bright;
|
|
Loop;
|
|
Death:
|
|
BFE1 AB 8 Bright;
|
|
BFE1 C 8 Bright A_BFGSpray;
|
|
BFE1 DEF 8 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
class BFGExtra : Actor
|
|
{
|
|
Default
|
|
{
|
|
+NOBLOCKMAP
|
|
+NOGRAVITY
|
|
RenderStyle "Add";
|
|
Alpha 0.75;
|
|
DamageType "BFGSplash";
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
BFE2 ABCD 8 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|