metaforce/DataSpec/DNACommon/Tweaks/ITweakPlayerGun.hpp

75 lines
2.3 KiB
C++
Raw Normal View History

2018-10-07 03:42:33 +00:00
#pragma once
2017-01-21 06:03:37 +00:00
#include "ITweak.hpp"
#include "zeus/CAABox.hpp"
namespace DataSpec
{
2017-09-05 03:00:19 +00:00
/* Same as CDamageInfo */
2018-02-22 07:24:51 +00:00
struct SShotParam : BigDNA
{
2018-02-22 07:24:51 +00:00
AT_DECL_DNA_YAML
2017-09-05 03:00:19 +00:00
Value<atInt32> weaponType = -1;
bool charged : 1;
bool combo : 1;
bool instaKill : 1;
Value<float> damage = 0.f;
Value<float> radiusDamage = 0.f;
Value<float> radius = 0.f;
Value<float> knockback = 0.f;
2017-09-05 03:00:19 +00:00
bool noImmunity : 1;
SShotParam() { charged = false; combo = false; instaKill = false; noImmunity = false; }
};
struct SComboShotParam : SShotParam
{
2018-02-22 07:24:51 +00:00
AT_DECL_DNA_YAML
2017-09-05 03:00:19 +00:00
SComboShotParam() { combo = true; }
};
struct SChargedShotParam : SShotParam
{
2018-02-22 07:24:51 +00:00
AT_DECL_DNA_YAML
2017-09-05 03:00:19 +00:00
SChargedShotParam() { charged = true; }
};
2018-02-22 07:24:51 +00:00
struct SWeaponInfo : BigDNA
2017-08-26 04:36:25 +00:00
{
2018-02-22 07:24:51 +00:00
AT_DECL_DNA_YAML
2017-08-26 04:36:25 +00:00
Value<float> x0_coolDown = 0.1f;
SShotParam x4_normal;
SChargedShotParam x20_charged;
};
struct ITweakPlayerGun : ITweak
{
2018-02-22 07:24:51 +00:00
AT_DECL_DNA_YAML
virtual float GetUpLookAngle() const = 0;
virtual float GetDownLookAngle() const = 0;
virtual float GetVerticalSpread() const = 0;
virtual float GetHorizontalSpread() const = 0;
virtual float GetHighVerticalSpread() const = 0;
virtual float GetHighHorizontalSpread() const = 0;
virtual float GetLowVerticalSpread() const = 0;
virtual float GetLowHorizontalSpread() const = 0;
virtual float GetAimVerticalSpeed() const = 0; // x24
virtual float GetAimHorizontalSpeed() const = 0; // x28
virtual float GetBombFuseTime() const = 0; // x2c
virtual float GetBombDropDelayTime() const = 0; // x30
virtual float GetHoloHoldTime() const = 0; // x34
virtual float GetGunTransformTime() const = 0; // x38
virtual float GetGunHolsterTime() const = 0;
virtual float GetGunNotFiringTime() const = 0;
virtual float GetFixedVerticalAim() const = 0;
virtual float GetGunExtendDistance() const = 0;
virtual const zeus::CVector3f& GetGunPosition() const = 0;
virtual const zeus::CVector3f& GetGrapplingArmPosition() const = 0;
2017-01-30 02:15:21 +00:00
virtual float GetRichochetDamage(atUint32) const = 0;
2017-08-26 04:36:25 +00:00
virtual const SWeaponInfo& GetBeamInfo(atInt32 beam) const = 0;
virtual const SComboShotParam& GetComboShotInfo(atInt32 beam) const = 0;
virtual const SShotParam& GetBombInfo() const=0;
virtual const SShotParam& GetPowerBombInfo() const=0;
};
}