Apply suggestions from code review

Co-authored-by: Elijah Thomas <42302100+elijah-thomas774@users.noreply.github.com>
This commit is contained in:
Cole Barker
2026-02-23 21:10:36 -05:00
committed by GitHub
parent e722e6f9b3
commit 1f8ae19f78
3 changed files with 63 additions and 72 deletions
@@ -5,11 +5,14 @@ dTgDefeatBoss_c_classInit__Fv = .text:0x00000070; // type:function size:0x4C
fn_494_C0__15dTgDefeatBoss_cFv = .text:0x000000C0; // type:function size:0xC
fn_494_D0__15dTgDefeatBoss_cFv = .text:0x000000D0; // type:function size:0x84
init__15dTgDefeatBoss_cFv = .text:0x00000160; // type:function size:0xCC
update__15dTgDefeatBoss_cFv = .text:0x00000230; // type:function size:0x120
getDungeonFlagIndex__15dTgDefeatBoss_cFRUl = .text:0x000000C0; // type:function size:0xC
checkDungeonFlag__15dTgDefeatBoss_cFv = .text:0x000000D0; // type:function size:0x84
create__15dTgDefeatBoss_cFv = .text:0x00000160; // type:function size:0xCC
actorExecute__15dTgDefeatBoss_cFv = .text:0x00000230; // type:function size:0x120
getSceneflag__15dTgDefeatBoss_cFv = .text:0x00000350; // type:function size:0xC
fn_494_360__15dTgDefeatBoss_cFv = .text:0x00000360; // type:function size:0xC
getSceneflagPolarity__15dTgDefeatBoss_cFv = .text:0x00000360; // type:function size:0xC
getStoryflag__15dTgDefeatBoss_cFv = .text:0x00000370; // type:function size:0xC
fn_494_380__15dTgDefeatBoss_cFv = .text:0x00000380; // type:function size:0xC
getStoryflagPolarity__15dTgDefeatBoss_cFv = .text:0x00000380; // type:function size:0xC
__dt__15dTgDefeatBoss_cFv = .text:0x00000390; // type:function size:0x5C
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
+9 -4
View File
@@ -13,14 +13,19 @@ public:
u16 getStoryflag();
u16 fn_494_380();
static void getDungeonFlagIndex(u32 &outFlagIdx);
bool fn_494_D0();
bool init();
bool checkDungeonFlag();
virtual int create() override;
virtual int actorExecute() override;
/* 0xFC */ u8 var8_1;//area?
/* 0xFD */ u8 var8_2;//scene flag? I assume this is only 2 byte
u16 getSceneflag();
s32 getSceneflagPolarity();
u32 getStoryflag();
s32 getStoryflagPolarity();
private:
/* 0xFC */ s8 mSceneflagPolarity;
/* 0xFD */ s8 mStoryflagPolarity;
};
+48 -65
View File
@@ -1,8 +1,9 @@
#include "d/t/d_t_defeat_boss.h"
#include "d/flag/storyflag_manager.h"
#include "d/flag/sceneflag_manager.h"
#include "d/flag/dungeonflag_manager.h"
#include "common.h"
#include "d/flag/dungeonflag_manager.h"
#include "d/flag/sceneflag_manager.h"
#include "d/flag/storyflag_manager.h"
SPECIAL_ACTOR_PROFILE(TAG_DEFEAT_BOSS, dTgDefeatBoss_c, fProfile::TAG_DEFEAT_BOSS, 0x29E, 0, 0);
@@ -10,58 +11,36 @@ void dTgDefeatBoss_c::fn_494_C0() {
mID = (fBaseID_e)0x3;
return;
void dTgDefeatBoss_c::getDungeonFlagIndex(u32 &outFlagIdx) {
outFlagIdx = 0x3;
}
bool dTgDefeatBoss_c::fn_494_D0() {//checks if valid dungeion flag?
DungeonflagManager* pDVar2;
u16 sVar4;
fn_494_C0();
pDVar2 = DungeonflagManager::sInstance;
sVar4 = pDVar2->getCounterOrFlag(mID, (u32)8);
return sVar4 != 0;
bool dTgDefeatBoss_c::checkDungeonFlag() {
u32 dungeonFlagIdx;
getDungeonFlagIndex(dungeonFlagIdx);
return DungeonflagManager::sInstance->getCounterOrFlag(dungeonFlagIdx, 8) != 0;
}
bool dTgDefeatBoss_c::init() {
u16 uVar1;
u16 uVar2;
u16 iVar3;
u16 bVar4;
u32 uVar5;
u16 counterIdx;
bVar4 = fn_494_D0();
if (bVar4) {
uVar1 = 2;
int dTgDefeatBoss_c::create() {
if (checkDungeonFlag()) {
return FAILED;
}
else {
uVar5 = fn_494_360();
var8_1 = uVar5;
uVar2 = getSceneflag();
if ((uVar2 & 0xffff) > 0xfe) {
var8_1 = 0xff;
}
uVar5 = fn_494_380();
var8_2 = uVar5;
counterIdx = getStoryflag();
iVar3 = StoryflagManager::sInstance->checkFlagValid(counterIdx);
if (iVar3 == 0) {
var8_2 = 0xff;
}
if (var8_1 == -1 && var8_2 == -1) {
uVar1 = 2;
}
else {
uVar1 = 1;
}
}
return uVar1;
mSceneflagPolarity = getSceneflagPolarity();
if (getSceneflag() >= 0xFF) {
mSceneflagPolarity = -1;
}
mStoryflagPolarity = getStoryflagPolarity();
if (!StoryflagManager::sInstance->checkFlagValid(getStoryflag())) {
mStoryflagPolarity = -1;
}
if (mSceneflagPolarity == -1 && mStoryflagPolarity == -1) {
return FAILED;
}
return SUCCEEDED;
}
int dTgDefeatBoss_c::update() {
@@ -85,24 +64,28 @@ int dTgDefeatBoss_c::update() {
SceneflagManager::sInstance->setFlag
(/*SceneflagManager::sInstance,*/ (u16)/*(param_1->base).members.roomid*/mRoomID & 0xffff,
(u16)uVar2 & 0xffff);
break;
int dTgDefeatBoss_c::actorExecute() {
if (checkDungeonFlag()) {
switch (mSceneflagPolarity) {
case 0x0: {
SceneflagManager::sInstance->unsetFlag(mRoomID, getSceneflag());
} break;
case 0x1: {
SceneflagManager::sInstance->setFlag(mRoomID, getSceneflag());
} break;
}
//pSVar1 = StoryflagManager::sInstance;
switch (var8_2) {
case 0x0:
pSVar1 = StoryflagManager::sInstance;
SVar3 = getStoryflag();
pSVar1->unsetFlag(SVar3);
break;
case 0x1:
pSVar1 = StoryflagManager::sInstance;
SVar3 = getStoryflag();
pSVar1->setFlag(SVar3);
break;
switch (mStoryflagPolarity) {
case 0x0: {
StoryflagManager *pStoryflagMgr = StoryflagManager::sInstance;
pStoryflagMgr->unsetFlag(getStoryflag());
} break;
case 0x1: {
StoryflagManager *pStoryflagMgr = StoryflagManager::sInstance;
pStoryflagMgr->setFlag(getStoryflag());
} break;
}
fBase_c::deleteRequest();
}
return SUCCEEDED;
}
@@ -111,12 +94,12 @@ u16 dTgDefeatBoss_c::getSceneflag() {
}
u16 dTgDefeatBoss_c::fn_494_360() {
s32 dTgDefeatBoss_c::getSceneflagPolarity() {
return mParams >> 0x8 & 0x1;
}
u16 dTgDefeatBoss_c::getStoryflag() {
u32 dTgDefeatBoss_c::getStoryflag() {
return mParams >> 9 & 0xffff;
}