From 9d9c2a9667d12fb0177f5c84b2ca5ccf28e13dce Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sun, 31 Jul 2022 22:02:44 -0400 Subject: [PATCH] Combining pss 8 and 9 --- include/pokemon_storage_system_internal.h | 12 ++-- ld_script.txt | 1 - src/pokemon_storage_system_8.c | 84 ++++++++++++++++++++++ src/pokemon_storage_system_9.c | 87 ----------------------- sym_ewram.txt | 2 +- 5 files changed, 91 insertions(+), 95 deletions(-) delete mode 100644 src/pokemon_storage_system_9.c diff --git a/include/pokemon_storage_system_internal.h b/include/pokemon_storage_system_internal.h index c53b5ff86..1376c7396 100644 --- a/include/pokemon_storage_system_internal.h +++ b/include/pokemon_storage_system_internal.h @@ -198,12 +198,12 @@ struct StorageMenu struct UnkUtilData { - const u8 *unk_00; - u8 *unk_04; - u16 unk_08; - u16 unk_0a; - u16 newField; - void (*unk_0c)(struct UnkUtilData *data); + const u8 *src; + u8 *dest; + u16 size; + u16 unk; + u16 height; + void (*func)(struct UnkUtilData *data); }; struct UnkUtil diff --git a/ld_script.txt b/ld_script.txt index ab1ba9d61..2ea2d0cfd 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -137,7 +137,6 @@ SECTIONS { src/pokemon_storage_system_6.o(.text); src/pokemon_storage_system_7.o(.text); src/pokemon_storage_system_8.o(.text); - src/pokemon_storage_system_9.o(.text); src/pokemon_icon.o(.text); src/script_movement.o(.text); src/fldeff_cut.o(.text); diff --git a/src/pokemon_storage_system_8.c b/src/pokemon_storage_system_8.c index 7b8670e36..327ceb541 100644 --- a/src/pokemon_storage_system_8.c +++ b/src/pokemon_storage_system_8.c @@ -778,3 +778,87 @@ static void SpriteCB_ItemIcon_HideParty(struct Sprite *sprite) #undef sItemIconId #undef sCursorArea #undef sCursorPos + +static EWRAM_DATA struct UnkUtil *gUnknown_203982C = NULL; + +static void sub_8096CDC(struct UnkUtilData *unkStruct); +static void sub_8096D70(struct UnkUtilData *unkStruct); + +void sub_8096BE4(struct UnkUtil *arg0, struct UnkUtilData *arg1, u32 arg2) +{ + gUnknown_203982C = arg0; + arg0->unk_00 = arg1; + arg0->unk_05 = arg2; + arg0->unk_04 = 0; +} + +void sub_8096BF8(void) +{ + u16 i; + + if (gUnknown_203982C->unk_04) + { + for (i = 0; i < gUnknown_203982C->unk_04; i++) + { + struct UnkUtilData *unkStruct = &gUnknown_203982C->unk_00[i]; + unkStruct->func(unkStruct); + } + + gUnknown_203982C->unk_04 = 0; + } +} + +static bool8 sub_8096C40(u8 *dest, u16 dLeft, u16 dTop, const u8 *src, u16 sLeft, u16 sTop, u16 width, u16 height, u16 unkArg) +{ + struct UnkUtilData *unkStruct; + + if (gUnknown_203982C->unk_04 >= gUnknown_203982C->unk_05) + return FALSE; + + unkStruct = &gUnknown_203982C->unk_00[gUnknown_203982C->unk_04++]; + unkStruct->size = width * 2; + unkStruct->dest = dest + 2 * (dTop * 32 + dLeft); + unkStruct->src = src + 2 * (sTop * unkArg + sLeft); + unkStruct->height = height; + unkStruct->unk = unkArg; + unkStruct->func = sub_8096CDC; + return TRUE; +} + +static void sub_8096CDC(struct UnkUtilData *unkStruct) +{ + u16 i; + + for (i = 0; i < unkStruct->height; i++) + { + CpuCopy16(unkStruct->src, unkStruct->dest, unkStruct->size); + unkStruct->dest += 64; + unkStruct->src += (unkStruct->unk * 2); + } +} + +static bool8 sub_8096D14(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height) +{ + struct UnkUtilData *unkStruct; + + if (gUnknown_203982C->unk_04 >= gUnknown_203982C->unk_05) + return FALSE; + + unkStruct = &gUnknown_203982C->unk_00[gUnknown_203982C->unk_04++]; + unkStruct->size = width * 2; + unkStruct->dest = dest + ((dTop * 32) + dLeft) * 2; + unkStruct->height = height; + unkStruct->func = sub_8096D70; + return TRUE; +} + +static void sub_8096D70(struct UnkUtilData *data) +{ + u16 i; + + for (i = 0; i < data->height; i++) + { + Dma3FillLarge_(0, data->dest, data->size, 16); + data->dest += 64; + } +} diff --git a/src/pokemon_storage_system_9.c b/src/pokemon_storage_system_9.c deleted file mode 100644 index d5f648765..000000000 --- a/src/pokemon_storage_system_9.c +++ /dev/null @@ -1,87 +0,0 @@ -#include "global.h" -#include "gflib.h" -#include "pokemon_storage_system_internal.h" - -static EWRAM_DATA struct UnkUtil *gUnknown_203982C = NULL; - -static void sub_8096CDC(struct UnkUtilData *unkStruct); -static void sub_8096D70(struct UnkUtilData *unkStruct); - -void sub_8096BE4(struct UnkUtil *arg0, struct UnkUtilData *arg1, u32 arg2) -{ - gUnknown_203982C = arg0; - arg0->unk_00 = arg1; - arg0->unk_05 = arg2; - arg0->unk_04 = 0; -} - -void sub_8096BF8(void) -{ - u16 i; - - if (gUnknown_203982C->unk_04) - { - for (i = 0; i < gUnknown_203982C->unk_04; i++) - { - struct UnkUtilData *unkStruct = &gUnknown_203982C->unk_00[i]; - unkStruct->unk_0c(unkStruct); - } - - gUnknown_203982C->unk_04 = 0; - } -} - -static bool8 sub_8096C40(u8 *dest, u16 dLeft, u16 dTop, const u8 *src, u16 sLeft, u16 sTop, u16 width, u16 height, u16 unkArg) -{ - struct UnkUtilData *unkStruct; - - if (gUnknown_203982C->unk_04 >= gUnknown_203982C->unk_05) - return FALSE; - - unkStruct = &gUnknown_203982C->unk_00[gUnknown_203982C->unk_04++]; - unkStruct->unk_08 = width * 2; - unkStruct->unk_04 = dest + 2 * (dTop * 32 + dLeft); - unkStruct->unk_00 = src + 2 * (sTop * unkArg + sLeft); - unkStruct->newField = height; - unkStruct->unk_0a = unkArg; - unkStruct->unk_0c = sub_8096CDC; - return TRUE; -} - -static void sub_8096CDC(struct UnkUtilData *unkStruct) -{ - u16 i; - - for (i = 0; i < unkStruct->newField; i++) - { - CpuCopy16(unkStruct->unk_00, unkStruct->unk_04, unkStruct->unk_08); - unkStruct->unk_04 += 64; - unkStruct->unk_00 += (unkStruct->unk_0a * 2); - } -} - -static bool8 sub_8096D14(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height) -{ - struct UnkUtilData *unkStruct; - - if (gUnknown_203982C->unk_04 >= gUnknown_203982C->unk_05) - return FALSE; - - unkStruct = &gUnknown_203982C->unk_00[gUnknown_203982C->unk_04++]; - unkStruct->unk_08 = width * 2; - unkStruct->unk_04 = dest + ((dTop * 32) + dLeft) * 2; - unkStruct->newField = height; - unkStruct->unk_0c = sub_8096D70; - return TRUE; -} - -static void sub_8096D70(struct UnkUtilData *unkStruct) -{ - u16 i; - - for (i = 0; i < unkStruct->newField; i++) - { - Dma3FillLarge_(0, unkStruct->unk_04, unkStruct->unk_08, 16); - unkStruct->unk_04 += 64; - } -} diff --git a/sym_ewram.txt b/sym_ewram.txt index b426b2ddf..9fe766a2b 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -42,7 +42,7 @@ .include "src/pokemon_storage_system_3.o" .include "src/pokemon_storage_system_5.o" .include "src/pokemon_storage_system_7.o" - .include "src/pokemon_storage_system_9.o" + .include "src/pokemon_storage_system_8.o" .include "src/script_movement.o" .include "src/fldeff_cut.o" .include "src/item_menu_icons.o"