d_a_npc / d_a_tag_mhint / d_a_grass work (#1916)

* some npc work / cleanup

* tag_mhint / grass work

* fix path / remove asm
This commit is contained in:
TakaRikka
2023-09-07 21:22:55 -07:00
committed by GitHub
parent 3dd1963a59
commit 6deaa22a19
70 changed files with 2592 additions and 6748 deletions
File diff suppressed because it is too large Load Diff
+259
View File
@@ -0,0 +1,259 @@
/* 80520988-80520AD8 004D28 0150+00 1/1 0/0 0/0 .text WorkCo__14dFlower_data_cFP10fopAc_ac_cUli */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dFlower_data_c::WorkCo(fopAc_ac_c* param_0, u32 param_1, int param_2) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/WorkCo__14dFlower_data_cFP10fopAc_ac_cUli.s"
}
#pragma pop
/* 80520AD8-80520B34 004E78 005C+00 4/4 0/0 0/0 .text deleteAnm__14dFlower_data_cFv */
void dFlower_data_c::deleteAnm() {
if (field_0x01 >= 8) {
daGrass_c::getFlower()->deleteAnm(field_0x01);
dFlower_anm_c* anm_p = daGrass_c::getFlower()->getAnm(field_0x01);
field_0x01 = (anm_p->m_angY >> 0xD) & 7;
}
}
/* 80520B34-80520CFC 004ED4 01C8+00 1/1 0/0 0/0 .text
* WorkAt_NoCutAnim__14dFlower_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfP8cCcD_Obj */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dFlower_data_c::WorkAt_NoCutAnim(fopAc_ac_c* param_0, u32 param_1, int param_2,
dCcMassS_HitInf* param_3, cCcD_Obj* param_4) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/WorkAt_NoCutAnim__14dFlower_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfP8cCcD_Obj.s"
}
#pragma pop
/* 80520CFC-80521A3C 00509C 0D40+00 1/1 0/0 0/0 .text
* WorkAt__14dFlower_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dFlower_data_c::WorkAt(fopAc_ac_c* param_0, u32 param_1, int param_2,
dCcMassS_HitInf* param_3) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/WorkAt__14dFlower_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInf.s"
}
#pragma pop
/* 80521A3C-80521BF8 005DDC 01BC+00 1/1 0/0 0/0 .text hitCheck__14dFlower_data_cFP10fopAc_ac_ci */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dFlower_data_c::hitCheck(fopAc_ac_c* param_0, int param_1) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/hitCheck__14dFlower_data_cFP10fopAc_ac_ci.s"
}
#pragma pop
/* 80521BF8-80521C08 005F98 0010+00 1/1 0/0 0/0 .text newData__14dFlower_room_cFP14dFlower_data_c
*/
void dFlower_room_c::newData(dFlower_data_c* i_data) {
i_data->mp_next = mp_data;
mp_data = i_data;
}
/* 80521C08-80521C64 005FA8 005C+00 1/1 0/0 0/0 .text deleteData__14dFlower_room_cFv */
void dFlower_room_c::deleteData() {
while (mp_data != NULL) {
mp_data->deleteAnm();
mp_data->m_state = 0;
mp_data = mp_data->mp_next;
}
}
/* 80521C64-80521DAC 006004 0148+00 1/1 0/0 0/0 .text __ct__16dFlower_packet_cFv */
// matches with data
#ifdef NONMATCHING
dFlower_packet_c::dFlower_packet_c() {
dFlower_data_c* data_p = m_data;
for (int i = 0; i < 1000; i++) {
data_p->m_state = 0;
data_p++;
}
dFlower_anm_c* anm_p = m_anm;
for (int i = 0; i < 72; i++) {
anm_p->m_state = 0;
anm_p++;
}
s16 unused = 0;
for (int i = 0; i < 8; i++) {
setAnm(i, unused);
unused += 0x2000;
}
m_deleteRoom = &deleteRoom;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dFlower_packet_c::dFlower_packet_c() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/__ct__16dFlower_packet_cFv.s"
}
#pragma pop
#endif
/* 80521DAC-80522774 00614C 09C8+00 2/0 0/0 0/0 .text draw__16dFlower_packet_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm void dFlower_packet_c::draw() {
extern "C" asm void draw__16dFlower_packet_cFv() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/draw__16dFlower_packet_cFv.s"
}
#pragma pop
/* 80522774-8052299C 006B14 0228+00 1/1 0/0 0/0 .text calc__16dFlower_packet_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dFlower_packet_c::calc() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/calc__16dFlower_packet_cFv.s"
}
#pragma pop
/* 8052299C-80522A64 006D3C 00C8+00 2/2 0/0 0/0 .text flowerCheckGroundY__FR4cXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm f32 flowerCheckGroundY(cXyz& param_0) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/flowerCheckGroundY__FR4cXyz.s"
}
#pragma pop
/* 80522A64-80522CBC 006E04 0258+00 1/1 0/0 0/0 .text update__16dFlower_packet_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dFlower_packet_c::update() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/update__16dFlower_packet_cFv.s"
}
#pragma pop
/* 80522CBC-80522E28 00705C 016C+00 1/1 0/0 0/0 .text
* setData__16dFlower_packet_cFP14dFlower_data_ciScR4cXyziScs */
void dFlower_packet_c::setData(dFlower_data_c* i_data, int param_1, s8 param_2, cXyz& i_pos,
int i_roomNo, s8 i_tableNo, s16 i_addCol) {
f32 y_pos;
if (fopOvlpM_IsPeek()) {
y_pos = flowerCheckGroundY(i_pos);
i_data->m_state = 6;
} else {
y_pos = i_pos.y;
i_data->m_state = 38;
}
if (param_2 == 2) {
cLib_onBit(i_data->m_state, 0x40);
}
i_data->field_0x01 = cM_rndF(FLOAT_LABEL(lit_6262));
i_data->m_pos.set(i_pos.x, y_pos, i_pos.z);
i_data->m_tableNo = i_tableNo;
i_data->field_0x03 = 0;
i_data->field_0x04 = i_addCol;
if (m_room[i_roomNo].mp_data == NULL) {
mp_pos = (Vec*)l_flowerPos2;
mp_colors = (GXColor*)l_flowerColor2;
mp_texCoords = (Vec*)l_flowerTexCoord2;
mp_mat2DL = l_mat2DL;
m_mat2DL_size = 0x80;
mp_mat2Light4DL = l_mat2Light4DL;
m_mat2Light4DL_size = 0x80;
mp_Jhana01DL = l_J_hana01DL;
m_Jhana01DL_size = 0x120;
mp_Jhana01_cDL = l_J_hana01_c_01DL;
m_Jhana01_cDL_size = 0x120;
}
m_room[i_roomNo].newData(i_data);
field_0x10 = param_1;
}
/* 80522E28-80522F0C 0071C8 00E4+00 1/1 0/0 0/0 .text newData__16dFlower_packet_cFScR4cXyziScs */
dFlower_data_c* dFlower_packet_c::newData(s8 param_0, cXyz& i_pos, int i_roomNo, s8 i_tableNo,
s16 i_addCol) {
dFlower_data_c* data_p = m_data + field_0x10;
for (int i = field_0x10; i < 1000; i++) {
if (!cLib_checkBit(data_p->m_state, 2)) {
setData(data_p, i, param_0, i_pos, i_roomNo, i_tableNo, i_addCol);
return data_p;
}
data_p++;
}
data_p = m_data;
for (int i = 0; i < field_0x10; i++) {
if (!cLib_checkBit(data_p->m_state, 2)) {
setData(data_p, i, param_0, i_pos, i_roomNo, i_tableNo, i_addCol);
return data_p;
}
data_p++;
}
return NULL;
}
/* 80522F0C-80522F40 0072AC 0034+00 1/0 0/0 0/0 .text deleteRoom__16dFlower_packet_cFi */
void dFlower_packet_c::deleteRoom(int i_roomNo) {
m_room[i_roomNo].deleteData();
}
/* 80522F40-80522F8C 0072E0 004C+00 2/2 0/0 0/0 .text newAnm__16dFlower_packet_cFv */
int dFlower_packet_c::newAnm() {
dFlower_anm_c* anm_p = m_anm + 8;
for (int i = 8; i < 72; i++) {
if (anm_p->m_state == 0) {
anm_p->m_state = 1;
anm_p->m_angY = 0;
anm_p->m_angX = 0;
return i;
}
anm_p++;
}
return -1;
}
/* 80522F8C-80522FB4 00732C 0028+00 1/1 0/0 0/0 .text setAnm__16dFlower_packet_cFis */
void dFlower_packet_c::setAnm(int i_idx, s16 param_1) {
dFlower_anm_c* anm_p = m_anm + i_idx;
anm_p->m_state = 1;
anm_p->m_angY = param_1;
anm_p->m_angX = 0;
}
/* 80522FB4-80522FC0 007354 000C+00 1/1 0/0 0/0 .text __ct__14dFlower_room_cFv */
dFlower_room_c::dFlower_room_c() {
mp_data = NULL;
}
/* 80522FC0-80522FCC 007360 000C+00 1/1 0/0 0/0 .text __ct__13dFlower_anm_cFv */
dFlower_anm_c::dFlower_anm_c() {
m_state = 0;
}
/* 80522FCC-80523008 00736C 003C+00 2/2 0/0 0/0 .text __dt__14dFlower_data_cFv */
dFlower_data_c::~dFlower_data_c() {}
/* 80523008-80523014 0073A8 000C+00 1/1 0/0 0/0 .text __ct__14dFlower_data_cFv */
dFlower_data_c::dFlower_data_c() {
m_state = 0;
}
+530
View File
@@ -0,0 +1,530 @@
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
#include "SSystem/SComponent/c_lib.h"
#include "f_op/f_op_overlap_mng.h"
/* 8051D88C-8051DA20 001C2C 0194+00 1/1 0/0 0/0 .text WorkCo__13dGrass_data_cFP10fopAc_ac_cUli */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dGrass_data_c::WorkCo(fopAc_ac_c* param_0, u32 param_1, int param_2) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/WorkCo__13dGrass_data_cFP10fopAc_ac_cUli.s"
}
#pragma pop
/* 8051DA20-8051DF54 001DC0 0534+00 1/1 0/0 0/0 .text
* WorkAt_NoCutAnim__13dGrass_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfP8cCcD_Obj */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dGrass_data_c::WorkAt_NoCutAnim(fopAc_ac_c* param_0, u32 param_1, int param_2,
dCcMassS_HitInf* param_3, cCcD_Obj* param_4) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/WorkAt_NoCutAnim__13dGrass_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfP8cCcD_Obj.s"
}
#pragma pop
/* 8051DF54-8051E1C8 0022F4 0274+00 1/1 0/0 0/0 .text
* Direction_Set__13dGrass_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfP8cCcD_ObjP5csXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dGrass_data_c::Direction_Set(fopAc_ac_c* param_0, u32 param_1, int param_2,
dCcMassS_HitInf* param_3, cCcD_Obj* param_4, csXyz* param_5) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/Direction_Set__13dGrass_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfP8cCcD_ObjP5csXyz.s"
}
#pragma pop
/* 8051E1C8-8051EB4C 002568 0984+00 1/1 0/0 0/0 .text
* WorkAt__13dGrass_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfUs */
// literals / regswap, equivalent?
#ifdef NONMATCHING
void dGrass_data_c::WorkAt(fopAc_ac_c* param_0, u32 param_1, int i_roomNo, dCcMassS_HitInf* param_3,
u16 i_particleID) {
cCcD_Obj* hit_obj = param_3->GetAtHitObj();
if (hit_obj != NULL) {
if (hit_obj->ChkAtType(0) || hit_obj->ChkAtType(AT_TYPE_ARROW) ||
hit_obj->ChkAtType(AT_TYPE_SLINGSHOT) || hit_obj->ChkAtType(0x20000000) ||
hit_obj->ChkAtType(AT_TYPE_SHIELD_ATTACK) || hit_obj->ChkAtType(AT_TYPE_BOOMERANG) ||
hit_obj->ChkAtType(0x100) || hit_obj->ChkAtType(AT_TYPE_LANTERN_SWING) ||
hit_obj->ChkAtType(AT_TYPE_HOOKSHOT))
{
WorkAt_NoCutAnim(param_0, param_1, i_roomNo, param_3, hit_obj);
return;
}
}
fopAc_ac_c* player_p = dComIfGp_getPlayer(0);
if (hit_obj->ChkAtType(AT_TYPE_BOMB)) {
if (param_0 != NULL && m_pos.abs(param_0->current.pos) > 200.0f) {
WorkAt_NoCutAnim(param_0, param_1, i_roomNo, param_3, hit_obj);
return;
}
} else if (daPy_getPlayerActorClass()->getCutType() >= CUT_TYPE_NM_RIGHT &&
daPy_getPlayerActorClass()->getCutType() <= CUT_TYPE_FINISH_VERTICAL)
{
if (m_pos.abs(player_p->current.pos) > 158.0f) {
if (m_pos.abs(player_p->current.pos) < 200.0f) {
WorkAt_NoCutAnim(param_0, param_1, i_roomNo, param_3, hit_obj);
}
return;
}
} else if (daPy_getPlayerActorClass()->getCutType() == CUT_TYPE_TURN_RIGHT ||
daPy_getPlayerActorClass()->getCutType() == CUT_TYPE_TURN_LEFT)
{
if (m_pos.abs(player_p->current.pos) > 200.0f) {
WorkAt_NoCutAnim(param_0, param_1, i_roomNo, param_3, hit_obj);
return;
}
} else if (daPy_getPlayerActorClass()->getCutType() == CUT_TYPE_LARGE_TURN_RIGHT ||
daPy_getPlayerActorClass()->getCutType() == CUT_TYPE_LARGE_TURN_LEFT)
{
if (m_pos.abs(player_p->current.pos) > 500.0f) {
WorkAt_NoCutAnim(param_0, param_1, i_roomNo, param_3, hit_obj);
return;
}
} else if (daPy_getPlayerActorClass()->getCutType() == CUT_TYPE_NM_VERTICAL ||
daPy_getPlayerActorClass()->getCutType() == CUT_TYPE_NM_STAB)
{
if (m_pos.abs(player_p->current.pos) > 158.0f) {
return;
}
}
if (field_0x02 >= 16) {
daGrass_c::getGrass()->deleteAnm(field_0x02);
}
int itemBitNo = m_itemBitNo;
if (m_itemBitNo == 0xFF) {
itemBitNo = -1;
}
bool create_direct = false;
if (daPy_getPlayerActorClass()->checkHorseRide()) {
create_direct = true;
}
fopAcM_createItemFromTable(&m_pos, m_tableNo, itemBitNo, i_roomNo, NULL, 0, NULL, NULL, NULL,
create_direct);
field_0x02 = -1;
static csXyz ang(0, 0, 0);
cXyz sp50(m_pos.x, m_pos.y + 25.0f, m_pos.z);
dKy_tevstr_c* tevstr = dComIfGp_roomControl_getTevStr(i_roomNo);
csXyz sp40;
Direction_Set(param_0, param_1, i_roomNo, param_3, hit_obj, &sp40);
GXColor envcolor;
envcolor.r = (m_addCol >> 8) & 0xFF;
envcolor.g = m_addCol & 0xFF;
dComIfGp_particle_set(i_particleID, &sp50, tevstr, &sp40, NULL, 255,
dPa_control_c::getLight8EcallBack(), -1, &envcolor, NULL, NULL);
static bool init;
if (!init) {
init = true;
mDoAud_seStart(JA_SE_LK_CUT_GRASS, &m_pos, 0, dComIfGp_getReverb(i_roomNo));
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dGrass_data_c::WorkAt(fopAc_ac_c* param_0, u32 param_1, int param_2,
dCcMassS_HitInf* param_3, u16 param_4) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/WorkAt__13dGrass_data_cFP10fopAc_ac_cUliP15dCcMassS_HitInfUs.s"
}
#pragma pop
#endif
/* 8051EB4C-8051EB88 002EEC 003C+00 3/3 0/0 0/0 .text __dt__5csXyzFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm csXyz::~csXyz() {
extern "C" asm void __dt__5csXyzFv() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/__dt__5csXyzFv.s"
}
#pragma pop
/* ############################################################################################## */
/* 805278B8-805278C4 0046E0 000C+00 3/3 0/0 0/0 .data __vt__15dCcMassS_HitInf */
SECTION_DATA extern void* __vt__15dCcMassS_HitInf[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__15dCcMassS_HitInfFv,
};
/* 8051EB88-8051ED98 002F28 0210+00 1/1 0/0 0/0 .text hitCheck__13dGrass_data_cFiUs */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dGrass_data_c::hitCheck(int param_0, u16 param_1) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/hitCheck__13dGrass_data_cFiUs.s"
}
#pragma pop
/* 8051ED98-8051EDE0 003138 0048+00 1/0 0/0 0/0 .text __dt__15dCcMassS_HitInfFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dCcMassS_HitInf::~dCcMassS_HitInf() {
extern "C" asm void __dt__15dCcMassS_HitInfFv() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/__dt__15dCcMassS_HitInfFv.s"
}
#pragma pop
/* 8051EDE0-8051EDF0 003180 0010+00 1/1 0/0 0/0 .text newData__13dGrass_room_cFP13dGrass_data_c */
void dGrass_room_c::newData(dGrass_data_c* i_data) {
i_data->mp_next = mp_data;
mp_data = i_data;
}
/* 8051EDF0-8051EE8C 003190 009C+00 1/1 0/0 0/0 .text deleteData__13dGrass_room_cFv */
void dGrass_room_c::deleteData() {
while (mp_data != NULL) {
mp_data->m_state = 0;
s8 anm_id = mp_data->field_0x02;
if (anm_id >= 16) {
daGrass_c::getGrass()->deleteAnm(anm_id);
mp_data->field_0x02 = cM_rnd() * FLOAT_LABEL(lit_4600);
}
mp_data = mp_data->mp_next;
}
}
/* 8051EE8C-8051F03C 00322C 01B0+00 1/1 0/0 0/0 .text __ct__15dGrass_packet_cFv */
// matches with ptmf data in right place
#ifdef NONMATCHING
dGrass_packet_c::dGrass_packet_c() {
dGrass_data_c* data_p = m_data;
for (int i = 0; i < 1500; i++) {
data_p->m_state = 0;
data_p++;
}
field_0x10 = 0;
dGrass_anm_c* anm_p = m_anm;
for (int i = 0; i < 112; i++) {
anm_p->m_state = 0;
anm_p++;
}
s16 unused = 0;
for (int i = 0; i < 16; i++) {
setAnm(i, unused);
unused += 0x1000;
}
mp_pos = (Vec*)l_pos;
mp_normal = (Vec*)l_normal;
mp_colors = (GXColor*)l_color;
mp_texCoords = (Vec*)l_texCoord;
mp_kusa9q_DL = l_kusa9q_matDL;
m_kusa9q_DL_size = 0xA0;
mp_kusa9q_14_DL = l_kusa9q_l4_matDL;
m_kusa9q_DL_14_size = 0xA0;
mp_Mkusa_9q_DL = l_M_Kusa_9qDL;
m_Mkusa_9q_DL_size = 0xC0;
mp_Mkusa_9q_cDL = l_M_Kusa_9q_cDL;
m_Mkusa_9q_cDL_size = 0xC0;
field_0x1d714 = 0;
m_deleteRoom = &deleteRoom;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dGrass_packet_c::dGrass_packet_c() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/__ct__15dGrass_packet_cFv.s"
}
#pragma pop
#endif
/* 8051F03C-8051FABC 0033DC 0A80+00 1/0 0/0 0/0 .text draw__15dGrass_packet_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm void dGrass_packet_c::draw() {
extern "C" asm void draw__15dGrass_packet_cFv() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/draw__15dGrass_packet_cFv.s"
}
#pragma pop
/* 8051FABC-8051FF88 003E5C 04CC+00 1/1 0/0 0/0 .text calc__15dGrass_packet_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dGrass_packet_c::calc() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/calc__15dGrass_packet_cFv.s"
}
#pragma pop
/* 8051FF88-80520030 004328 00A8+00 2/3 0/0 0/1 .text checkGroundY__FR4cXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm f32 checkGroundY(cXyz& param_0) {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/checkGroundY__FR4cXyz.s"
}
#pragma pop
/* 80520030-8052067C 0043D0 064C+00 1/1 0/0 0/0 .text update__15dGrass_packet_cFv */
// mostly matches except literals, some regalloc, and one out of order block
#ifdef NONMATCHING
void dGrass_packet_c::update() {
static s16 mAngleZ[1500];
dGrass_anm_c* anm_p = getAnm();
for (int i = 0; i < 112; i++) {
mDoMtx_stack_c::YrotS(anm_p->m_angY);
mDoMtx_stack_c::XrotM(anm_p->m_angX);
mDoMtx_stack_c::YrotM(-anm_p->m_angY);
cMtx_copy(mDoMtx_stack_c::get(), anm_p->m_animMtx);
anm_p++;
}
dGrass_data_c* data_p = getData();
anm_p = getAnm();
int var_r26 = 0;
cXyz sp1C;
f32 far = mDoLib_clipper::getFar();
mDoLib_clipper::changeFar(far * 1.636364f);
for (int i = 0; i < 1500; i++) {
if (data_p->m_state != 0) {
if (data_p->m_state == 1 && var_r26 < 30) {
data_p->m_pos.y = checkGroundY(data_p->m_pos);
data_p->m_state = 2;
var_r26++;
}
sp1C.set(data_p->m_pos.x, data_p->m_pos.y + 260.0f, data_p->m_pos.z);
if (mDoLib_clipper::clip(j3dSys.getViewMtx(), sp1C, 260.0f)) {
cLib_onBit(data_p->field_0x01, 2);
} else {
cLib_offBit(data_p->field_0x01, 2);
if (data_p->field_0x02 >= 0) {
MtxP mtx = anm_p[data_p->field_0x02].m_animMtx;
mtx[0][3] = data_p->m_pos.x;
mtx[1][3] = data_p->m_pos.y;
mtx[2][3] = data_p->m_pos.z;
if (g_env_light.mInitAnmTimer == 1) {
mAngleZ[i] = 0;
}
f32 temp_f2 = ((((s16)data_p->m_pos.x * 3535) & 0xFFF) / 4096.0f) +
((((s16)data_p->m_pos.z * 3535) & 0xFFF) / 4096.0f);
temp_f2 *= 0.5f;
f32 var_f31;
f32 var_f30;
if (data_p->field_0x05 >= 10) {
var_f31 = temp_f2 * 0.4f + 0.6f;
var_f30 = temp_f2 * 0.3f + 0.7f;
} else {
var_f31 = temp_f2 * 0.3f + 0.7f;
var_f30 = (temp_f2 * 0.3f + 0.7f) * 0.8f;
}
mDoMtx_stack_c::copy(mtx);
if (data_p->field_0x05 >= 7 && data_p->field_0x05 <= 9) {
mDoMtx_stack_c::ZrotM(mAngleZ[i]);
mDoMtx_stack_c::scaleM(var_f31, var_f30 - 0.22f, var_f31);
mDoMtx_stack_c::ZrotM(-mAngleZ[i]);
s16 ang = ((i + 1) & 0xF) * 5.0f + 162.0f;
mAngleZ[i] += ang;
} else {
if (data_p->field_0x05 >= 10 &&
memcmp(dComIfGp_getStartStageName(), "D_MN54", 6) != 0)
{
mDoMtx_stack_c::ZrotM(mAngleZ[i]);
}
mDoMtx_stack_c::scaleM(var_f31, var_f30, var_f31);
if (data_p->field_0x05 >= 10 &&
memcmp(dComIfGp_getStartStageName(), "D_MN54", 6) != 0)
{
mDoMtx_stack_c::ZrotM(-mAngleZ[i]);
}
if (data_p->field_0x05 >= 10) {
mDoMtx_stack_c::scaleM(2.0f, (i & 3) * 0.1f + 0.64f, 2.0f);
}
if (data_p->field_0x05 >= 10 &&
memcmp(dComIfGp_getStartStageName(), "D_MN54", 6) != 0)
{
f32 pow =
dKyw_get_wind_pow() * dKyw_get_wind_pow() * dKyw_get_wind_pow();
s16 ang = (((i + 1) & 0xF) * 25.0f + 3200.0f) * pow;
mAngleZ[i] = mAngleZ[i] + ang;
}
}
cMtx_concat(j3dSys.getViewMtx(), mDoMtx_stack_c::get(), data_p->m_modelMtx);
} else {
mDoMtx_stack_c::transS(data_p->m_pos.x, data_p->m_pos.y, data_p->m_pos.z);
mDoMtx_stack_c::YrotM(i * 3535);
if (data_p->field_0x02 < -2) {
mDoMtx_stack_c::scaleM(1.0f, -data_p->field_0x02 / 40.0f, 1.0f);
}
f32 scale = ((((s16)data_p->m_pos.x * 3535) & 0xFFF) / 4096.0f) * 0.3f + 0.7f;
mDoMtx_stack_c::scaleM(scale, scale, scale);
cMtx_concat(j3dSys.getViewMtx(), mDoMtx_stack_c::get(), data_p->m_modelMtx);
}
}
}
data_p++;
}
mDoLib_clipper::resetFar();
dComIfGd_getListPacket()->entryImm(this, 0);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dGrass_packet_c::update() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/update__15dGrass_packet_cFv.s"
}
#pragma pop
#endif
/* 8052067C-80520770 004A1C 00F4+00 1/1 0/0 0/0 .text
* setData__15dGrass_packet_cFP13dGrass_data_ciR4cXyziUcUcsUc */
void dGrass_packet_c::setData(dGrass_data_c* i_data, int param_1, cXyz& i_pos, int i_roomNo,
u8 i_tableNo, u8 i_itemBitNo, s16 i_addCol, u8 param_7) {
f32 y_pos;
if (fopOvlpM_IsPeek()) {
y_pos = checkGroundY(i_pos);
i_data->m_state = 2;
} else {
y_pos = i_pos.y;
i_data->m_state = 1;
}
i_data->field_0x01 = 2;
i_data->field_0x02 = cM_rndF(FLOAT_LABEL(lit_4600));
i_data->m_pos.set(i_pos.x, y_pos, i_pos.z);
i_data->m_tableNo = i_tableNo;
i_data->m_itemBitNo = i_itemBitNo;
i_data->m_addCol = i_addCol;
i_data->field_0x05 = param_7;
m_room[i_roomNo].newData(i_data);
field_0x10 = param_1;
}
/* 80520770-80520864 004B10 00F4+00 1/1 0/0 0/0 .text newData__15dGrass_packet_cFR4cXyziUcUcsUc */
dGrass_data_c* dGrass_packet_c::newData(cXyz& i_pos, int i_roomNo, u8 i_tableNo, u8 i_itemBitNo,
s16 i_addCol, u8 param_5) {
dGrass_data_c* data_p = m_data + field_0x10;
for (int i = field_0x10; i < 1500; i++) {
if (data_p->m_state == 0) {
setData(data_p, i, i_pos, i_roomNo, i_tableNo, i_itemBitNo, i_addCol, param_5);
return data_p;
}
data_p++;
}
data_p = m_data;
for (int i = 0; i < field_0x10; i++) {
if (data_p->m_state == 0) {
setData(data_p, i, i_pos, i_roomNo, i_tableNo, i_itemBitNo, i_addCol, param_5);
return data_p;
}
data_p++;
}
return NULL;
}
/* 80520864-80520898 004C04 0034+00 1/0 0/0 0/0 .text deleteRoom__15dGrass_packet_cFi */
void dGrass_packet_c::deleteRoom(int i_roomNo) {
m_room[i_roomNo].deleteData();
}
/* 80520898-805208E4 004C38 004C+00 2/2 0/0 0/0 .text newAnm__15dGrass_packet_cFv */
int dGrass_packet_c::newAnm() {
dGrass_anm_c* anm_p = m_anm + 16;
for (int i = 16; i < 112; i++) {
if (anm_p->m_state == 0) {
anm_p->m_state = 1;
anm_p->m_angY = 0;
anm_p->m_angX = 0;
return i;
}
anm_p++;
}
return -1;
}
/* 805208E4-8052090C 004C84 0028+00 1/1 0/0 0/0 .text setAnm__15dGrass_packet_cFis */
void dGrass_packet_c::setAnm(int i_idx, s16) {
dGrass_anm_c* anm_p = m_anm + i_idx;
anm_p->m_state = 1;
anm_p->m_angY = 0;
anm_p->m_angX = 0;
}
/* 8052090C-80520928 004CAC 001C+00 1/1 0/0 0/0 .text getSwordTopPos__9daPy_py_cCFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm void daPy_py_c::getSwordTopPos() const {
extern "C" asm void getSwordTopPos__9daPy_py_cCFv() {
nofralloc
#include "asm/rel/d/a/d_a_grass/d_a_grass/getSwordTopPos__9daPy_py_cCFv.s"
}
#pragma pop
/* 80520928-80520934 004CC8 000C+00 1/1 0/0 0/0 .text __ct__13dGrass_room_cFv */
dGrass_room_c::dGrass_room_c() {
mp_data = NULL;
}
/* 80520934-80520940 004CD4 000C+00 1/1 0/0 0/0 .text __ct__12dGrass_anm_cFv */
dGrass_anm_c::dGrass_anm_c() {
m_state = 0;
}
/* 80520940-8052097C 004CE0 003C+00 2/2 0/0 0/0 .text __dt__13dGrass_data_cFv */
dGrass_data_c::~dGrass_data_c() {}
/* 8052097C-80520988 004D1C 000C+00 1/1 0/0 0/0 .text __ct__13dGrass_data_cFv */
dGrass_data_c::dGrass_data_c() {
m_state = 0;
}
+10 -10
View File
@@ -23,7 +23,7 @@ static int daKytag14_Execute(kytag14_class* i_this) {
BOOL switch1_set = true;
BOOL switch2_unset = true;
if (dComIfGs_isTmpBit(0x1301)) {
if (dComIfGs_isTmpBit(dSv_event_tmp_flag_c::NO_TELOP)) {
return 1;
}
@@ -84,17 +84,17 @@ static int daKytag14_Delete(kytag14_class*) {
/* 80529B44-80529BE0 000224 009C+00 1/0 0/0 0/0 .text daKytag14_Create__FP10fopAc_ac_c */
static int daKytag14_Create(fopAc_ac_c* i_this) {
fopAcM_SetupActor(i_this, kytag14_class);
kytag14_class* kytag = static_cast<kytag14_class*>(i_this);
kytag14_class* a_this = static_cast<kytag14_class*>(i_this);
kytag->mSavePoint = fopAcM_GetParam(kytag);
kytag->mSaveRoomNo = (fopAcM_GetParam(kytag) >> 8) & 0xFF;
kytag->mEventID1 = kytag->current.angle.x;
kytag->mEventID2 = kytag->current.angle.y;
kytag->mSwitchNo1 = kytag->current.angle.z;
kytag->mSwitchNo2 = (kytag->current.angle.z >> 8) & 0xFF;
a_this->mSavePoint = fopAcM_GetParam(a_this) & 0xFF;
a_this->mSaveRoomNo = (fopAcM_GetParam(a_this) >> 8) & 0xFF;
a_this->mEventID1 = a_this->current.angle.x & 0xFFFF;
a_this->mEventID2 = a_this->current.angle.y & 0xFFFF;
a_this->mSwitchNo1 = a_this->current.angle.z & 0xFF;
a_this->mSwitchNo2 = (a_this->current.angle.z >> 8) & 0xFF;
if (kytag->orig.roomNo != -1) {
kytag->mSaveRoomNo = kytag->orig.roomNo;
if (a_this->orig.roomNo != -1) {
a_this->mSaveRoomNo = a_this->orig.roomNo;
}
return cPhs_COMPLEATE_e;
+239 -109
View File
@@ -4,42 +4,15 @@
//
#include "rel/d/a/tag/d_a_tag_mhint/d_a_tag_mhint.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "d/a/d_a_alink.h"
#include "d/a/d_a_npc.h"
#include "d/a/d_a_player.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_procname.h"
#include "d/meter/d_meter2_info.h"
#include "dol2asm.h"
//
// Types:
//
struct daPy_py_c {
static u8 m_midnaActor[4];
};
struct dSv_info_c {
/* 80035200 */ void onSwitch(int, int);
/* 80035360 */ void isSwitch(int, int) const;
};
struct dSv_event_flag_c {
static u8 saveBitLabels[1644 + 4 /* padding */];
};
struct dSv_event_c {
/* 800349BC */ void isEventBit(u16) const;
};
struct dEvt_control_c {
/* 80042468 */ void reset();
};
struct dEvent_manager_c {
/* 80047698 */ void getEventIdx(fopAc_ac_c*, u8);
/* 80047A78 */ void endCheck(s16);
};
struct dAttHint_c {
/* 800738FC */ void request(fopAc_ac_c*, int);
};
//
// Forward References:
//
@@ -53,7 +26,7 @@ extern "C" void execute__12daTagMhint_cFv();
extern "C" static void daTagMhint_Execute__FP12daTagMhint_c();
extern "C" static bool daTagMhint_Draw__FP12daTagMhint_c();
extern "C" extern char const* const d_a_tag_mhint__stringBase0;
extern "C" extern void* g_profile_Tag_Mhint[12];
// extern "C" extern void* g_profile_Tag_Mhint[12];
//
// External References:
@@ -84,10 +57,7 @@ extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void __dl__FPv();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_meter2_info[248];
extern "C" u8 m_midnaActor__9daPy_py_c[4];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
@@ -100,61 +70,73 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
SECTION_RODATA static f32 const lit_3741 = 10.0f;
COMPILER_STRIP_GATE(0x805A6034, &lit_3741);
/* 805A6038-805A603C 000004 0004+00 0/1 0/0 0/0 .rodata @3742 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3742 = 10000.0f;
COMPILER_STRIP_GATE(0x805A6038, &lit_3742);
#pragma pop
/* 805A603C-805A6040 000008 0004+00 0/1 0/0 0/0 .rodata @3743 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3743 = 100.0f;
COMPILER_STRIP_GATE(0x805A603C, &lit_3743);
#pragma pop
/* 805A56B8-805A58C8 000078 0210+00 1/1 0/0 0/0 .text create__12daTagMhint_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagMhint_c::create() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_mhint/d_a_tag_mhint/create__12daTagMhint_cFv.s"
int daTagMhint_c::create() {
fopAcM_SetupActor(this, daTagMhint_c);
field_0x574 = fopAcM_GetParam(this) & 0x3FF;
field_0x57c = (fopAcM_GetParam(this) >> 10) & 0x3FF;
field_0x578 = (fopAcM_GetParam(this) >> 20) & 0x1FF;
field_0x57a = field_0x578;
if ((fopAcM_GetParam(this) >> 0x1F)) {
field_0x56a = 1;
} else {
field_0x56a = 0;
}
field_0x56b = (fopAcM_GetParam(this) >> 0x1D) & 1;
if (daPy_getPlayerActorClass() != NULL) {
field_0x572 = fopAcM_GetID(daPy_getPlayerActorClass()) == mParentPcId;
} else {
field_0x572 = 0;
}
field_0x568 = shape_angle.x & 0xFF;
mSwitch = (shape_angle.x >> 8) & 0xFF;
field_0x56d = shape_angle.y & 0xFF;
mToolEventID = (shape_angle.y >> 8) & 0xFF;
mEventID = i_dComIfGp_getEventManager().getEventIdx(this, mToolEventID);
if ((fopAcM_GetParam(this) >> 0x1E) & 1) {
mScale.x *= FLOAT_LABEL(lit_3741);
mScale.y *= FLOAT_LABEL(lit_3741);
}
field_0x5cc = mScale.x * (mScale.x * 10000.0f);
field_0x5d0 = current.pos.y + mScale.y * 100.0f;
if (!checkNoAttention()) {
stage_arrow_data_class* arrow_data_p =
&dComIfGp_getRoomArrow(fopAcM_GetRoomNo(this))
->mEntries[dComIfGp_getRoomCamera(fopAcM_GetRoomNo(this))
->field_0x4[field_0x56d]
.field_0x10];
mEyePos.set(arrow_data_p->mPosition.x, arrow_data_p->mPosition.y,
arrow_data_p->mPosition.z);
mAttentionInfo.mPosition = mEyePos;
}
return cPhs_COMPLEATE_e;
}
#pragma pop
/* 805A58C8-805A58E8 000288 0020+00 1/0 0/0 0/0 .text daTagMhint_Create__FP10fopAc_ac_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagMhint_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_mhint/d_a_tag_mhint/daTagMhint_Create__FP10fopAc_ac_c.s"
static int daTagMhint_Create(fopAc_ac_c* i_this) {
return static_cast<daTagMhint_c*>(i_this)->create();
}
#pragma pop
/* 805A58E8-805A594C 0002A8 0064+00 1/1 0/0 0/0 .text __dt__12daTagMhint_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daTagMhint_c::~daTagMhint_c() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_mhint/d_a_tag_mhint/__dt__12daTagMhint_cFv.s"
}
#pragma pop
daTagMhint_c::~daTagMhint_c() {}
/* 805A594C-805A5974 00030C 0028+00 1/0 0/0 0/0 .text daTagMhint_Delete__FP12daTagMhint_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagMhint_Delete(daTagMhint_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_mhint/d_a_tag_mhint/daTagMhint_Delete__FP12daTagMhint_c.s"
static int daTagMhint_Delete(daTagMhint_c* i_this) {
i_this->~daTagMhint_c();
return 1;
}
#pragma pop
/* ############################################################################################## */
/* 805A6040-805A6044 00000C 0004+00 1/2 0/0 0/0 .rodata @3803 */
@@ -172,6 +154,39 @@ SECTION_DEAD static char const* const stringBase_805A604C = "D_MN04B";
#pragma pop
/* 805A5974-805A5AE4 000334 0170+00 1/1 0/0 0/0 .text eventOrder__12daTagMhint_cFv */
// literals / player ptr re-loads
#ifdef NONMATCHING
void daTagMhint_c::eventOrder() {
if (!i_dComIfGp_event_runCheck()) {
mEvtInfo.i_onCondition(1);
if (!daPy_getPlayerActorClass()->checkPlayerFly() ||
i_dComIfGp_checkPlayerStatus0(0, 0x100000))
{
if (field_0x56a != 0) {
if (checkEventID()) {
fopAcM_orderOtherEventId(this, mEventID, mToolEventID, 0xFFFF, 0, 1);
} else {
fopAcM_orderSpeakEvent(this, 0, 0);
}
} else if (!daPy_getPlayerActorClass()->i_checkMagneBootsOn() ||
strcmp(dComIfGp_getStartStageName(), "D_MN04B") == 0)
{
dComIfGp_att_ZHintRequest(this, 0x1FF);
if (field_0x56f == 0) {
field_0x56f = 1;
if (field_0x57e == 0) {
mDoAud_seStart(Z2SE_NAVI_CALLVOICE, NULL, 0, 0);
}
field_0x57e = 60;
}
}
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -180,6 +195,7 @@ asm void daTagMhint_c::eventOrder() {
#include "asm/rel/d/a/tag/d_a_tag_mhint/d_a_tag_mhint/eventOrder__12daTagMhint_cFv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 805A6048-805A604C 000014 0004+00 0/1 0/0 0/0 .rodata @3956 */
@@ -195,52 +211,166 @@ COMPILER_STRIP_GATE(0x805A6048, &lit_3956);
#pragma pop
/* 805A5AE4-805A6004 0004A4 0520+00 1/1 0/0 0/0 .text execute__12daTagMhint_cFv */
// should match with literals, mDoExt_morf_c::isStop has optimization issues
#ifdef NONMATCHING
int daTagMhint_c::execute() {
daMidna_c* midna_p = daPy_py_c::getMidnaActor();
if (midna_p == NULL) {
return 1;
}
if (field_0x57e != 0) {
field_0x57e--;
}
if (checkNoAttention()) {
mAttentionInfo.mPosition = midna_p->mAttentionInfo.mPosition;
shape_angle.y = midna_p->shape_angle.y;
mEyePos = mAttentionInfo.mPosition;
} else {
shape_angle.y = fopAcM_searchPlayerAngleY(this);
}
if (mEvtInfo.i_checkCommandDemoAccrpt()) {
if (dComIfGp_evmng_endCheck(mEventID)) {
i_dComIfGp_event_reset();
fopAcM_orderSpeakEvent(this, 3, 0);
field_0x570 = 1;
}
} else if (mEvtInfo.checkCommandTalk()) {
if (!midna_p->checkShadowModeTalkWait()) {
if (field_0x56e == 0) {
mMsgFlow.init(this, shape_angle.z & 0xFFFF, 0, NULL);
field_0x56e = 1;
mDoAud_seStart(Z2SE_NAVI_TALK_START, NULL, 0, 0);
field_0x571 = 0;
} else if (mMsgFlow.doFlow(this, NULL, 0)) {
int sp28;
if (mMsgFlow.getEventId(&sp28) == 7) {
dMeter2Info_setPauseStatus(1);
}
if (field_0x571 == 0) {
field_0x571 = 1;
mDoAud_seStart(Z2SE_NAVI_TALK_END, NULL, 0, 0);
}
bool tmp;
if (midna_p->checkShadowModelDraw()) {
midna_p->setShadowReturn();
tmp = midna_p->checkShadowReturnEnd();
} else {
tmp = 1;
}
if (tmp) {
i_dComIfGp_event_reset();
field_0x570 = 0;
if (field_0x572 != 0 || (field_0x56b != 0 && mSwitch != 0xFF)) {
if (field_0x56b != 0) {
i_fopAcM_onSwitch(this, mSwitch);
}
fopAcM_delete(this);
field_0x578 = field_0x57a;
}
}
}
}
} else {
if (field_0x570 != 0) {
mEvtInfo.i_onCondition(1);
fopAcM_orderSpeakEvent(this, 3, 0);
return 1;
}
if (field_0x57c != 0x3FF &&
i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x57c]))
{
return 1;
}
if (mSwitch != 0xFF && i_fopAcM_isSwitch(this, mSwitch)) {
fopAcM_delete(this);
return 1;
}
field_0x56e = 0;
daPy_py_c* player_p = daPy_getPlayerActorClass();
if (current.pos.y <= player_p->current.pos.y && field_0x5d0 >= player_p->current.pos.y &&
fopAcM_searchPlayerDistanceXZ2(this) < field_0x5cc)
{
if ((field_0x574 == 0x3FF ||
i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x574])) &&
(field_0x568 == 0xFF || i_fopAcM_isSwitch(this, field_0x568)))
{
if (field_0x578 != 0x1FF && field_0x578 != 0 && !i_dComIfGp_event_runCheck()) {
field_0x578--;
}
if (field_0x578 == 0 || field_0x578 == 0x1FF) {
eventOrder();
}
} else {
field_0x578 = field_0x57a;
}
} else {
field_0x578 = field_0x57a;
}
}
if (!mEvtInfo.chkCondition(1)) {
field_0x56f = 0;
}
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagMhint_c::execute() {
asm int daTagMhint_c::execute() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_mhint/d_a_tag_mhint/execute__12daTagMhint_cFv.s"
}
#pragma pop
#endif
/* 805A6004-805A6024 0009C4 0020+00 1/0 0/0 0/0 .text daTagMhint_Execute__FP12daTagMhint_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagMhint_Execute(daTagMhint_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_mhint/d_a_tag_mhint/daTagMhint_Execute__FP12daTagMhint_c.s"
static int daTagMhint_Execute(daTagMhint_c* i_this) {
return i_this->execute();
}
#pragma pop
/* 805A6024-805A602C 0009E4 0008+00 1/0 0/0 0/0 .text daTagMhint_Draw__FP12daTagMhint_c
*/
static bool daTagMhint_Draw(daTagMhint_c* param_0) {
return true;
static int daTagMhint_Draw(daTagMhint_c* i_this) {
return 1;
}
/* ############################################################################################## */
/* 805A6054-805A6074 -00001 0020+00 1/0 0/0 0/0 .data l_daTagMhint_Method */
SECTION_DATA static void* l_daTagMhint_Method[8] = {
(void*)daTagMhint_Create__FP10fopAc_ac_c,
(void*)daTagMhint_Delete__FP12daTagMhint_c,
(void*)daTagMhint_Execute__FP12daTagMhint_c,
(void*)NULL,
(void*)daTagMhint_Draw__FP12daTagMhint_c,
(void*)NULL,
(void*)NULL,
(void*)NULL,
static actor_method_class l_daTagMhint_Method = {
(process_method_func)daTagMhint_Create, (process_method_func)daTagMhint_Delete,
(process_method_func)daTagMhint_Execute, (process_method_func)NULL,
(process_method_func)daTagMhint_Draw,
};
/* 805A6074-805A60A4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_Mhint */
SECTION_DATA extern void* g_profile_Tag_Mhint[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x02C10000, (void*)&g_fpcLf_Method,
(void*)0x000005D4, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x00FE0000, (void*)&l_daTagMhint_Method,
(void*)0x00044000, (void*)0x030E0000,
extern actor_process_profile_definition g_profile_Tag_Mhint = {
-3,
7,
-3,
PROC_Tag_Mhint,
&g_fpcLf_Method.mBase,
sizeof(daTagMhint_c),
0,
0,
&g_fopAc_Method.base,
254,
&l_daTagMhint_Method,
0x44000,
3,
14,
};
/* 805A604C-805A604C 000018 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */