mirror of https://github.com/PrimeDecomp/prime.git
Add CTweakGunRes and CTweakPlayerGun
This commit is contained in:
parent
f25edfdb7d
commit
074cb7ff98
|
@ -0,0 +1,48 @@
|
|||
#ifndef _CTWEAKGUNRES_HPP
|
||||
#define _CTWEAKGUNRES_HPP
|
||||
|
||||
#include "MetroidPrime/Tweaks/ITweakObject.hpp"
|
||||
|
||||
#include "MetroidPrime/Player/CPlayerState.hpp"
|
||||
|
||||
#include "Kyoto/CObjectReference.hpp"
|
||||
|
||||
class CTweakGunRes : public ITweakObject {
|
||||
public:
|
||||
typedef CAssetId ResId;
|
||||
typedef CPlayerState::EBeamId EBeamId;
|
||||
|
||||
~CTweakGunRes() override;
|
||||
|
||||
ResId x4_gunMotion;
|
||||
ResId x8_grappleArm;
|
||||
ResId xc_rightHand;
|
||||
|
||||
ResId x10_powerBeam;
|
||||
ResId x14_iceBeam;
|
||||
ResId x18_waveBeam;
|
||||
ResId x1c_plasmaBeam;
|
||||
ResId x20_phazonBeam;
|
||||
|
||||
ResId x24_holoTransition;
|
||||
|
||||
ResId x28_bombSet;
|
||||
ResId x2c_bombExplode;
|
||||
ResId x30_powerBombExplode;
|
||||
|
||||
/* Power, Ice, Wave, Plasma, Phazon / Beam, Ball */
|
||||
ResId x34_weapons[2][5];
|
||||
ResId x84_muzzle[5];
|
||||
ResId x94_charge[5];
|
||||
ResId xa4_auxMuzzle[5];
|
||||
|
||||
ResId xb4_grappleSegment;
|
||||
ResId xb8_grappleClaw;
|
||||
ResId xbc_grappleHit;
|
||||
ResId xc0_grappleMuzzle;
|
||||
ResId xc4_grappleSwoosh;
|
||||
};
|
||||
|
||||
extern CTweakGunRes* gpTweakGunRes;
|
||||
|
||||
#endif // _CTWEAKGUNRES_HPP
|
|
@ -0,0 +1,113 @@
|
|||
#ifndef _CTWEAKPLAYERGUN_HPP_
|
||||
#define _CTWEAKPLAYERGUN_HPP_
|
||||
|
||||
#include "MetroidPrime/Tweaks/ITweakObject.hpp"
|
||||
|
||||
#include "Kyoto/Math/CVector3f.hpp"
|
||||
|
||||
#include "rstl/reserved_vector.hpp"
|
||||
|
||||
struct SShotParam {
|
||||
uint x0_weaponType;
|
||||
bool x4_24_charged : 1;
|
||||
bool x4_25_combo : 1;
|
||||
bool x4_26_instaKill : 1;
|
||||
float x8_damage;
|
||||
float xc_radiusDamage;
|
||||
float x10_radius;
|
||||
float x14_knockback;
|
||||
bool x18_24_noImmunity : 1;
|
||||
|
||||
SShotParam()
|
||||
: x0_weaponType(-1)
|
||||
, x4_24_charged(false)
|
||||
, x4_25_combo(false)
|
||||
, x4_26_instaKill(false)
|
||||
, x8_damage(0.f)
|
||||
, xc_radiusDamage(0.f)
|
||||
, x10_radius(0.f)
|
||||
, x14_knockback(0.f)
|
||||
, x18_24_noImmunity(false)
|
||||
{}
|
||||
explicit SShotParam(CInputStream& in);
|
||||
};
|
||||
|
||||
struct SComboShotParam : SShotParam {
|
||||
SComboShotParam() { x4_25_combo = true; }
|
||||
explicit SComboShotParam(CInputStream& in) : SShotParam(in) { x4_25_combo = true; }
|
||||
};
|
||||
|
||||
struct SChargedShotParam : SShotParam {
|
||||
SChargedShotParam() { x4_24_charged = true; }
|
||||
explicit SChargedShotParam(CInputStream& in) : SShotParam(in) { x4_24_charged = true; }
|
||||
};
|
||||
|
||||
struct SWeaponInfo {
|
||||
float x0_coolDown;
|
||||
SShotParam x4_normal;
|
||||
SChargedShotParam x20_charged;
|
||||
|
||||
SWeaponInfo()
|
||||
: x0_coolDown(0.1f) {}
|
||||
explicit SWeaponInfo(CInputStream& in);
|
||||
};
|
||||
|
||||
|
||||
class CTweakPlayerGun : public ITweakObject {
|
||||
public:
|
||||
~CTweakPlayerGun() override;
|
||||
|
||||
float GetUpLookAngle() const { return x4_upLookAngle; }
|
||||
float GetDownLookAngle() const { return x8_downLookAngle; }
|
||||
float GetVerticalSpread() const { return xc_verticalSpread; }
|
||||
float GetHorizontalSpread() const { return x10_horizontalSpread; }
|
||||
float GetHighVerticalSpread() const { return x14_highVerticalSpread; }
|
||||
float GetHighHorizontalSpread() const { return x18_highHorizontalSpread; }
|
||||
float GetLowVerticalSpread() const { return x1c_lowVerticalSpread; }
|
||||
float GetLowHorizontalSpread() const { return x20_lowHorizontalSpread; }
|
||||
float GetAimVerticalSpeed() const { return x24_aimVerticalSpeed; }
|
||||
float GetAimHorizontalSpeed() const { return x28_aimHorizontalSpeed; }
|
||||
float GetBombFuseTime() const { return x2c_bombFuseTime; }
|
||||
float GetBombDropDelayTime() const { return x30_bombDropDelayTime; }
|
||||
float GetHoloHoldTime() const { return x34_holoHoldTime; }
|
||||
float GetGunTransformTime() const { return x38_gunTransformTime; }
|
||||
float GetGunHolsterTime() const { return x3c_gunHolsterTime; }
|
||||
float GetGunNotFiringTime() const { return x40_gunNotFiringTime; }
|
||||
float GetFixedVerticalAim() const { return x44_fixedVerticalAim; }
|
||||
float GetGunExtendDistance() const { return x48_gunExtendDistance; }
|
||||
const CVector3f& GetGunPosition() const { return x4c_gunPosition; }
|
||||
const CVector3f& GetGrapplingArmPosition() const { return x64_grapplingArmPosition; }
|
||||
|
||||
private:
|
||||
float x4_upLookAngle;
|
||||
float x8_downLookAngle;
|
||||
float xc_verticalSpread;
|
||||
float x10_horizontalSpread;
|
||||
float x14_highVerticalSpread;
|
||||
float x18_highHorizontalSpread;
|
||||
float x1c_lowVerticalSpread;
|
||||
float x20_lowHorizontalSpread;
|
||||
float x24_aimVerticalSpeed;
|
||||
float x28_aimHorizontalSpeed;
|
||||
float x2c_bombFuseTime;
|
||||
float x30_bombDropDelayTime;
|
||||
float x34_holoHoldTime;
|
||||
float x38_gunTransformTime;
|
||||
float x3c_gunHolsterTime;
|
||||
float x40_gunNotFiringTime;
|
||||
float x44_fixedVerticalAim;
|
||||
float x48_gunExtendDistance;
|
||||
CVector3f x4c_gunPosition;
|
||||
CVector3f x58_;
|
||||
CVector3f x64_grapplingArmPosition;
|
||||
SShotParam x70_bomb;
|
||||
SShotParam x8c_powerBomb;
|
||||
SShotParam x1d4_missile;
|
||||
SWeaponInfo xa8_beams[5];
|
||||
rstl::reserved_vector<SShotParam,5> x1f0_combos; // Originally rstl::reserved_vector<SShotParam,5>
|
||||
rstl::reserved_vector<float,5> x280_ricochetData;
|
||||
};
|
||||
|
||||
extern CTweakPlayerGun* gpTweakPlayerGun;
|
||||
|
||||
#endif // _CTWEAKPLAYERGUN_HPP_
|
Loading…
Reference in New Issue