mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-07-29 07:32:16 -04:00
Discover geo types and rename tiles to geo
This commit is contained in:
+1
-1
@@ -39,7 +39,7 @@ extern s32 *var8009a888;
|
||||
extern union filedataptr g_TileFileData;
|
||||
extern s32 g_TileNumRooms;
|
||||
extern u32 *g_TileRooms;
|
||||
extern struct tiletype2 var8009a918;
|
||||
extern struct geoblock var8009a918;
|
||||
extern u8 g_RdpDramStack[SP_DRAM_STACK_SIZE8];
|
||||
extern N_ALSndPlayer var8009c2d0;
|
||||
extern struct var8009c340 var8009c340;
|
||||
|
||||
+23
-23
@@ -1125,6 +1125,28 @@
|
||||
#define GBGAME_OTHER 0
|
||||
#define GBGAME_PD 2
|
||||
|
||||
#define GEOFLAG_0001 0x0001
|
||||
#define GEOFLAG_0002 0x0002
|
||||
#define GEOFLAG_COLLISIONS 0x0004
|
||||
#define GEOFLAG_0008 0x0008
|
||||
#define GEOFLAG_OPAQUE 0x0010 // Block AI fire/sight
|
||||
#define GEOFLAG_LIFTFLOOR 0x0020
|
||||
#define GEOFLAG_LADDER 0x0040
|
||||
#define GEOFLAG_0080 0x0080
|
||||
#define GEOFLAG_0100 0x0100 // Editor: Low wall/edge
|
||||
#define GEOFLAG_UNDERWATER 0x0200
|
||||
#define GEOFLAG_0400 0x0400 // Unused
|
||||
#define GEOFLAG_AIBOTCROUCH 0x0800
|
||||
#define GEOFLAG_AIBOTDUCK 0x1000
|
||||
#define GEOFLAG_STEP 0x2000 // Ascend regardless of steepness
|
||||
#define GEOFLAG_DIE 0x4000
|
||||
#define GEOFLAG_CLIMBABLELEDGE 0x8000 // Used for most ledges in Chicago, but not near drain pickup
|
||||
|
||||
#define GEOTYPE_TILE_I 0 // Tiles with integer vertices - used for BG
|
||||
#define GEOTYPE_TILE_F 1 // Tiles with float vertices - used for lifts
|
||||
#define GEOTYPE_BLOCK 2 // Most objects - multiple x/z vertices, and a single ymin and ymax
|
||||
#define GEOTYPE_CYL 3 // Cylinder - used by chrs and the hoverbike
|
||||
|
||||
#define GOPOSFLAG_SPEED 0x03 // bits 0x01 and 0x02 combined
|
||||
#define GOPOSFLAG_INIT 0x04
|
||||
#define GOPOSFLAG_FORPATHSTART 0x08
|
||||
@@ -3059,7 +3081,7 @@
|
||||
#define OBJFLAG3_PLAYERUNDROPPABLE 0x00400000 // Player does not drop item when dead
|
||||
#define OBJFLAG3_00800000 0x00800000 // Not used in scripts
|
||||
#define OBJFLAG3_01000000 0x01000000 // Not used in scripts
|
||||
#define OBJFLAG3_GEOTYPE3 0x02000000 // If set then obj uses tiletype3 else tiletype2
|
||||
#define OBJFLAG3_GEOCYL 0x02000000 // Use cylinder geometry rather than block
|
||||
#define OBJFLAG3_04000000 0x04000000 // Not used in scripts
|
||||
#define OBJFLAG3_08000000 0x08000000 // Not used in scripts
|
||||
#define OBJFLAG3_10000000 0x10000000 // Editor: "Keep Collisions After Fully Destroyed"
|
||||
@@ -3975,28 +3997,6 @@
|
||||
#define TICKOP_GIVETOPLAYER 4
|
||||
#define TICKOP_5 5
|
||||
|
||||
#define TILEFLAG_0001 0x0001 // Editor: Traversable
|
||||
#define TILEFLAG_0002 0x0002
|
||||
#define TILEFLAG_0004 0x0004 // Editor: Collisions
|
||||
#define TILEFLAG_0008 0x0008
|
||||
#define TILEFLAG_0010 0x0010 // Editor: Block AI fire/sight
|
||||
#define TILEFLAG_0020 0x0020
|
||||
#define TILEFLAG_LADDER 0x0040
|
||||
#define TILEFLAG_0080 0x0080
|
||||
#define TILEFLAG_0100 0x0100 // Editor: Low wall/edge
|
||||
#define TILEFLAG_UNDERWATER 0x0200
|
||||
#define TILEFLAG_0400 0x0400
|
||||
#define TILEFLAG_AIBOTCROUCH 0x0800
|
||||
#define TILEFLAG_AIBOTDUCK 0x1000
|
||||
#define TILEFLAG_2000 0x2000 // Editor: Incline
|
||||
#define TILEFLAG_DIE 0x4000
|
||||
#define TILEFLAG_CLIMBABLELEDGE 0x8000 // used for most ledges in Chicago, but not near drain pickup
|
||||
|
||||
#define TILETYPE_00 0 // Standard BG tiles
|
||||
#define TILETYPE_01 1
|
||||
#define TILETYPE_02 2
|
||||
#define TILETYPE_03 3 // Chr/obj geometry
|
||||
|
||||
#define TIMEPRECISION_DAYS 0
|
||||
#define TIMEPRECISION_HOURS 1
|
||||
#define TIMEPRECISION_MINUTES 2
|
||||
|
||||
+16
-16
@@ -14,22 +14,22 @@
|
||||
.set FLOORTYPE_DIRT, 7
|
||||
.set FLOORTYPE_SNOW, 8
|
||||
|
||||
.set TILEFLAG_0001, 0x0001
|
||||
.set TILEFLAG_0002, 0x0002
|
||||
.set TILEFLAG_0004, 0x0004
|
||||
.set TILEFLAG_0008, 0x0008
|
||||
.set TILEFLAG_0010, 0x0010
|
||||
.set TILEFLAG_0020, 0x0020
|
||||
.set TILEFLAG_LADDER, 0x0040
|
||||
.set TILEFLAG_0080, 0x0080
|
||||
.set TILEFLAG_0100, 0x0100
|
||||
.set TILEFLAG_UNDERWATER, 0x0200
|
||||
.set TILEFLAG_0400, 0x0400
|
||||
.set TILEFLAG_AIBOTCROUCH, 0x0800
|
||||
.set TILEFLAG_AIBOTDUCK, 0x1000
|
||||
.set TILEFLAG_2000, 0x2000
|
||||
.set TILEFLAG_DIE, 0x4000
|
||||
.set TILEFLAG_CLIMBABLELEDGE, 0x8000
|
||||
.set GEOFLAG_0001, 0x0001
|
||||
.set GEOFLAG_0002, 0x0002
|
||||
.set GEOFLAG_COLLISIONS, 0x0004
|
||||
.set GEOFLAG_0008, 0x0008
|
||||
.set GEOFLAG_OPAQUE, 0x0010
|
||||
.set GEOFLAG_LIFTFLOOR, 0x0020
|
||||
.set GEOFLAG_LADDER, 0x0040
|
||||
.set GEOFLAG_0080, 0x0080
|
||||
.set GEOFLAG_0100, 0x0100
|
||||
.set GEOFLAG_UNDERWATER, 0x0200
|
||||
.set GEOFLAG_0400, 0x0400
|
||||
.set GEOFLAG_AIBOTCROUCH, 0x0800
|
||||
.set GEOFLAG_AIBOTDUCK, 0x1000
|
||||
.set GEOFLAG_STEP, 0x2000
|
||||
.set GEOFLAG_DIE, 0x4000
|
||||
.set GEOFLAG_CLIMBABLELEDGE, 0x8000
|
||||
|
||||
.set VERSION_NTSC_BETA, 0
|
||||
.set VERSION_NTSC_1_0, 1
|
||||
|
||||
@@ -50,9 +50,9 @@ f32 func0f0669bc(struct modelrodata_bbox *bbox, f32 realrot[3][3]);
|
||||
f32 func0f0669ec(struct modelrodata_bbox *bbox, f32 realrot[3][3]);
|
||||
f32 func0f066a1c(struct modelrodata_bbox *bbox, f32 arg1, f32 arg2, f32 arg3);
|
||||
f32 func0f066abc(struct modelrodata_bbox *bbox, f32 arg1, f32 arg2, f32 arg3);
|
||||
s32 func0f066b5c(f32 xmin, f32 xmax, f32 ymin, f32 ymax, f32 zmin, f32 zmax, Mtxf *mtx, struct tiletype2 *tile);
|
||||
void func0f067424(struct modelrodata_bbox *bbox, Mtxf *mtx, struct tiletype2 *tile);
|
||||
void func0f0674bc(struct modelrodata_type19 *rodata19, struct modelrodata_bbox *bbox, Mtxf *mtx, struct tiletype2 *tile);
|
||||
s32 func0f066b5c(f32 xmin, f32 xmax, f32 ymin, f32 ymax, f32 zmin, f32 zmax, Mtxf *mtx, struct geoblock *tile);
|
||||
void func0f067424(struct modelrodata_bbox *bbox, Mtxf *mtx, struct geoblock *block);
|
||||
void func0f0674bc(struct modelrodata_type19 *rodata19, struct modelrodata_bbox *bbox, Mtxf *mtx, struct geoblock *block);
|
||||
bool func0f0675c8(struct coord *pos, f32 arg1, struct modelrodata_bbox *bbox, Mtxf *mtx);
|
||||
bool func0f0677ac(struct coord *coord, struct coord *arg1, struct coord *pos, struct coord *normal, struct coord *up, struct coord *look, f32 xmin, f32 xmax, f32 ymin, f32 ymax, f32 zmin, f32 zmax);
|
||||
bool func0f0678f8(struct coord *coord, struct coord *arg1, s32 padnum);
|
||||
@@ -89,7 +89,7 @@ void func0f069144(struct prop *prop, u8 *nextcol, u16 floorcol);
|
||||
void func0f069630(struct prop *prop, u8 *nextcol, u16 floorcol);
|
||||
void colourTween(u8 *col, u8 *nextcol);
|
||||
void func0f069750(s32 *arg0, s32 arg1, f32 *arg2);
|
||||
void func0f069850(struct defaultobj *obj, struct coord *pos, f32 rot[3][3], struct tiletype3 *tile);
|
||||
void func0f069850(struct defaultobj *obj, struct coord *pos, f32 rot[3][3], struct geocyl *cyl);
|
||||
void func0f069b4c(struct defaultobj *obj);
|
||||
void func0f069c1c(struct defaultobj *obj);
|
||||
void func0f069c70(struct defaultobj *obj, bool arg1, bool arg2);
|
||||
@@ -136,7 +136,7 @@ void func0f07079c(struct prop *prop, bool fulltick);
|
||||
s32 glassCalculateOpacity(struct coord *pos, f32 xludist, f32 opadist, f32 arg3);
|
||||
void func0f070a1c(struct modelrodata_bbox *bbox, f32 realrot[3][3], struct coord *pos, struct coord *vertices);
|
||||
void func0f070bd0(struct modelrodata_type19 *rodata, f32 realrot[3][3], struct coord *pos, struct coord *vertices);
|
||||
void func0f070ca0(struct defaultobj *obj, struct tiletype1 *tile, u32 flags, struct modelrodata_bbox *bbox, struct modelrodata_type19 *rodata);
|
||||
void func0f070ca0(struct defaultobj *obj, struct geotilef *tile, u32 flags, struct modelrodata_bbox *bbox, struct modelrodata_type19 *rodata);
|
||||
void liftActivate(struct prop *prop, u8 liftnum);
|
||||
struct prop *liftFindByPad(s16 padnum);
|
||||
f32 liftGetY(struct liftobj *lift);
|
||||
|
||||
+27
-27
@@ -22,45 +22,45 @@ void cd00025038(struct coord *arg0, struct coord *arg1, struct prop *prop, f32 a
|
||||
void cd000250cc(struct coord *arg0, struct coord *arg1, f32 width);
|
||||
void cd00025168(struct prop *prop);
|
||||
void cd000251ac(struct coord *arg0, struct coord *arg1, struct coord *arg2, struct prop *prop);
|
||||
void cd00025254(struct coord *arg0, struct coord *arg1, struct coord *pos, struct prop *prop, f32 arg4, struct tile *tile);
|
||||
void cd00025254(struct coord *arg0, struct coord *arg1, struct coord *pos, struct prop *prop, f32 arg4, struct geo *tile);
|
||||
void cd00025314(struct coord *pos, struct coord *arg1);
|
||||
bool cd00025364(struct coord *arg0, struct coord *arg1);
|
||||
void cd000253c4(struct tiletype2 *tile);
|
||||
void cd000253c4(struct geoblock *tile);
|
||||
s32 cd00025410(f32 arg0, f32 arg1, f32 arg2, f32 arg3);
|
||||
s32 cd000254d8(struct coord *arg0, struct coord *arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, s32 *arg6);
|
||||
f32 cd00025654(f32 x1, f32 z1, f32 x2, f32 z2, f32 x3, f32 z3);
|
||||
f32 cd00025724(f32 x1, f32 z1, f32 x2, f32 z2);
|
||||
bool cd00025774(f32 x1, f32 z1, f32 x2, f32 z2, f32 x3, f32 z3);
|
||||
void cd00025848(f32 tilex, f32 tilez, f32 tilewidth, f32 posx, f32 posz, f32 *x1, f32 *z1, f32 *x2, f32 *z2);
|
||||
void cd00025928(struct tile *tile, struct coord *arg1);
|
||||
void cdGetFloorCol(struct tile *tile, u16 *floorcol);
|
||||
void cdGetFloorType(struct tile *tile, u8 *floortype);
|
||||
f32 cdFindGroundInTileType0AtVertex(struct tiletype0 *tile, f32 x, f32 z, s32 vertexindex);
|
||||
f32 cdFindGroundInTileType0(struct tiletype0 *tile, f32 x, f32 z);
|
||||
f32 cdFindGroundInTileType1(struct tiletype1 *tile, f32 x, f32 z);
|
||||
bool cdIs2dPointInTileType0(struct tiletype0 *tile, f32 x, f32 z);
|
||||
bool cdIs2dPointInTileType1(struct tiletype1 *tile, f32 x, f32 z);
|
||||
bool cdIs2dPointInTileType2(struct tiletype2 *tile, f32 x, f32 z);
|
||||
bool cdIs2dPointInTileType3(struct tiletype3 *tile, f32 x, f32 z);
|
||||
bool func000266a4(f32 x, f32 z, struct tile *tile);
|
||||
void cd00025928(struct geo *tile, struct coord *arg1);
|
||||
void cdGetFloorCol(struct geo *tile, u16 *floorcol);
|
||||
void cdGetFloorType(struct geo *tile, u8 *floortype);
|
||||
f32 cdFindGroundInIntTileAtVertex(struct geotilei *tile, f32 x, f32 z, s32 vertexindex);
|
||||
f32 cdFindGroundInIntTile(struct geotilei *tile, f32 x, f32 z);
|
||||
f32 cdFindGroundInFltTile(struct geotilef *tile, f32 x, f32 z);
|
||||
bool cdIs2dPointInIntTile(struct geotilei *tile, f32 x, f32 z);
|
||||
bool cdIs2dPointInFltTile(struct geotilef *tile, f32 x, f32 z);
|
||||
bool cdIs2dPointInBlock(struct geoblock *tile, f32 x, f32 z);
|
||||
bool cdIs2dPointInCyl(struct geocyl *cyl, f32 x, f32 z);
|
||||
bool func000266a4(f32 x, f32 z, struct geo *tile);
|
||||
void cdGetPropsOnPlatform(struct prop *platform, s16 *propnums, s32 len);
|
||||
bool cd00026a04(struct coord *pos, u8 *start, u8 *end, u16 flags, s32 room, struct tile **tileptr, s32 *roomptr, f32 *groundptr, bool arg8);
|
||||
void cd00026e7c(struct coord *pos, s16 *rooms, u16 arg2, struct tile **tileptr, s16 *room, f32 *arg5, struct prop **arg6, s32 arg7);
|
||||
bool cd0002709c(struct tiletype0 *tile, f32 x, f32 z, f32 width, struct prop *prop, struct collisionthing *thing);
|
||||
bool cd000272f8(struct tiletype1 *tile, f32 x, f32 z, f32 radius, struct prop *prop, struct collisionthing *thing);
|
||||
s32 cd000274e0(struct tiletype2 *tile, f32 x, f32 z, f32 width, struct prop *prop, struct collisionthing *thing);
|
||||
bool cd000276c8(struct tiletype3 *tile, f32 x, f32 z, f32 width, struct prop *prop, struct collisionthing *thing);
|
||||
bool cd00026a04(struct coord *pos, u8 *start, u8 *end, u16 flags, s32 room, struct geo **tileptr, s32 *roomptr, f32 *groundptr, bool arg8);
|
||||
void cd00026e7c(struct coord *pos, s16 *rooms, u16 arg2, struct geo **tileptr, s16 *room, f32 *arg5, struct prop **arg6, s32 arg7);
|
||||
bool cd0002709c(struct geotilei *tile, f32 x, f32 z, f32 width, struct prop *prop, struct collisionthing *thing);
|
||||
bool cd000272f8(struct geotilef *tile, f32 x, f32 z, f32 radius, struct prop *prop, struct collisionthing *thing);
|
||||
s32 cd000274e0(struct geoblock *tile, f32 x, f32 z, f32 width, struct prop *prop, struct collisionthing *thing);
|
||||
bool cd000276c8(struct geocyl *tile, f32 x, f32 z, f32 width, struct prop *prop, struct collisionthing *thing);
|
||||
void cd00027738(struct coord *pos, f32 width, u8 *start, u8 *end, u16 flags, bool checkvertical, f32 arg6, f32 arg7, struct prop *prop, struct collisionthing *things, s32 maxthings, s32 *thingnum, s32 roomnum);
|
||||
void cd00027d1c(struct coord *pos, f32 radius, s16 *rooms, u32 types, u16 arg4, u32 arg5, f32 arg6, f32 arg7, struct collisionthing *arg8, s32 arg9);
|
||||
u32 cd00027f78(void);
|
||||
s32 cd00028200(struct tiletype0 *tile, struct coord *pos, f32 width, f32 y1, f32 y2);
|
||||
s32 cd00028200(struct geotilei *tile, struct coord *pos, f32 width, f32 y1, f32 y2);
|
||||
u32 cd0002840c(void);
|
||||
u32 cd00028638(void);
|
||||
u32 cd0002885c(void);
|
||||
s32 cd00028914(u8 *start, u8 *end, struct coord *pos, f32 width, u16 flags, bool checkvertical, f32 arg6, f32 arg7, struct prop *prop, struct collisionthing *things, s32 maxthings, s32 *thingnum);
|
||||
void cd00028df0(struct coord *pos, f32 width, s16 *rooms, u32 types, u16 arg4, u32 arg5, f32 ymax, f32 ymin, struct collisionthing *arg8, s32 arg9);
|
||||
void cd0002901c(struct coord *pos, struct coord *dist, f32 width, struct collisionthing *arg3);
|
||||
f32 cd000296a0(struct collisionthing *arg0, struct coord *pos, struct tilething **arg2, f32 width);
|
||||
f32 cd000296a0(struct collisionthing *arg0, struct coord *pos, struct collisionthing **arg2, f32 width);
|
||||
bool cd00029ffc(struct coord *pos, f32 width, f32 foreheadheight, f32 inversefeettoeyesheight, s16 *rooms, u16 arg5, struct coord *laddernormal);
|
||||
bool cd0002a13c(struct coord *pos, f32 radius, f32 arg2, f32 arg3, s16 *rooms, u16 arg5);
|
||||
f32 cdFindGroundY(struct coord *pos, f32 radius, s16 *rooms, u16 *floorcol, u8 *floortype, u16 *floorflags, s16 *floorroom, s32 *inlift, struct prop **lift);
|
||||
@@ -90,7 +90,7 @@ u32 cd0002b954(void);
|
||||
bool cd0002bd04(u8 *start, u8 *end, struct coord *arg2, struct coord *arg3, struct coord *arg4, s32 arg5, s32 arg6, s32 arg7, f32 arg8, f32 arg9);
|
||||
u32 cd0002c328(void);
|
||||
u32 cd0002c528(void);
|
||||
bool cd0002c714(u8 *start, u8 *end, struct coord *arg2, struct coord *arg3, struct coord *arg4, u16 arg5, s32 arg6, s32 arg7, f32 ymax, f32 ymin, f32 *arg10, struct coord *arg11, struct coord *arg12, struct coord *arg13, struct tile **tile, s32 roomnum);
|
||||
bool cd0002c714(u8 *start, u8 *end, struct coord *arg2, struct coord *arg3, struct coord *arg4, u16 arg5, s32 arg6, s32 arg7, f32 ymax, f32 ymin, f32 *arg10, struct coord *arg11, struct coord *arg12, struct coord *arg13, struct geo **tile, s32 roomnum);
|
||||
bool cd0002d15c(struct coord *pos, struct coord *coord2, s16 *rooms, u32 types, u16 arg4, s32 arg5, s32 arg6, f32 arg7, f32 arg8);
|
||||
s32 cd0002d3b0(struct coord *arg0, struct coord *arg1, s16 *arg2, s32 types, u16 arg4, s32 arg5, s32 arg6, f32 ymax, f32 ymin);
|
||||
bool cd0002d6ac(struct coord *pos, s16 *rooms, struct coord *targetpos, u32 types, u32 arg4, f32 arg5, f32 arg6);
|
||||
@@ -111,15 +111,15 @@ s32 cd0002de10(struct coord *pos, s16 *rooms, struct coord *pos2, u32 types);
|
||||
s32 cd0002de34(struct coord *arg0, s16 *arg1, struct coord *arg2, s16 *arg3, u32 types, u16 arg5);
|
||||
s32 cd0002deac(struct coord *arg0, s16 *arg1, struct coord *arg2, s16 *arg3, u32 types);
|
||||
bool cd0002ded8(struct coord *arg0, struct coord *arg1, struct prop *prop);
|
||||
bool cd0002dffc(struct tiletype2 *arg0, struct tiletype2 *arg1);
|
||||
s32 cd0002e278(u8 *start, u8 *end, struct tiletype2 *ref, u16 flags);
|
||||
s32 cd0002e4c4(struct tiletype2 *geo, s16 *rooms, u32 types);
|
||||
bool cd0002dffc(struct geoblock *arg0, struct geoblock *arg1);
|
||||
s32 cd0002e278(u8 *start, u8 *end, struct geoblock *ref, u16 flags);
|
||||
s32 cd0002e4c4(struct geoblock *geo, s16 *rooms, u32 types);
|
||||
u32 cd0002e680(void);
|
||||
u32 cd0002e82c(void);
|
||||
u32 cd0002e9d8(void);
|
||||
u32 cd0002eb84(void);
|
||||
bool cd0002ed30(u8 *start, u8 *end, struct tiletype2 *tile, s32 numvertices, struct coord *arg4, struct coord *arg5, s32 arg6, struct prop *prop);
|
||||
s32 cd0002f02c(struct tiletype2 *tile, s16 *rooms, s32 types);
|
||||
bool cd0002ed30(u8 *start, u8 *end, struct geoblock *tile, s32 numvertices, struct coord *arg4, struct coord *arg5, s32 arg6, struct prop *prop);
|
||||
s32 cd0002f02c(struct geoblock *block, s16 *rooms, s32 types);
|
||||
bool cd0002f308(struct coord *viewpos, s16 *rooms, struct coord *targetpos, f32 distance, s32 arg4, u16 arg5);
|
||||
bool cd0002f450(struct coord *viewpos, s16 *rooms, struct coord *targetpos, f32 distance, s32 arg4);
|
||||
|
||||
|
||||
+19
-27
@@ -829,14 +829,14 @@ struct aibot {
|
||||
/*0x2dc*/ u32 unk2dc;
|
||||
};
|
||||
|
||||
struct tile {
|
||||
struct geo {
|
||||
/*0x00*/ u8 type;
|
||||
/*0x01*/ u8 numvertices;
|
||||
/*0x02*/ u16 flags;
|
||||
};
|
||||
|
||||
struct tiletype0 {
|
||||
struct tile header;
|
||||
struct geotilei {
|
||||
struct geo header;
|
||||
/*0x04*/ u16 floortype;
|
||||
/*0x06*/ u8 xmin; // These are byte offsets relative to the start of tile
|
||||
/*0x07*/ u8 ymin;
|
||||
@@ -848,8 +848,8 @@ struct tiletype0 {
|
||||
/*0x0e*/ s16 vertices[64][3];
|
||||
};
|
||||
|
||||
struct tiletype1 {
|
||||
struct tile header;
|
||||
struct geotilef {
|
||||
struct geo header;
|
||||
/*0x04*/ u16 floortype;
|
||||
union {
|
||||
// The arrays are surely the correct type here, but they create
|
||||
@@ -872,15 +872,15 @@ struct tiletype1 {
|
||||
/*0x10*/ struct coord vertices[64];
|
||||
};
|
||||
|
||||
struct tiletype2 {
|
||||
struct tile header;
|
||||
struct geoblock {
|
||||
struct geo header;
|
||||
/*0x04*/ f32 ymax;
|
||||
/*0x08*/ f32 ymin;
|
||||
/*0x0c*/ f32 vertices[8][2];
|
||||
};
|
||||
|
||||
struct tiletype3 {
|
||||
struct tile header;
|
||||
struct geocyl {
|
||||
struct geo header;
|
||||
/*0x04*/ f32 ymax;
|
||||
/*0x08*/ f32 ymin;
|
||||
/*0x0c*/ f32 x;
|
||||
@@ -888,14 +888,6 @@ struct tiletype3 {
|
||||
/*0x14*/ f32 radius;
|
||||
};
|
||||
|
||||
struct tilething {
|
||||
struct tile *tile;
|
||||
u32 unk04;
|
||||
u32 unk08;
|
||||
struct prop *lift;
|
||||
u32 floorroom;
|
||||
};
|
||||
|
||||
struct act_stand {
|
||||
/*0x2c*/ s32 prestand;
|
||||
/*0x30*/ s32 flags;
|
||||
@@ -1205,7 +1197,7 @@ struct chrdata {
|
||||
/*0x12e*/ s16 chrseeshot;
|
||||
/*0x130*/ s16 chrseedie;
|
||||
/*0x132*/ s16 chrdup;
|
||||
struct tiletype3 geo;
|
||||
struct geocyl geo;
|
||||
/*0x14c*/ f32 shotbondsum;
|
||||
/*0x150*/ f32 aimuplshoulder;
|
||||
/*0x154*/ f32 aimuprshoulder;
|
||||
@@ -1469,10 +1461,10 @@ struct defaultobj {
|
||||
/*0x1c*/ f32 realrot[3][3];
|
||||
/*0x40*/ u32 hidden;
|
||||
union {
|
||||
/*0x44*/ struct tiletype1 *geo1;
|
||||
/*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
|
||||
/*0x44*/ struct geotilef *geotilef;
|
||||
/*0x44*/ struct geoblock *geoblock;
|
||||
/*0x44*/ struct geocyl *geocyl;
|
||||
/*0x44*/ struct geocyl *unkgeo; // temporary, to indicate that I don't know which geo pointer is being used
|
||||
};
|
||||
union {
|
||||
/*0x48*/ struct projectile *projectile;
|
||||
@@ -1483,7 +1475,7 @@ struct defaultobj {
|
||||
/*0x50*/ u8 shadecol[4];
|
||||
/*0x54*/ u8 nextcol[4];
|
||||
/*0x58*/ u16 floorcol;
|
||||
/*0x5a*/ s8 numtiles;
|
||||
/*0x5a*/ s8 geocount;
|
||||
};
|
||||
|
||||
struct doorobj { // objtype 0x01
|
||||
@@ -2678,8 +2670,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 tiletype3 periminfo;
|
||||
/*0x19e4*/ struct tiletype3 perimshoot;
|
||||
/*0x19cc*/ struct geocyl periminfo;
|
||||
/*0x19e4*/ struct geocyl perimshoot;
|
||||
/*0x19fc*/ f32 bondprevtheta;
|
||||
/*0x1a00*/ struct coord grabbedprevpos;
|
||||
/*0x1a0c*/ f32 grabbedrotoffset;
|
||||
@@ -5781,11 +5773,11 @@ struct texturepair {
|
||||
};
|
||||
|
||||
struct collisionthing {
|
||||
struct tile *tile;
|
||||
struct geo *geo;
|
||||
u32 unk04;
|
||||
s32 unk08;
|
||||
struct prop *prop;
|
||||
u32 roomnum;
|
||||
s32 room;
|
||||
};
|
||||
|
||||
struct escastepkeyframe {
|
||||
|
||||
Reference in New Issue
Block a user