/** * d_a_obj_adnno.cpp * Object - Unused - Triforce prayer mural */ #include "d/dolzel_rel.h" // IWYU pragma: keep #include "d/actor/d_a_obj_adnno.h" #include "res/Object/Adnno.h" #include "f_op/f_op_actor_mng.h" #include "JSystem/JUtility/JUTAssert.h" #include "d/d_bg_w.h" #include "d/d_com_inf_game.h" #include "m_Do/m_Do_ext.h" #include "m_Do/m_Do_mtx.h" static const u32 daObjAdnno_bmt_table[16] = { dRes_INDEX_ADNNO_BMT_ADNNO_00_e, dRes_INDEX_ADNNO_BMT_ADNNO_01_e, dRes_INDEX_ADNNO_BMT_ADNNO_02_e, dRes_INDEX_ADNNO_BMT_ADNNO_03_e, dRes_INDEX_ADNNO_BMT_ADNNO_04_e, dRes_INDEX_ADNNO_BMT_ADNNO_05_e, dRes_INDEX_ADNNO_BMT_ADNNO_06_e, dRes_INDEX_ADNNO_BMT_ADNNO_07_e, dRes_INDEX_ADNNO_BMT_ADNNO_08_e, dRes_INDEX_ADNNO_BMT_ADNNO_09_e, dRes_INDEX_ADNNO_BMT_ADNNO_10_e, dRes_INDEX_ADNNO_BMT_ADNNO_11_e, dRes_INDEX_ADNNO_BMT_ADNNO_12_e, dRes_INDEX_ADNNO_BMT_ADNNO_13_e, dRes_INDEX_ADNNO_BMT_ADNNO_14_e, dRes_INDEX_ADNNO_BMT_ADNNO_15_e, }; /* 00000078-00000098 .text CheckCreateHeap__FP10fopAc_ac_c */ static BOOL CheckCreateHeap(fopAc_ac_c* i_this) { return ((daObjAdnno_c*)i_this)->CreateHeap(); } /* 00000098-00000178 .text CreateHeap__12daObjAdnno_cFv */ BOOL daObjAdnno_c::CreateHeap() { J3DModelData* modelData = (J3DModelData*)(dComIfG_getObjectRes("Adnno", dRes_INDEX_ADNNO_BDL_ADNNO_e)); JUT_ASSERT(DEMO_SELECT(91, 92), modelData != NULL); for (s32 i = 0; i < 16; i++) { mpModel[i] = mDoExt_J3DModel__create(modelData, 0x80000, 0x37441422); if (!mpModel[i]) return FALSE; } return TRUE; } /* 00000178-000001E8 .text CreateInit__12daObjAdnno_cFv */ void daObjAdnno_c::CreateInit() { fopAcM_SetMtx(this, mpModel[0]->getBaseTRMtx()); fopAcM_setCullSizeBox(this, -600.0f, -0.0f, -600.0f, 600.0f, 900.0f, 600.0f); fopAcM_setCullSizeFar(this, 1.0f); set_mtx(); } /* 000001E8-00000330 .text set_mtx__12daObjAdnno_cFv */ void daObjAdnno_c::set_mtx() { for (int i = 0; i < 16; i++) { J3DModel * model = mpModel[i]; model->setBaseScale(scale); mDoMtx_stack_c::transS(current.pos); mDoMtx_stack_c::YrotM(current.angle.y); mDoMtx_stack_c::transM( (int)(i % 4) * 40.0f - 60.0f, 60.0f - (int)(i / 4) * 40.0f, 0.0f ); mpModel[i]->setBaseTRMtx(mDoMtx_stack_c::get()); } } cPhs_State daObjAdnno_c::_create() { fopAcM_ct(this, daObjAdnno_c); cPhs_State ret = dComIfG_resLoad(&mPhs, "Adnno"); if (ret == cPhs_COMPLEATE_e) { if (fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x9C00) == 0) { ret = cPhs_ERROR_e; } else { CreateInit(); } } return ret; } bool daObjAdnno_c::_delete() { dComIfG_resDeleteDemo(&mPhs, "Adnno"); return true; } bool daObjAdnno_c::_execute() { set_mtx(); return true; } static const u16 daObjAdnno_event_bit_table[16] = { dSv_event_flag_c::LITHOGRAPH_1, dSv_event_flag_c::LITHOGRAPH_2, dSv_event_flag_c::LITHOGRAPH_3, dSv_event_flag_c::LITHOGRAPH_4, dSv_event_flag_c::LITHOGRAPH_5, dSv_event_flag_c::LITHOGRAPH_6, dSv_event_flag_c::LITHOGRAPH_7, dSv_event_flag_c::LITHOGRAPH_8, dSv_event_flag_c::LITHOGRAPH_9, dSv_event_flag_c::LITHOGRAPH_10, dSv_event_flag_c::UNK_3602, dSv_event_flag_c::UNK_3601, dSv_event_flag_c::UNK_3780, dSv_event_flag_c::UNK_3740, dSv_event_flag_c::UNK_3720, dSv_event_flag_c::UNK_3710, }; bool daObjAdnno_c::_draw() { dComIfGd_setListBG(); for (s32 i = 0; i < 16; i++) { if (dComIfGs_isEventBit(daObjAdnno_event_bit_table[i])) { mpModel[i]->getModelData()->setMaterialTable( (J3DMaterialTable*)dComIfG_getObjectRes("Adnno", daObjAdnno_bmt_table[i]), J3DMatCopyFlag_All ); mDoExt_modelUpdateDL(mpModel[i]); } } dComIfGd_setList(); return true; } /* 00000330-000003D4 .text daObjAdnno_Create__FPv */ static cPhs_State daObjAdnno_Create(void* i_this) { return ((daObjAdnno_c*)i_this)->_create(); } /* 000003D4-00000404 .text daObjAdnno_Delete__FPv */ static BOOL daObjAdnno_Delete(void* i_this) { return ((daObjAdnno_c*)i_this)->_delete(); } /* 00000404-000004F8 .text daObjAdnno_Draw__FPv */ static BOOL daObjAdnno_Draw(void* i_this) { return ((daObjAdnno_c*)i_this)->_draw(); } /* 000004F8-0000051C .text daObjAdnno_Execute__FPv */ static BOOL daObjAdnno_Execute(void* i_this) { return ((daObjAdnno_c*)i_this)->_execute(); } /* 0000051C-00000524 .text daObjAdnno_IsDelete__FPv */ static BOOL daObjAdnno_IsDelete(void* i_this) { return TRUE; } static actor_method_class daObj_AdnnoMethodTable = { (process_method_func)daObjAdnno_Create, (process_method_func)daObjAdnno_Delete, (process_method_func)daObjAdnno_Execute, (process_method_func)daObjAdnno_IsDelete, (process_method_func)daObjAdnno_Draw, }; actor_process_profile_definition g_profile_Obj_Adnno = { /* Layer ID */ fpcLy_CURRENT_e, /* List ID */ 0x0007, /* List Prio */ fpcPi_CURRENT_e, /* Proc Name */ fpcNm_Obj_Adnno_e, /* Proc SubMtd */ &g_fpcLf_Method.base, /* Size */ sizeof(daObjAdnno_c), /* Size Other */ 0, /* Parameters */ 0, /* Leaf SubMtd */ &g_fopAc_Method.base, /* Draw Prio */ fpcDwPi_Obj_Adnno_e, /* Actor SubMtd */ &daObj_AdnnoMethodTable, /* Status */ fopAcStts_NOCULLEXEC_e | fopAcStts_CULL_e | fopAcStts_UNK40000_e, /* Group */ fopAc_ACTOR_e, /* Cull Type */ fopAc_CULLBOX_CUSTOM_e, };