Attempt to decompile chrGoToPos

This commit is contained in:
Ryan Dwyer
2020-01-30 18:03:06 +10:00
parent 7b4ae24de8
commit 2017d4a029
11 changed files with 239 additions and 99 deletions
+4
View File
@@ -554,6 +554,7 @@
#define MA_FACING 53
#define MA_PUNCHING 54
#define MAX_CHRWAYPOINTS 6
#define MAX_DANGEROUSPROPS 12
#define MAX_LIFTS 10
#define MAX_MPCHRS (4 + MAX_SIMULANTS)
@@ -1487,7 +1488,10 @@
#define PLAYERFLAG_NOCONTROL 0x00000002
#define PROPFLAG_02 0x02
#define PROPFLAG_HIDDEN 0x04
#define PROPFLAG_40 0x40
#define PROPFLAG_80 0x80
#define PROPTYPE_OBJ 1
#define PROPTYPE_DOOR 2
+9 -9
View File
@@ -124,7 +124,7 @@ u32 func0f02d4fc(void);
u32 func0f02dbac(void);
u32 func0f02ddbc(void);
u32 func0f02dff0(void);
u32 func0f02e064(void);
u32 func0f02e064(struct chrdata *chr);
u32 func0f02e124(void);
u32 func0f02e15c(void);
u32 func0f02e1cc(void);
@@ -199,15 +199,15 @@ u32 func0f0369cc(void);
u32 func0f036aa0(void);
u32 func0f036b10(void);
u32 func0f036b98(void);
u32 func0f036c08(void);
u32 func0f036ee4(void);
s32 func0f036fc0(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
s32 func0f037088(s32 arg0, s32 arg1, s32 arg2);
u32 func0f036c08(struct chrdata *chr, s32 *arg1, s32 *arg2);
void func0f036ee4(struct chrdata *chr, s8 *maxwaypoints, s32 *arg2, struct coord *prevpos);
void func0f036fc0(struct chrdata *chr, s32 *arg1, s32 *arg2, s32 arg3);
void func0f037088(struct chrdata *chr, s32 *arg1, s32 *arg2);
u32 func0f0370a8(void);
u32 func0f037124(void);
void chrSetField66To0(struct chrdata *chr);
u32 func0f037224(void);
u32 func0f0372e8(void);
void func0f0372e8(struct chrdata *chr);
u32 func0f03733c(void);
u32 func0f0373dc(void);
u32 func0f0374a0(void);
@@ -216,9 +216,9 @@ s32 func0f037560(s32 arg0, s32 arg1, s32 arg2);
u32 func0f037580(void);
u32 func0f0375b0(void);
u32 func0f0375e8(void);
u32 func0f0379b0(void);
u32 func0f037b70(void);
u32 chrGoToPos(struct chrdata *chr, struct coord *pos, s16 *room_id, u32 speed);
void func0f0379b0(struct chrdata *chr, struct coord *pos);
void func0f037b70(struct chrdata *chr);
u32 chrGoToPos(struct chrdata *chr, struct coord *pos, s16 *room, u32 speed);
struct path *pathFindById(u32 path_id);
u32 func0f038868(void);
void func0f038b9c(struct chrdata *chr, struct path *path);
+1 -1
View File
@@ -39,7 +39,7 @@ u32 func0f064a24(void);
u32 func0f064ce8(void);
u32 func0f0654e8(void);
u32 func0f06554c(void);
void func0f0657a4(s32 *arg0, s8 *arg1);
void func0f0657a4(s16 *room, s16 *rooms);
u32 func0f0657d8(void);
bool arrayIntersects(s16 *a, s16 *b);
u32 func0f0658e8(void);
+3 -3
View File
@@ -3,8 +3,8 @@
#include <ultra64.h>
#include "types.h"
u32 func0f114240(void);
u32 func0f114254(void);
void waypointSetHashThing(s32 hash1, s32 hash2);
s32 *waypointFindClosestToPos(struct coord *pos, s16 *room);
u32 func0f114810(void);
u32 func0f114958(void);
u32 func0f1149b0(void);
@@ -17,7 +17,7 @@ u32 func0f114de0(void);
u32 func0f114ee4(void);
u32 func0f114f70(void);
u32 func0f11505c(void);
u32 func0f1151ec(void);
s32 waypointFindRoute(s32 *from, s32 *to, s32 **dst, s32 maxwaypoints);
u32 func0f115390(void);
u32 func0f1153c4(void);
u32 func0f1154cc(void);
+2 -2
View File
@@ -142,8 +142,8 @@ char *mpGetBotCommandName(s32 command);
void func0f192438(struct chrdata *chr, struct prop *prop);
void func0f192474(struct chrdata *chr, struct prop *prop);
void func0f1924ac(struct chrdata *chr, struct prop *prop);
void func0f1924e8(struct chrdata *chr, struct coord *pos, s32 *arg2, f32 arg3);
void func0f19257c(struct chrdata *chr, struct coord *pos, s32 *arg2, f32 arg3);
void func0f1924e8(struct chrdata *chr, struct coord *pos, s16 *room, f32 arg3);
void func0f19257c(struct chrdata *chr, struct coord *pos, s16 *room, f32 arg3);
void func0f192610(struct chrdata *chr, s32 arg1);
u32 func0f192628(void);
u32 func0f19277c(void);
+48 -39
View File
@@ -199,7 +199,7 @@ struct chr2d4 {
/*0x077*/ s8 unk077;
/*0x078*/ u8 unk078;
/*0x079*/ u8 unk079;
/*0x07a*/ s8 unk07a;
/*0x07a*/ s16 rooms[1];
/*0x07c*/ u32 unk07c;
/*0x080*/ u32 unk080;
/*0x084*/ u32 unk084;
@@ -375,6 +375,8 @@ struct act_attack {
/*0x48*/ u32 unk048;
/*0x4c*/ u32 unk04c;
/*0x50*/ u32 unk050;
/*0x54*/ u32 unk054;
/*0x58*/ u32 unk058;
};
struct act_sidestep {
@@ -392,6 +394,43 @@ struct act_runpos {
/*0x40*/ f32 unk040;
};
struct act_gopos {
/*0x02c*/ struct coord pos;
/*0x038*/ s16 rooms[8];
/*0x048*/ s32 numwaypoints;
/*0x04c*/ s32 *waypoints[MAX_CHRWAYPOINTS];
/*0x064*/ u8 nextwaypointindex;
// This doesn't appear to be a proper bitfield, but is used as one
// ....x... = on preset path
// ......xx = speed
/*0x065*/ u8 unk065;
/*0x066*/ s16 unk066;
/*0x068*/ s8 unk068;
/*0x069*/ u8 unk069;
/*0x06a*/ u8 unk06a;
/*0x06b*/ u8 unk06b;
/*0x06c*/ u16 unk06c;
/*0x06e*/ u8 unk06e;
/*0x070*/ u32 unk070;
/*0x074*/ u32 unk074;
/*0x078*/ u32 unk078;
/*0x07c*/ u32 unk07c;
/*0x080*/ u32 unk080;
/*0x084*/ u32 unk084;
/*0x088*/ u32 unk088;
/*0x08c*/ u32 unk08c;
/*0x090*/ u32 unk090;
/*0x094*/ u32 unk094;
/*0x098*/ u32 unk098;
/*0x09c*/ u32 unk09c;
/*0x0a0*/ u32 unk0a0;
/*0x0a4*/ u32 unk0a4;
/*0x0a8*/ s32 unk0a8;
/*0x0ac*/ f32 unk0ac;
};
struct act_surprised {
/*0x2c*/ u32 unk02c;
};
@@ -411,13 +450,6 @@ struct act_attackamount {
/*0x34*/ s8 unk034;
};
struct act_aibotgetitem {
/*0x2c*/ struct coord pos;
/*0x38*/ s16 rooms[8];
/*0x48*/ u32 unk48;
/*0x4c*/ s32 unk4c[1];
};
struct act_skjump {
/*0x2c*/ u32 unk00;
/*0x30*/ u32 unk30;
@@ -475,39 +507,13 @@ struct chrdata {
struct act_sidestep act_sidestep;
struct act_jumpout act_jumpout;
struct act_runpos act_runpos;
struct act_gopos act_gopos;
struct act_surprised act_surprised;
struct act_throwgrenade act_throwgrenade;
struct act_attackamount act_attackamount;
struct act_aibotgetitem act_aibotgetitem;
struct act_skjump act_skjump;
};
/*0x054*/ u32 unk054;
/*0x058*/ void *unk058;
/*0x05c*/ u32 unk05c;
/*0x060*/ u32 unk060;
/*0x064*/ u8 unk064;
/*0x065*/ u8 speed;
/*0x066*/ s16 unk066;
/*0x068*/ u32 unk068;
/*0x06c*/ u16 unk06c;
/*0x06e*/ u8 unk06e;
/*0x070*/ u32 unk070;
/*0x074*/ u32 unk074;
/*0x078*/ u32 unk078;
/*0x07c*/ u32 unk07c;
/*0x080*/ u32 unk080;
/*0x084*/ u32 unk084;
/*0x088*/ u32 unk088;
/*0x08c*/ u32 unk08c;
/*0x090*/ u32 unk090;
/*0x094*/ u32 unk094;
/*0x098*/ u32 unk098;
/*0x09c*/ u32 unk09c;
/*0x0a0*/ u32 unk0a0;
/*0x0a4*/ u32 unk0a4;
/*0x0a8*/ u32 unk0a8;
/*0x0ac*/ u32 unk0ac;
/*0x0b0*/ u32 sumground;
/*0x0b4*/ f32 manground;
/*0x0b8*/ f32 ground;
@@ -574,7 +580,7 @@ struct chrdata {
/*0x194*/ u32 magicframe;
/*0x198*/ u32 magicspeed;
/*0x19c*/ u16 magicanim;
/*0x19e*/ u16 goposforce;
/*0x19e*/ s16 goposforce;
/*0x1a0*/ s32 bdlist[60];
/*0x290*/ u8 bdstart;
/*0x291*/ u8 goposhitcount;
@@ -593,7 +599,7 @@ struct chrdata {
/*0x2b1*/ u8 voicebox;
/*0x2b2*/ u16 floorroom;
/*0x2b4*/ u32 unk2b4;
/*0x2b8*/ u16 oldrooms[8];
/*0x2b8*/ s16 oldrooms[8];
/*0x2c8*/ struct coord runfrompos;
/*0x2d4*/ struct chr2d4 *unk2d4;
/*0x2d8*/ s16 blurdrugamount;
@@ -623,12 +629,15 @@ struct chrdata {
u8 unk32c_08 : 1;
u8 pouncebits : 3;
u8 unk32c_12 : 2;
u8 unk32c_12 : 1;
u8 unk32c_13 : 1;
u8 darkroomthing : 1;
u8 unk32c_15 : 1;
u8 p1p2 : 2;
u8 unk32c_18 : 6;
u8 unk32c_18 : 3;
u8 unk32c_21 : 1;
u8 unk32c_22 : 2;
u8 specialdie : 8;