2018-10-07 03:42:33 +00:00
|
|
|
#pragma once
|
2016-02-05 01:27:03 +00:00
|
|
|
|
2019-09-23 19:00:23 +00:00
|
|
|
#include <memory>
|
|
|
|
|
|
|
|
#include "Runtime/RetroTypes.hpp"
|
|
|
|
#include "Runtime/Particle/CColorElement.hpp"
|
|
|
|
#include "Runtime/Particle/CIntElement.hpp"
|
|
|
|
#include "Runtime/Particle/CModVectorElement.hpp"
|
|
|
|
#include "Runtime/Particle/CParticleDataFactory.hpp"
|
|
|
|
#include "Runtime/Particle/CRealElement.hpp"
|
|
|
|
#include "Runtime/Particle/CVectorElement.hpp"
|
2016-02-13 17:47:54 +00:00
|
|
|
|
2021-04-10 08:42:06 +00:00
|
|
|
namespace metaforce {
|
2016-02-13 19:05:59 +00:00
|
|
|
class CCollisionResponseData;
|
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
struct SCollisionResponseData {
|
|
|
|
TToken<CCollisionResponseData> m_res;
|
|
|
|
bool m_found = false;
|
|
|
|
SCollisionResponseData() = default;
|
|
|
|
SCollisionResponseData(CToken&& tok, bool found) : m_res(std::move(tok)), m_found(found) {}
|
2020-04-11 19:04:53 +00:00
|
|
|
explicit operator bool() const { return m_found; }
|
2016-02-13 19:05:59 +00:00
|
|
|
};
|
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
class CWeaponDescription {
|
2016-02-13 17:47:54 +00:00
|
|
|
public:
|
2018-12-08 05:30:43 +00:00
|
|
|
std::unique_ptr<CVectorElement> x0_IORN;
|
|
|
|
std::unique_ptr<CVectorElement> x4_IVEC;
|
|
|
|
std::unique_ptr<CVectorElement> x8_PSOV;
|
|
|
|
std::unique_ptr<CModVectorElement> xc_PSVM;
|
2019-04-07 05:14:48 +00:00
|
|
|
bool x10_VMD2 = false;
|
2018-12-08 05:30:43 +00:00
|
|
|
std::unique_ptr<CIntElement> x14_PSLT;
|
|
|
|
std::unique_ptr<CVectorElement> x18_PSCL;
|
|
|
|
std::unique_ptr<CColorElement> x1c_PCOL;
|
|
|
|
std::unique_ptr<CVectorElement> x20_POFS;
|
|
|
|
std::unique_ptr<CVectorElement> x24_OFST;
|
2019-04-07 05:14:48 +00:00
|
|
|
bool x28_APSO = false;
|
|
|
|
bool x29_HOMG = false;
|
|
|
|
bool x2a_AP11 = false;
|
|
|
|
bool x2b_AP21 = false;
|
|
|
|
bool x2c_AS11 = false;
|
|
|
|
bool x2d_AS12 = false;
|
|
|
|
bool x2e_AS13 = false;
|
2018-12-08 05:30:43 +00:00
|
|
|
std::unique_ptr<CRealElement> x30_TRAT;
|
|
|
|
SChildGeneratorDesc x34_APSM;
|
|
|
|
SChildGeneratorDesc x44_APS2;
|
|
|
|
SSwooshGeneratorDesc x54_ASW1;
|
|
|
|
SSwooshGeneratorDesc x64_ASW2;
|
|
|
|
SSwooshGeneratorDesc x74_ASW3;
|
|
|
|
SParticleModel x84_OHEF;
|
|
|
|
SCollisionResponseData x94_COLR;
|
|
|
|
bool xa4_EWTR = true;
|
|
|
|
bool xa5_LWTR = true;
|
|
|
|
bool xa6_SWTR = true;
|
|
|
|
s32 xa8_PJFX = -1;
|
|
|
|
std::unique_ptr<CRealElement> xac_RNGE;
|
|
|
|
std::unique_ptr<CRealElement> xb0_FOFF;
|
2020-04-16 05:26:14 +00:00
|
|
|
// PAL/RS5
|
|
|
|
bool x28_SPS1 = false;
|
|
|
|
bool x29_SPS2 = false;
|
|
|
|
bool x29_FC60 = false;
|
2016-02-13 17:47:54 +00:00
|
|
|
};
|
2021-04-10 08:42:06 +00:00
|
|
|
} // namespace metaforce
|