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
@@ -11,3 +11,5 @@ REL/executor.c:
REL/d/a/obj/d_a_obj_shrine_after.cpp:
.text start:0x00000070 end:0x000002D8
.rodata start:0x00000000 end:0x00000018
.data start:0x00000000 end:0x000000C0
@@ -2,11 +2,11 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global
_epilog = .text:0x00000030; // type:function size:0x2C scope:global
_unresolved = .text:0x00000060; // type:function size:0x4 scope:global
dAcOshrineAfter_c_classInit__Fv = .text:0x00000070; // type:function size:0x5C
AcOshrineAfter__initModels = .text:0x000000D0; // type:function size:0x80
AcOshrineAfter__init = .text:0x00000150; // type:function size:0xD0
fn_387_220 = .text:0x00000220; // type:function size:0x8
fn_387_230 = .text:0x00000230; // type:function size:0x8
AcOshrineAfter__draw = .text:0x00000240; // type:function size:0x28
createHeap__17dAcOshrineAfter_cFv = .text:0x000000D0; // type:function size:0x80
create__17dAcOshrineAfter_cFv = .text:0x00000150; // type:function size:0xD0
doDelete__17dAcOshrineAfter_cFv = .text:0x00000220; // type:function size:0x8
actorExecute__17dAcOshrineAfter_cFv = .text:0x00000230; // type:function size:0x8
draw__17dAcOshrineAfter_cFv = .text:0x00000240; // type:function size:0x28
__dt__17dAcOshrineAfter_cFv = .text:0x00000270; // type:function size:0x68
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
@@ -14,4 +14,4 @@ lbl_387_rodata_0 = .rodata:0x00000000; // type:object size:0x18 data:float
g_profile_OBJ_SHRINE_AFTER = .data:0x00000000; // type:object size:0x10
lbl_387_data_10 = .data:0x00000010; // type:object size:0x10
lbl_387_data_20 = .data:0x00000020; // type:object size:0x20
AcOshrineAfter__vtable = .data:0x00000040; // type:object size:0x80
__vt__17dAcOshrineAfter_c = .data:0x00000040; // type:object size:0x80
@@ -11,3 +11,5 @@ REL/executor.c:
REL/d/a/obj/d_a_obj_shrine_bef_inside.cpp:
.text start:0x00000070 end:0x00000400
.rodata start:0x00000000 end:0x00000020
.data start:0x00000000 end:0x00000118
@@ -2,17 +2,26 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global
_epilog = .text:0x00000030; // type:function size:0x2C scope:global
_unresolved = .text:0x00000060; // type:function size:0x4 scope:global
dAcOshrineBefInside_c_classInit__Fv = .text:0x00000070; // type:function size:0x7C
AcOshrineBefInside__initModels = .text:0x000000F0; // type:function size:0x130
AcOshrineBefInside__init = .text:0x00000220; // type:function size:0xD8
fn_418_300 = .text:0x00000300; // type:function size:0x8
fn_418_310 = .text:0x00000310; // type:function size:0x8
AcOshrineBefInside__draw = .text:0x00000320; // type:function size:0x60
createHeap__21dAcOshrineBefInside_cFv = .text:0x000000F0; // type:function size:0x130
create__21dAcOshrineBefInside_cFv = .text:0x00000220; // type:function size:0xD8
doDelete__21dAcOshrineBefInside_cFv = .text:0x00000300; // type:function size:0x8
actorExecute__21dAcOshrineBefInside_cFv = .text:0x00000310; // type:function size:0x8
draw__21dAcOshrineBefInside_cFv = .text:0x00000320; // type:function size:0x60
__dt__21dAcOshrineBefInside_cFv = .text:0x00000380; // type:function size:0x80
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
AcOshrineBefInside__MODELS = .rodata:0x00000000; // type:object size:0x20 data:float
lbl_418_data_0 = .data:0x00000000; // type:object size:0x10
lbl_418_data_10 = .data:0x00000010; // type:object size:0x10
g_profile_OBJ_SHRINE_BEF_INSIDE = .data:0x00000020; // type:object size:0x50
lbl_418_data_70 = .data:0x00000070; // type:object size:0x28
AcOshrineBefInside__vtable = .data:0x00000098; // type:object size:0x80
AcOshrineBefInside__MODELS = .rodata:0x00000000; // type:object size:0x8 scope:local
lbl_418_rodata_08 = .rodata:0x00000008; // type:object size:0x4 scope:local data:float
lbl_418_rodata_0C = .rodata:0x0000000C; // type:object size:0x4 scope:local data:float
lbl_418_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float
lbl_418_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float
lbl_418_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float
lbl_418_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float
lbl_418_data_00 = .data:0x00000000; // type:object size:0x10 scope:local data:string
lbl_418_data_10 = .data:0x00000010; // type:object size:0x10 scope:local data:string
g_profile_OBJ_SHRINE_BEF_INSIDE = .data:0x00000020; // type:object size:0x10
lbl_418_data_30 = .data:0x00000030; // type:object size:0x10 scope:local data:string
lbl_418_data_40 = .data:0x00000040; // type:object size:0x18 scope:local data:string
lbl_418_data_58 = .data:0x00000058; // type:object size:0x18 scope:local data:string
lbl_418_data_70 = .data:0x00000070; // type:object size:0x28 scope:local data:string
__vt__21dAcOshrineBefInside_c = .data:0x00000098; // type:object size:0x80
@@ -11,3 +11,5 @@ REL/executor.c:
REL/d/a/obj/d_a_obj_shrine_before.cpp:
.text start:0x00000070 end:0x000002E8
.rodata start:0x00000000 end:0x0000001C
.data start:0x00000000 end:0x000000C0
@@ -2,11 +2,11 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global
_epilog = .text:0x00000030; // type:function size:0x2C scope:global
_unresolved = .text:0x00000060; // type:function size:0x4 scope:global
dAcOshrineBefore_c_classInit__Fv = .text:0x00000070; // type:function size:0x5C
AcOshrineBefore__initModel = .text:0x000000D0; // type:function size:0x80
AcOshrineBefore__init = .text:0x00000150; // type:function size:0xD4
fn_388_230 = .text:0x00000230; // type:function size:0x8
fn_388_240 = .text:0x00000240; // type:function size:0x8
AcOshrineBefore__draw = .text:0x00000250; // type:function size:0x28
createHeap__18dAcOshrineBefore_cFv = .text:0x000000D0; // type:function size:0x80
create__18dAcOshrineBefore_cFv = .text:0x00000150; // type:function size:0xD4
doDelete__18dAcOshrineBefore_cFv = .text:0x00000230; // type:function size:0x8
actorExecute__18dAcOshrineBefore_cFv = .text:0x00000240; // type:function size:0x8
draw__18dAcOshrineBefore_cFv = .text:0x00000250; // type:function size:0x28
__dt__18dAcOshrineBefore_cFv = .text:0x00000280; // type:function size:0x68
_ctors = .ctors:0x00000000; // type:label scope:global
_dtors = .dtors:0x00000000; // type:label scope:global
@@ -14,4 +14,4 @@ lbl_388_rodata_0 = .rodata:0x00000000; // type:object size:0x1C data:float
g_profile_OBJ_SHRINE_BEFORE = .data:0x00000000; // type:object size:0x10
lbl_388_data_10 = .data:0x00000010; // type:object size:0x10
lbl_388_data_20 = .data:0x00000020; // type:object size:0x20 data:string
AcOshrineBefore__vtable = .data:0x00000040; // type:object size:0x80
__vt__18dAcOshrineBefore_c = .data:0x00000040; // type:object size:0x80
+3 -3
View File
@@ -1566,10 +1566,10 @@ config.libs = [
Rel(NonMatching, "d_a_obj_sea_F301", "REL/d/a/obj/d_a_obj_sea_F301.cpp"),
Rel(NonMatching, "d_a_obj_shed", "REL/d/a/obj/d_a_obj_shed.cpp"),
Rel(NonMatching, "d_a_obj_ship_window", "REL/d/a/obj/d_a_obj_ship_window.cpp"),
Rel(NonMatching, "d_a_obj_shrine_after", "REL/d/a/obj/d_a_obj_shrine_after.cpp"),
Rel(NonMatching, "d_a_obj_shrine_before", "REL/d/a/obj/d_a_obj_shrine_before.cpp"),
Rel(Matching, "d_a_obj_shrine_after", "REL/d/a/obj/d_a_obj_shrine_after.cpp"),
Rel(Matching, "d_a_obj_shrine_before", "REL/d/a/obj/d_a_obj_shrine_before.cpp"),
Rel(
NonMatching,
Matching,
"d_a_obj_shrine_bef_inside",
"REL/d/a/obj/d_a_obj_shrine_bef_inside.cpp",
),
+4 -4
View File
@@ -14,10 +14,10 @@ public:
virtual ~dAcOfenceBoko_c() {}
virtual int actorExecute() override;
nw4r::g3d::ResFile mResFile;
m3d::smdl_c mModel;
dBgW mCollision;
bool field_0x560;
/* 0x330 */ nw4r::g3d::ResFile mResFile;
/* 0x334 */ m3d::smdl_c mModel;
/* 0x350 */ dBgW mCollision;
/* 0x560 */ bool field_0x560;
private:
};
+3 -3
View File
@@ -14,9 +14,9 @@ public:
virtual ~dAcOfenceBoko2_c() {}
virtual int actorExecute() override;
nw4r::g3d::ResFile mResFile;
m3d::smdl_c mModel;
dBgW mCollision;
/* 0x330 */ nw4r::g3d::ResFile mResFile;
/* 0x334 */ m3d::smdl_c mModel;
/* 0x350 */ dBgW mCollision;
private:
};
+3 -3
View File
@@ -14,9 +14,9 @@ public:
virtual ~dAcOfenceKonsai_c() {}
virtual int actorExecute() override;
nw4r::g3d::ResFile mResFile;
m3d::smdl_c mModel;
dBgW mCollision;
/* 0x330 */ nw4r::g3d::ResFile mResFile;
/* 0x334 */ m3d::smdl_c mModel;
/* 0x350 */ dBgW mCollision;
private:
};
+3 -3
View File
@@ -16,9 +16,9 @@ public:
virtual ~dAcOironStage_c() {}
virtual int actorExecute() override;
nw4r::g3d::ResFile mResFile;
m3d::smdl_c mModel;
dBgW mCollision;
/* 0x330 */ nw4r::g3d::ResFile mResFile;
/* 0x334 */ m3d::smdl_c mModel;
/* 0x350 */ dBgW mCollision;
private:
};
+8
View File
@@ -6,7 +6,15 @@
class dAcOshrineAfter_c : public dAcObjBase_c {
public:
dAcOshrineAfter_c() {}
virtual int create() override;
virtual int doDelete() override;
virtual int draw() override;
virtual bool createHeap() override;
virtual ~dAcOshrineAfter_c() {}
virtual int actorExecute() override;
/* 0x330 */ nw4r::g3d::ResFile mResFile;
/* 0x334 */ m3d::smdl_c mModel;
private:
};
@@ -2,11 +2,21 @@
#define D_A_OBJ_SHRINE_BEF_INSIDE_H
#include "d/a/obj/d_a_obj_base.h"
#include "d/col/bg/d_bg_w.h"
class dAcOshrineBefInside_c : public dAcObjBase_c {
public:
dAcOshrineBefInside_c() {}
virtual int create() override;
virtual int doDelete() override;
virtual int draw() override;
virtual bool createHeap() override;
virtual ~dAcOshrineBefInside_c() {}
virtual int actorExecute() override;
/* 0x330 */ nw4r::g3d::ResFile mResFile;
/* 0x334 */ m3d::smdl_c mModel[2];
/* 0x36C */ dBgW mCollision;
private:
};
+8
View File
@@ -6,7 +6,15 @@
class dAcOshrineBefore_c : public dAcObjBase_c {
public:
dAcOshrineBefore_c() {}
virtual int create() override;
virtual int doDelete() override;
virtual int draw() override;
virtual bool createHeap() override;
virtual ~dAcOshrineBefore_c() {}
virtual int actorExecute() override;
/* 0x330 */ nw4r::g3d::ResFile mResFile;
/* 0x334 */ m3d::smdl_c mModel;
private:
};
+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;
}