class Inventory : Actor native { Default { Inventory.Amount 1; Inventory.MaxAmount 1; Inventory.InterHubAmount 1; Inventory.UseSound "misc/invuse"; Inventory.PickupSound "misc/i_pkup"; Inventory.PickupMessage "$TXT_DEFAULTPICKUPMSG"; } // These are regular functions for the item itself. private action native void A_RestoreSpecialPosition(); private action native void A_RestoreSpecialDoomThing(); private action native void A_RestoreSpecialThing1(); private action native void A_RestoreSpecialThing2(); States { HideDoomish: TNT1 A 1050; TNT1 A 0 A_RestoreSpecialPosition; TNT1 A 1 A_RestoreSpecialDoomThing; Stop; HideSpecial: ACLO E 1400; ACLO A 0 A_RestoreSpecialPosition; ACLO A 4 A_RestoreSpecialThing1; ACLO BABCBCDC 4; ACLO D 4 A_RestoreSpecialThing2; Stop; Held: TNT1 A -1; Stop; HoldAndDestroy: TNT1 A 1; Stop; } } class StateProvider : Inventory native { action native state A_JumpIfNoAmmo(state label); action native void A_CustomPunch(int damage, bool norandom = false, int flags = CPF_USEAMMO, class pufftype = "BulletPuff", float range = 0, float lifesteal = 0, int lifestealmax = 0, class armorbonustype = "ArmorBonus", sound MeleeSound = "", sound MissSound = ""); action native void A_FireBullets(float spread_xy, float spread_z, int numbullets, int damageperbullet, class pufftype = "BulletPuff", int flags = 1, float range = 0, class missile = "", float Spawnheight = 32, float Spawnofs_xy = 0); action native void A_FireCustomMissile(class missiletype, float angle = 0, bool useammo = true, float spawnofs_xy = 0, float spawnheight = 0, int flags = 0, float pitch = 0); action native void A_RailAttack(int damage, int spawnofs_xy = 0, bool useammo = true, color color1 = "", color color2 = "", int flags = 0, float maxdiff = 0, class pufftype = "BulletPuff", float spread_xy = 0, float spread_z = 0, float range = 0, int duration = 0, float sparsity = 1.0, float driftspeed = 1.0, class spawnclass = "none", float spawnofs_z = 0, int spiraloffset = 270, int limit = 0); action native void A_Light(int extralight); action native void A_Light0(); action native void A_Light1(); action native void A_Light2(); action native void A_LightInverse(); action native void A_WeaponReady(int flags = 0); action native void A_Lower(); action native void A_Raise(); action native void A_FirePistol(); action native void A_FireShotgun(); action native void A_FireShotgun2(); action native void A_OpenShotgun2(); action native void A_LoadShotgun2(); action native void A_CloseShotgun2(); action native void A_FireCGun(); action native void A_FireSTGrenade(class grenadetype = "Grenade"); action native void A_FireMissile(); action native void A_FirePlasma(); action native void A_FireRailgun(); action native void A_FireRailgunLeft(); action native void A_FireRailgunRight(); action native void A_RailWait(); action native void A_BFGsound(); action native void A_FireBFG(); action native void A_FireOldBFG(); action native void A_ReFire(state flash = ""); action native void A_ClearReFire(); action native void A_CheckReload(); action native void A_GunFlash(state flash = "", int flags = 0); action native void A_Saw(sound fullsound = "weapons/sawfull", sound hitsound = "weapons/sawhit", int damage = 2, class pufftype = "BulletPuff", int flags = 0, float range = 0, float spread_xy = 2.8125, float spread_z = 0, float lifesteal = 0, int lifestealmax = 0, class armorbonustype = "ArmorBonus"); action native state A_CheckForReload(int counter, state label, bool dontincrement = false); action native void A_ResetReloadCounter(); } class ScoreItem : Inventory native { Default { Height 10; +COUNTITEM; Inventory.Amount 1; +Inventory.ALWAYSPICKUP; } } class Ammo : Inventory native { Default { +INVENTORY.KEEPDEPLETED; Inventory.PickupSound "misc/ammo_pkup"; } } class BackpackItem : Inventory native { } class Armor : Inventory native { Default { Inventory.PickupSound "misc/armor_pkup"; } } class BasicArmor : Armor native { Default { +Inventory.KEEPDEPLETED; } } class BasicArmorBonus : Armor native { Default { +Inventory.AUTOACTIVATE; +Inventory.ALWAYSPICKUP; Inventory.MaxAmount 0; Armor.SavePercent 33.335; } } class BasicArmorPickup : Armor native { Default { +Inventory.AUTOACTIVATE; Inventory.MaxAmount 0; } } class HexenArmor : Armor native { Default { +Inventory.KEEPDEPLETED; +Inventory.UNDROPPABLE; } } class DehackedPickup : Inventory native {} class FakeInventory : Inventory native {} class CustomInventory : StateProvider native {} class Health : Inventory native { Default { Inventory.Amount 1; Inventory.MaxAmount 0; Inventory.PickupSound "misc/health_pkup"; } } class HealthPickup : Inventory native { Default { Inventory.DefMaxAmount; +INVENTORY.INVBAR; } } class Key : Inventory native { Default { +DONTGIB; // Don't disappear due to a crusher Inventory.InterHubAmount 0; Inventory.PickupSound "misc/k_pkup"; } } class PowerupGiver : Inventory native { Default { Inventory.DefMaxAmount; +INVENTORY.INVBAR; +INVENTORY.FANCYPICKUPSOUND; Inventory.PickupSound "misc/p_pkup"; } } class Powerup : Inventory native {} class PowerInvulnerable : Powerup native { Default { Powerup.Duration -30; inventory.icon "SPSHLD0"; } } class PowerStrength : Powerup native { Default { Powerup.Duration 1; Powerup.Color "ff 00 00", 0.5; +INVENTORY.HUBPOWER; } } class PowerInvisibility : Powerup native { Default { +SHADOW; Powerup.Duration -60; Powerup.Strength 80; Powerup.Mode "Fuzzy"; } } class PowerGhost : PowerInvisibility { Default { +GHOST; Powerup.Duration -60; Powerup.Strength 60; Powerup.Mode "None"; } } class PowerShadow : PowerInvisibility { Default { +INVENTORY.HUBPOWER; Powerup.Duration -55; Powerup.Strength 75; Powerup.Mode "Cumulative"; } } class PowerIronFeet : Powerup native { Default { Powerup.Duration -60; Powerup.Color "00 ff 00", 0.125; } } class PowerMask : PowerIronFeet native { Default { Powerup.Duration -80; Powerup.Color "00 00 00", 0; +INVENTORY.HUBPOWER; Inventory.Icon "I_MASK"; } } class PowerLightAmp : Powerup native { Default { Powerup.Duration -120; } } class PowerTorch : PowerLightAmp native {} class PowerFlight : Powerup native { Default { Powerup.Duration -60; +INVENTORY.HUBPOWER; } } class PowerWeaponLevel2 : Powerup native { Default { Powerup.Duration -40; Inventory.Icon "SPINBK0"; +INVENTORY.NOTELEPORTFREEZE; } } class PowerSpeed : Powerup native { Default { Powerup.Duration -45; Speed 1.5; Inventory.Icon "SPBOOT0"; +INVENTORY.NOTELEPORTFREEZE; } } // Player Speed Trail (used by the Speed Powerup) ---------------------------- class PlayerSpeedTrail native { Default { +NOBLOCKMAP; +NOGRAVITY; Alpha 0.6; RenderStyle "Translucent"; } } class PowerMinotaur : Powerup native { Default { Powerup.Duration -25; Inventory.Icon "SPMINO0"; } } class PowerTargeter : Powerup native { Default { Powerup.Duration -160; +INVENTORY.HUBPOWER; } States { Targeter: TRGT A -1; Stop; TRGT B -1; Stop; TRGT C -1; Stop; } } class PowerFrightener : Powerup native { Default { Powerup.Duration -60; } } class PowerBuddha : Powerup native { Default { Powerup.Duration -60; } } class PowerScanner : Powerup native { Default { Powerup.Duration -80; +INVENTORY.HUBPOWER; } } class PowerTimeFreezer : Powerup native { Default { Powerup.Duration -12; } } class PowerDamage : Powerup native { Default { Powerup.Duration -25; } } class PowerProtection : Powerup native { Default { Powerup.Duration -25; } } class PowerDrain : Powerup native { Default { Powerup.Duration -60; } } class PowerRegeneration : Powerup native { Default { Powerup.Duration -120; Powerup.Strength 5; } } class PowerHighJump : Powerup native {} class PowerDoubleFiringSpeed : Powerup native {} class PowerMorph : Powerup native { Default { Powerup.Duration -40; } } class PowerInfiniteAmmo : Powerup native { Default { Powerup.Duration -30; } } class MapRevealer : Inventory native {} class PuzzleItem : Inventory native { Default { +NOGRAVITY; +INVENTORY.INVBAR; Inventory.DefMaxAmount; Inventory.UseSound "PuzzleSuccess"; Inventory.PickupSound "misc/i_pkup"; } } class Weapon : StateProvider native { Default { Inventory.PickupSound "misc/w_pkup"; Weapon.DefaultKickback; Weapon.BobSpeed 1.0; Weapon.BobRangeX 1.0; Weapon.BobRangeY 1.0; +WEAPONSPAWN; } States { LightDone: SHTG E 0 A_Light0; Stop; } action native void A_ZoomFactor(float scale = 1, int flags = 0); const ZOOM_INSTANT = 1; const ZOOM_NOSCALETURNING = 2; action native void A_SetCrosshair(int xhair); } class WeaponGiver : Weapon native { Default { Weapon.AmmoGive1 -1; Weapon.AmmoGive2 -1; } } class WeaponHolder : Inventory native { Default { +NOBLOCKMAP; +NOSECTOR; +INVENTORY.UNDROPPABLE; } } class WeaponPiece : Inventory native { Default { +WEAPONSPAWN; } }