Loading [MathJax]/extensions/MathMenu.js
Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
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 /* 8048DE78 */ int create();
30 /* 8048DFDC */ int Delete();
31 /* 8048E010 */ int Execute();
32 /* 8048E8B8 */ int Draw();
33 /* 8048E8C0 */ int isDelete();
34 /* 8048EA30 */ 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 if (rv == 0xffff) {
63 return -1;
64 }
65 return rv;
66 }
67
69 return home.angle.x;
70 }
71
73 u32 talkAngle = (fopAcM_GetParam(this) & 0xe0) >> 5;
74 if (talkAngle == 7) {
75 return 0;
76 } else {
77 return talkAngle > 6 ? 6 : talkAngle;
78 }
79 }
80
82 u32 talkDis = fopAcM_GetParam(this) & 0x1f;
83 if (talkDis == 0x1f) {
84 return 0;
85 } else {
86 return talkDis > 0x13 ? 0x13 : talkDis;
87 }
88 }
89
91 u32 attnPosOffset = (fopAcM_GetParam(this) & 0xff0000) >> 0x10;
92 if (attnPosOffset == 0xff) {
93 return 1000000000.0f;
94 } else {
95 return attnPosOffset;
96 }
97 }
98
100 return home.angle.x & 0x8000;
101 }
102
104 u32 eyeOffset = (fopAcM_GetParam(this) & 0xff00) >> 8;
105 return (eyeOffset == 0xff) ? 0 : eyeOffset;
106 }
107};
108
109#endif /* D_A_TAG_KMSG_H */
Definition d_msg_flow.h:35
static u8 eyeOffset[12]
Definition d_a_npc_gra.cpp:1807
int dComIfG_resDelete(request_of_phase_process_class *i_phase, char const *i_resName)
Definition d_com_inf_game.cpp:1123
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:182
s16 x
Definition c_sxyz.h:7
s16 z
Definition c_sxyz.h:7
csXyz angle
Definition f_op_actor.h:172
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:72
u8 field_0x5c2
Definition d_a_tag_kmsg.h:25
int Execute()
Definition d_a_tag_kmsg.cpp:66
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:213
int isDelete()
Definition d_a_tag_kmsg.cpp:218
u8 getBitSW()
Definition d_a_tag_kmsg.h:68
void stabMasterSword()
Definition d_a_tag_kmsg.h:40
int create()
Definition d_a_tag_kmsg.cpp:32
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:103
void pullMasterSword()
Definition d_a_tag_kmsg.h:42
u32 getTalkDis()
Definition d_a_tag_kmsg.h:81
u32 getChkType()
Definition d_a_tag_kmsg.h:99
int Delete()
Definition d_a_tag_kmsg.cpp:57
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:90
Definition d_a_hozelda.cpp:74
actor_place home
Definition f_op_actor.h:219
Definition d_a_hozelda.cpp:14
unsigned long u32
Definition types.h:9
signed short int s16
Definition types.h:6
float f32
Definition types.h:22
unsigned short int u16
Definition types.h:7
unsigned char u8
Definition types.h:5