mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-28 15:02:24 +00:00
102 lines
2.7 KiB
C
102 lines
2.7 KiB
C
//-------------------------------------------------------------------------
|
|
/*
|
|
Copyright (C) 2010-2019 EDuke32 developers and contributors
|
|
Copyright (C) 2019 Nuke.YKT
|
|
|
|
This file is part of NBlood.
|
|
|
|
NBlood is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License version 2
|
|
as published by the Free Software Foundation.
|
|
|
|
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.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*/
|
|
//-------------------------------------------------------------------------
|
|
#pragma once
|
|
|
|
BEGIN_BLD_NS
|
|
|
|
// By NoOne: renamed dude struct
|
|
struct DUDEINFO {
|
|
int16_t seqStartID; // seq
|
|
int16_t startHealth; // health
|
|
uint16_t mass; // mass
|
|
int at6; // unused?
|
|
uint8_t clipdist; // clipdist
|
|
int eyeHeight;
|
|
int aimHeight; // used by just Cerberus
|
|
int hearDist; // hear radius
|
|
int seeDist; // sight radius
|
|
int periphery; // periphery
|
|
int meleeDist; // unused?
|
|
int fleeHealth; // at which hp level enemy will turn in burning dude
|
|
int hinderDamage; // recoil damage
|
|
int changeTarget; // chance to change target when attacked someone else
|
|
int changeTargetKin; // chance to change target when attacked by same type
|
|
int alertChance;
|
|
uint8_t lockOut; // indicates if this dude can trigger something via trigger flags
|
|
int frontSpeed; // acceleration
|
|
int sideSpeed; // dodge
|
|
int backSpeed; // backward speed (unused)
|
|
int angSpeed; // turn speed
|
|
int nGibType[3]; // which gib used when explode dude
|
|
int startDamage[7]; // start damage shift
|
|
int damageVal[7]; // real damage? Hmm?
|
|
int at8c; // unused ?
|
|
int at90; // unused ?
|
|
|
|
// converters to floating point format
|
|
inline double HearDist() const
|
|
{
|
|
return hearDist * maptoworld;
|
|
}
|
|
|
|
inline double SeeDist() const
|
|
{
|
|
return seeDist * maptoworld;
|
|
}
|
|
|
|
inline double MeleeDist() const
|
|
{
|
|
return meleeDist * maptoworld;
|
|
}
|
|
|
|
inline DAngle Periphery() const
|
|
{
|
|
return mapangle(periphery);
|
|
}
|
|
|
|
inline double FrontSpeed() const
|
|
{
|
|
return FixedToFloat(frontSpeed);
|
|
}
|
|
|
|
inline DAngle TurnRange() const
|
|
{
|
|
return DAngle::fromQ16(angSpeed << 3);
|
|
}
|
|
|
|
double fClipdist() const { return clipdist * 0.25; }
|
|
|
|
};
|
|
|
|
extern DUDEINFO dudeInfo[kDudeMax - kDudeBase];
|
|
extern DUDEINFO gPlayerTemplate[4];
|
|
extern DUDEINFO fakeDudeInfo;
|
|
|
|
inline DUDEINFO* getDudeInfo(int const nType)
|
|
{
|
|
if (nType >= kDudeBase && nType < kDudeMax)
|
|
return &dudeInfo[nType - kDudeBase];
|
|
return &fakeDudeInfo;
|
|
}
|
|
|
|
END_BLD_NS
|