Files
dusklight/src/d/msg/d_msg_string_base.cpp
T
2024-01-02 19:37:15 -08:00

304 lines
12 KiB
C++

//
// Generated By: dol2asm
// Translation Unit: d/msg/d_msg_string_base
//
#include "d/msg/d_msg_string_base.h"
#include "d/msg/d_msg_class.h"
#include "d/com/d_com_inf_game.h"
#include "d/meter/d_meter2_info.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "JSystem/JUtility/JUTAssert.h"
#include "JSystem/JKernel/JKRArchive.h"
#include "JSystem/J2DGraph/J2DTextBox.h"
//
// Forward References:
//
extern "C" void __ct__16dMsgStringBase_cFv();
extern "C" void __dt__16dMsgStringBase_cFv();
extern "C" void getResource__16dMsgStringBase_cFv();
extern "C" void
getStringLocal__16dMsgStringBase_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc();
extern "C" void
getStringPageLocal__16dMsgStringBase_cFUlUcUcP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc();
extern "C" void getPageMax__16dMsgStringBase_cFi();
extern "C" void getMessageLocal__16dMsgStringBase_cFUlPc();
extern "C" void drawFontLocal__16dMsgStringBase_cFP10J2DTextBoxUcffffUlUc();
extern "C" void
getString__16dMsgStringBase_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc();
extern "C" void
getStringPage__16dMsgStringBase_cFUlUcUcP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc();
extern "C" void getMessage__16dMsgStringBase_cFUlPc();
extern "C" void resetStringLocal__16dMsgStringBase_cFP10J2DTextBox();
extern "C" void drawOutFontLocal__16dMsgStringBase_cFP10J2DTextBoxf();
extern "C" extern char const* const d_msg_d_msg_string_base__stringBase0;
//
// External References:
//
extern "C" void __ct__26jmessage_string_tReferenceFv();
extern "C" void
init__26jmessage_string_tReferenceFP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc();
extern "C" void getLineLength__26jmessage_string_tReferenceFi();
extern "C" void __ct__24jmessage_string_tControlFv();
extern "C" void
__ct__34jmessage_string_tSequenceProcessorFPC26jmessage_string_tReferenceP24jmessage_string_tControl();
extern "C" void __ct__35jmessage_string_tRenderingProcessorFPC26jmessage_string_tReference();
extern "C" void reset__Q28JMessage8TControlFv();
extern "C" void update__Q28JMessage8TControlFv();
extern "C" void render__Q28JMessage8TControlFv();
extern "C" void setMessageID__Q28JMessage8TControlFUlUlPb();
extern "C" void __dt__Q38JMessage18TResourceContainer10TCResourceFv();
extern "C" void __ct__Q28JMessage18TResourceContainerFv();
extern "C" void __ct__Q28JMessage6TParseFPQ28JMessage18TResourceContainer();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void getGlbResource__10JKRArchiveFUlPCcP10JKRArchive();
extern "C" void parse_next__Q37JGadget6binary19TParse_header_blockFPPCvUl();
extern "C" void erase__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iterator();
extern "C" void _savegpr_23();
extern "C" void _savegpr_25();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_23();
extern "C" void _restgpr_25();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
//
// Declarations:
//
/* ############################################################################################## */
/* 803C1478-803C1498 01E598 0020+00 2/2 0/0 0/0 .data __vt__16dMsgStringBase_c */
SECTION_DATA extern void* __vt__16dMsgStringBase_c[8] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)getString__16dMsgStringBase_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc,
(void*)
getStringPage__16dMsgStringBase_cFUlUcUcP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc,
(void*)getMessage__16dMsgStringBase_cFUlPc,
(void*)resetStringLocal__16dMsgStringBase_cFP10J2DTextBox,
(void*)drawOutFontLocal__16dMsgStringBase_cFP10J2DTextBoxf,
(void*)drawFontLocal__16dMsgStringBase_cFP10J2DTextBoxUcffffUlUc,
};
/* 802493B4-80249528 243CF4 0174+00 0/0 2/2 0/0 .text __ct__16dMsgStringBase_cFv */
dMsgStringBase_c::dMsgStringBase_c() {
field_0x20 = 0;
getResource();
mpResCont = new JMessage::TResourceContainer();
JUT_ASSERT(33, mpResCont != 0);
mpCtrl = new jmessage_string_tControl();
JUT_ASSERT(36, mpCtrl != 0);
mpRefer = new jmessage_string_tReference();
JUT_ASSERT(39, mpRefer != 0);
mpSeqProc = new jmessage_string_tSequenceProcessor(mpRefer, mpCtrl);
JUT_ASSERT(42, mpSeqProc != 0);
mpRenProc = new jmessage_string_tRenderingProcessor(mpRefer);
JUT_ASSERT(45, mpRenProc != 0);
mpParse = new JMessage::TParse(mpResCont);
JUT_ASSERT(48, mpParse != 0);
mpRefer->setResourceContainer(mpResCont);
mpCtrl->setSequenceProcessor(mpSeqProc);
mpCtrl->setRenderingProcessor(mpRenProc);
mpParse->parse(field_0x1c, 0);
mpCtrl->reset();
mpCtrl->resetResourceCache();
}
/* 80249528-80249700 243E68 01D8+00 0/0 1/1 0/0 .text __dt__16dMsgStringBase_cFv */
// linklist begin/front/pop_front iterator stack
#ifdef NONMATCHING
dMsgStringBase_c::~dMsgStringBase_c() {
mpResCont->destroyResource_all();
delete mpResCont;
mpResCont = NULL;
delete mpCtrl;
mpCtrl = NULL;
delete mpRefer;
mpRefer = NULL;
delete mpSeqProc;
mpSeqProc = NULL;
delete mpRenProc;
mpRenProc = NULL;
delete mpParse;
mpParse = NULL;
void* iVar1 = dMeter2Info_getMsgResource();
if (iVar1 == NULL) {
dComIfGp_getMsgDtArchive(0)->removeResourceAll();
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm dMsgStringBase_c::~dMsgStringBase_c() {
nofralloc
#include "asm/d/msg/d_msg_string_base/__dt__16dMsgStringBase_cFv.s"
}
#pragma pop
#endif
/* 80249700-80249768 244040 0068+00 1/1 2/2 0/0 .text getResource__16dMsgStringBase_cFv
*/
void dMsgStringBase_c::getResource() {
field_0x1c = dMeter2Info_getMsgResource();
if (field_0x1c == NULL) {
field_0x1c = JKRGetTypeResource('ROOT', "zel_00.bmg", dComIfGp_getMsgDtArchive(0));
}
}
/* 80249768-802498D8 2440A8 0170+00 1/1 1/1 0/0 .text
* getStringLocal__16dMsgStringBase_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc */
f32 dMsgStringBase_c::getStringLocal(u32 param_1, J2DTextBox* param_2, J2DTextBox* param_3,
JUTFont* param_4, COutFont_c* param_5, u8 param_6) {
if (dMeter2Info_getMsgResource() != NULL) {
if (param_1 > 5000) {
if (field_0x1c != dMeter2Info_getStageMsgResource()) {
field_0x1c = dMeter2Info_getStageMsgResource();
mpParse->parse(field_0x1c, 0x80);
}
} else {
if (field_0x1c != dMeter2Info_getMsgResource()) {
field_0x1c = dMeter2Info_getMsgResource();
mpParse->parse(field_0x1c, 0x80);
}
}
}
mpRefer->init(param_2, param_3, param_4, param_5, param_6);
mpRefer->setColor(param_2->getCharColor(), param_2->getGradColor());
mpCtrl->setMessageID(param_1, 0, NULL);
mpCtrl->update();
mpCtrl->render();
f32 lineLength = mpRefer->getLineLength(0);
mpCtrl->reset();
mpCtrl->resetResourceCache();
return lineLength;
}
/* 802498D8-80249A48 244218 0170+00 1/1 1/1 0/0 .text
* getStringPageLocal__16dMsgStringBase_cFUlUcUcP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc
*/
// Matches with literals
f32 dMsgStringBase_c::getStringPageLocal(u32 param_1, u8 param_2, u8 param_3,
J2DTextBox* param_4, J2DTextBox* param_5,
JUTFont* param_6, COutFont_c* param_7, u8 param_8) {
if (dMeter2Info_getMsgResource() != NULL) {
if (param_1 > 5000) {
if (field_0x1c != dMeter2Info_getStageMsgResource()) {
field_0x1c = dMeter2Info_getStageMsgResource();
mpParse->parse(field_0x1c, 0x80);
}
} else {
if (field_0x1c != dMeter2Info_getMsgResource()) {
field_0x1c = dMeter2Info_getMsgResource();
mpParse->parse(field_0x1c, 0x80);
}
}
}
mpRefer->init(param_4, param_5, param_6, param_7, param_8);
mpRefer->setNowPage(param_2);
mpRefer->setLineMax(param_3);
mpRefer->setColor(param_4->getCharColor(), param_4->getGradColor());
mpCtrl->setMessageID(param_1, 0, NULL);
mpCtrl->update();
mpCtrl->render();
mpCtrl->reset();
mpCtrl->resetResourceCache();
return 0.0f;
}
/* 80249A48-80249A70 244388 0028+00 0/0 1/1 0/0 .text getPageMax__16dMsgStringBase_cFi */
u8 dMsgStringBase_c::getPageMax(int param_0) {
s16 lineCount = mpRefer->getLineCount();
u8 pageMax = (lineCount / param_0) & 0xff;
if (lineCount % param_0 != 0) {
return pageMax + 1;
}
return pageMax;
}
/* 80249A70-80249BAC 2443B0 013C+00 1/1 0/0 0/0 .text getMessageLocal__16dMsgStringBase_cFUlPc */
f32 dMsgStringBase_c::getMessageLocal(u32 param_1, char* param_2) {
if (dMeter2Info_getMsgResource() != NULL) {
if (param_1 > 5000) {
if (field_0x1c != dMeter2Info_getStageMsgResource()) {
field_0x1c = dMeter2Info_getStageMsgResource();
mpParse->parse(field_0x1c, 0x80);
}
} else {
if (field_0x1c != dMeter2Info_getMsgResource()) {
field_0x1c = dMeter2Info_getMsgResource();
mpParse->parse(field_0x1c, 0x80);
}
}
}
mpRefer->init(NULL, NULL, NULL, NULL, 0);
mpCtrl->setMessageID(param_1, 0, NULL);
mpCtrl->update();
mpCtrl->render();
mpCtrl->reset();
mpCtrl->resetResourceCache();
strcpy(param_2, mpRenProc->getString());
return 0.0f;
}
/* 80249BAC-80249BB0 2444EC 0004+00 1/0 0/0 0/0 .text
* drawFontLocal__16dMsgStringBase_cFP10J2DTextBoxUcffffUlUc */
void dMsgStringBase_c::drawFontLocal(J2DTextBox* param_0, u8 param_1, f32 param_2, f32 param_3,
f32 param_4, f32 param_5, u32 param_6, u8 param_7) {
/* empty function */
}
/* 80249BB0-80249BD0 2444F0 0020+00 1/0 0/0 0/0 .text
* getString__16dMsgStringBase_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc */
f32 dMsgStringBase_c::getString(u32 param_0, J2DTextBox* param_1, J2DTextBox* param_2,
JUTFont* param_3, COutFont_c* param_4, u8 param_5) {
return getStringLocal(param_0, param_1, param_2, param_3, param_4, param_5);
}
/* 80249BD0-80249BF8 244510 0028+00 1/0 0/0 0/0 .text
* getStringPage__16dMsgStringBase_cFUlUcUcP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc */
f32 dMsgStringBase_c::getStringPage(u32 param_0, u8 param_1, u8 param_2, J2DTextBox* param_3,
J2DTextBox* param_4, JUTFont* param_5, COutFont_c* param_6,
u8 param_7) {
return getStringPageLocal(param_0, param_1, param_2, param_3, param_4, param_5, param_6, param_7);
}
/* 80249BF8-80249C18 244538 0020+00 1/0 1/0 0/0 .text getMessage__16dMsgStringBase_cFUlPc
*/
f32 dMsgStringBase_c::getMessage(u32 param_0, char* param_1) {
return getMessageLocal(param_0, param_1);
}
/* 80249C18-80249C1C 244558 0004+00 1/0 0/0 0/0 .text
* resetStringLocal__16dMsgStringBase_cFP10J2DTextBox */
void dMsgStringBase_c::resetStringLocal(J2DTextBox* param_0) {
/* empty function */
}
/* 80249C1C-80249C20 24455C 0004+00 1/0 0/0 0/0 .text
* drawOutFontLocal__16dMsgStringBase_cFP10J2DTextBoxf */
void dMsgStringBase_c::drawOutFontLocal(J2DTextBox* param_0, f32 param_1) {
/* empty function */
}
/* ############################################################################################## */
/* 80399CA3-80399CB0 026303 0008+05 0/0 0/0 0/0 .rodata None */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80399CA3 = ""
"\x1B"
"CR[%d]";
/* @stringBase0 padding */
SECTION_DEAD static char const* const pad_80399CAB = "\0\0\0\0";
#pragma pop
/* 80399C98-80399C98 0262F8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */