party_menu data

This commit is contained in:
jiangzhengwenjz
2019-11-21 10:48:08 +08:00
committed by Evan
parent 622fcd2cb9
commit d89a2d791e
34 changed files with 4902 additions and 977 deletions
+114
View File
@@ -0,0 +1,114 @@
#ifndef GUARD_CONSTANTS_PARTY_MENU_H
#define GUARD_CONSTANTS_PARTY_MENU_H
#define AILMENT_NONE 0
#define AILMENT_PSN 1
#define AILMENT_PRZ 2
#define AILMENT_SLP 3
#define AILMENT_FRZ 4
#define AILMENT_BRN 5
#define AILMENT_PKRS 6
#define AILMENT_FNT 7
#define TUTOR_MOVE_MEGA_PUNCH 0
#define TUTOR_MOVE_SWORDS_DANCE 1
#define TUTOR_MOVE_MEGA_KICK 2
#define TUTOR_MOVE_BODY_SLAM 3
#define TUTOR_MOVE_DOUBLE_EDGE 4
#define TUTOR_MOVE_COUNTER 5
#define TUTOR_MOVE_SEISMIC_TOSS 6
#define TUTOR_MOVE_MIMIC 7
#define TUTOR_MOVE_METRONOME 8
#define TUTOR_MOVE_SOFT_BOILED 9
#define TUTOR_MOVE_DREAM_EATER 10
#define TUTOR_MOVE_THUNDER_WAVE 11
#define TUTOR_MOVE_EXPLOSION 12
#define TUTOR_MOVE_ROCK_SLIDE 13
#define TUTOR_MOVE_SUBSTITUTE 14
#define TUTOR_MOVE_COUNT 15
#define PARTY_LAYOUT_SINGLE 0
#define PARTY_LAYOUT_DOUBLE 1
#define PARTY_LAYOUT_MULTI 2
#define PARTY_LAYOUT_MULTI_SHOWCASE 3 // The layout during the screen that appears just before a multi battle
#define PARTY_LAYOUT_COUNT 4
#define KEEP_PARTY_LAYOUT 0xFF
#define PARTY_MENU_TYPE_FIELD 0
#define PARTY_MENU_TYPE_IN_BATTLE 1
#define PARTY_MENU_TYPE_CONTEST 2
#define PARTY_MENU_TYPE_CHOOSE_MON 3
#define PARTY_MENU_TYPE_CHOOSE_HALF 4 // multi battles, eReader battles, and some battle facilities
#define PARTY_MENU_TYPE_MULTI_SHOWCASE 5
#define PARTY_MENU_TYPE_DAYCARE 6
#define PARTY_MENU_TYPE_MOVE_RELEARNER 7
#define PARTY_MENU_TYPE_UNION_ROOM_REGISTER 8 // trading board
#define PARTY_MENU_TYPE_UNION_ROOM_TRADE 9 // trading board
#define PARTY_MENU_TYPE_SPIN_TRADE 10 // Unused beta for Gen IV's Spin Trade
#define PARTY_MENU_TYPE_MINIGAME 11
#define PARTY_MENU_TYPE_STORE_PYRAMID_HELD_ITEMS 12
#define PARTY_ACTION_CHOOSE_MON 0
#define PARTY_ACTION_SEND_OUT 1
#define PARTY_ACTION_CANT_SWITCH 2
#define PARTY_ACTION_USE_ITEM 3
#define PARTY_ACTION_ABILITY_PREVENTS 4
#define PARTY_ACTION_GIVE_ITEM 5
#define PARTY_ACTION_GIVE_PC_ITEM 6 // Unused. Not possible to give non-mail items directly from PC
#define PARTY_ACTION_GIVE_MAILBOX_MAIL 7
#define PARTY_ACTION_SWITCH 8
#define PARTY_ACTION_SWITCHING 9
#define PARTY_ACTION_SOFTBOILED 10
#define PARTY_ACTION_CHOOSE_AND_CLOSE 11
#define PARTY_ACTION_MOVE_TUTOR 12
#define PARTY_ACTION_MINIGAME 13
#define PARTY_ACTION_REUSABLE_ITEM 14 // Unused. The only reusable items are handled separately
// 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_OR_CANCEL 1
#define PARTY_MSG_CHOOSE_MON_AND_CONFIRM 2
#define PARTY_MSG_MOVE_TO_WHERE 3
#define PARTY_MSG_TEACH_WHICH_MON 4
#define PARTY_MSG_USE_ON_WHICH_MON 5
#define PARTY_MSG_GIVE_TO_WHICH_MON 6
#define PARTY_MSG_NOTHING_TO_CUT 7
#define PARTY_MSG_CANT_SURF_HERE 8
#define PARTY_MSG_ALREADY_SURFING 9
#define PARTY_MSG_CURRENT_TOO_FAST 10
#define PARTY_MSG_ENJOY_CYCLING 11
#define PARTY_MSG_ALREADY_IN_USE 12
#define PARTY_MSG_CANT_USE_HERE 13
#define PARTY_MSG_NO_MON_FOR_BATTLE 14
#define PARTY_MSG_CHOOSE_MON_2 15
#define PARTY_MSG_NOT_ENOUGH_HP 16
#define PARTY_MSG_THREE_MONS_ARE_NEEDED 17
#define PARTY_MSG_TWO_MONS_ARE_NEEDED 18
#define PARTY_MSG_MONS_CANT_BE_SAME 19
#define PARTY_MSG_NO_SAME_HOLD_ITEMS 20
#define PARTY_MSG_UNUSED 21
#define PARTY_MSG_DO_WHAT_WITH_MON 22
#define PARTY_MSG_RESTORE_WHICH_MOVE 23
#define PARTY_MSG_BOOST_PP_WHICH_MOVE 24
#define PARTY_MSG_DO_WHAT_WITH_ITEM 25
#define PARTY_MSG_DO_WHAT_WITH_MAIL 26
#define PARTY_MSG_NONE 127
// IDs for DisplayPartyPokemonDescriptionText, to display a message in the party pokemon's box
#define PARTYBOX_DESC_NO_USE 0
#define PARTYBOX_DESC_ABLE_3 1
#define PARTYBOX_DESC_FIRST 2
#define PARTYBOX_DESC_SECOND 3
#define PARTYBOX_DESC_THIRD 4
#define PARTYBOX_DESC_ABLE 5
#define PARTYBOX_DESC_NOT_ABLE 6
#define PARTYBOX_DESC_ABLE_2 7
#define PARTYBOX_DESC_NOT_ABLE_2 8
#define PARTYBOX_DESC_LEARNED 9
#define SELECTWINDOW_ACTIONS 0
#define SELECTWINDOW_ITEM 1
#define SELECTWINDOW_MAIL 2
#define SELECTWINDOW_MOVES 3
#endif // GUARD_CONSTANTS_PARTY_MENU_H
+118
View File
@@ -0,0 +1,118 @@
#ifndef GUARD_CONSTANTS_TRADE_H
#define GUARD_CONSTANTS_TRADE_H
// TODO: document trade.c and trade_scene.c with corresponding macros
// and examine if these are correct
#define TRADE_PLAYER 0
#define TRADE_PARTNER 1
#define LINK_TRADE_TIMEOUT 300
// In-game Trade IDs
#define INGAME_TRADE_SEEDOT 0
#define INGAME_TRADE_PLUSLE 1
#define INGAME_TRADE_HORSEA 2
#define INGAME_TRADE_MEOWTH 3
// Flag IDs for sending link data
#define INITIATE_TRADE 1
#define CANCEL_TRADE 2
#define WANTS_TO_TRADE 1
#define WANTS_TO_CANCEL 2
#define READY_FINISH_TRADE 1
#define FINISH_TRADE 2
// Return values for CanTradeSelectedMon and CanSpinTradeMon
#define CAN_TRADE_MON 0
#define CANT_TRADE_LAST_MON 1
#define CANT_TRADE_NATIONAL 2
#define CANT_TRADE_EGG_YET 3
#define CANT_TRADE_INVALID_MON 4
#define CANT_TRADE_EGG_YET2 5
// Return values for CheckValidityOfTradeMons
#define PLAYER_MON_INVALID 0
#define BOTH_MONS_VALID 1
#define PARTNER_MON_INVALID 2
// Return values for GetGameProgressForLinkTrade
#define TRADE_BOTH_PLAYERS_READY 0
#define TRADE_PLAYER_NOT_READY 1
#define TRADE_PARTNER_NOT_READY 2
// Indexes for sTradeActionTexts
#define TRADE_TEXT_CANCEL 0
#define TRADE_TEXT_CHOOSE_MON 1
#define TRADE_TEXT_SUMMARY 2
#define TRADE_TEXT_TRADE 3
#define TRADE_TEXT_CANCEL_TRADE 4
#define TRADE_TEXT_JP_QUIT 5
// Checked to confirm DrawTradeMenuParty has reached final state
#define DRAW_PARTY_FINISH 5
// Message indexes for sTradeMessages
#define TRADE_MSG_STANDBY 0
#define TRADE_MSG_CANCELED 1
#define TRADE_MSG_ONLY_MON1 2
#define TRADE_MSG_ONLY_MON2 3
#define TRADE_MSG_WAITING_FOR_FRIEND 4
#define TRADE_MSG_FRIEND_WANTS_TO_TRADE 5
#define TRADE_MSG_MON_CANT_BE_TRADED 6
#define TRADE_MSG_EGG_CANT_BE_TRADED 7
#define TRADE_MSG_FRIENDS_MON_CANT_BE_TRADED 8
// IDs for QueueAction
#define QUEUE_SEND_DATA 0
#define QUEUE_STANDBY 1
#define QUEUE_ONLY_MON1 2
#define QUEUE_ONLY_MON2 3
#define QUEUE_UNUSED1 4
#define QUEUE_UNUSED2 5
#define QUEUE_MON_CANT_BE_TRADED 6
#define QUEUE_EGG_CANT_BE_TRADED 7
#define QUEUE_FRIENDS_MON_CANT_BE_TRADED 8
#define QUEUE_DELAY_MSG 3
#define QUEUE_DELAY_DATA 5
// IDs for CallTradeMenuFunc
#define TRADEMENUFUNC_MAIN_MENU 0
#define TRADEMENUFUNC_SELECTED_MON 1
#define TRADEMENUFUNC_SHOW_MON_SUMMARY 2
#define TRADEMENUFUNC_CONFIRM_OR_CANCEL_TRADE 3
#define TRADEMENUFUNC_CANCEL_TRADE_PROMPT 4
#define TRADEMENUFUNC_UNUSED_5 5
#define TRADEMENUFUNC_BOTH_MONS_SELECTED 6
#define TRADEMENUFUNC_CONFIRM_TRADE_PROMPT 7
#define TRADEMENUFUNC_REDRAW_MAIN_MENU 8
#define TRADEMENUFUNC_LINK_TRADE_FADE_OUT 9
#define TRADEMENUFUNC_LINK_TRADE_WAIT_FADE 10
#define TRADEMENUFUNC_CANCEL_TRADE_1 11
#define TRADEMENUFUNC_CANCEL_TRADE_2 12
#define TRADEMENUFUNC_START_LINK_TRADE 13
#define TRADEMENUFUNC_DELAY_TRADE_CONFIRM 14
#define TRADEMENUFUNC_UNUSED_15 15
#define TRADEMENUFUNC_LINK_TRADE_WAIT_QUEUE 16
#define TRADEMENUFUNC_PARTNER_MON_INVALID 17
#define TRADEMENUFUNC_STANDBY 100
// Message indexes for sUnionRoomTradeMessages
#define UR_TRADE_MSG_NONE 0
#define UR_TRADE_MSG_NOT_MON_PARTNER_WANTS 1
#define UR_TRADE_MSG_NOT_EGG 2
#define UR_TRADE_MSG_MON_CANT_BE_TRADED_1 3
#define UR_TRADE_MSG_MON_CANT_BE_TRADED_2 4
#define UR_TRADE_MSG_PARTNERS_MON_CANT_BE_TRADED 5
#define UR_TRADE_MSG_EGG_CANT_BE_TRADED 6
#define UR_TRADE_MSG_PARTNER_CANT_ACCEPT_MON 7
#define UR_TRADE_MSG_CANT_TRADE_WITH_PARTNER_1 8
#define UR_TRADE_MSG_CANT_TRADE_WITH_PARTNER_2 9
// Return values for CanRegisterMonForTradingBoard
#define CAN_REGISTER_MON 0
#define CANT_REGISTER_MON 1
#define CANT_REGISTER_EGG 2
#endif //GUARD_CONSTANTS_TRADE_H
+3 -1
View File
@@ -16,8 +16,10 @@ u8 oei_task_add(void);
// flash
u8 sub_80C9DCC(u8 lightLevel, u8 mapType);
u8 sub_80C9D7C(u8 mapType1, u8 mapType2);
bool8 SetUpFieldMove_Flash(void);
// cut
bool8 SetUpFieldMove_Cut(void);
// dig
bool8 SetUpFieldMove_Dig(void);
@@ -43,7 +45,7 @@ bool8 SetUpFieldMove_Teleport(void);
bool8 FldEff_UseTeleport(void);
// softboiled
bool8 hm_prepare_dive_probably(void);
bool8 SetUpFieldMove_SoftBoiled(void);
void ChooseMonForSoftboiled(u8 taskId);
void sub_80E5724(u8 taskId);
+7
View File
@@ -3740,6 +3740,13 @@ extern const u8 gWeatherFog1Tiles[];
extern const u32 gBattleAnimFogTilemap[];
extern const u16 gUnknown_83C2CE0[];
// party_menu
extern const u32 gPartyMenuPokeball_Gfx[];
extern const u32 gPartyMenuPokeball_Pal[];
extern const u32 gPartyMenuPokeballSmall_Gfx[];
extern const u32 gStatusGfx_Icons[];
extern const u32 gStatusPal_Icons[];
// credits
extern const u32 gCreditsPokeballBgGfxTiles[];
extern const u32 gCreditsPokeballBgGfxMap[];
+15 -36
View File
@@ -3,49 +3,28 @@
#include "main.h"
#include "task.h"
#include "constants/party_menu.h"
enum {
AILMENT_NONE,
AILMENT_PSN,
AILMENT_PRZ,
AILMENT_SLP,
AILMENT_FRZ,
AILMENT_BRN,
AILMENT_PKRS,
AILMENT_FNT
};
enum
{
PARTY_CHOOSE_MON,
PARTY_MUST_CHOOSE_MON,
PARTY_CANT_SWITCH,
PARTY_USE_ITEM_ON,
PARTY_ABILITY_PREVENTS,
PARTY_GIVE_ITEM,
};
struct Struct203B0A0
struct PartyMenu
{
MainCallback exitCallback;
TaskFunc unk4;
u8 unk8_0:4;
u8 mode:2;
u8 unk8_2:2;
s8 unk9;
s8 unkA;
u8 unkB;
u16 unkC;
s16 unkE;
s16 unk10;
TaskFunc task;
u8 menuType:4;
u8 layout:2;
s8 slotId;
s8 slotId2;
u8 action;
u16 bagItem;
s16 data1; // used variously as a moveId, counter, moveSlotId, or cursorPos
s16 learnMoveState; // data2, used only as a learn move state
};
extern struct Struct203B0A0 gPartyMenu;
extern struct PartyMenu gPartyMenu;
extern u8 gPartyMenuUseExitCallback;
extern u8 gUnknown_203B0C1;
extern u8 gBattlePartyCurrentOrder[3];
extern u8 gSelectedMonPartyId;
extern u8 gBattlePartyCurrentOrder[PARTY_SIZE / 2];
extern void (*gItemUseCB)(u8 taskId, TaskFunc func);
extern u8 gSelectedOrderFromParty[3];
extern u8 gSelectedOrderFromParty[4];
bool8 FieldCallback_PrepareFadeInFromMenu(void);
bool8 MonKnowsMove(struct Pokemon *, u16);
+75 -4
View File
@@ -265,6 +265,77 @@ extern const u8 gUnknown_81C6787[];
extern const u8 gUnknown_81C684B[];
extern const u8 gUnknown_81C686C[];
// party_menu
extern const u8 gText_ChoosePokemon[];
extern const u8 gText_ChoosePokemonCancel[];
extern const u8 gText_ChoosePokemonConfirm[];
extern const u8 gText_MoveToWhere[];
extern const u8 gText_TeachWhichPokemon[];
extern const u8 gText_UseOnWhichPokemon[];
extern const u8 gText_GiveToWhichPokemon[];
extern const u8 gText_NothingToCut[];
extern const u8 gText_CantSurfHere[];
extern const u8 gText_AlreadySurfing[];
extern const u8 gText_CurrentIsTooFast[];
extern const u8 gText_EnjoyCycling[];
extern const u8 gText_InUseAlready_PM[];
extern const u8 gText_CantUseHere[];
extern const u8 gText_NoPokemonForBattle[];
extern const u8 gText_ChoosePokemon2[];
extern const u8 gText_NotEnoughHp[];
extern const u8 gText_ThreePkmnAreNeeded[];
extern const u8 gText_TwoPokemonAreNeeded[];
extern const u8 gText_PokemonCantBeSame[];
extern const u8 gText_NoIdenticalHoldItems[];
extern const u8 gString_Dummy[];
extern const u8 gText_DoWhatWithPokemon[];
extern const u8 gText_RestoreWhichMove[];
extern const u8 gText_BoostPp[];
extern const u8 gText_DoWhatWithItem[];
extern const u8 gText_DoWhatWithMail[];
extern const u8 gText_NoUse[];
extern const u8 gText_Able[];
extern const u8 gText_First_PM[];
extern const u8 gText_Second_PM[];
extern const u8 gText_Third_PM[];
extern const u8 gText_NotAble[];
extern const u8 gText_Able3[];
extern const u8 gText_NotAble2[];
extern const u8 gText_Learned[];
extern const u8 gText_Able2[];
extern const u8 gText_CutATreeOrGrass[];
extern const u8 gText_FlyToAKnownTown[];
extern const u8 gText_TravelOnWater[];
extern const u8 gText_MoveHeavyBoulders[];
extern const u8 gText_LightUpDarkness[];
extern const u8 gText_ShatterACrackedRock[];
extern const u8 gText_ClimbAWaterfall[];
extern const u8 gText_EscapeFromHere[];
extern const u8 gText_LureWildPokemon[];
extern const u8 gText_ShareHp[];
extern const u8 gText_ReturnToAHealingSpot[];
extern const u8 gText_Summary5[];
extern const u8 gText_Switch2[];
extern const u8 gText_Item[];
extern const u8 gText_Take[];
extern const u8 gText_Mail[];
extern const u8 gText_Take2[];
extern const u8 gText_Read2[];
extern const u8 gText_Shift[];
extern const u8 gText_SendOut[];
extern const u8 gText_Enter[];
extern const u8 gText_NoEntry[];
extern const u8 gText_Store[];
extern const u8 gText_Register[];
extern const u8 gText_Trade4[];
extern const u8 gText_NotPkmnOtherTrainerWants[];
extern const u8 gText_ThatIsntAnEgg[];
extern const u8 gText_PkmnCantBeTradedNow[];
extern const u8 gText_OtherTrainersPkmnCantBeTraded[];
extern const u8 gText_EggCantBeTradedNow[];
extern const u8 gText_OtherTrainerCantAcceptPkmn[];
extern const u8 gText_CantTradeWithTrainer[];
// credits
extern const u8 gString_Dummy[];
extern const u8 gString_PokemonFireRed_Staff[]; // FR
@@ -390,7 +461,7 @@ extern const u8 gText_Pokedex[];
extern const u8 gTextJPDummy_Hiki[];
extern const u8 gText_Badges[];
extern const u8 gTextJPDummy_Ko[];
extern const u8 gUnknown_841B6F4[];
extern const u8 gText_Register[];
// mystery_gift_menu
extern const u8 gText_PickOKExit[];
@@ -703,9 +774,9 @@ extern const u8 gUnknown_841E16B[];
extern const u8 gUnknown_8417094[];
extern const u8 gUnknown_841E199[];
extern const u8 gUnknown_841E1C5[];
extern const u8 gUnknown_84170BC[];
extern const u8 gUnknown_84170E0[];
extern const u8 gUnknown_84170FC[];
extern const u8 gText_PkmnCantBeTradedNow[];
extern const u8 gText_EggCantBeTradedNow[];
extern const u8 gText_OtherTrainersPkmnCantBeTraded[];
extern const u8 gUnknown_841E09F[];
extern const u8 gEasyChatGroupName_Pokemon[];
+3
View File
@@ -1,6 +1,9 @@
#ifndef GUARD_TRADE_H
#define GUARD_TRADE_H
#include "global.h"
#include "constants/trade.h"
extern struct MailStruct gLinkPartnerMail[6];
extern u8 gSelectedTradeMonPositions[2];
+3
View File
@@ -1,6 +1,9 @@
#ifndef GUARD_UNION_ROOM_H
#define GUARD_UNION_ROOM_H
#include "global.h"
#include "librfu.h"
struct UnkStruct_Shared
{
struct UnkLinkRfuStruct_02022B14 field_0;