Files
bigmak94andClaude Opus 5.5 4b395efe5c Add the Petari decompilation (SMGCommunity/Petari@0a5c660)
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>
2026-10-01 01:59:38 +02:00

56 lines
1.6 KiB
C++

#pragma once
#include <revolution/types.h>
class JMapInfoIter;
class LiveActor;
class Nerve;
class DemoExecutor;
namespace MR {
class FunctorBase;
}; // namespace MR
class DemoActionInfo {
public:
DemoActionInfo();
void registerCast(LiveActor*);
void registerFunctor(const LiveActor*, const MR::FunctorBase&);
void registerNerve(const LiveActor*, const Nerve*);
void executeActionFirst() const;
void executeActionLast() const;
const char* mPartName; // 0x00
const char* mCastName; // 0x04
s32 mCastID; // 0x08
s32 mActionType; // 0x0C
const char* mPosName; // 0x10
const char* mAnimName; // 0x14
s32 _18; // 0x18
s32 mCastCount; // 0x1C
LiveActor** mCastList; // 0x20
MR::FunctorBase** mFunctors; // 0x24
const Nerve** mNerves; // 0x28
u8 _2C; // 0x2C
};
class DemoActionKeeper {
public:
DemoActionKeeper(const DemoExecutor*);
void initCast(LiveActor*, const JMapInfoIter&);
void registerFunctor(const LiveActor*, const MR::FunctorBase&, const char*);
void registerNerve(const LiveActor*, const Nerve*, const char*);
void update();
bool isRegisteredDemoActionAppear(const LiveActor*) const;
bool isRegisteredDemoActionFunctor(const LiveActor*) const;
bool isRegisteredDemoActionNerve(const LiveActor*) const;
bool isRegisteredDemoAction(const LiveActor*, s32) const;
const DemoExecutor* mDemoExecutor; // 0x00
s32 mNumInfos; // 0x04
DemoActionInfo** mInfoArray; // 0x08
};