d_a_npc_coach & obj_crope OK (#2684)

* d_a_npc_coach OK

Closes #758

* Revert "d_a_npc_coach OK"

This reverts commit fef808621fc6900fced660611038f29abafd4d63.

* d_a_npc_coach OK

Closes #758

* d_a_obj_crope OK

Closes #903
This commit is contained in:
YunataSavior
2025-09-22 04:44:43 -07:00
committed by GitHub
parent fd4877b982
commit 151a62d5ac
9 changed files with 570 additions and 573 deletions
+15 -15
View File
@@ -1,11 +1,11 @@
_prolog = .text:0x00000000; // type:function size:0x2C scope:global
_epilog = .text:0x0000002C; // type:function size:0x2C scope:global
_unresolved = .text:0x00000058; // type:function size:0x20 scope:global
jointHorseCallBack__FP8J3DJointi = .text:0x00000078; // type:function size:0x54 scope:global
jointFrontWheelCallBack__FP8J3DJointi = .text:0x000000CC; // type:function size:0xE0 scope:global
jointRearWheelCallBack__FP8J3DJointi = .text:0x000001AC; // type:function size:0xE0 scope:global
jointCoachCallBack__FP8J3DJointi = .text:0x0000028C; // type:function size:0xC0 scope:global
arrowStickCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_cR4cXyz = .text:0x0000034C; // type:function size:0x78 scope:global
jointHorseCallBack__FP8J3DJointi = .text:0x00000078; // type:function size:0x54 scope:local
jointFrontWheelCallBack__FP8J3DJointi = .text:0x000000CC; // type:function size:0xE0 scope:local
jointRearWheelCallBack__FP8J3DJointi = .text:0x000001AC; // type:function size:0xE0 scope:local
jointCoachCallBack__FP8J3DJointi = .text:0x0000028C; // type:function size:0xC0 scope:local
arrowStickCallBack__FP4dBgWP10fopAc_ac_cP10fopAc_ac_cR4cXyz = .text:0x0000034C; // type:function size:0x78 scope:local
__dt__4cXyzFv = .text:0x000003C4; // type:function size:0x3C scope:global
hitFireArrow__12daNpcCoach_cF4cXyz = .text:0x00000400; // type:function size:0x144 scope:global
deleteFireArrow__12daNpcCoach_cFUi = .text:0x00000544; // type:function size:0x144 scope:global
@@ -13,12 +13,12 @@ deleteFireArrowFromList__12daNpcCoach_cFUi = .text:0x00000688; // type:function
setPosAngle__12daNpcCoach_cFR4cXyzR5csXyz = .text:0x000006C8; // type:function size:0x54 scope:global
ctrlJointHorse__12daNpcCoach_cFP8J3DJointP8J3DModel = .text:0x0000071C; // type:function size:0x9C scope:global
initCoachPosition__12daNpcCoach_cFR3VecR4SVec = .text:0x000007B8; // type:function size:0x2C8 scope:global
s_sub__FPvPv = .text:0x00000A80; // type:function size:0x58 scope:global
s_sub__FPvPv = .text:0x00000A80; // type:function size:0x58 scope:local
changeAtherPath__12daNpcCoach_cFScR4cXyzR5csXyz = .text:0x00000AD8; // type:function size:0x368 scope:global
createSolidHeap__FP10fopAc_ac_c = .text:0x00000E40; // type:function size:0x20 scope:global
createSolidHeap__FP10fopAc_ac_c = .text:0x00000E40; // type:function size:0x20 scope:local
createHeap__12daNpcCoach_cFv = .text:0x00000E60; // type:function size:0x618 scope:global
__dt__12J3DFrameCtrlFv = .text:0x00001478; // type:function size:0x48 scope:global
daNpcCoach_Execute__FP12daNpcCoach_c = .text:0x000014C0; // type:function size:0x20 scope:global
daNpcCoach_Execute__FP12daNpcCoach_c = .text:0x000014C0; // type:function size:0x20 scope:local
execute__12daNpcCoach_cFv = .text:0x000014E0; // type:function size:0x360 scope:global
checkCoachDamage__12daNpcCoach_cFv = .text:0x00001840; // type:function size:0x318 scope:global
setCoachBlazing__12daNpcCoach_cFUc = .text:0x00001B58; // type:function size:0x304 scope:global
@@ -32,15 +32,15 @@ calcFrontWheelRotate__12daNpcCoach_cFv = .text:0x00003B20; // type:function size
calcHorseMotion__12daNpcCoach_cFv = .text:0x000041B0; // type:function size:0x3D0 scope:global
calcHorseAnm__12daNpcCoach_cFv = .text:0x00004580; // type:function size:0xB60 scope:global
calcHorsePath__12daNpcCoach_cFv = .text:0x000050E0; // type:function size:0x758 scope:global
daNpcCoach_Draw__FP12daNpcCoach_c = .text:0x00005838; // type:function size:0x20 scope:global
daNpcCoach_Draw__FP12daNpcCoach_c = .text:0x00005838; // type:function size:0x20 scope:local
draw__12daNpcCoach_cFv = .text:0x00005858; // type:function size:0x448 scope:global
daNpcCoach_IsDelete__FP12daNpcCoach_c = .text:0x00005CA0; // type:function size:0x8 scope:global
daNpcCoach_Delete__FP12daNpcCoach_c = .text:0x00005CA8; // type:function size:0x28 scope:global
daNpcCoach_IsDelete__FP12daNpcCoach_c = .text:0x00005CA0; // type:function size:0x8 scope:local
daNpcCoach_Delete__FP12daNpcCoach_c = .text:0x00005CA8; // type:function size:0x28 scope:local
__dt__12daNpcCoach_cFv = .text:0x00005CD0; // type:function size:0x240 scope:global
__dt__16daNpcChHarness_cFv = .text:0x00005F10; // type:function size:0x104 scope:global
__dt__14daNpcChCoach_cFv = .text:0x00006014; // type:function size:0x124 scope:global
__dt__8dCcD_CylFv = .text:0x00006138; // type:function size:0xCC scope:global
daNpcCoach_Create__FP10fopAc_ac_c = .text:0x00006204; // type:function size:0x20 scope:global
daNpcCoach_Create__FP10fopAc_ac_c = .text:0x00006204; // type:function size:0x20 scope:local
create__12daNpcCoach_cFv = .text:0x00006224; // type:function size:0xA4 scope:global
create_init__12daNpcCoach_cFv = .text:0x000062C8; // type:function size:0x750 scope:global
initCollision__12daNpcCoach_cFv = .text:0x00006A18; // type:function size:0x328 scope:global
@@ -134,10 +134,10 @@ ParticleName$localstatic3$setCoachBlazing__12daNpcCoach_cFUc = .rodata:0x0000014
@7499 = .rodata:0x00000248; // type:object size:0x4 scope:local
@7500 = .rodata:0x0000024C; // type:object size:0x4 scope:local
@stringBase0 = .rodata:0x00000250; // type:object size:0xE scope:local data:string_table
l_arcName = .data:0x00000000; // type:object size:0x4 scope:global
l_horseAnmParam = .data:0x00000004; // type:object size:0x78 scope:global data:4byte
l_arcName = .data:0x00000000; // type:object size:0x4 scope:local
l_horseAnmParam = .data:0x00000004; // type:object size:0x78 scope:local data:4byte
l_color$localstatic3$reinsDraw__12daNpcCoach_cFv = .data:0x0000007C; // type:object size:0x4 scope:local
l_daNpcCoach_Method = .data:0x00000080; // type:object size:0x20 scope:global
l_daNpcCoach_Method = .data:0x00000080; // type:object size:0x20 scope:local
g_profile_NPC_COACH = .data:0x000000A0; // type:object size:0x30 scope:global
__vt__18mDoExt_3DlineMat_c = .data:0x000000D0; // type:object size:0x14 scope:global
__vt__8cM3dGSph = .data:0x000000E4; // type:object size:0xC scope:global
+8 -8
View File
@@ -2,28 +2,28 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global
_epilog = .text:0x0000002C; // type:function size:0x2C scope:global
_unresolved = .text:0x00000058; // type:function size:0x20 scope:global
createHeap__12daObjCrope_cFv = .text:0x00000078; // type:function size:0x6C scope:global
daObjCrope_createHeap__FP10fopAc_ac_c = .text:0x000000E4; // type:function size:0x20 scope:global
daObjCrope_createHeap__FP10fopAc_ac_c = .text:0x000000E4; // type:function size:0x20 scope:local
create__12daObjCrope_cFv = .text:0x00000104; // type:function size:0x674 scope:global
__ct__4cXyzFv = .text:0x00000778; // type:function size:0x4 scope:global
__dt__8cM3dGSphFv = .text:0x0000077C; // type:function size:0x48 scope:global
__dt__8cM3dGAabFv = .text:0x000007C4; // type:function size:0x48 scope:global
__dt__10dCcD_GSttsFv = .text:0x0000080C; // type:function size:0x5C scope:global
__dt__4cXyzFv = .text:0x00000868; // type:function size:0x3C scope:global
daObjCrope_Create__FP10fopAc_ac_c = .text:0x000008A4; // type:function size:0x20 scope:global
daObjCrope_Create__FP10fopAc_ac_c = .text:0x000008A4; // type:function size:0x20 scope:local
__dt__12daObjCrope_cFv = .text:0x000008C4; // type:function size:0x178 scope:global
daObjCrope_Delete__FP12daObjCrope_c = .text:0x00000A3C; // type:function size:0x28 scope:global
daObjCrope_Delete__FP12daObjCrope_c = .text:0x00000A3C; // type:function size:0x28 scope:local
setNormalRopePos__12daObjCrope_cFv = .text:0x00000A64; // type:function size:0x328 scope:global
setRideRopePos__12daObjCrope_cFv = .text:0x00000D8C; // type:function size:0xB10 scope:global
execute__12daObjCrope_cFv = .text:0x0000189C; // type:function size:0x458 scope:global
__dt__8cM3dGLinFv = .text:0x00001CF4; // type:function size:0x48 scope:global
daObjCrope_Execute__FP12daObjCrope_c = .text:0x00001D3C; // type:function size:0x20 scope:global
daObjCrope_Execute__FP12daObjCrope_c = .text:0x00001D3C; // type:function size:0x20 scope:local
draw__12daObjCrope_cFv = .text:0x00001D5C; // type:function size:0xA0 scope:global
daObjCrope_Draw__FP12daObjCrope_c = .text:0x00001DFC; // type:function size:0x20 scope:global
daObjCrope_Draw__FP12daObjCrope_c = .text:0x00001DFC; // type:function size:0x20 scope:local
__dt__10cCcD_GSttsFv = .text:0x00001E1C; // type:function size:0x48 scope:global
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
...rodata.0 = .rodata:0x00000000; // type:label scope:local
l_arcName = .rodata:0x00000000; // type:object size:0x6 scope:global data:string
l_arcName = .rodata:0x00000000; // type:object size:0x6 scope:local data:string
@3870 = .rodata:0x00000008; // type:object size:0x4 scope:local
@3871 = .rodata:0x0000000C; // type:object size:0x4 scope:local
@3872 = .rodata:0x00000010; // type:object size:0x4 scope:local
@@ -45,9 +45,9 @@ l_arcName = .rodata:0x00000000; // type:object size:0x6 scope:global data:string
@4407 = .rodata:0x0000005C; // type:object size:0x4 scope:local align:4 data:float
@4408 = .rodata:0x00000060; // type:object size:0x4 scope:local
@4410 = .rodata:0x00000068; // type:object size:0x8 scope:local
l_sphSrc = .data:0x00000000; // type:object size:0x40 scope:global
l_sphSrc = .data:0x00000000; // type:object size:0x40 scope:local
color$4550 = .data:0x00000040; // type:object size:0x4 scope:local
l_daObjCrope_Method = .data:0x00000044; // type:object size:0x20 scope:global
l_daObjCrope_Method = .data:0x00000044; // type:object size:0x20 scope:local
g_profile_Obj_Crope = .data:0x00000064; // type:object size:0x30 scope:global
__vt__8cM3dGLin = .data:0x00000094; // type:object size:0xC scope:global
__vt__10cCcD_GStts = .data:0x000000A0; // type:object size:0xC scope:global
+3 -3
View File
@@ -1822,10 +1822,10 @@ config.libs = [
ActorRel(NonMatching, "d_a_npc_clerka"),
ActorRel(NonMatching, "d_a_npc_clerkb"),
ActorRel(NonMatching, "d_a_npc_clerkt"),
ActorRel(NonMatching, "d_a_npc_coach"),
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_coach"),
ActorRel(NonMatching, "d_a_npc_df"),
ActorRel(NonMatching, "d_a_npc_doc"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_doorboy", extra_cflags=[DANPCF_C_HACK]), # weak func order
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_doorboy", extra_cflags=[DANPCF_C_HACK]),
ActorRel(NonMatching, "d_a_npc_drainSol"),
ActorRel(NonMatching, "d_a_npc_du"),
ActorRel(NonMatching, "d_a_npc_fairy"),
@@ -1951,7 +1951,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_chest"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_cho"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_cowdoor"),
ActorRel(NonMatching, "d_a_obj_crope"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_crope"),
ActorRel(NonMatching, "d_a_obj_crvfence"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_crvgate"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_crvhahen"),
+1 -1
View File
@@ -39,7 +39,7 @@ public:
inline int draw();
inline void setCcSphere();
inline void setNoHitTimer();
void setNoHitTimer() { noHitTimer = 20; }
inline int execute();
private:
+28 -40
View File
@@ -34,9 +34,7 @@ public:
/* 0x40 */ f32 jump_dist; // 跳ね距離 - Jump Distance
/* 0x44 */ f32 wheel_bounce; // 車輪跳ね - Wheel Bounce
/* 0x48 */ f32 field_0x48;
/* 0x4C */ f32 field_0x4c;
/* 0x50 */ f32 field_0x50;
/* 0x54 */ f32 field_0x54;
/* 0x4C */ Vec field_0x4c;
/* 0x58 */ f32 field_0x58;
/* 0x5C */ f32 field_0x5c;
/* 0x60 */ s16 field_0x60;
@@ -75,8 +73,8 @@ class daNpcChReins_c {
public:
/* 0x000 */ mDoExt_3DlineMat1_c field_0x0;
/* 0x03C */ mDoExt_3DlineMat1_c field_0x3c;
/* 0x078 */ cXyz field_0x78[10];
/* 0x0F0 */ cXyz field_0xf0[10];
/* 0x078 */ cXyz field_0x78[2][5];
/* 0x0F0 */ cXyz field_0xf0[2][5];
/* 0x168 */ f32 field_0x168;
/* 0x16C */ s8 field_0x16c;
/* 0x170 */ cXyz field_0x170;
@@ -114,8 +112,6 @@ public:
class daNpcChHarness_c {
public:
/* 809A3570 */ ~daNpcChHarness_c();
/* 0x000 */ J3DModel* mHarnessModel;
/* 0x004 */ dKy_tevstr_c mTevStr;
/* 0x38C */ dBgS_ObjAcch mBgc;
@@ -135,8 +131,6 @@ public:
class daNpcChCoach_c {
public:
/* 809A3674 */ ~daNpcChCoach_c();
/* 0x000 */ J3DModel* mCoachModel;
/* 0x004 */ dKy_tevstr_c mTevStr;
/* 0x38C */ dBgS_ObjAcch mBgc;
@@ -175,7 +169,7 @@ public:
class daNpcChPath_c {
public:
BOOL setPath(int, int, cXyz*, bool);
inline BOOL setPath(int, int, cXyz&, bool);
BOOL isClose() { return dPath_ChkClose(mpPath); }
bool setNextPoint() {
mPntIndex++;
@@ -215,8 +209,8 @@ public:
s8 getArg0() { return mpPath->m_points[mPntIndex].mArg0; }
s8 getArg1() { return mpPath->m_points[mPntIndex].mArg1; }
s8 getArg2() { return mpPath->m_points[mPntIndex].mArg2; }
int getArg3() { return mpPath->m_points[mPntIndex].mArg3; }
inline int checkNearAttackPoint();
s8 getArg3() { return mpPath->m_points[mPntIndex].mArg3; }
inline s8 checkNearAttackPoint();
inline bool checkPoint(cXyz*, f32);
inline bool setNextTarget();
@@ -239,50 +233,44 @@ public:
/* 8099E4C0 */ int createHeap();
/* 8099EB40 */ int execute();
/* 8099EEA0 */ void checkCoachDamage();
/* 8099F1B8 */ void setCoachBlazing(u8);
/* 8099F1B8 */ inline void setCoachBlazing(u8);
/* 8099F4BC */ void reinsExecute();
/* 8099F988 */ void reinsInit();
/* 8099FCF4 */ void calcCoachMotion();
/* 809A0728 */ void calcRearWheelRotate();
/* 809A0728 */ inline void calcRearWheelRotate();
/* 809A0E00 */ void calcHarnessMotion();
/* 809A1180 */ void calcFrontWheelRotate();
/* 809A1810 */ void calcHorseMotion();
/* 809A1BE0 */ void calcHorseAnm();
/* 809A1BE0 */ inline void calcHorseAnm();
/* 809A2740 */ void calcHorsePath();
/* 809A2EB8 */ int draw();
/* 809A3330 */ ~daNpcCoach_c();
/* 809A3884 */ cPhs__Step create();
/* 809A3928 */ void create_init();
/* 809A4078 */ void initCollision();
/* 809A4078 */ inline void initCollision();
/* 809A43A0 */ void initBaseMtx();
/* 809A43DC */ void setBaseMtx();
/* 809A46C4 */ void initCoachBlazing();
/* 809A48A8 */ daNpcCoach_c();
inline bool checkCoachBlazing() { return mCoachBlazing; }
inline Mtx* getCoachMtx() { return &mCoachMtx; }
inline csXyz* getFrontWheelRot(int param_1) {
if (param_1 == 2) {
return &mChHarness.field_0x70c.mWheelRot;
}
return &mChHarness.field_0x730.mWheelRot;
bool checkCoachBlazing() { return mCoachBlazing; }
Mtx* getCoachMtx() { return &mCoachMtx; }
csXyz* getFrontWheelRot(int param_1) {
return (param_1 == 2) ? &mChHarness.field_0x70c.mWheelRot
: &mChHarness.field_0x730.mWheelRot;
}
inline csXyz* getRearWheelRot(int param_1) {
if (param_1 == 1) {
return &mChCoach.field_0x7a8.mWheelRot;
}
return &mChCoach.field_0x7cc.mWheelRot;
csXyz* getRearWheelRot(int param_1) {
return (param_1 == 1) ? &mChCoach.field_0x7a8.mWheelRot
: &mChCoach.field_0x7cc.mWheelRot;
}
inline s16 getCoachRotate() { return mChCoach.mCoachRot; }
inline f32 getCoachTrans() { return mChCoach.mCoachTrans; }
inline int getRailID() { return mChPath.getCurrentId(); }
s16 getCoachRotate() { return mChCoach.mCoachRot; }
f32 getCoachTrans() { return mChCoach.mCoachTrans; }
int getRailID() { return mChPath.getCurrentId(); }
inline void setDriverMtx();
inline void calcDriverMotion() { setDriverMtx(); }
void calcDriverMotion() { setDriverMtx(); }
inline void calcYeliaMotion();
inline void setYeliaMtx() {
void setYeliaMtx() {
mDoMtx_stack_c::copy(mChCoach.mCoachModel->getAnmMtx(6));
mDoMtx_stack_c::multVecZero(&mChYelia.field_0x694);
mChYelia.mpModelMorf->getModel()->setBaseTRMtx(mDoMtx_stack_c::get());
@@ -299,15 +287,15 @@ public:
inline void setHorseMtx();
inline void setHorseAnm(int);
inline void eyeWink();
inline BOOL checkKargoAttack();
inline bool checkKargoAttack();
inline BOOL setExpressionAnm(int, bool);
inline void resetOverAngle();
inline void reinsDraw();
inline u8 getPathID() { return fopAcM_GetParam(this) & 0xFF; }
inline int getMessageNo() { return home.angle.x; }
u8 getPathID() { return fopAcM_GetParam(this) & 0xFF; }
s16 getMessageNo() { return home.angle.x; }
inline void setHarnessMtx();
const daNpcCoach_Attr_c& attr() { return M_attr; }
const daNpcCoach_Attr_c& attr() const { return M_attr; }
static daNpcCoach_Attr_c const M_attr;
static u16 const ParticleName[10];
@@ -325,7 +313,7 @@ private:
/* 0x247C */ fpc_ProcID field_0x247c[5];
/* 0x2490 */ Mtx mCoachMtx;
/* 0x24C0 */ int field_0x24c0;
/* 0x24C4 */ int field_0x24c4;
/* 0x24C4 */ int mTotalDmgRecv;
/* 0x24C8 */ f32 field_0x24c8;
/* 0x24CC */ dBgS_AcchCir mAcchCir;
/* 0x250C */ dCcD_Stts mStts;
+1 -1
View File
@@ -107,7 +107,7 @@ public:
setPosition(param_1, 14, param_2, -1);
}
static void setCoachPosition(int param_1, Vec* param_2, int param_3) {
static void setCoachPosition(int param_1, const Vec* param_2, int param_3) {
setPosition(param_1, 10, param_2, param_3);
}
};
-4
View File
@@ -107,10 +107,6 @@ void daCoachFire_c::setCcSphere() {
}
}
void daCoachFire_c::setNoHitTimer() {
noHitTimer = 20;
}
int daCoachFire_c::execute() {
daNpcCoach_c* coach = (daNpcCoach_c*)fpcM_SearchByID(parentActorID);
if (noHitTimer > 0) {
File diff suppressed because it is too large Load Diff
+11 -20
View File
@@ -194,10 +194,8 @@ void daObjCrope_c::setNormalRopePos() {
}
/* 80BCD9EC-80BCE4FC 000D8C 0B10+00 1/1 0/0 0/0 .text setRideRopePos__12daObjCrope_cFv */
// NONMATCHING - reg alloc
void daObjCrope_c::setRideRopePos() {
daPy_py_c* player = daPy_getLinkPlayerActorClass();
cXyz* pcVar15;
cXyz* pcVar13;
cXyz* local_120;
cXyz* local_124;
@@ -211,17 +209,9 @@ void daObjCrope_c::setRideRopePos() {
f32 fVar7;
f32 fVar8;
f32 fVar14;
int local_150;
int local_154;
int local_158;
f32 dVar25;
cXyz* pcVar12;
f32 dVar20;
f32 dVar21;
f32 dVar22;
cXyz* local_160;
cXyz* local_164;
f32 dVar20a;
int i;
if (mOutFlg) {
@@ -230,7 +220,7 @@ void daObjCrope_c::setRideRopePos() {
return;
}
pcVar15 = mLineMat.getPos(0);
cXyz* pcVar15 = mLineMat.getPos(0);
pcVar13 = mLineMat.getPos(0) + 99;
cXyz local_54;
cXyz local_60;
@@ -263,7 +253,7 @@ void daObjCrope_c::setRideRopePos() {
dVar21 = pcVar15->abs(local_60);
dVar22 = pcVar13->abs(local_54);
dVar23 = pcVar13->abs(local_60);
if ((mFrontJoint == -1 ||
fVar1 * mRopeVec.x + fVar2 * mRopeVec.z <= 0.0f) ||
fVar3 * mRopeVec.x + fVar4 * mRopeVec.z <= 0.0f)
@@ -291,17 +281,17 @@ void daObjCrope_c::setRideRopePos() {
cXyz cStack_6c = *local_120 - *pcVar15;
cXyz cStack_78 = *local_124 - *pcVar13;
fVar14 = 1.0f / field_0x720;
local_150 = dVar22 * fVar14;
int local_150 = dVar22 * fVar14;
if (local_150 > 0x61) {
local_150 = 0x61;
}
cStack_78.normalizeZP();
pcVar12 = pcVar13 - 1;
cXyz* pcVar12 = pcVar13 - 1;
for (i = 0; i < local_150; i++, pcVar12--) {
pcVar12[0] = pcVar12[1] + cStack_78 * field_0x720;
}
*pcVar12 = *local_124;
local_154 = dVar20 * fVar14;
int local_154 = dVar20 * fVar14;
if (local_154 > 0x61) {
local_154 = 0x61;
}
@@ -311,19 +301,20 @@ void daObjCrope_c::setRideRopePos() {
pcVar12[0] = pcVar12[-1] + cStack_6c * field_0x720;
}
*pcVar12 = *local_120;
local_158 = (0x60 - local_154) - local_150;
int local_158 = (0x60 - local_154) - local_150;
cXyz cStack_84 = *local_124 - *local_120;
dVar25 = cStack_84.abs() / (local_158 + 1);
f32 dVar25 = cStack_84.abs() / (local_158 + 1);
cStack_84.normalizeZP();
pcVar12++;
for (i = 0; i < local_158; i++, pcVar12++) {
pcVar12[0] = pcVar12[-1] + cStack_84 * dVar25;
}
pcVar12 = mLineMat.getPos(0) + 1;
local_160 = field_0xbd8;
local_164 = field_0x740;
cXyz* local_160 = field_0xbd8;
cXyz* local_164 = field_0x740;
cXyz cStack_90;
f32 dVar20a;
for (i = 1; i < 0x63; i++, pcVar12++, local_160++, local_164++) {
dVar20a = pcVar15->y + mRopeVec.y * getStartRate(pcVar12);
cStack_90 = *pcVar12;