initial test with porting d_base

This commit is contained in:
elijah-thomas774
2023-08-09 12:00:45 -04:00
parent 42880ec9ae
commit 5e2c18896d
9 changed files with 678 additions and 61 deletions
+293
View File
@@ -0,0 +1,293 @@
#include <d/a/d_a_base.h>
// .sdata
/* 0x80571920 */ u32 dAcBase_c::s_Create_RoomId = -1;
/* 0x80571924 */ u32 dAcBase_c::s_Create_Params2 = -1;
/* 0x80571928 */ u16 dAcBase_c::s_Create_UnkFlags = -1;
/* 0x8057192A */ u8 dAcBase_c::s_Create_ViewClipIdx = -1;
// .sbss
/* 0x80575080 */ Vec3f* dAcBase_c::s_Create_Position;
/* 0x80575084 */ Vec3s* dAcBase_c::s_Create_Rotation;
/* 0x80575088 */ Vec3f* dAcBase_c::s_Create_Scale;
/* 0x8057508C */ dAcBase_c* dAcBase_c::s_Create_Parent;
/* 0x80575090 */ ObjInfoPtr* dAcBase_c::s_Create_ObjInfo;
/* 0x80575094 */ u8 dAcBase_c::s_Create_Subtype;
/* 8002c3a0 */
bool dAcBase_c::createHeap() {
return true;
}
/* 8002c3b0 */
dAcBase_c::dAcBase_c() {}
/* 8002c530 */ // dont know how this got here
dBase_c::~dBase_c() {}
/* 8002c590 */
dAcBase_c::~dAcBase_c() {}
/* 8002c650 */
void dAcBase_c::setTempCreateParams( \
Vec3f* pos, Vec3s* rot, Vec3f* scale, \
s32 roomId, u32 params2, dAcBase_c* parent, \
u8 subtype, s16 unkFlag, u8 viewClipIdx,\
ObjInfoPtr* objInfo )
{
s_Create_Position = pos;
s_Create_Rotation = rot;
s_Create_Scale = scale;
s_Create_RoomId = roomId;
s_Create_Params2 = params2;
s_Create_Parent = parent;
s_Create_Subtype = subtype;
s_Create_UnkFlags = unkFlag;
s_Create_ViewClipIdx = viewClipIdx;
s_Create_ObjInfo = objInfo;
}
/* 8002c690 */
void* dAcBase_c::FUN_8002c690() {}
/* 8002c710 */
int dAcBase_c::initAllocatorWork1Heap(int size, char* name) {
initAllocator(size, name, dHeap::work1Heap);
}
extern "C" int FUN_802ee510(mAllocator*, int size, EGG::Heap* heap, char* name, int align, int unk);
/* 8002c720 */
int dAcBase_c::initAllocator(int size, char* name, EGG::Heap* heap) {
if (FUN_802ee510(&mHeapAllocator, size, heap, name, 0x20, 0) == 0){
return 0;
}
soundRelated = FUN_8002c690();
int success = createHeap();
mHeapAllocator.adjustFrmHeapRestoreCurrent();
return success;
}
/* 8002c7b0 */
bool dAcBase_c::addActorToRoom(s32 roomId) {}
/* 8002c840 */
void dAcBase_c::setBit_field_0xE8(s32) {}
/* 8002c860 */ // virt func, initiates the allocator
int dAcBase_c::actorCreate() {}
/* 8002c870 */ // virt func
int dAcBase_c::actorReCreate() {}
/* 8002c880 */
int dAcBase_c::create() {}
/* 8002c8f0 */
void dAcBase_c::postCreate(fBase_c::MAIN_STATE_e state) {}
/* 8002c940 */
int dAcBase_c::preDelete() {}
/* 8002cb10 */
int dAcBase_c::preExecute() {}
/* 8002cc10 */
int dAcBase_c::execute() {}
/* 8002cca0 */
int dAcBase_c::actorExecute() {}
/* 8002ccb0 */
int dAcBase_c::actorExecuteInEvent() {}
/* 8002ccc0 */
void dAcBase_c::postExecute(fBase_c::MAIN_STATE_e state) {}
/* 8002ce90 */
void dAcBase_c::unkVirtFunc_0x5C() { return; }
/* 8002cea0 */
void dAcBase_c::unkVirtFunc_0x60() { return; }
/* 8002ceb0 */
bool dAcBase_c::restorePosRotFromCopy() {}
/* 8002cf10 */
u32 dAcBase_c::itemDroppingAndGivingRelated(Vec3f* spawnPos, int subtype) {}
/* 8002cf90 */
void dAcBase_c::fillUpperParams2Byte() {}
/* 8002cfa0 */
u32 dAcBase_c::getParams2_ignoreLower() {}
/* 8002cfb0 */
void dAcBase_c::setParams2Upper_ignoreLower(u32 val) {}
/* 8002cfc0 */
u8 dAcBase_c::getParams2UpperByte() {}
/* 8002cfd0 */
void dAcBase_c::setParams2UpperByte(u32 val) {}
/* 8002cff0 */
u32 dAcBase_c::buildParams2(u32 lower, u8 upper) {}
/* 8002d010 */
u32 dAcBase_c::getParams2Lower() {}
/* 8002d020 */
dAcBase_c* dAcBase_c::findActor(char* objName, dAcBase_c* parent) {}
/* 8002d0a0 */ // searches for actor based on groupType
dAcBase_c* dAcBase_c::searchActor(dAcBase_c& optionalParent) {}
/* 8002d130 */
void dAcBase_c::forEachActor(void*, dAcBase_c&) {}
/* 8002d190 */
void dAcBase_c::getXZAngleToPlayer(s16&, dAcBase_c&) {}
/* 8002d1d0 */
bool dAcBase_c::getDistanceToActor(dAcBase_c& actor, f32 distThresh, f32* outDist) {}
/* 8002d290 */
bool dAcBase_c::getDistanceAndAngleToActor( \
dAcBase_c& actor, f32 distThresh, s16 yAngle, s16 xAngle, \
f32* outDist, s16* outDiffAngleY, s16* outDiffAngleX)
{
}
/* 8002d3e0 */
bool dAcBase_c::isWithinPlayerRadius(f32 radius) {}
/* 8002d440 */
bool dAcBase_c::getDistanceAndAngleToPlayer( \
f32 distThresh, s16 yAngle, s16 xAngle, \
f32* outDist, s16* outDiffAngleY, s16* outDiffAngleX)
{
// return getDistanceAndAngleToActor(PLAYER, distThresh, yAngle, xAngle, outDist, outDiffAngleY, outDiffAngleX);
}
/* 8002d470 */
f32 dAcBase_c::getDistToPlayer() {}
/* 8002d4a0 */
f32 dAcBase_c::getSquareDistToPlayer() {}
/* 8002d4b0 */
void dAcBase_c::updateRoomId(f32 yOffs) {}
/* 8002d540 */ // currently named Global__isRoomFlags_6not0
bool dAcBase_c::isRoomFlags_0x6_Set() {}
/* 8002d590 */
void dAcBase_c::FUN_8002d590() {}
/* 8002d5b0 */
void dAcBase_c::FUN_8002d5b0() {}
/* 8002d5d0*/
void dAcBase_c::playSound() {}
/* 8002d600 */
void dAcBase_c::FUN_8002d600() {}
/* 8002d630 */
void dAcBase_c::FUN_8002d630() {}
/* 8002d6d0 */
void dAcBase_c::FUN_8002d6d0() {}
/* 8002d710 */ // currently named ActorBase__playSoundEffect1
void dAcBase_c::playSoundEffect1() {}
/* 8002d740 */
void dAcBase_c::FUN_8002d740() {}
/* 8002d770 */
void dAcBase_c::FUN_8002d770() {}
/* 8002d7a0 */
void dAcBase_c::FUN_8002d7a0() {}
/* 8002d7d0 */
void dAcBase_c::FUN_8002d7d0() {}
/* 8002d7f0 */
void dAcBase_c::FUN_8002d7f0() {}
/* 8002d810 */
void dAcBase_c::FUN_8002d810() {}
/* 8002d830 */
void dAcBase_c::FUN_8002d830() {}
/* 8002d860 */
void dAcBase_c::FUN_8002d860() {}
/* 8002d880 */
void dAcBase_c::FUN_8002d880() {}
/* 8002d890 */ // first param is not dAcBase_c
void dAcBase_c::FUN_8002d890() {}
/* 8002d920 */ // current name is Global__setActorRef
void dAcBase_c::setActorRef(dBase_c&) {}
/* 8002d930 */ // May not be only purpose
void dAcBase_c::setUnkFlag() {}
/* 8002d940 */
void dAcBase_c::FUN_8002d940() {}
/* 8002d960 */
void dAcBase_c::FUN_8002d960() {}
/* 8002d980 */ // spawns GroupType2 (ACTOR)
dAcBase_c dAcBase_c::createActor( \
ProfileName actorId, u32 params1, \
Vec3f* pos, Vec3s* rot, Vec3f* scale, \
u32 params2, s32 roomId, dBase_c* ref) {}
/* 8002da80 */ // spawns GroupType3 (TG_FORCE_LINE ? )
dAcBase_c dAcBase_c::createActorUnkGroup3( \
ProfileName actorId, u32 params1, \
Vec3f* pos, Vec3s* rot, Vec3f* scale, \
u32 params2, s32 roomId, dBase_c* ref) {}
/* 8002db80 */
void* dAcBase_c::getCurrentEventActor() {}
/* 8002db90 */
void dAcBase_c::unkVirtFunc_0x6C() {}
/* 8002dba0 */
void dAcBase_c::doInteraction(s32) {}
/* 8002dc20 */
void dAcBase_c::FUN_8002dc20(s16*, s16*) {}
/* 8002dc50 */
void dAcBase_c::incrementKillCounter() {}
/* 8002dcd0 */
void dAcBase_c::FUN_8002dcd0() {}
/* 8002dd10 */
void dAcBase_c::FUN_8002dd10() {}
/* 8002dd50 */
void dAcBase_c::FUN_8002dd50() {}
/* 8002dd90 */
void dAcBase_c::FUN_8002dd90() {}
/* 8002ddd0 */
void dAcBase_c::FUN_8002ddd0() {}
/* 8002de30 */
void dAcBase_c::FUN_8002de30() {}
+81
View File
@@ -0,0 +1,81 @@
#include <d/d_base.h>
extern "C" fProfile::fBaseProfile_c** DAT_ACTOR_ALLOCATION_FUNCTIONS;
extern "C" /* 805750c0 */ u32 ACTOR_SHOULD_UPDATE_FLAGS;
extern "C" /* 805750c4 */ u32 ACTOR_SHOULD_DRAW_FLAGS;
extern "C" /* 805750c0 */ u32 ACTOR_SHOULD_UNK_FLAGS;
dBase_c::dBase_c() : fBase_c() {
baseProperties = DAT_ACTOR_ALLOCATION_FUNCTIONS[mProfName]->mBaseProperties;
}
void dBase_c::postDraw(fBase_c::MAIN_STATE_e status) {
if (status != CANCELED) {
baseProperties |= 0x100;
} else {
baseProperties &= ~0x100;
}
fBase_c::postDraw(status);
}
int dBase_c::preExecute() {
if (fBase_c::preExecute() == 0) {
return NOT_READY;
}
if (ACTOR_SHOULD_UPDATE_FLAGS && !isProcControlFlag(ACTOR_SHOULD_UPDATE_FLAGS)) {
return NOT_READY;
}
return SUCCEEDED;
}
void dBase_c::postExecute(fBase_c::MAIN_STATE_e status) {
if (status != CANCELED) {
baseProperties |= 0x4;
} else {
baseProperties &= ~0x4;
}
fBase_c::postExecute(status);
}
int dBase_c::preDraw() {
if (fBase_c::preDraw() == NOT_READY) {
return NOT_READY;
}
if (ACTOR_SHOULD_DRAW_FLAGS && !isProcControlFlag(ACTOR_SHOULD_DRAW_FLAGS)) {
return NOT_READY;
}
return SUCCEEDED;
}
void dBase_c::resetFlags() {
ACTOR_SHOULD_UPDATE_FLAGS = 0;
ACTOR_SHOULD_DRAW_FLAGS = 0;
ACTOR_SHOULD_UNK_FLAGS = 0;
}
bool dBase_c::isActorPlayer(dBase_c& base) {
return base.mProfName == fProfile::PLAYER;
}
int dBase_c::loadAsyncCallback() {
return 2;
}
void dBase_c::unloadCallback() {
return;
}
void dBase_c::initLoader() {
fBase_c::sLoadAsyncCallback = loadAsyncCallback;
fBase_c::sUnloadCallback = unloadCallback;
}
dBase_c* dBase_c::createBase(ProfileName profName, dBase_c* parent, unsigned long param, u8 grouptype) {
return static_cast<dBase_c*>(fBase_c::createChild(profName, parent, param, grouptype));
}
dBase_c* dBase_c::createRoot(ProfileName profName, unsigned long param, u8 groupType) {
return static_cast<dBase_c*>(fBase_c::createRoot(profName, param, groupType));
}
// dBase_c::~dBase_c() {}
+145
View File
@@ -0,0 +1,145 @@
#include <f/f_base.h>
/*
.text File Range:
[802e12f0 - 802e2680]
*/
// This file will be ported from https://github.com/NSMBW-Community/NSMBW-Decomp/blob/master/source/dol/framework/f_base.cpp
fBaseID_e fBase_c::m_rootUniqueID = FIRST_ID;
ProfileName fBase_c::m_tmpCtProfName;
u32 fBase_c::m_tmpCtParam;
u8 fBase_c::m_tmpCtGroupType;
fTrNdBa_c *fBase_c::m_tmpCtConnectParent;
// 0x80575bb0: sLoadAsyncCallback__7fBase_c
// 0x80575bb4: sUnloadCallback__7fBase_c
int (*fBase_c::sLoadAsyncCallback)();
void (*fBase_c::sUnloadCallback)();
/* 802e12f0 */
fBase_c::fBase_c() : mMng(this) {}
/* 802e1480 */
fBase_c::~fBase_c() {}
/* 802e1500 */
int fBase_c::commonPack(int (fBase_c::*doFunc)(), int (fBase_c::*preFunc)(), void (fBase_c::*postFunc)(MAIN_STATE_e)) {}
/* 802e15c0 */
int fBase_c::create() {}
/* 802e15d0 */
int fBase_c::preCreate() {}
/* 802e15e0 */
void fBase_c::postCreate(MAIN_STATE_e state) {}
/* 802e1670 */
int fBase_c::doDelete() {}
/* 802e1680 */
int fBase_c::createPack() {}
/* 802e1730 */
int fBase_c::preDelete() {}
/* 802e17a0 */
void fBase_c::postDelete(MAIN_STATE_e state) {}
/* 802e15d0 */
int fBase_c::deletePack() {}
/* 802e1910 */
int fBase_c::execute() {}
/* 802e1920 */
int fBase_c::preExecute() {}
/* 802e1950 */
void fBase_c::postExecute(MAIN_STATE_e state) {}
/* 802e1960 */
int fBase_c::executePack() {}
/* 802e1a90 */
int fBase_c::draw() {}
/* 802e1aa0 */
int fBase_c::preDraw() {}
/* 802e1ad0 */
void fBase_c::postDraw(MAIN_STATE_e state) {}
/* 802e1ae0 */
int fBase_c::drawPack() {}
/* 802e1b90 */
void fBase_c::deleteReady() {}
/* 802e1ba0 */
int fBase_c::connectProc() {}
/* 802e1e00 */
void fBase_c::deleteRequest() {}
/* 802e1e80 */
// addNewActorToDrawList
/* 802e1f10 */
// getFirstActor
/* 802e1f30 */
// getNextActor
/* 802e1f90 */
fBase_c* fBase_c::getConnectParent() const {}
/* 802e1fb0 */
fBase_c* fBase_c::getConnectChild() const {}
/* 802e1fd0 */
fBase_c* fBase_c::getConnectBrNext() const {}
/* 802e1ff0 */
// FUN_802e1ff0
/* 802e2090 */
// addActorToRoom
/* 802e20e0 */
bool fBase_c::entryFrmHeap(unsigned long size, EGG::Heap *parentHeap) {}
/* 802e22e0 */
bool fBase_c::entryFrmHeapNonAdjust(unsigned long size, EGG::Heap *parentHeap) {}
/* 802e23a0 */
bool fBase_c::createHeap() {}
/* 802e23b0 */
void* fBase_c::operator new(size_t) {}
/* 802e2410 */
void fBase_c::operator delete(void*) {}
/* 802e2420 */
void fBase_c::runCreate() {}
/* 802e24a0 */
fBase_c* fBase_c::getChildProcessCreateState() const {}
/* 802e2510 */
bool fBase_c::checkChildProcessCreateState() const {}
/* 802e2540 */
void fBase_c::setTmpCtData(ProfileName profName, fTrNdBa_c *connectParent, unsigned long param, u8 groupType) {}
/* 802e2560 */
fBase_c* fBase_c::fBase_make(ProfileName profName, fTrNdBa_c *connectParent, unsigned long param, u8 groupType) {}
/* 802e2600 */
fBase_c* fBase_c::createChild(ProfileName profName, fBase_c *parent, unsigned long param, u8 groupType) {}
/* 802e2640 */
fBase_c* fBase_c::createRoot(ProfileName profName, unsigned long param, u8 groupType) {}
+88
View File
@@ -0,0 +1,88 @@
#include <toBeSorted/save_file.h>
// 0x800099b0 getStoryFlags0__8SaveFileFv
u16* SaveFile::getStoryFlags0() {
return story_flags;
}
// 0x800099c0 getStoryFlags1__8SaveFileFv
u16* SaveFile::getStoryFlags1() {
return story_flags;
}
// 0x800099d0 getItemFlags0__8SaveFileFv
u16* SaveFile::getItemFlags0() {
return item_flags;
}
// 0x800099e0 getItemFlags1__8SaveFileFv
u16* SaveFile::getItemFlags1() {
return item_flags;
}
// 0x800099F0 getDungeonFlags0__8SaveFileFv
u16* SaveFile::getDungeonFlags0() {
return dungeon_flags[0];
}
// 0x80009A00 getDungeonFlags1__8SaveFileFv
u16* SaveFile::getDungeonFlags1() {
return dungeon_flags[0];
}
// 0x80009A10 getSceneFlags0__8SaveFileFv
u16* SaveFile::getSceneFlags0() {
return scene_flags;
}
// 0x80009A20 getSceneFlags1__8SaveFileFv
u16* SaveFile::getSceneFlags1() {
return scene_flags;
}
// 0x80009A30 getTboxFlags0__8SaveFileFv
u16* SaveFile::getTboxFlags0() {
return tbox_flags;
}
// 0x80009A40 getTboxFlags1__8SaveFileFv
u16* SaveFile::getTboxFlags1() {
return tbox_flags;
}
// 0x80009A50 getTempFlags0__8SaveFileFv
u16* SaveFile::getTempFlags0() {
return temp_flags;
}
// 0x80009A60 getTempFlags1__8SaveFileFv
u16* SaveFile::getTempFlags1() {
return temp_flags;
}
// 0x80009A70 getZoneFlags0__8SaveFileFv
u16* SaveFile::getZoneFlags0() {
return zone_flags;
}
// 0x80009A80 getZoneFlags1__8SaveFileFv
u16* SaveFile::getZoneFlags1() {
return zone_flags;
}
// 0x80009A90 getUnkFlags0__8SaveFileFv
u16* SaveFile::getUnkFlags0() {
return unk_flags;
}
// 0x80009AA0 getUnkFlags1__8SaveFileFv
u16* SaveFile::getUnkFlags1() {
return unk_flags;
}
// 0x80009AB0 getPlayerName__8SaveFileFv
s16* SaveFile::getPlayerName() {
return player_name;
} // using Shift JIS i assume
// 0x80009AC0 setAreaT1__8SaveFileFv
void SaveFile::setAreaT1() {}
// 0x80009BE0 getAreaT1__8SaveFileFv
s8* SaveFile::getAreaT1() {
return area_t1;
}
// 0x80009BF0 setAreaT2__8SaveFileFv
void SaveFile::setAreaT2() {
}
// 0x80009D10 getAreaT2__8SaveFileFv
s8* SaveFile::getAreaT2() {
return area_t2;
}
// 0x80009D20 getAreaT3__8SaveFileFv
s8* SaveFile::getAreaT3() {
return area_t3;
}