summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2017-06-14 22:04:43 -0400
committerGitHub <noreply@github.com>2017-06-14 22:04:43 -0400
commitf22e583db60f3d0c33a3d02509c51c2a861e6abd (patch)
tree8e423242503462b1455facc408d7db90aed123e3
parent817f20d2275d29a2d1976fa2e1281a15b0c45630 (diff)
parent4c91ef5f49f5f8fb5aff42257807e5480e64dd65 (diff)
Merge pull request #321 from camthesaxman/decompile_rom_8094928
decompile rom_8094928
-rw-r--r--asm/rom_8094928.s411
-rw-r--r--include/battle_party_menu.h5
-rw-r--r--ld_script.txt2
-rw-r--r--src/battle_party_menu.c309
-rw-r--r--src/party_menu.c2
-rw-r--r--src/rom_8094928.c135
6 files changed, 306 insertions, 558 deletions
diff --git a/asm/rom_8094928.s b/asm/rom_8094928.s
deleted file mode 100644
index a9d0e3dcc..000000000
--- a/asm/rom_8094928.s
+++ /dev/null
@@ -1,411 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8094B6C
-sub_8094B6C: @ 8094B6C
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r7, 0
- bl IsLinkDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _08094C16
- lsls r0, r4, 1
- adds r0, r4
- ldr r1, _08094BCC @ =0x0201606c
- adds r4, r0, r1
- movs r2, 0
- add r6, sp
- mov r12, r6
- movs r6, 0xF
- mov r3, sp
-_08094B9A:
- adds r1, r4, r2
- ldrb r0, [r1]
- lsrs r0, 4
- strb r0, [r3]
- adds r3, 0x1
- ldrb r1, [r1]
- adds r0, r6, 0
- ands r0, r1
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x2
- ble _08094B9A
- mov r0, r12
- ldrb r3, [r0]
- movs r2, 0
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, r5
- bne _08094BD0
- mov r0, sp
- ldrb r7, [r0]
- strb r3, [r0]
- b _08094BE4
- .align 2, 0
-_08094BCC: .4byte 0x0201606c
-_08094BD0:
- adds r2, 0x1
- cmp r2, 0x5
- bgt _08094BE4
- mov r0, sp
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, r5
- bne _08094BD0
- adds r7, r0, 0
- strb r3, [r1]
-_08094BE4:
- cmp r2, 0x6
- beq _08094C16
- mov r0, r12
- strb r7, [r0]
- mov r0, sp
- ldrb r0, [r0]
- lsls r0, 4
- mov r1, sp
- ldrb r1, [r1, 0x1]
- orrs r0, r1
- strb r0, [r4]
- mov r0, sp
- ldrb r0, [r0, 0x2]
- lsls r0, 4
- mov r1, sp
- ldrb r1, [r1, 0x3]
- orrs r0, r1
- strb r0, [r4, 0x1]
- mov r0, sp
- ldrb r0, [r0, 0x4]
- lsls r0, 4
- mov r1, sp
- ldrb r1, [r1, 0x5]
- orrs r0, r1
- strb r0, [r4, 0x2]
-_08094C16:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8094B6C
-
- thumb_func_start sub_8094C20
-sub_8094C20: @ 8094C20
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0x1
- ands r1, r2
- lsrs r2, r0, 25
- cmp r1, 0
- beq _08094C40
- ldr r0, _08094C3C @ =gUnknown_02038470
- adds r0, r2, r0
- ldrb r0, [r0]
- movs r1, 0xF
- ands r1, r0
- b _08094C48
- .align 2, 0
-_08094C3C: .4byte gUnknown_02038470
-_08094C40:
- ldr r0, _08094C50 @ =gUnknown_02038470
- adds r0, r2, r0
- ldrb r0, [r0]
- lsrs r1, r0, 4
-_08094C48:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08094C50: .4byte gUnknown_02038470
- thumb_func_end sub_8094C20
-
- thumb_func_start sub_8094C54
-sub_8094C54: @ 8094C54
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- movs r1, 0x1
- ands r1, r3
- lsrs r3, r0, 25
- cmp r1, 0
- beq _08094C7C
- ldr r0, _08094C78 @ =gUnknown_02038470
- adds r0, r3, r0
- ldrb r2, [r0]
- movs r1, 0xF0
- ands r1, r2
- orrs r1, r4
- strb r1, [r0]
- b _08094C8C
- .align 2, 0
-_08094C78: .4byte gUnknown_02038470
-_08094C7C:
- ldr r2, _08094C94 @ =gUnknown_02038470
- adds r2, r3, r2
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- lsls r1, r4, 4
- orrs r0, r1
- strb r0, [r2]
-_08094C8C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08094C94: .4byte gUnknown_02038470
- thumb_func_end sub_8094C54
-
- thumb_func_start sub_8094C98
-sub_8094C98: @ 8094C98
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- adds r0, r5, 0
- bl sub_8094C20
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8094C20
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_8094C54
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_8094C54
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8094C98
-
- thumb_func_start pokemon_order_func
-pokemon_order_func: @ 8094CD4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r3, 0
- movs r2, 0
- ldr r5, _08094CFC @ =gUnknown_02038470
-_08094CE0:
- adds r0, r3, r5
- ldrb r1, [r0]
- lsrs r0, r1, 4
- cmp r0, r4
- beq _08094CF8
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- movs r0, 0xF
- ands r0, r1
- cmp r0, r4
- bne _08094D00
-_08094CF8:
- adds r0, r2, 0
- b _08094D12
- .align 2, 0
-_08094CFC: .4byte gUnknown_02038470
-_08094D00:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x2
- bls _08094CE0
- movs r0, 0
-_08094D12:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end pokemon_order_func
-
- thumb_func_start pokemon_change_order
-pokemon_change_order: @ 8094D18
- push {r4,r5,lr}
- ldr r0, _08094D58 @ =0x0201b000
- ldr r1, _08094D5C @ =gPlayerParty
- movs r2, 0x96
- lsls r2, 2
- bl memcpy
- movs r4, 0
- movs r5, 0x64
-_08094D2A:
- adds r0, r4, 0
- bl pokemon_order_func
- lsls r0, 24
- lsrs r0, 24
- muls r0, r5
- ldr r1, _08094D5C @ =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- muls r1, r5
- ldr r2, _08094D58 @ =0x0201b000
- adds r1, r2
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08094D2A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08094D58: .4byte 0x0201b000
-_08094D5C: .4byte gPlayerParty
- thumb_func_end pokemon_change_order
-
- thumb_func_start sub_8094D60
-sub_8094D60: @ 8094D60
- push {r4,r5,lr}
- ldr r4, _08094DA8 @ =0xfffffda8
- add sp, r4
- ldr r1, _08094DAC @ =gPlayerParty
- movs r2, 0x96
- lsls r2, 2
- mov r0, sp
- bl memcpy
- movs r4, 0
- movs r5, 0x64
-_08094D76:
- adds r0, r4, 0
- bl sub_8094C20
- lsls r0, 24
- lsrs r0, 24
- muls r0, r5
- ldr r1, _08094DAC @ =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- muls r1, r5
- add r1, sp
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08094D76
- movs r3, 0x96
- lsls r3, 2
- add sp, r3
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08094DA8: .4byte 0xfffffda8
-_08094DAC: .4byte gPlayerParty
- thumb_func_end sub_8094D60
-
- thumb_func_start unref_sub_8094DB0
-unref_sub_8094DB0: @ 8094DB0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0x1
- movs r7, 0x64
- ldr r0, _08094E08 @ =gPlayerParty
- mov r8, r0
-_08094DBE:
- adds r0, r6, 0
- bl sub_8094C20
- lsls r0, 24
- lsrs r0, 24
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08094E0C
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08094E0C
- movs r0, 0
- bl sub_8094C20
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- adds r1, r6, 0
- bl sub_8094C98
- adds r0, r4, 0
- muls r0, r7
- add r0, r8
- adds r1, r5, 0
- bl sub_806E6F0
- b _08094E16
- .align 2, 0
-_08094E08: .4byte gPlayerParty
-_08094E0C:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x5
- bls _08094DBE
-_08094E16:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8094DB0
-
- thumb_func_start sub_8094E20
-sub_8094E20: @ 8094E20
- push {lr}
- ldr r3, _08094E44 @ =gPaletteFade
- ldrb r1, [r3, 0x8]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r3, 0x8]
- ldr r1, _08094E48 @ =gUnknown_02038473
- strb r0, [r1]
- bl nullsub_14
- bl pokemon_change_order
- movs r0, 0x1
- movs r1, 0xFF
- bl OpenPartyMenu
- pop {r0}
- bx r0
- .align 2, 0
-_08094E44: .4byte gPaletteFade
-_08094E48: .4byte gUnknown_02038473
- thumb_func_end sub_8094E20
-
- thumb_func_start sub_8094E4C
-sub_8094E4C: @ 8094E4C
- push {lr}
- movs r0, 0x3
- bl sub_8094E20
- pop {r0}
- bx r0
- thumb_func_end sub_8094E4C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/include/battle_party_menu.h b/include/battle_party_menu.h
index b9c3ad707..11752296b 100644
--- a/include/battle_party_menu.h
+++ b/include/battle_party_menu.h
@@ -3,7 +3,8 @@
#include "task.h"
-struct UnknownStruct1
+// TODO: Unify all of the 0x0201B000 structs
+struct Struct201B000
{
u8 filler0[0x259];
u8 unk259;
@@ -33,6 +34,6 @@ extern u8 unk_2000000[];
void SetUpBattlePokemonMenu(u8);
#define EWRAM_1609D unk_2000000[0x1609D]
-#define EWRAM_1B000 (*(struct UnknownStruct1 *)(unk_2000000 + 0x1B000))
+#define EWRAM_1B000 (*(struct Struct201B000 *)(unk_2000000 + 0x1B000))
#endif
diff --git a/ld_script.txt b/ld_script.txt
index c007cf431..a2555016c 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -142,8 +142,6 @@ SECTIONS {
asm/pokedex.o(.text);
src/trainer_card.o(.text);
src/save_menu_util.o(.text);
- src/rom_8094928.o(.text);
- asm/rom_8094928.o(.text);
src/battle_party_menu.o(.text);
asm/pokemon_storage_system.o(.text);
src/pokemon_storage_system.o(.text);
diff --git a/src/battle_party_menu.c b/src/battle_party_menu.c
index 514ef9ca7..7b4eb0258 100644
--- a/src/battle_party_menu.c
+++ b/src/battle_party_menu.c
@@ -12,6 +12,30 @@
#include "task.h"
#include "text.h"
+#define DATA_COUNT (6)
+
+extern u8 ewram[];
+
+struct Unk201B000
+{
+ //u8 filler0[0x260];
+ struct Pokemon unk0[6];
+ u8 filler258[1];
+ u8 unk259;
+ u8 filler25A[6];
+ u8 unk260;
+ u8 unk261;
+ u8 filler262[2];
+ s16 unk264[DATA_COUNT * 2]; // This may be a union
+ u8 filler27C[2];
+ s16 unk27E;
+ s16 unk280;
+ s16 unk282;
+};
+
+#define ewram1B000 (*(struct Unk201B000 *)(ewram + 0x1B000))
+#define UNK_201606C_ARRAY (ewram + 0x1606C) // lazy define but whatever.
+
extern u8 IsLinkDoubleBattle(void);
extern void TryCreatePartyMenuMonIcon(u8, u8, struct Pokemon *);
extern void LoadHeldItemIconGraphics(void);
@@ -29,7 +53,6 @@ extern u16 sub_806BD80();
extern u8 sub_806CA38();
extern void sub_806D5A4(void);
extern void sub_802E414(void);
-extern void sub_8094D60(void);
extern void sub_80A6DCC(void);
extern void sub_806AF4C();
extern u8 sub_80F9344(void);
@@ -41,12 +64,12 @@ extern TaskFunc PartyMenuGetPopupMenuFunc(u8, const struct PartyPopupMenu *, con
extern void ShowPokemonSummaryScreen(struct Pokemon *, u8, u8, void (*)(u8), int);
extern void sub_806E7D0(u8, const struct PartyPopupMenu *);
extern u8 *sub_8040D08();
-extern u8 sub_8094C20();
extern void sub_8040B8C(void);
-extern u8 pokemon_order_func(u8);
-extern void sub_8094C98(u8, u8);
extern void sub_806E6F0();
extern void sub_806D538();
+extern void nullsub_14();
+extern void OpenPartyMenu();
+extern u8 sub_803FBBC(void);
extern u16 gScriptItemId;
extern u8 gPlayerPartyCount;
@@ -56,10 +79,17 @@ extern u8 gUnknown_02024E6C;
extern u8 gUnknown_0202E8F4;
extern u8 gUnknown_0202E8F5;
extern u8 gUnknown_0202E8F6;
+extern u8 gUnknown_02038470[3];
extern u8 gUnknown_02038473;
extern u8 gUnknown_020384F0;
extern void (*gUnknown_03004AE4)(); //don't know types yet
+extern struct PokemonStorage gPokemonStorage;
+void sub_8094C98(u8, u8);
+static void sub_8094998(u8[3], u8);
+static void sub_8094A74(u8[3], u8, u32);
+u8 pokemon_order_func(u8);
+static void sub_8094D60(void);
static void Task_809527C(u8);
static void Task_80952B4(u8);
static void Task_80952E4(u8);
@@ -87,11 +117,276 @@ static const struct PartyPopupMenu sBattlePartyPopupMenus[] =
{ARRAY_COUNT(Unknown_83B5FF2), 9, Unknown_83B5FF2},
};
-// rom_8094928 is part of this file, has yet to be decompiled.
+void unref_sub_8094928(struct PokemonStorage *ptr)
+{
+ *ptr = gPokemonStorage;
+}
+
+void unref_sub_8094940(struct PokemonStorage *ptr)
+{
+ gPokemonStorage = *ptr;
+}
+
+void sub_8094958(void)
+{
+ sub_8094998(gUnknown_02038470, sub_803FBBC());
+}
+
+void sub_8094978(u8 arg1, u8 arg2)
+{
+ sub_8094A74((UNK_201606C_ARRAY) + arg1 * 3, arg2, arg1);
+}
+
+static void sub_8094998(u8 arg[3], u8 player_number)
+{
+ int i;
+ u32 pos;
+ u8 temp[6];
+ if (IsLinkDoubleBattle() == TRUE)
+ {
+ if (player_number)
+ {
+ *arg = 0x30;
+ arg[1] = 0x45;
+ arg[2] = 0x12;
+ }
+ else
+ {
+ *arg = 0x03;
+ arg[1] = 0x12;
+ arg[2] = 0x45;
+ }
+ }
+ else
+ {
+ if (!IsDoubleBattle())
+ {
+ pos = 1;
+ *temp = gUnknown_02024A6A[battle_get_side_with_given_state(0)];
+ for (i = 0; i <= 5; i++)
+ if (i != *temp)
+ temp[pos++] = i;
+ }
+ else
+ {
+ pos = 2;
+ *temp = gUnknown_02024A6A[battle_get_side_with_given_state(0)];
+ temp[1] = gUnknown_02024A6A[battle_get_side_with_given_state(2)];
+ for (i = 0; i <= 5; i++)
+ if ((i != *temp) && (i != temp[1]))
+ temp[pos++] = i;
+ }
+ for (i = 0; i <= 2; i++)
+ arg[i] = (temp[i << 1] << 4) | temp[(i << 1) + 1];
+ }
+}
+
+static void sub_8094A74(u8 arg[3], u8 player_number, u32 arg3)
+{
+ int i, j;
+ u8 temp[6];
+ if (!battle_side_get_owner(arg3))
+ {
+ i = battle_get_side_with_given_state(0);
+ j = battle_get_side_with_given_state(2);
+ }
+ else
+ {
+ i = battle_get_side_with_given_state(1);
+ j = battle_get_side_with_given_state(3);
+ }
+ if (IsLinkDoubleBattle() == TRUE)
+ {
+ if (player_number)
+ {
+ *arg = 0x30;
+ arg[1] = 0x45;
+ arg[2] = 0x12;
+ }
+ else
+ {
+ *arg = 0x03;
+ arg[1] = 0x12;
+ arg[2] = 0x45;
+ }
+ }
+ else
+ {
+ if (!IsDoubleBattle())
+ {
+ int pos = 1;
+ *temp = gUnknown_02024A6A[i];
+ for (i = 0; i <= 5; i++)
+ if (i != *temp)
+ temp[pos++] = i;
+ }
+ else
+ {
+ int pos = 2;
+ *temp = gUnknown_02024A6A[i];
+ temp[1] = gUnknown_02024A6A[j];
+ for (i = 0; i <= 5; i++)
+ if ((i != *temp) && (i != temp[1]))
+ temp[pos++] = i;
+ }
+ for (i = 0; i <= 2; i++)
+ arg[i] = (temp[i << 1] << 4) | temp[(i << 1) + 1];
+ }
+}
+
+void sub_8094B6C(u8 a, u8 b, u8 c)
+{
+ s32 i;
+ s32 j;
+ u8 temp[6];
+ u8 r3;
+ u8 r7 = 0;
+
+ if (IsLinkDoubleBattle())
+ {
+ u8 *arr = ewram + 0x1606C + a * 3;
+
+ for (i = 0, j = 0; i < 3; i++)
+ {
+ temp[j++] = arr[i] >> 4;
+ temp[j++] = arr[i] & 0xF;
+ }
+ r3 = temp[c];
+ for (i = 0; i < 6; i++)
+ {
+ if (temp[i] == b)
+ {
+ r7 = temp[i];
+ temp[i] = r3;
+ break;
+ }
+ }
+ if (i != 6)
+ {
+ temp[c] = r7;
+
+ arr[0] = (temp[0] << 4) | temp[1];
+ arr[1] = (temp[2] << 4) | temp[3];
+ arr[2] = (temp[4] << 4) | temp[5];
+ }
+ }
+}
+
+u8 sub_8094C20(u8 a)
+{
+ u8 retVal;
+ u8 val = a & 1;
+
+ a /= 2;
+ if (val)
+ retVal = gUnknown_02038470[a] & 0xF;
+ else
+ retVal = gUnknown_02038470[a] >> 4;
+ return retVal;
+}
+
+void sub_8094C54(u8 a, u8 b)
+{
+ u8 val = a & 1;
+
+ a /= 2;
+ if (val)
+ gUnknown_02038470[a] = (gUnknown_02038470[a] & 0xF0) | b;
+ else
+ gUnknown_02038470[a] = (gUnknown_02038470[a] & 0xF) | (b << 4);
+}
+
+void sub_8094C98(u8 a, u8 b)
+{
+ u8 r4 = sub_8094C20(a);
+ u8 r1 = sub_8094C20(b);
+
+ sub_8094C54(a, r1);
+ sub_8094C54(b, r4);
+}
+
+u8 pokemon_order_func(u8 a)
+{
+ u8 i;
+ u8 r2;
+
+ for (i = 0, r2 = 0; i < 3; i++)
+ {
+ if ((gUnknown_02038470[i] >> 4) == a)
+ return r2;
+ r2++;
+ if ((gUnknown_02038470[i] & 0xF) == a)
+ return r2;
+ r2++;
+ }
+ return 0;
+}
+
+void pokemon_change_order(void)
+{
+ u8 i;
+
+ memcpy(ewram1B000.unk0, gPlayerParty, sizeof(gPlayerParty));
+ for (i = 0; i < 6; i++)
+ {
+ u8 n = pokemon_order_func(i);
+
+ memcpy(&gPlayerParty[n], &ewram1B000.unk0[i], sizeof(struct Pokemon));
+ }
+}
+
+static void sub_8094D60(void)
+{
+ struct Pokemon temp[6];
+ u8 i;
+
+ memcpy(temp, gPlayerParty, sizeof(gPlayerParty));
+ for (i = 0; i < 6; i++)
+ {
+ u8 n = sub_8094C20(i);
+
+ memcpy(&gPlayerParty[n], &temp[i], sizeof(struct Pokemon));
+ }
+}
+
+void unref_sub_8094DB0(void)
+{
+ u8 i;
+ u8 r4;
+
+ for (i = 1; i < 6; i++)
+ {
+ u8 n = sub_8094C20(i);
+
+ if (GetMonData(&gPlayerParty[n], MON_DATA_SPECIES) != 0
+ && GetMonData(&gPlayerParty[n], MON_DATA_HP) != 0)
+ {
+ r4 = sub_8094C20(0);
+ sub_8094C98(0, i);
+ sub_806E6F0(&gPlayerParty[r4], &gPlayerParty[n]);
+ break;
+ }
+ }
+}
+
+void sub_8094E20(u8 a)
+{
+ gPaletteFade.bufferTransferDisabled = TRUE;
+ gUnknown_02038473 = a;
+ nullsub_14();
+ pokemon_change_order();
+ OpenPartyMenu(1, 0xFF);
+}
+
+void sub_8094E4C(void)
+{
+ sub_8094E20(3);
+}
int SetUpBattlePartyMenu(void)
{
switch (EWRAM_1B000.unk264)
+ //switch (ewram1B000.unk264[0])
{
case 0:
//TODO: try to get rid of this duplicate code
@@ -172,9 +467,9 @@ int SetUpBattlePartyMenu(void)
if (gUnknown_02038473 == 3)
{
if (GetItemEffectType(gScriptItemId) == 10)
- EWRAM_1B000.unk259 = 0xFF;
+ ewram1B000.unk259 = 0xFF;
else
- EWRAM_1B000.unk259 = 3;
+ ewram1B000.unk259 = 3;
}
return TRUE;
}
diff --git a/src/party_menu.c b/src/party_menu.c
index b08180645..ad0007695 100644
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -31,7 +31,7 @@ struct Unk201B000
u8 unk260;
u8 unk261;
u8 filler262[2];
- s16 unk264[DATA_COUNT * 2];
+ s16 unk264[DATA_COUNT * 2]; // This may be a union
u8 filler27C[2];
s16 unk27E;
s16 unk280;
diff --git a/src/rom_8094928.c b/src/rom_8094928.c
deleted file mode 100644
index 794fc78f6..000000000
--- a/src/rom_8094928.c
+++ /dev/null
@@ -1,135 +0,0 @@
-#include "global.h"
-#include "pokemon.h"
-
-#define UNK_201606C_ARRAY (unk_2000000 + 0x1606C) // lazy define but whatever.
-
-extern u8 unk_2000000[];
-
-extern struct PokemonStorage gPokemonStorage;
-extern u8 IsLinkDoubleBattle(void);
-extern u8 IsDoubleBattle(void);
-extern u8 battle_get_side_with_given_state(u8);
-extern u8 battle_side_get_owner(u8);
-void sub_8094998(u8[3], u8);
-void sub_8094A74(u8[3], u8, u32);
-
-extern u8 gUnknown_02038470[3];
-extern u8 sub_803FBBC(void);
-extern u16 gUnknown_02024A6A[];
-
-void unref_sub_8094928(struct PokemonStorage *ptr)
-{
- *ptr = gPokemonStorage;
-}
-
-void unref_sub_8094940(struct PokemonStorage *ptr)
-{
- gPokemonStorage = *ptr;
-}
-
-void sub_8094958(void)
-{
- sub_8094998(gUnknown_02038470, sub_803FBBC());
-}
-
-void sub_8094978(u8 arg1, u8 arg2)
-{
- sub_8094A74((UNK_201606C_ARRAY) + arg1 * 3, arg2, arg1);
-}
-
-void sub_8094998(u8 arg[3], u8 player_number)
-{
- int i;
- u32 pos;
- u8 temp[6];
- if (IsLinkDoubleBattle() == TRUE)
- {
- if (player_number)
- {
- *arg = 0x30;
- arg[1] = 0x45;
- arg[2] = 0x12;
- }
- else
- {
- *arg = 0x03;
- arg[1] = 0x12;
- arg[2] = 0x45;
- }
- }
- else
- {
- if (!IsDoubleBattle())
- {
- pos = 1;
- *temp = gUnknown_02024A6A[battle_get_side_with_given_state(0)];
- for (i = 0; i <= 5; i++)
- if (i != *temp)
- temp[pos++] = i;
- }
- else
- {
- pos = 2;
- *temp = gUnknown_02024A6A[battle_get_side_with_given_state(0)];
- temp[1] = gUnknown_02024A6A[battle_get_side_with_given_state(2)];
- for (i = 0; i <= 5; i++)
- if ((i != *temp) && (i != temp[1]))
- temp[pos++] = i;
- }
- for (i = 0; i <= 2; i++)
- arg[i] = (temp[i << 1] << 4) | temp[(i << 1) + 1];
- }
-}
-
-void sub_8094A74(u8 arg[3], u8 player_number, u32 arg3)
-{
- int i, j;
- u8 temp[6];
- if (!battle_side_get_owner(arg3))
- {
- i = battle_get_side_with_given_state(0);
- j = battle_get_side_with_given_state(2);
- }
- else
- {
- i = battle_get_side_with_given_state(1);
- j = battle_get_side_with_given_state(3);
- }
- if (IsLinkDoubleBattle() == TRUE)
- {
- if (player_number)
- {
- *arg = 0x30;
- arg[1] = 0x45;
- arg[2] = 0x12;
- }
- else
- {
- *arg = 0x03;
- arg[1] = 0x12;
- arg[2] = 0x45;
- }
- }
- else
- {
- if (!IsDoubleBattle())
- {
- int pos = 1;
- *temp = gUnknown_02024A6A[i];
- for (i = 0; i <= 5; i++)
- if (i != *temp)
- temp[pos++] = i;
- }
- else
- {
- int pos = 2;
- *temp = gUnknown_02024A6A[i];
- temp[1] = gUnknown_02024A6A[j];
- for (i = 0; i <= 5; i++)
- if ((i != *temp) && (i != temp[1]))
- temp[pos++] = i;
- }
- for (i = 0; i <= 2; i++)
- arg[i] = (temp[i << 1] << 4) | temp[(i << 1) + 1];
- }
-}