-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d35fb6d
commit 64711cd
Showing
7 changed files
with
115 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,20 @@ | ||
_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 | ||
fn_404_70 = .text:0x00000070; // type:function size:0x7C | ||
fn_404_F0 = .text:0x000000F0; // type:function size:0x7C | ||
fn_404_170 = .text:0x00000170; // type:function size:0x134 | ||
fn_404_2B0 = .text:0x000002B0; // type:function size:0xE8 | ||
fn_404_3A0 = .text:0x000003A0; // type:function size:0x8 | ||
fn_404_3B0 = .text:0x000003B0; // type:function size:0x8 | ||
fn_404_3C0 = .text:0x000003C0; // type:function size:0x60 | ||
fn_404_420 = .text:0x00000420; // type:function size:0x80 | ||
dAcObambooIsland_c_classInit__Fv = .text:0x00000070; // type:function size:0x7C | ||
interactCallback__18dAcObambooIsland_cFPvP9dAcBase_cP12dAcObjBase_c = .text:0x000000F0; // type:function size:0x7C | ||
createHeap__18dAcObambooIsland_cFv = .text:0x00000170; // type:function size:0x134 | ||
create__18dAcObambooIsland_cFv = .text:0x000002B0; // type:function size:0xE8 | ||
doDelete__18dAcObambooIsland_cFv = .text:0x000003A0; // type:function size:0x8 | ||
actorExecute__18dAcObambooIsland_cFv = .text:0x000003B0; // type:function size:0x8 | ||
draw__18dAcObambooIsland_cFv = .text:0x000003C0; // type:function size:0x60 | ||
__dt__18dAcObambooIsland_cFv = .text:0x00000420; // type:function size:0x80 | ||
_ctors = .ctors:0x00000000; // type:label scope:global | ||
_dtors = .dtors:0x00000000; // type:label scope:global | ||
lbl_404_rodata_0 = .rodata:0x00000000; // type:object size:0x8 data:float | ||
lbl_404_rodata_8 = .rodata:0x00000008; // type:object size:0x20 data:4byte | ||
lbl_404_data_0 = .data:0x00000000; // type:object size:0x8 data:string | ||
lbl_404_data_8 = .data:0x00000008; // type:object size:0x10 | ||
lbl_404_data_18 = .data:0x00000018; // type:object size:0x38 | ||
lbl_404_data_50 = .data:0x00000050; // type:object size:0x20 data:string | ||
lbl_404_data_70 = .data:0x00000070; // type:object size:0x80 | ||
lbl_404_rodata_0 = .rodata:0x00000000; // type:object size:0x8 scope:local data:float | ||
lbl_404_rodata_8 = .rodata:0x00000008; // type:object size:0x20 scope:local data:4byte | ||
lbl_404_data_0 = .data:0x00000000; // type:object size:0x8 scope:local data:string | ||
lbl_404_data_8 = .data:0x00000008; // type:object size:0x10 scope:local | ||
g_profile_OBJ_BAMBOO_ISLAND = .data:0x00000018; // type:object size:0x10 | ||
lbl_404_data_50 = .data:0x00000050; // type:object size:0x20 scope:local data:string | ||
__vt__18dAcObambooIsland_c = .data:0x00000070; // type:object size:0x80 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
#ifndef D_A_OBJ_BAMBOO_ISLAND_H | ||
#define D_A_OBJ_BAMBOO_ISLAND_H | ||
|
||
#include <d/a/obj/d_a_obj_base.h> | ||
#include <m/m3d/m_smdl.h> | ||
#include <toBeSorted/actor_collision.h> | ||
|
||
class dAcObambooIsland_c : public dAcObjBase_c { | ||
public: | ||
dAcObambooIsland_c() {} | ||
virtual ~dAcObambooIsland_c() {} | ||
virtual bool createHeap() override; | ||
virtual int create() override; | ||
virtual int actorExecute() override; | ||
virtual int draw() override; | ||
virtual int doDelete() override; | ||
|
||
private: | ||
static const f32 unusedFloat1; | ||
static const f32 unusedFloat2; | ||
|
||
static void interactCallback(void *unknown, dAcBase_c *actor, dAcObjBase_c *interactor); | ||
|
||
m3d::smdl_c mModels[2]; | ||
nw4r::g3d::ResFile mBrres; | ||
ActorCollision mCollision; | ||
}; | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
#include <d/a/obj/d_a_obj_bamboo_island.h> | ||
#include <toBeSorted/item_story_flag_manager.h> | ||
|
||
const f32 dAcObambooIsland_c::unusedFloat1 = 100000.0f; | ||
const f32 dAcObambooIsland_c::unusedFloat2 = 0.0f; | ||
|
||
static const char *const sBambooIslandNames[] = { | ||
"IslBamb", | ||
"IslBamb_s", | ||
}; | ||
|
||
SPECIAL_ACTOR_PROFILE(OBJ_BAMBOO_ISLAND, dAcObambooIsland_c, fProfile::OBJ_BAMBOO_ISLAND, 0x01F9, 0, 3); | ||
|
||
void dAcObambooIsland_c::interactCallback(void *unknown, dAcBase_c *actor, dAcObjBase_c *interactor) { | ||
if (dBase_c::isActorPlayer(*interactor) && actor != nullptr && | ||
StoryFlagManager::sInstance->getCounterOrFlag(284) == 0) { | ||
StoryFlagManager::sInstance->setFlag(284); | ||
} | ||
} | ||
|
||
bool dAcObambooIsland_c::createHeap() { | ||
mBrres = getOarcResFile("IslBamb"); | ||
RoomManager::bindStageResToFile(&mBrres); | ||
RoomManager::bindSkyCmnToResFile(&mBrres); | ||
for (int i = 0; i < 2; i++) { | ||
nw4r::g3d::ResMdl mdl = mBrres.GetResMdl(sBambooIslandNames[i]); | ||
TRY_CREATE(mModels[i].create(mdl, &heap_allocator, 0x120)); | ||
} | ||
void *dzb = getOarcFile("IslBamb", "dzb/IslBamb.dzb"); | ||
void *plc = getOarcFile("IslBamb", "dat/IslBamb.plc"); | ||
updateMatrix(); | ||
for (int i = 0; i < 2; i++) { | ||
mModels[i].setLocalMtx(worldMatrix); | ||
} | ||
TRY_CREATE(mCollision.create(dzb, plc, true, worldMatrix, scale) == nullptr); | ||
mCollision.init(); | ||
return true; | ||
} | ||
|
||
int dAcObambooIsland_c::create() { | ||
CREATE_ALLOCATOR(dAcObambooIsland_c); | ||
|
||
CollisionCheckContext::get()->registerActorBgCollision(mCollision, this); | ||
mModels[0].setPriorityDraw(0x1C, 9); | ||
mModels[1].setPriorityDraw(0x22, 9); | ||
setBoundingBox(mVec3_c(-2400.0f, -1600.0f, -2300.0f), mVec3_c(2400.0f, 3900.0f, 2400.0f)); | ||
mCullingDistance = 500000.0f; | ||
mCollision.interactFunc = interactCallback; | ||
return SUCCEEDED; | ||
} | ||
|
||
int dAcObambooIsland_c::doDelete() { | ||
return SUCCEEDED; | ||
} | ||
|
||
int dAcObambooIsland_c::actorExecute() { | ||
return SUCCEEDED; | ||
} | ||
|
||
int dAcObambooIsland_c::draw() { | ||
for (int i = 0; i < 2; i++) { | ||
drawModelType1(&mModels[i]); | ||
} | ||
return SUCCEEDED; | ||
} |