// // Item Message Screen // #include "d/dolzel.h" #include "d/d_msg_scrn_item.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_info.h" #include "d/d_meter_HIO.h" #include "d/d_item_data.h" #include "d/d_pane_class.h" #include "d/d_s_play.h" #include "m_Do/m_Do_lib.h" #include "m_Do/m_Do_graphic.h" #include "JSystem/J2DGraph/J2DAnmLoader.h" #include "JSystem/J2DGraph/J2DScreen.h" #include "JSystem/J2DGraph/J2DGrafContext.h" #include "JSystem/JKernel/JKRExpHeap.h" #include "JSystem/JUtility/JUTTexture.h" /* 8023E79C-8023F51C 2390DC 0D80+00 0/0 1/1 0/0 .text __ct__14dMsgScrnItem_cFUcUcP10JKRExpHeap */ dMsgScrnItem_c::dMsgScrnItem_c(u8 param_1, u8 param_2, JKRExpHeap* param_3) { if (param_3 != NULL) { field_0x138 = param_3; } else { field_0x138 = dComIfGp_getSubHeap2D(7); } field_0x19e = false; init(); int iVar6 = dMsgObject_getMessageID(); bool bVar5 = false; #ifdef DEBUG if (dMsgObject_getMessageID() >= 0x10cc && dMsgObject_getMessageID() < 0x11cc) { mItemIndex = dMsgObject_getMessageID() - 0x10cc; bVar5 = true; } #endif if (iVar6 >= 0x645 && iVar6 <= 0x648) { mItemIndex = iVar6 - 0x641; bVar5 = true; } else if (iVar6 >= 0x8f5 && iVar6 <= 0x90c) { mItemIndex = iVar6 - 0x835; bVar5 = true; } if (!bVar5) { mItemIndex = dMsgObject_getMessageID() - 0x65; } if (mItemIndex == 0x240) { mItemIndex = 0x40; } else if (mItemIndex == 0x191e || mItemIndex == 0x402e) { mItemIndex = 0x46; } else if (mItemIndex == 0x46a || mItemIndex == 0x46b || mItemIndex == 0x46c) { mItemIndex = 0xe0; } else if (mItemIndex == 0x1d35) { mItemIndex = 0x21; } else if (mItemIndex == 0x55b || mItemIndex == 0x55c) { mItemIndex = 0x23; } else if (mItemIndex == 0x6b9 || mItemIndex == 0x6eb) { mItemIndex = 0x60; } if (mItemIndex == 0xec) { mItemIndex = 0x33; } if ((mItemIndex < 0 || 0xff < mItemIndex) && !isOugiID()) { if (*dComIfGp_getNextStageName() != 'T') { JUT_WARN(85, "Item Index Not Exist!! %d", mItemIndex); } mItemIndex = 0x43; } for (int i = 0; i < 3; i++) { mpItemPane[i] = 0; field_0x0e0[i] = 0; mpItemTex[i] = field_0x138->alloc(0xc00, 0x20); JUT_ASSERT(100, mpItemTex[i] != 0); } int uStack_60 = 0xffffffff; if (mItemIndex == 0x46 || mItemIndex == 0x4c) { uStack_60 = 0x16; } else if (mItemIndex == 0x21 || mItemIndex == 0x37 || mItemIndex == 0x38 || mItemIndex == 0x39 || mItemIndex == 0x3a) { switch(dComIfGs_getMaxLife() % 5) { case 0: uStack_60 = 0x75; break; case 1: uStack_60 = 0x76; break; case 2: uStack_60 = 0x77; break; case 3: uStack_60 = 0x78; break; case 4: uStack_60 = 0x51; break; } } if (isOugiID()) { JKRReadIdxResource(mpItemTex[0], 0xc00, 0x3d, dComIfGp_getItemIconArchive()); field_0x0e0[0] = (ResTIMG*)mpItemTex[0]; mpItemPane[0] = new J2DPicture(field_0x0e0[0]); JUT_ASSERT(148, mpItemPane[0] != 0); } else { int texNum = dMeter2Info_readItemTexture(mItemIndex, mpItemTex[0], (J2DPicture*)NULL, mpItemTex[1], (J2DPicture*)NULL, mpItemTex[2], (J2DPicture*)NULL, NULL, (J2DPicture*)NULL, uStack_60); for (int i = 0; i < texNum; i++) { field_0x0e0[i] = (ResTIMG*)mpItemTex[i]; mpItemPane[i] = new J2DPicture(field_0x0e0[i]); JUT_ASSERT(165, mpItemPane[i] != 0); } dMeter2Info_setItemColor( mItemIndex, mpItemPane[0], mpItemPane[1], mpItemPane[2], NULL); #ifdef DEBUG if (mItemIndex == 0x81 || mItemIndex == 0x23) { field_0x19e = true; } #endif } mpScreen = new J2DScreen(); JUT_ASSERT(188, mpScreen != 0); bool fg = mpScreen->setPriority("zelda_item_get_window.blo", 0x1020000, dComIfGp_getMsgArchive(3)); JUT_ASSERT(195, fg != false); dPaneClass_showNullPane(mpScreen); mpTxScreen = new J2DScreen(); JUT_ASSERT(199, mpTxScreen != 0); fg = mpTxScreen->setPriority("zelda_item_get_window_text.blo", 0x20000, dComIfGp_getMsgArchive(3)); JUT_ASSERT(206, fg != false); dPaneClass_showNullPane(mpTxScreen); f32 dVar18; if (g_drawHIO.mItemScaleAdjustON == 1) { dVar18 = g_drawHIO.mItemScalePercent / 100.0f; } else if (mItemIndex >= 0 && mItemIndex <= 0xff) { dVar18 = dItem_data::getTexScale(mItemIndex) / 100.0f; } else { dVar18 = 1.0f; } field_0x178 = field_0x0e0[0]->width * mpScreen->search('set_it_n')->getWidth() / 48.0f; field_0x17c = field_0x0e0[0]->height * mpScreen->search('set_it_n')->getHeight() / 48.0f; field_0x170 = mpScreen->search('set_it_n')->getWidth(); field_0x174 = mpScreen->search('set_it_n')->getHeight(); for (int i = 0; i < 3; i++) { if (mpItemPane[i] != NULL) { mpItemPane[i]->resize(field_0x178 * dVar18, field_0x17c * dVar18); mpItemPane[i]->setBasePosition(J2DBasePosition_4); } } mpArrow_c = new dMsgScrnArrow_c(); JUT_ASSERT(280, mpArrow_c != 0); mpSelect_c = new dMsgScrn3Select_c(); JUT_ASSERT(284, mpSelect_c != 0); mpLight_c = new dMsgScrnLight_c(3, param_2); JUT_ASSERT(288, mpLight_c != 0); void* mpBuf = field_0x138->alloc(0x106a, 0x20); JUT_ASSERT(291, mpBuf != 0); memset(mpBuf, 0, 0x106a); mCharInfoPtr = (CharInfo_c*)mpBuf; field_0x160 = mpScreen->search('n_all')->getBounds().i.x; field_0x164 = mpScreen->search('n_all')->getBounds().i.y; field_0x180 = 0.0f; field_0x184 = 0.0f; for (int i = 0; i < 3; i++) { field_0x188[i] = g_MsgObject_HIO_c.mBoxPos[i][3]; } field_0x194 = 0.0f; mpArw_c = new CPaneMgr(mpScreen, 'set_ya_n', 0, NULL); JUT_ASSERT(306, mpArw_c != 0); mpMg_c[0] = new CPaneMgr(mpScreen, 'mg_null', 0, NULL); JUT_ASSERT(309, mpMg_c[0] != 0); mpMg_c[1] = new CPaneMgr(mpTxScreen, 'mg_null', 0, NULL); JUT_ASSERT(312, mpMg_c[1] != 0); OSInitFastCast(); fukiPosCalc(param_1); field_0x118[0] = (J2DAnmTextureSRTKey*)J2DAnmLoaderDataBase::load(JKRGetNameResource("zelda_item_get_window.btk", dComIfGp_getMsgArchive(3))); field_0x118[0]->searchUpdateMaterialID(mpScreen); field_0x140[0] = 0.0f; field_0x12c[0] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(JKRGetNameResource("zelda_item_get_window.bpk", dComIfGp_getMsgArchive(3))); field_0x12c[0]->searchUpdateMaterialID(mpScreen); field_0x154[0] = 0.0f; field_0x12c[1] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(JKRGetNameResource("zelda_item_get_window_02.bpk", dComIfGp_getMsgArchive(3))); field_0x12c[1]->searchUpdateMaterialID(mpScreen); field_0x154[1] = 0.0f; field_0x19d = false; mpPmP_c = new CPaneMgr(mpScreen, 'n_all', 3, NULL); JUT_ASSERT(389, mpPmP_c != 0); mpPmP_c->scale(g_MsgObject_HIO_c.mBoxItemScaleX, g_MsgObject_HIO_c.mBoxItemScaleY); #if VERSION == VERSION_GCN_JPN if (dComIfGs_getOptUnk0() == 0) { mpTm_c[0] = new CPaneMgr(mpTxScreen, 'mg_3flin', 0, NULL); JUT_ASSERT(407, mpTm_c[0] != 0); mpTm_c[1] = new CPaneMgr(mpTxScreen, 't3f_s', 0, NULL); JUT_ASSERT(410, mpTm_c[1] != 0); mpTm_c[2] = new CPaneMgr(mpTxScreen, 't3f_w', 0, NULL); JUT_ASSERT(413, mpTm_c[2] != 0); mpTmr_c[0] = new CPaneMgr(mpTxScreen, 'mg_3f', 0, NULL); JUT_ASSERT(416, mpTmr_c[0] != 0); mpTmr_c[1] = new CPaneMgr(mpTxScreen, 'mg_3f_s', 0, NULL); JUT_ASSERT(419, mpTmr_c[1] != 0); mpTmr_c[2] = new CPaneMgr(mpTxScreen, 'mg_3f_w', 0, NULL); JUT_ASSERT(422, mpTmr_c[2] != 0); mpTxScreen->search('n_3line')->hide(); mpTxScreen->search('n_3fline')->show(); mpTxScreen->search('n_e4line')->hide(); } else { mpTm_c[0] = new CPaneMgr(mpTxScreen, 'mg_3line', 0, NULL); JUT_ASSERT(407, mpTm_c[0] != 0); mpTm_c[1] = new CPaneMgr(mpTxScreen, 't3_s', 0, NULL); JUT_ASSERT(410, mpTm_c[1] != 0); mpTm_c[2] = new CPaneMgr(mpTxScreen, 't3_w', 0, NULL); JUT_ASSERT(413, mpTm_c[2] != 0); mpTxScreen->search('n_3line')->show(); mpTxScreen->search('n_3fline')->hide(); mpTxScreen->search('n_e4line')->hide(); } #else mpTm_c[0] = new CPaneMgr(mpTxScreen, 'mg_e4lin', 0, NULL); JUT_ASSERT(407, mpTm_c[0] != 0); mpTm_c[1] = new CPaneMgr(mpTxScreen, 't4_s', 0, NULL); JUT_ASSERT(410, mpTm_c[1] != 0); mpTm_c[2] = new CPaneMgr(mpTxScreen, 't4_w', 0, NULL); JUT_ASSERT(413, mpTm_c[2] != 0); mpTxScreen->search('n_3line')->hide(); mpTxScreen->search('n_3fline')->hide(); mpTxScreen->search('n_e4line')->show(); #endif for (int i = 0; i < 3; i++) { ((J2DTextBox*)mpTm_c[i]->getPanePtr())->setFont(mDoExt_getMesgFont()); if (mpTmr_c[i] != NULL) { ((J2DTextBox*)mpTmr_c[i]->getPanePtr())->setFont(mDoExt_getMesgFont()); } } ((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 < 3; i++) { ((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() + (0.5f * ((1.0f - g_MsgObject_HIO_c.mBoxItemTextSizeX) * mpTm_c[0]->getInitSizeX())); mTextBoxPosY = mpTm_c[0]->getGlobalPosY() + (0.5f * ((1.0f - g_MsgObject_HIO_c.mBoxItemTextSizeY) * mpTm_c[0]->getInitSizeY())); mTextBoxScaleX = g_MsgObject_HIO_c.mBoxItemTextSizeX; mTextBoxScaleY = g_MsgObject_HIO_c.mBoxItemTextSizeY; for (int i = 0; i < 3; 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()); } } 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); } field_0x13c = 0.0f; } /* 8023F51C-8023F888 239E5C 036C+00 1/0 0/0 0/0 .text __dt__14dMsgScrnItem_cFv */ dMsgScrnItem_c::~dMsgScrnItem_c() { for (int i = 0; i < 3; i++) { if (mpItemTex[i] != NULL) { field_0x138->free(mpItemTex[i]); mpItemTex[i] = NULL; } if (mpItemPane[i] != NULL) { delete mpItemPane[i]; mpItemPane[i] = NULL; } } delete mpScreen; mpScreen = NULL; delete mpTxScreen; mpTxScreen = NULL; delete mpArrow_c; mpArrow_c = NULL; delete mpSelect_c; mpSelect_c = NULL; delete mpLight_c; mpLight_c = NULL; if (mCharInfoPtr != 0) { field_0x138->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; } for (int i = 0; i < 1; i++) { delete field_0x118[i]; field_0x118[i] = NULL; } for (int i = 0; i < 2; i++) { delete field_0x12c[i]; field_0x12c[i] = NULL; } delete mpPmP_c; mpPmP_c = NULL; for (int i = 0; i < 3; i++) { 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(3)->removeResourceAll();; dComIfGp_getMsgCommonArchive()->removeResourceAll();; } /* 8023F888-8023FB24 23A1C8 029C+00 1/0 0/0 0/0 .text exec__14dMsgScrnItem_cFv */ void dMsgScrnItem_c::exec() { f32 dVar12 = field_0x13c; if (!field_0x19d) { setBtk0Animation(field_0x118[0]); setBpk0Animation(field_0x12c[0]); setBpk1Animation(field_0x12c[1]); field_0x19d = true; } for (int i = 0; i < 1; i++) { field_0x140[i] += g_MsgObject_HIO_c.mBoxItemAnmSpeed; if (field_0x140[i] >= field_0x118[i]->getFrameMax()) { field_0x140[i] -= field_0x118[i]->getFrameMax(); } field_0x118[i]->setFrame(field_0x140[i]); } for (int i = 0; i < 2; i++) { field_0x154[i] += g_MsgObject_HIO_c.mBoxItemAnmSpeed; if (field_0x154[i] >= field_0x12c[i]->getFrameMax()) { field_0x154[i] -= field_0x12c[i]->getFrameMax(); } field_0x12c[i]->setFrame(field_0x154[i]); } mpScreen->animation(); if (isTalkNow()) { fukiAlpha(1.0f); } else { fukiAlpha(dVar12); } f32 yOffset; switch(field_0x19c) { case 1: yOffset = field_0x188[2] - field_0x184; break; case 2: yOffset = field_0x188[1] - field_0x184; break; default: yOffset = field_0x188[0] - field_0x184; break; } mpPmP_c->scale(g_MsgObject_HIO_c.mBoxItemScaleX, g_MsgObject_HIO_c.mBoxItemScaleY); mpMg_c[1]->translate(field_0x168 + g_MsgObject_HIO_c.mBoxItemTextPosX, yOffset + (field_0x16c + g_MsgObject_HIO_c.mBoxItemTextPosY)); mpMg_c[1]->scale(g_MsgObject_HIO_c.mBoxItemTextSizeX, g_MsgObject_HIO_c.mBoxItemTextSizeY); } /* 8023FB24-8023FF30 23A464 040C+00 1/0 0/0 0/0 .text drawSelf__14dMsgScrnItem_cFv */ void dMsgScrnItem_c::drawSelf() { J2DGrafContext* grafContext = dComIfGp_getCurrentGrafPort(); grafContext->setup2D(); s16* pLen = (short*)((u8*)mCharInfoPtr + 0x1068); if (*pLen > 0) { f32 dVar12 = mpTm_c[0]->getAlphaRate(); for (int i = 0; i < *pLen; i = i + 1) { mpLight_c->draw(&mCharInfoPtr[i].field_0x14, mCharInfoPtr[i].field_0x00, mCharInfoPtr[i].field_0x04, mCharInfoPtr[i].field_0x08, mCharInfoPtr[i].field_0x0c, dVar12 * g_MsgObject_HIO_c.mBoxItemHaloAlpha, mCharInfoPtr[i].mColorNo); } } f32 globalPosX = mpTm_c[0]->getGlobalPosX(); if (mDoGph_gInf_c::isWide()) { drawOutFont(g_MsgObject_HIO_c.mBoxItemTextPosX + 7.0f + YREG_F(2), g_MsgObject_HIO_c.mBoxItemTextPosY, 1.0f); } else { drawOutFont(g_MsgObject_HIO_c.mBoxItemTextPosX - 2.0f + YREG_F(2), g_MsgObject_HIO_c.mBoxItemTextPosY, 1.0f); } mpTxScreen->draw(0.0f, 0.0f, grafContext); mpSelect_c->draw(0.0f, 0.0f); mpArrow_c->draw(); for (int i = 0; i < 3; i++) { if (mpItemPane[i] != NULL) { mpItemPane[i]->setAlpha(255.0f * field_0x194); switch (mItemIndex) { case 0x20: case 0x2a: case 0x2b: case 0x21: case 0x37: case 0x38: case 0x39: case 0x3a: case 0x3d: case 0x40: case 0x42: case 0x44: case 0x47: case 0x48: case 0x4a: case 0x58: case 0x5b: case 0x5c: case 0x5d: case 0x5e: case 0x5f: case 0x9c: case 0xee: case 0xf3: case 0xf8: case 0xf9: case 0xfa: case 0xfb: case 0xfc: case 0xfd: case 0xfe: mpItemPane[i]->scale(0.6f, 0.6f); break; default: mpItemPane[i]->scale(g_MsgObject_HIO_c.mBoxItemSizeX, g_MsgObject_HIO_c.mBoxItemSizeY); } f32 texScale; if (g_drawHIO.mItemScaleAdjustON == true) { texScale = (g_drawHIO.mItemScalePercent / 100.0f); } else if (mItemIndex >= 0 && mItemIndex <= 0xff) { texScale = dItem_data::getTexScale(mItemIndex) / 100.0f; } else { texScale = 1.0f; }; mpItemPane[i]->draw(mpScreen->search('set_it_n')->getGlbBounds().i.x + 0.5f * (field_0x170 - (field_0x178 * texScale)) + g_MsgObject_HIO_c.mBoxItemPosX, mpScreen->search('set_it_n')->getGlbBounds().i.y + 0.5f * (field_0x174 - (field_0x17c * texScale)) + g_MsgObject_HIO_c.mBoxItemPosY, field_0x178 * texScale, field_0x17c * texScale, field_0x19e, false, false); } } } /* 8023FF30-8023FF54 23A870 0024+00 1/0 0/0 0/0 .text arwAnimeInit__14dMsgScrnItem_cFv */ void dMsgScrnItem_c::arwAnimeInit() { mpArrow_c->arwAnimeInit(); } /* 8023FF54-8023FF78 23A894 0024+00 1/0 0/0 0/0 .text arwAnimeMove__14dMsgScrnItem_cFv */ void dMsgScrnItem_c::arwAnimeMove() { mpArrow_c->arwAnimeMove(); } /* 8023FF78-8023FF9C 23A8B8 0024+00 1/0 0/0 0/0 .text dotAnimeInit__14dMsgScrnItem_cFv */ void dMsgScrnItem_c::dotAnimeInit() { mpArrow_c->dotAnimeInit(); } /* 8023FF9C-8023FFC0 23A8DC 0024+00 1/0 0/0 0/0 .text dotAnimeMove__14dMsgScrnItem_cFv */ void dMsgScrnItem_c::dotAnimeMove() { mpArrow_c->dotAnimeMove(); } /* 8023FFC0-8023FFE4 23A900 0024+00 1/0 0/0 0/0 .text setSelectString__14dMsgScrnItem_cFPcPcPc */ void dMsgScrnItem_c::setSelectString(char* param_0, char* param_1, char* param_2) { mpSelect_c->setString(param_0, param_1, param_2); } /* 8023FFE4-80240008 23A924 0024+00 1/0 0/0 0/0 .text setSelectRubyString__14dMsgScrnItem_cFPcPcPc */ void dMsgScrnItem_c::setSelectRubyString(char* param_0, char* param_1, char* param_2) { mpSelect_c->setRubyString(param_0, param_1, param_2); } /* 80240008-8024002C 23A948 0024+00 1/0 0/0 0/0 .text isSelect__14dMsgScrnItem_cFv */ bool dMsgScrnItem_c::isSelect() { return mpSelect_c->isSelect(); } /* 8024002C-8024005C 23A96C 0030+00 1/0 0/0 0/0 .text selectAnimeInit__14dMsgScrnItem_cFUcUcfUc */ void dMsgScrnItem_c::selectAnimeInit(u8 param_0, u8 param_1, f32 param_2, u8 param_3) { mpSelect_c->selAnimeInit(param_0, param_1, field_0x19c, param_2, param_3); } /* 8024005C-80240080 23A99C 0024+00 1/0 0/0 0/0 .text selectAnimeMove__14dMsgScrnItem_cFUcUcb */ bool dMsgScrnItem_c::selectAnimeMove(u8 param_0, u8 param_1, bool param_2) { return mpSelect_c->selAnimeMove(param_0, param_1, param_2); } /* 80240080-802400A4 23A9C0 0024+00 1/0 0/0 0/0 .text selectAnimeEnd__14dMsgScrnItem_cFv */ bool dMsgScrnItem_c::selectAnimeEnd() { return mpSelect_c->selAnimeEnd(); } /* 802400A4-802400A8 23A9E4 0004+00 1/0 0/0 0/0 .text fukiScale__14dMsgScrnItem_cFf */ void dMsgScrnItem_c::fukiScale(f32 param_0) { } /* 802400A8-802400CC 23A9E8 0024+00 1/0 0/0 0/0 .text fukiTrans__14dMsgScrnItem_cFff */ void dMsgScrnItem_c::fukiTrans(f32 x, f32 y) { mpPmP_c->paneTrans(x, y); } /* 802400CC-80240174 23AA0C 00A8+00 1/0 0/0 0/0 .text fukiAlpha__14dMsgScrnItem_cFf */ void dMsgScrnItem_c::fukiAlpha(f32 param_1) { field_0x13c = param_1; field_0x194 = param_1; mpPmP_c->setAlphaRate(param_1 * g_MsgObject_HIO_c.mBoxItemAlphaP); for (int i = 0; i < 3; i++) { mpTm_c[i]->setAlphaRate(param_1 * mCharAlphaRate); if (mpTmr_c[i] != NULL) { mpTmr_c[i]->setAlphaRate(param_1 * mCharAlphaRate); } } } /* 80240174-8024074C 23AAB4 05D8+00 1/0 0/0 0/0 .text fukiPosCalc__14dMsgScrnItem_cFUc */ void dMsgScrnItem_c::fukiPosCalc(u8 param_1) { msg_class* iVar6 = dMsgObject_c::getActor(); if (mpPmP_c != NULL) { mpPmP_c->move(field_0x160, field_0x164); } if (param_1 == 3) { fopAc_ac_c* player = dComIfGp_getPlayer(0); cXyz local_70; cXyz cStack_7c; f32 f3; mDoLib_project(&player->eyePos, &cStack_7c); if (iVar6->pos == cXyz(0.0f, 0.0f, 0.0f)) { f3 = cStack_7c.y; } else { mDoLib_project(&iVar6->pos, &local_70); if (local_70.x >= 0.0f && local_70.x <= 608.0f && local_70.y >= 0.0f && local_70.y <= 448.0f) { f3 = 0.5f * (cStack_7c.y + local_70.y); } else { f3 = cStack_7c.y; } } if (mpPmP_c != NULL) { switch(field_0x19c) { case 1: if (f3 < g_MsgObject_HIO_c.mBoxAppearBound - 50.0f) { param_1 = 0; } else { param_1 = 1; } break; case 3: if (f3 < g_MsgObject_HIO_c.mBoxAppearBound + 50.0f) { param_1 = 0; } else { param_1 = 1; } break; } } else { if (f3 < g_MsgObject_HIO_c.mBoxAppearBound) { param_1 = 0; } else { param_1 = 1; } } } field_0x180 = 0.0f; field_0x19c = param_1; f32 yOffset; switch(field_0x19c) { case 1: yOffset = g_MsgObject_HIO_c.mBoxPos[2][3]; field_0x180 = 105.0f - (mpScreen->search('n_all')->getBounds().i.y + mpScreen->search('n_all')->getBounds().f.y) / 2; mpSelect_c->translate(486.0f, 230.0f); break; case 2: yOffset = g_MsgObject_HIO_c.mBoxPos[1][3]; field_0x180 = 235.0f - (mpScreen->search('n_all')->getBounds().i.y + mpScreen->search('n_all')->getBounds().f.y) / 2; mpSelect_c->translate(486.0f, 355.0f); break; default: yOffset = g_MsgObject_HIO_c.mBoxPos[0][3]; field_0x180 = 0.0f; mpSelect_c->translate(486.0f, 209.0f); } field_0x184 = yOffset; setTextBoxPosOffsetY(field_0x180 + yOffset); mpScreen->search('n_all')->move(field_0x160, yOffset + (field_0x164 + field_0x180)); 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(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(); field_0x168 = mpMg_c[0]->getGlobalPosX() + 0.5f * mpMg_c[0]->getSizeX(); field_0x16c = (mpMg_c[0]->getGlobalPosY() + 0.5f * mpMg_c[0]->getSizeY()); } else { Vec arwCenter = mpArw_c->getGlobalVtxCenter(false, 0); mpArrow_c->setPos(arwCenter.x, arwCenter.y); Vec local_b8 = mpMg_c[0]->getGlobalVtxCenter(false, 0); field_0x168 = local_b8.x; field_0x16c = local_b8.y; mpMg_c[1]->translate(field_0x168, field_0x16c); } } /* 8024074C-802407E8 23B08C 009C+00 1/1 0/0 0/0 .text * setBtk0Animation__14dMsgScrnItem_cFP19J2DAnmTextureSRTKey */ void dMsgScrnItem_c::setBtk0Animation(J2DAnmTextureSRTKey* param_1) { mpScreen->search('gold00')->setAnimation(param_1); mpScreen->search('gold01')->setAnimation(param_1); } /* 802407E8-80240844 23B128 005C+00 1/1 0/0 0/0 .text * setBpk0Animation__14dMsgScrnItem_cFP11J2DAnmColor */ void dMsgScrnItem_c::setBpk0Animation(J2DAnmColor* param_0) { mpScreen->search('map0')->setAnimation(param_0); } /* 80240844-802408A4 23B184 0060+00 1/1 0/0 0/0 .text * setBpk1Animation__14dMsgScrnItem_cFP11J2DAnmColor */ void dMsgScrnItem_c::setBpk1Animation(J2DAnmColor* param_0) { mpScreen->search('moyou_1')->setAnimation(param_0); } /* 802408A4-8024096C 23B1E4 00C8+00 1/1 0/0 0/0 .text isOugiID__14dMsgScrnItem_cFv */ bool dMsgScrnItem_c::isOugiID() { switch(dMsgObject_getMessageID()) { case 0x17ed: case 0x1823: case 0x183f: case 0x18b4: case 0x185c: case 0x1877: case 0x1895: case 0x3efd: case 0x3f33: case 0x3f6c: case 0x3f87: case 0x3fa5: case 0x3fc4: return true; } return false; } /* 80399990-80399990 025FF0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */