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
lsrs r0, 16
movs r1, 0
bl sub_8098974
bl GetItemIconGfxPtr
pop {r1}
bx r1
thumb_func_end GetItemIconPic
@@ -22012,7 +22012,7 @@ GetItemIconPalette: @ 8096684
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
bl sub_8098974
bl GetItemIconGfxPtr
pop {r1}
bx r1
thumb_func_end GetItemIconPalette
+1 -1
View File
@@ -1537,7 +1537,7 @@ EventScript_1A778C:: @ 81A778C
releaseall
end
gUnknown_81A77A0:: @ 81A77A0
EventScript_BagItemCanBeRegistered:: @ 81A77A0
msgbox Text_BagItemCanBeRegistered, MSGBOX_SIGN
end
+4 -4
View File
@@ -13476,7 +13476,7 @@ gTrainerBackPic_Leaf:: @ 8E6C6BC
.incbin "graphics/trainers/back_pics/leaf_back_pic.4bpp"
.align 2
gTrainerBackPic_PokeDude:: @ 8E6EEBC
gTrainerBackPic_Pokedude:: @ 8E6EEBC
.incbin "graphics/trainers/back_pics/pokedude_back_pic.4bpp"
.align 2
@@ -13500,7 +13500,7 @@ gTrainerPalette_LeafBackPic:: @ 8E76EE4
.incbin "graphics/trainers/palettes/red_back_pic.gbapal.lz"
.align 2
gTrainerPalette_PokeDudeBackPic:: @ 8E76F0C
gTrainerPalette_PokedudeBackPic:: @ 8E76F0C
.incbin "graphics/trainers/palettes/pokedude_back_pic.gbapal.lz"
.align 2
@@ -14004,11 +14004,11 @@ gUnknown_8E83444:: @ 8E83444
.incbin "graphics/item_menu/bag_tilemap2.bin.lz" @ PC deposit items
.align 2
gUnknown_8E835B4:: @ 8E835B4
gBagBgPalette:: @ 8E835B4
.incbin "graphics/item_menu/bag_pal1.gbapal.lz" @ palette 1 (Boy + misc Pal)
.align 2
gUnknown_8E83604:: @ 8E83604
gBagBgPalette_FemaleOverride:: @ 8E83604
.incbin "graphics/item_menu/bag_pal2.gbapal.lz" @ palette 2 (Girl)
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::
.string "TOSS$"
gUnknown_84161A9::
gOtherText_Register::
.string "REGISTER$"
gOtherText_Give::
@@ -420,7 +420,7 @@ gOtherText_Give::
gUnknown_84161B7::
.string "$"
gUnknown_84161BC::
gOtherText_Walk::
.string "WALK$"
gFameCheckerText_Cancel:: @ 84161C1
@@ -447,16 +447,16 @@ gText_Take::
gText_Store::
.string "STORE$"
gUnknown_84161E9::
gOtherText_Check::
.string "CHECK$"
gUnknown_84161EF:: @ 84161EF
.string "NONE$"
gUnknown_84161F4::
gOtherText_Open::
.string "OPEN$"
gUnknown_84161F9::
gOtherText_Deselect::
.string "DESELECT$"
gUnknown_8416202:: @ 8416202
@@ -555,19 +555,19 @@ gUnknown_84162BD:: @ 84162BD
gText_Coins:: @ 84162C4
.string "{STR_VAR_1} COINS$"
gUnknown_84162CD:: @ 0x84162CD
gText_Items2:: @ 0x84162CD
.string "ITEMS$"
gUnknown_84162D3:: @ 0x84162D3
gText_PokeBalls2:: @ 0x84162D3
.string "POKé BALLS$"
gUnknown_84162DE:: @ 0x84162DE
gText_KeyItems2:: @ 0x84162DE
.string "KEY ITEMS$"
gText_DepositItem:: @ 84162E8
.string "DEPOSIT ITEM$"
gUnknown_84162F5:: @ 84162F5
gText_CloseBag:: @ 84162F5
.string "CLOSE BAG$"
gOtherText_StrVar1:: @ 84162FF
@@ -577,7 +577,7 @@ gText_IsSelected:: @ 8416301
.string " is\n"
.string "selected.$"
gUnknown_841630F:: @ 841630F
gText_CantWriteMailHere:: @ 841630F
.string "You can't write\n"
.string "MAIL here.$"
@@ -596,15 +596,15 @@ gText_TheStrVar1CantBeHeldHere:: @ 8416374
.string "The {STR_VAR_1} can't be held\n"
.string "here.$"
gUnknown_841638F:: @ 841638F
gText_DepositHowManyStrVars1:: @ 841638F
.string "Deposit how many\n"
.string "{STR_VAR_1}(s)?$"
gUnknown_84163A7:: @ 84163A7
gText_DepositedStrVar2StrVar1s:: @ 84163A7
.string "Deposited {STR_VAR_2}\n"
.string "{STR_VAR_1}(s).$"
gUnknown_84163BB:: @ 84163BB
gText_NoRoomToStoreItems:: @ 84163BB
.string "There's no room to\n"
.string "store items.$"
+3 -3
View File
@@ -19,7 +19,7 @@ gTeachyTvString_RegisterItem:: @ 841B81B
gTeachyTvString_Cancel:: @ 841B836
.string "CANCEL$"
gTeachyTvText_PokeDudeSaysHello:: @ 841B83D
gTeachyTvText_PokedudeSaysHello:: @ 841B83D
.string "Hey, all you TRAINERS out there!\n"
.string "HELLO, TRAINERS!\p"
.string "……… ……… ………\p"
@@ -164,7 +164,7 @@ gTeachyTvText_TMsScript1:: @ 841C459
.string "You can check them out in detail,\n"
.string "too.$"
gPokeDudeText_TMTypes:: @ 841C587
gPokedudeText_TMTypes:: @ 841C587
.string "POKé DUDE: NORMAL, WATER, GRASS…\n"
.string "TMs also come in types.\p"
.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 "There's one other thing!$"
gPokeDudeText_ReadTMDescription:: @ 841C693
gPokedudeText_ReadTMDescription:: @ 841C693
.string "Don't just look at the type, read\n"
.string "the description, too.\p"
.string "It will contain hints about what\n"
+15 -13
View File
@@ -1,18 +1,20 @@
#ifndef GUARD_BAG_H
#define GUARD_BAG_H
void sub_810B858(void);
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 sub_810B994(void);
u8 sub_810B9DC(u8 a0, u8 a1);
void sub_810BA3C(u8 a0);
u8 sub_810BA70(u8 a0);
void sub_810BA9C(u8 a0);
u8 sub_810BAD8(u8 a0);
void sub_810BAE8(u8 taskId, const struct YesNoFuncTable * ptrs);
void sub_810BB14(u8 taskId, const struct YesNoFuncTable * ptrs);
void sub_810BB40(void);
void sub_810BB74(u8 windowId);
#include "menu_helpers.h"
void InitBagWindows(void);
void BagPrintTextOnWindow(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx);
void BagPrintTextOnWin1CenteredColor0(const u8 * str, u8 unused);
void BagDrawDepositItemTextBox(void);
u8 ShowBagWindow(u8 whichWindow, u8 nItems);
void HideBagWindow(u8 whichWindow);
u8 OpenBagWindow(u8 whichWindow);
void CloseBagWindow(u8 whichWindow);
u8 GetBagWindow(u8 whichWindow);
void BagCreateYesNoMenuBottomRight(u8 taskId, const struct YesNoFuncTable * ptrs);
void BagCreateYesNoMenuTopRight(u8 taskId, const struct YesNoFuncTable * ptrs);
void BagPrintMoneyAmount(void);
void BagDrawTextBoxOnWindow(u8 windowId);
#endif //GUARD_BAG_H
+1
View File
@@ -2,6 +2,7 @@
#define GUARD_BATTLE_CONTROLLERS_H
#include "global.h"
#include "battle.h"
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 gTrainerBackPicTable_Red[];
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_RSBrendan[];
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_1A5DB1[];
extern const u8 EventScript_BagItemCanBeRegistered[];
#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
#define GUARD_GRAPHICS_H
@@ -2656,7 +2652,7 @@ extern const u32 gTrainerPalette_RSBrendan1[];
extern const u32 gTrainerPalette_RSMay1[];
extern const u32 gTrainerPalette_LeafBackPic[];
extern const u32 gTrainerPalette_RedBackPic[];
extern const u32 gTrainerPalette_PokeDudeBackPic[];
extern const u32 gTrainerPalette_PokedudeBackPic[];
extern const u32 gTrainerPalette_OldManBackPic[];
extern const u32 gTrainerPalette_PokemonBreederM[];
extern const u32 gTrainerPalette_RSPokemonBreederF[];
@@ -4358,7 +4354,7 @@ extern const u8 gBerryPouchBg1Tilemap[];
extern const u8 gTrainerBackPic_Red[];
extern const u8 gTrainerBackPic_Leaf[];
extern const u8 gTrainerBackPic_PokeDude[];
extern const u8 gTrainerBackPic_Pokedude[];
extern const u8 gTrainerBackPic_OldMan[];
extern const u8 gTrainerBackPic_RSBrendan[];
extern const u8 gTrainerBackPic_RSMay[];
@@ -4861,4 +4857,11 @@ extern const u16 gBattleInterface_BallStatusBarPal[];
extern const u16 gBattleInterface_BallDisplayPal[];
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
+17 -16
View File
@@ -3,6 +3,7 @@
#include "global.h"
#include "task.h"
#include "constants/item_menu.h"
// Exported type declarations
@@ -10,15 +11,15 @@
struct BagStruct
{
void (*bagCallback)(void);
MainCallback bagCallback;
u8 location;
u8 pocket;
u16 unk6;
u8 cursorPosition[6];
u8 scrollPosition[6];
bool8 bagOpen;
u16 pocket;
u16 itemsAbove[3];
u16 cursorPos[3];
};
extern struct BagStruct gUnknown_203ACFC;
extern struct BagStruct gBagMenuState;
extern u16 gSpecialVar_ItemId;
@@ -26,19 +27,19 @@ extern u16 gSpecialVar_ItemId;
void sub_81AAC50(void);
void sub_81AAC70(void);
void CB2_SetUpReshowBattleScreenAfterMenu(void);
void sub_81089BC(void);
void sub_810B108(u8);
void ResetBagCursorPositions(void);
void InitPokedudeBag(u8);
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 sub_8108CB4(void);
void Bag_BeginCloseWin0Animation(void);
void ItemMenu_SetExitCallback(void (*)(void));
void DisplayItemMessageInBag(u8 taskId, u8 bgId, const u8 * string, TaskFunc followUpFunc);
void sub_810A1F8(u8 taskId);
void sub_8107ECC(void);
void sub_810AF74(void);
void sub_8108DC8(u8 pocketId);
void sub_81089F4(u8 pocketId);
void DisplayItemMessageInBag(u8 taskId, u8 fontId, const u8 * string, TaskFunc followUpFunc);
void Task_ReturnToBagFromContextMenu(u8 taskId);
void CB2_BagMenuFromBattle(void);
void InitOldManBag(void);
void Pocket_CalculateNItemsAndMaxShowed(u8 pocketId);
void PocketCalculateInitialCursorPosAndItemsAbove(u8 pocketId);
void GoToBagMenu(u8 menuType, u8 pocket, MainCallback callback);
#endif //GUARD_ITEM_MENU_H
+8 -10
View File
@@ -3,28 +3,26 @@
#include "global.h"
extern void * gUnknown_2039884;
extern const struct CompressedSpriteSheet gUnknown_83D41E4;
extern const struct CompressedSpriteSheet gUnknown_83D41EC;
extern const struct CompressedSpritePalette gUnknown_83D41F4;
extern const struct CompressedSpriteSheet gSpriteSheet_Backpack;
extern const struct CompressedSpriteSheet gSpriteSheet_Satchel;
extern const struct CompressedSpritePalette gSpritePalette_BagOrSatchel;
extern const struct CompressedSpriteSheet gBagSwapSpriteSheet;
extern const struct CompressedSpritePalette gBagSwapSpritePalette;
void ResetItemMenuIconState(void);
void sub_80985E4(void);
void ItemMenuIcons_CreateInsertIndicatorBarHidden(void);
void DestroyItemMenuIcon(bool8 a0);
void CreateItemMenuIcon(u16 itemId, bool8 a0);
void CopyItemIconPicTo4x4Buffer(const void *src, void *dest);
u8 AddItemIconObject(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_80986A8(s16 x, u16 y);
void sub_8098660(u8);
void ItemMenuIcons_MoveInsertIndicatorBar(s16 x, u16 y);
void ItemMenuIcons_ToggleInsertIndicatorBarVisibility(bool8 invisible);
void sub_8098528(u8);
void sub_8098580(void);
const void * sub_8098974(u16 itemId, u8 ptrId);
void sub_80984FC(u8 animNum);
const void * GetItemIconGfxPtr(u16 itemId, u8 ptrId);
void CreateBagOrSatchelSprite(u8 animNum);
#endif // GUARD_ITEM_MENU_ICONS
+1
View File
@@ -4,5 +4,6 @@
#include "global.h"
void CreateMapNamePopupIfNotAlreadyRunning(bool32 palIntoFadedBuffer);
void DismissMapNamePopup(void);
#endif //GUARD_MAP_NAME_POPUP_H
+2 -2
View File
@@ -20,14 +20,14 @@ bool8 sub_80BF748(void);
bool8 MenuHelpers_LinkSomething(void);
void SetVBlankHBlankCallbacksToNull(void);
void ResetAllBgsCoordinatesAndBgCntRegs(void);
u8 sub_80BF8E4(void);
u8 GetDialogBoxFontId(void);
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 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 GetLRKeysPressedAndHeld(void);
bool8 itemid_link_can_give_berry(u16 itemId);
bool8 itemid_80BF6D8_mail_related(u16 itemId);
bool8 CanWriteMailHere(u16 itemId);
void ResetVramOamAndBgCntRegs(void);
#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_ICanPayThisMuch_WouldThatBeOkay[];
extern const u8 gText_TurnedOverItemsWorthYen[];
extern const u8 gPokeDudeText_TMTypes[];
extern const u8 gPokeDudeText_ReadTMDescription[];
extern const u8 gPokedudeText_TMTypes[];
extern const u8 gPokedudeText_ReadTMDescription[];
extern const u8 gFameCheckerText_Cancel[];
extern const u8 gFameCheckerText_ListMenuCursor[];
extern const u8 gFameCheckerText_FameCheckerWillBeClosed[];
@@ -134,7 +134,7 @@ extern const u8 gTeachyTvString_CatchPkmn[];
extern const u8 gTeachyTvString_AboutTMs[];
extern const u8 gTeachyTvString_RegisterItem[];
extern const u8 gTeachyTvString_Cancel[];
extern const u8 gTeachyTvText_PokeDudeSaysHello[];
extern const u8 gTeachyTvText_PokedudeSaysHello[];
extern const u8 gTeachyTvText_BattleScript1[];
extern const u8 gTeachyTvText_StatusScript1[];
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_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
+10
View File
@@ -1,6 +1,16 @@
#ifndef 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 CB2_ReturnToTeachyTV(void);
void SetTeachyTvControllerModeToResume(void);
+11 -1
View File
@@ -1,8 +1,18 @@
#ifndef 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 ResetTMCaseCursorPos(void);
void PokeDude_InitTMCase(void);
void Pokedude_InitTMCase(void);
#endif //GUARD_TM_CASE_H
+2 -2
View File
@@ -232,7 +232,7 @@ SECTIONS {
src/pokedex_screen.o(.text);
asm/pokedex_screen.o(.text);
src/list_menu.o(.text);
asm/item_menu.o(.text);
src/item_menu.o(.text);
src/save_location.o(.text);
src/bag.o(.text);
src/trainer_pokemon_sprites.o(.text);
@@ -517,7 +517,7 @@ SECTIONS {
src/pokedex_screen.o(.rodata);
data/pokedex_screen.o(.rodata);
src/list_menu.o(.rodata);
data/item_menu.o(.rodata);
src/item_menu.o(.rodata);
src/save_location.o(.rodata);
src/bag.o(.rodata);
src/trainer_pokemon_sprites.o(.rodata);
+141 -147
View File
@@ -10,17 +10,18 @@
#include "menu.h"
#include "money.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");
const u8 gUnknown_84530B8[][3] = {
static const u8 sTextColors[][3] = {
{0, 1, 2},
{0, 2, 3},
{0, 3, 2},
{0, 8, 9}
};
const struct WindowTemplate gUnknown_84530C4[] = {
static const struct WindowTemplate sDefaultBagWindowsStd[] = {
{
.bg = 0,
.tilemapLeft = 0x0b,
@@ -47,7 +48,8 @@ const struct WindowTemplate gUnknown_84530C4[] = {
.baseBlock = 0x01f8
}, DUMMY_WIN_TEMPLATE
};
const struct WindowTemplate gUnknown_84530E4[] = {
static const struct WindowTemplate sDefaultBagWindowsDeposit[] = {
{
.bg = 0,
.tilemapLeft = 0x0b,
@@ -74,7 +76,8 @@ const struct WindowTemplate gUnknown_84530E4[] = {
.baseBlock = 0x01f8
}, DUMMY_WIN_TEMPLATE
};
const struct WindowTemplate gUnknown_8453104[] = {
static const struct WindowTemplate sWindowTemplates[] = {
{
.bg = 0,
.tilemapLeft = 24,
@@ -99,122 +102,114 @@ const struct WindowTemplate gUnknown_8453104[] = {
.height = 3,
.paletteNum = 0xC,
.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 = {
.bg = 0,
.tilemapLeft = 23,
.tilemapTop = 15,
.width = 6,
.height = 4,
.paletteNum = 0xF,
.baseBlock = 0x28a
};
static const u8 sUnused_8453174[] = {16, 8, 4};
const struct WindowTemplate gUnknown_8453124 = {
.bg = 0,
.tilemapLeft = 21,
.tilemapTop = 9,
.width = 6,
.height = 4,
.paletteNum = 0xF,
.baseBlock = 0x28a
};
static EWRAM_DATA u8 sOpenWindows[11] = {};
const struct WindowTemplate gUnknown_845312C[] = {
{
.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)
void InitBagWindows(void)
{
u8 i;
if (gUnknown_203ACFC.location != 3)
InitWindows(gUnknown_84530C4);
if (gBagMenuState.location != 3)
InitWindows(sDefaultBagWindowsStd);
else
InitWindows(gUnknown_84530E4);
InitWindows(sDefaultBagWindowsDeposit);
DeactivateAllTextPrinters();
TextWindow_SetUserSelectedFrame(0, 0x64, 0xE0);
TextWindow_LoadResourcesStdFrame0(0, 0x6D, 0xD0);
TextWindow_SetStdFrame0_WithPal(0, 0x81, 0xC0);
LoadPalette(gUnknown_8453098, 0xF0, 0x20);
LoadPalette(sBagWindowPalF, 0xF0, 0x20);
for (i = 0; i < 3; i++)
{
FillWindowPixelBuffer(i, 0x00);
@@ -223,22 +218,22 @@ void sub_810B858(void)
ScheduleBgCopyTilemapToVram(0);
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);
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;
DrawStdFrameWithCustomTileAndPalette(2, FALSE, 0x081, 0x0C);
@@ -246,77 +241,76 @@ void sub_810B994(void)
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]);
if (a0 != 6)
sOpenWindows[whichWindow] = AddWindow(&sWindowTemplates[whichWindow + nItems]);
if (whichWindow != 6)
{
DrawStdFrameWithCustomTileAndPalette(gUnknown_203AD34[a0], FALSE, 0x064, 0x0E);
DrawStdFrameWithCustomTileAndPalette(sOpenWindows[whichWindow], FALSE, 0x064, 0xE);
}
else
{
DrawStdFrameWithCustomTileAndPalette(gUnknown_203AD34[a0], FALSE, 0x081, 0x0C);
DrawStdFrameWithCustomTileAndPalette(sOpenWindows[whichWindow], FALSE, 0x081, 0xC);
}
ScheduleBgCopyTilemapToVram(0);
}
return gUnknown_203AD34[a0];
return sOpenWindows[whichWindow];
}
void sub_810BA3C(u8 a0)
void HideBagWindow(u8 whichWindow)
{
ClearStdWindowAndFrameToTransparent(gUnknown_203AD34[a0], FALSE);
ClearWindowTilemap(gUnknown_203AD34[a0]);
RemoveWindow(gUnknown_203AD34[a0]);
ClearStdWindowAndFrameToTransparent(sOpenWindows[whichWindow], FALSE);
ClearWindowTilemap(sOpenWindows[whichWindow]);
RemoveWindow(sOpenWindows[whichWindow]);
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);
ClearWindowTilemap(gUnknown_203AD34[a0]);
RemoveWindow(gUnknown_203AD34[a0]);
ClearDialogWindowAndFrameToTransparent(sOpenWindows[whichWindow], FALSE);
ClearWindowTilemap(sOpenWindows[whichWindow]);
RemoveWindow(sOpenWindows[whichWindow]);
PutWindowTilemap(1);
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);
}
+2 -2
View File
@@ -379,9 +379,9 @@ static void OpenBagAndChooseItem(void)
nullsub_44();
FreeAllWindowBuffers();
if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
sub_8107ECC();
CB2_BagMenuFromBattle();
else
sub_810AF74();
InitOldManBag();
}
}
+1 -1
View File
@@ -1330,7 +1330,7 @@ static void OpenBagAndChooseItem(void)
gBattlerControllerFuncs[gActiveBattler] = CompleteWhenChoseItem;
nullsub_44();
FreeAllWindowBuffers();
sub_8107ECC();
CB2_BagMenuFromBattle();
}
}
+6 -5
View File
@@ -23,6 +23,7 @@
#include "battle_interface.h"
#include "battle_message.h"
#include "reshow_battle_screen.h"
#include "teachy_tv.h"
#include "constants/songs.h"
#include "constants/items.h"
#include "constants/moves.h"
@@ -733,15 +734,15 @@ static void OpenBagAndChooseItem(void)
FreeAllWindowBuffers();
switch (gSpecialVar_0x8004)
{
case 1:
case TTVSCR_STATUS:
default:
callbackId = 7;
callbackId = ITEMMENULOCATION_TTVSCR_STATUS;
break;
case 3:
callbackId = 8;
case TTVSCR_CATCHING:
callbackId = ITEMMENULOCATION_TTVSCR_CATCHING;
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 TryCorrectShedinjaLanguage(struct Pokemon *mon);
static void BattleMainCB1(void);
static void CB2_QuitPokeDudeBattle(void);
static void CB2_QuitPokedudeBattle(void);
static void sub_80111FC(struct Sprite *sprite);
static void sub_8011B94(void);
static void sub_8011BB0(void);
@@ -1438,7 +1438,7 @@ void BattleMainCB2(void)
gSpecialVar_Result = gBattleOutcome = B_OUTCOME_DREW;
ResetPaletteFadeControl();
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
SetMainCallback2(CB2_QuitPokeDudeBattle);
SetMainCallback2(CB2_QuitPokedudeBattle);
}
}
@@ -1454,7 +1454,7 @@ void FreeRestoreBattleData(void)
FreeBattleResources();
}
static void CB2_QuitPokeDudeBattle(void)
static void CB2_QuitPokedudeBattle(void)
{
UpdatePaletteFade();
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_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_TrainerBlockedBall[] = _("The TRAINER blocked the BALL!");
static const u8 sText_DontBeAThief[] = _("Don't be a thief!");
@@ -876,7 +876,7 @@ const u8 *const gBattleStringsTable[] = {
Text_1A5D31,
Text_1A5D6E,
Text_1A5DB1,
sText_PokeDudeUsedItem,
sText_PokedudeUsedItem,
gUnknown_83FDA4D,
gUnknown_83FDA7A,
gUnknown_83FDA8C,
+3 -3
View File
@@ -1269,7 +1269,7 @@ static void Task_ContextMenu_Sell(u8 taskId)
{
CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat);
DisplayItemMessageInBerryPouch(taskId, sub_80BF8E4(), gStringVar4, Task_BerryPouch_DestroyDialogueWindowAndRefreshListMenu);
DisplayItemMessageInBerryPouch(taskId, GetDialogBoxFontId(), gStringVar4, Task_BerryPouch_DestroyDialogueWindowAndRefreshListMenu);
}
else
{
@@ -1285,7 +1285,7 @@ static void Task_ContextMenu_Sell(u8 taskId)
data[2] = 99;
CopyItemName(gSpecialVar_ItemId, gStringVar1);
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;
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);
DisplayItemMessageInBerryPouch(taskId, sub_80BF8E4(), gStringVar4, Task_SellMultiple_CreateYesNoMenu);
DisplayItemMessageInBerryPouch(taskId, GetDialogBoxFontId(), gStringVar4, Task_SellMultiple_CreateYesNoMenu);
}
static void Task_SellMultiple_CreateYesNoMenu(u8 taskId)
+5 -5
View File
@@ -60,12 +60,12 @@ const struct SpriteFrameImage gTrainerBackPicTable_Leaf[] =
gTrainerBackPic_Leaf + 0x2000, 0x0800,
};
const struct SpriteFrameImage gTrainerBackPicTable_PokeDude[] =
const struct SpriteFrameImage gTrainerBackPicTable_Pokedude[] =
{
gTrainerBackPic_PokeDude, 0x0800,
gTrainerBackPic_PokeDude + 0x0800, 0x0800,
gTrainerBackPic_PokeDude + 0x1000, 0x0800,
gTrainerBackPic_PokeDude + 0x1800, 0x0800,
gTrainerBackPic_Pokedude, 0x0800,
gTrainerBackPic_Pokedude + 0x0800, 0x0800,
gTrainerBackPic_Pokedude + 0x1000, 0x0800,
gTrainerBackPic_Pokedude + 0x1800, 0x0800,
};
const struct SpriteFrameImage gTrainerBackPicTable_OldMan[] =
+4 -4
View File
@@ -16,7 +16,7 @@ static const union AnimCmd sAnimCmd_Leaf_1[] = {
ANIMCMD_END
};
static const union AnimCmd sAnimCmd_PokeDude_1[] = {
static const union AnimCmd sAnimCmd_Pokedude_1[] = {
ANIMCMD_FRAME(1, 24),
ANIMCMD_FRAME(2, 9),
ANIMCMD_FRAME(3, 24),
@@ -60,9 +60,9 @@ const union AnimCmd *const sBackAnims_Leaf[] = {
sAnimCmd_Leaf_1
};
const union AnimCmd *const sBackAnims_PokeDude[] = {
const union AnimCmd *const sBackAnims_Pokedude[] = {
sAnim_GeneralFrame0,
sAnimCmd_PokeDude_1
sAnimCmd_Pokedude_1
};
const union AnimCmd *const sBackAnims_OldMan[] = {
@@ -85,6 +85,6 @@ const union AnimCmd *const *const gTrainerBackAnimsPtrTable[] = {
sBackAnims_Leaf,
sBackAnims_RSBrendan,
sBackAnims_RSMay,
sBackAnims_PokeDude,
sBackAnims_Pokedude,
sBackAnims_OldMan
};
+2 -2
View File
@@ -12,7 +12,7 @@ const struct CompressedSpriteSheet gTrainerBackPicTable[] = {
{ (const u32 *)gTrainerBackPic_Leaf, 0x2800, 1 },
{ (const u32 *)gTrainerBackPic_RSBrendan, 0x2000, 2 },
{ (const u32 *)gTrainerBackPic_RSMay, 0x2000, 3 },
{ (const u32 *)gTrainerBackPic_PokeDude, 0x2000, 4 },
{ (const u32 *)gTrainerBackPic_Pokedude, 0x2000, 4 },
{ (const u32 *)gTrainerBackPic_OldMan, 0x2000, 5 }
};
@@ -21,6 +21,6 @@ const struct CompressedSpritePalette gTrainerBackPicPaletteTable[] = {
{ gTrainerPalette_LeafBackPic, 1 },
{ gTrainerPalette_RSBrendan1, 2 },
{ gTrainerPalette_RSMay1, 3 },
{ gTrainerPalette_PokeDudeBackPic, 4 },
{ gTrainerPalette_PokedudeBackPic, 4 },
{ 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 "constants/items.h"
static EWRAM_DATA u8 gUnknown_2039878[12] = {0};
EWRAM_DATA void * gUnknown_2039884 = NULL;
static EWRAM_DATA void * gUnknown_2039888 = NULL;
static EWRAM_DATA u8 sItemMenuIconSpriteIds[12] = {0};
static EWRAM_DATA void * sItemIconTilesBuffer = NULL;
static EWRAM_DATA void * sItemIconTilesBufferPadded = NULL;
static void sub_8098560(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,
.shape = ST_OAM_SQUARE,
.size = 3,
@@ -20,36 +20,36 @@ static const struct OamData gUnknown_83D416C = {
.paletteNum = 0
};
static const union AnimCmd gUnknown_83D4174[] = {
static const union AnimCmd sAnim_BagOrSatchel_OpenItemPocket[] = {
ANIMCMD_FRAME( 0, 5),
ANIMCMD_FRAME(0x40, 0),
ANIMCMD_END
};
static const union AnimCmd gUnknown_83D4180[] = {
static const union AnimCmd sAnim_BagOrSatchel_OpenKeyItemPocket[] = {
ANIMCMD_FRAME( 0, 5),
ANIMCMD_FRAME(0x80, 0),
ANIMCMD_END
};
static const union AnimCmd gUnknown_83D418C[] = {
static const union AnimCmd sAnim_BagOrSatchel_OpenPokeBallsPocket[] = {
ANIMCMD_FRAME( 0, 5),
ANIMCMD_FRAME(0xc0, 0),
ANIMCMD_END
};
static const union AnimCmd *const gUnknown_83D4198[] = {
gUnknown_83D4180,
gUnknown_83D418C,
gUnknown_83D4174
static const union AnimCmd *const sAnimTable_BagOrSatchel[] = {
sAnim_BagOrSatchel_OpenKeyItemPocket,
sAnim_BagOrSatchel_OpenPokeBallsPocket,
sAnim_BagOrSatchel_OpenItemPocket
};
static const union AffineAnimCmd gUnknown_83D41A4[] = {
static const union AffineAnimCmd sAffineAnim_Idle[] = {
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
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, 4),
AFFINEANIMCMD_FRAME(0, 0, -2, 4),
@@ -57,35 +57,35 @@ static const union AffineAnimCmd gUnknown_83D41B4[] = {
AFFINEANIMCMD_END
};
static const union AffineAnimCmd *const gUnknown_83D41DC[] = {
gUnknown_83D41A4,
gUnknown_83D41B4
static const union AffineAnimCmd *const sAffineAnimTable_BagOrSatchel[] = {
sAffineAnim_Idle,
sAffineAnim_Wobble
};
const struct CompressedSpriteSheet gUnknown_83D41E4 = {
const struct CompressedSpriteSheet gSpriteSheet_Backpack = {
gUnknown_8E8362C,
0x2000,
100
};
const struct CompressedSpriteSheet gUnknown_83D41EC = {
const struct CompressedSpriteSheet gSpriteSheet_Satchel = {
gUnknown_8E83DBC,
0x2000,
100
};
const struct CompressedSpritePalette gUnknown_83D41F4 = {
const struct CompressedSpritePalette gSpritePalette_BagOrSatchel = {
gUnknown_8E84560,
100
};
static const struct SpriteTemplate gUnknown_83D41FC = {
static const struct SpriteTemplate sSpriteTemplate_BagOrSatchel = {
100,
100,
&gUnknown_83D416C,
gUnknown_83D4198,
&sOamData_BagOrSatchel,
sAnimTable_BagOrSatchel,
NULL,
gUnknown_83D41DC,
sAffineAnimTable_BagOrSatchel,
SpriteCallbackDummy
};
@@ -139,7 +139,7 @@ static const struct SpriteTemplate gUnknown_83D4250 = {
SpriteCallbackDummy
};
static const struct OamData gUnknown_83D4268 = {
static const struct OamData sOamData_ItemIcon = {
.affineMode = ST_OAM_AFFINE_OFF,
.shape = ST_OAM_SQUARE,
.size = 2,
@@ -147,26 +147,26 @@ static const struct OamData gUnknown_83D4268 = {
.paletteNum = 2
};
static const union AnimCmd gUnknown_83D4270[] = {
static const union AnimCmd sAnim_ItemIcon_0[] = {
ANIMCMD_FRAME(0, 0),
ANIMCMD_END
};
static const union AnimCmd *const gUnknown_83D4278[] = {
gUnknown_83D4270
static const union AnimCmd *const sAnimTable_ItemIcon[] = {
sAnim_ItemIcon_0
};
static const struct SpriteTemplate gUnknown_83D427C = {
static const struct SpriteTemplate sSpriteTemplate_ItemIcon = {
102,
102,
&gUnknown_83D4268,
gUnknown_83D4278,
&sOamData_ItemIcon,
sAnimTable_ItemIcon,
NULL,
gDummySpriteAffineAnimTable,
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_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},
@@ -549,19 +549,19 @@ void ResetItemMenuIconState(void)
{
u16 i;
for (i = 0; i < NELEMS(gUnknown_2039878); i++)
gUnknown_2039878[i] = 0xFF;
for (i = 0; i < NELEMS(sItemMenuIconSpriteIds); i++)
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);
}
void sub_8098528(u8 animNum)
{
struct Sprite * sprite = &gSprites[gUnknown_2039878[0]];
struct Sprite * sprite = &gSprites[sItemMenuIconSpriteIds[0]];
sprite->pos2.y = -5;
sprite->callback = sub_8098560;
StartSpriteAnim(sprite, animNum);
@@ -577,7 +577,7 @@ static void sub_8098560(struct Sprite * sprite)
void sub_8098580(void)
{
struct Sprite * sprite = &gSprites[gUnknown_2039878[0]];
struct Sprite * sprite = &gSprites[sItemMenuIconSpriteIds[0]];
if (sprite->affineAnimEnded)
{
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 * ptr = &gUnknown_2039878[1];
u8 * ptr = &sItemMenuIconSpriteIds[1];
for (i = 0; i < 9; i++)
{
ptr[i] = CreateSprite(&gUnknown_83D4250, i * 16 + 0x60, 7, 0);
if (i != 0)
switch (i)
{
if (i == 8)
StartSpriteAnim(&gSprites[ptr[i]], 2);
else
StartSpriteAnim(&gSprites[ptr[i]], 1);
case 0:
break;
case 8:
StartSpriteAnim(&gSprites[ptr[i]], 2);
break;
default:
StartSpriteAnim(&gSprites[ptr[i]], 1);
break;
}
gSprites[ptr[i]].invisible = TRUE;
}
}
void sub_8098660(u8 flag)
void ItemMenuIcons_ToggleInsertIndicatorBarVisibility(bool8 invisible)
{
u8 i;
u8 * ptr = &gUnknown_2039878[1];
u8 * ptr = &sItemMenuIconSpriteIds[1];
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 * ptr = &gUnknown_2039878[1];
u8 * ptr = &sItemMenuIconSpriteIds[1];
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;
ptr1 = &gUnknown_2039884;
ptr1 = &sItemIconTilesBuffer;
*ptr1 = Alloc(0x120);
if (*ptr1 == NULL)
return FALSE;
ptr2 = &gUnknown_2039888;
ptr2 = &sItemIconTilesBufferPadded;
*ptr2 = AllocZeroed(0x200);
if (*ptr2 == NULL)
{
@@ -671,27 +675,27 @@ u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId)
struct CompressedSpritePalette spritePalette;
u8 spriteId;
if (!sub_80986EC())
if (!TryAllocItemIconTilesBuffers())
return MAX_SPRITES;
LZDecompressWram(sub_8098974(itemId, 0), gUnknown_2039884);
CopyItemIconPicTo4x4Buffer(gUnknown_2039884, gUnknown_2039888);
spriteSheet.data = gUnknown_2039888;
LZDecompressWram(GetItemIconGfxPtr(itemId, 0), sItemIconTilesBuffer);
CopyItemIconPicTo4x4Buffer(sItemIconTilesBuffer, sItemIconTilesBufferPadded);
spriteSheet.data = sItemIconTilesBufferPadded;
spriteSheet.size = 0x200;
spriteSheet.tag = tilesTag;
LoadSpriteSheet(&spriteSheet);
spritePalette.data = sub_8098974(itemId, 1);
spritePalette.data = GetItemIconGfxPtr(itemId, 1);
spritePalette.tag = paletteTag;
LoadCompressedSpritePalette(&spritePalette);
CpuCopy16(&gUnknown_83D427C, &template, sizeof(struct SpriteTemplate));
CpuCopy16(&sSpriteTemplate_ItemIcon, &template, sizeof(struct SpriteTemplate));
template.tileTag = tilesTag;
template.paletteTag = paletteTag;
spriteId = CreateSprite(&template, 0, 0, 0);
Free(gUnknown_2039884);
Free(gUnknown_2039888);
Free(sItemIconTilesBuffer);
Free(sItemIconTilesBufferPadded);
return spriteId;
}
@@ -702,17 +706,17 @@ u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origT
struct CompressedSpritePalette spritePalette;
u8 spriteId;
if (!sub_80986EC())
if (!TryAllocItemIconTilesBuffers())
return MAX_SPRITES;
LZDecompressWram(sub_8098974(itemId, 0), gUnknown_2039884);
CopyItemIconPicTo4x4Buffer(gUnknown_2039884, gUnknown_2039888);
spriteSheet.data = gUnknown_2039888;
LZDecompressWram(GetItemIconGfxPtr(itemId, 0), sItemIconTilesBuffer);
CopyItemIconPicTo4x4Buffer(sItemIconTilesBuffer, sItemIconTilesBufferPadded);
spriteSheet.data = sItemIconTilesBufferPadded;
spriteSheet.size = 0x200;
spriteSheet.tag = tilesTag;
LoadSpriteSheet(&spriteSheet);
spritePalette.data = sub_8098974(itemId, 1);
spritePalette.data = GetItemIconGfxPtr(itemId, 1);
spritePalette.tag = paletteTag;
LoadCompressedSpritePalette(&spritePalette);
@@ -721,14 +725,14 @@ u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origT
template.paletteTag = paletteTag;
spriteId = CreateSprite(&template, 0, 0, 0);
Free(gUnknown_2039884);
Free(gUnknown_2039888);
Free(sItemIconTilesBuffer);
Free(sItemIconTilesBufferPadded);
return spriteId;
}
void CreateItemMenuIcon(u16 itemId, u8 idx)
{
u8 * ptr = &gUnknown_2039878[10];
u8 * ptr = &sItemMenuIconSpriteIds[10];
u8 spriteId;
if (ptr[idx] == 0xFF)
@@ -747,7 +751,7 @@ void CreateItemMenuIcon(u16 itemId, u8 idx)
void DestroyItemMenuIcon(u8 idx)
{
u8 * ptr = &gUnknown_2039878[10];
u8 * ptr = &sItemMenuIconSpriteIds[10];
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)
itemId = ITEM_NONE;
return gUnknown_83D4294[itemId][attrId];
return sItemIconGfxPtrs[itemId][attrId];
}
void sub_80989A0(u16 itemId, u8 idx)
{
u8 * ptr = &gUnknown_2039878[10];
u8 * ptr = &sItemMenuIconSpriteIds[10];
u8 spriteId;
if (ptr[idx] == 0xFF)
+7 -7
View File
@@ -348,7 +348,7 @@ static bool8 ItemPc_DoGfxSetup(void)
gMain.state++;
break;
case 14:
sub_80985E4();
ItemMenuIcons_CreateInsertIndicatorBarHidden();
gMain.state++;
break;
case 15:
@@ -780,8 +780,8 @@ static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos)
StringExpandPlaceholders(gStringVar4, gOtherText_WhereShouldTheStrVar1BePlaced);
FillWindowPixelBuffer(1, 0x00);
ItemPc_AddTextPrinterParameterized(1, 2, gStringVar4, 0, 3, 2, 3, 0, 0);
sub_80986A8(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
sub_8098660(0);
ItemMenuIcons_MoveInsertIndicatorBar(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
ItemMenuIcons_ToggleInsertIndicatorBarVisibility(FALSE);
ItemPc_PrintOrRemoveCursor(data[0], 2);
gTasks[taskId].func = Task_ItemPcMoveItemModeRun;
}
@@ -792,7 +792,7 @@ static void Task_ItemPcMoveItemModeRun(u8 taskId)
ListMenu_ProcessInput(data[0]);
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))
{
PlaySE(SE_SELECT);
@@ -814,13 +814,13 @@ static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos)
ItemPc_MoveItemModeCancel(taskId, pos);
else
{
ItemMenu_MoveItemSlotToNewPositionInArray(gSaveBlock1Ptr->pcItems, data[1], pos);
MoveItemSlotInList(gSaveBlock1Ptr->pcItems, data[1], pos);
DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row);
if (data[1] < pos)
sListMenuState.row--;
ItemPc_BuildListMenuTemplate();
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row);
sub_8098660(1);
ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE);
gTasks[taskId].func = Task_ItemPcMain;
}
}
@@ -834,7 +834,7 @@ static void ItemPc_MoveItemModeCancel(u8 taskId, u32 pos)
sListMenuState.row--;
ItemPc_BuildListMenuTemplate();
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row);
sub_8098660(1);
ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE);
gTasks[taskId].func = Task_ItemPcMain;
}
+17 -17
View File
@@ -154,7 +154,7 @@ static void sub_80A0FBC(u8 taskId)
{
ItemMenu_SetExitCallback(gUnknown_83E2954[itemType]);
if (itemType == 1)
sub_8108CB4();
Bag_BeginCloseWin0Animation();
ItemMenu_StartFadeToExitCallback(taskId);
}
}
@@ -188,7 +188,7 @@ static void sub_80A10C4(u8 taskId, bool8 a1, u8 a2, const u8 * str)
{
StringExpandPlaceholders(gStringVar4, str);
if (a1 == FALSE)
DisplayItemMessageInBag(taskId, a2, gStringVar4, sub_810A1F8);
DisplayItemMessageInBag(taskId, a2, gStringVar4, Task_ReturnToBagFromContextMenu);
else
DisplayItemMessageOnField(taskId, a2, gStringVar4, sub_80A112C);
}
@@ -345,7 +345,7 @@ void FieldUseFunc_CoinCase(u8 taskId)
StringExpandPlaceholders(gStringVar4, gUnknown_8416537);
ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF);
if (gTasks[taskId].data[3] == 0)
DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8);
DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu);
else
DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A112C);
}
@@ -356,7 +356,7 @@ void FieldUseFunc_PowderJar(u8 taskId)
StringExpandPlaceholders(gStringVar4, gUnknown_8416644);
ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF);
if (gTasks[taskId].data[3] == 0)
DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8);
DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu);
else
DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A112C);
}
@@ -384,7 +384,7 @@ void FieldUseFunc_PokeFlute(u8 taskId)
{
// Now that's a catchy tune!
if (gTasks[taskId].data[3] == 0)
DisplayItemMessageInBag(taskId, 2, gUnknown_841665C, sub_810A1F8);
DisplayItemMessageInBag(taskId, 2, gUnknown_841665C, Task_ReturnToBagFromContextMenu);
else
DisplayItemMessageOnField(taskId, 2, gUnknown_841665C, sub_80A112C);
}
@@ -401,7 +401,7 @@ static void sub_80A1674(u8 taskId)
if (WaitFanfare(FALSE))
{
if (gTasks[taskId].data[3] == 0)
DisplayItemMessageInBag(taskId, 2, gUnknown_84166A7, sub_810A1F8);
DisplayItemMessageInBag(taskId, 2, gUnknown_84166A7, Task_ReturnToBagFromContextMenu);
else
DisplayItemMessageOnField(taskId, 2, gUnknown_84166A7, sub_80A112C);
}
@@ -518,7 +518,7 @@ void BattleUseFunc_BerryPouch(u8 taskId)
static void InitBerryPouchFromBattle(void)
{
InitBerryPouch(BERRYPOUCH_FROMBATTLE, sub_8107ECC, 0);
InitBerryPouch(BERRYPOUCH_FROMBATTLE, CB2_BagMenuFromBattle, 0);
}
void FieldUseFunc_TeachyTv(u8 taskId)
@@ -562,7 +562,7 @@ void FieldUseFunc_SuperRepel(u8 taskId)
}
else
// 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)
@@ -572,15 +572,15 @@ static void sub_80A19E8(u8 taskId)
ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF);
VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_ItemId));
sub_80A1A44();
DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8);
DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu);
}
}
static void sub_80A1A44(void)
{
RemoveBagItem(gSpecialVar_ItemId, 1);
sub_8108DC8(ItemId_GetPocket(gSpecialVar_ItemId));
sub_81089F4(ItemId_GetPocket(gSpecialVar_ItemId));
Pocket_CalculateNItemsAndMaxShowed(ItemId_GetPocket(gSpecialVar_ItemId));
PocketCalculateInitialCursorPosAndItemsAbove(ItemId_GetPocket(gSpecialVar_ItemId));
CopyItemName(gSpecialVar_ItemId, gStringVar2);
StringExpandPlaceholders(gStringVar4, gUnknown_841658C);
}
@@ -613,7 +613,7 @@ static void sub_80A1B48(u8 taskId)
if (++gTasks[taskId].data[8] > 7)
{
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())
{
RemoveBagItem(gSpecialVar_ItemId, 1);
sub_8108CB4();
Bag_BeginCloseWin0Animation();
ItemMenu_StartFadeToExitCallback(taskId);
}
else
{
DisplayItemMessageInBag(taskId, 2, gUnknown_8416631, sub_810A1F8);
DisplayItemMessageInBag(taskId, 2, gUnknown_8416631, Task_ReturnToBagFromContextMenu);
}
}
void BattleUseFunc_PokeFlute(u8 taskId)
{
sub_8108CB4();
Bag_BeginCloseWin0Animation();
ItemMenu_StartFadeToExitCallback(taskId);
}
@@ -764,7 +764,7 @@ void BattleUseFunc_GuardSpec(u8 taskId)
{
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
{
@@ -790,7 +790,7 @@ static void Task_BattleUse_StatBooster_WaitButton_ReturnToBattle(u8 taskId)
{
if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))
{
sub_8108CB4();
Bag_BeginCloseWin0Animation();
ItemMenu_StartFadeToExitCallback(taskId);
}
}
+2 -2
View File
@@ -107,7 +107,7 @@ bool8 itemid_link_can_give_berry(u16 itemId)
return FALSE;
}
bool8 itemid_80BF6D8_mail_related(u16 itemId)
bool8 CanWriteMailHere(u16 itemId)
{
if (IsUpdateLinkStateCBActive() != TRUE && InUnionRoom() != TRUE)
return TRUE;
@@ -242,7 +242,7 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
return FALSE;
}
u8 sub_80BF8E4(void)
u8 GetDialogBoxFontId(void)
{
if (!ContextNpcGetTextColor())
return 4;
+1 -1
View File
@@ -98,7 +98,7 @@ void ResetMenuAndMonGlobals(void)
gDifferentSaveFile = FALSE;
ZeroPlayerPartyMons();
ZeroEnemyPartyMons();
sub_81089BC();
ResetBagCursorPositions();
ResetTMCaseCursorPos();
BerryPouch_CursorResetToTop();
ResetQuestLog();
+6 -6
View File
@@ -3451,7 +3451,7 @@ static void CursorCB_Give(u8 taskId)
void CB2_SelectBagItemToGive(void)
{
GoToBagMenu(1, 3, CB2_GiveHoldItem);
GoToBagMenu(ITEMMENULOCATION_PARTY, OPEN_BAG_LAST, CB2_GiveHoldItem);
}
void CB2_GiveHoldItem(void)
@@ -4283,12 +4283,12 @@ void CB2_ShowPartyMenuForItemUse(void)
static void CB2_ReturnToBagMenu(void)
{
GoToBagMenu(11, 3, NULL);
GoToBagMenu(ITEMMENULOCATION_LAST, OPEN_BAG_LAST, NULL);
}
static void CB2_ReturnToTMCaseMenu(void)
{
InitTMCase(5, NULL, 0xFF);
InitTMCase(TMCASE_NA, NULL, 0xFF);
}
static void CB2_ReturnToBerryPouchMenu(void)
@@ -5904,7 +5904,7 @@ void OpenPartyMenuInBattle(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();
UpdatePartyToBattleOrder();
}
@@ -5919,7 +5919,7 @@ void sub_81279E0(void)
FALSE,
PARTY_MSG_NONE,
sub_8120C3C,
sub_8107ECC);
CB2_BagMenuFromBattle);
sub_80EB2F4(8);
}
else
@@ -5929,7 +5929,7 @@ void sub_81279E0(void)
if (GetPocketByItemId(gSpecialVar_ItemId) == POCKET_BERRY_POUCH)
callback = CB2_ReturnToBerryPouchMenu;
else
callback = sub_8107ECC;
callback = CB2_BagMenuFromBattle;
InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE,
GetPartyLayoutFromBattleType(),
PARTY_ACTION_USE_ITEM,
+1 -1
View File
@@ -322,7 +322,7 @@ static void Task_DepositItem_WaitFadeAndGoToBag(u8 taskId)
if (!gPaletteFade.active)
{
CleanupOverworldWindowsAndTilemaps();
GoToBagMenu(3, POCKET_ITEMS - 1, CB2_ReturnToField);
GoToBagMenu(ITEMMENULOCATION_ITEMPC, OPEN_BAG_ITEMS, CB2_ReturnToField);
gFieldCallback = CB2_ReturnFromDepositMenu;
DestroyTask(taskId);
}
+1 -1
View File
@@ -1547,7 +1547,7 @@ const struct SpriteTemplate gUnknown_825DF50[] =
.paletteTag = 0,
.oam = &gOamData_824F018,
.anims = NULL,
.images = gTrainerBackPicTable_PokeDude,
.images = gTrainerBackPicTable_Pokedude,
.affineAnims = gSpriteAffineAnimTable_82348C8,
.callback = sub_80120C4,
},
+1 -1
View File
@@ -307,7 +307,7 @@ static void Task_HandleShopMenuSell(u8 taskId)
static void CB2_GoToSellMenu(void)
{
GoToBagMenu(2, POCKET_POKE_BALLS, CB2_ReturnToField);
GoToBagMenu(ITEMMENULOCATION_SHOP, OPEN_BAG_LAST, CB2_ReturnToField);
gFieldCallback = MapPostLoadHook_ReturnToShopMenu;
}
+3 -13
View File
@@ -34,16 +34,6 @@
#include "fieldmap.h"
#include "strings.h"
enum TeachyTvScript
{
TTVSCR_BATTLE,
TTVSCR_STATUS,
TTVSCR_MATCHUPS,
TTVSCR_CATCHING,
TTVSCR_TMS,
TTVSCR_REGISTER
};
struct TeachyTvCtrlBlk
{
MainCallback callback;
@@ -805,7 +795,7 @@ static void TTVcmd_NpcMoveAndSetupTextPrinter(u8 taskId)
if (spriteAddr->pos2.x == 0x78)
{
StartSpriteAnim(&gSprites[data[1]], 0);
TeachyTvInitTextPrinter(gTeachyTvText_PokeDudeSaysHello);
TeachyTvInitTextPrinter(gTeachyTvText_PokedudeSaysHello);
data[2] = 0;
++data[3];
}
@@ -1103,9 +1093,9 @@ static void TTVcmd_TaskBattleOrFadeByOptionChosen(u8 taskId)
static void TeachyTvSetupBagItemsByOptionChosen(void)
{
if (sStaticResources.whichScript == TTVSCR_TMS)
sub_810B108(10);
InitPokedudeBag(ITEMMENULOCATION_TTVSCR_TMS);
else
sub_810B108(9);
InitPokedudeBag(ITEMMENULOCATION_TTVSCR_REGISTER);
}
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_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 struct ListMenuItem * sListMenuItemsBuffer = NULL;
static EWRAM_DATA u8 (* sListMenuStringsBuffer)[29] = NULL;
@@ -977,7 +977,7 @@ static void Task_SelectTMAction_FromSellMenu(u8 taskId)
{
CopyItemName(gSpecialVar_ItemId, gStringVar1);
StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat);
TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Subtask_CloseContextMenuAndReturnToMain);
TMCase_PrintMessageWithFollowupTask(taskId, GetDialogBoxFontId(), gStringVar4, Subtask_CloseContextMenuAndReturnToMain);
}
else
{
@@ -993,7 +993,7 @@ static void Task_SelectTMAction_FromSellMenu(u8 taskId)
data[2] = 99;
CopyItemName(gSpecialVar_ItemId, gStringVar1);
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);
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)
@@ -1133,13 +1133,13 @@ static void Task_AfterSale_ReturnToList(u8 taskId)
}
}
void PokeDude_InitTMCase(void)
void Pokedude_InitTMCase(void)
{
sPokeDudePackBackup = AllocZeroed(sizeof(*sPokeDudePackBackup));
memcpy(sPokeDudePackBackup->bagPocket_TMHM, gSaveBlock1Ptr->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
memcpy(sPokeDudePackBackup->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
sPokeDudePackBackup->unk_160 = sTMCaseStaticResources.selectedRow;
sPokeDudePackBackup->unk_162 = sTMCaseStaticResources.scrollOffset;
sPokedudePackBackup = AllocZeroed(sizeof(*sPokedudePackBackup));
memcpy(sPokedudePackBackup->bagPocket_TMHM, gSaveBlock1Ptr->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
memcpy(sPokedudePackBackup->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
sPokedudePackBackup->unk_160 = sTMCaseStaticResources.selectedRow;
sPokedudePackBackup->unk_162 = sTMCaseStaticResources.scrollOffset;
ClearItemSlots(gSaveBlock1Ptr->bagPocket_TMHM, NELEMS(gSaveBlock1Ptr->bagPocket_TMHM));
ClearItemSlots(gSaveBlock1Ptr->bagPocket_KeyItems, NELEMS(gSaveBlock1Ptr->bagPocket_KeyItems));
ResetTMCaseCursorPos();
@@ -1234,7 +1234,7 @@ static void Task_TMCaseDude_Playback(u8 taskId)
break;
case 8:
FillBG2RowWithPalette_2timesNplus1(1);
TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokeDudeText_TMTypes, 0);
TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokedudeText_TMTypes, 0);
gTasks[taskId].func = Task_TMCaseDude_Playback;
data[8]++;
break;
@@ -1256,7 +1256,7 @@ static void Task_TMCaseDude_Playback(u8 taskId)
break;
case 18:
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
data[8]++;
break;
@@ -1267,12 +1267,12 @@ static void Task_TMCaseDude_Playback(u8 taskId)
case 21:
if (!gPaletteFade.active)
{
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_TMHM, sPokedudePackBackup->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, sPokedudePackBackup->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
DestroyListMenuTask(data[0], NULL, NULL);
sTMCaseStaticResources.selectedRow = sPokeDudePackBackup->unk_160;
sTMCaseStaticResources.scrollOffset = sPokeDudePackBackup->unk_162;
Free(sPokeDudePackBackup);
sTMCaseStaticResources.selectedRow = sPokedudePackBackup->unk_160;
sTMCaseStaticResources.scrollOffset = sPokedudePackBackup->unk_162;
Free(sPokedudePackBackup);
CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
CB2_SetUpReshowBattleScreenAfterMenu();
BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, 0);
+1 -39
View File
@@ -335,45 +335,7 @@ gUnknown_203ACF0: @ 203ACF0
.align 2
.include "src/list_menu.o"
.align 2
gUnknown_203ACFC: @ 203ACFC
.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
.include "src/item_menu.o"
.align 2
.include "src/bag.o"
.align 2