mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-08-02 00:14:10 -04:00
Decompile bgChooseRoomsToLoad and discover more room and portal flags
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user