Finish populating JSRF/Core

This commit is contained in:
KeybadeBlox 2026-01-02 00:05:52 -05:00
parent f8578b0871
commit 08abfd3913
6 changed files with 342 additions and 19 deletions

View file

@ -36,8 +36,10 @@ enum GameObjFlags {
// objecs.
enum GameObjIndex {
OBJ_NOTINDEXED = -1, // Not stored in array
OBJ_DIRECTOR = 0
OBJ_DIRECTOR = 0,
// TODO
OBJ_CNT = 0x1DF4
};
// Base class of most objects (and everything in g_game->objects)
@ -50,19 +52,18 @@ struct GameObj {
unsigned sortKey; // Four-level key, one byte each
D3DVECTOR someTranslation;
// Links forming a tree of objects
// Links forming a tree of objects for exec phase
GameObj * parent;
GameObj * firstChild;
GameObj * prevSibling;
GameObj * nextSibling;
// Some kind of linked list walked during rendering
GameObj * somethingLinkedNext;
GameObj * * somethingLinkedPrevNext;
GameObj * * * somethingLinkedEndNextPtr;
// Some data structures used for draw phrase
GameObj * nextDrawTree;
GameObj * * prevDrawTreeNext;
GameObj * * * lastDrawTreeNextPtr;
// Another linked list sort of arrangement
GameObj * someKindOfNextObj;
GameObj * drawPriorityListNext;
virtual ~GameObj();
@ -213,6 +214,7 @@ enum DrawMode {
enum GlobalIndex {
};
#pragma pack(4)
extern struct Game {
char unknown0x4[4];
unsigned unknown0x8;
@ -272,6 +274,8 @@ extern struct Game {
GameObj * drawPriorityListsByKeyHeads [256];
GameObj * * drawPriorityListsByKeyEndNexts[256];
unsigned unknown0x87B4;
LARGE_INTEGER execPerfCount;
LARGE_INTEGER drawPerfCount;
@ -312,7 +316,7 @@ extern struct Game {
void setUncoveredPauseNextFrame(BOOL val);
void enableDrawChildren();
void setSkipDraw();
void enableSkipDraw();
void fatal();
void setDrawMode(DrawMode mode);
@ -335,11 +339,11 @@ extern struct Game {
void clearDrawPriorityList();
GameObj * getDrawPriorityListHead();
void appendToDrawPriorityList();
void appendToDrawPriorityList(GameObj * obj);
void sortDrawPriorityListSingleLevel(char sortKeyBitOffset);
void setFallbackBgColour(D3DCOLOR colour, BOOL useFallback);
void initExecRootObj();
void initRootExecObj();
void drawList(GameObjFlags flagFilterAll, BOOL);
void sortDrawPriorityList();
void drawObjs();