summaryrefslogtreecommitdiff
path: root/src/d/d_msg_scrn_talk.cpp
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2024-10-10 07:29:58 -0700
committerGitHub <noreply@github.com>2024-10-10 08:29:58 -0600
commit12eb254d769d84743b5cc6cd5424057c57eaf0ad (patch)
tree4509be332b2ccfc6fe939f47740d68f7746eca3e /src/d/d_msg_scrn_talk.cpp
parent2fd702c0ac170a789af879b8b92a82d4dcc9080c (diff)
switch to dtk setup (#2203)
* switch to dtk setup * some cleanup / fixes * cleanup d_a_alink literals * Restore doxygen, update CI & README.md (#1) * Fix build image ref (#2) --------- Co-authored-by: Luke Street <luke@street.dev>
Diffstat (limited to 'src/d/d_msg_scrn_talk.cpp')
-rw-r--r--src/d/d_msg_scrn_talk.cpp717
1 files changed, 717 insertions, 0 deletions
diff --git a/src/d/d_msg_scrn_talk.cpp b/src/d/d_msg_scrn_talk.cpp
new file mode 100644
index 0000000000..2d5f8ede5b
--- /dev/null
+++ b/src/d/d_msg_scrn_talk.cpp
@@ -0,0 +1,717 @@
+//
+// Generated By: dol2asm
+// Translation Unit: msg/scrn/d_msg_scrn_talk
+//
+
+#include "d/d_msg_scrn_talk.h"
+#include "d/d_msg_scrn_light.h"
+#include "d/d_msg_scrn_arrow.h"
+#include "d/d_msg_scrn_3select.h"
+#include "d/d_msg_object.h"
+#include "d/d_msg_class.h"
+#include "d/d_meter2.h"
+#include "d/d_meter2_draw.h"
+#include "d/d_meter2_info.h"
+#include "d/d_pane_class.h"
+#include "m_Do/m_Do_lib.h"
+#include "JSystem/JKernel/JKRExpHeap.h"
+#include "JSystem/J2DGraph/J2DGrafContext.h"
+#include "JSystem/J2DGraph/J2DScreen.h"
+#include "dol2asm.h"
+
+//
+// Forward References:
+//
+
+extern "C" void __ct__14dMsgScrnTalk_cFUcUcP10JKRExpHeap();
+extern "C" void __dt__14dMsgScrnTalk_cFv();
+extern "C" void exec__14dMsgScrnTalk_cFv();
+extern "C" void drawSelf__14dMsgScrnTalk_cFv();
+extern "C" void arwAnimeInit__14dMsgScrnTalk_cFv();
+extern "C" void arwAnimeMove__14dMsgScrnTalk_cFv();
+extern "C" void dotAnimeInit__14dMsgScrnTalk_cFv();
+extern "C" void dotAnimeMove__14dMsgScrnTalk_cFv();
+extern "C" void setSelectString__14dMsgScrnTalk_cFPcPcPc();
+extern "C" void setSelectRubyString__14dMsgScrnTalk_cFPcPcPc();
+extern "C" void isSelect__14dMsgScrnTalk_cFv();
+extern "C" void selectAnimeInit__14dMsgScrnTalk_cFUcUcfUc();
+extern "C" void selectAnimeMove__14dMsgScrnTalk_cFUcUcb();
+extern "C" void selectAnimeEnd__14dMsgScrnTalk_cFv();
+extern "C" void fukiScale__14dMsgScrnTalk_cFf();
+extern "C" void fukiTrans__14dMsgScrnTalk_cFff();
+extern "C" void fukiAlpha__14dMsgScrnTalk_cFf();
+extern "C" void fukiPosCalc__14dMsgScrnTalk_cFUc();
+extern "C" extern char const* const msg_scrn_d_msg_scrn_talk__stringBase0;
+
+//
+// External References:
+//
+
+extern "C" void mDoExt_getMesgFont__Fv();
+extern "C" void mDoLib_project__FP3VecP3Vec();
+extern "C" void dComIfGp_getSubHeap2D__Fi();
+extern "C" void
+drawPikari__13dMeter2Draw_cFffPffQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorfUc();
+extern "C" void getActor__12dMsgObject_cFv();
+extern "C" void __ct__17dMsgScrn3Select_cFv();
+extern "C" void isSelect__17dMsgScrn3Select_cFv();
+extern "C" void setString__17dMsgScrn3Select_cFPcPcPc();
+extern "C" void setRubyString__17dMsgScrn3Select_cFPcPcPc();
+extern "C" void translate__17dMsgScrn3Select_cFff();
+extern "C" void draw__17dMsgScrn3Select_cFff();
+extern "C" void selAnimeInit__17dMsgScrn3Select_cFUcUcUcfUc();
+extern "C" void selAnimeMove__17dMsgScrn3Select_cFUcUcb();
+extern "C" void selAnimeEnd__17dMsgScrn3Select_cFv();
+extern "C" void getTextBoxWidth__17dMsgScrn3Select_cFv();
+extern "C" void getFontSize__17dMsgScrn3Select_cFv();
+extern "C" void getRubyFontSize__17dMsgScrn3Select_cFv();
+extern "C" void getCharSpace__17dMsgScrn3Select_cFv();
+extern "C" void getRubyCharSpace__17dMsgScrn3Select_cFv();
+extern "C" void getTextBoxGlobalPosX__17dMsgScrn3Select_cFi();
+extern "C" void getTextBoxGlobalPosY__17dMsgScrn3Select_cFi();
+extern "C" void __ct__15dMsgScrnArrow_cFv();
+extern "C" void draw__15dMsgScrnArrow_cFv();
+extern "C" void setPos__15dMsgScrnArrow_cFff();
+extern "C" void arwAnimeInit__15dMsgScrnArrow_cFv();
+extern "C" void arwAnimeMove__15dMsgScrnArrow_cFv();
+extern "C" void dotAnimeInit__15dMsgScrnArrow_cFv();
+extern "C" void dotAnimeMove__15dMsgScrnArrow_cFv();
+extern "C" void __ct__14dMsgScrnBase_cFv();
+extern "C" void __dt__14dMsgScrnBase_cFv();
+extern "C" void init__14dMsgScrnBase_cFv();
+extern "C" void multiDraw__14dMsgScrnBase_cFv();
+extern "C" void draw__14dMsgScrnBase_cFv();
+extern "C" void drawOutFont__14dMsgScrnBase_cFfff();
+extern "C" void fontAlpha__14dMsgScrnBase_cFf();
+extern "C" void isTalkNow__14dMsgScrnBase_cFv();
+extern "C" void __ct__15dMsgScrnLight_cFUcUc();
+extern "C" void draw__15dMsgScrnLight_cFPffffffUc();
+extern "C" void __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap();
+extern "C" void reinit__8CPaneMgrFv();
+extern "C" void getGlobalPosX__8CPaneMgrFv();
+extern "C" void getGlobalPosY__8CPaneMgrFv();
+extern "C" void setBlackWhite__8CPaneMgrFQ28JUtility6TColorQ28JUtility6TColor();
+extern "C" void getGlobalVtxCenter__8CPaneMgrFP7J2DPanebs();
+extern "C" void dPaneClass_showNullPane__FP9J2DScreen();
+extern "C" void setAlphaRate__13CPaneMgrAlphaFf();
+extern "C" void getAlphaRate__13CPaneMgrAlphaFv();
+extern "C" bool __eq__4cXyzCFRC3Vec();
+extern "C" void alloc__7JKRHeapFUli();
+extern "C" void free__7JKRHeapFPv();
+extern "C" void* __nw__FUl();
+extern "C" void __dl__FPv();
+extern "C" void getBounds__7J2DPaneFv();
+extern "C" void __ct__9J2DScreenFv();
+extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive();
+extern "C" void draw__9J2DScreenFffPC14J2DGrafContext();
+extern "C" void setString__10J2DTextBoxFsPCce();
+extern "C" void _savegpr_21();
+extern "C" void _savegpr_26();
+extern "C" void _savegpr_27();
+extern "C" void _savegpr_28();
+extern "C" void _savegpr_29();
+extern "C" void _restgpr_21();
+extern "C" void _restgpr_26();
+extern "C" void _restgpr_27();
+extern "C" void _restgpr_28();
+extern "C" void _restgpr_29();
+
+//
+// Declarations:
+//
+
+/* ############################################################################################## */
+/* 80399BB0-80399BB0 026210 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+#pragma push
+#pragma force_active on
+SECTION_DEAD static char const* const stringBase_80399BB0 = "zelda_message_window_new.blo";
+SECTION_DEAD static char const* const stringBase_80399BCD = "zelda_message_window_text_seirei.blo";
+SECTION_DEAD static char const* const stringBase_80399BF2 = "zelda_message_window_text.blo";
+SECTION_DEAD static char const* const stringBase_80399C10 = "";
+/* @stringBase0 padding */
+SECTION_DEAD static char const* const pad_80399C11 = "\0\0\0\0\0\0";
+#pragma pop
+
+/* 803C13C8-803C1420 01E4E8 0058+00 2/2 0/0 0/0 .data __vt__14dMsgScrnTalk_c */
+SECTION_DATA extern void* __vt__14dMsgScrnTalk_c[22] = {
+ (void*)NULL /* RTTI */,
+ (void*)NULL,
+ (void*)draw__14dMsgScrnBase_cFv,
+ (void*)__dt__14dMsgScrnTalk_cFv,
+ (void*)exec__14dMsgScrnTalk_cFv,
+ (void*)multiDraw__14dMsgScrnBase_cFv,
+ (void*)drawSelf__14dMsgScrnTalk_cFv,
+ (void*)setSelectString__14dMsgScrnTalk_cFPcPcPc,
+ (void*)setSelectRubyString__14dMsgScrnTalk_cFPcPcPc,
+ (void*)arwAnimeInit__14dMsgScrnTalk_cFv,
+ (void*)arwAnimeMove__14dMsgScrnTalk_cFv,
+ (void*)dotAnimeInit__14dMsgScrnTalk_cFv,
+ (void*)dotAnimeMove__14dMsgScrnTalk_cFv,
+ (void*)isSelect__14dMsgScrnTalk_cFv,
+ (void*)selectAnimeInit__14dMsgScrnTalk_cFUcUcfUc,
+ (void*)selectAnimeMove__14dMsgScrnTalk_cFUcUcb,
+ (void*)selectAnimeEnd__14dMsgScrnTalk_cFv,
+ (void*)fukiScale__14dMsgScrnTalk_cFf,
+ (void*)fukiTrans__14dMsgScrnTalk_cFff,
+ (void*)fukiAlpha__14dMsgScrnTalk_cFf,
+ (void*)fontAlpha__14dMsgScrnBase_cFf,
+ (void*)fukiPosCalc__14dMsgScrnTalk_cFUc,
+};
+
+/* 80454D00-80454D04 003300 0004+00 2/2 0/0 0/0 .sdata2 @4086 */
+SECTION_SDATA2 static f32 lit_4086 = 18.0f;
+
+/* 80454D04-80454D08 003304 0004+00 3/3 0/0 0/0 .sdata2 @4087 */
+SECTION_SDATA2 static u8 lit_4087[4] = {
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00,
+};
+
+/* 80454D08-80454D0C 003308 0004+00 1/1 0/0 0/0 .sdata2 @4088 */
+SECTION_SDATA2 static f32 lit_4088 = -10.0f;
+
+/* 80454D0C-80454D10 00330C 0004+00 1/1 0/0 0/0 .sdata2 @4089 */
+SECTION_SDATA2 static f32 lit_4089 = 6.0f / 5.0f;
+
+/* 80246FF0-80247A90 241930 0AA0+00 0/0 1/1 0/0 .text __ct__14dMsgScrnTalk_cFUcUcP10JKRExpHeap */
+dMsgScrnTalk_c::dMsgScrnTalk_c(u8 param_1, u8 param_2, JKRExpHeap* param_3) {
+ if (param_3 != NULL) {
+ field_0xe4 = param_3;
+ } else {
+ field_0xe4 = dComIfGp_getSubHeap2D(7);
+ }
+ init();
+ mpScreen = new J2DScreen();
+ JUT_ASSERT(70, mpScreen != 0);
+ bool fg = mpScreen->setPriority("zelda_message_window_new.blo", 0x20000,
+ dComIfGp_getMsgArchive(1));
+ JUT_ASSERT(77, fg != false);
+ dPaneClass_showNullPane(mpScreen);
+ mpTxScreen = new J2DScreen();
+ JUT_ASSERT(81, mpTxScreen != 0);
+ if (dMsgObject_getMsgObjectClass()->getFukiKind() == 8) {
+ fg = mpTxScreen->setPriority("zelda_message_window_text_seirei.blo", 0x20000,
+ dComIfGp_getMsgCommonArchive());
+ } else {
+ fg = mpTxScreen->setPriority("zelda_message_window_text.blo", 0x20000,
+ dComIfGp_getMsgCommonArchive());
+ }
+ JUT_ASSERT(90, fg != false);
+ dPaneClass_showNullPane(mpTxScreen);
+ mpArrow_c = new dMsgScrnArrow_c();
+ JUT_ASSERT(95, mpArrow_c != 0);
+ if (dComIfGp_isHeapLockFlag() != 3) {
+ mpSelect_c = new dMsgScrn3Select_c();
+ JUT_ASSERT(100, mpSelect_c != 0);
+ } else {
+ mpSelect_c = NULL;
+ }
+ u8 uVar22;
+ switch(dMsgObject_getMsgObjectClass()->getFukiKind()) {
+ case 8:
+ uVar22 = 2;
+ break;
+ case 13:
+ uVar22 = 1;
+ break;
+ case 14:
+ uVar22 = 4;
+ break;
+ default:
+ uVar22 = 0;
+ break;
+ }
+
+ mpLight_c = new dMsgScrnLight_c(uVar22, param_2);
+ JUT_ASSERT(123, mpLight_c != 0);
+ void* mpBuf = field_0xe4->alloc(0x106a, 0x20);
+ JUT_ASSERT(126, mpBuf != 0);
+ memset(mpBuf, 0, 0x106a);
+ mCharInfoPtr = (CharInfo_c*)mpBuf;
+ for (int i = 0; i < 150; i++) {
+ field_0xf8[i] = 18.0f - g_MsgObject_HIO_c.mPikariScale;
+ field_0x35c[i] = g_MsgObject_HIO_c.mPikariHaloDelay_spirit;
+ }
+ field_0xe8 = mpScreen->search('n_all')->getBounds().i.x;
+ field_0xec = mpScreen->search('n_all')->getBounds().i.y;
+ field_0xf0 = 0.0f;
+ for (int i = 0; i < 3; i++) {
+ field_0x350[i] = g_MsgObject_HIO_c.mBoxPos[i][0];
+ }
+
+ mpScreen->search('mg_null')->move(
+ mpScreen->search('mg_null')->getBounds().i.x + g_MsgObject_HIO_c.mTextPosX,
+ mpScreen->search('mg_null')->getBounds().i.y + g_MsgObject_HIO_c.mTextPosY);
+ mpArw_c = new CPaneMgr(mpScreen, 'set_ya_n', 0, NULL);
+ JUT_ASSERT(147, mpArw_c != 0);
+ mpMg_c[0] = new CPaneMgr(mpScreen, 'mg_null', 0, NULL);
+ JUT_ASSERT(150, mpMg_c[0] != 0);
+ mpMg_c[1] = new CPaneMgr(mpTxScreen, 'mg_null', 0, NULL);
+ JUT_ASSERT(153, mpMg_c[1] != 0);
+ OSInitFastCast();
+ field_0xf4 = -10.0f;
+ fukiPosCalc(param_1);
+ mpPmP_c = new CPaneMgr(mpScreen, 'n_all', 3, NULL);
+ JUT_ASSERT(176, mpPmP_c != 0);
+ mpPmP_c->scale(g_MsgObject_HIO_c.mBoxTalkScaleX, g_MsgObject_HIO_c.mBoxTalkScaleY);
+ mpTm_c[0] = new CPaneMgr(mpTxScreen, 'mg_e4lin', 0, NULL);
+ JUT_ASSERT(182, mpTm_c[0] != 0);
+ mpTm_c[1] = new CPaneMgr(mpTxScreen, 't4_s', 0, NULL);
+ JUT_ASSERT(185, mpTm_c[1] != 0);
+ if (dMsgObject_getMsgObjectClass()->getFukiKind() == 8) {
+ mpTm_c[2] = new CPaneMgr(mpTxScreen, 't4_s1', 0, NULL);
+ JUT_ASSERT(189, mpTm_c[2] != 0);
+ mpTm_c[3] = new CPaneMgr(mpTxScreen, 't4_s2', 0, NULL);
+ JUT_ASSERT(191, mpTm_c[3] != 0);
+ mpTm_c[4] = new CPaneMgr(mpTxScreen, 't4_s3', 0, NULL);
+ JUT_ASSERT(193, mpTm_c[4] != 0);
+ mpTm_c[5] = new CPaneMgr(mpTxScreen, 't4_s4', 0, NULL);
+ JUT_ASSERT(193, mpTm_c[5] != 0);
+ }
+ mpTxScreen->search('n_3line')->hide();
+ mpTxScreen->search('n_3fline')->hide();
+ mpTxScreen->search('n_e4line')->show();
+ for (int i = 0; i < 6; i++) {
+ if (mpTm_c[i] != NULL) {
+ ((J2DTextBox*)mpTm_c[i]->getPanePtr())->setFont(mDoExt_getMesgFont());
+ ((J2DTextBox*)mpTm_c[i]->getPanePtr())->setString(0x200, "");
+ }
+ if (mpTmr_c[i] != NULL) {
+ ((J2DTextBox*)mpTmr_c[i]->getPanePtr())->setFont(mDoExt_getMesgFont());
+ ((J2DTextBox*)mpTmr_c[i]->getPanePtr())->setString(0x200, "");
+ }
+ }
+ if (dMsgObject_getMsgObjectClass()->getFukiKind() != 8) {
+ for (int i = 0; i < 2; i++) {
+ if (mpTm_c[i] != NULL) {
+ mpTm_c[i]->setBlackWhite(g_MsgObject_HIO_c.mBoxStartBlack[i][0],
+ g_MsgObject_HIO_c.mBoxStartWhite[i][0]);
+ }
+ if (mpTmr_c[i] != 0) {
+ mpTmr_c[i]->setBlackWhite(g_MsgObject_HIO_c.mBoxStartBlack[i][0],
+ g_MsgObject_HIO_c.mBoxStartWhite[i][0]);
+ }
+ }
+ }
+ ((J2DTextBox*)mpTm_c[0]->getPanePtr())->getFontSize(mFontSize);
+ mTBoxWidth = mpTm_c[0]->getSizeX();
+ mTBoxHeight = mpTm_c[0]->getSizeY();
+ mLineSpace = ((J2DTextBox*)mpTm_c[0]->getPanePtr())->getLineSpace();
+ mCharSpace = ((J2DTextBox*)mpTm_c[0]->getPanePtr())->getCharSpace();
+ for (int i = 0; i < 6; i++) {
+ if (mpTm_c[i] != NULL) {
+ ((J2DTextBox*)mpTm_c[i]->getPanePtr())->setLineSpace(mLineSpace);
+ mpTm_c[i]->resize(1.2f * mpTm_c[i]->getSizeX(), mpTm_c[i]->getSizeY());
+ }
+ }
+ mTextBoxPosX = mpTm_c[0]->getGlobalPosX();
+ mTextBoxPosY = mpTm_c[0]->getGlobalPosY();
+ for (int i = 0; i < 6; i++) {
+ if (mpTmr_c[i] != NULL) {
+ ((J2DTextBox*)mpTmr_c[i]->getPanePtr())->setLineSpace(mLineSpace);
+ if (i == 0) {
+ J2DTextBox::TFontSize fontSize;
+ ((J2DTextBox*)mpTmr_c[0]->getPanePtr())->getFontSize(fontSize);
+ mRubySize = fontSize.mSizeX;
+ mRubyCharSpace = ((J2DTextBox*)mpTmr_c[0]->getPanePtr())->getCharSpace();
+ }
+ mpTmr_c[i]->resize(1.2f * mpTmr_c[i]->getSizeX(), mpTmr_c[i]->getSizeY());
+ }
+ }
+ if (mpSelect_c != NULL) {
+ mSelTBoxWidth = mpSelect_c->getTextBoxWidth();
+ mSelFontSize = mpSelect_c->getFontSize();
+ mSelRubySize = mpSelect_c->getRubyFontSize();
+ mSelCharSpace = mpSelect_c->getCharSpace();
+ mSelRubyCharSpace = mpSelect_c->getRubyCharSpace();
+ for (int i = 0; i < 3; i++) {
+ mSelTextBoxPosX[i] = mpSelect_c->getTextBoxGlobalPosX(i);
+ mSelTextBoxPosY[i] = mpSelect_c->getTextBoxGlobalPosY(i);
+ }
+ } else {
+ mSelTBoxWidth = 0.0f;
+ mSelFontSize = 0.0f;
+ mSelRubySize = 0.0f;
+ mSelCharSpace = 0.0f;
+ mSelRubyCharSpace = 0.0f;
+ for (int i = 0; i < 3; i++) {
+ mSelTextBoxPosX[i] = 0.0f;
+ mSelTextBoxPosY[i] = 0.0f;
+ }
+ }
+}
+
+
+/* 80247A90-80247D34 2423D0 02A4+00 1/0 0/0 0/0 .text __dt__14dMsgScrnTalk_cFv */
+dMsgScrnTalk_c::~dMsgScrnTalk_c() {
+ delete mpScreen;
+ mpScreen = NULL;
+ delete mpTxScreen;
+ mpTxScreen = NULL;
+ delete mpArrow_c;
+ mpArrow_c = NULL;
+ if (mpSelect_c != NULL) {
+ delete mpSelect_c;
+ mpSelect_c = NULL;
+ }
+ delete mpLight_c;
+ mpLight_c = NULL;
+ if (mCharInfoPtr != NULL) {
+ field_0xe4->free(mCharInfoPtr);
+ mCharInfoPtr = NULL;
+ }
+ delete mpArw_c;
+ mpArw_c = NULL;
+ for (int i = 0; i < 2; i++) {
+ delete mpMg_c[i];
+ mpMg_c[i] = NULL;
+ }
+ delete mpPmP_c;
+ mpPmP_c = NULL;
+ for (int i = 0; i < 6; i++) {
+ if (mpTm_c[i] != NULL) {
+ delete mpTm_c[i];
+ mpTm_c[i] = NULL;
+ }
+ if (mpTmr_c[i] != NULL) {
+ delete mpTmr_c[i];
+ mpTmr_c[i] = NULL;
+ }
+ }
+ dComIfGp_getMsgArchive(0)->removeResourceAll();
+ dComIfGp_getMsgArchive(1)->removeResourceAll();
+ dComIfGp_getMsgCommonArchive()->removeResourceAll();
+}
+
+/* ############################################################################################## */
+/* 80454D10-80454D14 003310 0004+00 2/2 0/0 0/0 .sdata2 @4197 */
+SECTION_SDATA2 static f32 lit_4197 = 1.0f;
+
+/* 80247D34-80247E4C 242674 0118+00 1/0 0/0 0/0 .text exec__14dMsgScrnTalk_cFv */
+void dMsgScrnTalk_c::exec() {
+ if (isTalkNow()) {
+ fukiAlpha(1.0f);
+ }
+
+ mpPmP_c->scale(g_MsgObject_HIO_c.mBoxTalkScaleX, g_MsgObject_HIO_c.mBoxTalkScaleY);
+ for (int i = 0; i < 2; i++) {
+ if (mpTm_c[i] != NULL) {
+ mpTm_c[i]->setBlackWhite(g_MsgObject_HIO_c.mBoxStartBlack[i][0],
+ g_MsgObject_HIO_c.mBoxStartWhite[i][0]);
+ }
+ if (mpTmr_c[i] != 0) {
+ mpTmr_c[i]->setBlackWhite(g_MsgObject_HIO_c.mBoxStartBlack[i][0],
+ g_MsgObject_HIO_c.mBoxStartWhite[i][0]);
+ }
+ }
+}
+
+
+/* ############################################################################################## */
+/* 80454D14-80454D18 003314 0004+00 1/1 0/0 0/0 .sdata2 @4278 */
+SECTION_SDATA2 static f32 lit_4278 = 4.0f / 5.0f;
+
+/* 80454D18-80454D1C 003318 0004+00 1/1 0/0 0/0 .sdata2 @4279 */
+SECTION_SDATA2 static f32 lit_4279 = -1.0f;
+
+/* 80247E4C-802480F0 24278C 02A4+00 1/0 0/0 0/0 .text drawSelf__14dMsgScrnTalk_cFv */
+// regalloc
+#ifdef NONMATCHING
+void dMsgScrnTalk_c::drawSelf() {
+ CharInfo_c* pCharInfo;
+ J2DGrafContext* grafContext = dComIfGp_getCurrentGrafPort();
+ grafContext->setup2D();
+ pCharInfo = mCharInfoPtr;
+ if (*(s16*)(pCharInfo + 150) > 0) {
+ f32 dVar10 = mpTm_c[0]->getAlphaRate();
+ for (int i = 0; i < *(s16*)(pCharInfo + 150); i++) {
+ if (dMsgObject_getMsgObjectClass()->getFukiKind() == 8) {
+ if (field_0xf8[i] >= 0.0f) {
+ f32 fVar1;
+ if (mCharInfoPtr[i].field_0x19 == 0) {
+ fVar1 = 0.8f;
+ } else {
+ fVar1 = g_MsgObject_HIO_c.mPikariScale;
+ }
+ dMeter2Info_getMeterClass()->getMeterDrawPtr()->drawPikari(
+ mCharInfoPtr[i].field_0x00, mCharInfoPtr[i].field_0x04, &field_0xf8[i], fVar1,
+ g_MsgObject_HIO_c.mPikariMoyaR1, g_MsgObject_HIO_c.mPikariMoyaR0,
+ g_MsgObject_HIO_c.mPikariMoyabsR1, g_MsgObject_HIO_c.mPikariMoyabsR0,
+ g_MsgObject_HIO_c.mPikariAnmSpeed, 4);
+ if (field_0xf8[i] == 0.0f) {
+ field_0xf8[i] = -1.0f;
+ }
+ }
+ if (field_0x35c[i] > 0) {
+ field_0x35c[i]--;
+ } else {
+ mpLight_c->draw(
+ &mCharInfoPtr[i].field_0x14, mCharInfoPtr[i].field_0x00, mCharInfoPtr[i].field_0x04,
+ mCharInfoPtr[i].field_0x08, mCharInfoPtr[i].field_0x0c,
+ dVar10 * g_MsgObject_HIO_c.mBoxTalkHaloAlpha, mCharInfoPtr[i].mColorNo);
+ }
+ } else {
+ mpLight_c->draw(
+ &mCharInfoPtr[i].field_0x14, mCharInfoPtr[i].field_0x00, mCharInfoPtr[i].field_0x04,
+ mCharInfoPtr[i].field_0x08, mCharInfoPtr[i].field_0x0c,
+ dVar10 * g_MsgObject_HIO_c.mBoxTalkHaloAlpha, mCharInfoPtr[i].mColorNo);
+ }
+ }
+ } else {
+ if (dMsgObject_getMsgObjectClass()->getFukiKind() == 8) {
+ for (int i = 0; i < 150; i++) {
+ field_0xf8[i] = 18.0f - g_MsgObject_HIO_c.mPikariScale;
+ field_0x35c[i] = g_MsgObject_HIO_c.mPikariHaloDelay_spirit;
+ }
+ }
+ }
+ drawOutFont(0.0f, 0.0f, 1.0f);
+ mpTxScreen->draw(0.0f, 0.0f, grafContext);
+ if (mpSelect_c != NULL) {
+ mpSelect_c->draw(0.0f, 0.0f);
+ }
+ mpArrow_c->draw();
+}
+#else
+void dMsgScrnTalk_c::drawSelf() {
+ // NONMATCHING
+}
+#endif
+
+/* 802480F0-80248114 242A30 0024+00 1/0 0/0 0/0 .text arwAnimeInit__14dMsgScrnTalk_cFv */
+void dMsgScrnTalk_c::arwAnimeInit() {
+ mpArrow_c->arwAnimeInit();
+}
+
+/* 80248114-80248138 242A54 0024+00 1/0 0/0 0/0 .text arwAnimeMove__14dMsgScrnTalk_cFv */
+void dMsgScrnTalk_c::arwAnimeMove() {
+ mpArrow_c->arwAnimeMove();
+}
+
+/* 80248138-8024815C 242A78 0024+00 1/0 0/0 0/0 .text dotAnimeInit__14dMsgScrnTalk_cFv */
+void dMsgScrnTalk_c::dotAnimeInit() {
+ mpArrow_c->dotAnimeInit();
+}
+
+/* 8024815C-80248180 242A9C 0024+00 1/0 0/0 0/0 .text dotAnimeMove__14dMsgScrnTalk_cFv */
+void dMsgScrnTalk_c::dotAnimeMove() {
+ mpArrow_c->dotAnimeMove();
+}
+
+/* 80248180-802481AC 242AC0 002C+00 1/0 0/0 0/0 .text setSelectString__14dMsgScrnTalk_cFPcPcPc */
+void dMsgScrnTalk_c::setSelectString(char* param_0, char* param_1, char* param_2) {
+ if (mpSelect_c != NULL) {
+ mpSelect_c->setString(param_0, param_1, param_2);
+ }
+}
+
+/* 802481AC-802481D8 242AEC 002C+00 1/0 0/0 0/0 .text setSelectRubyString__14dMsgScrnTalk_cFPcPcPc
+ */
+void dMsgScrnTalk_c::setSelectRubyString(char* param_0, char* param_1, char* param_2) {
+ if (mpSelect_c != NULL) {
+ mpSelect_c->setRubyString(param_0, param_1, param_2);
+ }
+}
+
+/* 802481D8-8024820C 242B18 0034+00 1/0 0/0 0/0 .text isSelect__14dMsgScrnTalk_cFv */
+bool dMsgScrnTalk_c::isSelect() {
+ if (mpSelect_c != NULL) {
+ return mpSelect_c->isSelect();
+ }
+ return false;
+}
+
+/* 8024820C-80248244 242B4C 0038+00 1/0 0/0 0/0 .text selectAnimeInit__14dMsgScrnTalk_cFUcUcfUc */
+void dMsgScrnTalk_c::selectAnimeInit(u8 param_0, u8 param_1, f32 param_2, u8 param_3) {
+ if (mpSelect_c != NULL) {
+ mpSelect_c->selAnimeInit(param_0, param_1, field_0x488, param_2, param_3);
+ }
+}
+
+/* 80248244-80248278 242B84 0034+00 1/0 0/0 0/0 .text selectAnimeMove__14dMsgScrnTalk_cFUcUcb */
+bool dMsgScrnTalk_c::selectAnimeMove(u8 param_0, u8 param_1, bool param_2) {
+ if (mpSelect_c != NULL) {
+ return mpSelect_c->selAnimeMove(param_0, param_1, param_2);
+ }
+ return false;
+}
+
+/* 80248278-802482AC 242BB8 0034+00 1/0 0/0 0/0 .text selectAnimeEnd__14dMsgScrnTalk_cFv
+ */
+bool dMsgScrnTalk_c::selectAnimeEnd() {
+ if (mpSelect_c != NULL) {
+ return mpSelect_c->selAnimeEnd();
+ }
+ return false;
+}
+
+/* 802482AC-802482B0 242BEC 0004+00 1/0 0/0 0/0 .text fukiScale__14dMsgScrnTalk_cFf */
+void dMsgScrnTalk_c::fukiScale(f32 param_0) {
+}
+
+/* 802482B0-802482B4 242BF0 0004+00 1/0 0/0 0/0 .text fukiTrans__14dMsgScrnTalk_cFff */
+void dMsgScrnTalk_c::fukiTrans(f32 param_0, f32 param_1) {
+}
+
+/* 802482B4-8024835C 242BF4 00A8+00 1/0 0/0 0/0 .text fukiAlpha__14dMsgScrnTalk_cFf */
+void dMsgScrnTalk_c::fukiAlpha(f32 param_1) {
+ mpPmP_c->setAlphaRate(param_1 * g_MsgObject_HIO_c.mBoxTalkAlphaP);
+ for (int i = 0; i < 6; i = i + 1) {
+ if (mpTm_c[i] != NULL) {
+ mpTm_c[i]->setAlphaRate(param_1 * mCharAlphaRate);
+ }
+ if (mpTmr_c[i] != NULL) {
+ mpTmr_c[i]->setAlphaRate(param_1 * mCharAlphaRate);
+ }
+ }
+}
+
+/* ############################################################################################## */
+/* 80454D1C-80454D20 00331C 0004+00 1/1 0/0 0/0 .sdata2 @4489 */
+SECTION_SDATA2 static f32 lit_4489 = 608.0f;
+
+/* 80454D20-80454D24 003320 0004+00 1/1 0/0 0/0 .sdata2 @4490 */
+SECTION_SDATA2 static f32 lit_4490 = 448.0f;
+
+/* 80454D24-80454D28 003324 0004+00 1/1 0/0 0/0 .sdata2 @4491 */
+SECTION_SDATA2 static f32 lit_4491 = 0.5f;
+
+/* 80454D28-80454D2C 003328 0004+00 1/1 0/0 0/0 .sdata2 @4492 */
+SECTION_SDATA2 static f32 lit_4492 = 50.0f;
+
+/* 80454D2C-80454D30 00332C 0004+00 1/1 0/0 0/0 .sdata2 @4493 */
+SECTION_SDATA2 static f32 lit_4493 = 105.0f;
+
+/* 80454D30-80454D34 003330 0004+00 1/1 0/0 0/0 .sdata2 @4494 */
+SECTION_SDATA2 static f32 lit_4494 = 486.0f;
+
+/* 80454D34-80454D38 003334 0004+00 1/1 0/0 0/0 .sdata2 @4495 */
+SECTION_SDATA2 static f32 lit_4495 = 230.0f;
+
+/* 80454D38-80454D3C 003338 0004+00 1/1 0/0 0/0 .sdata2 @4496 */
+SECTION_SDATA2 static f32 lit_4496 = 235.0f;
+
+/* 80454D3C-80454D40 00333C 0004+00 1/1 0/0 0/0 .sdata2 @4497 */
+SECTION_SDATA2 static f32 lit_4497 = 355.0f;
+
+/* 80454D40-80454D44 003340 0004+00 1/1 0/0 0/0 .sdata2 @4498 */
+SECTION_SDATA2 static f32 lit_4498 = 209.0f;
+
+/* 80454D44-80454D48 003344 0004+00 1/1 0/0 0/0 .sdata2 @4499 */
+SECTION_SDATA2 static f32 lit_4499 = -190.0f;
+
+/* 80454D48-80454D50 003348 0004+04 1/1 0/0 0/0 .sdata2 @4500 */
+SECTION_SDATA2 static f32 lit_4500[1 + 1 /* padding */] = {
+ 190.0f,
+ /* padding */
+ 0.0f,
+};
+
+/* 80454D50-80454D58 003350 0008+00 1/1 0/0 0/0 .sdata2 @4502 */
+SECTION_SDATA2 static f64 lit_4502 = 4503601774854144.0 /* cast s32 to float */;
+
+/* 8024835C-80248954 242C9C 05F8+00 1/0 0/0 0/0 .text fukiPosCalc__14dMsgScrnTalk_cFUc */
+void dMsgScrnTalk_c::fukiPosCalc(u8 param_1) {
+ msg_class* msgActor = dMsgObject_c::getActor();
+ if (mpPmP_c != 0) {
+ mpPmP_c->move(field_0xe8, field_0xec);
+ }
+ if (param_1 == 3) {
+ fopAc_ac_c* player = dComIfGp_getPlayer(0);
+ cXyz local_70;
+ cXyz cStack_7c;
+ f32 f3y;
+ mDoLib_project(&player->eyePos, &cStack_7c);
+ if (msgActor->mPos == cXyz(0.0f, 0.0f, 0.0f)) {
+ f3y = cStack_7c.y;
+ } else {
+ mDoLib_project(&msgActor->mPos, &local_70);
+ if (local_70.x >= 0.0f && local_70.x <= 608.0f && local_70.y >= 0.0f &&
+ local_70.y <= 448.0f)
+ {
+ f3y = 0.5f * (cStack_7c.y + local_70.y);
+ } else {
+ f3y = cStack_7c.y;
+ }
+ }
+ if (mpPmP_c != NULL) {
+ switch (field_0x488) {
+ case 1:
+ if (f3y < g_MsgObject_HIO_c.mBoxAppearBound - 50.0f) {
+ param_1 = 0;
+ } else {
+ param_1 = 1;
+ }
+ break;
+ case 0:
+ if (f3y < g_MsgObject_HIO_c.mBoxAppearBound + 50.0f) {
+ param_1 = 0;
+ } else {
+ param_1 = 1;
+ }
+ break;
+ }
+ } else {
+ if (f3y < g_MsgObject_HIO_c.mBoxAppearBound) {
+ param_1 = 0;
+ } else {
+ param_1 = 1;
+ }
+ }
+ }
+ field_0xf0 = 0.0f;
+ field_0x488 = param_1;
+ f32 dVar15;
+ switch (field_0x488) {
+ case 1:
+ dVar15 = g_MsgObject_HIO_c.mBoxPos[2][0];
+ field_0xf0 = 235.0f - (mpScreen->search('n_all')->getBounds().i.y +
+ mpScreen->search('n_all')->getBounds().f.y) / 2;
+ if (mpSelect_c != NULL) {
+ mpSelect_c->translate(486.0f, 230.0f);
+ }
+ break;
+ case 2:
+ dVar15 = g_MsgObject_HIO_c.mBoxPos[1][0];
+ field_0xf0 = 105.0f - (mpScreen->search('n_all')->getBounds().i.y +
+ mpScreen->search('n_all')->getBounds().f.y) / 2;
+ if (mpSelect_c != NULL) {
+ mpSelect_c->translate(486.0f, 355.0f);
+ }
+ break;
+ default:
+ dVar15 = g_MsgObject_HIO_c.mBoxPos[0][0];
+ field_0xf0 = 0.0f;
+ if (mpSelect_c != NULL) {
+ mpSelect_c->translate(486.0f, 209.0f);
+ }
+
+ }
+ if (dComIfGp_isHeapLockFlag() == 2 || dComIfGp_isHeapLockFlag() == 3) {
+ setTextBoxPosOffsetY(-190.0f);
+ mpScreen->search('n_all')->move(field_0xe8, field_0xec - 190.0f);
+ } else {
+ setTextBoxPosOffsetY(field_0xf0 + dVar15);
+ mpScreen->search('n_all')->move(field_0xe8, field_0xec + field_0xf0 + dVar15);
+ }
+ if (mpPmP_c != NULL) {
+ mpPmP_c->reinit();
+ mpArrow_c->setPos(mpArw_c->getGlobalPosX() + (0.5f * mpArw_c->getSizeX()),
+ mpArw_c->getGlobalPosY() + (0.5f * mpArw_c->getSizeY()));
+ mpMg_c[1]->translate(field_0xf4 +
+ (mpMg_c[0]->getGlobalPosX() + (0.5f * mpMg_c[0]->getSizeX())),
+ (mpMg_c[0]->getGlobalPosY() + (0.5f * mpMg_c[0]->getSizeY())));
+ mTextBoxPosX = mpTm_c[0]->getGlobalPosX();
+ mTextBoxPosY = mpTm_c[0]->getGlobalPosY();
+ } else {
+ Vec local_ac = mpArw_c->getGlobalVtxCenter(false, 0);
+ mpArrow_c->setPos(local_ac.x, local_ac.y);
+ Vec local_b8 = mpMg_c[0]->getGlobalVtxCenter(false, 0);
+ mpMg_c[1]->translate(local_b8.x + field_0xf4, local_b8.y);
+ }
+}
+
+
+/* 80399BB0-80399BB0 026210 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ \ No newline at end of file