SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
Coin.hpp
1#pragma once
2
3#include "Game/LiveActor/LiveActor.hpp"
4#include "Game/LiveActor/FlashingCtrl.hpp"
5#include "Game/LiveActor/PartsModel.hpp"
6#include "Game/NameObj/NameObjArchiveListCollector.hpp"
7
9public:
10 CoinHostInfo() {
11 mHostActor = NULL;
12 _4 = 0;
13 _8 = 0;
14 _C = 0;
15 }
16
17 const NameObj* mHostActor; // _0
18 u32 _4;
19 u32 _8;
20 u32 _C;
21};
22
23class Coin : public LiveActor {
24public:
25 Coin(const char *);
26
27 virtual ~Coin();
28 virtual void init(const JMapInfoIter &);
29 virtual void initAfterPlacement();
30 virtual void appear();
31 virtual void makeActorAppeared();
32 virtual void makeActorDead();
33 virtual void calcAndSetBaseMtx();
34 virtual bool receiveOtherMsg(u32, HitSensor *, HitSensor *);
35
36 void initShadow(const JMapInfoIter &);
37 void setShadowAndPoseModeFromJMapIter(const JMapInfoIter &);
38 void exeNonActive();
39 void exeFix();
40 void exeFixTimer();
41 void exeMove();
42 void exeControled();
43 void exeSpinDrained();
44 void exeHop();
45 void appearFixInit();
46 void appearFix();
47 void appearControlPose();
48 void appearNonActive();
49 void appearFixTimer(s32, s32);
50 void appearMove(const TVec3f &, const TVec3f &, s32, s32);
51 void appearHop(const TVec3f &, const TVec3f &);
52 bool requestActive();
53 bool requestActiveWithGravity();
54 bool requestDeactive();
55 bool requestStartControl();
56 bool requestEndControl();
57 bool requestSpinDrain();
58 bool requestShow();
59 bool requestHide();
60 void noticeGetCoin();
61 void setLife(s32);
62 void setHostInfo(CoinHostInfo *);
63 void setCalcShadowMode();
64 void setCannotTime(s32);
65 void calcRebouond();
66 void attenuateVelocity();
67 static bool isNeedBubble(const JMapInfoIter &);
68 static void makeArchiveList(NameObjArchiveListCollector *, const JMapInfoIter &);
69
70 CoinHostInfo* mHostInfo; // _8C
71 FlashingCtrl* mFlashCtrl; // _90
72 PartsModel* mAirBubble; // _94
73 TVec3f mDropPosition; // _98
74 TVec3f mClippingRange; // _A4
75 int _B0;
76 s32 mCannotTime; // _B4
77 bool mIsInWater; // _B8
78 bool _B9; // obj_arg3
79 bool _BA; // obj_arg4
80 bool _BB;
81 bool mIsPurpleCoin; // _BC
82 bool mIsNeedBubble; // _BD
83};
84
85namespace MR {
86 NameObj* createDirectSetCoin(const char *);
87 NameObj* createCoin(const NameObj *, const char *);
88 NameObj* createDirectSetPurpleCoin(const char *);
89 NameObj* createPurpleCoin(const NameObj *, const char *);
90};
91
92namespace NrvCoin {
93 NERVE(CoinNrvNonActive);
94 NERVE(CoinNrvFix);
95 NERVE(CoinNrvFixHide);
96 NERVE(CoinNrvFixTimer);
97 NERVE(CoinNrvControled);
98 NERVE(CoinNrvSpinDrained);
99 NERVE(CoinNrvMove);
100 NERVE(CoinNrvHop);
101};
Definition Coin.hpp:23
virtual void calcAndSetBaseMtx()
Calculates and sets the base matrix of the actor.
Definition Coin.cpp:166
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.
Definition Coin.cpp:27
The basis of a drawable actor that can contain states (see: Nerve)
Definition LiveActor.hpp:24
Stores archive names of NameObjs.
The most basic form of an object.
Definition NameObj.hpp:11