Decompile bgChooseRoomsToLoad and discover more room and portal flags

This commit is contained in:
Ryan Dwyer
2022-07-11 23:42:04 +10:00
parent a51a7fae0e
commit 5d8f96f36a
25 changed files with 504 additions and 712 deletions
+9 -8
View File
@@ -3351,9 +3351,10 @@
#define PORTALCMD_64 0x64
#define PORTALCMD_TRAILER 0x65
#define PORTALFLAG_ENABLED 0x01
#define PORTALFLAG_02 0x02
#define PORTALFLAG_04 0x04
#define PORTALFLAG_BLOCKED 0x01 // Due to door being closed, or player is too far from glass
#define PORTALFLAG_02 0x02
#define PORTALFLAG_FORCEUNBLOCKED 0x04 // Glass is destroyed, or door is freed
#define PORTALFLAG_SKIP 0x08 // DD tower exterior - don't bother processing these
#define PORTALMODE_SHOW 0
#define PORTALMODE_HIDE 1
@@ -3469,12 +3470,12 @@
#define RENDERPASS_XLU 1
#define RENDERPASS_OPA_POSTBG 2
#define ROOMFLAG_FORCEDISABLED 0x0001
#define ROOMFLAG_HASDYNTEX 0x0002
#define ROOMFLAG_VISIBLEBYPLAYER 0x0004
#define ROOMFLAG_VISIBLEBYAIBOT 0x0008
#define ROOMFLAG_DISABLEDBYSCRIPT 0x0001
#define ROOMFLAG_HASDYNTEX 0x0002 // Has dynamic textures such as water
#define ROOMFLAG_ONSCREEN 0x0004
#define ROOMFLAG_STANDBY 0x0008 // Neighbour of an onscreen room - usually loaded as well
#define ROOMFLAG_0010 0x0010
#define ROOMFLAG_0020 0x0020
#define ROOMFLAG_LOADCANDIDATE 0x0020 // Room is a good candidate for loading on this tick
#define ROOMFLAG_0040 0x0040
#define ROOMFLAG_RENDERALWAYS 0x0080
#define ROOMFLAG_DIRTY 0x0100
+6 -6
View File
@@ -45,10 +45,10 @@ Gfx *boxRenderBorder(Gfx *gdl, s32 x1, s32 y1, s32 x2, s32 y2);
bool boxGetIntersection(struct screenbox *a, struct screenbox *b);
void boxExpand(struct screenbox *a, struct screenbox *b);
void boxCopy(struct screenbox *dst, struct screenbox *src);
bool roomIsVisibleByAnyPlayer(s32 room);
bool roomIsVisibleByAnyAibot(s32 room);
bool roomIsVisibleByPlayer(s32 room, u32 playernum);
bool roomIsVisibleByAibot(s32 room, u32 aibotindex);
bool roomIsOnScreen(s32 room);
bool roomIsOnStandby(s32 room);
bool roomIsOnPlayerScreen(s32 room, u32 playernum);
bool roomIsOnPlayerStandby(s32 room, u32 aibotindex);
s32 portalFindNumByVertices(struct portalvertices *pvertices);
u32 bgInflate(u8 *src, u8 *dst, u32 len);
Gfx *func0f15da00(struct roomgfxdata18 *arg0, Gfx *arg1, Gfx *arg2);
@@ -86,7 +86,7 @@ u32 func0f162d9c(void);
void func0f1632d4(s16 roomnum1, s16 roomnum2, s16 draworder, struct screenbox *box);
void func0f163528(struct var800a4d00 *arg0);
bool func0f163904(void);
u32 func0f16397c(void);
void bgChooseRoomsToLoad(void);
void bgTickPortals(void);
Gfx *func0f164150(Gfx *gdl);
s32 roomsGetActive(s16 *rooms, s32 len);
@@ -97,7 +97,7 @@ void bgExpandRoomToPortals(s32 roomnum);
void portalSwapRooms(s32 portal);
void func0f164ab8(s32 portalnum);
void room0f164c64(s32 roomnum);
void portalSetEnabled(s32 portal, bool enable);
void portalSetUnblocked(s32 portal, bool unblocked);
s32 func0f164e8c(struct coord *arg0, struct coord *arg1);
bool bgIsBboxOverlapping(struct coord *arg0, struct coord *arg1, struct coord *arg2, struct coord *arg3);
void portalFindBbox(s32 portalnum, struct coord *bbmin, struct coord *bbmax);
+1 -1
View File
@@ -203,7 +203,7 @@ bool chrSetPadPresetToWaypointWithinTargetQuadrant(struct chrdata *chr, u8 arg1)
bool chrSetChrPresetToChrNearPad(u32 checktype, struct chrdata *chr, f32 distance, s32 padnum);
bool chrSetChrPresetToChrNearPos(u8 checktype, struct chrdata *chr, f32 distance, struct coord *pos, s16 *room);
bool chrSetPadPresetToPadOnRouteToTarget(struct chrdata *chr);
bool func0f04aeb0(struct coord *pos, s16 *rooms);
bool chrIsPosOffScreen(struct coord *pos, s16 *rooms);
#if VERSION >= VERSION_NTSC_1_0
bool chrAdjustPosForSpawn(f32 chrwidth, struct coord *pos, s16 *rooms, f32 angle, bool arg4, bool arg5, bool arg6);
+2 -2
View File
@@ -76,8 +76,8 @@
/*0x0045*/ bool ai0045(void);
/*0x0046*/ bool aiIfNeverBeenOnScreen(void);
/*0x0047*/ bool aiIfOnScreen(void);
/*0x0048*/ bool aiIfChrInActiveRoom(void);
/*0x0049*/ bool aiIfRoomActive(void);
/*0x0048*/ bool aiIfChrInOnScreenRoom(void);
/*0x0049*/ bool aiIfRoomIsOnScreen(void);
/*0x004a*/ bool ai004a(void);
/*0x004b*/ bool aiIfNearMiss(void);
/*0x004c*/ bool aiIfSeesSuspiciousItem(void);
+5 -5
View File
@@ -4,11 +4,11 @@
#include "data.h"
#include "types.h"
void portal0f0b63b0(s32 portalnum, f32 frac);
void portal0f0b6470(s32 portalnum, f32 frac);
f32 portal0f0b6534(s32 arg0);
f32 portal0f0b656c(s32 arg0);
void portal0f0b65a8(s32 arg0);
void portalSetXluFrac2(s32 portalnum, f32 frac);
void portalSetXluFrac(s32 portalnum, f32 frac);
f32 portalGetXluFrac2(s32 arg0);
f32 portalGetXluFrac(s32 arg0);
void portal0f0b65a8(s32 numportals);
void portalsReset(void);
void acousticReset(void);