mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-07-27 22:59:11 -04:00
Attempt to decompile chrGoToPos
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,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);
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user