mirror of
https://github.com/PodeCaradox/GalaxyQuest-SteamFrame.git
synced 2026-10-18 21:01: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>
127 lines
4.2 KiB
C++
127 lines
4.2 KiB
C++
#pragma once
|
|
|
|
#include "Game/LiveActor/LiveActor.hpp"
|
|
|
|
class Mario;
|
|
class MarioActor;
|
|
class MarioAnimator;
|
|
class MarioState;
|
|
class Triangle;
|
|
|
|
class MarioModule {
|
|
public:
|
|
inline MarioModule(MarioActor* pActor) : mActor(pActor) {
|
|
}
|
|
|
|
virtual f32 getStickY() const;
|
|
virtual void addVelocity(const TVec3f&);
|
|
virtual void addVelocity(const TVec3f&, f32);
|
|
|
|
MarioActor* getActor() const {
|
|
return mActor;
|
|
}
|
|
|
|
Mario* getPlayer() const;
|
|
MarioAnimator* getAnimator() const;
|
|
TVec3f& getShadowPos() const;
|
|
const TVec3f& getGravityVec() const;
|
|
const TVec3f& getAirGravityVec() const;
|
|
TVec3f& getFrontVec() const;
|
|
bool isStatusActiveID(u32) const;
|
|
bool isStatusActiveS(MarioState*) const;
|
|
u16 getPlayerMode() const;
|
|
bool isPlayerModeBee() const;
|
|
bool isPlayerModeIce() const;
|
|
bool isPlayerModeTeresa() const;
|
|
bool isPlayerModeHopper() const;
|
|
bool isPlayerModeInvincible() const;
|
|
bool isPlayerModeFoo() const;
|
|
void changeAnimation(const char*, const char* = nullptr);
|
|
void changeAnimationNonStop(const char*);
|
|
void changeAnimationWithAttr(const char*, u32);
|
|
void stopAnimation(const char*, const char* = nullptr);
|
|
bool isDefaultAnimationRun(const char*) const;
|
|
void changeAnimationInterpoleFrame(u32);
|
|
bool isAnimationRun(const char*) const;
|
|
bool isAnimationTerminate(const char*) const;
|
|
bool isAnimationTerminateUpper(const char*) const;
|
|
const char* getAnimationStringPointer(const char*) const;
|
|
const char* getCurrentBckName() const;
|
|
void changeAnimationUpper(const char*, const char* = nullptr);
|
|
void changeAnimationUpperWeak(const char*, const char* = nullptr);
|
|
void stopAnimationUpper(const char*, const char* = nullptr);
|
|
void stopAnimationUpperForce();
|
|
f32 getAnimationFrame() const;
|
|
void changeAnimation(const char*, u32);
|
|
bool isAnimationRun(const char*, u32);
|
|
void stopAnimation(const char*, u32);
|
|
void setJointGlobalMtx(u16, MtxPtr);
|
|
void setYangleOffset(f32);
|
|
bool isStickOn() const;
|
|
bool isStickFull() const;
|
|
TVec3f& getWorldPadDir() const;
|
|
bool calcWorldPadDir(TVec3f*, f32, f32, bool);
|
|
void addVelocityAfter(const TVec3f&);
|
|
void clearVelocity();
|
|
TVec3f& getVelocity() const;
|
|
void addTrans(const TVec3f&, const char*);
|
|
f32 cutGravityElementFromJumpVec(bool);
|
|
f32 cutVecElementFromJumpVec(const TVec3f&);
|
|
TVec3f& getJumpVec() const;
|
|
void setJumpVec(const TVec3f&);
|
|
void playEffect(const char*);
|
|
void playEffectTrans(const char*, const TVec3f&);
|
|
void playEffectRT(const char*, const TVec3f&, const TVec3f&);
|
|
void playEffectRTZ(const char*, const TVec3f&, const TVec3f&);
|
|
void playEffectRTW(const char*, const TVec3f&, const TVec3f&);
|
|
void playEffectSRT(const char*, f32, const TVec3f&, const TVec3f&);
|
|
void stopEffect(const char*);
|
|
void stopEffectForce(const char*);
|
|
void playSound(const char*, s32 a2 = -1);
|
|
void stopSound(const char*, u32);
|
|
void startCamVib(u32);
|
|
TVec3f& getCamPos() const;
|
|
TVec3f& getCamDirX() const;
|
|
TVec3f& getCamDirY() const;
|
|
TVec3f& getCamDirZ() const;
|
|
void startPadVib(u32);
|
|
void startPadVib(const char*);
|
|
f32 getStickX() const;
|
|
f32 getStickP() const;
|
|
bool checkTrgA() const;
|
|
bool checkLvlA() const;
|
|
bool checkTrgZ() const;
|
|
bool checkLvlZ() const;
|
|
bool checkPreLvlZ() const;
|
|
bool checkSquat(bool);
|
|
TVec3f& getTrans() const;
|
|
const Triangle* getGroundPolygon() const;
|
|
bool isOnSlipGround() const;
|
|
bool isSlipFloorCode(s32) const;
|
|
bool isSlipPolygon(const Triangle*) const;
|
|
u32 getFloorCode() const;
|
|
f32 calcPolygonAngleD(const Triangle*) const;
|
|
f32 calcAngleD(const TVec3f&) const;
|
|
Triangle* getTmpPolygon() const;
|
|
bool sendPunch(HitSensor*, bool);
|
|
HitSensor* getSensor(const Triangle*) const;
|
|
f32 marioAcos(f32) const;
|
|
bool isInputDisable() const;
|
|
|
|
MarioActor* mActor; // 0x4
|
|
};
|
|
|
|
class MarioModuleTask {
|
|
public:
|
|
virtual void init() = 0;
|
|
virtual void start() = 0;
|
|
virtual void update() = 0;
|
|
virtual void calc() = 0;
|
|
virtual void end() = 0;
|
|
virtual bool exec() = 0;
|
|
virtual void draw() const = 0;
|
|
|
|
void* _4;
|
|
MarioModuleTask* mNext;
|
|
};
|