Shrine OK (#137)

* d_a_obj_shrine_after ok

* d_a_obj_shrine_before ok

* d_a_obj_shrine_bef_inside ok

* Add offset comments
This commit is contained in:
CovenEsme
2025-03-14 02:48:47 +00:00
committed by GitHub
parent d10e268017
commit b3b140ff7f
17 changed files with 196 additions and 39 deletions
+30
View File
@@ -1,3 +1,33 @@
#include "d/a/obj/d_a_obj_shrine_after.h"
SPECIAL_ACTOR_PROFILE(OBJ_SHRINE_AFTER, dAcOshrineAfter_c, fProfile::OBJ_SHRINE_AFTER, 0x1E9, 0, 3);
bool dAcOshrineAfter_c::createHeap() {
mResFile = nw4r::g3d::ResFile(getOarcResFile("F401ShrineAft"));
nw4r::g3d::ResMdl mdl = mResFile.GetResMdl("F401ShrineAft");
TRY_CREATE(mModel.create(mdl, &heap_allocator, 0x120));
return true;
}
int dAcOshrineAfter_c::create() {
CREATE_ALLOCATOR(dAcOshrineAfter_c);
updateMatrix();
mModel.setLocalMtx(mWorldMtx);
mModel.setPriorityDraw(0x1C, 0x9);
boundingBox.Set(mVec3_c(-4000.0f, 7000.0f, 5000.0f), mVec3_c(5000.0f, 15000.0f, 14000.0f));
mCullingDistance = 50000.0;
return SUCCEEDED;
}
int dAcOshrineAfter_c::doDelete() {
return SUCCEEDED;
}
int dAcOshrineAfter_c::actorExecute() {
return SUCCEEDED;
}
int dAcOshrineAfter_c::draw() {
drawModelType1(&mModel);
return SUCCEEDED;
}
@@ -1,3 +1,59 @@
#include "d/a/obj/d_a_obj_shrine_bef_inside.h"
#include "d/col/bg/d_bg_s.h"
#include "nw4r/g3d/res/g3d_resfile.h"
#include "toBeSorted/arc_managers/current_stage_arc_manager.h"
static const char *const AcOshrineBefInside__MODELS[] = {
"StageF402Bef",
"StageF402Bef_s",
};
SPECIAL_ACTOR_PROFILE(OBJ_SHRINE_BEF_INSIDE, dAcOshrineBefInside_c, fProfile::OBJ_SHRINE_BEF_INSIDE, 0x209, 0, 3);
bool dAcOshrineBefInside_c::createHeap() {
mResFile = nw4r::g3d::ResFile(CurrentStageArcManager::GetInstance()->getData("g3d/stage.brres"));
for (int modelIndex = 0; modelIndex < 2; modelIndex++) {
nw4r::g3d::ResMdl mdl = mResFile.GetResMdl(AcOshrineBefInside__MODELS[modelIndex]);
TRY_CREATE(mModel[modelIndex].create(mdl, &heap_allocator, 0x120));
}
cBgD_t *dzb = (cBgD_t *)CurrentStageArcManager::GetInstance()->getData("dzb/StageF402Bef.dzb");
PLC *plc = (PLC *)CurrentStageArcManager::GetInstance()->getData("dat/StageF402Bef.plc");
updateMatrix();
for (int i = 0; i < 2; i++) {
mModel[i].setLocalMtx(mWorldMtx);
}
TRY_CREATE(!mCollision.Set(dzb, plc, cBgW::MOVE_BG_e, &mWorldMtx, &mScale));
mCollision.Lock();
return true;
}
int dAcOshrineBefInside_c::create() {
CREATE_ALLOCATOR(dAcOshrineBefInside_c);
dBgS::GetInstance()->Regist(&mCollision, this);
mModel[0].setPriorityDraw(0x1C, 0x9);
mModel[1].setPriorityDraw(0x22, 0x9);
boundingBox.Set(mVec3_c(-2000.0f, 7400.0f, 7200.0f), mVec3_c(4400.0f, 10000.0f, 15800.0f));
return SUCCEEDED;
}
int dAcOshrineBefInside_c::doDelete() {
return SUCCEEDED;
}
int dAcOshrineBefInside_c::actorExecute() {
return SUCCEEDED;
}
int dAcOshrineBefInside_c::draw() {
for (int i = 0; i < 2; i++) {
drawModelType1(&mModel[i]);
}
return SUCCEEDED;
}
+30
View File
@@ -1,3 +1,33 @@
#include "d/a/obj/d_a_obj_shrine_before.h"
SPECIAL_ACTOR_PROFILE(OBJ_SHRINE_BEFORE, dAcOshrineBefore_c, fProfile::OBJ_SHRINE_BEFORE, 0x1EA, 0, 3);
bool dAcOshrineBefore_c::createHeap() {
mResFile = nw4r::g3d::ResFile(getOarcResFile("F401ShrineBef"));
nw4r::g3d::ResMdl mdl = mResFile.GetResMdl("F401ShrineBef");
TRY_CREATE(mModel.create(mdl, &heap_allocator, 0x120));
return true;
}
int dAcOshrineBefore_c::create() {
CREATE_ALLOCATOR(dAcOshrineBefore_c);
updateMatrix();
mModel.setLocalMtx(mWorldMtx);
mModel.setPriorityDraw(0x1C, 0x9);
boundingBox.Set(mVec3_c(-4000.0f, 7000.0f, 5000.0f), mVec3_c(4000.0f, 13000.0f, 14000.0f));
mCullingDistance = 50000.0;
return SUCCEEDED;
}
int dAcOshrineBefore_c::doDelete() {
return SUCCEEDED;
}
int dAcOshrineBefore_c::actorExecute() {
return SUCCEEDED;
}
int dAcOshrineBefore_c::draw() {
drawModelType1(&mModel);
return SUCCEEDED;
}