From e6d2a369874d5f716fe46bafe2e2048ec7880e27 Mon Sep 17 00:00:00 2001 From: SuperDude88 <82904174+SuperDude88@users.noreply.github.com> Date: Thu, 21 Sep 2023 22:18:57 -0400 Subject: [PATCH] daShopItem_c "OK" Functions and data matching d_a_shop_item.cpp still breaks checksum, probably from weak functions/vtables that need to be placed earlier --- configure.py | 2 +- include/d/actor/d_a_shop_item.h | 48 +++ include/d/d_cloth_packet.h | 2 +- include/m_Do/m_Do_lib.h | 7 +- src/SSystem/SComponent/c_xyz.cpp | 4 +- src/d/actor/d_a_shop_item.cpp | 88 ++--- src/d/d_a_shop_item_static.cpp | 549 ++++++++++++++++++++++++++++++- 7 files changed, 618 insertions(+), 82 deletions(-) create mode 100644 include/d/actor/d_a_shop_item.h diff --git a/configure.py b/configure.py index 87e679be8..98dd063d0 100644 --- a/configure.py +++ b/configure.py @@ -345,7 +345,7 @@ config.libs = [ Object(NonMatching, "d/d_a_mgameboard_static.cpp"), Object(NonMatching, "d/d_a_itembase_static.cpp"), Object(NonMatching, "d/d_a_item_static.cpp"), - Object(NonMatching, "d/d_a_shop_item_static.cpp"), + Object(Matching, "d/d_a_shop_item_static.cpp"), Object(NonMatching, "d/d_a_race_item_static.cpp"), Object(NonMatching, "d/d_a_leaflift_static.cpp"), Object(NonMatching, "d/d_demo.cpp"), diff --git a/include/d/actor/d_a_shop_item.h b/include/d/actor/d_a_shop_item.h new file mode 100644 index 000000000..0c375c341 --- /dev/null +++ b/include/d/actor/d_a_shop_item.h @@ -0,0 +1,48 @@ +#ifndef D_A_SHOP_ITEM_H +#define D_A_SHOP_ITEM_H + +#include "d/actor/d_a_itembase.h" +#include "d/d_cloth_packet.h" + +struct daShopItem_c_m_data { + /* 0x00 */ Vec mScale; + /* 0x0C */ Vec field_0x0C; + /* 0x18 */ SVec field_0x18; +}; + +struct daShopItem_c : public daItemBase_c { + char* getShopArcname(); + s16 getShopBmdIdx(); + void CreateInit(); + int _create(); + bool _execute(); + void set_mtx(); + bool _draw(); + + //virtual funcs + void setListStart() {} + void settingBeforeDraw(); + void setTevStr(); + s32 clothCreate(); + + //funcs in d_a_shop_item_static + cXyz* getScaleP(); + csXyz* getRotateP(); + cXyz* getPosP(); + cXyz getCenter(); + + const daShopItem_c_m_data* getData() { return mData; } + + static const char m_cloth_arcname[]; + static const f32 m_cullfar_max; + static const u8 mModelType[256]; + static const daShopItem_c_m_data mData[255]; + + /* 0x63C */ request_of_phase_process_class field_0x63C; + /* 0x644 */ dCloth_packet_c* field_0x644; + /* 0x648 */ u8 field_0x648; + /* 0x64C */ Mtx field_0x64C; + /* 0x67C */ TevType tevType; +}; + +#endif /* D_A_SHOP_ITEM_H */ diff --git a/include/d/d_cloth_packet.h b/include/d/d_cloth_packet.h index e907d0240..83aebef59 100644 --- a/include/d/d_cloth_packet.h +++ b/include/d/d_cloth_packet.h @@ -47,7 +47,7 @@ public: virtual void TexObjLoad(); virtual void TevSetting(); - void setScale(cXyz scale); + void setScale(cXyz scale) { mScale = scale; } void setMtx(Mtx mtx); }; // Size: 0xFC diff --git a/include/m_Do/m_Do_lib.h b/include/m_Do/m_Do_lib.h index 58d25435e..894aacdd5 100644 --- a/include/m_Do/m_Do_lib.h +++ b/include/m_Do/m_Do_lib.h @@ -44,8 +44,9 @@ u8 mDoLib_setResTimgObj(ResTIMG const* res, GXTexObj* o_texObj, u32 tlut_name, GXTlutObj* o_tlutObj); void mDoLib_pos2camera(Vec* src, Vec* dst); -inline u32 calcAlphaCmpID(u32 param_1, u32 param_2, u32 param_3) { - return ((param_1 & 0xff) << 5) + ((param_2 & 0xff) << 3) + (param_3 & 0xff); -} +// was causing redefinition issues +//inline u32 calcAlphaCmpID(u32 param_1, u32 param_2, u32 param_3) { +// return ((param_1 & 0xff) << 5) + ((param_2 & 0xff) << 3) + (param_3 & 0xff); +//} #endif /* M_DO_M_DO_LIB_H */ diff --git a/src/SSystem/SComponent/c_xyz.cpp b/src/SSystem/SComponent/c_xyz.cpp index 5f2cac9e8..3121db388 100644 --- a/src/SSystem/SComponent/c_xyz.cpp +++ b/src/SSystem/SComponent/c_xyz.cpp @@ -150,6 +150,6 @@ bool cXyz::operator!=(const Vec& vec) const { /* 80245CE4-80245D48 .text isZero__4cXyzCFv */ bool cXyz::isZero(void) const { - return fabsf(this->x) < 3.814697e-06f && fabsf(this->y) < 3.814697e-06f && - fabsf(this->z) < 3.814697e-06f; + return fabsf(this->x) < 3.8146972e-06f && fabsf(this->y) < 3.8146972e-06f && + fabsf(this->z) < 3.8146972e-06f; } diff --git a/src/d/actor/d_a_shop_item.cpp b/src/d/actor/d_a_shop_item.cpp index bbe154a0d..78fa1bda2 100644 --- a/src/d/actor/d_a_shop_item.cpp +++ b/src/d/actor/d_a_shop_item.cpp @@ -3,6 +3,7 @@ // Translation Unit: d_a_shop_item.cpp // +#include "d/actor/d_a_shop_item.h" #include "f_op/f_op_actor_mng.h" #include "JSystem/JKernel/JKRHeap.h" #include "d/d_procname.h" @@ -10,47 +11,10 @@ #include "d/d_s_play.h" #include "d/d_item.h" #include "d/d_item_data.h" -#include "d/actor/d_a_itembase.h" #include "d/actor/d_a_itembase_static.h" -#include "d/d_cloth_packet.h" #include "m_Do/m_Do_mtx.h" #include "m_Do/m_Do_lib.h" -struct daShopItem_c_m_data { - /* 0x00 */ cXyz mScale; - /* 0x0C */ cXyz field_0x0C; - /* 0x18 */ csXyz field_0x18; -}; - -struct daShopItem_c : public daItemBase_c { - char* getShopArcname(); - s16 getShopBmdIdx(); - void CreateInit(); - int _create(); - bool _execute(); - void set_mtx(); - bool _draw(); - - //virtual funcs - void setListStart() {} - void settingBeforeDraw(); - void setTevStr(); - s32 clothCreate(); - - daShopItem_c_m_data* getData() { return mData; } - - static const char m_cloth_arcname[]; - static const f32 m_cullfar_max; - static u8 mModelType[256]; - static daShopItem_c_m_data mData[256]; - - /* 0x63C */ request_of_phase_process_class field_0x63C; - /* 0x644 */ dCloth_packet_c* field_0x644; - /* 0x648 */ u8 field_0x648; - /* 0x64C */ Mtx field_0x64C; - /* 0x67C */ TevType tevType; -}; - const char daShopItem_c::m_cloth_arcname[] = "Cloth"; const f32 daShopItem_c::m_cullfar_max = 5000.0f; @@ -132,30 +96,32 @@ s32 daShopItem_c::clothCreate() { } void daShopItem_c::set_mtx() { - /* Nonmatching */ mModel->setBaseScale(mScale); - mDoMtx_stack_c::transM(current.pos.x, current.pos.y, current.pos.z); - mDoMtx_stack_c::XYZrotM(current.angle.x, current.angle.y, current.angle.z); + MTXTrans(mDoMtx_stack_c::get(), current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::ZXYrotM(current.angle.x, current.angle.y, current.angle.z); MTXCopy(mDoMtx_stack_c::get(), field_0x64C); - cXyz* temp = &getData()[m_itemNo].field_0x0C; - mDoMtx_stack_c::transM(temp->x, temp->y, temp->z); - csXyz* temp2 = &getData()[m_itemNo].field_0x18; - mDoMtx_stack_c::XYZrotM(temp2->x, temp2->y, temp2->z); - MTXCopy(mDoMtx_stack_c::get(), mModel->getBaseTRMtx()); //mDoMtx_stack_c is loading too late + const Vec& temp1 = getData()[m_itemNo].field_0x0C; + mDoMtx_stack_c::transM(temp1.x, temp1.y, temp1.z); + const SVec& temp2 = getData()[m_itemNo].field_0x18; + mDoMtx_stack_c::ZXYrotM(temp2.x, temp2.y, temp2.z); + MTXCopy(mDoMtx_stack_c::get(), mModel->mBaseTransformMtx); if(field_0x644 != 0) { - //no clue what is actually happening here, commented stuff is to make .rodata less broken - f32 y1 = g_regHIO.mChild[8].mFloats[7] + 94.0f; - f32 y2 = g_regHIO.mChild[8].mFloats[7] + 97.5f; - //Vec local[4] = { - // {0.0f, y1, 0.0f}, - // {0.0f, y1, 0.0f}, - // {0.0f, y2, 0.0f}, - // {0.0f, y1, 0.0f} - //}; + // I have no clue why Nintendo would do this but it works + cXyz local[4]; + cXyz local2[4]; - //mDoMtx_stack_c::transM(local[field_0x648].x, local[field_0x648].y, local[field_0x648].z); + local2[3].set(0.0f, g_regHIO.mChild[10].mFloatRegs[15] + 94.0f, 0.0f); + local[0].set(0.0f, g_regHIO.mChild[10].mFloatRegs[15] + 94.0f, 0.0f); + local2[2].set(0.0f, g_regHIO.mChild[10].mFloatRegs[15] + 94.0f, 0.0f); + local[1].set(0.0f, g_regHIO.mChild[10].mFloatRegs[15] + 94.0f, 0.0f); + local2[1].set(0.0f, g_regHIO.mChild[10].mFloatRegs[15] + 97.5f, 0.0f); + local[2].set(0.0f, g_regHIO.mChild[10].mFloatRegs[15] + 97.5f, 0.0f); + local2[0].set(0.0f, g_regHIO.mChild[10].mFloatRegs[15] + 94.0f, 0.0f); + local[3].set(0.0f, g_regHIO.mChild[10].mFloatRegs[15] + 94.0f, 0.0f); + + mDoMtx_stack_c::transM(local[field_0x648]); mDoMtx_stack_c::YrotM(0x4000); field_0x644->setScale(mScale); field_0x644->setMtx(mDoMtx_stack_c::get()); @@ -214,7 +180,7 @@ int daShopItem_c::_create() { } arcName = getShopArcname(); - int result = dComIfG_resLoad(&this->mPhs, arcName); + int result = dComIfG_resLoad(&mPhs, arcName); if(result != cPhs_COMPLEATE_e) { return result; } @@ -252,7 +218,7 @@ int daShopItem_c::_create() { return result; } -static int daShopItem_Delete(void* i_this) { +static BOOL daShopItem_Delete(void* i_this) { daShopItem_c* inst = static_cast(i_this); if(isUseClothPacket(inst->m_itemNo)) { @@ -263,16 +229,16 @@ static int daShopItem_Delete(void* i_this) { return 1; } -int daShopItem_Draw(void* i_this) { +static BOOL daShopItem_Draw(void* i_this) { return static_cast(i_this)->_draw(); } -int daShopItem_Execute(void* i_this) { +static BOOL daShopItem_Execute(void* i_this) { return static_cast(i_this)->_execute(); } -int daShopItem_IsDelete(void*) { - return 1; +static bool daShopItem_IsDelete(void*) { + return true; } static actor_method_class daShopItemMethodTable = { diff --git a/src/d/d_a_shop_item_static.cpp b/src/d/d_a_shop_item_static.cpp index e2844bf48..3604b2497 100644 --- a/src/d/d_a_shop_item_static.cpp +++ b/src/d/d_a_shop_item_static.cpp @@ -3,26 +3,547 @@ // Translation Unit: d_a_shop_item_static.cpp // -#include "d_a_shop_item_static.h" -#include "dolphin/types.h" +#include "d/actor/d_a_shop_item.h" +#include "d/d_item_data.h" -/* 800689F0-800689F8 .text getScaleP__12daShopItem_cFv */ -void daShopItem_c::getScaleP() { - /* Nonmatching */ +const daShopItem_c_m_data daShopItem_c::mData[255] = { + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{0.7f, 0.7f, 0.7f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.5f, 1.5f, 1.5f}, {2.0f, 30.0f, 0.0f}, {0, 0, 0}}, + {{1.5f, 1.5f, 1.5f}, {2.0f, 30.0f, 0.0f}, {0, 0, 0}}, + {{1.5f, 1.5f, 1.5f}, {2.0f, 30.0f, 0.0f}, {0, 0, 0}}, + {{1.5f, 1.5f, 1.5f}, {2.0f, 30.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 00.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 0.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{0.65f, 0.65f, 0.65f}, {0.0f, -11.0f, 0.0f}, {0, 0, 0}}, + {{0.65f, 0.65f, 0.65f}, {0.0f, -11.0f, 0.0f}, {0, 0, 0}}, + {{0.65f, 0.65f, 0.65f}, {0.0f, -11.0f, 0.0f}, {0, 0, 0}}, + {{0.5f, 0.5f, 0.5f}, {0.0f, -11.0f, 0.0f}, {0, 0, 0}}, + {{0.5f, 0.5f, 0.5f}, {0.0f, -11.0f, 0.0f}, {0, 0, 0}}, + {{0.5f, 0.5f, 0.5f}, {0.0f, -11.0f, 0.0f}, {0, 0, 0}}, + {{0.65f, 0.65f, 0.65f}, {0.0f, -11.0f, 0.0f}, {0, 0, 0}}, + {{0.5f, 0.5f, 0.5f}, {0.0f, -11.0f, 0.0f}, {0, 0, 0}}, + {{0.5f, 0.5f, 0.5f}, {0.0f, -11.0f, 0.0f}, {0, 0, 0}}, + {{0.65f, 0.65f, 0.65f}, {0.0f, -11.0f, 0.0f}, {0, 0, 0}}, + {{0.65f, 0.65f, 0.65f}, {0.0f, -11.0f, 0.0f}, {0, 0, 0}}, + {{0.5f, 0.5f, 0.5f}, {0.0f, -11.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, + {{1.0f, 1.0f, 1.0f}, {0.0f, 20.0f, 0.0f}, {0, 0, 0}}, +}; +const u8 daShopItem_c::mModelType[256] = { + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0 +}; + +cXyz* daShopItem_c::getScaleP() { + return &mScale; } -/* 800689F8-80068A00 .text getRotateP__12daShopItem_cFv */ -void daShopItem_c::getRotateP() { - /* Nonmatching */ +csXyz* daShopItem_c::getRotateP() { + return ¤t.angle; } -/* 80068A00-80068A08 .text getPosP__12daShopItem_cFv */ -void daShopItem_c::getPosP() { - /* Nonmatching */ +cXyz* daShopItem_c::getPosP() { + return ¤t.pos; } -/* 80068A08-80068A58 .text getCenter__12daShopItem_cFv */ -void daShopItem_c::getCenter() { - /* Nonmatching */ +cXyz daShopItem_c::getCenter() { + f32 height; + if(FLOWER_1 <= m_itemNo && m_itemNo <= PRESIDENT_STATUE) { + height = 80.0f; + } + else { + height = 40.0f; + } + + cXyz ret(0.0f, height / 2.0f, 0.0f); + return ret; }