SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
TalkMessageCtrl.hpp
1#pragma once
2
3#include "Game/LiveActor/LiveActor.hpp"
4#include "Game/NPC/TalkMessageFunc.hpp"
5
6class TalkNodeCtrl;
8
10public:
11 inline CustomTagArg(int a1, u32 a2) : mIntArg(a1), _4(a2) { }
12 inline CustomTagArg(const wchar_t *a1, u32 a2) : mCharArg(a1), _4(a2) { }
13
14 inline void operator=(const CustomTagArg &rhs) {
15 mCharArg = rhs.mCharArg;
16 _4 = rhs._4;
17 }
18
19 union {
20 int mIntArg;
21 const wchar_t* mCharArg;
22 };
23
24 u32 _4;
25};
26
27
28class TalkMessageCtrl : public NameObj {
29public:
30 TalkMessageCtrl(LiveActor *, const TVec3f &, MtxPtr);
31
32 virtual ~TalkMessageCtrl();
33
34 void createMessage(const JMapInfoIter &, const char *);
35 void createMessageDirect(const JMapInfoIter &, const char *);
36 u32 getMessageID() const;
37 bool requestTalk();
38 bool requestTalkForce();
39 void startTalk();
40 void startTalkForce();
41 void startTalkForcePuppetable();
42 void startTalkForceWithoutDemo();
43 void startTalkForceWithoutDemoPuppetable();
44 void endTalk();
45 void updateBalloonPos();
46 bool isNearPlayer(const TalkMessageCtrl *);
47 bool isNearPlayer(f32) const;
48 void rootNodePre(bool);
49 void rootNodePst();
50 bool isCurrentNodeContinue() const;
51 void rootNodeEve();
52 void rootNodeSel(bool);
53 void registerBranchFunc(const TalkMessageFuncBase &);
54 void registerEventFunc(const TalkMessageFuncBase &);
55 void registerAnimeFunc(const TalkMessageFuncBase &);
56 void registerKillFunc(const TalkMessageFuncBase &);
57 void readMessage();
58 bool isSelectYesNo() const;
59
60 void setMessageArg(const CustomTagArg &rArg) {
61 mTagArg = rArg;
62 }
63
64 bool inMessageArea() const;
65 void startCamera(s32);
66 const char* getBranchID() const;
67
68 LiveActor* mHostActor; // _C
69 TalkNodeCtrl* mNodeCtrl; // _10
70 s32 mZoneID; // _14
71 u32 _18;
72 TVec3f _1C;
73 MtxPtr mMtx; // _28
74 TVec3f _2C;
75 f32 mTalkDistance; // _38
76 u32 _3C;
77 u32 mAlreadyDoneFlags; // _40
78 bool mIsOnRootNodeAuto; // _44
79 bool mIsOnReadNodeAuto; // _45
80 bool mIsStartOnlyFront; // _46
81 ActorCameraInfo* mCameraInfo; // _48
82 TalkMessageFuncBase* mBranchFunc; // _4C
83 TalkMessageFuncBase* mEventFunc; // _50
84 TalkMessageFuncBase* mAnimeFunc; // _54
85 TalkMessageFuncBase* mKillFunc; // _58
86 CustomTagArg mTagArg; // _5C
87};
88
90public:
91 static bool isShortTalk(const TalkMessageCtrl *);
92 static bool isComposeTalk(const TalkMessageCtrl *);
93 static bool isSelectTalk(const TalkMessageCtrl *);
94 bool isEventNode(const TalkMessageCtrl *);
95
96 static bool requestTalkSystem(TalkMessageCtrl *, bool);
97 static void startTalkSystem(TalkMessageCtrl *, bool, bool, bool);
98 static void endTalkSystem(TalkMessageCtrl *);
99 static bool isTalkSystemStart(const TalkMessageCtrl *);
100 static bool isTalkSystemEnd(const TalkMessageCtrl *);
101 static bool getBranchAstroGalaxyResult(u16);
102 static void registerTalkSystem(TalkMessageCtrl *);
103};
The basis of a drawable actor that can contain states (see: Nerve)
Definition LiveActor.hpp:24
The most basic form of an object.
Definition NameObj.hpp:11