summaryrefslogtreecommitdiff
path: root/src/d/d_a_itembase_static.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/d/d_a_itembase_static.cpp')
-rw-r--r--src/d/d_a_itembase_static.cpp87
1 files changed, 87 insertions, 0 deletions
diff --git a/src/d/d_a_itembase_static.cpp b/src/d/d_a_itembase_static.cpp
new file mode 100644
index 0000000000..48a9bc6ecd
--- /dev/null
+++ b/src/d/d_a_itembase_static.cpp
@@ -0,0 +1,87 @@
+/**
+ * d_a_itembase_static.cpp
+ *
+ */
+
+#include "d/d_a_itembase_static.h"
+#include "SSystem/SComponent/c_lib.h"
+#include "d/actor/d_a_itembase.h"
+#include "d/d_item_data.h"
+
+u8 daItemBase_c::getItemNo() {
+ return m_itemNo;
+}
+
+void daItemBase_c::hide() {
+ cLib_offBit<u8>(field_0x92b, 1);
+}
+
+void daItemBase_c::show() {
+ cLib_onBit<u8>(field_0x92b, 1);
+}
+
+void daItemBase_c::changeDraw() {
+ if (chkDraw()) {
+ hide();
+ } else {
+ show();
+ }
+}
+
+u8 daItemBase_c::chkDraw() {
+ return cLib_checkBit<u8>(field_0x92b, 1) != 0;
+}
+
+void daItemBase_c::dead() {
+ cLib_onBit<u8>(field_0x92b, 2);
+}
+
+u8 daItemBase_c::chkDead() {
+ return cLib_checkBit<u8>(field_0x92b, 2) != 0;
+}
+
+/* 80037B0C-80037B78 03244C 006C+00 0/0 0/0 1/1 .text CheckItemCreateHeap__FP10fopAc_ac_c
+ */
+int CheckItemCreateHeap(fopAc_ac_c* i_this) {
+ daItemBase_c* a_this = static_cast<daItemBase_c*>(i_this);
+
+ u8 item_no = a_this->getItemNo();
+ return a_this->CreateItemHeap(dItem_data::getArcName(item_no), dItem_data::getBmdName(item_no),
+ dItem_data::getBtkName(item_no), dItem_data::getBpkName(item_no),
+ dItem_data::getBckName(item_no), dItem_data::getBxaName(item_no),
+ dItem_data::getBrkName(item_no), dItem_data::getBtpName(item_no));
+}
+
+/* 80037B78-80037BE0 0324B8 0068+00 0/0 1/1 7/7 .text CheckFieldItemCreateHeap__FP10fopAc_ac_c */
+int CheckFieldItemCreateHeap(fopAc_ac_c* i_this) {
+ daItemBase_c* a_this = static_cast<daItemBase_c*>(i_this);
+
+ u8 item_no = a_this->getItemNo();
+ return a_this->CreateItemHeap(
+ dItem_data::getFieldArc(item_no), dItem_data::getItemBmdName(item_no),
+ dItem_data::getItemBtkName(item_no), dItem_data::getItemBpkName(item_no),
+ dItem_data::getItemBckName(item_no), dItem_data::getItemBxaName(item_no),
+ dItem_data::getItemBrkName(item_no), dItem_data::getItemBtpName(item_no));
+}
+
+/* 803792B0-803792E8 005910 0038+00 0/0 1/1 0/0 .rodata m_data__12daItemBase_c */
+const daItemBase_data daItemBase_c::m_data = {
+ -4.5f, // mGravity
+ 0.62f, // mGroundReflect
+ 45.0f, // mLaunchSpeed
+ 10.0f, // mScalingTime
+ 6.0f, // mSpeedH
+ 1, // mFlashCycleTime
+ 240, // mWaitTime
+ 60, // mDisappearTime
+ 4000, // mRotateXSpeed
+ 120, // mRotateYSpeed
+ -4.0f, // mHeartFallSpeed
+ 3.5f, // mHeartAmplitude
+ 1100, // mHeartFallCycleTime
+ 3000, // mHeartTilt
+ 23.0f, // mGetDemoLaunchSpeed
+ -6.0f, // mGetDemoGravity
+ 13, // mSimpleExistTime
+ 10, // mNoGetTime
+}; \ No newline at end of file