mirror of
https://github.com/PodeCaradox/GalaxyQuest-SteamFrame.git
synced 2026-10-29 04:02:29 +01: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>
89 lines
1.9 KiB
C++
89 lines
1.9 KiB
C++
#pragma once
|
|
|
|
#include "Game/LiveActor/LiveActor.hpp"
|
|
#include <JSystem/JGeometry/TMatrix.hpp>
|
|
|
|
class ActorCameraInfo;
|
|
class PartsModel;
|
|
|
|
class EarthenPipe : public LiveActor {
|
|
public:
|
|
EarthenPipe(const char*);
|
|
|
|
virtual void init(const JMapInfoIter&);
|
|
virtual void calcAnim(){};
|
|
virtual void makeActorAppeared();
|
|
virtual MtxPtr getBaseMtx() const {
|
|
return mTopJointMtx;
|
|
}
|
|
virtual void control();
|
|
virtual bool receiveOtherMsg(u32, HitSensor*, HitSensor*);
|
|
|
|
bool tryShowUp();
|
|
bool tryHideDown();
|
|
bool isNerveShowUp() const;
|
|
void exeWait();
|
|
void exeReady();
|
|
void exePlayerIn();
|
|
void exeTargetPipeShowUp();
|
|
void exePlayerOut();
|
|
void exeInvalid();
|
|
void exeHide();
|
|
void exeShow();
|
|
void exeWaitToHideDown();
|
|
void exeWaitToShowUp();
|
|
void exeShowUp();
|
|
void exeHideDown();
|
|
void calcTrans(f32);
|
|
void processBgmPlayerIn();
|
|
void processBgmPlayerOut();
|
|
|
|
TVec3f _8C;
|
|
TVec3f _98;
|
|
f32 _A4;
|
|
bool mIsIgnoreGravity; // 0xA8
|
|
bool _A9;
|
|
bool _AA;
|
|
bool _AB;
|
|
s32 mPipeMode; // 0xAC
|
|
EarthenPipe* _B0;
|
|
MtxPtr mTopJointMtx; // 0xB4
|
|
MtxPtr mBottomJointMtx; // 0xB8
|
|
TPos3f _BC;
|
|
LiveActor* mHostActor; // 0xEC
|
|
TPos3f _F0;
|
|
TMtx34f _120;
|
|
TPos3f _150;
|
|
f32 _180;
|
|
f32 mHorizExitForce; // 0x184
|
|
f32 mVertExitForce; // 0x188
|
|
s32 mMusicChangeIdx; // 0x18C
|
|
s32 mMusicState; // 0x190
|
|
u8 _194;
|
|
u8 _195;
|
|
u8 _196;
|
|
u8 _197;
|
|
PartsModel* mPipeStreamModel; // 0x198
|
|
bool _19C;
|
|
bool _19D;
|
|
bool _19E;
|
|
bool _19F;
|
|
ActorCameraInfo* mCameraInfo; // 0x1A0
|
|
};
|
|
|
|
class EarthenPipeMediator : public NameObj {
|
|
public:
|
|
EarthenPipeMediator();
|
|
|
|
struct Entry {
|
|
EarthenPipe* _0;
|
|
EarthenPipe* _4; // 0x4
|
|
s32 mPipeID; // 0x8
|
|
};
|
|
|
|
void entry(EarthenPipe*, const JMapInfoIter&);
|
|
|
|
s32 mNumEntries; // 0xC
|
|
Entry* mPipeEntries; // 0x10
|
|
};
|