Decompile chrTickWay

This commit is contained in:
Ryan Dwyer 2021-12-19 19:14:24 +10:00
parent 5cb4575286
commit 354d2d1b39
5 changed files with 350 additions and 813 deletions

File diff suppressed because it is too large Load Diff

View File

@ -346,7 +346,7 @@ void func0f19a37c(struct chrdata *chr)
{
struct coord sp228 = {0, 0, 0};
Mtxf sp164;
f32 sp152[3];
struct coord sp152;
struct prop *prop = chr->prop;
Mtxf sp84;
f32 sp80 = chrGetAimAngle(chr);
@ -373,21 +373,21 @@ void func0f19a37c(struct chrdata *chr)
}
}
func0f04031c(&prop->pos, 16.666666f, &sp56, sp152);
func0f04031c(&prop->pos, 16.666666f, &sp56, &sp152);
} else {
// These numbers are about 2 billionths away from BADDEG2RAD(20),
// but tweaking the multiplier in BADDEG2RAD doesn't make this match
// without creating mismatches in other places :(
sp152[0] = cosf(0.34901028871536f) * sinf(sp80);
sp152[1] = sinf(0.34901028871536f);
sp152[2] = cosf(0.34901028871536f) * cosf(sp80);
sp152.x = cosf(0.34901028871536f) * sinf(sp80);
sp152.y = sinf(0.34901028871536f);
sp152.z = cosf(0.34901028871536f) * cosf(sp80);
}
mult = 16.666666f;
sp228.x = sp152[0] * mult;
sp228.y = sp152[1] * mult;
sp228.z = sp152[2] * mult;
sp228.x = sp152.x * mult;
sp228.y = sp152.y * mult;
sp228.z = sp152.z * mult;
mtx4LoadIdentity(&sp164);

View File

@ -3904,6 +3904,11 @@
#define VOICEBOX_FEMALE 3
#define WAYMODE_EXPENSIVE 0
#define WAYMODE_1 1
#define WAYMODE_2 2
#define WAYMODE_3 3
#define WAYMODE_4 4
#define WAYMODE_5 5
#define WAYMODE_MAGIC 6
enum weaponnum {

View File

@ -166,11 +166,11 @@ bool posIsArrivingLaterallyAtPos(struct coord *prevpos, struct coord *curpos, st
bool posIsArrivingAtPos(struct coord *prevpos, struct coord *curpos, struct coord *targetpos, f32 range);
void chrTickRunPos(struct chrdata *chr);
void func0f044b68(struct coord *arg0, struct coord *arg1, struct coord *arg2);
u32 func0f044c38(void);
u32 func0f0451a8(void);
u32 func0f045760(void);
bool func0f044c38(struct chrdata *chr, struct coord *pos, s16 *rooms, struct coord *aimpos, struct coord *arg4, struct coord *arg5, f32 negwidth, f32 width, s32 arg8, s32 arg9);
bool func0f0451a8(struct chrdata *chr, struct coord *pos, s16 *rooms, struct coord *aimpos, struct coord *arg4, struct coord *arg5, f32 negwidth, f32 width, s32 soundnum, s32 arg9);
bool func0f045760(struct chrdata *chr, struct coord *arg1, bool arg2, struct coord *arg3, f32 width, bool arg5, struct coord *nextpos, struct waydata *waydata, f32 arg8, s32 arg9, s32 arg10);
struct prop *chrOpenDoor(struct chrdata *chr, struct coord *coord);
void func0f045b9c(struct chrdata *chr, struct coord *pos, struct waydata *waydata, bool arg3);
void chrTickWay(struct chrdata *chr, struct coord *pos, struct waydata *waydata, bool arg3);
bool goPosUpdateLiftAction(struct chrdata *chr, u32 curpadflags, bool arg2, bool arrivingatlift, s16 curpadnum, s32 nextpadnum);
s16 chrGoPosGetNextPadNum(struct chrdata *chr);
void chrTickGoPos(struct chrdata *chr);

View File

@ -1168,20 +1168,14 @@ struct act_runpos {
struct waydata {
/*0x00*/ s8 mode;
/*0x01*/ u8 iter;
/*0x02*/ u8 gotaimpos;
/*0x03*/ u8 gotaimposobj;
/*0x01*/ s8 iter;
/*0x02*/ s8 gotaimpos;
/*0x03*/ s8 gotaimposobj;
/*0x04*/ struct coord aimpos;
/*0x10*/ u32 unk10;
/*0x14*/ u32 unk14;
/*0x18*/ u32 unk18;
/*0x1c*/ u32 unk1c;
/*0x20*/ u32 unk20;
/*0x24*/ u32 unk24;
/*0x10*/ struct coord unk10;
/*0x1c*/ struct coord unk1c;
/*0x28*/ s32 age;
/*0x2c*/ u32 aimposobj;
/*0x30*/ s8 unk30_test;
/*0x34*/ u32 unk34;
/*0x2c*/ struct coord aimposobj;
// These are the distances between the current waypoint and the previous
// when using magic mode.