Merge pull request #233 from PikalaxALT/item_menu

item_menu
This commit is contained in:
PikalaxALT
2020-01-19 16:58:51 -05:00
committed by GitHub
46 changed files with 2878 additions and 7565 deletions
-7021
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -22001,7 +22001,7 @@ GetItemIconPic: @ 8096674
lsls r0, 16 lsls r0, 16
lsrs r0, 16 lsrs r0, 16
movs r1, 0 movs r1, 0
bl sub_8098974 bl GetItemIconGfxPtr
pop {r1} pop {r1}
bx r1 bx r1
thumb_func_end GetItemIconPic thumb_func_end GetItemIconPic
@@ -22012,7 +22012,7 @@ GetItemIconPalette: @ 8096684
lsls r0, 16 lsls r0, 16
lsrs r0, 16 lsrs r0, 16
movs r1, 0x1 movs r1, 0x1
bl sub_8098974 bl GetItemIconGfxPtr
pop {r1} pop {r1}
bx r1 bx r1
thumb_func_end GetItemIconPalette thumb_func_end GetItemIconPalette
+1 -1
View File
@@ -1537,7 +1537,7 @@ EventScript_1A778C:: @ 81A778C
releaseall releaseall
end end
gUnknown_81A77A0:: @ 81A77A0 EventScript_BagItemCanBeRegistered:: @ 81A77A0
msgbox Text_BagItemCanBeRegistered, MSGBOX_SIGN msgbox Text_BagItemCanBeRegistered, MSGBOX_SIGN
end end
+4 -4
View File
@@ -13476,7 +13476,7 @@ gTrainerBackPic_Leaf:: @ 8E6C6BC
.incbin "graphics/trainers/back_pics/leaf_back_pic.4bpp" .incbin "graphics/trainers/back_pics/leaf_back_pic.4bpp"
.align 2 .align 2
gTrainerBackPic_PokeDude:: @ 8E6EEBC gTrainerBackPic_Pokedude:: @ 8E6EEBC
.incbin "graphics/trainers/back_pics/pokedude_back_pic.4bpp" .incbin "graphics/trainers/back_pics/pokedude_back_pic.4bpp"
.align 2 .align 2
@@ -13500,7 +13500,7 @@ gTrainerPalette_LeafBackPic:: @ 8E76EE4
.incbin "graphics/trainers/palettes/red_back_pic.gbapal.lz" .incbin "graphics/trainers/palettes/red_back_pic.gbapal.lz"
.align 2 .align 2
gTrainerPalette_PokeDudeBackPic:: @ 8E76F0C gTrainerPalette_PokedudeBackPic:: @ 8E76F0C
.incbin "graphics/trainers/palettes/pokedude_back_pic.gbapal.lz" .incbin "graphics/trainers/palettes/pokedude_back_pic.gbapal.lz"
.align 2 .align 2
@@ -14004,11 +14004,11 @@ gUnknown_8E83444:: @ 8E83444
.incbin "graphics/item_menu/bag_tilemap2.bin.lz" @ PC deposit items .incbin "graphics/item_menu/bag_tilemap2.bin.lz" @ PC deposit items
.align 2 .align 2
gUnknown_8E835B4:: @ 8E835B4 gBagBgPalette:: @ 8E835B4
.incbin "graphics/item_menu/bag_pal1.gbapal.lz" @ palette 1 (Boy + misc Pal) .incbin "graphics/item_menu/bag_pal1.gbapal.lz" @ palette 1 (Boy + misc Pal)
.align 2 .align 2
gUnknown_8E83604:: @ 8E83604 gBagBgPalette_FemaleOverride:: @ 8E83604
.incbin "graphics/item_menu/bag_pal2.gbapal.lz" @ palette 2 (Girl) .incbin "graphics/item_menu/bag_pal2.gbapal.lz" @ palette 2 (Girl)
gUnknown_8E8362C:: @ 8E8362C gUnknown_8E8362C:: @ 8E8362C
-116
View File
@@ -1,116 +0,0 @@
#include "constants/region_map.h"
#include "constants/flags.h"
#include "constants/moves.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnknown_8452CF4:: @ 8452CF4
.4byte 0x000001f0
@ {
@ .bg = 0,
@ .charBaseIndex = 0,
@ .mapBaseIndex = 31,
@ .screenSize = 0,
@ .paletteMode = 0,
@ .priority = 0,
@ .baseTile = 0x0000
@ }
.4byte 0x000011ed
@ {
@ .bg = 1,
@ .charBaseIndex = 3,
@ .mapBaseIndex = 30,
@ .screenSize = 0,
@ .paletteMode = 0,
@ .priority = 1,
@ .baseTile = 0x0000
@ }
gUnknown_8452CFC:: @ 8452CFC
.4byte gUnknown_84162CD
.4byte gUnknown_84162DE
.4byte gUnknown_84162D3
gUnknown_8452D08:: @ 8452D08
.incbin "graphics/item_menu/bagmap_0.bin"
.incbin "graphics/item_menu/bagmap_1.bin"
.incbin "graphics/item_menu/bagmap_2.bin"
.incbin "graphics/item_menu/bagmap_3.bin"
.incbin "graphics/item_menu/bagmap_4.bin"
.incbin "graphics/item_menu/bagmap_5.bin"
.incbin "graphics/item_menu/bagmap_6.bin"
.incbin "graphics/item_menu/bagmap_7.bin"
.incbin "graphics/item_menu/bagmap_8.bin"
.incbin "graphics/item_menu/bagmap_9.bin"
.incbin "graphics/item_menu/bagmap_A.bin"
.incbin "graphics/item_menu/bagmap_B.bin"
gUnknown_8452EB8:: @ 8452EB8
.4byte gOtherText_Use, sub_8109C50
.4byte gOtherText_Toss, sub_8109CC0
.4byte gUnknown_84161A9, sub_810A000
.4byte gOtherText_Give, sub_810A0A8
.4byte gFameCheckerText_Cancel, sub_810A2DC
.4byte gOtherText_Use, sub_810A324
.4byte gUnknown_84161E9, sub_8109C50
.4byte gUnknown_84161F4, sub_8109C50
.4byte gUnknown_84161F4, sub_810A324
.4byte gUnknown_84161BC, sub_8109C50
.4byte gUnknown_84161F9, sub_810A000
.4byte gString_Dummy, NULL
gUnknown_8452F18:: @ 8452F18
.byte 0x00, 0x03, 0x01, 0x04
.byte 0x00, 0x02, 0x04, 0x0b
.byte 0x03, 0x01, 0x04, 0x0b
gUnknown_8452F24:: @ 8452F24
.byte 0x06, 0x03, 0x01, 0x04
gUnknown_8452F28:: @ 8452F28
.byte 0x03, 0x04
.byte 0x04, 0x0b
.byte 0x03, 0x04
gUnknown_8452F2E:: @ 8452F2E
.byte 0x07, 0x04
gUnknown_8452F30:: @ 8452F30
.byte 0x05, 0x04
gUnknown_8452F32:: @ 8452F32
.byte 0x04, 0x0b
gUnknown_8452F34:: @ 8452F34
.4byte sub_8109BB8
.4byte sub_810A370
.4byte sub_810A568
.4byte sub_810AB40
.4byte sub_810A468
.4byte sub_8109BB8
.4byte NULL
gUnknown_8452F50:: @ 8452F50
.4byte sub_8109EA8
.4byte sub_8109DB0
gUnknown_8452F58:: @ 8452F58
.4byte sub_810A940
.4byte sub_810A720
gUnknown_8452F60:: @ 8452F60
.string "{COLOR_HIGHLIGHT_SHADOW RED TRANSPARENT GREEN}$"
gUnknown_8452F66:: @ 8452F66
.string "{COLOR_HIGHLIGHT_SHADOW LIGHT_GRAY TRANSPARENT BLACK}$"
gUnknown_8452F6C:: @ 8452F6C
.byte 0, 8, 72, 1, 72, 72
.2byte 0, 2, 111, 111
.byte 0
.align 2
gUnknown_8452F7C:: @ 8452F7C
.incbin "graphics/interface/select_button.4bpp"
+13 -13
View File
@@ -411,7 +411,7 @@ gOtherText_Use::
gOtherText_Toss:: gOtherText_Toss::
.string "TOSS$" .string "TOSS$"
gUnknown_84161A9:: gOtherText_Register::
.string "REGISTER$" .string "REGISTER$"
gOtherText_Give:: gOtherText_Give::
@@ -420,7 +420,7 @@ gOtherText_Give::
gUnknown_84161B7:: gUnknown_84161B7::
.string "$" .string "$"
gUnknown_84161BC:: gOtherText_Walk::
.string "WALK$" .string "WALK$"
gFameCheckerText_Cancel:: @ 84161C1 gFameCheckerText_Cancel:: @ 84161C1
@@ -447,16 +447,16 @@ gText_Take::
gText_Store:: gText_Store::
.string "STORE$" .string "STORE$"
gUnknown_84161E9:: gOtherText_Check::
.string "CHECK$" .string "CHECK$"
gUnknown_84161EF:: @ 84161EF gUnknown_84161EF:: @ 84161EF
.string "NONE$" .string "NONE$"
gUnknown_84161F4:: gOtherText_Open::
.string "OPEN$" .string "OPEN$"
gUnknown_84161F9:: gOtherText_Deselect::
.string "DESELECT$" .string "DESELECT$"
gUnknown_8416202:: @ 8416202 gUnknown_8416202:: @ 8416202
@@ -555,19 +555,19 @@ gUnknown_84162BD:: @ 84162BD
gText_Coins:: @ 84162C4 gText_Coins:: @ 84162C4
.string "{STR_VAR_1} COINS$" .string "{STR_VAR_1} COINS$"
gUnknown_84162CD:: @ 0x84162CD gText_Items2:: @ 0x84162CD
.string "ITEMS$" .string "ITEMS$"
gUnknown_84162D3:: @ 0x84162D3 gText_PokeBalls2:: @ 0x84162D3
.string "POKé BALLS$" .string "POKé BALLS$"
gUnknown_84162DE:: @ 0x84162DE gText_KeyItems2:: @ 0x84162DE
.string "KEY ITEMS$" .string "KEY ITEMS$"
gText_DepositItem:: @ 84162E8 gText_DepositItem:: @ 84162E8
.string "DEPOSIT ITEM$" .string "DEPOSIT ITEM$"
gUnknown_84162F5:: @ 84162F5 gText_CloseBag:: @ 84162F5
.string "CLOSE BAG$" .string "CLOSE BAG$"
gOtherText_StrVar1:: @ 84162FF gOtherText_StrVar1:: @ 84162FF
@@ -577,7 +577,7 @@ gText_IsSelected:: @ 8416301
.string " is\n" .string " is\n"
.string "selected.$" .string "selected.$"
gUnknown_841630F:: @ 841630F gText_CantWriteMailHere:: @ 841630F
.string "You can't write\n" .string "You can't write\n"
.string "MAIL here.$" .string "MAIL here.$"
@@ -596,15 +596,15 @@ gText_TheStrVar1CantBeHeldHere:: @ 8416374
.string "The {STR_VAR_1} can't be held\n" .string "The {STR_VAR_1} can't be held\n"
.string "here.$" .string "here.$"
gUnknown_841638F:: @ 841638F gText_DepositHowManyStrVars1:: @ 841638F
.string "Deposit how many\n" .string "Deposit how many\n"
.string "{STR_VAR_1}(s)?$" .string "{STR_VAR_1}(s)?$"
gUnknown_84163A7:: @ 84163A7 gText_DepositedStrVar2StrVar1s:: @ 84163A7
.string "Deposited {STR_VAR_2}\n" .string "Deposited {STR_VAR_2}\n"
.string "{STR_VAR_1}(s).$" .string "{STR_VAR_1}(s).$"
gUnknown_84163BB:: @ 84163BB gText_NoRoomToStoreItems:: @ 84163BB
.string "There's no room to\n" .string "There's no room to\n"
.string "store items.$" .string "store items.$"
+3 -3
View File
@@ -19,7 +19,7 @@ gTeachyTvString_RegisterItem:: @ 841B81B
gTeachyTvString_Cancel:: @ 841B836 gTeachyTvString_Cancel:: @ 841B836
.string "CANCEL$" .string "CANCEL$"
gTeachyTvText_PokeDudeSaysHello:: @ 841B83D gTeachyTvText_PokedudeSaysHello:: @ 841B83D
.string "Hey, all you TRAINERS out there!\n" .string "Hey, all you TRAINERS out there!\n"
.string "HELLO, TRAINERS!\p" .string "HELLO, TRAINERS!\p"
.string "……… ……… ………\p" .string "……… ……… ………\p"
@@ -164,7 +164,7 @@ gTeachyTvText_TMsScript1:: @ 841C459
.string "You can check them out in detail,\n" .string "You can check them out in detail,\n"
.string "too.$" .string "too.$"
gPokeDudeText_TMTypes:: @ 841C587 gPokedudeText_TMTypes:: @ 841C587
.string "POKé DUDE: NORMAL, WATER, GRASS…\n" .string "POKé DUDE: NORMAL, WATER, GRASS…\n"
.string "TMs also come in types.\p" .string "TMs also come in types.\p"
.string "Check the type and teach it to\n" .string "Check the type and teach it to\n"
@@ -175,7 +175,7 @@ gPokeDudeText_TMTypes:: @ 841C587
.string "GRASS-type POKéMON can learn.\p" .string "GRASS-type POKéMON can learn.\p"
.string "There's one other thing!$" .string "There's one other thing!$"
gPokeDudeText_ReadTMDescription:: @ 841C693 gPokedudeText_ReadTMDescription:: @ 841C693
.string "Don't just look at the type, read\n" .string "Don't just look at the type, read\n"
.string "the description, too.\p" .string "the description, too.\p"
.string "It will contain hints about what\n" .string "It will contain hints about what\n"
+15 -13
View File
@@ -1,18 +1,20 @@
#ifndef GUARD_BAG_H #ifndef GUARD_BAG_H
#define GUARD_BAG_H #define GUARD_BAG_H
void sub_810B858(void); #include "menu_helpers.h"
void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 colorIdx);
void sub_810B958(const u8 * str); void InitBagWindows(void);
void sub_810B994(void); void BagPrintTextOnWindow(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx);
u8 sub_810B9DC(u8 a0, u8 a1); void BagPrintTextOnWin1CenteredColor0(const u8 * str, u8 unused);
void sub_810BA3C(u8 a0); void BagDrawDepositItemTextBox(void);
u8 sub_810BA70(u8 a0); u8 ShowBagWindow(u8 whichWindow, u8 nItems);
void sub_810BA9C(u8 a0); void HideBagWindow(u8 whichWindow);
u8 sub_810BAD8(u8 a0); u8 OpenBagWindow(u8 whichWindow);
void sub_810BAE8(u8 taskId, const struct YesNoFuncTable * ptrs); void CloseBagWindow(u8 whichWindow);
void sub_810BB14(u8 taskId, const struct YesNoFuncTable * ptrs); u8 GetBagWindow(u8 whichWindow);
void sub_810BB40(void); void BagCreateYesNoMenuBottomRight(u8 taskId, const struct YesNoFuncTable * ptrs);
void sub_810BB74(u8 windowId); void BagCreateYesNoMenuTopRight(u8 taskId, const struct YesNoFuncTable * ptrs);
void BagPrintMoneyAmount(void);
void BagDrawTextBoxOnWindow(u8 windowId);
#endif //GUARD_BAG_H #endif //GUARD_BAG_H
+1
View File
@@ -2,6 +2,7 @@
#define GUARD_BATTLE_CONTROLLERS_H #define GUARD_BATTLE_CONTROLLERS_H
#include "global.h" #include "global.h"
#include "battle.h"
enum enum
{ {
+35
View File
@@ -0,0 +1,35 @@
#ifndef GUARD_CONSTANTS_ITEM_MENU_H
#define GUARD_CONSTANTS_ITEM_MENU_H
#define OPEN_BAG_ITEMS 0
#define OPEN_BAG_KEYITEMS 1
#define OPEN_BAG_POKEBALLS 2
#define OPEN_BAG_LAST 3
#define ITEMMENULOCATION_FIELD 0
#define ITEMMENULOCATION_PARTY 1
#define ITEMMENULOCATION_SHOP 2
#define ITEMMENULOCATION_ITEMPC 3
#define ITEMMENULOCATION_PCBOX 4
#define ITEMMENULOCATION_BATTLE 5
#define ITEMMENULOCATION_OLD_MAN 6
#define ITEMMENULOCATION_TTVSCR_STATUS 7
#define ITEMMENULOCATION_TTVSCR_CATCHING 8
#define ITEMMENULOCATION_TTVSCR_REGISTER 9
#define ITEMMENULOCATION_TTVSCR_TMS 10
#define ITEMMENULOCATION_LAST 11
#define ITEMMENUACTION_USE 0
#define ITEMMENUACTION_TOSS 1
#define ITEMMENUACTION_REGISTER 2
#define ITEMMENUACTION_GIVE 3
#define ITEMMENUACTION_CANCEL 4
#define ITEMMENUACTION_BATTLE_USE 5
#define ITEMMENUACTION_CHECK 6
#define ITEMMENUACTION_OPEN 7
#define ITEMMENUACTION_OPEN_BERRIES 8
#define ITEMMENUACTION_WALK 9
#define ITEMMENUACTION_DESELECT 10
#define ITEMMENUACTION_DUMMY 11
#endif //GUARD_CONSTANTS_ITEM_MENU_H
+1 -1
View File
@@ -57,7 +57,7 @@ extern const struct SpriteFrameImage gUnknown_82346D8[];
extern const struct SpriteFrameImage gUnknown_82346F8[]; extern const struct SpriteFrameImage gUnknown_82346F8[];
extern const struct SpriteFrameImage gTrainerBackPicTable_Red[]; extern const struct SpriteFrameImage gTrainerBackPicTable_Red[];
extern const struct SpriteFrameImage gTrainerBackPicTable_Leaf[]; extern const struct SpriteFrameImage gTrainerBackPicTable_Leaf[];
extern const struct SpriteFrameImage gTrainerBackPicTable_PokeDude[]; extern const struct SpriteFrameImage gTrainerBackPicTable_Pokedude[];
extern const struct SpriteFrameImage gTrainerBackPicTable_OldMan[]; extern const struct SpriteFrameImage gTrainerBackPicTable_OldMan[];
extern const struct SpriteFrameImage gTrainerBackPicTable_RSBrendan[]; extern const struct SpriteFrameImage gTrainerBackPicTable_RSBrendan[];
extern const struct SpriteFrameImage gTrainerBackPicTable_RSMay[]; extern const struct SpriteFrameImage gTrainerBackPicTable_RSMay[];
+2
View File
@@ -1195,4 +1195,6 @@ extern const u8 Text_1A5D31[];
extern const u8 Text_1A5D6E[]; extern const u8 Text_1A5D6E[];
extern const u8 Text_1A5DB1[]; extern const u8 Text_1A5DB1[];
extern const u8 EventScript_BagItemCanBeRegistered[];
#endif //GUARD_EVENT_SCRIPTS_H #endif //GUARD_EVENT_SCRIPTS_H
+18
View File
@@ -0,0 +1,18 @@
#ifndef GUARD_GFLIB_H
#define GUARD_GFLIB_H
#include "global.h"
#include "bg.h"
#include "palette.h"
#include "gpu_regs.h"
#include "dma3.h"
#include "malloc.h"
#include "sound.h"
#include "text.h"
#include "sprite.h"
#include "window.h"
#include "blit.h"
#include "string_util.h"
#endif //GUARD_GFLIB_H
+9 -6
View File
@@ -1,7 +1,3 @@
//
// Created by scott on 10/21/2017.
//
#ifndef GUARD_GRAPHICS_H #ifndef GUARD_GRAPHICS_H
#define GUARD_GRAPHICS_H #define GUARD_GRAPHICS_H
@@ -2656,7 +2652,7 @@ extern const u32 gTrainerPalette_RSBrendan1[];
extern const u32 gTrainerPalette_RSMay1[]; extern const u32 gTrainerPalette_RSMay1[];
extern const u32 gTrainerPalette_LeafBackPic[]; extern const u32 gTrainerPalette_LeafBackPic[];
extern const u32 gTrainerPalette_RedBackPic[]; extern const u32 gTrainerPalette_RedBackPic[];
extern const u32 gTrainerPalette_PokeDudeBackPic[]; extern const u32 gTrainerPalette_PokedudeBackPic[];
extern const u32 gTrainerPalette_OldManBackPic[]; extern const u32 gTrainerPalette_OldManBackPic[];
extern const u32 gTrainerPalette_PokemonBreederM[]; extern const u32 gTrainerPalette_PokemonBreederM[];
extern const u32 gTrainerPalette_RSPokemonBreederF[]; extern const u32 gTrainerPalette_RSPokemonBreederF[];
@@ -4358,7 +4354,7 @@ extern const u8 gBerryPouchBg1Tilemap[];
extern const u8 gTrainerBackPic_Red[]; extern const u8 gTrainerBackPic_Red[];
extern const u8 gTrainerBackPic_Leaf[]; extern const u8 gTrainerBackPic_Leaf[];
extern const u8 gTrainerBackPic_PokeDude[]; extern const u8 gTrainerBackPic_Pokedude[];
extern const u8 gTrainerBackPic_OldMan[]; extern const u8 gTrainerBackPic_OldMan[];
extern const u8 gTrainerBackPic_RSBrendan[]; extern const u8 gTrainerBackPic_RSBrendan[];
extern const u8 gTrainerBackPic_RSMay[]; extern const u8 gTrainerBackPic_RSMay[];
@@ -4861,4 +4857,11 @@ extern const u16 gBattleInterface_BallStatusBarPal[];
extern const u16 gBattleInterface_BallDisplayPal[]; extern const u16 gBattleInterface_BallDisplayPal[];
extern const u16 gUnknown_8D12404[]; extern const u16 gUnknown_8D12404[];
// item_menu
extern const u32 gUnknown_8E830CC[];
extern const u32 gUnknown_8E832C0[];
extern const u32 gUnknown_8E83444[];
extern const u32 gBagBgPalette[];
extern const u32 gBagBgPalette_FemaleOverride[];
#endif //GUARD_GRAPHICS_H #endif //GUARD_GRAPHICS_H
+17 -16
View File
@@ -3,6 +3,7 @@
#include "global.h" #include "global.h"
#include "task.h" #include "task.h"
#include "constants/item_menu.h"
// Exported type declarations // Exported type declarations
@@ -10,15 +11,15 @@
struct BagStruct struct BagStruct
{ {
void (*bagCallback)(void); MainCallback bagCallback;
u8 location; u8 location;
u8 pocket; bool8 bagOpen;
u16 unk6; u16 pocket;
u8 cursorPosition[6]; u16 itemsAbove[3];
u8 scrollPosition[6]; u16 cursorPos[3];
}; };
extern struct BagStruct gUnknown_203ACFC; extern struct BagStruct gBagMenuState;
extern u16 gSpecialVar_ItemId; extern u16 gSpecialVar_ItemId;
@@ -26,19 +27,19 @@ extern u16 gSpecialVar_ItemId;
void sub_81AAC50(void); void sub_81AAC50(void);
void sub_81AAC70(void); void sub_81AAC70(void);
void CB2_SetUpReshowBattleScreenAfterMenu(void); void CB2_SetUpReshowBattleScreenAfterMenu(void);
void sub_81089BC(void); void ResetBagCursorPositions(void);
void sub_810B108(u8); void InitPokedudeBag(u8);
void CB2_BagMenuFromStartMenu(void); void CB2_BagMenuFromStartMenu(void);
void ItemMenu_MoveItemSlotToNewPositionInArray(struct ItemSlot * slots, int pos1, int pos2); void MoveItemSlotInList(struct ItemSlot * itemSlots_, u32 from, u32 to_);
void ItemMenu_StartFadeToExitCallback(u8 taskId); void ItemMenu_StartFadeToExitCallback(u8 taskId);
void sub_8108CB4(void); void Bag_BeginCloseWin0Animation(void);
void ItemMenu_SetExitCallback(void (*)(void)); void ItemMenu_SetExitCallback(void (*)(void));
void DisplayItemMessageInBag(u8 taskId, u8 bgId, const u8 * string, TaskFunc followUpFunc); void DisplayItemMessageInBag(u8 taskId, u8 fontId, const u8 * string, TaskFunc followUpFunc);
void sub_810A1F8(u8 taskId); void Task_ReturnToBagFromContextMenu(u8 taskId);
void sub_8107ECC(void); void CB2_BagMenuFromBattle(void);
void sub_810AF74(void); void InitOldManBag(void);
void sub_8108DC8(u8 pocketId); void Pocket_CalculateNItemsAndMaxShowed(u8 pocketId);
void sub_81089F4(u8 pocketId); void PocketCalculateInitialCursorPosAndItemsAbove(u8 pocketId);
void GoToBagMenu(u8 menuType, u8 pocket, MainCallback callback); void GoToBagMenu(u8 menuType, u8 pocket, MainCallback callback);
#endif //GUARD_ITEM_MENU_H #endif //GUARD_ITEM_MENU_H
+8 -10
View File
@@ -3,28 +3,26 @@
#include "global.h" #include "global.h"
extern void * gUnknown_2039884; extern const struct CompressedSpriteSheet gSpriteSheet_Backpack;
extern const struct CompressedSpriteSheet gSpriteSheet_Satchel;
extern const struct CompressedSpriteSheet gUnknown_83D41E4; extern const struct CompressedSpritePalette gSpritePalette_BagOrSatchel;
extern const struct CompressedSpriteSheet gUnknown_83D41EC;
extern const struct CompressedSpritePalette gUnknown_83D41F4;
extern const struct CompressedSpriteSheet gBagSwapSpriteSheet; extern const struct CompressedSpriteSheet gBagSwapSpriteSheet;
extern const struct CompressedSpritePalette gBagSwapSpritePalette; extern const struct CompressedSpritePalette gBagSwapSpritePalette;
void ResetItemMenuIconState(void); void ResetItemMenuIconState(void);
void sub_80985E4(void); void ItemMenuIcons_CreateInsertIndicatorBarHidden(void);
void DestroyItemMenuIcon(bool8 a0); void DestroyItemMenuIcon(bool8 a0);
void CreateItemMenuIcon(u16 itemId, bool8 a0); void CreateItemMenuIcon(u16 itemId, bool8 a0);
void CopyItemIconPicTo4x4Buffer(const void *src, void *dest); void CopyItemIconPicTo4x4Buffer(const void *src, void *dest);
u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId); u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId);
u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origTemplate, u16 tilesTag, u16 paletteTag, u16 itemId); u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origTemplate, u16 tilesTag, u16 paletteTag, u16 itemId);
void sub_80989A0(u16 itemId, u8 idx); void sub_80989A0(u16 itemId, u8 idx);
void sub_80986A8(s16 x, u16 y); void ItemMenuIcons_MoveInsertIndicatorBar(s16 x, u16 y);
void sub_8098660(u8); void ItemMenuIcons_ToggleInsertIndicatorBarVisibility(bool8 invisible);
void sub_8098528(u8); void sub_8098528(u8);
void sub_8098580(void); void sub_8098580(void);
const void * sub_8098974(u16 itemId, u8 ptrId); const void * GetItemIconGfxPtr(u16 itemId, u8 ptrId);
void sub_80984FC(u8 animNum); void CreateBagOrSatchelSprite(u8 animNum);
#endif // GUARD_ITEM_MENU_ICONS #endif // GUARD_ITEM_MENU_ICONS
+1
View File
@@ -4,5 +4,6 @@
#include "global.h" #include "global.h"
void CreateMapNamePopupIfNotAlreadyRunning(bool32 palIntoFadedBuffer); void CreateMapNamePopupIfNotAlreadyRunning(bool32 palIntoFadedBuffer);
void DismissMapNamePopup(void);
#endif //GUARD_MAP_NAME_POPUP_H #endif //GUARD_MAP_NAME_POPUP_H
+2 -2
View File
@@ -20,14 +20,14 @@ bool8 sub_80BF748(void);
bool8 MenuHelpers_LinkSomething(void); bool8 MenuHelpers_LinkSomething(void);
void SetVBlankHBlankCallbacksToNull(void); void SetVBlankHBlankCallbacksToNull(void);
void ResetAllBgsCoordinatesAndBgCntRegs(void); void ResetAllBgsCoordinatesAndBgCntRegs(void);
u8 sub_80BF8E4(void); u8 GetDialogBoxFontId(void);
bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1); bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1);
void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 tileNum, u8 paletteNum, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc); void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 tileNum, u8 paletteNum, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc);
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 fontId, u8 left, u8 top, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo); void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 fontId, u8 left, u8 top, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
u8 GetLRKeysState(void); u8 GetLRKeysState(void);
u8 GetLRKeysPressedAndHeld(void); u8 GetLRKeysPressedAndHeld(void);
bool8 itemid_link_can_give_berry(u16 itemId); bool8 itemid_link_can_give_berry(u16 itemId);
bool8 itemid_80BF6D8_mail_related(u16 itemId); bool8 CanWriteMailHere(u16 itemId);
void ResetVramOamAndBgCntRegs(void); void ResetVramOamAndBgCntRegs(void);
#endif //GUARD_MENU_HELPERS_H #endif //GUARD_MENU_HELPERS_H
+21 -3
View File
@@ -112,8 +112,8 @@ extern const u8 gText_OhNoICantBuyThat[];
extern const u8 gText_HowManyWouldYouLikeToSell[]; extern const u8 gText_HowManyWouldYouLikeToSell[];
extern const u8 gText_ICanPayThisMuch_WouldThatBeOkay[]; extern const u8 gText_ICanPayThisMuch_WouldThatBeOkay[];
extern const u8 gText_TurnedOverItemsWorthYen[]; extern const u8 gText_TurnedOverItemsWorthYen[];
extern const u8 gPokeDudeText_TMTypes[]; extern const u8 gPokedudeText_TMTypes[];
extern const u8 gPokeDudeText_ReadTMDescription[]; extern const u8 gPokedudeText_ReadTMDescription[];
extern const u8 gFameCheckerText_Cancel[]; extern const u8 gFameCheckerText_Cancel[];
extern const u8 gFameCheckerText_ListMenuCursor[]; extern const u8 gFameCheckerText_ListMenuCursor[];
extern const u8 gFameCheckerText_FameCheckerWillBeClosed[]; extern const u8 gFameCheckerText_FameCheckerWillBeClosed[];
@@ -134,7 +134,7 @@ extern const u8 gTeachyTvString_CatchPkmn[];
extern const u8 gTeachyTvString_AboutTMs[]; extern const u8 gTeachyTvString_AboutTMs[];
extern const u8 gTeachyTvString_RegisterItem[]; extern const u8 gTeachyTvString_RegisterItem[];
extern const u8 gTeachyTvString_Cancel[]; extern const u8 gTeachyTvString_Cancel[];
extern const u8 gTeachyTvText_PokeDudeSaysHello[]; extern const u8 gTeachyTvText_PokedudeSaysHello[];
extern const u8 gTeachyTvText_BattleScript1[]; extern const u8 gTeachyTvText_BattleScript1[];
extern const u8 gTeachyTvText_StatusScript1[]; extern const u8 gTeachyTvText_StatusScript1[];
extern const u8 gTeachyTvText_MatchupsScript1[]; extern const u8 gTeachyTvText_MatchupsScript1[];
@@ -1038,4 +1038,22 @@ extern const u8 gText_SaveFailedScreen_CheckingBackupMemory[];
extern const u8 gText_SaveFailedScreen_BackupMemoryDamaged[]; extern const u8 gText_SaveFailedScreen_BackupMemoryDamaged[];
extern const u8 gText_SaveFailedScreen_SaveCompleted[]; extern const u8 gText_SaveFailedScreen_SaveCompleted[];
// bag
extern const u8 gText_DepositItem[];
// item_menu
extern const u8 gOtherText_Register[];
extern const u8 gOtherText_Walk[];
extern const u8 gOtherText_Check[];
extern const u8 gOtherText_Open[];
extern const u8 gOtherText_Deselect[];
extern const u8 gText_Items2[];
extern const u8 gText_PokeBalls2[];
extern const u8 gText_KeyItems2[];
extern const u8 gText_CloseBag[];
extern const u8 gText_CantWriteMailHere[];
extern const u8 gText_DepositHowManyStrVars1[];
extern const u8 gText_DepositedStrVar2StrVar1s[];
extern const u8 gText_NoRoomToStoreItems[];
#endif //GUARD_STRINGS_H #endif //GUARD_STRINGS_H
+10
View File
@@ -1,6 +1,16 @@
#ifndef GUARD_TEACHY_TV_H #ifndef GUARD_TEACHY_TV_H
#define GUARD_TEACHY_TV_H #define GUARD_TEACHY_TV_H
enum TeachyTvScript
{
TTVSCR_BATTLE,
TTVSCR_STATUS,
TTVSCR_MATCHUPS,
TTVSCR_CATCHING,
TTVSCR_TMS,
TTVSCR_REGISTER
};
void InitTeachyTvController(u8 mode, void (*cb)()); void InitTeachyTvController(u8 mode, void (*cb)());
void CB2_ReturnToTeachyTV(void); void CB2_ReturnToTeachyTV(void);
void SetTeachyTvControllerModeToResume(void); void SetTeachyTvControllerModeToResume(void);
+11 -1
View File
@@ -1,8 +1,18 @@
#ifndef GUARD_TM_CASE_H #ifndef GUARD_TM_CASE_H
#define GUARD_TM_CASE_H #define GUARD_TM_CASE_H
enum TmCaseType
{
TMCASE_FROMFIELD,
TMCASE_FROMPARTYGIVE,
TMCASE_FROMMARTSELL,
TMCASE_FROMPOKEMONSTORAGEPC,
TMCASE_FROMBATTLE,
TMCASE_NA
};
void InitTMCase(u8 a0, void (* a1)(void), u8 a2); void InitTMCase(u8 a0, void (* a1)(void), u8 a2);
void ResetTMCaseCursorPos(void); void ResetTMCaseCursorPos(void);
void PokeDude_InitTMCase(void); void Pokedude_InitTMCase(void);
#endif //GUARD_TM_CASE_H #endif //GUARD_TM_CASE_H
+2 -2
View File
@@ -232,7 +232,7 @@ SECTIONS {
src/pokedex_screen.o(.text); src/pokedex_screen.o(.text);
asm/pokedex_screen.o(.text); asm/pokedex_screen.o(.text);
src/list_menu.o(.text); src/list_menu.o(.text);
asm/item_menu.o(.text); src/item_menu.o(.text);
src/save_location.o(.text); src/save_location.o(.text);
src/bag.o(.text); src/bag.o(.text);
src/trainer_pokemon_sprites.o(.text); src/trainer_pokemon_sprites.o(.text);
@@ -517,7 +517,7 @@ SECTIONS {
src/pokedex_screen.o(.rodata); src/pokedex_screen.o(.rodata);
data/pokedex_screen.o(.rodata); data/pokedex_screen.o(.rodata);
src/list_menu.o(.rodata); src/list_menu.o(.rodata);
data/item_menu.o(.rodata); src/item_menu.o(.rodata);
src/save_location.o(.rodata); src/save_location.o(.rodata);
src/bag.o(.rodata); src/bag.o(.rodata);
src/trainer_pokemon_sprites.o(.rodata); src/trainer_pokemon_sprites.o(.rodata);
+141 -147
View File
@@ -10,17 +10,18 @@
#include "menu.h" #include "menu.h"
#include "money.h" #include "money.h"
#include "bag.h" #include "bag.h"
#include "strings.h"
extern const u8 gText_DepositItem[]; static const u16 sBagWindowPalF[] = INCBIN_U16("data/bag/bag_window_pal.gbapal");
const u16 gUnknown_8453098[] = INCBIN_U16("data/bag/bag_window_pal.gbapal"); static const u8 sTextColors[][3] = {
const u8 gUnknown_84530B8[][3] = {
{0, 1, 2}, {0, 1, 2},
{0, 2, 3}, {0, 2, 3},
{0, 3, 2}, {0, 3, 2},
{0, 8, 9} {0, 8, 9}
}; };
const struct WindowTemplate gUnknown_84530C4[] = {
static const struct WindowTemplate sDefaultBagWindowsStd[] = {
{ {
.bg = 0, .bg = 0,
.tilemapLeft = 0x0b, .tilemapLeft = 0x0b,
@@ -47,7 +48,8 @@ const struct WindowTemplate gUnknown_84530C4[] = {
.baseBlock = 0x01f8 .baseBlock = 0x01f8
}, DUMMY_WIN_TEMPLATE }, DUMMY_WIN_TEMPLATE
}; };
const struct WindowTemplate gUnknown_84530E4[] = {
static const struct WindowTemplate sDefaultBagWindowsDeposit[] = {
{ {
.bg = 0, .bg = 0,
.tilemapLeft = 0x0b, .tilemapLeft = 0x0b,
@@ -74,7 +76,8 @@ const struct WindowTemplate gUnknown_84530E4[] = {
.baseBlock = 0x01f8 .baseBlock = 0x01f8
}, DUMMY_WIN_TEMPLATE }, DUMMY_WIN_TEMPLATE
}; };
const struct WindowTemplate gUnknown_8453104[] = {
static const struct WindowTemplate sWindowTemplates[] = {
{ {
.bg = 0, .bg = 0,
.tilemapLeft = 24, .tilemapLeft = 24,
@@ -99,122 +102,114 @@ const struct WindowTemplate gUnknown_8453104[] = {
.height = 3, .height = 3,
.paletteNum = 0xC, .paletteNum = 0xC,
.baseBlock = 0x272 .baseBlock = 0x272
}, {
.bg = 0,
.tilemapLeft = 23,
.tilemapTop = 15,
.width = 6,
.height = 4,
.paletteNum = 0xF,
.baseBlock = 0x28a
}, {
.bg = 0,
.tilemapLeft = 21,
.tilemapTop = 9,
.width = 6,
.height = 4,
.paletteNum = 0xF,
.baseBlock = 0x28a
}, {
.bg = 0,
.tilemapLeft = 2,
.tilemapTop = 15,
.width = 26,
.height = 4,
.paletteNum = 0xF,
.baseBlock = 0x2a2
}, {
.bg = 0,
.tilemapLeft = 6,
.tilemapTop = 15,
.width = 14,
.height = 4,
.paletteNum = 0xC,
.baseBlock = 0x2a2
}, {
.bg = 0,
.tilemapLeft = 6,
.tilemapTop = 15,
.width = 15,
.height = 4,
.paletteNum = 0xC,
.baseBlock = 0x2da
}, {
.bg = 0,
.tilemapLeft = 6,
.tilemapTop = 15,
.width = 16,
.height = 4,
.paletteNum = 0xC,
.baseBlock = 0x316
}, {
.bg = 0,
.tilemapLeft = 6,
.tilemapTop = 15,
.width = 23,
.height = 4,
.paletteNum = 0xC,
.baseBlock = 0x356
}, {
.bg = 0,
.tilemapLeft = 22,
.tilemapTop = 17,
.width = 7,
.height = 2,
.paletteNum = 0xF,
.baseBlock = 0x20a
}, {
.bg = 0,
.tilemapLeft = 22,
.tilemapTop = 15,
.width = 7,
.height = 4,
.paletteNum = 0xF,
.baseBlock = 0x20a
}, {
.bg = 0,
.tilemapLeft = 22,
.tilemapTop = 13,
.width = 7,
.height = 6,
.paletteNum = 0xF,
.baseBlock = 0x20a
}, {
.bg = 0,
.tilemapLeft = 22,
.tilemapTop = 11,
.width = 7,
.height = 8,
.paletteNum = 0xF,
.baseBlock = 0x20a
} }
}; };
const struct WindowTemplate gUnknown_845311C = { static const u8 sUnused_8453174[] = {16, 8, 4};
.bg = 0,
.tilemapLeft = 23,
.tilemapTop = 15,
.width = 6,
.height = 4,
.paletteNum = 0xF,
.baseBlock = 0x28a
};
const struct WindowTemplate gUnknown_8453124 = { static EWRAM_DATA u8 sOpenWindows[11] = {};
.bg = 0,
.tilemapLeft = 21,
.tilemapTop = 9,
.width = 6,
.height = 4,
.paletteNum = 0xF,
.baseBlock = 0x28a
};
const struct WindowTemplate gUnknown_845312C[] = { void InitBagWindows(void)
{
.bg = 0x00,
.tilemapLeft = 0x02,
.tilemapTop = 0x0f,
.width = 0x1a,
.height = 0x04,
.paletteNum = 0x0f,
.baseBlock = 0x02a2
}, {
.bg = 0x00,
.tilemapLeft = 0x06,
.tilemapTop = 0x0f,
.width = 0x0e,
.height = 0x04,
.paletteNum = 0x0c,
.baseBlock = 0x02a2
}, {
.bg = 0x00,
.tilemapLeft = 0x06,
.tilemapTop = 0x0f,
.width = 0x0f,
.height = 0x04,
.paletteNum = 0x0c,
.baseBlock = 0x02da
}, {
.bg = 0x00,
.tilemapLeft = 0x06,
.tilemapTop = 0x0f,
.width = 0x10,
.height = 0x04,
.paletteNum = 0x0c,
.baseBlock = 0x0316
}, {
.bg = 0x00,
.tilemapLeft = 0x06,
.tilemapTop = 0x0f,
.width = 0x17,
.height = 0x04,
.paletteNum = 0x0c,
.baseBlock = 0x0356
}, {
.bg = 0x00,
.tilemapLeft = 0x16,
.tilemapTop = 0x11,
.width = 0x07,
.height = 0x02,
.paletteNum = 0x0f,
.baseBlock = 0x020a
}, {
.bg = 0x00,
.tilemapLeft = 0x16,
.tilemapTop = 0x0f,
.width = 0x07,
.height = 0x04,
.paletteNum = 0x0f,
.baseBlock = 0x020a
}, {
.bg = 0x00,
.tilemapLeft = 0x16,
.tilemapTop = 0x0d,
.width = 0x07,
.height = 0x06,
.paletteNum = 0x0f,
.baseBlock = 0x020a
}, {
.bg = 0x00,
.tilemapLeft = 0x16,
.tilemapTop = 0x0b,
.width = 0x07,
.height = 0x08,
.paletteNum = 0x0f,
.baseBlock = 0x020a
}
};
const u8 gUnknown_8453174[] = {16, 8, 4};
EWRAM_DATA u8 gUnknown_203AD34[11] = {};
void sub_810B858(void)
{ {
u8 i; u8 i;
if (gUnknown_203ACFC.location != 3) if (gBagMenuState.location != 3)
InitWindows(gUnknown_84530C4); InitWindows(sDefaultBagWindowsStd);
else else
InitWindows(gUnknown_84530E4); InitWindows(sDefaultBagWindowsDeposit);
DeactivateAllTextPrinters(); DeactivateAllTextPrinters();
TextWindow_SetUserSelectedFrame(0, 0x64, 0xE0); TextWindow_SetUserSelectedFrame(0, 0x64, 0xE0);
TextWindow_LoadResourcesStdFrame0(0, 0x6D, 0xD0); TextWindow_LoadResourcesStdFrame0(0, 0x6D, 0xD0);
TextWindow_SetStdFrame0_WithPal(0, 0x81, 0xC0); TextWindow_SetStdFrame0_WithPal(0, 0x81, 0xC0);
LoadPalette(gUnknown_8453098, 0xF0, 0x20); LoadPalette(sBagWindowPalF, 0xF0, 0x20);
for (i = 0; i < 3; i++) for (i = 0; i < 3; i++)
{ {
FillWindowPixelBuffer(i, 0x00); FillWindowPixelBuffer(i, 0x00);
@@ -223,22 +218,22 @@ void sub_810B858(void)
ScheduleBgCopyTilemapToVram(0); ScheduleBgCopyTilemapToVram(0);
for (i = 0; i < 11; i++) for (i = 0; i < 11; i++)
{ {
gUnknown_203AD34[i] = 0xFF; sOpenWindows[i] = 0xFF;
} }
} }
void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 colorIdx) void BagPrintTextOnWindow(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx)
{ {
AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, gUnknown_84530B8[colorIdx], speed, str); AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, sTextColors[colorIdx], speed, str);
} }
void sub_810B958(const u8 * str) void BagPrintTextOnWin1CenteredColor0(const u8 * str, u8 unused)
{ {
u32 x = 0x48 - GetStringWidth(1, str, 0); u32 x = 0x48 - GetStringWidth(1, str, 0);
AddTextPrinterParameterized3(2, 1, x / 2, 1, gUnknown_84530B8[0], 0, str); AddTextPrinterParameterized3(2, 1, x / 2, 1, sTextColors[0], 0, str);
} }
void sub_810B994(void) void BagDrawDepositItemTextBox(void)
{ {
u32 x; u32 x;
DrawStdFrameWithCustomTileAndPalette(2, FALSE, 0x081, 0x0C); DrawStdFrameWithCustomTileAndPalette(2, FALSE, 0x081, 0x0C);
@@ -246,77 +241,76 @@ void sub_810B994(void)
AddTextPrinterParameterized(2, 0, gText_DepositItem, x / 2, 1, 0, NULL); AddTextPrinterParameterized(2, 0, gText_DepositItem, x / 2, 1, 0, NULL);
} }
u8 sub_810B9DC(u8 a0, u8 a1) u8 ShowBagWindow(u8 whichWindow, u8 nItems)
{ {
if (gUnknown_203AD34[a0] == 0xFF) if (sOpenWindows[whichWindow] == 0xFF)
{ {
gUnknown_203AD34[a0] = AddWindow(&gUnknown_8453104[a0 + a1]); sOpenWindows[whichWindow] = AddWindow(&sWindowTemplates[whichWindow + nItems]);
if (a0 != 6) if (whichWindow != 6)
{ {
DrawStdFrameWithCustomTileAndPalette(gUnknown_203AD34[a0], FALSE, 0x064, 0x0E); DrawStdFrameWithCustomTileAndPalette(sOpenWindows[whichWindow], FALSE, 0x064, 0xE);
} }
else else
{ {
DrawStdFrameWithCustomTileAndPalette(gUnknown_203AD34[a0], FALSE, 0x081, 0x0C); DrawStdFrameWithCustomTileAndPalette(sOpenWindows[whichWindow], FALSE, 0x081, 0xC);
} }
ScheduleBgCopyTilemapToVram(0); ScheduleBgCopyTilemapToVram(0);
} }
return gUnknown_203AD34[a0]; return sOpenWindows[whichWindow];
} }
void sub_810BA3C(u8 a0) void HideBagWindow(u8 whichWindow)
{ {
ClearStdWindowAndFrameToTransparent(gUnknown_203AD34[a0], FALSE); ClearStdWindowAndFrameToTransparent(sOpenWindows[whichWindow], FALSE);
ClearWindowTilemap(gUnknown_203AD34[a0]); ClearWindowTilemap(sOpenWindows[whichWindow]);
RemoveWindow(gUnknown_203AD34[a0]); RemoveWindow(sOpenWindows[whichWindow]);
ScheduleBgCopyTilemapToVram(0); ScheduleBgCopyTilemapToVram(0);
gUnknown_203AD34[a0] = 0xFF; sOpenWindows[whichWindow] = 0xFF;
} }
u8 sub_810BA70(u8 a0) u8 OpenBagWindow(u8 whichWindow)
{ {
if (gUnknown_203AD34[a0] == 0xFF) if (sOpenWindows[whichWindow] == 0xFF)
{ {
gUnknown_203AD34[a0] = AddWindow(&gUnknown_8453104[a0]); sOpenWindows[whichWindow] = AddWindow(&sWindowTemplates[whichWindow]);
} }
return gUnknown_203AD34[a0]; return sOpenWindows[whichWindow];
} }
void sub_810BA9C(u8 a0) void CloseBagWindow(u8 whichWindow)
{ {
if (gUnknown_203AD34[a0] != 0xFF) if (sOpenWindows[whichWindow] != 0xFF)
{ {
ClearDialogWindowAndFrameToTransparent(gUnknown_203AD34[a0], FALSE); ClearDialogWindowAndFrameToTransparent(sOpenWindows[whichWindow], FALSE);
ClearWindowTilemap(gUnknown_203AD34[a0]); ClearWindowTilemap(sOpenWindows[whichWindow]);
RemoveWindow(gUnknown_203AD34[a0]); RemoveWindow(sOpenWindows[whichWindow]);
PutWindowTilemap(1); PutWindowTilemap(1);
ScheduleBgCopyTilemapToVram(0); ScheduleBgCopyTilemapToVram(0);
gUnknown_203AD34[a0] = 0xFF; sOpenWindows[whichWindow] = 0xFF;
} }
} }
u8 sub_810BAD8(u8 a0) u8 GetBagWindow(u8 whichWindow)
{ {
return gUnknown_203AD34[a0]; return sOpenWindows[whichWindow];
} }
void sub_810BAE8(u8 taskId, const struct YesNoFuncTable * ptrs) void BagCreateYesNoMenuBottomRight(u8 taskId, const struct YesNoFuncTable * ptrs)
{ {
CreateYesNoMenuWithCallbacks(taskId, &gUnknown_845311C, 2, 0, 2, 0x64, 0x0E, ptrs); CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates[3], 2, 0, 2, 0x064, 0x0E, ptrs);
} }
void sub_810BB14(u8 taskId, const struct YesNoFuncTable * ptrs) void BagCreateYesNoMenuTopRight(u8 taskId, const struct YesNoFuncTable * ptrs)
{ {
CreateYesNoMenuWithCallbacks(taskId, &gUnknown_8453124, 2, 0, 2, 0x064, 0x0E, ptrs); CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates[4], 2, 0, 2, 0x064, 0x0E, ptrs);
} }
void sub_810BB40(void) void BagPrintMoneyAmount(void)
{ {
PrintMoneyAmountInMoneyBoxWithBorder(sub_810B9DC(2, 0), 0x081, 0x0C, GetMoney(&gSaveBlock1Ptr->money)); PrintMoneyAmountInMoneyBoxWithBorder(ShowBagWindow(2, 0), 0x081, 0x0C, GetMoney(&gSaveBlock1Ptr->money));
} }
void sub_810BB74(u8 windowId) void BagDrawTextBoxOnWindow(u8 windowId)
{ {
DrawTextBorderOuter(windowId, 0x064, 0x0E); DrawTextBorderOuter(windowId, 0x064, 0x0E);
} }
+2 -2
View File
@@ -379,9 +379,9 @@ static void OpenBagAndChooseItem(void)
nullsub_44(); nullsub_44();
FreeAllWindowBuffers(); FreeAllWindowBuffers();
if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
sub_8107ECC(); CB2_BagMenuFromBattle();
else else
sub_810AF74(); InitOldManBag();
} }
} }
+1 -1
View File
@@ -1330,7 +1330,7 @@ static void OpenBagAndChooseItem(void)
gBattlerControllerFuncs[gActiveBattler] = CompleteWhenChoseItem; gBattlerControllerFuncs[gActiveBattler] = CompleteWhenChoseItem;
nullsub_44(); nullsub_44();
FreeAllWindowBuffers(); FreeAllWindowBuffers();
sub_8107ECC(); CB2_BagMenuFromBattle();
} }
} }
+6 -5
View File
@@ -23,6 +23,7 @@
#include "battle_interface.h" #include "battle_interface.h"
#include "battle_message.h" #include "battle_message.h"
#include "reshow_battle_screen.h" #include "reshow_battle_screen.h"
#include "teachy_tv.h"
#include "constants/songs.h" #include "constants/songs.h"
#include "constants/items.h" #include "constants/items.h"
#include "constants/moves.h" #include "constants/moves.h"
@@ -733,15 +734,15 @@ static void OpenBagAndChooseItem(void)
FreeAllWindowBuffers(); FreeAllWindowBuffers();
switch (gSpecialVar_0x8004) switch (gSpecialVar_0x8004)
{ {
case 1: case TTVSCR_STATUS:
default: default:
callbackId = 7; callbackId = ITEMMENULOCATION_TTVSCR_STATUS;
break; break;
case 3: case TTVSCR_CATCHING:
callbackId = 8; callbackId = ITEMMENULOCATION_TTVSCR_CATCHING;
break; break;
} }
sub_810B108(callbackId); InitPokedudeBag(callbackId);
} }
} }
+3 -3
View File
@@ -86,7 +86,7 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum);
static void CB2_HandleStartBattle(void); static void CB2_HandleStartBattle(void);
static void TryCorrectShedinjaLanguage(struct Pokemon *mon); static void TryCorrectShedinjaLanguage(struct Pokemon *mon);
static void BattleMainCB1(void); static void BattleMainCB1(void);
static void CB2_QuitPokeDudeBattle(void); static void CB2_QuitPokedudeBattle(void);
static void sub_80111FC(struct Sprite *sprite); static void sub_80111FC(struct Sprite *sprite);
static void sub_8011B94(void); static void sub_8011B94(void);
static void sub_8011BB0(void); static void sub_8011BB0(void);
@@ -1438,7 +1438,7 @@ void BattleMainCB2(void)
gSpecialVar_Result = gBattleOutcome = B_OUTCOME_DREW; gSpecialVar_Result = gBattleOutcome = B_OUTCOME_DREW;
ResetPaletteFadeControl(); ResetPaletteFadeControl();
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
SetMainCallback2(CB2_QuitPokeDudeBattle); SetMainCallback2(CB2_QuitPokedudeBattle);
} }
} }
@@ -1454,7 +1454,7 @@ void FreeRestoreBattleData(void)
FreeBattleResources(); FreeBattleResources();
} }
static void CB2_QuitPokeDudeBattle(void) static void CB2_QuitPokedudeBattle(void)
{ {
UpdatePaletteFade(); UpdatePaletteFade();
if (!gPaletteFade.active) if (!gPaletteFade.active)
+2 -2
View File
@@ -463,7 +463,7 @@ const u8 *const gPokeblockWasTooXStringTable[] = {
static const u8 sText_PlayerUsedItem[] = _("{B_PLAYER_NAME} used\n{B_LAST_ITEM}!"); static const u8 sText_PlayerUsedItem[] = _("{B_PLAYER_NAME} used\n{B_LAST_ITEM}!");
static const u8 sText_OldManUsedItem[] = _("The old man used\n{B_LAST_ITEM}!"); static const u8 sText_OldManUsedItem[] = _("The old man used\n{B_LAST_ITEM}!");
static const u8 sText_PokeDudeUsedItem[] = _("The POKé DUDE used\n{B_LAST_ITEM}!"); static const u8 sText_PokedudeUsedItem[] = _("The POKé DUDE used\n{B_LAST_ITEM}!");
static const u8 sText_Trainer1UsedItem[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nused {B_LAST_ITEM}!"); static const u8 sText_Trainer1UsedItem[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nused {B_LAST_ITEM}!");
static const u8 sText_TrainerBlockedBall[] = _("The TRAINER blocked the BALL!"); static const u8 sText_TrainerBlockedBall[] = _("The TRAINER blocked the BALL!");
static const u8 sText_DontBeAThief[] = _("Don't be a thief!"); static const u8 sText_DontBeAThief[] = _("Don't be a thief!");
@@ -876,7 +876,7 @@ const u8 *const gBattleStringsTable[] = {
Text_1A5D31, Text_1A5D31,
Text_1A5D6E, Text_1A5D6E,
Text_1A5DB1, Text_1A5DB1,
sText_PokeDudeUsedItem, sText_PokedudeUsedItem,
gUnknown_83FDA4D, gUnknown_83FDA4D,
gUnknown_83FDA7A, gUnknown_83FDA7A,
gUnknown_83FDA8C, gUnknown_83FDA8C,
+3 -3
View File
@@ -1269,7 +1269,7 @@ static void Task_ContextMenu_Sell(u8 taskId)
{ {
CopyItemName(gSpecialVar_ItemId, gStringVar1); CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat); StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat);
DisplayItemMessageInBerryPouch(taskId, sub_80BF8E4(), gStringVar4, Task_BerryPouch_DestroyDialogueWindowAndRefreshListMenu); DisplayItemMessageInBerryPouch(taskId, GetDialogBoxFontId(), gStringVar4, Task_BerryPouch_DestroyDialogueWindowAndRefreshListMenu);
} }
else else
{ {
@@ -1285,7 +1285,7 @@ static void Task_ContextMenu_Sell(u8 taskId)
data[2] = 99; data[2] = 99;
CopyItemName(gSpecialVar_ItemId, gStringVar1); CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell); StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell);
DisplayItemMessageInBerryPouch(taskId, sub_80BF8E4(), gStringVar4, Task_Sell_PrintSelectMultipleUI); DisplayItemMessageInBerryPouch(taskId, GetDialogBoxFontId(), gStringVar4, Task_Sell_PrintSelectMultipleUI);
} }
} }
} }
@@ -1295,7 +1295,7 @@ static void Task_AskSellMultiple(u8 taskId)
s16 * data = gTasks[taskId].data; s16 * data = gTasks[taskId].data;
ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6); ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay); StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay);
DisplayItemMessageInBerryPouch(taskId, sub_80BF8E4(), gStringVar4, Task_SellMultiple_CreateYesNoMenu); DisplayItemMessageInBerryPouch(taskId, GetDialogBoxFontId(), gStringVar4, Task_SellMultiple_CreateYesNoMenu);
} }
static void Task_SellMultiple_CreateYesNoMenu(u8 taskId) static void Task_SellMultiple_CreateYesNoMenu(u8 taskId)
+5 -5
View File
@@ -60,12 +60,12 @@ const struct SpriteFrameImage gTrainerBackPicTable_Leaf[] =
gTrainerBackPic_Leaf + 0x2000, 0x0800, gTrainerBackPic_Leaf + 0x2000, 0x0800,
}; };
const struct SpriteFrameImage gTrainerBackPicTable_PokeDude[] = const struct SpriteFrameImage gTrainerBackPicTable_Pokedude[] =
{ {
gTrainerBackPic_PokeDude, 0x0800, gTrainerBackPic_Pokedude, 0x0800,
gTrainerBackPic_PokeDude + 0x0800, 0x0800, gTrainerBackPic_Pokedude + 0x0800, 0x0800,
gTrainerBackPic_PokeDude + 0x1000, 0x0800, gTrainerBackPic_Pokedude + 0x1000, 0x0800,
gTrainerBackPic_PokeDude + 0x1800, 0x0800, gTrainerBackPic_Pokedude + 0x1800, 0x0800,
}; };
const struct SpriteFrameImage gTrainerBackPicTable_OldMan[] = const struct SpriteFrameImage gTrainerBackPicTable_OldMan[] =
+4 -4
View File
@@ -16,7 +16,7 @@ static const union AnimCmd sAnimCmd_Leaf_1[] = {
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd sAnimCmd_PokeDude_1[] = { static const union AnimCmd sAnimCmd_Pokedude_1[] = {
ANIMCMD_FRAME(1, 24), ANIMCMD_FRAME(1, 24),
ANIMCMD_FRAME(2, 9), ANIMCMD_FRAME(2, 9),
ANIMCMD_FRAME(3, 24), ANIMCMD_FRAME(3, 24),
@@ -60,9 +60,9 @@ const union AnimCmd *const sBackAnims_Leaf[] = {
sAnimCmd_Leaf_1 sAnimCmd_Leaf_1
}; };
const union AnimCmd *const sBackAnims_PokeDude[] = { const union AnimCmd *const sBackAnims_Pokedude[] = {
sAnim_GeneralFrame0, sAnim_GeneralFrame0,
sAnimCmd_PokeDude_1 sAnimCmd_Pokedude_1
}; };
const union AnimCmd *const sBackAnims_OldMan[] = { const union AnimCmd *const sBackAnims_OldMan[] = {
@@ -85,6 +85,6 @@ const union AnimCmd *const *const gTrainerBackAnimsPtrTable[] = {
sBackAnims_Leaf, sBackAnims_Leaf,
sBackAnims_RSBrendan, sBackAnims_RSBrendan,
sBackAnims_RSMay, sBackAnims_RSMay,
sBackAnims_PokeDude, sBackAnims_Pokedude,
sBackAnims_OldMan sBackAnims_OldMan
}; };
+2 -2
View File
@@ -12,7 +12,7 @@ const struct CompressedSpriteSheet gTrainerBackPicTable[] = {
{ (const u32 *)gTrainerBackPic_Leaf, 0x2800, 1 }, { (const u32 *)gTrainerBackPic_Leaf, 0x2800, 1 },
{ (const u32 *)gTrainerBackPic_RSBrendan, 0x2000, 2 }, { (const u32 *)gTrainerBackPic_RSBrendan, 0x2000, 2 },
{ (const u32 *)gTrainerBackPic_RSMay, 0x2000, 3 }, { (const u32 *)gTrainerBackPic_RSMay, 0x2000, 3 },
{ (const u32 *)gTrainerBackPic_PokeDude, 0x2000, 4 }, { (const u32 *)gTrainerBackPic_Pokedude, 0x2000, 4 },
{ (const u32 *)gTrainerBackPic_OldMan, 0x2000, 5 } { (const u32 *)gTrainerBackPic_OldMan, 0x2000, 5 }
}; };
@@ -21,6 +21,6 @@ const struct CompressedSpritePalette gTrainerBackPicPaletteTable[] = {
{ gTrainerPalette_LeafBackPic, 1 }, { gTrainerPalette_LeafBackPic, 1 },
{ gTrainerPalette_RSBrendan1, 2 }, { gTrainerPalette_RSBrendan1, 2 },
{ gTrainerPalette_RSMay1, 3 }, { gTrainerPalette_RSMay1, 3 },
{ gTrainerPalette_PokeDudeBackPic, 4 }, { gTrainerPalette_PokedudeBackPic, 4 },
{ gTrainerPalette_OldManBackPic, 5 } { gTrainerPalette_OldManBackPic, 5 }
}; };
View File
+2400
View File
File diff suppressed because it is too large Load Diff
+76 -72
View File
@@ -5,14 +5,14 @@
#include "malloc.h" #include "malloc.h"
#include "constants/items.h" #include "constants/items.h"
static EWRAM_DATA u8 gUnknown_2039878[12] = {0}; static EWRAM_DATA u8 sItemMenuIconSpriteIds[12] = {0};
EWRAM_DATA void * gUnknown_2039884 = NULL; static EWRAM_DATA void * sItemIconTilesBuffer = NULL;
static EWRAM_DATA void * gUnknown_2039888 = NULL; static EWRAM_DATA void * sItemIconTilesBufferPadded = NULL;
static void sub_8098560(struct Sprite * sprite); static void sub_8098560(struct Sprite * sprite);
static void sub_80985BC(struct Sprite * sprite); static void sub_80985BC(struct Sprite * sprite);
static const struct OamData gUnknown_83D416C = { static const struct OamData sOamData_BagOrSatchel = {
.affineMode = ST_OAM_AFFINE_NORMAL, .affineMode = ST_OAM_AFFINE_NORMAL,
.shape = ST_OAM_SQUARE, .shape = ST_OAM_SQUARE,
.size = 3, .size = 3,
@@ -20,36 +20,36 @@ static const struct OamData gUnknown_83D416C = {
.paletteNum = 0 .paletteNum = 0
}; };
static const union AnimCmd gUnknown_83D4174[] = { static const union AnimCmd sAnim_BagOrSatchel_OpenItemPocket[] = {
ANIMCMD_FRAME( 0, 5), ANIMCMD_FRAME( 0, 5),
ANIMCMD_FRAME(0x40, 0), ANIMCMD_FRAME(0x40, 0),
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd gUnknown_83D4180[] = { static const union AnimCmd sAnim_BagOrSatchel_OpenKeyItemPocket[] = {
ANIMCMD_FRAME( 0, 5), ANIMCMD_FRAME( 0, 5),
ANIMCMD_FRAME(0x80, 0), ANIMCMD_FRAME(0x80, 0),
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd gUnknown_83D418C[] = { static const union AnimCmd sAnim_BagOrSatchel_OpenPokeBallsPocket[] = {
ANIMCMD_FRAME( 0, 5), ANIMCMD_FRAME( 0, 5),
ANIMCMD_FRAME(0xc0, 0), ANIMCMD_FRAME(0xc0, 0),
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd *const gUnknown_83D4198[] = { static const union AnimCmd *const sAnimTable_BagOrSatchel[] = {
gUnknown_83D4180, sAnim_BagOrSatchel_OpenKeyItemPocket,
gUnknown_83D418C, sAnim_BagOrSatchel_OpenPokeBallsPocket,
gUnknown_83D4174 sAnim_BagOrSatchel_OpenItemPocket
}; };
static const union AffineAnimCmd gUnknown_83D41A4[] = { static const union AffineAnimCmd sAffineAnim_Idle[] = {
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
AFFINEANIMCMD_END AFFINEANIMCMD_END
}; };
static const union AffineAnimCmd gUnknown_83D41B4[] = { static const union AffineAnimCmd sAffineAnim_Wobble[] = {
AFFINEANIMCMD_FRAME(0, 0, -2, 2), AFFINEANIMCMD_FRAME(0, 0, -2, 2),
AFFINEANIMCMD_FRAME(0, 0, 2, 4), AFFINEANIMCMD_FRAME(0, 0, 2, 4),
AFFINEANIMCMD_FRAME(0, 0, -2, 4), AFFINEANIMCMD_FRAME(0, 0, -2, 4),
@@ -57,35 +57,35 @@ static const union AffineAnimCmd gUnknown_83D41B4[] = {
AFFINEANIMCMD_END AFFINEANIMCMD_END
}; };
static const union AffineAnimCmd *const gUnknown_83D41DC[] = { static const union AffineAnimCmd *const sAffineAnimTable_BagOrSatchel[] = {
gUnknown_83D41A4, sAffineAnim_Idle,
gUnknown_83D41B4 sAffineAnim_Wobble
}; };
const struct CompressedSpriteSheet gUnknown_83D41E4 = { const struct CompressedSpriteSheet gSpriteSheet_Backpack = {
gUnknown_8E8362C, gUnknown_8E8362C,
0x2000, 0x2000,
100 100
}; };
const struct CompressedSpriteSheet gUnknown_83D41EC = { const struct CompressedSpriteSheet gSpriteSheet_Satchel = {
gUnknown_8E83DBC, gUnknown_8E83DBC,
0x2000, 0x2000,
100 100
}; };
const struct CompressedSpritePalette gUnknown_83D41F4 = { const struct CompressedSpritePalette gSpritePalette_BagOrSatchel = {
gUnknown_8E84560, gUnknown_8E84560,
100 100
}; };
static const struct SpriteTemplate gUnknown_83D41FC = { static const struct SpriteTemplate sSpriteTemplate_BagOrSatchel = {
100, 100,
100, 100,
&gUnknown_83D416C, &sOamData_BagOrSatchel,
gUnknown_83D4198, sAnimTable_BagOrSatchel,
NULL, NULL,
gUnknown_83D41DC, sAffineAnimTable_BagOrSatchel,
SpriteCallbackDummy SpriteCallbackDummy
}; };
@@ -139,7 +139,7 @@ static const struct SpriteTemplate gUnknown_83D4250 = {
SpriteCallbackDummy SpriteCallbackDummy
}; };
static const struct OamData gUnknown_83D4268 = { static const struct OamData sOamData_ItemIcon = {
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
.shape = ST_OAM_SQUARE, .shape = ST_OAM_SQUARE,
.size = 2, .size = 2,
@@ -147,26 +147,26 @@ static const struct OamData gUnknown_83D4268 = {
.paletteNum = 2 .paletteNum = 2
}; };
static const union AnimCmd gUnknown_83D4270[] = { static const union AnimCmd sAnim_ItemIcon_0[] = {
ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(0, 0),
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd *const gUnknown_83D4278[] = { static const union AnimCmd *const sAnimTable_ItemIcon[] = {
gUnknown_83D4270 sAnim_ItemIcon_0
}; };
static const struct SpriteTemplate gUnknown_83D427C = { static const struct SpriteTemplate sSpriteTemplate_ItemIcon = {
102, 102,
102, 102,
&gUnknown_83D4268, &sOamData_ItemIcon,
gUnknown_83D4278, sAnimTable_ItemIcon,
NULL, NULL,
gDummySpriteAffineAnimTable, gDummySpriteAffineAnimTable,
SpriteCallbackDummy SpriteCallbackDummy
}; };
static const void *const gUnknown_83D4294[][2] = { static const void *const sItemIconGfxPtrs[][2] = {
{gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
{gFile_graphics_items_icons_master_ball_sheet, gFile_graphics_items_icon_palettes_master_ball_palette}, {gFile_graphics_items_icons_master_ball_sheet, gFile_graphics_items_icon_palettes_master_ball_palette},
{gFile_graphics_items_icons_ultra_ball_sheet, gFile_graphics_items_icon_palettes_ultra_ball_palette}, {gFile_graphics_items_icons_ultra_ball_sheet, gFile_graphics_items_icon_palettes_ultra_ball_palette},
@@ -549,19 +549,19 @@ void ResetItemMenuIconState(void)
{ {
u16 i; u16 i;
for (i = 0; i < NELEMS(gUnknown_2039878); i++) for (i = 0; i < NELEMS(sItemMenuIconSpriteIds); i++)
gUnknown_2039878[i] = 0xFF; sItemMenuIconSpriteIds[i] = 0xFF;
} }
void sub_80984FC(u8 animNum) void CreateBagOrSatchelSprite(u8 animNum)
{ {
gUnknown_2039878[0] = CreateSprite(&gUnknown_83D41FC, 40, 68, 0); sItemMenuIconSpriteIds[0] = CreateSprite(&sSpriteTemplate_BagOrSatchel, 40, 68, 0);
sub_8098528(animNum); sub_8098528(animNum);
} }
void sub_8098528(u8 animNum) void sub_8098528(u8 animNum)
{ {
struct Sprite * sprite = &gSprites[gUnknown_2039878[0]]; struct Sprite * sprite = &gSprites[sItemMenuIconSpriteIds[0]];
sprite->pos2.y = -5; sprite->pos2.y = -5;
sprite->callback = sub_8098560; sprite->callback = sub_8098560;
StartSpriteAnim(sprite, animNum); StartSpriteAnim(sprite, animNum);
@@ -577,7 +577,7 @@ static void sub_8098560(struct Sprite * sprite)
void sub_8098580(void) void sub_8098580(void)
{ {
struct Sprite * sprite = &gSprites[gUnknown_2039878[0]]; struct Sprite * sprite = &gSprites[sItemMenuIconSpriteIds[0]];
if (sprite->affineAnimEnded) if (sprite->affineAnimEnded)
{ {
StartSpriteAffineAnim(sprite, 1); StartSpriteAffineAnim(sprite, 1);
@@ -594,40 +594,44 @@ static void sub_80985BC(struct Sprite * sprite)
} }
} }
void sub_80985E4(void) void ItemMenuIcons_CreateInsertIndicatorBarHidden(void)
{ {
u8 i; u8 i;
u8 * ptr = &gUnknown_2039878[1]; u8 * ptr = &sItemMenuIconSpriteIds[1];
for (i = 0; i < 9; i++) for (i = 0; i < 9; i++)
{ {
ptr[i] = CreateSprite(&gUnknown_83D4250, i * 16 + 0x60, 7, 0); ptr[i] = CreateSprite(&gUnknown_83D4250, i * 16 + 0x60, 7, 0);
if (i != 0) switch (i)
{ {
if (i == 8) case 0:
StartSpriteAnim(&gSprites[ptr[i]], 2); break;
else case 8:
StartSpriteAnim(&gSprites[ptr[i]], 1); StartSpriteAnim(&gSprites[ptr[i]], 2);
break;
default:
StartSpriteAnim(&gSprites[ptr[i]], 1);
break;
} }
gSprites[ptr[i]].invisible = TRUE; gSprites[ptr[i]].invisible = TRUE;
} }
} }
void sub_8098660(u8 flag) void ItemMenuIcons_ToggleInsertIndicatorBarVisibility(bool8 invisible)
{ {
u8 i; u8 i;
u8 * ptr = &gUnknown_2039878[1]; u8 * ptr = &sItemMenuIconSpriteIds[1];
for (i = 0; i < 9; i++) for (i = 0; i < 9; i++)
{ {
gSprites[ptr[i]].invisible = flag; gSprites[ptr[i]].invisible = invisible;
} }
} }
void sub_80986A8(s16 x, u16 y) void ItemMenuIcons_MoveInsertIndicatorBar(s16 x, u16 y)
{ {
u8 i; u8 i;
u8 * ptr = &gUnknown_2039878[1]; u8 * ptr = &sItemMenuIconSpriteIds[1];
for (i = 0; i < 9; i++) for (i = 0; i < 9; i++)
{ {
@@ -636,15 +640,15 @@ void sub_80986A8(s16 x, u16 y)
} }
} }
static bool8 sub_80986EC(void) static bool8 TryAllocItemIconTilesBuffers(void)
{ {
void ** ptr1, ** ptr2; void ** ptr1, ** ptr2;
ptr1 = &gUnknown_2039884; ptr1 = &sItemIconTilesBuffer;
*ptr1 = Alloc(0x120); *ptr1 = Alloc(0x120);
if (*ptr1 == NULL) if (*ptr1 == NULL)
return FALSE; return FALSE;
ptr2 = &gUnknown_2039888; ptr2 = &sItemIconTilesBufferPadded;
*ptr2 = AllocZeroed(0x200); *ptr2 = AllocZeroed(0x200);
if (*ptr2 == NULL) if (*ptr2 == NULL)
{ {
@@ -671,27 +675,27 @@ u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId)
struct CompressedSpritePalette spritePalette; struct CompressedSpritePalette spritePalette;
u8 spriteId; u8 spriteId;
if (!sub_80986EC()) if (!TryAllocItemIconTilesBuffers())
return MAX_SPRITES; return MAX_SPRITES;
LZDecompressWram(sub_8098974(itemId, 0), gUnknown_2039884); LZDecompressWram(GetItemIconGfxPtr(itemId, 0), sItemIconTilesBuffer);
CopyItemIconPicTo4x4Buffer(gUnknown_2039884, gUnknown_2039888); CopyItemIconPicTo4x4Buffer(sItemIconTilesBuffer, sItemIconTilesBufferPadded);
spriteSheet.data = gUnknown_2039888; spriteSheet.data = sItemIconTilesBufferPadded;
spriteSheet.size = 0x200; spriteSheet.size = 0x200;
spriteSheet.tag = tilesTag; spriteSheet.tag = tilesTag;
LoadSpriteSheet(&spriteSheet); LoadSpriteSheet(&spriteSheet);
spritePalette.data = sub_8098974(itemId, 1); spritePalette.data = GetItemIconGfxPtr(itemId, 1);
spritePalette.tag = paletteTag; spritePalette.tag = paletteTag;
LoadCompressedSpritePalette(&spritePalette); LoadCompressedSpritePalette(&spritePalette);
CpuCopy16(&gUnknown_83D427C, &template, sizeof(struct SpriteTemplate)); CpuCopy16(&sSpriteTemplate_ItemIcon, &template, sizeof(struct SpriteTemplate));
template.tileTag = tilesTag; template.tileTag = tilesTag;
template.paletteTag = paletteTag; template.paletteTag = paletteTag;
spriteId = CreateSprite(&template, 0, 0, 0); spriteId = CreateSprite(&template, 0, 0, 0);
Free(gUnknown_2039884); Free(sItemIconTilesBuffer);
Free(gUnknown_2039888); Free(sItemIconTilesBufferPadded);
return spriteId; return spriteId;
} }
@@ -702,17 +706,17 @@ u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origT
struct CompressedSpritePalette spritePalette; struct CompressedSpritePalette spritePalette;
u8 spriteId; u8 spriteId;
if (!sub_80986EC()) if (!TryAllocItemIconTilesBuffers())
return MAX_SPRITES; return MAX_SPRITES;
LZDecompressWram(sub_8098974(itemId, 0), gUnknown_2039884); LZDecompressWram(GetItemIconGfxPtr(itemId, 0), sItemIconTilesBuffer);
CopyItemIconPicTo4x4Buffer(gUnknown_2039884, gUnknown_2039888); CopyItemIconPicTo4x4Buffer(sItemIconTilesBuffer, sItemIconTilesBufferPadded);
spriteSheet.data = gUnknown_2039888; spriteSheet.data = sItemIconTilesBufferPadded;
spriteSheet.size = 0x200; spriteSheet.size = 0x200;
spriteSheet.tag = tilesTag; spriteSheet.tag = tilesTag;
LoadSpriteSheet(&spriteSheet); LoadSpriteSheet(&spriteSheet);
spritePalette.data = sub_8098974(itemId, 1); spritePalette.data = GetItemIconGfxPtr(itemId, 1);
spritePalette.tag = paletteTag; spritePalette.tag = paletteTag;
LoadCompressedSpritePalette(&spritePalette); LoadCompressedSpritePalette(&spritePalette);
@@ -721,14 +725,14 @@ u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origT
template.paletteTag = paletteTag; template.paletteTag = paletteTag;
spriteId = CreateSprite(&template, 0, 0, 0); spriteId = CreateSprite(&template, 0, 0, 0);
Free(gUnknown_2039884); Free(sItemIconTilesBuffer);
Free(gUnknown_2039888); Free(sItemIconTilesBufferPadded);
return spriteId; return spriteId;
} }
void CreateItemMenuIcon(u16 itemId, u8 idx) void CreateItemMenuIcon(u16 itemId, u8 idx)
{ {
u8 * ptr = &gUnknown_2039878[10]; u8 * ptr = &sItemMenuIconSpriteIds[10];
u8 spriteId; u8 spriteId;
if (ptr[idx] == 0xFF) if (ptr[idx] == 0xFF)
@@ -747,7 +751,7 @@ void CreateItemMenuIcon(u16 itemId, u8 idx)
void DestroyItemMenuIcon(u8 idx) void DestroyItemMenuIcon(u8 idx)
{ {
u8 * ptr = &gUnknown_2039878[10]; u8 * ptr = &sItemMenuIconSpriteIds[10];
if (ptr[idx] != 0xFF) if (ptr[idx] != 0xFF)
{ {
@@ -756,16 +760,16 @@ void DestroyItemMenuIcon(u8 idx)
} }
} }
const void * sub_8098974(u16 itemId, u8 attrId) const void * GetItemIconGfxPtr(u16 itemId, u8 attrId)
{ {
if (itemId > ITEM_N_A) if (itemId > ITEM_N_A)
itemId = ITEM_NONE; itemId = ITEM_NONE;
return gUnknown_83D4294[itemId][attrId]; return sItemIconGfxPtrs[itemId][attrId];
} }
void sub_80989A0(u16 itemId, u8 idx) void sub_80989A0(u16 itemId, u8 idx)
{ {
u8 * ptr = &gUnknown_2039878[10]; u8 * ptr = &sItemMenuIconSpriteIds[10];
u8 spriteId; u8 spriteId;
if (ptr[idx] == 0xFF) if (ptr[idx] == 0xFF)
+7 -7
View File
@@ -348,7 +348,7 @@ static bool8 ItemPc_DoGfxSetup(void)
gMain.state++; gMain.state++;
break; break;
case 14: case 14:
sub_80985E4(); ItemMenuIcons_CreateInsertIndicatorBarHidden();
gMain.state++; gMain.state++;
break; break;
case 15: case 15:
@@ -780,8 +780,8 @@ static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos)
StringExpandPlaceholders(gStringVar4, gOtherText_WhereShouldTheStrVar1BePlaced); StringExpandPlaceholders(gStringVar4, gOtherText_WhereShouldTheStrVar1BePlaced);
FillWindowPixelBuffer(1, 0x00); FillWindowPixelBuffer(1, 0x00);
ItemPc_AddTextPrinterParameterized(1, 2, gStringVar4, 0, 3, 2, 3, 0, 0); ItemPc_AddTextPrinterParameterized(1, 2, gStringVar4, 0, 3, 2, 3, 0, 0);
sub_80986A8(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); ItemMenuIcons_MoveInsertIndicatorBar(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
sub_8098660(0); ItemMenuIcons_ToggleInsertIndicatorBarVisibility(FALSE);
ItemPc_PrintOrRemoveCursor(data[0], 2); ItemPc_PrintOrRemoveCursor(data[0], 2);
gTasks[taskId].func = Task_ItemPcMoveItemModeRun; gTasks[taskId].func = Task_ItemPcMoveItemModeRun;
} }
@@ -792,7 +792,7 @@ static void Task_ItemPcMoveItemModeRun(u8 taskId)
ListMenu_ProcessInput(data[0]); ListMenu_ProcessInput(data[0]);
ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row); ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row);
sub_80986A8(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); ItemMenuIcons_MoveInsertIndicatorBar(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
if (JOY_NEW(A_BUTTON | SELECT_BUTTON)) if (JOY_NEW(A_BUTTON | SELECT_BUTTON))
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
@@ -814,13 +814,13 @@ static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos)
ItemPc_MoveItemModeCancel(taskId, pos); ItemPc_MoveItemModeCancel(taskId, pos);
else else
{ {
ItemMenu_MoveItemSlotToNewPositionInArray(gSaveBlock1Ptr->pcItems, data[1], pos); MoveItemSlotInList(gSaveBlock1Ptr->pcItems, data[1], pos);
DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row); DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row);
if (data[1] < pos) if (data[1] < pos)
sListMenuState.row--; sListMenuState.row--;
ItemPc_BuildListMenuTemplate(); ItemPc_BuildListMenuTemplate();
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row);
sub_8098660(1); ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE);
gTasks[taskId].func = Task_ItemPcMain; gTasks[taskId].func = Task_ItemPcMain;
} }
} }
@@ -834,7 +834,7 @@ static void ItemPc_MoveItemModeCancel(u8 taskId, u32 pos)
sListMenuState.row--; sListMenuState.row--;
ItemPc_BuildListMenuTemplate(); ItemPc_BuildListMenuTemplate();
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row);
sub_8098660(1); ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE);
gTasks[taskId].func = Task_ItemPcMain; gTasks[taskId].func = Task_ItemPcMain;
} }
+17 -17
View File
@@ -154,7 +154,7 @@ static void sub_80A0FBC(u8 taskId)
{ {
ItemMenu_SetExitCallback(gUnknown_83E2954[itemType]); ItemMenu_SetExitCallback(gUnknown_83E2954[itemType]);
if (itemType == 1) if (itemType == 1)
sub_8108CB4(); Bag_BeginCloseWin0Animation();
ItemMenu_StartFadeToExitCallback(taskId); ItemMenu_StartFadeToExitCallback(taskId);
} }
} }
@@ -188,7 +188,7 @@ static void sub_80A10C4(u8 taskId, bool8 a1, u8 a2, const u8 * str)
{ {
StringExpandPlaceholders(gStringVar4, str); StringExpandPlaceholders(gStringVar4, str);
if (a1 == FALSE) if (a1 == FALSE)
DisplayItemMessageInBag(taskId, a2, gStringVar4, sub_810A1F8); DisplayItemMessageInBag(taskId, a2, gStringVar4, Task_ReturnToBagFromContextMenu);
else else
DisplayItemMessageOnField(taskId, a2, gStringVar4, sub_80A112C); DisplayItemMessageOnField(taskId, a2, gStringVar4, sub_80A112C);
} }
@@ -345,7 +345,7 @@ void FieldUseFunc_CoinCase(u8 taskId)
StringExpandPlaceholders(gStringVar4, gUnknown_8416537); StringExpandPlaceholders(gStringVar4, gUnknown_8416537);
ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF);
if (gTasks[taskId].data[3] == 0) if (gTasks[taskId].data[3] == 0)
DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8); DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu);
else else
DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A112C); DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A112C);
} }
@@ -356,7 +356,7 @@ void FieldUseFunc_PowderJar(u8 taskId)
StringExpandPlaceholders(gStringVar4, gUnknown_8416644); StringExpandPlaceholders(gStringVar4, gUnknown_8416644);
ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF);
if (gTasks[taskId].data[3] == 0) if (gTasks[taskId].data[3] == 0)
DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8); DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu);
else else
DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A112C); DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A112C);
} }
@@ -384,7 +384,7 @@ void FieldUseFunc_PokeFlute(u8 taskId)
{ {
// Now that's a catchy tune! // Now that's a catchy tune!
if (gTasks[taskId].data[3] == 0) if (gTasks[taskId].data[3] == 0)
DisplayItemMessageInBag(taskId, 2, gUnknown_841665C, sub_810A1F8); DisplayItemMessageInBag(taskId, 2, gUnknown_841665C, Task_ReturnToBagFromContextMenu);
else else
DisplayItemMessageOnField(taskId, 2, gUnknown_841665C, sub_80A112C); DisplayItemMessageOnField(taskId, 2, gUnknown_841665C, sub_80A112C);
} }
@@ -401,7 +401,7 @@ static void sub_80A1674(u8 taskId)
if (WaitFanfare(FALSE)) if (WaitFanfare(FALSE))
{ {
if (gTasks[taskId].data[3] == 0) if (gTasks[taskId].data[3] == 0)
DisplayItemMessageInBag(taskId, 2, gUnknown_84166A7, sub_810A1F8); DisplayItemMessageInBag(taskId, 2, gUnknown_84166A7, Task_ReturnToBagFromContextMenu);
else else
DisplayItemMessageOnField(taskId, 2, gUnknown_84166A7, sub_80A112C); DisplayItemMessageOnField(taskId, 2, gUnknown_84166A7, sub_80A112C);
} }
@@ -518,7 +518,7 @@ void BattleUseFunc_BerryPouch(u8 taskId)
static void InitBerryPouchFromBattle(void) static void InitBerryPouchFromBattle(void)
{ {
InitBerryPouch(BERRYPOUCH_FROMBATTLE, sub_8107ECC, 0); InitBerryPouch(BERRYPOUCH_FROMBATTLE, CB2_BagMenuFromBattle, 0);
} }
void FieldUseFunc_TeachyTv(u8 taskId) void FieldUseFunc_TeachyTv(u8 taskId)
@@ -562,7 +562,7 @@ void FieldUseFunc_SuperRepel(u8 taskId)
} }
else else
// An earlier repel is still in effect // An earlier repel is still in effect
DisplayItemMessageInBag(taskId, 2, gUnknown_841659E, sub_810A1F8); DisplayItemMessageInBag(taskId, 2, gUnknown_841659E, Task_ReturnToBagFromContextMenu);
} }
static void sub_80A19E8(u8 taskId) static void sub_80A19E8(u8 taskId)
@@ -572,15 +572,15 @@ static void sub_80A19E8(u8 taskId)
ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF);
VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_ItemId)); VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_ItemId));
sub_80A1A44(); sub_80A1A44();
DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8); DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu);
} }
} }
static void sub_80A1A44(void) static void sub_80A1A44(void)
{ {
RemoveBagItem(gSpecialVar_ItemId, 1); RemoveBagItem(gSpecialVar_ItemId, 1);
sub_8108DC8(ItemId_GetPocket(gSpecialVar_ItemId)); Pocket_CalculateNItemsAndMaxShowed(ItemId_GetPocket(gSpecialVar_ItemId));
sub_81089F4(ItemId_GetPocket(gSpecialVar_ItemId)); PocketCalculateInitialCursorPosAndItemsAbove(ItemId_GetPocket(gSpecialVar_ItemId));
CopyItemName(gSpecialVar_ItemId, gStringVar2); CopyItemName(gSpecialVar_ItemId, gStringVar2);
StringExpandPlaceholders(gStringVar4, gUnknown_841658C); StringExpandPlaceholders(gStringVar4, gUnknown_841658C);
} }
@@ -613,7 +613,7 @@ static void sub_80A1B48(u8 taskId)
if (++gTasks[taskId].data[8] > 7) if (++gTasks[taskId].data[8] > 7)
{ {
PlaySE(SE_BIDORO); PlaySE(SE_BIDORO);
DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8); DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu);
} }
} }
@@ -745,18 +745,18 @@ void BattleUseFunc_PokeBallEtc(u8 taskId)
if (!IsPlayerPartyAndPokemonStorageFull()) if (!IsPlayerPartyAndPokemonStorageFull())
{ {
RemoveBagItem(gSpecialVar_ItemId, 1); RemoveBagItem(gSpecialVar_ItemId, 1);
sub_8108CB4(); Bag_BeginCloseWin0Animation();
ItemMenu_StartFadeToExitCallback(taskId); ItemMenu_StartFadeToExitCallback(taskId);
} }
else else
{ {
DisplayItemMessageInBag(taskId, 2, gUnknown_8416631, sub_810A1F8); DisplayItemMessageInBag(taskId, 2, gUnknown_8416631, Task_ReturnToBagFromContextMenu);
} }
} }
void BattleUseFunc_PokeFlute(u8 taskId) void BattleUseFunc_PokeFlute(u8 taskId)
{ {
sub_8108CB4(); Bag_BeginCloseWin0Animation();
ItemMenu_StartFadeToExitCallback(taskId); ItemMenu_StartFadeToExitCallback(taskId);
} }
@@ -764,7 +764,7 @@ void BattleUseFunc_GuardSpec(u8 taskId)
{ {
if (ExecuteTableBasedItemEffect(&gPlayerParty[gBattlerPartyIndexes[gBattlerInMenuId]], gSpecialVar_ItemId, gBattlerPartyIndexes[gBattlerInMenuId], 0)) if (ExecuteTableBasedItemEffect(&gPlayerParty[gBattlerPartyIndexes[gBattlerInMenuId]], gSpecialVar_ItemId, gBattlerPartyIndexes[gBattlerInMenuId], 0))
{ {
DisplayItemMessageInBag(taskId, 2, gText_WontHaveEffect, sub_810A1F8); DisplayItemMessageInBag(taskId, 2, gText_WontHaveEffect, Task_ReturnToBagFromContextMenu);
} }
else else
{ {
@@ -790,7 +790,7 @@ static void Task_BattleUse_StatBooster_WaitButton_ReturnToBattle(u8 taskId)
{ {
if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))
{ {
sub_8108CB4(); Bag_BeginCloseWin0Animation();
ItemMenu_StartFadeToExitCallback(taskId); ItemMenu_StartFadeToExitCallback(taskId);
} }
} }
+2 -2
View File
@@ -107,7 +107,7 @@ bool8 itemid_link_can_give_berry(u16 itemId)
return FALSE; return FALSE;
} }
bool8 itemid_80BF6D8_mail_related(u16 itemId) bool8 CanWriteMailHere(u16 itemId)
{ {
if (IsUpdateLinkStateCBActive() != TRUE && InUnionRoom() != TRUE) if (IsUpdateLinkStateCBActive() != TRUE && InUnionRoom() != TRUE)
return TRUE; return TRUE;
@@ -242,7 +242,7 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
return FALSE; return FALSE;
} }
u8 sub_80BF8E4(void) u8 GetDialogBoxFontId(void)
{ {
if (!ContextNpcGetTextColor()) if (!ContextNpcGetTextColor())
return 4; return 4;
+1 -1
View File
@@ -98,7 +98,7 @@ void ResetMenuAndMonGlobals(void)
gDifferentSaveFile = FALSE; gDifferentSaveFile = FALSE;
ZeroPlayerPartyMons(); ZeroPlayerPartyMons();
ZeroEnemyPartyMons(); ZeroEnemyPartyMons();
sub_81089BC(); ResetBagCursorPositions();
ResetTMCaseCursorPos(); ResetTMCaseCursorPos();
BerryPouch_CursorResetToTop(); BerryPouch_CursorResetToTop();
ResetQuestLog(); ResetQuestLog();
+6 -6
View File
@@ -3451,7 +3451,7 @@ static void CursorCB_Give(u8 taskId)
void CB2_SelectBagItemToGive(void) void CB2_SelectBagItemToGive(void)
{ {
GoToBagMenu(1, 3, CB2_GiveHoldItem); GoToBagMenu(ITEMMENULOCATION_PARTY, OPEN_BAG_LAST, CB2_GiveHoldItem);
} }
void CB2_GiveHoldItem(void) void CB2_GiveHoldItem(void)
@@ -4283,12 +4283,12 @@ void CB2_ShowPartyMenuForItemUse(void)
static void CB2_ReturnToBagMenu(void) static void CB2_ReturnToBagMenu(void)
{ {
GoToBagMenu(11, 3, NULL); GoToBagMenu(ITEMMENULOCATION_LAST, OPEN_BAG_LAST, NULL);
} }
static void CB2_ReturnToTMCaseMenu(void) static void CB2_ReturnToTMCaseMenu(void)
{ {
InitTMCase(5, NULL, 0xFF); InitTMCase(TMCASE_NA, NULL, 0xFF);
} }
static void CB2_ReturnToBerryPouchMenu(void) static void CB2_ReturnToBerryPouchMenu(void)
@@ -5904,7 +5904,7 @@ void OpenPartyMenuInBattle(void)
void ChooseMonForInBattleItem(void) void ChooseMonForInBattleItem(void)
{ {
InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE, GetPartyLayoutFromBattleType(), PARTY_ACTION_REUSABLE_ITEM, FALSE, PARTY_MSG_USE_ON_WHICH_MON, sub_8120FCC, sub_8107ECC); InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE, GetPartyLayoutFromBattleType(), PARTY_ACTION_REUSABLE_ITEM, FALSE, PARTY_MSG_USE_ON_WHICH_MON, sub_8120FCC, CB2_BagMenuFromBattle);
nullsub_44(); nullsub_44();
UpdatePartyToBattleOrder(); UpdatePartyToBattleOrder();
} }
@@ -5919,7 +5919,7 @@ void sub_81279E0(void)
FALSE, FALSE,
PARTY_MSG_NONE, PARTY_MSG_NONE,
sub_8120C3C, sub_8120C3C,
sub_8107ECC); CB2_BagMenuFromBattle);
sub_80EB2F4(8); sub_80EB2F4(8);
} }
else else
@@ -5929,7 +5929,7 @@ void sub_81279E0(void)
if (GetPocketByItemId(gSpecialVar_ItemId) == POCKET_BERRY_POUCH) if (GetPocketByItemId(gSpecialVar_ItemId) == POCKET_BERRY_POUCH)
callback = CB2_ReturnToBerryPouchMenu; callback = CB2_ReturnToBerryPouchMenu;
else else
callback = sub_8107ECC; callback = CB2_BagMenuFromBattle;
InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE, InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE,
GetPartyLayoutFromBattleType(), GetPartyLayoutFromBattleType(),
PARTY_ACTION_USE_ITEM, PARTY_ACTION_USE_ITEM,
+1 -1
View File
@@ -322,7 +322,7 @@ static void Task_DepositItem_WaitFadeAndGoToBag(u8 taskId)
if (!gPaletteFade.active) if (!gPaletteFade.active)
{ {
CleanupOverworldWindowsAndTilemaps(); CleanupOverworldWindowsAndTilemaps();
GoToBagMenu(3, POCKET_ITEMS - 1, CB2_ReturnToField); GoToBagMenu(ITEMMENULOCATION_ITEMPC, OPEN_BAG_ITEMS, CB2_ReturnToField);
gFieldCallback = CB2_ReturnFromDepositMenu; gFieldCallback = CB2_ReturnFromDepositMenu;
DestroyTask(taskId); DestroyTask(taskId);
} }
+1 -1
View File
@@ -1547,7 +1547,7 @@ const struct SpriteTemplate gUnknown_825DF50[] =
.paletteTag = 0, .paletteTag = 0,
.oam = &gOamData_824F018, .oam = &gOamData_824F018,
.anims = NULL, .anims = NULL,
.images = gTrainerBackPicTable_PokeDude, .images = gTrainerBackPicTable_Pokedude,
.affineAnims = gSpriteAffineAnimTable_82348C8, .affineAnims = gSpriteAffineAnimTable_82348C8,
.callback = sub_80120C4, .callback = sub_80120C4,
}, },
+1 -1
View File
@@ -307,7 +307,7 @@ static void Task_HandleShopMenuSell(u8 taskId)
static void CB2_GoToSellMenu(void) static void CB2_GoToSellMenu(void)
{ {
GoToBagMenu(2, POCKET_POKE_BALLS, CB2_ReturnToField); GoToBagMenu(ITEMMENULOCATION_SHOP, OPEN_BAG_LAST, CB2_ReturnToField);
gFieldCallback = MapPostLoadHook_ReturnToShopMenu; gFieldCallback = MapPostLoadHook_ReturnToShopMenu;
} }
+3 -13
View File
@@ -34,16 +34,6 @@
#include "fieldmap.h" #include "fieldmap.h"
#include "strings.h" #include "strings.h"
enum TeachyTvScript
{
TTVSCR_BATTLE,
TTVSCR_STATUS,
TTVSCR_MATCHUPS,
TTVSCR_CATCHING,
TTVSCR_TMS,
TTVSCR_REGISTER
};
struct TeachyTvCtrlBlk struct TeachyTvCtrlBlk
{ {
MainCallback callback; MainCallback callback;
@@ -805,7 +795,7 @@ static void TTVcmd_NpcMoveAndSetupTextPrinter(u8 taskId)
if (spriteAddr->pos2.x == 0x78) if (spriteAddr->pos2.x == 0x78)
{ {
StartSpriteAnim(&gSprites[data[1]], 0); StartSpriteAnim(&gSprites[data[1]], 0);
TeachyTvInitTextPrinter(gTeachyTvText_PokeDudeSaysHello); TeachyTvInitTextPrinter(gTeachyTvText_PokedudeSaysHello);
data[2] = 0; data[2] = 0;
++data[3]; ++data[3];
} }
@@ -1103,9 +1093,9 @@ static void TTVcmd_TaskBattleOrFadeByOptionChosen(u8 taskId)
static void TeachyTvSetupBagItemsByOptionChosen(void) static void TeachyTvSetupBagItemsByOptionChosen(void)
{ {
if (sStaticResources.whichScript == TTVSCR_TMS) if (sStaticResources.whichScript == TTVSCR_TMS)
sub_810B108(10); InitPokedudeBag(ITEMMENULOCATION_TTVSCR_TMS);
else else
sub_810B108(9); InitPokedudeBag(ITEMMENULOCATION_TTVSCR_REGISTER);
} }
static void TeachyTvPostBattleFadeControl(u8 taskId) static void TeachyTvPostBattleFadeControl(u8 taskId)
+17 -17
View File
@@ -67,7 +67,7 @@ struct UnkStruct_203B11C
static EWRAM_DATA struct UnkStruct_203B10C sTMCaseStaticResources = {}; static EWRAM_DATA struct UnkStruct_203B10C sTMCaseStaticResources = {};
static EWRAM_DATA struct UnkStruct_203B118 * sTMCaseDynamicResources = NULL; static EWRAM_DATA struct UnkStruct_203B118 * sTMCaseDynamicResources = NULL;
static EWRAM_DATA struct UnkStruct_203B11C * sPokeDudePackBackup = NULL; static EWRAM_DATA struct UnkStruct_203B11C * sPokedudePackBackup = NULL;
static EWRAM_DATA void * sTilemapBuffer = NULL; // tilemap buffer static EWRAM_DATA void * sTilemapBuffer = NULL; // tilemap buffer
static EWRAM_DATA struct ListMenuItem * sListMenuItemsBuffer = NULL; static EWRAM_DATA struct ListMenuItem * sListMenuItemsBuffer = NULL;
static EWRAM_DATA u8 (* sListMenuStringsBuffer)[29] = NULL; static EWRAM_DATA u8 (* sListMenuStringsBuffer)[29] = NULL;
@@ -977,7 +977,7 @@ static void Task_SelectTMAction_FromSellMenu(u8 taskId)
{ {
CopyItemName(gSpecialVar_ItemId, gStringVar1); CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat); StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat);
TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Subtask_CloseContextMenuAndReturnToMain); TMCase_PrintMessageWithFollowupTask(taskId, GetDialogBoxFontId(), gStringVar4, Subtask_CloseContextMenuAndReturnToMain);
} }
else else
{ {
@@ -993,7 +993,7 @@ static void Task_SelectTMAction_FromSellMenu(u8 taskId)
data[2] = 99; data[2] = 99;
CopyItemName(gSpecialVar_ItemId, gStringVar1); CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell); StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell);
TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Task_InitQuantitySelectUI); TMCase_PrintMessageWithFollowupTask(taskId, GetDialogBoxFontId(), gStringVar4, Task_InitQuantitySelectUI);
} }
} }
} }
@@ -1004,7 +1004,7 @@ static void Task_AskConfirmSaleWithAmount(u8 taskId)
ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6); ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6);
StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay); StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay);
TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Task_PlaceYesNoBox); TMCase_PrintMessageWithFollowupTask(taskId, GetDialogBoxFontId(), gStringVar4, Task_PlaceYesNoBox);
} }
static void Task_PlaceYesNoBox(u8 taskId) static void Task_PlaceYesNoBox(u8 taskId)
@@ -1133,13 +1133,13 @@ static void Task_AfterSale_ReturnToList(u8 taskId)
} }
} }
void PokeDude_InitTMCase(void) void Pokedude_InitTMCase(void)
{ {
sPokeDudePackBackup = AllocZeroed(sizeof(*sPokeDudePackBackup)); sPokedudePackBackup = AllocZeroed(sizeof(*sPokedudePackBackup));
memcpy(sPokeDudePackBackup->bagPocket_TMHM, gSaveBlock1Ptr->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM)); memcpy(sPokedudePackBackup->bagPocket_TMHM, gSaveBlock1Ptr->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
memcpy(sPokeDudePackBackup->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems)); memcpy(sPokedudePackBackup->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
sPokeDudePackBackup->unk_160 = sTMCaseStaticResources.selectedRow; sPokedudePackBackup->unk_160 = sTMCaseStaticResources.selectedRow;
sPokeDudePackBackup->unk_162 = sTMCaseStaticResources.scrollOffset; sPokedudePackBackup->unk_162 = sTMCaseStaticResources.scrollOffset;
ClearItemSlots(gSaveBlock1Ptr->bagPocket_TMHM, NELEMS(gSaveBlock1Ptr->bagPocket_TMHM)); ClearItemSlots(gSaveBlock1Ptr->bagPocket_TMHM, NELEMS(gSaveBlock1Ptr->bagPocket_TMHM));
ClearItemSlots(gSaveBlock1Ptr->bagPocket_KeyItems, NELEMS(gSaveBlock1Ptr->bagPocket_KeyItems)); ClearItemSlots(gSaveBlock1Ptr->bagPocket_KeyItems, NELEMS(gSaveBlock1Ptr->bagPocket_KeyItems));
ResetTMCaseCursorPos(); ResetTMCaseCursorPos();
@@ -1234,7 +1234,7 @@ static void Task_TMCaseDude_Playback(u8 taskId)
break; break;
case 8: case 8:
FillBG2RowWithPalette_2timesNplus1(1); FillBG2RowWithPalette_2timesNplus1(1);
TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokeDudeText_TMTypes, 0); TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokedudeText_TMTypes, 0);
gTasks[taskId].func = Task_TMCaseDude_Playback; gTasks[taskId].func = Task_TMCaseDude_Playback;
data[8]++; data[8]++;
break; break;
@@ -1256,7 +1256,7 @@ static void Task_TMCaseDude_Playback(u8 taskId)
break; break;
case 18: case 18:
FillBG2RowWithPalette_2timesNplus1(1); FillBG2RowWithPalette_2timesNplus1(1);
TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokeDudeText_ReadTMDescription, NULL); TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokedudeText_ReadTMDescription, NULL);
gTasks[taskId].func = Task_TMCaseDude_Playback; // this function gTasks[taskId].func = Task_TMCaseDude_Playback; // this function
data[8]++; data[8]++;
break; break;
@@ -1267,12 +1267,12 @@ static void Task_TMCaseDude_Playback(u8 taskId)
case 21: case 21:
if (!gPaletteFade.active) if (!gPaletteFade.active)
{ {
memcpy(gSaveBlock1Ptr->bagPocket_TMHM, sPokeDudePackBackup->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM)); memcpy(gSaveBlock1Ptr->bagPocket_TMHM, sPokedudePackBackup->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, sPokeDudePackBackup->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems)); memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, sPokedudePackBackup->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
DestroyListMenuTask(data[0], NULL, NULL); DestroyListMenuTask(data[0], NULL, NULL);
sTMCaseStaticResources.selectedRow = sPokeDudePackBackup->unk_160; sTMCaseStaticResources.selectedRow = sPokedudePackBackup->unk_160;
sTMCaseStaticResources.scrollOffset = sPokeDudePackBackup->unk_162; sTMCaseStaticResources.scrollOffset = sPokedudePackBackup->unk_162;
Free(sPokeDudePackBackup); Free(sPokedudePackBackup);
CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400); CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
CB2_SetUpReshowBattleScreenAfterMenu(); CB2_SetUpReshowBattleScreenAfterMenu();
BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, 0); BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, 0);
+1 -39
View File
@@ -335,45 +335,7 @@ gUnknown_203ACF0: @ 203ACF0
.align 2 .align 2
.include "src/list_menu.o" .include "src/list_menu.o"
.align 2 .align 2
gUnknown_203ACFC: @ 203ACFC .include "src/item_menu.o"
.space 0x6
gUnknown_203AD02: @ 203AD02
.space 0x2
gUnknown_203AD04: @ 203AD04
.space 0x6
gUnknown_203AD0A: @ 203AD0A
.space 0x6
gUnknown_203AD10: @ 203AD10
.space 0x4
gUnknown_203AD14: @ 203AD14
.space 0x4
gUnknown_203AD18: @ 203AD18
.space 0x4
gUnknown_203AD1C: @ 203AD1C
.space 0x4
gUnknown_203AD20: @ 203AD20
.space 0x4
gUnknown_203AD24: @ 203AD24
.space 0x4
gUnknown_203AD28: @ 203AD28
.space 0x4
gUnknown_203AD2C: @ 203AD2C
.space 0x4
gSpecialVar_ItemId: @ 203AD30
.space 0x4
.align 2 .align 2
.include "src/bag.o" .include "src/bag.o"
.align 2 .align 2