diff --git a/configure.py b/configure.py index eaddabc991e..bdc41255a19 100755 --- a/configure.py +++ b/configure.py @@ -1835,7 +1835,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_kytag08"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_kytag09"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_kytag12"), - ActorRel(NonMatching, "d_a_kytag13"), + ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_kytag13"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_kytag15"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_kytag16"), ActorRel(NonMatching, "d_a_mant"), diff --git a/include/d/actor/d_a_kytag13.h b/include/d/actor/d_a_kytag13.h index b77b406d618..9a4916f9032 100644 --- a/include/d/actor/d_a_kytag13.h +++ b/include/d/actor/d_a_kytag13.h @@ -11,9 +11,11 @@ * * @details * - */ -class kytag13_class : public fopAc_ac_c { +*/ + +class kytag13_class { public: + /* 0x000 */ fopAc_ac_c actor; /* 0x568 */ u8 field_0x568[0x574 - 0x568]; /* 0x574 */ f32 mSpeed; /* 0x578 */ u16 mMax; diff --git a/src/d/actor/d_a_kytag13.cpp b/src/d/actor/d_a_kytag13.cpp index a3b5ac034f5..4f1ea77a0a1 100644 --- a/src/d/actor/d_a_kytag13.cpp +++ b/src/d/actor/d_a_kytag13.cpp @@ -32,36 +32,33 @@ static void vectle_calc(DOUBLE_POS* pos, cXyz* out) { } } -/* 8085F2B0-80860148 000130 0E98+00 1/1 0/0 0/0 .text - * daKytag13_Execute_standard__FP13kytag13_class */ -// NONMATCHING - some regalloc +/* 8085F2B0-80860148 000130 0E98+00 1/1 0/0 0/0 .text daKytag13_Execute_standard__FP13kytag13_class */ static int daKytag13_Execute_standard(kytag13_class* i_this) { - fopAc_ac_c* a_this = (fopAc_ac_c*)i_this; + fopAc_ac_c* a_this = (fopAc_ac_c*)&i_this->actor; dKankyo_snow_Packet* snow_packet = g_env_light.mpSnowPacket; - camera_class* camera = dComIfGp_getCamera(0); + camera_class* camera = (camera_class*)dComIfGp_getCamera(0); fopAc_ac_c* player = dComIfGp_getPlayer(0); DOUBLE_POS sp88; - cXyz sp7C; - cXyz sp70; - + cXyz spec; + cXyz spf8; + cXyz sp104; + cXyz sp110; + cXyz sp11c; cXyz sp64 = dKyw_get_wind_vecpow(); - cXyz sp60; - - cXyz sp4C; - cXyz sp40; - - dBgS_ObjGndChk_All spA0; - cXyz sp34; + cXyz sp134, sp140, sp14c, sp158; + dBgS_ObjGndChk_All gnd_chk; + cXyz sp164; + f32 zero = 0.0f; if (snow_packet == NULL) { return 1; } - sp34 = player->current.pos; - sp34.y += 100.0f; - spA0.SetPos(&sp34); + sp164 = player->current.pos; + sp164.y += 100.0f; + gnd_chk.SetPos(&sp164); - f32 temp_f30 = dComIfG_Bgsp().GroundCross(&spA0); + f32 temp_f30 = dComIfG_Bgsp().GroundCross(&gnd_chk); temp_f30 += 5.0f; f32 var_f29; f32 var_f28; @@ -75,38 +72,34 @@ static int daKytag13_Execute_standard(kytag13_class* i_this) { } snow_packet->field_0x6d74 = camera->lookat.eye; - sp7C.z = 0.0f; - sp7C.y = 0.0f; - sp7C.x = 0.0f; + sp110.x = sp110.y = sp110.z = 0.0f; cXyz* temp_r27 = dKyw_get_wind_vec(); f32 temp_f31 = dKyw_get_wind_pow(); - sp4C.x = 0.0f; - sp4C.y = 1000.0f * a_this->scale.y; - sp4C.z = 0.0f; + sp14c.x = 0.0f; + sp14c.y = 1000.0f * a_this->scale.y; + sp14c.z = 0.0f; mDoMtx_stack_c::transS(a_this->current.pos.x, a_this->current.pos.y, a_this->current.pos.z); - mDoMtx_stack_c::ZrotM(a_this->current.angle.z); - mDoMtx_stack_c::YrotM(a_this->current.angle.y); - mDoMtx_stack_c::XrotM(a_this->current.angle.x); - mDoMtx_stack_c::multVec(&sp4C, &sp40); + mDoMtx_stack_c::ZrotM((s16)a_this->current.angle.z); + mDoMtx_stack_c::YrotM((s16)a_this->current.angle.y); + mDoMtx_stack_c::XrotM((s16)a_this->current.angle.x); + mDoMtx_stack_c::multVec(&sp14c, &sp158); + sp11c = *temp_r27; - sp70 = *temp_r27; - - dKyr_get_vectle_calc(&sp40, &a_this->current.pos, &sp64); + dKyr_get_vectle_calc(&sp158, &a_this->current.pos, &sp64); + cXyz sp170; sp88.x = camera->lookat.center.x - camera->lookat.eye.x; sp88.y = 0.0; sp88.z = camera->lookat.center.z - camera->lookat.eye.z; + vectle_calc(&sp88, &sp170); - cXyz sp28; - vectle_calc(&sp88, &sp28); + snow_packet->field_0x6d84 = cM3d_VectorProduct2d(0.0f, 0.0f, -sp11c.x, -sp11c.z, sp170.x, sp170.z); - snow_packet->field_0x6d84 = cM3d_VectorProduct2d(0.0f, 0.0f, -sp70.x, -sp70.z, sp28.x, sp28.z); - - f32 tmp = fabsf((sp70.x * sp28.x) + (sp70.z * sp28.z)); - snow_packet->field_0x6d80 = (1.0f - tmp) * temp_f31 * (1.0f - fabsf(0.3f + sp70.y)); + f32 tmp = fabsf((sp11c.x * sp170.x) + (sp11c.z * sp170.z)); + snow_packet->field_0x6d80 = (1.0f - tmp) * temp_f31 * (1.0f - fabsf(0.3f + sp11c.y)); snow_packet->field_0x6d80 *= fabsf(snow_packet->field_0x6d84); for (int i = i_this->field_0x57e - 1; i >= i_this->field_0x57c; i--) { @@ -125,47 +118,37 @@ static int daKytag13_Execute_standard(kytag13_class* i_this) { snow_packet->mSnowEff[i].mWindSpeed = (4.0f * i_this->mSpeed) + cM_rndF(6.0f); snow_packet->mSnowEff[i].mGravity = temp_f28; snow_packet->mSnowEff[i].mTimer = 0; - snow_packet->mSnowEff[i].mPosition.x = sp40.x + cM_rndFX(500.0f * a_this->scale.x); - snow_packet->mSnowEff[i].mPosition.y = sp40.y - cM_rndF(1000.0f * a_this->scale.y); - snow_packet->mSnowEff[i].mPosition.z = sp40.z + cM_rndFX(500.0f * a_this->scale.z); - snow_packet->mSnowEff[i].mBasePos.x = sp40.x + cM_rndFX(500.0f * a_this->scale.x); - snow_packet->mSnowEff[i].mBasePos.y = sp40.y - cM_rndF(1000.0f * a_this->scale.y); - snow_packet->mSnowEff[i].mBasePos.z = sp40.z + cM_rndFX(500.0f * a_this->scale.z); + snow_packet->mSnowEff[i].mPosition.x = sp158.x + cM_rndFX(500.0f * a_this->scale.x); + snow_packet->mSnowEff[i].mPosition.y = sp158.y - cM_rndF(1000.0f * a_this->scale.y); + snow_packet->mSnowEff[i].mPosition.z = sp158.z + cM_rndFX(500.0f * a_this->scale.z); + snow_packet->mSnowEff[i].mBasePos.x = sp158.x + cM_rndFX(500.0f * a_this->scale.x); + snow_packet->mSnowEff[i].mBasePos.y = sp158.y - cM_rndF(1000.0f * a_this->scale.y); + snow_packet->mSnowEff[i].mBasePos.z = sp158.z + cM_rndFX(500.0f * a_this->scale.z); snow_packet->mSnowEff[i].mScale = 1.0f; snow_packet->mSnowEff[i].field_0x30 = 1.0f; - snow_packet->mSnowEff[i].mPosWaveX = cM_rndF(0xFFFF); - snow_packet->mSnowEff[i].mPosWaveZ = cM_rndF(0xFFFF); + snow_packet->mSnowEff[i].mPosWaveX = cM_rndF(65536.0f); + snow_packet->mSnowEff[i].mPosWaveZ = cM_rndF(65536.0f); snow_packet->mSnowEff[i].mStatus = 1; if (strcmp(dComIfGp_getStartStageName(), "D_MN11") == 0 && dComIfGp_roomControl_getStayNo() == 0) { if (i < 25) { - snow_packet->mSnowEff[i].mBasePos.x = - 1680.0f + cM_rndFX(200.0f * a_this->scale.x); - snow_packet->mSnowEff[i].mBasePos.y = - 1630.0f - cM_rndF(1630.0f * a_this->scale.y); - snow_packet->mSnowEff[i].mBasePos.z = - 4280.0f + cM_rndFX(100.0f * a_this->scale.z); + snow_packet->mSnowEff[i].mBasePos.x = 1680.0f + cM_rndFX(200.0f * a_this->scale.x); + snow_packet->mSnowEff[i].mBasePos.y = 1630.0f - cM_rndF(1630.0f * a_this->scale.y); + snow_packet->mSnowEff[i].mBasePos.z = 4280.0f + cM_rndFX(100.0f * a_this->scale.z); } else if (i < 50) { - snow_packet->mSnowEff[i].mBasePos.x = - -1680.0f + cM_rndFX(200.0f * a_this->scale.x); - snow_packet->mSnowEff[i].mBasePos.y = - 1630.0f - cM_rndF(1630.0f * a_this->scale.y); - snow_packet->mSnowEff[i].mBasePos.z = - 4280.0f + cM_rndFX(100.0f * a_this->scale.z); + snow_packet->mSnowEff[i].mBasePos.x = -1680.0f + cM_rndFX(200.0f * a_this->scale.x); + snow_packet->mSnowEff[i].mBasePos.y = 1630.0f - cM_rndF(1630.0f * a_this->scale.y); + snow_packet->mSnowEff[i].mBasePos.z = 4280.0f + cM_rndFX(100.0f * a_this->scale.z); } else if (i < 75) { snow_packet->mSnowEff[i].mBasePos.x = cM_rndFX(500.0f * a_this->scale.x); - snow_packet->mSnowEff[i].mBasePos.y = - 1680.0f - cM_rndF(1680.0f * a_this->scale.y); - snow_packet->mSnowEff[i].mBasePos.z = - 5000.0f + cM_rndFX(100.0f * a_this->scale.z); + snow_packet->mSnowEff[i].mBasePos.y = 1680.0f - cM_rndF(1680.0f * a_this->scale.y); + snow_packet->mSnowEff[i].mBasePos.z = 5000.0f + cM_rndFX(100.0f * a_this->scale.z); } else if (i < 100) { snow_packet->mSnowEff[i].mBasePos.x = cM_rndFX(500.0f * a_this->scale.x); - snow_packet->mSnowEff[i].mBasePos.y = - 750.0f - cM_rndF(750.0f * a_this->scale.y); - snow_packet->mSnowEff[i].mBasePos.z = - 7110.0f + cM_rndFX(100.0f * a_this->scale.z); + snow_packet->mSnowEff[i].mBasePos.y = 750.0f - cM_rndF(750.0f * a_this->scale.y); + snow_packet->mSnowEff[i].mBasePos.z = 7110.0f + cM_rndFX(100.0f * a_this->scale.z); } } break; @@ -211,13 +194,9 @@ static int daKytag13_Execute_standard(kytag13_class* i_this) { sp1C.y = cM_ssin(temp_r4_2); sp1C.z = cM_scos(temp_r4_2) * cM_scos(temp_r5_2); - snow_packet->mSnowEff[i].mPosition.x += - (sp64.x * snow_packet->mSnowEff[i].mWindSpeed); - snow_packet->mSnowEff[i].mPosition.z += - (sp64.z * snow_packet->mSnowEff[i].mWindSpeed); - snow_packet->mSnowEff[i].mPosition.y += - (snow_packet->mSnowEff[i].mGravity + - (sp64.y * snow_packet->mSnowEff[i].mWindSpeed)); + snow_packet->mSnowEff[i].mPosition.x += (sp64.x * snow_packet->mSnowEff[i].mWindSpeed); + snow_packet->mSnowEff[i].mPosition.z += (sp64.z * snow_packet->mSnowEff[i].mWindSpeed); + snow_packet->mSnowEff[i].mPosition.y += (snow_packet->mSnowEff[i].mGravity + (sp64.y * snow_packet->mSnowEff[i].mWindSpeed)); snow_packet->mSnowEff[i].mPosition.x += (3.7f * sp1C.x); snow_packet->mSnowEff[i].mPosition.y += (3.7f * sp1C.y); @@ -225,13 +204,9 @@ static int daKytag13_Execute_standard(kytag13_class* i_this) { } if (snow_packet->mSnowEff[i].mBasePos.y > var_f29) { - snow_packet->mSnowEff[i].mBasePos.x += - (sp64.x * snow_packet->mSnowEff[i].mWindSpeed); - snow_packet->mSnowEff[i].mBasePos.z += - (sp64.z * snow_packet->mSnowEff[i].mWindSpeed); - snow_packet->mSnowEff[i].mBasePos.y += - (snow_packet->mSnowEff[i].mGravity + - (sp64.y * snow_packet->mSnowEff[i].mWindSpeed)); + snow_packet->mSnowEff[i].mBasePos.x += (sp64.x * snow_packet->mSnowEff[i].mWindSpeed); + snow_packet->mSnowEff[i].mBasePos.z += (sp64.z * snow_packet->mSnowEff[i].mWindSpeed); + snow_packet->mSnowEff[i].mBasePos.y += (snow_packet->mSnowEff[i].mGravity + (sp64.y * snow_packet->mSnowEff[i].mWindSpeed)); snow_packet->mSnowEff[i].mBasePos.x += (3.0f * sp1C.x); snow_packet->mSnowEff[i].mBasePos.y += (3.0f * sp1C.y); @@ -239,20 +214,18 @@ static int daKytag13_Execute_standard(kytag13_class* i_this) { } cLib_addCalc(&snow_packet->mSnowEff[i].mPosWaveX, - snow_packet->mSnowEff[i].mPosWaveX + cM_rndF(3000.0f), 0.25f, 1500.0f, - 0.001f); + snow_packet->mSnowEff[i].mPosWaveX + cM_rndF(3000.0f), 0.25f, 1500.0f, 0.001f); cLib_addCalc(&snow_packet->mSnowEff[i].mPosWaveZ, - snow_packet->mSnowEff[i].mPosWaveZ + cM_rndF(3000.0f), 0.25f, 1500.0f, - 0.001f); + snow_packet->mSnowEff[i].mPosWaveZ + cM_rndF(3000.0f), 0.25f, 1500.0f, 0.001f); - sp60.y = snow_packet->mSnowEff[i].mPosition.y; - if (sp60.y < var_f28) { + sp134.y = snow_packet->mSnowEff[i].mPosition.y; + if (sp134.y < var_f28) { snow_packet->mSnowEff[i].mPosition.y = var_f28; snow_packet->mSnowEff[i].mStatus = 2; } - sp60.y = snow_packet->mSnowEff[i].mBasePos.y; - if (sp60.y < var_f29) { + sp134.y = snow_packet->mSnowEff[i].mBasePos.y; + if (sp134.y < var_f29) { snow_packet->mSnowEff[i].mBasePos.y = var_f29; snow_packet->mSnowEff[i].mStatus = 2; } @@ -261,12 +234,9 @@ static int daKytag13_Execute_standard(kytag13_class* i_this) { cLib_addCalc(&snow_packet->mSnowEff[i].mScale, 0.0f, 0.25f, 0.05f, 0.0001f); if (snow_packet->mSnowEff[i].mScale <= 0.0001f) { - snow_packet->mSnowEff[i].mPosition.x = - sp40.x + cM_rndFX(500.0f * a_this->scale.x); - snow_packet->mSnowEff[i].mPosition.y = - sp40.y - cM_rndF(10.0f * a_this->scale.y); - snow_packet->mSnowEff[i].mPosition.z = - sp40.z + cM_rndFX(500.0f * a_this->scale.z); + snow_packet->mSnowEff[i].mPosition.x = sp158.x + cM_rndFX(500.0f * a_this->scale.x); + snow_packet->mSnowEff[i].mPosition.y = sp158.y - cM_rndF(10.0f * a_this->scale.y); + snow_packet->mSnowEff[i].mPosition.z = sp158.z + cM_rndFX(500.0f * a_this->scale.z); snow_packet->mSnowEff[i].mStatus = 1; } } else { @@ -277,62 +247,52 @@ static int daKytag13_Execute_standard(kytag13_class* i_this) { cLib_addCalc(&snow_packet->mSnowEff[i].field_0x30, 0.0f, 0.25f, 0.05f, 0.0001f); if (snow_packet->mSnowEff[i].field_0x30 <= 0.0001f) { - snow_packet->mSnowEff[i].mBasePos.x = - sp40.x + cM_rndFX(500.0f * a_this->scale.x); - snow_packet->mSnowEff[i].mBasePos.y = sp40.y - cM_rndF(10.0f * a_this->scale.y); - snow_packet->mSnowEff[i].mBasePos.z = - sp40.z + cM_rndFX(500.0f * a_this->scale.z); + snow_packet->mSnowEff[i].mBasePos.x = sp158.x + cM_rndFX(500.0f * a_this->scale.x); + snow_packet->mSnowEff[i].mBasePos.y = sp158.y - cM_rndF(10.0f * a_this->scale.y); + snow_packet->mSnowEff[i].mBasePos.z = sp158.z + cM_rndFX(500.0f * a_this->scale.z); - if (strcmp(dComIfGp_getStartStageName(), "D_MN11") == 0 && - dComIfGp_roomControl_getStayNo() == 0) - { + if ( + strcmp(dComIfGp_getStartStageName(), "D_MN11") == 0 && + dComIfGp_roomControl_getStayNo() == 0 + ) { if (i < 20) { - snow_packet->mSnowEff[i].mBasePos.x = - 1680.0f + cM_rndFX(200.0f * a_this->scale.x); - snow_packet->mSnowEff[i].mBasePos.y = - 1630.0f - cM_rndF(10.0f * a_this->scale.y); - snow_packet->mSnowEff[i].mBasePos.z = - 4280.0f + cM_rndFX(200.0f * a_this->scale.z); + snow_packet->mSnowEff[i].mBasePos.x = 1680.0f + cM_rndFX(200.0f * a_this->scale.x); + snow_packet->mSnowEff[i].mBasePos.y = 1630.0f - cM_rndF(10.0f * a_this->scale.y); + snow_packet->mSnowEff[i].mBasePos.z = 4280.0f + cM_rndFX(200.0f * a_this->scale.z); } else if (i < 50) { - snow_packet->mSnowEff[i].mBasePos.x = - -1680.0f + cM_rndFX(200.0f * a_this->scale.x); - snow_packet->mSnowEff[i].mBasePos.y = - 1630.0f - cM_rndF(10.0f * a_this->scale.y); - snow_packet->mSnowEff[i].mBasePos.z = - 4280.0f + cM_rndFX(100.0f * a_this->scale.z); + snow_packet->mSnowEff[i].mBasePos.x = -1680.0f + cM_rndFX(200.0f * a_this->scale.x); + snow_packet->mSnowEff[i].mBasePos.y = 1630.0f - cM_rndF(10.0f * a_this->scale.y); + snow_packet->mSnowEff[i].mBasePos.z = 4280.0f + cM_rndFX(100.0f * a_this->scale.z); } else if (i < 75) { - snow_packet->mSnowEff[i].mBasePos.x = - cM_rndFX(500.0f * a_this->scale.x); - snow_packet->mSnowEff[i].mBasePos.y = - 1680.0f - cM_rndF(10.0f * a_this->scale.y); - snow_packet->mSnowEff[i].mBasePos.z = - 5000.0f + cM_rndFX(100.0f * a_this->scale.z); + snow_packet->mSnowEff[i].mBasePos.x = cM_rndFX(500.0f * a_this->scale.x); + snow_packet->mSnowEff[i].mBasePos.y = 1680.0f - cM_rndF(10.0f * a_this->scale.y); + snow_packet->mSnowEff[i].mBasePos.z = 5000.0f + cM_rndFX(100.0f * a_this->scale.z); } else if (i < 100) { - snow_packet->mSnowEff[i].mBasePos.x = - cM_rndFX(500.0f * a_this->scale.x); - snow_packet->mSnowEff[i].mBasePos.y = - 750.0f - cM_rndF(10.0f * a_this->scale.y); - snow_packet->mSnowEff[i].mBasePos.z = - 7110.0f + cM_rndFX(100.0f * a_this->scale.z); + snow_packet->mSnowEff[i].mBasePos.x = cM_rndFX(500.0f * a_this->scale.x); + snow_packet->mSnowEff[i].mBasePos.y = 750.0f - cM_rndF(10.0f * a_this->scale.y); + snow_packet->mSnowEff[i].mBasePos.z = 7110.0f + cM_rndFX(100.0f * a_this->scale.z); } } + snow_packet->mSnowEff[i].mStatus = 1; } } else { snow_packet->mSnowEff[i].field_0x30 = 0.5f; } - break; } if (dComIfGp_roomControl_getStayNo() == 5) { - if (snow_packet->mSnowEff[i].mBasePos.z > -5560.0f && - snow_packet->mSnowEff[i].mBasePos.y < 925.0f) - { + if ( + snow_packet->mSnowEff[i].mBasePos.z > -5560.0f && + snow_packet->mSnowEff[i].mBasePos.y < 925.0f + ) { snow_packet->mSnowEff[i].field_0x30 = 0.0f; } - if (snow_packet->mSnowEff[i].mPosition.z > -5560.0f && - snow_packet->mSnowEff[i].mPosition.y < 925.0f) - { + + if ( + snow_packet->mSnowEff[i].mPosition.z > -5560.0f && + snow_packet->mSnowEff[i].mPosition.y < 925.0f + ) { snow_packet->mSnowEff[i].mScale = 0.0f; } } @@ -343,7 +303,8 @@ static int daKytag13_Execute_standard(kytag13_class* i_this) { /* 808601C0-80860200 001040 0040+00 1/0 0/0 0/0 .text daKytag13_Execute__FP13kytag13_class */ static int daKytag13_Execute(kytag13_class* i_this) { - if (i_this->home.roomNo == dComIfGp_roomControl_getStayNo()) { + fopAc_ac_c* a_this = (fopAc_ac_c*)&i_this->actor; + if (a_this->home.roomNo == dComIfGp_roomControl_getStayNo()) { daKytag13_Execute_standard(i_this); } diff --git a/src/d/actor/d_a_npc_wrestler.cpp b/src/d/actor/d_a_npc_wrestler.cpp index 613ee9f4ed7..bfabc14685a 100644 --- a/src/d/actor/d_a_npc_wrestler.cpp +++ b/src/d/actor/d_a_npc_wrestler.cpp @@ -203,6 +203,46 @@ enum grDS_RES_File_ID { /* 0x62 */ EVT_EVENT_LIST = 0x62, }; +enum Bou3_Joint { + /* 0x00 */ JNT_CENTER, + /* 0x01 */ JNT_BACKBONE1, + /* 0x02 */ JNT_BACKBONE2, + /* 0x03 */ JNT_NECK, + /* 0x04 */ JNT_HEAD, + /* 0x05 */ JNT_CHIN, + /* 0x06 */ JNT_MAYU_L, + /* 0x07 */ JNT_MAYU_R, + /* 0x08 */ JNT_MOUTH, + /* 0x09 */ JNT_SHOULDERL, + /* 0x0A */ JNT_ARML1, + /* 0x0B */ JNT_ARML2, + /* 0x0C */ JNT_HANDL, + /* 0x0D */ JNT_FINGERL1, + /* 0x0E */ JNT_THAMBL, + /* 0x0F */ JNT_SHOULDERR, + /* 0x10 */ JNT_ARMR1, + /* 0x11 */ JNT_ARMR2, + /* 0x12 */ JNT_HANDR, + /* 0x13 */ JNT_FINGERR1, + /* 0x14 */ JNT_THAMBR, + /* 0x15 */ JNT_HARA, + /* 0x16 */ JNT_WAIST, + /* 0x17 */ JNT_CLOTCHL, + /* 0x18 */ JNT_LEGL1, + /* 0x19 */ JNT_LEGL2, + /* 0x1A */ JNT_FOOTL, + /* 0x1B */ JNT_CLOTCHR, + /* 0x1C */ JNT_LEGR1, + /* 0x1D */ JNT_LEGR2, + /* 0x1E */ JNT_FOOTR, + /* 0x1F */ JNT_HARA_TOPF, + /* 0x20 */ JNT_HARA_UNDERF, + /* 0x21 */ JNT_HARA_UNDERL, + /* 0x22 */ JNT_HARA_UNDERR, + /* 0x23 */ JNT_OBIL, + /* 0x24 */ JNT_OBIR, +}; + /* 80B41E18-80B41E1C -00001 0004+00 1/2 0/0 0/0 .data l_resALink */ static char* l_resALink = "alSumou"; @@ -2674,7 +2714,7 @@ bool daNpcWrestler_c::checkOutOfArenaW() { } int jointNo = mType == 0 ? 0x1A : 0x18; - int jointNo2 = mType == 0 ? 0x1E : 0x1B; + int jointNo2 = mType == 0 ? JNT_FOOTR : 0x1B; f32 fVar1 = std::pow(mArenaExtent, 2); field_0x89c = getJointPos(jointNo); @@ -3440,10 +3480,9 @@ bool daNpcWrestler_c::sumouTackleShock(void* param_1) { /* 80B38C90-80B39334 009AF0 06A4+00 2/0 0/0 0/0 .text sumouTackleStagger__15daNpcWrestler_cFPv */ bool daNpcWrestler_c::sumouTackleStagger(void* param_1) { - // NONMATCHING - regalloc daPy_py_c* player = daPy_getPlayerActorClass(); int jointNo = mType == 0 ? 0x1A : 0x18; - int jointNo2 = mType == 0 ? 0x1E : 0x1B; + int jointNo2 = mType == 0 ? JNT_FOOTR : 0x1B; f32 fVar1, fVar2; switch (field_0xe96) { @@ -3494,6 +3533,7 @@ bool daNpcWrestler_c::sumouTackleStagger(void* param_1) { case 3: player->setSumouForceGraspCancel(); break; + default: JUT_ASSERT(4311, FALSE); break; diff --git a/src/d/actor/d_a_obj_ice_s.cpp b/src/d/actor/d_a_obj_ice_s.cpp index 6e227f58d58..eb44abe2a10 100644 --- a/src/d/actor/d_a_obj_ice_s.cpp +++ b/src/d/actor/d_a_obj_ice_s.cpp @@ -110,7 +110,6 @@ void daObjIce_s_c::setBaseMtx() { // reg alloc static void rideCallBack(dBgW* param_1, fopAc_ac_c* param_2, fopAc_ac_c* param_3) { (void)param_1; - cXyz* icePos; daObjIce_s_c* ice = (daObjIce_s_c*)param_2; daPy_py_c* player = daPy_getPlayerActorClass(); cXyz& playerPos = fopAcM_GetPosition(player); @@ -126,7 +125,7 @@ static void rideCallBack(dBgW* param_1, fopAc_ac_c* param_2, fopAc_ac_c* param_3 ice->Check_LinkRideOn(playerPos); } - icePos = &fopAcM_GetPosition(param_2); + cXyz* icePos = &fopAcM_GetPosition(param_2); if (pBallCenter != NULL && icePos != NULL && icePos->absXZ(*pBallCenter) < ice->field_0x5c8.x * 600.0f) { ice->field_0x5d8 = 0x300; ice->field_0x5a4 = -11.0f; diff --git a/src/d/actor/d_grass.inc b/src/d/actor/d_grass.inc index a7952785069..588f95cd03b 100644 --- a/src/d/actor/d_grass.inc +++ b/src/d/actor/d_grass.inc @@ -398,7 +398,7 @@ void dGrass_data_c::hitCheck(int i_roomNo, u16 i_particleName) { if (field_0x02 >= 16) { dGrass_anm_c* anm_p = daGrass_c::getGrass()->getAnm(field_0x02); s16 spC = anm_p->m_angY & 0xE000; - int sp10 = field_0x02 & 15; + int sp10 = (field_0x02 & 15) & 0xFFFF; dGrass_anm_c* temp_r27 = daGrass_c::getGrass()->getAnm(sp10); if (anm_p->m_state == 2) { @@ -481,6 +481,8 @@ dGrass_packet_c::dGrass_packet_c() { m_Mkusa_9q_cDL_size = 0xC0; field_0x1d714 = 0; + OS_REPORT("草群メモリ=%fK\n", 117.7734375f); + m_deleteRoom = &dGrass_packet_c::deleteRoom; }