f_pc_manager almost matches

This commit is contained in:
LagoLunatic
2023-12-02 05:44:43 -05:00
parent 93adecbfb4
commit 08feb48be3
2 changed files with 54 additions and 40 deletions
+40 -25
View File
@@ -52,10 +52,16 @@ BOOL fpcM_IsCreating(unsigned int pID) {
return fpcCt_IsCreatingByID(pID);
}
struct BMG_INF1 : BlockHeader {
/* 0x08 */ u8 m08[0x10 - 0x08];
/* 0x10 */ u32 entries[6];
};
/* 8003E3D0-8003E9F0 .text messageSet__FUl */
void messageSet(unsigned long status) {
const u32 * inf1_tbl = (u32*)&msg_data[0x30];
const char * msg = (const char*)((&msg_data[0x68]) + inf1_tbl[status]);
void messageSet(u32 status) {
/* Nonmatching - TColor stack order and TWidth load */
BMG_INF1* inf1 = (BMG_INF1*)&msg_data[0x20];
const char * msg = (const char*)((u8*)inf1->getNext() + sizeof(BlockHeader) + inf1->entries[status]);
J2DTextBox * tpane = new J2DTextBox('TXT1', JGeometry::TBox2<f32>(0.0f, 0.0f, 660.0f, 200.0f), (ResFONT*)font_data, msg, HBIND_CENTER, VBIND_CENTER);
JUT_ASSERT(0x141, tpane != 0);
@@ -66,16 +72,23 @@ void messageSet(unsigned long status) {
J2DPicture * ppane = new J2DPicture('PIC1', JGeometry::TBox2<f32>(0.0f, 0.0f, 665.0f, 530.0f), (ResTIMG*)black_tex, NULL);
JUT_ASSERT(0x14e, ppane != 0);
tpane->setFontSize(27.0f, 27.0f);
tpane->setCharColor(JUtility::TColor(0xFFC800FF));
tpane->setGradColor(JUtility::TColor(0xFFB400FF));
J2DTextBox::TFontSize size;
size.mSizeX = 27.0f;
size.mSizeY = 27.0f;
tpane->setFontSize(size);
JUtility::TColor charCol1 = JUtility::TColor(0xFF, 0xC8, 0x00, 0xFF);
tpane->setCharColor(charCol1);
JUtility::TColor gradCol1 = JUtility::TColor(0xFF, 0xB4, 0x00, 0xFF);
tpane->setGradColor(gradCol1);
tpane->setCharSpace(0.0f);
tpane->setLineSpace(27.0f);
tpane->setBlack(JUtility::TColor(0xFFFFFF00));
tpane->setBlack(JUtility::TColor(0xFF, 0xFF, 0xFF, 0x00));
spane->setFontSize(27.0f, 27.0f);
spane->setCharColor(JUtility::TColor(0x000000FF));
spane->setGradColor(JUtility::TColor(0x000000FF));
spane->setFontSize(size);
JUtility::TColor charCol2 = JUtility::TColor(0x00, 0x00, 0x00, 0xC8);
spane->setCharColor(charCol2);
JUtility::TColor gradCol2 = JUtility::TColor(0x00, 0x00, 0x00, 0xC8);
spane->setGradColor(gradCol2);
spane->setCharSpace(0.0f);
spane->setLineSpace(27.0f);
@@ -83,13 +96,16 @@ void messageSet(unsigned long status) {
JUTResFont * font = new JUTResFont((ResFONT*)font_data, NULL);
s32 height = 27;
s32 curLine = 0;
u8 ch;
s16 height = 27;
s32 ch;
f32 maxWidth = 0.0f;
f32 lineWidth[6] = {};
for (; ch = *msg, ch != '\0'; msg++) {
if (ch == '\n') {
s32 curLine = 0;
f32 lineWidth[6];
for (s32 i = 0; i < (s32)ARRAY_SIZE(lineWidth); i++) {
lineWidth[i] = 0.0f;
}
for (; ch = (u8)*msg, (s8)ch != '\0'; msg++) {
if ((s8)ch == '\n') {
height += 27;
curLine++;
continue;
@@ -97,22 +113,21 @@ void messageSet(unsigned long status) {
JUTFont::TWidth wid;
font->getWidthEntry(ch, &wid);
lineWidth[curLine] += wid.field_0x0;
lineWidth[curLine] += (int)wid.field_0x1;
}
for (s32 i = 0; i < (s32)ARRAY_SIZE(lineWidth); i++) {
f32 width = lineWidth[curLine];
if (width > maxWidth)
f32 width = lineWidth[i];
if (maxWidth < width)
maxWidth = width;
}
f32 x = (659.0f - maxWidth) / 2.0f + -21.0f;
f32 x = (659.0f - maxWidth) / 2.0f + -9.0f;
f32 y = (524 - height) / 2.0f + -21.0f;
ppane->draw(-12.0f, -24.0f, 665.0f, 530.0f, false, false, false);
y += 10.0f;
spane->draw(x + 2.0f, y + 2.0f, 660.0f, HBIND_LEFT);
tpane->draw(x, y, 660.0f, HBIND_LEFT);
spane->draw(x + 2.0f, y + 10.0f + 2.0f, 660.0f, HBIND_LEFT);
tpane->draw(x, y + 10.0f, 660.0f, HBIND_LEFT);
delete font;
delete ppane;
@@ -130,14 +145,14 @@ namespace JAInter {
/* 8003E9F0-8003EBD4 .text drawDvdCondition__Fl */
void drawDvdCondition(long status) {
JFWDisplay::getManager()->setFader(NULL);
GXColor backColor = mDoGph_gInf_c::getBackColor();
JUtility::TColor backColor = mDoGph_gInf_c::getBackColor();
JFWDisplay::getManager()->setClearColor(backColor);
JFWDisplay::getManager()->beginRender();
GXSetAlphaUpdate(GX_FALSE);
j3dSys.drawInit();
J2DOrthoGraph draw2D(0.0f, 0.0f, 640.0f, 480.0f, -1.0f, 1.0);
draw2D.setOrtho(-9.0f, -21.0f, 650.0f, 503.0f, -1.0f, 1.0f);
draw2D.setOrtho(-9.0f, -21.0f, 659.0f, 524.0f, -1.0f, 1.0f);
draw2D.setPort();
dComIfGp_setCurrentGrafPort(&draw2D);