mirror of
https://github.com/zeldaret/tp
synced 2026-08-21 06:28:59 -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
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user