mirror of https://github.com/zeldaret/tp.git
d_jnt_col first pass (#222)
* dJntCol_c::dJntCol_c * dJntCol_c::init * dJntCol_c::setArrowPosAndAngle * remove asm
This commit is contained in:
parent
8b0ee4d50b
commit
38ac3b420c
|
|
@ -1,6 +0,0 @@
|
|||
lbl_80035C8C:
|
||||
/* 80035C8C 38 00 00 00 */ li r0, 0
|
||||
/* 80035C90 90 03 00 04 */ stw r0, 4(r3)
|
||||
/* 80035C94 90 03 00 00 */ stw r0, 0(r3)
|
||||
/* 80035C98 90 03 00 08 */ stw r0, 8(r3)
|
||||
/* 80035C9C 4E 80 00 20 */ blr
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
lbl_80035CA0:
|
||||
/* 80035CA0 90 A3 00 00 */ stw r5, 0(r3)
|
||||
/* 80035CA4 90 C3 00 04 */ stw r6, 4(r3)
|
||||
/* 80035CA8 90 E3 00 08 */ stw r7, 8(r3)
|
||||
/* 80035CAC 38 00 00 00 */ li r0, 0
|
||||
/* 80035CB0 90 03 00 0C */ stw r0, 0xc(r3)
|
||||
/* 80035CB4 28 04 00 00 */ cmplwi r4, 0
|
||||
/* 80035CB8 41 82 00 08 */ beq lbl_80035CC0
|
||||
/* 80035CBC 90 64 05 28 */ stw r3, 0x528(r4)
|
||||
lbl_80035CC0:
|
||||
/* 80035CC0 38 60 00 01 */ li r3, 1
|
||||
/* 80035CC4 4E 80 00 20 */ blr
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
lbl_80036FA8:
|
||||
/* 80036FA8 94 21 FF D0 */ stwu r1, -0x30(r1)
|
||||
/* 80036FAC 7C 08 02 A6 */ mflr r0
|
||||
/* 80036FB0 90 01 00 34 */ stw r0, 0x34(r1)
|
||||
/* 80036FB4 39 61 00 30 */ addi r11, r1, 0x30
|
||||
/* 80036FB8 48 32 B2 1D */ bl _savegpr_27
|
||||
/* 80036FBC 7C 7B 1B 78 */ mr r27, r3
|
||||
/* 80036FC0 7C 9C 23 78 */ mr r28, r4
|
||||
/* 80036FC4 7C FD 3B 78 */ mr r29, r7
|
||||
/* 80036FC8 7D 1E 43 78 */ mr r30, r8
|
||||
/* 80036FCC 80 63 00 04 */ lwz r3, 4(r3)
|
||||
/* 80036FD0 80 63 00 84 */ lwz r3, 0x84(r3)
|
||||
/* 80036FD4 80 03 00 0C */ lwz r0, 0xc(r3)
|
||||
/* 80036FD8 1F E6 00 30 */ mulli r31, r6, 0x30
|
||||
/* 80036FDC 7C 60 FA 14 */ add r3, r0, r31
|
||||
/* 80036FE0 7C A4 2B 78 */ mr r4, r5
|
||||
/* 80036FE4 38 A1 00 08 */ addi r5, r1, 8
|
||||
/* 80036FE8 48 30 FE 65 */ bl PSMTXMultVecSR
|
||||
/* 80036FEC 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 80036FF0 48 23 01 61 */ bl atan2sY_XZ__4cXyzCFv
|
||||
/* 80036FF4 B0 7E 00 00 */ sth r3, 0(r30)
|
||||
/* 80036FF8 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 80036FFC 48 23 01 2D */ bl atan2sX_Z__4cXyzCFv
|
||||
/* 80037000 B0 7E 00 02 */ sth r3, 2(r30)
|
||||
/* 80037004 80 7B 00 04 */ lwz r3, 4(r27)
|
||||
/* 80037008 80 63 00 84 */ lwz r3, 0x84(r3)
|
||||
/* 8003700C 80 03 00 0C */ lwz r0, 0xc(r3)
|
||||
/* 80037010 7C 60 FA 14 */ add r3, r0, r31
|
||||
/* 80037014 7F 84 E3 78 */ mr r4, r28
|
||||
/* 80037018 7F A5 EB 78 */ mr r5, r29
|
||||
/* 8003701C 48 30 FD 51 */ bl PSMTXMultVec
|
||||
/* 80037020 39 61 00 30 */ addi r11, r1, 0x30
|
||||
/* 80037024 48 32 B1 FD */ bl _restgpr_27
|
||||
/* 80037028 80 01 00 34 */ lwz r0, 0x34(r1)
|
||||
/* 8003702C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80037030 38 21 00 30 */ addi r1, r1, 0x30
|
||||
/* 80037034 4E 80 00 20 */ blr
|
||||
|
|
@ -8,12 +8,10 @@
|
|||
|
||||
class dJntColData_c {};
|
||||
|
||||
class fopAc_ac_c;
|
||||
|
||||
class dJntCol_c {
|
||||
public:
|
||||
/* 80035C8C */ dJntCol_c();
|
||||
/* 80035CA0 */ void init(fopAc_ac_c*, dJntColData_c const*, J3DModel*, int);
|
||||
/* 80035CA0 */ int init(fopAc_ac_c*, dJntColData_c const*, J3DModel*, int);
|
||||
/* 80035CC8 */ void setNowLine(cM3dGLin*, cXyz const*, csXyz const*, cXyz*);
|
||||
/* 80035DC8 */ void searchNearPos(cM3dGLin const*, cXyz const*, cXyz*, int) const;
|
||||
/* 80036AEC */ void getArrowOffsetPosAndAngle(cXyz const*, csXyz const*, cXyz*, cXyz*) const;
|
||||
|
|
|
|||
|
|
@ -154,6 +154,10 @@ inline void fopAcM_SetParam(void* p_actor, u32 param) {
|
|||
fpcM_SetParam(p_actor, param);
|
||||
}
|
||||
|
||||
inline void fopAcM_SetJntCol(fopAc_ac_c* i_actorP, dJntCol_c* i_jntColP) {
|
||||
i_actorP->mJntCol = i_jntColP;
|
||||
}
|
||||
|
||||
inline s16 fopAcM_GetProfName(const void* pActor) {
|
||||
return fpcM_GetProfName(pActor);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,29 +6,18 @@
|
|||
#include "d/d_jnt_col.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
/* 8000CD64 */ void transS(cXyz const&);
|
||||
/* 8000CD9C */ void transM(f32, f32, f32);
|
||||
/* 8000CF0C */ void ZXYrotS(csXyz const&);
|
||||
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct cM3dGSph {
|
||||
/* 80036AA4 */ ~cM3dGSph();
|
||||
/* 8026F664 */ void Set(cXyz const&, f32);
|
||||
};
|
||||
|
||||
struct cM3dGPla {
|
||||
/* 8026F408 */ void crossInfLin(cXyz const&, cXyz const&, cXyz&) const;
|
||||
/* 8026F4C4 */ void SetupNP0(Vec const&, Vec const&);
|
||||
};
|
||||
|
||||
struct cM3dGCyl {
|
||||
/* 8026F180 */ void Set(cXyz const&, f32, f32);
|
||||
};
|
||||
|
|
@ -94,26 +83,25 @@ extern "C" u8 BaseZ__4cXyz[12];
|
|||
//
|
||||
|
||||
/* 80035C8C-80035CA0 0305CC 0014+00 0/0 1/1 8/8 .text __ct__9dJntCol_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dJntCol_c::dJntCol_c() {
|
||||
nofralloc
|
||||
#include "asm/d/d_jnt_col/__ct__9dJntCol_cFv.s"
|
||||
dJntCol_c::dJntCol_c() {
|
||||
mModel = 0;
|
||||
mData = 0;
|
||||
field_0x8 = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80035CA0-80035CC8 0305E0 0028+00 0/0 2/2 8/8 .text
|
||||
* init__9dJntCol_cFP10fopAc_ac_cPC13dJntColData_cP8J3DModeli */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dJntCol_c::init(fopAc_ac_c* param_0, dJntColData_c const* param_1, J3DModel* param_2,
|
||||
int dJntCol_c::init(fopAc_ac_c* i_actorP, dJntColData_c const* i_jntColP, J3DModel* i_modelP,
|
||||
int param_3) {
|
||||
nofralloc
|
||||
#include "asm/d/d_jnt_col/init__9dJntCol_cFP10fopAc_ac_cPC13dJntColData_cP8J3DModeli.s"
|
||||
mData = (dJntColData_c*)i_jntColP;
|
||||
mModel = i_modelP;
|
||||
field_0x8 = param_3;
|
||||
field_0xc = 0;
|
||||
if (i_actorP) {
|
||||
fopAcM_SetJntCol(i_actorP,this);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451D60-80451D64 000360 0004+00 1/1 0/0 0/0 .sdata2 @3655 */
|
||||
|
|
@ -121,6 +109,23 @@ SECTION_SDATA2 static f32 lit_3655 = 500.0f;
|
|||
|
||||
/* 80035CC8-80035DC8 030608 0100+00 2/2 0/0 0/0 .text
|
||||
* setNowLine__9dJntCol_cFP8cM3dGLinPC4cXyzPC5csXyzP4cXyz */
|
||||
#ifdef NONMATCHING
|
||||
// regalloc, parameters are loading in wrong?
|
||||
void dJntCol_c::setNowLine(cM3dGLin* param_0, cXyz const* param_1, csXyz const* param_2,
|
||||
cXyz* param_3) {
|
||||
|
||||
if (param_2) {
|
||||
mDoMtx_stack_c::ZXYrotS(*param_2);
|
||||
mDoMtx_stack_c::multVec(&cXyz::BaseZ,param_3);
|
||||
} else {
|
||||
*param_3 = cXyz::BaseZ;
|
||||
}
|
||||
|
||||
cXyz start_pos = *param_1 - *param_3 * FLOAT_LABEL(lit_3655);
|
||||
cXyz end_pos = *param_1 + *param_3 * FLOAT_LABEL(lit_3655);
|
||||
param_0->SetStartEnd(start_pos,end_pos);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -130,6 +135,7 @@ asm void dJntCol_c::setNowLine(cM3dGLin* param_0, cXyz const* param_1, csXyz con
|
|||
#include "asm/d/d_jnt_col/setNowLine__9dJntCol_cFP8cM3dGLinPC4cXyzPC5csXyzP4cXyz.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A78F8-803A7904 004A18 000C+00 4/4 21/21 0/0 .data __vt__8cM3dGLin */
|
||||
|
|
@ -237,12 +243,11 @@ asm void dJntCol_c::getHitmarkPosAndAngle(cXyz const* param_0, csXyz const* para
|
|||
|
||||
/* 80036FA8-80037038 0318E8 0090+00 0/0 0/0 1/1 .text
|
||||
* setArrowPosAndAngle__9dJntCol_cFPC4cXyzPC4cXyziP4cXyzP5csXyz */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dJntCol_c::setArrowPosAndAngle(cXyz const* param_0, cXyz const* param_1, int param_2,
|
||||
cXyz* param_3, csXyz* param_4) {
|
||||
nofralloc
|
||||
#include "asm/d/d_jnt_col/setArrowPosAndAngle__9dJntCol_cFPC4cXyzPC4cXyziP4cXyzP5csXyz.s"
|
||||
void dJntCol_c::setArrowPosAndAngle(cXyz const* param_0, cXyz const* i_srcPos, int i_anmMtxIdx,
|
||||
cXyz* param_3, csXyz* i_arrowPosP) {
|
||||
cXyz dst_pos;
|
||||
mDoMtx_multVecSR(mModel->i_getAnmMtx(i_anmMtxIdx),i_srcPos,&dst_pos);
|
||||
i_arrowPosP->x = dst_pos.atan2sY_XZ();
|
||||
i_arrowPosP->y = dst_pos.atan2sX_Z();
|
||||
mDoMtx_multVec(mModel->i_getAnmMtx(i_anmMtxIdx),param_0,param_3);
|
||||
}
|
||||
#pragma pop
|
||||
|
|
|
|||
Loading…
Reference in New Issue