mirror of https://github.com/zeldaret/tp.git
Match dNpcLib_lookat_c::action and daBaseNpc_lookat_c::calc (#2973)
* Match dNpcLib_lookat_c::action and daBaseNpc_lookat_c::calc Co-authored-by: Cuyler36 <Cuyler36@users.noreply.github.com> * Improve d_a_npc weak func order --------- Co-authored-by: Cuyler36 <Cuyler36@users.noreply.github.com>
This commit is contained in:
parent
ac9a361676
commit
0395053737
|
|
@ -770,7 +770,7 @@ config.libs = [
|
|||
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"),
|
||||
Object(Equivalent, "d/actor/d_a_npc.cpp"), # weak func order (daNpcF_MoveBgActor_c::Delete)
|
||||
Object(MatchingFor(ALL_GCN), "d/actor/d_a_npc_cd.cpp"),
|
||||
Object(NonMatching, "d/actor/d_a_npc_cd2.cpp"), # stripped vtable order
|
||||
Object(MatchingFor(ALL_GCN), "d/actor/d_a_obj_item.cpp"),
|
||||
|
|
@ -844,7 +844,7 @@ config.libs = [
|
|||
Object(MatchingFor(ALL_GCN), "d/d_msg_string.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_msg_flow.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_name.cpp"),
|
||||
Object(NonMatching, "d/d_npc_lib.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_npc_lib.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_ovlp_fade.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_ovlp_fade2.cpp"),
|
||||
Object(MatchingFor(ALL_GCN), "d/d_ovlp_fade3.cpp"),
|
||||
|
|
|
|||
|
|
@ -165,7 +165,6 @@ public:
|
|||
return ret;
|
||||
}
|
||||
|
||||
virtual ~daBaseNpc_moveBgActor_c() {}
|
||||
virtual int CreateHeap() { return 1; }
|
||||
virtual int Create() { return 1; }
|
||||
virtual int Execute(Mtx**) { return 1; }
|
||||
|
|
|
|||
|
|
@ -409,7 +409,6 @@ public:
|
|||
class daNpcF_MoveBgActor_c : public daNpcF_c {
|
||||
private:
|
||||
public:
|
||||
~daNpcF_MoveBgActor_c() {}
|
||||
virtual bool CreateHeap() { return true; }
|
||||
virtual bool Create() { return true; }
|
||||
virtual bool Execute(Mtx**) { return true; }
|
||||
|
|
|
|||
|
|
@ -275,7 +275,6 @@ void daBaseNpc_lookat_c::limitter(s16 i_value, s16* o_value_p, s16 i_max, s16 i_
|
|||
*o_value_p = 0;
|
||||
}
|
||||
|
||||
// NONMATCHING - regalloc, equivalent ? (matches debug)
|
||||
void daBaseNpc_lookat_c::calc(fopAc_ac_c* param_0, Mtx param_1, s16 param_2) {
|
||||
if (mpAttnPos == NULL) {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
|
|
@ -335,6 +334,7 @@ void daBaseNpc_lookat_c::calc(fopAc_ac_c* param_0, Mtx param_1, s16 param_2) {
|
|||
csXyz sp2C;
|
||||
cXyz sp94;
|
||||
cXyz sp88;
|
||||
s16 sp16, sp14, sp12, sp10;
|
||||
|
||||
for (int i = 2; i >= -1; i--) {
|
||||
sp2C = csXyz::Zero;
|
||||
|
|
@ -368,7 +368,6 @@ void daBaseNpc_lookat_c::calc(fopAc_ac_c* param_0, Mtx param_1, s16 param_2) {
|
|||
|
||||
if (!sp88.isZero()) {
|
||||
sp88.normalize();
|
||||
s16 sp16, sp14, sp12, sp10;
|
||||
sp16 = -cM_atan2s(sp94.y, sp94.absXZ());
|
||||
sp12 = cM_atan2s(sp94.x, sp94.z);
|
||||
sp14 = -cM_atan2s(sp88.y, sp88.absXZ());
|
||||
|
|
|
|||
|
|
@ -2131,16 +2131,8 @@ void daNpcF_clearMessageTmpBit() {
|
|||
}
|
||||
|
||||
// TODO: dummy to generate weak functions, proper fix later
|
||||
static void dummyVirtual(daNpcF_MoveBgActor_c* dummy) {
|
||||
dummy->~daNpcF_MoveBgActor_c();
|
||||
dummy->CreateHeap();
|
||||
dummy->Create();
|
||||
dummy->Execute(NULL);
|
||||
dummy->Draw();
|
||||
dummy->Delete();
|
||||
dummy->IsDelete();
|
||||
dummy->ToFore();
|
||||
dummy->ToBack();
|
||||
static void dummyVirtual() {
|
||||
daNpcF_MoveBgActor_c dummy;
|
||||
}
|
||||
|
||||
dCcD_SrcGObjInf const daBaseNpc_c::mCcDObj = {
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ void dNpcLib_lookat_c::init(J3DModel* i_mdl_p, int* param_1, csXyz* param_2, csX
|
|||
}
|
||||
}
|
||||
|
||||
// NONMATCHING - regswap, equivalent
|
||||
void dNpcLib_lookat_c::action(cXyz param_0, cXyz param_1, fopAc_ac_c* param_2, Mtx param_3, int param_4) {
|
||||
cXyz sp90;
|
||||
|
||||
|
|
@ -63,6 +62,7 @@ void dNpcLib_lookat_c::action(cXyz param_0, cXyz param_1, fopAc_ac_c* param_2, M
|
|||
|
||||
cXyz sp84;
|
||||
cXyz sp78;
|
||||
s16 sp1A, sp18, sp16, sp14;
|
||||
|
||||
f32 var_f30 = 0.0f;
|
||||
f32 var_f31 = 1.0f;
|
||||
|
|
@ -76,11 +76,11 @@ void dNpcLib_lookat_c::action(cXyz param_0, cXyz param_1, fopAc_ac_c* param_2, M
|
|||
if (!sp78.isZero()) {
|
||||
sp78.normalize();
|
||||
|
||||
s16 sp1A = -cM_atan2s(sp84.y, sp84.absXZ());
|
||||
s16 sp18 = cM_atan2s(sp84.x, sp84.z);
|
||||
sp1A = -cM_atan2s(sp84.y, sp84.absXZ());
|
||||
sp18 = cM_atan2s(sp84.x, sp84.z);
|
||||
|
||||
s16 sp16 = -cM_atan2s(sp78.y, sp78.absXZ());
|
||||
s16 sp14 = cM_atan2s(sp78.x, sp78.z);
|
||||
sp16 = -cM_atan2s(sp78.y, sp78.absXZ());
|
||||
sp14 = cM_atan2s(sp78.x, sp78.z);
|
||||
|
||||
field_0x4c[i].x += (s16)(var_f31 * (f32)(sp1A - sp16));
|
||||
field_0x4c[i].y += (s16)(var_f31 * (f32)(sp18 - sp14));
|
||||
|
|
|
|||
Loading…
Reference in New Issue