summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-01-07 19:47:59 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-01-07 19:47:59 -0500
commitbfeaa80fcd9409645325c2f7ae94850f970fbb58 (patch)
tree09f38543db976b85212d10790c7a34c2b94e4247 /src
parentb9ad9b3ad547b200e66b293169acbbfe4f50f76d (diff)
through sub_8096884
Diffstat (limited to 'src')
-rw-r--r--src/pokemon/mon_markings.c20
-rw-r--r--src/pokemon/pokemon_storage_system.c74
2 files changed, 74 insertions, 20 deletions
diff --git a/src/pokemon/mon_markings.c b/src/pokemon/mon_markings.c
index b4144ea34..d27719c4a 100644
--- a/src/pokemon/mon_markings.c
+++ b/src/pokemon/mon_markings.c
@@ -5,6 +5,7 @@
#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
+#include "mon_markings.h"
#ifdef GERMAN
#define MENU_TEXT_SPRITE_X_OFFSET 24
@@ -12,25 +13,6 @@
#define MENU_TEXT_SPRITE_X_OFFSET 32
#endif
-struct PokemonMarkMenu
-{
- /*0x0000*/ u16 baseTileTag;
- /*0x0002*/ u16 basePaletteTag;
- /*0x0004*/ u8 markings; // bit flags
- /*0x0005*/ s8 cursorPos;
- /*0x0006*/ bool8 markingsArray[4];
- /*0x000A*/ u8 cursorBaseY;
- /*0x000B*/ bool8 spriteSheetLoadRequired;
- /*0x000C*/ struct Sprite *menuWindowSprites[2]; // upper and lower halves of menu window
- /*0x0014*/ struct Sprite *menuMarkingSprites[4];
- /*0x0024*/ struct Sprite *menuTextSprite;
- /*0x0028*/ const u8 *frameTiles;
- /*0x002C*/ const u16 *framePalette;
- /*0x0030*/ u8 menuWindowSpriteTiles[0x1000];
- /*0x1030*/ u8 filler1030[0x80];
- /*0x10B0*/ u8 tileLoadState;
-};
-
extern u8 gPokenavConditionMenuMisc_Gfx[];
extern u16 gUnknown_08E966B8[];
diff --git a/src/pokemon/pokemon_storage_system.c b/src/pokemon/pokemon_storage_system.c
index 9e559354b..91d56a4b9 100644
--- a/src/pokemon/pokemon_storage_system.c
+++ b/src/pokemon/pokemon_storage_system.c
@@ -3,6 +3,7 @@
#include "constants/songs.h"
#include "sound.h"
#include "field_weather.h"
+#include "mon_markings.h"
#include "overworld.h"
#include "field_fadetransition.h"
#include "menu.h"
@@ -34,7 +35,9 @@ struct PokemonStorageSystemData {
u8 filler_0000[5];
u8 unk_0005;
u8 filler_0006[26];
- struct UnkStruct_2000020 unk_0020[100]; // refine size later
+ struct UnkStruct_2000020 unk_0020[595]; // refine size later
+ u8 filler_12b8[4];
+ struct PokemonMarkMenu unk_12bc;
};
struct UnkPSSStruct_2002370 {
@@ -60,6 +63,16 @@ void sub_80966F4(const u8 *sourceString, u16 x, u16 y);
void sub_8096784(struct Sprite *sprite);
void task_intro_29(u8 whichMenu);
void sub_8096884(void);
+void sub_8096AFC(void);
+void sub_8096B38(void);
+void sub_8096BE0(void (*func)(void));
+void sub_8096BF0(void);
+void sub_8097DE0(void);
+void sub_8097E70(void);
+void sub_8098400(void);
+void sub_8099BF8(u8 a0);
+void sub_8098B48(void);
+void sub_809AA24(void);
struct Sprite *sub_809A9A0(u16 a0, u16 a1, u8 a2, u8 a3, u8 a4);
void sub_809B0D4(void);
void sub_809CFDC(struct UnkStruct_2000020 *a0, struct UnkStruct_2000020 * a1, u8 a2);
@@ -800,6 +813,65 @@ void sub_8096874(void)
REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON;
}
+void sub_8096884(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ SetVBlankCallback(NULL);
+ REG_DISPCNT = 0;
+ sub_8096804();
+ gMain.state++;
+ break;
+ case 1:
+ SetUpWindowConfig(&gWindowConfig_81E6D00);
+ gMain.state++;
+ break;
+ case 2:
+ InitMenuWindow(&gWindowConfig_81E6D00);
+ MenuZeroFillScreen();
+ gMain.state++;
+ break;
+ case 3:
+ sub_80967DC();
+ sub_8096848();
+ gMain.state++;
+ break;
+ case 4:
+ sub_8098B48();
+ sub_809AA24();
+ gMain.state++;
+ break;
+ case 5:
+ sub_8097DE0();
+ gMain.state++;
+ break;
+ case 6:
+ sub_8097E70();
+ gMain.state++;
+ break;
+ case 7:
+ sub_8098400();
+ gMain.state++;
+ break;
+ case 8:
+ sub_8099BF8(gPokemonStorage.currentBox);
+ ePokemonStorageSystem.unk_12bc.baseTileTag = 0x000a;
+ ePokemonStorageSystem.unk_12bc.basePaletteTag = 0xdacb;
+ sub_80F727C(&ePokemonStorageSystem.unk_12bc);
+ sub_80F7404();
+ gMain.state++;
+ break;
+ case 9:
+ sub_8096874();
+ sub_8096BE0(sub_8096BF0);
+ SetMainCallback2(sub_8096B38);
+ SetVBlankCallback(sub_8096AFC);
+ gMain.state++;
+ break;
+ }
+}
+
asm(".section .text.8098898");
void sub_8098898(u8 index) {