d_a_alink 100% (#2957)

* Match daAlink_c::checkHorseGetOff

* Match daAlink_c::procCanoeRowInit
This commit is contained in:
LagoLunatic 2025-12-15 20:09:39 -05:00 committed by GitHub
parent bf4a07ca52
commit d4859f8595
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 5 additions and 7 deletions

View File

@ -759,7 +759,7 @@ config.libs = [
Object(MatchingFor(ALL_GCN), "d/d_error_msg.cpp"),
Object(Equivalent, "d/d_debug_viewer.cpp"), # debug weak func order
Object(NonMatching, "d/d_debug_camera.cpp"),
Object(NonMatching, "d/actor/d_a_alink.cpp"),
Object(Equivalent, "d/actor/d_a_alink.cpp"), # weak func order, vtable order
Object(MatchingFor(ALL_GCN), "d/actor/d_a_itembase.cpp"),
Object(MatchingFor(ALL_GCN), "d/actor/d_a_no_chg_room.cpp"),
Object(NonMatching, "d/actor/d_a_npc.cpp"),

View File

@ -82,7 +82,7 @@ public:
MtxP getRideMtx() { return mpModelMorf->getModel()->getAnmMtx(15); }
f32 nowAnimeFrame() const { return mpModelMorf->getFrame(); }
s16 getWaitRollAngle() const { return mWaitRollAngle; }
bool checkGetOff() const { return mEnemy.speedF < 3.0f; }
BOOL checkGetOff() const { return mEnemy.speedF < 3.0f; }
f32 rideSpeedRate() const { return mEnemy.speedF / mSpeedRate; }
f32 getAnimeFrameRate() { return mpModelMorf->getFrame() / mpModelMorf->getEndFrame(); }
BOOL checkAnmLoopFrame() { return mpModelMorf->checkFrame(0.0f); }

View File

@ -678,12 +678,11 @@ int daAlink_c::procCanoeWait() {
return 1;
}
// NONMATCHING - regalloc, equivalent
int daAlink_c::procCanoeRowInit(int param_0) {
fopAc_ac_c* temp_r26 = mRideAcKeep.getActor();
int var_r29;
fopAc_ac_c* temp_r26 = (fopAc_ac_c*)mRideAcKeep.getActor();
field_0x3198 = -2;
int var_r29;
if (param_0 < 0) {
if (checkInputOnR()) {
s16 sp8 = (s16)(field_0x2fe2 - shape_angle.y);

View File

@ -1174,10 +1174,9 @@ int daAlink_c::checkNextActionHorse() {
return procHorseWaitInit();
}
// NONMATCHING - regalloc, equivalent
BOOL daAlink_c::checkHorseGetOff() {
return (checkHorseRide() && dComIfGp_getHorseActor() != NULL &&
dComIfGp_getHorseActor()->checkGetOff()) ||
((daHorse_c*)dComIfGp_getHorseActor())->checkGetOff()) ||
(checkBoarRide() && ((e_wb_class*)mRideAcKeep.getActor()) != NULL &&
((e_wb_class*)mRideAcKeep.getActor())->checkGetOff());
}