Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_tag_kmsg.h
Go to the documentation of this file.
1#ifndef D_A_TAG_KMSG_H
2#define D_A_TAG_KMSG_H
3
4#include "dolphin/types.h"
5#include "f_op/f_op_actor.h"
7#include "d/d_msg_flow.h"
8#include "d/d_com_inf_game.h"
9
10struct daTag_KMsg_c : public fopAc_ac_c {
11public:
20
22 /* 0x570 */ dMsgFlow_c mMsgFlow;
23 /* 0x5BC */ u32 mFlowNodeNo;
24 /* 0x5C0 */ s16 mEventIdx;
25 /* 0x5C2 */ u8 field_0x5c2;
26 /* 0x5C3 */ u8 field_0x5c3;
27 /* 0x5C4 */ bool field_0x5c4;
28
29 int create();
30 int Delete();
31 int Execute();
32 int Draw();
33 int isDelete();
34 virtual ~daTag_KMsg_c() {
35 if (getType() == KMSG_TYPE_3) {
36 dComIfG_resDelete(&mPhase, "Lv6Gate");
37 }
38 }
39
41
43 field_0x5c2 = 0;
44 field_0x5c3 = 1;
45 }
46
47 int getType() {
48 int param = fopAcM_GetParam(this) >> 0x18;
49 int type;
50
51 if (param == 0xFF) {
52 type = 0;
53 } else {
54 type = param;
55 }
56
57 return type;
58 }
59
61 u16 rv = home.angle.z;
62 return rv == 0xFFFF ? -1 : rv;
63 }
64
66 u16 r31 = home.angle.x;
67 return (u16)(r31 & 0xFF);
68 }
69
71 u32 talkAngle = (fopAcM_GetParam(this) & 0xE0) >> 5;
72 return talkAngle == 7 ? 0 :
73 talkAngle > 6 ? 6 :
74 talkAngle;
75 }
76
78 u32 talkDis = fopAcM_GetParam(this) & 0x1F;
79 return talkDis == 0x1F ? 0 :
80 talkDis > 0x13 ? 0x13 :
81 talkDis;
82 }
83
85 u32 attnPosOffset = (fopAcM_GetParam(this) & 0xff0000) >> 0x10;
86 if (attnPosOffset == 0xFF) {
87 return G_CM3D_F_INF;
88 }
89 f32 f31 = attnPosOffset;
90 return f31;
91 }
92
94 u16 r31 = home.angle.x;
95 return (bool)(r31 & 0x8000);
96 }
97
99 u32 eyeOffset = (fopAcM_GetParam(this) & 0xff00) >> 8;
100 f32 f31 = eyeOffset == 0xFF ? 0 : eyeOffset;
101 return f31;
102 }
103};
104
105#endif /* D_A_TAG_KMSG_H */
Definition d_msg_flow.h:49
Definition f_op_actor.h:230
actor_place home
Definition f_op_actor.h:249
int dComIfG_resDelete(request_of_phase_process_class *i_phase, char const *i_resName)
Definition d_com_inf_game.cpp:1304
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:192
s16 x
Definition c_sxyz.h:7
s16 z
Definition c_sxyz.h:7
csXyz angle
Definition f_op_actor.h:206
Definition d_a_tag_kmsg.h:10
u8 field_0x5c3
Definition d_a_tag_kmsg.h:26
bool field_0x5c4
Definition d_a_tag_kmsg.h:27
u32 getTalkAngle()
Definition d_a_tag_kmsg.h:70
u8 field_0x5c2
Definition d_a_tag_kmsg.h:25
int Execute()
Definition d_a_tag_kmsg.cpp:75
u32 getFlowNodeNo()
Definition d_a_tag_kmsg.h:60
dMsgFlow_c mMsgFlow
Definition d_a_tag_kmsg.h:22
int getType()
Definition d_a_tag_kmsg.h:47
int Draw()
Definition d_a_tag_kmsg.cpp:223
int isDelete()
Definition d_a_tag_kmsg.cpp:227
u8 getBitSW()
Definition d_a_tag_kmsg.h:65
u8 getChkType()
Definition d_a_tag_kmsg.h:93
void stabMasterSword()
Definition d_a_tag_kmsg.h:40
int create()
Definition d_a_tag_kmsg.cpp:26
u32 mFlowNodeNo
Definition d_a_tag_kmsg.h:23
request_of_phase_process_class mPhase
Definition d_a_tag_kmsg.h:21
s16 mEventIdx
Definition d_a_tag_kmsg.h:24
f32 getEyePosOffset()
Definition d_a_tag_kmsg.h:98
void pullMasterSword()
Definition d_a_tag_kmsg.h:42
u32 getTalkDis()
Definition d_a_tag_kmsg.h:77
int Delete()
Definition d_a_tag_kmsg.cpp:68
KMsg_Type
Definition d_a_tag_kmsg.h:12
@ KMSG_TYPE_1
Definition d_a_tag_kmsg.h:14
@ KMSG_TYPE_2
Definition d_a_tag_kmsg.h:15
@ KMSG_TYPE_5
Definition d_a_tag_kmsg.h:18
@ KMSG_TYPE_0
Definition d_a_tag_kmsg.h:13
@ KMSG_TYPE_4
Definition d_a_tag_kmsg.h:17
@ KMSG_TYPE_3
Definition d_a_tag_kmsg.h:16
virtual ~daTag_KMsg_c()
Definition d_a_tag_kmsg.h:34
f32 getAttnPosOffset()
Definition d_a_tag_kmsg.h:84
Definition c_phase.h:17