mirror of
https://github.com/ZDoom/Raze.git
synced 2025-01-22 08:22:38 +00:00
762263671a
nnext stuff was omitted for now. This also eliminates the DUDEEXTRA_STATS substructure and integrates its content directly into DUDEEXTRA.
151 lines
5.4 KiB
C++
151 lines
5.4 KiB
C++
//-------------------------------------------------------------------------
|
|
/*
|
|
Copyright (C) 2020-2023 - Christoph Oelckers
|
|
|
|
This file is part of Raze
|
|
|
|
This is free software;you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation;either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY;without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
See the GNU General Public License for more details.
|
|
|
|
*/
|
|
//-------------------------------------------------------------------------
|
|
|
|
#include "vm.h"
|
|
#include "ns.h"
|
|
#include "buildtiles.h"
|
|
#include "blood.h"
|
|
BEGIN_BLD_NS
|
|
|
|
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, flags)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, flags2)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, marker0)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, marker1)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, basePath)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, actordata)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, busy)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, offCeilZ)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, onCeilZ)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, offFloorZ)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, onFloorZ)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, windVel)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, data)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, txID)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, rxID)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, busyTimeA)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, waitTimeA)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, panAngle)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, busyTimeB)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, waitTimeB)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, windAng)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, bobTheta)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, bobSpeed)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, busyWaveA)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, busyWaveB)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, command)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, amplitude)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, freq)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, phase)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, wave)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, shade)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, panVel)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, Depth)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, Key)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, ceilpal)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, damageType)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, floorpal)
|
|
DEFINE_FIELD_X(XSECTOR, XSECTOR, bobZRange)
|
|
|
|
DEFINE_FIELD_X(XWALL, XWALL, flags)
|
|
DEFINE_FIELD_X(XWALL, XWALL, busy)
|
|
DEFINE_FIELD_X(XWALL, XWALL, data)
|
|
DEFINE_FIELD_X(XWALL, XWALL, txID)
|
|
DEFINE_FIELD_X(XWALL, XWALL, rxID)
|
|
DEFINE_FIELD_X(XWALL, XWALL, busyTime)
|
|
DEFINE_FIELD_X(XWALL, XWALL, waitTime)
|
|
DEFINE_FIELD_X(XWALL, XWALL, command)
|
|
DEFINE_FIELD_NAMED_X(XWALL, XWALL, panVel.X, panVelX) // VM does not support int vectors.
|
|
DEFINE_FIELD_NAMED_X(XWALL, XWALL, panVel.Y, panVelY)
|
|
DEFINE_FIELD_X(XWALL, XWALL, key)
|
|
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, aiState)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, flags)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, target)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, burnSource)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, TargetPos)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, goalAng)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, sysData1)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, sysData2)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, scale)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, physAttr)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, health)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, busy)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, data1)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, data2)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, data3)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, txID)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, rxID)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, command)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, busyTime)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, waitTime)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, data4)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, burnTime)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, height)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, stateTimer)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, respawnPending)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, dropMsg)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, key)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, lSkill)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, lockMsg)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, dodgeDir)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, wave)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, medium)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, respawn)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, modernFlags)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, sightstuff)
|
|
DEFINE_FIELD_X(XSPRITE, XSPRITE, patrolturndelay)
|
|
|
|
DEFINE_FIELD_X(DUDEEXTRA, DUDEEXTRA, time)
|
|
DEFINE_FIELD_X(DUDEEXTRA, DUDEEXTRA, teslaHit)
|
|
DEFINE_FIELD_X(DUDEEXTRA, DUDEEXTRA, active)
|
|
DEFINE_FIELD_X(DUDEEXTRA, DUDEEXTRA, prio)
|
|
DEFINE_FIELD_X(DUDEEXTRA, DUDEEXTRA, thinkTime)
|
|
DEFINE_FIELD_X(DUDEEXTRA, DUDEEXTRA, birthCounter)
|
|
|
|
DEFINE_FIELD_UNSIZED(SPRITEHIT, SPRITEHIT, hit)
|
|
DEFINE_FIELD_UNSIZED(SPRITEHIT, SPRITEHIT, ceilhit)
|
|
DEFINE_FIELD_UNSIZED(SPRITEHIT, SPRITEHIT, florhit)
|
|
|
|
DEFINE_FIELD(DBloodActor, dudeSlope)
|
|
DEFINE_FIELD(DBloodActor, hasx)
|
|
DEFINE_FIELD(DBloodActor, explosionhackflag)
|
|
DEFINE_FIELD_UNSIZED(BloodActor, DBloodActor, hit)
|
|
DEFINE_FIELD_UNSIZED(BloodActor, DBloodActor, dudeExtra)
|
|
DEFINE_FIELD_UNSIZED(BloodActor, DBloodActor, xspr)
|
|
DEFINE_FIELD(DBloodActor, ownerActor)
|
|
DEFINE_FIELD(DBloodActor, cumulDamage)
|
|
DEFINE_FIELD(DBloodActor, interpolated)
|
|
|
|
|
|
void Blood_ChangeType(DBloodActor* self, PClassActor* type)
|
|
{
|
|
self->ChangeType(type);
|
|
}
|
|
|
|
DEFINE_ACTION_FUNCTION_NATIVE(DBloodActor, ChangeType, Blood_ChangeType)
|
|
{
|
|
PARAM_SELF_PROLOGUE(DBloodActor);
|
|
PARAM_POINTER(type, PClassActor);
|
|
self->ChangeType(type);
|
|
return 0;
|
|
}
|
|
|
|
END_BLD_NS
|