mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-23 15:01:33 -04:00
191 lines
6.7 KiB
C++
191 lines
6.7 KiB
C++
//
|
|
// Generated by dtk
|
|
// Translation Unit: d_kyeff.cpp
|
|
//
|
|
|
|
#include "f_op/f_op_kankyo.h"
|
|
#include "f_op/f_op_camera.h"
|
|
#include "d/d_com_inf_game.h"
|
|
#include "d/d_kankyo.h"
|
|
#include "d/d_kankyo_data.h"
|
|
#include "d/d_kankyo_wether.h"
|
|
#include "d/d_procname.h"
|
|
#include "d/d_stage.h"
|
|
#include "m_Do/m_Do_audio.h"
|
|
#include "dolphin/os/OS.h"
|
|
|
|
class dKyeff_c : public kankyo_class {
|
|
public:
|
|
BOOL execute();
|
|
};
|
|
|
|
/* 80197FE4-80198008 .text dKyeff_Draw__FP8dKyeff_c */
|
|
BOOL dKyeff_Draw(dKyeff_c* i_this) {
|
|
dKyw_wether_draw();
|
|
return TRUE;
|
|
}
|
|
|
|
/* 80198008-8019803C .text get_parcent__Ffff */
|
|
static f32 get_parcent(f32 param_0, f32 param_1, f32 param_2) {
|
|
f32 temp_f1;
|
|
f32 temp_f2;
|
|
f32 temp_f4 = param_0 - param_1;
|
|
|
|
if (0.0f != temp_f4) {
|
|
temp_f1 = 1.0f - (param_0 - param_2) / temp_f4;
|
|
if (!(temp_f1 >= 1.0f)) {
|
|
return temp_f1;
|
|
}
|
|
}
|
|
return 1.0f;
|
|
}
|
|
|
|
/* 8019803C-8019808C .text s16_data_ratio_set__Fssf */
|
|
static s16 s16_data_ratio_set(s16 param_0, s16 param_1, f32 param_2) {
|
|
return param_0 + (s16)(param_2 * (param_1 - param_0));
|
|
}
|
|
|
|
|
|
/* 8019808C-8019847C .text menu_vrbox_set__Fv */
|
|
void menu_vrbox_set() {
|
|
f32 blendPalAB, curTime;
|
|
stage_vrbox_info_class* vrbox;
|
|
stage_vrbox_info_class* vrbox0;
|
|
stage_vrbox_info_class* vrbox1;
|
|
|
|
camera_class * pCamera = dComIfGp_getCamera(0);
|
|
|
|
pCamera->mLookat.mEye.x = 9377.0f;
|
|
pCamera->mLookat.mEye.y = 0.0f;
|
|
pCamera->mLookat.mEye.z = 7644.0f;
|
|
pCamera->mLookat.mCenter.x = 4300.0f;
|
|
pCamera->mLookat.mCenter.y = 4200.0f;
|
|
pCamera->mLookat.mCenter.z = 1000.0f;
|
|
|
|
g_env_light.mWind.mWindPower = 0.7f;
|
|
curTime = g_env_light.mCurTime;
|
|
|
|
g_env_light.mCurTime += 0.03f;
|
|
if ((u32)g_env_light.mCurTime >= 360.0f)
|
|
g_env_light.mCurTime = 0.0f;
|
|
|
|
mDoAud_setHour(curTime / 15.0f);
|
|
mDoAud_setMinute(((s32)(curTime * 1000000.0f) % 15000000) / 1000000.0f);
|
|
|
|
g_env_light.mpSchejule = dKyd_schejule_menu_getp();
|
|
|
|
u8 palIdx0, palIdx1;
|
|
for (s32 i = 0; i < 11; i++) {
|
|
if (curTime >= g_env_light.mpSchejule[i].mTimeEnd && curTime <= g_env_light.mpSchejule[i].mTimeBegin) {
|
|
palIdx0 = g_env_light.mpSchejule[i].mPalIdx0;
|
|
palIdx1 = g_env_light.mpSchejule[i].mPalIdx1;
|
|
blendPalAB = get_parcent(g_env_light.mpSchejule[i].mTimeBegin, g_env_light.mpSchejule[i].mTimeEnd, curTime);
|
|
}
|
|
}
|
|
|
|
vrbox = dKyd_dmvrbox_getp();
|
|
g_env_light.mpVrboxInfo = vrbox;
|
|
|
|
vrbox0 = &vrbox[palIdx0];
|
|
vrbox1 = &vrbox[palIdx1];
|
|
g_env_light.mVrSkyColor.r = s16_data_ratio_set(vrbox0->mSkyColor.r, vrbox1->mSkyColor.r, blendPalAB);
|
|
g_env_light.mVrSkyColor.g = s16_data_ratio_set(vrbox0->mSkyColor.g, vrbox1->mSkyColor.g, blendPalAB);
|
|
g_env_light.mVrSkyColor.b = s16_data_ratio_set(vrbox0->mSkyColor.b, vrbox1->mSkyColor.b, blendPalAB);
|
|
g_env_light.mVrkumoColor.r = s16_data_ratio_set(vrbox0->mKumoColor.r, vrbox1->mKumoColor.r, blendPalAB);
|
|
g_env_light.mVrkumoColor.g = s16_data_ratio_set(vrbox0->mKumoColor.g, vrbox1->mKumoColor.g, blendPalAB);
|
|
g_env_light.mVrkumoColor.b = s16_data_ratio_set(vrbox0->mKumoColor.b, vrbox1->mKumoColor.b, blendPalAB);
|
|
g_env_light.mVrkumoCenterColor.r = s16_data_ratio_set(vrbox0->mKumoCenterColor.r, vrbox1->mKumoCenterColor.r, blendPalAB);
|
|
g_env_light.mVrkumoCenterColor.g = s16_data_ratio_set(vrbox0->mKumoCenterColor.g, vrbox1->mKumoCenterColor.g, blendPalAB);
|
|
g_env_light.mVrkumoCenterColor.b = s16_data_ratio_set(vrbox0->mKumoCenterColor.b, vrbox1->mKumoCenterColor.b, blendPalAB);
|
|
g_env_light.mVrKasumiMaeColor.r = (u8)(g_env_light.mVrkumoColor.r * 0.9f);
|
|
g_env_light.mVrKasumiMaeColor.g = (u8)(g_env_light.mVrkumoColor.g * 0.9f);
|
|
g_env_light.mVrKasumiMaeColor.b = (u8)(g_env_light.mVrkumoColor.b * 0.9f);
|
|
g_env_light.mVrUsoUmiColor.r = (u8)(g_env_light.mVrkumoColor.r * 0.9f);
|
|
g_env_light.mVrUsoUmiColor.g = (u8)(g_env_light.mVrkumoColor.g * 0.9f);
|
|
g_env_light.mVrUsoUmiColor.b = (u8)(g_env_light.mVrkumoColor.b * 0.9f);
|
|
g_env_light.mVrkumoColor.a = 0xFF;
|
|
}
|
|
|
|
/* 8019847C-801984CC .text execute__8dKyeff_cFv */
|
|
BOOL dKyeff_c::execute() {
|
|
if (strcmp(dComIfGp_getStartStageName(), "Name") == 0) {
|
|
menu_vrbox_set();
|
|
} else {
|
|
dKyw_wether_move();
|
|
}
|
|
|
|
dKyw_wether_move_draw();
|
|
return TRUE;
|
|
}
|
|
|
|
/* 801984CC-801984EC .text dKyeff_Execute__FP8dKyeff_c */
|
|
BOOL dKyeff_Execute(dKyeff_c* i_this) {
|
|
return i_this->execute();
|
|
}
|
|
|
|
/* 801984EC-801984F4 .text dKyeff_IsDelete__FP8dKyeff_c */
|
|
BOOL dKyeff_IsDelete(dKyeff_c* i_this) {
|
|
return TRUE;
|
|
}
|
|
|
|
/* 801984F4-80198518 .text dKyeff_Delete__FP8dKyeff_c */
|
|
BOOL dKyeff_Delete(dKyeff_c* i_this) {
|
|
dKyw_wether_delete();
|
|
return TRUE;
|
|
}
|
|
|
|
/* 80198518-80198758 .text dKyeff_Create__FP12kankyo_class */
|
|
s32 dKyeff_Create(kankyo_class* i_ky) {
|
|
dKyw_wether_init();
|
|
|
|
if (strcmp(dComIfGp_getStartStageName(), "Name") == 0) {
|
|
OSCalendarTime cal;
|
|
OSTime curTime = OSGetTime();
|
|
OSTicksToCalendarTime(curTime, &cal);
|
|
|
|
g_env_light.mWind.mWindVec.set(1.0f, 0.0f, 0.0f);
|
|
g_env_light.mWind.mWindPower = 0.7f;
|
|
|
|
g_env_light.mCurTime = 15.0f * cal.hours;
|
|
} else if (dKy_checkEventNightStop()) {
|
|
u32 stType = dStage_stagInfo_GetSTType(dComIfGp_getStage().getStagInfo());
|
|
if (stType == dStageType_OUTDOORS_e || stType == dStageType_SEA_e) {
|
|
dKyw_rain_set(250);
|
|
g_env_light.mThunderEff.mMode = 1;
|
|
} else if (stType == dStageType_MISC_e) {
|
|
if (strcmp(dComIfGp_getStartStageName(), "Ocrogh") == 0 || strcmp(dComIfGp_getStartStageName(), "Omori") == 0 ||
|
|
strcmp(dComIfGp_getStartStageName(), "Orichh") == 0 || strcmp(dComIfGp_getStartStageName(), "Atorizk") == 0 ||
|
|
strcmp(dComIfGp_getStartStageName(), "LinkRM") == 0 || strcmp(dComIfGp_getStartStageName(), "Ojhous2") == 0 ||
|
|
strcmp(dComIfGp_getStartStageName(), "Onobuta") == 0 || strcmp(dComIfGp_getStartStageName(), "Omasao") == 0 ||
|
|
strcmp(dComIfGp_getStartStageName(), "Obombh") == 0 || strcmp(dComIfGp_getStartStageName(), "Opub") == 0) {
|
|
dKyw_rain_set(250);
|
|
g_env_light.mThunderEff.mMode = 10;
|
|
}
|
|
}
|
|
}
|
|
|
|
return cPhs_COMPLEATE_e;
|
|
}
|
|
|
|
kankyo_method_class l_dKyeff_Method = {
|
|
(process_method_func)dKyeff_Create,
|
|
(process_method_func)dKyeff_Delete,
|
|
(process_method_func)dKyeff_Execute,
|
|
(process_method_func)dKyeff_IsDelete,
|
|
(process_method_func)dKyeff_Draw,
|
|
};
|
|
|
|
kankyo_process_profile_definition g_profile_KYEFF = {
|
|
fpcLy_CURRENT_e,
|
|
12,
|
|
fpcPi_CURRENT_e,
|
|
PROC_KYEFF,
|
|
&g_fpcLf_Method.mBase,
|
|
sizeof(dKyeff_c),
|
|
0,
|
|
0,
|
|
&g_fopKy_Method,
|
|
0x005,
|
|
&l_dKyeff_Method,
|
|
};
|