d_kyeff, d_a_kytag00 OK

This commit is contained in:
LagoLunatic
2024-01-08 23:52:18 -05:00
parent a41ec2974e
commit b8f658f54a
5 changed files with 255 additions and 25 deletions
+2 -2
View File
@@ -453,7 +453,7 @@ config.libs = [
Object(NonMatching, "d/d_file_select.cpp"),
Object(NonMatching, "d/d_gameover.cpp"),
Object(NonMatching, "d/d_kankyo.cpp"),
Object(NonMatching, "d/d_kyeff.cpp"),
Object(Matching, "d/d_kyeff.cpp"),
Object(Matching, "d/d_kyeff2.cpp"),
Object(NonMatching, "d/d_ky_thunder.cpp"),
Object(Matching, "d/d_letter.cpp"),
@@ -1239,7 +1239,7 @@ config.libs = [
ActorRel(NonMatching, "d_a_ki"),
ActorRel(NonMatching, "d_a_knob00"),
ActorRel(NonMatching, "d_a_kui"),
ActorRel(NonMatching, "d_a_kytag00"),
ActorRel(Matching, "d_a_kytag00"),
ActorRel(Matching, "d_a_kytag01"),
ActorRel(NonMatching, "d_a_kytag02"),
ActorRel(NonMatching, "d_a_kytag03"),
+238 -11
View File
@@ -17,10 +17,9 @@
/* 00000078-0000024C .text get_check_pos__FP13kytag00_class */
cXyz get_check_pos(kytag00_class* i_this) {
/* Nonmatching - regswap */
cXyz ret;
camera_class * pCamera = dComIfGp_getCamera(0);
camera_class * pCamera = (camera_class*)dComIfGp_getCamera(0);
fopAc_ac_c * pPlayer = dComIfGp_getPlayer(0);
f32 cameraDist = i_this->current.pos.abs(pCamera->mLookat.mEye);
@@ -41,14 +40,105 @@ cXyz get_check_pos(kytag00_class* i_this) {
/* 0000024C-000005E4 .text wether_tag_move__FP13kytag00_class */
void wether_tag_move(kytag00_class* i_this) {
/* Nonmatching */
cXyz chk_pos_xz;
cXyz chk_pos = get_check_pos(i_this);
cXyz chk_pos_xz(chk_pos.x, i_this->current.pos.y, chk_pos.z);
f32 fade_y = i_this->mInnerFadeY * 100.0f;
chk_pos_xz.x = chk_pos.x;
chk_pos_xz.y = i_this->current.pos.y;
chk_pos_xz.z = chk_pos.z;
f32 dist_xz = i_this->current.pos.abs(chk_pos_xz);
if (dist_xz <= i_this->mOuterRadius && (chk_pos.y > (i_this->current.pos.y - fade_y) && chk_pos.y < (i_this->current.pos.y + i_this->mScale.y * 5000.0f + fade_y)) && i_this->mTarget > 0.0f) {
if (dist_xz < i_this->mOuterRadius &&
(chk_pos.y >= (i_this->current.pos.y - fade_y) &&
chk_pos.y < (i_this->current.pos.y + i_this->mScale.y * 5000.0f + fade_y)) &&
i_this->mTarget > 0.0f)
{
f32 blend = 1.0f;
f32 f9 = 1.0f;
f32 fade_radius = i_this->mOuterRadius - i_this->mInnerRadius;
if (fade_radius != 0.0f) {
blend = (i_this->mOuterRadius - dist_xz) / fade_radius;
if (blend > 1.0f) {
blend = 1.0f;
}
}
if (chk_pos.y <= i_this->current.pos.y) {
if (fade_y != 0.0f) {
f9 = (i_this->current.pos.y - chk_pos.y) / fade_y;
if (f9 < 0.0f) {
f9 = 0.0f;
}
f9 = 1.0f - f9;
}
} else {
if (fade_y != 0.0f) {
f9 = (chk_pos.y - (i_this->current.pos.y + i_this->mScale.y * 5000.0f)) / fade_y;
if (f9 < 0.0f) {
f9 = 0.0f;
}
f9 = 1.0f - f9;
}
}
blend *= f9 * i_this->mTarget;
if (g_env_light.mEnvrIdxPrev != g_env_light.mEnvrIdxCurr) {
return;
}
i_this->mbPselSet = true;
switch (i_this->mPselIdx) {
case 0:
g_env_light.mColpatPrevGather = g_env_light.mColpatWeather;
g_env_light.mColpatCurrGather = 0;
g_env_light.mColPatBlendGather = blend;
g_env_light.mColPatModeGather = 1;
break;
case 1:
if (blend > 0.5f) {
g_env_light.mColpatPrevGather = g_env_light.mColpatWeather;
g_env_light.mColpatCurrGather = 1;
g_env_light.mColPatBlendGather = blend;
} else {
blend = 1.0f - blend;
g_env_light.mColpatPrevGather = 1;
g_env_light.mColpatCurrGather = g_env_light.mColpatWeather;
g_env_light.mColPatBlendGather = blend;
}
g_env_light.mColPatModeGather = 1;
break;
case 2:
if (blend > 0.5f) {
g_env_light.mColpatPrevGather = g_env_light.mColpatWeather;
g_env_light.mColpatCurrGather = 2;
g_env_light.mColPatBlendGather = blend;
} else {
blend = 1.0f - blend;
g_env_light.mColpatPrevGather = 2;
g_env_light.mColpatCurrGather = g_env_light.mColpatWeather;
g_env_light.mColPatBlendGather = blend;
}
g_env_light.mColPatModeGather = 1;
break;
case 3:
if (blend > 0.5f) {
g_env_light.mColpatPrevGather = g_env_light.mColpatWeather;
g_env_light.mColpatCurrGather = 3;
g_env_light.mColPatBlendGather = blend;
} else {
blend = 1.0f - blend;
g_env_light.mColpatPrevGather = 3;
g_env_light.mColpatCurrGather = g_env_light.mColpatWeather;
g_env_light.mColPatBlendGather = blend;
}
g_env_light.mColPatModeGather = 1;
break;
default:
i_this->mbPselSet = false;
break;
}
} else {
if (i_this->mbPselSet) {
i_this->mbPselSet = false;
@@ -66,7 +156,7 @@ void raincnt_set(f32 count) {
if (dKy_checkEventNightStop()) {
s32 newCount2;
if (g_env_light.mRainCount > (newCount2 = (count * count * count) * 250.0f))
if (g_env_light.mRainCount < (newCount2 = (count * count * count) * 250.0f))
newCount = newCount2;
} else {
newCount = (count * count * count) * 250.0f;
@@ -84,7 +174,144 @@ void raincnt_cut() {
/* 000006D8-00000C0C .text wether_tag_efect_move__FP13kytag00_class */
void wether_tag_efect_move(kytag00_class* i_this) {
/* Nonmatching */
cXyz chk_pos_xz;
cXyz chk_pos = get_check_pos(i_this);
f32 fade_y = i_this->mInnerFadeY * 100.0f;
chk_pos_xz.x = chk_pos.x;
chk_pos_xz.y = i_this->current.pos.y;
chk_pos_xz.z = chk_pos.z;
f32 dist_xz = i_this->current.pos.abs(chk_pos_xz);
if (dist_xz < i_this->mOuterRadius &&
(chk_pos.y >= (i_this->current.pos.y - fade_y) &&
chk_pos.y < (i_this->current.pos.y + i_this->mScale.y * 5000.0f + fade_y)) &&
i_this->mTarget > 0.0f)
{
f32 blend = 1.0f;
f32 f9 = 1.0f;
i_this->mbEfSet = 1;
f32 fade_radius = i_this->mOuterRadius - i_this->mInnerRadius;
if (fade_radius != 0.0f) {
blend = (i_this->mOuterRadius - dist_xz) / fade_radius;
if (blend > 1.0f) {
blend = 1.0f;
}
}
if (chk_pos.y <= i_this->current.pos.y) {
if (fade_y != 0.0f) {
f9 = (i_this->current.pos.y - chk_pos.y) / fade_y;
if (f9 < 0.0f) {
f9 = 0.0f;
}
f9 = 1.0f - f9;
}
} else {
if (fade_y != 0.0f) {
f9 = (chk_pos.y - (i_this->current.pos.y + i_this->mScale.y * 5000.0f)) / fade_y;
if (f9 < 0.0f) {
f9 = 0.0f;
}
f9 = 1.0f - f9;
}
}
blend *= f9 * i_this->mTarget;
switch (i_this->mEfMode) {
case 0x1:
raincnt_set(blend);
break;
case 0x2:
g_env_light.mSnowCount = 250.0f * blend;
g_env_light.mMoyaMode = 2;
g_env_light.mMoyaCount = 100.0f * blend;
break;
case 0x3:
g_env_light.mMoyaMode = 0;
g_env_light.mMoyaCount = 100.0f * blend;
break;
case 0x4:
g_env_light.mMoyaMode = 1;
g_env_light.mMoyaCount = 100.0f * blend;
break;
case 0x5:
g_env_light.mMoyaMode = 2;
g_env_light.mMoyaCount = 100.0f * blend;
break;
case 0x6:
if (i_this->orig.roomNo == dComIfGp_roomControl_getStayNo()) {
g_env_light.mHousiCount = 300.0f * blend;
} else {
g_env_light.mHousiCount = 0;
}
break;
case 0x7:
if (g_env_light.mThunderEff.mMode == 0) {
g_env_light.mThunderEff.mMode = 2;
}
break;
case 0x8:
if (g_env_light.mThunderEff.mMode == 0) {
g_env_light.mThunderEff.mMode = 2;
}
raincnt_set(blend);
break;
case 0x9:
g_env_light.mMoyaMode = 0;
g_env_light.mMoyaCount = 100.0f * blend;
raincnt_set(blend);
if (g_env_light.mThunderEff.mMode == 0) {
g_env_light.mThunderEff.mMode = 2;
}
break;
case 0xA:
g_env_light.mMoyaMode = 3;
g_env_light.mMoyaCount = 100.0f * blend;
break;
case 0xB:
g_env_light.mMoyaMode = 4;
g_env_light.mMoyaCount = 100.0f * blend;
break;
}
} else if (i_this->mbEfSet != 0) {
i_this->mbEfSet = 0;
switch (i_this->mEfMode) {
case 0x1:
raincnt_cut();
break;
case 0x2:
g_env_light.mSnowCount = 0;
g_env_light.mMoyaCount = 0;
break;
case 0x3:
case 0x4:
case 0x5:
case 0xA:
g_env_light.mMoyaCount = 0;
break;
case 0x6:
g_env_light.mHousiCount = 0;
break;
case 0x7:
case 0x8:
case 0x9:
if (g_env_light.mThunderEff.mMode == 2) {
g_env_light.mThunderEff.mMode = 0;
}
if (i_this->mEfMode == 8 || i_this->mEfMode == 9) {
raincnt_cut();
}
if (i_this->mEfMode == 9) {
g_env_light.mMoyaCount = 0;
}
break;
}
}
}
/* 00000C0C-00000C30 .text daKytag00_Draw__FP13kytag00_class */
@@ -131,10 +358,10 @@ static s32 daKytag00_Create(fopAc_ac_c* i_ac) {
fopAcM_SetupActor(i_this, kytag00_class);
i_this->field_0x296 = 0;
i_this->mPselIdx = (fopAcM_GetParam(i_this) >> 0) & 0xFF;
i_this->mEfMode = (fopAcM_GetParam(i_this) >> 8) & 0xFF;
i_this->mThickness = (fopAcM_GetParam(i_this) >> 16) & 0xFF;
i_this->mInnerFadeY = (fopAcM_GetParam(i_this) >> 24) & 0xFF;
i_this->mPselIdx = (fopAcM_GetParam(i_ac) >> 0) & 0xFF;
i_this->mEfMode = (fopAcM_GetParam(i_ac) >> 8) & 0xFF;
i_this->mThickness = (fopAcM_GetParam(i_ac) >> 16) & 0xFF;
i_this->mInnerFadeY = (fopAcM_GetParam(i_ac) >> 24) & 0xFF;
i_this->mSwitchNo = (i_this->current.angle.x >> 0) & 0xFF;
i_this->mbInvert = (i_this->current.angle.x >> 8) & 0xFF;
i_this->mMode = (i_this->current.angle.z >> 0) & 0xFF;
+1 -2
View File
@@ -381,8 +381,7 @@ void rain_bg_chk(dKankyo_rain_Packet* pPkt, int idx) {
/* 8008D0DC-8008D53C .text overhead_bg_chk__Fv */
bool overhead_bg_chk() {
/* Nonmatching - regalloc */
camera_class * pCamera = dComIfGp_getCamera(0);
camera_class * pCamera = (camera_class*)dComIfGp_getCamera(0);
bool ret = false;
dBgS_ObjGndChk_All gndChk;
+7 -5
View File
@@ -108,6 +108,7 @@ BOOL dThunder_IsDelete(dThunder_c* i_this) {
/* 80198ABC-80198B68 .text dThunder_Delete__FP10dThunder_c */
BOOL dThunder_Delete(dThunder_c* i_this) {
/* Nonmatching */
mDoAud_seDeleteObject(&i_this->mPos);
mDoAud_seDeleteObject(&i_this->mPosNeg);
i_this->~dThunder_c();
@@ -127,9 +128,8 @@ s32 dThunder_Create(kankyo_class* i_ky) {
/* 80198BC4-801990CC .text create__10dThunder_cFv */
s32 dThunder_c::create() {
/* Nonmatching - regalloc */
dScnKy_env_light_c& envLight = dKy_getEnvlight();
camera_class *pCamera = dComIfGp_getCamera(0);
camera_class *pCamera = (camera_class*)dComIfGp_getCamera(0);
new(this) dThunder_c();
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Always", ALWAYS_BDL_YTHDR00);
@@ -160,10 +160,12 @@ s32 dThunder_c::create() {
mRot = 4000.0f;
mRot = size * cM_rndFX(mRot);
mScale.x = size * (cM_rndF(15.0f) + 5.0f);
f32 f1 = cM_rndF(15.0f);
mScale.x = size * (f1 + 5.0f);
if (cM_rndFX(1.0f) >= 0.5)
mScale.x *= -1.0f;
mScale.y = size * (cM_rndF(60.0f) + 20.0f);
f1 = cM_rndF(60.0f);
mScale.y = size * (f1 + 20.0f);
mScale.z = 1.0f;
dKyr_get_vectle_calc(&pCamera->mLookat.mEye, &pCamera->mLookat.mCenter, &fwd);
@@ -205,7 +207,7 @@ kankyo_method_class l_dThunder_Method = {
(process_method_func)dThunder_Draw,
};
kankyo_process_profile_definition g_profile_THUNDER = {
kankyo_process_profile_definition g_profile_KY_THUNDER = {
fpcLy_CURRENT_e,
7,
fpcPi_CURRENT_e,
+7 -5
View File
@@ -48,8 +48,10 @@ static s16 s16_data_ratio_set(s16 param_0, s16 param_1, f32 param_2) {
/* 8019808C-8019847C .text menu_vrbox_set__Fv */
void menu_vrbox_set() {
/* Nonmatching - regalloc. */
f32 blendPalAB, curTime;
stage_vrbox_info_class* vrbox;
stage_vrbox_info_class* vrbox0;
stage_vrbox_info_class* vrbox1;
camera_class * pCamera = dComIfGp_getCamera(0);
@@ -72,7 +74,7 @@ void menu_vrbox_set() {
g_env_light.mpSchejule = dKyd_schejule_menu_getp();
u8 palIdx1, palIdx0;
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;
@@ -81,11 +83,11 @@ void menu_vrbox_set() {
}
}
stage_vrbox_info_class* vrbox = dKyd_dmvrbox_getp();
vrbox = dKyd_dmvrbox_getp();
g_env_light.mpVrboxInfo = vrbox;
stage_vrbox_info_class* vrbox0 = &vrbox[palIdx0];
stage_vrbox_info_class* vrbox1 = &vrbox[palIdx1];
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);