mirror of
https://github.com/PodeCaradox/GalaxyQuest-SteamFrame.git
synced 2026-10-23 08:02:23 +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>
126 lines
3.9 KiB
C++
126 lines
3.9 KiB
C++
#pragma once
|
|
|
|
#include "Game/NPC/TalkMessageInfo.hpp"
|
|
#include "Game/Screen/LayoutActor.hpp"
|
|
#include "Game/System/DrawSyncManager.hpp"
|
|
#include "Game/Util/Array.hpp"
|
|
|
|
class ActorCameraInfo;
|
|
class LiveActor;
|
|
class TalkMessageCtrl;
|
|
class TalkBalloonHolder;
|
|
class TalkStateHolder;
|
|
class TalkState;
|
|
|
|
class TalkPeekZ : DrawSyncCallback {
|
|
public:
|
|
TalkPeekZ();
|
|
|
|
virtual void drawSyncCallback(u16);
|
|
|
|
void setDrawSyncToken();
|
|
|
|
/* 0x04 */ u16 mDrawSync;
|
|
/* 0x06 */ u16 _6;
|
|
/* 0x08 */ u32 _8;
|
|
/* 0x0C */ TVec2f mScreenPos;
|
|
/* 0x14 */ TVec3f _14;
|
|
/* 0x20 */ f32 _20;
|
|
/* 0x24 */ u8 _pad[0x18];
|
|
/* 0x3C */ f32 _3C;
|
|
/* 0x40 */ u8 _pad2[0x14];
|
|
};
|
|
|
|
class TalkDirector : public LayoutActor {
|
|
public:
|
|
TalkDirector(const char*);
|
|
|
|
virtual ~TalkDirector();
|
|
virtual void init(const JMapInfoIter&);
|
|
virtual void movement();
|
|
|
|
bool request(TalkMessageCtrl*, bool);
|
|
bool test(TalkMessageCtrl*, bool, bool);
|
|
bool start(TalkMessageCtrl*, bool, bool, bool);
|
|
void updateMessage();
|
|
void prepTalk(TalkMessageCtrl*, bool, bool, bool);
|
|
void termTalk();
|
|
TalkState* initState(TalkMessageCtrl*);
|
|
bool isInvalidTalk() const;
|
|
void appearYesNoSelector(const TalkMessageCtrl*) const;
|
|
s32 getDemoType(const TalkMessageCtrl*, bool) const;
|
|
bool getBranchResult(u16);
|
|
void initBranchResult();
|
|
void pauseOff();
|
|
void balloonOff();
|
|
bool isSystemTalking() const;
|
|
bool isNormalTalking() const;
|
|
LiveActor* getTalkingActor() const;
|
|
void exePrep();
|
|
void exeTalk();
|
|
void exeSlct();
|
|
void exeNext();
|
|
void exeTerm();
|
|
void exeWait();
|
|
|
|
/* 0x20 */ MR::Vector< MR::AssignableArray< TalkMessageCtrl* > > mMsgControls;
|
|
/* 0x2C */ TalkPeekZ* mPeekZ;
|
|
/* 0x30 */ TalkBalloonHolder* mBalloonHolder;
|
|
/* 0x34 */ TalkStateHolder* mStateHolder;
|
|
/* 0x38 */ TalkMessageCtrl* mMsgCtrl;
|
|
/* 0x3C */ TalkMessageCtrl* _3C;
|
|
/* 0x40 */ TalkMessageCtrl* _40;
|
|
/* 0x44 */ TalkMessageCtrl* _44;
|
|
/* 0x48 */ TalkState* mTalkState;
|
|
/* 0x4C */ bool _4C;
|
|
/* 0x4D */ bool _4D;
|
|
/* 0x4E */ bool _4E;
|
|
/* 0x4F */ bool mIsInvalidClipping;
|
|
/* 0x50 */ bool _50;
|
|
/* 0x54 */ s32 mDemoType;
|
|
/* 0x58 */ bool _58;
|
|
/* 0x59 */ bool _59;
|
|
/* 0x5A */ bool _5A;
|
|
/* 0x5B */ bool _5B;
|
|
/* 0x5C */ TalkMessageInfo mMessageInfo;
|
|
/* 0x68 */ ActorCameraInfo* mCameraInfo;
|
|
/* 0x6C */ LiveActor* mHostActor;
|
|
/* 0x70 */ bool mIsKinopioExplorerRescued;
|
|
/* 0x71 */ bool mIsKinopioExplorerOrganize;
|
|
/* 0x72 */ bool mIsKinopioExplorerTalkGetGrandStar2;
|
|
/* 0x73 */ bool mIsKinopioExplorerTrickComet;
|
|
/* 0x74 */ bool mIsKinopioExplorerTalkGetGrandStar3;
|
|
/* 0x75 */ bool mIsKinopioExplorerStartMessenger;
|
|
/* 0x76 */ bool mIsKinopioExplorerTalkGetGrandStar4;
|
|
/* 0x77 */ bool mIsKinopioExplorerTalkGetGrandStar5;
|
|
/* 0x78 */ bool mIsKinopioExplorerTalkGetGrandStar6;
|
|
/* 0x79 */ bool mIsKinopioExplorerTalkGoFinalBattle;
|
|
/* 0x7A */ bool mIsEndLuigiHideAndSeek;
|
|
/* 0x7B */ bool mIsKinopioExplorerCompleteTrickComet;
|
|
/* 0x7C */ bool _7C;
|
|
/* 0x7D */ bool _7D;
|
|
/* 0x7E */ bool mHasOneGreenStar;
|
|
/* 0x7F */ bool mHasTwoGreenStars;
|
|
/* 0x80 */ bool mHasThreeGreenStars;
|
|
/* 0x81 */ bool mIsUnlockedRedDriver;
|
|
/* 0x82 */ bool _82;
|
|
/* 0x83 */ bool mIsActiveLuigiHideAndSeek;
|
|
/* 0x84 */ bool mIsGalaxyPurpleCometLaunch;
|
|
/* 0x85 */ bool misRosettaTalkTorchLecture;
|
|
/* 0x86 */ bool mIsRosettaTalkTrickComet;
|
|
/* 0x87 */ bool mIsRosettaTalkKoopa;
|
|
/* 0x88 */ bool mIsRosettaTalkCountDownStart;
|
|
/* 0x89 */ bool mIsRosettaTalkAstroDemoRecover;
|
|
/* 0x8A */ bool mIsRosettaTalkTorchProgress;
|
|
/* 0x8B */ bool mIsOnGameEventFlagViewNormalEnding;
|
|
};
|
|
|
|
namespace MR {
|
|
void pauseOffTalkDirector();
|
|
void balloonOffTalkDirector();
|
|
void invalidateTalkDirector();
|
|
void setTalkDirectorDrawSyncToken();
|
|
bool isActiveTalkBalloonShort();
|
|
void endNPCTalkCamera(bool, s32);
|
|
}; // namespace MR
|