SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
CollisionParts.hpp
1#pragma once
2
3#include <revolution.h>
4#include "JSystem/JGeometry.hpp"
5
6class CollisionZone;
7class HitInfo;
8class HitSensor;
9class KC_PrismData;
11class Triangle;
13
15public:
17
18 TVec3f getTrans();
19 void init(const TPos3f &, HitSensor *, const void *, const void *, long, bool);
20 void addToBelongZone();
21 void removeFromBelongZone();
22 void initWithAutoEqualScale(const TPos3f &, HitSensor *, const void *, const void *, long, bool);
23 void initWithNotUsingScale(const TPos3f &, HitSensor *, const void *, const void *, long, bool);
24 void resetAllMtx(const TPos3f &);
25 void resetAllMtx();
26 void forceResetAllMtxAndSetUpdateMtxOneTime();
27 void resetAllMtxPrivate(const TPos3f &);
28 void setMtx(const TPos3f &);
29 void setMtx();
30 void updateMtx();
31 f32 makeEqualScale(MtxPtr);
32 void updateBoundingSphereRange();
33 void updateBoundingSphereRange(TVec3f);
34 void updateBoundingSphereRangePrivate(float);
35 const char *getHostName() const;
36 s32 getPlacementZoneID() const;
37 void checkStrikePoint(HitInfo *, const TVec3f &);
38 bool checkStrikeBall(HitInfo *, unsigned long, const TVec3f &, float, bool, const TriangleFilterBase *);
39 void checkStrikeBallCore(HitInfo *, unsigned long, const TVec3f &, const TVec3f &, float, float, float, KC_PrismData **, float *, unsigned char *, const TriangleFilterBase *, const TVec3f *);
40 void checkStrikeBallWithThickness(HitInfo *, unsigned long, const TVec3f &, float, float, const TriangleFilterBase *);
41 void calcCollidePosition(TVec3f *, const KC_PrismData &, unsigned char);
42 void projectToPlane(TVec3f *, const TVec3f &, const TVec3f &, const TVec3f &);
43 void checkStrikeLine(HitInfo *, unsigned long, const TVec3f &, const TVec3f &, const TriangleFilterBase *);
44 void createAreaPolygonList(Triangle *, unsigned long, const TVec3f &, const TVec3f &);
45 void createAreaPolygonListArray(Triangle *, unsigned long, TVec3f *, unsigned long);
46 void calcForceMovePower(TVec3f *, const TVec3f &) const;
47
48 TMtx34f *_0;
49 TMtx34f mMatrix; // _4
50 TPos3f mBaseMatrix; // _34
51 TPos3f mInvBaseMatrix; // _64
52 TPos3f mPrevBaseMatrix; // _94
53 KCollisionServer *mServer; // _C4
54 HitSensor *mHitSensor; // _C8
55 bool _CC;
56 bool _CD;
57 bool _CE;
58 bool _CF;
59 bool _D0;
60 u8 _D1[3];
61 s32 _D4;
62 f32 _D8;
63 f32 _DC;
64 s32 mKeeperIndex; // _E0
65 CollisionZone *mZone; // _E4
66 f32 _E8;
67 f32 _EC;
68 f32 _F0;
69};
70
72public:
74
75 }
76
77 virtual bool isInvalidParts(const CollisionParts *) const = 0;
78};