Address review

This commit is contained in:
NhProGamer
2026-10-13 09:29:41 +02:00
parent 69ec12e947
commit ad6bd2aa4c
2 changed files with 16 additions and 25 deletions
+6 -9
View File
@@ -29,16 +29,13 @@ private:
/* 0x10E */ u16 mFirstSpawnDelay;
/* 0x110 */ u16 mSpawnInterval;
/* 0x112 */ u8 mSpawnType;
/* 0x113 */ u8 mObstacleParam0;
/* 0x114 */ u8 mObstacleParam1;
/* 0x115 */ u8 mObstacleParam2;
/* 0x116 */ u8 mObstacleParam3;
/* 0x117 */ u8 mObstacleParam4;
// Copied into the spawned dAcObeltObstacle_c's params (same bit layout as read by the obstacle)
/* 0x113 */ u8 mObstacleGroupId;
/* 0x114 */ u8 mObstacleSceneflag;
/* 0x115 */ u8 mObstacleSceneflagInverted;
/* 0x116 */ u8 mObstacleTimeVariant;
/* 0x117 */ u8 mObstacleCheckPastState;
/* 0x118 */ u8 _0x118[0x11C - 0x118];
static const f32 lbl_446_rodata_0;
static const f32 lbl_446_rodata_4;
static const f32 lbl_446_rodata_8;
};
#endif
+10 -16
View File
@@ -23,11 +23,11 @@ int dTgBeltObstacle_c::create() {
if (mSpawnType == 0xF) {
mSpawnType = SPAWN_BELT_OBSTACLE;
}
mObstacleParam0 = getFromParams(0, 0xF);
mObstacleParam1 = getFromParams(4, 0xFF);
mObstacleParam2 = getFromParams(12, 0x1);
mObstacleParam3 = getFromParams(13, 0xF);
mObstacleParam4 = getFromParams(17, 0x1);
mObstacleGroupId = getFromParams(0, 0xF);
mObstacleSceneflag = getFromParams(4, 0xFF);
mObstacleSceneflagInverted = getFromParams(12, 0x1);
mObstacleTimeVariant = getFromParams(13, 0xF);
mObstacleCheckPastState = getFromParams(17, 0x1);
mSpawnTimer = mFirstSpawnDelay;
return SUCCEEDED;
}
@@ -37,9 +37,8 @@ int dTgBeltObstacle_c::doDelete() {
}
int dTgBeltObstacle_c::actorExecute() {
mPastState =
dTimeAreaMgr_c::GetInstance()->checkPositionIsInPastState(mRoomID, mPosition, nullptr, lbl_446_rodata_0);
if (mPastState > lbl_446_rodata_4 && sLib::calcTimer(&mSpawnTimer) == 0) {
mPastState = dTimeAreaMgr_c::GetInstance()->checkPositionIsInPastState(mRoomID, mPosition, nullptr, 100.0f);
if (mPastState > 0.0f && sLib::calcTimer(&mSpawnTimer) == 0) {
if (mSpawnType == SPAWN_BELT_OBSTACLE) {
spawnBeltObstacle();
} else if (mSpawnType == SPAWN_STAMINA_FRUIT) {
@@ -55,9 +54,9 @@ int dTgBeltObstacle_c::draw() {
}
void dTgBeltObstacle_c::spawnBeltObstacle() {
mVec3_c scale(mScale.x * lbl_446_rodata_8, mScale.y * lbl_446_rodata_8, mScale.z * lbl_446_rodata_8);
u32 params = (mObstacleParam4 << 17 | (mObstacleParam3 & 0xF) << 13) |
((mObstacleParam0 & 0xF) | (mObstacleParam1 << 4) | ((mObstacleParam2 & 1) << 12));
mVec3_c scale = mScale * 0.01f;
u32 params = (mObstacleCheckPastState << 17 | (mObstacleTimeVariant & 0xF) << 13) |
((mObstacleGroupId & 0xF) | (mObstacleSceneflag << 4) | ((mObstacleSceneflagInverted & 1) << 12));
dAcObjBase_c *obstacle =
dAcObjBase_c::create(fProfile::OBJ_BELT_OBSTACLE, mRoomID, params, &mPosition, &mRotation, &scale, -1);
mObstacle.link(static_cast<dAcObeltObstacle_c *>(obstacle));
@@ -67,8 +66,3 @@ void dTgBeltObstacle_c::spawnStaminaFruit() {
u32 params2 = dAcBase_c::buildParams2(-1, dAcItem_c::fn_8024A2A0(0, 0));
dAcItem_c::spawnItem(ITEM_STAMINA_FRUIT, mRoomID, mPosition, mRotation, params2, 1);
}
// Defined after use so that actorExecute does not load them through a rodata pool base register
const f32 dTgBeltObstacle_c::lbl_446_rodata_0 = 100.0f;
const f32 dTgBeltObstacle_c::lbl_446_rodata_4 = 0.0f;
const f32 dTgBeltObstacle_c::lbl_446_rodata_8 = 0.01f;