From 08725a4773d8530fe3a58824b647f6c2e90b2771 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Fri, 5 May 2017 20:02:16 -0700 Subject: German ProcessRecvCmds --- src/link.c | 46 ++++++++++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 16 deletions(-) (limited to 'src/link.c') diff --git a/src/link.c b/src/link.c index 783f6aecd..e8bbaab2b 100644 --- a/src/link.c +++ b/src/link.c @@ -149,6 +149,11 @@ struct Link gLink; u8 gLastRecvQueueCount; u16 gLinkSavedIme; +#ifdef GERMAN +u8 deUnkValue1; +u8 deUnkValue2; +#endif + EWRAM_DATA bool8 gLinkTestDebugValuesEnabled = {0}; EWRAM_DATA bool8 gLinkTestDummyBool = {0}; EWRAM_DATA u32 gFiller_20238B8 = {0}; @@ -479,6 +484,9 @@ static void ProcessRecvCmds(u8 unusedParam) memcpy(localLinkPlayerBlock.magic2, sMagic, sizeof(localLinkPlayerBlock.magic2) - 1); InitBlockSend(&localLinkPlayerBlock, sizeof(localLinkPlayerBlock)); break; + case 0x4444: + word_3002910[i] = gRecvCmds[1][i]; + break; case 0x5555: byte_3002A68 = 1; break; @@ -549,23 +557,28 @@ static void ProcessRecvCmds(u8 unusedParam) sub_80516C4(i, gRecvCmds[1][i]); break; case 0xCCCC: - { - const u32 *addresses; - const u32 *sizes; - void *data; - u16 size; - - addresses = sBlockRequestLookupTable; - data = (void *)addresses[gRecvCmds[1][i] * 2]; - - sizes = addresses + 1; - size = sizes[gRecvCmds[1][i] * 2]; +#if defined(ENGLISH) + SendBlock(0, (void *)(sBlockRequestLookupTable)[gRecvCmds[1][i] * 2], (sBlockRequestLookupTable + 1)[gRecvCmds[1][i] * 2]); +#elif defined(GERMAN) + if (deUnkValue2 == 1) + { + deUnkValue2 = 2; + deUnkValue1 = gRecvCmds[1][i]; + } + else if (deUnkValue2 == 2 || deUnkValue2 == 3) + { + SendBlock(0, (void *)(sBlockRequestLookupTable)[gRecvCmds[1][i] * 2], (sBlockRequestLookupTable + 1)[gRecvCmds[1][i] * 2]); - SendBlock(0, data, size); - break; - } - case 0x4444: - word_3002910[i] = gRecvCmds[1][i]; + if (deUnkValue2 == 2) + deUnkValue2 = 1; + else + deUnkValue2 = 0; + } + else + { + SendBlock(0, (void *)(sBlockRequestLookupTable)[gRecvCmds[1][i] * 2], (sBlockRequestLookupTable + 1)[gRecvCmds[1][i] * 2]); + } +#endif break; case 0xCAFE: word_3002910[i] = gRecvCmds[1][i]; @@ -676,6 +689,7 @@ void OpenLinkTimed(void) { sPlayerDataExchangeStatus = EXCHANGE_NOT_STARTED; gLinkTimeOutCounter = 0; + ResetBlockSend(); OpenLink(); } -- cgit v1.2.3 From e0834dfec6f3d24d229622a61080949aaf1dc618 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Fri, 5 May 2017 20:05:57 -0700 Subject: remove German-only function call --- src/link.c | 1 - 1 file changed, 1 deletion(-) (limited to 'src/link.c') diff --git a/src/link.c b/src/link.c index e8bbaab2b..2a9fcc770 100644 --- a/src/link.c +++ b/src/link.c @@ -689,7 +689,6 @@ void OpenLinkTimed(void) { sPlayerDataExchangeStatus = EXCHANGE_NOT_STARTED; gLinkTimeOutCounter = 0; - ResetBlockSend(); OpenLink(); } -- cgit v1.2.3 From 12ef81ae0df9f1ab1ae26f3f3e390495c781fdc2 Mon Sep 17 00:00:00 2001 From: Marijn van der Werf Date: Sat, 6 May 2017 03:59:09 +0200 Subject: Various German patches --- src/link.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/link.c') diff --git a/src/link.c b/src/link.c index 2a9fcc770..336616f1a 100644 --- a/src/link.c +++ b/src/link.c @@ -689,6 +689,9 @@ void OpenLinkTimed(void) { sPlayerDataExchangeStatus = EXCHANGE_NOT_STARTED; gLinkTimeOutCounter = 0; +#if defined(GERMAN) + ResetBlockSend(); +#endif OpenLink(); } -- cgit v1.2.3