mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-07 20:01:27 -04:00
cf05dea4f4
* Add model info and demoProc to d_a_Tbox * Remove nonmatching comment from demoProc * remove nonmatching comment from getFuncType * Remove remaining nonmatching comments * Match first 4 functios of daTbox_c
790 lines
20 KiB
C++
790 lines
20 KiB
C++
//
|
|
// Generated by dtk
|
|
// Translation Unit: d_a_tbox.cpp
|
|
//
|
|
|
|
#include "JSystem/JKernel/JKRHeap.h"
|
|
#include "JSystem/JUtility/JUTAssert.h"
|
|
#include "d/d_bg_s_acch.h"
|
|
#include "d/d_bg_w.h"
|
|
#include "d/d_cc_d.h"
|
|
#include "d/d_com_inf_game.h"
|
|
#include "d/d_kankyo.h"
|
|
#include "d/d_particle.h"
|
|
#include "d/d_procname.h"
|
|
#include "f_op/f_op_actor_mng.h"
|
|
#include "m_Do/m_Do_ext.h"
|
|
#include "m_Do/m_Do_graphic.h"
|
|
#include "m_Do/m_Do_hostIO.h"
|
|
#include "m_do/m_Do_mtx.h"
|
|
#include "dolphin/types.h"
|
|
|
|
|
|
#define DEMO_PROC_WAIT 0
|
|
#define DEMO_PROC_OPEN 1
|
|
#define DEMO_PROC_APPEAR 2
|
|
#define DEMO_PROC_OPEN_SHORT 3
|
|
|
|
#define FUNC_TYPE_NORMAL 0
|
|
#define FUNC_TYPE_SWITCH 1
|
|
#define FUNC_TYPE_ENEMIES 2
|
|
#define FUNC_TYPE_SWITCH_VISIBLE 3
|
|
#define FUNC_TYPE_SWITCH_TRANSPARENT 4
|
|
#define FUNC_TYPE_GRAVITY 5
|
|
#define FUNC_TYPE_TACT 6
|
|
#define FUNC_TYPE_EXTRA_SAVE_INFO 7
|
|
#define FUNC_TYPE_EXTRA_SAVE_INFO_SPAWN 8
|
|
|
|
// Needed for the .data section to match.
|
|
static f32 dummy1[3] = {1.0f, 1.0f, 1.0f};
|
|
static f32 dummy2[3] = {1.0f, 1.0f, 1.0f};
|
|
static u8 dummy3[4] = {0x02, 0x00, 0x02, 0x01};
|
|
static f64 dummy4[2] = {3.0, 0.5};
|
|
|
|
class daTbox_HIO_c {
|
|
public:
|
|
daTbox_HIO_c();
|
|
virtual ~daTbox_HIO_c();
|
|
|
|
/* 0x0004 */ s8 m0004;
|
|
/* 0x0006 */ u16 m0006;
|
|
/* 0x0008 */ u16 m0008;
|
|
/* 0x000A */ u16 m000A;
|
|
/* 0x000C */ u16 m000C;
|
|
};
|
|
|
|
static daTbox_HIO_c l_HIO;
|
|
|
|
struct modelInfo {
|
|
s16 modelId;
|
|
s16 openBckId;
|
|
s16 btkId;
|
|
s16 brkId;
|
|
s16 closedColId;
|
|
s16 openColId;
|
|
};
|
|
|
|
static modelInfo l_modelInfo[] = {
|
|
{ 0x000E, 0x0009, 0x0022, 0x001B, 0x002A, 0x002B },
|
|
{ 0x000F, 0x0008, 0x0023, 0x001C, 0x002A, 0x002B },
|
|
{ 0x0010, 0x0008, 0x0024, 0x001D, 0x002A, 0x002B },
|
|
{ 0x0014, 0x0008, 0xFFFF, 0xFFFF, 0x002C, 0x002D }
|
|
};
|
|
|
|
class daTbox_c : public fopAc_ac_c {
|
|
public:
|
|
daTbox_c();
|
|
|
|
s32 commonShapeSet();
|
|
s32 effectShapeSet();
|
|
s32 envShapeSet();
|
|
s32 bgCheckSet();
|
|
|
|
void searchRoomNo();
|
|
void lightReady();
|
|
|
|
void checkEnv();
|
|
BOOL checkOpen();
|
|
modelInfo& getModelInfo();
|
|
|
|
void clrDzb();
|
|
void setDzb();
|
|
|
|
void surfaceProc();
|
|
void checkRoomDisp(int);
|
|
u32 getShapeType();
|
|
s32 getFuncType();
|
|
void checkNormal();
|
|
|
|
s32 CreateHeap();
|
|
s32 CreateInit();
|
|
|
|
void boxCheck();
|
|
void lightUpProc();
|
|
void lightDownProc();
|
|
void darkProc();
|
|
void volmProc();
|
|
|
|
void demoProcOpen();
|
|
|
|
void demoInitAppear_Tact();
|
|
void demoInitAppear();
|
|
|
|
void demoProcAppear_Tact();
|
|
void demoProcAppear();
|
|
|
|
s32 demoProc();
|
|
|
|
void OpenInit_com();
|
|
void OpenInit();
|
|
|
|
void setCollision();
|
|
|
|
bool actionWait();
|
|
bool actionDemo();
|
|
bool actionDemo2();
|
|
bool actionOpenWait();
|
|
bool actionSwOnWait();
|
|
bool actionSwOnWait2();
|
|
bool actionGenocide();
|
|
|
|
s32 execute();
|
|
s32 draw();
|
|
|
|
/* 0x0290 */ u32 mRoomNo;
|
|
/* 0x0294 */ request_of_phase_process_class mPhs;
|
|
|
|
/* 0x029C */ J3DModel* mChestMdl;
|
|
/* 0x02A0 */ mDoExt_bckAnm mOpenAnm;
|
|
/* 0x02B0 */ mDoExt_btkAnm* mpAppearTexAnm;
|
|
/* 0x02B4 */ mDoExt_brkAnm* mpAppearRegAnm;
|
|
|
|
/* 0x02B8 */ dBgW* mpBgWClosed;
|
|
/* 0x02BC */ dBgW* mpBgWOpen;
|
|
/* 0x02C0 */ dBgW* mpBgWVines;
|
|
|
|
/* 0x02C4 */ dBgW* m02C4;
|
|
|
|
/* 0x02C8 */ J3DModel* mpFlashMdl;
|
|
/* 0x02CC */ mDoExt_bckAnm mFlashAnm;
|
|
/* 0x02DC */ mDoExt_btkAnm mFlashTexAnm;
|
|
/* 0x02F0 */ mDoExt_brkAnm mFlashRegAnm;
|
|
|
|
/* 0x0308 */ u32 m0308;
|
|
|
|
/* 0x030C */ mDoExt_brkAnm mBrkAnm3;
|
|
|
|
/* 0x0324 */ J3DModel* mTactPlatformMdl;
|
|
/* 0x0328 */ mDoExt_brkAnm mTactPlatformBrk;
|
|
|
|
typedef bool (daTbox_c::*actionFunc)();
|
|
/* 0x0340 */ actionFunc mActionFunc;
|
|
|
|
/* 0x034C */ float m034C;
|
|
|
|
/* 0x0350 */ u32 mStaffId;
|
|
|
|
/* 0x0354 */ Mtx mMtx;
|
|
|
|
/* 0x0384 */ LIGHT_INFLUENCE mPLight;
|
|
/* 0x03A4 */ LIGHT_INFLUENCE mEfLight;
|
|
|
|
/* 0x03C4 */ dPa_smokeEcallBack mSmokeCB;
|
|
/* 0x03E4 */ JPABaseEmitter* mSmokeEmitter;
|
|
|
|
/* 0x03E8 */ float mAllColRatio;
|
|
/* 0x03EC */ float m03EC;
|
|
|
|
/* 0x03F0 */ u16 m03F0;
|
|
/* 0x03F2 */ s16 m03F2;
|
|
|
|
/* 0x03F4 */ u8 m03F4;
|
|
/* 0x03F5 */ u8 m03F5;
|
|
/* 0x03F6 */ u16 m03F6;
|
|
|
|
/* 0x03F8 */ u8 m03F8;
|
|
|
|
/* 0x03FC */ dBgS_ObjAcch mObjAcch;
|
|
/* 0x05C0 */ dBgS_AcchCir mAcchCir;
|
|
/* 0x0600 */ dCcD_Stts mColStatus;
|
|
/* 0x063C */ dCcD_Cyl mColCyl;
|
|
|
|
/* 0x076C */ u8 m076C;
|
|
};
|
|
|
|
/* 000000EC-00000124 .text __ct__12daTbox_HIO_cFv */
|
|
daTbox_HIO_c::daTbox_HIO_c() {
|
|
m0004 = -1;
|
|
m0006 = 0x82;
|
|
m0008 = 0xB4;
|
|
m000A = 0x30;
|
|
m000C = 0x1E;
|
|
}
|
|
|
|
/* 00000124-00000550 .text commonShapeSet__8daTbox_cFv */
|
|
s32 daTbox_c::commonShapeSet() {
|
|
modelInfo& mdlInfo = getModelInfo();
|
|
|
|
// Load model
|
|
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Dalways", mdlInfo.modelId);
|
|
JUT_ASSERT(0xA0, modelData != 0);
|
|
|
|
u32 modelFlags = 0x11000022;
|
|
|
|
// Load open animation
|
|
J3DAnmTransform* openAnm = (J3DAnmTransform*)dComIfG_getObjectRes("Dalways", mdlInfo.openBckId);
|
|
if (mOpenAnm.init(modelData, openAnm, true, 0, 1.0f, 0, -1, false) == 0) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
// Load texture anim, if requested
|
|
if (mdlInfo.btkId > 0) {
|
|
mpAppearTexAnm = new mDoExt_btkAnm();
|
|
if (mpAppearTexAnm == NULL) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
J3DAnmTextureSRTKey* appearTexData = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("Dalways", mdlInfo.btkId);
|
|
if (mpAppearTexAnm->init(modelData, appearTexData, true, 2, 1.0f, 0, -1, false, 0) == 0) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
modelFlags |= 0x1200;
|
|
}
|
|
|
|
// Load color anim, if requested
|
|
if (mdlInfo.brkId > 0) {
|
|
mpAppearRegAnm = new mDoExt_brkAnm();
|
|
if (mpAppearRegAnm == NULL) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
J3DAnmTevRegKey* appearRegData = (J3DAnmTevRegKey*)dComIfG_getObjectRes("Dalways", mdlInfo.brkId);
|
|
if (mpAppearRegAnm->init(modelData, appearRegData, true, 0, 1.0f, 0, -1, false, 0) == 0) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
modelFlags |= 0xF020000;
|
|
}
|
|
|
|
// Create model
|
|
mChestMdl = mDoExt_J3DModel__create(modelData, 0x80000, modelFlags);
|
|
if (mChestMdl == NULL) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
// Set up Triforce platform for the type that spawns via Wind Waker song
|
|
if (getFuncType() == FUNC_TYPE_TACT) {
|
|
modelData = (J3DModelData*)dComIfG_getObjectRes("Dalways", 0x17);
|
|
JUT_ASSERT(0xE2, modelData);
|
|
|
|
mTactPlatformMdl = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000000);
|
|
if (mTactPlatformMdl == NULL) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
J3DAnmTevRegKey* tactPlatformBrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("Dalways", 0x1F);
|
|
if (mTactPlatformBrk.init(modelData, tactPlatformBrk, true, 0, 1.0f, 0, -1, false, 0) == 0) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
}
|
|
|
|
mChestMdl->setBaseScale(mScale);
|
|
|
|
mDoMtx_stack_c::transS(current.pos);
|
|
mDoMtx_stack_c::YrotM(current.angle.y);
|
|
mChestMdl->setBaseTRMtx(mDoMtx_stack_c::get());
|
|
|
|
if (getFuncType() == FUNC_TYPE_TACT) {
|
|
mDoMtx_stack_c::transM(0.0f, 1.0f, 0.0f);
|
|
mTactPlatformMdl->setBaseTRMtx(mDoMtx_stack_c::get());
|
|
}
|
|
|
|
mDoMtx_copy(mDoMtx_stack_c::get(), mMtx);
|
|
|
|
return cPhs_COMPLEATE_e;
|
|
}
|
|
|
|
/* 00000598-00000764 .text effectShapeSet__8daTbox_cFv */
|
|
s32 daTbox_c::effectShapeSet() {
|
|
J3DModelData* flashModelData = (J3DModelData*)dComIfG_getObjectRes("Dalways", 0x16);
|
|
JUT_ASSERT(0x117, flashModelData != 0);
|
|
|
|
mpFlashMdl = mDoExt_J3DModel__create(flashModelData, 0x80000, 0x1000200);
|
|
if (mpFlashMdl == NULL) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
J3DAnmTransform* flashAnm = (J3DAnmTransform*)dComIfG_getObjectRes("Dalways", 0x0B);
|
|
if (mFlashAnm.init(flashModelData, flashAnm, true, 0, 1.0f, 0, -1, false) == 0) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
J3DAnmTextureSRTKey* flashTexAnm = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("Dalways", 0x25);
|
|
if (mFlashTexAnm.init(flashModelData, flashTexAnm, true, 0, 1.0f, 0, -1, false, 0) == 0) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
J3DAnmTevRegKey* flashRegAnm = (J3DAnmTevRegKey*)dComIfG_getObjectRes("Dalways", 0x1E);
|
|
|
|
s32 regInit = mFlashRegAnm.init(flashModelData, flashRegAnm, true, 0, 1.0f, 0, -1, false, 0);
|
|
return regInit != 0 ? 4 : 5;
|
|
}
|
|
|
|
/* 00000764-00000928 .text envShapeSet__8daTbox_cFv */
|
|
s32 daTbox_c::envShapeSet() {
|
|
modelInfo& mdlInfo = getModelInfo();
|
|
|
|
// Load model
|
|
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Dalways", mdlInfo.modelId);
|
|
|
|
J3DTexture* mdlTex = modelData->getTexture();
|
|
if (mdlTex == NULL) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
JUTNameTab* texNameTable = modelData->getTextureName();
|
|
if (texNameTable == NULL) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
for (u16 i = 0; i < mdlTex->getNum(); i++) {
|
|
const char* texName = texNameTable->getName(i);
|
|
int cmpResult = strcmp(texName, "__dummy");
|
|
|
|
if (cmpResult == 0) {
|
|
mdlTex->setResTIMG(i, *mDoGph_gInf_c::getFrameBufferTimg());
|
|
}
|
|
}
|
|
|
|
mDoExt_modelTexturePatch(modelData);
|
|
return cPhs_COMPLEATE_e;
|
|
}
|
|
|
|
/* 00000928-00000BB0 .text bgCheckSet__8daTbox_cFv */
|
|
s32 daTbox_c::bgCheckSet() {
|
|
modelInfo& mdlInfo = getModelInfo();
|
|
|
|
cBgD_t* bgd = (cBgD_t*)dComIfG_getObjectRes("Dalways", mdlInfo.closedColId);
|
|
JUT_ASSERT(0x195, bgd != 0);
|
|
|
|
mpBgWClosed = new dBgW();
|
|
if (mpBgWClosed == NULL) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
if (mpBgWClosed->Set(bgd, 1, &mMtx) == 1) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
bgd = (cBgD_t*)dComIfG_getObjectRes("Dalways", mdlInfo.openColId);
|
|
JUT_ASSERT(0x1A6, bgd != 0);
|
|
|
|
mpBgWOpen = new dBgW();
|
|
if (mpBgWOpen == NULL) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
if (mpBgWOpen->Set(bgd, 1, &mMtx) == 1) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
if (getFuncType() == FUNC_TYPE_SWITCH_VISIBLE) {
|
|
bgd = (cBgD_t*)dComIfG_getObjectRes("Dalways", 0x2E);
|
|
JUT_ASSERT(0x1B9, bgd != 0);
|
|
|
|
mpBgWVines = new dBgW();
|
|
if (mpBgWVines == NULL) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
|
|
if (mpBgWVines->Set(bgd, 1, &mMtx) == 1) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
}
|
|
|
|
mpBgWClosed->Move();
|
|
mpBgWOpen->Move();
|
|
|
|
if (mpBgWVines != NULL) {
|
|
mpBgWVines->Move();
|
|
}
|
|
|
|
m02C4 = NULL;
|
|
return cPhs_COMPLEATE_e;
|
|
}
|
|
|
|
/* 00000BB0-00000C14 .text searchRoomNo__8daTbox_cFv */
|
|
void daTbox_c::searchRoomNo() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00000C14-00000C98 .text lightReady__8daTbox_cFv */
|
|
void daTbox_c::lightReady() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00000C98-00000CD8 .text checkEnv__8daTbox_cFv */
|
|
void daTbox_c::checkEnv() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00000CD8-00000D48 .text checkOpen__8daTbox_cFv */
|
|
BOOL daTbox_c::checkOpen() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00000D48-00000D78 .text getModelInfo__8daTbox_cFv */
|
|
modelInfo& daTbox_c::getModelInfo() {
|
|
return l_modelInfo[getShapeType()];
|
|
}
|
|
|
|
/* 00000D78-00000DD0 .text clrDzb__8daTbox_cFv */
|
|
void daTbox_c::clrDzb() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00000DD0-00000ECC .text setDzb__8daTbox_cFv */
|
|
void daTbox_c::setDzb() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00000ECC-00000F8C .text surfaceProc__8daTbox_cFv */
|
|
void daTbox_c::surfaceProc() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00000F8C-00000FC0 .text checkRoomDisp__8daTbox_cFi */
|
|
void daTbox_c::checkRoomDisp(int) {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00000FC0-00000FE4 .text getShapeType__8daTbox_cFv */
|
|
u32 daTbox_c::getShapeType() {
|
|
s32 shapeType = (fopAcM_GetParam(this) >> 0x14) & 0x0F;
|
|
return shapeType >= 4 ? 0 : shapeType;
|
|
}
|
|
|
|
/* 00000FE4-00000FF0 .text getFuncType__8daTbox_cFv */
|
|
s32 daTbox_c::getFuncType() {
|
|
return fopAcM_GetParam(this) & 0x7F;
|
|
}
|
|
|
|
/* 00000FF0-0000108C .text checkNormal__8daTbox_cFv */
|
|
void daTbox_c::checkNormal() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 0000108C-000010AC .text CheckCreateHeap__FP10fopAc_ac_c */
|
|
void CheckCreateHeap(fopAc_ac_c*) {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 000010AC-0000114C .text CreateHeap__8daTbox_cFv */
|
|
s32 daTbox_c::CreateHeap() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 0000114C-00001560 .text CreateInit__8daTbox_cFv */
|
|
s32 daTbox_c::CreateInit() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00001560-00001624 .text boxCheck__8daTbox_cFv */
|
|
void daTbox_c::boxCheck() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00001624-00001668 .text lightUpProc__8daTbox_cFv */
|
|
void daTbox_c::lightUpProc() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00001668-000016BC .text lightDownProc__8daTbox_cFv */
|
|
void daTbox_c::lightDownProc() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 000016BC-0000172C .text darkProc__8daTbox_cFv */
|
|
void daTbox_c::darkProc() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 0000172C-000017CC .text volmProc__8daTbox_cFv */
|
|
void daTbox_c::volmProc() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 000017CC-00001890 .text demoProcOpen__8daTbox_cFv */
|
|
void daTbox_c::demoProcOpen() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00001890-00001A40 .text demoInitAppear_Tact__8daTbox_cFv */
|
|
void daTbox_c::demoInitAppear_Tact() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00001A40-00001B38 .text demoInitAppear__8daTbox_cFv */
|
|
void daTbox_c::demoInitAppear() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00001B38-00001CF4 .text demoProcAppear_Tact__8daTbox_cFv */
|
|
void daTbox_c::demoProcAppear_Tact() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00001CF4-00001E4C .text demoProcAppear__8daTbox_cFv */
|
|
void daTbox_c::demoProcAppear() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00001E4C-0000210C .text demoProc__8daTbox_cFv */
|
|
s32 daTbox_c::demoProc() {
|
|
static char* action_table[] = {
|
|
"WAIT",
|
|
"OPEN",
|
|
"APPEAR",
|
|
"OPEN_SHORT"
|
|
};
|
|
|
|
s32 actionIdx = dComIfGp_evmng_getMyActIdx(mStaffId, action_table, 4, 0, 0);
|
|
bool bIsAdvance = dComIfGp_evmng_getIsAddvance(mStaffId);
|
|
|
|
if (bIsAdvance) {
|
|
m03F4 = 0;
|
|
|
|
switch (actionIdx) {
|
|
case DEMO_PROC_OPEN:
|
|
OpenInit();
|
|
lightReady();
|
|
mPLight.mPower = 0.0f;
|
|
mEfLight.mPower = 0.0f;
|
|
break;
|
|
case DEMO_PROC_APPEAR:
|
|
m03F0 |= 0x20;
|
|
m03EC = -130.0f;
|
|
|
|
setDzb();
|
|
|
|
if (getFuncType() == FUNC_TYPE_TACT) {
|
|
m03F0 &= -3;
|
|
demoInitAppear_Tact();
|
|
}
|
|
else {
|
|
m03F0 &= -4;
|
|
demoInitAppear();
|
|
}
|
|
|
|
break;
|
|
case DEMO_PROC_OPEN_SHORT:
|
|
OpenInit_com();
|
|
break;
|
|
}
|
|
}
|
|
|
|
switch (actionIdx) {
|
|
case DEMO_PROC_APPEAR:
|
|
if (getFuncType() == FUNC_TYPE_TACT) {
|
|
demoProcAppear_Tact();
|
|
}
|
|
else {
|
|
demoProcAppear();
|
|
}
|
|
|
|
surfaceProc();
|
|
break;
|
|
case DEMO_PROC_OPEN:
|
|
if (m03F4 != 0) {
|
|
dComIfGp_evmng_cutEnd(mStaffId);
|
|
}
|
|
else {
|
|
if (mOpenAnm.play() != 0) {
|
|
m03F4 = 1;
|
|
dComIfGp_evmng_cutEnd(mStaffId);
|
|
fopAcM_seStart(this, JA_SE_OBJ_TBOX_OPEN_S2, 0);
|
|
}
|
|
}
|
|
break;
|
|
case DEMO_PROC_OPEN_SHORT:
|
|
if (m03F4 != 0) {
|
|
dComIfGp_evmng_cutEnd(mStaffId);
|
|
}
|
|
else {
|
|
if (mOpenAnm.play() != 0) {
|
|
m03F4 = 1;
|
|
dComIfGp_evmng_cutEnd(mStaffId);
|
|
fopAcM_seStart(this, JA_SE_OBJ_TBOX_OPEN_S2, 0);
|
|
}
|
|
}
|
|
break;
|
|
default:
|
|
dComIfGp_evmng_cutEnd(mStaffId);
|
|
break;
|
|
}
|
|
|
|
if (m03F0 & 0x10) {
|
|
demoProcOpen();
|
|
}
|
|
|
|
if (m03F0 & 0x08) {
|
|
dKy_set_allcol_ratio(mAllColRatio);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
/* 0000210C-00002250 .text OpenInit_com__8daTbox_cFv */
|
|
void daTbox_c::OpenInit_com() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00002250-00002444 .text OpenInit__8daTbox_cFv */
|
|
void daTbox_c::OpenInit() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00002444-000024AC .text setCollision__8daTbox_cFv */
|
|
void daTbox_c::setCollision() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 000024AC-000024B4 .text actionWait__8daTbox_cFv */
|
|
bool daTbox_c::actionWait() {
|
|
return true;
|
|
}
|
|
|
|
/* 000024B4-000025A4 .text actionDemo__8daTbox_cFv */
|
|
bool daTbox_c::actionDemo() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 000025A4-00002634 .text actionDemo2__8daTbox_cFv */
|
|
bool daTbox_c::actionDemo2() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00002634-000027C8 .text actionOpenWait__8daTbox_cFv */
|
|
bool daTbox_c::actionOpenWait() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 000027C8-000028A0 .text actionSwOnWait__8daTbox_cFv */
|
|
bool daTbox_c::actionSwOnWait() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 000028A0-00002914 .text actionSwOnWait2__8daTbox_cFv */
|
|
bool daTbox_c::actionSwOnWait2() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00002914-00002A2C .text actionGenocide__8daTbox_cFv */
|
|
bool daTbox_c::actionGenocide() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00002A2C-00002BF0 .text execute__8daTbox_cFv */
|
|
s32 daTbox_c::execute() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00002BF0-00002C10 .text daTbox_Draw__FP8daTbox_c */
|
|
s32 daTbox_Draw(daTbox_c* i_tbox) {
|
|
return i_tbox->draw();
|
|
}
|
|
|
|
/* 00002C10-00002FB0 .text draw__8daTbox_cFv */
|
|
s32 daTbox_c::draw() {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 00002FB0-00002FD0 .text daTbox_Execute__FP8daTbox_c */
|
|
s32 daTbox_Execute(daTbox_c* i_tbox) {
|
|
return i_tbox->execute();
|
|
}
|
|
|
|
/* 00002FD0-00002FD8 .text daTbox_IsDelete__FP8daTbox_c */
|
|
s32 daTbox_IsDelete(daTbox_c*) {
|
|
return TRUE;
|
|
}
|
|
|
|
/* 00002FD8-00003070 .text daTbox_Delete__FP8daTbox_c */
|
|
s32 daTbox_Delete(daTbox_c* i_tbox) {
|
|
if (i_tbox->m02C4 != NULL) {
|
|
g_dComIfG_gameInfo.play.mBgS.Release(i_tbox->m02C4);
|
|
}
|
|
|
|
i_tbox->mSmokeCB.end();
|
|
dComIfG_resDelete(&i_tbox->mPhs, "Dalways");
|
|
|
|
if (l_HIO.m0004 >= 0) {
|
|
mDoHIO_root.mDoHIO_deleteChild(l_HIO.m0004);
|
|
l_HIO.m0004 = -1;
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
/* 00003070-0000315C .text daTbox_Create__FP10fopAc_ac_c */
|
|
s32 daTbox_Create(fopAc_ac_c* i_actor) {
|
|
static const u32 heapsize_tbl[] = {
|
|
0x2E40,
|
|
0x2D7C,
|
|
0x2E40,
|
|
0x2D80
|
|
};
|
|
|
|
static const u32 opensize_tbl[] = {
|
|
0x14C0,
|
|
0x14E0,
|
|
0x14C0,
|
|
0x14C0
|
|
};
|
|
|
|
daTbox_c* tbox = static_cast<daTbox_c*>(i_actor);
|
|
s32 result;
|
|
|
|
fopAcM_SetupActor(tbox, daTbox_c);
|
|
|
|
result = dComIfG_resLoad(&tbox->mPhs, "Dalways");
|
|
|
|
if (result == cPhs_COMPLEATE_e) {
|
|
tbox->mRoomNo = tbox->orig.angle.x & 0x3F;
|
|
|
|
u32 shapeType = tbox->getShapeType();
|
|
u32 heapSize = heapsize_tbl[shapeType];
|
|
|
|
if (tbox->checkOpen() == FALSE) {
|
|
heapSize += opensize_tbl[shapeType];
|
|
}
|
|
|
|
u32 heapResult = fopAcM_entrySolidHeap(i_actor, (heapCallbackFunc)CheckCreateHeap, heapSize);
|
|
if ((heapResult & 0xFF) == 0) {
|
|
return cPhs_ERROR_e;
|
|
}
|
|
else {
|
|
tbox->CreateInit();
|
|
tbox->mAttentionInfo.mFlags = fopAc_Attn_ACTION_TREASURE_e;
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
/* 0000315C-000032F0 .text __ct__8daTbox_cFv */
|
|
daTbox_c::daTbox_c() {
|
|
|
|
}
|
|
|
|
/* 000039E4-00003A2C .text __dt__12daTbox_HIO_cFv */
|
|
daTbox_HIO_c::~daTbox_HIO_c() {
|
|
|
|
}
|
|
|
|
static actor_method_class l_daTbox_Method = {
|
|
(process_method_func)daTbox_Create,
|
|
(process_method_func)daTbox_Delete,
|
|
(process_method_func)daTbox_Execute,
|
|
(process_method_func)daTbox_IsDelete,
|
|
(process_method_func)daTbox_Draw,
|
|
};
|
|
|
|
actor_process_profile_definition g_profile_TBOX = {
|
|
fpcLy_CURRENT_e,
|
|
7,
|
|
fpcPi_CURRENT_e,
|
|
PROC_TBOX,
|
|
&g_fpcLf_Method.mBase,
|
|
sizeof(daTbox_c),
|
|
0,
|
|
0,
|
|
&g_fopAc_Method.base,
|
|
0x0113,
|
|
&l_daTbox_Method,
|
|
fopAcStts_UNK40000_e | fopAcStts_UNK4000_e,
|
|
fopAc_ACTOR_e,
|
|
fopAc_CULLBOX_CUSTOM_e,
|
|
};
|