mirror of
https://github.com/zeldaret/oot.git
synced 2025-02-03 18:14:26 +00:00
Match retail z_message_PAL.c (#1736)
This commit is contained in:
parent
d2a1abf8df
commit
10ebdf9ff5
1 changed files with 243 additions and 237 deletions
|
@ -291,17 +291,15 @@ void Message_GrowTextbox(MessageContext* msgCtx) {
|
|||
void Message_FindMessage(PlayState* play, u16 textId) {
|
||||
const char* foundSeg;
|
||||
const char* nextSeg;
|
||||
Font* font = &play->msgCtx.font;
|
||||
MessageTableEntry* messageTableEntry = sNesMessageEntryTablePtr;
|
||||
const char** languageSegmentTable;
|
||||
Font* font;
|
||||
const char* seg;
|
||||
|
||||
if (gSaveContext.language == LANGUAGE_ENG) {
|
||||
seg = messageTableEntry->segment;
|
||||
|
||||
while (messageTableEntry->textId != 0xFFFF) {
|
||||
font = &play->msgCtx.font;
|
||||
|
||||
if (messageTableEntry->textId == textId) {
|
||||
foundSeg = messageTableEntry->segment;
|
||||
font->charTexBuf[0] = messageTableEntry->typePos;
|
||||
|
@ -323,8 +321,6 @@ void Message_FindMessage(PlayState* play, u16 textId) {
|
|||
seg = messageTableEntry->segment;
|
||||
|
||||
while (messageTableEntry->textId != 0xFFFF) {
|
||||
font = &play->msgCtx.font;
|
||||
|
||||
if (messageTableEntry->textId == textId) {
|
||||
foundSeg = *languageSegmentTable;
|
||||
font->charTexBuf[0] = messageTableEntry->typePos;
|
||||
|
@ -344,7 +340,6 @@ void Message_FindMessage(PlayState* play, u16 textId) {
|
|||
}
|
||||
// "Message not found!!!"
|
||||
PRINTF(" メッセージが,見つからなかった!!! = %x\n", textId);
|
||||
font = &play->msgCtx.font;
|
||||
messageTableEntry = sNesMessageEntryTablePtr;
|
||||
|
||||
if (gSaveContext.language == LANGUAGE_ENG) {
|
||||
|
@ -368,13 +363,11 @@ void Message_FindCreditsMessage(PlayState* play, u16 textId) {
|
|||
const char* foundSeg;
|
||||
const char* nextSeg;
|
||||
const char* seg;
|
||||
Font* font = &play->msgCtx.font;
|
||||
MessageTableEntry* messageTableEntry = sStaffMessageEntryTablePtr;
|
||||
Font* font;
|
||||
|
||||
seg = messageTableEntry->segment;
|
||||
while (messageTableEntry->textId != 0xFFFF) {
|
||||
font = &play->msgCtx.font;
|
||||
|
||||
if (messageTableEntry->textId == textId) {
|
||||
foundSeg = messageTableEntry->segment;
|
||||
font->charTexBuf[0] = messageTableEntry->typePos;
|
||||
|
@ -981,7 +974,8 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) {
|
|||
sMessageHasSetSfx = true;
|
||||
// "Sound (SE)"
|
||||
PRINTF("サウンド(SE)\n");
|
||||
sfxHi = msgCtx->msgBufDecoded[i + 1] << 8;
|
||||
sfxHi = msgCtx->msgBufDecoded[i + 1];
|
||||
sfxHi <<= 8;
|
||||
Audio_PlaySfxGeneral(sfxHi | msgCtx->msgBufDecoded[i + 2], &gSfxDefaultPos, 4,
|
||||
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
|
||||
}
|
||||
|
@ -1369,8 +1363,8 @@ void Message_Decode(PlayState* play) {
|
|||
}
|
||||
if (loadChar) {
|
||||
Font_LoadChar(font, digits[i] + '0' - ' ', charTexIdx);
|
||||
msgCtx->msgBufDecoded[decodedBufPos] = digits[i] + '0';
|
||||
charTexIdx += FONT_CHAR_TEX_SIZE;
|
||||
msgCtx->msgBufDecoded[decodedBufPos] = digits[i] + '0';
|
||||
PRINTF("%x(%x) ", digits[i] + '0' - ' ', digits[i]);
|
||||
decodedBufPos++;
|
||||
}
|
||||
|
@ -1390,8 +1384,8 @@ void Message_Decode(PlayState* play) {
|
|||
for (i = 0; i < 2; i++) {
|
||||
if (i == 1 || digits[i] != 0) {
|
||||
Font_LoadChar(font, digits[i] + '0' - ' ', charTexIdx);
|
||||
msgCtx->msgBufDecoded[decodedBufPos] = digits[i] + '0';
|
||||
charTexIdx += FONT_CHAR_TEX_SIZE;
|
||||
msgCtx->msgBufDecoded[decodedBufPos] = digits[i] + '0';
|
||||
PRINTF("%x(%x) ", digits[i] + '0' - ' ', digits[i]);
|
||||
decodedBufPos++;
|
||||
}
|
||||
|
@ -1579,9 +1573,10 @@ void Message_OpenText(PlayState* play, u16 textId) {
|
|||
Font* font = &msgCtx->font;
|
||||
s16 textBoxType;
|
||||
|
||||
if (msgCtx->msgMode == MSGMODE_NONE) {
|
||||
gSaveContext.prevHudVisibilityMode = gSaveContext.hudVisibilityMode;
|
||||
}
|
||||
// clang-format off
|
||||
if (msgCtx->msgMode == MSGMODE_NONE) { gSaveContext.prevHudVisibilityMode = gSaveContext.hudVisibilityMode; }
|
||||
// clang-format on
|
||||
|
||||
if (R_SCENE_CAM_TYPE == SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT) {
|
||||
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE);
|
||||
}
|
||||
|
@ -1707,6 +1702,7 @@ void Message_StartTextbox(PlayState* play, u16 textId, Actor* actor) {
|
|||
}
|
||||
|
||||
void Message_ContinueTextbox(PlayState* play, u16 textId) {
|
||||
s32 pad;
|
||||
MessageContext* msgCtx = &play->msgCtx;
|
||||
|
||||
PRINTF(VT_FGCOL(GREEN));
|
||||
|
@ -2951,6 +2947,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
|
|||
*p = gfx;
|
||||
}
|
||||
|
||||
#if OOT_DEBUG
|
||||
/**
|
||||
* If the s16 variable pointed to by `var` changes in value, a black bar and white box
|
||||
* are briefly drawn onto the screen. It can only watch one variable per build due to
|
||||
|
@ -3002,14 +2999,19 @@ void Message_DrawDebugText(PlayState* play, Gfx** p) {
|
|||
*p = GfxPrint_Close(&printer);
|
||||
GfxPrint_Destroy(&printer);
|
||||
}
|
||||
#endif
|
||||
|
||||
void Message_Draw(PlayState* play) {
|
||||
Gfx* plusOne;
|
||||
Gfx* polyOpaP;
|
||||
|
||||
#if OOT_DEBUG
|
||||
s16 watchVar;
|
||||
#endif
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_message_PAL.c", 3554);
|
||||
|
||||
#if OOT_DEBUG
|
||||
watchVar = gSaveContext.save.info.scarecrowLongSongSet;
|
||||
Message_DrawDebugVariableChanged(&watchVar, play->state.gfxCtx);
|
||||
if (BREG(0) != 0 && play->msgCtx.textId != 0) {
|
||||
|
@ -3021,6 +3023,8 @@ void Message_Draw(PlayState* play) {
|
|||
POLY_OPA_DISP = plusOne;
|
||||
}
|
||||
if (1) {}
|
||||
#endif
|
||||
|
||||
plusOne = Gfx_Open(polyOpaP = POLY_OPA_DISP);
|
||||
gSPDisplayList(OVERLAY_DISP++, plusOne);
|
||||
Message_DrawMain(play, &plusOne);
|
||||
|
@ -3063,6 +3067,7 @@ void Message_Update(PlayState* play) {
|
|||
s16 playerFocusScreenPosY;
|
||||
s16 actorFocusScreenPosY;
|
||||
|
||||
#if OOT_DEBUG
|
||||
if (BREG(0) != 0) {
|
||||
if (CHECK_BTN_ALL(input->press.button, BTN_DDOWN) && CHECK_BTN_ALL(input->cur.button, BTN_L)) {
|
||||
PRINTF("msgno=%d\n", D_80153D78);
|
||||
|
@ -3088,10 +3093,9 @@ void Message_Update(PlayState* play) {
|
|||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (msgCtx->msgLength == 0) {
|
||||
return;
|
||||
}
|
||||
if (msgCtx->msgLength != 0) {
|
||||
|
||||
switch (msgCtx->msgMode) {
|
||||
case MSGMODE_TEXT_START:
|
||||
|
@ -3119,8 +3123,8 @@ void Message_Update(PlayState* play) {
|
|||
} else {
|
||||
averageY = ((actorFocusScreenPosY - playerFocusScreenPosY) / 2) + playerFocusScreenPosY;
|
||||
}
|
||||
PRINTF("dxpos=%d dypos=%d dypos1 dypos2=%d\n", focusScreenPosX, averageY, playerFocusScreenPosY,
|
||||
actorFocusScreenPosY);
|
||||
PRINTF("dxpos=%d dypos=%d dypos1 dypos2=%d\n", focusScreenPosX, averageY,
|
||||
playerFocusScreenPosY, actorFocusScreenPosY);
|
||||
} else {
|
||||
R_TEXTBOX_X = R_TEXTBOX_X_TARGET;
|
||||
R_TEXTBOX_Y = R_TEXTBOX_Y_TARGET;
|
||||
|
@ -3240,7 +3244,8 @@ void Message_Update(PlayState* play) {
|
|||
}
|
||||
} else if (msgCtx->textboxEndType != TEXTBOX_ENDTYPE_PERSISTENT &&
|
||||
msgCtx->textboxEndType != TEXTBOX_ENDTYPE_EVENT && YREG(31) == 0) {
|
||||
if (msgCtx->textboxEndType == TEXTBOX_ENDTYPE_2_CHOICE && play->msgCtx.ocarinaMode == OCARINA_MODE_01) {
|
||||
if (msgCtx->textboxEndType == TEXTBOX_ENDTYPE_2_CHOICE &&
|
||||
play->msgCtx.ocarinaMode == OCARINA_MODE_01) {
|
||||
if (Message_ShouldAdvance(play)) {
|
||||
PRINTF("OCARINA_MODE=%d -> ", play->msgCtx.ocarinaMode);
|
||||
play->msgCtx.ocarinaMode = (msgCtx->choiceIndex == 0) ? OCARINA_MODE_02 : OCARINA_MODE_04;
|
||||
|
@ -3272,9 +3277,9 @@ void Message_Update(PlayState* play) {
|
|||
(msgCtx->textId >= 0xFA && msgCtx->textId < 0xFE)) {
|
||||
gSaveContext.healthAccumulator = 0x140; // Refill 20 hearts
|
||||
}
|
||||
if (msgCtx->textId == 0x301F || msgCtx->textId == 0xA || msgCtx->textId == 0xC || msgCtx->textId == 0xCF ||
|
||||
msgCtx->textId == 0x21C || msgCtx->textId == 9 || msgCtx->textId == 0x4078 ||
|
||||
msgCtx->textId == 0x2015 || msgCtx->textId == 0x3040) {
|
||||
if (msgCtx->textId == 0x301F || msgCtx->textId == 0xA || msgCtx->textId == 0xC ||
|
||||
msgCtx->textId == 0xCF || msgCtx->textId == 0x21C || msgCtx->textId == 9 ||
|
||||
msgCtx->textId == 0x4078 || msgCtx->textId == 0x2015 || msgCtx->textId == 0x3040) {
|
||||
gSaveContext.prevHudVisibilityMode = HUD_VISIBILITY_ALL;
|
||||
}
|
||||
if (play->csCtx.state == 0) {
|
||||
|
@ -3339,6 +3344,7 @@ void Message_Update(PlayState* play) {
|
|||
msgCtx->lastOcarinaButtonIndex = OCARINA_BTN_INVALID;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Message_SetTables(void) {
|
||||
|
|
Loading…
Add table
Reference in a new issue