mirror of
https://github.com/zeldaret/ss
synced 2026-06-11 05:08:16 -04:00
d_a_obj_fence_boko ok
This commit is contained in:
@@ -11,3 +11,5 @@ REL/executor.c:
|
||||
|
||||
REL/d/a/obj/d_a_obj_fence_boko.cpp:
|
||||
.text start:0x00000070 end:0x00000494
|
||||
.rodata start:0x00000000 end:0x00000020
|
||||
.data start:0x00000000 end:0x000000E8
|
||||
|
||||
@@ -2,16 +2,25 @@ _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
|
||||
dAcOfenceBoko_c_classInit__Fv = .text:0x00000070; // type:function size:0x64
|
||||
AcOfenceBoko__initModels = .text:0x000000E0; // type:function size:0x104
|
||||
AcOfenceBoko__init = .text:0x000001F0; // type:function size:0xF4
|
||||
AcOfenceBoko__destory = .text:0x000002F0; // type:function size:0x38
|
||||
AcOfenceBoko__update = .text:0x00000330; // type:function size:0xB4
|
||||
AcOfenceBoko__draw = .text:0x000003F0; // type:function size:0x28
|
||||
createHeap__15dAcOfenceBoko_cFv = .text:0x000000E0; // type:function size:0x104
|
||||
create__15dAcOfenceBoko_cFv = .text:0x000001F0; // type:function size:0xF4
|
||||
doDelete__15dAcOfenceBoko_cFv = .text:0x000002F0; // type:function size:0x38
|
||||
actorExecute__15dAcOfenceBoko_cFv = .text:0x00000330; // type:function size:0xB4
|
||||
draw__15dAcOfenceBoko_cFv = .text:0x000003F0; // type:function size:0x28
|
||||
__dt__15dAcOfenceBoko_cFv = .text:0x00000420; // type:function size:0x74
|
||||
_ctors = .ctors:0x00000000; // type:label scope:global
|
||||
_dtors = .dtors:0x00000000; // type:label scope:global
|
||||
lbl_370_rodata_0 = .rodata:0x00000000; // type:object size:0x1C data:float
|
||||
lbl_370_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float
|
||||
g_profile_OBJ_FENCE_BOKO = .data:0x00000000; // type:object size:0x44
|
||||
lbl_370_data_44 = .data:0x00000044; // type:object size:0x24
|
||||
AcOfenceBoko__vtable = .data:0x00000068; // type:object size:0x80
|
||||
lbl_370_rodata_00 = .rodata:0x00000000; // type:object size:0x4 scope:local data:float
|
||||
lbl_370_rodata_04 = .rodata:0x00000004; // type:object size:0x4 scope:local data:float
|
||||
lbl_370_rodata_08 = .rodata:0x00000008; // type:object size:0x4 scope:local data:float
|
||||
lbl_370_rodata_0C = .rodata:0x0000000C; // type:object size:0x4 scope:local data:float
|
||||
lbl_370_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float
|
||||
lbl_370_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float
|
||||
lbl_370_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float
|
||||
lbl_370_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float
|
||||
g_profile_OBJ_FENCE_BOKO = .data:0x00000000; // type:object size:0x10
|
||||
lbl_370_data_10 = .data:0x00000010; // type:object size:0xA scope:local data:string
|
||||
lbl_370_data_1C = .data:0x0000001C; // type:object size:0x12 scope:local data:string
|
||||
lbl_370_data_30 = .data:0x00000030; // type:object size:0x12 scope:local data:string
|
||||
lbl_370_data_44 = .data:0x00000044; // type:object size:0x1D scope:local data:string
|
||||
__vt__15dAcOfenceBoko_c = .data:0x00000068; // type:object size:0x80
|
||||
|
||||
+1
-1
@@ -1399,7 +1399,7 @@ config.libs = [
|
||||
Rel(NonMatching, "d_a_obj_farmland", "REL/d/a/obj/d_a_obj_farmland.cpp"),
|
||||
Rel(NonMatching, "d_a_obj_fence", "REL/d/a/obj/d_a_obj_fence.cpp"),
|
||||
Rel(NonMatching, "d_a_obj_fence_boko2", "REL/d/a/obj/d_a_obj_fence_boko2.cpp"),
|
||||
Rel(NonMatching, "d_a_obj_fence_boko", "REL/d/a/obj/d_a_obj_fence_boko.cpp"),
|
||||
Rel(Matching, "d_a_obj_fence_boko", "REL/d/a/obj/d_a_obj_fence_boko.cpp"),
|
||||
Rel(NonMatching, "d_a_obj_fence_iron", "REL/d/a/obj/d_a_obj_fence_iron.cpp"),
|
||||
Rel(NonMatching, "d_a_obj_fence_konsai", "REL/d/a/obj/d_a_obj_fence_konsai.cpp"),
|
||||
Rel(NonMatching, "d_a_obj_fire", "REL/d/a/obj/d_a_obj_fire.cpp"),
|
||||
|
||||
@@ -2,11 +2,22 @@
|
||||
#define D_A_OBJ_FENCE_BOKO_H
|
||||
|
||||
#include "d/a/obj/d_a_obj_base.h"
|
||||
#include "d/col/bg/d_bg_w.h"
|
||||
|
||||
class dAcOfenceBoko_c : public dAcObjBase_c {
|
||||
public:
|
||||
dAcOfenceBoko_c() {}
|
||||
virtual int create() override;
|
||||
virtual int doDelete() override;
|
||||
virtual int draw() override;
|
||||
virtual bool createHeap() override;
|
||||
virtual ~dAcOfenceBoko_c() {}
|
||||
virtual int actorExecute() override;
|
||||
|
||||
nw4r::g3d::ResFile mResFile;
|
||||
m3d::smdl_c mModel;
|
||||
dBgW mCollision;
|
||||
bool field_0x560;
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
@@ -60,7 +60,7 @@ public:
|
||||
dBgW_Base();
|
||||
void ClrDBgWBase();
|
||||
void CalcDiffShapeAngleY(s16);
|
||||
bool InitMapStuff(mAllocator_c *pAllocator);
|
||||
BOOL InitMapStuff(mAllocator_c *pAllocator);
|
||||
bool fn_8034AD70() const;
|
||||
bool fn_8034ADA0() const;
|
||||
void RegistBg(int id);
|
||||
|
||||
@@ -93,7 +93,7 @@ bool dAcODungeonShip_c::createHeap() {
|
||||
if (!SceneflagManager::sInstance->checkBoolFlag(roomid, (params >> 0x10) & 0xFF)) {
|
||||
goto ok;
|
||||
} else {
|
||||
bool result = (BOOL)mBg.InitMapStuff(&heap_allocator);
|
||||
bool result = mBg.InitMapStuff(&heap_allocator);
|
||||
if (result == false) {
|
||||
return false;
|
||||
}
|
||||
@@ -459,9 +459,7 @@ void dAcODungeonShip_c::fn_485_1720() {
|
||||
field_0x84C = tmp2;
|
||||
}
|
||||
|
||||
bool dAcODungeonShip_c::fn_485_1830(s32 pathSegmentIndex, s32 direction, s32 *out) {
|
||||
|
||||
}
|
||||
bool dAcODungeonShip_c::fn_485_1830(s32 pathSegmentIndex, s32 direction, s32 *out) {}
|
||||
|
||||
u16 dAcODungeonShip_c::fn_485_1900() {
|
||||
s32 sign = mPath.CheckFlag(0x40000000) ? -1 : 1;
|
||||
@@ -501,13 +499,9 @@ void dAcODungeonShip_c::fn_485_1A70(mVec3_c *v) {
|
||||
v->set(0.0f, 0.0f, 0.0f);
|
||||
}
|
||||
|
||||
void dAcODungeonShip_c::fn_485_1A90() {
|
||||
|
||||
}
|
||||
void dAcODungeonShip_c::fn_485_1A90() {}
|
||||
|
||||
void dAcODungeonShip_c::fn_485_1BF0() {
|
||||
|
||||
}
|
||||
void dAcODungeonShip_c::fn_485_1BF0() {}
|
||||
|
||||
void dAcODungeonShip_c::fn_485_1DF0() {
|
||||
const dAcPy_c *link = dAcPy_c::GetLink();
|
||||
|
||||
@@ -1,3 +1,54 @@
|
||||
#include "d/a/obj/d_a_obj_fence_boko.h"
|
||||
|
||||
#include "d/col/bg/d_bg_s.h"
|
||||
#include "d/col/bg/d_bg_s_gnd_chk.h"
|
||||
#include "d/d_stage.h"
|
||||
|
||||
SPECIAL_ACTOR_PROFILE(OBJ_FENCE_BOKO, dAcOfenceBoko_c, fProfile::OBJ_FENCE_BOKO, 0x1D7, 0, 3);
|
||||
|
||||
bool dAcOfenceBoko_c::createHeap() {
|
||||
mResFile = nw4r::g3d::ResFile(getOarcResFile("FenceBoko"));
|
||||
nw4r::g3d::ResMdl mdl = mResFile.GetResMdl("FenceBoko");
|
||||
TRY_CREATE(mModel.create(mdl, &heap_allocator, 0x120));
|
||||
cBgD_t *dzb = (cBgD_t *)getOarcFile("FenceBoko", "dzb/FenceBoko.dzb");
|
||||
PLC *plc = (PLC *)getOarcFile("FenceBoko", "dat/FenceBoko.plc");
|
||||
updateMatrix();
|
||||
mModel.setLocalMtx(mWorldMtx);
|
||||
TRY_CREATE(!mCollision.Set(dzb, plc, cBgW::MOVE_BG_e, &mWorldMtx, &mScale));
|
||||
mCollision.Lock();
|
||||
return mCollision.InitMapStuff(&heap_allocator);
|
||||
}
|
||||
|
||||
int dAcOfenceBoko_c::create() {
|
||||
CREATE_ALLOCATOR(dAcOfenceBoko_c);
|
||||
dBgS::GetInstance()->Regist(&mCollision, this);
|
||||
dBgS::GetInstance()->RegistBg(&mCollision, this);
|
||||
mCollision.mRoomId = dStage_c::GetInstance()->getCurrRoomId();
|
||||
roomid = mCollision.mRoomId;
|
||||
mModel.setPriorityDraw(0x1C, 0x9);
|
||||
boundingBox.Set(mVec3_c(-210.0f, -10.0f, -20.0f), mVec3_c(210.0f, 340.0f, 20.0f));
|
||||
mCullingDistance = 50000.0;
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
int dAcOfenceBoko_c::doDelete() {
|
||||
dBgS::GetInstance()->UnRegist(&mCollision);
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
int dAcOfenceBoko_c::actorExecute() {
|
||||
// Putting these in a single if fails to match ;-;
|
||||
if (!field_0x560) {
|
||||
if (dBgS_ObjGndChk::CheckPos(position + mVec3_c::Ey * 100.f)) {
|
||||
mCollision.mRoomId = dBgS_ObjGndChk::GetRoomID();
|
||||
roomid = mCollision.mRoomId;
|
||||
field_0x560 = true;
|
||||
}
|
||||
}
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
int dAcOfenceBoko_c::draw() {
|
||||
drawModelType1(&mModel);
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -43,8 +43,7 @@ bool dAcOislandNusi_c::createHeap() {
|
||||
}
|
||||
TRY_CREATE(!mBgW.Set((cBgD_t *)dzb, (PLC *)plc, cBgW::MOVE_BG_e, &mWorldMtx, &mScale));
|
||||
mBgW.Lock();
|
||||
// TODO InitMapStuff bool vs BOOL
|
||||
return (BOOL)mBgW.InitMapStuff(&heap_allocator);
|
||||
return mBgW.InitMapStuff(&heap_allocator);
|
||||
}
|
||||
|
||||
int dAcOislandNusi_c::create() {
|
||||
|
||||
@@ -73,7 +73,7 @@ bool dAcOmegamiIsland_c::createHeap() {
|
||||
mBgW.OnFlag0x20();
|
||||
}
|
||||
|
||||
return (BOOL)mBgW.InitMapStuff(&heap_allocator);
|
||||
return mBgW.InitMapStuff(&heap_allocator);
|
||||
}
|
||||
|
||||
int dAcOmegamiIsland_c::create() {
|
||||
|
||||
@@ -22,9 +22,7 @@ bool dAcOutajimaLv2_c::createHeap() {
|
||||
mMdl.setLocalMtx(mWorldMtx);
|
||||
TRY_CREATE(!mBgW.Set((cBgD_t *)dzb, (PLC *)plc, cBgW::MOVE_BG_e, &mWorldMtx, &mScale));
|
||||
mBgW.Lock();
|
||||
// TODO InitMapStuff says it already returns a bool
|
||||
BOOL ok = mBgW.InitMapStuff(&heap_allocator);
|
||||
return ok;
|
||||
return mBgW.InitMapStuff(&heap_allocator);
|
||||
}
|
||||
|
||||
int dAcOutajimaLv2_c::create() {
|
||||
|
||||
@@ -61,7 +61,7 @@ void dBgW_Base::SetOldShapeAngleY(s16 oldShapeAngleY) {
|
||||
mOldShapeAngleY = oldShapeAngleY;
|
||||
}
|
||||
|
||||
bool dBgW_Base::InitMapStuff(mAllocator_c *pAllocator) {
|
||||
BOOL dBgW_Base::InitMapStuff(mAllocator_c *pAllocator) {
|
||||
ClearMap();
|
||||
return UpdateDraw(pAllocator) != false;
|
||||
}
|
||||
|
||||
+1
-1
@@ -248,7 +248,7 @@ bool dRoom_c::setupBg() {
|
||||
bg->Set(kcl, plc);
|
||||
bg->SetRoomId(roomid);
|
||||
bg->SetPriority(dBgW_Base::PRIORITY_0);
|
||||
bool ok = (BOOL)bg->InitMapStuff(&mAllocator);
|
||||
bool ok = bg->InitMapStuff(&mAllocator);
|
||||
if (!ok) {
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user