tp/src/d/d_msg_scrn_base.cpp

161 lines
4.7 KiB
C++

#include "d/dolzel.h"
#include "d/d_msg_scrn_base.h"
#include "JSystem/J2DGraph/J2DGrafContext.h"
#include "JSystem/J2DGraph/J2DScreen.h"
#include "d/d_msg_object.h"
#include "d/d_msg_out_font.h"
#include "d/d_pane_class.h"
#include "cstring.h"
/* 8023C0DC-8023C124 236A1C 0048+00 0/0 9/9 0/0 .text __ct__14dMsgScrnBase_cFv */
dMsgScrnBase_c::dMsgScrnBase_c() {
init();
}
/* 8023C124-8023C16C 236A64 0048+00 1/0 9/9 0/0 .text __dt__14dMsgScrnBase_cFv */
dMsgScrnBase_c::~dMsgScrnBase_c() {}
/* 8023C16C-8023C234 236AAC 00C8+00 1/1 9/9 0/0 .text init__14dMsgScrnBase_cFv */
void dMsgScrnBase_c::init() {
mpScreen = NULL;
mpPmP_c = NULL;
field_0x54 = 0;
for (int i = 0; i < 7; i++) {
mpTm_c[i] = NULL;
mpTmr_c[i] = NULL;
}
mpOutFont = NULL;
field_0x48 = NULL;
field_0x4c = 0;
mCharInfoPtr = NULL;
mFontSize.mSizeX = mFontSize.mSizeY = 0.0f;
mRubySize = 0.0f;
mTextBoxPosX = 0.0f;
mTextBoxPosY = 0.0f;
mTextBoxScaleX = 1.0f;
mTextBoxScaleY = 1.0f;
mTBoxWidth = 0.0f;
mTBoxHeight = 0.0f;
mLineSpace = 0.0f;
mCharSpace = 0.0f;
mRubyCharSpace = 0.0f;
mSelFontSize = 0.0f;
mSelRubySize = 0.0f;
for (int i = 0; i < 3; i++) {
mSelTextBoxPosX[i] = 0.0f;
mSelTextBoxPosY[i] = 0.0f;
}
mSelTBoxWidth = 0.0f;
mSelCharSpace = 0.0f;
mSelRubyCharSpace = 0.0f;
mTextBoxPosOffsetY = 0.0f;
field_0xb8 = 0.0f;
mCharAlphaRate = 1.0f;
}
/* 8023C234-8023C274 236B74 0040+00 1/0 9/0 0/0 .text multiDraw__14dMsgScrnBase_cFv */
void dMsgScrnBase_c::multiDraw() {
if (field_0x48 != NULL) {
dComIfGd_set2DOpa(field_0x48);
}
}
/* 8023C274-8023C300 236BB4 008C+00 1/0 7/0 0/0 .text draw__14dMsgScrnBase_cFv */
void dMsgScrnBase_c::draw() {
J2DGrafContext* ctx = dComIfGp_getCurrentGrafPort();
ctx->setup2D();
mpScreen->draw(0.0f, 0.0f, ctx);
drawSelf();
ctx->setup2D();
}
/* 8023C300-8023C32C 236C40 002C+00 1/0 2/0 0/0 .text drawSelf__14dMsgScrnBase_cFv */
void dMsgScrnBase_c::drawSelf() {
drawOutFont(0.0f, 0.0f, 1.0f);
}
/* 8023C32C-8023C360 236C6C 0034+00 1/1 6/6 0/0 .text drawOutFont__14dMsgScrnBase_cFfff
*/
void dMsgScrnBase_c::drawOutFont(f32 param_0, f32 param_1, f32 param_2) {
mpOutFont->draw(NULL, param_0, param_1, param_2);
}
/* 8023C360-8023C3EC 236CA0 008C+00 0/0 2/2 0/0 .text setString__14dMsgScrnBase_cFPcPc */
void dMsgScrnBase_c::setString(char* mpText, char* i_stringB) {
for (int i = 0; i < 7; i++) {
if (mpTm_c[i] != NULL) {
JUT_ASSERT(262, ((J2DTextBox*)(mpTm_c[i]->getPanePtr()))->getStringAllocByte() > strlen(mpText));
if (i == 0) {
strcpy(((J2DTextBox*)mpTm_c[i]->getPanePtr())->getStringPtr(), mpText);
} else {
strcpy(((J2DTextBox*)mpTm_c[i]->getPanePtr())->getStringPtr(), i_stringB);
}
}
}
}
/* 8023C3EC-8023C458 236D2C 006C+00 0/0 2/2 0/0 .text setRubyString__14dMsgScrnBase_cFPc
*/
void dMsgScrnBase_c::setRubyString(char* mpText) {
for (int i = 0; i < 3; i++) {
if (mpTmr_c[i] != NULL) {
JUT_ASSERT(288, ((J2DTextBox*)(mpTmr_c[i]->getPanePtr()))->getStringAllocByte() > strlen(mpText));
strcpy(((J2DTextBox*)mpTmr_c[i]->getPanePtr())->getStringPtr(), mpText);
}
}
}
/* 8023C458-8023C480 236D98 0028+00 1/0 0/0 0/0 .text fukiScale__14dMsgScrnBase_cFf */
void dMsgScrnBase_c::fukiScale(f32 i_scale) {
mpPmP_c->paneScale(i_scale, i_scale);
}
/* 8023C480-8023C4A4 236DC0 0024+00 1/0 0/0 0/0 .text fukiTrans__14dMsgScrnBase_cFff */
void dMsgScrnBase_c::fukiTrans(f32 i_posX, f32 i_posY) {
mpPmP_c->paneTrans(i_posX, i_posY);
}
/* 8023C4A4-8023C4F4 236DE4 0050+00 1/0 0/0 0/0 .text fukiAlpha__14dMsgScrnBase_cFf */
void dMsgScrnBase_c::fukiAlpha(f32 i_alpha) {
fontAlpha(i_alpha);
mpPmP_c->setAlphaRate(i_alpha);
}
/* 8023C4F4-8023C574 236E34 0080+00 1/0 5/0 0/0 .text fontAlpha__14dMsgScrnBase_cFf */
void dMsgScrnBase_c::fontAlpha(f32 i_alpha) {
for (int i = 0; i < 7; i++) {
if (mpTm_c[i] != NULL) {
mpTm_c[i]->setAlphaRate(i_alpha);
}
if (mpTmr_c[i] != NULL) {
mpTmr_c[i]->setAlphaRate(i_alpha);
}
}
}
/* 8023C574-8023C5C8 236EB4 0054+00 1/0 8/8 0/0 .text isTalkNow__14dMsgScrnBase_cFv */
bool dMsgScrnBase_c::isTalkNow() {
switch (dMsgObject_getMsgObjectClass()->getStatus()) {
case 5:
case 6:
case 7:
case 8:
case 9:
case 15:
case 16:
case 20:
case 24:
return true;
default:
return false;
}
}