mirror of
https://github.com/PodeCaradox/GalaxyQuest-SteamFrame.git
synced 2026-10-21 07:01:26 +02:00
The sources of Petari (https://github.com/SMGCommunity/Petari), the Super Mario Galaxy decompilation by the SMGCommunity, at commit 0a5c6608dc3b4c44a9aa68c2535d1793dc565f02, unchanged but for LF line endings: LICENSE (as LICENSE-Petari.txt; CC0 1.0), include/, libs/ and src/. Left out: the game data Petari keeps from the original executable, the error message archive (include/Game/System/ ErrorArchive.hpp) and two tables (src/Game/System/GalaxyID.bcsv and StoryEvent.bcsv); GalaxyQuest's converter takes them from the player's own disc. The port's changes follow in the next commit, so `git diff petari-base -- decomp` shows them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
106 lines
3.1 KiB
C++
106 lines
3.1 KiB
C++
#pragma once
|
|
|
|
#include "Game/LiveActor/LiveActor.hpp"
|
|
#include "Game/LiveActor/Nerve.hpp"
|
|
#include <JSystem/JGeometry/TMatrix.hpp>
|
|
|
|
class ActorCameraInfo;
|
|
class FlashingCtrl;
|
|
|
|
class ShadowClipActor : public LiveActor {
|
|
public:
|
|
virtual void endClipped();
|
|
virtual void control();
|
|
|
|
/* 0x8C */ LiveActor* _8C;
|
|
};
|
|
|
|
class BenefitItemObj : public LiveActor {
|
|
public:
|
|
/// @brief Creates a new `BenefitItemObj`.
|
|
/// @param pName A pointer to the null-terminated name of the object.
|
|
/// @param pModelName A pointer to the null-terminated name of the model.
|
|
BenefitItemObj(const char* pName, const char* pModelName);
|
|
|
|
virtual void init(const JMapInfoIter&);
|
|
virtual void initAfterPlacement();
|
|
virtual void appear();
|
|
virtual void makeActorAppeared();
|
|
virtual void control();
|
|
virtual void calcAndSetBaseMtx();
|
|
virtual bool receiveMsgPlayerAttack(u32, HitSensor*, HitSensor*);
|
|
virtual bool receiveOtherMsg(u32, HitSensor*, HitSensor*);
|
|
virtual void appearGround();
|
|
virtual void appearThrowUp();
|
|
virtual void appearThrowUpQuestionBox();
|
|
virtual void initModelAndEfx();
|
|
virtual void exeCatch();
|
|
virtual void runBck(const char*);
|
|
virtual void runEfx(const char*);
|
|
virtual void stopEfx(const char*);
|
|
virtual void doRotateY();
|
|
virtual void initEscape();
|
|
virtual void doEscape();
|
|
|
|
void shoot(const TVec3f&, const TVec3f&, bool);
|
|
void exeShoot();
|
|
void exeWait();
|
|
void exeAppearGround();
|
|
void exePreEscape();
|
|
void exeEscape();
|
|
void setFollowMtx(MtxPtr);
|
|
void calcAndSetBaseMtxInMovement();
|
|
|
|
/* 0x08C */ u32 _8C;
|
|
/* 0x090 */ u32 _90;
|
|
/* 0x094 */ u32 _94;
|
|
/* 0x098 */ TVec3f _98;
|
|
/* 0x0A4 */ TVec3f _A4;
|
|
/* 0x0B0 */ s16 _B0;
|
|
/* 0x0B2 */ s16 _B2;
|
|
/* 0x0B4 */ s16 _B4;
|
|
/* 0x0B6 */ s16 _B6;
|
|
/* 0x0B8 */ s16 _B8;
|
|
/* 0x0BA */ s16 _BA;
|
|
/* 0x0BC */ TVec3f _BC;
|
|
/* 0x0C8 */ TVec3f _C8;
|
|
/* 0x0D4 */ MtxPtr mFollowMtx;
|
|
/* 0x0D8 */ u8 _D8;
|
|
/* 0x0D9 */ u8 _D9;
|
|
/* 0x0DA */ u8 _DA;
|
|
/* 0x0DB */ u8 _DB;
|
|
/* 0x0DC */ u8 _DC;
|
|
/* 0x0DD */ u8 _DD;
|
|
/* 0x0DE */ u8 _DE;
|
|
/* 0x0DF */ u8 _DF;
|
|
/* 0x0E0 */ u8 _E0;
|
|
/* 0x0E1 */ u8 _E1;
|
|
/* 0x0E2 */ u8 _E2;
|
|
/* 0x0E3 */ u8 _E3;
|
|
/* 0x0E4 */ u8 _E4;
|
|
/* 0x0E5 */ u8 _E5;
|
|
/* 0x0E6 */ u8 _E6;
|
|
/* 0x0E7 */ u8 _E7;
|
|
/* 0x0E8 */ f32 _E8;
|
|
/* 0x0EC */ f32 _EC;
|
|
/* 0x0F0 */ TMtx34f _F0;
|
|
/* 0x120 */ const char* _120;
|
|
/* 0x124 */ FlashingCtrl* mFlashCtrl;
|
|
/* 0x128 */ ActorCameraInfo* mCameraInfo;
|
|
/* 0x12C */ u32 _12C;
|
|
/* 0x130 */ u32 _130;
|
|
/* 0x134 */ LiveActor* mHitSensorActor;
|
|
/* 0x138 */ u8 _138;
|
|
/* 0x139 */ u8 _139;
|
|
/* 0x13A */ u16 _13A;
|
|
};
|
|
|
|
namespace NrvBenefitItemObj {
|
|
NEW_NERVE(HostTypeNrvWait, BenefitItemObj, Wait);
|
|
NEW_NERVE(HostTypeNrvShoot, BenefitItemObj, Shoot);
|
|
NEW_NERVE(HostTypeNrvCatch, BenefitItemObj, Catch);
|
|
NEW_NERVE(HostTypeNrvAppearGround, BenefitItemObj, AppearGround);
|
|
NEW_NERVE(HostTypeNrvPreEscape, BenefitItemObj, PreEscape);
|
|
NEW_NERVE(HostTypeNrvEscape, BenefitItemObj, Escape);
|
|
}; // namespace NrvBenefitItemObj
|