Continue populating JSRF/Core

This commit is contained in:
KeybadeBlox 2025-12-31 23:03:36 -05:00
parent f65876135d
commit f8578b0871
3 changed files with 356 additions and 28 deletions

View file

@ -11,3 +11,294 @@ Game and GameObj classes that form the foundation of the JSRF game code.
GameObj::~GameObj() {
g_game->gameObjCnt -= 1;
}
// Address: 0x00011070
// Matching: no
void GameObj::recursiveExecDefault() {
}
// Address: 0x000110A0
// Matching: no
void GameObj::drawListDefault(
GameObjFlags flagFilterAny1,
int drawArg1,
int drawArg2,
GameObjFlags flagFilterAll,
unsigned otherBitfieldFilterAny,
GameObjFlags flagFilterNone,
GameObjFlags flagFilterAny2
) {
}
// Address: 0x00011220
// Matching: no
void GameObj::drawTreeDefault1() {
}
// Address: 0x00011260
// Matching: no
void GameObj::drawTreeDefault2() {
}
// Address: 0x000112A0
// Matching: no
void GameObj::recursiveExecEvent() {
}
// Address: 0x000112D0
// Matching: no
void GameObj::drawListEvent(
GameObjFlags flagFilterAny1,
int drawArg1,
int drawArg2,
GameObjFlags flagFilterAll,
unsigned otherBitfieldFilterAny,
GameObjFlags flagFilterNone,
GameObjFlags flagFilterAny2
) {
}
// Address: 0x00011450
// Matching: no
void GameObj::drawTreeEvent1() {
}
// Address: 0x00011490
// Matching: no
void GameObj::drawTreeEvent2() {
}
// Address: 0x000114D0
// Matching: no
void GameObj::recursiveExecCoveredPause() {
}
// Address: 0x00011500
// Matching: no
void GameObj::drawListCoveredPause(
GameObjFlags flagFilterAny1,
int drawArg1,
int drawArg2,
GameObjFlags flagFilterAll,
unsigned otherBitfieldFilterAny,
GameObjFlags flagFilterNone,
GameObjFlags flagFilterAny2
) {
}
// Address: 0x00011680
// Matching: no
void GameObj::drawTreeCoveredPause1() {
}
// Address: 0x000116C0
// Matching: no
void GameObj::drawTreeCoveredPause2() {
}
// Address: 0x00011700
// Matching: no
void GameObj::recursiveExecFreezeCam() {
}
// Address: 0x00011730
// Matching: no
void GameObj::drawListFreezeCam(
GameObjFlags flagFilterAny1,
int drawArg1,
int drawArg2,
GameObjFlags flagFilterAll,
unsigned otherBitfieldFilterAny,
GameObjFlags flagFilterNone,
GameObjFlags flagFilterAny2
) {
}
// Address: 0x000118B0
// Matching: no
void GameObj::drawTreeFreezeCam1() {
}
// Address: 0x000118F0
// Matching: no
void GameObj::drawTreeFreezeCam2() {
}
// Address: 0x00011930
// Matching: no
void GameObj::recursiveExecUncoveredPause() {
}
// Address: 0x00011960
// Matching: no
void GameObj::drawListUncoveredPause(
GameObjFlags flagFilterAny1,
int drawArg1,
int drawArg2,
GameObjFlags flagFilterAll,
unsigned otherBitfieldFilterAny,
GameObjFlags flagFilterNone,
GameObjFlags flagFilterAny2
) {
}
// Address: 0x00011AE0
// Matching: no
void GameObj::drawTreeUncoveredPause1() {
}
// Address: 0x00011B20
// Matching: no
void GameObj::drawTreeUncoveredPause2() {
}
// Address: 0x00011B60
// Matching: no
void GameObj::addToSiblings(GameObj * sibling, GameObj * parent) {
}
// Address: 0x00011B90
// Matching: no
void GameObj::destructChildren(GameObj * firstChild) {
}
// Address: 0x00011BD0
// Matching: yes
GameObj * GameObj::getParent() {
return this->parent;
}
// Address: 0x00011BE0
// Matching: no
void GameObj::removeFromObjList(GameObj * obj) {
}
// Address: 0x00011C20
// Matching: no
void GameObj::removeChildrenFromObjList(GameObj * firstChild) {
}
// Address: 0x00011C80
// Matching: yes
void GameObj::drawDefault(int unknown) {}
// Address: 0x00011C90
// Matching: yes
void GameObj::execDefault() {}
// Eliminated by link time code generation (aliased with 0x00011C90)
void GameObj::postExecDefault() {}
// Eliminated by link time code generation (aliased with 0x00011C90)
void GameObj::execEvent() {}
// Eliminated by link time code generation (aliased with 0x00011C90)
void GameObj::postExecEvent() {}
// Eliminated by link time code generation (aliased with 0x00011C80)
void GameObj::drawEvent(int unknown) {}
// Eliminated by link time code generation (aliased with 0x00011C90)
void GameObj::execCoveredPause() {}
// Eliminated by link time code generation (aliased with 0x00011C90)
void GameObj::postExecCoveredPause() {}
// Eliminated by link time code generation (aliased with 0x00011C80)
void GameObj::drawCoveredPause(int unknown) {}
// Eliminated by link time code generation (aliased with 0x00011C90)
void GameObj::execFreezeCam() {}
// Eliminated by link time code generation (aliased with 0x00011C90)
void GameObj::postExecFreezeCam() {}
// Eliminated by link time code generation (aliased with 0x00011C80)
void GameObj::drawFreezeCam(int unknown) {}
// Eliminated by link time code generation (aliased with 0x00011C90)
void GameObj::execUncoveredPause() {}
// Eliminated by link time code generation (aliased with 0x00011C90)
void GameObj::postExecUncoveredPause() {}
// Eliminated by link time code generation (aliased with 0x00011C80)
void GameObj::drawUncoveredPause(int unknown) {}
// Address: 0x00011CA0
// Matching: no
void DrawTree::copySomeVectors() {
}
// Address: 0x00011D00
// Matching: no
void GameObj::recursivePostExecDefault() {
}
// Address: 0x00011D00
// Matching: no
void GameObj::recursivePostExecEvent() {
}
// Address: 0x00011E40
// Matching: no
void GameObj::recursivePostExecCoveredPause() {
}
// Address: 0x00011EE0
// Matching: no
void GameObj::recursivePostExecFreezeCam() {
}
// Address: 0x00011F80
// Matching: no
void GameObj::recursivePostExecUncoveredPause() {
}
// Address: 0x00012020
// Matching: no
void GameObj::setParent(GameObj * parent) {
}
// Address: 0x00012100
// Matching: no
GameObj::GameObj(GameObj * parent, GameObjIndex index, GameObjFlags flags) {
g_game->setObj(index, this);
this->parent = NULL;
this->firstChild = NULL;
this->prevSibling = NULL;
this->nextSibling = NULL;
this->index = index;
this->flags = flags;
this->setParent(parent);
this->sortKey = 0;
this->otherBitfield = 1;
g_game->gameObjCnt += 1;
}
// Address: 0x00012170
// Matching: no
DrawTree::DrawTree(GameObj * parent, GameObjIndex index, GameObjFlags flags) :
GameObj(parent, index, flags) {
this->otherBitfield = 7;
this->someIndex = 0;
}
// Address: 0x000121D0
// Matching: no
DrawTree::~DrawTree() {}
// Address: 0x000121E0
// Matching: no
PlayerObj::PlayerObj(GameObj * parent, GameObjIndex index, GameObjFlags flags) :
GameObj(parent, index, flags) {
this->unknown0x44 = 0;
this->unknown0x48 = 0;
}
// Eliminated by link time code generation (aliased with 0x000121D0)
PlayerObj::~PlayerObj() {}

View file

@ -41,7 +41,7 @@ enum GameObjIndex {
};
// Base class of most objects (and everything in g_game->objects)
class GameObj {
struct GameObj {
GameObjFlags flags;
GameObjIndex index;
@ -64,7 +64,6 @@ class GameObj {
// Another linked list sort of arrangement
GameObj * someKindOfNextObj;
public:
virtual ~GameObj();
void recursiveExecDefault();
@ -147,23 +146,23 @@ public:
// frame.
virtual void execDefault();
virtual void postExecDefault();
virtual void drawDefault();
virtual void drawDefault(int);
virtual void execEvent();
virtual void postExecEvent();
virtual void drawEvent();
virtual void drawEvent(int);
virtual void execCoveredPause();
virtual void postExecCoveredPause();
virtual void drawCoveredPause();
virtual void drawCoveredPause(int);
virtual void execFreezeCam();
virtual void postExecFreezeCam();
virtual void drawFreezeCam();
virtual void drawFreezeCam(int);
virtual void execUncoveredPause();
virtual void postExecUncoveredPause();
virtual void drawUncoveredPause();
virtual void drawUncoveredPause(int);
void recursivePostExecDefault();
void recursivePostExecEvent();
@ -178,7 +177,7 @@ public:
// Base class of objects serving as the head of a tree of objects to draw
// recursively
class DrawTree : GameObj {
struct DrawTree : GameObj {
D3DVECTOR unknown0x44;
D3DVECTOR unknown0x50;
D3DVECTOR unknown0x5C;
@ -190,18 +189,17 @@ class DrawTree : GameObj {
D3DRECT viewport;
unsigned someIndex;
public:
void copySomeVectors();
DrawTree(GameObj * parent, GameObjIndex index, GameObjFlags flags);
virtual ~DrawTree();
};
class PlayerObj : GameObj {
struct PlayerObj : GameObj {
unsigned unknown0x44;
unsigned unknown0x48;
public:
PlayerObj(GameObj * parent, GameObjIndex index, GameObjFlags flags);
virtual ~PlayerObj();
};
// Top-level globally-accessible "god object" that runs the main loop and
@ -251,9 +249,9 @@ extern struct Game {
BOOL uncoveredPauseNextFrame;
BOOL noUncoveredPauseNextFrame;
unsigned unknown0x70;
BOOL drawChildren;
BOOL skipDraw;
int zeroedByExec;
BOOL runSomeExtraDrawListCode;
GraphicsPerformanceCounters perfCounters;
DrawMode drawMode;
@ -262,17 +260,17 @@ extern struct Game {
GameObj * objects[7668];
unsigned globals[461]; // Items may be any 32-bit type, e.g. ptr
GameObj * somethingLinkedBHead;
GameObj * * somethingLinkedBEndNext;
DrawTree * drawTreesHead;
DrawTree * * drawTreesEndNext;
GameObj * somethingLinkedAHead;
GameObj * * somethingLinkedAEndNext;
GameObj * drawListHead;
GameObj * * drawListEndNext;
GameObj * sortedLinkedListHead;
GameObj * * sortedLinkedListEndNext;
GameObj * drawPriorityListHead;
GameObj * * drawPriorityListEndNext;
GameObj * linkedListsByKeyHeads [256];
GameObj * * linkedListByKeyEndNexts[256];
GameObj * drawPriorityListsByKeyHeads [256];
GameObj * * drawPriorityListsByKeyEndNexts[256];
LARGE_INTEGER execPerfCount;
LARGE_INTEGER drawPerfCount;
@ -286,10 +284,10 @@ extern struct Game {
int frameCnt2;
int frameCnt3;
unsigned gameObjCnt;
GameObj * rootDrawObj;
int unknown0x87F0;
DrawTree * currentDrawTree;
GameObjIndex currentDrawTreeIndex;
int unknown0x87F4;
Mat4 unknown0x87F8;
Mat4 parentMatrix;
unsigned unknown0x8838;
unsigned unknown0x883C;
@ -324,8 +322,8 @@ extern struct Game {
void addToDrawList (GameObj * obj);
void removeFromDrawList(GameObj * obj);
void setObj (GameObjIndex index );
void unsetObj (GameObjIndex index , GameObj * obj);
void setObj (GameObjIndex index , GameObj * obj);
void unsetObj (GameObjIndex index );
GameObj * getObj (GameObjIndex index );
int allocObjIndex(GameObjIndex min , GameObjIndex max);
BOOL objIndexAvail(GameObjIndex index );
@ -351,7 +349,7 @@ extern struct Game {
} * g_game;
// Root of the exec GameObj tree
class RootExecObj : GameObj {
struct RootExecObj : GameObj {
RootExecObj(GameObj * parent, GameObjIndex index, GameObjFlags flags);
virtual ~RootExecObj();
};