party_menu fourth quarter

This commit is contained in:
jiangzhengwenjz
2019-11-24 03:03:29 +08:00
parent 5c1bdd0eb5
commit 972c044d71
26 changed files with 1551 additions and 4341 deletions
+2 -2
View File
@@ -6857,7 +6857,7 @@ _0810B564:
bl DestroyListMenuTask bl DestroyListMenuTask
bl sub_810AECC bl sub_810AECC
ldr r1, _0810B5B0 @ =gItemUseCB ldr r1, _0810B5B0 @ =gItemUseCB
ldr r0, _0810B5B4 @ =ItemUseCB_Medicine ldr r0, _0810B5B4 @ =ItemUseCB_MedicineStep
str r0, [r1] str r0, [r1]
ldr r0, _0810B5B8 @ =ChooseMonForInBattleItem ldr r0, _0810B5B8 @ =ChooseMonForInBattleItem
bl ItemMenu_SetExitCallback bl ItemMenu_SetExitCallback
@@ -6869,7 +6869,7 @@ _0810B564:
b _0810B5C6 b _0810B5C6
.align 2, 0 .align 2, 0
_0810B5B0: .4byte gItemUseCB _0810B5B0: .4byte gItemUseCB
_0810B5B4: .4byte ItemUseCB_Medicine _0810B5B4: .4byte ItemUseCB_MedicineStep
_0810B5B8: .4byte ChooseMonForInBattleItem _0810B5B8: .4byte ChooseMonForInBattleItem
_0810B5BC: .4byte sub_810B070 _0810B5BC: .4byte sub_810B070
_0810B5C0: _0810B5C0:
+2 -2
View File
@@ -7006,7 +7006,7 @@ _08119512:
str r0, [r1] str r0, [r1]
ldr r1, _08119538 @ =CB2_ReturnToField ldr r1, _08119538 @ =CB2_ReturnToField
movs r0, 0x8 movs r0, 0x8
bl ChooseMonForMoveTutor bl sub_81277F4
b _081198DC b _081198DC
.align 2, 0 .align 2, 0
_08119528: .4byte gPaletteFade _08119528: .4byte gPaletteFade
@@ -7359,7 +7359,7 @@ _081197CA:
str r0, [r1] str r0, [r1]
ldr r1, _0811983C @ =CB2_ReturnToField ldr r1, _0811983C @ =CB2_ReturnToField
movs r0, 0x9 movs r0, 0x9
bl ChooseMonForMoveTutor bl sub_81277F4
adds r0, r6, 0 adds r0, r6, 0
bl sub_81186B0 bl sub_81186B0
ldrh r0, [r7, 0x2] ldrh r0, [r7, 0x2]
-4264
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -1508,8 +1508,8 @@ sub_811D120: @ 811D120
bx r1 bx r1
thumb_func_end sub_811D120 thumb_func_end sub_811D120
thumb_func_start GetMonLevelUpWindowStats thumb_func_start BufferMonStatsToTaskData
GetMonLevelUpWindowStats: @ 811D130 BufferMonStatsToTaskData: @ 811D130
push {r4,r5,lr} push {r4,r5,lr}
adds r4, r0, 0 adds r4, r0, 0
adds r5, r1, 0 adds r5, r1, 0
@@ -1539,7 +1539,7 @@ GetMonLevelUpWindowStats: @ 811D130
pop {r4,r5} pop {r4,r5}
pop {r0} pop {r0}
bx r0 bx r0
thumb_func_end GetMonLevelUpWindowStats thumb_func_end BufferMonStatsToTaskData
thumb_func_start sub_811D178 thumb_func_start sub_811D178
sub_811D178: @ 811D178 sub_811D178: @ 811D178
+1 -1
View File
@@ -13968,7 +13968,7 @@ EventScript_1C4F26:: @ 81C4F26
end end
EventScript_1C4F30:: @ 81C4F30 EventScript_1C4F30:: @ 81C4F30
special sub_812781C special ChooseMonForMoveTutor
waitstate waitstate
lock lock
faceplayer faceplayer
+1 -1
View File
@@ -405,7 +405,7 @@ gSpecials:: @ 815FD60
def_special get_unknown_box_id def_special get_unknown_box_id
def_special Special_OpenMuseumFossilPic def_special Special_OpenMuseumFossilPic
def_special Special_CloseMuseumFossilPic def_special Special_CloseMuseumFossilPic
def_special sub_812781C def_special ChooseMonForMoveTutor
def_special ChooseMonForWirelessMinigame def_special ChooseMonForWirelessMinigame
def_special SetBattledTrainerFlag def_special SetBattledTrainerFlag
def_special sub_812B35C def_special sub_812B35C
+7 -7
View File
@@ -859,27 +859,27 @@ gUnknown_84169F8:: @ 84169F8
.string "This can't be used on\n" .string "This can't be used on\n"
.string "that POKéMON.{PAUSE_UNTIL_PRESS}$" .string "that POKéMON.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416A1E:: @ 8416A1E gText_PkmnCantSwitchOut:: @ 8416A1E
.string "{STR_VAR_1} can't be switched\n" .string "{STR_VAR_1} can't be switched\n"
.string "out!{PAUSE_UNTIL_PRESS}$" .string "out!{PAUSE_UNTIL_PRESS}$"
gUnknown_8416A3A:: @ 8416A3A gText_PkmnAlreadyInBattle:: @ 8416A3A
.string "{STR_VAR_1} is already\n" .string "{STR_VAR_1} is already\n"
.string "in battle!{PAUSE_UNTIL_PRESS}$" .string "in battle!{PAUSE_UNTIL_PRESS}$"
gUnknown_8416A55:: @ 8416A55 gText_PkmnAlreadySelected:: @ 8416A55
.string "{STR_VAR_1} has already been\n" .string "{STR_VAR_1} has already been\n"
.string "selected.{PAUSE_UNTIL_PRESS}$" .string "selected.{PAUSE_UNTIL_PRESS}$"
gUnknown_8416A75:: @ 8416A75 gText_PkmnHasNoEnergy:: @ 8416A75
.string "{STR_VAR_1} has no energy\n" .string "{STR_VAR_1} has no energy\n"
.string "left to battle!{PAUSE_UNTIL_PRESS}$" .string "left to battle!{PAUSE_UNTIL_PRESS}$"
gUnknown_8416A98:: @ 8416A98 gText_CantSwitchWithAlly:: @ 8416A98
.string "You can't switch {STR_VAR_1}'s\n" .string "You can't switch {STR_VAR_1}'s\n"
.string "POKéMON with one of yours!{PAUSE_UNTIL_PRESS}$" .string "POKéMON with one of yours!{PAUSE_UNTIL_PRESS}$"
gUnknown_8416ACB:: @ 8416ACB gText_EggCantBattle:: @ 8416ACB
.string "An EGG can't battle!{PAUSE_UNTIL_PRESS}$" .string "An EGG can't battle!{PAUSE_UNTIL_PRESS}$"
gText_CantUseUntilNewBadge:: @ 8416AE2 gText_CantUseUntilNewBadge:: @ 8416AE2
@@ -908,7 +908,7 @@ gText_MailMessageWillBeLost:: @ 8416BC3
.string "If the MAIL is removed, the\n" .string "If the MAIL is removed, the\n"
.string "message will be lost. Okay?$" .string "message will be lost. Okay?$"
gUnknown_8416BFB:: @ 8416BFB gText_RemoveMailBeforeItem:: @ 8416BFB
.string "MAIL must be removed before\n" .string "MAIL must be removed before\n"
.string "holding an item.{PAUSE_UNTIL_PRESS}$" .string "holding an item.{PAUSE_UNTIL_PRESS}$"
+2
View File
@@ -25,6 +25,8 @@ struct BattleTowerPokemonTemplate
u8 nature; u8 nature;
}; };
extern const u16 gBattleTowerBannedSpecies[];
u16 sub_8164FCC(u8, u8); u16 sub_8164FCC(u8, u8);
void ClearEReaderTrainer(struct BattleTowerEReaderTrainer *); void ClearEReaderTrainer(struct BattleTowerEReaderTrainer *);
void ValidateEReaderTrainer(void); void ValidateEReaderTrainer(void);
+2 -2
View File
@@ -58,7 +58,7 @@
#define PARTY_ACTION_USE_ITEM 3 #define PARTY_ACTION_USE_ITEM 3
#define PARTY_ACTION_ABILITY_PREVENTS 4 #define PARTY_ACTION_ABILITY_PREVENTS 4
#define PARTY_ACTION_GIVE_ITEM 5 #define PARTY_ACTION_GIVE_ITEM 5
#define PARTY_ACTION_GIVE_PC_ITEM 6 // TODO: rename this one if necessary. Used for quest log. #define PARTY_ACTION_GIVE_PC_ITEM 6 // TODO: rename this one if necessary. Used for quest log.
#define PARTY_ACTION_GIVE_MAILBOX_MAIL 7 #define PARTY_ACTION_GIVE_MAILBOX_MAIL 7
#define PARTY_ACTION_SWITCH 8 #define PARTY_ACTION_SWITCH 8
#define PARTY_ACTION_SWITCHING 9 #define PARTY_ACTION_SWITCHING 9
@@ -66,7 +66,7 @@
#define PARTY_ACTION_CHOOSE_AND_CLOSE 11 #define PARTY_ACTION_CHOOSE_AND_CLOSE 11
#define PARTY_ACTION_MOVE_TUTOR 12 #define PARTY_ACTION_MOVE_TUTOR 12
#define PARTY_ACTION_MINIGAME 13 #define PARTY_ACTION_MINIGAME 13
#define PARTY_ACTION_REUSABLE_ITEM 14 // Unused. The only reusable items are handled separately #define PARTY_ACTION_REUSABLE_ITEM 14
// IDs for DisplayPartyMenuStdMessage, to display the message at the bottom of the party menu // IDs for DisplayPartyMenuStdMessage, to display the message at the bottom of the party menu
#define PARTY_MSG_CHOOSE_MON 0 #define PARTY_MSG_CHOOSE_MON 0
+1 -2
View File
@@ -43,7 +43,6 @@ void ClearItemSlots(struct ItemSlot *itemSlots, u8 b);
u8 CountUsedPCItemSlots(void); u8 CountUsedPCItemSlots(void);
bool8 CheckPCHasItem(u16 itemId, u16 count); bool8 CheckPCHasItem(u16 itemId, u16 count);
bool8 AddPCItem(u16 itemId, u16 count); bool8 AddPCItem(u16 itemId, u16 count);
void RemovePCItem(u8 index, u16 count);
void SwapRegisteredBike(void); void SwapRegisteredBike(void);
const u8 *ItemId_GetName(u16 itemId); const u8 *ItemId_GetName(u16 itemId);
u16 ItemId_GetId(u16 itemId); u16 ItemId_GetId(u16 itemId);
@@ -75,7 +74,7 @@ u16 GetPcItemQuantity(u16 *);
void SetBagPocketsPointers(void); void SetBagPocketsPointers(void);
void ItemPcCompaction(void); void ItemPcCompaction(void);
void RemoveItemFromPC(u16 itemId, u16 quantity); void RemovePCItem(u16 itemId, u16 quantity);
void SortAndCompactBagPocket(struct BagPocket * pocket); void SortAndCompactBagPocket(struct BagPocket * pocket);
u8 CountItemsInPC(void); u8 CountItemsInPC(void);
void ApplyNewEncryptionKeyToBagItems_(u32 newKey); void ApplyNewEncryptionKeyToBagItems_(u32 newKey);
+6 -6
View File
@@ -25,7 +25,7 @@ extern u8 gPartyMenuUseExitCallback;
extern u8 gSelectedMonPartyId; extern u8 gSelectedMonPartyId;
extern u8 gBattlePartyCurrentOrder[PARTY_SIZE / 2]; extern u8 gBattlePartyCurrentOrder[PARTY_SIZE / 2];
extern void (*gItemUseCB)(u8 taskId, TaskFunc func); extern void (*gItemUseCB)(u8 taskId, TaskFunc func);
extern u8 gSelectedOrderFromParty[4]; extern u8 gSelectedOrderFromParty[3];
bool8 FieldCallback_PrepareFadeInFromMenu(void); bool8 FieldCallback_PrepareFadeInFromMenu(void);
bool8 MonKnowsMove(struct Pokemon *, u16); bool8 MonKnowsMove(struct Pokemon *, u16);
@@ -47,16 +47,16 @@ u8 *GetMonNickname(struct Pokemon *mon, u8 *dest);
u8 DisplayPartyMenuMessage(const u8 * src, u8 a1); u8 DisplayPartyMenuMessage(const u8 * src, u8 a1);
bool8 IsPartyMenuTextPrinterActive(void); bool8 IsPartyMenuTextPrinterActive(void);
void InitPartyMenu(u8 a, u8 b, u8 c, u8 d, u8 messageId, TaskFunc task, MainCallback callback); void InitPartyMenu(u8 a, u8 b, u8 c, u8 d, u8 messageId, TaskFunc task, MainCallback callback);
void sub_81252D0(u8 taskId, TaskFunc followUpFunc); void ItemUseCB_Medicine(u8 taskId, TaskFunc followUpFunc);
void ItemUseCB_PPRecovery(u8 taskId, TaskFunc followUpFunc); void ItemUseCB_PPRecovery(u8 taskId, TaskFunc followUpFunc);
void ItemUseCB_PPUp(u8 taskId, TaskFunc followUpFunc); void ItemUseCB_PPUp(u8 taskId, TaskFunc followUpFunc);
void dp05_rare_candy(u8 taskId, TaskFunc followUpFunc); void ItemUseCB_RareCandy(u8 taskId, TaskFunc followUpFunc);
void sub_8126B60(u8 taskId, TaskFunc followUpFunc); void ItemUseCB_EvolutionStone(u8 taskId, TaskFunc followUpFunc);
void ItemUseCB_SacredAsh(u8 taskId, TaskFunc followUpFunc); void ItemUseCB_SacredAsh(u8 taskId, TaskFunc followUpFunc);
void sub_81279E0(void); void sub_81279E0(void);
void ItemUseCB_Medicine(u8 taskId, TaskFunc followUpFunc); void ItemUseCB_MedicineStep(u8 taskId, TaskFunc followUpFunc);
u8 GetItemEffectType(u16 itemId); u8 GetItemEffectType(u16 itemId);
u8 pokemon_order_func(u8); u8 GetPartyIdFromBattlePartyId(u8);
void BufferBattlePartyCurrentOrder(void); void BufferBattlePartyCurrentOrder(void);
void BufferBattlePartyCurrentOrderBySide(u8 battlerId, u8 multiplayerFlag); void BufferBattlePartyCurrentOrderBySide(u8 battlerId, u8 multiplayerFlag);
void OpenPartyMenuInBattle(void); void OpenPartyMenuInBattle(void);
+3 -2
View File
@@ -8,8 +8,8 @@
struct PlayerPCItemPageStruct struct PlayerPCItemPageStruct
{ {
u16 selectedRow; u16 cursorPos;
u16 scrollOffset; u16 itemsAbove;
u8 pageItems; u8 pageItems;
u8 count; u8 count;
u8 filler_6[3]; u8 filler_6[3];
@@ -25,5 +25,6 @@ extern struct PlayerPCItemPageStruct gPlayerPcMenuManager;
void sub_816B060(u8 taskId); void sub_816B060(u8 taskId);
void NewGameInitPCItems(void); void NewGameInitPCItems(void);
void Mailbox_ReturnToMailListAfterDeposit(void);
#endif //GUARD_PLAYER_PC_H #endif //GUARD_PLAYER_PC_H
+2 -2
View File
@@ -582,7 +582,7 @@ void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex);
void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex); void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex);
bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex); bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex);
bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, u8 e); bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, u8 e);
bool8 PokemonUseItemEffects2(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex); bool8 PokemonItemUseNoEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex);
u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit); u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit);
const u8 *Battle_PrintStatBoosterEffectMessage(u16 itemId); const u8 *Battle_PrintStatBoosterEffectMessage(u16 itemId);
u8 GetNature(struct Pokemon *mon); u8 GetNature(struct Pokemon *mon);
@@ -593,7 +593,7 @@ u16 HoennToNationalOrder(u16 hoennNum);
u16 SpeciesToCryId(u16 species); u16 SpeciesToCryId(u16 species);
void DrawSpindaSpots(u16 species, u32 personality, u8 *dest, u8 a4); void DrawSpindaSpots(u16 species, u32 personality, u8 *dest, u8 a4);
void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies); void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies);
bool8 sub_80435E0(void); bool8 GetPlayerFlankId(void);
bool16 GetLinkTrainerFlankId(u8 linkPlayerId); bool16 GetLinkTrainerFlankId(u8 linkPlayerId);
s32 GetBattlerMultiplayerId(u16 a1); s32 GetBattlerMultiplayerId(u16 a1);
u8 GetTrainerEncounterMusicId(u16 trainer); u8 GetTrainerEncounterMusicId(u16 trainer);
+1 -1
View File
@@ -5,7 +5,7 @@
void sub_811E5B8(u16, u16, u16, u16, u16, u16); void sub_811E5B8(u16, u16, u16, u16, u16, u16);
bool8 sub_811E680(void); bool8 sub_811E680(void);
void GetMonLevelUpWindowStats(struct Pokemon *mon, u16 *currStats); void BufferMonStatsToTaskData(struct Pokemon *mon, u16 *currStats);
void DrawLevelUpWindowPg1(u16 windowId, u16 *statsBefore, u16 *statsAfter, u8 bgClr, u8 fgClr, u8 shadowClr); void DrawLevelUpWindowPg1(u16 windowId, u16 *statsBefore, u16 *statsAfter, u8 bgClr, u8 fgClr, u8 shadowClr);
void DrawLevelUpWindowPg2(u16 windowId, u16 *currStats, u8 bgClr, u8 fgClr, u8 shadowClr); void DrawLevelUpWindowPg2(u16 windowId, u16 *currStats, u8 bgClr, u8 fgClr, u8 shadowClr);
void sub_811C540(u8 slotId, u16 itemId, MainCallback callback); void sub_811C540(u8 slotId, u16 itemId, MainCallback callback);
+10
View File
@@ -388,6 +388,16 @@ extern const u8 gText_WhichMoveToForget[];
extern const u8 gText_12PoofForgotMove[]; extern const u8 gText_12PoofForgotMove[];
extern const u8 gText_StopLearningMove2[]; extern const u8 gText_StopLearningMove2[];
extern const u8 gText_MoveNotLearned[]; extern const u8 gText_MoveNotLearned[];
extern const u8 gText_PkmnElevatedToLvVar2[];
extern const u8 gText_PkmnHoldingItemCantHoldMail[];
extern const u8 gText_MailTransferredFromMailbox[];
extern const u8 gText_RemoveMailBeforeItem[];
extern const u8 gText_CantSwitchWithAlly[];
extern const u8 gText_PkmnHasNoEnergy[];
extern const u8 gText_PkmnAlreadyInBattle[];
extern const u8 gText_EggCantBattle[];
extern const u8 gText_PkmnAlreadySelected[];
extern const u8 gText_PkmnCantSwitchOut[];
// credits // credits
extern const u8 gString_Dummy[]; extern const u8 gString_Dummy[];
-1
View File
@@ -240,7 +240,6 @@ SECTIONS {
asm/link_rfu_3.o(.text); asm/link_rfu_3.o(.text);
asm/pokemon_special_anim.o(.text); asm/pokemon_special_anim.o(.text);
src/party_menu.o(.text); src/party_menu.o(.text);
asm/party_menu.o(.text);
asm/union_room_chat.o(.text); asm/union_room_chat.o(.text);
src/help_system_812B1E0.o(.text); src/help_system_812B1E0.o(.text);
src/quest_log_battle.o(.text); src/quest_log_battle.o(.text);
+2 -2
View File
@@ -859,8 +859,8 @@ void HandleBattleLowHpMusicChange(void)
{ {
u8 playerBattler1 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); u8 playerBattler1 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
u8 playerBattler2 = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); u8 playerBattler2 = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
u8 battler1PartyId = pokemon_order_func(gBattlerPartyIndexes[playerBattler1]); u8 battler1PartyId = GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[playerBattler1]);
u8 battler2PartyId = pokemon_order_func(gBattlerPartyIndexes[playerBattler2]); u8 battler2PartyId = GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[playerBattler2]);
if (GetMonData(&gPlayerParty[battler1PartyId], MON_DATA_HP) != 0) if (GetMonData(&gPlayerParty[battler1PartyId], MON_DATA_HP) != 0)
HandleLowHpMusicChange(&gPlayerParty[battler1PartyId], playerBattler1); HandleLowHpMusicChange(&gPlayerParty[battler1PartyId], playerBattler1);
+2 -2
View File
@@ -3005,8 +3005,8 @@ void sub_8013F6C(u8 battler)
for (i = 0; i < 3; ++i) for (i = 0; i < 3; ++i)
gBattlePartyCurrentOrder[i] = *(battler * 3 + i + (u8 *)(gBattleStruct->field_60)); gBattlePartyCurrentOrder[i] = *(battler * 3 + i + (u8 *)(gBattleStruct->field_60));
r4 = pokemon_order_func(gBattlerPartyIndexes[battler]); r4 = GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[battler]);
r1 = pokemon_order_func(*(gBattleStruct->monToSwitchIntoId + battler)); r1 = GetPartyIdFromBattlePartyId(*(gBattleStruct->monToSwitchIntoId + battler));
SwitchPartyMonSlots(r4, r1); SwitchPartyMonSlots(r4, r1);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{ {
+2 -2
View File
@@ -5831,7 +5831,7 @@ static void DrawLevelUpWindow1(void)
{ {
u16 currStats[NUM_STATS]; u16 currStats[NUM_STATS];
GetMonLevelUpWindowStats(&gPlayerParty[gBattleStruct->expGetterMonId], currStats); BufferMonStatsToTaskData(&gPlayerParty[gBattleStruct->expGetterMonId], currStats);
DrawLevelUpWindowPg1(12, gBattleResources->beforeLvlUp->stats, currStats, 0xE, 0xD, 0xF); DrawLevelUpWindowPg1(12, gBattleResources->beforeLvlUp->stats, currStats, 0xE, 0xD, 0xF);
} }
@@ -5839,7 +5839,7 @@ static void DrawLevelUpWindow2(void)
{ {
u16 currStats[NUM_STATS]; u16 currStats[NUM_STATS];
GetMonLevelUpWindowStats(&gPlayerParty[gBattleStruct->expGetterMonId], currStats); BufferMonStatsToTaskData(&gPlayerParty[gBattleStruct->expGetterMonId], currStats);
DrawLevelUpWindowPg2(12, currStats, 0xE, 0xD, 0xF); DrawLevelUpWindowPg2(12, currStats, 0xE, 0xD, 0xF);
} }
+1 -1
View File
@@ -412,7 +412,7 @@ bool8 AddPCItem(u16 itemId, u16 count)
return TRUE; return TRUE;
} }
void RemoveItemFromPC(u16 itemId, u16 count) void RemovePCItem(u16 itemId, u16 count)
{ {
u32 i; u32 i;
u16 quantity; u16 quantity;
+1 -1
View File
@@ -926,7 +926,7 @@ static void Task_ItemPcWaitButtonAndFinishWithdrawMultiple(u8 taskId)
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
itemId = ItemPc_GetItemIdBySlotId(data[1]); itemId = ItemPc_GetItemIdBySlotId(data[1]);
RemoveItemFromPC(itemId, data[8]); RemovePCItem(itemId, data[8]);
ItemPcCompaction(); ItemPcCompaction();
Task_ItemPcCleanUpWithdraw(taskId); Task_ItemPcCleanUpWithdraw(taskId);
} }
+4 -4
View File
@@ -414,7 +414,7 @@ static void sub_80A16D0(u8 taskId)
void FieldUseFunc_Medicine(u8 taskId) void FieldUseFunc_Medicine(u8 taskId)
{ {
gItemUseCB = sub_81252D0; gItemUseCB = ItemUseCB_Medicine;
sub_80A16D0(taskId); sub_80A16D0(taskId);
} }
@@ -432,13 +432,13 @@ void FieldUseFunc_PpUp(u8 taskId)
void FieldUseFunc_RareCandy(u8 taskId) void FieldUseFunc_RareCandy(u8 taskId)
{ {
gItemUseCB = dp05_rare_candy; gItemUseCB = ItemUseCB_RareCandy;
sub_80A16D0(taskId); sub_80A16D0(taskId);
} }
void FieldUseFunc_EvoItem(u8 taskId) void FieldUseFunc_EvoItem(u8 taskId)
{ {
gItemUseCB = sub_8126B60; gItemUseCB = ItemUseCB_EvolutionStone;
sub_80A16D0(taskId); sub_80A16D0(taskId);
} }
@@ -811,7 +811,7 @@ static void ItemUse_SwitchToPartyMenuInBattle(u8 taskId)
void BattleUseFunc_Medicine(u8 taskId) void BattleUseFunc_Medicine(u8 taskId)
{ {
gItemUseCB = ItemUseCB_Medicine; gItemUseCB = ItemUseCB_MedicineStep;
ItemUse_SwitchToPartyMenuInBattle(taskId); ItemUse_SwitchToPartyMenuInBattle(taskId);
} }
+2 -2
View File
@@ -123,7 +123,7 @@ u8 MailboxPC_InitListMenu(struct PlayerPCItemPageStruct * playerPcStruct)
gMultiuseListMenuTemplate.itemPrintFunc = ItemPrintFunc; gMultiuseListMenuTemplate.itemPrintFunc = ItemPrintFunc;
gMultiuseListMenuTemplate.cursorKind = 0; gMultiuseListMenuTemplate.cursorKind = 0;
gMultiuseListMenuTemplate.scrollMultiple = 0; gMultiuseListMenuTemplate.scrollMultiple = 0;
return ListMenuInit(&gMultiuseListMenuTemplate, playerPcStruct->scrollOffset, playerPcStruct->selectedRow); return ListMenuInit(&gMultiuseListMenuTemplate, playerPcStruct->itemsAbove, playerPcStruct->cursorPos);
} }
static void MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu * list) static void MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu * list)
@@ -134,7 +134,7 @@ static void MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu * list)
void MailboxPC_AddScrollIndicatorArrows(struct PlayerPCItemPageStruct * playerPcStruct) void MailboxPC_AddScrollIndicatorArrows(struct PlayerPCItemPageStruct * playerPcStruct)
{ {
playerPcStruct->scrollIndicatorId = AddScrollIndicatorArrowPairParameterized(2, 0xC2, 0xC, 0x94, playerPcStruct->count - playerPcStruct->pageItems + 1, 110, 110, &playerPcStruct->scrollOffset); playerPcStruct->scrollIndicatorId = AddScrollIndicatorArrowPairParameterized(2, 0xC2, 0xC, 0x94, playerPcStruct->count - playerPcStruct->pageItems + 1, 110, 110, &playerPcStruct->itemsAbove);
} }
void MailboxPC_DestroyListMenuBuffer(void) void MailboxPC_DestroyListMenuBuffer(void)
+1477 -14
View File
File diff suppressed because it is too large Load Diff
+12 -12
View File
@@ -38,7 +38,7 @@ static EWRAM_DATA const u8 *sItemOrder = NULL;
static EWRAM_DATA u8 sTopMenuItemCount = 0; static EWRAM_DATA u8 sTopMenuItemCount = 0;
EWRAM_DATA struct PlayerPCItemPageStruct gPlayerPcMenuManager = {}; EWRAM_DATA struct PlayerPCItemPageStruct gPlayerPcMenuManager = {};
#define SELECTED_MAIL (gSaveBlock1Ptr->mail[PC_MAIL_NUM(gPlayerPcMenuManager.scrollOffset) + gPlayerPcMenuManager.selectedRow]) #define SELECTED_MAIL (gSaveBlock1Ptr->mail[PC_MAIL_NUM(gPlayerPcMenuManager.itemsAbove) + gPlayerPcMenuManager.cursorPos])
static void Task_DrawPlayerPcTopMenu(u8 taskId); static void Task_DrawPlayerPcTopMenu(u8 taskId);
static void Task_TopMenuHandleInput(u8 taskId); static void Task_TopMenuHandleInput(u8 taskId);
@@ -234,8 +234,8 @@ static void Task_PlayerPcMailbox(u8 taskId)
} }
else else
{ {
gPlayerPcMenuManager.selectedRow = 0; gPlayerPcMenuManager.cursorPos = 0;
gPlayerPcMenuManager.scrollOffset = 0; gPlayerPcMenuManager.itemsAbove = 0;
PCMailCompaction(); PCMailCompaction();
Task_SetPageItemVars(taskId); Task_SetPageItemVars(taskId);
if (gPlayerPcMenuManager.unk_9 == 0) if (gPlayerPcMenuManager.unk_9 == 0)
@@ -469,7 +469,7 @@ static void Task_MailboxPcHandleInput(u8 taskId)
if (!gPaletteFade.active) if (!gPaletteFade.active)
{ {
input = ListMenu_ProcessInput(tListMenuTaskId); input = ListMenu_ProcessInput(tListMenuTaskId);
ListMenuGetScrollAndRow(tListMenuTaskId, &gPlayerPcMenuManager.scrollOffset, &gPlayerPcMenuManager.selectedRow); ListMenuGetScrollAndRow(tListMenuTaskId, &gPlayerPcMenuManager.itemsAbove, &gPlayerPcMenuManager.cursorPos);
switch (input) switch (input)
{ {
case -1: case -1:
@@ -483,7 +483,7 @@ static void Task_MailboxPcHandleInput(u8 taskId)
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
MailboxPC_RemoveWindow(0); MailboxPC_RemoveWindow(0);
MailboxPC_RemoveWindow(1); MailboxPC_RemoveWindow(1);
DestroyListMenuTask(tListMenuTaskId, &gPlayerPcMenuManager.scrollOffset, &gPlayerPcMenuManager.selectedRow); DestroyListMenuTask(tListMenuTaskId, &gPlayerPcMenuManager.itemsAbove, &gPlayerPcMenuManager.cursorPos);
ScheduleBgCopyTilemapToVram(0); ScheduleBgCopyTilemapToVram(0);
RemoveScrollIndicatorArrowPair(gPlayerPcMenuManager.scrollIndicatorId); RemoveScrollIndicatorArrowPair(gPlayerPcMenuManager.scrollIndicatorId);
gTasks[taskId].func = Task_PrintWhatToDoWithSelectedMail; gTasks[taskId].func = Task_PrintWhatToDoWithSelectedMail;
@@ -641,10 +641,10 @@ static void Task_TryPutMailInBag_DestroyMsgIfSuccessful(u8 taskId)
ClearMailStruct(mail); ClearMailStruct(mail);
PCMailCompaction(); PCMailCompaction();
gPlayerPcMenuManager.count--; gPlayerPcMenuManager.count--;
if (gPlayerPcMenuManager.count < gPlayerPcMenuManager.pageItems + gPlayerPcMenuManager.scrollOffset) if (gPlayerPcMenuManager.count < gPlayerPcMenuManager.pageItems + gPlayerPcMenuManager.itemsAbove)
{ {
if (gPlayerPcMenuManager.scrollOffset != 0) if (gPlayerPcMenuManager.itemsAbove != 0)
gPlayerPcMenuManager.scrollOffset--; gPlayerPcMenuManager.itemsAbove--;
} }
Task_SetPageItemVars(taskId); Task_SetPageItemVars(taskId);
} }
@@ -693,10 +693,10 @@ static void CB2_ReturnToMailboxPc_UpdateScrollVariables(void)
PCMailCompaction(); PCMailCompaction();
if (count != gPlayerPcMenuManager.count) if (count != gPlayerPcMenuManager.count)
{ {
if (gPlayerPcMenuManager.count < gPlayerPcMenuManager.pageItems + gPlayerPcMenuManager.scrollOffset) if (gPlayerPcMenuManager.count < gPlayerPcMenuManager.pageItems + gPlayerPcMenuManager.itemsAbove)
{ {
if (gPlayerPcMenuManager.scrollOffset != 0) if (gPlayerPcMenuManager.itemsAbove != 0)
gPlayerPcMenuManager.scrollOffset--; gPlayerPcMenuManager.itemsAbove--;
} }
} }
Task_SetPageItemVars(taskId); Task_SetPageItemVars(taskId);
@@ -708,7 +708,7 @@ static void CB2_ReturnToMailboxPc_UpdateScrollVariables(void)
sub_807DC00(); sub_807DC00();
} }
void CB2_PlayerPC_ReturnFromPartyMenu(void) void Mailbox_ReturnToMailListAfterDeposit(void)
{ {
gFieldCallback = CB2_ReturnToMailboxPc_UpdateScrollVariables; gFieldCallback = CB2_ReturnToMailboxPc_UpdateScrollVariables;
SetMainCallback2(CB2_ReturnToField); SetMainCallback2(CB2_ReturnToField);
+5 -5
View File
@@ -4117,7 +4117,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
if (sp34 != 4) if (sp34 != 4)
{ {
gAbsentBattlerFlags &= ~gBitTable[sp34]; gAbsentBattlerFlags &= ~gBitTable[sp34];
CopyPlayerPartyMonToBattleData(sp34, pokemon_order_func(gBattlerPartyIndexes[sp34])); CopyPlayerPartyMonToBattleData(sp34, GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[sp34]));
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER && gBattleResults.numRevivesUsed < 255) if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER && gBattleResults.numRevivesUsed < 255)
gBattleResults.numRevivesUsed++; gBattleResults.numRevivesUsed++;
} }
@@ -4405,7 +4405,7 @@ static bool8 HealStatusConditions(struct Pokemon *mon, u32 unused, u32 healMask,
} }
} }
bool8 PokemonUseItemEffects2(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex) bool8 PokemonItemUseNoEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex)
{ {
u32 data; u32 data;
s32 tmp; s32 tmp;
@@ -5179,7 +5179,7 @@ void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies)
SetMonData(mon, MON_DATA_NICKNAME, gSpeciesNames[newSpecies]); SetMonData(mon, MON_DATA_NICKNAME, gSpeciesNames[newSpecies]);
} }
bool8 sub_80435E0(void) bool8 GetPlayerFlankId(void)
{ {
bool8 retVal = FALSE; bool8 retVal = FALSE;
switch (gLinkPlayers[GetMultiplayerId()].id) switch (gLinkPlayers[GetMultiplayerId()].id)
@@ -5813,11 +5813,11 @@ void SetMonPreventsSwitchingString(void)
gBattleTextBuff1[4] = B_BUFF_EOS; gBattleTextBuff1[4] = B_BUFF_EOS;
if (GetBattlerSide(gBattleStruct->battlerPreventingSwitchout) == B_SIDE_PLAYER) if (GetBattlerSide(gBattleStruct->battlerPreventingSwitchout) == B_SIDE_PLAYER)
gBattleTextBuff1[3] = pokemon_order_func(gBattlerPartyIndexes[gBattleStruct->battlerPreventingSwitchout]); gBattleTextBuff1[3] = GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[gBattleStruct->battlerPreventingSwitchout]);
else else
gBattleTextBuff1[3] = gBattlerPartyIndexes[gBattleStruct->battlerPreventingSwitchout]; gBattleTextBuff1[3] = gBattlerPartyIndexes[gBattleStruct->battlerPreventingSwitchout];
PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff2, gBattlerInMenuId, pokemon_order_func(gBattlerPartyIndexes[gBattlerInMenuId])) PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff2, gBattlerInMenuId, GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[gBattlerInMenuId]))
BattleStringExpandPlaceholders(gText_PkmnsXPreventsSwitching, gStringVar4); BattleStringExpandPlaceholders(gText_PkmnsXPreventsSwitching, gStringVar4);
} }