mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-07-28 07:07:35 -04:00
Decompile func00027738
This commit is contained in:
@@ -854,8 +854,6 @@
|
||||
#define GAILIST_INIT_SEARCH 0x002c // unused
|
||||
#define GAILIST_INVINCIBLE_AND_IDLE 0x002d
|
||||
|
||||
#define GEOTYPE_2 2
|
||||
|
||||
#define GOPOSFLAG_SPEED 0x03 // bits 0x01 and 0x02 combined
|
||||
#define GOPOSFLAG_INIT 0x04
|
||||
#define GOPOSFLAG_ONPRESETPATH 0x08
|
||||
@@ -3182,9 +3180,18 @@
|
||||
#define TICKMODE_CUTSCENE 6
|
||||
#define TICKMODE_AUTOWALK 7
|
||||
|
||||
#define TILEFLAG_0004 0x0004
|
||||
#define TILEFLAG_0008 0x0008
|
||||
#define TILEFLAG_0010 0x0010
|
||||
#define TILEFLAG_0020 0x0020
|
||||
#define TILEFLAG_0080 0x0080
|
||||
#define TILEFLAG_0200 0x0200
|
||||
|
||||
#define TILETYPE_00 0x00 // Standard BG tiles
|
||||
#define TILETYPE_01 0x01 //
|
||||
#define TILETYPE_02 0x02 //
|
||||
#define TILETYPE_03 0x03 // Chr geometry
|
||||
|
||||
#define TITLEMODE_LEGAL 0
|
||||
#define TITLEMODE_CHECKCONTROLLERS 1
|
||||
#define TITLEMODE_PDLOGO 2
|
||||
|
||||
@@ -88,7 +88,7 @@ struct chrdata *chrFindByLiteralId(s32 chrnum);
|
||||
struct prop *chrGetEquippedWeaponProp(struct chrdata *chr, s32 hand);
|
||||
struct prop *chrGetEquippedWeaponPropWithCheck(struct chrdata *chr, s32 hand);
|
||||
struct prop *chrGetTargetProp(struct chrdata *chr);
|
||||
bool chrUpdateGeometry(struct prop *prop, struct geo **arg1, struct geo **arg2);
|
||||
bool chrUpdateGeometry(struct prop *prop, struct tiletype3 **arg1, struct tiletype3 **arg2);
|
||||
void propChrGetBbox(struct prop *prop, f32 *width, f32 *ymax, f32 *ymin);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -67,7 +67,7 @@ void func0f0c1ba4(struct coord *pos, struct coord *up, struct coord *look, struc
|
||||
void func0f0c1bd8(struct coord *pos, struct coord *up, struct coord *look);
|
||||
void allPlayersClearMemCamRoom(void);
|
||||
void func0f0c1e54(struct prop *prop, bool enable);
|
||||
bool playerUpdateGeometry(struct prop *prop, struct geo **arg1, struct geo **arg2);
|
||||
bool playerUpdateGeometry(struct prop *prop, struct tiletype3 **arg1, struct tiletype3 **arg2);
|
||||
void currentPlayerUpdatePerimInfo(void);
|
||||
void propPlayerGetBbox(struct prop *prop, f32 *width, f32 *ymax, f32 *ymin);
|
||||
f32 currentPlayerGetHealthFrac(void);
|
||||
|
||||
@@ -58,6 +58,6 @@ void func0f065e98(struct coord *pos, s16 *rooms, struct coord *pos2, s16 *rooms2
|
||||
void roomGetProps(s16 *room, s16 *propnums, u32 size);
|
||||
u32 func0f066054(void);
|
||||
void propGetBbox(struct prop *prop, f32 *width, f32 *ymax, f32 *ymin);
|
||||
bool propUpdateGeometry(struct prop *prop, struct geo **arg1, struct geo **arg2);
|
||||
bool propUpdateGeometry(struct prop *prop, struct tiletype3 **arg1, struct tiletype3 **arg2);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -89,7 +89,7 @@ void func0f069144(struct prop *prop, u8 *nextcol, u16 floorcol);
|
||||
void func0f069630(struct prop *prop, u8 *nextcol, u16 floorcol);
|
||||
void func0f069710(u8 *shadecol, u8 *nextcol);
|
||||
void func0f069750(s32 *arg0, s32 arg1, f32 *arg2);
|
||||
void func0f069850(struct defaultobj *obj, struct coord *pos, f32 *realrot, struct geo *geo);
|
||||
void func0f069850(struct defaultobj *obj, struct coord *pos, f32 *realrot, struct tiletype3 *geo);
|
||||
void func0f069b4c(struct defaultobj *obj);
|
||||
void func0f069c1c(struct defaultobj *obj);
|
||||
void func0f069c70(struct defaultobj *obj, bool arg1, bool arg2);
|
||||
@@ -243,7 +243,7 @@ bool func0f0869cc(struct prop *prop);
|
||||
bool currentPlayerTryMountHoverbike(struct prop *prop);
|
||||
bool propobjInteract(struct prop *prop);
|
||||
void propObjSetOrUnsetHiddenFlag00400000(struct prop *prop, bool enable);
|
||||
bool objUpdateGeometry(struct prop *prop, struct geo **arg1, struct geo **arg2);
|
||||
bool objUpdateGeometry(struct prop *prop, struct tiletype3 **arg1, struct tiletype3 **arg2);
|
||||
void propObjGetBbox(struct prop *prop, f32 *width, f32 *ymax, f32 *ymin);
|
||||
void ammotypeGetPickedUpText(char *dst);
|
||||
void ammotypeGetDeterminer(char *dst, s32 ammotype, s32 qty);
|
||||
|
||||
@@ -60,14 +60,14 @@ u32 func000266a4(void);
|
||||
void platformGetRidingProps(struct prop *platform, s16 *propnums, u32 len);
|
||||
u32 func00026a04(void);
|
||||
u32 func00026e7c(void);
|
||||
u32 func0002709c(void);
|
||||
u32 func000272f8(void);
|
||||
s32 func000274e0(struct geo *geo, f32 x, f32 z, f32 angle, s32 arg4, s32 arg5);
|
||||
s32 func000276c8(struct geo *geo, f32 x, f32 z, f32 angle, s32 arg4, s32 arg5);
|
||||
void func00027738(struct coord *pos, f32 width, void *arg2, void *arg3, u32 arg4, u32 arg5, f32 arg6, f32 arg7, struct prop *prop, struct collisionthing *arg9, u32 arg10, s32 *arg11, s16 roomnum);
|
||||
s32 func0002709c(struct tiletype0 *tile, f32 x, f32 z, f32 width, struct prop *prop, struct collisionthing *thing);
|
||||
s32 func000272f8(struct tiletype1 *tile, f32 x, f32 z, f32 width, struct prop *prop, struct collisionthing *thing);
|
||||
s32 func000274e0(struct tiletype2 *tile, f32 x, f32 z, f32 width, struct prop *prop, struct collisionthing *thing);
|
||||
s32 func000276c8(struct tiletype3 *tile, f32 x, f32 z, f32 width, struct prop *prop, struct collisionthing *thing);
|
||||
void func00027738(struct coord *pos, f32 width, struct tile *start, struct tile *end, u16 flags, bool checkvertical, f32 arg6, f32 arg7, struct prop *prop, struct collisionthing *things, s32 maxthings, s32 *thingnum, s32 roomnum);
|
||||
void func00027d1c(struct coord *pos, f32 width, s16 *rooms, u32 types, u16 arg4, u32 arg5, f32 arg6, f32 arg7, struct collisionthing *arg8, s32 arg9);
|
||||
u32 func00027f78(void);
|
||||
u32 func00028200(void);
|
||||
s32 func00028200(struct tiletype0 *tile, struct coord *pos, f32 width, f32 y1, f32 y2);
|
||||
u32 func0002840c(void);
|
||||
u32 func00028638(void);
|
||||
u32 func0002885c(void);
|
||||
@@ -120,7 +120,7 @@ u32 func0002deac(void);
|
||||
u32 func0002ded8(void);
|
||||
u32 func0002dffc(void);
|
||||
u32 func0002e278(void);
|
||||
bool func0002e4c4(struct geo *geo, s16 *rooms, u32 arg2);
|
||||
bool func0002e4c4(struct tiletype3 *geo, s16 *rooms, u32 arg2);
|
||||
u32 func0002e680(void);
|
||||
u32 func0002e82c(void);
|
||||
u32 func0002e9d8(void);
|
||||
|
||||
+63
-38
@@ -547,6 +547,60 @@ struct aibot {
|
||||
/*0x2d4*/ f32 unk2d4;
|
||||
};
|
||||
|
||||
struct tile {
|
||||
/*0x00*/ u8 type;
|
||||
/*0x01*/ u8 numvertices;
|
||||
/*0x02*/ u16 flags;
|
||||
};
|
||||
|
||||
struct tiletype0 {
|
||||
struct tile header;
|
||||
/*0x04*/ u16 floortype;
|
||||
/*0x06*/ u8 xmin; // These are byte offsets relative to the start of tile
|
||||
/*0x07*/ u8 ymin;
|
||||
/*0x08*/ u8 zmin;
|
||||
/*0x09*/ u8 xmax;
|
||||
/*0x0a*/ u8 ymax;
|
||||
/*0x0b*/ u8 zmax;
|
||||
/*0x0c*/ u16 floorcol;
|
||||
u16 unk0e;
|
||||
};
|
||||
|
||||
struct tiletype1 {
|
||||
struct tile header;
|
||||
/*0x04*/ u16 floortype;
|
||||
/*0x06*/ u8 xmin; // These are byte offsets relative to the start of tile
|
||||
/*0x07*/ u8 ymin;
|
||||
/*0x08*/ u8 zmin;
|
||||
/*0x09*/ u8 xmax;
|
||||
/*0x0a*/ u8 ymax;
|
||||
/*0x0b*/ u8 zmax;
|
||||
/*0x0c*/ u16 floorcol;
|
||||
};
|
||||
|
||||
struct tiletype2 {
|
||||
struct tile header;
|
||||
/*0x04*/ f32 ymax;
|
||||
/*0x04*/ f32 ymin;
|
||||
};
|
||||
|
||||
struct tiletype3 {
|
||||
struct tile header;
|
||||
/*0x04*/ f32 ymax;
|
||||
/*0x08*/ f32 ymin;
|
||||
/*0x0c*/ f32 x;
|
||||
/*0x10*/ f32 z;
|
||||
/*0x14*/ f32 width;
|
||||
};
|
||||
|
||||
struct tilething {
|
||||
struct tile *tile;
|
||||
u32 unk04;
|
||||
u32 unk08;
|
||||
struct prop *lift;
|
||||
u32 floorroom;
|
||||
};
|
||||
|
||||
struct act_stand {
|
||||
/*0x2c*/ s32 unk02c;
|
||||
/*0x30*/ u32 face_entitytype;
|
||||
@@ -819,17 +873,6 @@ struct act_skjump {
|
||||
/*0x50*/ f32 y;
|
||||
};
|
||||
|
||||
struct geo {
|
||||
/*0x00*/ u8 type;
|
||||
/*0x01*/ u8 unk01;
|
||||
/*0x02*/ u16 unk02;
|
||||
/*0x04*/ f32 ymax;
|
||||
/*0x08*/ f32 ymin;
|
||||
/*0x0c*/ f32 x;
|
||||
/*0x10*/ f32 z;
|
||||
/*0x14*/ f32 width;
|
||||
};
|
||||
|
||||
struct chrdata {
|
||||
/*0x000*/ s16 chrnum;
|
||||
/*0x002*/ s8 accuracyrating;
|
||||
@@ -918,7 +961,7 @@ struct chrdata {
|
||||
/*0x12e*/ s16 chrseeshot;
|
||||
/*0x130*/ s16 chrseedie;
|
||||
/*0x132*/ s16 chrdup;
|
||||
struct geo geo;
|
||||
struct tiletype3 geo;
|
||||
/*0x14c*/ f32 shotbondsum;
|
||||
/*0x150*/ f32 aimuplshoulder;
|
||||
/*0x154*/ f32 aimuprshoulder;
|
||||
@@ -1180,7 +1223,11 @@ struct defaultobj {
|
||||
/*0x18*/ struct model *model;
|
||||
/*0x1c*/ f32 realrot[9];
|
||||
/*0x40*/ u32 hidden;
|
||||
/*0x44*/ struct geo *geo;
|
||||
union {
|
||||
/*0x44*/ struct tiletype2 *geo2;
|
||||
/*0x44*/ struct tiletype3 *geo3;
|
||||
/*0x44*/ struct tiletype3 *unkgeo; // temporary, to indicate that I don't know which geo pointer is being used
|
||||
};
|
||||
union {
|
||||
/*0x48*/ struct projectile *projectile;
|
||||
/*0x48*/ struct monitorthing *monitorthing;
|
||||
@@ -2688,8 +2735,8 @@ struct player {
|
||||
/*0x19c0*/ f32 vv_headheight; // 172 when Jo, regardless of crouch state
|
||||
/*0x19c4*/ f32 vv_eyeheight; // 159 when Jo, regardless of crouch state
|
||||
/*0x19c8*/ bool haschrbody;
|
||||
/*0x19cc*/ struct geo periminfo;
|
||||
/*0x19e4*/ struct geo perimshoot;
|
||||
/*0x19cc*/ struct tiletype3 periminfo;
|
||||
/*0x19e4*/ struct tiletype3 perimshoot;
|
||||
/*0x19fc*/ f32 bondprevtheta;
|
||||
/*0x1a00*/ struct coord grabbedprevpos;
|
||||
/*0x1a0c*/ f32 grabbedrotoffset;
|
||||
@@ -5806,28 +5853,6 @@ struct mpconfigfull {
|
||||
struct mpstrings strings;
|
||||
};
|
||||
|
||||
struct tile {
|
||||
/*0x00*/ u8 unk00; // 0 or 1 to enable floorcol, 2 or 3 to disable
|
||||
/*0x01*/ u8 numvertices;
|
||||
/*0x02*/ u16 flags;
|
||||
/*0x04*/ u16 floortype;
|
||||
/*0x06*/ u8 unk06;
|
||||
/*0x07*/ u8 unk07;
|
||||
/*0x08*/ u8 unk08;
|
||||
/*0x09*/ u8 unk09;
|
||||
/*0x0a*/ u8 unk0a;
|
||||
/*0x0b*/ u8 unk0b;
|
||||
/*0x0c*/ u16 floorcol;
|
||||
};
|
||||
|
||||
struct tilething {
|
||||
struct tile *tile;
|
||||
u32 unk04;
|
||||
u32 unk08;
|
||||
struct prop *lift;
|
||||
u32 floorroom;
|
||||
};
|
||||
|
||||
struct movedata {
|
||||
/*0x00*/ s32 canswivelgun;
|
||||
/*0x04*/ s32 canmanualaim;
|
||||
@@ -6888,7 +6913,7 @@ struct collisionthing {
|
||||
u32 unk04;
|
||||
u32 unk08;
|
||||
u32 unk0c;
|
||||
u32 unk10;
|
||||
u32 roomnum;
|
||||
};
|
||||
|
||||
struct escastepkeyframe {
|
||||
|
||||
Reference in New Issue
Block a user