qzdoom/wadsrc/static/zscript/doom/doomweapons.txt
Christoph Oelckers bb25c5faaa - scriptified the remaining Doom weapon code.
- implemented method calls from struct instances.
- optimized disassembly of VM call instructions to print the function's name at the end where it is more visible and does not need to be truncated. Also use the printable name for script functions here.
2016-11-20 12:27:26 +01:00

63 lines
No EOL
1.1 KiB
Text

// --------------------------------------------------------------------------
//
// Doom weap base class
//
// --------------------------------------------------------------------------
class DoomWeapon : Weapon
{
Default
{
Weapon.Kickback 100;
}
}
extend class StateProvider
{
//
// [RH] A_FireRailgun
//
action void A_FireRailgun(int offset_xy = 0)
{
if (player == null)
{
return;
}
Weapon weap = player.ReadyWeapon;
if (weap != null && invoker == weap && stateinfo != null && stateinfo.mStateType == STATE_Psprite)
{
if (!weap.DepleteAmmo (weap.bAltFire, true, 1))
return;
State flash = weap.FindState('Flash');
if (flash != null)
{
player.SetSafeFlash(weap, flash, random[FireRail]()&1);
}
}
int damage = GetCVar("deathmatch") ? 100 : 150;
A_RailAttack(damage, offset_xy, false); // note that this function handles ammo depletion itself for Dehacked compatibility purposes.
}
action void A_FireRailgunLeft()
{
A_FireRailgun(-10);
}
action void A_FireRailgunRight()
{
A_FireRailgun(10);
}
action void A_RailWait()
{
// only here to satisfy old Dehacked patches.
}
}