mirror of
https://github.com/zeldaret/ss
synced 2026-05-24 07:10:53 -04:00
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:
@@ -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
@@ -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",
|
||||
),
|
||||
|
||||
@@ -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:
|
||||
};
|
||||
|
||||
@@ -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:
|
||||
};
|
||||
|
||||
@@ -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:
|
||||
};
|
||||
|
||||
@@ -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:
|
||||
};
|
||||
|
||||
@@ -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:
|
||||
};
|
||||
|
||||
@@ -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:
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user