mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-05-26 15:24:30 -04:00
0ff06d2974
* Fix missing arg to JUT_ASSERT * Fix some MWCC version diff errors * Compile m_Do_ext, d_demo, actor_mng * Add VSCode task to quickly switch between versions * Unlink magLift for debug * Update the hash of the debug dol The old cbea5fa... hash here was for the dol generated by the alf2dol.py script, which produces incorrect alignment. The dol with the new hash can be obtained by using `dtk elf2dol` to convert the debug .alf file to a dol. The DOL now builds OK. * Fix all debug REL dtor splits All RELs now also build OK, meaning `ninja build/ShieldD/ok` now succeeds. * Add genMessage declarations to all HIO subclasses * Fixing more compilation errors * m_Do_mtx 100% on debug Cannot be linked due to weak function name mangling? * Improve various matches * Fix all remaining compilation errors * Fix new compilation errors from main * Fix retail regression * Link f_pc_profile_lst
2656 lines
93 KiB
C++
2656 lines
93 KiB
C++
//
|
|
// Generated By: dol2asm
|
|
// Translation Unit: d/d_msg_object
|
|
//
|
|
|
|
#define DISABLE_MSG_OBJECT_EXTERN
|
|
|
|
#include "d/d_msg_object.h"
|
|
#include "d/d_msg_class.h"
|
|
#include "d/d_msg_string.h"
|
|
#include "d/d_msg_scrn_base.h"
|
|
#include "d/d_msg_out_font.h"
|
|
#include "d/d_msg_scrn_howl.h"
|
|
#include "d/d_msg_scrn_jimaku.h"
|
|
#include "d/d_msg_scrn_tree.h"
|
|
#include "d/d_msg_scrn_kanban.h"
|
|
#include "d/d_msg_scrn_item.h"
|
|
#include "d/d_msg_scrn_staff.h"
|
|
#include "d/d_msg_scrn_place.h"
|
|
#include "d/d_msg_scrn_boss.h"
|
|
#include "d/d_msg_scrn_talk.h"
|
|
#include "d/actor/d_a_obj_ss_base.h"
|
|
#include "d/actor/d_a_player.h"
|
|
#include "d/actor/d_a_alink.h"
|
|
#include "d/d_demo.h"
|
|
#include "d/d_meter2_info.h"
|
|
#include "d/d_meter2.h"
|
|
#include "d/actor/d_a_midna.h"
|
|
#include "f_op/f_op_msg_mng.h"
|
|
#include "stdio.h"
|
|
#include "m_Do/m_Do_controller_pad.h"
|
|
#include "m_Do/m_Do_lib.h"
|
|
#include "JSystem/JKernel/JKRExpHeap.h"
|
|
#include "dol2asm.h"
|
|
|
|
static void dMsgObject_addFundRaising(s16 param_0);
|
|
static void dMsgObject_addTotalPayment(s16 param_0);
|
|
|
|
/* 804510C8-804510D0 0005C8 0002+06 5/4 0/0 0/0 .sbss s_groupID */
|
|
static s16 s_groupID;
|
|
|
|
/* 80232A3C-80232A44 -00001 0008+00 0/0 0/0 0/0 .text dMsgObject_getGroupID__Fv */
|
|
s16 dMsgObject_getGroupID() {
|
|
return s_groupID;
|
|
}
|
|
|
|
/* 80232A44-80232AEC 22D384 00A8+00 1/1 0/0 0/0 .text dMsgObject_searchSSItem__FPvPv */
|
|
static int dMsgObject_searchSSItem(void* param_1, void* param_2) {
|
|
daPy_py_c* player = daPy_getPlayerActorClass();
|
|
if (fopAcM_IsActor(param_1) && fopAcM_GetName(param_1) == PROC_OBJ_SSITEM) {
|
|
if (static_cast<daObj_SSBase_c*>(param_1)->getProcessID() == player->getGrabActorID()) {
|
|
static_cast<daObj_SSBase_c*>(param_1)->setSoldOut();
|
|
return 0;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
/* 80232AEC-80232D6C 22D42C 0280+00 1/1 0/0 0/0 .text __ct__20dMsgObject_HowlHIO_cFv */
|
|
dMsgObject_HowlHIO_c::dMsgObject_HowlHIO_c() {
|
|
mHighlightScale = 0.5f;
|
|
mHighlightMoyaR0.set(255, 255, 255, 255);
|
|
mHighlightMoyaR1.set(0, 0, 0, 0);
|
|
mHighlightMoyabsR0.set(200, 255, 200, 255);
|
|
mHighlightMoyabsR1.set(0, 255, 128, 0);
|
|
mHighlightPikaR0.set(0, 0, 0, 0);
|
|
mHighlightPikaR1.set(0, 0, 0, 0);
|
|
mAnmSpeed = 0.1f;
|
|
mHowlLineStartCol.set(150, 255, 210, 255);
|
|
mHowlLineEndCol.set(128, 128, 128, 255);
|
|
mGuideUpperBlack.set(0, 105, 150, 0);
|
|
mGuideUpperWhite.set(255, 255, 255, 255);
|
|
mGuideUpperAlpha = 0.3f;
|
|
mGuideMidBlack.set(0, 105, 130, 0);
|
|
mGuideMidWhite.set(255, 255, 255, 255);
|
|
mGuideMidAlpha = 0.3f;
|
|
mGuideLowerBlack.set(0, 90, 150, 0);
|
|
mGuideLowerWhite.set(255, 255, 255, 255);
|
|
mGuideLowerAlpha = 0.4f;
|
|
mAnswerUpperBlack.set(255, 255, 140, 0);
|
|
mAnswerUpperWhite.set(255, 255, 255, 255);
|
|
mAnswerUpperAlpha = 0.05f;
|
|
mAnswerMidBlack.set(255, 255, 140, 0);
|
|
mAnswerMidWhite.set(255, 255, 255, 255);
|
|
mAnswerMidAlpha = 0.05f;
|
|
mAnswerLowerBlack.set(255, 255, 140, 0);
|
|
mAnswerLowerWhite.set(255, 255, 255, 255);
|
|
mAnswerLowerAlpha = 0.05f;
|
|
mDotBlack.set(150, 210, 255, 0);
|
|
mDotWhite.set(255, 255, 255, 255);
|
|
mDotScale = 1.5f;
|
|
mWaveformLineLen = 15;
|
|
mWaveformDotLen = 35;
|
|
mDrawInterval = 2.0f;
|
|
mLineThickness = 0.5f;
|
|
mCrossPosX = 0.0f;
|
|
mCrossPosY = 0.0f;
|
|
mCrossScale = 1.0f;
|
|
mWindowPosX = 0.0f;
|
|
mWindowPosY = 0.0f;
|
|
mWindowScale = 1.0f;
|
|
mInputStartPoint = 0.0f;
|
|
mWaveformThickness = 12;
|
|
mLineSpaceOffset = 2.2f;
|
|
}
|
|
|
|
/* 80232D6C-80233284 22D6AC 0518+00 1/1 0/0 0/0 .text __ct__16dMsgObject_HIO_cFv */
|
|
dMsgObject_HIO_c::dMsgObject_HIO_c() {
|
|
mBoxMidna_fontSizeX = 23.0f;
|
|
mBoxMidna_fontSizeY = 22.0f;
|
|
field_0xc = 26.0f;
|
|
field_0x14 = 25.0f;
|
|
field_0x3c = 1.0f;
|
|
mBoxNaviAnmSpeed = 1.0f;
|
|
field_0x44 = 1.0f;
|
|
mBoxItemAnmSpeed = 1.0f;
|
|
field_0x4c = 1.0f;
|
|
field_0x50 = 1.0f;
|
|
field_0x54 = 1.0f;
|
|
mBoxWolfAnmSpeed = 0.7f;
|
|
mBoxTalkAlphaP = 0.9f;
|
|
mBoxNaviAlphaP = 0.2f;
|
|
mBoxMidnaAlphaP = 0.7f;
|
|
mBoxItemAlphaP = 0.3f;
|
|
mBoxStoneAlphaP = 0.4f;
|
|
mBoxWoodAlphaP = 0.4f;
|
|
mBoxBookAlphaP = 0.7f;
|
|
mBoxWolfAlphaP = 0.9f;
|
|
mSubtitleAlphaP = 1.0f;
|
|
mBoxItemHaloAlpha = 0.0f;
|
|
mBoxNaviHaloAlpha = 1.0f;
|
|
mBoxMidnaHaloAlpha = 1.0f;
|
|
mBoxWolfHaloAlpha = 0.3f;
|
|
mBoxTalkHaloAlpha = 1.0f;
|
|
mBoxTalkScaleX = 1.2f;
|
|
mBoxNaviScaleX = 1.0f;
|
|
mBoxMidnaScaleX = 1.0f;
|
|
mBoxItemScaleX = 1.05f;
|
|
mBoxStoneScaleX = 1.0f;
|
|
mBoxWoodScaleX = 1.0f;
|
|
mBoxBookScaleX = 1.0f;
|
|
mBoxWolfScaleX = 1.05f;
|
|
mStageTitleScaleX = 1.0f;
|
|
mSubtitleScaleX = 1.0f;
|
|
mBossNameScaleX = 1.0f;
|
|
mBoxTalkScaleY = 1.0f;
|
|
mBoxNaviScaleY = 1.0f;
|
|
mBoxMidnaScaleY = 1.0f;
|
|
mBoxItemScaleY = 0.97f;
|
|
mBoxStoneScaleY = 1.0f;
|
|
mBoxWoodScaleY = 1.0f;
|
|
mBoxBookScaleY = 1.0f;
|
|
mBoxWolfScaleY = 1.1f;
|
|
mStageTitleScaleY = 1.0f;
|
|
mSubtitleScaleY = 1.0f;
|
|
mBossNameScaleY = 1.0f;
|
|
for (int i = 0; i < 3; i++) {
|
|
for (int j = 0; j < 10; j++) {
|
|
mChoicePos[i][j] = 0.0f;
|
|
mBoxPos[i][j] = 0.0f;
|
|
}
|
|
}
|
|
mBoxPos[2][0] = 30.0f;
|
|
mBoxPos[0][3] = 11.0f;
|
|
mPortalIconScale = 1.7f;
|
|
mTextPosX = 4.5f;
|
|
mTextPosY = 0.0f;
|
|
mStageTitleCharPosX = 0.0f;
|
|
mStageTitleCharPosY = -45.0f;
|
|
mStageTitleCharSizeX = 1.0f;
|
|
mStageTitleCharSizeY = 1.0f;
|
|
mStageTitleBasePosX = 0.0f;
|
|
mStageTitleBasePosY = -45.0f;
|
|
mStageTitleBaseSizeX = 1.0f;
|
|
mStageTitleBaseSizeY = 1.0f;
|
|
mStageTitleBaseAlpha = 1.0f;
|
|
mBossNameCharPosX = 0.0f;
|
|
mBossNameCharPosY = 0.0f;
|
|
mBossNameCharSizeX = 1.0f;
|
|
mBossNameCharSizeY = 1.0f;
|
|
mBossNameBasePosX = 0.0f;
|
|
mBossNameBasePosY = 0.0f;
|
|
mBossNameBaseSizeX = 1.0f;
|
|
mBossNameBaseSizeY = 1.0f;
|
|
mBossNameBaseAlpha = 1.0f;
|
|
mStageTitleDisplayType = 0;
|
|
mBoxItemSizeX = 0.75f;
|
|
mBoxItemSizeY = 0.75f;
|
|
mBoxItemPosX = -5.0f;
|
|
mBoxItemPosY = -1.0f;
|
|
mBoxItemTextSizeX = 0.95f;
|
|
mBoxItemTextSizeY = 0.95f;
|
|
mBoxItemTextPosX = -30.0f;
|
|
mBoxItemTextPosY = -1.0f;
|
|
for (int i = 0; i < 10; i++) {
|
|
mBoxStartBlack[0][i].set(0, 0, 0, 0);
|
|
mBoxStartWhite[0][i].set(200, 200, 200, 255);
|
|
mBoxStartBlack[1][i].set(0, 0, 0, 0);
|
|
mBoxStartWhite[1][i].set(0, 0, 0, 255);
|
|
}
|
|
mSelMsgInactiveCol.set(150, 150, 150, 255);
|
|
mMsgIndex = 0;
|
|
mFlowIndex = 0;
|
|
mSaveSeqMsgIndex = 0;
|
|
mSelWaitFrame = 10;
|
|
mBoxAppearBound = 240;
|
|
mBoxAppearFrame = 10;
|
|
mWaitFrame = 0;
|
|
mLightAppearFrame = 10;
|
|
field_0x304 = 5;
|
|
mStageTitleFadeIn = 10;
|
|
mStageTitleFadeOut = 10;
|
|
mBossNameFadeIn = 10;
|
|
mBossNameFadeOut = 10;
|
|
mStageTitleDisplayTime = 60;
|
|
mBossNameDisplayTime = 60;
|
|
mMsgDebug = 0;
|
|
mSaveSeqMsgDebug = 0;
|
|
mBatchDisplayWeight_3 = 30;
|
|
mCharDisplayWeight_5 = 3;
|
|
mBatchDisplayWeight_8 = 10;
|
|
mBatchDisplayWeight_9 = 30;
|
|
mTextColorDebug = 0;
|
|
mTextColorUpperR[0] = 0xff;
|
|
mTextColorUpperG[0] = 0xff;
|
|
mTextColorUpperB[0] = 0xff;
|
|
mTextColorLowerR[0] = 0xff;
|
|
mTextColorLowerG[0] = 0xff;
|
|
mTextColorLowerB[0] = 0xff;
|
|
mTextColorUpperR[1] = 0xf0;
|
|
mTextColorUpperG[1] = 0x78;
|
|
mTextColorUpperB[1] = 0x78;
|
|
mTextColorLowerR[1] = 0xf0;
|
|
mTextColorLowerG[1] = 0x78;
|
|
mTextColorLowerB[1] = 0x78;
|
|
mTextColorUpperR[2] = 0xaa;
|
|
mTextColorUpperG[2] = 0xdc;
|
|
mTextColorUpperB[2] = 0x8c;
|
|
mTextColorLowerR[2] = 0xaa;
|
|
mTextColorLowerG[2] = 0xdc;
|
|
mTextColorLowerB[2] = 0x8c;
|
|
mTextColorUpperR[3] = 0xa0;
|
|
mTextColorUpperG[3] = 0xb4;
|
|
mTextColorUpperB[3] = 0xdc;
|
|
mTextColorLowerR[3] = 0xa0;
|
|
mTextColorLowerG[3] = 0xb4;
|
|
mTextColorLowerB[3] = 0xdc;
|
|
mTextColorUpperR[4] = 0xdc;
|
|
mTextColorUpperG[4] = 0xdc;
|
|
mTextColorUpperB[4] = 0x82;
|
|
mTextColorLowerR[4] = 0xdc;
|
|
mTextColorLowerG[4] = 0xdc;
|
|
mTextColorLowerB[4] = 0x82;
|
|
mTextColorUpperR[5] = 0xb4;
|
|
mTextColorUpperG[5] = 0xc8;
|
|
mTextColorUpperB[5] = 0xe6;
|
|
mTextColorLowerR[5] = 0xb4;
|
|
mTextColorLowerG[5] = 0xc8;
|
|
mTextColorLowerB[5] = 0xe6;
|
|
mTextColorUpperR[6] = 0xc8;
|
|
mTextColorUpperG[6] = 0xa0;
|
|
mTextColorUpperB[6] = 0xdc;
|
|
mTextColorLowerR[6] = 0xc8;
|
|
mTextColorLowerG[6] = 0xa0;
|
|
mTextColorLowerB[6] = 0xdc;
|
|
mTextColorUpperR[7] = 0xff;
|
|
mTextColorUpperG[7] = 0xff;
|
|
mTextColorUpperB[7] = 0xff;
|
|
mTextColorLowerR[7] = 0xff;
|
|
mTextColorLowerG[7] = 0xff;
|
|
mTextColorLowerB[7] = 0xff;
|
|
mTextColorUpperR[8] = 0xdc;
|
|
mTextColorUpperG[8] = 0xaa;
|
|
mTextColorUpperB[8] = 0x78;
|
|
mTextColorLowerR[8] = 0xdc;
|
|
mTextColorLowerG[8] = 0xaa;
|
|
mTextColorLowerB[8] = 0x78;
|
|
mHaloDelayFrame = 0;
|
|
mDisplaySpeed = 1;
|
|
mHaloDelayFrameSpirit = 0;
|
|
mDisplaySpeedSpirit = 4;
|
|
mMessageDisplay = 0;
|
|
mPikariHaloDelay_spirit = 0;
|
|
mPikariScale = 1.5f;
|
|
mPikariMoyaR0.r = 0xff;
|
|
mPikariMoyaR0.g = 0xff;
|
|
mPikariMoyaR0.b = 0xff;
|
|
mPikariMoyaR0.a = 0x14;
|
|
mPikariMoyaR1.r = 0xdc;
|
|
mPikariMoyaR1.g = 0xb0;
|
|
mPikariMoyaR1.b = 0x8a;
|
|
mPikariMoyaR1.a = 0;
|
|
mPikariMoyabsR0.r = 0xff;
|
|
mPikariMoyabsR0.g = 0xff;
|
|
mPikariMoyabsR0.b = 0xff;
|
|
mPikariMoyabsR0.a = 30;
|
|
mPikariMoyabsR1.r = 0xc0;
|
|
mPikariMoyabsR1.g = 0x73;
|
|
mPikariMoyabsR1.b = 0;
|
|
mPikariMoyabsR1.a = 0;
|
|
mPikariPikaR0.r = 0xaf;
|
|
mPikariPikaR0.g = 0xdc;
|
|
mPikariPikaR0.b = 0xa0;
|
|
mPikariPikaR0.a = 0x8c;
|
|
mPikariPikaR1.r = 0x96;
|
|
mPikariPikaR1.g = 0xd2;
|
|
mPikariPikaR1.b = 0x78;
|
|
mPikariPikaR1.a = 0;
|
|
mPikariAnmSpeed = 0.3f;
|
|
}
|
|
|
|
/* 80233284-80233590 22DBC4 030C+00 1/1 0/0 0/0 .text _create__12dMsgObject_cFP9msg_class
|
|
*/
|
|
int dMsgObject_c::_create(msg_class* param_1) {
|
|
field_0x124 = NULL;
|
|
field_0x100 = param_1;
|
|
field_0x16c = -1;
|
|
field_0x16e = -1;
|
|
mNowTalkFlowNo = 0;
|
|
mpTalkActor = NULL;
|
|
field_0x13c = 0;
|
|
mpTalkPartner = NULL;
|
|
mpTalkHeap = NULL;
|
|
field_0x148 = NULL;
|
|
mProcessID = 0xffffffff;
|
|
mIdx = 0;
|
|
mNodeIdx = 0xff;
|
|
field_0x198 = 0;
|
|
field_0x199 = 0;
|
|
mFukiKind = 0xff;
|
|
field_0x19b = 0;
|
|
mFlowChk = 0;
|
|
field_0x19d = 0;
|
|
mpMsgDt = NULL;
|
|
field_0x168 = 0;
|
|
mInputValue = 0;
|
|
mFundRaisingValue = 0;
|
|
field_0x178 = 0;
|
|
mNowTotalPrice = 0;
|
|
mNowTotalPayment = 0;
|
|
field_0x17e = 0;
|
|
mPortalMessageID = 0;
|
|
for (int i = 0; i < 3; i++) {
|
|
mBombMessageID[i] = 0;
|
|
mBombNum[i] = 0;
|
|
mBombBagID[i] = 0xff;
|
|
mSelectBombBag[i] = 0;
|
|
}
|
|
field_0x193 = 0;
|
|
mInsectItemNo = 0xc0;
|
|
mLetterNameID = 0;
|
|
mItemEquipButton = 0;
|
|
mSelectCancelPos = 0;
|
|
mArrowNum = 0;
|
|
mpMsgRes = dMeter2Info_getMsgResource();
|
|
changeGroup(0);
|
|
mpOutFont = NULL;
|
|
mpScrnDraw = NULL;
|
|
mpResCont = new JMessage::TResourceContainer();
|
|
JUT_ASSERT(1299, mpResCont != 0);
|
|
mpCtrl = dDemo_c::getMesgControl();
|
|
JUT_ASSERT(1302, mpCtrl != 0);
|
|
mpRefer = new jmessage_tReference();
|
|
JUT_ASSERT(1305, mpRefer != 0);
|
|
mpRefer->setpStatus(¶m_1->mode);
|
|
mpSeqProc = new jmessage_tSequenceProcessor(mpRefer, mpCtrl);
|
|
JUT_ASSERT(1310, mpSeqProc != 0);
|
|
mpRenProc = new jmessage_tRenderingProcessor(mpRefer);
|
|
JUT_ASSERT(1313, mpRenProc != 0);
|
|
mpRefer->setResourceContainer(mpResCont);
|
|
mpCtrl->setSequenceProcessor(mpSeqProc);
|
|
mpCtrl->setRenderingProcessor(mpRenProc);
|
|
mpRefer->setObjectPtr(this);
|
|
field_0x124 = new JMessage::TParse(mpResCont);
|
|
field_0x124->parse(mpMsgDt, 0);
|
|
mpCtrl->reset();
|
|
mpCtrl->resetResourceCache();
|
|
mpRefer->resetCharCountBuffer();
|
|
field_0x150 = 0.0f;
|
|
mCameraCancelFlag = 0;
|
|
mInputFlag = 0;
|
|
mSmellType = 0xff;
|
|
field_0x4ca = 0;
|
|
mNoDemoFlag = 0;
|
|
field_0x4cc = 0;
|
|
field_0x4cd = 0;
|
|
field_0x4ce = 0;
|
|
field_0x4d4 = 0;
|
|
field_0x4c7 = 0;
|
|
mMsgOutputType = 0xff;
|
|
mShopWaitTimer = 0;
|
|
mSelectPushFlag = 0;
|
|
field_0x1a3 = 0;
|
|
mAutoMessageFlag = 0;
|
|
mKillMessageFlag = false;
|
|
mEquipBombInfo = 0;
|
|
mPaymentFlag = 0;
|
|
field_0x4d1 = 0;
|
|
field_0x196 = 0;
|
|
mMsgSendControl = 0;
|
|
field_0x197 = 0;
|
|
mMessageID = 1000;
|
|
field_0x158 = mMessageID;
|
|
field_0x15c = 0;
|
|
field_0x172 = 0;
|
|
setStatusLocal(1);
|
|
mpMsgString = new dMsgString_c();
|
|
JUT_ASSERT(1366, mpMsgString != 0);
|
|
return 4;
|
|
}
|
|
|
|
/* 80399660-80399660 025CC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_DEAD static char const* const stringBase_80399660 = "zel_00.bmg";
|
|
SECTION_DEAD static char const* const stringBase_8039966B = "zel_01.bmg";
|
|
SECTION_DEAD static char const* const stringBase_80399676 = "zel_02.bmg";
|
|
SECTION_DEAD static char const* const stringBase_80399681 = "zel_03.bmg";
|
|
SECTION_DEAD static char const* const stringBase_8039968C = "zel_04.bmg";
|
|
SECTION_DEAD static char const* const stringBase_80399697 = "zel_05.bmg";
|
|
SECTION_DEAD static char const* const stringBase_803996A2 = "zel_06.bmg";
|
|
SECTION_DEAD static char const* const stringBase_803996AD = "zel_07.bmg";
|
|
SECTION_DEAD static char const* const stringBase_803996B8 = "zel_08.bmg";
|
|
SECTION_DEAD static char const* const stringBase_803996C3 = "zel_99.bmg";
|
|
SECTION_DEAD static char const* const stringBase_803996CE = "";
|
|
#pragma pop
|
|
|
|
/* 8043028C-8043069C 05CFAC 0410+00 7/7 51/51 0/0 .bss g_MsgObject_HIO_c */
|
|
dMsgObject_HIO_c g_MsgObject_HIO_c;
|
|
|
|
/* 80233590-802339BC 22DED0 042C+00 2/1 0/0 0/0 .text _execute__12dMsgObject_cFv */
|
|
int dMsgObject_c::_execute() {
|
|
field_0x4c7 = 0;
|
|
if (mpTalkHeap != NULL) {
|
|
field_0x148 = mDoExt_setCurrentHeap(mpTalkHeap);
|
|
}
|
|
if (isKillMessageFlagLocal()) {
|
|
if (getStatusLocal() != 1) {
|
|
setStatusLocal(19);
|
|
} else {
|
|
mNoDemoFlag = 0;
|
|
field_0x4cc = 0;
|
|
}
|
|
offKillMessageFlagLocal();
|
|
}
|
|
dMeter2Info_decMsgKeyWaitTimer();
|
|
field_0x4ca = mpCtrl->update();
|
|
if (g_MsgObject_HIO_c.mMessageDisplay) {
|
|
if (mpRefer->getRevoMessageID() != 0) {
|
|
mpCtrl->reset();
|
|
mpCtrl->resetResourceCache();
|
|
mpRefer->resetCharCountBuffer();
|
|
mpCtrl->setMessageCode(mpRefer->getRevoMessageID());
|
|
mpRefer->setRevoMessageID(0);
|
|
jmessage_tReference* pRef = (jmessage_tReference*)mpRenProc->getReference();
|
|
strcpy(pRef->getTextPtr(), "");
|
|
strcpy(pRef->getTextSPtr(), "");
|
|
strcpy(pRef->getRubyPtr(), "");
|
|
for (int i = 0; i < 3; i++) {
|
|
strcpy(pRef->getSelTextPtr(i), "");
|
|
strcpy(pRef->getSelRubyPtr(i), "");
|
|
}
|
|
}
|
|
field_0x4ca = mpCtrl->update();
|
|
}
|
|
field_0x166 = getStatusLocal();
|
|
mSelectPushFlag = 0;
|
|
switch (getStatusLocal()) {
|
|
case 1:
|
|
waitProc();
|
|
break;
|
|
case 2:
|
|
openProc();
|
|
break;
|
|
case 6:
|
|
outnowProc();
|
|
break;
|
|
case 5:
|
|
outwaitProc();
|
|
break;
|
|
case 7:
|
|
stopProc();
|
|
break;
|
|
case 15:
|
|
continueProc();
|
|
break;
|
|
case 8:
|
|
case 9:
|
|
case 20:
|
|
selectProc();
|
|
break;
|
|
case 24:
|
|
selectEndProc();
|
|
break;
|
|
case 21:
|
|
inputProc();
|
|
break;
|
|
case 16:
|
|
finishProc();
|
|
break;
|
|
case 17:
|
|
endProc();
|
|
break;
|
|
case 19:
|
|
deleteProc();
|
|
break;
|
|
case 11:
|
|
textmodeProc();
|
|
break;
|
|
}
|
|
if (isDraw() && !isPlaceMessage()) {
|
|
if (mpRefer->getCharSoundInfo().field_0x40e != mpRefer->getCharSoundInfo().mCountBackUp) {
|
|
Z2GetSpeechMgr2()->setTextCount(mpRefer->getCharSoundInfo().field_0x40e);
|
|
mpRefer->setCountBackUp();
|
|
}
|
|
}
|
|
|
|
if (mpScrnDraw != NULL) {
|
|
mpScrnDraw->exec();
|
|
}
|
|
|
|
jmessage_tReference* procRef = (jmessage_tReference*)mpRenProc->getReference();
|
|
if (field_0x17e < procRef->getDemoFrame()) {
|
|
field_0x17e++;
|
|
}
|
|
field_0x168 = getStatusLocal();
|
|
setShopWaitTimerLocal(0);
|
|
if (field_0x148 != NULL) {
|
|
mDoExt_setCurrentHeap(field_0x148);
|
|
field_0x148 = NULL;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
/* 802339BC-80233AE8 22E2FC 012C+00 1/1 0/0 0/0 .text _draw__12dMsgObject_cFv */
|
|
int dMsgObject_c::_draw() {
|
|
u16 sVar7 = getStatusLocal();
|
|
if (sVar7 != 0 && sVar7 != 1 && sVar7 != 0xb) {
|
|
if (isDraw()) {
|
|
mpCtrl->render();
|
|
}
|
|
if (mpScrnDraw != NULL) {
|
|
jmessage_tReference* pRef = (jmessage_tReference*)mpRenProc->getReference();
|
|
mpScrnDraw->setString(pRef->getTextPtr(), pRef->getTextSPtr());
|
|
mpScrnDraw->setRubyString(pRef->getRubyPtr());
|
|
mpScrnDraw->setSelectString(pRef->getSelTextPtr(0), pRef->getSelTextPtr(1),
|
|
pRef->getSelTextPtr(2));
|
|
mpScrnDraw->setSelectRubyString(pRef->getSelRubyPtr(0), pRef->getSelRubyPtr(1),
|
|
pRef->getSelRubyPtr(2));
|
|
}
|
|
}
|
|
if (mpScrnDraw != NULL) {
|
|
if (dComIfGp_isPauseFlag()) {
|
|
dComIfGd_set2DOpaTop(mpScrnDraw);
|
|
} else {
|
|
dComIfGd_set2DOpa(mpScrnDraw);
|
|
}
|
|
mpScrnDraw->multiDraw();
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
/* 80233AE8-80233D04 22E428 021C+00 1/1 0/0 0/0 .text _delete__12dMsgObject_cFv */
|
|
int dMsgObject_c::_delete() {
|
|
mpResCont->destroyResource_all();
|
|
if (mpScrnDraw != NULL) {
|
|
delete mpScrnDraw;
|
|
mpScrnDraw = 0;
|
|
}
|
|
mpMsgDt = 0;
|
|
mpMsgRes = 0;
|
|
field_0x12c = 0;
|
|
if (mpOutFont != NULL) {
|
|
delete mpOutFont;
|
|
mpOutFont = NULL;
|
|
}
|
|
delete mpResCont;
|
|
mpResCont = NULL;
|
|
delete mpRefer;
|
|
mpRefer = NULL;
|
|
delete mpSeqProc;
|
|
mpSeqProc = NULL;
|
|
delete mpRenProc;
|
|
mpRenProc = NULL;
|
|
delete field_0x124;
|
|
field_0x124 = NULL;
|
|
delete mpMsgString;
|
|
mpMsgString = NULL;
|
|
if (mpTalkHeap != NULL) {
|
|
mpTalkHeap = NULL;
|
|
}
|
|
if (dComIfGp_isHeapLockFlag() == 5) {
|
|
dComIfGp_offHeapLockFlag(7);
|
|
dComIfGp_offHeapLockFlag(8);
|
|
}
|
|
dComIfGp_setMsgObjectClass(NULL);
|
|
return 1;
|
|
}
|
|
|
|
/* 80233D04-80233E70 22E644 016C+00 2/2 2/2 0/0 .text setMessageIndex__12dMsgObject_cFUlUlb */
|
|
// NONMATCHING reg swap
|
|
void dMsgObject_c::setMessageIndex(u32 param_1, u32 param_2, bool param_3) {
|
|
field_0x158 = param_1;
|
|
u32 revoIndex = getRevoMessageIndex(param_1);
|
|
if (field_0x4cc == 0) {
|
|
mNoDemoFlag = 1;
|
|
}
|
|
mMessageID = revoIndex;
|
|
field_0x15c = param_2;
|
|
field_0x4d1 = 0;
|
|
if (mpTalkPartner != field_0x13c && mpTalkPartner != NULL) {
|
|
dComIfGp_event_setTalkPartner(mpTalkPartner);
|
|
field_0x4d1 = 1;
|
|
field_0x13c = mpTalkPartner;
|
|
}
|
|
s16 groupID = getMessageGroup(mMessageID);
|
|
JUT_ASSERT(1736, groupID==s_groupID || groupID == 0)
|
|
changeGroup(groupID);
|
|
field_0x172 = 0;
|
|
mpRefer->setPageNum(field_0x172);
|
|
|
|
JMSMesgHeader_c* pMsg = (JMSMesgHeader_c*)((char*)mpMsgDt + 0x20);
|
|
u8* iVar2 = (u8*)pMsg + pMsg->sectionSize;
|
|
dComIfGp_setMesgCameraAttrInfo(pMsg->entries[getMessageIndex(revoIndex)].field_0x0f);
|
|
if (field_0x15c == 1000) {
|
|
mpRefer->setSelMsgPtr(NULL);
|
|
} else {
|
|
u32 msgIndex = getMessageIndex(field_0x15c);
|
|
if (msgIndex == 0x264) {
|
|
mpRefer->setSelMsgPtr(NULL);
|
|
} else {
|
|
mpRefer->setSelMsgPtr(((char*)iVar2 + pMsg->entries[msgIndex].mStringOffset + 8));
|
|
}
|
|
}
|
|
if (param_3) {
|
|
mpCtrl->setMessageID(mMessageID, 0, NULL);
|
|
}
|
|
}
|
|
|
|
/* 80233E70-80233F84 22E7B0 0114+00 1/1 1/1 0/0 .text setMessageIndexDemo__12dMsgObject_cFUlb */
|
|
// NONMATCHING reg swap
|
|
void dMsgObject_c::setMessageIndexDemo(u32 param_1, bool param_2) {
|
|
field_0x158 = param_1;
|
|
int revoMsgIndex = getRevoMessageIndex(param_1);
|
|
mNoDemoFlag = 1;
|
|
field_0x4d4 = 1;
|
|
dMsgObject_onCameraCancelFlag();
|
|
mMessageID = revoMsgIndex;
|
|
field_0x15c = 0x264;
|
|
field_0x4d1 = 0;
|
|
if (mpTalkPartner != field_0x13c && mpTalkPartner != NULL) {
|
|
dComIfGp_event_setTalkPartner(mpTalkPartner);
|
|
field_0x4d1 = 1;
|
|
field_0x13c = mpTalkPartner;
|
|
}
|
|
s16 groupID = getMessageGroup(mMessageID);
|
|
JUT_ASSERT(1804, groupID==s_groupID || groupID == 0);
|
|
changeGroup(groupID);
|
|
field_0x172 = 0;
|
|
mpRefer->setPageNum(field_0x172);
|
|
JMSMesgHeader_c* info_header_p = (JMSMesgHeader_c*)((char*)mpMsgDt + 0x20);
|
|
int ind = getMessageIndex(revoMsgIndex);
|
|
JMSMesgEntry_c* info_entries = (JMSMesgEntry_c*)((char*)info_header_p + 0x10);
|
|
dComIfGp_setMesgCameraAttrInfo(info_entries[ind].field_0x0f);
|
|
mpRefer->setSelMsgPtr(NULL);
|
|
if (param_2) {
|
|
mpCtrl->setMessageID(mMessageID, 0, NULL);
|
|
}
|
|
}
|
|
|
|
/* 80233F84-80233FD8 22E8C4 0054+00 4/4 0/0 0/0 .text getMessageIndex__12dMsgObject_cFUl
|
|
*/
|
|
u32 dMsgObject_c::getMessageIndex(u32 param_0) {
|
|
u32 i = 0;
|
|
JMSMesgHeader_c* pMsg = (JMSMesgHeader_c*)((char*)mpMsgDt + 0x20);
|
|
u32 msgIndexCount = *((u16*)((char*)mpMsgDt + 0x28));
|
|
int rv;
|
|
for (; i < msgIndexCount; i++) {
|
|
if (pMsg->entries[i].mStringId == param_0) {
|
|
rv = i;
|
|
break;
|
|
}
|
|
}
|
|
if (i < msgIndexCount) {
|
|
return rv;
|
|
}
|
|
JUT_WARN(1848, "Message Index Not Exist!! %d", param_0)
|
|
return 612;
|
|
}
|
|
|
|
/* 80233FD8-802340D4 22E918 00FC+00 2/2 0/0 0/0 .text getRevoMessageIndex__12dMsgObject_cFUl */
|
|
u32 dMsgObject_c::getRevoMessageIndex(u32 param_1) {
|
|
if (!g_MsgObject_HIO_c.mMessageDisplay) {
|
|
return param_1;
|
|
}
|
|
u32 msgIndexCount;
|
|
JMSMesgHeader_c* pMsg;
|
|
int i = 0;
|
|
int rv;
|
|
s16 groupID = getMessageGroup(param_1);
|
|
JUT_ASSERT(1916, groupID==s_groupID || groupID == 0)
|
|
changeGroup(groupID);
|
|
pMsg = (JMSMesgHeader_c*)((char*)mpMsgDt + 0x20);
|
|
msgIndexCount = *((u16*)((char*)mpMsgDt + 0x28));
|
|
for (; i < msgIndexCount; i++) {
|
|
if (pMsg->entries[i].mStringId == param_1) {
|
|
s8* ptr = (s8*)pMsg + pMsg->sectionSize + pMsg->entries[i].mStringOffset + 8;
|
|
if (ptr[0] == 26 && ptr[2] == 3 && (s8)ptr[4] == 0) {
|
|
rv = pMsg->entries[*(int*)(ptr + 5)].mStringId;
|
|
} else {
|
|
rv = param_1;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (i >= msgIndexCount) {
|
|
JUT_WARN(1937, "Message Index Not Exist!! %d", param_1)
|
|
rv = 612;
|
|
}
|
|
return rv;
|
|
}
|
|
|
|
/* 802340D4-80234128 22EA14 0054+00 3/3 0/0 0/0 .text getMessageIndexAlways__12dMsgObject_cFUl */
|
|
u32 dMsgObject_c::getMessageIndexAlways(u32 param_0) {
|
|
u32 i = 0;
|
|
JMSMesgHeader_c* pMsg = (JMSMesgHeader_c*)((char*)mpMsgRes + 0x20);
|
|
u32 msgIndexCount = *((u16*)((char*)mpMsgRes + 0x28));
|
|
int rv;
|
|
for (; i < msgIndexCount; i++) {
|
|
if (pMsg->entries[i].mStringId == param_0) {
|
|
rv = i;
|
|
break;
|
|
}
|
|
}
|
|
if (i < msgIndexCount) {
|
|
return rv;
|
|
}
|
|
JUT_WARN(1972, "Message Index Not Exist!! %d", param_0)
|
|
return 612;
|
|
}
|
|
|
|
/* 80234128-8023413C 22EA68 0014+00 1/1 0/0 0/0 .text getMessageIDAlways__12dMsgObject_cFUl */
|
|
u32 dMsgObject_c::getMessageIDAlways(u32 param_0) {
|
|
return ((JMSMesgHeader_c*)((u8*)mpMsgRes + 0x20))->entries[param_0].mStringId;
|
|
}
|
|
|
|
/* 8023413C-80234150 22EA7C 0014+00 4/4 0/0 0/0 .text getMessageGroup__12dMsgObject_cFUl
|
|
*/
|
|
s16 dMsgObject_c::getMessageGroup(u32 param_0) {
|
|
s16 messageGroup = 0;
|
|
OS_REPORT("getMessgeGroup! msg no====>%d\n", param_0);
|
|
if (param_0 > 5000) {
|
|
messageGroup = s_groupID;
|
|
}
|
|
return messageGroup;
|
|
}
|
|
|
|
/* 80234150-80234318 22EA90 01C8+00 1/1 0/0 0/0 .text waitProc__12dMsgObject_cFv */
|
|
void dMsgObject_c::waitProc() {
|
|
if (mNoDemoFlag || field_0x4cc) {
|
|
if (isMidonaNormalTalkWait()) {
|
|
if (dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), 4) ||
|
|
dMsgObject_isCameraCancelFlag() || dComIfGp_isPauseFlag())
|
|
{
|
|
if (field_0x4ca) {
|
|
field_0x19d = 0;
|
|
dComIfGp_setMesgCancelButton(0);
|
|
offInputFlagLocal();
|
|
setStatusLocal(2);
|
|
if (isTalkMessage()) {
|
|
mDoAud_seStart(Z2SE_SY_TALK_WIN_OPEN, 0, 0, 0);
|
|
}
|
|
} else {
|
|
if (mMessageID >= 0x47f && mMessageID <= 0x487) {
|
|
setMessageIndexDemo(mMessageID, true);
|
|
} else {
|
|
setMessageIndex(mMessageID, field_0x15c, true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else if (field_0x4ca) {
|
|
if (field_0x4cd) {
|
|
setStatusLocal(11);
|
|
} else {
|
|
dComIfGp_setMesgCancelButton(0);
|
|
offInputFlagLocal();
|
|
setStatusLocal(2);
|
|
if (isTalkMessage()) {
|
|
mDoAud_seStart(Z2SE_SY_TALK_WIN_OPEN, 0, 0, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80234318-802349D8 22EC58 06C0+00 1/1 0/0 0/0 .text openProc__12dMsgObject_cFv */
|
|
void dMsgObject_c::openProc() {
|
|
if (isMidonaMessage()) {
|
|
bool uVar12 = 0;
|
|
if (field_0x16a == 0) {
|
|
jmessage_tReference* pRef = (jmessage_tReference*)mpRenProc->getReference();
|
|
field_0x1a3 = 0;
|
|
if (mpRefer->getMsgID() == 0x7fa) {
|
|
mpScrnDraw->selectAnimeInit(3, pRef->getSelectPos(), pRef->getSelTBoxWidth(),
|
|
pRef->getSelectRubyFlag());
|
|
} else {
|
|
mpScrnDraw->selectAnimeInit(2, pRef->getSelectPos() + 1, pRef->getSelTBoxWidth(),
|
|
pRef->getSelectRubyFlag());
|
|
}
|
|
pRef->setStopFlag(0);
|
|
} else {
|
|
if (mDoCPd_c::getTrigA(0)) {
|
|
if (getSelectCursorPosLocal() != 0xff) {
|
|
field_0x1a3 = 1;
|
|
field_0x16a = 9;
|
|
}
|
|
} else if (mDoCPd_c::getTrigB(0) && getSelectCancelPos() != 0) {
|
|
setSelectCursorPosLocal(getSelectCancelPos() - 1);
|
|
uVar12 = 1;
|
|
field_0x1a3 = 2;
|
|
field_0x16a = 9;
|
|
}
|
|
if (mpRefer->getMsgID() == 0x7fa) {
|
|
mpScrnDraw->selectAnimeMove(2, getSelectCursorPosLocal(), uVar12);
|
|
} else {
|
|
if (getSelectCursorPosLocal() != 0xff) {
|
|
mpScrnDraw->selectAnimeMove(2, getSelectCursorPosLocal() + 1, uVar12);
|
|
} else {
|
|
mpScrnDraw->selectAnimeMove(2, getSelectCursorPosLocal(), uVar12);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field_0x16a++;
|
|
s16 sVar7;
|
|
if (isKanbanMessage()) {
|
|
sVar7 = g_MsgObject_HIO_c.mBoxAppearFrame;
|
|
f32 dVar15 = (f32)field_0x16a / g_MsgObject_HIO_c.mBoxAppearFrame;
|
|
mpScrnDraw->fukiScale(dVar15);
|
|
mpScrnDraw->fukiAlpha(dVar15);
|
|
mpOutFont->setAlphaRatio(dVar15);
|
|
} else if (isPlaceMessage() || isStaffMessage()) {
|
|
sVar7 = g_MsgObject_HIO_c.mStageTitleFadeIn;
|
|
f32 dVar15 = (f32)field_0x16a / g_MsgObject_HIO_c.mStageTitleFadeIn;
|
|
mpScrnDraw->fukiScale(dVar15);
|
|
mpScrnDraw->fukiAlpha(dVar15);
|
|
mpOutFont->setAlphaRatio(dVar15);
|
|
} else if (isBossMessage()) {
|
|
sVar7 = g_MsgObject_HIO_c.mBossNameFadeIn;
|
|
f32 dVar15 = (f32)field_0x16a / g_MsgObject_HIO_c.mBossNameFadeIn;
|
|
mpScrnDraw->fukiScale(dVar15);
|
|
mpScrnDraw->fukiAlpha(dVar15);
|
|
mpOutFont->setAlphaRatio(dVar15);
|
|
} else if (isBookMessage()) {
|
|
sVar7 = g_MsgObject_HIO_c.mBoxAppearFrame + g_MsgObject_HIO_c.mWaitFrame +
|
|
g_MsgObject_HIO_c.mLightAppearFrame;
|
|
if (field_0x16a <= g_MsgObject_HIO_c.mBoxAppearFrame) {
|
|
f32 dVar15 = (f32)field_0x16a / g_MsgObject_HIO_c.mBoxAppearFrame;
|
|
mpScrnDraw->fukiAlpha(dVar15);
|
|
mpOutFont->setAlphaRatio(dVar15);
|
|
} else {
|
|
mpScrnDraw->fukiAlpha(1.0f);
|
|
mpOutFont->setAlphaRatio(1.0f);
|
|
}
|
|
s16 sVar4 = g_MsgObject_HIO_c.mBoxAppearFrame + g_MsgObject_HIO_c.mWaitFrame;
|
|
if (field_0x16a >= sVar4 && field_0x16a <= sVar4 + g_MsgObject_HIO_c.mLightAppearFrame) {
|
|
f32 scale = (f32)(field_0x16a - sVar4);
|
|
scale /= g_MsgObject_HIO_c.mLightAppearFrame;
|
|
mpScrnDraw->fukiScale(scale);
|
|
}
|
|
} else {
|
|
sVar7 = g_MsgObject_HIO_c.mBoxAppearFrame;
|
|
f32 dVar14 = (f32)field_0x16a / sVar7;
|
|
mpScrnDraw->fukiScale(1.0f);
|
|
mpScrnDraw->fukiAlpha(dVar14);
|
|
mpOutFont->setAlphaRatio(dVar14);
|
|
}
|
|
mpRenProc->setTextInitPos(mpScrnDraw->getTextBoxPosX(), mpScrnDraw->getTextBoxPosY());
|
|
mpRenProc->setTextScale(mpScrnDraw->getTextBoxScaleX(), mpScrnDraw->getTextBoxScaleY());
|
|
if (field_0x16a >= sVar7) {
|
|
mpScrnDraw->fukiTrans(0.0f, 0.0f);
|
|
for (int i = 0; i < 3; i++) {
|
|
mpRenProc->setSelTextInitPos(i, mpScrnDraw->getSelTextBoxPosX(i),
|
|
mpScrnDraw->getSelTextBoxPosY(i));
|
|
}
|
|
field_0x16a = 0;
|
|
if (isMidonaMessage()) {
|
|
if (mpRefer->getMsgID() == 0x7fa) {
|
|
setStatusLocal(9);
|
|
} else {
|
|
setStatusLocal(8);
|
|
}
|
|
} else {
|
|
setStatusLocal(6);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 802349D8-80234CCC 22F318 02F4+00 1/1 0/0 0/0 .text outnowProc__12dMsgObject_cFv */
|
|
void dMsgObject_c::outnowProc() {
|
|
mpRefer->shiftCharCountBuffer();
|
|
if (isBookMessage() && field_0x16a > 0) {
|
|
field_0x16a--;
|
|
f32 alpha = (10 - field_0x16a) / 10.0f;
|
|
mpScrnDraw->fontAlpha(alpha);
|
|
mpOutFont->setAlphaRatio(alpha);
|
|
if (field_0x16a > 0) {
|
|
return;
|
|
}
|
|
}
|
|
jmessage_tReference* pRef =
|
|
(jmessage_tReference*)mpRenProc->getReference();
|
|
if (pRef->getCharAllAlphaRate() < 1.0f) {
|
|
if (mDoCPd_c::getTrigA(0)) {
|
|
pRef->setCharAllAlphaRate(1.0f);
|
|
} else {
|
|
pRef->addCharAllAlphaRate();
|
|
}
|
|
f32 alpha = pRef->getCharAllAlphaRate();
|
|
mpScrnDraw->setCharAlphaRate(alpha);
|
|
mpOutFont->setAlphaRatio(alpha);
|
|
} else if (mpRefer->isLightEnd()) {
|
|
if (pRef->isButtonTagStopFlag()) {
|
|
setButtonStatusLocal();
|
|
mpScrnDraw->arwAnimeMove();
|
|
}
|
|
if (pRef->getStopFlag() == 1) {
|
|
field_0x16a = 0;
|
|
field_0x196 = 0;
|
|
setStatusLocal(5);
|
|
pRef->setStopFlag(0);
|
|
} else if (pRef->getStopFlag() == 7) {
|
|
field_0x196 = 1;
|
|
if (mNoDemoFlag && !field_0x4d4) {
|
|
setStatusLocal(14);
|
|
} else {
|
|
field_0x199 = 0;
|
|
setStatusLocal(16);
|
|
}
|
|
pRef->setStopFlag(0);
|
|
} else if (pRef->getStopFlag() == 2) {
|
|
field_0x1a3 = 0;
|
|
setStatusLocal(8);
|
|
mpScrnDraw->selectAnimeInit(2, pRef->getSelectPos() + 1,
|
|
pRef->getSelTBoxWidth(),
|
|
pRef->getSelectRubyFlag());
|
|
pRef->setStopFlag(0);
|
|
} else if (pRef->getStopFlag() == 3) {
|
|
field_0x1a3 = 0;
|
|
setStatusLocal(9);
|
|
mpScrnDraw->selectAnimeInit(3, pRef->getSelectPos(),
|
|
pRef->getSelTBoxWidth(),
|
|
pRef->getSelectRubyFlag());
|
|
pRef->setStopFlag(0);
|
|
} else if (pRef->getStopFlag() == 4 || pRef->getStopFlag() == 5) {
|
|
field_0x1a3 = 0;
|
|
setStatusLocal(20);
|
|
pRef->setStopFlag(0);
|
|
} else if (pRef->getStopFlag() == 6) {
|
|
setStatusLocal(21);
|
|
pRef->setStopFlag(0);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80234CCC-80234FF0 22F60C 0324+00 1/1 0/0 0/0 .text outwaitProc__12dMsgObject_cFv */
|
|
void dMsgObject_c::outwaitProc() {
|
|
jmessage_tReference* pRef =
|
|
(jmessage_tReference*)mpRenProc->getReference();
|
|
mpScrnDraw->arwAnimeMove();
|
|
if (isBookMessage()) {
|
|
if (isSend() || field_0x16a > 0) {
|
|
field_0x16a++;
|
|
if (field_0x16a <= 10) {
|
|
f32 alpha = (10 - field_0x16a) / 10.0f;
|
|
mpScrnDraw->fontAlpha(alpha);
|
|
mpOutFont->setAlphaRatio(alpha);
|
|
if (field_0x16a >= 10) {
|
|
field_0x172++;
|
|
mpRefer->setPageNum(field_0x172);
|
|
mpCtrl->render_synchronize();
|
|
pRef->pageSend();
|
|
mpScrnDraw->arwAnimeInit();
|
|
mpRenProc->resetRendering();
|
|
field_0x199 = 0;
|
|
setStatusLocal(6);
|
|
}
|
|
}
|
|
}
|
|
} else if (isSend()) {
|
|
field_0x172++;
|
|
mpRefer->setPageNum(field_0x172);
|
|
mpCtrl->render_synchronize();
|
|
pRef->pageSend();
|
|
mAutoMessageFlag = 0;
|
|
mpScrnDraw->arwAnimeInit();
|
|
mpRenProc->resetRendering();
|
|
field_0x199 = 0;
|
|
setStatusLocal(6);
|
|
if (isTalkMessage() && mpRefer->getForm() != 1) {
|
|
mDoAud_seStart(daAlink_c::WANM_HOWL_END, 0, 0, 0);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80234FF0-80234FF4 22F930 0004+00 1/1 0/0 0/0 .text stopProc__12dMsgObject_cFv */
|
|
void dMsgObject_c::stopProc() {
|
|
}
|
|
|
|
/* 80234FF4-8023531C 22F934 0328+00 1/1 0/0 0/0 .text continueProc__12dMsgObject_cFv */
|
|
void dMsgObject_c::continueProc() {
|
|
jmessage_tReference* pRef = (jmessage_tReference*)mpRenProc->getReference();
|
|
if (pRef->getSendFlag() != 1 && pRef->getSendFlag() != 3 && pRef->getSendFlag() != 4 &&
|
|
pRef->getSendFlag() != 6)
|
|
{
|
|
mpScrnDraw->arwAnimeMove();
|
|
}
|
|
if (((mDoCPd_c::getTrigA(0) == 0 && mDoCPd_c::getTrigB(0) == 0) || !isHowlMessage()) &&
|
|
isSend())
|
|
{
|
|
mpCtrl->render_synchronize();
|
|
mpCtrl->reset();
|
|
mpCtrl->resetResourceCache();
|
|
mpRefer->resetCharCountBuffer();
|
|
field_0x17e = 0;
|
|
field_0x199 = 0;
|
|
updateEquipBombInfoLocal();
|
|
offAutoMessageFlagLocal();
|
|
setMessageIndex(field_0x100->msg_idx, field_0x100->field_0xf0, true);
|
|
mpScrnDraw->fukiPosCalc(pRef->getFukiPosType());
|
|
strcpy(pRef->getTextPtr(), "");
|
|
strcpy(pRef->getTextSPtr(), "");
|
|
strcpy(pRef->getRubyPtr(), "");
|
|
for (int i = 0; i < 3; i++) {
|
|
strcpy(pRef->getSelTextPtr(i), "");
|
|
strcpy(pRef->getSelRubyPtr(i), "");
|
|
}
|
|
mpScrnDraw->arwAnimeInit();
|
|
mpRenProc->setTextInitPos(mpScrnDraw->getTextBoxPosX(), mpScrnDraw->getTextBoxPosY());
|
|
mpRenProc->setTextScale(mpScrnDraw->getTextBoxScaleX(), mpScrnDraw->getTextBoxScaleY());
|
|
for (int i = 0; i < 3; i++) {
|
|
mpRenProc->setSelTextInitPos(i, mpScrnDraw->getSelTextBoxPosX(i), mpScrnDraw->getSelTextBoxPosY(i));
|
|
}
|
|
mpRenProc->resetRendering();
|
|
setStatusLocal(6);
|
|
if (isTalkMessage() && mpRefer->getForm() != 1) {
|
|
mDoAud_seStart(daAlink_c::WANM_HOWL_END, 0, 0, 0);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 8023531C-8023587C 22FC5C 0560+00 1/1 0/0 0/0 .text selectProc__12dMsgObject_cFv */
|
|
void dMsgObject_c::selectProc() {
|
|
bool uVar7 = false;
|
|
bool iVar8 = false;
|
|
if (!isMidonaMessage()) {
|
|
field_0x1a3 = 0;
|
|
}
|
|
if (mpScrnDraw->isSelect() || getStatusLocal() == 20) {
|
|
mpRefer->selectMessage();
|
|
if (dMeter2Info_isShopTalkFlag()) {
|
|
dComIfGp_setAStatusForce(0x2a, 0);
|
|
}
|
|
}
|
|
if (mDoCPd_c::getTrigA(0)) {
|
|
if (getSelectCursorPosLocal() != 0xff) {
|
|
field_0x1a3 = 1;
|
|
}
|
|
} else if (mDoCPd_c::getTrigB(0) &&
|
|
(((mpScrnDraw->isSelect() || getStatusLocal() == 20) && getSelectCancelPos() != 0)))
|
|
{
|
|
setSelectCursorPosLocal(getSelectCancelPos() - 1);
|
|
uVar7 = true;
|
|
if (getStatusLocal() == 8) {
|
|
if (getSelectCancelPos() <= 2) {
|
|
if (getSelectCursorPosLocal() != 0xff) {
|
|
mpScrnDraw->selectAnimeMove(2, getSelectCursorPosLocal() + 1, 1);
|
|
} else {
|
|
mpScrnDraw->selectAnimeMove(2, (int)getSelectCursorPosLocal(), 1);
|
|
}
|
|
}
|
|
} else if (getStatusLocal() == 9 && getSelectCancelPos() <= 3) {
|
|
mpScrnDraw->selectAnimeMove(3, getSelectCursorPosLocal(), 1);
|
|
}
|
|
field_0x1a3 = 2;
|
|
}
|
|
jmessage_tReference* pRef = (jmessage_tReference*)mpRenProc->getReference();
|
|
if (getStatusLocal() == 8) {
|
|
if (isMidonaMessage() && field_0x1a3 != 0) {
|
|
if (field_0x1a3 == 2 && getSelectCancelPos() == 3) {
|
|
iVar8 = true;
|
|
} else {
|
|
while (!iVar8) {
|
|
if (getSelectCursorPosLocal() != 0xff) {
|
|
iVar8 =
|
|
mpScrnDraw->selectAnimeMove(2, getSelectCursorPosLocal() + 1, uVar7);
|
|
} else {
|
|
iVar8 =
|
|
mpScrnDraw->selectAnimeMove(2, (int)getSelectCursorPosLocal(), uVar7);
|
|
}
|
|
}
|
|
}
|
|
} else if (field_0x1a3 == 2 && getSelectCancelPos() == 3) {
|
|
iVar8 = true;
|
|
} else if (getSelectCursorPosLocal() != 0xff) {
|
|
iVar8 = mpScrnDraw->selectAnimeMove(2, getSelectCursorPosLocal() + 1, uVar7);
|
|
} else {
|
|
iVar8 = mpScrnDraw->selectAnimeMove(2, (int)getSelectCursorPosLocal(), uVar7);
|
|
}
|
|
pRef->setStopFlag(0);
|
|
} else {
|
|
if (getStatusLocal() == 9) {
|
|
if (isMidonaMessage() && field_0x1a3 != 0) {
|
|
if (field_0x1a3 == 2 && getSelectCancelPos() == 4) {
|
|
iVar8 = true;
|
|
} else {
|
|
while (!iVar8) {
|
|
iVar8 = mpScrnDraw->selectAnimeMove(3, getSelectCursorPosLocal(), uVar7);
|
|
}
|
|
}
|
|
} else if (field_0x1a3 == 2 && getSelectCancelPos() == 4) {
|
|
iVar8 = true;
|
|
} else {
|
|
iVar8 = mpScrnDraw->selectAnimeMove(3, getSelectCursorPosLocal(), uVar7);
|
|
}
|
|
pRef->setStopFlag(0);
|
|
} else if (getStatusLocal() == 20) {
|
|
iVar8 = true;
|
|
}
|
|
}
|
|
field_0x100->select_idx = pRef->getSelectPos();
|
|
if (isSend() && field_0x1a3 != 0 && iVar8) {
|
|
field_0x1a3 = 0;
|
|
if (mDoCPd_c::getTrigB(0)) {
|
|
mSelectPushFlag = 2;
|
|
} else {
|
|
mSelectPushFlag = 1;
|
|
}
|
|
setSelectCancelPosLocal(0);
|
|
field_0x16a = 0;
|
|
if (getStatusLocal() == 20) {
|
|
field_0x199 = 1;
|
|
setStatusLocal(14);
|
|
} else {
|
|
setStatusLocal(24);
|
|
}
|
|
dMeter2Info_set2DVibration();
|
|
mDoAud_seStart(daAlink_c::WANM_ATTACK_POE_END, 0, 0, 0);
|
|
}
|
|
}
|
|
|
|
/* 8023587C-802358D4 2301BC 0058+00 1/1 0/0 0/0 .text selectEndProc__12dMsgObject_cFv */
|
|
void dMsgObject_c::selectEndProc() {
|
|
if (mpScrnDraw->selectAnimeEnd()) {
|
|
field_0x199 = 1;
|
|
setStatusLocal(14);
|
|
}
|
|
}
|
|
|
|
/* 802358D4-80235AD4 230214 0200+00 1/1 0/0 0/0 .text inputProc__12dMsgObject_cFv */
|
|
void dMsgObject_c::inputProc() {
|
|
dMeter2Info_onShopTalkFlag();
|
|
mpRefer->inputNumber();
|
|
if (isSend()) {
|
|
field_0x199 = 0;
|
|
if (mDoCPd_c::getTrigA(0)) {
|
|
BOOL iVar2 = dComIfGs_isTmpBit(dSv_event_tmp_flag_c::tempBitLabels[80]);
|
|
if (getInputValue() > 0 && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[802])) {
|
|
onPaymentFlagLocal();
|
|
}
|
|
dComIfGp_setItemRupeeCount(-getInputValue());
|
|
if (iVar2) {
|
|
if (getInputValue() > 0) {
|
|
dMsgObject_addFundRaising(getInputValue());
|
|
getFundRaisingValue();
|
|
dMsgObject_getFundRaising();
|
|
if (dMsgObject_getFundRaising() >= getFundRaisingValue() &&
|
|
!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[124]))
|
|
{
|
|
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[376])) {
|
|
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[376]);
|
|
dMsgObject_setFundRaising(0);
|
|
} else {
|
|
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[124]);
|
|
dMsgObject_setFundRaising(0);
|
|
}
|
|
}
|
|
} else {
|
|
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[80]);
|
|
}
|
|
} else {
|
|
dMsgObject_addTotalPayment(getInputValue());
|
|
fpcM_Search((fpcLyIt_JudgeFunc)dMsgObject_searchSSItem, this);
|
|
}
|
|
dMeter2Info_offShopTalkFlag();
|
|
setStatusLocal(14);
|
|
} else if (mDoCPd_c::getTrigB(0)) {
|
|
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[80]);
|
|
dMeter2Info_offShopTalkFlag();
|
|
setStatusLocal(14);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80235AD4-80235CC0 230414 01EC+00 1/1 0/0 0/0 .text finishProc__12dMsgObject_cFv */
|
|
void dMsgObject_c::finishProc() {
|
|
if (field_0x168 != 0x10 && mNoDemoFlag && isTalkMessage() && mpRefer->getForm() != 1) {
|
|
mDoAud_seStart(daAlink_c::WANM_FALL_LAND, 0, 0, 0);
|
|
}
|
|
mpRefer->selectMessage();
|
|
jmessage_tReference* pRef = (jmessage_tReference*)mpRenProc->getReference();
|
|
if (pRef->getSendFlag() != 1 && pRef->getSendFlag() != 3 && pRef->getSendFlag() != 4 &&
|
|
pRef->getSendFlag() != 6)
|
|
{
|
|
mpScrnDraw->dotAnimeMove();
|
|
}
|
|
if (isHowlMessage() && ((dMsgScrnHowl_c*)mpScrnDraw)->isKeyCheck() && mDoCPd_c::getTrigB(0)) {
|
|
dMsgObject_onMsgSend();
|
|
}
|
|
u8 sendRes = isSend();
|
|
if (((mDoCPd_c::getTrigA(0) == 0 &&
|
|
(mDoCPd_c::getTrigB(0) == 0 || ((dMsgScrnHowl_c*)mpScrnDraw)->isKeyCheck())) ||
|
|
!isHowlMessage()) && sendRes != 0)
|
|
{
|
|
if (mpRefer->getMsgID() == 0xc4e) {
|
|
Z2GetAudioMgr()->changeBgmStatus(2);
|
|
}
|
|
field_0x16a = 0;
|
|
setStatusLocal(17);
|
|
if (isTalkMessage() && sendRes == 2) {
|
|
mDoAud_seStart(daAlink_c::WANM_ATTACK_POE_START, 0, 0, 0);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80235CC0-80235EBC 230600 01FC+00 1/1 0/0 0/0 .text endProc__12dMsgObject_cFv */
|
|
void dMsgObject_c::endProc() {
|
|
field_0x16a++;
|
|
s16 sVar4 = 5;
|
|
if (isKanbanMessage() || isBookMessage()) {
|
|
sVar4 = g_MsgObject_HIO_c.field_0x304;
|
|
} else if (isPlaceMessage() || isStaffMessage()) {
|
|
sVar4 = g_MsgObject_HIO_c.mStageTitleFadeOut;
|
|
} else if (isBossMessage()) {
|
|
sVar4 = g_MsgObject_HIO_c.mBossNameFadeOut;
|
|
}
|
|
f32 dVar6 = (f32)field_0x16a / sVar4;
|
|
mpScrnDraw->fukiAlpha(1.0f - dVar6);
|
|
if (isBookMessage()) {
|
|
mpScrnDraw->fukiScale(1.0f - dVar6);
|
|
}
|
|
mpOutFont->setAlphaRatio(1.0f - dVar6);
|
|
if (field_0x16a >= sVar4) {
|
|
mpScrnDraw->arwAnimeInit();
|
|
mpScrnDraw->dotAnimeInit();
|
|
if (mNoDemoFlag && !field_0x4d4) {
|
|
setStatusLocal(18);
|
|
} else {
|
|
setStatusLocal(19);
|
|
}
|
|
mMessageID = 0;
|
|
field_0x158 = mMessageID;
|
|
field_0x15c = 1000;
|
|
field_0x172 = 0;
|
|
field_0x199 = 0;
|
|
mpRefer->setPageNum(field_0x172);
|
|
}
|
|
}
|
|
|
|
/* 80235EBC-8023609C 2307FC 01E0+00 2/2 0/0 0/0 .text deleteProc__12dMsgObject_cFv */
|
|
void dMsgObject_c::deleteProc() {
|
|
if (field_0x148 != NULL) {
|
|
mDoExt_setCurrentHeap(field_0x148);
|
|
field_0x148 = NULL;
|
|
}
|
|
delete_screen(true);
|
|
mpCtrl->reset();
|
|
mpCtrl->resetResourceCache();
|
|
mpRefer->resetCharCountBuffer();
|
|
field_0x17e = 0;
|
|
updateEquipBombInfoLocal();
|
|
dComIfGp_clearMesgAnimeTagInfo();
|
|
dComIfGp_clearMesgCameraTagInfo();
|
|
dComIfGp_clearMesgAnimeAttrInfo();
|
|
dComIfGp_clearMesgFaceAnimeAttrInfo();
|
|
dComIfGp_clearMesgCameraAttrInfo();
|
|
dMsgObject_offCameraCancelFlag();
|
|
dMsgObject_setMsgOutputType(0xff);
|
|
offKillMessageFlagLocal();
|
|
jmessage_tReference* pRef =
|
|
(jmessage_tReference*)mpRenProc->getReference();
|
|
if (pRef->getSendFlag() != 0) {
|
|
pRef->setSendFlag(0);
|
|
dMsgObject_offMsgSendControl();
|
|
dMsgObject_offMsgSend();
|
|
}
|
|
if (pRef->getStopFlag() != 0) {
|
|
pRef->setStopFlag(0);
|
|
}
|
|
if (mNoDemoFlag != 0) {
|
|
mNoDemoFlag = 0;
|
|
}
|
|
if (field_0x4cc != 0) {
|
|
field_0x4cc = 0;
|
|
}
|
|
if (field_0x4d4 != 0) {
|
|
field_0x4d4 = 0;
|
|
}
|
|
dDemo_c::getControl()->unsuspend(1);
|
|
if (field_0x4ce == 1) {
|
|
mDoAud_talkOut();
|
|
field_0x4ce = 0;
|
|
}
|
|
field_0x13c = NULL;
|
|
mpTalkPartner = NULL;
|
|
field_0x4d1 = 0;
|
|
resetSelectBomBag();
|
|
if (getArrowNumLocal() != 0) {
|
|
dComIfGp_setItemArrowNumCount(getArrowNumLocal());
|
|
setArrowNumLocal(0);
|
|
}
|
|
mFukiKind = 0xff;
|
|
dMsgObject_setNowTalkFlowNo(0);
|
|
setStatusLocal(1);
|
|
}
|
|
|
|
/* 8023609C-802360A0 2309DC 0004+00 1/1 0/0 0/0 .text textmodeProc__12dMsgObject_cFv */
|
|
void dMsgObject_c::textmodeProc() {
|
|
}
|
|
|
|
/* 802360A0-8023670C 2309E0 066C+00 1/0 1/1 0/0 .text talkStartInit__12dMsgObject_cFv */
|
|
void dMsgObject_c::talkStartInit() {
|
|
f32 dVar19 = 0.0f;
|
|
JUTFont* local_30 = mDoExt_getMesgFont();
|
|
field_0x19b = 0;
|
|
bool bVar1 = false;
|
|
if (mFukiKind != mpRefer->getFukiKind()) {
|
|
if (mpScrnDraw != NULL) {
|
|
delete_screen(false);
|
|
dVar19 = 1.0f;
|
|
bVar1 = true;
|
|
}
|
|
mFukiKind = mpRefer->getFukiKind();
|
|
}
|
|
if (dComIfGp_isHeapLockFlag() == 8 ||
|
|
(dComIfGp_isHeapLockFlag() == 5 && dMeter2Info_isFloatingMessageVisible() && !field_0x4cd))
|
|
{
|
|
dMeter2Info_getMeterClass()->emphasisButtonDelete();
|
|
}
|
|
if (((dComIfGp_isHeapLockFlag() == 0 || (dComIfGp_isHeapLockFlag() == 5 && mFukiKind != 15)) ||
|
|
(((dComIfGp_isHeapLockFlag() == 2 ||
|
|
(dComIfGp_isHeapLockFlag() == 3 || dComIfGp_isHeapLockFlag() == 1)) &&
|
|
field_0x4cd == 0 && mpTalkHeap != NULL))) &&
|
|
(mpScrnDraw == NULL && dMeter2Info_getFloatingMessageID() != 0x13eb))
|
|
{
|
|
if (!bVar1 && ((dComIfGp_isHeapLockFlag() == 0 || dComIfGp_isHeapLockFlag() == 5))) {
|
|
dComIfGp_setHeapLockFlag(7);
|
|
}
|
|
if (mpTalkHeap == NULL) {
|
|
mpTalkHeap = dComIfGp_getSubHeap2D(7);
|
|
}
|
|
mpTalkHeap->getTotalFreeSize();
|
|
bool local_98 = false;
|
|
if (mpOutFont == NULL) {
|
|
OS_REPORT("free size (0x%x)=====> %d\n", mDoExt_getCurrentHeap(), mDoExt_getCurrentHeap()->getTotalFreeSize());
|
|
mpOutFont = new COutFont_c(0);
|
|
JUT_ASSERT(3035, mpOutFont != 0);
|
|
mpOutFont->createPane();
|
|
mpRenProc->setOutFont(mpOutFont);
|
|
}
|
|
dMsgScrnBase_c* pData;
|
|
jmessage_tReference* pRef;
|
|
switch (mFukiKind) {
|
|
case 9:
|
|
pRef = (jmessage_tReference*)mpRenProc->getReference();
|
|
pData = new dMsgScrnItem_c(pRef->getFukiPosType(), pRef->getForm(), mpTalkHeap);
|
|
JUT_ASSERT(3049, pData != 0);
|
|
mpScrnDraw = pData;
|
|
break;
|
|
case 2:
|
|
if (mFukiKind == 15) {
|
|
local_30 = mDoExt_getRubyFont();
|
|
}
|
|
pData = new dMsgScrnTree_c(local_30, mpTalkHeap);
|
|
JUT_ASSERT(3061, pData != 0);
|
|
mpScrnDraw = pData;
|
|
break;
|
|
case 6:
|
|
pData = new dMsgScrnKanban_c(mpTalkHeap);
|
|
JUT_ASSERT(3069, pData != 0);
|
|
mpScrnDraw = pData;
|
|
break;
|
|
case 7:
|
|
pData = new dMsgScrnStaff_c(((jmessage_tReference*)mpRenProc->getReference())->getArrange());
|
|
JUT_ASSERT(3083, pData != 0);
|
|
mpScrnDraw = pData;
|
|
break;
|
|
case 12:
|
|
pData = new dMsgScrnPlace_c();
|
|
JUT_ASSERT(3092, pData != 0);
|
|
mpScrnDraw = pData;
|
|
break;
|
|
case 19:
|
|
pData = new dMsgScrnBoss_c();
|
|
JUT_ASSERT(3100, pData != 0);
|
|
mpScrnDraw = pData;
|
|
break;
|
|
case 17:
|
|
pData = new dMsgScrnHowl_c();
|
|
JUT_ASSERT(3108, pData != 0);
|
|
mpScrnDraw = pData;
|
|
local_98 = true;
|
|
break;
|
|
case 1:
|
|
case 5:
|
|
pRef = (jmessage_tReference*)mpRenProc->getReference();
|
|
pData = new dMsgScrnJimaku_c(pRef->getForm(), mpTalkHeap);
|
|
JUT_ASSERT(3119, pData != 0);
|
|
mpScrnDraw = pData;
|
|
break;
|
|
case 10:
|
|
field_0x19b = 1;
|
|
default:
|
|
pRef = (jmessage_tReference*)mpRenProc->getReference();
|
|
if (mpRefer->getMsgID() == 0x2a5) {
|
|
pData = new dMsgScrnItem_c(0, pRef->getForm(), mpTalkHeap);
|
|
JUT_ASSERT(3131, pData != 0);
|
|
mpScrnDraw = pData;
|
|
} else {
|
|
pData = new dMsgScrnTalk_c(pRef->getFukiPosType(), pRef->getForm(), mpTalkHeap);
|
|
JUT_ASSERT(3138, pData != 0);
|
|
mpScrnDraw = pData;
|
|
local_98 = true;
|
|
}
|
|
if (field_0x4ce == 0 && mFukiKind != 12) {
|
|
mDoAud_talkIn();
|
|
field_0x4ce = 1;
|
|
}
|
|
break;
|
|
}
|
|
if (mpRefer->getMsgID() == 0xc73) {
|
|
Z2GetAudioMgr()->changeBgmStatus(1);
|
|
}
|
|
if (mpRefer->getMsgID() == 0xc46) {
|
|
Z2GetAudioMgr()->changeBgmStatus(1);
|
|
}
|
|
mpScrnDraw->setMsgID( mpRefer->getMsgID());
|
|
mpScrnDraw->setOutFont(mpOutFont);
|
|
mpRefer->setFont(local_30);
|
|
mpRefer->setActorPos(field_0x100->pos);
|
|
mpRefer->setFontSizeX(mpScrnDraw->getFontSizeX());
|
|
mpRefer->setFontSizeY(mpScrnDraw->getFontSizeY());
|
|
mpRefer->setRubySize(mpScrnDraw->getRubySize());
|
|
mpRefer->setTBoxWidth(mpScrnDraw->getTBoxWidth());
|
|
mpRefer->setTBoxHeight(mpScrnDraw->getTBoxHeight());
|
|
mpRefer->setLineSpace(mpScrnDraw->getLineSpace());
|
|
mpRefer->setCharSpace(mpScrnDraw->getCharSpace());
|
|
mpRefer->setRubyCharSpace(mpScrnDraw->getRubyCharSpace());
|
|
mpRefer->setSelFontSize(mpScrnDraw->getSelFontSize());
|
|
mpRefer->setSelRubySize(mpScrnDraw->getSelRubySize());
|
|
mpRefer->setSelTBoxWidth(mpScrnDraw->getSelTBoxWidth());
|
|
mpRefer->setSelCharSpace(mpScrnDraw->getSelCharSpace());
|
|
mpRefer->setSelRubyCharSpace(mpScrnDraw->getSelRubyCharSpace());
|
|
mpRenProc->setCharInfoPtr(mpScrnDraw->getCharInfoPtr());
|
|
field_0x16a = 0;
|
|
field_0x199 = 0;
|
|
mpScrnDraw->fukiScale(dVar19);
|
|
mpScrnDraw->fukiAlpha(dVar19);
|
|
mpOutFont->setAlphaRatio(dVar19);
|
|
fukiPosCalc(local_98);
|
|
mpScrnDraw->arwAnimeInit();
|
|
mpScrnDraw->dotAnimeInit();
|
|
mpScrnDraw->setString("", "");
|
|
mpScrnDraw->setRubyString("");
|
|
mpScrnDraw->setSelectString("", "", "");
|
|
mpScrnDraw->setSelectRubyString("", "", "");
|
|
}
|
|
}
|
|
|
|
/* 8023670C-802368E4 23104C 01D8+00 1/1 0/0 0/0 .text fukiPosCalc__12dMsgObject_cFb */
|
|
void dMsgObject_c::fukiPosCalc(bool param_1) {
|
|
if (param_1) {
|
|
mpRenProc->setTextInitOffsetPos(mpScrnDraw->getTextBoxPosOffsetY());
|
|
mpScrnDraw->setTextBoxPosOffsetY(0.0f);
|
|
} else {
|
|
jmessage_tReference* pRef =
|
|
(jmessage_tReference*)mpRenProc->getReference();
|
|
u8 bVar4 = pRef->getFukiPosType();
|
|
if (isKanbanMessage() || isBookMessage()) {
|
|
bVar4 = 3;
|
|
} else if (bVar4 == 3) {
|
|
fopAc_ac_c* player = dComIfGp_getPlayer(0);
|
|
cXyz local_3c;
|
|
cXyz cStack_48;
|
|
mDoLib_project(&player->eyePos, &cStack_48);
|
|
f32 temp;
|
|
if ((field_0x100->pos == cXyz(0.0f, 0.0f, 0.0f))) {
|
|
temp = cStack_48.y;
|
|
} else {
|
|
mDoLib_project(&field_0x100->pos, &local_3c);
|
|
if (local_3c.x >= 0.0f && local_3c.x <= 608.0f && local_3c.y >= 0.0f &&
|
|
local_3c.y <= 448.0f)
|
|
{
|
|
temp = 0.5f * (cStack_48.y + local_3c.y);
|
|
} else {
|
|
temp = cStack_48.y;
|
|
}
|
|
}
|
|
if (temp < g_MsgObject_HIO_c.mBoxAppearBound) {
|
|
bVar4 = 0;
|
|
} else {
|
|
bVar4 = 1;
|
|
}
|
|
}
|
|
switch(bVar4) {
|
|
case 1:
|
|
mpScrnDraw->setTextBoxPosOffsetY(-200.0f);
|
|
break;
|
|
case 2:
|
|
mpScrnDraw->setTextBoxPosOffsetY(-100.0f);
|
|
break;
|
|
default:
|
|
mpScrnDraw->setTextBoxPosOffsetY(0.0f);
|
|
break;
|
|
}
|
|
mpRenProc->setTextInitOffsetPos(mpScrnDraw->getTextBoxPosOffsetY());
|
|
}
|
|
}
|
|
|
|
/* 802368E4-802368F8 231224 0014+00 15/15 0/0 0/0 .text setStatusLocal__12dMsgObject_cFUs
|
|
*/
|
|
void dMsgObject_c::setStatusLocal(u16 status) {
|
|
((jmessage_tReference*)mpRenProc->getReference())->setStatus(status);
|
|
}
|
|
|
|
/* 802368F8-8023690C 231238 0014+00 9/9 0/0 0/0 .text getStatusLocal__12dMsgObject_cFv */
|
|
u16 dMsgObject_c::getStatusLocal() {
|
|
return ((jmessage_tReference*)mpRenProc->getReference())->getStatus();
|
|
}
|
|
|
|
/* 8023690C-802369D8 23124C 00CC+00 3/3 0/0 0/0 .text delete_screen__12dMsgObject_cFb */
|
|
void dMsgObject_c::delete_screen(bool param_1) {
|
|
if (mpOutFont != NULL) {
|
|
delete mpOutFont;
|
|
mpOutFont = NULL;
|
|
}
|
|
if (mpScrnDraw != NULL) {
|
|
delete mpScrnDraw;
|
|
mpScrnDraw = NULL;
|
|
if (param_1 && dComIfGp_isHeapLockFlag() == 5)
|
|
{
|
|
dComIfGp_offHeapLockFlag(7);
|
|
}
|
|
}
|
|
if (param_1 && mpTalkHeap != NULL) {
|
|
mpTalkHeap = NULL;
|
|
}
|
|
}
|
|
|
|
/* 802369D8-80236BF8 231318 0220+00 5/5 0/0 0/0 .text isSend__12dMsgObject_cFv */
|
|
u8 dMsgObject_c::isSend() {
|
|
dComIfGp_setDoStatusForce(0, 0);
|
|
u8 mesgCancelButton = dComIfGp_checkMesgCancelButton();
|
|
if (mesgCancelButton) {
|
|
dComIfGp_setMesgCancelButton(0);
|
|
}
|
|
if (mShopWaitTimer != 0) {
|
|
return 0;
|
|
}
|
|
jmessage_tReference* pRef = (jmessage_tReference*)mpRenProc->getReference();
|
|
if (pRef->getSendFlag() != 0) {
|
|
if (pRef->getSendFlag() == 3) {
|
|
if (dMsgObject_isMsgSend()) {
|
|
dMsgObject_offMsgSendControl();
|
|
dMsgObject_offMsgSend();
|
|
return 1;
|
|
}
|
|
dMsgObject_onMsgSendControl();
|
|
return 0;
|
|
}
|
|
if (pRef->getSendFlag() == 4) {
|
|
if (field_0x17e >= pRef->getDemoFrame()) {
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
if (pRef->getSendFlag() == 5) {
|
|
if (getStatusLocal() == 21) {
|
|
setButtonStatusLocal();
|
|
if (mDoCPd_c::getTrigA(0) != 0 || mDoCPd_c::getTrigB(0) != 0) {
|
|
return 2;
|
|
}
|
|
return 0;
|
|
} else {
|
|
return 1;
|
|
}
|
|
}
|
|
if (pRef->getSendTimer() > 0) {
|
|
pRef->decSendTimer();
|
|
} else {
|
|
if (pRef->getSendFlag() == 6) {
|
|
pRef->setSendFlag(0);
|
|
} else {
|
|
return 1;
|
|
}
|
|
}
|
|
if (pRef->getSendFlag() == 2) {
|
|
setButtonStatusLocal();
|
|
if (mDoCPd_c::getTrigA(0) != 0 || mDoCPd_c::getTrigB(0) != 0) {
|
|
return 2;
|
|
}
|
|
}
|
|
} else {
|
|
setButtonStatusLocal();
|
|
if (isHowlMessage()) {
|
|
if (dMsgObject_isMsgSend()) {
|
|
dMsgObject_offMsgSendControl();
|
|
dMsgObject_offMsgSend();
|
|
return 2;
|
|
}
|
|
} else {
|
|
if (mDoCPd_c::getTrigA(0) != 0 || mDoCPd_c::getTrigB(0) != 0) {
|
|
return 2;
|
|
}
|
|
if (mesgCancelButton) {
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
if (field_0x199 || field_0x1a3) {
|
|
return 2;
|
|
} else {
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
/* 80236BF8-80236C90 231538 0098+00 1/1 0/0 0/0 .text
|
|
* readMessageGroupLocal__12dMsgObject_cFPP25mDoDvdThd_mountXArchive_c */
|
|
void dMsgObject_c::readMessageGroupLocal(mDoDvdThd_mountXArchive_c** p_arcMount) {
|
|
static char arcName[22];
|
|
|
|
int msgGroup = dStage_stagInfo_GetMsgGroup(dComIfGp_getStage()->getStagInfo());
|
|
sprintf(arcName, "/res/Msgus/bmgres%d.arc", msgGroup);
|
|
|
|
*p_arcMount = mDoDvdThd_mountXArchive_c::create(arcName, 0, JKRArchive::MOUNT_MEM, NULL);
|
|
|
|
if (msgGroup == 99) {
|
|
msgGroup = 9;
|
|
}
|
|
|
|
s_groupID = msgGroup;
|
|
}
|
|
|
|
/* 80236C90-80236CD4 2315D0 0044+00 1/1 0/0 0/0 .text changeFlowGroupLocal__12dMsgObject_cFl */
|
|
void dMsgObject_c::changeFlowGroupLocal(s32 param_0) {
|
|
mFlowChk = 1;
|
|
changeGroup(param_0 >= 3000 ? (s16)0 : s_groupID);
|
|
}
|
|
|
|
/* 80236CD4-80236D00 231614 002C+00 1/1 0/0 0/0 .text demoMessageGroupLocal__12dMsgObject_cFv */
|
|
void dMsgObject_c::demoMessageGroupLocal() {
|
|
mFlowChk = 0;
|
|
changeGroup(0);
|
|
}
|
|
|
|
/* 80236D00-80236D0C 231640 000C+00 1/1 0/0 0/0 .text endFlowGroupLocal__12dMsgObject_cFv
|
|
*/
|
|
void dMsgObject_c::endFlowGroupLocal() {
|
|
mFlowChk = 0;
|
|
}
|
|
|
|
/* 80236D0C-80236DE4 23164C 00D8+00 1/1 0/0 0/0 .text changeGroupLocal__12dMsgObject_cFs
|
|
*/
|
|
void dMsgObject_c::changeGroupLocal(s16 param_1) {
|
|
JKRHeap* prevHeap = mDoExt_setCurrentHeap(dComIfGp_getMsgExpHeap());
|
|
if (field_0x16c != param_1) {
|
|
if (mFlowChk != 0) {
|
|
JUT_ASSERT(3688, mFlowChk != 2);
|
|
mFlowChk = 2;
|
|
}
|
|
OS_REPORT("group change =====> %d\n", param_1);
|
|
if (param_1 >= 1) {
|
|
OS_REPORT("bmg data change =====> %d --> %d\n", field_0x16c, param_1);
|
|
if (field_0x16c == 0) {
|
|
field_0x19d = 1;
|
|
}
|
|
mpMsgDt = dMeter2Info_getStageMsgResource();
|
|
} else {
|
|
mpMsgDt = mpMsgRes;
|
|
}
|
|
if (field_0x16c >= 0) {
|
|
field_0x124->parse(mpMsgDt, 0x80);
|
|
}
|
|
field_0x16c = param_1;
|
|
}
|
|
mDoExt_setCurrentHeap(prevHeap);
|
|
}
|
|
|
|
/* 80236DE4-802370A8 231724 02C4+00 1/1 0/0 0/0 .text
|
|
* getStringLocal__12dMsgObject_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cPcPcPcPs */
|
|
bool dMsgObject_c::getStringLocal(u32 param_1, J2DTextBox* param_2, J2DTextBox* param_3,
|
|
JUTFont* param_4, COutFont_c* param_5, char* param_6,
|
|
char* param_7, char* param_8, s16* param_9) {
|
|
if (field_0x4cd == 0) {
|
|
if (getStatusLocal() == 1) {
|
|
s16 groupID = getMessageGroup(param_1);
|
|
JUT_ASSERT(3740, groupID==s_groupID || groupID == 0);
|
|
changeGroup(groupID);
|
|
mpSeqProc->setForceForm(1);
|
|
mpRefer->setFont(param_4);
|
|
mpRenProc->setOutFont(param_5);
|
|
mpRefer->setActorPos(cXyz(0.0f, 0.0f, 0.0f));
|
|
J2DTextBox::TFontSize fontSize;
|
|
param_2->getFontSize(fontSize);
|
|
mpRefer->setFontSizeX(fontSize.mSizeX);
|
|
mpRefer->setFontSizeY(fontSize.mSizeY);
|
|
if (param_3 != NULL) {
|
|
param_3->getFontSize(fontSize);
|
|
mpRefer->setRubySize(fontSize.mSizeX);
|
|
} else {
|
|
mpRefer->setRubySize(0.0f);
|
|
}
|
|
mpRefer->setTBoxWidth(param_2->getWidth());
|
|
mpRefer->setTBoxHeight(param_2->getHeight());
|
|
mpRefer->setLineSpace(param_2->getLineSpace());
|
|
mpRefer->setCharSpace(param_2->getCharSpace());
|
|
if (param_3 != NULL) {
|
|
mpRefer->setRubyCharSpace(param_3->getCharSpace());
|
|
} else {
|
|
mpRefer->setRubyCharSpace(0.0f);
|
|
}
|
|
mpRenProc->setCharInfoPtr(NULL);
|
|
field_0x4cd = 1;
|
|
mpCtrl->setMessageID(param_1, 0, NULL);
|
|
}
|
|
} else {
|
|
jmessage_tReference* pRef =
|
|
(jmessage_tReference*)mpRenProc->getReference();
|
|
if (getStatusLocal() == 11 && (pRef->getStopFlag() == 7 || pRef->getStopFlag() == 1))
|
|
{
|
|
mpCtrl->render();
|
|
if (param_9 != NULL) {
|
|
*param_9 = mpRefer->getCharSoundInfo().field_0x40e;
|
|
}
|
|
if (param_6 != NULL) {
|
|
strcpy(param_6, pRef->getTextPtr());
|
|
}
|
|
if (param_7 != NULL) {
|
|
strcpy(param_7, pRef->getRubyPtr());
|
|
}
|
|
if (param_8 != NULL) {
|
|
strcpy(param_8, pRef->getTextSPtr());
|
|
}
|
|
mpCtrl->reset();
|
|
mpCtrl->resetResourceCache();
|
|
mpRefer->resetCharCountBuffer();
|
|
dDemo_c::getControl()->unsuspend(1);
|
|
field_0x17e = 0;
|
|
updateEquipBombInfoLocal();
|
|
field_0x4cd = 0;
|
|
pRef->setStopFlag(0);
|
|
setStatusLocal(1);
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/* 802370A8-802370BC 2319E8 0014+00 0/0 1/1 0/0 .text isGetItemMessage__12dMsgObject_cFv
|
|
*/
|
|
u8 dMsgObject_c::isGetItemMessage() {
|
|
return mFukiKind == 9;
|
|
}
|
|
|
|
/* 802370BC-802370E8 2319FC 002C+00 4/4 2/2 0/0 .text isKanbanMessage__12dMsgObject_cFv
|
|
*/
|
|
bool dMsgObject_c::isKanbanMessage() {
|
|
if (mFukiKind == 2 || mFukiKind == 6 || mFukiKind == 15) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/* 802370E8-802370FC 231A28 0014+00 6/6 3/3 0/0 .text isHowlMessage__12dMsgObject_cFv */
|
|
u8 dMsgObject_c::isHowlMessage() {
|
|
return mFukiKind == 17;
|
|
}
|
|
|
|
/* 802370FC-80237138 231A3C 003C+00 3/3 2/2 0/0 .text isMidonaMessage__12dMsgObject_cFv
|
|
*/
|
|
bool dMsgObject_c::isMidonaMessage() {
|
|
if (mFukiKind == 13 && (mpRefer->getMsgID() == 0x7d3 || mpRefer->getMsgID() == 0x7f6 ||
|
|
mpRefer->getMsgID() == 0x7fa))
|
|
{
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
/* 80237138-802371B0 231A78 0078+00 1/1 0/0 0/0 .text isMidonaNormalTalkWait__12dMsgObject_cFv */
|
|
bool dMsgObject_c::isMidonaNormalTalkWait() {
|
|
if (mFukiKind == 13 && !isMidonaMessage()) {
|
|
daMidna_c* midna = daPy_py_c::getMidnaActor();
|
|
if (midna != NULL && !midna->checkShadowModeTalkWait()) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 802371B0-802371E4 231AF0 0034+00 0/0 1/1 0/0 .text isMidonaTalkWait__12dMsgObject_cFv
|
|
*/
|
|
bool dMsgObject_c::isMidonaTalkWait() {
|
|
daMidna_c* midna = daPy_py_c::getMidnaActor();
|
|
if (midna != NULL) {
|
|
return midna->checkShadowModeTalkWait();
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/* 802371E4-802371F8 231B24 0014+00 4/4 3/3 2/2 .text isPlaceMessage__12dMsgObject_cFv */
|
|
bool dMsgObject_c::isPlaceMessage() {
|
|
return mFukiKind == 12 ? 1 : 0;
|
|
}
|
|
|
|
/* 802371F8-8023720C 231B38 0014+00 3/3 2/2 0/0 .text isBossMessage__12dMsgObject_cFv */
|
|
bool dMsgObject_c::isBossMessage() {
|
|
return mFukiKind == 19 ? 1 : 0;
|
|
}
|
|
|
|
/* 8023720C-80237214 231B4C 0008+00 6/6 2/2 0/0 .text isBookMessage__12dMsgObject_cFv */
|
|
bool dMsgObject_c::isBookMessage() {
|
|
return false;
|
|
}
|
|
|
|
/* 80237214-80237228 231B54 0014+00 3/3 2/2 0/0 .text isStaffMessage__12dMsgObject_cFv */
|
|
bool dMsgObject_c::isStaffMessage() {
|
|
return mFukiKind == 7 ? 1 : 0;
|
|
}
|
|
|
|
/* 80237228-8023723C 231B68 0014+00 0/0 1/1 0/0 .text isSaveMessage__12dMsgObject_cFv */
|
|
bool dMsgObject_c::isSaveMessage() {
|
|
return mFukiKind == 16 ? 1 : 0;
|
|
}
|
|
|
|
/* 8023723C-802372CC 231B7C 0090+00 4/4 0/0 0/0 .text isTalkMessage__12dMsgObject_cFv */
|
|
bool dMsgObject_c::isTalkMessage() {
|
|
if (isKanbanMessage() || isPlaceMessage() || isBossMessage() || isBookMessage() ||
|
|
isHowlMessage() || isStaffMessage()) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/* 802372CC-80237334 231C0C 0068+00 0/0 5/5 0/0 .text getSmellName__12dMsgObject_cFv */
|
|
const char* dMsgObject_c::getSmellName() {
|
|
JMSMesgHeader_c* info_header_p = (JMSMesgHeader_c*)((char*)mpMsgRes + 0x20);
|
|
char* data_ptr = (char*)info_header_p + info_header_p->sectionSize;
|
|
JMSMesgEntry_c* info_entries = (JMSMesgEntry_c*)((char*)info_header_p + 0x10);
|
|
|
|
JMSMesgEntry_c* msg_entry = &info_entries[(u16)getMessageIndex(getSmellTypeMessageID())];
|
|
return data_ptr + msg_entry->mStringOffset + 8;
|
|
}
|
|
|
|
/* 80237334-8023738C 231C74 0058+00 0/0 5/5 0/0 .text getPortalName__12dMsgObject_cFv */
|
|
const char* dMsgObject_c::getPortalName() {
|
|
JMSMesgHeader_c* info_header_p = (JMSMesgHeader_c*)((char*)mpMsgRes + 0x20);
|
|
char* data_ptr = (char*)info_header_p + info_header_p->sectionSize;
|
|
JMSMesgEntry_c* info_entries = (JMSMesgEntry_c*)((char*)info_header_p + 0x10);
|
|
|
|
JMSMesgEntry_c* msg_entry = &info_entries[getMessageIndex(getPortalMessageID())];
|
|
return data_ptr + msg_entry->mStringOffset + 8;
|
|
}
|
|
|
|
/* 8023738C-8023741C 231CCC 0090+00 0/0 5/5 0/0 .text getBombName__12dMsgObject_cFv */
|
|
const char* dMsgObject_c::getBombName() {
|
|
u8 i_selectPos = getSelectCursorPos();
|
|
JUT_ASSERT(4075, i_selectPos >= 0 && i_selectPos < dSv_player_item_c::BOMB_BAG_MAX);
|
|
u8 i_cursorPos;
|
|
if (field_0x193 != 0) {
|
|
i_cursorPos = getSelectBomBag(i_selectPos);
|
|
} else {
|
|
i_cursorPos = i_selectPos;
|
|
}
|
|
JUT_ASSERT(4083, i_cursorPos >= 0 && i_cursorPos < dSv_player_item_c::BOMB_BAG_MAX);
|
|
JMSMesgHeader_c* info_header_p = (JMSMesgHeader_c*)((char*)mpMsgRes + 0x20);
|
|
char* data_ptr = (char*)info_header_p + info_header_p->sectionSize;
|
|
JMSMesgEntry_c* info_entries = (JMSMesgEntry_c*)((char*)info_header_p + 0x10);
|
|
|
|
JMSMesgEntry_c* msg_entry = &info_entries[getMessageIndexAlways(getBombMessageIDLocal(i_cursorPos) + 0x165)];
|
|
return data_ptr + msg_entry->mStringOffset + 8;
|
|
}
|
|
|
|
/* 8023741C-80237478 231D5C 005C+00 0/0 5/5 0/0 .text getInsectName__12dMsgObject_cFv */
|
|
const char* dMsgObject_c::getInsectName() {
|
|
JMSMesgHeader_c* info_header_p = (JMSMesgHeader_c*)((char*)mpMsgRes + 0x20);
|
|
char* data_ptr = (char*)info_header_p + info_header_p->sectionSize;
|
|
JMSMesgEntry_c* info_entries = (JMSMesgEntry_c*)((char*)info_header_p + 0x10);
|
|
|
|
JMSMesgEntry_c* msg_entry = &info_entries[getMessageIndexAlways(getInsectItemNoLocal() + 0x165)];
|
|
return data_ptr + msg_entry->mStringOffset + 8;
|
|
}
|
|
|
|
/* 80237478-802374D0 231DB8 0058+00 0/0 5/5 0/0 .text getLetterName__12dMsgObject_cFv */
|
|
const char* dMsgObject_c::getLetterName() {
|
|
JMSMesgHeader_c* info_header_p = (JMSMesgHeader_c*)((char*)mpMsgRes + 0x20);
|
|
char* data_ptr = (char*)info_header_p + info_header_p->sectionSize;
|
|
JMSMesgEntry_c* info_entries = (JMSMesgEntry_c*)((char*)info_header_p + 0x10);
|
|
|
|
JMSMesgEntry_c* msg_entry = &info_entries[getMessageIndexAlways(getLetterNameIDLocal())];
|
|
return data_ptr + msg_entry->mStringOffset + 8;
|
|
}
|
|
|
|
/* 802374D0-80237520 231E10 0050+00 1/1 5/5 0/0 .text getSelectBombNum__12dMsgObject_cFv
|
|
*/
|
|
u8 dMsgObject_c::getSelectBombNum() {
|
|
u8 i_selectPos = getSelectCursorPos();
|
|
JUT_ASSERT(4133, i_selectPos >= 0 && i_selectPos < dSv_player_item_c::BOMB_BAG_MAX)
|
|
if (field_0x193 != 0) {
|
|
i_selectPos = getSelectBomBag(i_selectPos);
|
|
}
|
|
return getBombNumLocal(i_selectPos);
|
|
}
|
|
|
|
/* 80237520-80237530 231E60 0010+00 1/1 0/0 0/0 .text onMsgSendControlLocal__12dMsgObject_cFv */
|
|
void dMsgObject_c::onMsgSendControlLocal() {
|
|
mMsgSendControl |= 1;
|
|
}
|
|
|
|
/* 80237530-80237550 231E70 0020+00 1/1 0/0 0/0 .text offMsgSendControlLocal__12dMsgObject_cFv */
|
|
void dMsgObject_c::offMsgSendControlLocal() {
|
|
mMsgSendControl &= ~1;
|
|
((jmessage_tReference*)mpRenProc->getReference())->setSendFlag(0);
|
|
}
|
|
|
|
/* 80237550-8023755C 231E90 000C+00 1/1 0/0 0/0 .text isMsgSendControlLocal__12dMsgObject_cFv */
|
|
int dMsgObject_c::isMsgSendControlLocal() {
|
|
return (mMsgSendControl & 1) != 0;
|
|
}
|
|
|
|
/* 8023755C-8023756C 231E9C 0010+00 1/1 0/0 0/0 .text onMsgSendLocal__12dMsgObject_cFv */
|
|
void dMsgObject_c::onMsgSendLocal() {
|
|
mMsgSendControl |= 2;
|
|
}
|
|
|
|
/* 8023756C-8023757C 231EAC 0010+00 1/1 0/0 0/0 .text offMsgSendLocal__12dMsgObject_cFv
|
|
*/
|
|
void dMsgObject_c::offMsgSendLocal() {
|
|
mMsgSendControl &= ~2;
|
|
}
|
|
|
|
/* 8023757C-80237588 231EBC 000C+00 1/1 0/0 0/0 .text isMsgSendLocal__12dMsgObject_cFv */
|
|
int dMsgObject_c::isMsgSendLocal() {
|
|
return (mMsgSendControl & 2) != 0;
|
|
}
|
|
|
|
/* 80237588-8023759C 231EC8 0014+00 1/1 0/0 0/0 .text isMouthCheckLocal__12dMsgObject_cFv
|
|
*/
|
|
bool dMsgObject_c::isMouthCheckLocal() {
|
|
return mpSeqProc->getMouthCheck() != 0;
|
|
}
|
|
|
|
/* 8023759C-802375E4 231EDC 0048+00 1/1 0/0 0/0 .text getBombBuyPriceLocal__12dMsgObject_cFUc */
|
|
int dMsgObject_c::getBombBuyPriceLocal(u8 param_0) {
|
|
switch(param_0) {
|
|
case 0x70:
|
|
return 15;
|
|
case 0x71:
|
|
return 30;
|
|
case 0x72:
|
|
return 30;
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
/* 802375E4-80237610 231F24 002C+00 0/0 1/1 0/0 .text addSelectBomBag__12dMsgObject_cFUc
|
|
*/
|
|
void dMsgObject_c::addSelectBomBag(u8 param_1) {
|
|
if (param_1 == 0xff) {
|
|
param_1 = field_0x193;
|
|
}
|
|
mSelectBombBag[field_0x193] = param_1;
|
|
field_0x193++;
|
|
OS_REPORT("addSelectBombBag ==> %d, %d\n", field_0x193, param_1);
|
|
}
|
|
|
|
/* 80237610-8023763C 231F50 002C+00 1/1 1/1 0/0 .text resetSelectBomBag__12dMsgObject_cFv
|
|
*/
|
|
void dMsgObject_c::resetSelectBomBag() {
|
|
for (int i = 0; i < 3; i++) {
|
|
mSelectBombBag[i] = 0;
|
|
}
|
|
field_0x193 = 0;
|
|
}
|
|
|
|
/* 8023763C-8023768C 231F7C 0050+00 1/1 0/0 0/0 .text getSelectBombBagIDLocal__12dMsgObject_cFv */
|
|
u8 dMsgObject_c::getSelectBombBagIDLocal() {
|
|
u8 i_selectPos = getSelectCursorPos();
|
|
JUT_ASSERT(4253, i_selectPos >= 0 && i_selectPos < dSv_player_item_c::BOMB_BAG_MAX);
|
|
if (field_0x193 != 0) {
|
|
i_selectPos = getSelectBomBag(i_selectPos);
|
|
}
|
|
return getBombBagIDLocal(i_selectPos);
|
|
}
|
|
|
|
/* 8023768C-8023773C 231FCC 00B0+00 1/1 0/0 0/0 .text getSelectBombPriceLocal__12dMsgObject_cFv */
|
|
s16 dMsgObject_c::getSelectBombPriceLocal() {
|
|
u8 i_selectPos = getSelectCursorPos();
|
|
JUT_ASSERT(4276, i_selectPos >= 0 && i_selectPos < dSv_player_item_c::BOMB_BAG_MAX);
|
|
u8 i_cursorPos = field_0x193 != 0 ? getSelectBomBag(i_selectPos) : i_selectPos++;
|
|
u16 uVar1 = getBombBuyPriceLocal(getBombMessageIDLocal(i_cursorPos));
|
|
int num = getSelectBombNum();
|
|
return (num * uVar1) / 10.0f;
|
|
}
|
|
|
|
/* 8023773C-80237748 23207C 000C+00 1/1 0/0 0/0 .text setEquipBombInfoLocal__12dMsgObject_cFv */
|
|
void dMsgObject_c::setEquipBombInfoLocal() {
|
|
mEquipBombInfo = 1;
|
|
}
|
|
|
|
/* 80237748-802378B8 232088 0170+00 3/3 0/0 0/0 .text updateEquipBombInfoLocal__12dMsgObject_cFv
|
|
*/
|
|
void dMsgObject_c::updateEquipBombInfoLocal() {
|
|
if (mEquipBombInfo == 0) {
|
|
return;
|
|
}
|
|
bool bVar1 = true;
|
|
if (s_groupID == 2 && (mNowTalkFlowNo == 365 || mNowTalkFlowNo == 366 || mNowTalkFlowNo == 367))
|
|
{
|
|
bVar1 = false;
|
|
}
|
|
int iVar5 = 0;
|
|
for (int i = 0; (int)i < 3; i++) {
|
|
setBombBagIDLocal(i, 0xff);
|
|
setBombMessageIDLocal(i, 0);
|
|
setBombNumLocal(i, 0);
|
|
u8 bVar3 = dComIfGs_getItem(i + 15, 0);
|
|
if (bVar3 != 0xff && (bVar3 != 0x50 || bVar1)) {
|
|
setBombBagIDLocal(iVar5, i);
|
|
setBombMessageIDLocal(iVar5, bVar3);
|
|
if (bVar3 == 0x50) {
|
|
setBombNumLocal(iVar5, 0);
|
|
} else {
|
|
setBombNumLocal(iVar5, dComIfGs_getBombNum(i));
|
|
}
|
|
iVar5++;
|
|
}
|
|
}
|
|
if (iVar5 == 1) {
|
|
for (int i = 1; i < 3; i++) {
|
|
setBombBagIDLocal(i, getBombBagIDLocal(0));
|
|
setBombMessageIDLocal(i, getBombMessageIDLocal(0));
|
|
setBombNumLocal(i, getBombNumLocal(0));
|
|
}
|
|
}
|
|
mEquipBombInfo = 0;
|
|
}
|
|
|
|
/* 802378B8-802378CC 2321F8 0014+00 0/0 1/1 0/0 .text setShopWaitTimer__12dMsgObject_cFUc
|
|
*/
|
|
void dMsgObject_c::setShopWaitTimer(u8 timer) {
|
|
dMsgObject_getMsgObjectClass()->setShopWaitTimerLocal(timer);
|
|
}
|
|
|
|
/* 802378CC-802378D4 -00001 0008+00 0/0 0/0 0/0 .text setSelectWordFlagLocal__12dMsgObject_cFUc */
|
|
void dMsgObject_c::setSelectWordFlagLocal(u8 param_0) {
|
|
mSelectWordFlag = param_0;
|
|
}
|
|
|
|
/* 802378D4-80237934 232214 0060+00 1/1 0/0 0/0 .text isHowlHearingModeLocal__12dMsgObject_cFv */
|
|
bool dMsgObject_c::isHowlHearingModeLocal() {
|
|
bool rv = false;
|
|
if (isHowlMessage() && mpScrnDraw != NULL && ((dMsgScrnHowl_c*)mpScrnDraw)->isHearingMode()) {
|
|
rv = true;
|
|
}
|
|
return rv;
|
|
}
|
|
|
|
/* 80237934-80237950 232274 001C+00 1/1 0/0 0/0 .text isCameraCancelFlag__12dMsgObject_cFv */
|
|
bool dMsgObject_c::isCameraCancelFlag() {
|
|
return dMsgObject_getMsgObjectClass()->isCameraCancelFlagLocal() ? true : false;
|
|
}
|
|
|
|
/* 80237950-80237968 232290 0018+00 2/2 0/0 0/0 .text onCameraCancelFlag__12dMsgObject_cFv */
|
|
void dMsgObject_c::onCameraCancelFlag() {
|
|
dMsgObject_getMsgObjectClass()->onCameraCancelFlagLocal();
|
|
}
|
|
|
|
/* 80237968-80237980 2322A8 0018+00 1/1 0/0 0/0 .text offCameraCancelFlag__12dMsgObject_cFv */
|
|
void dMsgObject_c::offCameraCancelFlag() {
|
|
dMsgObject_getMsgObjectClass()->offCameraCancelFlagLocal();
|
|
}
|
|
|
|
/* 80237980-80237994 2322C0 0014+00 0/0 1/1 0/0 .text isKillMessageFlag__12dMsgObject_cFv
|
|
*/
|
|
bool dMsgObject_c::isKillMessageFlag() {
|
|
return dMsgObject_getMsgObjectClass()->isKillMessageFlagLocal();
|
|
}
|
|
|
|
/* 80237994-802379AC 2322D4 0018+00 0/0 2/2 3/3 .text onKillMessageFlag__12dMsgObject_cFv
|
|
*/
|
|
void dMsgObject_c::onKillMessageFlag() {
|
|
dMsgObject_getMsgObjectClass()->onKillMessageFlagLocal();
|
|
}
|
|
|
|
/* 802379AC-802379D8 2322EC 002C+00 0/0 2/2 0/0 .text setKillMessageFlag__12dMsgObject_cFv */
|
|
void dMsgObject_c::setKillMessageFlag() {
|
|
dMsgObject_getMsgObjectClass()->setKillMessageFlagLocal();
|
|
}
|
|
|
|
/* 802379D8-80237A74 232318 009C+00 1/1 0/0 0/0 .text setKillMessageFlagLocal__12dMsgObject_cFv */
|
|
void dMsgObject_c::setKillMessageFlagLocal() {
|
|
if (!dComIfGp_event_runCheck()) {
|
|
if (getStatusLocal() != 1) {
|
|
if (getStatusLocal() == 11) {
|
|
field_0x4cd = 0;
|
|
dMeter2Info_resetFloatingMessage();
|
|
}
|
|
deleteProc();
|
|
jmessage_tReference* pRef = (jmessage_tReference*)mpRenProc->getReference();
|
|
pRef->setStopFlag(0);
|
|
} else {
|
|
mNoDemoFlag = 0;
|
|
field_0x4cc = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80237A74-80237A88 2323B4 0014+00 0/0 3/3 0/0 .text setTalkPartner__12dMsgObject_cFP10fopAc_ac_c
|
|
*/
|
|
void dMsgObject_c::setTalkPartner(fopAc_ac_c* param_0) {
|
|
dMsgObject_getMsgObjectClass()->setTalkPartnerLocal(param_0);
|
|
}
|
|
|
|
/* 80237A88-80237A9C 2323C8 0014+00 1/1 2/2 0/0 .text setNowTalkFlowNo__12dMsgObject_cFs
|
|
*/
|
|
void dMsgObject_c::setNowTalkFlowNo(s16 param_0) {
|
|
dMsgObject_getMsgObjectClass()->setNowTalkFlowNoLocal(param_0);
|
|
}
|
|
|
|
/* 80237A9C-80237AB0 2323DC 0014+00 0/0 0/0 1/1 .text getNowTalkFlowNo__12dMsgObject_cFv
|
|
*/
|
|
s16 dMsgObject_c::getNowTalkFlowNo() {
|
|
return dMsgObject_getMsgObjectClass()->getNowTalkFlowNoLocal();
|
|
}
|
|
|
|
/* 80237AB0-80237AE0 2323F0 0030+00 0/0 1/1 0/0 .text setDemoMessage__12dMsgObject_cFUl
|
|
*/
|
|
void dMsgObject_c::setDemoMessage(u32 param_0) {
|
|
dMsgObject_getMsgObjectClass()->setDemoMessageLocal(param_0);
|
|
}
|
|
|
|
/* 80237AE0-80237B10 232420 0030+00 0/0 8/8 0/0 .text setTalkHeap__12dMsgObject_cFPv */
|
|
void dMsgObject_c::setTalkHeap(void* param_0) {
|
|
dMsgObject_getMsgObjectClass()->setTalkHeapLocal(param_0);
|
|
}
|
|
|
|
/* 80237B10-80237B54 232450 0044+00 1/1 0/0 0/0 .text setTalkHeapLocal__12dMsgObject_cFPv
|
|
*/
|
|
void dMsgObject_c::setTalkHeapLocal(void* param_1) {
|
|
if (param_1 == NULL) {
|
|
delete_screen(true);
|
|
}
|
|
mpTalkHeap = (JKRExpHeap*)param_1;
|
|
}
|
|
|
|
/* 80237B54-80237B68 232494 0014+00 0/0 2/2 0/0 .text getTalkHeap__12dMsgObject_cFv */
|
|
void* dMsgObject_c::getTalkHeap() {
|
|
return dMsgObject_getMsgObjectClass()->getTalkHeapLocal();
|
|
}
|
|
|
|
/* 80237B68-80237BFC 2324A8 0094+00 2/2 0/0 0/0 .text isDraw__12dMsgObject_cFv */
|
|
bool dMsgObject_c::isDraw() {
|
|
if ((getStatusLocal() != 0 && getStatusLocal() != 1 && field_0x4c7 == 0) &&
|
|
(getStatusLocal() != 11 && (getStatusLocal() != 6 || field_0x166 != 15)))
|
|
{
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/* 80237BFC-80237D88 23253C 018C+00 2/2 0/0 0/0 .text setButtonStatusLocal__12dMsgObject_cFv */
|
|
void dMsgObject_c::setButtonStatusLocal() {
|
|
jmessage_tReference* pRef = (jmessage_tReference*)mpRenProc->getReference();
|
|
if (field_0x168 == getStatusLocal() && (pRef->getSendFlag() != 1 && pRef->getSendFlag() != 3) &&
|
|
pRef->getSendFlag() != 4 && pRef->getSendFlag() != 6 && pRef->getSendFlag() != 2)
|
|
{
|
|
if (getStatusLocal() == 0x10) {
|
|
if (isHowlMessage()) {
|
|
dComIfGp_setDoStatusForce(5, 0);
|
|
dComIfGp_setAStatusForce(42, 0);
|
|
} else {
|
|
dComIfGp_setDoStatusForce(35, 0);
|
|
}
|
|
} else if (getStatusLocal() == 8 || getStatusLocal() == 9 ||
|
|
getStatusLocal() == 20)
|
|
{
|
|
dComIfGp_setDoStatusForce(0x22, 0);
|
|
} else if (getStatusLocal() == 21) {
|
|
dComIfGp_setDoStatusForce(0x22, 0);
|
|
dComIfGp_setAStatusForce(0x2a, 0);
|
|
} else {
|
|
dComIfGp_setDoStatusForce(0x23, 0);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 80237D88-80237DD8 2326C8 0050+00 1/1 0/0 0/0 .text setDemoMessageLocal__12dMsgObject_cFUl */
|
|
void dMsgObject_c::setDemoMessageLocal(u32 param_1) {
|
|
field_0x4cc = 1;
|
|
dMsgObject_onCameraCancelFlag();
|
|
fopMsgM_messageSet(dMsgObject_getMsgObjectClass()->getMessageIDAlways(param_1), 1000);
|
|
}
|
|
|
|
/* 80237DD8-80237E04 232718 002C+00 1/1 0/0 0/0 .text getSmellTypeMessageIDLocal__12dMsgObject_cFv
|
|
*/
|
|
u16 dMsgObject_c::getSmellTypeMessageIDLocal() {
|
|
u16 msgId = 0;
|
|
int smell = dComIfGs_getCollectSmell();
|
|
if (smell < fpcNm_ITEM_SMELL_MEDICINE + 1 && smell >= fpcNm_ITEM_SMELL_YELIA_POUCH) {
|
|
msgId = smell + 0x165;
|
|
} else {
|
|
if (dComIfGs_getCollectSmell() != -1) {
|
|
OS_REPORT("smell type ====> %d\n", dComIfGs_getCollectSmell());
|
|
JUT_WARN(4858, "smell type no entry!");
|
|
}
|
|
}
|
|
return msgId;
|
|
}
|
|
|
|
/* 80237E04-80237E58 232744 0054+00 1/1 0/0 0/0 .text setSmellTypeLocal__12dMsgObject_cFUc */
|
|
void dMsgObject_c::setSmellTypeLocal(u8 smellType) {
|
|
mSmellType = smellType;
|
|
dComIfGs_onItemFirstBit(smellType);
|
|
dComIfGs_setCollectSmell(mSmellType);
|
|
dComIfGs_setSelectItemIndex(2, mSmellType);
|
|
}
|
|
|
|
/* 80237E58-80237E68 232798 0010+00 3/3 0/0 0/0 .text getSelectCursorPosLocal__12dMsgObject_cFv */
|
|
u8 dMsgObject_c::getSelectCursorPosLocal() {
|
|
return ((jmessage_tReference*)mpRenProc->getReference())->getSelectPos();
|
|
}
|
|
|
|
/* 80237E68-80237F10 2327A8 00A8+00 3/3 0/0 0/0 .text setSelectCursorPosLocal__12dMsgObject_cFUc
|
|
*/
|
|
void dMsgObject_c::setSelectCursorPosLocal(u8 param_1) {
|
|
jmessage_tReference* pRef = (jmessage_tReference*)mpRenProc->getReference();
|
|
if (!dComIfGp_isPauseFlag() && param_1 != 0xff && pRef->getSelectPos() != param_1) {
|
|
Z2GetAudioMgr()->seStart(daAlink_c::WANM_ATTACK_POE, NULL, 1, 0, 1.0f, 1.0f, -1.0f, -1.0f,
|
|
0);
|
|
}
|
|
pRef->setSelectPos(param_1);
|
|
}
|
|
|
|
/* 80237F10-80237F18 -00001 0008+00 0/0 0/0 0/0 .text
|
|
* setTalkActorLocal__12dMsgObject_cFP10fopAc_ac_c */
|
|
void dMsgObject_c::setTalkActorLocal(fopAc_ac_c* actor) {
|
|
mpTalkActor = actor;
|
|
}
|
|
|
|
/* 80237F18-80237F38 232858 0020+00 1/0 0/0 0/0 .text dMsgObject_Draw__FP12dMsgObject_c
|
|
*/
|
|
static int dMsgObject_Draw(dMsgObject_c* i_this) {
|
|
return i_this->_draw();
|
|
}
|
|
|
|
/* 80237F38-80237F58 232878 0020+00 1/0 0/0 0/0 .text dMsgObject_Execute__FP12dMsgObject_c */
|
|
static int dMsgObject_Execute(dMsgObject_c* i_this) {
|
|
return i_this->_execute();
|
|
}
|
|
|
|
/* 80237F58-80237F60 232898 0008+00 1/0 0/0 0/0 .text dMsgObject_IsDelete__FP12dMsgObject_c */
|
|
static int dMsgObject_IsDelete(dMsgObject_c* i_this) {
|
|
return 1;
|
|
}
|
|
|
|
/* 80237F60-80237F80 2328A0 0020+00 1/0 0/0 0/0 .text dMsgObject_Delete__FP12dMsgObject_c
|
|
*/
|
|
static int dMsgObject_Delete(dMsgObject_c* i_this) {
|
|
return i_this->_delete();
|
|
}
|
|
|
|
/* 80237F80-8023800C 2328C0 008C+00 1/0 0/0 0/0 .text dMsgObject_Create__FP9msg_class */
|
|
int dMsgObject_Create(msg_class* param_1) {
|
|
dMsgObject_c* obj = static_cast<dMsgObject_c*>(param_1);
|
|
dComIfGp_setMsgObjectClass(obj);
|
|
JKRHeap* prevHeap = mDoExt_setCurrentHeap(dComIfGp_getMsgExpHeap());
|
|
dComIfGp_getMsgExpHeap()->getTotalFreeSize();
|
|
fopMsgM_setStageLayer(param_1);
|
|
param_1->mode = 0;
|
|
int rv = obj->_create(param_1);
|
|
g_MsgObject_HIO_c.field_0x4 = -1;
|
|
OS_REPORT("### msg object size =====> %d\n", dComIfGp_getMsgExpHeap()->getTotalFreeSize());
|
|
mDoExt_setCurrentHeap(prevHeap);
|
|
return rv;
|
|
}
|
|
|
|
/* 8023800C-8023803C 23294C 0030+00 0/0 1/1 0/0 .text
|
|
* readMessageGroup__12dMsgObject_cFPP25mDoDvdThd_mountXArchive_c */
|
|
void dMsgObject_c::readMessageGroup(mDoDvdThd_mountXArchive_c** p_arcMount) {
|
|
dMsgObject_getMsgObjectClass()->readMessageGroupLocal(p_arcMount);
|
|
}
|
|
|
|
/* 8023803C-8023806C 23297C 0030+00 0/0 3/3 0/0 .text changeFlowGroup__12dMsgObject_cFl
|
|
*/
|
|
void dMsgObject_c::changeFlowGroup(s32 param_0) {
|
|
dMsgObject_getMsgObjectClass()->changeFlowGroupLocal(param_0);
|
|
}
|
|
|
|
/* 8023806C-80238098 2329AC 002C+00 0/0 1/1 0/0 .text demoMessageGroup__12dMsgObject_cFv
|
|
*/
|
|
void dMsgObject_c::demoMessageGroup() {
|
|
dMsgObject_getMsgObjectClass()->demoMessageGroupLocal();
|
|
}
|
|
|
|
/* 80238098-802380C4 2329D8 002C+00 0/0 3/3 4/4 .text endFlowGroup__12dMsgObject_cFv */
|
|
void dMsgObject_c::endFlowGroup() {
|
|
dMsgObject_getMsgObjectClass()->endFlowGroupLocal();
|
|
}
|
|
|
|
/* 802380C4-802380F4 232A04 0030+00 7/7 0/0 0/0 .text changeGroup__12dMsgObject_cFs */
|
|
void dMsgObject_c::changeGroup(s16 param_0) {
|
|
dMsgObject_getMsgObjectClass()->changeGroupLocal(param_0);
|
|
}
|
|
|
|
/* 802380F4-80238174 232A34 0080+00 0/0 2/2 0/0 .text
|
|
* getString__12dMsgObject_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cPcPcPcPs */
|
|
bool dMsgObject_c::getString(u32 param_0, J2DTextBox* param_1, J2DTextBox* param_2,
|
|
JUTFont* param_3, COutFont_c* param_4, char* param_5, char* param_6,
|
|
char* param_7, s16* param_8) {
|
|
return dMsgObject_getMsgObjectClass()->getStringLocal(
|
|
param_0, param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8);
|
|
}
|
|
|
|
/* 80238174-80238188 232AB4 0014+00 0/0 1/1 0/0 .text getMsgDtPtr__12dMsgObject_cFv */
|
|
void* dMsgObject_c::getMsgDtPtr() {
|
|
return dMsgObject_getMsgObjectClass()->getMsgDtPtrLocal();
|
|
}
|
|
|
|
/* 80238188-8023819C 232AC8 0014+00 0/0 0/0 1/1 .text setProcessID__12dMsgObject_cFUi */
|
|
void dMsgObject_c::setProcessID(fpc_ProcID id) {
|
|
dMsgObject_getMsgObjectClass()->setProcessIDLocal(id);
|
|
}
|
|
|
|
/* 8023819C-802381C0 232ADC 0024+00 0/0 5/5 5/5 .text getActor__12dMsgObject_cFv */
|
|
msg_class* dMsgObject_c::getActor() {
|
|
if (dMsgObject_getMsgObjectClass() == NULL) {
|
|
return NULL;
|
|
}
|
|
return dMsgObject_getMsgObjectClass()->getActorLocal();
|
|
}
|
|
|
|
/* 802381C0-802381D4 232B00 0014+00 0/0 0/0 3/3 .text getpTalkActor__12dMsgObject_cFv */
|
|
fopAc_ac_c* dMsgObject_c::getpTalkActor() {
|
|
return dMsgObject_getMsgObjectClass()->getpTalkActorLocal();
|
|
}
|
|
|
|
/* 802381D4-802381E8 232B14 0014+00 0/0 0/0 1/1 .text getIdx__12dMsgObject_cFv */
|
|
int dMsgObject_c::getIdx() {
|
|
return dMsgObject_getMsgObjectClass()->getIdxLocal();
|
|
}
|
|
|
|
/* 802381E8-802381FC 232B28 0014+00 0/0 0/0 1/1 .text getNodeIdx__12dMsgObject_cFv */
|
|
u16 dMsgObject_c::getNodeIdx() {
|
|
return dMsgObject_getMsgObjectClass()->getNodeIdxLocal();
|
|
}
|
|
|
|
/* 802381FC-8023822C 232B3C 0030+00 0/0 1/1 3/3 .text setStatus__12dMsgObject_cFUs */
|
|
void dMsgObject_c::setStatus(u16 status) {
|
|
dMsgObject_getMsgObjectClass()->setStatusLocal(status);
|
|
}
|
|
|
|
/* 8023822C-80238258 232B6C 002C+00 0/0 40/40 22/22 .text getStatus__12dMsgObject_cFv */
|
|
u16 dMsgObject_c::getStatus() {
|
|
return dMsgObject_getMsgObjectClass()->getStatusLocal();
|
|
}
|
|
|
|
/* 80238258-8023826C 232B98 0014+00 0/0 1/1 0/0 .text getScrnDrawPtr__12dMsgObject_cFv */
|
|
dMsgScrnBase_c* dMsgObject_c::getScrnDrawPtr() {
|
|
return dMsgObject_getMsgObjectClass()->getScrnDrawPtrLocal();
|
|
}
|
|
|
|
/* 8023826C-8023829C 232BAC 0030+00 0/0 1/1 0/0 .text setTalkActor__12dMsgObject_cFP10fopAc_ac_c
|
|
*/
|
|
void dMsgObject_c::setTalkActor(fopAc_ac_c* actor) {
|
|
dMsgObject_getMsgObjectClass()->setTalkActorLocal(actor);
|
|
}
|
|
|
|
/* 8023829C-802382C8 232BDC 002C+00 1/1 0/0 0/0 .text onMsgSendControl__12dMsgObject_cFv
|
|
*/
|
|
void dMsgObject_c::onMsgSendControl() {
|
|
dMsgObject_getMsgObjectClass()->onMsgSendControlLocal();
|
|
}
|
|
|
|
/* 802382C8-802382F4 232C08 002C+00 2/2 2/2 2/2 .text offMsgSendControl__12dMsgObject_cFv
|
|
*/
|
|
void dMsgObject_c::offMsgSendControl() {
|
|
dMsgObject_getMsgObjectClass()->offMsgSendControlLocal();
|
|
}
|
|
|
|
/* 802382F4-80238320 232C34 002C+00 0/0 3/3 3/3 .text isMsgSendControl__12dMsgObject_cFv
|
|
*/
|
|
int dMsgObject_c::isMsgSendControl() {
|
|
return dMsgObject_getMsgObjectClass()->isMsgSendControlLocal();
|
|
}
|
|
|
|
/* 80238320-8023834C 232C60 002C+00 1/1 2/2 1/1 .text onMsgSend__12dMsgObject_cFv */
|
|
void dMsgObject_c::onMsgSend() {
|
|
dMsgObject_getMsgObjectClass()->onMsgSendLocal();
|
|
}
|
|
|
|
/* 8023834C-80238378 232C8C 002C+00 2/2 0/0 0/0 .text offMsgSend__12dMsgObject_cFv */
|
|
void dMsgObject_c::offMsgSend() {
|
|
dMsgObject_getMsgObjectClass()->offMsgSendLocal();
|
|
}
|
|
|
|
/* 80238378-802383A4 232CB8 002C+00 1/1 0/0 0/0 .text isMsgSend__12dMsgObject_cFv */
|
|
int dMsgObject_c::isMsgSend() {
|
|
return dMsgObject_getMsgObjectClass()->isMsgSendLocal();
|
|
}
|
|
|
|
/* 802383A4-802383D0 232CE4 002C+00 0/0 2/2 6/6 .text isMouthCheck__12dMsgObject_cFv */
|
|
bool dMsgObject_c::isMouthCheck() {
|
|
return dMsgObject_getMsgObjectClass()->isMouthCheckLocal();
|
|
}
|
|
|
|
/* 802383D0-802383E4 232D10 0014+00 0/0 9/9 0/0 .text getMessageID__12dMsgObject_cFv */
|
|
u32 dMsgObject_c::getMessageID() {
|
|
return dMsgObject_getMsgObjectClass()->getMessageIDLocal();
|
|
}
|
|
|
|
/* 802383E4-80238410 232D24 002C+00 1/1 1/1 0/0 .text getSmellTypeMessageID__12dMsgObject_cFv */
|
|
u16 dMsgObject_c::getSmellTypeMessageID() {
|
|
return dMsgObject_getMsgObjectClass()->getSmellTypeMessageIDLocal();
|
|
}
|
|
|
|
/* 80238410-80238440 232D50 0030+00 0/0 1/1 0/0 .text setSmellType__12dMsgObject_cFUc */
|
|
void dMsgObject_c::setSmellType(u8 smellType) {
|
|
dMsgObject_getMsgObjectClass()->setSmellTypeLocal(smellType);
|
|
}
|
|
|
|
/* 80238440-8023846C 232D80 002C+00 4/4 0/0 7/7 .text getSelectCursorPos__12dMsgObject_cFv */
|
|
u8 dMsgObject_c::getSelectCursorPos() {
|
|
return dMsgObject_getMsgObjectClass()->getSelectCursorPosLocal();
|
|
}
|
|
|
|
/* 8023846C-8023849C 232DAC 0030+00 0/0 1/1 0/0 .text setSelectCursorPos__12dMsgObject_cFUc */
|
|
void dMsgObject_c::setSelectCursorPos(u8 pos) {
|
|
dMsgObject_getMsgObjectClass()->setSelectCursorPosLocal(pos);
|
|
}
|
|
|
|
/* 8023849C-802384B0 232DDC 0014+00 0/0 2/2 0/0 .text setPortalMessageID__12dMsgObject_cFUs */
|
|
void dMsgObject_c::setPortalMessageID(u16 msgID) {
|
|
dMsgObject_getMsgObjectClass()->setPortalMessageIDLocal(msgID);
|
|
}
|
|
|
|
/* 802384B0-802384C4 232DF0 0014+00 0/0 0/0 1/1 .text setInsectItemNo__12dMsgObject_cFUc
|
|
*/
|
|
void dMsgObject_c::setInsectItemNo(u8 itemNo) {
|
|
dMsgObject_getMsgObjectClass()->setInsectItemNoLocal(itemNo);
|
|
}
|
|
|
|
/* 802384C4-802384D8 232E04 0014+00 0/0 1/1 0/0 .text setLetterNameID__12dMsgObject_cFUs
|
|
*/
|
|
void dMsgObject_c::setLetterNameID(u16 nameID) {
|
|
dMsgObject_getMsgObjectClass()->setLetterNameIDLocal(nameID);
|
|
}
|
|
|
|
/* 802384D8-802384EC 232E18 0014+00 0/0 1/1 0/0 .text setArrowNum__12dMsgObject_cFUc */
|
|
void dMsgObject_c::setArrowNum(u8 arrowNum) {
|
|
dMsgObject_getMsgObjectClass()->setArrowNumLocal(arrowNum);
|
|
}
|
|
|
|
/* 802384EC-80238500 232E2C 0014+00 1/1 0/0 0/0 .text setMsgOutputType__12dMsgObject_cFUc
|
|
*/
|
|
void dMsgObject_c::setMsgOutputType(u8 outputType) {
|
|
dMsgObject_getMsgObjectClass()->setMsgOutputTypeLocal(outputType);
|
|
}
|
|
|
|
/* 80238500-80238514 232E40 0014+00 0/0 1/1 0/0 .text getMsgOutputType__12dMsgObject_cFv
|
|
*/
|
|
u8 dMsgObject_c::getMsgOutputType() {
|
|
return dMsgObject_getMsgObjectClass()->getMsgOutputTypeLocal();
|
|
}
|
|
|
|
/* 80238514-80238528 232E54 0014+00 0/0 5/5 0/0 .text getWord__12dMsgObject_cFv */
|
|
const char* dMsgObject_c::getWord() {
|
|
return dMsgObject_getMsgObjectClass()->getWordLocal();
|
|
}
|
|
|
|
/* 80238528-80238544 232E68 001C+00 0/0 1/1 0/0 .text getSelectWord__12dMsgObject_cFi */
|
|
const char* dMsgObject_c::getSelectWord(int idx) {
|
|
return dMsgObject_getMsgObjectClass()->getSelectWordLocal(idx);
|
|
}
|
|
|
|
/* 80238544-80238574 232E84 0030+00 0/0 1/1 0/0 .text setSelectWordFlag__12dMsgObject_cFUc */
|
|
void dMsgObject_c::setSelectWordFlag(u8 flag) {
|
|
dMsgObject_getMsgObjectClass()->setSelectWordFlagLocal(flag);
|
|
}
|
|
|
|
/* 80238574-80238588 232EB4 0014+00 0/0 3/3 0/0 .text getSelectWordFlag__12dMsgObject_cFv
|
|
*/
|
|
u8 dMsgObject_c::getSelectWordFlag() {
|
|
return dMsgObject_getMsgObjectClass()->getSelectWordFlagLocal();
|
|
}
|
|
|
|
/* 80238588-802385B4 232EC8 002C+00 0/0 1/1 0/0 .text isHowlHearingMode__12dMsgObject_cFv
|
|
*/
|
|
bool dMsgObject_c::isHowlHearingMode() {
|
|
return dMsgObject_getMsgObjectClass()->isHowlHearingModeLocal();
|
|
}
|
|
|
|
/* 802385B4-802385E0 232EF4 002C+00 0/0 1/1 0/0 .text getSelectBombBagID__12dMsgObject_cFv */
|
|
u8 dMsgObject_c::getSelectBombBagID() {
|
|
return dMsgObject_getMsgObjectClass()->getSelectBombBagIDLocal();
|
|
}
|
|
|
|
/* 802385E0-8023860C 232F20 002C+00 0/0 6/6 0/0 .text getSelectBombPrice__12dMsgObject_cFv */
|
|
s16 dMsgObject_c::getSelectBombPrice() {
|
|
return dMsgObject_getMsgObjectClass()->getSelectBombPriceLocal();
|
|
}
|
|
|
|
/* 8023860C-80238638 232F4C 002C+00 0/0 1/1 0/0 .text setEquipBombInfo__12dMsgObject_cFv
|
|
*/
|
|
void dMsgObject_c::setEquipBombInfo() {
|
|
dMsgObject_getMsgObjectClass()->setEquipBombInfoLocal();
|
|
}
|
|
|
|
/* 80238638-8023864C 232F78 0014+00 0/0 2/2 0/0 .text getItemEquipButton__12dMsgObject_cFv */
|
|
u8 dMsgObject_c::getItemEquipButton() {
|
|
return dMsgObject_getMsgObjectClass()->getItemEquipButtonLocal();
|
|
}
|
|
|
|
/* 8023864C-80238660 232F8C 0014+00 0/0 2/2 0/0 .text setSelectCancelPos__12dMsgObject_cFUc */
|
|
void dMsgObject_c::setSelectCancelPos(u8 pos) {
|
|
dMsgObject_getMsgObjectClass()->setSelectCancelPosLocal(pos);
|
|
}
|
|
|
|
/* 80238660-802386C8 232FA0 0068+00 1/1 0/0 3/3 .text dMsgObject_getTotalPrice__Fv */
|
|
u16 dMsgObject_getTotalPrice() {
|
|
u8 high = dComIfGs_getEventReg(0xfeff);
|
|
u8 low = dComIfGs_getEventReg(0xfdff);
|
|
return (high << 8) | low;
|
|
}
|
|
|
|
/* 802386C8-80238730 233008 0068+00 0/0 0/0 2/2 .text dMsgObject_setTotalPrice__FUs */
|
|
void dMsgObject_setTotalPrice(u16 price) {
|
|
dComIfGs_setEventReg(0xfeff, (price & 0xff00) >> 8);
|
|
dComIfGs_setEventReg(0xfdff, price & 0xff);
|
|
}
|
|
|
|
/* 80238730-802387C4 233070 0094+00 0/0 0/0 4/4 .text dMsgObject_addTotalPrice__Fs */
|
|
void dMsgObject_addTotalPrice(s16 price) {
|
|
dMsgObject_getMsgObjectClass()->addNowTotalPrice(price);
|
|
price += dMsgObject_getTotalPrice();
|
|
if (price < 0) {
|
|
price = 0;
|
|
}
|
|
dComIfGs_setEventReg(0xfeff, ((u16)price & 0xff00) >> 8);
|
|
dComIfGs_setEventReg(0xfdff, (u16)price & 0xff);
|
|
}
|
|
|
|
/* 802387C4-8023882C 233104 0068+00 1/1 0/0 4/4 .text dMsgObject_getTotalPayment__Fv */
|
|
u16 dMsgObject_getTotalPayment() {
|
|
u8 high = dComIfGs_getEventReg(0xfcff);
|
|
u8 low = dComIfGs_getEventReg(0xfbff);
|
|
return (high << 8) | low;
|
|
}
|
|
|
|
/* 8023882C-80238894 23316C 0068+00 0/0 0/0 2/2 .text dMsgObject_setTotalPayment__FUs */
|
|
void dMsgObject_setTotalPayment(u16 price) {
|
|
dComIfGs_setEventReg(0xfcff, (price & 0xff00) >> 8);
|
|
dComIfGs_setEventReg(0xfbff, price & 0xff);
|
|
}
|
|
|
|
/* 80238894-80238928 2331D4 0094+00 1/1 0/0 0/0 .text dMsgObject_addTotalPayment__Fs */
|
|
void dMsgObject_addTotalPayment(s16 price) {
|
|
dMsgObject_getMsgObjectClass()->addNowTotalPayment(price);
|
|
price += dMsgObject_getTotalPayment();
|
|
if (price < 0) {
|
|
price = 0;
|
|
}
|
|
dComIfGs_setEventReg(0xfcff, ((u16)price & 0xff00) >> 8);
|
|
dComIfGs_setEventReg(0xfbff, (u16)price & 0xff);
|
|
}
|
|
|
|
/* 80238928-80238990 233268 0068+00 2/2 4/4 0/0 .text dMsgObject_getFundRaising__Fv */
|
|
u16 dMsgObject_getFundRaising() {
|
|
u8 high = dComIfGs_getEventReg(0xf9ff);
|
|
u8 low = dComIfGs_getEventReg(0xfaff);
|
|
return (high << 8) | low;
|
|
}
|
|
|
|
/* 80238990-802389F8 2332D0 0068+00 1/1 1/1 0/0 .text dMsgObject_setFundRaising__FUs */
|
|
void dMsgObject_setFundRaising(u16 price) {
|
|
dComIfGs_setEventReg(0xf9ff, (price & 0xff00) >> 8);
|
|
dComIfGs_setEventReg(0xfaff, price & 0xff);
|
|
}
|
|
|
|
/* 802389F8-80238A74 233338 007C+00 1/1 0/0 0/0 .text dMsgObject_addFundRaising__Fs */
|
|
void dMsgObject_addFundRaising(s16 price) {
|
|
price += dMsgObject_getFundRaising();
|
|
if (price < 0) {
|
|
price = 0;
|
|
}
|
|
dComIfGs_setEventReg(0xf9ff, ((u16)price & 0xff00) >> 8);
|
|
dComIfGs_setEventReg(0xfaff, (u16)price & 0xff);
|
|
}
|
|
|
|
/* 80238A74-80238ADC 2333B4 0068+00 1/1 1/1 0/0 .text dMsgObject_getOffering__Fv */
|
|
u16 dMsgObject_getOffering() {
|
|
u8 high = dComIfGs_getEventReg(0xf7ff);
|
|
u8 low = dComIfGs_getEventReg(0xf8ff);
|
|
return (high << 8) | low;
|
|
}
|
|
|
|
/* 80238ADC-80238B58 23341C 007C+00 0/0 1/1 0/0 .text dMsgObject_addOffering__Fs */
|
|
void dMsgObject_addOffering(s16 price) {
|
|
s16 offering = price + dMsgObject_getOffering();
|
|
if (offering < 0) {
|
|
offering = 0;
|
|
}
|
|
dComIfGs_setEventReg(0xf7ff, ((u16)offering & 0xff00) >> 8);
|
|
dComIfGs_setEventReg(0xf8ff, (u16)offering & 0xff);
|
|
}
|
|
|
|
/* 803C0B9C-803C0BB0 -00001 0014+00 1/0 0/0 0/0 .data l_dMsgObject_Method */
|
|
static leafdraw_method_class l_dMsgObject_Method = {
|
|
(process_method_func)dMsgObject_Create,
|
|
(process_method_func)dMsgObject_Delete,
|
|
(process_method_func)dMsgObject_Execute,
|
|
(process_method_func)dMsgObject_IsDelete,
|
|
(process_method_func)dMsgObject_Draw,
|
|
};
|
|
|
|
/* 803C0BB0-803C0BD8 -00001 0028+00 0/0 0/0 1/0 .data g_profile_MSG_OBJECT */
|
|
extern msg_process_profile_definition g_profile_MSG_OBJECT = {
|
|
fpcLy_CURRENT_e, // mLayerID
|
|
12, // mListID
|
|
fpcPi_CURRENT_e, // mListPrio
|
|
PROC_MSG_OBJECT, // mProcName
|
|
&g_fpcLf_Method.base, // sub_method
|
|
sizeof(dMsgObject_c), // mSize
|
|
0, // mSizeOther
|
|
0, // mParameters
|
|
&g_fopMsg_Method, // sub_method
|
|
770, // mPriority
|
|
&l_dMsgObject_Method, // sub_method
|
|
};
|