mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-26 22:11:43 +00:00
371712c53a
- fixed emission of the self pointer in FxVMFunctionCall. I did not realize that the self expression only sets up a register for the value, not pushing it onto the stack.
309 lines
5.1 KiB
Text
309 lines
5.1 KiB
Text
|
|
// Scriptable marine -------------------------------------------------------
|
|
|
|
class ScriptedMarine : Actor native
|
|
{
|
|
Default
|
|
{
|
|
Health 100;
|
|
Radius 16;
|
|
Height 56;
|
|
Mass 100;
|
|
Speed 8;
|
|
Painchance 160;
|
|
MONSTER;
|
|
-COUNTKILL
|
|
Translation 0;
|
|
Damage 100;
|
|
DeathSound "*death";
|
|
PainSound "*pain50";
|
|
}
|
|
|
|
native void A_M_Refire (bool ignoremissile=false);
|
|
native void A_M_CheckAttack ();
|
|
native void A_MarineChase ();
|
|
native void A_MarineLook ();
|
|
native void A_MarineNoise ();
|
|
native void A_M_Punch (int force);
|
|
native void A_M_SawRefire ();
|
|
native void A_M_FirePistol (bool accurate);
|
|
native void A_M_FireShotgun ();
|
|
native void A_M_FireShotgun2 ();
|
|
native void A_M_FireCGun(bool accurate);
|
|
native void A_M_FireMissile ();
|
|
native void A_M_FirePlasma ();
|
|
native void A_M_FireRailgun ();
|
|
native void A_M_BFGsound ();
|
|
native void A_M_FireBFG ();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
PLAY A 4 A_MarineLook;
|
|
PLAY A 4 A_MarineNoise;
|
|
Loop;
|
|
Idle:
|
|
PLAY A 4 A_MarineLook;
|
|
PLAY A 4 A_MarineNoise;
|
|
PLAY A 4 A_MarineLook;
|
|
PLAY B 4 A_MarineNoise;
|
|
PLAY B 4 A_MarineLook;
|
|
PLAY B 4 A_MarineNoise;
|
|
Loop;
|
|
See:
|
|
PLAY ABCD 4 A_MarineChase;
|
|
Loop;
|
|
|
|
Melee.Fist:
|
|
PLAY E 4 A_FaceTarget;
|
|
PLAY E 4 A_M_Punch(1);
|
|
PLAY A 9;
|
|
PLAY A 0 A_M_Refire(1);
|
|
Loop;
|
|
PLAY A 5 A_FaceTarget;
|
|
Goto See;
|
|
Melee.Berserk:
|
|
PLAY E 4 A_FaceTarget;
|
|
PLAY E 4 A_M_Punch(10);
|
|
PLAY A 9;
|
|
PLAY A 0 A_M_Refire(1);
|
|
Loop;
|
|
PLAY A 5 A_FaceTarget;
|
|
Goto See;
|
|
Melee.Chainsaw:
|
|
PLAY E 4 A_MarineNoise;
|
|
PLAY E 4 A_M_Saw;
|
|
PLAY E 0 A_M_SawRefire;
|
|
goto Melee.Chainsaw+1;
|
|
PLAY A 0;
|
|
Goto See;
|
|
|
|
Missile:
|
|
Missile.None:
|
|
PLAY E 12 A_FaceTarget;
|
|
Goto Idle;
|
|
PLAY F 6 BRIGHT;
|
|
Loop;
|
|
Missile.Pistol:
|
|
PLAY E 4 A_FaceTarget;
|
|
PLAY F 6 BRIGHT A_M_FirePistol(1);
|
|
PLAY A 4 A_FaceTarget;
|
|
PLAY A 0 A_M_Refire;
|
|
PLAY A 5;
|
|
Goto See;
|
|
Fireloop.Pistol:
|
|
PLAY F 6 BRIGHT A_M_FirePistol(0);
|
|
PLAY A 4 A_FaceTarget;
|
|
PLAY A 0 A_M_Refire;
|
|
Goto Fireloop.Pistol;
|
|
PLAY A 5;
|
|
Goto See;
|
|
Missile.Shotgun:
|
|
PLAY E 3 A_M_CheckAttack;
|
|
PLAY F 7 BRIGHT A_M_FireShotgun;
|
|
Goto See;
|
|
Missile.SSG:
|
|
PLAY E 3 A_M_CheckAttack;
|
|
PLAY F 7 BRIGHT A_M_FireShotgun2;
|
|
Goto See;
|
|
Missile.Chaingun:
|
|
PLAY E 4 A_FaceTarget;
|
|
PLAY FF 4 BRIGHT A_M_FireCGun(1);
|
|
PLAY FF 4 BRIGHT A_M_FireCGun(0);
|
|
PLAY A 0 A_M_Refire;
|
|
Goto Missile.Chaingun+3;
|
|
PLAY A 0;
|
|
Goto See;
|
|
Missile.Rocket:
|
|
PLAY E 8;
|
|
PLAY F 6 BRIGHT A_M_FireMissile;
|
|
PLAY E 6;
|
|
PLAY A 0 A_M_Refire;
|
|
Loop;
|
|
PLAY A 0;
|
|
Goto See;
|
|
Missile.Plasma:
|
|
PLAY E 2 A_FaceTarget;
|
|
PLAY E 0 A_FaceTarget;
|
|
PLAY F 3 BRIGHT A_M_FirePlasma;
|
|
PLAY A 0 A_M_Refire;
|
|
Goto Missile.Plasma+1;
|
|
PLAY A 0;
|
|
Goto See;
|
|
Missile.Railgun:
|
|
PLAY E 4 A_M_CheckAttack;
|
|
PLAY F 6 BRIGHT A_M_FireRailgun;
|
|
Goto See;
|
|
Missile.BFG:
|
|
PLAY E 5 A_M_BFGSound;
|
|
PLAY EEEEE 5 A_FaceTarget;
|
|
PLAY F 6 BRIGHT A_M_FireBFG;
|
|
PLAY A 4 A_FaceTarget;
|
|
PLAY A 0 A_M_Refire;
|
|
Loop;
|
|
PLAY A 0;
|
|
Goto See;
|
|
|
|
SkipAttack:
|
|
PLAY A 1;
|
|
Goto See;
|
|
Pain:
|
|
PLAY G 4;
|
|
PLAY G 4 A_Pain;
|
|
Goto Idle;
|
|
Death:
|
|
PLAY H 10;
|
|
PLAY I 10 A_Scream;
|
|
PLAY J 10 A_NoBlocking;
|
|
PLAY KLM 10;
|
|
PLAY N -1;
|
|
Stop;
|
|
XDeath:
|
|
PLAY O 5;
|
|
PLAY P 5 A_XScream;
|
|
PLAY Q 5 A_NoBlocking;
|
|
PLAY RSTUV 5;
|
|
PLAY W -1;
|
|
Stop;
|
|
Raise:
|
|
PLAY MLKJIH 5;
|
|
Goto See;
|
|
}
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
class MarineFist : ScriptedMarine
|
|
{
|
|
States
|
|
{
|
|
Melee:
|
|
Goto Super::Melee.Fist;
|
|
Missile:
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
class MarineBerserk : MarineFist
|
|
{
|
|
States
|
|
{
|
|
Melee:
|
|
Goto Super::Melee.Berserk;
|
|
Missile:
|
|
Stop;
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
class MarineChainsaw : ScriptedMarine
|
|
{
|
|
States
|
|
{
|
|
Melee:
|
|
Goto Super::Melee.Chainsaw;
|
|
Missile:
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
class MarinePistol : ScriptedMarine
|
|
{
|
|
States
|
|
{
|
|
Missile:
|
|
Goto Super::Missile.Pistol;
|
|
}
|
|
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
class MarineShotgun : ScriptedMarine
|
|
{
|
|
States
|
|
{
|
|
Missile:
|
|
Goto Super::Missile.Shotgun;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
class MarineSSG : ScriptedMarine
|
|
{
|
|
States
|
|
{
|
|
Missile:
|
|
Goto Super::Missile.SSG;
|
|
}
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
class MarineChaingun : ScriptedMarine
|
|
{
|
|
States
|
|
{
|
|
Missile:
|
|
Goto Super::Missile.Chaingun;
|
|
}
|
|
}
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
class MarineRocket : MarineFist
|
|
{
|
|
States
|
|
{
|
|
Missile:
|
|
Goto Super::Missile.Rocket;
|
|
}
|
|
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
class MarinePlasma : ScriptedMarine
|
|
{
|
|
States
|
|
{
|
|
Missile:
|
|
Goto Super::Missile.Plasma;
|
|
}
|
|
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
class MarineRailgun : ScriptedMarine
|
|
{
|
|
States
|
|
{
|
|
Missile:
|
|
Goto Super::Missile.Railgun;
|
|
}
|
|
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
class MarineBFG : ScriptedMarine
|
|
{
|
|
States
|
|
{
|
|
Missile:
|
|
Goto Super::Missile.BFG;
|
|
}
|
|
}
|