// // Generated By: dol2asm // Translation Unit: d/kankyo/d_kankyo_rain // #include "d/kankyo/d_kankyo_rain.h" #include "SSystem/SComponent/c_counter.h" #include "d/a/d_a_player.h" #include "d/com/d_com_inf_game.h" #include "dol2asm.h" #include "m_Do/m_Do_lib.h" #include "string.h" // // Forward References: // extern "C" static void vectle_calc__FP10DOUBLE_POSP4cXyz(); extern "C" static void get_vectle_calc__FP4cXyzP4cXyzP4cXyz(); extern "C" void dKyr_get_vectle_calc__FP4cXyzP4cXyzP4cXyz(); extern "C" static void dKy_set_eyevect_calc__FP12camera_classP3Vecff(); extern "C" static void dKy_set_eyevect_calc2__FP12camera_classP3Vecff(); extern "C" static void dKyr_set_btitex_common__FP9_GXTexObjP7ResTIMG11_GXTexMapID(); extern "C" static void dKyr_set_btitex__FP9_GXTexObjP7ResTIMG(); extern "C" void dKyr_lenzflare_move__Fv(); extern "C" static void dKyr_moon_arrival_check__Fv(); extern "C" void dKyr_sun_move__Fv(); extern "C" void dKyr_rain_init__Fv(); extern "C" static void rain_bg_chk__FP19dKankyo_rain_Packeti(); extern "C" static void overhead_bg_chk__Fv(); extern "C" static void forward_overhead_bg_chk__FP4cXyzf(); extern "C" void dKyr_rain_move__Fv(); extern "C" static void d_krain_cut_turn_check__Fv(); extern "C" void dKyr_housi_move__Fv(); extern "C" void dKyr_snow_init__Fv(); extern "C" void dKyr_snow_move__Fv(); extern "C" void dKyr_star_init__Fv(); extern "C" void dKyr_star_move__Fv(); extern "C" void cloud_shadow_move__Fv(); extern "C" void vrkumo_move__Fv(); extern "C" static void dKr_cullVtx_Set__Fv(); extern "C" static void dKyr_draw_rev_moon__FPA4_fPPUc(); extern "C" void dKyr_drawSun__FPA4_fP4cXyzR8_GXColorPPUc(); extern "C" void dKyr_drawLenzflare__FPA4_fP4cXyzR8_GXColorPPUc(); extern "C" void dKyr_drawRain__FPA4_fPPUc(); extern "C" void dKyr_drawSibuki__FPA4_fPPUc(); extern "C" void dKyr_drawHousi__FPA4_fPPUc(); extern "C" void dKyr_drawSnow__FPA4_fPPUc(); extern "C" void dKyr_drawStar__FPA4_fPPUc(); extern "C" void drawCloudShadow__FPA4_fPPUc(); extern "C" void drawVrkumo__FPA4_fR8_GXColorPPUc(); extern "C" void dKyr_thunder_init__Fv(); extern "C" void dKyr_thunder_move__Fv(); extern "C" void dKyr_shstar_init__Fv(); extern "C" void dKyr_shstar_move__Fv(); extern "C" void dKyr_odour_init__Fv(); extern "C" void dKyr_odour_move__Fv(); extern "C" void dKyr_odour_draw__FPA4_fPPUc(); extern "C" void dKyr_mud_init__Fv(); extern "C" void dKyr_mud_move__Fv(); extern "C" void dKyr_mud_draw__FPA4_fPPUc(); extern "C" void dKyr_evil_init__Fv(); extern "C" void dKyr_evil_move__Fv(); extern "C" static void dKyr_evil_draw2__FPA4_fPPUc(); extern "C" static void dKyr_near_bosslight_check__F4cXyz(); extern "C" void dKyr_evil_draw__FPA4_fPPUc(); extern "C" bool getKandelaarFlamePos__9daPy_py_cFv(); extern "C" extern char const* const d_kankyo_d_kankyo_rain__stringBase0; // // External References: // extern "C" void __dt__4cXyzFv(); extern "C" void mDoMtx_ZXYrotM__FPA4_fsss(); extern "C" void mDoMtx_XrotM__FPA4_fs(); extern "C" void mDoMtx_YrotM__FPA4_fs(); extern "C" void mDoMtx_ZrotM__FPA4_fs(); extern "C" void mDoLib_project__FP3VecP3Vec(); extern "C" void __dt__5csXyzFv(); extern "C" void fopKyM_create__FsiP4cXyzP4cXyzPFPv_i(); extern "C" void getStatusRoomDt__20dStage_roomControl_cFi(); extern "C" void getLayerNo__14dComIfG_play_cFi(); extern "C" void dComIfG_getStageRes__FPCc(); extern "C" void dComIfGs_PolyDamageOff_Set__FSc(); extern "C" void isDungeonItem__12dSv_memBit_cCFi(); extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); extern "C" void getRunEventName__16dEvent_manager_cFv(); extern "C" void set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); extern "C" void newData__13dDlst_peekZ_cFssPUl(); extern "C" void __dt__8SNOW_EFFFv(); extern "C" void __ct__8SNOW_EFFFv(); extern "C" void __dt__8STAR_EFFFv(); extern "C" void __ct__8STAR_EFFFv(); extern "C" void dKyw_get_wind_vec__Fv(); extern "C" void dKyw_get_wind_pow__Fv(); extern "C" void dKyw_get_wind_vecpow__Fv(); extern "C" void dKyw_pntwind_get_vecpow__FP4cXyz(); extern "C" void GroundCross__4cBgSFP11cBgS_GndChk(); extern "C" void RoofChk__4dBgSFP12dBgS_RoofChk(); extern "C" void __ct__11dBgS_GndChkFv(); extern "C" void __dt__11dBgS_GndChkFv(); extern "C" void __dt__18dBgS_ObjGndChk_AllFv(); extern "C" void __ct__18dBgS_CamGndChk_WtrFv(); extern "C" void __dt__18dBgS_CamGndChk_WtrFv(); extern "C" void SetObj__16dBgS_PolyPassChkFv(); extern "C" void __ct__12dBgS_RoofChkFv(); extern "C" void __dt__12dBgS_RoofChkFv(); extern "C" void Prepare__12dCcMassS_MngFv(); extern "C" void checkNowWolfEyeUp__9daPy_py_cFv(); extern "C" void dKy_get_parcent__Ffff(); extern "C" void getDaytime__18dScnKy_env_light_cFv(); extern "C" void dKy_daynight_check__Fv(); extern "C" void dKy_move_room_ratio__FP12dKy_tevstr_cPSc(); extern "C" void dKy_efplight_set__FP15LIGHT_INFLUENCE(); extern "C" void dKy_efplight_cut__FP15LIGHT_INFLUENCE(); extern "C" void dKy_actor_addcol_amb_set__Fsssf(); extern "C" void dKy_bg_addcol_amb_set__Fsssf(); extern "C" void dKy_bg1_addcol_amb_set__Fsssf(); extern "C" void dKy_addcol_fog_set__Fsssf(); extern "C" void dKy_vrbox_addcol_sky0_set__Fsssf(); extern "C" void dKy_vrbox_addcol_kasumi_set__Fsssf(); extern "C" void dKy_GxFog_set__Fv(); extern "C" void dKy_rain_check__Fv(); extern "C" void dKy_set_actcol_ratio__Ff(); extern "C" void dKy_set_bgcol_ratio__Ff(); extern "C" void dKy_set_fogcol_ratio__Ff(); extern "C" void dKy_set_vrboxcol_ratio__Ff(); extern "C" void dKy_ParticleColor_get_bg__FP4cXyzP12dKy_tevstr_cP8_GXColorP8_GXColorP8_GXColorP8_GXColorf(); extern "C" void dKy_darkworld_check__Fv(); extern "C" void __pl__4cXyzCFRC3Vec(); extern "C" void __ct__5csXyzFsss(); extern "C" void cM_rad2s__Ff(); extern "C" void cM_atan2s__Fff(); extern "C" void cM_rndF__Ff(); extern "C" void cM_rndFX__Ff(); extern "C" void SetPos__11cBgS_GndChkFPC4cXyz(); extern "C" void cM3d_VectorProduct2d__Fffffff(); extern "C" void cLib_addCalc__FPfffff(); extern "C" void startNearThunderSe__10Z2EnvSeMgrFSc(); extern "C" void* __nw__FUli(); extern "C" void reinitGX__6J3DSysFv(); extern "C" void __register_global_object(); extern "C" void __construct_array(); extern "C" void _savegpr_14(); extern "C" void _savegpr_17(); extern "C" void _savegpr_18(); extern "C" void _savegpr_19(); extern "C" void _savegpr_20(); extern "C" void _savegpr_21(); extern "C" void _savegpr_22(); extern "C" void _savegpr_23(); extern "C" void _savegpr_25(); extern "C" void _savegpr_26(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); extern "C" void _restgpr_14(); extern "C" void _restgpr_17(); extern "C" void _restgpr_18(); extern "C" void _restgpr_19(); extern "C" void _restgpr_20(); extern "C" void _restgpr_21(); extern "C" void _restgpr_22(); extern "C" void _restgpr_23(); extern "C" void _restgpr_25(); extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" extern void* __vt__14dBgS_ObjGndChk[12 + 1 /* padding */]; extern "C" extern void* __vt__19dKankyo_star_Packet[5]; extern "C" extern void* __vt__19dKankyo_snow_Packet[5]; extern "C" extern void* __vt__18dBgS_ObjGndChk_All[12]; extern "C" extern void* __vt__9J3DPacket[5]; extern "C" u8 now__14mDoMtx_stack_c[48]; extern "C" u8 sincosTable___5JMath[65536]; extern "C" u8 mFrameBufferTimg__13mDoGph_gInf_c[4]; extern "C" u8 m_mode__7dDemo_c[4]; extern "C" u8 sOldVcdVatCmd__8J3DShape[4]; // // Declarations: // /* ############################################################################################## */ /* 804521B0-804521B8 0007B0 0008+00 19/19 0/0 0/0 .sdata2 @3953 */ SECTION_SDATA2 static u8 lit_3953[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; /* 804521B8-804521BC 0007B8 0004+00 31/31 0/0 0/0 .sdata2 @3954 */ SECTION_SDATA2 static u8 lit_3954[4] = { 0x00, 0x00, 0x00, 0x00, }; /* 8005B660-8005B708 055FA0 00A8+00 3/3 0/0 0/0 .text vectle_calc__FP10DOUBLE_POSP4cXyz */ // matches with literals #ifdef NONMATCHING static void vectle_calc(DOUBLE_POS* i_pos, cXyz* o_out) { double s = sqrt(i_pos->x * i_pos->x + i_pos->y * i_pos->y + i_pos->z * i_pos->z); if (s != 0.0) { o_out->x = i_pos->x / s; o_out->y = i_pos->y / s; o_out->z = i_pos->z / s; } else { o_out->x = 0.0; o_out->y = 0.0; o_out->z = 0.0; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void vectle_calc(DOUBLE_POS* param_0, cXyz* param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/vectle_calc__FP10DOUBLE_POSP4cXyz.s" } #pragma pop #endif /* 8005B708-8005B760 056048 0058+00 7/7 0/0 0/0 .text get_vectle_calc__FP4cXyzP4cXyzP4cXyz */ static void get_vectle_calc(cXyz* param_0, cXyz* param_1, cXyz* param_2) { DOUBLE_POS pos; pos.x = param_1->x - param_0->x; pos.y = param_1->y - param_0->y; pos.z = param_1->z - param_0->z; vectle_calc(&pos, param_2); } /* 8005B760-8005B780 0560A0 0020+00 8/8 7/7 11/11 .text dKyr_get_vectle_calc__FP4cXyzP4cXyzP4cXyz */ void dKyr_get_vectle_calc(cXyz* param_0, cXyz* param_1, cXyz* param_2) { get_vectle_calc(param_0, param_1, param_2); } /* ############################################################################################## */ /* 804521BC-804521C0 0007BC 0004+00 4/4 0/0 0/0 .sdata2 @3970 */ SECTION_SDATA2 static f32 lit_3970 = 200.0f; /* 8005B780-8005B830 0560C0 00B0+00 2/2 0/0 0/0 .text * dKy_set_eyevect_calc__FP12camera_classP3Vecff */ static void dKy_set_eyevect_calc(camera_class* i_camera, Vec* param_1, f32 param_2, f32 param_3) { cXyz tmp; get_vectle_calc(&i_camera->mLookat.mEye, &i_camera->mLookat.mCenter, &tmp); param_1->x = i_camera->mLookat.mEye.x + tmp.x * param_2; param_1->y = (i_camera->mLookat.mEye.y + tmp.y * param_3) - lit_3970; param_1->z = i_camera->mLookat.mEye.z + tmp.z * param_2; } /* 8005B830-8005B92C 056170 00FC+00 6/6 0/0 0/0 .text * dKy_set_eyevect_calc2__FP12camera_classP3Vecff */ // matches with literals #ifdef NONMATCHING static void dKy_set_eyevect_calc2(camera_class* i_camera, Vec* param_1, f32 param_2, f32 param_3) { cXyz tmp; DOUBLE_POS pos; pos.x = i_camera->mLookat.mCenter.x - i_camera->mLookat.mEye.x; if (param_3 != 0.0f) { pos.y = i_camera->mLookat.mCenter.y - i_camera->mLookat.mEye.y; } else { pos.y = 0.0f; } pos.z = i_camera->mLookat.mCenter.z - i_camera->mLookat.mEye.z; vectle_calc(&pos, &tmp); param_1->x = i_camera->mLookat.mEye.x + tmp.x * param_2; param_1->y = i_camera->mLookat.mEye.y + tmp.y * param_3; param_1->z = i_camera->mLookat.mEye.z + tmp.z * param_2; if (param_3 == 0.0f) { param_1->y = 0.0f; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void dKy_set_eyevect_calc2(camera_class* param_0, Vec* param_1, f32 param_2, f32 param_3) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKy_set_eyevect_calc2__FP12camera_classP3Vecff.s" } #pragma pop #endif /* ############################################################################################## */ /* 804521C0-804521C4 0007C0 0004+00 1/1 0/0 0/0 .sdata2 @3992 */ SECTION_SDATA2 static f32 lit_3992 = 0.125f; /* 804521C4-804521C8 0007C4 0004+00 9/9 0/0 0/0 .sdata2 @3993 */ SECTION_SDATA2 static f32 lit_3993 = 0.01f; /* 804521C8-804521D0 0007C8 0008+00 15/15 0/0 0/0 .sdata2 @3995 */ SECTION_SDATA2 static f64 lit_3995 = 4503601774854144.0 /* cast s32 to float */; /* 8005B92C-8005BA24 05626C 00F8+00 5/5 0/0 0/0 .text * dKyr_set_btitex_common__FP9_GXTexObjP7ResTIMG11_GXTexMapID */ // matches with literals #ifdef NONMATCHING static void dKyr_set_btitex_common(GXTexObj* i_obj, ResTIMG* i_img, GXTexMapID i_mapID) { GXInitTexObj(i_obj, (&i_img->format + i_img->imageOffset), i_img->width, i_img->height, (GXTexFmt)i_img->format, (GXTexWrapMode)i_img->wrapS, (GXTexWrapMode)i_img->wrapT, (GXBool)(i_img->mipmapCount > 1)); GXInitTexObjLOD(i_obj, (GXTexFilter)i_img->minFilter, (GXTexFilter)i_img->magFilter, i_img->minLOD * 0.125f, i_img->maxLOD * 0.125f, i_img->LODBias * 0.01f, (GXBool)i_img->biasClamp, (GXBool)i_img->doEdgeLOD, (GXAnisotropy)i_img->maxAnisotropy); GXLoadTexObj(i_obj, i_mapID); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void dKyr_set_btitex_common(GXTexObj* param_0, ResTIMG* param_1, GXTexMapID param_2) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_set_btitex_common__FP9_GXTexObjP7ResTIMG11_GXTexMapID.s" } #pragma pop #endif /* 8005BA24-8005BA48 056364 0024+00 12/12 0/0 0/0 .text dKyr_set_btitex__FP9_GXTexObjP7ResTIMG */ static void dKyr_set_btitex(GXTexObj* i_obj, ResTIMG* i_img) { dKyr_set_btitex_common(i_obj, i_img, GX_TEXMAP0); } /* ############################################################################################## */ /* 804521D0-804521D4 0007D0 0004+00 4/4 0/0 0/0 .sdata2 @4103 */ SECTION_SDATA2 static f32 lit_4103 = 0.0001; /* 804521D4-804521D8 0007D4 0004+00 4/4 0/0 0/0 .sdata2 @4104 */ SECTION_SDATA2 static f32 lit_4104 = 4000.0f; /* 804521D8-804521DC 0007D8 0004+00 2/2 0/0 0/0 .sdata2 @4105 */ SECTION_SDATA2 static f32 lit_4105 = 304.0f; /* 804521DC-804521E0 0007DC 0004+00 2/2 0/0 0/0 .sdata2 @4106 */ SECTION_SDATA2 static f32 lit_4106 = 224.0f; /* 804521E0-804521E4 0007E0 0004+00 2/2 0/0 0/0 .sdata2 @4107 */ SECTION_SDATA2 static f32 lit_4107 = 0.0054931640625f; /* 804521E4-804521E8 0007E4 0004+00 6/6 0/0 0/0 .sdata2 @4108 */ SECTION_SDATA2 static f32 lit_4108 = 180.0f; /* 804521E8-804521F0 0007E8 0008+00 17/17 0/0 0/0 .sdata2 @4109 */ SECTION_SDATA2 static f64 lit_4109 = 0.5; /* 804521F0-804521F8 0007F0 0008+00 17/17 0/0 0/0 .sdata2 @4110 */ SECTION_SDATA2 static f64 lit_4110 = 3.0; /* 804521F8-804521FC 0007F8 0004+00 6/6 0/0 0/0 .sdata2 @4111 */ SECTION_SDATA2 static f32 lit_4111 = 250.0f; /* 804521FC-80452200 0007FC 0004+00 4/4 0/0 0/0 .sdata2 @4112 */ SECTION_SDATA2 static f32 lit_4112 = 600.0f; /* 80452200-80452204 000800 0004+00 2/2 0/0 0/0 .sdata2 @4113 */ SECTION_SDATA2 static f32 lit_4113 = 110.0f; /* 80452204-80452208 000804 0004+00 1/1 0/0 0/0 .sdata2 @4114 */ SECTION_SDATA2 static f32 lit_4114 = 4100.0f; /* 8005BA48-8005BED8 056388 0490+00 0/0 1/1 0/0 .text dKyr_lenzflare_move__Fv */ // Matches with literals #ifdef NONMATCHING void dKyr_lenzflare_move() { dKankyo_sun_Packet* sun_p = g_env_light.mpSunPacket; dKankyo_sunlenz_Packet* lenz_p = g_env_light.mpSunLenzPacket; camera_class* iVar6 = dComIfGp_getCamera(0); cXyz cStack_48; cXyz cStack_54; cXyz local_60; cXyz cStack_6c; if (sun_p->mVisibility < 0.0001) { return; } dKy_set_eyevect_calc(iVar6, &cStack_48, 4000.0f, 4000.0f); dKyr_get_vectle_calc(&cStack_48, sun_p->mPos, &local_60); lenz_p->mPositions[0] = sun_p->mPos[0]; lenz_p->mPositions[1] = sun_p->mPos[0]; cXyz local_78; cXyz cStack_84; cXyz local_90; mDoLib_project(lenz_p->mPositions, &cStack_84); local_90.x = 304.0f; local_90.y = 224.0f; local_90.z = 0.0054931640625f; // Maybe 45 / 8192 dKyr_get_vectle_calc(&local_90, &cStack_84, &local_78); lenz_p->field_0x94 = cM_atan2s(local_78.x, local_78.y); lenz_p->field_0x94 *= 0.0054931640625f; lenz_p->field_0x94 += 180.0f; dKyr_get_vectle_calc(&iVar6->mLookat.mEye, &iVar6->mLookat.mCenter, &cStack_6c); for (int i = 2; i < 8; i++) { if (i == 2) { f32 fVar3 = local_60.abs(cStack_6c); f32 fVar4 = 250.0f + 600.0f * fVar3; lenz_p->mPositions[i].x = sun_p->mPos[0].x - local_60.x * fVar4 * i; lenz_p->mPositions[i].y = sun_p->mPos[0].y - local_60.y * fVar4 * i; lenz_p->mPositions[i].z = sun_p->mPos[0].z - local_60.z * fVar4 * i; } else { f32 fVar3 = local_60.abs(cStack_6c); f32 fVar4 = 250.0f + 110.0f * fVar3; lenz_p->mPositions[i].x = sun_p->mPos[0].x - (4100.0f * local_60.x + local_60.x * fVar4 * i); lenz_p->mPositions[i].y = sun_p->mPos[0].y - (4100.0f * local_60.y + local_60.y * fVar4 * i); lenz_p->mPositions[i].z = sun_p->mPos[0].z - (4100.0f * local_60.z + local_60.z * fVar4 * i); } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_lenzflare_move() { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_lenzflare_move__Fv.s" } #pragma pop #endif /* ############################################################################################## */ /* 80452208-8045220C 000808 0004+00 3/3 0/0 0/0 .sdata2 @4126 */ SECTION_SDATA2 static f32 lit_4126 = 285.0f; /* 8005BED8-8005BF08 056818 0030+00 1/1 0/0 0/0 .text dKyr_moon_arrival_check__Fv */ static int dKyr_moon_arrival_check() { int rv = 0; if (g_env_light.mDaytime > lit_4126 || g_env_light.mDaytime < 67.5f) { rv = 1; } return rv; } /* ############################################################################################## */ /* 8037A4C0-8037A4E8 006B20 0028+00 1/1 0/0 0/0 .rodata sun_chkpnt$4155 */ SECTION_RODATA static f32 const sun_chkpnt[5][2] = { {0.0f, 0.0f}, {-10.0f, -20.0f}, {10.0f, 20.0f}, {-20.0f, 10.0f}, {20.0f, -10.0f}, }; COMPILER_STRIP_GATE(0x8037A4C0, &sun_chkpnt); /* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8037A578 = "F_SP200"; SECTION_DEAD static char const* const stringBase_8037A580 = "D_MN09B"; #pragma pop /* 803A9BA0-803A9BAC 006CC0 000C+00 1/1 0/0 0/0 .data sun_color$4213 */ SECTION_DATA static GXColor sun_color[3] = { {255, 255, 253, 255}, {255, 255, 255, 255}, {255, 255, 253, 255}, }; /* 803A9BAC-803A9BB8 006CCC 000C+00 1/1 0/0 0/0 .data sun_color2$4214 */ SECTION_DATA static GXColor sun_color2[3] = { {255, 110, 43, 255}, {156, 121, 92, 255}, {255, 78, 0, 255}, }; /* 80450EE8-80450EEC 0003E8 0004+00 1/1 0/0 0/0 .sbss S_parcent_bak$4131 */ static f32 S_parcent_bak; /* 80450EEC-80450EF0 -00001 0004+00 2/2 0/0 0/0 .sbss None */ /* 80450EEC 0002+00 data_80450EEC None */ /* 80450EEE 0002+00 data_80450EEE S_rot_work1$7554 */ static s8 struct_80450EEC[4]; /* 80452210-80452214 000810 0004+00 4/4 0/0 0/0 .sdata2 @4353 */ SECTION_SDATA2 static f32 lit_4353 = 8000.0f; /* 80452214-80452218 000814 0004+00 26/26 0/0 0/0 .sdata2 @4354 */ SECTION_SDATA2 static f32 lit_4354 = 1.0f; /* 80452218-8045221C 000818 0004+00 1/1 0/0 0/0 .sdata2 @4355 */ SECTION_SDATA2 static f32 lit_4355 = 77.5f; /* 8045221C-80452220 00081C 0004+00 5/5 0/0 0/0 .sdata2 @4356 */ SECTION_SDATA2 static f32 lit_4356 = 0.05f; /* 80452220-80452224 000820 0004+00 14/14 0/0 0/0 .sdata2 @4357 */ SECTION_SDATA2 static f32 lit_4357 = 0.1f; /* 80452224-80452228 000824 0004+00 2/2 0/0 0/0 .sdata2 @4358 */ SECTION_SDATA2 static f32 lit_4358 = 0.00001f; /* 80452228-8045222C 000828 0004+00 2/2 0/0 0/0 .sdata2 @4359 */ SECTION_SDATA2 static f32 lit_4359 = 458.0f; /* 8045222C-80452230 00082C 0004+00 2/2 0/0 0/0 .sdata2 @4360 */ SECTION_SDATA2 static f32 lit_4360 = 608.0f; /* 80452230-80452234 000830 0004+00 3/3 0/0 0/0 .sdata2 @4361 */ SECTION_SDATA2 static f32 lit_4361 = 1000000000.0f; /* 80452234-80452238 000834 0004+00 1/1 0/0 0/0 .sdata2 @4362 */ SECTION_SDATA2 static f32 lit_4362 = 450.0f; /* 80452238-8045223C 000838 0004+00 10/10 0/0 0/0 .sdata2 @4363 */ SECTION_SDATA2 static f32 lit_4363 = 0.001f; /* 8045223C-80452240 00083C 0004+00 18/18 0/0 0/0 .sdata2 @4364 */ SECTION_SDATA2 static f32 lit_4364 = 0.5f; /* 80452240-80452244 000840 0004+00 13/13 0/0 0/0 .sdata2 @4365 */ SECTION_SDATA2 static f32 lit_4365 = 0.2f; /* 80452244-80452248 000844 0004+00 11/11 0/0 0/0 .sdata2 @4366 */ SECTION_SDATA2 static f32 lit_4366 = 0.3f; /* 80452248-8045224C 000848 0004+00 8/8 0/0 0/0 .sdata2 @4367 */ SECTION_SDATA2 static f32 lit_4367 = 0.8f; /* 8045224C-80452250 00084C 0004+00 12/12 0/0 0/0 .sdata2 @4368 */ SECTION_SDATA2 static f32 lit_4368 = 255.0f; /* 80452250-80452254 000850 0004+00 2/2 0/0 0/0 .sdata2 @4369 */ SECTION_SDATA2 static f32 lit_4369 = 90.0f; /* 80452254-80452258 000854 0004+00 3/3 0/0 0/0 .sdata2 @4370 */ SECTION_SDATA2 static f32 lit_4370 = 105.0f; /* 80452258-8045225C 000858 0004+00 1/1 0/0 0/0 .sdata2 @4371 */ SECTION_SDATA2 static f32 lit_4371 = 247.5f; /* 8045225C-80452260 00085C 0004+00 1/1 0/0 0/0 .sdata2 @4372 */ SECTION_SDATA2 static f32 lit_4372 = 270.0f; /* 80452260-80452264 000860 0004+00 1/1 0/0 0/0 .sdata2 @4373 */ SECTION_SDATA2 static f32 lit_4373 = -8000.0f; /* 80452264-80452268 000864 0004+00 2/2 0/0 0/0 .sdata2 @4374 */ SECTION_SDATA2 static f32 lit_4374 = 6.0f; /* 80452268-8045226C 000868 0004+00 1/1 0/0 0/0 .sdata2 @4375 */ SECTION_SDATA2 static f32 lit_4375 = 30160.0f; /* 8045226C-80452270 00086C 0004+00 1/1 0/0 0/0 .sdata2 @4376 */ SECTION_SDATA2 static f32 lit_4376 = 21678.0f; /* 80452270-80452278 000870 0008+00 9/9 0/0 0/0 .sdata2 @4379 */ SECTION_SDATA2 static f64 lit_4379 = 4503599627370496.0 /* cast u32 to float */; /* 8005BF08-8005CC5C 056848 0D54+00 0/0 1/1 0/0 .text dKyr_sun_move__Fv */ // matches with literals #ifdef NONMATCHING void dKyr_sun_move() { dKankyo_sun_Packet* sun_p = g_env_light.mpSunPacket; dKankyo_sunlenz_Packet* lenz_p = g_env_light.mpSunLenzPacket; camera_class* camera_p2 = dComIfGp_getCamera(0); camera_class* camera_p = dComIfGp_getCamera(0); cXyz sp54; f32 temp_f31; f32 var_f30 = 0.0f; static f32 S_parcent_bak = 0.0f; u8 var_r22 = 0; u8 var_r21 = 0; s32 var_r20 = 0; u32 st_type = dStage_stagInfo_GetSTType(dComIfGp_getStage()->getStagInfo()); if (g_env_light.mBaseLightInfluence.mColor.r == 0 && st_type != ST_ROOM) { dKyr_get_vectle_calc(&camera_p2->mLookat.mEye, &g_env_light.mBaseLightInfluence.mPosition, &sp54); } else { dKyr_get_vectle_calc(&camera_p2->mLookat.mEye, &g_env_light.mSunPos2, &sp54); } sun_p->mPos[0].x = camera_p2->mLookat.mEye.x + 8000.0f * sp54.x; sun_p->mPos[0].y = camera_p2->mLookat.mEye.y + 8000.0f * sp54.y; sun_p->mPos[0].z = camera_p2->mLookat.mEye.z + 8000.0f * sp54.z; f32 var_f1 = (sun_p->mPos[0].y - camera_p2->mLookat.mEye.y) / 8000.0f; if (var_f1 < 0.0f) { var_f1 = 0.0f; } if (var_f1 >= 1.0f) { var_f1 = 1.0f; } var_f1 = 1.0f - var_f1; var_f1 *= var_f1; temp_f31 = 1.0f - var_f1; if (dComIfGp_getStage()->getStagInfo() != NULL) { dStage_stagInfo_GetSTType(dComIfGp_getStage()->getStagInfo()); } if (sun_p->field_0x28) { sun_p->field_0x28--; } sun_p->field_0x29 = 0; if (g_env_light.mDaytime > 77.5f && g_env_light.mDaytime < 285.0f && dKy_rain_check() < 20 && strcmp(dComIfGp_getStartStageName(), "F_SP200") != 0 && strcmp(dComIfGp_getStartStageName(), "D_MN09B") != 0) { f32 var_f28 = 0.0f; cLib_addCalc(&sun_p->mSunAlpha, 1.0f, 1.0f / 20.0f, 1.0f / 10.0f, 0.00001f); if (camera_p != NULL) { var_f28 = camera_p->mCamera.TrimHeight(); } cXyz sp48; mDoLib_project(sun_p->mPos, &sp48); for (int i = 0; i < 5; i++) { cXyz sp3C = sp48; sp3C.x -= sun_chkpnt[i][0]; sp3C.y -= sun_chkpnt[i][1]; if (sp3C.x > 0.0f && sp3C.x < 608.0f && sp3C.y > var_f28 && sp3C.y < 458.0f - var_f28) { if (sun_p->field_0x44[i] >= 0xFFFFFF) { var_r22++; if (i == 0) { var_r21++; } } dComIfGd_peekZ(sp3C.x, sp3C.y, sun_p->field_0x44 + i); } else { sun_p->field_0x44[i] = 0; var_r20++; } } if (var_r20 != 0 && var_r22 != 0 && var_r21 != 0) { var_r21 = 1; var_r22 = 5; } if (var_r22 != 0) { if (sun_p->field_0x28 < 5) { sun_p->field_0x28 += 2; } sun_p->field_0x29 = 1; } lenz_p->field_0x84 = lenz_p->field_0x8c; lenz_p->field_0x88 = lenz_p->field_0x90; lenz_p->field_0x8c = 1000000000.0f; lenz_p->field_0x90 = 0.0f; cXyz sp30; sp30.x = 304.0f; sp30.y = 224.0f; sp30.z = 0.0f; lenz_p->mDistFalloff = sp30.abs(sp48); lenz_p->mDistFalloff /= 450.0f; if (lenz_p->mDistFalloff > 1.0f) { lenz_p->mDistFalloff = 1.0f; } lenz_p->mDistFalloff = 1.0f - lenz_p->mDistFalloff; var_f30 = lenz_p->mDistFalloff * lenz_p->mDistFalloff; lenz_p->mDistFalloff = 1.0f - var_f30; } else { cLib_addCalc(&sun_p->mSunAlpha, 0.0f, 0.1f, 0.05f, 0.001f); var_r22 = 0; sun_p->field_0x28 = 0; sun_p->field_0x29 = 0; } if (g_env_light.mColpatWeather != 0 || g_env_light.mSnowCount > 10) { var_r21 = 0; var_r22 = 0; } if (st_type == ST_ROOM) { var_r21 = 0; var_r22 = 0; } if (var_r21 != 0) { if (var_r22 == 4) { cLib_addCalc(&sun_p->mVisibility, 1.0f, 0.5f, 0.5f, 0.01f); } else { cLib_addCalc(&sun_p->mVisibility, 1.0f, 0.2f, 0.3f, 0.001f); } } else if (var_r22 < 1) { cLib_addCalc(&sun_p->mVisibility, 0.0f, 0.5f, 0.5f, 0.001f); } else { cLib_addCalc(&sun_p->mVisibility, 0.0f, 0.2f, 0.3f, 0.001f); } if (sun_p->mVisibility <= 0.0f) { g_env_light.mpSunLenzPacket->mDrawLenzInSky = 1; } else { g_env_light.mpSunLenzPacket->mDrawLenzInSky = 0; } if (sp54.y > 0.0f && g_env_light.mpSunLenzPacket->mDrawLenzInSky == 0) { if (dStage_stagInfo_GetArg0(dComIfGp_getStage()->getStagInfo()) != 0) { f32 var_f1_3; if (S_parcent_bak < var_f30) { var_f1_3 = var_f30 - S_parcent_bak; } else { var_f1_3 = S_parcent_bak - var_f30; } if (var_f1_3 < 0.3f) { dKy_set_actcol_ratio(1.0f - var_f30 * sun_p->mVisibility); dKy_set_bgcol_ratio(1.0f - var_f30 * sun_p->mVisibility); dKy_set_fogcol_ratio(1.0f - temp_f31 * (var_f30 * sun_p->mVisibility)); dKy_set_vrboxcol_ratio(1.0f - 0.8f * (temp_f31 * (var_f30 * sun_p->mVisibility))); } S_parcent_bak = var_f30; } } if (g_env_light.mDaytime < 255.0f && g_env_light.mColpatWeather == 0) { cLib_addCalc(&sun_p->field_0x6c, 1.0f, 0.1f, 0.01f, 0.0001f); } else { cLib_addCalc(&sun_p->field_0x6c, 0.0f, 0.5f, 0.1f, 0.001f); } if (g_env_light.mDaytime < 180.0f) { f32 var_f1_4; if (g_env_light.mDaytime < 90.0f) { var_f1_4 = 0.0f; } else if (g_env_light.mDaytime < 105.0f) { var_f1_4 = dKy_get_parcent(105.0f, 90.0f, g_env_light.mDaytime); } else { var_f1_4 = 1.0f; } sun_p->mColor.r = (f32)sun_color[0].r + var_f1_4 * ((f32)sun_color[1].r - (f32)sun_color[0].r); sun_p->mColor.g = (f32)sun_color[0].g + var_f1_4 * ((f32)sun_color[1].g - (f32)sun_color[0].g); sun_p->mColor.b = (f32)sun_color[0].b + var_f1_4 * ((f32)sun_color[1].b - (f32)sun_color[0].b); sun_p->field_0x74.r = (f32)sun_color2[0].r + var_f1_4 * ((f32)sun_color2[1].r - (f32)sun_color2[0].r); sun_p->field_0x74.g = (f32)sun_color2[0].g + var_f1_4 * ((f32)sun_color2[1].g - (f32)sun_color2[0].g); sun_p->field_0x74.b = (f32)sun_color2[0].b + var_f1_4 * ((f32)sun_color2[1].b - (f32)sun_color2[0].b); } else { f32 var_f1_5; if (g_env_light.mDaytime < 247.5f) { var_f1_5 = 1.0f; } else if (g_env_light.mDaytime < 270.0f) { var_f1_5 = 1.0f - dKy_get_parcent(270.0f, 247.5f, g_env_light.mDaytime); } else { var_f1_5 = 0.0f; } sun_p->mColor.r = (f32)sun_color[2].r + var_f1_5 * ((f32)sun_color[1].r - (f32)sun_color[2].r); sun_p->mColor.g = (f32)sun_color[2].g + var_f1_5 * ((f32)sun_color[1].g - (f32)sun_color[2].g); sun_p->mColor.b = (f32)sun_color[2].b + var_f1_5 * ((f32)sun_color[1].b - (f32)sun_color[2].b); sun_p->field_0x74.r = (f32)sun_color2[2].r + var_f1_5 * ((f32)sun_color2[1].r - (f32)sun_color2[2].r); sun_p->field_0x74.g = (f32)sun_color2[2].g + var_f1_5 * ((f32)sun_color2[1].g - (f32)sun_color2[2].g); sun_p->field_0x74.b = (f32)sun_color2[2].b + var_f1_5 * ((f32)sun_color2[1].b - (f32)sun_color2[2].b); } if (dKyr_moon_arrival_check()) { f32 var_f1_6 = (sun_p->mPos[0].y - camera_p2->mLookat.mEye.y) / -8000.0f; var_f1_6 *= var_f1_6; var_f1_6 *= 6.0f; if (var_f1_6 > 1.0f) { var_f1_6 = 1.0f; } cLib_addCalc(&sun_p->field_0x68, var_f1_6, 0.2f, 0.01f, 0.001f); } else { cLib_addCalc(&sun_p->field_0x68, 0.0f, 0.2f, 0.01f, 0.001f); } if (g_env_light.mCameraInWater == 0 && g_env_light.mDaytime > 255.0f && sun_p->mSunAlpha >= 0.2f) { cXyz sp24; dKyr_get_vectle_calc(&camera_p2->mLookat.mEye, &g_env_light.mSunPos2, &sp54); sp24.x = camera_p2->mLookat.mEye.x + 30160.0f * sp54.x; sp24.y = camera_p2->mLookat.mEye.y + 30160.0f * sp54.y; sp24.z = camera_p2->mLookat.mEye.z + 30160.0f * sp54.z; sp24.y -= 21678.0f; sun_p->field_0x58 = dComIfGp_particle_set(sun_p->field_0x58, 0x11C, &sp24, 0, 0); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_sun_move() { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_sun_move__Fv.s" } #pragma pop #endif /* ############################################################################################## */ /* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8037A588 = "Always"; #pragma pop /* 8005CC5C-8005CDA8 05759C 014C+00 0/0 1/1 0/0 .text dKyr_rain_init__Fv */ // Matches with literals #ifdef NONMATCHING void dKyr_rain_init() { camera_class* camera_p = g_dComIfG_gameInfo.play.mCameraInfo[0].mCamera; g_env_light.mpRainPacket->mpTex = (u8*)dComIfG_getObjectRes("Always", 0x4a); g_env_light.mpRainPacket->mpTex2 = (u8*)dComIfG_getObjectRes("Always", 0x57); g_env_light.mpRainPacket->mCamEyePos = camera_p->mLookat.mEye; g_env_light.mpRainPacket->mCamCenterPos = camera_p->mLookat.mCenter; g_env_light.mpRainPacket->mCenterDeltaMul = 0.0f; g_env_light.mpRainPacket->field_0x3700 = 0.0f; g_env_light.mpRainPacket->mSibukiAlpha = 0.0f; g_env_light.mpRainPacket->mOverheadFade = 0.0f; g_env_light.mpRainPacket->mFwdFade1 = 0.0f; g_env_light.mpRainPacket->mFwdFade2 = 0.0f; g_env_light.mpRainPacket->mStatus = 0.0f; g_env_light.mpRainPacket->mCenterDelta.x = 0.0f; g_env_light.mpRainPacket->mCenterDelta.y = 0.0f; g_env_light.mpRainPacket->mCenterDelta.z = 0.0f; for (int i = 0; i < 250; i++) { g_env_light.mpRainPacket->mRainEff[i].mStatus = 0; } g_env_light.mpRainPacket->mRainCount = 0; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_rain_init() { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_rain_init__Fv.s" } #pragma pop #endif /* 8005CDA8-8005CDD0 0576E8 0028+00 1/1 0/0 0/0 .text rain_bg_chk__FP19dKankyo_rain_Packeti */ static void rain_bg_chk(dKankyo_rain_Packet* i_packet, int i_idx) { i_packet->mRainEff[i_idx].field_0x30 = dComIfGp_getCamera(0)->mLookat.mCenter.y + -800.0f; } /* ############################################################################################## */ /* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8037A58F = "F_SP122"; #pragma pop /* 8045227C-80452280 00087C 0004+00 9/9 0/0 0/0 .sdata2 @4467 */ SECTION_SDATA2 static f32 lit_4467 = 50.0f; /* 80452280-80452284 000880 0004+00 4/4 0/0 0/0 .sdata2 @4468 */ SECTION_SDATA2 static f32 lit_4468 = 10000.0f; /* 8005CDD0-8005CF78 057710 01A8+00 1/1 0/0 0/0 .text overhead_bg_chk__Fv */ // matches with literals #ifdef NONMATCHING static bool overhead_bg_chk() { camera_class* camera = dComIfGp_getCamera(0); bool chk = false; dBgS_ObjGndChk_All gndchk; dBgS_RoofChk roofchk; cXyz chkPos = camera->mLookat.mEye; chkPos.y += 50.0f; roofchk.i_SetPos(chkPos); if (dComIfG_Bgsp().RoofChk(&roofchk) != lit_4361) { chk = true; // Outside East Castle Town if (!strcmp(dComIfGp_getStartStageName(), "F_SP122") && dStage_roomControl_c::getStayNo() == 17) { return false; } } chkPos.y += 10000.0f; gndchk.SetPos(&chkPos); if (dComIfG_Bgsp().GroundCross(&gndchk) > camera->mLookat.mEye.y + 50.0f) { chk = true; } return chk; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm BOOL overhead_bg_chk() { nofralloc #include "asm/d/kankyo/d_kankyo_rain/overhead_bg_chk__Fv.s" } #pragma pop #endif /* 8005CF78-8005D18C 0578B8 0214+00 1/1 0/0 0/0 .text forward_overhead_bg_chk__FP4cXyzf */ // Matches with literals #ifdef NONMATCHING static int forward_overhead_bg_chk(cXyz* param_0, f32 param_1) { camera_class* camera_p = dComIfGp_getCamera(0); u32 chk = 0; dBgS_ObjGndChk_All gncChk; dBgS_RoofChk roofChk; cXyz chk_pos; cXyz vectle; dKyr_get_vectle_calc(&camera_p->mLookat.mEye, &camera_p->mLookat.mCenter, &vectle); chk_pos.x = camera_p->mLookat.mEye.x + vectle.x * param_1; chk_pos.y = camera_p->mLookat.mEye.y + vectle.y * param_1; chk_pos.z = camera_p->mLookat.mEye.z + vectle.z * param_1; chk_pos.y = 50.0f + camera_p->mLookat.mEye.y; *param_0 = chk_pos; roofChk.i_SetPos(chk_pos); if (1000000000.0f != dComIfG_Bgsp().RoofChk(&roofChk)) { chk = 1; if (strcmp(dComIfGp_getStartStageName(), "F_SP122") == 0) { if (dStage_roomControl_c::getStayNo() == 17) { return 0; } } } chk_pos.y += 10000.0f; gncChk.SetPos(&chk_pos); if (dComIfG_Bgsp().GroundCross(&gncChk) > 50.0f + camera_p->mLookat.mEye.y) { chk = 1; } return chk; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm BOOL forward_overhead_bg_chk(cXyz* param_0, f32 param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/forward_overhead_bg_chk__FP4cXyzf.s" } #pragma pop #endif /* ############################################################################################## */ /* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8037A597 = "R_SP30"; SECTION_DEAD static char const* const stringBase_8037A59E = "R_SP107"; SECTION_DEAD static char const* const stringBase_8037A5A6 = "R_SP127"; SECTION_DEAD static char const* const stringBase_8037A5AE = "F_SP113"; SECTION_DEAD static char const* const stringBase_8037A5B6 = "D_MN09"; #pragma pop /* 80452284-80452288 000884 0004+00 1/1 0/0 0/0 .sdata2 @5096 */ SECTION_SDATA2 static f32 lit_5096 = -2.5f; /* 80452288-8045228C 000888 0004+00 6/6 0/0 0/0 .sdata2 @5097 */ SECTION_SDATA2 static f32 lit_5097 = 10.0f; /* 8045228C-80452290 00088C 0004+00 8/8 0/0 0/0 .sdata2 @5098 */ SECTION_SDATA2 static f32 lit_5098 = 20.0f; /* 80452290-80452294 000890 0004+00 6/6 0/0 0/0 .sdata2 @5099 */ SECTION_SDATA2 static f32 lit_5099 = 15.0f; /* 80452294-80452298 000894 0004+00 5/5 0/0 0/0 .sdata2 @5100 */ SECTION_SDATA2 static f32 lit_5100 = 700.0f; /* 80452298-8045229C 000898 0004+00 2/2 0/0 0/0 .sdata2 @5101 */ SECTION_SDATA2 static f32 lit_5101 = 1400.0f; /* 8045229C-804522A0 00089C 0004+00 5/5 0/0 0/0 .sdata2 @5102 */ SECTION_SDATA2 static f32 lit_5102 = 1200.0f; /* 804522A0-804522A4 0008A0 0004+00 1/1 0/0 0/0 .sdata2 @5103 */ SECTION_SDATA2 static f32 lit_5103 = 35.5f; /* 804522A4-804522A8 0008A4 0004+00 4/4 0/0 0/0 .sdata2 @5104 */ SECTION_SDATA2 static f32 lit_5104 = 800.0f; /* 804522A8-804522AC 0008A8 0004+00 5/5 0/0 0/0 .sdata2 @5105 */ SECTION_SDATA2 static f32 lit_5105 = 360.0f; /* 804522AC-804522B0 0008AC 0004+00 4/4 0/0 0/0 .sdata2 @5106 */ SECTION_SDATA2 static f32 lit_5106 = 2.0f / 25.0f; /* 804522B0-804522B4 0008B0 0004+00 2/2 0/0 0/0 .sdata2 @5107 */ SECTION_SDATA2 static f32 lit_5107 = -2.0f; /* 804522B4-804522B8 0008B4 0004+00 2/2 0/0 0/0 .sdata2 @5108 */ SECTION_SDATA2 static f32 lit_5108 = 850.0f; /* 804522B8-804522BC 0008B8 0004+00 8/8 0/0 0/0 .sdata2 @5109 */ SECTION_SDATA2 static f32 lit_5109 = 40.0f; /* 804522BC-804522C0 0008BC 0004+00 2/2 0/0 0/0 .sdata2 @5110 */ SECTION_SDATA2 static f32 lit_5110 = 550.0f; /* 804522C0-804522C4 0008C0 0004+00 1/1 0/0 0/0 .sdata2 @5111 */ SECTION_SDATA2 static f32 lit_5111 = -2680.0f; /* 804522C4-804522C8 0008C4 0004+00 1/1 0/0 0/0 .sdata2 @5112 */ SECTION_SDATA2 static f32 lit_5112 = 2200.0f; /* 804522C8-804522CC 0008C8 0004+00 2/2 0/0 0/0 .sdata2 @5113 */ SECTION_SDATA2 static f32 lit_5113 = 1600.0f; /* 804522CC-804522D0 0008CC 0004+00 1/1 0/0 0/0 .sdata2 @5114 */ SECTION_SDATA2 static f32 lit_5114 = 27453.0f; /* 804522D0-804522D4 0008D0 0004+00 1/1 0/0 0/0 .sdata2 @5115 */ SECTION_SDATA2 static f32 lit_5115 = 8528.0f; /* 804522D4-804522D8 0008D4 0004+00 1/1 0/0 0/0 .sdata2 @5116 */ SECTION_SDATA2 static f32 lit_5116 = 1300.0f; /* 804522D8-804522DC 0008D8 0004+00 2/2 0/0 0/0 .sdata2 @5117 */ SECTION_SDATA2 static f32 lit_5117 = 1100.0f; /* 804522DC-804522E0 0008DC 0004+00 5/5 0/0 0/0 .sdata2 @5118 */ SECTION_SDATA2 static f32 lit_5118 = 80.0f; /* 804522E0-804522E4 0008E0 0004+00 6/6 0/0 0/0 .sdata2 @5119 */ SECTION_SDATA2 static f32 lit_5119 = 500.0f; /* 804522E4-804522E8 0008E4 0004+00 1/1 0/0 0/0 .sdata2 @5120 */ SECTION_SDATA2 static f32 lit_5120 = -228.0f; /* 804522E8-804522EC 0008E8 0004+00 1/1 0/0 0/0 .sdata2 @5121 */ SECTION_SDATA2 static f32 lit_5121 = 795.0f; /* 804522EC-804522F0 0008EC 0004+00 4/4 0/0 0/0 .sdata2 @5122 */ SECTION_SDATA2 static f32 lit_5122 = 1500.0f; /* 804522F0-804522F4 0008F0 0004+00 2/2 0/0 0/0 .sdata2 @5123 */ SECTION_SDATA2 static f32 lit_5123 = 5100.0f; /* 804522F4-804522F8 0008F4 0004+00 2/2 0/0 0/0 .sdata2 @5124 */ SECTION_SDATA2 static f32 lit_5124 = -3250.0f; /* 804522F8-804522FC 0008F8 0004+00 3/3 0/0 0/0 .sdata2 @5125 */ SECTION_SDATA2 static f32 lit_5125 = -50.0f; /* 804522FC-80452300 0008FC 0004+00 2/2 0/0 0/0 .sdata2 @5126 */ SECTION_SDATA2 static f32 lit_5126 = -2700.0f; /* 80452300-80452304 000900 0004+00 2/2 0/0 0/0 .sdata2 @5127 */ SECTION_SDATA2 static f32 lit_5127 = 15750.0f; /* 80452304-80452308 000904 0004+00 1/1 0/0 0/0 .sdata2 @5128 */ SECTION_SDATA2 static f32 lit_5128 = -3680.0f; /* 80452308-8045230C 000908 0004+00 1/1 0/0 0/0 .sdata2 @5129 */ SECTION_SDATA2 static f32 lit_5129 = -11975.0f; /* 8045230C-80452310 00090C 0004+00 1/1 0/0 0/0 .sdata2 @5130 */ SECTION_SDATA2 static f32 lit_5130 = -10530.0f; /* 80452310-80452314 000910 0004+00 1/1 0/0 0/0 .sdata2 @5131 */ SECTION_SDATA2 static f32 lit_5131 = 3350.0f; /* 80452314-80452318 000914 0004+00 1/1 0/0 0/0 .sdata2 @5132 */ SECTION_SDATA2 static f32 lit_5132 = -13027.0f; /* 80452318-8045231C 000918 0004+00 1/1 0/0 0/0 .sdata2 @5133 */ SECTION_SDATA2 static f32 lit_5133 = -11430.0f; /* 8045231C-80452320 00091C 0004+00 1/1 0/0 0/0 .sdata2 @5134 */ SECTION_SDATA2 static f32 lit_5134 = 36900.0f; /* 8005D18C-8005E8B0 057ACC 1724+00 0/0 1/1 0/0 .text dKyr_rain_move__Fv */ // reg alloc, equivalent? #ifdef NONMATCHING void dKyr_rain_move() { camera_class* camera_p; dKankyo_rain_Packet* rain_p = g_env_light.mpRainPacket; camera_p = (camera_class*)dComIfGp_getCamera(0); fopAc_ac_c* player_p = dComIfGp_getPlayer(0); cXyz spE0; cXyz spD4; cXyz spC8 = dKyw_get_wind_vecpow(); cXyz spBC; cXyz spB0; BOOL var_r20; BOOL var_r21; BOOL var_r22; BOOL var_r23; BOOL var_r24; var_r21 = 0; var_r20 = 0; dStage_stagInfo_GetSTType(dComIfGp_getStage()->getStagInfo()); cXyz spA4; cXyz sp98; cXyz sp8C; spA4.x = 0.0f; spA4.y = -2.5f; spA4.z = 0.0f; if (rain_p->mRainCount <= g_env_light.mRainCount) { rain_p->mRainCount = g_env_light.mRainCount; } if (rain_p->mRainCount != 0) { dKyr_get_vectle_calc(&camera_p->mLookat.mCenter, &rain_p->mCamCenterPos, &spB0); f32 var_f1 = rain_p->mCamEyePos.abs(camera_p->mLookat.mEye); f32 var_f30; if (var_f1 > 10.0f) { var_f30 = (var_f1 - 10.0f) / 50.0f; if (var_f30 > 1.0f) { var_f30 = 1.0f; } } else { var_f30 = 0.0f; } rain_p->mCamEyePos.x = camera_p->mLookat.mEye.x; rain_p->mCamEyePos.z = camera_p->mLookat.mEye.z; f32 var_f1_2 = rain_p->mCamEyePos.abs(camera_p->mLookat.mEye); f32 var_f2 = var_f1_2 / 20.0f; if (var_f2 > 1.0f) { var_f2 = 1.0f; } spA4.y -= var_f2 * 15.0f; rain_p->mCamEyePos = camera_p->mLookat.mEye; f32 var_f1_3 = rain_p->mCamCenterPos.abs(camera_p->mLookat.mCenter); f32 var_f1_4; if (var_f1_3 > 10.0f) { var_f1_4 = (var_f1_3 - 10.0f) / 50.0f; if (var_f1_4 > 1.0f) { var_f1_4 = 1.0f; } } else { var_f1_4 = 0.0f; } cLib_addCalc(&rain_p->mCenterDeltaMul, var_f30 * var_f1_4, 0.2f, 0.1f, 0.01f); if (rain_p->mCenterDeltaMul > 0.3f) { rain_p->mCenterDeltaMul = 0.3f; } cLib_addCalc(&rain_p->mCenterDelta.x, spB0.x, 0.2f, 0.1f, 0.01f); cLib_addCalc(&rain_p->mCenterDelta.y, spB0.y, 0.2f, 0.1f, 0.01f); cLib_addCalc(&rain_p->mCenterDelta.z, spB0.z, 0.2f, 0.1f, 0.01f); rain_p->mCamCenterPos = camera_p->mLookat.mCenter; dKy_set_eyevect_calc2(camera_p, &spE0, 700.0f, 600.0f); spD4.z = 0.0f; spD4.y = 0.0f; spD4.x = 0.0f; dKyw_get_wind_vec(); dKyw_get_wind_pow(); rain_p->field_0x36cc = 0; rain_p->field_0x36c8 = 0; rain_p->mStatus = 0; var_r22 = 0; var_r23 = 0; var_r24 = 0; f32 var_f29; if (strcmp(dComIfGp_getStartStageName(), "R_SP30") == 0) { if (dComIfGp_roomControl_getStayNo() == 0 || dComIfGp_roomControl_getStayNo() == 4) { var_r20 = 1; } } else if (strcmp(dComIfGp_getStartStageName(), "R_SP107") == 0 && dComIfGp_roomControl_getStayNo() == 1) { var_r20 = 2; } else if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) { var_r20 = 3; } if (var_r20 == 0) { var_r24 = overhead_bg_chk(); var_r23 = forward_overhead_bg_chk(&sp98, 700.0f); var_r22 = forward_overhead_bg_chk(&sp8C, 1400.0f); if (var_r24) { rain_p->mStatus |= 1; } else if (var_r23) { rain_p->mStatus |= 2; } } else { var_r21 = 1; rain_p->mStatus |= 1; var_f29 = 1200.0f; } if (var_r24) { cLib_addCalc(&rain_p->mOverheadFade, 1.0f, 0.1f, 0.1f, 0.001f); } else { cLib_addCalc(&rain_p->mOverheadFade, 0.0f, 0.5f, 0.2f, 0.01f); } if (var_r23) { cLib_addCalc(&rain_p->mFwdFade1, 1.0f, 0.1f, 0.1f, 0.001f); } else { cLib_addCalc(&rain_p->mFwdFade1, 0.0f, 0.5f, 0.2f, 0.01f); } if (var_r22) { cLib_addCalc(&rain_p->mFwdFade2, 1.0f, 0.1f, 0.1f, 0.001f); } else { cLib_addCalc(&rain_p->mFwdFade2, 0.0f, 0.5f, 0.2f, 0.01f); } f32 temp_f30 = 1.0f; for (int i = rain_p->mRainCount - 1; i >= 0; i--) { rain_p->mRainEff[i].mBasePos.y = spE0.y; RAIN_EFF* effect_p = &rain_p->mRainEff[i]; switch (rain_p->mRainEff[i].mStatus) { case 0: effect_p->field_0x24 = -(cM_rndF(10.0f) + 35.5f); effect_p->mTimer = 0; effect_p->mBasePos = spE0; effect_p->mPosition.x = cM_rndFX(800.0f); effect_p->mPosition.y = cM_rndF(600.0f); effect_p->mPosition.z = cM_rndFX(800.0f); effect_p->mAlpha = 1.0f; effect_p->field_0x1c = cM_rndF(360.0f); effect_p->field_0x20 = cM_rndF(360.0f); rain_bg_chk(rain_p, i); effect_p->mStatus++; break; case 1: case 2: case 3: f32 target = cM_rndFX(0.1f); f32* temp_r27 = &effect_p->field_0x24; target = effect_p->field_0x24 - target; cLib_addCalc(temp_r27, target, 0.5f, 0.1f, 0.01f); effect_p->mPosition.x += 20.0f * ((spC8.x + (10.0f * (rain_p->mCenterDelta.x * rain_p->mCenterDeltaMul))) + (spA4.x + (0.08f * (f32)(i & 7)))); effect_p->mPosition.y += ((f32)(i & 7) * -2.0f) + (20.0f * (spA4.y + (spC8.y + ((rain_p->mCenterDelta.y * rain_p->mCenterDeltaMul) * 10.0f)))); effect_p->mPosition.z += 20.0f * ((spC8.z + (10.0f * (rain_p->mCenterDelta.z * rain_p->mCenterDeltaMul))) + (spA4.z + (0.08f * (f32)(i & 3)))); spBC.x = effect_p->mBasePos.x + effect_p->mPosition.x; spBC.y = spE0.y; spBC.z = effect_p->mBasePos.z + effect_p->mPosition.z; f32 var_f1_5 = spBC.abs(spE0); if (effect_p->mTimer == 0) { if (var_f1_5 > 800.0f) { effect_p->mTimer = 10; *temp_r27 = -(cM_rndF(10.0f) + 35.5f); effect_p->mBasePos = spE0; f32 var_f1_6 = spBC.abs(spE0); if (var_f1_6 > 850.0f) { effect_p->mPosition.x = cM_rndFX(800.0f); effect_p->mPosition.y = cM_rndFX(800.0f); effect_p->mPosition.z = cM_rndFX(800.0f); } else { f32 temp_f31 = cM_rndFX(40.0f); get_vectle_calc(&spBC, &spE0, &spB0); effect_p->mPosition.x = spB0.x * (temp_f31 + 800.0f); effect_p->mPosition.y = spB0.y * (temp_f31 + 800.0f); effect_p->mPosition.z = spB0.z * (temp_f31 + 800.0f); } effect_p->mStatus = 1; rain_bg_chk(rain_p, i); } spBC.y = effect_p->mBasePos.y + effect_p->mPosition.y; if (spBC.y < effect_p->field_0x30 + 20.0f) { effect_p->mBasePos = spE0; effect_p->mPosition.x = cM_rndFX(800.0f); effect_p->mPosition.y = 200.0f; effect_p->mPosition.z = cM_rndFX(800.0f); rain_bg_chk(rain_p, i); effect_p->mTimer = 10; } } else { effect_p->mTimer--; } break; } spBC.x = effect_p->mBasePos.x + effect_p->mPosition.x; spBC.y = effect_p->mBasePos.y + effect_p->mPosition.y; spBC.z = effect_p->mBasePos.z + effect_p->mPosition.z; if (i > g_env_light.mRainCount - 1) { if (i == rain_p->mRainCount - 1) { rain_p->mRainCount--; } } f32 var_f31 = 1.0f; if (var_r24 || rain_p->mOverheadFade < 1.0f) { cXyz sp80; sp80 = spBC; sp80.y = camera_p->mLookat.mEye.y; if (camera_p->mLookat.mEye.abs(sp80) < 800.0f) { var_f31 *= rain_p->mOverheadFade * 1.0f; } } if (var_r23 || rain_p->mFwdFade1 < 1.0f) { cXyz sp74; sp74 = spBC; sp74.y = sp98.y; if (sp98.abs(sp74) < 550.0f) { var_f31 *= rain_p->mFwdFade1; } } if (var_r22 || rain_p->mFwdFade2 < 1.0f) { cXyz sp68; sp68 = spBC; sp68.y = sp8C.y; if (sp8C.abs(sp68) < 550.0f) { var_f31 *= rain_p->mFwdFade2; } } if (var_r21) { cXyz sp5C; if (strcmp(dComIfGp_getStartStageName(), "R_SP30") == 0) { if (dComIfGp_roomControl_getStayNo() == 0) { if (spBC.x > -2680.0f && spBC.z < 2200.0f) { var_f31 = 0.0f; } } else if (dComIfGp_roomControl_getStayNo() == 4 && spBC.z > 1600.0f) { var_f31 = 0.0f; } } else if (var_r20 == 2) { cXyz sp50; sp50.x = 27453.0f; sp50.y = spBC.y; sp50.z = 8528.0f; if (spBC.y < 1300.0f || player_p->current.pos.y < 1100.0f) { if (spBC.abs(sp50) > 80.0f) { var_f31 = 0.0f; } } else { if (spBC.abs(sp50) > 500.0f) { var_f31 = 0.0f; } } } else if (var_r20 == 3) { cXyz sp44; sp44.x = -228.0f; sp44.y = spBC.y; sp44.z = 795.0f; if (spBC.abs(sp44) < 1500.0f) { var_f31 = 0.0f; } if (camera_p->mLookat.mEye.y < 0.0f) { var_f31 = 0.0f; } } else { sp5C = spBC; sp5C.y = 0.0f; if (sp5C.abs() < var_f29) { var_f31 = 0.0f; } } } else if (strcmp(dComIfGp_getStartStageName(), "F_SP113") == 0 && dComIfGp_roomControl_getStayNo() == 1) { if (spBC.z < 5100.0f || (spBC.x < -3250.0f && spBC.y < -50.0f) || (spBC.x < -2700.0f && spBC.z > 15750.0f)) { var_f31 = 0.0f; rain_p->mStatus |= 1; } } else if (strcmp(dComIfGp_getStartStageName(), "D_MN09") == 0 && dComIfGp_roomControl_getStayNo() == 9) { if (spBC.x < -3680.0f && spBC.z > -11975.0f && spBC.z < -10530.0f) { var_f31 = 0.0f; rain_p->mStatus |= 1; } else if (spBC.x > 3350.0f && spBC.z > -13027.0f && spBC.z < -11430.0f) { var_f31 = 0.0f; rain_p->mStatus |= 1; } } else if (strcmp(dComIfGp_getStartStageName(), "R_SP107") == 0 && dComIfGp_roomControl_getStayNo() == 2 && spBC.z > 36900.0f) { var_f31 = 0.0f; rain_p->mStatus |= 1; } effect_p->mAlpha = var_f31 * (temp_f30 + cM_rndFX(0.5f)); } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_rain_move() { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_rain_move__Fv.s" } #pragma pop #endif /* 8005E8B0-8005E8F8 0591F0 0048+00 1/1 0/0 0/0 .text d_krain_cut_turn_check__Fv */ static bool d_krain_cut_turn_check() { daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); return player != NULL && (player->getCutType() == daPy_py_c::CUT_TYPE_TURN_RIGHT || player->getCutType() == daPy_py_c::CUT_TYPE_TURN_LEFT || player->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_LEFT || player->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_RIGHT); } /* ############################################################################################## */ /* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8037A5BD = "D_MN08"; #pragma pop /* 80452320-80452324 000920 0004+00 1/1 0/0 0/0 .sdata2 @5716 */ SECTION_SDATA2 static f32 lit_5716 = -100000000.0f; /* 80452324-80452328 000924 0004+00 2/2 0/0 0/0 .sdata2 @5717 */ SECTION_SDATA2 static f32 lit_5717 = 100000.0f; /* 80452328-8045232C 000928 0004+00 1/1 0/0 0/0 .sdata2 @5718 */ SECTION_SDATA2 static f32 lit_5718 = 14.0f / 5.0f; /* 8045232C-80452330 00092C 0004+00 1/1 0/0 0/0 .sdata2 @5719 */ SECTION_SDATA2 static f32 lit_5719 = -11.0f / 20.0f; /* 80452330-80452334 000930 0004+00 9/9 0/0 0/0 .sdata2 @5720 */ SECTION_SDATA2 static f32 lit_5720 = 2.0f / 5.0f; /* 80452334-80452338 000934 0004+00 6/6 0/0 0/0 .sdata2 @5721 */ SECTION_SDATA2 static f32 lit_5721 = 1.5f; /* 80452338-8045233C 000938 0004+00 4/4 0/0 0/0 .sdata2 @5722 */ SECTION_SDATA2 static f32 lit_5722 = 65536.0f; /* 8045233C-80452340 00093C 0004+00 5/5 0/0 0/0 .sdata2 @5723 */ SECTION_SDATA2 static f32 lit_5723 = 1000.0f; /* 80452340-80452344 000940 0004+00 1/1 0/0 0/0 .sdata2 @5724 */ SECTION_SDATA2 static f32 lit_5724 = -100149.8984375f; /* 80452344-80452348 000944 0004+00 1/1 0/0 0/0 .sdata2 @5725 */ SECTION_SDATA2 static f32 lit_5725 = -99999.8984375f; /* 80452348-8045234C 000948 0004+00 2/2 0/0 0/0 .sdata2 @5726 */ SECTION_SDATA2 static f32 lit_5726 = 2.5f; /* 8045234C-80452350 00094C 0004+00 7/7 0/0 0/0 .sdata2 @5727 */ SECTION_SDATA2 static f32 lit_5727 = 0.25f; /* 80452350-80452354 000950 0004+00 6/6 0/0 0/0 .sdata2 @5728 */ SECTION_SDATA2 static f32 lit_5728 = 5.0f; /* 80452354-80452358 000954 0004+00 7/7 0/0 0/0 .sdata2 @5729 */ SECTION_SDATA2 static f32 lit_5729 = 3.0f / 5.0f; /* 80452358-8045235C 000958 0004+00 2/2 0/0 0/0 .sdata2 @5730 */ SECTION_SDATA2 static f32 lit_5730 = 3.0f; /* 8045235C-80452360 00095C 0004+00 1/1 0/0 0/0 .sdata2 @5731 */ SECTION_SDATA2 static f32 lit_5731 = 4.5f; /* 80452360-80452364 000960 0004+00 2/2 0/0 0/0 .sdata2 @5732 */ SECTION_SDATA2 static f32 lit_5732 = 0.75f; /* 80452364-80452368 000964 0004+00 2/2 0/0 0/0 .sdata2 @5733 */ SECTION_SDATA2 static f32 lit_5733 = 3.0f / 100.0f; /* 80452368-8045236C 000968 0004+00 2/2 0/0 0/0 .sdata2 @5734 */ SECTION_SDATA2 static f32 lit_5734 = 1.0f / 50.0f; /* 8045236C-80452370 00096C 0004+00 5/5 0/0 0/0 .sdata2 @5735 */ SECTION_SDATA2 static f32 lit_5735 = 300.0f; /* 80452370-80452374 000970 0004+00 1/1 0/0 0/0 .sdata2 @5736 */ SECTION_SDATA2 static f32 lit_5736 = 5600.0f; /* 80452374-80452378 000974 0004+00 3/3 0/0 0/0 .sdata2 @5737 */ SECTION_SDATA2 static f32 lit_5737 = 130.0f; /* 80452378-8045237C 000978 0004+00 7/7 0/0 0/0 .sdata2 @5738 */ SECTION_SDATA2 static f32 lit_5738 = 2.0f; /* 8045237C-80452380 00097C 0004+00 4/4 0/0 0/0 .sdata2 @5739 */ SECTION_SDATA2 static f32 lit_5739 = 400.0f; /* 80452380-80452384 000980 0004+00 3/3 0/0 0/0 .sdata2 @5740 */ SECTION_SDATA2 static f32 lit_5740 = 30.0f; /* 80452384-80452388 000984 0004+00 3/3 0/0 0/0 .sdata2 @5741 */ SECTION_SDATA2 static f32 lit_5741 = 9.0f; /* 80452388-8045238C 000988 0004+00 1/1 0/0 0/0 .sdata2 @5742 */ SECTION_SDATA2 static f32 lit_5742 = -99979.8984375f; /* 8045238C-80452390 00098C 0004+00 1/1 0/0 0/0 .sdata2 @5743 */ SECTION_SDATA2 static f32 lit_5743 = 1050.0f; /* 80452390-80452394 000990 0004+00 1/1 0/0 0/0 .sdata2 @5744 */ SECTION_SDATA2 static f32 lit_5744 = 3200.0f; /* 80452394-80452398 000994 0004+00 1/1 0/0 0/0 .sdata2 @5745 */ SECTION_SDATA2 static f32 lit_5745 = 1700.0f; /* 80452398-8045239C 000998 0004+00 1/1 0/0 0/0 .sdata2 @5746 */ SECTION_SDATA2 static f32 lit_5746 = 2800.0f; /* 8045239C-804523A0 00099C 0004+00 1/1 0/0 0/0 .sdata2 @5747 */ SECTION_SDATA2 static f32 lit_5747 = 825.0f; /* 804523A0-804523A4 0009A0 0004+00 3/3 0/0 0/0 .sdata2 @5748 */ SECTION_SDATA2 static f32 lit_5748 = 2000.0f; /* 8005E8F8-8005FBDC 059238 12E4+00 0/0 1/1 0/0 .text dKyr_housi_move__Fv */ // matches with literals #ifdef NONMATCHING void dKyr_housi_move() { dKankyo_housi_Packet* housi_p = g_env_light.mpHousiPacket; HOUSI_EFF* effect_p; camera_class* camera_p = (camera_class*)dComIfGp_getCamera(0); fopAc_ac_c* player_p = dComIfGp_getPlayer(0); cXyz sp84; cXyz sp78 = dKyw_get_wind_vecpow(); cXyz sp6C; cXyz sp60; dBgS_GndChk sp138; bool var_r27 = 0; f32 var_f31 = 1.0f; dBgS_CamGndChk_Wtr spE4; f32 var_f30 = -100000000.0f; bool var_r24 = 0; cXyz sp54; if (strcmp(dComIfGp_getStartStageName(), "D_MN08") == 0) { var_r24 = 1; } if (g_env_light.field_0xea9 == 2) { sp54 = camera_p->mLookat.mEye; sp54.y += 100000.0f; spE4.SetPos(&sp54); var_f30 = dComIfG_Bgsp().GroundCross(&spE4); } if (dKy_darkworld_check() == true || var_r24 == 1) { sp78.x = 0.0f; sp78.y = 2.8f; sp78.z = 0.0f; } if (g_env_light.field_0xea9 == 1) { sp78.x = 0.0f; sp78.y = -0.55f; sp78.z = 0.0f; } if (g_env_light.mHousiCount != 0 || (g_env_light.mHousiCount == 0 && housi_p->field_0x5de8 <= 0.0f)) { housi_p->field_0x5dec = g_env_light.mHousiCount; } if (g_env_light.mHousiCount != 0) { cLib_addCalc(&housi_p->field_0x5de8, 1.0f, 0.2f, 0.05f, 0.01f); } else { cLib_addCalc(&housi_p->field_0x5de8, 0.0f, 0.2f, 0.05f, 0.01f); } if (housi_p->field_0x5dec == 0) { return; } dKy_set_eyevect_calc2(camera_p, &sp84, 800.0f, 800.0f); if (sp84.abs(housi_p->field_0x10) > 500.0f) { var_r27 = 1; } housi_p->field_0x10 = sp84; dKyw_get_wind_pow(); if (g_env_light.field_0xea9 == 1) { var_f31 = 0.0f; if (g_env_light.mCameraInWater) { dBgS_CamGndChk_Wtr sp90; cXyz sp48; camera_class* cam_p = dComIfGp_getCamera(0); sp48 = cam_p->mLookat.mEye; sp48.y += 100000.0f; sp90.SetPos(&sp48); f32 gnd_cross = dComIfG_Bgsp().GroundCross(&sp90); if (gnd_cross > cam_p->mLookat.mEye.y) { var_f31 = (gnd_cross - cam_p->mLookat.mEye.y) / 700.0f; if (var_f31 < 0.0f) { var_f31 = 0.0f; } if (var_f31 > 1.0f) { var_f31 = 1.0f; } } } } for (int i = housi_p->field_0x5dec - 1; i >= 0; i--) { f32 var_f26 = 0.4f * housi_p->field_0x5de8; effect_p = &housi_p->mHousiEff[i]; switch (housi_p->mHousiEff[i].mStatus) { case 0: if (g_env_light.field_0xea9 == 1) { effect_p->field_0x34 = cM_rndF(0.5f) + 0.1f; } else { effect_p->field_0x34 = cM_rndF(1.5f) + 0.2f; } effect_p->field_0x3c = 0; effect_p->field_0x4c = cM_rndFX(65535.0f); effect_p->mBasePos.x = sp84.x; effect_p->mBasePos.y = sp84.y; effect_p->mBasePos.z = sp84.z; effect_p->mPosition.x = cM_rndFX(1000.0f); effect_p->mPosition.y = cM_rndFX(1000.0f); effect_p->mPosition.z = cM_rndFX(1000.0f); effect_p->mAlpha = 0.0f; effect_p->field_0x48 = 0.0f; effect_p->mScale.x = cM_rndF(360.0f); effect_p->mScale.y = cM_rndF(360.0f); effect_p->mScale.z = cM_rndF(360.0f); effect_p->mSpeed.x = 0.0f; effect_p->mSpeed.y = 0.0f; effect_p->mSpeed.z = 0.0f; if (effect_p->mBasePos.y + effect_p->mPosition.y < -100149.9f) { effect_p->mPosition.y = (-99999.9f - effect_p->mBasePos.y) + 10.0f; } effect_p->field_0x38 = 0.0f; effect_p->field_0x44 = 0.0f; effect_p->mStatus++; break; case 1: case 2: case 3: case 4: f32 var_f24 = 2.5f; if (effect_p->mStatus != 4) { f32 var_f23 = effect_p->field_0x34; if (effect_p->mStatus == 2) { var_f23 *= 0.25f; } f32 temp_f0_5 = cM_fsin(effect_p->mScale.x); if (g_env_light.field_0xea9 == 2) { var_f24 = 5.0f; } if (effect_p->mStatus != 3) { effect_p->mPosition.y += var_f23 * (sp78.y * var_f24); effect_p->mPosition.x += var_f23 * (sp78.x * var_f24); effect_p->mPosition.y -= var_f23 * 0.6f; if (g_env_light.field_0xea9 == 2) { if (g_env_light.mPondSeason == 3) { effect_p->mPosition.y -= var_f23 * 3.0f; } else { effect_p->mPosition.y -= var_f23 * 1.5f; } } effect_p->mPosition.z += var_f23 * (sp78.z * var_f24); } else { var_f23 *= 4.5f; effect_p->mPosition.x += var_f23 * (sp78.x * var_f24); effect_p->mPosition.y += (var_f23 * (sp78.y * var_f24)) * 0.75f; effect_p->mPosition.y += var_f23 * 0.3f; effect_p->mPosition.z += var_f23 * (sp78.z * var_f24); } effect_p->mPosition.x += temp_f0_5 * var_f23; effect_p->mPosition.y += var_f23 * 0.5f * cM_fsin(effect_p->mScale.y); effect_p->mPosition.z += cM_fsin(effect_p->mScale.z) * var_f23; } else if (d_krain_cut_turn_check()) { effect_p->mStatus = 3; } effect_p->mScale.x += 0.3f; effect_p->mScale.y += 0.2f; effect_p->mScale.z += 0.1f; sp6C.x = effect_p->mBasePos.x + effect_p->mPosition.x; sp6C.y = effect_p->mBasePos.y + effect_p->mPosition.y; sp6C.z = effect_p->mBasePos.z + effect_p->mPosition.z; if (g_env_light.field_0xea9 == 2) { cXyz sp3C(sp6C); if (sp6C.y <= var_f30) { effect_p->mStatus = 2; } if (effect_p->mStatus == 2) { effect_p->mPosition.y = var_f30 - effect_p->mBasePos.y; } else if (effect_p->mStatus != 3 && effect_p->mStatus != 4) { sp3C.y = player_p->current.pos.y; if (sp3C.abs(player_p->current.pos) < 300.0f) { if (sp3C.z > 5600.0f && player_p->current.pos.y < 130.0f) { if (sp6C.y < player_p->current.pos.y + 2.0f) { effect_p->mPosition.y = (player_p->current.pos.y + 2.0f) - effect_p->mBasePos.y; effect_p->mStatus = 4; } } else { effect_p->mStatus = 3; } } } else { if (effect_p->mStatus == 4) { effect_p->mPosition.y = (player_p->current.pos.y + 2.0f) - effect_p->mBasePos.y; } if (sp3C.abs(player_p->current.pos) > 400.0f) { effect_p->mStatus = 1; } } } sp60 = dKyw_pntwind_get_vecpow(&sp6C); if (effect_p->mSpeed.x < 30.0f) { effect_p->mSpeed.x += sp60.x * 9.0f; } if (effect_p->mSpeed.y < 30.0f) { effect_p->mSpeed.y += sp60.y * 9.0f; } if (effect_p->mSpeed.z < 30.0f) { effect_p->mSpeed.z += sp60.z * 9.0f; } cLib_addCalc(&effect_p->mSpeed.x, 0.0f, 0.2f, 0.1f, 0.00001f); cLib_addCalc(&effect_p->mSpeed.y, 0.0f, 0.2f, 0.1f, 0.00001f); cLib_addCalc(&effect_p->mSpeed.z, 0.0f, 0.2f, 0.1f, 0.00001f); effect_p->mPosition.x += effect_p->mSpeed.x; effect_p->mPosition.y += effect_p->mSpeed.y; effect_p->mPosition.z += effect_p->mSpeed.z; sp6C.x = effect_p->mBasePos.x + effect_p->mPosition.x; sp6C.y = effect_p->mBasePos.y + effect_p->mPosition.y; sp6C.z = effect_p->mBasePos.z + effect_p->mPosition.z; f32 var_f1_4 = sp6C.abs(sp84); if (effect_p->field_0x3c == 0) { if (var_f1_4 > 1000.0f || sp6C.y < -99979.9f) { effect_p->field_0x3c = 10; effect_p->mBasePos = sp84; if (sp6C.abs(sp84) > 1050.0f) { effect_p->mPosition.x = cM_rndFX(1000.0f); effect_p->mPosition.y = cM_rndFX(1000.0f); effect_p->mPosition.z = cM_rndFX(1000.0f); } else { f32 temp_f23 = cM_rndFX(50.0f); get_vectle_calc(&sp6C, &sp84, &sp60); effect_p->mPosition.x = sp60.x * (temp_f23 + 1000.0f); effect_p->mPosition.y = sp60.y * (temp_f23 + 1000.0f); effect_p->mPosition.z = sp60.z * (temp_f23 + 1000.0f); } sp6C.x = effect_p->mBasePos.x + effect_p->mPosition.x; sp6C.y = effect_p->mBasePos.y + effect_p->mPosition.y; sp6C.z = effect_p->mBasePos.z + effect_p->mPosition.z; if (sp6C.y <= var_f30) { effect_p->mPosition.y += 1000.0f; } effect_p->mSpeed.x = 0.0f; effect_p->mSpeed.y = 0.0f; effect_p->mSpeed.z = 0.0f; if (g_env_light.field_0xea9 == 2) { effect_p->mPosition.y += cM_rndF(3200.0f); if (sp6C.y > 3200.0f) { effect_p->mPosition.y = 3200.0f - effect_p->mBasePos.y; } if (g_env_light.mPondSeason == 1) { if (sp6C.x > 600.0f || sp6C.z > 1600.0f) { effect_p->mStatus = 1; } else { effect_p->mStatus = 2; } } else if (sp6C.x > 1700.0f || sp6C.z > 2800.0f) { effect_p->mStatus = 1; } else { effect_p->mStatus = 2; } } } } else { effect_p->field_0x3c--; } break; } sp6C.x = effect_p->mBasePos.x + effect_p->mPosition.x; sp6C.y = effect_p->mBasePos.y + effect_p->mPosition.y; sp6C.z = effect_p->mBasePos.z + effect_p->mPosition.z; if (g_env_light.field_0xea9 != 2) { effect_p->field_0x4c += 600; if (effect_p->field_0x4c > 30000) { var_f26 = 0.0f; } } else { var_f26 = 1.0f; } cLib_addCalc(&effect_p->mAlpha, var_f26, 0.5f, 0.02f, 0.00001f); effect_p->mAlpha *= var_f31; if (var_r27 != 0) { effect_p->mAlpha = 0.0f; } if (dKy_darkworld_check() == 1 || var_r24 == 1) { f32 var_f1_6 = sp6C.abs(camera_p->mLookat.mEye); effect_p->field_0x48 = var_f1_6; f32 var_f1_7; if (var_f1_6 >= 800.0f) { var_f1_7 = (var_f1_6 - 800.0f) / 825.0f; if (var_f1_7 > 1.0f) { var_f1_7 = 1.0f; } } else { var_f1_7 = 0.0f; } effect_p->mAlpha = var_f1_7; } f32 var_f1_8 = sp6C.abs(camera_p->mLookat.mEye); f32 temp_f25 = var_f1_8 / 2000.0f; effect_p->field_0x48 = 1.0f - (temp_f25 * temp_f25); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_housi_move() { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_housi_move__Fv.s" } #pragma pop #endif /* 8005FBDC-8005FD48 05A51C 016C+00 0/0 1/1 0/0 .text dKyr_snow_init__Fv */ // Matches with literals #ifdef NONMATCHING void dKyr_snow_init() { camera_class* camera_p = g_dComIfG_gameInfo.play.mCameraInfo[0].mCamera; g_env_light.mpSnowPacket = new (32) dKankyo_snow_Packet(); if (g_env_light.mpSnowPacket == NULL) { return; } g_env_light.mpSnowPacket->mpTex = (u8*)dComIfG_getObjectRes("Always", 0x56); for (int i = 0; i < 500; i++) { g_env_light.mpSnowPacket->mSnowEff[i].mStatus = 0; } g_env_light.mpSnowPacket->field_0x6d88 = 0; g_env_light.mpSnowPacket->field_0x6d74 = camera_p->mLookat.mEye; g_env_light.mpSnowPacket->field_0x6d80 = 0.0f; g_env_light.mpSnowPacket->field_0x6d84 = 0.0f; g_env_light.mpSnowPacket->field_0x6d8a = 0; g_env_light.mpSnowPacket->field_0x6d8c = 0; g_env_light.mpSnowPacket->field_0x6d90 = 0; g_env_light.mpSnowPacket->field_0x6d91 = 0; g_env_light.mpSnowPacket->field_0x6d92 = 0; g_env_light.mpSnowPacket->field_0x6d93 = 0; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_snow_init() { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_snow_init__Fv.s" } #pragma pop #endif /* ############################################################################################## */ /* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8037A5C4 = "F_SP127"; #pragma pop /* 804523A4-804523A8 0009A4 0004+00 8/8 0/0 0/0 .sdata2 @6355 */ SECTION_SDATA2 static f32 lit_6355 = 100.0f; /* 804523A8-804523AC 0009A8 0004+00 2/2 0/0 0/0 .sdata2 @6356 */ SECTION_SDATA2 static f32 lit_6356 = 6.0f / 5.0f; /* 804523AC-804523B0 0009AC 0004+00 1/1 0/0 0/0 .sdata2 @6357 */ SECTION_SDATA2 static f32 lit_6357 = 6.5f; /* 804523B0-804523B4 0009B0 0004+00 3/3 0/0 0/0 .sdata2 @6358 */ SECTION_SDATA2 static f32 lit_6358 = 9.0f / 20.0f; /* 804523B4-804523B8 0009B4 0004+00 1/1 0/0 0/0 .sdata2 @6359 */ SECTION_SDATA2 static f32 lit_6359 = 53.0f / 10.0f; /* 804523B8-804523BC 0009B8 0004+00 2/2 0/0 0/0 .sdata2 @6360 */ SECTION_SDATA2 static f32 lit_6360 = 7.0f / 20.0f; /* 804523BC-804523C0 0009BC 0004+00 2/2 0/0 0/0 .sdata2 @6361 */ SECTION_SDATA2 static f32 lit_6361 = 3000.0f; /* 804523C0-804523C4 0009C0 0004+00 1/1 0/0 0/0 .sdata2 @6362 */ SECTION_SDATA2 static f32 lit_6362 = 27.5f; /* 804523C4-804523C8 0009C4 0004+00 1/1 0/0 0/0 .sdata2 @6363 */ SECTION_SDATA2 static f32 lit_6363 = 1150.0f; /* 804523C8-804523D0 0009C8 0004+04 1/1 0/0 0/0 .sdata2 @6364 */ SECTION_SDATA2 static f32 lit_6364[1 + 1 /* padding */] = { 55.0f, /* padding */ 0.0f, }; /* 804523D0-804523D8 0009D0 0008+00 1/1 0/0 0/0 .sdata2 @6365 */ SECTION_SDATA2 static f64 lit_6365 = 1.0; /* 804523D8-804523DC 0009D8 0004+00 1/1 0/0 0/0 .sdata2 @6366 */ SECTION_SDATA2 static f32 lit_6366 = -340.0f; /* 804523DC-804523E0 0009DC 0004+00 1/1 0/0 0/0 .sdata2 @6367 */ SECTION_SDATA2 static f32 lit_6367 = 9800.0f; /* 804523E0-804523E4 0009E0 0004+00 2/2 0/0 0/0 .sdata2 @6368 */ SECTION_SDATA2 static f32 lit_6368 = 19.0f / 50.0f; /* 8005FD48-80061324 05A688 15DC+00 0/0 1/1 0/0 .text dKyr_snow_move__Fv */ // mostly matches, 1 out of order instruction #ifdef NONMATCHING void dKyr_snow_move() { f32* temp_r26; cXyz* temp_r25; dKankyo_snow_Packet* snow_p = g_env_light.mpSnowPacket; SNOW_EFF* effect_p; camera_class* camera_p = (camera_class*)dComIfGp_getCamera(0); fopAc_ac_c* player_p = dComIfGp_getPlayer(0); DOUBLE_POS spC8; cXyz spB8; cXyz spAC; cXyz spA0; cXyz sp94 = dKyw_get_wind_vecpow(); cXyz sp88 = dKyw_get_wind_vecpow(); cXyz sp7C; cXyz sp70; dBgS_ObjGndChk_All spE0; cXyz sp64; if (snow_p->field_0x6d88 <= g_env_light.mSnowCount) { snow_p->field_0x6d88 = g_env_light.mSnowCount; } if (snow_p->field_0x6d88 == 0) { return; } sp64 = player_p->current.pos; sp64.y += 100.0f; spE0.SetPos(&sp64); f32 temp_f19 = dComIfG_Bgsp().GroundCross(&spE0); dKy_set_eyevect_calc2(camera_p, &spB8, 500.0f, 500.0f); dKy_set_eyevect_calc2(camera_p, &spAC, 1000.0f, 1000.0f); if (snow_p->field_0x6d74.abs(camera_p->mLookat.mEye) > 1500.0f) { snow_p->field_0x6d88 = 0; } snow_p->field_0x6d74 = camera_p->mLookat.mEye; spA0.z = 0.0f; spA0.y = 0.0f; spA0.x = 0.0f; cXyz* temp_r21 = dKyw_get_wind_vec(); f32 var_f20 = dKyw_get_wind_pow(); if (g_env_light.field_0xe92 == 1) { var_f20 *= 1.2f; } if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) { sp94.x = 0.3f; sp94.y = 0.0f; sp94.z = 0.0f; var_f20 = 0.3f; } cXyz sp58; spC8.x = camera_p->mLookat.mCenter.x - camera_p->mLookat.mEye.x; spC8.y = 0.0f; spC8.z = camera_p->mLookat.mCenter.z - camera_p->mLookat.mEye.z; vectle_calc(&spC8, &sp58); snow_p->field_0x6d84 = cM3d_VectorProduct2d(0.0f, 0.0f, -temp_r21->x, -temp_r21->z, sp58.x, sp58.z); f32 temp_f20_1 = fabsf((temp_r21->x * sp58.x) + (temp_r21->z * sp58.z)); snow_p->field_0x6d80 = ((1.0f - temp_f20_1) * var_f20) * (1.0f - fabsf(temp_r21->y + 0.3f)); snow_p->field_0x6d80 *= fabsf(snow_p->field_0x6d84); for (int i = snow_p->field_0x6d88 - 1; i >= 0; i--) { f32 temp_f27 = -(2.0f + cM_rndF(0.08f)); f32 temp_f26 = 2.0f * (5.0f + (f32)(i & 15)); effect_p = &snow_p->mSnowEff[i]; switch (snow_p->mSnowEff[i].mStatus) { case 0: effect_p->mWindSpeed = temp_f26; effect_p->mGravity = temp_f27; effect_p->mTimer = 0; effect_p->mBasePos.x = spAC.x + cM_rndFX(1100.0f); effect_p->mBasePos.y = spAC.y + 1100.0f; effect_p->mBasePos.z = spAC.z + cM_rndFX(1100.0f); effect_p->mPosition.x = spB8.x + cM_rndFX(550.0f); effect_p->mPosition.y = spB8.y + 550.0f; effect_p->mPosition.z = spB8.z + cM_rndFX(550.0f); effect_p->mScale = 0.0f; effect_p->mPosWaveX = cM_rndF(65536.0f); effect_p->mPosWaveZ = cM_rndF(65536.0f); effect_p->mStatus++; break; case 1: f32 target = cM_rndFX(0.08f); temp_r26 = &effect_p->mWindSpeed; target = effect_p->mWindSpeed - target; cLib_addCalc(temp_r26, target, 0.5f, 0.1f, 0.01f); cXyz sp4C; sp88 = sp94; temp_r25 = &effect_p->mPosition; if (camera_p->mLookat.mEye.abs(*temp_r25) < 500.0f && effect_p->mPosition.y < temp_f19 + 250.0f) { f32 var_f1_3 = ((temp_f19 + 250.0f) - effect_p->mPosition.y) / 250.0f; if (var_f1_3 > 1.0f) { var_f1_3 = 1.0f; } sp88.y = var_f1_3 * 0.45f; } s16 wave_x = effect_p->mPosWaveX; s16 wave_z = effect_p->mPosWaveZ; sp4C.x = cM_scos(wave_x) * cM_ssin(wave_z); sp4C.y = cM_ssin(wave_x); sp4C.z = cM_scos(wave_x) * cM_scos(wave_z); effect_p->mPosition.x += sp88.x * *temp_r26; effect_p->mPosition.z += sp88.z * *temp_r26; effect_p->mPosition.y += effect_p->mGravity + (sp88.y * *temp_r26); effect_p->mPosition.x += sp4C.x * 5.3f; effect_p->mPosition.y += sp4C.y * 5.3f; effect_p->mPosition.z += sp4C.z * 5.3f; sp88 = sp94; if (camera_p->mLookat.mEye.abs(*temp_r25) < 500.0f && effect_p->mBasePos.y < temp_f19 + 250.0f) { f32 var_f1_5 = ((temp_f19 + 250.0f) - effect_p->mBasePos.y) / 250.0f; if (var_f1_5 > 1.0f) { var_f1_5 = 1.0f; } sp88.y = var_f1_5 * 0.35f; } effect_p->mBasePos.x += sp88.x * *temp_r26; effect_p->mBasePos.z += sp88.z * *temp_r26; effect_p->mBasePos.y += effect_p->mGravity + (sp88.y * *temp_r26); effect_p->mBasePos.x += sp4C.x * 5.3f; effect_p->mBasePos.y += sp4C.y * 5.3f; effect_p->mBasePos.z += sp4C.z * 5.3f; cLib_addCalc(&effect_p->mPosWaveX, effect_p->mPosWaveX + cM_rndF(3000.0f), 0.25f, 1500.0f, 0.001f); cLib_addCalc(&effect_p->mPosWaveZ, effect_p->mPosWaveZ + cM_rndF(3000.0f), 0.25f, 1500.0f, 0.001f); sp7C = effect_p->mPosition; f32 var_f1_6 = sp7C.abs(spB8); if (effect_p->mTimer == 0) { if (var_f1_6 > 550.0f) { effect_p->mTimer = 10; *temp_r26 = temp_f26; effect_p->mGravity = temp_f27; if (sp7C.abs(spB8) > 600.0f) { effect_p->mPosition.x = spB8.x + cM_rndFX(550.0f); effect_p->mPosition.y = spB8.y + cM_rndFX(550.0f); effect_p->mPosition.z = spB8.z + cM_rndFX(550.0f); } else { f32 temp_f26_2 = cM_rndFX(27.5f); get_vectle_calc(&sp7C, &spB8, &sp70); effect_p->mPosition.x = spB8.x + sp70.x * (temp_f26_2 + 550.0f); effect_p->mPosition.y = spB8.y + sp70.y * (temp_f26_2 + 550.0f); effect_p->mPosition.z = spB8.z + sp70.z * (temp_f26_2 + 550.0f); } } } else { effect_p->mTimer--; } sp7C = effect_p->mBasePos; if (sp7C.abs(spAC) > 1100.0f) { if (sp7C.abs(spAC) > 1150.0f) { effect_p->mBasePos.x = spAC.x + cM_rndFX(1100.0f); effect_p->mBasePos.y = spAC.y + cM_rndFX(1100.0f); effect_p->mBasePos.z = spAC.z + cM_rndFX(1100.0f); } else { f32 temp_f26_3 = cM_rndFX(27.5f); get_vectle_calc(&sp7C, &spAC, &sp70); effect_p->mBasePos.x = spAC.x + sp70.x * (temp_f26_3 + 1100.0f); effect_p->mBasePos.y = spAC.y + sp70.y * (temp_f26_3 + 1100.0f); effect_p->mBasePos.z = spAC.z + sp70.z * (temp_f26_3 + 1100.0f); } } break; } sp7C = effect_p->mPosition; f32 var_f26 = sp7C.abs(camera_p->mLookat.mEye) / 100.0f; if (var_f26 > 1.0) { var_f26 = 1.0; } var_f26 *= 0.4f; f32 var_f1_11 = sp7C.abs(spB8); if (var_f1_11 > 300.0f) { f32 var_f1_12 = (550.0f - var_f1_11) / 250.0f; if (var_f1_12 < 0.0f) { var_f1_12 = 0.0f; } var_f26 *= var_f1_12; } if (i > g_env_light.mSnowCount - 1) { cLib_addCalc(&effect_p->mScale, 0.0f, 0.2f, 0.1f, 0.01f); } else { effect_p->mScale = var_f26; } if (i > g_env_light.mSnowCount - 1 && effect_p->mScale < 0.01f) { if (i == snow_p->field_0x6d88 - 1) { snow_p->field_0x6d88--; } } if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) { if (sp7C.z > -340.0f) { effect_p->mScale = 0.0f; } } else if (strcmp(dComIfGp_getStartStageName(), "F_SP127") == 0) { if (sp7C.z > 9800.0f) { effect_p->mScale = 0.0f; } } sp7C = effect_p->mBasePos; f32 var_f26_3 = sp7C.abs(camera_p->mLookat.mEye) / 100.0f; if (var_f26_3 > 1.0) { var_f26_3 = 1.0; } var_f26_3 *= 0.38f; f32 var_f1_14 = sp7C.abs(spAC); if (var_f1_14 > 850.0f) { f32 var_f1_15 = (1100.0f - var_f1_14) / 250.0f; if (var_f1_15 < 0.0f) { var_f1_15 = 0.0f; } var_f26_3 *= var_f1_15; } if (i > g_env_light.mSnowCount - 1) { cLib_addCalc(&effect_p->field_0x30, 0.0f, 0.2f, 0.1f, 0.01f); } else { effect_p->field_0x30 = var_f26_3; } if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) { if (sp7C.z > -340.0f) { effect_p->field_0x30 = 0.0f; } } else if (strcmp(dComIfGp_getStartStageName(), "F_SP127") == 0) { if (sp7C.z > 9800.0f) { effect_p->field_0x30 = 0.0f; } } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_snow_move() { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_snow_move__Fv.s" } #pragma pop #endif /* 80061324-8006140C 05BC64 00E8+00 0/0 1/1 0/0 .text dKyr_star_init__Fv */ // Matches without literals #ifdef NONMATCHING void dKyr_star_init() { camera_class* camera_p = g_dComIfG_gameInfo.play.mCameraInfo[0].mCamera; g_env_light.mpStarPacket = new (32) dKankyo_star_Packet(); if (g_env_light.mpStarPacket == NULL) { return; } g_env_light.mpStarPacket->field_0x10 = (u8*)dComIfG_getObjectRes("Always", 0x4a); g_env_light.mpStarPacket->mEffect[0].field_0x28 = 1.0f; g_env_light.mpStarPacket->mEffectNum = 0; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_star_init() { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_star_init__Fv.s" } #pragma pop #endif /* 8006140C-80061438 05BD4C 002C+00 0/0 1/1 0/0 .text dKyr_star_move__Fv */ void dKyr_star_move() { dKankyo_star_Packet* packet = g_env_light.mpStarPacket; packet->mEffectNum = g_env_light.mStarCount; if (packet->mEffectNum != 0) { packet->mEffect[0].field_0x28 = lit_4354; } } /* ############################################################################################## */ /* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8037A5CC = "D_MN05A"; #pragma pop /* 804523E4-804523E8 0009E4 0004+00 2/2 0/0 0/0 .sdata2 @6720 */ SECTION_SDATA2 static f32 lit_6720 = 0.004999999888241291f; /* 804523E8-804523EC 0009E8 0004+00 7/7 0/0 0/0 .sdata2 @6721 */ SECTION_SDATA2 static f32 lit_6721 = 9.999999974752427e-07f; /* 804523EC-804523F0 0009EC 0004+00 1/1 0/0 0/0 .sdata2 @6722 */ SECTION_SDATA2 static f32 lit_6722 = -300.0f; /* 804523F0-804523F4 0009F0 0004+00 2/2 0/0 0/0 .sdata2 @6723 */ SECTION_SDATA2 static f32 lit_6723 = 65535.0f; /* 804523F4-804523F8 0009F4 0004+00 1/1 0/0 0/0 .sdata2 @6724 */ SECTION_SDATA2 static f32 lit_6724 = 0.027000002562999725f; /* 804523F8-804523FC 0009F8 0004+00 1/1 0/0 0/0 .sdata2 @6725 */ SECTION_SDATA2 static f32 lit_6725 = 23.0f; /* 804523FC-80452400 0009FC 0004+00 5/5 0/0 0/0 .sdata2 @6726 */ SECTION_SDATA2 static f32 lit_6726 = 120.0f; /* 80452400-80452404 000A00 0004+00 1/1 0/0 0/0 .sdata2 @6727 */ SECTION_SDATA2 static f32 lit_6727 = 1540.0f; /* 80452404-80452408 000A04 0004+00 1/1 0/0 0/0 .sdata2 @6728 */ SECTION_SDATA2 static f32 lit_6728 = 1040.0f; /* 80452408-8045240C 000A08 0004+00 1/1 0/0 0/0 .sdata2 @6729 */ SECTION_SDATA2 static f32 lit_6729 = 44.0f; /* 8045240C-80452410 000A0C 0004+00 1/1 0/0 0/0 .sdata2 @6730 */ SECTION_SDATA2 static f32 lit_6730 = 408.0f; /* 80452410-80452414 000A10 0004+00 2/2 0/0 0/0 .sdata2 @6731 */ SECTION_SDATA2 static f32 lit_6731 = 3.0f / 25.0f; /* 80452414-80452418 000A14 0004+00 1/1 0/0 0/0 .sdata2 @6732 */ SECTION_SDATA2 static f32 lit_6732 = 6.0f / 25.0f; /* 80452418-8045241C 000A18 0004+00 1/1 0/0 0/0 .sdata2 @6733 */ SECTION_SDATA2 static f32 lit_6733 = 9.0f / 25.0f; /* 8045241C-80452420 000A1C 0004+00 2/2 0/0 0/0 .sdata2 @6734 */ SECTION_SDATA2 static f32 lit_6734 = 9.0f / 100.0f; /* 80452420-80452424 000A20 0004+00 1/1 0/0 0/0 .sdata2 @6735 */ SECTION_SDATA2 static f32 lit_6735 = 13.0f / 100.0f; /* 80452424-80452428 000A24 0004+00 2/2 0/0 0/0 .sdata2 @6736 */ SECTION_SDATA2 static f32 lit_6736 = 7.0f / 10.0f; /* 80061438-800620AC 05BD78 0C74+00 0/0 1/1 0/0 .text cloud_shadow_move__Fv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void cloud_shadow_move() { nofralloc #include "asm/d/kankyo/d_kankyo_rain/cloud_shadow_move__Fv.s" } #pragma pop /* ############################################################################################## */ /* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8037A5D4 = "D_MN07A"; #pragma pop /* 80452428-8045242C 000A28 0004+00 1/1 0/0 0/0 .sdata2 @6947 */ SECTION_SDATA2 static f32 lit_6947 = 2500.0f; /* 8045242C-80452430 000A2C 0004+00 1/1 0/0 0/0 .sdata2 @6948 */ SECTION_SDATA2 static f32 lit_6948 = 25.0f; /* 80452430-80452438 000A30 0004+04 1/1 0/0 0/0 .sdata2 @6949 */ SECTION_SDATA2 static f32 lit_6949[1 + 1 /* padding */] = { 18000.0f, /* padding */ 0.0f, }; /* 80452438-80452440 000A38 0008+00 1/1 0/0 0/0 .sdata2 @6950 */ SECTION_SDATA2 static f64 lit_6950 = 14000.0; /* 80452440-80452444 000A40 0004+00 1/1 0/0 0/0 .sdata2 @6951 */ SECTION_SDATA2 static f32 lit_6951 = 15000.0f; /* 80452444-80452448 000A44 0004+00 3/3 0/0 0/0 .sdata2 @6952 */ SECTION_SDATA2 static f32 lit_6952 = 5000.0f; /* 80452448-8045244C 000A48 0004+00 1/1 0/0 0/0 .sdata2 @6953 */ SECTION_SDATA2 static f32 lit_6953 = 15100.0f; /* 8045244C-80452450 000A4C 0004+00 1/1 0/0 0/0 .sdata2 @6954 */ SECTION_SDATA2 static f32 lit_6954 = -7.0f / 10.0f; /* 80452450-80452454 000A50 0004+00 1/1 0/0 0/0 .sdata2 @6955 */ SECTION_SDATA2 static f32 lit_6955 = 1.0f / 40.0f; /* 800620AC-80062ADC 05C9EC 0A30+00 0/0 1/1 0/0 .text vrkumo_move__Fv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void vrkumo_move() { nofralloc #include "asm/d/kankyo/d_kankyo_rain/vrkumo_move__Fv.s" } #pragma pop /* 80062ADC-80062B4C 05D41C 0070+00 7/7 0/0 0/0 .text dKr_cullVtx_Set__Fv */ static void dKr_cullVtx_Set() { GXSetCullMode(GX_CULL_NONE); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_F32, 0); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGBA4, 8); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); } /* ############################################################################################## */ /* 8037A4E8-8037A508 006B48 0020+00 1/1 0/0 0/0 .rodata @6991 */ SECTION_RODATA static u8 const lit_6991[32] = { 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x54, 0x7A, 0xE1, 0x3F, 0x19, 0x99, 0x9A, 0x3F, 0x47, 0xAE, 0x14, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x47, 0xAE, 0x14, 0x3F, 0x19, 0x99, 0x9A, 0x3F, 0x54, 0x7A, 0xE1, }; COMPILER_STRIP_GATE(0x8037A4E8, &lit_6991); /* 803A9BB8-803A9BD8 -00001 0020+00 1/1 0/0 0/0 .data @7214 */ SECTION_DATA static void* lit_7214[8] = { (void*)(((char*)dKyr_draw_rev_moon__FPA4_fPPUc) + 0x150), (void*)(((char*)dKyr_draw_rev_moon__FPA4_fPPUc) + 0x15C), (void*)(((char*)dKyr_draw_rev_moon__FPA4_fPPUc) + 0x168), (void*)(((char*)dKyr_draw_rev_moon__FPA4_fPPUc) + 0x174), (void*)(((char*)dKyr_draw_rev_moon__FPA4_fPPUc) + 0x180), (void*)(((char*)dKyr_draw_rev_moon__FPA4_fPPUc) + 0x18C), (void*)(((char*)dKyr_draw_rev_moon__FPA4_fPPUc) + 0x198), (void*)(((char*)dKyr_draw_rev_moon__FPA4_fPPUc) + 0x1A4), }; /* 80452454-80452458 000A54 0004+00 5/5 0/0 0/0 .sdata2 @7208 */ SECTION_SDATA2 static f32 lit_7208 = -1.0f; /* 80452458-8045245C 000A58 0004+00 8/8 0/0 0/0 .sdata2 @7209 */ SECTION_SDATA2 static f32 lit_7209 = 45.0f; /* 8045245C-80452460 000A5C 0004+00 2/2 0/0 0/0 .sdata2 @7210 */ SECTION_SDATA2 static f32 lit_7210 = -6.2831854820251465f; /* 80452460-80452464 000A60 0004+00 12/12 0/0 0/0 .sdata2 @7211 */ SECTION_SDATA2 static f32 lit_7211 = 0.01745329238474369f; /* 80452464-80452468 000A64 0004+00 2/2 0/0 0/0 .sdata2 @7212 */ SECTION_SDATA2 static f32 lit_7212 = 11000.0f; /* 80452468-8045246C 000A68 0004+00 2/2 0/0 0/0 .sdata2 @7213 */ SECTION_SDATA2 static f32 lit_7213 = 2.3f; /* 80062B4C-80063670 05D48C 0B24+00 2/1 0/0 0/0 .text dKyr_draw_rev_moon__FPA4_fPPUc */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void dKyr_draw_rev_moon(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_draw_rev_moon__FPA4_fPPUc.s" } #pragma pop /* ############################################################################################## */ /* 8037A508-8037A528 006B68 0020+00 1/1 0/0 0/0 .rodata @7275 */ SECTION_RODATA static u8 const lit_7275[32] = { 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x54, 0x7A, 0xE1, 0x3F, 0x19, 0x99, 0x9A, 0x3F, 0x47, 0xAE, 0x14, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x47, 0xAE, 0x14, 0x3F, 0x19, 0x99, 0x9A, 0x3F, 0x54, 0x7A, 0xE1, }; COMPILER_STRIP_GATE(0x8037A508, &lit_7275); /* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8037A5DC = "F_SP103"; SECTION_DEAD static char const* const stringBase_8037A5E4 = "APPEAR_HAWKER"; #pragma pop /* 803A9BD8-803A9BF8 -00001 0020+00 1/1 0/0 0/0 .data @7549 */ SECTION_DATA static void* lit_7549[8] = { (void*)(((char*)dKyr_drawSun__FPA4_fP4cXyzR8_GXColorPPUc) + 0x354), (void*)(((char*)dKyr_drawSun__FPA4_fP4cXyzR8_GXColorPPUc) + 0x360), (void*)(((char*)dKyr_drawSun__FPA4_fP4cXyzR8_GXColorPPUc) + 0x36C), (void*)(((char*)dKyr_drawSun__FPA4_fP4cXyzR8_GXColorPPUc) + 0x378), (void*)(((char*)dKyr_drawSun__FPA4_fP4cXyzR8_GXColorPPUc) + 0x384), (void*)(((char*)dKyr_drawSun__FPA4_fP4cXyzR8_GXColorPPUc) + 0x390), (void*)(((char*)dKyr_drawSun__FPA4_fP4cXyzR8_GXColorPPUc) + 0x39C), (void*)(((char*)dKyr_drawSun__FPA4_fP4cXyzR8_GXColorPPUc) + 0x3A8), }; /* 8045246C-80452470 000A6C 0004+00 2/2 0/0 0/0 .sdata2 @7545 */ SECTION_SDATA2 static f32 lit_7545 = 3900.0f; /* 80452470-80452474 000A70 0004+00 2/2 0/0 0/0 .sdata2 @7546 */ SECTION_SDATA2 static f32 lit_7546 = 8052.0f; /* 80452474-80452478 000A74 0004+00 2/2 0/0 0/0 .sdata2 @7547 */ SECTION_SDATA2 static f32 lit_7547 = -9072.0f; /* 80452478-8045247C 000A78 0004+00 1/1 0/0 0/0 .sdata2 @7548 */ SECTION_SDATA2 static f32 lit_7548 = 2400.0f; /* 80063670-8006444C 05DFB0 0DDC+00 1/0 1/1 0/0 .text dKyr_drawSun__FPA4_fP4cXyzR8_GXColorPPUc */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_drawSun(Mtx param_0, cXyz* param_1, _GXColor& param_2, u8** param_3) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_drawSun__FPA4_fP4cXyzR8_GXColorPPUc.s" } #pragma pop /* ############################################################################################## */ /* 8037A528-8037A548 006B88 0020+00 1/1 0/0 0/0 .rodata scale_dat$7608 */ SECTION_RODATA static u8 const scale_dat[32] = { 0x45, 0xFA, 0x00, 0x00, 0x46, 0x24, 0x10, 0x00, 0x40, 0x4C, 0xCC, 0xCD, 0x3F, 0xE6, 0x66, 0x66, 0x3F, 0xE6, 0x66, 0x66, 0x40, 0xC6, 0x66, 0x66, 0x3F, 0x99, 0x99, 0x9A, 0x40, 0x80, 0x00, 0x00, }; COMPILER_STRIP_GATE(0x8037A528, &scale_dat); /* 8037A548-8037A568 006BA8 0020+00 1/1 0/0 0/0 .rodata col_dat$7609 */ SECTION_RODATA static u8 const col_dat[32] = { 0xB4, 0xC8, 0xFF, 0xFF, 0xC8, 0xC8, 0xFF, 0x50, 0xFF, 0x8C, 0x78, 0x5A, 0xFF, 0xB4, 0x78, 0x64, 0xB4, 0xB4, 0x78, 0x55, 0xB4, 0xC8, 0x64, 0x5A, 0xDC, 0xFF, 0xB4, 0x6E, 0xC8, 0xDC, 0xFF, 0x5A, }; COMPILER_STRIP_GATE(0x8037A548, &col_dat); /* 80450EF0-80450EF4 -00001 0004+00 1/1 0/0 0/0 .sbss None */ /* 80450EF0 0002+00 data_80450EF0 None */ /* 80450EF2 0002+00 data_80450EF2 S_rot_work2$7557 */ static u8 struct_80450EF0[4]; /* 80450EF4-80450EF8 0003F4 0004+00 1/1 0/0 0/0 .sbss None */ static u8 data_80450EF4[4]; /* 8045247C-80452480 000A7C 0004+00 1/1 0/0 0/0 .sdata2 @7882 */ SECTION_SDATA2 static f32 lit_7882 = 2.9f; /* 80452480-80452484 000A80 0004+00 2/2 0/0 0/0 .sdata2 @7883 */ SECTION_SDATA2 static f32 lit_7883 = 34.0f; /* 80452484-80452488 000A84 0004+00 1/1 0/0 0/0 .sdata2 @7884 */ SECTION_SDATA2 static f32 lit_7884 = 160.0f; /* 80452488-8045248C 000A88 0004+00 1/1 0/0 0/0 .sdata2 @7885 */ SECTION_SDATA2 static f32 lit_7885 = 0.86f; /* 8045248C-80452490 000A8C 0004+00 1/1 0/0 0/0 .sdata2 @7886 */ SECTION_SDATA2 static f32 lit_7886 = 2.46f; /* 80452490-80452494 000A90 0004+00 2/2 0/0 0/0 .sdata2 @7887 */ SECTION_SDATA2 static f32 lit_7887 = 1.1f; /* 80452494-80452498 000A94 0004+00 1/1 0/0 0/0 .sdata2 @7888 */ SECTION_SDATA2 static f32 lit_7888 = 0.04f; /* 80452498-8045249C 000A98 0004+00 1/1 0/0 0/0 .sdata2 @7889 */ SECTION_SDATA2 static f32 lit_7889 = 0.075f; /* 8045249C-804524A0 000A9C 0004+00 1/1 0/0 0/0 .sdata2 @7890 */ SECTION_SDATA2 static f32 lit_7890 = 0.88f; /* 804524A0-804524A4 000AA0 0004+00 1/1 0/0 0/0 .sdata2 @7891 */ SECTION_SDATA2 static f32 lit_7891 = 30.599998474121094f; /* 804524A4-804524A8 000AA4 0004+00 4/4 0/0 0/0 .sdata2 @7892 */ SECTION_SDATA2 static f32 lit_7892 = 140.0f; /* 804524A8-804524AC 000AA8 0004+00 1/1 0/0 0/0 .sdata2 @7893 */ SECTION_SDATA2 static f32 lit_7893 = 0.85f; /* 804524AC-804524B0 000AAC 0004+00 2/2 0/0 0/0 .sdata2 @7894 */ SECTION_SDATA2 static f32 lit_7894 = 60.0f; /* 8006444C-8006562C 05ED8C 11E0+00 0/0 1/1 0/0 .text * dKyr_drawLenzflare__FPA4_fP4cXyzR8_GXColorPPUc */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_drawLenzflare(Mtx param_0, cXyz* param_1, _GXColor& param_2, u8** param_3) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_drawLenzflare__FPA4_fP4cXyzR8_GXColorPPUc.s" } #pragma pop /* ############################################################################################## */ /* 80424950-8042495C 051670 000C+00 3/3 0/0 0/0 .bss @7952 */ static u8 lit_7952[12]; /* 8042495C-80424968 05167C 000C+00 0/1 0/0 0/0 .bss @7955 */ #pragma push #pragma force_active on static u8 lit_7955[12]; #pragma pop /* 80424968-80424974 051688 000C+00 0/1 0/0 0/0 .bss @7956 */ #pragma push #pragma force_active on static u8 lit_7956[12]; #pragma pop /* 80424974-80424980 051694 000C+00 0/1 0/0 0/0 .bss @7957 */ #pragma push #pragma force_active on static u8 lit_7957[12]; #pragma pop /* 80424980-804249B0 0516A0 0030+00 0/1 0/0 0/0 .bss add_table$7951 */ #pragma push #pragma force_active on static u8 add_table_7951[48]; #pragma pop /* 80450EF8-80450EFC 0003F8 0004+00 1/1 0/0 0/0 .sbss rot$7919 */ static u8 rot_7919[4]; /* 80450EFC-80450F00 -00001 0004+00 1/1 0/0 0/0 .sbss None */ /* 80450EFC 0001+00 data_80450EFC None */ /* 80450EFD 0003+00 data_80450EFD None */ static u8 struct_80450EFC[4]; /* 804524B0-804524B4 000AB0 0004+00 2/2 0/0 0/0 .sdata2 @8211 */ SECTION_SDATA2 static f32 lit_8211 = 70.0f; /* 804524B4-804524B8 000AB4 0004+00 1/1 0/0 0/0 .sdata2 @8212 */ SECTION_SDATA2 static f32 lit_8212 = -1.5f; /* 804524B8-804524BC 000AB8 0004+00 5/5 0/0 0/0 .sdata2 @8213 */ SECTION_SDATA2 static f32 lit_8213 = 150.0f; /* 804524BC-804524C0 000ABC 0004+00 1/1 0/0 0/0 .sdata2 @8214 */ SECTION_SDATA2 static f32 lit_8214 = 320.0f; /* 804524C0-804524C4 000AC0 0004+00 1/1 0/0 0/0 .sdata2 @8215 */ SECTION_SDATA2 static f32 lit_8215 = 480.0f; /* 8006562C-80066048 05FF6C 0A1C+00 0/0 1/1 0/0 .text dKyr_drawRain__FPA4_fPPUc */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_drawRain(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_drawRain__FPA4_fPPUc.s" } #pragma pop /* ############################################################################################## */ /* 804524C4-804524C8 000AC4 0004+00 1/1 0/0 0/0 .sdata2 @8360 */ SECTION_SDATA2 static f32 lit_8360 = 7000.0f; /* 804524C8-804524CC 000AC8 0004+00 1/1 0/0 0/0 .sdata2 @8361 */ SECTION_SDATA2 static f32 lit_8361 = 3600.0f; /* 80066048-8006653C 060988 04F4+00 0/0 1/1 0/0 .text dKyr_drawSibuki__FPA4_fPPUc */ // stack issues, double branch weirdness #ifdef NONMATCHING void dKyr_drawSibuki(Mtx param_0, u8** param_1) { camera_class* temp_r30 = (camera_class*)dComIfGp_getCamera(0); dKankyo_rain_Packet* temp_r29 = g_env_light.mpRainPacket; Mtx sp88; cXyz sp7C; cXyz sp70; cXyz sp64; cXyz sp58; GXTexObj sp38; cXyz sp2C; cXyz sp20; cXyz sp14; if (g_env_light.mSnowCount == 0 && g_env_light.mCameraInWater == 0 && dComIfGd_getView() != NULL) { MTXInverse(dComIfGd_getView()->mViewMtxNoTrans, sp88); if (strcmp(dComIfGp_getStartStageName(), "F_SP113") == 0 && dComIfGp_roomControl_getStayNo() == 1) { if ((temp_r30->mLookat.mEye.z < 5100.0f || (temp_r30->mLookat.mEye.x < -3250.0f && temp_r30->mLookat.mEye.y < -50.0f)) || (temp_r30->mLookat.mEye.x < -2700.0f && temp_r30->mLookat.mEye.z > 15750.0f)) { return; } } f32 var_f1 = 255.0f; if (temp_r29->mStatus & 1) { var_f1 = 0.0f; } else if (temp_r29->mStatus & 2) { var_f1 = 200.0f; } cLib_addCalc(&temp_r29->mSibukiAlpha, var_f1, 0.2f, 30.0f, 0.001f); dKy_set_eyevect_calc(temp_r30, &sp2C, 7000.0f, 4000.0f); dKyr_get_vectle_calc(&temp_r30->mLookat.mEye, &temp_r30->mLookat.mCenter, &sp20); f32 var_f1_2 = 0.0f; if (sp20.y > var_f1_2) { if (sp20.y < 0.5f) { var_f1_2 = 1.0f - (sp20.y / 0.5f); } } else { var_f1_2 = 1.0f; } GXColor sp10; sp10.r = 0xB4; sp10.g = 0xC8; sp10.b = 0xC8; sp10.a = temp_r29->mSibukiAlpha * var_f1_2; dKyr_set_btitex(&sp38, (ResTIMG*)*(++param_1)); GXSetNumChans(0); GXSetTevColor(GX_TEVREG0, sp10); GXSetTevColor(GX_TEVREG1, sp10); GXSetNumTexGens(1); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); GXSetNumTevStages(1); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_C1, GX_CC_C0, GX_CC_TEXC, GX_CC_ZERO); GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_A0, GX_CA_TEXA, GX_CA_ZERO); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_ONE, GX_LO_COPY); GXSetAlphaCompare(GX_GREATER, 0, GX_AOP_OR, GX_GREATER, 0); GXSetZMode(GX_TRUE, GX_GEQUAL, GX_FALSE); GXSetClipMode(GX_CLIP_DISABLE); GXSetNumIndStages(0); dKr_cullVtx_Set(); GXLoadPosMtxImm(param_0, 0); GXSetCurrentMtx(0); f32 var_f30; if (dComIfGd_getView() != NULL) { var_f30 = dComIfGd_getView()->mFovy / 45.0f; var_f30 *= var_f30; if (var_f30 >= 1.0f) { var_f30 = 1.0f; } } else { var_f30 = 0.2f; } for (int i = 0; i < g_env_light.mRainCount >> 1; i++) { f32 temp_f27 = var_f30 * (15.0f + cM_rndF(10.0f)); f32 temp_f28 = cM_rndFX(3600.0f); f32 temp_f29 = cM_rndFX(1500.0f); f32 temp_f1 = cM_rndFX(3600.0f); sp14.x = sp2C.x + temp_f28; sp14.y = sp2C.y + temp_f29; sp14.z = sp2C.z + temp_f1; sp58.x = sp14.x - temp_f27; sp58.y = sp14.y; sp58.z = sp14.z - temp_f27; sp64.x = sp14.x + temp_f27; sp64.y = sp14.y; sp64.z = sp14.z - temp_f27; sp70.x = sp14.x + temp_f27; sp70.y = sp14.y; sp70.z = sp14.z + temp_f27; sp7C.x = sp14.x - temp_f27; sp7C.y = sp14.y; sp7C.z = sp14.z + temp_f27; GXBegin(GX_QUADS, GX_VTXFMT0, 4); GXPosition3f32(sp58.x, sp58.y, sp58.z); GXTexCoord2s16(0, 0); GXPosition3f32(sp64.x, sp64.y, sp64.z); GXTexCoord2s16(0x1FF, 0); GXPosition3f32(sp70.x, sp70.y, sp70.z); GXTexCoord2s16(0x1FF, 0x1FF); GXPosition3f32(sp7C.x, sp7C.y, sp7C.z); GXTexCoord2s16(0, 0x1FF); GXEnd(); } GXSetClipMode(GX_CLIP_ENABLE); J3DShape::resetVcdVatCache(); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_drawSibuki(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_drawSibuki__FPA4_fPPUc.s" } #pragma pop #endif /* ############################################################################################## */ /* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8037A5F2 = "F_NW01"; #pragma pop /* 80450F00-80450F04 000400 0004+00 1/1 0/0 0/0 .sbss rot$8366 */ static f32 rot_8366; /* 80450F04-80450F08 000404 0004+00 1/1 0/0 0/0 .sbss None */ static u8 data_80450F04[4]; /* 804524CC-804524D0 000ACC 0004+00 1/1 0/0 0/0 .sdata2 @8393 */ SECTION_SDATA2 static u32 lit_8393 = 0x323232FF; /* 804524D0-804524D4 000AD0 0004+00 1/1 0/0 0/0 .sdata2 @8394 */ SECTION_SDATA2 static u32 lit_8394 = 0xFFD7F0FF; /* 804524D4-804524D8 000AD4 0004+00 1/1 0/0 0/0 .sdata2 @8917 */ SECTION_SDATA2 static f32 lit_8917 = 18.0f; /* 804524D8-804524DC 000AD8 0004+00 1/1 0/0 0/0 .sdata2 @8918 */ SECTION_SDATA2 static f32 lit_8918 = -0.5f; /* 804524DC-804524E0 000ADC 0004+00 1/1 0/0 0/0 .sdata2 @8919 */ SECTION_SDATA2 static f32 lit_8919 = 123.0f; /* 804524E0-804524E4 000AE0 0004+00 1/1 0/0 0/0 .sdata2 @8920 */ SECTION_SDATA2 static f32 lit_8920 = 8.0f; /* 804524E4-804524E8 000AE4 0004+00 1/1 0/0 0/0 .sdata2 @8921 */ SECTION_SDATA2 static f32 lit_8921 = -0.9f; /* 804524E8-804524EC 000AE8 0004+00 1/1 0/0 0/0 .sdata2 @8922 */ SECTION_SDATA2 static f32 lit_8922 = 213.0f; /* 804524EC-804524F0 000AEC 0004+00 1/1 0/0 0/0 .sdata2 @8923 */ SECTION_SDATA2 static f32 lit_8923 = 685.0f; /* 804524F0-804524F4 000AF0 0004+00 1/1 0/0 0/0 .sdata2 @8924 */ SECTION_SDATA2 static f32 lit_8924 = 483.0f; /* 804524F4-804524F8 000AF4 0004+00 1/1 0/0 0/0 .sdata2 @8925 */ SECTION_SDATA2 static f32 lit_8925 = 32765.0f; /* 804524F8-804524FC 000AF8 0004+00 1/1 0/0 0/0 .sdata2 @8926 */ SECTION_SDATA2 static f32 lit_8926 = -16384.0f; /* 804524FC-80452500 000AFC 0004+00 1/1 0/0 0/0 .sdata2 @8927 */ SECTION_SDATA2 static f32 lit_8927 = 16384.0f; /* 8006653C-80067488 060E7C 0F4C+00 0/0 1/1 0/0 .text dKyr_drawHousi__FPA4_fPPUc */ // mostly match, weird double branch thing #ifdef NONMATCHING void dKyr_drawHousi(Mtx param_0, u8** param_1) { dKankyo_housi_Packet* housi_p = g_env_light.mpHousiPacket; static f32 rot = 0.0f; Mtx sp1BC; Mtx sp18C; cXyz sp15C[4]; GXTexObj spDC; cXyz spD0; Vec spC4; Vec spB8; bool var_r28 = 0; if (housi_p->field_0x5dec != 0) { if (strcmp(dComIfGp_getStartStageName(), "D_MN08") == 0) { var_r28 = 1; } if (strcmp(dComIfGp_getStartStageName(), "D_MN08") != 0 || dComIfGp_roomControl_getStayNo() == 0 || dComIfGp_roomControl_getStayNo() == 11) { j3dSys.reinitGX(); f32 var_f25 = 120.0f; if (g_env_light.field_0xea9 == 1) { var_f25 = 140.0f; } else if (g_env_light.mCameraInWater != 0) { return; } GXColor sp24; sp24.r = 0xE5; sp24.g = 0xFF; sp24.b = 0xC8; sp24.a = var_f25; GXColor sp20; sp20.r = 0x43; sp20.g = 0xD2; sp20.b = 0xCA; sp20.a = 0xFF; if (dKy_darkworld_check() == 1 || var_r28 == 1) { sp24.r = 0; sp24.g = 0; sp24.b = 0; sp24.a = var_f25; sp20.r = 0; sp20.g = 0; sp20.b = 0; sp20.a = 0xFF; var_f25 = 255.0f; } else if (g_env_light.field_0xea9 == 1) { sp24.r = 0xFF; sp24.g = 0xFF; sp24.b = 0xFF; sp20.r = 0; sp20.g = 0x50; sp20.b = 0x50; } else if (g_env_light.field_0xea9 == 2 && (g_env_light.mPondSeason == 1 || g_env_light.mPondSeason == 3)) { GXColor sp1C = {0x32, 0x32, 0x32, 0xFF}; GXColor sp18 = {0xFF, 0xD7, 0xF0, 0xFF}; camera_class* cam_p = dComIfGp_getCamera(0); if (g_env_light.mPondSeason == 3) { sp1C.r = 0x78; sp1C.g = 0x0A; sp1C.b = 0x14; sp18.r = 0x14; sp18.g = 0x3C; sp18.b = 0x00; } dKy_ParticleColor_get_bg(&cam_p->mLookat.mEye, NULL, &sp20, &sp24, &sp1C, &sp18, 0.0f); var_f25 = 255.0f; } if (dComIfGd_getView() != NULL) { f32 temp_f26 = 1.2f; f32 temp_f24 = 6.5f; // MTXInverse(dComIfGd_getView()->mViewMtxNoTrans, sp1BC); // wtf is going on here switch (MTXInverse(dComIfGd_getView()->mViewMtxNoTrans, sp1BC)) { case 0: return; } for (int i = 0; i < 1; i++) { dKyr_set_btitex(&spDC, (ResTIMG*)*param_1); GXSetNumChans(0); GXSetTevColor(GX_TEVREG0, sp24); GXSetTevColor(GX_TEVREG1, sp20); GXSetNumTexGens(1); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); GXSetNumTevStages(1); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_C1, GX_CC_C0, GX_CC_TEXC, GX_CC_ZERO); GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_A0, GX_CA_TEXA, GX_CA_ZERO); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); if (strcmp(dComIfGp_getStartStageName(), "F_NW01") == 0 || g_env_light.field_0xea9 == 1) { GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_ONE, GX_LO_COPY); } else { GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_SET); } GXSetAlphaCompare(GX_GREATER, 0, GX_AOP_OR, GX_GREATER, 0); if (i == 1) { GXSetZMode(GX_TRUE, GX_GEQUAL, GX_FALSE); } else { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); } GXSetClipMode(GX_CLIP_DISABLE); GXSetNumIndStages(0); dKr_cullVtx_Set(); rot += 1.2f; MTXRotRad(sp18C, 'Z', DEG_TO_RAD(rot)); MTXConcat(sp1BC, sp18C, sp1BC); GXLoadPosMtxImm(param_0, GX_PNMTX0); GXSetCurrentMtx(0); for (int j = 0; j < housi_p->field_0x5dec; j++) { fopAc_ac_c* player_p = dComIfGp_getPlayer(0); spD0.x = housi_p->mHousiEff[j].mBasePos.x + housi_p->mHousiEff[j].mPosition.x; spD0.y = housi_p->mHousiEff[j].mBasePos.y + housi_p->mHousiEff[j].mPosition.y; spD0.z = housi_p->mHousiEff[j].mBasePos.z + housi_p->mHousiEff[j].mPosition.z; if (i == 1 && j == 0) { sp24.r = 0; sp24.g = 0; sp24.b = 0; sp20.r = 0; sp20.g = 0; sp20.b = 0; GXSetTevColor(GX_TEVREG1, sp20); } if (i == 1) { f32 temp_f4 = 100.0f; if (!(spD0.y > player_p->current.pos.y + temp_f4)) { if (!(spD0.y < player_p->current.pos.y - 20.0f)) { if (!(housi_p->mHousiEff[j].mAlpha <= 0.0f)) { sp24.a = housi_p->mHousiEff[j].mAlpha * 40.0f * (1.0f - ((spD0.y - player_p->current.pos.y) / 100.0f)); spD0.y = player_p->current.pos.y - 20.0f; goto block_14; // probably fake match } } } } else { sp24.a = housi_p->mHousiEff[j].mAlpha * var_f25; block_14: GXLoadTexObj(&spDC, GX_TEXMAP0); GXSetTevColor(GX_TEVREG0, sp24); f32 var_f27 = housi_p->mHousiEff[j].field_0x48 * 9.0f; if (g_env_light.field_0xea9 == 1) { var_f27 = housi_p->mHousiEff[j].field_0x48 * 18.0f; } f32 temp_f28 = (var_f27 * 0.2f) * cM_fsin(housi_p->mHousiEff[j].mScale.x * 5.0f); f32 temp_f30 = (var_f27 * 0.2f) * cM_fcos(housi_p->mHousiEff[j].mScale.y * 6.0f); if (dKy_darkworld_check() == 1 || var_r28 == 1) { cXyz sp7C[] = { cXyz(-1.0f, -0.5f, 0.0f), cXyz(-1.0f, 1.5f, 0.0f), cXyz(1.0f, 1.5f, 0.0f), cXyz(1.0f, -0.5f, 0.0f), }; for (int k = 0; k < 4; k++) { cXyz spAC; cXyz spA0; f32 temp_f26_2 = cM_ssin((f32)j * 123.0f + (f32)(g_Counter.mCounter0 * 600)); cXyz* temp_r3 = &sp7C[k]; spAC.x = temp_r3->x * (8.0f * (1.0f + (temp_f26_2 * 0.3f))); spAC.y = temp_r3->y * (8.0f * (1.0f + (temp_f26_2 * 0.3f))); spAC.z = temp_r3->z * (8.0f * (1.0f + (temp_f26_2 * 0.3f))); mDoMtx_stack_c::transS(spD0.x, spD0.y, spD0.z); mDoMtx_stack_c::YrotM(temp_f26_2 * 65536.0f); mDoMtx_stack_c::multVec(&spAC, &spA0); sp15C[k] = spA0; } } else if (g_env_light.field_0xea9 == 2) { cXyz sp4C[] = { cXyz(-1.0f, -0.9f, 0.0f), cXyz(-1.0f, 1.1f, 0.0f), cXyz(1.0f, 1.1f, 0.0f), cXyz(1.0f, -0.9f, 0.0f), }; for (int k = 0; k < 4; k++) { cXyz sp94; cXyz sp88; f32 var_f24; if (housi_p->mHousiEff[j].mStatus == 1 || housi_p->mHousiEff[j].mStatus == 3) { var_f24 = 0.2f + (housi_p->mHousiEff[j].field_0x34 * (fabsf(cM_ssin((f32)j * 213.0f + (f32)(g_Counter.mCounter0 * 330))) * 0.8f)); } else { var_f24 = cM_ssin((f32)j * 123.0f + (f32)(g_Counter.mCounter0 * 80)); } f32 var_f2; if (g_env_light.mPondSeason == 3) { var_f2 = 15.0f; if (housi_p->mHousiEff[j].mStatus == 1) { var_f24 = housi_p->mHousiEff[j].field_0x34 * fabsf(cM_ssin((f32)j * 250.0f + (f32)(g_Counter.mCounter0 * 88))); } else { var_f24 = cM_ssin((f32)j * 685.0f + (f32)(g_Counter.mCounter0 * 20)); } } else { var_f2 = 6.0f; } cXyz* temp_r3_2 = &sp4C[k]; sp94.x = temp_r3_2->x * (var_f2 * (1.0f + (var_f24 * 0.3f))); sp94.y = temp_r3_2->y * (var_f2 * (1.0f + (var_f24 * 0.3f))); sp94.z = temp_r3_2->z * (var_f2 * (1.0f + (var_f24 * 0.3f))); mDoMtx_stack_c::transS(spD0.x, spD0.y, spD0.z); if (housi_p->mHousiEff[j].mStatus == 1 || housi_p->mHousiEff[j].mStatus == 3) { housi_p->mHousiEff[j].field_0x38 += 483.0f * (0.5f + (var_f24 * 0.5f)); housi_p->mHousiEff[j].field_0x44 = (s16)housi_p->mHousiEff[j].field_0x38; mDoMtx_stack_c::YrotM(housi_p->mHousiEff[j].field_0x38); mDoMtx_stack_c::XrotM(housi_p->mHousiEff[j].field_0x38); mDoMtx_stack_c::ZrotM(housi_p->mHousiEff[j].field_0x38); } else { if (housi_p->mHousiEff[j].mStatus == 2) { if (g_env_light.mPondSeason == 3) { housi_p->mHousiEff[j].field_0x38 += var_f24 * 30.0f; } else { housi_p->mHousiEff[j].field_0x38 += var_f24 * 100.0f; } } if (housi_p->mHousiEff[j].field_0x38 > 32765.0f) { cLib_addCalc(&housi_p->mHousiEff[j].field_0x44, -16384.0f, 0.1f, 500.0f, 0.0001f); } else { cLib_addCalc(&housi_p->mHousiEff[j].field_0x44, 16384.0f, 0.1f, 500.0f, 0.0001f); } mDoMtx_stack_c::YrotM(housi_p->mHousiEff[j].field_0x38); mDoMtx_stack_c::XrotM(housi_p->mHousiEff[j].field_0x44); mDoMtx_stack_c::ZrotM(housi_p->mHousiEff[j].field_0x38); } mDoMtx_stack_c::multVec(&sp94, &sp88); sp15C[k] = sp88; } } else { spC4.x = var_f27 - temp_f30; spC4.y = var_f27 - temp_f28; spC4.z = 0.0f; MTXMultVec(sp1BC, &spC4, &spB8); sp15C[0].x = spD0.x + spB8.x; sp15C[0].y = spD0.y + spB8.y; sp15C[0].z = spD0.z + spB8.z; spC4.x = -var_f27 + temp_f30; spC4.y = var_f27 - temp_f28; spC4.z = 0.0f; MTXMultVec(sp1BC, &spC4, &spB8); sp15C[1].x = spD0.x + spB8.x; sp15C[1].y = spD0.y + spB8.y; sp15C[1].z = spD0.z + spB8.z; spC4.x = -var_f27 + temp_f30; spC4.y = -var_f27 + temp_f28; spC4.z = 0.0f; MTXMultVec(sp1BC, &spC4, &spB8); sp15C[2].x = spD0.x + spB8.x; sp15C[2].y = spD0.y + spB8.y; sp15C[2].z = spD0.z + spB8.z; spC4.x = var_f27 - temp_f30; spC4.y = -var_f27 + temp_f28; spC4.z = 0.0f; MTXMultVec(sp1BC, &spC4, &spB8); sp15C[3].x = spD0.x + spB8.x; sp15C[3].y = spD0.y + spB8.y; sp15C[3].z = spD0.z + spB8.z; } GXBegin(GX_QUADS, GX_VTXFMT0, 4); s16 var_r17 = 0x1FF; if (dKy_darkworld_check() == 1 || var_r28 == 1) { var_r17 = 0xFA; } GXPosition3f32(sp15C[0].x, sp15C[0].y, sp15C[0].z); GXTexCoord2s16(0, 0); GXPosition3f32(sp15C[1].x, sp15C[1].y, sp15C[1].z); GXTexCoord2s16(var_r17, 0); GXPosition3f32(sp15C[2].x, sp15C[2].y, sp15C[2].z); GXTexCoord2s16(var_r17, var_r17); GXPosition3f32(sp15C[3].x, sp15C[3].y, sp15C[3].z); GXTexCoord2s16(0, var_r17); GXEnd(); } } } GXSetClipMode(GX_CLIP_ENABLE); J3DShape::resetVcdVatCache(); } } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_drawHousi(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_drawHousi__FPA4_fPPUc.s" } #pragma pop #endif /* ############################################################################################## */ /* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8037A5F9 = "D_MN11"; #pragma pop /* 804249B0-804249BC 0516D0 000C+00 0/1 0/0 0/0 .bss @8942 */ #pragma push #pragma force_active on static u8 lit_8942[12]; #pragma pop /* 804249BC-804249C8 0516DC 000C+00 0/1 0/0 0/0 .bss @8945 */ #pragma push #pragma force_active on static u8 lit_8945[12]; #pragma pop /* 804249C8-804249D4 0516E8 000C+00 0/1 0/0 0/0 .bss @8946 */ #pragma push #pragma force_active on static u8 lit_8946[12]; #pragma pop /* 804249D4-804249E0 0516F4 000C+00 0/1 0/0 0/0 .bss @8947 */ #pragma push #pragma force_active on static u8 lit_8947[12]; #pragma pop /* 804249E0-80424A10 051700 0030+00 0/1 0/0 0/0 .bss add_table$8941 */ #pragma push #pragma force_active on static u8 add_table_8941[48]; #pragma pop /* 80450F08-80450F0C 000408 0004+00 1/1 0/0 0/0 .sbss rot$8936 */ static f32 rot_8936; /* 80450F0C-80450F10 -00001 0004+00 1/1 0/0 0/0 .sbss None */ /* 80450F0C 0001+00 data_80450F0C None */ /* 80450F0D 0003+00 data_80450F0D None */ static u8 struct_80450F0C[4]; /* 80450F10-80450F14 000410 0004+00 1/1 0/0 0/0 .sbss S_fubuki_ratio$8948 */ static f32 S_fubuki_ratio; /* 80450F14-80450F18 000414 0004+00 1/1 0/0 0/0 .sbss None */ static u8 data_80450F14[4]; /* 80452500-80452504 000B00 0004+00 1/1 0/0 0/0 .sdata2 @8939 */ SECTION_SDATA2 static u32 lit_8939 = 0xFFFFFFFF; /* 80452504-80452508 000B04 0004+00 1/1 0/0 0/0 .sdata2 @8940 */ SECTION_SDATA2 static u32 lit_8940 = 0xFFFFFFFF; /* 80452508-8045250C 000B08 0004+00 1/1 0/0 0/0 .sdata2 @9384 */ SECTION_SDATA2 static f32 lit_9384 = -20.0f; /* 8045250C-80452510 000B0C 0004+00 1/1 0/0 0/0 .sdata2 @9385 */ SECTION_SDATA2 static f32 lit_9385 = 178.5f; /* 80452510-80452514 000B10 0004+00 1/1 0/0 0/0 .sdata2 @9386 */ SECTION_SDATA2 static f32 lit_9386 = 127.5f; /* 80452514-80452518 000B14 0004+00 3/3 0/0 0/0 .sdata2 @9387 */ SECTION_SDATA2 static f32 lit_9387 = 719.0f; /* 80452518-8045251C 000B18 0004+00 1/1 0/0 0/0 .sdata2 @9388 */ SECTION_SDATA2 static f32 lit_9388 = 220.0f; /* 8045251C-80452520 000B1C 0004+00 1/1 0/0 0/0 .sdata2 @9389 */ SECTION_SDATA2 static f32 lit_9389 = 2079.0f; /* 80452520-80452524 000B20 0004+00 1/1 0/0 0/0 .sdata2 @9390 */ SECTION_SDATA2 static f32 lit_9390 = 3013.0f; /* 80452524-80452528 000B24 0004+00 1/1 0/0 0/0 .sdata2 @9391 */ SECTION_SDATA2 static f32 lit_9391 = 864.0f; /* 80452528-8045252C 000B28 0004+00 1/1 0/0 0/0 .sdata2 @9392 */ SECTION_SDATA2 static f32 lit_9392 = -6000.0f; /* 8045252C-80452530 000B2C 0004+00 1/1 0/0 0/0 .sdata2 @9393 */ SECTION_SDATA2 static f32 lit_9393 = -4145.0f; /* 80452530-80452534 000B30 0004+00 1/1 0/0 0/0 .sdata2 @9394 */ SECTION_SDATA2 static f32 lit_9394 = -2960.0f; /* 80452534-80452538 000B34 0004+00 1/1 0/0 0/0 .sdata2 @9395 */ SECTION_SDATA2 static f32 lit_9395 = -880.0f; /* 80452538-8045253C 000B38 0004+00 1/1 0/0 0/0 .sdata2 @9396 */ SECTION_SDATA2 static f32 lit_9396 = -4920.0f; /* 8045253C-80452540 000B3C 0004+00 1/1 0/0 0/0 .sdata2 @9397 */ SECTION_SDATA2 static f32 lit_9397 = -2000.0f; /* 80452540-80452544 000B40 0004+00 1/1 0/0 0/0 .sdata2 @9398 */ SECTION_SDATA2 static f32 lit_9398 = 4.0f; /* 80452544-80452548 000B44 0004+00 1/1 0/0 0/0 .sdata2 @9399 */ SECTION_SDATA2 static f32 lit_9399 = 14.0f; /* 80452548-8045254C 000B48 0004+00 1/1 0/0 0/0 .sdata2 @9400 */ SECTION_SDATA2 static f32 lit_9400 = -24.0f; /* 8045254C-80452550 000B4C 0004+00 1/1 0/0 0/0 .sdata2 @9401 */ SECTION_SDATA2 static f32 lit_9401 = 952.0f; /* 80452550-80452554 000B50 0004+00 1/1 0/0 0/0 .sdata2 @9402 */ SECTION_SDATA2 static f32 lit_9402 = -52.0f; /* 80067488-800685DC 061DC8 1154+00 0/0 1/1 0/0 .text dKyr_drawSnow__FPA4_fPPUc */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_drawSnow(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_drawSnow__FPA4_fPPUc.s" } #pragma pop /* ############################################################################################## */ /* 8037A568-8037A578 006BC8 0010+00 1/1 0/0 0/0 .rodata star_col$9440 */ SECTION_RODATA static u8 const star_col[16] = { 0xFF, 0xBE, 0xC8, 0xA0, 0xC8, 0xFF, 0xBE, 0x78, 0xC8, 0xBE, 0xFF, 0x50, 0xFF, 0xFF, 0xFF, 0xC8, }; COMPILER_STRIP_GATE(0x8037A568, &star_col); /* 80424A10-80424A1C 051730 000C+00 0/1 0/0 0/0 .bss @9425 */ #pragma push #pragma force_active on static u8 lit_9425[12]; #pragma pop /* 80424A1C-80424A28 05173C 000C+00 0/1 0/0 0/0 .bss @9428 */ #pragma push #pragma force_active on static u8 lit_9428[12]; #pragma pop /* 80424A28-80424A34 051748 000C+00 0/1 0/0 0/0 .bss @9429 */ #pragma push #pragma force_active on static u8 lit_9429[12]; #pragma pop /* 80424A34-80424A40 051754 000C+00 0/1 0/0 0/0 .bss @9430 */ #pragma push #pragma force_active on static u8 lit_9430[12]; #pragma pop /* 80424A40-80424A4C 051760 000C+00 0/1 0/0 0/0 .bss @9431 */ #pragma push #pragma force_active on static u8 lit_9431[12]; #pragma pop /* 80424A4C-80424A58 05176C 000C+00 0/1 0/0 0/0 .bss @9432 */ #pragma push #pragma force_active on static u8 lit_9432[12]; #pragma pop /* 80424A58-80424A64 051778 000C+00 0/1 0/0 0/0 .bss @9433 */ #pragma push #pragma force_active on static u8 lit_9433[12]; #pragma pop /* 80424A64-80424A70 051784 000C+00 0/1 0/0 0/0 .bss @9434 */ #pragma push #pragma force_active on static u8 lit_9434[12]; #pragma pop /* 80424A70-80424A7C 051790 000C+00 0/1 0/0 0/0 .bss @9435 */ #pragma push #pragma force_active on static u8 lit_9435[12]; #pragma pop /* 80424A7C-80424A88 05179C 000C+00 0/1 0/0 0/0 .bss @9436 */ #pragma push #pragma force_active on static u8 lit_9436[12]; #pragma pop /* 80424A88-80424A94 0517A8 000C+00 0/1 0/0 0/0 .bss @9437 */ #pragma push #pragma force_active on static u8 lit_9437[12]; #pragma pop /* 80424A94-80424AA0 0517B4 000C+00 0/1 0/0 0/0 .bss @9438 */ #pragma push #pragma force_active on static u8 lit_9438[12]; #pragma pop /* 80424AA0-80424AAC 0517C0 000C+00 0/1 0/0 0/0 .bss @9439 */ #pragma push #pragma force_active on static u8 lit_9439[12]; #pragma pop /* 80424AAC-80424B00 0517CC 004E+06 0/1 0/0 0/0 .bss hokuto_position$9424 */ #pragma push #pragma force_active on static u8 hokuto_position[78 + 6 /* padding */]; #pragma pop /* 80450F18-80450F1C 000418 0004+00 1/1 0/0 0/0 .sbss rot$9421 */ static f32 rot_9421; /* 80450F1C-80450F20 -00001 0004+00 1/1 0/0 0/0 .sbss None */ /* 80450F1C 0001+00 data_80450F1C None */ /* 80450F1D 0003+00 data_80450F1D None */ static u8 struct_80450F1C[4]; /* 80452554-80452558 000B54 0004+00 2/2 0/0 0/0 .sdata2 @9833 */ SECTION_SDATA2 static f32 lit_9833 = 0.65f; /* 80452558-8045255C 000B58 0004+00 1/1 0/0 0/0 .sdata2 @9834 */ SECTION_SDATA2 static f32 lit_9834 = 0.28f; /* 8045255C-80452560 000B5C 0004+00 1/1 0/0 0/0 .sdata2 @9835 */ SECTION_SDATA2 static f32 lit_9835 = 540.0f; /* 80452560-80452564 000B60 0004+00 1/1 0/0 0/0 .sdata2 @9836 */ SECTION_SDATA2 static f32 lit_9836 = 0.03125f; /* 80452564-80452568 000B64 0004+00 1/1 0/0 0/0 .sdata2 @9837 */ SECTION_SDATA2 static f32 lit_9837 = 0.004950494971126318f; /* 800685DC-8006950C 062F1C 0F30+00 0/0 1/1 0/0 .text dKyr_drawStar__FPA4_fPPUc */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_drawStar(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_drawStar__FPA4_fPPUc.s" } #pragma pop /* ############################################################################################## */ /* 80450F20-80450F24 000420 0004+00 1/1 0/0 0/0 .sbss rot$9847 */ static f32 rot_9847; /* 80450F24-80450F28 000424 0004+00 1/1 0/0 0/0 .sbss None */ static u8 data_80450F24[4]; /* 80452568-8045256C 000B68 0004+00 1/1 0/0 0/0 .sdata2 @9850 */ SECTION_SDATA2 static u32 lit_9850 = 0xFFFFFFFF; /* 8045256C-80452570 000B6C 0004+00 1/1 0/0 0/0 .sdata2 @9851 */ SECTION_SDATA2 static u32 lit_9851 = 0xFFFFFFFF; /* 80452570-80452574 000B70 0004+00 1/1 0/0 0/0 .sdata2 @9852 */ SECTION_SDATA2 static u32 lit_9852 = 0xFFFFFFFF; /* 80452574-80452578 000B74 0004+00 2/2 0/0 0/0 .sdata2 @10030 */ SECTION_SDATA2 static f32 lit_10030 = 0.55f; /* 80452578-8045257C 000B78 0004+00 2/2 0/0 0/0 .sdata2 @10031 */ SECTION_SDATA2 static f32 lit_10031 = 0.49f; /* 8006950C-8006A090 063E4C 0B84+00 0/0 1/1 0/0 .text drawCloudShadow__FPA4_fPPUc */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void drawCloudShadow(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/drawCloudShadow__FPA4_fPPUc.s" } #pragma pop /* ############################################################################################## */ /* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8037A600 = "D_MN07"; #pragma pop /* 80450F28-80450F2C 000428 0004+00 1/1 0/0 0/0 .sbss howa_loop_cnt$10108 */ static f32 howa_loop_cnt; /* 80450F2C-80450F30 00042C 0004+00 1/1 0/0 0/0 .sbss None */ static u8 data_80450F2C[4]; /* 8045257C-80452580 000B7C 0004+00 1/1 0/0 0/0 .sdata2 @10593 */ SECTION_SDATA2 static f32 lit_10593 = 240.0f; /* 80452580-80452584 000B80 0004+00 1/1 0/0 0/0 .sdata2 @10594 */ SECTION_SDATA2 static f32 lit_10594 = 0.0000000001; /* 80452584-80452588 000B84 0004+00 1/1 0/0 0/0 .sdata2 @10595 */ SECTION_SDATA2 static f32 lit_10595 = 0.0625f; /* 80452588-8045258C 000B88 0004+00 1/1 0/0 0/0 .sdata2 @10596 */ SECTION_SDATA2 static f32 lit_10596 = 0.84f; /* 8045258C-80452590 000B8C 0004+00 1/1 0/0 0/0 .sdata2 @10597 */ SECTION_SDATA2 static f32 lit_10597 = 0.92f; /* 80452590-80452594 000B90 0004+00 1/1 0/0 0/0 .sdata2 @10598 */ SECTION_SDATA2 static f32 lit_10598 = 1.9f; /* 80452594-80452598 000B94 0004+00 1/1 0/0 0/0 .sdata2 @10599 */ SECTION_SDATA2 static f32 lit_10599 = 16.0f; /* 80452598-8045259C 000B98 0004+00 2/2 0/0 0/0 .sdata2 @10600 */ SECTION_SDATA2 static f32 lit_10600 = 0.9f; /* 8045259C-804525A0 000B9C 0004+00 1/1 0/0 0/0 .sdata2 @10601 */ SECTION_SDATA2 static f32 lit_10601 = -4.0f; /* 804525A0-804525A4 000BA0 0004+00 1/1 0/0 0/0 .sdata2 @10602 */ SECTION_SDATA2 static f32 lit_10602 = 1.21f; /* 804525A4-804525A8 000BA4 0004+00 1/1 0/0 0/0 .sdata2 @10603 */ SECTION_SDATA2 static f32 lit_10603 = 708.0f; /* 804525A8-804525AC 000BA8 0004+00 1/1 0/0 0/0 .sdata2 @10604 */ SECTION_SDATA2 static f32 lit_10604 = 558.0f; /* 8006A090-8006B190 0649D0 1100+00 0/0 1/1 0/0 .text drawVrkumo__FPA4_fR8_GXColorPPUc */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void drawVrkumo(Mtx param_0, _GXColor& param_1, u8** param_2) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/drawVrkumo__FPA4_fR8_GXColorPPUc.s" } #pragma pop /* 8006B190-8006B1A8 065AD0 0018+00 0/0 1/1 0/0 .text dKyr_thunder_init__Fv */ void dKyr_thunder_init() { g_env_light.mThunderEff.mStateTimer = 0; g_env_light.mThunderEff.field_0x2 = 0; } /* ############################################################################################## */ /* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8037A607 = "R_SP"; #pragma pop /* 804525AC-804525B0 000BAC 0004+00 1/1 0/0 0/0 .sdata2 @10732 */ SECTION_SDATA2 static f32 lit_10732 = 90000.0f; /* 804525B0-804525B4 000BB0 0004+00 1/1 0/0 0/0 .sdata2 @10733 */ SECTION_SDATA2 static f32 lit_10733 = 0.007000000216066837f; /* 804525B4-804525B8 000BB4 0004+00 1/1 0/0 0/0 .sdata2 @10734 */ SECTION_SDATA2 static f32 lit_10734 = 195520.0f; /* 804525B8-804525BC 000BB8 0004+00 1/1 0/0 0/0 .sdata2 @10735 */ SECTION_SDATA2 static f32 lit_10735 = 4818.0f; /* 804525BC-804525C0 000BBC 0004+00 1/1 0/0 0/0 .sdata2 @10736 */ SECTION_SDATA2 static f32 lit_10736 = 1385.0f; /* 804525C0-804525C4 000BC0 0004+00 1/1 0/0 0/0 .sdata2 @10737 */ SECTION_SDATA2 static f32 lit_10737 = 75.0f; /* 804525C4-804525C8 000BC4 0004+00 1/1 0/0 0/0 .sdata2 @10738 */ SECTION_SDATA2 static f32 lit_10738 = -48.0f; /* 804525C8-804525CC 000BC8 0004+00 1/1 0/0 0/0 .sdata2 @10739 */ SECTION_SDATA2 static f32 lit_10739 = 3.0f / 20.0f; /* 8006B1A8-8006B8DC 065AE8 0734+00 0/0 1/1 0/0 .text dKyr_thunder_move__Fv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_thunder_move() { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_thunder_move__Fv.s" } #pragma pop /* 8006B8DC-8006B8E0 06621C 0004+00 0/0 1/1 0/0 .text dKyr_shstar_init__Fv */ void dKyr_shstar_init() {} /* 8006B8E0-8006B8E4 066220 0004+00 0/0 1/1 0/0 .text dKyr_shstar_move__Fv */ void dKyr_shstar_move() {} /* 8006B8E4-8006B924 066224 0040+00 0/0 1/1 0/0 .text dKyr_odour_init__Fv */ // matches with literals #ifdef NONMATCHING void dKyr_odour_init() { dScnKy_env_light_c* env_light = dKy_getEnvlight(); dKankyo_odour_Packet* odour_p = env_light->mpOdourPacket; for (int i = 0; i < 2000; i++) { odour_p->mOdourEff[i].mStatus = 0; odour_p->mOdourEff[i].field_0x28 = 0.0f; odour_p->mOdourEff[i].field_0x2c = 0.0f; odour_p->mOdourEff[i].field_0x24 = 0.0f; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_odour_init() { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_odour_init__Fv.s" } #pragma pop #endif /* ############################################################################################## */ /* 804525CC-804525D0 000BCC 0004+00 1/1 0/0 0/0 .sdata2 @10872 */ SECTION_SDATA2 static f32 lit_10872 = 78.0f; /* 804525D0-804525D4 000BD0 0004+00 1/1 0/0 0/0 .sdata2 @10873 */ SECTION_SDATA2 static f32 lit_10873 = 3.0f / 50.0f; /* 8006B924-8006BE0C 066264 04E8+00 0/0 1/1 0/0 .text dKyr_odour_move__Fv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_odour_move() { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_odour_move__Fv.s" } #pragma pop /* ############################################################################################## */ /* 80450F30-80450F34 000430 0004+00 1/1 0/0 0/0 .sbss rot$10882 */ static f32 rot_10882; /* 80450F34-80450F38 000434 0004+00 1/1 0/0 0/0 .sbss None */ static u8 data_80450F34[4]; /* 8006BE0C-8006C790 06674C 0984+00 0/0 1/1 0/0 .text dKyr_odour_draw__FPA4_fPPUc */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_odour_draw(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_odour_draw__FPA4_fPPUc.s" } #pragma pop /* 8006C790-8006C85C 0670D0 00CC+00 0/0 1/1 0/0 .text dKyr_mud_init__Fv */ // matches with literals #ifdef NONMATCHING void dKyr_mud_init() { dScnKy_env_light_c* light = dKy_getEnvlight(); light->mpMudPacket->mpMoyaRes = (u8*)dComIfG_getObjectRes("Always", 0x53); for (int i = 0; i < 100; i++) { light->mpMudPacket->mEffect[i].mStatus = 0; } light->mpMudPacket->mEffectNum = 0; if (!dComIfGs_isStageBossEnemy()) { light->mpMudPacket->field_0x1c3c = 1.0f; } else { light->mpMudPacket->field_0x1c3c = 0.0f; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_mud_init() { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_mud_init__Fv.s" } #pragma pop #endif /* ############################################################################################## */ /* 804525D4-804525D8 000BD4 0004+00 1/1 0/0 0/0 .sdata2 @11302 */ SECTION_SDATA2 static f32 lit_11302 = 770.0f; /* 8006C85C-8006D01C 06719C 07C0+00 0/0 1/1 0/0 .text dKyr_mud_move__Fv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_mud_move() { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_mud_move__Fv.s" } #pragma pop /* ############################################################################################## */ /* 80450F38-80450F3C 000438 0004+00 1/1 0/0 0/0 .sbss rot$11307 */ static f32 rot_11307; /* 80450F3C-80450F40 00043C 0004+00 1/1 0/0 0/0 .sbss None */ static u8 data_80450F3C[4]; /* 804525D8-804525DC 000BD8 0004+00 1/1 0/0 0/0 .sdata2 @11508 */ SECTION_SDATA2 static f32 lit_11508 = 13.0f / 10.0f; /* 804525DC-804525E0 000BDC 0004+00 1/1 0/0 0/0 .sdata2 @11509 */ SECTION_SDATA2 static f32 lit_11509 = 12.0f; /* 8006D01C-8006D914 06795C 08F8+00 0/0 1/1 0/0 .text dKyr_mud_draw__FPA4_fPPUc */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_mud_draw(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_mud_draw__FPA4_fPPUc.s" } #pragma pop /* 8006D914-8006DA04 068254 00F0+00 0/0 1/1 1/1 .text dKyr_evil_init__Fv */ void dKyr_evil_init() { if (g_env_light.mpEvilPacket != NULL) { g_env_light.mpEvilPacket->mpMoyaRes = (u8*)dComIfG_getObjectRes("Always", 0x53); g_env_light.mpEvilPacket->mpKumoLightRes = (u8*)dComIfG_getStageRes("F_kumolight_01.bti"); if (g_env_light.mpEvilPacket->mpKumoLightRes == NULL) { g_env_light.mpEvilPacket->mpKumoLightRes = (u8*)dComIfG_getObjectRes("Always", 0x53); } for (int i = 0; i < 2000; i++) { g_env_light.mpEvilPacket->mEffect[i].mStatus = 0; } g_env_light.mpEvilPacket->mEffectNum = 0; } } /* 8006DA04-8006DA7C 068344 0078+00 0/0 1/1 0/0 .text dKyr_evil_move__Fv */ void dKyr_evil_move() { dKankyo_evil_Packet* evil_p = g_env_light.mpEvilPacket; cXyz vec = dKyw_get_wind_vecpow(); dBgS_GndChk gndchk; for (int i = 0; i < evil_p->mEffectNum; i++) { } } /* ############################################################################################## */ /* 80450F40-80450F44 000440 0004+00 1/1 0/0 0/0 .sbss rot$11586 */ static f32 rot_11586; /* 80450F44-80450F48 000444 0004+00 1/1 0/0 0/0 .sbss None */ static u8 data_80450F44[4]; /* 804525E0-804525E4 000BE0 0004+00 1/1 0/0 0/0 .sdata2 @11882 */ SECTION_SDATA2 static f32 lit_11882 = -5000.0f; /* 804525E4-804525E8 000BE4 0004+00 2/2 0/0 0/0 .sdata2 @11883 */ SECTION_SDATA2 static f32 lit_11883 = 9000.0f; /* 804525E8-804525EC 000BE8 0004+00 2/2 0/0 0/0 .sdata2 @11884 */ SECTION_SDATA2 static f32 lit_11884 = 688.0f; /* 804525EC-804525F0 000BEC 0004+00 2/2 0/0 0/0 .sdata2 @11885 */ SECTION_SDATA2 static f32 lit_11885 = 538.0f; /* 804525F0-804525F4 000BF0 0004+00 1/1 0/0 0/0 .sdata2 @11886 */ SECTION_SDATA2 static f32 lit_11886 = 159.0f; /* 804525F4-804525F8 000BF4 0004+00 1/1 0/0 0/0 .sdata2 @11887 */ SECTION_SDATA2 static f32 lit_11887 = 135.0f; /* 8006DA7C-8006E448 0683BC 09CC+00 1/1 0/0 0/0 .text dKyr_evil_draw2__FPA4_fPPUc */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void dKyr_evil_draw2(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_evil_draw2__FPA4_fPPUc.s" } #pragma pop /* ############################################################################################## */ /* 804525F8-804525FC 000BF8 0004+00 1/1 0/0 0/0 .sdata2 @11953 */ SECTION_SDATA2 static f32 lit_11953 = 10000000.0f; /* 8006E448-8006E6B0 068D88 0268+00 1/1 0/0 0/0 .text dKyr_near_bosslight_check__F4cXyz */ // matches with literals #ifdef NONMATCHING static f32 dKyr_near_bosslight_check(cXyz param_0) { f32 dist = 10000000.0f; dScnKy_env_light_c* env_light = dKy_getEnvlight(); for (int i = 0; i < 6; i++) { if (env_light->field_0x0c18[i].field_0x26 == 1) { if (env_light->field_0x0c18[i].mPos.abs(param_0) < dist) { dist = env_light->field_0x0c18[i].mPos.abs(param_0); } } } return dist; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm f32 dKyr_near_bosslight_check(cXyz param_0) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_near_bosslight_check__F4cXyz.s" } #pragma pop #endif /* ############################################################################################## */ /* 80450F48-80450F4C 000448 0004+00 1/1 0/0 0/0 .sbss rot$11958 */ static f32 rot_11958; /* 80450F4C-80450F50 00044C 0004+00 1/1 0/0 0/0 .sbss None */ static u8 data_80450F4C[4]; /* 804525FC-80452600 000BFC 0004+00 1/1 0/0 0/0 .sdata2 @12252 */ SECTION_SDATA2 static f32 lit_12252 = 69.0f; /* 80452600-80452604 000C00 0004+00 1/1 0/0 0/0 .sdata2 @12253 */ SECTION_SDATA2 static f32 lit_12253 = 137.0f; /* 80452604-80452608 000C04 0004+00 1/1 0/0 0/0 .sdata2 @12254 */ SECTION_SDATA2 static f32 lit_12254 = 750.0f; /* 80452608-8045260C 000C08 0004+00 1/1 0/0 0/0 .sdata2 @12255 */ SECTION_SDATA2 static f32 lit_12255 = 9.0f / 5.0f; /* 8045260C-80452610 000C0C 0004+00 1/1 0/0 0/0 .sdata2 @12256 */ SECTION_SDATA2 static f32 lit_12256 = 165.0f; /* 80452610-80452614 000C10 0004+00 1/1 0/0 0/0 .sdata2 @12257 */ SECTION_SDATA2 static f32 lit_12257 = 155.0f; /* 80452614-80452618 000C14 0004+00 1/1 0/0 0/0 .sdata2 @12258 */ SECTION_SDATA2 static f32 lit_12258 = -3000.0f; /* 80452618-8045261C 000C18 0004+00 1/1 0/0 0/0 .sdata2 @12259 */ SECTION_SDATA2 static f32 lit_12259 = 127.0f; /* 8045261C-80452620 000C1C 0004+00 1/1 0/0 0/0 .sdata2 @12260 */ SECTION_SDATA2 static f32 lit_12260 = 115.0f; /* 8006E6B0-8006F160 068FF0 0AB0+00 0/0 1/1 0/0 .text dKyr_evil_draw__FPA4_fPPUc */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dKyr_evil_draw(Mtx param_0, u8** param_1) { nofralloc #include "asm/d/kankyo/d_kankyo_rain/dKyr_evil_draw__FPA4_fPPUc.s" } #pragma pop /* 8006F160-8006F168 069AA0 0008+00 0/0 1/0 0/0 .text getKandelaarFlamePos__9daPy_py_cFv */ cXyz* daPy_py_c::getKandelaarFlamePos() { return NULL; }