mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-12-18 16:41:24 +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.
178 lines
3 KiB
Text
178 lines
3 KiB
Text
|
|
// The Almighty Sigil! ------------------------------------------------------
|
|
|
|
class Sigil : Weapon native
|
|
{
|
|
Default
|
|
{
|
|
Weapon.Kickback 100;
|
|
Weapon.SelectionOrder 4000;
|
|
Health 1;
|
|
+FLOORCLIP
|
|
+WEAPON.CHEATNOTWEAPON
|
|
Inventory.PickupSound "weapons/sigilcharge";
|
|
Tag "$TAG_SIGIL";
|
|
Inventory.Icon "I_SGL1";
|
|
Inventory.PickupMessage "$TXT_SIGIL";
|
|
}
|
|
|
|
native void A_SelectPiece ();
|
|
native void A_SelectSigilView ();
|
|
native void A_SelectSigilDown ();
|
|
native void A_SelectSigilAttack ();
|
|
native void A_SigilCharge ();
|
|
native void A_FireSigil1 ();
|
|
native void A_FireSigil2 ();
|
|
native void A_FireSigil3 ();
|
|
native void A_FireSigil4 ();
|
|
native void A_FireSigil5 ();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
SIGL A 1;
|
|
SIGL A -1 A_SelectPiece;
|
|
Stop;
|
|
SIGL B -1;
|
|
Stop;
|
|
SIGL C -1;
|
|
Stop;
|
|
SIGL D -1;
|
|
Stop;
|
|
SIGL E -1;
|
|
Stop;
|
|
Ready:
|
|
SIGH A 0 Bright A_SelectSigilView;
|
|
Wait;
|
|
SIGH A 1 Bright A_WeaponReady;
|
|
Wait;
|
|
SIGH B 1 Bright A_WeaponReady;
|
|
Wait;
|
|
SIGH C 1 Bright A_WeaponReady;
|
|
Wait;
|
|
SIGH D 1 Bright A_WeaponReady;
|
|
Wait;
|
|
SIGH E 1 Bright A_WeaponReady;
|
|
Wait;
|
|
Deselect:
|
|
SIGH A 1 Bright A_SelectSigilDown;
|
|
Wait;
|
|
SIGH A 1 Bright A_Lower;
|
|
Wait;
|
|
SIGH B 1 Bright A_Lower;
|
|
Wait;
|
|
SIGH C 1 Bright A_Lower;
|
|
Wait;
|
|
SIGH D 1 Bright A_Lower;
|
|
Wait;
|
|
SIGH E 1 Bright A_Lower;
|
|
Wait;
|
|
Select:
|
|
SIGH A 1 Bright A_SelectSigilView;
|
|
Wait;
|
|
SIGH A 1 Bright A_Raise;
|
|
Wait;
|
|
SIGH B 1 Bright A_Raise;
|
|
Wait;
|
|
SIGH C 1 Bright A_Raise;
|
|
Wait;
|
|
SIGH D 1 Bright A_Raise;
|
|
Wait;
|
|
SIGH E 1 Bright A_Raise;
|
|
Wait;
|
|
|
|
Fire:
|
|
SIGH A 0 Bright A_SelectSigilAttack;
|
|
|
|
SIGH A 18 Bright A_SigilCharge;
|
|
SIGH A 3 Bright A_GunFlash;
|
|
SIGH A 10 A_FireSigil1;
|
|
SIGH A 5;
|
|
Goto Ready;
|
|
|
|
SIGH B 18 Bright A_SigilCharge;
|
|
SIGH B 3 Bright A_GunFlash;
|
|
SIGH B 10 A_FireSigil2;
|
|
SIGH B 5;
|
|
Goto Ready;
|
|
|
|
SIGH C 18 Bright A_SigilCharge;
|
|
SIGH C 3 Bright A_GunFlash;
|
|
SIGH C 10 A_FireSigil3;
|
|
SIGH C 5;
|
|
Goto Ready;
|
|
|
|
SIGH D 18 Bright A_SigilCharge;
|
|
SIGH D 3 Bright A_GunFlash;
|
|
SIGH D 10 A_FireSigil4;
|
|
SIGH D 5;
|
|
Goto Ready;
|
|
|
|
SIGH E 18 Bright A_SigilCharge;
|
|
SIGH E 3 Bright A_GunFlash;
|
|
SIGH E 10 A_FireSigil5;
|
|
SIGH E 5;
|
|
Goto Ready;
|
|
Flash:
|
|
SIGF A 4 Bright A_Light2;
|
|
SIGF B 6 Bright A_LightInverse;
|
|
SIGF C 4 Bright A_Light1;
|
|
SIGF C 0 Bright A_Light0;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// Sigil 1 ------------------------------------------------------------------
|
|
|
|
class Sigil1 : Sigil
|
|
{
|
|
Default
|
|
{
|
|
Inventory.Icon "I_SGL1";
|
|
Health 1;
|
|
}
|
|
}
|
|
|
|
// Sigil 2 ------------------------------------------------------------------
|
|
|
|
class Sigil2 : Sigil
|
|
{
|
|
Default
|
|
{
|
|
Inventory.Icon "I_SGL2";
|
|
Health 2;
|
|
}
|
|
}
|
|
|
|
// Sigil 3 ------------------------------------------------------------------
|
|
|
|
class Sigil3 : Sigil
|
|
{
|
|
Default
|
|
{
|
|
Inventory.Icon "I_SGL3";
|
|
Health 3;
|
|
}
|
|
}
|
|
|
|
// Sigil 4 ------------------------------------------------------------------
|
|
|
|
class Sigil4 : Sigil
|
|
{
|
|
Default
|
|
{
|
|
Inventory.Icon "I_SGL4";
|
|
Health 4;
|
|
}
|
|
}
|
|
|
|
// Sigil 5 ------------------------------------------------------------------
|
|
|
|
class Sigil5 : Sigil
|
|
{
|
|
Default
|
|
{
|
|
Inventory.Icon "I_SGL5";
|
|
Health 5;
|
|
}
|
|
}
|