diff options
Diffstat (limited to 'src/code')
| -rw-r--r-- | src/code/z_message.c | 50 |
1 files changed, 43 insertions, 7 deletions
diff --git a/src/code/z_message.c b/src/code/z_message.c index 86b1e2070..0f3502f36 100644 --- a/src/code/z_message.c +++ b/src/code/z_message.c @@ -3,13 +3,12 @@ #include "terminal.h" #include "versions.h" #include "assets/textures/parameter_static/parameter_static.h" -#include "versions.h" #if PLATFORM_N64 #include "n64dd.h" #endif #pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ntsc-1.2:112" + "ntsc-1.2:112 pal-1.0:128 pal-1.1:128" #if !PLATFORM_GC #define OCARINA_BUTTON_A_PRIM_1_R 80 @@ -108,7 +107,7 @@ u16 sNextTextId = 0; s16 sTextIsCredits = false; -#if OOT_PAL +#if PLATFORM_GC && OOT_PAL UNK_TYPE D_8014B30C = 0; #endif @@ -1724,7 +1723,7 @@ void Message_Decode(PlayState* play) { Font* font = &play->msgCtx.font; s32 charTexIdx = 0; s16 i; -#if OOT_NTSC +#if !(PLATFORM_GC && OOT_PAL) s16 j; #endif s16 decodedBufPos = 0; @@ -1735,7 +1734,7 @@ void Message_Decode(PlayState* play) { s16 loadChar; u16 value; u8 curChar; -#if OOT_NTSC +#if !(PLATFORM_GC && OOT_PAL) u16 curCharWide; u8* fontBuf; #endif @@ -2562,18 +2561,47 @@ void Message_OpenText(PlayState* play, u16 textId) { if (gSaveContext.language == LANGUAGE_ENG) { Message_FindMessagePAL(play, textId); msgCtx->msgLength = font->msgLength; +#if PLATFORM_N64 + if ((B_80121220 != NULL) && (B_80121220->unk_64 != NULL) && B_80121220->unk_64(&play->msgCtx.font)) { + + } else { + DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_nes_message_data_staticSegmentRomStart + font->msgOffset, + font->msgLength); + } +#else DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_nes_message_data_staticSegmentRomStart + font->msgOffset, font->msgLength, "../z_message_PAL.c", 1966); +#endif } else if (gSaveContext.language == LANGUAGE_GER) { Message_FindMessagePAL(play, textId); msgCtx->msgLength = font->msgLength; +#if PLATFORM_N64 + //! @bug checks unk_64 != NULL instead of unk_68 != NULL + if ((B_80121220 != NULL) && (B_80121220->unk_64 != NULL) && B_80121220->unk_68(&play->msgCtx.font)) { + + } else { + DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_ger_message_data_staticSegmentRomStart + font->msgOffset, + font->msgLength); + } +#else DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_ger_message_data_staticSegmentRomStart + font->msgOffset, font->msgLength, "../z_message_PAL.c", 1978); +#endif } else { Message_FindMessagePAL(play, textId); msgCtx->msgLength = font->msgLength; +#if PLATFORM_N64 + //! @bug checks unk_64 != NULL instead of unk_6C_PAL != NULL + if ((B_80121220 != NULL) && (B_80121220->unk_64 != NULL) && B_80121220->unk_6C_PAL(&play->msgCtx.font)) { + + } else { + DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_fra_message_data_staticSegmentRomStart + font->msgOffset, + font->msgLength); + } +#else DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_fra_message_data_staticSegmentRomStart + font->msgOffset, font->msgLength, "../z_message_PAL.c", 1990); +#endif } #endif } @@ -4005,7 +4033,10 @@ void Message_Update(PlayState* play) { s16 playerFocusScreenPosY; s16 actorFocusScreenPosY; #if OOT_VERSION < GC_US - s32 pad[2]; + s32 pad1; +#endif +#if OOT_NTSC && OOT_VERSION < GC_US + s32 pad2; #endif #if OOT_DEBUG @@ -4323,9 +4354,14 @@ void Message_SetTables(void) { sStaffMessageEntryTablePtr = sStaffMessageEntryTable; -#if PLATFORM_N64 +#if PLATFORM_N64 && OOT_NTSC if ((B_80121220 != NULL) && (B_80121220->unk_58 != NULL)) { B_80121220->unk_58(&sJpnMessageEntryTablePtr, &sNesMessageEntryTablePtr, &sStaffMessageEntryTablePtr); } +#elif PLATFORM_N64 && OOT_PAL + if ((B_80121220 != NULL) && (B_80121220->unk_58 != NULL)) { + B_80121220->unk_58(&sNesMessageEntryTablePtr, &sGerMessageEntryTablePtr, &sFraMessageEntryTablePtr, + &sStaffMessageEntryTablePtr); + } #endif } |
