diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-11-09 21:48:27 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-11-09 21:48:27 -0500 |
commit | 1523d5c01e1745ad2f7c627c5701ab65de375f12 (patch) | |
tree | 6cccaf686b91eb2abe3762688c2fcb9c98124f38 /src | |
parent | d94f74d2617f257c0cdcc19cfb08dc76ea0ec4ad (diff) |
sub_8009D90
Diffstat (limited to 'src')
-rw-r--r-- | src/link.c | 69 | ||||
-rw-r--r-- | src/main.c | 14 |
2 files changed, 76 insertions, 7 deletions
diff --git a/src/link.c b/src/link.c index 4279c6efc..c2f033e1d 100644 --- a/src/link.c +++ b/src/link.c @@ -8,6 +8,8 @@ #include "decompress.h" #include "string_util.h" #include "event_data.h" +#include "item_menu.h" +#include "overworld.h" #include "gpu_regs.h" #include "palette.h" #include "task.h" @@ -572,3 +574,70 @@ static void sub_8009AA0(u8 unused) } } } + +void sub_8009D90(u16 command) +{ + switch (command) + { + case 0x2222: + gUnknown_03003110[0] = 0x2222; + gUnknown_03003110[1] = gUnknown_020229C6; + break; + case 0x2ffe: + gUnknown_03003110[0] = 0x2ffe; + break; + case 0x4444: + gUnknown_03003110[0] = 0x4444; + gUnknown_03003110[1] = gMain.heldKeys; + break; + case 0x5555: + gUnknown_03003110[0] = 0x5555; + break; + case 0x6666: + gUnknown_03003110[0] = 0x6666; + gUnknown_03003110[1] = 0; + break; + case 0x7777: + { + u8 i; + + gUnknown_03003110[0] = 0x7777; + for (i = 0; i < 5; i ++) + { + gUnknown_03003110[i + 1] = 0xEE; + } + break; + } + case 0xbbbb: + gUnknown_03003110[0] = 0xbbbb; + gUnknown_03003110[1] = gUnknown_03000D10.size; + gUnknown_03003110[2] = gUnknown_03000D10.multiplayerId + 0x80; + break; + case 0xaaaa: + gUnknown_03003110[0] = 0xaaaa; + break; + case 0xaaab: + gUnknown_03003110[0] = 0xaaab; + gUnknown_03003110[1] = gScriptItemId; + break; + case 0xcccc: + gUnknown_03003110[0] = 0xcccc; + gUnknown_03003110[1] = gUnknown_03003150; + break; + case 0x5fff: + gUnknown_03003110[0] = 0x5fff; + gUnknown_03003110[1] = gUnknown_030030F4; + break; + case 0x5566: + gUnknown_03003110[0] = 0x5566; + break; + case 0xcafe: + if (gUnknown_03005DA8 == 0 || gUnknown_030022B4) + { + break; + } + gUnknown_03003110[0] = 0xcafe; + gUnknown_03003110[1] = gUnknown_03005DA8; + break; + } +} diff --git a/src/main.c b/src/main.c index b7758f1f9..b90dc3837 100644 --- a/src/main.c +++ b/src/main.c @@ -80,7 +80,7 @@ const IntrFunc gIntrTableTemplate[] = static u16 gUnknown_03000000; u16 gKeyRepeatStartDelay; -u8 gUnknown_030022B4; +bool8 gUnknown_030022B4; struct Main gMain; u16 gKeyRepeatContinueDelay; bool8 gSoftResetDisabled; @@ -129,7 +129,7 @@ void AgbMain() if (gFlashMemoryPresent != TRUE) SetMainCallback2(NULL); - gUnknown_030022B4 = 0; + gUnknown_030022B4 = FALSE; gUnknown_03000000 = 0xFC0; for (;;) @@ -147,22 +147,22 @@ void AgbMain() if (sub_8087634() == 1) { - gUnknown_030022B4 = 1; + gUnknown_030022B4 = TRUE; UpdateLinkAndCallCallbacks(); - gUnknown_030022B4 = 0; + gUnknown_030022B4 = FALSE; } else { - gUnknown_030022B4 = 0; + gUnknown_030022B4 = FALSE; UpdateLinkAndCallCallbacks(); if (sub_80875C8() == 1) { gMain.newKeys = 0; ClearSpriteCopyRequests(); - gUnknown_030022B4 = 1; + gUnknown_030022B4 = TRUE; UpdateLinkAndCallCallbacks(); - gUnknown_030022B4 = 0; + gUnknown_030022B4 = FALSE; } } |