mirror of
https://github.com/zeldaret/tp
synced 2026-09-08 19:42:45 -04:00
firewood/tornado/tag_camera done, obj_drop almost (#2190)
* firewood done, obj_drop mostly done * obj_tornado done, cleanup obj_tornado2 * tag_camera done * remove asm * tag_msg done
This commit is contained in:
@@ -150,6 +150,7 @@ extern "C" extern u8 struct_80BE2238[4];
|
||||
//
|
||||
|
||||
/* 80BDFCD8-80BDFD8C 000078 00B4+00 2/2 0/0 0/0 .text searchParentSub__FPvPv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -191,10 +192,11 @@ SECTION_RODATA static f32 const lit_3825 = 50.0f;
|
||||
COMPILER_STRIP_GATE(0x80BE1FD8, &lit_3825);
|
||||
|
||||
/* 80BDFD8C-80BDFE58 00012C 00CC+00 1/1 0/0 0/0 .text Create__11daObjDrop_cFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjDrop_c::Create() {
|
||||
asm int daObjDrop_c::Create() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_drop/d_a_obj_drop/Create__11daObjDrop_cFv.s"
|
||||
}
|
||||
@@ -424,16 +426,18 @@ SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
|
||||
};
|
||||
|
||||
/* 80BDFE58-80BE005C 0001F8 0204+00 1/1 0/0 0/0 .text create__11daObjDrop_cFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjDrop_c::create() {
|
||||
asm int daObjDrop_c::create() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_drop/d_a_obj_drop/func_80BDFE58.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80BE005C-80BE00A4 0003FC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -445,6 +449,7 @@ extern "C" asm void __dt__8cM3dGSphFv() {
|
||||
#pragma pop
|
||||
|
||||
/* 80BE00A4-80BE00EC 000444 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -456,6 +461,7 @@ extern "C" asm void __dt__8cM3dGAabFv() {
|
||||
#pragma pop
|
||||
|
||||
/* 80BE00EC-80BE0148 00048C 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -467,6 +473,7 @@ extern "C" asm void __dt__10dCcD_GSttsFv() {
|
||||
#pragma pop
|
||||
|
||||
/* 80BE0148-80BE01B8 0004E8 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -478,6 +485,7 @@ extern "C" asm void __dt__12dBgS_ObjAcchFv() {
|
||||
#pragma pop
|
||||
|
||||
/* 80BE01B8-80BE0228 000558 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -489,6 +497,7 @@ extern "C" asm void __dt__12dBgS_AcchCirFv() {
|
||||
#pragma pop
|
||||
|
||||
/* 80BE0228-80BE02AC 0005C8 0084+00 1/1 0/0 0/0 .text __dt__19dPa_followEcallBackFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -507,6 +516,7 @@ extern "C" asm void cleanup__18dPa_levelEcallBackFv() {
|
||||
|
||||
/* 80BE02B0-80BE02D8 000650 0028+00 1/1 0/0 0/0 .text __defctor__19dPa_followEcallBackFv
|
||||
*/
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -518,6 +528,7 @@ extern "C" asm void __defctor__19dPa_followEcallBackFv() {
|
||||
#pragma pop
|
||||
|
||||
/* 80BE02D8-80BE0314 000678 003C+00 1/1 0/0 0/0 .text __dt__5csXyzFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -535,6 +546,7 @@ extern "C" asm void __ct__5csXyzFv() {
|
||||
}
|
||||
|
||||
/* 80BE0318-80BE0354 0006B8 003C+00 1/1 0/0 0/0 .text __dt__4cXyzFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -552,6 +564,7 @@ extern "C" asm void __ct__4cXyzFv() {
|
||||
}
|
||||
|
||||
/* 80BE0358-80BE0430 0006F8 00D8+00 2/2 0/0 0/0 .text dropGet__11daObjDrop_cFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -630,7 +643,7 @@ SECTION_DEAD static char const* const stringBase_80BE2048 = "F_SP112";
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjDrop_c::checkGetArea() {
|
||||
asm BOOL daObjDrop_c::checkGetArea() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_drop/d_a_obj_drop/checkGetArea__11daObjDrop_cFv.s"
|
||||
}
|
||||
@@ -638,6 +651,7 @@ asm void daObjDrop_c::checkGetArea() {
|
||||
|
||||
/* 80BE05DC-80BE0658 00097C 007C+00 1/1 0/0 0/0 .text checkCompleteDemo__11daObjDrop_cFv
|
||||
*/
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -654,6 +668,7 @@ COMPILER_STRIP_GATE(0x80BE2004, &lit_4119);
|
||||
|
||||
/* 80BE0658-80BE071C 0009F8 00C4+00 1/1 0/0 0/0 .text createLineEffect__11daObjDrop_cFv
|
||||
*/
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -665,6 +680,7 @@ asm void daObjDrop_c::createLineEffect() {
|
||||
|
||||
/* 80BE071C-80BE077C 000ABC 0060+00 2/2 0/0 0/0 .text removeLineEffect__11daObjDrop_cFv
|
||||
*/
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -676,6 +692,7 @@ asm void daObjDrop_c::removeLineEffect() {
|
||||
|
||||
/* 80BE077C-80BE0840 000B1C 00C4+00 2/2 0/0 0/0 .text createBodyEffect__11daObjDrop_cFv
|
||||
*/
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -687,6 +704,7 @@ asm void daObjDrop_c::createBodyEffect() {
|
||||
|
||||
/* 80BE0840-80BE08A0 000BE0 0060+00 2/2 0/0 0/0 .text removeBodyEffect__11daObjDrop_cFv
|
||||
*/
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -702,20 +720,22 @@ SECTION_RODATA static f32 const lit_4183 = 75.0f;
|
||||
COMPILER_STRIP_GATE(0x80BE2008, &lit_4183);
|
||||
|
||||
/* 80BE08A0-80BE0994 000C40 00F4+00 2/1 0/0 0/0 .text modeInit__11daObjDrop_cFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjDrop_c::modeInit() {
|
||||
asm int daObjDrop_c::modeInit() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_drop/d_a_obj_drop/modeInit__11daObjDrop_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80BE0994-80BE09F4 000D34 0060+00 1/0 0/0 0/0 .text modeNoParent__11daObjDrop_cFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjDrop_c::modeNoParent() {
|
||||
asm int daObjDrop_c::modeNoParent() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_drop/d_a_obj_drop/modeNoParent__11daObjDrop_cFv.s"
|
||||
}
|
||||
@@ -730,10 +750,11 @@ COMPILER_STRIP_GATE(0x80BE200C, &lit_4252);
|
||||
#pragma pop
|
||||
|
||||
/* 80BE09F4-80BE0C08 000D94 0214+00 1/0 0/0 0/0 .text modeParentWait__11daObjDrop_cFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjDrop_c::modeParentWait() {
|
||||
asm int daObjDrop_c::modeParentWait() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_drop/d_a_obj_drop/modeParentWait__11daObjDrop_cFv.s"
|
||||
}
|
||||
@@ -803,6 +824,7 @@ COMPILER_STRIP_GATE(0x80BE202C, &lit_4725);
|
||||
#pragma pop
|
||||
|
||||
/* 80BE2030-80BE2034 0000A8 0004+00 0/1 0/0 0/0 .rodata @4726 */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4726 = 60.0f;
|
||||
@@ -838,16 +860,18 @@ COMPILER_STRIP_GATE(0x80BE2040, &lit_4730);
|
||||
#pragma pop
|
||||
|
||||
/* 80BE0C08-80BE18E0 000FA8 0CD8+00 1/0 0/0 0/0 .text modeWait__11daObjDrop_cFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjDrop_c::modeWait() {
|
||||
asm int daObjDrop_c::modeWait() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_drop/d_a_obj_drop/modeWait__11daObjDrop_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80BE18E0-80BE1928 001C80 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGLinFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -860,15 +884,16 @@ extern "C" asm void __dt__8cM3dGLinFv() {
|
||||
|
||||
/* 80BE1928-80BE1930 001CC8 0008+00 1/0 0/0 0/0 .text actionCompleteWait__11daObjDrop_cFv
|
||||
*/
|
||||
bool daObjDrop_c::actionCompleteWait() {
|
||||
return true;
|
||||
int daObjDrop_c::actionCompleteWait() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BE1930-80BE19D0 001CD0 00A0+00 1/0 0/0 0/0 .text actionOrderCompleteDemo__11daObjDrop_cFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjDrop_c::actionOrderCompleteDemo() {
|
||||
asm int daObjDrop_c::actionOrderCompleteDemo() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_drop/d_a_obj_drop/actionOrderCompleteDemo__11daObjDrop_cFv.s"
|
||||
}
|
||||
@@ -880,10 +905,11 @@ SECTION_RODATA static f32 const lit_4787 = 1.0f / 30.0f;
|
||||
COMPILER_STRIP_GATE(0x80BE2044, &lit_4787);
|
||||
|
||||
/* 80BE19D0-80BE1ACC 001D70 00FC+00 1/0 0/0 0/0 .text actionCompleateDemo__11daObjDrop_cFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjDrop_c::actionCompleateDemo() {
|
||||
asm int daObjDrop_c::actionCompleateDemo() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_drop/d_a_obj_drop/actionCompleateDemo__11daObjDrop_cFv.s"
|
||||
}
|
||||
@@ -891,10 +917,11 @@ asm void daObjDrop_c::actionCompleateDemo() {
|
||||
|
||||
/* 80BE1ACC-80BE1B5C 001E6C 0090+00 1/0 0/0 0/0 .text actionWaitCompleteGetDemo__11daObjDrop_cFv
|
||||
*/
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjDrop_c::actionWaitCompleteGetDemo() {
|
||||
asm int daObjDrop_c::actionWaitCompleteGetDemo() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_drop/d_a_obj_drop/actionWaitCompleteGetDemo__11daObjDrop_cFv.s"
|
||||
}
|
||||
@@ -908,30 +935,33 @@ SECTION_DEAD static char const* const stringBase_80BE2050 = "DEFAULT_GETITEM";
|
||||
#pragma pop
|
||||
|
||||
/* 80BE1B5C-80BE1BC4 001EFC 0068+00 1/0 0/0 0/0 .text actionCompleteGetDemo__11daObjDrop_cFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjDrop_c::actionCompleteGetDemo() {
|
||||
asm int daObjDrop_c::actionCompleteGetDemo() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_drop/d_a_obj_drop/actionCompleteGetDemo__11daObjDrop_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80BE1BC4-80BE1DCC 001F64 0208+00 1/1 0/0 0/0 .text execute__11daObjDrop_cFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjDrop_c::execute() {
|
||||
asm int daObjDrop_c::execute() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_drop/d_a_obj_drop/execute__11daObjDrop_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80BE1DCC-80BE1E0C 00216C 0040+00 1/1 0/0 0/0 .text _delete__11daObjDrop_cFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjDrop_c::_delete() {
|
||||
asm int daObjDrop_c::_delete() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_drop/d_a_obj_drop/_delete__11daObjDrop_cFv.s"
|
||||
}
|
||||
@@ -939,6 +969,7 @@ asm void daObjDrop_c::_delete() {
|
||||
|
||||
/* 80BE1E0C-80BE1E2C 0021AC 0020+00 1/0 0/0 0/0 .text daObjDrop_Execute__FP11daObjDrop_c
|
||||
*/
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -950,6 +981,7 @@ static asm void daObjDrop_Execute(daObjDrop_c* param_0) {
|
||||
|
||||
/* 80BE1E2C-80BE1E4C 0021CC 0020+00 1/0 0/0 0/0 .text daObjDrop_Delete__FP11daObjDrop_c
|
||||
*/
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -960,6 +992,7 @@ static asm void daObjDrop_Delete(daObjDrop_c* param_0) {
|
||||
#pragma pop
|
||||
|
||||
/* 80BE1E4C-80BE1E6C 0021EC 0020+00 1/0 0/0 0/0 .text daObjDrop_Create__FP10fopAc_ac_c */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -970,6 +1003,7 @@ static asm void daObjDrop_Create(fopAc_ac_c* param_0) {
|
||||
#pragma pop
|
||||
|
||||
/* 80BE1E6C-80BE1EE0 00220C 0074+00 1/0 0/0 0/0 .text __dt__18dPa_levelEcallBackFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -1009,6 +1043,7 @@ extern "C" asm void drawAfter__18JPAEmitterCallBackFP14JPABaseEmitter() {
|
||||
}
|
||||
|
||||
/* 80BE1EF0-80BE1F38 002290 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -1020,6 +1055,7 @@ extern "C" asm void __dt__10cCcD_GSttsFv() {
|
||||
#pragma pop
|
||||
|
||||
/* 80BE1F38-80BE1F54 0022D8 001C+00 2/2 0/0 0/0 .text cLib_calcTimer<Uc>__FPUc */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -1030,6 +1066,7 @@ extern "C" asm void func_80BE1F38(void* _this, u8* param_0) {
|
||||
#pragma pop
|
||||
|
||||
/* 80BE1F54-80BE1F70 0022F4 001C+00 1/1 0/0 0/0 .text cLib_calcTimer<Sc>__FPSc */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -1040,6 +1077,7 @@ extern "C" asm void func_80BE1F54(void* _this, s8* param_0) {
|
||||
#pragma pop
|
||||
|
||||
/* 80BE1F70-80BE1F78 002310 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -1050,6 +1088,7 @@ static asm void func_80BE1F70() {
|
||||
#pragma pop
|
||||
|
||||
/* 80BE1F78-80BE1F80 002318 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
|
||||
// matches with literals/weaks
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
||||
@@ -0,0 +1,649 @@
|
||||
/**
|
||||
* @file d_a_obj_drop.cpp
|
||||
*
|
||||
*/
|
||||
|
||||
#include "rel/d/a/obj/d_a_obj_drop/d_a_obj_drop.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "cmath.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_camera.h"
|
||||
#include "d/d_item.h"
|
||||
#include "d/d_tresure.h"
|
||||
#include "d/s/d_s_play.h"
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include "rel/d/a/e/d_a_e_ym/d_a_e_ym.h"
|
||||
#include "rel/d/a/e/d_a_e_ymb/d_a_e_ymb.h"
|
||||
|
||||
/* 80BDFCD8-80BDFD8C 000078 00B4+00 2/2 0/0 0/0 .text searchParentSub__FPvPv */
|
||||
static void* searchParentSub(void* pproc, void* pdata) {
|
||||
daObjDrop_c* pdrop = (daObjDrop_c*)pdata;
|
||||
fopAc_ac_c* pym = (fopAc_ac_c*)pproc;
|
||||
|
||||
if (pym != NULL && fopAcM_IsActor(pym)) {
|
||||
if (fopAcM_GetProfName(pym) == PROC_E_YM) {
|
||||
u8 swbit = ((daE_YM_c*)pym)->getSwitchBit();
|
||||
if (swbit != 0xFF && swbit == pdrop->getYmSwbit()) {
|
||||
pdrop->field_0x6b7 = 1;
|
||||
return pym;
|
||||
}
|
||||
} else if (fopAcM_GetProfName(pym) == PROC_E_YMB) {
|
||||
u8 swbit = ((daE_YMB_c*)pym)->getSwitchBit();
|
||||
if (swbit != 0xFF && swbit == pdrop->getYmSwbit()) {
|
||||
pdrop->field_0x6b7 = 2;
|
||||
return pym;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 80BE1F88-80BE1F94 000000 000C+00 4/4 0/0 0/0 .rodata l_sizuku_body_effect_list */
|
||||
static const u16 l_sizuku_body_effect_list[6] = {0x838B, 0x838C, 0x838D, 0x838E, 0x838F, 0x842B};
|
||||
|
||||
/* 80BE1F94-80BE1F98 00000C 0004+00 0/1 0/0 0/0 .rodata l_sizuku_app_effect_list */
|
||||
static const u16 l_sizuku_app_effect_list[] = {0x8388, 0x8389};
|
||||
|
||||
/* 80BE1F98-80BE1FD8 000010 0040+00 1/1 0/0 0/0 .rodata l_sph_src */
|
||||
const static dCcD_SrcSph l_sph_src = {
|
||||
{
|
||||
{0x0, {{AT_TYPE_0, 0x0, 0x0}, {0x0, 0x0}, 0x79}}, // mObj
|
||||
{dCcD_SE_NONE, 0x1, 0x0, dCcD_MTRL_NONE, 0x0}, // mGObjAt
|
||||
{dCcD_SE_NONE, 0x0, 0x0, dCcD_MTRL_NONE, 0x6}, // mGObjTg
|
||||
{0x0}, // mGObjCo
|
||||
}, // mObjInf
|
||||
{
|
||||
{{0.0f, 0.0f, 0.0f}, 30.0f} // mSph
|
||||
} // mSphAttr
|
||||
};
|
||||
|
||||
/* 80BDFD8C-80BDFE58 00012C 00CC+00 1/1 0/0 0/0 .text Create__11daObjDrop_cFv */
|
||||
int daObjDrop_c::Create() {
|
||||
mAcchCir.SetWall(50.0f, 50.0f);
|
||||
mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir,
|
||||
fopAcM_GetSpeed_p(this), NULL, NULL);
|
||||
|
||||
mCcStts.Init(0, 0xFF, this);
|
||||
mCcSph.Set(l_sph_src);
|
||||
mCcSph.SetStts(&mCcStts);
|
||||
mTargetPos = current.pos;
|
||||
mSound.init(¤t.pos, 2);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BE2060-80BE206C 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
|
||||
static u8 cNullVec__6Z2Calc[12] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* 80BE206C-80BE2080 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
static u32 lit_1787[1 + 4 /* padding */] = {
|
||||
0x02000201,
|
||||
/* padding */
|
||||
0x40080000,
|
||||
0x00000000,
|
||||
0x3FE00000,
|
||||
0x00000000,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 80BDFE58-80BE005C 0001F8 0204+00 1/1 0/0 0/0 .text create__11daObjDrop_cFv */
|
||||
int daObjDrop_c::create() {
|
||||
fopAcM_SetupActor(this, daObjDrop_c);
|
||||
|
||||
if (dComIfGs_isTbox(getSave())) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
modeInit();
|
||||
|
||||
if (!Create()) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
OS_REPORT("DROP PARAM %x\n", fopAcM_GetParam(this));
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
/* 80BE0358-80BE0430 0006F8 00D8+00 2/2 0/0 0/0 .text dropGet__11daObjDrop_cFv */
|
||||
void daObjDrop_c::dropGet() {
|
||||
if (mSetCollectDrop) {
|
||||
dComIfGs_onTbox(getSave());
|
||||
|
||||
u8 num = dComIfGs_getLightDropNum(dComIfGp_getStartStageDarkArea());
|
||||
dComIfGs_setLightDropNum(dComIfGp_getStartStageDarkArea(), num + 1);
|
||||
|
||||
if (dComIfGp_getStartStageDarkArea() == 2 &&
|
||||
dComIfGs_getLightDropNum(dComIfGp_getStartStageDarkArea()) == 15)
|
||||
{
|
||||
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[9]);
|
||||
}
|
||||
|
||||
u8 need_num = dComIfGp_getNeedLightDropNum();
|
||||
s8 area = dComIfGp_getStartStageDarkArea();
|
||||
// "Drop of Light No%d<%d/%d> Get Area<%d>!\n"
|
||||
OS_REPORT("光の雫No%d<%d/%d>ゲットArea<%d>!\n", getSave(), num + 1, need_num, area);
|
||||
execItemGet(HEART);
|
||||
mSetCollectDrop = false;
|
||||
}
|
||||
}
|
||||
|
||||
static f32 dummy() {
|
||||
f32 temp = -4.0f;
|
||||
return temp;
|
||||
}
|
||||
|
||||
/* 80BE0430-80BE05DC 0007D0 01AC+00 1/1 0/0 0/0 .text checkGetArea__11daObjDrop_cFv */
|
||||
BOOL daObjDrop_c::checkGetArea() {
|
||||
f32 dist_to_player = current.pos.abs(daPy_getPlayerActorClass()->current.pos);
|
||||
|
||||
if ((daPy_getPlayerActorClass()->checkCargoCarry() &&
|
||||
strcmp(dComIfGp_getStartStageName(), "F_SP112") == 0) ||
|
||||
(dist_to_player < 250.0f && dComIfGs_isLightDropGetFlag(dComIfGp_getStartStageDarkArea())))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 80BE05DC-80BE0658 00097C 007C+00 1/1 0/0 0/0 .text checkCompleteDemo__11daObjDrop_cFv
|
||||
*/
|
||||
void daObjDrop_c::checkCompleteDemo() {
|
||||
u8 need_num = dComIfGp_getNeedLightDropNum();
|
||||
u8 num = dComIfGs_getLightDropNum(dComIfGp_getStartStageDarkArea());
|
||||
|
||||
if (need_num - 1 == num) {
|
||||
field_0x6ac = fpcM_ERROR_PROCESS_ID_e;
|
||||
setDemoMode(DEMOMODE_ORDER_COMPLETE_DEMO_e);
|
||||
} else {
|
||||
mSetCollectDrop = true;
|
||||
dropGet();
|
||||
}
|
||||
}
|
||||
|
||||
/* 80BE0658-80BE071C 0009F8 00C4+00 1/1 0/0 0/0 .text createLineEffect__11daObjDrop_cFv
|
||||
*/
|
||||
void daObjDrop_c::createLineEffect() {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mpLineEffEmtrs[i] = dComIfGp_particle_set(0x838A, &mLinePos[i], NULL, &scale, 0xFF,
|
||||
&mLineEffCallbacks[i], -1, NULL, NULL, NULL);
|
||||
if (mpLineEffEmtrs[i] == NULL) {
|
||||
// "Drop of Light: Line Effect Set Failed!!\n"
|
||||
OS_REPORT_ERROR("光の雫:光線エフェクトセット失敗!!\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80BE071C-80BE077C 000ABC 0060+00 2/2 0/0 0/0 .text removeLineEffect__11daObjDrop_cFv
|
||||
*/
|
||||
void daObjDrop_c::removeLineEffect() {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mLineEffCallbacks[i].remove();
|
||||
}
|
||||
}
|
||||
|
||||
/* 80BE077C-80BE0840 000B1C 00C4+00 2/2 0/0 0/0 .text createBodyEffect__11daObjDrop_cFv
|
||||
*/
|
||||
void daObjDrop_c::createBodyEffect() {
|
||||
for (int i = 0; i < 6; i++) {
|
||||
mpBodyEffEmtrs[i] =
|
||||
dComIfGp_particle_set(l_sizuku_body_effect_list[i], ¤t.pos, NULL, &scale, 0xFF,
|
||||
&mBodyEffCallbacks[i], -1, NULL, NULL, NULL);
|
||||
if (mpBodyEffEmtrs[i] == NULL) {
|
||||
// "Drop of Light: Effect Set Failed!!!\n"
|
||||
OS_REPORT_ERROR("光の雫:エフェクトセット失敗!!!\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80BE0840-80BE08A0 000BE0 0060+00 2/2 0/0 0/0 .text removeBodyEffect__11daObjDrop_cFv
|
||||
*/
|
||||
void daObjDrop_c::removeBodyEffect() {
|
||||
for (int i = 0; i < 6; i++) {
|
||||
mBodyEffCallbacks[i].remove();
|
||||
}
|
||||
}
|
||||
|
||||
/* 80BE08A0-80BE0994 000C40 00F4+00 2/1 0/0 0/0 .text modeInit__11daObjDrop_cFv */
|
||||
int daObjDrop_c::modeInit() {
|
||||
u8 ym_swbit = getYmSwbit();
|
||||
|
||||
if (ym_swbit == 0xFF || fopAcM_isSwitch(this, ym_swbit)) {
|
||||
createBodyEffect();
|
||||
if (ym_swbit != 0xFF) {
|
||||
field_0x6b7 = 3;
|
||||
}
|
||||
|
||||
home.pos.y = current.pos.y + 75.0f;
|
||||
mModeAction = 2;
|
||||
setMode(MODE_WAIT_e);
|
||||
return 1;
|
||||
}
|
||||
|
||||
mModeAction = 0;
|
||||
|
||||
fopAc_ac_c* pparent = (fopAc_ac_c*)fpcM_Search(searchParentSub, this);
|
||||
if (pparent != NULL) {
|
||||
parentActorID = fopAcM_GetID(pparent);
|
||||
setMode(MODE_PARENT_WAIT_e);
|
||||
return 1;
|
||||
}
|
||||
|
||||
setMode(MODE_NO_PARENT_e);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BE0994-80BE09F4 000D34 0060+00 1/0 0/0 0/0 .text modeNoParent__11daObjDrop_cFv */
|
||||
int daObjDrop_c::modeNoParent() {
|
||||
fopAc_ac_c* pparent = (fopAc_ac_c*)fpcM_Search(searchParentSub, this);
|
||||
if (pparent != NULL) {
|
||||
parentActorID = fopAcM_GetID(pparent);
|
||||
setMode(MODE_PARENT_WAIT_e);
|
||||
} else {
|
||||
#ifdef DEBUG
|
||||
if (!l_HIO.field_0x17) {
|
||||
// "Drop of Light: Waiting for Shadow Insect Creation! SW=%d\n"
|
||||
OS_REPORT("光の雫:闇虫生成待ち!SW=%d\n", getYmSwbit());
|
||||
l_HIO.field_0x17 = true;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BE09F4-80BE0C08 000D94 0214+00 1/0 0/0 0/0 .text modeParentWait__11daObjDrop_cFv */
|
||||
int daObjDrop_c::modeParentWait() {
|
||||
fopAc_ac_c* pparent = fopAcM_SearchByID(parentActorID);
|
||||
if (pparent != NULL) {
|
||||
if (fopAcM_GetProfName(pparent) == PROC_E_YM) {
|
||||
current.pos = pparent->current.pos;
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (fopAcM_GetProfName(pparent) == PROC_E_YMB && !mAppear) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (daPy_getPlayerActorClass()->checkCargoCarry()) {
|
||||
mModeAction = 50;
|
||||
setMode(MODE_WAIT_e);
|
||||
return 1;
|
||||
}
|
||||
|
||||
switch (mModeAction) {
|
||||
case 0:
|
||||
current.angle.set(0, 0, 0);
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
for (int j = 0; j < 2; j++) {
|
||||
dComIfGp_particle_set(l_sizuku_app_effect_list[j], ¤t.pos, ¤t.angle,
|
||||
&scale);
|
||||
}
|
||||
|
||||
current.angle.y += 0x5555;
|
||||
}
|
||||
|
||||
mModeAction = 1;
|
||||
mModeTimer = 40;
|
||||
current.pos.y += 300.0f;
|
||||
mSound.startSound(Z2SE_OBJ_LIGHTDROP_APPEAR, 0, -1);
|
||||
break;
|
||||
case 1:
|
||||
if (cLib_calcTimer<s8>(&mModeTimer) == 0) {
|
||||
mModeAction = 2;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
createBodyEffect();
|
||||
mModeTimer = 45;
|
||||
mModeAction = 0;
|
||||
setMode(MODE_WAIT_e);
|
||||
break;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BE0C08-80BE18E0 000FA8 0CD8+00 1/0 0/0 0/0 .text modeWait__11daObjDrop_cFv */
|
||||
int daObjDrop_c::modeWait() {
|
||||
daPy_py_c* pplayer = daPy_getPlayerActorClass();
|
||||
|
||||
cXyz collect_pos(pplayer->current.pos);
|
||||
cXyz spF0;
|
||||
mDoMtx_stack_c::copy(pplayer->getWolfBackbone2Matrix());
|
||||
mDoMtx_stack_c::multVecZero(&collect_pos);
|
||||
|
||||
switch (mModeAction) {
|
||||
case 0:
|
||||
if (mModeTimer > 0) {
|
||||
mModeTimer--;
|
||||
} else {
|
||||
mTargetPos = home.pos;
|
||||
speedF = 0.0f;
|
||||
mModeAction = 1;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
case 50:
|
||||
cLib_chaseF(&speedF, 7.5f, 0.4f);
|
||||
if (mModeAction == 1) {
|
||||
cLib_chasePos(¤t.pos, mTargetPos, speedF);
|
||||
}
|
||||
|
||||
speed.y = -cM_scos((KREG_S(3) + 1000) * mCounter) * 2.5f;
|
||||
current.pos.y += speed.y;
|
||||
|
||||
if (mTargetPos.abs(current.pos) < 30.0f) {
|
||||
mModeAction = 2;
|
||||
}
|
||||
|
||||
if (checkGetArea()) {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mLinePos[i] = current.pos;
|
||||
mLineMovePos[i] = cXyz::Zero;
|
||||
mTargetAngle[i] = csXyz::Zero;
|
||||
}
|
||||
|
||||
createLineEffect();
|
||||
mModeAction = 3;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
removeBodyEffect();
|
||||
|
||||
static const s16 target_rel_angle[] = {0xC000, 0x0000, 0x4000};
|
||||
static const s16 target_angle_x[] = {0x0000, 0x2000, 0x0000};
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mTargetAngle[i].x = target_angle_x[i];
|
||||
mTargetRelAngle[i] = target_rel_angle[i];
|
||||
}
|
||||
|
||||
mModeAction = 4;
|
||||
mDrawInTimer = 60;
|
||||
mSound.startSound(Z2SE_OBJ_LIGHTDROP_DRAW_IN, 0, -1);
|
||||
break;
|
||||
case 4:
|
||||
mDrawInTimer--;
|
||||
for (int i = 0; i < 3; i++) {
|
||||
speedF = 60.0f;
|
||||
if (daPy_getPlayerActorClass()->checkCargoCarry()) {
|
||||
speedF = 250.0f;
|
||||
}
|
||||
|
||||
f32 var_f25 = cM_scos(mTargetAngle[i].x) * speedF;
|
||||
f32 var_f24 = cM_ssin(mTargetAngle[i].x) * speedF;
|
||||
|
||||
s16 sp150 = cM_atan2s(collect_pos.x - mLinePos[i].x, collect_pos.z - mLinePos[i].z);
|
||||
sp150 += mTargetRelAngle[i];
|
||||
|
||||
cXyz target;
|
||||
target.x = var_f25 * cM_ssin(sp150);
|
||||
target.y = var_f24;
|
||||
target.z = var_f25 * cM_scos(sp150);
|
||||
|
||||
f32 step_scale = KREG_F(10) + 0.5f;
|
||||
f32 step_max = KREG_F(11) + 5.0f;
|
||||
f32 step_min = KREG_F(12) + 1.0f;
|
||||
|
||||
cLib_addCalc(&mLineMovePos[i].x, target.x, step_scale, step_max, step_min);
|
||||
cLib_addCalc(&mLineMovePos[i].y, target.y, step_scale, step_max, step_min);
|
||||
cLib_addCalc(&mLineMovePos[i].z, target.z, step_scale, step_max, step_min);
|
||||
cLib_addCalcAngleS(&mTargetRelAngle[i], 0, 10, 900, 200);
|
||||
|
||||
cXyz prev_line_pos(mLinePos[i]);
|
||||
mLinePos[i].x += mLineMovePos[i].x;
|
||||
mLinePos[i].y += mLineMovePos[i].y;
|
||||
mLinePos[i].z += mLineMovePos[i].z;
|
||||
|
||||
cM3dGLin line;
|
||||
cM3dGSph sph;
|
||||
line.SetStartEnd(prev_line_pos, mLinePos[i]);
|
||||
sph.Set(collect_pos, KREG_F(17) + 50.0f);
|
||||
|
||||
Vec sp114;
|
||||
if (cM3d_Cross_LinSph(&line, &sph, &sp114)) {
|
||||
mLinePos[i] = collect_pos;
|
||||
mLineIsCross[i] = true;
|
||||
}
|
||||
|
||||
cLib_addCalcAngleS(
|
||||
&mTargetAngle[i].x,
|
||||
cM_atan2s(collect_pos.y - mLinePos[i].y, mLinePos[i].absXZ(collect_pos)), 5, 1500,
|
||||
500);
|
||||
}
|
||||
|
||||
if (mLineIsCross[0] || mLineIsCross[1] || mLineIsCross[2] || mDrawInTimer == 0) {
|
||||
pplayer->onWolfLightDropGet();
|
||||
removeLineEffect();
|
||||
mDeleteTimer = 70;
|
||||
checkCompleteDemo();
|
||||
mModeAction = 5;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (cLib_calcTimer<u8>(&mDeleteTimer) == 0) {
|
||||
mModeAction = 6;
|
||||
|
||||
if (chkDemoMode() == DEMOMODE_COMPLETE_WAIT_e) {
|
||||
fopAcM_delete(this);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
break;
|
||||
}
|
||||
|
||||
if (mModeAction == 0 || mModeAction == 1 || mModeAction == 2 || mModeAction == 3) {
|
||||
mSound.startLevelSound(Z2SE_OBJ_LIGHTDROP_FLOAT, 0, -1);
|
||||
}
|
||||
|
||||
if (mModeAction == 2) {
|
||||
if (mTargetPos.absXZ(current.pos) < (KREG_F(4) + 500.0f) && pplayer->getSpeedF() != 0.0f) {
|
||||
mCcSph.SetC(current.pos);
|
||||
dComIfG_Ccsp()->Set(&mCcSph);
|
||||
}
|
||||
|
||||
cXyz* cc_movep = mCcStts.GetCCMoveP();
|
||||
if (cc_movep != NULL) {
|
||||
cXyz move_vec;
|
||||
cXyz sp12C;
|
||||
|
||||
if (!cc_movep->isZero()) {
|
||||
current.angle.y = cM_atan2s(cc_movep->x, cc_movep->z);
|
||||
speedF = 5.0f;
|
||||
sp12C = cXyz::Zero;
|
||||
} else {
|
||||
f32 var_f26 = KREG_F(2) + 1.0f;
|
||||
if (current.pos.absXZ(mTargetPos) < 10.0f) {
|
||||
var_f26 = 0.0f;
|
||||
speedF = 0.0f;
|
||||
}
|
||||
|
||||
s16 sp154 = cM_atan2s(mTargetPos.x - current.pos.x, mTargetPos.z - current.pos.z);
|
||||
sp12C.set(cM_ssin(sp154) * var_f26, 0.0f, cM_scos(sp154) * var_f26);
|
||||
}
|
||||
|
||||
move_vec.set(cM_ssin(current.angle.y) * speedF, 0.0f,
|
||||
cM_scos(current.angle.y) * speedF);
|
||||
move_vec += sp12C;
|
||||
speedF = std::sqrt(move_vec.x * move_vec.x + move_vec.z * move_vec.z);
|
||||
if (speedF > 5.0f) {
|
||||
speedF = 5.0f;
|
||||
}
|
||||
|
||||
current.pos.x += move_vec.x;
|
||||
current.pos.z += move_vec.z;
|
||||
*cc_movep = cXyz::Zero;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BE1928-80BE1930 001CC8 0008+00 1/0 0/0 0/0 .text actionCompleteWait__11daObjDrop_cFv
|
||||
*/
|
||||
int daObjDrop_c::actionCompleteWait() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BE1930-80BE19D0 001CD0 00A0+00 1/0 0/0 0/0 .text actionOrderCompleteDemo__11daObjDrop_cFv */
|
||||
int daObjDrop_c::actionOrderCompleteDemo() {
|
||||
camera_class* pcamera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
|
||||
|
||||
if (eventInfo.i_checkCommandDemoAccrpt()) {
|
||||
pcamera->mCamera.SetTrimTypeForce(1);
|
||||
setDemoMode(DEMOMODE_COMPLETE_DEMO_e);
|
||||
mFadeoutTimer = KREG_S(8) + 135;
|
||||
mSetCollectDrop = true;
|
||||
dropGet();
|
||||
} else {
|
||||
fopAcM_orderPotentialEvent(this, 2, 0, 0);
|
||||
eventInfo.i_onCondition(dEvtCnd_CANDEMO_e);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BE19D0-80BE1ACC 001D70 00FC+00 1/0 0/0 0/0 .text actionCompleateDemo__11daObjDrop_cFv */
|
||||
int daObjDrop_c::actionCompleateDemo() {
|
||||
camera_class* pcamera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
|
||||
pcamera->mCamera.SetTrimTypeForce(1);
|
||||
|
||||
if (eventInfo.i_checkCommandDemoAccrpt()) {
|
||||
int timer = cLib_calcTimer<u8>(&mFadeoutTimer);
|
||||
if (timer == 0) {
|
||||
u8 need_num = dComIfGp_getNeedLightDropNum();
|
||||
u8 num = dComIfGs_getLightDropNum(dComIfGp_getStartStageDarkArea());
|
||||
if (need_num == num) {
|
||||
fopAcM_OnStatus(this, 0x4000);
|
||||
dComIfGs_onSaveSwitch(13);
|
||||
}
|
||||
} else if (timer == 1) {
|
||||
dComIfGs_onSaveSwitch(13);
|
||||
}
|
||||
}
|
||||
|
||||
if (mFadeoutTimer == KREG_S(9) + 30) {
|
||||
mDoGph_gInf_c::fadeOut_f(1.0f / 30.0f, g_saftyWhiteColor);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BE1ACC-80BE1B5C 001E6C 0090+00 1/0 0/0 0/0 .text actionWaitCompleteGetDemo__11daObjDrop_cFv
|
||||
*/
|
||||
int daObjDrop_c::actionWaitCompleteGetDemo() {
|
||||
if (eventInfo.checkCommandItem()) {
|
||||
setDemoMode(DEMOMODE_COMPLETE_GET_DEMO_e);
|
||||
|
||||
if (mPtI_Id != fpcM_ERROR_PROCESS_ID_e) {
|
||||
dComIfGp_event_setItemPartnerId(mPtI_Id);
|
||||
}
|
||||
|
||||
dComIfGs_onSaveSwitch(13);
|
||||
} else {
|
||||
fopAcM_orderItemEvent(this, 0, 0);
|
||||
eventInfo.i_onCondition(dEvtCnd_CANGETITEM_e);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BE1B5C-80BE1BC4 001EFC 0068+00 1/0 0/0 0/0 .text actionCompleteGetDemo__11daObjDrop_cFv */
|
||||
int daObjDrop_c::actionCompleteGetDemo() {
|
||||
if (dComIfGp_evmng_endCheck("DEFAULT_GETITEM")) {
|
||||
dComIfGp_event_reset();
|
||||
fopAcM_delete(this);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BE1BC4-80BE1DCC 001F64 0208+00 1/1 0/0 0/0 .text execute__11daObjDrop_cFv */
|
||||
int daObjDrop_c::execute() {
|
||||
typedef int (daObjDrop_c::*exeFunc)();
|
||||
static exeFunc l_exeFunc[] = {
|
||||
&daObjDrop_c::modeInit,
|
||||
&daObjDrop_c::modeParentWait,
|
||||
&daObjDrop_c::modeNoParent,
|
||||
&daObjDrop_c::modeWait,
|
||||
};
|
||||
static exeFunc l_completeDemoFunc[] = {
|
||||
&daObjDrop_c::actionCompleteWait, &daObjDrop_c::actionOrderCompleteDemo,
|
||||
&daObjDrop_c::actionCompleateDemo, &daObjDrop_c::actionWaitCompleteGetDemo,
|
||||
&daObjDrop_c::actionCompleteGetDemo,
|
||||
};
|
||||
|
||||
attention_info.position = current.pos;
|
||||
eyePos = current.pos;
|
||||
|
||||
mCounter++;
|
||||
|
||||
(this->*l_exeFunc[mMode])();
|
||||
(this->*l_completeDemoFunc[mDemoMode])();
|
||||
|
||||
mSound.framework(0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
|
||||
dTres_c::setLightDropPostion(getSave(), ¤t.pos);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BE1DCC-80BE1E0C 00216C 0040+00 1/1 0/0 0/0 .text _delete__11daObjDrop_cFv */
|
||||
int daObjDrop_c::_delete() {
|
||||
removeLineEffect();
|
||||
removeBodyEffect();
|
||||
mSound.deleteObject();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BE1E0C-80BE1E2C 0021AC 0020+00 1/0 0/0 0/0 .text daObjDrop_Execute__FP11daObjDrop_c
|
||||
*/
|
||||
static int daObjDrop_Execute(daObjDrop_c* i_this) {
|
||||
return i_this->execute();
|
||||
}
|
||||
|
||||
/* 80BE1E2C-80BE1E4C 0021CC 0020+00 1/0 0/0 0/0 .text daObjDrop_Delete__FP11daObjDrop_c
|
||||
*/
|
||||
static int daObjDrop_Delete(daObjDrop_c* i_this) {
|
||||
return i_this->_delete();
|
||||
}
|
||||
|
||||
/* 80BE1E4C-80BE1E6C 0021EC 0020+00 1/0 0/0 0/0 .text daObjDrop_Create__FP10fopAc_ac_c */
|
||||
static int daObjDrop_Create(fopAc_ac_c* i_this) {
|
||||
return ((daObjDrop_c*)i_this)->create();
|
||||
}
|
||||
|
||||
/* 80BE2158-80BE2178 -00001 0020+00 1/0 0/0 0/0 .data l_daObjDrop_Method */
|
||||
static actor_method_class l_daObjDrop_Method = {
|
||||
(process_method_func)daObjDrop_Create,
|
||||
(process_method_func)daObjDrop_Delete,
|
||||
(process_method_func)daObjDrop_Execute,
|
||||
(process_method_func)NULL,
|
||||
(process_method_func)NULL,
|
||||
};
|
||||
|
||||
/* 80BE2178-80BE21A8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Drop */
|
||||
extern actor_process_profile_definition g_profile_Obj_Drop = {
|
||||
fpcLy_CURRENT_e, // mLayerID
|
||||
7, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_Obj_Drop, // mProcName
|
||||
&g_fpcLf_Method.mBase, // sub_method
|
||||
sizeof(daObjDrop_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
243, // mPriority
|
||||
&l_daObjDrop_Method, // sub_method
|
||||
0x00040000, // mStatus
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
@@ -4,110 +4,206 @@
|
||||
*/
|
||||
|
||||
#include "rel/d/a/obj/d_a_obj_fireWood/d_a_obj_fireWood.h"
|
||||
#include "dol2asm.h"
|
||||
#include "d/s/d_s_play.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
/* 80BE762C-80BE7668 0000EC 003C+00 1/1 0/0 0/0 .text __ct__16daFireWood_HIO_cFv */
|
||||
daFireWood_HIO_c::daFireWood_HIO_c() {
|
||||
mFlameOffsetY = 0.0f;
|
||||
mCollisionRadius = 60.0f;
|
||||
mWaitTime = 20;
|
||||
}
|
||||
|
||||
extern "C" void __ct__16daFireWood_HIO_cFv();
|
||||
extern "C" void __dt__14mDoHIO_entry_cFv();
|
||||
extern "C" void setBaseMtx__12daFireWood_cFv();
|
||||
extern "C" void create__12daFireWood_cFv();
|
||||
extern "C" void __dt__8cM3dGCylFv();
|
||||
extern "C" void __dt__8cM3dGAabFv();
|
||||
extern "C" void lightInit__12daFireWood_cFv();
|
||||
extern "C" void setLight__12daFireWood_cFv();
|
||||
extern "C" void Execute__12daFireWood_cFv();
|
||||
extern "C" bool Draw__12daFireWood_cFv();
|
||||
extern "C" void Delete__12daFireWood_cFv();
|
||||
extern "C" static void daFireWood_Draw__FP12daFireWood_c();
|
||||
extern "C" static void daFireWood_Execute__FP12daFireWood_c();
|
||||
extern "C" static void daFireWood_Delete__FP12daFireWood_c();
|
||||
extern "C" static void daFireWood_Create__FP10fopAc_ac_c();
|
||||
extern "C" void __dt__16daFireWood_HIO_cFv();
|
||||
extern "C" void __sinit_d_a_obj_fireWood_cpp();
|
||||
extern "C" u8 const mCcDObjInfo__12daFireWood_c[48];
|
||||
extern "C" u8 mCcDCyl__12daFireWood_c[68];
|
||||
/* 80BE76B0-80BE7708 000170 0058+00 1/1 0/0 0/0 .text setBaseMtx__12daFireWood_cFv */
|
||||
void daFireWood_c::setBaseMtx() {
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
mDoMtx_stack_c::ZXYrotM(current.angle.x, current.angle.y, current.angle.z);
|
||||
}
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
|
||||
extern "C" void dComIfGp_getReverb__Fi();
|
||||
extern "C" void onSwitch__10dSv_info_cFii();
|
||||
extern "C" void isSwitch__10dSv_info_cCFii();
|
||||
extern "C" void
|
||||
set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
|
||||
extern "C" void __ct__10dCcD_GSttsFv();
|
||||
extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
|
||||
extern "C" void __ct__12dCcD_GObjInfFv();
|
||||
extern "C" void ChkTgHit__12dCcD_GObjInfFv();
|
||||
extern "C" void GetTgHitGObj__12dCcD_GObjInfFv();
|
||||
extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
|
||||
extern "C" void dKy_plight_set__FP15LIGHT_INFLUENCE();
|
||||
extern "C" void dKy_plight_cut__FP15LIGHT_INFLUENCE();
|
||||
extern "C" void Set__4cCcSFP8cCcD_Obj();
|
||||
extern "C" void SetC__8cM3dGCylFRC4cXyz();
|
||||
extern "C" void SetH__8cM3dGCylFf();
|
||||
extern "C" void SetR__8cM3dGCylFf();
|
||||
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* __vt__8dCcD_Cyl[36];
|
||||
extern "C" extern void* __vt__9dCcD_Stts[11];
|
||||
extern "C" extern void* __vt__12cCcD_CylAttr[25];
|
||||
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
|
||||
extern "C" extern void* __vt__9cCcD_Stts[8];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
extern "C" void __register_global_object();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BE8004-80BE8008 000000 0004+00 3/3 0/0 0/0 .rodata @3625 */
|
||||
SECTION_RODATA static u8 const lit_3625[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80BE8004, &lit_3625);
|
||||
|
||||
/* 80BE8008-80BE800C 000004 0004+00 1/2 0/0 0/0 .rodata @3626 */
|
||||
SECTION_RODATA static f32 const lit_3626 = 60.0f;
|
||||
COMPILER_STRIP_GATE(0x80BE8008, &lit_3626);
|
||||
/* 80BE8144-80BE8154 000014 0010+00 3/3 0/0 0/0 .bss l_HIO */
|
||||
static daFireWood_HIO_c l_HIO;
|
||||
|
||||
/* 80BE8050-80BE8094 000000 0044+00 2/2 0/0 0/0 .data mCcDCyl__12daFireWood_c */
|
||||
SECTION_DATA u8 daFireWood_c::mCcDCyl[68] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
dCcD_SrcCyl daFireWood_c::mCcDCyl = {
|
||||
daFireWood_c::mCcDObjInfo,
|
||||
{
|
||||
{0.0f, 0.0f, 0.0f}, // mCenter
|
||||
0.0f, // mRadius
|
||||
0.0f // mHeight
|
||||
} // mCyl
|
||||
};
|
||||
|
||||
/* 80BE800C-80BE803C 000008 0030+00 1/1 0/0 0/0 .rodata mCcDObjInfo__12daFireWood_c */
|
||||
const dCcD_SrcGObjInf daFireWood_c::mCcDObjInfo = {
|
||||
{0, {{AT_TYPE_LANTERN_SWING, 0, 0x13}, {0xD8FBFFFF, 0x1F}, {0x0}}},
|
||||
{dCcD_SE_SWORD, 0, 0, dCcD_MTRL_NONE, 0},
|
||||
{dCcD_SE_STONE, 0, 0, dCcD_MTRL_NONE, 0},
|
||||
{0},
|
||||
};
|
||||
|
||||
/* 80BE8094-80BE80AC 000044 0018+00 1/1 0/0 0/0 .data l_cull_box */
|
||||
static Vec l_cull_box[2] = {
|
||||
static cull_box l_cull_box = {
|
||||
{-50.0f, 0.0f, -50.0f},
|
||||
{50.0f, 100.0f, 50.0f},
|
||||
};
|
||||
|
||||
/* 80BE7708-80BE7910 0001C8 0208+00 1/1 0/0 0/0 .text create__12daFireWood_cFv */
|
||||
int daFireWood_c::create() {
|
||||
fopAcM_SetupActor(this, daFireWood_c);
|
||||
|
||||
setBaseMtx();
|
||||
mCcStts.Init(0xFF, 0xFF, this);
|
||||
mCcCyl.Set(mCcDCyl);
|
||||
mCcCyl.SetStts(&mCcStts);
|
||||
|
||||
f32 min_x = l_cull_box.min.x * scale.x;
|
||||
f32 min_y = l_cull_box.min.y * scale.y;
|
||||
f32 min_z = l_cull_box.min.z * scale.x;
|
||||
f32 max_x = l_cull_box.max.x * scale.x;
|
||||
f32 max_y = l_cull_box.max.y * scale.y;
|
||||
f32 max_z = l_cull_box.max.z * scale.x;
|
||||
fopAcM_setCullSizeBox(this, min_x, min_y, min_z, max_x, max_y, max_y);
|
||||
|
||||
mFlamePos.x = current.pos.x;
|
||||
mFlamePos.y = current.pos.y + l_HIO.mFlameOffsetY;
|
||||
mFlamePos.z = current.pos.z;
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mFlameEmtrIDs[i] = 0;
|
||||
}
|
||||
|
||||
lightInit();
|
||||
|
||||
mIsLit = false;
|
||||
mIsSwitch = fopAcM_isSwitch(this, fopAcM_GetParam(this) & 0xFF);
|
||||
if (mIsSwitch) {
|
||||
mIsLit = true;
|
||||
mCcCyl.SetAtMtrl(dCcD_MTRL_FIRE);
|
||||
setLight();
|
||||
}
|
||||
|
||||
mFlameType = fopAcM_GetParam(this) >> 8;
|
||||
mSwWaitTime = 0;
|
||||
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
/* 80BE79A0-80BE7A14 000460 0074+00 1/1 0/0 0/0 .text lightInit__12daFireWood_cFv */
|
||||
void daFireWood_c::lightInit() {
|
||||
mLightPos = mFlamePos;
|
||||
mLightPos.y += 10.0f;
|
||||
|
||||
mLightInfluence.mPosition = mLightPos;
|
||||
mLightInfluence.mColor.r = 0xBC;
|
||||
mLightInfluence.mColor.g = 0x66;
|
||||
mLightInfluence.mColor.b = 0x42;
|
||||
mLightInfluence.mPow = 500.0f;
|
||||
mLightInfluence.mFluctuation = 1.0f;
|
||||
}
|
||||
|
||||
/* 80BE7A14-80BE7A38 0004D4 0024+00 2/2 0/0 0/0 .text setLight__12daFireWood_cFv */
|
||||
void daFireWood_c::setLight() {
|
||||
dKy_plight_set(&mLightInfluence);
|
||||
}
|
||||
|
||||
/* 80BE7A38-80BE7E74 0004F8 043C+00 1/1 0/0 0/0 .text Execute__12daFireWood_cFv */
|
||||
int daFireWood_c::Execute() {
|
||||
mIsSwitch = fopAcM_isSwitch(this, fopAcM_GetParam(this) & 0xFF);
|
||||
|
||||
if (mIsLit) {
|
||||
if (mFlameType == 1) {
|
||||
mFlameEmtrIDs[0] =
|
||||
dComIfGp_particle_set(mFlameEmtrIDs[0], 0x85A7, &mFlamePos, NULL, NULL);
|
||||
mFlameEmtrIDs[1] =
|
||||
dComIfGp_particle_set(mFlameEmtrIDs[1], 0x85BB, &mFlamePos, NULL, NULL);
|
||||
mFlameEmtrIDs[2] =
|
||||
dComIfGp_particle_set(mFlameEmtrIDs[2], 0x85BC, &mFlamePos, NULL, NULL);
|
||||
mFlameEmtrIDs[3] =
|
||||
dComIfGp_particle_set(mFlameEmtrIDs[3], 0x85BD, &mFlamePos, NULL, NULL);
|
||||
} else {
|
||||
mFlameEmtrIDs[0] =
|
||||
dComIfGp_particle_set(mFlameEmtrIDs[0], 0x3AD, &mFlamePos, NULL, NULL);
|
||||
mFlameEmtrIDs[1] =
|
||||
dComIfGp_particle_set(mFlameEmtrIDs[1], 0x3AF, &mFlamePos, NULL, NULL);
|
||||
mFlameEmtrIDs[2] =
|
||||
dComIfGp_particle_set(mFlameEmtrIDs[2], 0x3AE, &mFlamePos, NULL, NULL);
|
||||
}
|
||||
|
||||
mDoAud_seStartLevel(Z2SE_OBJ_FIRE_BURNING, &mFlamePos, 0,
|
||||
dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
|
||||
}
|
||||
|
||||
if (mCcCyl.ChkTgHit()) {
|
||||
dCcD_GObjInf* gobj = mCcCyl.GetTgHitGObj();
|
||||
|
||||
if (gobj->GetAtType() == AT_TYPE_LANTERN_SWING && gobj->GetAtMtrl() == dCcD_MTRL_FIRE &&
|
||||
!mIsLit)
|
||||
{
|
||||
mSwWaitTime = l_HIO.mWaitTime;
|
||||
mIsLit = true;
|
||||
mCcCyl.SetAtMtrl(dCcD_MTRL_FIRE);
|
||||
|
||||
mDoAud_seStart(Z2SE_OBJ_FIRE_IGNITION, &mFlamePos, 0,
|
||||
dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
|
||||
setLight();
|
||||
}
|
||||
}
|
||||
|
||||
mCcCyl.SetR(l_HIO.mCollisionRadius);
|
||||
mCcCyl.SetH(oREG_F(11) + 100.0f);
|
||||
mCcCyl.SetC(current.pos);
|
||||
dComIfG_Ccsp()->Set(&mCcCyl);
|
||||
|
||||
if (mSwWaitTime != 0) {
|
||||
mSwWaitTime--;
|
||||
|
||||
if (mSwWaitTime == 0) {
|
||||
fopAcM_onSwitch(this, fopAcM_GetParam(this) & 0xFF);
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BE7E74-80BE7E7C 000934 0008+00 1/1 0/0 0/0 .text Draw__12daFireWood_cFv */
|
||||
int daFireWood_c::Draw() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BE7E7C-80BE7EA4 00093C 0028+00 1/1 0/0 0/0 .text Delete__12daFireWood_cFv */
|
||||
int daFireWood_c::Delete() {
|
||||
dKy_plight_cut(&mLightInfluence);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80BE7EA4-80BE7EC4 000964 0020+00 1/0 0/0 0/0 .text daFireWood_Draw__FP12daFireWood_c
|
||||
*/
|
||||
static int daFireWood_Draw(daFireWood_c* i_this) {
|
||||
return i_this->Draw();
|
||||
}
|
||||
|
||||
/* 80BE7EC4-80BE7EE4 000984 0020+00 1/0 0/0 0/0 .text daFireWood_Execute__FP12daFireWood_c */
|
||||
static int daFireWood_Execute(daFireWood_c* i_this) {
|
||||
return i_this->Execute();
|
||||
}
|
||||
|
||||
/* 80BE7EE4-80BE7F04 0009A4 0020+00 1/0 0/0 0/0 .text daFireWood_Delete__FP12daFireWood_c
|
||||
*/
|
||||
static int daFireWood_Delete(daFireWood_c* i_this) {
|
||||
return i_this->Delete();
|
||||
}
|
||||
|
||||
/* 80BE7F04-80BE7F24 0009C4 0020+00 1/0 0/0 0/0 .text daFireWood_Create__FP10fopAc_ac_c
|
||||
*/
|
||||
static int daFireWood_Create(fopAc_ac_c* i_this) {
|
||||
return ((daFireWood_c*)i_this)->create();
|
||||
}
|
||||
|
||||
|
||||
/* 80BE80AC-80BE80CC -00001 0020+00 1/0 0/0 0/0 .data l_daFireWood_Method */
|
||||
static actor_method_class l_daFireWood_Method = {
|
||||
(process_method_func)daFireWood_Create__FP10fopAc_ac_c,
|
||||
(process_method_func)daFireWood_Delete__FP12daFireWood_c,
|
||||
(process_method_func)daFireWood_Execute__FP12daFireWood_c,
|
||||
0,
|
||||
(process_method_func)daFireWood_Draw__FP12daFireWood_c,
|
||||
(process_method_func)daFireWood_Create, (process_method_func)daFireWood_Delete,
|
||||
(process_method_func)daFireWood_Execute, (process_method_func)NULL,
|
||||
(process_method_func)daFireWood_Draw,
|
||||
};
|
||||
|
||||
/* 80BE80CC-80BE80FC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_FireWood */
|
||||
@@ -127,258 +223,3 @@ extern actor_process_profile_definition g_profile_Obj_FireWood = {
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
/* 80BE80FC-80BE8108 0000AC 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGCyl */
|
||||
SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__8cM3dGCylFv,
|
||||
};
|
||||
|
||||
/* 80BE8108-80BE8114 0000B8 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */
|
||||
SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__8cM3dGAabFv,
|
||||
};
|
||||
|
||||
/* 80BE8114-80BE8120 0000C4 000C+00 2/2 0/0 0/0 .data __vt__16daFireWood_HIO_c */
|
||||
SECTION_DATA extern void* __vt__16daFireWood_HIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__16daFireWood_HIO_cFv,
|
||||
};
|
||||
|
||||
/* 80BE8120-80BE812C 0000D0 000C+00 3/3 0/0 0/0 .data __vt__14mDoHIO_entry_c */
|
||||
SECTION_DATA extern void* __vt__14mDoHIO_entry_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__14mDoHIO_entry_cFv,
|
||||
};
|
||||
|
||||
/* 80BE762C-80BE7668 0000EC 003C+00 1/1 0/0 0/0 .text __ct__16daFireWood_HIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm daFireWood_HIO_c::daFireWood_HIO_c() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fireWood/d_a_obj_fireWood/__ct__16daFireWood_HIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80BE7668-80BE76B0 000128 0048+00 1/0 0/0 0/0 .text __dt__14mDoHIO_entry_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// mDoHIO_entry_c::~mDoHIO_entry_c()
|
||||
extern "C" asm void __dt__14mDoHIO_entry_cFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fireWood/d_a_obj_fireWood/__dt__14mDoHIO_entry_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80BE76B0-80BE7708 000170 0058+00 1/1 0/0 0/0 .text setBaseMtx__12daFireWood_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daFireWood_c::setBaseMtx() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fireWood/d_a_obj_fireWood/setBaseMtx__12daFireWood_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BE8138-80BE8144 000008 000C+00 1/1 0/0 0/0 .bss @3619 */
|
||||
static u8 lit_3619[12];
|
||||
|
||||
/* 80BE8144-80BE8154 000014 0010+00 3/3 0/0 0/0 .bss l_HIO */
|
||||
static u8 l_HIO[16];
|
||||
|
||||
/* 80BE7708-80BE7910 0001C8 0208+00 1/1 0/0 0/0 .text create__12daFireWood_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daFireWood_c::create() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fireWood/d_a_obj_fireWood/create__12daFireWood_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80BE7910-80BE7958 0003D0 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// cM3dGCyl::~cM3dGCyl()
|
||||
extern "C" asm void __dt__8cM3dGCylFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fireWood/d_a_obj_fireWood/__dt__8cM3dGCylFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80BE7958-80BE79A0 000418 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// cM3dGAab::~cM3dGAab()
|
||||
extern "C" asm void __dt__8cM3dGAabFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fireWood/d_a_obj_fireWood/__dt__8cM3dGAabFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BE800C-80BE803C 000008 0030+00 1/1 0/0 0/0 .rodata mCcDObjInfo__12daFireWood_c */
|
||||
SECTION_RODATA u8 const daFireWood_c::mCcDObjInfo[48] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13,
|
||||
0xD8, 0xFB, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80BE800C, &daFireWood_c::mCcDObjInfo);
|
||||
|
||||
/* 80BE803C-80BE8040 000038 0004+00 0/1 0/0 0/0 .rodata @3806 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3806 = 10.0f;
|
||||
COMPILER_STRIP_GATE(0x80BE803C, &lit_3806);
|
||||
#pragma pop
|
||||
|
||||
/* 80BE8040-80BE8044 00003C 0004+00 0/1 0/0 0/0 .rodata @3807 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3807 = 500.0f;
|
||||
COMPILER_STRIP_GATE(0x80BE8040, &lit_3807);
|
||||
#pragma pop
|
||||
|
||||
/* 80BE8044-80BE8048 000040 0004+00 0/2 0/0 0/0 .rodata @3808 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3808 = 1.0f;
|
||||
COMPILER_STRIP_GATE(0x80BE8044, &lit_3808);
|
||||
#pragma pop
|
||||
|
||||
/* 80BE79A0-80BE7A14 000460 0074+00 1/1 0/0 0/0 .text lightInit__12daFireWood_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daFireWood_c::lightInit() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fireWood/d_a_obj_fireWood/lightInit__12daFireWood_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80BE7A14-80BE7A38 0004D4 0024+00 2/2 0/0 0/0 .text setLight__12daFireWood_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daFireWood_c::setLight() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fireWood/d_a_obj_fireWood/setLight__12daFireWood_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BE8048-80BE804C 000044 0004+00 0/1 0/0 0/0 .rodata @3919 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3919 = -1.0f;
|
||||
COMPILER_STRIP_GATE(0x80BE8048, &lit_3919);
|
||||
#pragma pop
|
||||
|
||||
/* 80BE804C-80BE8050 000048 0004+00 0/2 0/0 0/0 .rodata @3920 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3920 = 100.0f;
|
||||
COMPILER_STRIP_GATE(0x80BE804C, &lit_3920);
|
||||
#pragma pop
|
||||
|
||||
/* 80BE7A38-80BE7E74 0004F8 043C+00 1/1 0/0 0/0 .text Execute__12daFireWood_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daFireWood_c::Execute() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fireWood/d_a_obj_fireWood/Execute__12daFireWood_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80BE7E74-80BE7E7C 000934 0008+00 1/1 0/0 0/0 .text Draw__12daFireWood_cFv */
|
||||
bool daFireWood_c::Draw() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80BE7E7C-80BE7EA4 00093C 0028+00 1/1 0/0 0/0 .text Delete__12daFireWood_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daFireWood_c::Delete() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fireWood/d_a_obj_fireWood/Delete__12daFireWood_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80BE7EA4-80BE7EC4 000964 0020+00 1/0 0/0 0/0 .text daFireWood_Draw__FP12daFireWood_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daFireWood_Draw(daFireWood_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fireWood/d_a_obj_fireWood/daFireWood_Draw__FP12daFireWood_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80BE7EC4-80BE7EE4 000984 0020+00 1/0 0/0 0/0 .text daFireWood_Execute__FP12daFireWood_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daFireWood_Execute(daFireWood_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fireWood/d_a_obj_fireWood/daFireWood_Execute__FP12daFireWood_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80BE7EE4-80BE7F04 0009A4 0020+00 1/0 0/0 0/0 .text daFireWood_Delete__FP12daFireWood_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daFireWood_Delete(daFireWood_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fireWood/d_a_obj_fireWood/daFireWood_Delete__FP12daFireWood_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80BE7F04-80BE7F24 0009C4 0020+00 1/0 0/0 0/0 .text daFireWood_Create__FP10fopAc_ac_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daFireWood_Create(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fireWood/d_a_obj_fireWood/daFireWood_Create__FP10fopAc_ac_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80BE7F24-80BE7F80 0009E4 005C+00 2/1 0/0 0/0 .text __dt__16daFireWood_HIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm daFireWood_HIO_c::~daFireWood_HIO_c() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fireWood/d_a_obj_fireWood/__dt__16daFireWood_HIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80BE7F80-80BE7FF0 000A40 0070+00 0/0 1/0 0/0 .text __sinit_d_a_obj_fireWood_cpp */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __sinit_d_a_obj_fireWood_cpp(){nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fireWood/d_a_obj_fireWood/__sinit_d_a_obj_fireWood_cpp.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
REGISTER_CTORS(0x80BE7F80, __sinit_d_a_obj_fireWood_cpp);
|
||||
#pragma pop
|
||||
|
||||
@@ -1,109 +1,14 @@
|
||||
/**
|
||||
* d_a_obj_tornado.cpp
|
||||
*
|
||||
* Wind Column
|
||||
*/
|
||||
|
||||
#include "rel/d/a/obj/d_a_obj_tornado/d_a_obj_tornado.h"
|
||||
#include "dol2asm.h"
|
||||
#include "d/kankyo/d_kankyo_rain.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void setPntWind__11daObjTrnd_cFv();
|
||||
extern "C" void cutPntWind__11daObjTrnd_cFv();
|
||||
extern "C" void movePntWind__11daObjTrnd_cFv();
|
||||
extern "C" void setCpsInfo__11daObjTrnd_cFv();
|
||||
extern "C" void initBaseMtx__11daObjTrnd_cFv();
|
||||
extern "C" void setBaseMtx__11daObjTrnd_cFv();
|
||||
extern "C" void Create__11daObjTrnd_cFv();
|
||||
extern "C" void create__11daObjTrnd_cFv();
|
||||
extern "C" void __dt__8cM3dGAabFv();
|
||||
extern "C" void execute__11daObjTrnd_cFv();
|
||||
extern "C" bool draw__11daObjTrnd_cFv();
|
||||
extern "C" void _delete__11daObjTrnd_cFv();
|
||||
extern "C" static void daObjTrnd_Draw__FP11daObjTrnd_c();
|
||||
extern "C" static void daObjTrnd_Execute__FP11daObjTrnd_c();
|
||||
extern "C" static void daObjTrnd_Delete__FP11daObjTrnd_c();
|
||||
extern "C" static void daObjTrnd_Create__FP11daObjTrnd_c();
|
||||
extern "C" extern char const* const d_a_obj_tornado__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
|
||||
extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
|
||||
extern "C" void isSwitch__10dSv_info_cCFii();
|
||||
extern "C" void dKyw_pntwind_set__FP14WIND_INFLUENCE();
|
||||
extern "C" void dKyw_pntwind_cut__FP14WIND_INFLUENCE();
|
||||
extern "C" void dKyw_custom_windpower__Ff();
|
||||
extern "C" void dKyw_evt_wind_set__Fss();
|
||||
extern "C" void dKyr_get_vectle_calc__FP4cXyzP4cXyzP4cXyz();
|
||||
extern "C" void __ct__10dCcD_GSttsFv();
|
||||
extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
|
||||
extern "C" void __ct__12dCcD_GObjInfFv();
|
||||
extern "C" void Set__8dCcD_CpsFRC11dCcD_SrcCps();
|
||||
extern "C" void Set__4cCcSFP8cCcD_Obj();
|
||||
extern "C" void normalize__4cXyzFv();
|
||||
extern "C" void isZero__4cXyzCFv();
|
||||
extern "C" void __ct__8cM3dGCpsFv();
|
||||
extern "C" void Set__8cM3dGCpsFRC9cM3dGCpsS();
|
||||
extern "C" void cLib_addCalc__FPfffff();
|
||||
extern "C" void cLib_chaseF__FPfff();
|
||||
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __cvt_fp2unsigned();
|
||||
extern "C" extern void* __vt__8dCcD_Cps[36];
|
||||
extern "C" extern void* __vt__9dCcD_Stts[11];
|
||||
extern "C" extern void* __vt__12cCcD_CpsAttr[25];
|
||||
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
|
||||
extern "C" extern void* __vt__9cCcD_Stts[8];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" f32 Zero__4cXyz[3];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D1C354-80D1C358 000000 0004+00 5/5 0/0 0/0 .rodata @3628 */
|
||||
SECTION_RODATA static u8 const lit_3628[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80D1C354, &lit_3628);
|
||||
|
||||
/* 80D1C358-80D1C35C 000004 0004+00 0/2 0/0 0/0 .rodata @3629 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3629 = 1.0f;
|
||||
COMPILER_STRIP_GATE(0x80D1C358, &lit_3629);
|
||||
#pragma pop
|
||||
|
||||
/* 80D1C35C-80D1C360 000008 0004+00 0/2 0/0 0/0 .rodata @3630 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3630 = 300.0f;
|
||||
COMPILER_STRIP_GATE(0x80D1C35C, &lit_3630);
|
||||
#pragma pop
|
||||
|
||||
/* 80D1C360-80D1C364 00000C 0004+00 0/2 0/0 0/0 .rodata @3631 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3631 = 1.0f / 5.0f;
|
||||
COMPILER_STRIP_GATE(0x80D1C360, &lit_3631);
|
||||
#pragma pop
|
||||
#include "d/s/d_s_play.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
/* 80D1B998-80D1BA0C 000078 0074+00 2/2 0/0 0/0 .text setPntWind__11daObjTrnd_cFv */
|
||||
// Matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void daObjTrnd_c::setPntWind() {
|
||||
mWindInfluence.position = current.pos;
|
||||
mWindInfluence.mDirection.x = 0.0f;
|
||||
@@ -114,187 +19,73 @@ void daObjTrnd_c::setPntWind() {
|
||||
mWindInfluence.mStrength = 0.2f;
|
||||
dKyw_pntwind_set(&mWindInfluence);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjTrnd_c::setPntWind() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_tornado/d_a_obj_tornado/setPntWind__11daObjTrnd_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80D1BA0C-80D1BA30 0000EC 0024+00 2/2 0/0 0/0 .text cutPntWind__11daObjTrnd_cFv */
|
||||
void daObjTrnd_c::cutPntWind() {
|
||||
dKyw_pntwind_cut(&mWindInfluence);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D1C364-80D1C368 000010 0004+00 0/1 0/0 0/0 .rodata @3679 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3679 = 2.0f;
|
||||
COMPILER_STRIP_GATE(0x80D1C364, &lit_3679);
|
||||
#pragma pop
|
||||
|
||||
/* 80D1C368-80D1C36C 000014 0004+00 0/2 0/0 0/0 .rodata @3680 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3680 = 1.0f / 10.0f;
|
||||
COMPILER_STRIP_GATE(0x80D1C368, &lit_3680);
|
||||
#pragma pop
|
||||
|
||||
/* 80D1C36C-80D1C374 000018 0004+04 0/2 0/0 0/0 .rodata @3681 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3681[1 + 1 /* padding */] = {
|
||||
0.5f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80D1C36C, &lit_3681);
|
||||
#pragma pop
|
||||
|
||||
/* 80D1C374-80D1C37C 000020 0008+00 0/1 0/0 0/0 .rodata @3682 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3682[8] = {
|
||||
0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80D1C374, &lit_3682);
|
||||
#pragma pop
|
||||
|
||||
/* 80D1C37C-80D1C384 000028 0008+00 0/1 0/0 0/0 .rodata @3683 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3683[8] = {
|
||||
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80D1C37C, &lit_3683);
|
||||
#pragma pop
|
||||
|
||||
/* 80D1C384-80D1C38C 000030 0008+00 0/1 0/0 0/0 .rodata @3684 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3684[8] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80D1C384, &lit_3684);
|
||||
#pragma pop
|
||||
|
||||
/* 80D1BA30-80D1BC40 000110 0210+00 1/1 0/0 0/0 .text movePntWind__11daObjTrnd_cFv */
|
||||
// Matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void daObjTrnd_c::movePntWind() {
|
||||
cXyz local_20;
|
||||
cXyz local_2c;
|
||||
cXyz cStack_38;
|
||||
local_20.x = field_0x6e8.mStart.x;
|
||||
local_20.y = field_0x6e8.mStart.y;
|
||||
local_20.z = field_0x6e8.mStart.z;
|
||||
local_2c.x = field_0x6e8.mEnd.x;
|
||||
local_2c.y = field_0x6e8.mEnd.y;
|
||||
local_2c.z = field_0x6e8.mEnd.z;
|
||||
dKyr_get_vectle_calc(&local_20, &local_2c, &cStack_38);
|
||||
mWindInfluence.mDirection = cStack_38;
|
||||
mWindInfluence.mRadius = field_0x6e8.mRadius * 2.0f;
|
||||
cXyz start;
|
||||
cXyz end;
|
||||
cXyz direction;
|
||||
start.x = mWindCps.mStart.x;
|
||||
start.y = mWindCps.mStart.y;
|
||||
start.z = mWindCps.mStart.z;
|
||||
end.x = mWindCps.mEnd.x;
|
||||
end.y = mWindCps.mEnd.y;
|
||||
end.z = mWindCps.mEnd.z;
|
||||
dKyr_get_vectle_calc(&start, &end, &direction);
|
||||
|
||||
mWindInfluence.mDirection = direction;
|
||||
mWindInfluence.mRadius = mWindCps.mRadius * 2.0f;
|
||||
mWindInfluence.field_0x20 = 0.0f;
|
||||
cLib_addCalc(&mWindInfluence.position.x, field_0x6e8.mEnd.x, 0.1f, mWindInfluence.mRadius,
|
||||
|
||||
cLib_addCalc(&mWindInfluence.position.x, mWindCps.mEnd.x, 0.1f, mWindInfluence.mRadius,
|
||||
mWindInfluence.mRadius * 0.5f);
|
||||
cLib_addCalc(&mWindInfluence.position.y, field_0x6e8.mEnd.y, 0.1f, mWindInfluence.mRadius,
|
||||
cLib_addCalc(&mWindInfluence.position.y, mWindCps.mEnd.y, 0.1f, mWindInfluence.mRadius,
|
||||
mWindInfluence.mRadius * 0.5f);
|
||||
cLib_addCalc(&mWindInfluence.position.z, field_0x6e8.mEnd.z, 0.1f, mWindInfluence.mRadius,
|
||||
cLib_addCalc(&mWindInfluence.position.z, mWindCps.mEnd.z, 0.1f, mWindInfluence.mRadius,
|
||||
mWindInfluence.mRadius * 0.5f);
|
||||
if (mWindInfluence.position.abs(field_0x6e8.mEnd) < mWindInfluence.mRadius) {
|
||||
mWindInfluence.position = field_0x6e8.mStart;
|
||||
|
||||
if (mWindInfluence.position.abs(mWindCps.mEnd) < mWindInfluence.mRadius) {
|
||||
mWindInfluence.position = mWindCps.mStart;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjTrnd_c::movePntWind() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_tornado/d_a_obj_tornado/movePntWind__11daObjTrnd_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D1C38C-80D1C390 000038 0004+00 0/1 0/0 0/0 .rodata @3724 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3724 = 1.0f / 20.0f;
|
||||
COMPILER_STRIP_GATE(0x80D1C38C, &lit_3724);
|
||||
#pragma pop
|
||||
|
||||
/* 80D1C390-80D1C394 00003C 0004+00 0/3 0/0 0/0 .rodata @3725 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3725 = 3000.0f;
|
||||
COMPILER_STRIP_GATE(0x80D1C390, &lit_3725);
|
||||
#pragma pop
|
||||
|
||||
/* 80D1C394-80D1C398 000040 0004+00 0/1 0/0 0/0 .rodata @3726 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3726 = 30.0f;
|
||||
COMPILER_STRIP_GATE(0x80D1C394, &lit_3726);
|
||||
#pragma pop
|
||||
|
||||
/* 80D1C398-80D1C39C 000044 0004+00 0/1 0/0 0/0 .rodata @3727 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3727 = 127.0f;
|
||||
COMPILER_STRIP_GATE(0x80D1C398, &lit_3727);
|
||||
#pragma pop
|
||||
|
||||
/* 80D1C39C-80D1C3A0 000048 0004+00 0/1 0/0 0/0 .rodata @3728 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3728 = -1.0f;
|
||||
COMPILER_STRIP_GATE(0x80D1C39C, &lit_3728);
|
||||
#pragma pop
|
||||
|
||||
/* 80D1BC40-80D1BE04 000320 01C4+00 1/1 0/0 0/0 .text setCpsInfo__11daObjTrnd_cFv */
|
||||
// Matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void daObjTrnd_c::setCpsInfo() {
|
||||
cLib_chaseF(&field_0x704, field_0x73c, scale.y * 3000.0f * 0.05f);
|
||||
field_0x6e8.mEnd.x = 0;
|
||||
field_0x6e8.mEnd.y = field_0x704;
|
||||
field_0x6e8.mEnd.z = 0;
|
||||
mDoMtx_stack_c::transS(field_0x6e8.mStart);
|
||||
cLib_chaseF(&mNowLength, mTargetLength, scale.y * 3000.0f * 0.05f);
|
||||
mWindCps.mEnd.x = 0;
|
||||
mWindCps.mEnd.y = mNowLength;
|
||||
mWindCps.mEnd.z = 0;
|
||||
|
||||
mDoMtx_stack_c::transS(mWindCps.mStart);
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
mDoMtx_stack_c::multVec(&field_0x6e8.mEnd, &field_0x6e8.mEnd);
|
||||
mCps.cM3dGCps::Set(field_0x6e8);
|
||||
cXyz local_20;
|
||||
local_20.x = field_0x6e8.mEnd.x - field_0x6e8.mStart.x;
|
||||
local_20.y = field_0x6e8.mEnd.y - field_0x6e8.mStart.y;
|
||||
local_20.z = field_0x6e8.mEnd.z - field_0x6e8.mStart.z;
|
||||
if (!local_20.isZero()) {
|
||||
local_20.normalize();
|
||||
mDoMtx_stack_c::multVec(&mWindCps.mEnd, &mWindCps.mEnd);
|
||||
mCps.cM3dGCps::Set(mWindCps);
|
||||
|
||||
cXyz push_vec;
|
||||
push_vec.x = mWindCps.mEnd.x - mWindCps.mStart.x;
|
||||
push_vec.y = mWindCps.mEnd.y - mWindCps.mStart.y;
|
||||
push_vec.z = mWindCps.mEnd.z - mWindCps.mStart.z;
|
||||
|
||||
if (!push_vec.isZero()) {
|
||||
push_vec.normalize();
|
||||
} else {
|
||||
local_20 = cXyz::Zero;
|
||||
push_vec = cXyz::Zero;
|
||||
}
|
||||
local_20 *= scale.z * 30.0f;
|
||||
mCps.SetAtVec(local_20);
|
||||
|
||||
push_vec *= scale.z * 30.0f;
|
||||
mCps.SetAtVec(push_vec);
|
||||
movePntWind();
|
||||
|
||||
if (!checkSE()) {
|
||||
mDoAud_seStartLevel(Z2SE_ENV_WIND_SARUDAN, 0, (field_0x704 / (scale.y * 3000.0f)) * 127.0f, 0);
|
||||
mDoAud_seStartLevel(Z2SE_ENV_WIND_SARUDAN, 0, (mNowLength / (scale.y * 3000.0f)) * 127.0f,
|
||||
0);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjTrnd_c::setCpsInfo() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_tornado/d_a_obj_tornado/setCpsInfo__11daObjTrnd_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80D1BE04-80D1BE24 0004E4 0020+00 1/1 0/0 0/0 .text initBaseMtx__11daObjTrnd_cFv */
|
||||
void daObjTrnd_c::initBaseMtx() {
|
||||
@@ -305,201 +96,108 @@ void daObjTrnd_c::initBaseMtx() {
|
||||
void daObjTrnd_c::setBaseMtx() {
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
MTXCopy(mDoMtx_stack_c::get(), field_0x708);
|
||||
MTXCopy(mDoMtx_stack_c::get(), mMtx);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D1C3A0-80D1C3A4 00004C 0004+00 0/1 0/0 0/0 .rodata @3762 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3762 = -300.0f;
|
||||
COMPILER_STRIP_GATE(0x80D1C3A0, &lit_3762);
|
||||
#pragma pop
|
||||
|
||||
/* 80D1C3B4-80D1C400 000000 004C+00 1/1 0/0 0/0 .data l_cps_src */
|
||||
static dCcD_SrcCps l_cps_src = {
|
||||
{
|
||||
{0x0, {{AT_TYPE_LANTERN_SWING, 0x0, 0x11}, {0x0, 0x0}, 0x0}}, // mObj
|
||||
{dCcD_SE_NONE, 0x0, 0x0, 0x3, 0x2}, // mGObjAt
|
||||
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x4}, // mGObjTg
|
||||
{dCcD_SE_NONE, 0x0, 0x0, dCcD_MTRL_WIND, 0x2}, // mGObjAt
|
||||
{dCcD_SE_NONE, 0x0, 0x0, dCcD_MTRL_NONE, 0x4}, // mGObjTg
|
||||
{0x0}, // mGObjCo
|
||||
}, // mObjInf
|
||||
{
|
||||
{{0.0f, 0.0f, 0.0f}, {0.0f, 3000.0f, 0.0f}, 300.0f}, // mCps
|
||||
} // mCpsAttr
|
||||
} // mCpsAttr
|
||||
};
|
||||
|
||||
/* 80D1BE6C-80D1BFB0 00054C 0144+00 1/1 0/0 0/0 .text Create__11daObjTrnd_cFv */
|
||||
// Matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int daObjTrnd_c::Create() {
|
||||
current.angle.z = 0;
|
||||
shape_angle.z = 0;
|
||||
home.angle.z = 0;
|
||||
|
||||
initBaseMtx();
|
||||
fopAcM_SetMtx(this, field_0x708);
|
||||
mStts.Init(0xff, 0xff, this);
|
||||
fopAcM_SetMtx(this, mMtx);
|
||||
|
||||
mStts.Init(0xFF, 0xFF, this);
|
||||
mCps.Set(l_cps_src);
|
||||
mCps.SetStts(&mStts);
|
||||
cXyz local_1c;
|
||||
cXyz local_28;
|
||||
local_1c.x = scale.x * -300.0f;
|
||||
local_1c.y = 0.0;
|
||||
local_1c.z = scale.x * -300.0f;
|
||||
local_28.x = scale.x * 300.0f;
|
||||
local_28.y = scale.y * 3000.0f;
|
||||
local_28.z = scale.x * 300.0f;
|
||||
fopAcM_setCullSizeBox(this, local_1c.x, 0, local_1c.z,
|
||||
local_28.x, local_28.y,
|
||||
local_28.z);
|
||||
|
||||
cXyz cull_min;
|
||||
cXyz cull_max;
|
||||
cull_min.x = scale.x * -300.0f;
|
||||
cull_min.y = 0.0;
|
||||
cull_min.z = scale.x * -300.0f;
|
||||
cull_max.x = scale.x * 300.0f;
|
||||
cull_max.y = scale.y * 3000.0f;
|
||||
cull_max.z = scale.x * 300.0f;
|
||||
fopAcM_setCullSizeBox(this, cull_min.x, 0, cull_min.z, cull_max.x, cull_max.y, cull_max.z);
|
||||
|
||||
u32 timer = getTimer();
|
||||
if (timer == 0xff || timer == 0) {
|
||||
field_0x738 = 0xffff;
|
||||
if (timer == 0xFF || timer == 0) {
|
||||
mTimer = 0xFFFF;
|
||||
} else {
|
||||
field_0x738 = timer * 15;
|
||||
mTimer = timer * 15;
|
||||
}
|
||||
field_0x6e8.mRadius = scale.x * 300.0f;
|
||||
field_0x6e8.mStart = current.pos;
|
||||
field_0x73c = scale.y * 3000.0f;
|
||||
field_0x704 = field_0x73c;
|
||||
|
||||
mWindCps.mRadius = scale.x * 300.0f;
|
||||
mWindCps.mStart = current.pos;
|
||||
mTargetLength = scale.y * 3000.0f;
|
||||
mNowLength = mTargetLength;
|
||||
setPntWind();
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daObjTrnd_c::Create() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_tornado/d_a_obj_tornado/Create__11daObjTrnd_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D1C400-80D1C420 -00001 0020+00 1/0 0/0 0/0 .data l_daObjTrnd_Method */
|
||||
static actor_method_class l_daObjTrnd_Method = {
|
||||
(process_method_func)daObjTrnd_Create__FP11daObjTrnd_c,
|
||||
(process_method_func)daObjTrnd_Delete__FP11daObjTrnd_c,
|
||||
(process_method_func)daObjTrnd_Execute__FP11daObjTrnd_c,
|
||||
0,
|
||||
(process_method_func)daObjTrnd_Draw__FP11daObjTrnd_c,
|
||||
};
|
||||
|
||||
/* 80D1C420-80D1C450 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Tornado */
|
||||
extern actor_process_profile_definition g_profile_Obj_Tornado = {
|
||||
fpcLy_CURRENT_e, // mLayerID
|
||||
7, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_Obj_Tornado, // mProcName
|
||||
&g_fpcLf_Method.mBase, // sub_method
|
||||
0x00000770, // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
444, // mPriority
|
||||
&l_daObjTrnd_Method, // sub_method
|
||||
0x00040100, // mStatus
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
/* 80D1C450-80D1C45C 00009C 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */
|
||||
SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__8cM3dGAabFv,
|
||||
};
|
||||
|
||||
/* 80D1BFB0-80D1C0A8 000690 00F8+00 1/1 0/0 0/0 .text create__11daObjTrnd_cFv */
|
||||
int daObjTrnd_c::create() {
|
||||
fopAcM_SetupActor(this, daObjTrnd_c);
|
||||
if (Create() == 0) {
|
||||
if (!Create()) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
/* 80D1C0A8-80D1C0F0 000788 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm cM3dGAab::~cM3dGAab() {
|
||||
extern "C" asm void __dt__8cM3dGAabFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_tornado/d_a_obj_tornado/__dt__8cM3dGAabFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D1C3A4-80D1C3A8 000050 0004+00 0/1 0/0 0/0 .rodata @3908 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3908 = 3.0f / 10.0f;
|
||||
COMPILER_STRIP_GATE(0x80D1C3A4, &lit_3908);
|
||||
#pragma pop
|
||||
|
||||
/* 80D1C3A8-80D1C3AC 000054 0004+00 0/1 0/0 0/0 .rodata @3909 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u32 const lit_3909 = 0x3A83126F;
|
||||
COMPILER_STRIP_GATE(0x80D1C3A8, &lit_3909);
|
||||
#pragma pop
|
||||
|
||||
/* 80D1C3AC-80D1C3B0 000058 0004+00 0/1 0/0 0/0 .rodata @3910 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3910 = 9.0f / 10.0f;
|
||||
COMPILER_STRIP_GATE(0x80D1C3AC, &lit_3910);
|
||||
#pragma pop
|
||||
|
||||
/* 80D1C0F0-80D1C290 0007D0 01A0+00 1/1 0/0 0/0 .text execute__11daObjTrnd_cFv */
|
||||
// regalloc
|
||||
#ifdef NONMATCHING
|
||||
int daObjTrnd_c::execute() {
|
||||
if (getSwbit() != 0xff && !fopAcM_isSwitch(this, getSwbit())) {
|
||||
if (field_0x73c != 0.0f) {
|
||||
field_0x73c = 0;
|
||||
if (getSwbit() != 0xFF && !fopAcM_isSwitch(this, getSwbit())) {
|
||||
if (mTargetLength != 0.0f) {
|
||||
mTargetLength = 0;
|
||||
cutPntWind();
|
||||
}
|
||||
cLib_addCalc(&mWindPower, 0.3f, 0.2f, 0.1f, 0.001f);
|
||||
} else if (field_0x738 > 0) {
|
||||
field_0x738--;
|
||||
if (field_0x73c == 0.0f) {
|
||||
} else if (mTimer > 0) {
|
||||
mTimer--;
|
||||
if (mTargetLength == 0.0f) {
|
||||
cLib_addCalc(&mWindPower, 0.3f, 0.2f, 0.1f, 0.001f);
|
||||
} else {
|
||||
cLib_addCalc(&mWindPower, 0.9f, 0.5f, 0.1f, 0.001f);
|
||||
}
|
||||
} else if (field_0x738 == 0) {
|
||||
field_0x738 = 15 * getTimer();
|
||||
if (field_0x73c == 0.0f) {
|
||||
field_0x73c = scale.y * 3000.0f;
|
||||
} else if (mTimer == 0) {
|
||||
mTimer = 15 * getTimer();
|
||||
if (mTargetLength == 0.0f) {
|
||||
mTargetLength = scale.y * 3000.0f;
|
||||
setPntWind();
|
||||
} else {
|
||||
field_0x73c = 0.0f;
|
||||
mTargetLength = 0.0f;
|
||||
cutPntWind();
|
||||
}
|
||||
}
|
||||
dKyw_evt_wind_set(0, home.angle.y);
|
||||
|
||||
dKyw_evt_wind_set(0, home.angle.y + KREG_S(0));
|
||||
dKyw_custom_windpower(mWindPower);
|
||||
setCpsInfo();
|
||||
setBaseMtx();
|
||||
if (field_0x704 != 0.0f) {
|
||||
mCps.cM3dGCps::Set(field_0x6e8);
|
||||
|
||||
if (mNowLength != 0.0f) {
|
||||
mCps.cM3dGCps::Set(mWindCps);
|
||||
dComIfG_Ccsp()->Set(&mCps);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int daObjTrnd_c::execute() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_tornado/d_a_obj_tornado/execute__11daObjTrnd_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80D1C290-80D1C298 000970 0008+00 1/1 0/0 0/0 .text draw__11daObjTrnd_cFv */
|
||||
int daObjTrnd_c::draw() {
|
||||
@@ -536,9 +234,33 @@ static int daObjTrnd_Create(daObjTrnd_c* i_this) {
|
||||
return i_this->create();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D1C3B0-80D1C3B1 00005C 0001+00 0/0 0/0 0/0 .rodata None */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80D1C3B0 = "";
|
||||
SECTION_DEAD static char const* const unused = "";
|
||||
#pragma pop
|
||||
|
||||
/* 80D1C400-80D1C420 -00001 0020+00 1/0 0/0 0/0 .data l_daObjTrnd_Method */
|
||||
static actor_method_class l_daObjTrnd_Method = {
|
||||
(process_method_func)daObjTrnd_Create, (process_method_func)daObjTrnd_Delete,
|
||||
(process_method_func)daObjTrnd_Execute, (process_method_func)NULL,
|
||||
(process_method_func)daObjTrnd_Draw,
|
||||
};
|
||||
|
||||
/* 80D1C420-80D1C450 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Tornado */
|
||||
extern actor_process_profile_definition g_profile_Obj_Tornado = {
|
||||
fpcLy_CURRENT_e, // mLayerID
|
||||
7, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_Obj_Tornado, // mProcName
|
||||
&g_fpcLf_Method.mBase, // sub_method
|
||||
0x00000770, // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
444, // mPriority
|
||||
&l_daObjTrnd_Method, // sub_method
|
||||
0x00040100, // mStatus
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
@@ -1,53 +1,30 @@
|
||||
//
|
||||
// Tornado 2
|
||||
//
|
||||
/**
|
||||
* d_a_obj_tornado2.cpp
|
||||
* Strong Wind Column
|
||||
*/
|
||||
|
||||
#include "rel/d/a/obj/d_a_obj_tornado2/d_a_obj_tornado2.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/kankyo/d_kankyo_rain.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
|
||||
/* 80D1D3D4-80D1D3DC 000000 0006+02 6/6 0/0 0/0 .rodata l_R02_eff_id */
|
||||
static u16 const l_R02_eff_id[3] = {
|
||||
0x8B5E,
|
||||
0x8B5F,
|
||||
0xFFFF,
|
||||
};
|
||||
static const u16 l_R02_eff_id[3] = {0x8B5E, 0x8B5F, 0xFFFF};
|
||||
|
||||
/* 80D1D3DC-80D1D3E4 000008 0006+02 0/1 0/0 0/0 .rodata l_R04_eff_id */
|
||||
static u16 const l_R04_eff_id[3] = {
|
||||
0x8B60,
|
||||
0x8B61,
|
||||
0xFFFF,
|
||||
};
|
||||
static const u16 l_R04_eff_id[3] = {0x8B60, 0x8B61, 0xFFFF};
|
||||
|
||||
/* 80D1D3E4-80D1D3EC 000010 0006+02 0/1 0/0 0/0 .rodata l_R05_eff_id */
|
||||
static u16 const l_R05_eff_id[3] = {
|
||||
0x8B6B,
|
||||
0x8B6C,
|
||||
0xFFFF,
|
||||
};
|
||||
static const u16 l_R05_eff_id[3] = {0x8B6B, 0x8B6C, 0xFFFF};
|
||||
|
||||
/* 80D1D3EC-80D1D3F4 000018 0006+02 0/1 0/0 0/0 .rodata l_R07_eff_id */
|
||||
static u16 const l_R07_eff_id[3] = {
|
||||
0x8B6D,
|
||||
0x8B6E,
|
||||
0xFFFF,
|
||||
};
|
||||
static const u16 l_R07_eff_id[3] = {0x8B6D, 0x8B6E, 0xFFFF};
|
||||
|
||||
/* 80D1D3F4-80D1D3FC 000020 0006+02 0/1 0/0 0/0 .rodata l_R14_eff_id */
|
||||
static u16 const l_R14_eff_id[3] = {
|
||||
0x8B66,
|
||||
0x8B67,
|
||||
0x8B68,
|
||||
};
|
||||
static const u16 l_R14_eff_id[3] = {0x8B66, 0x8B67, 0x8B68};
|
||||
|
||||
/* 80D1D3FC-80D1D404 000028 0006+02 0/1 0/0 0/0 .rodata l_R51_eff_id */
|
||||
static u16 const l_R51_eff_id[3] = {
|
||||
0x8B69,
|
||||
0x8B6A,
|
||||
0xFFFF,
|
||||
};
|
||||
static const u16 l_R51_eff_id[3] = {0x8B69, 0x8B6A, 0xFFFF};
|
||||
|
||||
/* 80D1C4D8-80D1C54C 000078 0074+00 1/1 0/0 0/0 .text setPntWind__12daObjTrnd2_cFv */
|
||||
void daObjTrnd2_c::setPntWind() {
|
||||
@@ -55,7 +32,7 @@ void daObjTrnd2_c::setPntWind() {
|
||||
mWindInfluence.mDirection.x = 0.0f;
|
||||
mWindInfluence.mDirection.y = 1.0f;
|
||||
mWindInfluence.mDirection.z = 0.0f;
|
||||
mWindInfluence.mRadius = field_0x768 * scale.x;
|
||||
mWindInfluence.mRadius = mDefaultRadius * scale.x;
|
||||
mWindInfluence.field_0x20 = 0.0f;
|
||||
mWindInfluence.mStrength = 0.2f;
|
||||
dKyw_pntwind_set(&mWindInfluence);
|
||||
@@ -68,57 +45,65 @@ void daObjTrnd2_c::cutPntWind() {
|
||||
|
||||
/* 80D1C570-80D1C780 000110 0210+00 1/1 0/0 0/0 .text movePntWind__12daObjTrnd2_cFv */
|
||||
void daObjTrnd2_c::movePntWind() {
|
||||
cXyz local_20;
|
||||
cXyz local_2c;
|
||||
cXyz cStack_38;
|
||||
local_20.x = field_0x6e8.mStart.x;
|
||||
local_20.y = field_0x6e8.mStart.y;
|
||||
local_20.z = field_0x6e8.mStart.z;
|
||||
local_2c.x = field_0x6e8.mEnd.x;
|
||||
local_2c.y = field_0x6e8.mEnd.y;
|
||||
local_2c.z = field_0x6e8.mEnd.z;
|
||||
dKyr_get_vectle_calc(&local_20, &local_2c, &cStack_38);
|
||||
mWindInfluence.mDirection = cStack_38;
|
||||
mWindInfluence.mRadius = field_0x6e8.mRadius * 2.0f;
|
||||
cXyz start;
|
||||
cXyz end;
|
||||
cXyz direction;
|
||||
start.x = mWindCps.mStart.x;
|
||||
start.y = mWindCps.mStart.y;
|
||||
start.z = mWindCps.mStart.z;
|
||||
end.x = mWindCps.mEnd.x;
|
||||
end.y = mWindCps.mEnd.y;
|
||||
end.z = mWindCps.mEnd.z;
|
||||
dKyr_get_vectle_calc(&start, &end, &direction);
|
||||
|
||||
mWindInfluence.mDirection = direction;
|
||||
mWindInfluence.mRadius = mWindCps.mRadius * 2.0f;
|
||||
mWindInfluence.field_0x20 = 0.0f;
|
||||
cLib_addCalc(&mWindInfluence.position.x, field_0x6e8.mEnd.x, 0.1f, mWindInfluence.mRadius,
|
||||
|
||||
cLib_addCalc(&mWindInfluence.position.x, mWindCps.mEnd.x, 0.1f, mWindInfluence.mRadius,
|
||||
mWindInfluence.mRadius * 0.5f);
|
||||
cLib_addCalc(&mWindInfluence.position.y, field_0x6e8.mEnd.y, 0.1f, mWindInfluence.mRadius,
|
||||
cLib_addCalc(&mWindInfluence.position.y, mWindCps.mEnd.y, 0.1f, mWindInfluence.mRadius,
|
||||
mWindInfluence.mRadius * 0.5f);
|
||||
cLib_addCalc(&mWindInfluence.position.z, field_0x6e8.mEnd.z, 0.1f, mWindInfluence.mRadius,
|
||||
cLib_addCalc(&mWindInfluence.position.z, mWindCps.mEnd.z, 0.1f, mWindInfluence.mRadius,
|
||||
mWindInfluence.mRadius * 0.5f);
|
||||
if (mWindInfluence.position.abs(field_0x6e8.mEnd) < mWindInfluence.mRadius) {
|
||||
mWindInfluence.position = field_0x6e8.mStart;
|
||||
|
||||
if (mWindInfluence.position.abs(mWindCps.mEnd) < mWindInfluence.mRadius) {
|
||||
mWindInfluence.position = mWindCps.mStart;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80D1C780-80D1C924 000320 01A4+00 1/1 0/0 0/0 .text setCpsInfo__12daObjTrnd2_cFv */
|
||||
void daObjTrnd2_c::setCpsInfo() {
|
||||
cLib_chaseF(&field_0x704, field_0x738, field_0x76c * scale.y * 0.05f);
|
||||
field_0x6e8.mEnd.x = 0;
|
||||
field_0x6e8.mEnd.y = field_0x704;
|
||||
field_0x6e8.mEnd.z = 0;
|
||||
mDoMtx_stack_c::transS(field_0x6e8.mStart);
|
||||
cLib_chaseF(&mNowLength, mTargetLength, mDefaultLength * scale.y * 0.05f);
|
||||
mWindCps.mEnd.x = 0;
|
||||
mWindCps.mEnd.y = mNowLength;
|
||||
mWindCps.mEnd.z = 0;
|
||||
|
||||
mDoMtx_stack_c::transS(mWindCps.mStart);
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
mDoMtx_stack_c::multVec(&field_0x6e8.mEnd, &field_0x6e8.mEnd);
|
||||
mCps.cM3dGCps::Set(field_0x6e8);
|
||||
f32 dVar6 = 10.0f;
|
||||
if (getPower() != 0xff) {
|
||||
dVar6 = getPower();
|
||||
mDoMtx_stack_c::multVec(&mWindCps.mEnd, &mWindCps.mEnd);
|
||||
mCps.cM3dGCps::Set(mWindCps);
|
||||
|
||||
f32 strength = 10.0f;
|
||||
if (getPower() != 0xFF) {
|
||||
strength = getPower();
|
||||
}
|
||||
cXyz local_20;
|
||||
cXyz cStack_40;
|
||||
local_20.x = field_0x6e8.mEnd.x - field_0x6e8.mStart.x;
|
||||
local_20.y = field_0x6e8.mEnd.y - field_0x6e8.mStart.y;
|
||||
local_20.z = field_0x6e8.mEnd.z - field_0x6e8.mStart.z;
|
||||
if (!local_20.isZero()) {
|
||||
local_20.normalize();
|
||||
|
||||
cXyz push_vec;
|
||||
cXyz sp40;
|
||||
push_vec.x = mWindCps.mEnd.x - mWindCps.mStart.x;
|
||||
push_vec.y = mWindCps.mEnd.y - mWindCps.mStart.y;
|
||||
push_vec.z = mWindCps.mEnd.z - mWindCps.mStart.z;
|
||||
|
||||
if (!push_vec.isZero()) {
|
||||
push_vec.normalize();
|
||||
} else {
|
||||
local_20 = cXyz::Zero;
|
||||
push_vec = cXyz::Zero;
|
||||
}
|
||||
cStack_40 = local_20;
|
||||
local_20 *= dVar6;
|
||||
mCps.SetAtVec(local_20);
|
||||
|
||||
sp40 = push_vec;
|
||||
push_vec *= strength;
|
||||
mCps.SetAtVec(push_vec);
|
||||
movePntWind();
|
||||
}
|
||||
|
||||
@@ -131,95 +116,100 @@ void daObjTrnd2_c::initBaseMtx() {
|
||||
void daObjTrnd2_c::setBaseMtx() {
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
MTXCopy(mDoMtx_stack_c::get(), field_0x708);
|
||||
MTXCopy(mDoMtx_stack_c::get(), mMtx);
|
||||
}
|
||||
|
||||
/* 80D1D458-80D1D4A4 000000 004C+00 1/1 0/0 0/0 .data l_cps_src */
|
||||
static dCcD_SrcCps l_cps_src = {
|
||||
{
|
||||
{0x0, {{AT_TYPE_LANTERN_SWING, 0x0, 0x1d}, {0x0, 0x0}, 0x0}}, // mObj
|
||||
{dCcD_SE_NONE, 0x0, 0x0, 0x3, 0x2}, // mGObjAt
|
||||
{dCcD_SE_NONE, 0x0, 0x0, 0x0, 0x4}, // mGObjTg
|
||||
{0x0}, // mGObjCo
|
||||
}, // mObjInf
|
||||
{0x0, {{AT_TYPE_LANTERN_SWING, 0x0, 0x1d}, {0x0, 0x0}, 0x0}}, // mObj
|
||||
{dCcD_SE_NONE, 0x0, 0x0, dCcD_MTRL_WIND, 0x2}, // mGObjAt
|
||||
{dCcD_SE_NONE, 0x0, 0x0, dCcD_MTRL_NONE, 0x4}, // mGObjTg
|
||||
{0x0}, // mGObjCo
|
||||
}, // mObjInf
|
||||
{
|
||||
{{0.0f, 0.0f, 0.0f}, {0.0f, 3000.0f, 0.0f}, 150.0f}, // mCps
|
||||
} // mCpsAttr
|
||||
{{0.0f, 0.0f, 0.0f}, {0.0f, 3000.0f, 0.0f}, 150.0f}, // mCps
|
||||
} // mCpsAttr
|
||||
};
|
||||
|
||||
/* 80D1C98C-80D1CC80 00052C 02F4+00 1/1 0/0 0/0 .text Create__12daObjTrnd2_cFv */
|
||||
int daObjTrnd2_c::Create() {
|
||||
field_0x768 = 150.0f;
|
||||
field_0x76c = 1000.0f;
|
||||
mDefaultRadius = 150.0f;
|
||||
mDefaultLength = 1000.0f;
|
||||
if (getScale() == 1) {
|
||||
field_0x768 *= 10.0f;
|
||||
field_0x76c *= 10.0f;
|
||||
mDefaultRadius *= 10.0f;
|
||||
mDefaultLength *= 10.0f;
|
||||
}
|
||||
|
||||
initBaseMtx();
|
||||
fopAcM_SetMtx(this, field_0x708);
|
||||
mStts.Init(0xff, 0xff, this);
|
||||
fopAcM_SetMtx(this, mMtx);
|
||||
|
||||
mStts.Init(0xFF, 0xFF, this);
|
||||
mCps.Set(l_cps_src);
|
||||
mCps.SetStts(&mStts);
|
||||
cXyz local_1c;
|
||||
cXyz local_28;
|
||||
local_1c.x = -field_0x768 * scale.x;
|
||||
local_1c.y = 0.0;
|
||||
local_1c.z = -field_0x768 * scale.x;
|
||||
local_28.x = field_0x768 * scale.x;
|
||||
local_28.y = field_0x76c * scale.y;
|
||||
local_28.z = field_0x768 * scale.x;
|
||||
fopAcM_setCullSizeBox(this, local_1c.x, 0, local_1c.z,
|
||||
local_28.x, local_28.y,
|
||||
local_28.z);
|
||||
field_0x6e8.mRadius = field_0x768 * scale.x;
|
||||
field_0x6e8.mStart = current.pos;
|
||||
|
||||
cXyz cull_min;
|
||||
cXyz cull_max;
|
||||
cull_min.x = -mDefaultRadius * scale.x;
|
||||
cull_min.y = 0.0f;
|
||||
cull_min.z = -mDefaultRadius * scale.x;
|
||||
cull_max.x = mDefaultRadius * scale.x;
|
||||
cull_max.y = mDefaultLength * scale.y;
|
||||
cull_max.z = mDefaultRadius * scale.x;
|
||||
fopAcM_setCullSizeBox(this, cull_min.x, 0.0f, cull_min.z, cull_max.x, cull_max.y, cull_max.z);
|
||||
|
||||
mWindCps.mRadius = mDefaultRadius * scale.x;
|
||||
mWindCps.mStart = current.pos;
|
||||
|
||||
setParticle();
|
||||
|
||||
u32 swBit = getSwbit();
|
||||
switch(getSwType()) {
|
||||
switch (getSwType()) {
|
||||
case 15:
|
||||
if ((swBit != 0xff && fopAcM_isSwitch(this, swBit)) || swBit == 0xff) {
|
||||
field_0x778 = true;
|
||||
if ((swBit != 0xFF && fopAcM_isSwitch(this, swBit)) || swBit == 0xFF) {
|
||||
mColumnOn = true;
|
||||
} else {
|
||||
field_0x778 = false;
|
||||
mColumnOn = false;
|
||||
}
|
||||
break;
|
||||
case 0:
|
||||
if (fopAcM_isSwitch(this, swBit)) {
|
||||
field_0x778 = false;
|
||||
mColumnOn = false;
|
||||
} else {
|
||||
field_0x778 = true;
|
||||
mColumnOn = true;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (swBit != 0xff && !fopAcM_isSwitch(this, swBit)) {
|
||||
field_0x778 = false;
|
||||
if (swBit != 0xFF && !fopAcM_isSwitch(this, swBit)) {
|
||||
mColumnOn = false;
|
||||
mTimer = getOffTime() * 30;
|
||||
} else if (cM_rndF(1.0f) > 0.5f) {
|
||||
field_0x778 = true;
|
||||
mColumnOn = true;
|
||||
mTimer = getOnTime() * 30;
|
||||
} else {
|
||||
field_0x778 = false;
|
||||
mColumnOn = false;
|
||||
mTimer = getOffTime() * 30;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
field_0x778 = true;
|
||||
mColumnOn = true;
|
||||
mTimer = getOnTime() * 30;
|
||||
break;
|
||||
case 3:
|
||||
field_0x778 = false;
|
||||
mColumnOn = false;
|
||||
mTimer = getOffTime() * 30;
|
||||
break;
|
||||
}
|
||||
|
||||
if (field_0x778 == true) {
|
||||
field_0x738 = field_0x76c * scale.y;
|
||||
field_0x704 = field_0x738;
|
||||
if (mColumnOn == true) {
|
||||
mTargetLength = mDefaultLength * scale.y;
|
||||
mNowLength = mTargetLength;
|
||||
startParticle();
|
||||
} else {
|
||||
field_0x738 = 0;
|
||||
field_0x704 = 0;
|
||||
mTargetLength = 0;
|
||||
mNowLength = 0;
|
||||
}
|
||||
|
||||
setPntWind();
|
||||
return 1;
|
||||
}
|
||||
@@ -227,112 +217,120 @@ int daObjTrnd2_c::Create() {
|
||||
/* 80D1CC80-80D1CD78 000820 00F8+00 1/1 0/0 0/0 .text create__12daObjTrnd2_cFv */
|
||||
int daObjTrnd2_c::create() {
|
||||
fopAcM_SetupActor(this, daObjTrnd2_c);
|
||||
if (Create() == 0) {
|
||||
if (!Create()) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
/* 80D1CDC0-80D1D0AC 000960 02EC+00 1/1 0/0 0/0 .text execute__12daObjTrnd2_cFv */
|
||||
int daObjTrnd2_c::execute() {
|
||||
bool bVar1;
|
||||
bool set_column;
|
||||
u32 swBit;
|
||||
if (field_0x778 == true) {
|
||||
bVar1 = false;
|
||||
if (mColumnOn == true) {
|
||||
set_column = false;
|
||||
swBit = getSwbit();
|
||||
switch (getSwType()) {
|
||||
case 15:
|
||||
if (swBit != 0xff && !fopAcM_isSwitch(this, swBit)) {
|
||||
bVar1 = true;
|
||||
if (swBit != 0xFF && !fopAcM_isSwitch(this, swBit)) {
|
||||
set_column = true;
|
||||
}
|
||||
break;
|
||||
case 0:
|
||||
if (fopAcM_isSwitch(this, swBit)) {
|
||||
bVar1 = true;
|
||||
set_column = true;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
if (cLib_calcTimer(&mTimer) == 0 || (swBit != 0xff && !fopAcM_isSwitch(this, swBit))) {
|
||||
bVar1 = true;
|
||||
if (cLib_calcTimer(&mTimer) == 0 || (swBit != 0xFF && !fopAcM_isSwitch(this, swBit))) {
|
||||
set_column = true;
|
||||
mTimer = getOffTime() * 30;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (bVar1) {
|
||||
field_0x738 = 0.0f;
|
||||
field_0x778 = false;
|
||||
|
||||
if (set_column) {
|
||||
mTargetLength = 0.0f;
|
||||
mColumnOn = false;
|
||||
stopParticle();
|
||||
}
|
||||
} else if (field_0x778 == false) {
|
||||
bVar1 = false;
|
||||
} else if (mColumnOn == false) {
|
||||
set_column = false;
|
||||
swBit = getSwbit();
|
||||
switch(getSwType()) {
|
||||
switch (getSwType()) {
|
||||
case 15:
|
||||
if (fopAcM_isSwitch(this, swBit)) {
|
||||
bVar1 = true;
|
||||
set_column = true;
|
||||
}
|
||||
break;
|
||||
case 0:
|
||||
if (swBit != 0xff && !fopAcM_isSwitch(this, swBit)) {
|
||||
bVar1 = true;
|
||||
if (swBit != 0xFF && !fopAcM_isSwitch(this, swBit)) {
|
||||
set_column = true;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
if (cLib_calcTimer(&mTimer) == 0 && ((swBit != 0xff && fopAcM_isSwitch(this, swBit)) || swBit == 0xff)) {
|
||||
bVar1 = true;
|
||||
if (cLib_calcTimer(&mTimer) == 0 &&
|
||||
((swBit != 0xFF && fopAcM_isSwitch(this, swBit)) || swBit == 0xFF))
|
||||
{
|
||||
set_column = true;
|
||||
mTimer = getOnTime() * 30;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (bVar1) {
|
||||
field_0x738 = field_0x76c * scale.y;
|
||||
field_0x778 = true;
|
||||
|
||||
if (set_column) {
|
||||
mTargetLength = mDefaultLength * scale.y;
|
||||
mColumnOn = true;
|
||||
startParticle();
|
||||
}
|
||||
}
|
||||
if (field_0x738 == 0.0f) {
|
||||
|
||||
if (mTargetLength == 0.0f) {
|
||||
cLib_addCalc(&mWindPower, 0.3f, 0.2f, 0.1f, 0.001f);
|
||||
} else {
|
||||
cLib_addCalc(&mWindPower, 0.9f, 0.5f, 0.1f, 0.001f);
|
||||
}
|
||||
|
||||
dKyw_evt_wind_set(0, home.angle.y);
|
||||
dKyw_custom_windpower(mWindPower);
|
||||
setCpsInfo();
|
||||
setBaseMtx();
|
||||
if (field_0x704 != 0.0f) {
|
||||
mCps.cM3dGCps::Set(field_0x6e8);
|
||||
|
||||
if (mNowLength != 0.0f) {
|
||||
mCps.cM3dGCps::Set(mWindCps);
|
||||
dComIfG_Ccsp()->Set(&mCps);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80D1D0AC-80D1D214 000C4C 0168+00 1/1 0/0 0/0 .text setParticle__12daObjTrnd2_cFv */
|
||||
void daObjTrnd2_c::setParticle() {
|
||||
const u16* pEffId = NULL;
|
||||
const u16* efflist_p = NULL;
|
||||
switch (fopAcM_GetRoomNo(this)) {
|
||||
case 2:
|
||||
pEffId = l_R02_eff_id;
|
||||
efflist_p = l_R02_eff_id;
|
||||
break;
|
||||
case 4:
|
||||
pEffId = l_R04_eff_id;
|
||||
efflist_p = l_R04_eff_id;
|
||||
break;
|
||||
case 5:
|
||||
pEffId = l_R05_eff_id;
|
||||
efflist_p = l_R05_eff_id;
|
||||
break;
|
||||
case 7:
|
||||
case 8:
|
||||
pEffId = l_R07_eff_id;
|
||||
efflist_p = l_R07_eff_id;
|
||||
break;
|
||||
case 14:
|
||||
pEffId = l_R14_eff_id;
|
||||
efflist_p = l_R14_eff_id;
|
||||
break;
|
||||
case 51:
|
||||
pEffId = l_R51_eff_id;
|
||||
efflist_p = l_R51_eff_id;
|
||||
break;
|
||||
case 0:
|
||||
case 3:
|
||||
@@ -343,14 +341,15 @@ void daObjTrnd2_c::setParticle() {
|
||||
break;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 3; pEffId++, i++) {
|
||||
if (*pEffId != 0xffff) {
|
||||
mParticles[i] = dComIfGp_particle_set(*pEffId, ¤t.pos, &home.angle, NULL,
|
||||
0xff, NULL, -1, NULL, NULL, NULL);
|
||||
for (int i = 0; i < 3; efflist_p++, i++) {
|
||||
if (*efflist_p != 0xffff) {
|
||||
mParticles[i] = dComIfGp_particle_set(*efflist_p, ¤t.pos, &home.angle, NULL, 0xFF,
|
||||
NULL, -1, NULL, NULL, NULL);
|
||||
} else {
|
||||
mParticles[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
stopParticle();
|
||||
}
|
||||
|
||||
@@ -422,26 +421,24 @@ static int daObjTrnd2_Create(daObjTrnd2_c* i_this) {
|
||||
|
||||
/* 80D1D4A4-80D1D4C4 -00001 0020+00 1/0 0/0 0/0 .data l_daObjTrnd2_Method */
|
||||
static actor_method_class l_daObjTrnd2_Method = {
|
||||
(process_method_func)daObjTrnd2_Create,
|
||||
(process_method_func)daObjTrnd2_Delete,
|
||||
(process_method_func)daObjTrnd2_Execute,
|
||||
(process_method_func)NULL,
|
||||
(process_method_func)daObjTrnd2_Create, (process_method_func)daObjTrnd2_Delete,
|
||||
(process_method_func)daObjTrnd2_Execute, (process_method_func)NULL,
|
||||
(process_method_func)daObjTrnd2_Draw,
|
||||
};
|
||||
|
||||
extern actor_process_profile_definition g_profile_Obj_Tornado2 = {
|
||||
fpcLy_CURRENT_e, // mLayerID
|
||||
7, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_Obj_Tornado2, // mProcName
|
||||
&g_fpcLf_Method.mBase, // sub_method
|
||||
sizeof(daObjTrnd2_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
0x1BD, // mPriority
|
||||
&l_daObjTrnd2_Method, // sub_method
|
||||
0x40000, // mStatus
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
fpcLy_CURRENT_e, // mLayerID
|
||||
7, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_Obj_Tornado2, // mProcName
|
||||
&g_fpcLf_Method.mBase, // sub_method
|
||||
sizeof(daObjTrnd2_c), // mDefaultRadius
|
||||
0, // mDefaultRadiusOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
0x1BD, // mPriority
|
||||
&l_daObjTrnd2_Method, // sub_method
|
||||
0x40000, // mStatus
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
@@ -4,602 +4,380 @@
|
||||
//
|
||||
|
||||
#include "rel/d/a/tag/d_a_tag_camera/d_a_tag_camera.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct Vec {};
|
||||
|
||||
struct cXyz {
|
||||
/* 80266B34 */ void operator-(Vec const&) const;
|
||||
};
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
/* 8000CD64 */ void transS(cXyz const&);
|
||||
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct fopAc_ac_c {
|
||||
/* 80018B64 */ fopAc_ac_c();
|
||||
/* 80018C8C */ ~fopAc_ac_c();
|
||||
};
|
||||
|
||||
struct daTag_Cam_c {
|
||||
/* 80489F14 */ void getSwType();
|
||||
/* 80489F20 */ void getPrio();
|
||||
/* 80489F2C */ void getSwBit();
|
||||
/* 80489F38 */ void getCondition();
|
||||
/* 80489F44 */ void getCameraId();
|
||||
/* 80489F50 */ void getRailID();
|
||||
/* 80489F5C */ void getAreaType();
|
||||
/* 80489F68 */ void getAreaNoChk();
|
||||
/* 80489F74 */ void execute();
|
||||
};
|
||||
|
||||
struct daAlink_c {
|
||||
/* 800E1390 */ void getCopyRodCameraActor();
|
||||
};
|
||||
|
||||
struct dSv_info_c {
|
||||
/* 80035360 */ void isSwitch(int, int) const;
|
||||
};
|
||||
|
||||
struct dCamera_c {
|
||||
/* 80163558 */ void SetTagData(fopAc_ac_c*, s32, u16, u8);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static bool func_80489A98();
|
||||
extern "C" static void func_80489AA0();
|
||||
extern "C" static void func_80489B18();
|
||||
extern "C" static void func_80489B2C();
|
||||
extern "C" static void func_80489B6C();
|
||||
extern "C" static void func_80489BE0();
|
||||
extern "C" static void func_80489C04();
|
||||
extern "C" static void func_80489C1C();
|
||||
extern "C" static void func_80489C34();
|
||||
extern "C" static void func_80489C6C();
|
||||
extern "C" static void func_80489CAC();
|
||||
extern "C" static void func_80489CE4();
|
||||
extern "C" static void func_80489CF8();
|
||||
extern "C" static void func_80489D30();
|
||||
extern "C" static void func_80489D5C();
|
||||
extern "C" static void func_80489D70();
|
||||
extern "C" static void func_80489DB0();
|
||||
extern "C" static void func_80489DE4();
|
||||
extern "C" static void func_80489DF8();
|
||||
extern "C" static void func_80489E18();
|
||||
extern "C" static void func_80489E8C();
|
||||
extern "C" static void func_80489EDC();
|
||||
extern "C" void getSwType__11daTag_Cam_cFv();
|
||||
extern "C" void getPrio__11daTag_Cam_cFv();
|
||||
extern "C" void getSwBit__11daTag_Cam_cFv();
|
||||
extern "C" void getCondition__11daTag_Cam_cFv();
|
||||
extern "C" void getCameraId__11daTag_Cam_cFv();
|
||||
extern "C" void getRailID__11daTag_Cam_cFv();
|
||||
extern "C" void getAreaType__11daTag_Cam_cFv();
|
||||
extern "C" void getAreaNoChk__11daTag_Cam_cFv();
|
||||
extern "C" void execute__11daTag_Cam_cFv();
|
||||
extern "C" static bool daTag_Cam_Draw__FP11daTag_Cam_c();
|
||||
extern "C" static void daTag_Cam_Execute__FP11daTag_Cam_c();
|
||||
extern "C" static bool daTag_Cam_IsDelete__FP11daTag_Cam_c();
|
||||
extern "C" static void daTag_Cam_Delete__FP11daTag_Cam_c();
|
||||
extern "C" static void daTag_Cam_Create__FP10fopAc_ac_c();
|
||||
extern "C" extern void* g_profile_TAG_CAMERA[12];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_YrotM__FPA4_fs();
|
||||
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void __dt__10fopAc_ac_cFv();
|
||||
extern "C" void isSwitch__10dSv_info_cCFii();
|
||||
extern "C" void getCopyRodCameraActor__9daAlink_cFv();
|
||||
extern "C" void SetTagData__9dCamera_cFP10fopAc_ac_clUsUc();
|
||||
extern "C" void dCam_getBody__Fv();
|
||||
extern "C" void __mi__4cXyzCFRC3Vec();
|
||||
extern "C" void PSMTXMultVec();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" extern void* g_fopAc_Method[8];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u32 __float_nan;
|
||||
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
#include "cmath.h"
|
||||
#include "d/a/d_a_alink.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "rel/d/a/d_a_horse/d_a_horse.h"
|
||||
|
||||
namespace {
|
||||
/* 80489A98-80489AA0 000078 0008+00 1/0 0/0 0/0 .text
|
||||
* always_true__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
static bool func_80489A98() {
|
||||
bool always_true() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8048A670-8048A674 000000 0004+00 15/15 0/0 0/0 .bss Player__28@unnamed@d_a_tag_camera_cpp@ */
|
||||
static u8 data_8048A670[4];
|
||||
daAlink_c* Player;
|
||||
|
||||
/* 80489AA0-80489B18 000080 0078+00 1/0 0/0 0/0 .text
|
||||
* is_player_riding_horse__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489AA0() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489AA0.s"
|
||||
bool is_player_riding_horse() {
|
||||
return Player->checkHorseRide() || Player->checkBoarRide();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489B18-80489B2C 0000F8 0014+00 1/0 0/0 0/0 .text
|
||||
* is_player_swimming__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489B18() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489B18.s"
|
||||
bool is_player_swimming() {
|
||||
return dComIfGp_checkPlayerStatus0(0, 0x100000);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489B2C-80489B6C 00010C 0040+00 1/0 0/0 0/0 .text
|
||||
* is_player_riding_canoe__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489B2C() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489B2C.s"
|
||||
bool is_player_riding_canoe() {
|
||||
return Player->checkCanoeRide() != 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489B6C-80489BE0 00014C 0074+00 1/0 0/0 0/0 .text
|
||||
* is_player_jumping_by_horse__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489B6C() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489B6C.s"
|
||||
bool is_player_jumping_by_horse() {
|
||||
daHorse_c* phorse = dComIfGp_getHorseActor();
|
||||
|
||||
return Player->checkHorseRide() && phorse->checkJump();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489BE0-80489C04 0001C0 0024+00 1/0 0/0 0/0 .text
|
||||
* is_player_climbing__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489BE0() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489BE0.s"
|
||||
bool is_player_climbing() {
|
||||
return dComIfGp_checkPlayerStatus0(0, 0x2000008) != 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489C04-80489C1C 0001E4 0018+00 1/0 0/0 0/0 .text
|
||||
* is_player_wear_magneboots__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489C04() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489C04.s"
|
||||
bool is_player_wear_magneboots() {
|
||||
return Player->checkMagneBootsOn();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489C1C-80489C34 0001FC 0018+00 1/0 0/0 0/0 .text
|
||||
* is_player_wolf__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489C1C() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489C1C.s"
|
||||
bool is_player_wolf() {
|
||||
return Player->i_checkNowWolf();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489C34-80489C6C 000214 0038+00 1/0 0/0 0/0 .text
|
||||
* is_player_pulling_chainblock__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489C34() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489C34.s"
|
||||
bool is_player_pulling_chainblock() {
|
||||
return Player->checkChainBlockPushPull();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489C6C-80489CAC 00024C 0040+00 1/0 0/0 0/0 .text
|
||||
* is_player_playing_spinner__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489C6C() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489C6C.s"
|
||||
bool is_player_playing_spinner() {
|
||||
return Player->checkSpinnerRide() != 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489CAC-80489CE4 00028C 0038+00 1/0 0/0 0/0 .text
|
||||
* is_player_sliding_slope__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489CAC() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489CAC.s"
|
||||
bool is_player_sliding_slope() {
|
||||
return Player->checkLv3Slide();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489CE4-80489CF8 0002C4 0014+00 2/1 0/0 0/0 .text
|
||||
* is_player_on_watersurface__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489CE4() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489CE4.s"
|
||||
bool is_player_on_watersurface() {
|
||||
return dComIfGp_checkCameraAttentionStatus(0, 0x800) != 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489CF8-80489D30 0002D8 0038+00 1/0 0/0 0/0 .text
|
||||
* is_player_moving_on_spinnerrail__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489CF8() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489CF8.s"
|
||||
bool is_player_moving_on_spinnerrail() {
|
||||
return Player->checkSpinnerPathMove();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489D30-80489D5C 000310 002C+00 1/0 0/0 0/0 .text
|
||||
* is_player_gliding__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489D30() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489D30.s"
|
||||
bool is_player_gliding() {
|
||||
return Player->checkCokkoGlide();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489D5C-80489D70 00033C 0014+00 1/0 0/0 0/0 .text
|
||||
* is_player_hunging_by_hookshot__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489D5C() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489D5C.s"
|
||||
bool is_player_hunging_by_hookshot() {
|
||||
return dComIfGp_checkPlayerStatus1(0, 0x10000) != 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489D70-80489DB0 000350 0040+00 1/0 0/0 0/0 .text
|
||||
* is_player_on_rope__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489D70() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489D70.s"
|
||||
bool is_player_on_rope() {
|
||||
return Player->checkWolfRope() != 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489DB0-80489DE4 000390 0034+00 1/0 0/0 0/0 .text
|
||||
* is_player_using_copyrod__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489DB0() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489DB0.s"
|
||||
bool is_player_using_copyrod() {
|
||||
return Player->getCopyRodCameraActor() != NULL;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489DE4-80489DF8 0003C4 0014+00 1/0 0/0 0/0 .text
|
||||
* is_player_hunging_wall_by_hookshot__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489DE4() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489DE4.s"
|
||||
bool is_player_hunging_wall_by_hookshot() {
|
||||
return dComIfGp_checkPlayerStatus1(0, 0x2000000) != 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489DF8-80489E18 0003D8 0020+00 1/0 0/0 0/0 .text
|
||||
* is_player_carried_by_cargo__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489DF8() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489DF8.s"
|
||||
bool is_player_carried_by_cargo() {
|
||||
return Player->checkCargoCarry();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489E18-80489E8C 0003F8 0074+00 1/0 0/0 0/0 .text
|
||||
* is_player_playing_rodeo__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489E18() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489E18.s"
|
||||
bool is_player_playing_rodeo() {
|
||||
daHorse_c* phorse = dComIfGp_getHorseActor();
|
||||
|
||||
return Player->checkHorseRide() && phorse->checkRodeoMode();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489E8C-80489EDC 00046C 0050+00 1/0 0/0 0/0 .text
|
||||
* is_player_in_water__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489E8C() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489E8C.s"
|
||||
bool is_player_in_water() {
|
||||
return dComIfGp_checkPlayerStatus0(0, 0x100000) && !is_player_on_watersurface();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489EDC-80489F14 0004BC 0038+00 1/0 0/0 0/0 .text
|
||||
* is_player_hugging_eal__28@unnamed@d_a_tag_camera_cpp@Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_80489EDC() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/func_80489EDC.s"
|
||||
bool is_player_hugging_eal() {
|
||||
return Player->checkOctaIealHang();
|
||||
}
|
||||
#pragma pop
|
||||
} // namespace
|
||||
|
||||
/* 80489F14-80489F20 0004F4 000C+00 1/1 0/0 0/0 .text getSwType__11daTag_Cam_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTag_Cam_c::getSwType() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/getSwType__11daTag_Cam_cFv.s"
|
||||
u8 daTag_Cam_c::getSwType() {
|
||||
return fopAcM_GetParam(this) & 0xF;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489F20-80489F2C 000500 000C+00 1/1 0/0 0/0 .text getPrio__11daTag_Cam_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTag_Cam_c::getPrio() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/getPrio__11daTag_Cam_cFv.s"
|
||||
u8 daTag_Cam_c::getPrio() {
|
||||
return (fopAcM_GetParam(this) >> 4) & 0xF;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489F2C-80489F38 00050C 000C+00 1/1 0/0 0/0 .text getSwBit__11daTag_Cam_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTag_Cam_c::getSwBit() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/getSwBit__11daTag_Cam_cFv.s"
|
||||
u8 daTag_Cam_c::getSwBit() {
|
||||
return (fopAcM_GetParam(this) >> 8) & 0xFF;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489F38-80489F44 000518 000C+00 2/2 0/0 0/0 .text getCondition__11daTag_Cam_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTag_Cam_c::getCondition() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/getCondition__11daTag_Cam_cFv.s"
|
||||
u8 daTag_Cam_c::getCondition() {
|
||||
return (fopAcM_GetParam(this) >> 0x10) & 0xFF;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489F44-80489F50 000524 000C+00 1/1 0/0 0/0 .text getCameraId__11daTag_Cam_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTag_Cam_c::getCameraId() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/getCameraId__11daTag_Cam_cFv.s"
|
||||
u8 daTag_Cam_c::getCameraId() {
|
||||
return (fopAcM_GetParam(this) >> 0x18) & 0xFF;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489F50-80489F5C 000530 000C+00 1/1 0/0 0/0 .text getRailID__11daTag_Cam_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTag_Cam_c::getRailID() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/getRailID__11daTag_Cam_cFv.s"
|
||||
u8 daTag_Cam_c::getRailID() {
|
||||
return home.angle.z & 0xFF;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489F5C-80489F68 00053C 000C+00 2/2 0/0 0/0 .text getAreaType__11daTag_Cam_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTag_Cam_c::getAreaType() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/getAreaType__11daTag_Cam_cFv.s"
|
||||
u16 daTag_Cam_c::getAreaType() {
|
||||
return home.angle.z & 0x100;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80489F68-80489F74 000548 000C+00 1/1 0/0 0/0 .text getAreaNoChk__11daTag_Cam_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTag_Cam_c::getAreaNoChk() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/getAreaNoChk__11daTag_Cam_cFv.s"
|
||||
u16 daTag_Cam_c::getAreaNoChk() {
|
||||
return home.angle.z & 0x200;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8048A590-8048A59C 000000 000C+00 2/2 0/0 0/0 .rodata @3874 */
|
||||
SECTION_RODATA static u8 const lit_3874[12] = {
|
||||
static u8 const lit_3874[12] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8048A590, &lit_3874);
|
||||
|
||||
/* 8048A59C-8048A5F4 -00001 0058+00 0/0 0/0 0/0 .rodata @4358 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static void* const lit_4358[22] = {
|
||||
(void*)func_80489AA0, (void*)func_80489B18, (void*)func_80489B2C, (void*)func_80489A98,
|
||||
(void*)func_80489B6C, (void*)func_80489BE0, (void*)func_80489C04, (void*)func_80489C1C,
|
||||
(void*)func_80489C34, (void*)func_80489C6C, (void*)func_80489CAC, (void*)func_80489CE4,
|
||||
(void*)func_80489CF8, (void*)func_80489D30, (void*)func_80489D5C, (void*)func_80489D70,
|
||||
(void*)func_80489DB0, (void*)func_80489DE4, (void*)func_80489DF8, (void*)func_80489E18,
|
||||
(void*)func_80489E8C, (void*)func_80489EDC,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8048A59C, &lit_4358);
|
||||
#pragma pop
|
||||
int daTag_Cam_c::create() {
|
||||
fopAcM_SetupActor(this, daTag_Cam_c);
|
||||
|
||||
/* 8048A5F4-8048A5F8 000064 0004+00 0/1 0/0 0/0 .rodata @4466 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4466 = 80.0f;
|
||||
COMPILER_STRIP_GATE(0x8048A5F4, &lit_4466);
|
||||
#pragma pop
|
||||
if (getAreaType() == 0) {
|
||||
scale.x *= 500.0f;
|
||||
scale.y *= 1000.0f;
|
||||
scale.z *= 500.0f;
|
||||
|
||||
/* 8048A5F8-8048A600 000068 0004+04 0/2 0/0 0/0 .rodata @4467 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_4467[4 + 4 /* padding */] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8048A5F8, &lit_4467);
|
||||
#pragma pop
|
||||
mBoundsLo.set(current.pos.x - scale.x, current.pos.y, current.pos.z - scale.z);
|
||||
mBoundsHi.set(current.pos.x + scale.x, current.pos.y + scale.y, current.pos.z + scale.z);
|
||||
} else {
|
||||
scale.x *= 1000.0f;
|
||||
scale.y *= 1000.0f;
|
||||
scale.z *= 0.0f;
|
||||
|
||||
/* 8048A600-8048A608 000070 0008+00 0/1 0/0 0/0 .rodata @4468 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_4468[8] = {
|
||||
0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8048A600, &lit_4468);
|
||||
#pragma pop
|
||||
mBoundsLo.set(0.0f, current.pos.y, 0.0f);
|
||||
mBoundsHi.set(0.0f, current.pos.y + scale.y, 0.0f);
|
||||
}
|
||||
|
||||
/* 8048A608-8048A610 000078 0008+00 0/1 0/0 0/0 .rodata @4469 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_4469[8] = {
|
||||
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8048A608, &lit_4469);
|
||||
#pragma pop
|
||||
Player = daAlink_getAlinkActorClass();
|
||||
|
||||
/* 8048A610-8048A618 000080 0008+00 0/1 0/0 0/0 .rodata @4470 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_4470[8] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8048A610, &lit_4470);
|
||||
#pragma pop
|
||||
bool (*check_func[])() = {
|
||||
is_player_riding_horse,
|
||||
is_player_swimming,
|
||||
is_player_riding_canoe,
|
||||
always_true,
|
||||
is_player_jumping_by_horse,
|
||||
is_player_climbing,
|
||||
is_player_wear_magneboots,
|
||||
is_player_wolf,
|
||||
is_player_pulling_chainblock,
|
||||
is_player_playing_spinner,
|
||||
is_player_sliding_slope,
|
||||
is_player_on_watersurface,
|
||||
is_player_moving_on_spinnerrail,
|
||||
is_player_gliding,
|
||||
is_player_hunging_by_hookshot,
|
||||
is_player_on_rope,
|
||||
is_player_using_copyrod,
|
||||
is_player_hunging_wall_by_hookshot,
|
||||
is_player_carried_by_cargo,
|
||||
is_player_playing_rodeo,
|
||||
is_player_in_water,
|
||||
is_player_hugging_eal,
|
||||
};
|
||||
|
||||
u8 func_index = getCondition();
|
||||
if ((int)func_index > 22) {
|
||||
func_index = 3;
|
||||
}
|
||||
|
||||
mCheckFunc = check_func[func_index];
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
/* 80489F74-8048A378 000554 0404+00 1/1 0/0 0/0 .text execute__11daTag_Cam_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTag_Cam_c::execute() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/execute__11daTag_Cam_cFv.s"
|
||||
int daTag_Cam_c::execute() {
|
||||
if (fopAcM_GetRoomNo(this) != dComIfGp_roomControl_getStayNo()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
u8 sw_type = getSwType();
|
||||
u8 sw_bit = getSwBit();
|
||||
bool var_r29 = false;
|
||||
bool do_area_check = false;
|
||||
|
||||
if (sw_bit != 0xFF) {
|
||||
bool is_switch_on = dComIfGs_isSwitch(sw_bit, fopAcM_GetRoomNo(this)) != 0;
|
||||
if ((sw_type != 0 && is_switch_on) || (sw_type == 0 && !is_switch_on)) {
|
||||
do_area_check = true;
|
||||
}
|
||||
} else {
|
||||
do_area_check = true;
|
||||
}
|
||||
|
||||
if (do_area_check) {
|
||||
cXyz pos(dComIfGp_getLinkPlayer()->current.pos);
|
||||
if (dComIfGp_checkPlayerStatus0(0, 8)) {
|
||||
pos = dComIfGp_getLinkPlayer()->attention_info.position;
|
||||
pos.y -= 80.0f;
|
||||
}
|
||||
|
||||
if (getAreaNoChk()) {
|
||||
var_r29 = true;
|
||||
} else if (getAreaType() == 0) {
|
||||
if (home.angle.y != 0) {
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::YrotM(-home.angle.y);
|
||||
|
||||
cXyz sp84 = pos - current.pos;
|
||||
mDoMtx_stack_c::multVec(&sp84, &pos);
|
||||
}
|
||||
|
||||
if (mBoundsLo.x <= pos.x && pos.x <= mBoundsHi.x && mBoundsLo.y <= pos.y &&
|
||||
pos.y <= mBoundsHi.y && mBoundsLo.z <= pos.z && pos.z <= mBoundsHi.z)
|
||||
{
|
||||
var_r29 = true;
|
||||
}
|
||||
} else {
|
||||
f32 temp_f31 = current.pos.x - pos.x;
|
||||
f32 temp_f30 = current.pos.z - pos.z;
|
||||
f32 sq_dist = std::sqrt(temp_f31 * temp_f31 + temp_f30 * temp_f30);
|
||||
if (sq_dist < scale.x && mBoundsLo.y <= pos.y && pos.y <= mBoundsHi.y) {
|
||||
var_r29 = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (var_r29) {
|
||||
u16 priority = getPrio();
|
||||
u8 condition = getCondition();
|
||||
bool set_camera = mCheckFunc();
|
||||
|
||||
if (condition == 0xFF) {
|
||||
priority |= 0x8000;
|
||||
} else if (condition == 0xFA) {
|
||||
if (dCam_getBody()->CheckFlag(0x8000000)) {
|
||||
set_camera = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (set_camera) {
|
||||
u8 cam_id = getCameraId();
|
||||
u8 rail_id = getRailID();
|
||||
dCam_getBody()->SetTagData(this, cam_id, priority, rail_id);
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8048A378-8048A380 000958 0008+00 1/0 0/0 0/0 .text daTag_Cam_Draw__FP11daTag_Cam_c */
|
||||
static bool daTag_Cam_Draw(daTag_Cam_c* param_0) {
|
||||
return true;
|
||||
static int daTag_Cam_Draw(daTag_Cam_c* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 8048A380-8048A3A4 000960 0024+00 1/0 0/0 0/0 .text daTag_Cam_Execute__FP11daTag_Cam_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daTag_Cam_Execute(daTag_Cam_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/daTag_Cam_Execute__FP11daTag_Cam_c.s"
|
||||
static int daTag_Cam_Execute(daTag_Cam_c* i_this) {
|
||||
i_this->execute();
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8048A3A4-8048A3AC 000984 0008+00 1/0 0/0 0/0 .text daTag_Cam_IsDelete__FP11daTag_Cam_c
|
||||
*/
|
||||
static bool daTag_Cam_IsDelete(daTag_Cam_c* param_0) {
|
||||
return true;
|
||||
static int daTag_Cam_IsDelete(daTag_Cam_c* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 8048A3AC-8048A3DC 00098C 0030+00 1/0 0/0 0/0 .text daTag_Cam_Delete__FP11daTag_Cam_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daTag_Cam_Delete(daTag_Cam_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/daTag_Cam_Delete__FP11daTag_Cam_c.s"
|
||||
static int daTag_Cam_Delete(daTag_Cam_c* i_this) {
|
||||
i_this->~daTag_Cam_c();
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8048A618-8048A61C 000088 0004+00 0/1 0/0 0/0 .rodata @4545 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4545 = 500.0f;
|
||||
COMPILER_STRIP_GATE(0x8048A618, &lit_4545);
|
||||
#pragma pop
|
||||
|
||||
/* 8048A61C-8048A620 00008C 0004+00 0/1 0/0 0/0 .rodata @4546 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4546 = 1000.0f;
|
||||
COMPILER_STRIP_GATE(0x8048A61C, &lit_4546);
|
||||
#pragma pop
|
||||
|
||||
/* 8048A3DC-8048A588 0009BC 01AC+00 1/0 0/0 0/0 .text daTag_Cam_Create__FP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daTag_Cam_Create(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_camera/d_a_tag_camera/daTag_Cam_Create__FP10fopAc_ac_c.s"
|
||||
static int daTag_Cam_Create(fopAc_ac_c* i_this) {
|
||||
daTag_Cam_c* a_this = (daTag_Cam_c*)i_this;
|
||||
return a_this->create();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8048A620-8048A640 -00001 0020+00 1/0 0/0 0/0 .data l_daTag_Cam_Method */
|
||||
SECTION_DATA static void* l_daTag_Cam_Method[8] = {
|
||||
(void*)daTag_Cam_Create__FP10fopAc_ac_c,
|
||||
(void*)daTag_Cam_Delete__FP11daTag_Cam_c,
|
||||
(void*)daTag_Cam_Execute__FP11daTag_Cam_c,
|
||||
(void*)daTag_Cam_IsDelete__FP11daTag_Cam_c,
|
||||
(void*)daTag_Cam_Draw__FP11daTag_Cam_c,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
static actor_method_class l_daTag_Cam_Method = {
|
||||
(process_method_func)daTag_Cam_Create, (process_method_func)daTag_Cam_Delete,
|
||||
(process_method_func)daTag_Cam_Execute, (process_method_func)daTag_Cam_IsDelete,
|
||||
(process_method_func)daTag_Cam_Draw,
|
||||
};
|
||||
|
||||
/* 8048A640-8048A670 -00001 0030+00 0/0 0/0 1/0 .data g_profile_TAG_CAMERA */
|
||||
SECTION_DATA extern void* g_profile_TAG_CAMERA[12] = {
|
||||
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
|
||||
(void*)0x02CF0000, (void*)&g_fpcLf_Method,
|
||||
(void*)0x0000058C, (void*)NULL,
|
||||
(void*)NULL, (void*)&g_fopAc_Method,
|
||||
(void*)0x01170000, (void*)&l_daTag_Cam_Method,
|
||||
(void*)0x00044000, (void*)0x00060000,
|
||||
extern actor_process_profile_definition g_profile_TAG_CAMERA = {
|
||||
fpcLy_CURRENT_e, // mLayerID
|
||||
7, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_TAG_CAMERA, // mProcName
|
||||
&g_fpcLf_Method.mBase, // sub_method
|
||||
sizeof(daTag_Cam_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
279, // mPriority
|
||||
&l_daTag_Cam_Method, // sub_method
|
||||
0x00044000, // mStatus
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_6_e, // cullType
|
||||
};
|
||||
|
||||
@@ -1,454 +1,281 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: d_a_tag_msg
|
||||
//
|
||||
/**
|
||||
* d_a_tag_msg.cpp
|
||||
*
|
||||
*/
|
||||
|
||||
#include "rel/d/a/tag/d_a_tag_msg/d_a_tag_msg.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct request_of_phase_process_class {};
|
||||
|
||||
struct fopAc_ac_c {
|
||||
/* 80018B64 */ fopAc_ac_c();
|
||||
/* 80018C8C */ ~fopAc_ac_c();
|
||||
};
|
||||
|
||||
struct daTag_Msg_c {
|
||||
/* 8048F7F8 */ ~daTag_Msg_c();
|
||||
/* 8048F878 */ void create();
|
||||
/* 8048F954 */ void createHeap();
|
||||
/* 8048F9B4 */ void destroy();
|
||||
/* 8048F9E8 */ void execute();
|
||||
/* 8048FC68 */ bool draw();
|
||||
/* 8048FC70 */ void rangeCheck();
|
||||
/* 8048FE18 */ void otherCheck();
|
||||
/* 8048FF8C */ void getResName();
|
||||
/* 8048FF9C */ void getParam();
|
||||
/* 8049004C */ void cut_speak(int, int);
|
||||
|
||||
static void* mEvtCutTBL[2];
|
||||
};
|
||||
|
||||
struct daTag_Msg_Param_c {
|
||||
/* 80490128 */ ~daTag_Msg_Param_c();
|
||||
|
||||
static u8 const m[1 + 3 /* padding */];
|
||||
};
|
||||
|
||||
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 dMsgFlow_c {
|
||||
/* 80249F00 */ dMsgFlow_c();
|
||||
/* 80249F48 */ ~dMsgFlow_c();
|
||||
/* 80249F90 */ void init(fopAc_ac_c*, int, int, fopAc_ac_c**);
|
||||
/* 8024A2D8 */ void doFlow(fopAc_ac_c*, fopAc_ac_c**, int);
|
||||
};
|
||||
|
||||
struct dEvt_control_c {
|
||||
/* 80042468 */ void reset();
|
||||
};
|
||||
|
||||
struct dEvent_manager_c {
|
||||
/* 80047758 */ void getEventIdx(fopAc_ac_c*, char const*, u8);
|
||||
/* 80047A78 */ void endCheck(s16);
|
||||
/* 80047B1C */ void getMyStaffId(char const*, fopAc_ac_c*, int);
|
||||
/* 80047D4C */ void getIsAddvance(int);
|
||||
/* 80047E10 */ void getMyActIdx(int, char const* const*, int, int, int);
|
||||
/* 8004817C */ void cutEnd(int);
|
||||
};
|
||||
|
||||
struct Vec {};
|
||||
|
||||
struct cXyz {
|
||||
/* 80266B34 */ void operator-(Vec const&) const;
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void createHeapCallBack__FP10fopAc_ac_c();
|
||||
extern "C" void __dt__11daTag_Msg_cFv();
|
||||
extern "C" void create__11daTag_Msg_cFv();
|
||||
extern "C" void createHeap__11daTag_Msg_cFv();
|
||||
extern "C" void destroy__11daTag_Msg_cFv();
|
||||
extern "C" void execute__11daTag_Msg_cFv();
|
||||
extern "C" bool draw__11daTag_Msg_cFv();
|
||||
extern "C" void rangeCheck__11daTag_Msg_cFv();
|
||||
extern "C" void otherCheck__11daTag_Msg_cFv();
|
||||
extern "C" void getResName__11daTag_Msg_cFv();
|
||||
extern "C" void getParam__11daTag_Msg_cFv();
|
||||
extern "C" void cut_speak__11daTag_Msg_cFii();
|
||||
extern "C" static void daTag_Msg_Create__FPv();
|
||||
extern "C" static void daTag_Msg_Delete__FPv();
|
||||
extern "C" static void daTag_Msg_Execute__FPv();
|
||||
extern "C" static void daTag_Msg_Draw__FPv();
|
||||
extern "C" static bool daTag_Msg_IsDelete__FPv();
|
||||
extern "C" void __dt__17daTag_Msg_Param_cFv();
|
||||
extern "C" u8 const m__17daTag_Msg_Param_c[1 + 3 /* padding */];
|
||||
extern "C" extern char const* const d_a_tag_msg__stringBase0;
|
||||
extern "C" void* mEvtCutTBL__11daTag_Msg_c[2];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void __dt__10fopAc_ac_cFv();
|
||||
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
|
||||
extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c();
|
||||
extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs();
|
||||
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void isEventBit__11dSv_event_cCFUs();
|
||||
extern "C" void onSwitch__10dSv_info_cFii();
|
||||
extern "C" void isSwitch__10dSv_info_cCFii();
|
||||
extern "C" void reset__14dEvt_control_cFv();
|
||||
extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cPCcUc();
|
||||
extern "C" void endCheck__16dEvent_manager_cFs();
|
||||
extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci();
|
||||
extern "C" void getIsAddvance__16dEvent_manager_cFi();
|
||||
extern "C" void getMyActIdx__16dEvent_manager_cFiPCPCciii();
|
||||
extern "C" void cutEnd__16dEvent_manager_cFi();
|
||||
extern "C" void __ct__10dMsgFlow_cFv();
|
||||
extern "C" void __dt__10dMsgFlow_cFv();
|
||||
extern "C" void init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c();
|
||||
extern "C" void doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci();
|
||||
extern "C" void __mi__4cXyzCFRC3Vec();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void PSVECSquareMag();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void strcpy();
|
||||
extern "C" extern void* g_fopAc_Method[8];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u32 __float_nan;
|
||||
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 8048F7D8-8048F7F8 000078 0020+00 1/1 0/0 0/0 .text createHeapCallBack__FP10fopAc_ac_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void createHeapCallBack(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_msg/d_a_tag_msg/createHeapCallBack__FP10fopAc_ac_c.s"
|
||||
static int createHeapCallBack(fopAc_ac_c* i_this) {
|
||||
return ((daTag_Msg_c*)i_this)->createHeap();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804901A4-804901A4 00002C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_804901A4 = "TagMsg";
|
||||
SECTION_DEAD static char const* const stringBase_804901AB = "SPEAK";
|
||||
SECTION_DEAD static char const* const stringBase_804901B1 = "Tag_ms";
|
||||
SECTION_DEAD static char const* const stringBase_804901B8 = "PAUSE";
|
||||
#pragma pop
|
||||
|
||||
/* 804901C4-804901C8 -00001 0004+00 1/1 0/0 0/0 .data l_resName */
|
||||
SECTION_DATA static void* l_resName = (void*)&d_a_tag_msg__stringBase0;
|
||||
static char* l_resName = "TagMsg";
|
||||
|
||||
/* 804901C8-804901D0 -00001 0008+00 1/1 0/0 0/0 .data l_evtNameTBL */
|
||||
SECTION_DATA static void* l_evtNameTBL[2] = {
|
||||
(void*)NULL,
|
||||
(void*)(((char*)&d_a_tag_msg__stringBase0) + 0x7),
|
||||
};
|
||||
|
||||
/* 804901D0-804901D8 -00001 0008+00 1/1 0/0 0/0 .data mEvtCutTBL__11daTag_Msg_c */
|
||||
SECTION_DATA void* daTag_Msg_c::mEvtCutTBL[2] = {
|
||||
(void*)(((char*)&d_a_tag_msg__stringBase0) + 0x7),
|
||||
(void*)(((char*)&d_a_tag_msg__stringBase0) + 0x14),
|
||||
};
|
||||
|
||||
/* 804901D8-804901F8 -00001 0020+00 1/0 0/0 0/0 .data daTag_Msg_MethodTable */
|
||||
SECTION_DATA static void* daTag_Msg_MethodTable[8] = {
|
||||
(void*)daTag_Msg_Create__FPv,
|
||||
(void*)daTag_Msg_Delete__FPv,
|
||||
(void*)daTag_Msg_Execute__FPv,
|
||||
(void*)daTag_Msg_IsDelete__FPv,
|
||||
(void*)daTag_Msg_Draw__FPv,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
};
|
||||
|
||||
/* 804901F8-80490228 -00001 0030+00 0/0 0/0 1/0 .data g_profile_TAG_MSG */
|
||||
SECTION_DATA extern void* g_profile_TAG_MSG[12] = {
|
||||
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
|
||||
(void*)0x02D50000, (void*)&g_fpcLf_Method,
|
||||
(void*)0x000005E8, (void*)NULL,
|
||||
(void*)NULL, (void*)&g_fopAc_Method,
|
||||
(void*)0x011D0000, (void*)&daTag_Msg_MethodTable,
|
||||
(void*)0x00044000, (void*)0x000E0000,
|
||||
};
|
||||
|
||||
/* 80490228-80490234 000064 000C+00 2/2 0/0 0/0 .data __vt__17daTag_Msg_Param_c */
|
||||
SECTION_DATA extern void* __vt__17daTag_Msg_Param_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__17daTag_Msg_Param_cFv,
|
||||
};
|
||||
|
||||
/* 80490234-80490240 000070 000C+00 2/2 0/0 0/0 .data __vt__11daTag_Msg_c */
|
||||
SECTION_DATA extern void* __vt__11daTag_Msg_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__11daTag_Msg_cFv,
|
||||
static char* l_evtNameTBL[2] = {
|
||||
NULL,
|
||||
"SPEAK",
|
||||
};
|
||||
|
||||
/* 8048F7F8-8048F878 000098 0080+00 1/0 0/0 0/0 .text __dt__11daTag_Msg_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm daTag_Msg_c::~daTag_Msg_c() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_msg/d_a_tag_msg/__dt__11daTag_Msg_cFv.s"
|
||||
daTag_Msg_c::~daTag_Msg_c() {
|
||||
dComIfG_resDelete(&mPhase, getResName());
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8048F878-8048F954 000118 00DC+00 1/1 0/0 0/0 .text create__11daTag_Msg_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTag_Msg_c::create() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_msg/d_a_tag_msg/create__11daTag_Msg_cFv.s"
|
||||
int daTag_Msg_c::create() {
|
||||
fopAcM_SetupActor(this, daTag_Msg_c);
|
||||
|
||||
int phase_state = dComIfG_resLoad(&mPhase, getResName());
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
attention_info.flags = 0x20000008;
|
||||
getParam();
|
||||
|
||||
eventInfo.setArchiveName(getResName());
|
||||
mEventIdx = -1;
|
||||
|
||||
if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x10)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
}
|
||||
|
||||
return phase_state;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8048F954-8048F9B4 0001F4 0060+00 1/1 0/0 0/0 .text createHeap__11daTag_Msg_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTag_Msg_c::createHeap() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_msg/d_a_tag_msg/createHeap__11daTag_Msg_cFv.s"
|
||||
int daTag_Msg_c::createHeap() {
|
||||
mParam = new daTag_Msg_Param_c();
|
||||
if (mParam == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8048F9B4-8048F9E8 000254 0034+00 1/1 0/0 0/0 .text destroy__11daTag_Msg_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTag_Msg_c::destroy() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_msg/d_a_tag_msg/destroy__11daTag_Msg_cFv.s"
|
||||
int daTag_Msg_c::destroy() {
|
||||
this->~daTag_Msg_c();
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80490178-8049017C 000000 0001+03 1/1 0/0 0/0 .rodata m__17daTag_Msg_Param_c */
|
||||
SECTION_RODATA u8 const daTag_Msg_Param_c::m[1 + 3 /* padding */] = {
|
||||
0x00,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80490178, &daTag_Msg_Param_c::m);
|
||||
|
||||
/* 8049017C-80490180 000004 0004+00 1/1 0/0 0/0 .rodata @3757 */
|
||||
SECTION_RODATA static f32 const lit_3757 = 150.0f;
|
||||
COMPILER_STRIP_GATE(0x8049017C, &lit_3757);
|
||||
const daTag_Msg_HIO_Param_c daTag_Msg_Param_c::m = {0};
|
||||
|
||||
/* 8048F9E8-8048FC68 000288 0280+00 1/1 0/0 0/0 .text execute__11daTag_Msg_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTag_Msg_c::execute() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_msg/d_a_tag_msg/execute__11daTag_Msg_cFv.s"
|
||||
int daTag_Msg_c::execute() {
|
||||
bool set_event = true;
|
||||
|
||||
fopAcM_SetRoomNo(this, dComIfGp_roomControl_getStayNo());
|
||||
eyePos.set(current.pos.x, current.pos.y + 150.0f, current.pos.z);
|
||||
attention_info.position = eyePos;
|
||||
|
||||
dComIfG_play_c& play = g_dComIfG_gameInfo.play; // FAKE, event inlines need to be fixed
|
||||
if (play.getEvent().runCheck()) {
|
||||
set_event = false;
|
||||
|
||||
if (eventInfo.checkCommandTalk()) {
|
||||
if (cut_speak(-1, field_0x5e4)) {
|
||||
if (field_0x5dc == 1 && mOffSwitch != 0xFF) {
|
||||
dComIfGs_onSwitch(mOffSwitch, fopAcM_GetRoomNo(this));
|
||||
}
|
||||
|
||||
play.getEvent().reset();
|
||||
set_event = true;
|
||||
}
|
||||
|
||||
field_0x5e4 = 0;
|
||||
} else if (mEventIdx != -1) {
|
||||
if (dComIfGp_getEventManager().endCheck(mEventIdx)) {
|
||||
mOrderEvtNum = 0;
|
||||
mEventIdx = -1;
|
||||
|
||||
if (field_0x5dc == 0 && mOffSwitch != 0xFF) {
|
||||
dComIfGs_onSwitch(mOffSwitch, fopAcM_GetRoomNo(this));
|
||||
}
|
||||
|
||||
play.getEvent().reset();
|
||||
set_event = true;
|
||||
} else {
|
||||
int staff_id = dComIfGp_evmng_getMyStaffId(mStaffName, NULL, 0);
|
||||
int act_idx = dComIfGp_getEventManager().getMyActIdx(staff_id, mEvtCutTBL, 2, 0, 0);
|
||||
int is_advance = dComIfGp_getEventManager().getIsAddvance(staff_id);
|
||||
|
||||
BOOL var_r27 = false;
|
||||
switch (act_idx) {
|
||||
case 0:
|
||||
var_r27 = cut_speak(staff_id, is_advance);
|
||||
break;
|
||||
}
|
||||
|
||||
if (var_r27) {
|
||||
dComIfGp_getEventManager().cutEnd(staff_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (set_event && rangeCheck() && otherCheck()) {
|
||||
if (field_0x5dd) {
|
||||
mOrderEvtNum = 1;
|
||||
JUT_ASSERT(0 != l_evtNameTBL[mOrderEvtNum]);
|
||||
|
||||
mEventIdx =
|
||||
dComIfGp_getEventManager().getEventIdx(this, l_evtNameTBL[mOrderEvtNum], 0xFF);
|
||||
fopAcM_orderOtherEventId(this, mEventIdx, 0xFF, 0xFFFF, 0, 1);
|
||||
} else {
|
||||
eventInfo.i_onCondition(1);
|
||||
field_0x5e4 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8048FC68-8048FC70 000508 0008+00 1/1 0/0 0/0 .text draw__11daTag_Msg_cFv */
|
||||
bool daTag_Msg_c::draw() {
|
||||
return true;
|
||||
int daTag_Msg_c::draw() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80490180-80490188 000008 0004+04 0/1 0/0 0/0 .rodata @3813 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3813[4 + 4 /* padding */] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80490180, &lit_3813);
|
||||
#pragma pop
|
||||
|
||||
/* 80490188-80490190 000010 0008+00 0/1 0/0 0/0 .rodata @3814 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3814[8] = {
|
||||
0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80490188, &lit_3814);
|
||||
#pragma pop
|
||||
|
||||
/* 80490190-80490198 000018 0008+00 0/1 0/0 0/0 .rodata @3815 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3815[8] = {
|
||||
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80490190, &lit_3815);
|
||||
#pragma pop
|
||||
|
||||
/* 80490198-804901A0 000020 0008+00 0/1 0/0 0/0 .rodata @3816 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3816[8] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80490198, &lit_3816);
|
||||
#pragma pop
|
||||
|
||||
/* 8048FC70-8048FE18 000510 01A8+00 1/1 0/0 0/0 .text rangeCheck__11daTag_Msg_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTag_Msg_c::rangeCheck() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_msg/d_a_tag_msg/rangeCheck__11daTag_Msg_cFv.s"
|
||||
BOOL daTag_Msg_c::rangeCheck() {
|
||||
cXyz player_dist = daPy_getPlayerActorClass()->current.pos - current.pos;
|
||||
return player_dist.absXZ() < scale.x && (-scale.y < player_dist.y && player_dist.y < scale.y);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8048FE18-8048FF8C 0006B8 0174+00 1/1 0/0 0/0 .text otherCheck__11daTag_Msg_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTag_Msg_c::otherCheck() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_msg/d_a_tag_msg/otherCheck__11daTag_Msg_cFv.s"
|
||||
BOOL daTag_Msg_c::otherCheck() {
|
||||
if (field_0x5dc) {
|
||||
if (mOnSaveLabel == 0xFFF ||
|
||||
dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[mOnSaveLabel]))
|
||||
{
|
||||
if (mOffSaveLabel != 0xFFF &&
|
||||
dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[mOffSaveLabel]))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else if (mOnSwitch == 0xFF || dComIfGs_isSwitch(mOnSwitch, fopAcM_GetRoomNo(this))) {
|
||||
if (mOffSwitch != 0xFF && dComIfGs_isSwitch(mOffSwitch, fopAcM_GetRoomNo(this))) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (field_0x5dd) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
s16 var_r28 = fopAcM_searchActorAngleY(this, daPy_getPlayerActorClass()) + 0x7FFF;
|
||||
s16 angle_to_player = var_r28 - daPy_getPlayerActorClass()->current.angle.y;
|
||||
if (angle_to_player < 0) {
|
||||
angle_to_player = -angle_to_player;
|
||||
}
|
||||
|
||||
return angle_to_player <= 0x1000;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8048FF8C-8048FF9C 00082C 0010+00 2/2 0/0 0/0 .text getResName__11daTag_Msg_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTag_Msg_c::getResName() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_msg/d_a_tag_msg/getResName__11daTag_Msg_cFv.s"
|
||||
char* daTag_Msg_c::getResName() {
|
||||
return l_resName;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804901A0-804901A4 000028 0004+00 1/1 0/0 0/0 .rodata @3880 */
|
||||
SECTION_RODATA static f32 const lit_3880 = 100.0f;
|
||||
COMPILER_STRIP_GATE(0x804901A0, &lit_3880);
|
||||
|
||||
/* 8048FF9C-8049004C 00083C 00B0+00 1/1 0/0 0/0 .text getParam__11daTag_Msg_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTag_Msg_c::getParam() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_msg/d_a_tag_msg/getParam__11daTag_Msg_cFv.s"
|
||||
void daTag_Msg_c::getParam() {
|
||||
mOnSwitch = home.angle.x & 0xFF;
|
||||
mOffSwitch = (home.angle.x >> 8) & 0xFF;
|
||||
mOnSaveLabel = fopAcM_GetParam(this) & 0xFFF;
|
||||
mOffSaveLabel = (fopAcM_GetParam(this) >> 0xC) & 0xFFF;
|
||||
field_0x5dc = (fopAcM_GetParam(this) & 0x1000000) != 0;
|
||||
field_0x5dd = (fopAcM_GetParam(this) & 0x2000000) != 0;
|
||||
|
||||
if ((home.angle.z & 0xFFFF) != 0) {
|
||||
mFlowID = home.angle.z & 0xFFFF;
|
||||
} else {
|
||||
mFlowID = -1;
|
||||
}
|
||||
|
||||
scale.x *= 100.0f;
|
||||
scale.y *= 100.0f;
|
||||
strcpy(mStaffName, "Tag_ms");
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 804901D0-804901D8 -00001 0008+00 1/1 0/0 0/0 .data mEvtCutTBL__11daTag_Msg_c */
|
||||
SECTION_DATA char* daTag_Msg_c::mEvtCutTBL[2] = {
|
||||
"SPEAK",
|
||||
"PAUSE",
|
||||
};
|
||||
|
||||
/* 8049004C-804900A0 0008EC 0054+00 1/1 0/0 0/0 .text cut_speak__11daTag_Msg_cFii */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daTag_Msg_c::cut_speak(int param_0, int param_1) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_msg/d_a_tag_msg/cut_speak__11daTag_Msg_cFii.s"
|
||||
BOOL daTag_Msg_c::cut_speak(int i_staffId, BOOL i_isAdvance) {
|
||||
if (i_isAdvance) {
|
||||
mMsgFlow.init(this, mFlowID, 0, NULL);
|
||||
return false;
|
||||
} else {
|
||||
return mMsgFlow.doFlow(this, NULL, 0);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 804900A0-804900C0 000940 0020+00 1/0 0/0 0/0 .text daTag_Msg_Create__FPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daTag_Msg_Create(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_msg/d_a_tag_msg/daTag_Msg_Create__FPv.s"
|
||||
static int daTag_Msg_Create(void* i_this) {
|
||||
return ((daTag_Msg_c*)i_this)->create();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 804900C0-804900E0 000960 0020+00 1/0 0/0 0/0 .text daTag_Msg_Delete__FPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daTag_Msg_Delete(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_msg/d_a_tag_msg/daTag_Msg_Delete__FPv.s"
|
||||
static int daTag_Msg_Delete(void* i_this) {
|
||||
return ((daTag_Msg_c*)i_this)->destroy();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 804900E0-80490100 000980 0020+00 1/0 0/0 0/0 .text daTag_Msg_Execute__FPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daTag_Msg_Execute(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_msg/d_a_tag_msg/daTag_Msg_Execute__FPv.s"
|
||||
static int daTag_Msg_Execute(void* i_this) {
|
||||
return ((daTag_Msg_c*)i_this)->execute();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80490100-80490120 0009A0 0020+00 1/0 0/0 0/0 .text daTag_Msg_Draw__FPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daTag_Msg_Draw(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_msg/d_a_tag_msg/daTag_Msg_Draw__FPv.s"
|
||||
static int daTag_Msg_Draw(void* i_this) {
|
||||
return ((daTag_Msg_c*)i_this)->draw();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80490120-80490128 0009C0 0008+00 1/0 0/0 0/0 .text daTag_Msg_IsDelete__FPv */
|
||||
static bool daTag_Msg_IsDelete(void* param_0) {
|
||||
return true;
|
||||
static int daTag_Msg_IsDelete(void* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80490128-80490170 0009C8 0048+00 1/0 0/0 0/0 .text __dt__17daTag_Msg_Param_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm daTag_Msg_Param_c::~daTag_Msg_Param_c() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_msg/d_a_tag_msg/__dt__17daTag_Msg_Param_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804901BE-804901C4 000046 0006+00 0/0 0/0 0/0 .rodata None */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_804901BE = "Timer";
|
||||
#pragma pop
|
||||
|
||||
/* 804901A4-804901A4 00002C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
/* 804901D8-804901F8 -00001 0020+00 1/0 0/0 0/0 .data daTag_Msg_MethodTable */
|
||||
static actor_method_class daTag_Msg_MethodTable = {
|
||||
(process_method_func)daTag_Msg_Create, (process_method_func)daTag_Msg_Delete,
|
||||
(process_method_func)daTag_Msg_Execute, (process_method_func)daTag_Msg_IsDelete,
|
||||
(process_method_func)daTag_Msg_Draw,
|
||||
};
|
||||
|
||||
/* 804901F8-80490228 -00001 0030+00 0/0 0/0 1/0 .data g_profile_TAG_MSG */
|
||||
extern actor_process_profile_definition g_profile_TAG_MSG = {
|
||||
fpcLy_CURRENT_e, // mLayerID
|
||||
7, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_TAG_MSG, // mProcName
|
||||
&g_fpcLf_Method.mBase, // sub_method
|
||||
sizeof(daTag_Msg_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
285, // mPriority
|
||||
&daTag_Msg_MethodTable, // sub_method
|
||||
0x00044000, // mStatus
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user