d_a_obj_lv3waterEff / d_a_kytag16 OK

This commit is contained in:
TakaRikka 2023-06-30 00:26:45 -07:00
parent dae37fdbbb
commit 7b680de442
5 changed files with 293 additions and 506 deletions

View File

@ -42,6 +42,8 @@ void dKy_BossLight_set(cXyz* param_0, _GXColor* param_1, f32 param_2, u8 param_3
void dKy_custom_colset(u8 prevGather, u8 curGather, f32 blend);
void dKy_setLight();
cXyz dKy_plight_near_pos();
void dKy_BossSpotLight_set(cXyz* param_0, f32 param_1, f32 param_2, f32 param_3, _GXColor* param_4,
f32 param_5, u8 param_6, u8 param_7);
struct LIGHT_INFLUENCE {
/* 800CFC7C */ ~LIGHT_INFLUENCE() {}
@ -168,12 +170,12 @@ struct LightStatus {
/* 0x4C */ f32 mRefDist;
/* 0x50 */ f32 mRefBrightness;
/* 0x54 */ GXDistAttnFn mDistFn;
/* 0x58 */ u32 field_0x58[2][6]; //?
/* 0x58 */ u32 field_0x58[2][6]; //?
/* 0x88 */ f32 field_0x88;
/* 0x8C */ f32 field_0x8c;
/* 0x90 */ f32 field_0x90;
/* 0x94 */ f32 field_0x94;
/* 0x98 */ u32 field_0x98[2][8]; //?
/* 0x98 */ u32 field_0x98[2][8]; //?
/* 0xD8 */ f32 field_0xd8;
/* 0xDC */ f32 field_0xdc;
/* 0xE0 */ f32 field_0xe0;

View File

@ -1,6 +1,25 @@
#ifndef D_A_KYTAG16_H
#define D_A_KYTAG16_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
class kytag16_class : public fopAc_ac_c {
public:
/* 0x568 */ f32 field_0x568;
/* 0x56C */ u8 field_0x56c;
/* 0x56D */ GXColor field_0x56d;
/* 0x571 */ u8 field_0x571;
/* 0x572 */ u8 field_0x572;
/* 0x573 */ u8 field_0x573;
/* 0x574 */ f32 field_0x574;
/* 0x578 */ f32 field_0x578;
/* 0x57C */ f32 field_0x57c;
/* 0x580 */ f32 field_0x580;
/* 0x584 */ f32 field_0x584;
/* 0x588 */ s16 field_0x588;
/* 0x58A */ s16 field_0x58a;
/* 0x58C */ u8 field_0x58c;
/* 0x58D */ u8 field_0x58d;
};
#endif /* D_A_KYTAG16_H */

View File

@ -1,6 +1,18 @@
#ifndef D_A_OBJ_LV3WATEREFF_H
#define D_A_OBJ_LV3WATEREFF_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
class daObjWaterEff_c : public fopAc_ac_c {
public:
/* 80C5C4F8 */ int Create();
/* 80C5C5DC */ int create();
/* 80C5C6B0 */ int execute();
/* 80C5C7B8 */ int _delete();
/* 0x568 */ cXyz mSePositions[2];
/* 0x580 */ JPABaseEmitter* mParticles[4];
/* 0x590 */ u8 unused_0x590[0x594 - 0x590];
};
#endif /* D_A_OBJ_LV3WATEREFF_H */

View File

@ -4,307 +4,196 @@
//
#include "rel/d/a/kytag/d_a_kytag16/d_a_kytag16.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct kytag16_class {};
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
};
struct dSv_info_c {
/* 80035360 */ void isSwitch(int, int) const;
};
struct cXyz {};
struct _GXColor {};
struct JMath {
static u8 sincosTable_[65536];
};
//
// Forward References:
//
extern "C" static bool daKytag16_Draw__FP13kytag16_class();
extern "C" static void daKytag16_Execute__FP13kytag16_class();
extern "C" static bool daKytag16_IsDelete__FP13kytag16_class();
extern "C" static bool daKytag16_Delete__FP13kytag16_class();
extern "C" static void daKytag16_Create__FP10fopAc_ac_c();
extern "C" extern char const* const d_a_kytag16__stringBase0;
extern "C" extern void* g_profile_KYTAG16[12];
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void dKy_getdaytime_hour__Fv();
extern "C" void dKy_BossSpotLight_set__FP4cXyzfffP8_GXColorfUcUc();
extern "C" void cM_rndFX__Ff();
extern "C" void cLib_addCalc__FPfffff();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_Counter[12 + 4 /* padding */];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
//
// Declarations:
//
#include "JSystem/JKernel/JKRHeap.h"
#include "SSystem/SComponent/c_counter.h"
#include "SSystem/SComponent/c_math.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_procname.h"
/* 80860C58-80860C60 000078 0008+00 1/0 0/0 0/0 .text daKytag16_Draw__FP13kytag16_class
*/
static bool daKytag16_Draw(kytag16_class* param_0) {
return true;
static int daKytag16_Draw(kytag16_class* i_this) {
return 1;
}
/* ############################################################################################## */
/* 80861134-80861138 000000 0004+00 2/2 0/0 0/0 .rodata @3839 */
SECTION_RODATA static u8 const lit_3839[4] = {
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80861134, &lit_3839);
/* 80861138-8086113C 000004 0004+00 0/2 0/0 0/0 .rodata @3840 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3840 = 1.0f;
COMPILER_STRIP_GATE(0x80861138, &lit_3840);
#pragma pop
/* 8086113C-80861140 000008 0004+00 0/1 0/0 0/0 .rodata @3841 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3841 = 0.5f;
COMPILER_STRIP_GATE(0x8086113C, &lit_3841);
#pragma pop
/* 80861140-80861144 00000C 0004+00 0/1 0/0 0/0 .rodata @3842 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3842 = 1.0f / 10.0f;
COMPILER_STRIP_GATE(0x80861140, &lit_3842);
#pragma pop
/* 80861144-80861148 000010 0004+00 0/1 0/0 0/0 .rodata @3843 */
#pragma push
#pragma force_active on
SECTION_RODATA static u32 const lit_3843 = 0x38D1B717;
COMPILER_STRIP_GATE(0x80861144, &lit_3843);
#pragma pop
/* 80861148-8086114C 000014 0004+00 0/1 0/0 0/0 .rodata @3844 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3844 = 9.0f / 10.0f;
COMPILER_STRIP_GATE(0x80861148, &lit_3844);
#pragma pop
/* 8086114C-80861150 000018 0004+00 0/1 0/0 0/0 .rodata @3845 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3845 = 40.0f;
COMPILER_STRIP_GATE(0x8086114C, &lit_3845);
#pragma pop
/* 80861150-80861154 00001C 0004+00 0/1 0/0 0/0 .rodata @3846 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3846 = 1.0f / 20.0f;
COMPILER_STRIP_GATE(0x80861150, &lit_3846);
#pragma pop
/* 80861154-80861158 000020 0004+00 0/1 0/0 0/0 .rodata @3847 */
#pragma push
#pragma force_active on
SECTION_RODATA static u32 const lit_3847 = 0x3A83126F;
COMPILER_STRIP_GATE(0x80861154, &lit_3847);
#pragma pop
/* 80861158-8086115C 000024 0004+00 0/1 0/0 0/0 .rodata @3848 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3848 = 12.0f;
COMPILER_STRIP_GATE(0x80861158, &lit_3848);
#pragma pop
/* 8086115C-80861160 000028 0004+00 0/1 0/0 0/0 .rodata @3849 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3849 = 50.0f;
COMPILER_STRIP_GATE(0x8086115C, &lit_3849);
#pragma pop
/* 80861194-80861194 000060 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80861194 = "F_SP117";
#pragma pop
/* 80860C60-80860E9C 000080 023C+00 1/0 0/0 0/0 .text daKytag16_Execute__FP13kytag16_class */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daKytag16_Execute(kytag16_class* param_0) {
nofralloc
#include "asm/rel/d/a/kytag/d_a_kytag16/d_a_kytag16/daKytag16_Execute__FP13kytag16_class.s"
static int daKytag16_Execute(kytag16_class* i_this) {
bool var_r29 = false;
f32 var_f31 = 0.0f;
f32 var_f30 = 0.0f;
if (i_this->field_0x571 < 31) {
if (i_this->field_0x571 > i_this->field_0x572) {
if (dKy_getdaytime_hour() >= i_this->field_0x571 ||
dKy_getdaytime_hour() <= i_this->field_0x572)
{
var_r29 = true;
}
} else if (dKy_getdaytime_hour() >= i_this->field_0x571 &&
dKy_getdaytime_hour() <= i_this->field_0x572)
{
var_r29 = true;
}
} else {
var_r29 = true;
}
if (var_r29) {
var_r29 = false;
if (i_this->field_0x573 != 0xFF) {
s32 room_no = dComIfGp_roomControl_getStayNo();
if (dComIfGs_isSwitch(i_this->field_0x573, room_no)) {
var_r29 = true;
}
} else {
var_r29 = true;
}
}
if (var_r29) {
if (strcmp(dComIfGp_getStartStageName(), "F_SP117") != 0) {
cLib_addCalc(&i_this->field_0x568, 1.0f, 0.5f, 0.1f, 0.0001f);
} else {
var_f31 = cM_ssin(i_this->field_0x588);
var_f30 = cM_scos(i_this->field_0x58a);
i_this->field_0x588 += 0x500;
i_this->field_0x58a += 800;
cLib_addCalc(&i_this->field_0x568, 0.9f + (0.1f * cM_ssin(g_Counter.mCounter0 * 0x500)),
0.5f, 0.1f, 0.0001f);
i_this->field_0x580 = 40.0f;
}
} else {
cLib_addCalc(&i_this->field_0x568, 0.0f, 0.5f, 0.05f, 0.0001f);
}
if (i_this->field_0x568 > 0.001f) {
dKy_BossSpotLight_set(&i_this->current.pos, i_this->field_0x578 + (12.0f * var_f31),
i_this->field_0x57c + (50.0f * var_f30), i_this->field_0x580,
&i_this->field_0x56d, i_this->field_0x574 * i_this->field_0x568,
i_this->field_0x58c, i_this->field_0x58d);
}
return 1;
}
#pragma pop
/* 80860E9C-80860EA4 0002BC 0008+00 1/0 0/0 0/0 .text daKytag16_IsDelete__FP13kytag16_class */
static bool daKytag16_IsDelete(kytag16_class* param_0) {
return true;
static int daKytag16_IsDelete(kytag16_class* i_this) {
return 1;
}
/* 80860EA4-80860EAC 0002C4 0008+00 1/0 0/0 0/0 .text daKytag16_Delete__FP13kytag16_class
*/
static bool daKytag16_Delete(kytag16_class* param_0) {
return true;
static int daKytag16_Delete(kytag16_class* i_this) {
return 1;
}
/* ############################################################################################## */
/* 80861160-80861164 00002C 0004+00 0/1 0/0 0/0 .rodata @3902 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3902 = 180.0f;
COMPILER_STRIP_GATE(0x80861160, &lit_3902);
#pragma pop
/* 80861164-80861168 000030 0004+00 0/1 0/0 0/0 .rodata @3903 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3903 = 32767.0f;
COMPILER_STRIP_GATE(0x80861164, &lit_3903);
#pragma pop
/* 80861168-8086116C 000034 0004+00 0/1 0/0 0/0 .rodata @3904 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3904 = 65535.0f;
COMPILER_STRIP_GATE(0x80861168, &lit_3904);
#pragma pop
/* 8086116C-80861170 000038 0004+00 0/1 0/0 0/0 .rodata @3905 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3905 = 45.0f;
COMPILER_STRIP_GATE(0x8086116C, &lit_3905);
#pragma pop
/* 80861170-80861174 00003C 0004+00 0/0 0/0 0/0 .rodata @3906 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3906 = 5.0f;
COMPILER_STRIP_GATE(0x80861170, &lit_3906);
#pragma pop
/* 80861174-80861178 000040 0004+00 0/0 0/0 0/0 .rodata @3907 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3907 = 10.0f;
COMPILER_STRIP_GATE(0x80861174, &lit_3907);
#pragma pop
/* 80861178-8086117C 000044 0004+00 0/0 0/0 0/0 .rodata @3908 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3908 = 25.0f;
COMPILER_STRIP_GATE(0x80861178, &lit_3908);
#pragma pop
/* 8086117C-80861180 000048 0004+00 0/0 0/0 0/0 .rodata @3909 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3909 = 70.0f;
COMPILER_STRIP_GATE(0x8086117C, &lit_3909);
#pragma pop
/* 80861180-80861184 00004C 0004+00 0/0 0/0 0/0 .rodata @3910 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3910 = 60.0f;
COMPILER_STRIP_GATE(0x80861180, &lit_3910);
#pragma pop
/* 80861184-8086118C 000050 0004+04 0/0 0/0 0/0 .rodata @3911 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3911[1 + 1 /* padding */] = {
1.0f / 100.0f,
/* padding */
0.0f,
};
COMPILER_STRIP_GATE(0x80861184, &lit_3911);
#pragma pop
/* 8086118C-80861194 000058 0008+00 0/1 0/0 0/0 .rodata @3913 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3913[8] = {
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x8086118C, &lit_3913);
#pragma pop
/* 8086119C-808611BC -00001 0020+00 1/1 0/0 0/0 .data @3917 */
SECTION_DATA static void* lit_3917[8] = {
(void*)(((char*)daKytag16_Create__FP10fopAc_ac_c) + 0x150),
(void*)(((char*)daKytag16_Create__FP10fopAc_ac_c) + 0x170),
(void*)(((char*)daKytag16_Create__FP10fopAc_ac_c) + 0x194),
(void*)(((char*)daKytag16_Create__FP10fopAc_ac_c) + 0x1B8),
(void*)(((char*)daKytag16_Create__FP10fopAc_ac_c) + 0x1D8),
(void*)(((char*)daKytag16_Create__FP10fopAc_ac_c) + 0x1FC),
(void*)(((char*)daKytag16_Create__FP10fopAc_ac_c) + 0x220),
(void*)(((char*)daKytag16_Create__FP10fopAc_ac_c) + 0x244),
};
/* 80860EAC-8086112C 0002CC 0280+00 2/0 0/0 0/0 .text daKytag16_Create__FP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daKytag16_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/kytag/d_a_kytag16/d_a_kytag16/daKytag16_Create__FP10fopAc_ac_c.s"
static int daKytag16_Create(fopAc_ac_c* i_this) {
if (!fopAcM_CheckCondition(i_this, 8)) {
new (i_this) kytag16_class();
fopAcM_OnCondition(i_this, 8);
}
kytag16_class* this_ = (kytag16_class*)i_this;
this_->field_0x573 = fopAcM_GetParam(this_) & 0xFF;
this_->field_0x56c = (this_->current.angle.z >> 10) & 0x3F;
this_->field_0x56d.r = fopAcM_GetParam(this_) >> 0x8;
this_->field_0x56d.g = fopAcM_GetParam(this_) >> 0x10;
this_->field_0x56d.b = fopAcM_GetParam(this_) >> 0x18;
this_->field_0x571 = this_->current.angle.z & 0x1F;
this_->field_0x572 = (this_->current.angle.z >> 5) & 0x1F;
this_->field_0x578 = (this_->shape_angle.x / 32767.0f) * 180.0f;
this_->field_0x57c = (this_->shape_angle.y / 32767.0f) * 180.0f;
this_->field_0x588 = cM_rndFX(65535.0f);
this_->field_0x58a = cM_rndFX(65535.0f);
this_->field_0x584 = 1.0f;
this_->field_0x568 = 0.0f;
switch (this_->field_0x56c) {
case 0:
this_->field_0x580 = 45.0f;
this_->field_0x574 = 1.0f;
this_->field_0x58c = 0;
this_->field_0x58d = 3;
break;
case 1:
this_->field_0x580 = 45.0f;
this_->field_0x574 = 5.0f;
this_->field_0x58c = 0;
this_->field_0x58d = 3;
break;
case 2:
this_->field_0x580 = 45.0f;
this_->field_0x574 = 10.0f;
this_->field_0x58c = 0;
this_->field_0x58d = 3;
break;
case 3:
this_->field_0x580 = 25.0f;
this_->field_0x574 = 1.0f;
this_->field_0x58c = 2;
this_->field_0x58d = 3;
break;
case 4:
this_->field_0x580 = 45.0f;
this_->field_0x574 = 5.0f;
this_->field_0x58c = 2;
this_->field_0x58d = 3;
break;
case 5:
this_->field_0x580 = 70.0f;
this_->field_0x574 = 10.0f;
this_->field_0x58c = 2;
this_->field_0x58d = 3;
break;
case 6:
this_->field_0x580 = 60.0f;
this_->field_0x574 = 0.01f;
this_->field_0x58c = 2;
this_->field_0x58d = 1;
break;
case 7:
this_->field_0x580 = 50.0f;
this_->field_0x574 = 0.01f;
this_->field_0x58c = 2;
this_->field_0x58d = 1;
break;
}
return cPhs_COMPLEATE_e;
}
#pragma pop
/* ############################################################################################## */
/* 808611BC-808611DC -00001 0020+00 1/0 0/0 0/0 .data l_daKytag16_Method */
SECTION_DATA static void* l_daKytag16_Method[8] = {
(void*)daKytag16_Create__FP10fopAc_ac_c,
(void*)daKytag16_Delete__FP13kytag16_class,
(void*)daKytag16_Execute__FP13kytag16_class,
(void*)daKytag16_IsDelete__FP13kytag16_class,
(void*)daKytag16_Draw__FP13kytag16_class,
(void*)NULL,
(void*)NULL,
(void*)NULL,
static actor_method_class l_daKytag16_Method = {
(process_method_func)daKytag16_Create,
(process_method_func)daKytag16_Delete,
(process_method_func)daKytag16_Execute,
(process_method_func)daKytag16_IsDelete,
(process_method_func)daKytag16_Draw,
};
/* 808611DC-8086120C -00001 0030+00 0/0 0/0 1/0 .data g_profile_KYTAG16 */
SECTION_DATA extern void* g_profile_KYTAG16[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x02BA0000, (void*)&g_fpcLf_Method,
(void*)0x00000590, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x006E0000, (void*)&l_daKytag16_Method,
(void*)0x00060000, (void*)NULL,
extern actor_process_profile_definition g_profile_KYTAG16 = {
-3,
7,
-3,
PROC_KYTAG16,
&g_fpcLf_Method.mBase,
sizeof(kytag16_class),
0,
0,
&g_fopAc_Method.base,
110,
&l_daKytag16_Method,
0x60000,
0,
0,
};
/* 80861194-80861194 000060 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */

View File

@ -1,258 +1,123 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_obj_lv3waterEff
//
/**
* d_a_obj_lv3waterEff.cpp
* Lakebed Temple Pre-Deku Toad Room Water Bubbles
*/
#include "rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_procname.h"
//
// Types:
//
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
};
struct daObjWaterEff_c {
/* 80C5C4F8 */ void Create();
/* 80C5C5DC */ void create();
/* 80C5C6B0 */ void execute();
/* 80C5C7B8 */ void _delete();
};
struct dPa_levelEcallBack {};
struct dKy_tevstr_c {};
struct csXyz {};
struct _GXColor {};
struct cXyz {
/* 80C5C670 */ ~cXyz();
/* 80C5C6AC */ cXyz();
};
struct dPa_control_c {
/* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*,
u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*,
cXyz const*, f32);
};
struct JAISoundID {};
struct Vec {};
struct Z2SeMgr {
/* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
};
struct Z2AudioMgr {
static u8 mAudioMgrPtr[4 + 4 /* padding */];
};
//
// Forward References:
//
extern "C" void Create__15daObjWaterEff_cFv();
extern "C" void create__15daObjWaterEff_cFv();
extern "C" void __dt__4cXyzFv();
extern "C" void __ct__4cXyzFv();
extern "C" void execute__15daObjWaterEff_cFv();
extern "C" void _delete__15daObjWaterEff_cFv();
extern "C" static void daObjWaterEff_Execute__FP15daObjWaterEff_c();
extern "C" static void daObjWaterEff_Delete__FP15daObjWaterEff_c();
extern "C" static void daObjWaterEff_Create__FP10fopAc_ac_c();
extern "C" extern void* g_profile_Obj_WaterEff[12];
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void
set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
extern "C" void dKy_camera_water_in_status_check__Fv();
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void __dl__FPv();
extern "C" void __construct_array();
extern "C" void _savegpr_25();
extern "C" void _restgpr_25();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
//
// Declarations:
//
/* ############################################################################################## */
/* 80C5C878-80C5C880 000000 0008+00 1/1 0/0 0/0 .rodata l_eff_id */
SECTION_RODATA static u8 const l_eff_id[8] = {
0x86, 0xD2, 0x86, 0xD3, 0x86, 0xD4, 0x86, 0xD5,
static u16 const l_eff_id[] = {
0x86D2,
0x86D3,
0x86D4,
0x86D5,
};
COMPILER_STRIP_GATE(0x80C5C878, &l_eff_id);
/* 80C5C880-80C5C884 000008 0004+00 1/2 0/0 0/0 .rodata @3637 */
SECTION_RODATA static f32 const lit_3637 = 1.0f;
COMPILER_STRIP_GATE(0x80C5C880, &lit_3637);
/* 80C5C884-80C5C888 00000C 0004+00 0/1 0/0 0/0 .rodata @3638 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3638 = 14420.0f;
COMPILER_STRIP_GATE(0x80C5C884, &lit_3638);
#pragma pop
/* 80C5C888-80C5C88C 000010 0004+00 0/1 0/0 0/0 .rodata @3639 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3639 = -1100.0f;
COMPILER_STRIP_GATE(0x80C5C888, &lit_3639);
#pragma pop
/* 80C5C88C-80C5C890 000014 0004+00 0/1 0/0 0/0 .rodata @3640 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3640 = -4950.0f;
COMPILER_STRIP_GATE(0x80C5C88C, &lit_3640);
#pragma pop
/* 80C5C890-80C5C894 000018 0004+00 0/1 0/0 0/0 .rodata @3641 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3641 = 12585.0f;
COMPILER_STRIP_GATE(0x80C5C890, &lit_3641);
#pragma pop
/* 80C5C894-80C5C898 00001C 0004+00 0/1 0/0 0/0 .rodata @3642 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3642 = -550.0f;
COMPILER_STRIP_GATE(0x80C5C894, &lit_3642);
#pragma pop
/* 80C5C898-80C5C89C 000020 0004+00 0/1 0/0 0/0 .rodata @3643 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3643 = -2390.0f;
COMPILER_STRIP_GATE(0x80C5C898, &lit_3643);
#pragma pop
/* 80C5C4F8-80C5C5DC 000078 00E4+00 1/1 0/0 0/0 .text Create__15daObjWaterEff_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjWaterEff_c::Create() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/Create__15daObjWaterEff_cFv.s"
int daObjWaterEff_c::Create() {
for (int i = 0; i < 4; i++) {
mParticles[i] = dComIfGp_particle_set(l_eff_id[i], &current.pos, NULL, NULL, 0xFF, NULL, -1,
NULL, NULL, NULL);
}
mSePositions[0].set(14420.0f, -1100.0f, -4950.0f);
mSePositions[1].set(12585.0f, -550.0f, -2390.0f);
return 1;
}
#pragma pop
/* 80C5C5DC-80C5C670 00015C 0094+00 1/1 0/0 0/0 .text create__15daObjWaterEff_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjWaterEff_c::create() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/func_80C5C5DC.s"
}
#pragma pop
int daObjWaterEff_c::create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daObjWaterEff_c();
fopAcM_OnCondition(this, 8);
}
/* 80C5C670-80C5C6AC 0001F0 003C+00 1/1 0/0 0/0 .text __dt__4cXyzFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm cXyz::~cXyz() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/__dt__4cXyzFv.s"
}
#pragma pop
if (!Create()) {
return cPhs_ERROR_e;
}
/* 80C5C6AC-80C5C6B0 00022C 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */
cXyz::cXyz() {
/* empty function */
return cPhs_COMPLEATE_e;
}
/* ############################################################################################## */
/* 80C5C89C-80C5C8A0 000024 0004+00 1/1 0/0 0/0 .rodata @3710 */
SECTION_RODATA static f32 const lit_3710 = -1.0f;
COMPILER_STRIP_GATE(0x80C5C89C, &lit_3710);
/* 80C5C6B0-80C5C7B8 000230 0108+00 1/1 0/0 0/0 .text execute__15daObjWaterEff_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjWaterEff_c::execute() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/execute__15daObjWaterEff_cFv.s"
int daObjWaterEff_c::execute() {
if (dKy_camera_water_in_status_check()) {
for (int i = 0; i < 4; i++) {
if (mParticles[i] != NULL) {
mParticles[i]->setGlobalAlpha(255);
}
}
} else {
for (int i = 0; i < 4; i++) {
if (mParticles[i] != NULL) {
mParticles[i]->setGlobalAlpha(128);
}
}
}
for (int i = 0; i < 2; i++) {
i_mDoAud_seStartLevel(Z2SE_OBJ_WTR_STREAM, &mSePositions[i], 0, 0);
}
return 1;
}
#pragma pop
/* 80C5C7B8-80C5C810 000338 0058+00 1/1 0/0 0/0 .text _delete__15daObjWaterEff_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjWaterEff_c::_delete() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/_delete__15daObjWaterEff_cFv.s"
int daObjWaterEff_c::_delete() {
for (int i = 0; i < 4; i++) {
if (mParticles[i] != NULL) {
mParticles[i]->becomeInvalidEmitter();
mParticles[i]->quitImmortalEmitter();
mParticles[i] = NULL;
}
}
return 1;
}
#pragma pop
/* 80C5C810-80C5C830 000390 0020+00 1/0 0/0 0/0 .text daObjWaterEff_Execute__FP15daObjWaterEff_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjWaterEff_Execute(daObjWaterEff_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/daObjWaterEff_Execute__FP15daObjWaterEff_c.s"
static int daObjWaterEff_Execute(daObjWaterEff_c* i_this) {
return i_this->execute();
}
#pragma pop
/* 80C5C830-80C5C850 0003B0 0020+00 1/0 0/0 0/0 .text daObjWaterEff_Delete__FP15daObjWaterEff_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjWaterEff_Delete(daObjWaterEff_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/daObjWaterEff_Delete__FP15daObjWaterEff_c.s"
static int daObjWaterEff_Delete(daObjWaterEff_c* i_this) {
return i_this->_delete();
}
#pragma pop
/* 80C5C850-80C5C870 0003D0 0020+00 1/0 0/0 0/0 .text daObjWaterEff_Create__FP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjWaterEff_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/daObjWaterEff_Create__FP10fopAc_ac_c.s"
static int daObjWaterEff_Create(fopAc_ac_c* i_this) {
return static_cast<daObjWaterEff_c*>(i_this)->create();
}
#pragma pop
/* ############################################################################################## */
/* 80C5C8A0-80C5C8C0 -00001 0020+00 1/0 0/0 0/0 .data l_daObjWaterEff_Method */
SECTION_DATA static void* l_daObjWaterEff_Method[8] = {
(void*)daObjWaterEff_Create__FP10fopAc_ac_c,
(void*)daObjWaterEff_Delete__FP15daObjWaterEff_c,
(void*)daObjWaterEff_Execute__FP15daObjWaterEff_c,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
static actor_method_class l_daObjWaterEff_Method = {
(process_method_func)daObjWaterEff_Create,
(process_method_func)daObjWaterEff_Delete,
(process_method_func)daObjWaterEff_Execute,
(process_method_func)NULL,
(process_method_func)NULL,
};
/* 80C5C8C0-80C5C8F0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_WaterEff */
SECTION_DATA extern void* g_profile_Obj_WaterEff[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x017F0000, (void*)&g_fpcLf_Method,
(void*)0x00000594, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x022B0000, (void*)&l_daObjWaterEff_Method,
(void*)0x00040100, (void*)0x000E0000,
extern actor_process_profile_definition g_profile_Obj_WaterEff = {
-3,
7,
-3,
PROC_Obj_WaterEff,
&g_fpcLf_Method.mBase,
sizeof(daObjWaterEff_c),
0,
0,
&g_fopAc_Method.base,
555,
&l_daObjWaterEff_Method,
0x40100,
0,
14,
};