summaryrefslogtreecommitdiff
path: root/src/link.c
diff options
context:
space:
mode:
authorProjectRevoTPP <projectrevotpp@hotmail.com>2017-05-09 02:36:30 -0400
committerProjectRevoTPP <projectrevotpp@hotmail.com>2017-05-09 02:36:30 -0400
commitfc761599b412206f80d961a6052dce49b9998689 (patch)
tree1f3eb8f01ae005b8b509d1f120ce5d7bce230992 /src/link.c
parentd343d1f19a74657489d987dbd97b84e7389ae295 (diff)
parent4b4f716ae0c582068928a4ae7b31d9d10ac89eb5 (diff)
Merge branch 'master' of https://github.com/pret/pokeruby
Diffstat (limited to 'src/link.c')
-rw-r--r--src/link.c48
1 files changed, 32 insertions, 16 deletions
diff --git a/src/link.c b/src/link.c
index 783f6aecd..336616f1a 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,9 @@ void OpenLinkTimed(void)
{
sPlayerDataExchangeStatus = EXCHANGE_NOT_STARTED;
gLinkTimeOutCounter = 0;
+#if defined(GERMAN)
+ ResetBlockSend();
+#endif
OpenLink();
}