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

83 lines
2.1 KiB
C++

#pragma once
#include "Game/NameObj/NameObj.hpp"
#include <JSystem/JGeometry/TVec.hpp>
class J3DModelX;
class Triangle;
class JUTTexture;
class CollisionShadow : public NameObj {
public:
CollisionShadow(f32, f32);
virtual ~CollisionShadow();
virtual void draw() const;
void setMode(u32);
void create(const TVec3f&, const TVec3f&, const TVec3f&);
void calcView(J3DModelX*, u32, J3DModelX*);
void drawAndCaptureTex(J3DModelX*, const TVec3f&);
void clearAlphaBuffer();
void setUpdateFlag();
void draw1() const;
void sendVtx() const;
void sendZsortedVtx(bool) const;
void initCaptureTex();
void setViewMtx(const TVec3f&);
void drawVolumeBox(const TVec3f&, const TVec3f&) const;
void draw2() const;
void draw3() const;
void createDL();
void drawVolume() const;
void doSortPolygons();
const TVec3f& getDrawPos(u32) const;
const TVec3f& getDrawPos(u32, u32) const;
const TVec2f& getDrawTx(u32, u32) const;
/* 0x00C */ u8 _C;
/* 0x00E */ u16 _E;
/* 0x010 */ f32 _10;
/* 0x014 */ f32 _14;
/* 0x018 */ f32 _18;
/* 0x01C */ f32 _1C;
/* 0x020 */ f32 _20;
/* 0x024 */ TVec3f _24;
/* 0x030 */ TVec3f _30;
/* 0x03C */ TVec3f _3C;
/* 0x048 */ TVec3f _48;
/* 0x054 */ u32 _54;
/* 0x058 */ u16 _58;
/* 0x05A */ u16 _5A;
/* 0x05C */ u8* _5C;
/* 0x060 */ TVec3f* _60;
/* 0x064 */ TVec2f* _64;
/* 0x068 */ u16* _68;
/* 0x06C */ u16 _6C;
/* 0x06E */ u16 _6E;
/* 0x070 */ u8 _70[128];
/* 0x0F0 */ s32 _F0[128];
/* 0x2F0 */ TVec3f _2F0;
/* 0x2FC */ u16 _2FC;
/* 0x2FE */ u16 _2FE;
/* 0x300 */ JUTTexture* _300;
/* 0x304 */ u8 _304;
/* 0x305 */ bool _305;
/* 0x306 */ u8 _306;
/* 0x307 */ u8 _307;
/* 0x308 */ u16 _308;
/* 0x30C */ f32 _30C;
/* 0x310 */ f32 _310;
/* 0x314 */ TVec3f _314;
/* 0x320 */ TVec3f _320;
/* 0x32C */ Triangle* _32C;
/* 0x330 */ Triangle* _330;
/* 0x334 */ Triangle* _334;
/* 0x338 */ u16 _338;
/* 0x33A */ u16 _33A;
/* 0x33C */ u16 _33C;
/* 0x340 */ J3DModelX* _340;
/* 0x344 */ u8* _344;
/* 0x348 */ u16 _348;
};