summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2017-05-05 20:02:16 -0700
committerYamaArashi <shadow962@live.com>2017-05-05 20:04:15 -0700
commit08725a4773d8530fe3a58824b647f6c2e90b2771 (patch)
tree2ac2ffcca4ef132e2009bea1ffbc57a233a2b751 /src
parent084dc5134cedbb7e1b2ae280ecbcb3884993a7be (diff)
German ProcessRecvCmds
Diffstat (limited to 'src')
-rw-r--r--src/link.c46
1 files changed, 30 insertions, 16 deletions
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();
}