Add a few more matching functions in f_op_msg_mng (#791)

* Add a few more matching functions in f_op_msg_mng

* Change to checking against multiple values
This commit is contained in:
Ammar Askar
2025-06-08 16:34:15 -07:00
committed by GitHub
parent 498fd40d72
commit 4ea011a9ed
+40 -27
View File
@@ -405,7 +405,7 @@ u32 fopMsgM_searchMessageNumber(u32 msgNo) {
msgGet.mMsgIdx = 0;
msgGet.mGroupID = 0;
msgGet.mMsgID = 0;
msgGet.mResMsgIdx = 0;
msgGet.mResMsgIdx = 0;
for(u32 i = msgNo & 0xFFFF; i < 0xFFFF; i++) {
mesg_header* header = msgGet.getMesgHeader(i);
@@ -488,12 +488,12 @@ fpc_ProcID fopMsgM_messageSet(u32 msgNo, cXyz* lookAtPos) {
/* 8002B8A4-8002B9C4 .text fopMsgM_messageSet__FUl */
fpc_ProcID fopMsgM_messageSet(u32 msgNo) {
/* Nonmatching */
if (dComIfGp_isHeapLockFlag() != 0 && dComIfGp_isHeapLockFlag() != 7 && dComIfGp_isHeapLockFlag() != 8 && dComIfGp_isHeapLockFlag() != 9) {
return fpcM_ERROR_PROCESS_ID_e;
}
cXyz lookAtPos(0.0f, 0.0f, 0.0f);
cXyz lookAtPos;
lookAtPos.x = lookAtPos.y = lookAtPos.z = 0.0f;
if(i_msgID == fpcM_ERROR_PROCESS_ID_e) {
i_msgID = fopMsgM_messageTypeSelect(NULL, &lookAtPos, &msgNo, &msgNo);
}
@@ -540,14 +540,13 @@ fpc_ProcID fopMsgM_scopeMessageSet(u32 msgNo) {
/* 8002BA4C-8002BB78 .text fopMsgM_tactMessageSet__Fv */
u32 fopMsgM_tactMessageSet() {
/* Nonmatching */
if (dComIfGp_isHeapLockFlag() != 0 && dComIfGp_isHeapLockFlag() != 7 && dComIfGp_isHeapLockFlag() != 8 && dComIfGp_isHeapLockFlag() != 9) {
return fpcM_ERROR_PROCESS_ID_e;
}
u32 msgNoTemp = 0x5AC;
cXyz lookAtPos(0.0f, 0.0f, 0.0f);
cXyz lookAtPos;
lookAtPos.x = lookAtPos.y = lookAtPos.z = 0.0f;
if(i_msgID == fpcM_ERROR_PROCESS_ID_e) {
i_msgID = fopMsgM_messageTypeSelect(NULL, &lookAtPos, &msgNoTemp, &msgNoTemp);
fopMsgM_tactMsgFlagOn();
@@ -585,15 +584,20 @@ char* fopMsgM_messageGet(char* dst, u32 msgNo) {
mesg_header* head_p = msgGet.getMesgHeader(msgNo);
JUT_ASSERT(0x6BD, head_p);
s32 curOffset = 0;
s32 numRead = 0;
const char* src = (char*)msgGet.getMessage(head_p);
char* dstPtr = dst;
char dstBuf[24];
const u32* cursor;
s32 current;
while(cursor = (u32*)src + curOffset, current = *cursor, (s8)*cursor != '\0') {
if(*cursor == 0x1A) {
if((cursor[1] & 0xFFFFFF) == 0) {
const char* cursor = src;
char current;
while(current = *cursor, current != '\0') {
if(current == '\x1A') {
u32 next_as_int = *(u32*)++cursor;
if ((next_as_int & 0xFFFFFF) == 0x1E) {
*dstPtr = '\x1A';
dstPtr++;
}
else if ((next_as_int & 0xFFFFFF) == 0) {
strcpy(dstBuf, dComIfGs_getPlayerName());
#if VERSION <= VERSION_JPN
if(msgNo == 0x33B || msgNo == 0xC8B || msgNo == 0x1D21 || msgNo == 0x31D7 || msgNo == 0x37DD || msgNo == 0x37DE) {
@@ -610,26 +614,28 @@ char* fopMsgM_messageGet(char* dst, u32 msgNo) {
}
}
for(s32 i = 0; dstBuf[i] != '\0'; i++) {
dst[numRead] = dstBuf[i];
numRead++;
for (char* bufPtr = dstBuf; *bufPtr != '\0'; bufPtr++) {
*dstPtr = *bufPtr;
dstPtr++;
}
cursor = (char*)next_as_int + (next_as_int - 1);
}
}
else if((*cursor >> 4) == 8 || (*cursor >> 4) == 9) {
dst[numRead] = current;
dst[numRead + 1] = current + 1;
curOffset += 2;
numRead += 2;
else if((current >> 4) == 8 || (current >> 4) == 9) {
*dstPtr = *cursor;
*(dstPtr + 1) = *(cursor + 1);
dstPtr += 2;
cursor += 2;
}
else {
dst[numRead] = current;
curOffset++;
numRead++;
*dstPtr = *cursor;
dstPtr++;
cursor++;
}
}
dst[numRead] = '\0';
*dstPtr = '\0';
return dst;
}
@@ -733,6 +739,13 @@ void fopMsgM_selectMessageGet(J2DPane* param_1, J2DPane* param_2, char* param_3,
temp.stringShift();
temp.iconIdxRefresh();
temp.field_0x130 = 0;
f32 fVar2 = (2 - temp.field_0x130) * ((J2DTextBox*)param_2)->getLineSpace() * 0.5f;
((J2DTextBox*) param_3)->field_0xd8 = 0.0f;
((J2DTextBox*) param_3)->field_0xdc = fVar2;
((J2DTextBox*) param_2)->field_0xd8 = 0.0f;
((J2DTextBox*) param_2)->field_0xdc = fVar2;
temp.stringSet();
((J2DTextBox*)param_1)->setString(param_3);
((J2DTextBox*)param_1)->setString(param_4);
@@ -922,7 +935,7 @@ void fopMsgM_outFontSet(J2DPicture* param_1, J2DPicture* param_2, s16* param_3,
param_2->show();
fopMsgM_blendDraw(param_1, fopMsgM_buttonTex[param_5]);
fopMsgM_blendDraw(param_2, fopMsgM_buttonTex[param_5]);
if((0xA <= param_5 && param_5 <= 0xE) || param_5 == 0x15 || param_5 == 0x17) {
if(param_5 == 0xA || param_5 == 0xB || param_5 == 0xC || param_5 == 0xD || param_5 == 0x15 || param_5 == 0x17) {
GXColor col;
col.r = param_4 >> 0x18;
col.g = param_4 >> 0x10;
@@ -962,7 +975,7 @@ void fopMsgM_outFontSet(J2DPicture* param_1, s16* param_2, u32 param_3, u8 param
param_1->show();
fopMsgM_blendDraw(param_1, fopMsgM_buttonTex[param_4]);
if((0xA <= param_4 && param_4 <= 0xE) || param_4 == 0x15 || param_4 == 0x17) {
if(param_4 == 0xA || param_4 == 0xB || param_4 == 0xC || param_4 == 0xD || param_4 == 0x15 || param_4 == 0x17) {
GXColor col;
col.r = param_3 >> 0x18;
col.g = param_3 >> 0x10;