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

190 lines
7.0 KiB
C++

#pragma once
#include <JSystem/JGeometry/TMatrix.hpp>
class BckCtrlData;
class CameraTargetArg;
class CubeCameraArea;
class HitSensor;
class JUTTexture;
class LiveActor;
class NameObj;
class Triangle;
class XanimeResourceTable;
namespace MR {
bool isOnGroundPlayer();
Triangle* getPlayerGroundingPolygon();
void forceKillPlayerByAbyss();
void forceKillPlayerByWaterRace();
void forceKillPlayerByGroundRace();
void forceKillPlayerByGhostRace();
bool isPlayerDead();
bool isPlayerRefuseTalk();
bool isPlayerTeresaDisappear();
bool isPlayerInAreaObj(const char*);
TVec3f* getPlayerPos();
TVec3f* getPlayerCenterPos();
void getPlayerTakePos(TVec3f*);
void setPlayerPos(const TVec3f&);
void setPlayerUpperRotateY(f32);
TVec3f* getPlayerRotate();
TVec3f* getPlayerShadowRotate();
TVec3f* getPlayerVelocity();
TVec3f* getPlayerLastMove();
void setPlayerJumpVec(const TVec3f&);
f32 getPlayerHitRadius();
void setPlayerWalkingResist(f32);
const TVec3f* getPlayerGravity();
void calcPlayerSpinPullVelocity(TVec3f*, const TVec3f&);
bool checkPlayerActionTrigger();
bool checkPlayerSwingTrigger();
f32 calcDistanceToPlayer(const TVec3f&);
void getPlayerUpVec(TVec3f*);
void getPlayerFrontVec(TVec3f*);
void getPlayerSideVec(TVec3f*);
void getPlayerThrowVec(TVec3f*);
void getPlayerGroundPos(TVec3f*);
const TVec3f* getPlayerGroundNormal();
void setPlayerFrontTargetVec(const TVec3f&, s32);
void setPlayerFrontVec(const TVec3f&, s32);
void setPlayerSwingInhibitTimer(u16);
void setPlayerSwingPermission(bool);
void setPlayerStateWait();
void startBckPlayer(const char*, const char* pBrkName = nullptr);
void startBckPlayer(const char*, const BckCtrlData&);
void startBckPlayer(const char*, s32);
bool isBckStoppedPlayer();
bool isBckOneTimeAndStoppedPlayer();
f32 getBckFrameMaxPlayer();
s16 getBckFrameMaxPlayer(const char*);
void startBckPlayerJ(const char*);
void becomeContinuousBckPlayer();
void progressPlayerBckOnPause();
const char* getPlayerCurrentBckName();
void setBckBlendWeight(f32, f32);
void setBckBlendWeight(f32, f32, f32);
void setBckBlendWeight(f32, f32, f32, f32);
void setBckRatePlayer(f32);
XanimeResourceTable* getPlayerXanimeResource();
void jumpPlayer(const TVec3f&);
void forceJumpPlayer(const TVec3f&);
void forceFlyPlayer(const TVec3f&, const TVec3f&, s32);
void tornadoJumpPlayer();
void miniTornadoJumpPlayer();
void becomePlayerNormalJumpStatus();
bool isOnPlayer(const HitSensor*);
bool isActorOnPlayer(const LiveActor*);
bool isOnPlayerShadow(const LiveActor*);
f32 getPlayerShadowHeight();
void setPlayerPos(const char*) NO_INLINE;
void setPlayerPosAndWait(const TVec3f&);
void setPlayerPosAndWait(const char*);
void setPlayerLinkPosAndWait(const NameObj*, const char*);
void setPlayerPosOnGround(const char*);
void setPlayerPosOnGroundAndWait(const char*);
bool isPlayerHipDropFalling();
bool isPlayerHipDropLand();
void incPlayerLife(u32);
void incPlayerOxygen(u32);
bool isPlayerConfrontDeath();
void getStarPiecePlayer();
void notifyDirectGetStarPiecePlayer();
void scatterStarPiecePlayer(u32);
bool isPlayerSwingAction();
bool isPlayerPointedBy2POnTriggerButton();
bool isPlayerSquat();
bool isPlayerInRush();
bool isPlayerNeedBrakingCamera();
bool isPlayerFlying();
bool isPlayerElementMode(s32);
bool isPlayerElementModeTornado();
bool isPlayerElementModeInvincible();
bool isPlayerElementModeBee();
bool isPlayerElementModeHopper();
bool isPlayerElementModeTeresa();
bool isPlayerElementModeIce();
bool isPlayerElementModeNormal();
bool isPlayerSkating();
void changePlayerItemStatus(s32);
void curePlayerElementMode();
bool isPlayerParalyzing();
bool isPlayerDamaging();
bool isPlayerStaggering();
bool isPlayerSwimming();
bool isPlayerSleeping();
bool isPlayerJumpRising();
void validatePlayerSensor();
bool isPlayerInBind();
void endBindAndPlayerWait(LiveActor*);
void endBindAndPlayerJump(LiveActor*, const TVec3f&, u32);
void endBindAndPlayerForceJump(LiveActor*, const TVec3f&, u32);
void endBindAndPlayerWeakGravityJump(LiveActor*, const TVec3f&);
void endBindAndPlayerForceWeakGravityJump(LiveActor*, const TVec3f&);
void endBindAndPlayerForceWeakGravityJumpInputOff(LiveActor*, const TVec3f&);
void endBindAndPlayerWeakGravityLimitJump(LiveActor*, const TVec3f&);
void endBindAndSpinDriverJump(LiveActor*, const TVec3f&);
void endBindAndPlayerDamage(LiveActor*, const TVec3f&);
void endBindAndPlayerFlip(LiveActor*, const TVec3f&);
void endBindAndPlayerJumpWithRollLanding(LiveActor*, const TVec3f&, u32);
void endBindAndPlayerDamageMsg(LiveActor*, u32);
void endBindAndPlayerDamageMsg(LiveActor*, u32, const TVec3f&);
void endBindAndPlayerAcidDamage(LiveActor*);
void endBindAndPlayerFreezeDamage(LiveActor*);
void endBindAndPlayerFireDamage(LiveActor*);
void endBindAndPlayerElectricDamage(LiveActor*);
LiveActor* getCurrentRushActor();
HitSensor* getCurrentRushSensor();
void tryPlayerCoinPull();
void tryPlayerPullActor(HitSensor*);
void tryPlayerDropTakingActor();
void tryPlayerKillTakingActor();
bool isPlayerTakingActor(const char*);
bool isPlayerCarryAny();
void startSoundPlayer(const char*, s32);
void startLevelSoundPlayer(const char*, s32);
void stopSoundPlayer(const char*, u32);
void startSoundPlayerJ(const char*);
void showPlayer();
void hidePlayer();
void showPlayerJoint(const char*);
void hidePlayerJoint(const char*);
void setPlayerSpot(f32, u32);
void startPlayerDownWipe();
void setCameraTargetToPlayer(CameraTargetArg*);
bool isPlayerDisableFpView();
bool isFpViewChangingFailure();
void stopPlayerFpView();
void setRasterScroll(s32, s32, s32);
void noticePlayerDashChance();
void startPlayerTalk(const LiveActor*);
void endPlayerTalk();
void preventPlayerRush();
bool isExistMario();
void startPlayerEvent(const char*);
void offPlayerControl();
void onPlayerControl(bool);
bool isOffPlayerControl();
void unlockPlayerAnimation();
void resetPlayerStatus();
void resetPlayerEffect();
void setPlayerBaseMtx(MtxPtr);
MtxPtr getPlayerBaseMtx();
LiveActor* getPlayerDemoActor();
void initPlayerAfterOpeningDemo();
void readyPlayerDemo();
void onFollowDemoEffect();
void requestMovementOnPlayer();
void calcPlayerJointMtx(TPos3f*, const char*);
bool isPlayerOnPress();
void pushPlayer(const TVec3f&);
void pushPlayerFromArea(const TVec3f&);
bool isPlayerInWaterMode();
bool isPlayerOnWaterSurface();
bool isPlayerHidden();
void calcPlayerWorldPadDir(TVec3f*, f32, f32);
JUTTexture* getFullScreenBlurTexture();
u16 getPlayerMovementTimer();
CubeCameraArea* getCameraCube();
}; // namespace MR