Actor cleanup (#32)

* Actor cleanup

---------

Co-authored-by: elijah-thomas774 <elijahthomas774@gmail.com>
This commit is contained in:
robojumper
2024-09-15 21:40:03 +02:00
committed by GitHub
parent 732a119127
commit 508d5b9e72
26 changed files with 80 additions and 93 deletions
+3 -1
View File
@@ -128,6 +128,8 @@ protected:
};
// Actors' createHeap functions often have patterns that can be matched with this macro
#define TRY_CREATE(thing) do { bool result = (thing); if (!result) return result; } while (0);
#define TRY_CREATE(thing) do { bool result = (thing); if (!result) return result; } while (0)
#define CREATE_ALLOCATOR(className) do { if (!initAllocatorWork1Heap(-1, #className "::m_allocator", 0x20)) { return FAILED; } } while (0)
#endif
+1 -1
View File
@@ -127,7 +127,7 @@ public:
void draw(const mMtx_c &, u32);
void afterDraw();
EGG::FrmHeap *changeHeap(int index) {
void changeHeap(int index) {
mCurrentHeapIdx = index % 2;
mpCurrentHeap = mpFrmHeaps[mCurrentHeapIdx];
}
+5 -5
View File
@@ -13,7 +13,7 @@ int dAcTWoodArea_c::actorCreate() {
PSMTXTrans(worldMatrix.m, position.x, position.y, position.z);
boundingBox.min = mVec3_c(-0.0f, -0.0f, -0.0f);
boundingBox.max = mVec3_c(0.0f, 0.0f, 0.0f);
return 1;
return SUCCEEDED;
}
static const ProfileName FILTER_PROFILE[] = {
@@ -28,20 +28,20 @@ int dAcTWoodArea_c::actorPostCreate() {
for (u32 i = 0; i < 5; i++) {
attachCloseObjects(FILTER_PROFILE[i]);
}
return 1;
return SUCCEEDED;
}
int dAcTWoodArea_c::doDelete() {
return 1;
return SUCCEEDED;
}
int dAcTWoodArea_c::actorExecute() {
mStateMgr.executeState();
return 1;
return SUCCEEDED;
}
int dAcTWoodArea_c::draw() {
return 1;
return SUCCEEDED;
}
void dAcTWoodArea_c::initializeState_Init() {}
+5 -7
View File
@@ -19,9 +19,7 @@ bool dAcEhb_leaf_c::createHeap() {
}
int dAcEhb_leaf_c::create() {
if (!initAllocatorWork1Heap(-1, "dAcEhb_leaf_c::m_allocator", 0x20)) {
return FAILED;
}
CREATE_ALLOCATOR(dAcEhb_leaf_c);
setBoundingBox(mVec3_c(-100.0f, -100.0f, -100.0f), mVec3_c(100.0f, 100.0f, 100.0f));
@@ -72,14 +70,14 @@ int dAcEhb_leaf_c::create() {
}
int dAcEhb_leaf_c::doDelete() {
return 1;
return SUCCEEDED;
}
int dAcEhb_leaf_c::actorExecute() {
if (mType != 0) {
doCheck();
if (isNearZero()) {
return 1;
return SUCCEEDED;
}
}
@@ -93,7 +91,7 @@ int dAcEhb_leaf_c::actorExecute() {
mModel.getModel().calc(false);
someRot++;
return 1;
return SUCCEEDED;
}
int dAcEhb_leaf_c::draw() {
@@ -101,7 +99,7 @@ int dAcEhb_leaf_c::draw() {
drawModelType1(&mModel.getModel());
}
return 1;
return SUCCEEDED;
}
void dAcEhb_leaf_c::setAnm(const char *anm, f32 pos) {
+4 -6
View File
@@ -30,9 +30,7 @@ bool dAcOJunkRep_c::createHeap() {
}
int dAcOJunkRep_c::create() {
if (!initAllocatorWork1Heap(-1, "dAcOJunkRep_c::m_allocator", 0x20)) {
return FAILED;
}
CREATE_ALLOCATOR(dAcOJunkRep_c);
forwardAccel = -1.0f;
forwardMaxSpeed = -40.0f;
@@ -48,21 +46,21 @@ int dAcOJunkRep_c::create() {
}
int dAcOJunkRep_c::doDelete() {
return 1;
return SUCCEEDED;
}
int dAcOJunkRep_c::actorExecute() {
mStateMgr.executeState();
updateMatrix();
mpModelToUse->setLocalMtx(worldMatrix);
return 1;
return SUCCEEDED;
}
int dAcOJunkRep_c::draw() {
drawModelType1(mpModelToUse);
static mQuat_c rot(0.0f, 37.5f, 0.0f, 75.0f);
fn_8002edb0(mShadow, *mpModelToUse, &rot, -1, -1, sSomeFloat);
return 1;
return SUCCEEDED;
}
void dAcOJunkRep_c::realizeState() {
+4 -6
View File
@@ -25,9 +25,7 @@ bool dAcOlavaF200_c::createHeap() {
}
int dAcOlavaF200_c::create() {
if (!initAllocatorWork1Heap(-1, "dAcOlavaF200_c::m_allocator", 0x20)) {
return FAILED;
}
CREATE_ALLOCATOR(dAcOlavaF200_c);
mModels[0].setAnm(mTexAnms[0]);
mModels[1].setAnm(mTexAnms[1]);
@@ -47,7 +45,7 @@ int dAcOlavaF200_c::create() {
}
int dAcOlavaF200_c::doDelete() {
return 1;
return SUCCEEDED;
}
int dAcOlavaF200_c::actorExecute() {
@@ -55,12 +53,12 @@ int dAcOlavaF200_c::actorExecute() {
mTexAnms[1].play();
mClrAnms[0].play();
mClrAnms[1].play();
return 1;
return SUCCEEDED;
}
int dAcOlavaF200_c::draw() {
for (int i = 0; i < 2; i++) {
drawModelType1(&mModels[i]);
}
return 1;
return SUCCEEDED;
}
+4 -6
View File
@@ -27,9 +27,7 @@ bool intToBool(int a) {
}
int dAcOmoleSoil_c::create() {
if (!initAllocatorWork1Heap(-1, "dAcOmoleSoil_c::m_allocator", 0x20)) {
return FAILED;
}
CREATE_ALLOCATOR(dAcOmoleSoil_c);
mScale = sHalfScale;
scale.set(sHalfScale, sHalfScale, sHalfScale);
@@ -40,7 +38,7 @@ int dAcOmoleSoil_c::create() {
}
int dAcOmoleSoil_c::doDelete() {
return 1;
return SUCCEEDED;
}
int dAcOmoleSoil_c::actorExecute() {
@@ -64,14 +62,14 @@ int dAcOmoleSoil_c::actorExecute() {
mStateMgr.executeState();
updateMatrix();
mModel.setLocalMtx(worldMatrix);
return 1;
return SUCCEEDED;
}
int dAcOmoleSoil_c::draw() {
if (field_0x391) {
drawModelType1(&mModel);
}
return 1;
return SUCCEEDED;
}
void dAcOmoleSoil_c::initializeState_Wait() {
+4 -6
View File
@@ -14,9 +14,7 @@ bool dAcOring_c::createHeap() {
}
int dAcOring_c::create() {
if (!initAllocatorWork1Heap(-1, "dAcOring_c::m_allocator", 0x20)) {
return FAILED;
}
CREATE_ALLOCATOR(dAcOring_c);
field_0x388 = getArgFromParams();
@@ -32,7 +30,7 @@ int dAcOring_c::create() {
}
int dAcOring_c::doDelete() {
return 1;
return SUCCEEDED;
}
int dAcOring_c::actorExecute() {
@@ -42,12 +40,12 @@ int dAcOring_c::actorExecute() {
position += posIncrements;
updateMatrix();
mModel.setLocalMtx(worldMatrix);
return 1;
return SUCCEEDED;
}
int dAcOring_c::draw() {
drawModelType1(&mModel);
return 1;
return SUCCEEDED;
}
void dAcOring_c::initializeState_Move() {}
+4 -6
View File
@@ -25,9 +25,7 @@ bool dAcOsmoke_c::createHeap() {
}
int dAcOsmoke_c::create() {
if (!initAllocatorWork1Heap(-1, "dAcOsmoke_c::m_allocator", 0x20)) {
return FAILED;
}
CREATE_ALLOCATOR(dAcOsmoke_c);
mModel.setAnm(mTexAnm);
updateMatrix();
@@ -39,18 +37,18 @@ int dAcOsmoke_c::create() {
}
int dAcOsmoke_c::doDelete() {
return 1;
return SUCCEEDED;
}
int dAcOsmoke_c::actorExecute() {
mStateMgr.executeState();
mTexAnm.play();
return 1;
return SUCCEEDED;
}
int dAcOsmoke_c::draw() {
drawModelType1(&mModel);
return 1;
return SUCCEEDED;
}
void dAcOsmoke_c::initializeState_Wait() {}
+4 -6
View File
@@ -19,9 +19,7 @@ bool dAcOsunLight_c::createHeap() {
}
int dAcOsunLight_c::create() {
if (!initAllocatorWork1Heap(-1, "dAcOsunLight_c::m_allocator", 0x20)) {
return FAILED;
}
CREATE_ALLOCATOR(dAcOsunLight_c);
mModel.setAnm(mTexAnm);
mStateMgr.changeState(StateID_Wait);
@@ -31,7 +29,7 @@ int dAcOsunLight_c::create() {
}
int dAcOsunLight_c::doDelete() {
return 1;
return SUCCEEDED;
}
int dAcOsunLight_c::actorExecute() {
@@ -41,14 +39,14 @@ int dAcOsunLight_c::actorExecute() {
}
updateMatrix();
mModel.setLocalMtx(worldMatrix);
return 1;
return SUCCEEDED;
}
int dAcOsunLight_c::draw() {
if (isDay()) {
drawModelType1(&mModel);
}
return 1;
return SUCCEEDED;
}
void dAcOsunLight_c::initializeState_Wait() {}
+3 -3
View File
@@ -23,7 +23,7 @@ int dTgDowsing_c::create() {
}
int dTgDowsing_c::doDelete() {
return 1;
return SUCCEEDED;
}
int dTgDowsing_c::actorExecute() {
@@ -37,11 +37,11 @@ int dTgDowsing_c::actorExecute() {
mDowsingTarget.doRegister();
mTargetActive = true;
}
return 1;
return SUCCEEDED;
}
int dTgDowsing_c::draw() {
return 1;
return SUCCEEDED;
}
bool dTgDowsing_c::checkDowsing() const {
+2 -2
View File
@@ -41,7 +41,7 @@ int dTgGenkiDwsTgt_c::create() {
int dTgGenkiDwsTgt_c::doDelete() {
changeLoadedEntitiesNoSet();
return 1;
return SUCCEEDED;
}
int dTgGenkiDwsTgt_c::actorExecute() {
@@ -61,7 +61,7 @@ int dTgGenkiDwsTgt_c::actorExecute() {
}
}
}
return 1;
return SUCCEEDED;
}
u16 dTgGenkiDwsTgt_c::getSceneFlagFromParams() {
+3 -3
View File
@@ -9,7 +9,7 @@ int dTgHolyWater_c::create() {
}
int dTgHolyWater_c::doDelete() {
return 1;
return SUCCEEDED;
}
int dTgHolyWater_c::actorExecute() {
@@ -21,11 +21,11 @@ int dTgHolyWater_c::actorExecute() {
if (isLinkNearby()) {
dPlayer::LINK->mForceOrPreventActionFlags |= 0x10000000;
}
return 1;
return SUCCEEDED;
}
int dTgHolyWater_c::draw() {
return 1;
return SUCCEEDED;
}
bool dTgHolyWater_c::isLinkNearby() {
+3 -3
View File
@@ -7,13 +7,13 @@ int dTgLightShaftEff_c::create() {
}
int dTgLightShaftEff_c::doDelete() {
return 1;
return SUCCEEDED;
}
int dTgLightShaftEff_c::actorExecute() {
return 1;
return SUCCEEDED;
}
int dTgLightShaftEff_c::draw() {
return 1;
return SUCCEEDED;
}
+3 -3
View File
@@ -8,13 +8,13 @@ int dTgMapInst_c::create() {
}
int dTgMapInst_c::doDelete() {
return 1;
return SUCCEEDED;
}
int dTgMapInst_c::actorExecute() {
return 1;
return SUCCEEDED;
}
int dTgMapInst_c::draw() {
return 1;
return SUCCEEDED;
}
+3 -3
View File
@@ -10,16 +10,16 @@ int dTgMoleProhibit_c::create() {
}
int dTgMoleProhibit_c::doDelete() {
return 1;
return SUCCEEDED;
}
int dTgMoleProhibit_c::actorExecute() {
mStateMgr.executeState();
return 1;
return SUCCEEDED;
}
int dTgMoleProhibit_c::draw() {
return 1;
return SUCCEEDED;
}
void dTgMoleProhibit_c::initializeState_Wait() {}
+3 -3
View File
@@ -18,15 +18,15 @@ int dTgNoEffectArea_c::create() {
int dTgNoEffectArea_c::doDelete() {
sList.remove(&this->mEntry);
return 1;
return SUCCEEDED;
}
int dTgNoEffectArea_c::actorExecute() {
return 1;
return SUCCEEDED;
}
int dTgNoEffectArea_c::draw() {
return 1;
return SUCCEEDED;
}
void dTgNoEffectArea_c::addToList(fLiMgBa_c &list) {
+3 -3
View File
@@ -12,16 +12,16 @@ int dTgRockBoat_c::create() {
}
int dTgRockBoat_c::doDelete() {
return 1;
return SUCCEEDED;
}
int dTgRockBoat_c::actorExecute() {
mStateMgr.executeState();
return 1;
return SUCCEEDED;
}
int dTgRockBoat_c::draw() {
return 1;
return SUCCEEDED;
}
void dTgRockBoat_c::initializeState_Wait() {}
+3 -3
View File
@@ -44,7 +44,7 @@ int dTgSndAr_c::create() {
}
int dTgSndAr_c::doDelete() {
return 1;
return SUCCEEDED;
}
struct Unk {
@@ -65,11 +65,11 @@ int dTgSndAr_c::actorExecute() {
dTgSndMg_c::sInstance->setBgmFlag(params & 0xFF);
}
}
return 1;
return SUCCEEDED;
}
int dTgSndAr_c::draw() {
return 1;
return SUCCEEDED;
}
bool dTgSndAr_c::checkPosInArea(mVec3_c &pos) {
+3 -3
View File
@@ -11,7 +11,7 @@ int dTgSndMg_c::create() {
}
int dTgSndMg_c::doDelete() {
return 1;
return SUCCEEDED;
}
int dTgSndMg_c::actorExecute() {
@@ -19,9 +19,9 @@ int dTgSndMg_c::actorExecute() {
dPlayer::LINK->field_0xe8 = 0;
}
mBgmFlags = 0;
return 1;
return SUCCEEDED;
}
int dTgSndMg_c::draw() {
return 1;
return SUCCEEDED;
}
+3 -3
View File
@@ -7,13 +7,13 @@ int dTgTackle_c::create() {
}
int dTgTackle_c::doDelete() {
return 1;
return SUCCEEDED;
}
int dTgTackle_c::actorExecute() {
return 1;
return SUCCEEDED;
}
int dTgTackle_c::draw() {
return 1;
return SUCCEEDED;
}
+3 -3
View File
@@ -11,7 +11,7 @@ int dTgTimeAreaCheck_c::create() {
}
int dTgTimeAreaCheck_c::doDelete() {
return 1;
return SUCCEEDED;
}
int dTgTimeAreaCheck_c::actorExecute() {
@@ -31,9 +31,9 @@ int dTgTimeAreaCheck_c::actorExecute() {
SceneflagManager::sInstance->setFlag(roomid, mPresentSceneFlag);
}
}
return 1;
return SUCCEEDED;
}
int dTgTimeAreaCheck_c::draw() {
return 1;
return SUCCEEDED;
}
+1 -1
View File
@@ -41,7 +41,7 @@ int dTgTimer_c::actorExecute() {
} else {
resetTimer();
}
return 1;
return SUCCEEDED;
}
int dTgTimer_c::getSubtypeFromParams() {
+3 -3
View File
@@ -18,13 +18,13 @@ int dTgTumbleWeed_c::create() {
u16 decr(u16 *num);
int dTgTumbleWeed_c::doDelete() {
return 1;
return SUCCEEDED;
}
int dTgTumbleWeed_c::actorExecute() {
mStateMgr.executeState();
decr(&tumbleweedTimer);
return 1;
return SUCCEEDED;
}
u16 decr(u16 *num) {
@@ -35,7 +35,7 @@ u16 decr(u16 *num) {
}
int dTgTumbleWeed_c::draw() {
return 1;
return SUCCEEDED;
}
void dTgTumbleWeed_c::initializeState_AreaOut() {}
+1 -1
View File
@@ -192,7 +192,7 @@ int dAcBase_c::execute() {}
// 8002cca0
int dAcBase_c::actorExecute() {
return 1;
return SUCCEEDED;
}
// 8002ccb0
+2 -3
View File
@@ -24,7 +24,6 @@ void (*fBase_c::sUnloadCallback)();
fBase_c::fBase_c()
: unique_ID(m_rootUniqueID), params(m_tmpCtData.params), profile_name(m_tmpCtData.prof_name),
group_type(m_tmpCtData.group_type), manager(this) {
m_rootUniqueID = (fBaseID_e)(m_rootUniqueID + 1);
if (m_rootUniqueID == INVALID) {
for (;;) {
@@ -68,7 +67,7 @@ int fBase_c::commonPack(int (fBase_c::*doFunc)(), int (fBase_c::*preFunc)(), voi
// Pre Function to setup
int result = (this->*preFunc)();
if (result) {
if (result != NOT_READY) {
// Do function to handle current
result = (this->*doFunc)();
if (result == NOT_READY) {
@@ -115,7 +114,7 @@ void fBase_c::postCreate(MAIN_STATE_e state) {
/* 802e1670 */
int fBase_c::doDelete() {
return 1;
return SUCCEEDED;
}
/* 802e1680 */