mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 03:34:15 +01:00
More trade/union room doc, incidental party_menu doc
This commit is contained in:
parent
6b556900f8
commit
dadb1cb9f1
@ -1032,7 +1032,7 @@ OldaleTown_PokemonCenter_2F_EventScript_27759F:: @ 827759F
|
||||
hideobjectat EVENT_OBJ_ID_PLAYER, MAP_PETALBURG_CITY
|
||||
closedoor 5, 1
|
||||
waitdooranim
|
||||
special sub_8018090
|
||||
special Script_ResetUnionRoomTrade
|
||||
special SetCableClubWarp
|
||||
warpteleport2 MAP_UNION_ROOM, 255, 7, 11
|
||||
waitstate
|
||||
|
@ -432,7 +432,7 @@ gSpecials:: @ 81DBA64
|
||||
def_special BufferUnionRoomPlayerName
|
||||
def_special sub_801DC20
|
||||
def_special sub_81B8958
|
||||
def_special sub_8018090
|
||||
def_special Script_ResetUnionRoomTrade
|
||||
def_special IsBadEggInParty
|
||||
def_special ValidateReceivedWonderCard
|
||||
def_special HasAtLeastOneBerry
|
||||
|
@ -48,5 +48,10 @@
|
||||
#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
|
||||
|
@ -93,12 +93,12 @@ u8 GetCursorSelectionMonId(void);
|
||||
u8 sub_81B1360(void);
|
||||
void sub_81B1370(u8 taskId);
|
||||
u8* GetMonNickname(struct Pokemon *mon, u8 *dest);
|
||||
u8 sub_81B1B5C(const u8* str, u8 b);
|
||||
u8 DisplayPartyMenuMessage(const u8* str, u8 b);
|
||||
bool8 sub_81B1BD4(void);
|
||||
void sub_81B1F18(u8 taskId, u8 slot, s8 c, s16 HPDifference, TaskFunc func);
|
||||
u8 pokemon_ailments_get_primary(u32 status);
|
||||
u8 GetMonAilment(struct Pokemon *mon);
|
||||
void display_pokemon_menu_message(u32 stringID);
|
||||
void DisplayPartyMenuStdMessage(u32 stringID);
|
||||
void sub_81B47E0(u8 taskId);
|
||||
bool8 FieldCallback_PrepareFadeInFromMenu(void);
|
||||
void sub_81B58A8(void);
|
||||
|
@ -16,7 +16,7 @@ extern const struct WindowTemplate gUnknown_0833900C;
|
||||
s32 sub_807A728(void);
|
||||
void sub_80773AC(void);
|
||||
void sub_807AE50(void);
|
||||
int sub_807A8D0(struct UnkLinkRfuStruct_02022B14Substruct a0, u16, u16, u8);
|
||||
int CanRegisterMonForTradingBoard(struct UnkLinkRfuStruct_02022B14Substruct a0, u16, u16, u8);
|
||||
int GetUnionRoomTradeMessageId(struct UnkLinkRfuStruct_02022B14Substruct a0, struct UnkLinkRfuStruct_02022B14Substruct a1, u16 a2, u16 a3, u8 a4, u16 a5, u8 a6);
|
||||
int sub_807A918(struct Pokemon*, u16);
|
||||
void sub_807B140(void);
|
||||
|
@ -135,7 +135,7 @@ union UnkUnion_Main
|
||||
struct UnkStruct_URoom *uRoom;
|
||||
};
|
||||
|
||||
struct TradeUnkStruct
|
||||
struct UnionRoomTrade
|
||||
{
|
||||
u16 field_0;
|
||||
u16 type;
|
||||
|
@ -51,16 +51,12 @@ const u8 gText_5PlayerMode[] = _("5-PLAYER\nMODE");
|
||||
const u8 *const gUnknown_082EDB60[][5] = {
|
||||
{
|
||||
gText_1PlayerNeeded,
|
||||
gText_2PlayerMode,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
gText_2PlayerMode
|
||||
}, {
|
||||
gText_3PlayersNeeded,
|
||||
gText_2PlayersNeeded,
|
||||
gText_1PlayerNeeded,
|
||||
gText_4PlayerMode,
|
||||
NULL
|
||||
gText_4PlayerMode
|
||||
}, {
|
||||
gText_1PlayerNeeded,
|
||||
gText_2PlayerMode,
|
||||
@ -77,8 +73,7 @@ const u8 *const gUnknown_082EDB60[][5] = {
|
||||
gText_1PlayerNeeded,
|
||||
gText_2PlayerMode,
|
||||
gText_3PlayerMode,
|
||||
gText_4PlayerMode,
|
||||
NULL
|
||||
gText_4PlayerMode
|
||||
}
|
||||
};
|
||||
|
||||
@ -196,55 +191,56 @@ const u8 *const unref_text_ptrs_union_room_2[][2] = {
|
||||
}
|
||||
};
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_082EE2E8[] = _("Somebody has contacted you.{PAUSE 60}");
|
||||
ALIGNED(4) const u8 gUnknown_082EE308[] = _("{STR_VAR_1} has contacted you.{PAUSE 60}");
|
||||
ALIGNED(4) const u8 sText_SomebodyHasContactedYou[] = _("Somebody has contacted you.{PAUSE 60}");
|
||||
ALIGNED(4) const u8 sText_XHasContactedYou[] = _("{STR_VAR_1} has contacted you.{PAUSE 60}");
|
||||
|
||||
const u8 *const gUnknown_082EE324[] = {
|
||||
gUnknown_082EE2E8,
|
||||
gUnknown_082EE308
|
||||
static const u8 *const gUnknown_082EE324[] = {
|
||||
sText_SomebodyHasContactedYou,
|
||||
sText_XHasContactedYou
|
||||
};
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_082EE32C[] = _("Awaiting a response from\nthe other TRAINER…");
|
||||
ALIGNED(4) const u8 gUnknown_082EE358[] = _("Awaiting a response from\n{STR_VAR_1}…");
|
||||
ALIGNED(4) const u8 sUnionRoom_AwaitingResponseFromTrainer[] = _("Awaiting a response from\nthe other TRAINER…");
|
||||
ALIGNED(4) const u8 sUnionRoom_AwaitingResponseFromX[] = _("Awaiting a response from\n{STR_VAR_1}…");
|
||||
|
||||
const u8 *const gUnknown_082EE378[] = {
|
||||
gUnknown_082EE32C,
|
||||
gUnknown_082EE358
|
||||
static const u8 *const sUnionRoomTexts_AwaitingResponse[] = {
|
||||
sUnionRoom_AwaitingResponseFromTrainer,
|
||||
sUnionRoom_AwaitingResponseFromX
|
||||
};
|
||||
|
||||
ALIGNED(4) const u8 gUnionRoom_ShowTrainerCard[] = _("The other TRAINER showed\nyou their TRAINER CARD.\pWould you like to show your\nTRAINER CARD?");
|
||||
ALIGNED(4) const u8 gUnionRoom_BattleChallenge[] = _("The other TRAINER challenges you\nto battle.\pWill you accept the battle\nchallenge?");
|
||||
ALIGNED(4) const u8 gUnionRoom_ChatInvitation[] = _("The other TRAINER invites you\nto chat.\pWill you accept the chat\ninvitation?");
|
||||
ALIGNED(4) const u8 gUnionRoom_OfferToTradeMon[] = _("There is an offer to trade your\nregistered Lv. {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}\pin exchange for a\nLv. {SPECIAL_F7 0x02} {SPECIAL_F7 0x03}.\pWill you accept this trade\noffer?");
|
||||
ALIGNED(4) const u8 gUnionRoom_OfferToTradeEgg[] = _("There is an offer to trade your\nregistered EGG.\lWill you accept this trade offer?");
|
||||
ALIGNED(4) const u8 gUnionRoom_ChatDropped[] = _("The chat has been dropped.\p");
|
||||
ALIGNED(4) const u8 gUnionRoom_OfferDeclined1[] = _("You declined the offer.\p");
|
||||
ALIGNED(4) const u8 gUnionRoom_OfferDeclined2[] = _("You declined the offer.\p");
|
||||
ALIGNED(4) const u8 gUnionRoom_ChatEnded[] = _("The chat was ended.\p");
|
||||
ALIGNED(4) const u8 sText_ShowTrainerCard[] = _("The other TRAINER showed\nyou their TRAINER CARD.\pWould you like to show your\nTRAINER CARD?");
|
||||
ALIGNED(4) const u8 sText_BattleChallenge[] = _("The other TRAINER challenges you\nto battle.\pWill you accept the battle\nchallenge?");
|
||||
ALIGNED(4) const u8 sText_ChatInvitation[] = _("The other TRAINER invites you\nto chat.\pWill you accept the chat\ninvitation?");
|
||||
ALIGNED(4) const u8 sText_OfferToTradeMon[] = _("There is an offer to trade your\nregistered Lv. {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}\pin exchange for a\nLv. {SPECIAL_F7 0x02} {SPECIAL_F7 0x03}.\pWill you accept this trade\noffer?");
|
||||
ALIGNED(4) const u8 sText_OfferToTradeEgg[] = _("There is an offer to trade your\nregistered EGG.\lWill you accept this trade offer?");
|
||||
ALIGNED(4) const u8 sText_ChatDropped[] = _("The chat has been dropped.\p");
|
||||
ALIGNED(4) const u8 sText_OfferDeclined1[] = _("You declined the offer.\p");
|
||||
ALIGNED(4) const u8 sText_OfferDeclined2[] = _("You declined the offer.\p");
|
||||
ALIGNED(4) const u8 sText_ChatEnded[] = _("The chat was ended.\p");
|
||||
|
||||
const u8 *const unref_text_ptrs_union_room_3[] = {
|
||||
gUnionRoom_ShowTrainerCard,
|
||||
gUnionRoom_BattleChallenge,
|
||||
gUnionRoom_ChatInvitation,
|
||||
gUnionRoom_OfferToTradeMon
|
||||
// Unused
|
||||
static const u8 *const sUnionRoomTexts_Invitation[] = {
|
||||
sText_ShowTrainerCard,
|
||||
sText_BattleChallenge,
|
||||
sText_ChatInvitation,
|
||||
sText_OfferToTradeMon
|
||||
};
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_082EE5C0[] = _("Oh, hey! We're in a chat right now.\nWant to join us?");
|
||||
ALIGNED(4) const u8 gUnknown_082EE5F8[] = _("{STR_VAR_1}: Hey, {PLAYER}!\nWe're having a chat right now.\lWant to join us?");
|
||||
ALIGNED(4) const u8 gUnknown_082EE638[] = _("Oh, hi! We're having a chat now.\nWould you like to join us?");
|
||||
ALIGNED(4) const u8 gUnknown_082EE674[] = _("{STR_VAR_1}: Oh, hi, {PLAYER}!\nWe're having a chat now.\lWould you like to join us?");
|
||||
ALIGNED(4) const u8 sText_JoinChatMale[] = _("Oh, hey! We're in a chat right now.\nWant to join us?");
|
||||
ALIGNED(4) const u8 sText_PlayerJoinChatMale[] = _("{STR_VAR_1}: Hey, {PLAYER}!\nWe're having a chat right now.\lWant to join us?");
|
||||
ALIGNED(4) const u8 sText_JoinChatFemale[] = _("Oh, hi! We're having a chat now.\nWould you like to join us?");
|
||||
ALIGNED(4) const u8 sText_PlayerJoinChatFemale[] = _("{STR_VAR_1}: Oh, hi, {PLAYER}!\nWe're having a chat now.\lWould you like to join us?");
|
||||
|
||||
const u8 *const gUnknown_082EE6B8[][2] = {
|
||||
const u8 *const sUnionRoomTexts_JoinChat[][GENDER_COUNT] = {
|
||||
{
|
||||
gUnknown_082EE5C0,
|
||||
gUnknown_082EE638
|
||||
sText_JoinChatMale,
|
||||
sText_JoinChatFemale
|
||||
}, {
|
||||
gUnknown_082EE5F8,
|
||||
gUnknown_082EE674
|
||||
sText_PlayerJoinChatMale,
|
||||
sText_PlayerJoinChatFemale
|
||||
}
|
||||
};
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_082EE6C8[] = _("……\nThe TRAINER appears to be busy…\p");
|
||||
ALIGNED(4) const u8 sText_TrainerAppearsBusy[] = _("……\nThe TRAINER appears to be busy…\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EE6EC[] = _("A battle, huh?\nAll right, just give me some time.");
|
||||
ALIGNED(4) const u8 gUnknown_082EE720[] = _("You want to chat, huh?\nSure, just wait a little.");
|
||||
ALIGNED(4) const u8 gUnknown_082EE754[] = _("Sure thing! As my “Greetings,”\nhere's my TRAINER CARD.");
|
||||
@ -323,15 +319,15 @@ const u8 *const gUnknown_082EEB80[] = {
|
||||
gUnknown_082EEB4C
|
||||
};
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_082EEB88[] = _("Whoops! Sorry, but I have to do\nsomething else.\lAnother time, okay?\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EEBD0[] = _("If you want to battle, you need\ntwo POKéMON that are below\lLv. 30.\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EEC14[] = _("For a battle, you need two\nPOKéMON that are below Lv. 30.\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EEC50[] = _("Oh, all right.\nCome see me anytime, okay?\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EEC7C[] = _("Oh…\nPlease come by anytime.\p");
|
||||
ALIGNED(4) const u8 sText_TrainerBattleBusy[] = _("Whoops! Sorry, but I have to do\nsomething else.\lAnother time, okay?\p");
|
||||
ALIGNED(4) const u8 sText_NeedTwoMonsOfLevel30OrLower1[] = _("If you want to battle, you need\ntwo POKéMON that are below\lLv. 30.\p");
|
||||
ALIGNED(4) const u8 sText_NeedTwoMonsOfLevel30OrLower2[] = _("For a battle, you need two\nPOKéMON that are below Lv. 30.\p");
|
||||
ALIGNED(4) const u8 sText_DeclineBattleMale[] = _("Oh, all right.\nCome see me anytime, okay?\p");
|
||||
ALIGNED(4) const u8 sText_DeclineBattleFemale[] = _("Oh…\nPlease come by anytime.\p");
|
||||
|
||||
const u8 *const gUnknown_082EEC9C[] = {
|
||||
gUnknown_082EEC50,
|
||||
gUnknown_082EEC7C
|
||||
const u8 *const sUnionRoomTexts_DeclineBattle[GENDER_COUNT] = {
|
||||
[MALE] = sText_DeclineBattleMale,
|
||||
[FEMALE] = sText_DeclineBattleFemale
|
||||
};
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_082EECA4[] = _("Oh, sorry!\nI just can't right this instant.\lLet's chat another time.\p");
|
||||
@ -351,13 +347,16 @@ ALIGNED(4) const u8 gUnknown_082EEE24[] = _("That's it!\nThis is the right move
|
||||
ALIGNED(4) const u8 gUnknown_082EEE4C[] = _("That's awesome!\nYou can battle that way?\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EEE78[] = _("You have exquisite timing for\nswitching POKéMON!\p");
|
||||
|
||||
const u8 *const gUnknown_082EEEAC[][4] = {
|
||||
const u8 *const gUnknown_082EEEAC[GENDER_COUNT][4] = {
|
||||
[MALE] =
|
||||
{
|
||||
gUnknown_082EED44,
|
||||
gUnknown_082EED6C,
|
||||
gUnknown_082EED98,
|
||||
gUnknown_082EEDBC
|
||||
}, {
|
||||
},
|
||||
[FEMALE] =
|
||||
{
|
||||
gUnknown_082EEDF4,
|
||||
gUnknown_082EEE24,
|
||||
gUnknown_082EEE4C,
|
||||
@ -374,13 +373,16 @@ ALIGNED(4) const u8 gUnknown_082EEFA0[] = _("Ahaha!\nWhat is that about?\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EEFBC[] = _("Yes, that's exactly it!\nThat's what I meant.\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EEFEC[] = _("In other words…\nYes! That's right!\p");
|
||||
|
||||
const u8 *const gUnknown_082EF010[][4] = {
|
||||
const u8 *const gUnknown_082EF010[GENDER_COUNT][4] = {
|
||||
[MALE] =
|
||||
{
|
||||
gUnknown_082EEECC,
|
||||
gUnknown_082EEEF0,
|
||||
gUnknown_082EEF2C,
|
||||
gUnknown_082EEF50
|
||||
}, {
|
||||
},
|
||||
[FEMALE] =
|
||||
{
|
||||
gUnknown_082EEF7C,
|
||||
gUnknown_082EEFA0,
|
||||
gUnknown_082EEFBC,
|
||||
@ -393,65 +395,68 @@ ALIGNED(4) const u8 gUnknown_082EF06C[] = _("I hope I get to know you better!\p"
|
||||
ALIGNED(4) const u8 gUnknown_082EF090[] = _("We're showing each other our\nTRAINER CARDS to get acquainted.\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EF0D0[] = _("Glad to meet you.\nPlease don't be a stranger!\p");
|
||||
|
||||
const u8 *const gUnknown_082EF100[][2] = {
|
||||
const u8 *const gUnknown_082EF100[GENDER_COUNT][2] = {
|
||||
[MALE] =
|
||||
{
|
||||
gUnknown_082EF030,
|
||||
gUnknown_082EF06C
|
||||
}, {
|
||||
},
|
||||
[FEMALE] =
|
||||
{
|
||||
gUnknown_082EF090,
|
||||
gUnknown_082EF0D0
|
||||
}
|
||||
};
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_082EF110[] = _("Yeahah!\nI really wanted this POKéMON!\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EF138[] = _("Finally, a trade got me that\nPOKéMON I'd wanted a long time.\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EF178[] = _("I'm trading POKéMON right now.\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EF198[] = _("I finally got that POKéMON I\nwanted in a trade!\p");
|
||||
ALIGNED(4) const u8 sText_MaleTraded1[] = _("Yeahah!\nI really wanted this POKéMON!\p");
|
||||
ALIGNED(4) const u8 sText_MaleTraded2[] = _("Finally, a trade got me that\nPOKéMON I'd wanted a long time.\p");
|
||||
ALIGNED(4) const u8 sText_FemaleTraded1[] = _("I'm trading POKéMON right now.\p");
|
||||
ALIGNED(4) const u8 sText_FemaleTraded2[] = _("I finally got that POKéMON I\nwanted in a trade!\p");
|
||||
|
||||
const u8 *const gUnknown_082EF1CC[][4] = {
|
||||
const u8 *const sUnionRoomTexts_Traded[GENDER_COUNT][4] = {
|
||||
[MALE] =
|
||||
{
|
||||
gUnknown_082EF110,
|
||||
gUnknown_082EF138,
|
||||
NULL,
|
||||
NULL
|
||||
}, {
|
||||
gUnknown_082EF178,
|
||||
gUnknown_082EF198,
|
||||
NULL,
|
||||
NULL
|
||||
sText_MaleTraded1,
|
||||
sText_MaleTraded2
|
||||
},
|
||||
[FEMALE] =
|
||||
{
|
||||
sText_FemaleTraded1,
|
||||
sText_FemaleTraded2
|
||||
}
|
||||
};
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_082EF1EC[] = _("{STR_VAR_1} checked the\nTRADING BOARD.\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EF20C[] = _("Welcome to the TRADING BOARD.\pYou may register your POKéMON\nand offer it up for a trade.\pWould you like to register one of\nyour POKéMON?");
|
||||
ALIGNED(4) const u8 gUnknown_082EF298[] = _("This TRADING BOARD is used for\noffering a POKéMON for a trade.\pAll you need to do is register a\nPOKéMON for a trade.\pAnother TRAINER may offer a party\nPOKéMON in return for the trade.\pWe hope you will register POKéMON\nand trade them with many, many\lother TRAINERS.\pWould you like to register one of\nyour POKéMON?");
|
||||
ALIGNED(4) const u8 unref_text_union_room_6[] = _("We have registered your POKéMON for\ntrade on the TRADING BOARD.\pThank you for using this service!\p");
|
||||
ALIGNED(4) const u8 unref_text_union_room_7[] = _("Nobody has registered any POKéMON\nfor trade on the TRADING BOARD.\p\n");
|
||||
ALIGNED(4) const u8 gUnknown_082EF47C[] = _("Please choose the type of POKéMON\nthat you would like in the trade.\n");
|
||||
ALIGNED(4) const u8 gUnknown_082EF4C4[] = _("Which of your party POKéMON will\nyou offer in trade?\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EF4FC[] = _("Registration has been canceled.\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EF520[] = _("Registration has been completed.\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EF544[] = _("The trade has been canceled.\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EF564[] = _("Cancel the registration of your\nLv. {STR_VAR_2} {STR_VAR_1}?");
|
||||
ALIGNED(4) const u8 gUnknown_082EF590[] = _("Cancel the registration of your\nEGG?");
|
||||
ALIGNED(4) const u8 gUnknown_082EF5B8[] = _("The registration has been canceled.\p");
|
||||
ALIGNED(4) const u8 unref_text_union_room_8[] = _("TRAINERS wishing to make a trade\nwill be listed.");
|
||||
ALIGNED(4) const u8 unref_text_union_room_9[] = _("Please choose the TRAINER with whom\nyou would like to trade POKéMON.");
|
||||
ALIGNED(4) const u8 gUnknown_082EF65C[] = _("Would you like to ask {STR_VAR_1} to\nmake a trade?");
|
||||
ALIGNED(4) const u8 unref_text_union_room_10[] = _("Awaiting a response from\nthe other TRAINER…");
|
||||
ALIGNED(4) const u8 unref_text_union_room_11[] = _("You have not registered a POKéMON\nfor trading.\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EF6E4[] = _("You don't have a {STR_VAR_2}-type\nPOKéMON that {STR_VAR_1} wants.\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EF718[] = _("You don't have an EGG that\n{STR_VAR_1} wants.\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EF740[] = _("{STR_VAR_1} can't make a trade for\nyour POKéMON right now.\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EF774[] = _("You can't make a trade for\n{STR_VAR_1}'s POKéMON right now.\p");
|
||||
ALIGNED(4) const u8 sText_XCheckedTradingBoard[] = _("{STR_VAR_1} checked the\nTRADING BOARD.\p");
|
||||
ALIGNED(4) const u8 sText_RegisterMonAtTradingBoard[] = _("Welcome to the TRADING BOARD.\pYou may register your POKéMON\nand offer it up for a trade.\pWould you like to register one of\nyour POKéMON?");
|
||||
ALIGNED(4) const u8 sText_TradingBoardInfo[] = _("This TRADING BOARD is used for\noffering a POKéMON for a trade.\pAll you need to do is register a\nPOKéMON for a trade.\pAnother TRAINER may offer a party\nPOKéMON in return for the trade.\pWe hope you will register POKéMON\nand trade them with many, many\lother TRAINERS.\pWould you like to register one of\nyour POKéMON?");
|
||||
ALIGNED(4) const u8 sText_ThankYouForRegistering[] = _("We have registered your POKéMON for\ntrade on the TRADING BOARD.\pThank you for using this service!\p"); // unused
|
||||
ALIGNED(4) const u8 sText_NobodyHasRegistered[] = _("Nobody has registered any POKéMON\nfor trade on the TRADING BOARD.\p\n"); // unused
|
||||
ALIGNED(4) const u8 sText_ChooseRequestedMonType[] = _("Please choose the type of POKéMON\nthat you would like in the trade.\n");
|
||||
ALIGNED(4) const u8 sText_WhichMonWillYouOffer[] = _("Which of your party POKéMON will\nyou offer in trade?\p");
|
||||
ALIGNED(4) const u8 sText_RegistrationCanceled[] = _("Registration has been canceled.\p");
|
||||
ALIGNED(4) const u8 sText_RegistraionCompleted[] = _("Registration has been completed.\p");
|
||||
ALIGNED(4) const u8 sText_TradeCanceled[] = _("The trade has been canceled.\p");
|
||||
ALIGNED(4) const u8 sText_CancelRegistrationOfMon[] = _("Cancel the registration of your\nLv. {STR_VAR_2} {STR_VAR_1}?");
|
||||
ALIGNED(4) const u8 sText_CancelRegistrationOfEgg[] = _("Cancel the registration of your\nEGG?");
|
||||
ALIGNED(4) const u8 sText_RegistrationCanceled2[] = _("The registration has been canceled.\p");
|
||||
ALIGNED(4) const u8 sText_TradeTrainersWillBeListed[] = _("TRAINERS wishing to make a trade\nwill be listed."); // unused
|
||||
ALIGNED(4) const u8 sText_ChooseTrainerToTradeWith[] = _("Please choose the TRAINER with whom\nyou would like to trade POKéMON."); // unused
|
||||
ALIGNED(4) const u8 sText_AskTrainerToMakeTrade[] = _("Would you like to ask {STR_VAR_1} to\nmake a trade?");
|
||||
ALIGNED(4) const u8 sText_AwaitingResponseFromTrainer[] = _("Awaiting a response from\nthe other TRAINER…"); // unused
|
||||
ALIGNED(4) const u8 sText_NotRegisteredAMonForTrade[] = _("You have not registered a POKéMON\nfor trading.\p"); // unused
|
||||
ALIGNED(4) const u8 sText_DontHaveTypeTrainerWants[] = _("You don't have a {STR_VAR_2}-type\nPOKéMON that {STR_VAR_1} wants.\p");
|
||||
ALIGNED(4) const u8 sText_DontHaveEggTrainerWants[] = _("You don't have an EGG that\n{STR_VAR_1} wants.\p");
|
||||
ALIGNED(4) const u8 sText_CantTradeMonRightNow[] = _("{STR_VAR_1} can't make a trade for\nyour POKéMON right now.\p");
|
||||
ALIGNED(4) const u8 sText_CantTradePartnersMonRightNow[] = _("You can't make a trade for\n{STR_VAR_1}'s POKéMON right now.\p");
|
||||
|
||||
const u8 *const unref_text_ptrs_union_room_4[] = {
|
||||
gUnknown_082EF740,
|
||||
gUnknown_082EF774
|
||||
// unused
|
||||
const u8 *const sUnionRoomTexts_CantTradeRightNow[] = {
|
||||
sText_CantTradeMonRightNow,
|
||||
sText_CantTradePartnersMonRightNow
|
||||
};
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_082EF7B0[] = _("Your trade offer was rejected.\p");
|
||||
ALIGNED(4) const u8 gUnknown_082EF7D0[] = _("EGG TRADE");
|
||||
ALIGNED(4) const u8 sText_TradeOfferRejected[] = _("Your trade offer was rejected.\p");
|
||||
ALIGNED(4) const u8 sText_EggTrade[] = _("EGG TRADE");
|
||||
ALIGNED(4) const u8 gUnknown_082EF7DC[] = _("{DPAD_UPDOWN}CHOOSE {A_BUTTON}JOIN {B_BUTTON}CANCEL");
|
||||
ALIGNED(4) const u8 gUnknown_082EF7F8[] = _("Please choose a TRAINER.");
|
||||
ALIGNED(4) const u8 gUnknown_082EF814[] = _("Please choose a TRAINER for\na SINGLE BATTLE.");
|
||||
|
@ -34,7 +34,7 @@ void sub_8161560(u8 taskId)
|
||||
gUnknown_0203CEC8.unkB = 0xA;
|
||||
gUnknown_0203CEC8.unkA = gUnknown_0203CEC8.slotId;
|
||||
sub_81B0FCC(GetCursorSelectionMonId(), 0x1);
|
||||
display_pokemon_menu_message(0x5);
|
||||
DisplayPartyMenuStdMessage(5);
|
||||
gTasks[taskId].func = sub_81B1370;
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ void sub_81615A8(u8 taskId)
|
||||
if(pokemonIndex > 6)
|
||||
{
|
||||
gUnknown_0203CEC8.unkB = 0;
|
||||
display_pokemon_menu_message(0x0);
|
||||
DisplayPartyMenuStdMessage(0);
|
||||
gTasks[taskId].func = sub_81B1370;
|
||||
return;
|
||||
}
|
||||
@ -73,7 +73,7 @@ static void sub_81616C0(u8 taskId)
|
||||
{
|
||||
GetMonNickname(&gPlayerParty[gUnknown_0203CEC8.unkA], gStringVar1);
|
||||
StringExpandPlaceholders(gStringVar4, gText_PkmnHPRestoredByVar2);
|
||||
sub_81B1B5C(gStringVar4, 0);
|
||||
DisplayPartyMenuMessage(gStringVar4, 0);
|
||||
schedule_bg_copy_tilemap_to_vram(2);
|
||||
gTasks[taskId].func = sub_8161724;
|
||||
}
|
||||
@ -88,7 +88,7 @@ static void sub_8161724(u8 taskId)
|
||||
sub_81B0FCC(gUnknown_0203CEC8.unkA, 1);
|
||||
ClearStdWindowAndFrameToTransparent(0x6, FALSE);
|
||||
ClearWindowTilemap(0x6);
|
||||
display_pokemon_menu_message(0);
|
||||
DisplayPartyMenuStdMessage(0);
|
||||
gTasks[taskId].func = sub_81B1370;
|
||||
}
|
||||
|
||||
@ -96,14 +96,14 @@ static void sub_8161784(u8 taskId)
|
||||
{
|
||||
if(sub_81B1BD4() == 1)
|
||||
return;
|
||||
display_pokemon_menu_message(0x5);
|
||||
DisplayPartyMenuStdMessage(5);
|
||||
gTasks[taskId].func = sub_81B1370;
|
||||
}
|
||||
|
||||
static void sub_81617B8(u8 taskId)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
sub_81B1B5C(gText_CantBeUsedOnPkmn, 0);
|
||||
DisplayPartyMenuMessage(gText_CantBeUsedOnPkmn, 0);
|
||||
schedule_bg_copy_tilemap_to_vram(2);
|
||||
gTasks[taskId].func = sub_8161784;
|
||||
}
|
||||
|
@ -4255,11 +4255,11 @@ void sub_8010FA0(bool32 a0, bool32 a1)
|
||||
gUnknown_02022B14.unk_00.unk_00_5 = a1;
|
||||
}
|
||||
|
||||
void sub_8010FCC(u32 a0, u32 a1, u32 a2)
|
||||
void sub_8010FCC(u32 type, u32 species, u32 level)
|
||||
{
|
||||
gUnknown_02022B14.type = a0;
|
||||
gUnknown_02022B14.species = a1;
|
||||
gUnknown_02022B14.level = a2;
|
||||
gUnknown_02022B14.type = type;
|
||||
gUnknown_02022B14.species = species;
|
||||
gUnknown_02022B14.level = level;
|
||||
}
|
||||
|
||||
u8 sub_801100C(s32 a0)
|
||||
|
325
src/party_menu.c
325
src/party_menu.c
File diff suppressed because it is too large
Load Diff
25
src/trade.c
25
src/trade.c
@ -2558,31 +2558,24 @@ int GetUnionRoomTradeMessageId(struct UnkLinkRfuStruct_02022B14Substruct a0, str
|
||||
return UR_TRADE_MSG_NONE;
|
||||
}
|
||||
|
||||
int sub_807A8D0(struct UnkLinkRfuStruct_02022B14Substruct a0, u16 species2, u16 species, u8 isObedientBitSet)
|
||||
int CanRegisterMonForTradingBoard(struct UnkLinkRfuStruct_02022B14Substruct a0, u16 species2, u16 species, u8 isObedientBitSet)
|
||||
{
|
||||
u8 unk = a0.hasNationalDex;
|
||||
bool8 hasNationalDex = a0.hasNationalDex;
|
||||
|
||||
if (IsDeoxysOrMewUntradable(species, isObedientBitSet))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
return CANT_REGISTER_MON;
|
||||
|
||||
if (unk)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
if (hasNationalDex)
|
||||
return CAN_REGISTER_MON;
|
||||
|
||||
// Eggs can only be traded if the player has the National Dex
|
||||
if (species2 == SPECIES_EGG)
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
return CANT_REGISTER_EGG;
|
||||
|
||||
if (IsSpeciesInHoennDex(species2))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return CAN_REGISTER_MON;
|
||||
|
||||
return 1;
|
||||
return CANT_REGISTER_MON;
|
||||
}
|
||||
|
||||
// r6/r7 flip. Ugh.
|
||||
|
188
src/union_room.c
188
src/union_room.c
@ -58,7 +58,7 @@ EWRAM_DATA u32 gFiller_02022C34 = 0;
|
||||
EWRAM_DATA struct UnkLinkRfuStruct_02022B14Substruct gUnknown_02022C38 = {};
|
||||
EWRAM_DATA u16 gUnionRoomOfferedSpecies = 0;
|
||||
EWRAM_DATA u8 gUnionRoomRequestedMonType = 0;
|
||||
EWRAM_DATA struct TradeUnkStruct gUnknown_02022C40 = {};
|
||||
static EWRAM_DATA struct UnionRoomTrade sUnionRoomTrade = {};
|
||||
|
||||
// IWRAM vars
|
||||
static struct UnkStruct_Leader *gUnknown_03000DA0;
|
||||
@ -96,8 +96,8 @@ void sub_8013BD8(struct UnkStruct_Group *arg0, s32 id);
|
||||
void sub_80173D4(void);
|
||||
void sub_80177B8(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id);
|
||||
bool32 sub_8017678(struct UnkStruct_Shared *arg0, struct UnkStruct_Shared *arg1);
|
||||
u32 sub_8018120(struct TradeUnkStruct *arg0, u8 multiplayerId);
|
||||
void sub_801807C(struct TradeUnkStruct *arg0);
|
||||
static u32 GetPartyPositionOfRegisteredMon(struct UnionRoomTrade *arg0, u8 multiplayerId);
|
||||
static void ResetUnionRoomTrade(struct UnionRoomTrade *arg0);
|
||||
void sub_801AC54(void);
|
||||
void sub_80149D8(void);
|
||||
void MG_DrawTextBorder(u8 windowId);
|
||||
@ -105,8 +105,8 @@ s8 mevent_message_print_and_prompt_yes_no(u8 *textState, u8 *arg1, u8 arg2, cons
|
||||
bool32 sub_8016F1C(struct UnkLinkRfuStruct_02022B14 *arg0, s16 arg1);
|
||||
u8 sub_8016DF0(struct UnkStruct_Main4 *arg0, struct UnkStruct_Main4 *arg1, u32 arg2);
|
||||
void sub_8019F2C(void);
|
||||
bool32 sub_80180A0(u32 monId, struct TradeUnkStruct *arg1);
|
||||
void sub_80180E8(u32 monId, struct TradeUnkStruct *arg1);
|
||||
static bool32 RegisterTradeMonAndGetIsEgg(u32 monId, struct UnionRoomTrade *trade);
|
||||
static void RegisterTradeMon(u32 monId, struct UnionRoomTrade *arg1);
|
||||
void sub_80181CC(void);
|
||||
bool32 sub_8017940(void);
|
||||
u8 sub_8016B00(void);
|
||||
@ -122,7 +122,7 @@ void sub_801818C(bool32 arg0);
|
||||
s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate);
|
||||
s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6);
|
||||
s32 sub_8017CB0(struct UnkStruct_x20 * arg, s32 arg1);
|
||||
bool32 sub_8018024(void);
|
||||
bool32 HasAtLeastTwoMonsOfLevel30OrLower(void);
|
||||
u32 sub_8017984(s32 arg0);
|
||||
void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2);
|
||||
void sub_8017D9C(u8 *dst, s32 arg1, u32 playerGender);
|
||||
@ -601,11 +601,11 @@ void sub_8013078(u8 *dst, u8 caseId)
|
||||
{
|
||||
case 65:
|
||||
case 68:
|
||||
StringExpandPlaceholders(dst, gUnionRoom_OfferDeclined1);
|
||||
StringExpandPlaceholders(dst, sText_OfferDeclined1);
|
||||
break;
|
||||
case 69:
|
||||
case 72:
|
||||
StringExpandPlaceholders(dst, gUnionRoom_OfferDeclined2);
|
||||
StringExpandPlaceholders(dst, sText_OfferDeclined2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -1282,7 +1282,7 @@ u8 sub_8013F78(void)
|
||||
|
||||
void sub_8013F90(u8 taskId)
|
||||
{
|
||||
u32 monId = sub_8018120(&gUnknown_02022C40, GetMultiplayerId());
|
||||
u32 monId = GetPartyPositionOfRegisteredMon(&sUnionRoomTrade, GetMultiplayerId());
|
||||
|
||||
switch (gTasks[taskId].data[0])
|
||||
{
|
||||
@ -1313,7 +1313,7 @@ void sub_8013F90(u8 taskId)
|
||||
gSelectedTradeMonPositions[TRADE_PARTNER] = PARTY_SIZE;
|
||||
gMain.savedCallback = CB2_ReturnToField;
|
||||
SetMainCallback2(sub_807AE50);
|
||||
sub_801807C(&gUnknown_02022C40);
|
||||
ResetUnionRoomTrade(&sUnionRoomTrade);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
break;
|
||||
@ -2296,7 +2296,7 @@ void sub_80156E0(u8 taskId)
|
||||
break;
|
||||
case 2:
|
||||
sub_8010F84(0x40, 0, 0);
|
||||
sub_8010FCC(gUnknown_02022C40.type, gUnknown_02022C40.playerSpecies, gUnknown_02022C40.playerLevel);
|
||||
sub_8010FCC(sUnionRoomTrade.type, sUnionRoomTrade.playerSpecies, sUnionRoomTrade.playerLevel);
|
||||
sub_800B488();
|
||||
OpenLink();
|
||||
sub_8011C84();
|
||||
@ -2307,22 +2307,22 @@ void sub_80156E0(u8 taskId)
|
||||
data->state = 3;
|
||||
break;
|
||||
case 3:
|
||||
if ((sub_81B1360() == 8 || sub_81B1360() == 9) && gUnknown_02022C40.field_0 != 0)
|
||||
if ((sub_81B1360() == 8 || sub_81B1360() == 9) && sUnionRoomTrade.field_0 != 0)
|
||||
{
|
||||
id = GetCursorSelectionMonId();
|
||||
switch (gUnknown_02022C40.field_0)
|
||||
switch (sUnionRoomTrade.field_0)
|
||||
{
|
||||
case 1:
|
||||
sub_8011090(0x54, 0, 1);
|
||||
if (id >= PARTY_SIZE)
|
||||
{
|
||||
sub_801807C(&gUnknown_02022C40);
|
||||
ResetUnionRoomTrade(&sUnionRoomTrade);
|
||||
sub_8010FCC(0, 0, 0);
|
||||
sub_801568C(gUnknown_082EF4FC);
|
||||
sub_801568C(sText_RegistrationCanceled);
|
||||
}
|
||||
else if (!sub_80180A0(GetCursorSelectionMonId(), &gUnknown_02022C40))
|
||||
else if (!RegisterTradeMonAndGetIsEgg(GetCursorSelectionMonId(), &sUnionRoomTrade))
|
||||
{
|
||||
sub_8015664(0x34, gUnknown_082EF47C);
|
||||
sub_8015664(0x34, sText_ChooseRequestedMonType);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2331,21 +2331,21 @@ void sub_80156E0(u8 taskId)
|
||||
break;
|
||||
case 2:
|
||||
sub_80156C8(data);
|
||||
taskData[1] = gUnknown_02022C40.field_8;
|
||||
taskData[1] = sUnionRoomTrade.field_8;
|
||||
if (id >= PARTY_SIZE)
|
||||
{
|
||||
sub_801568C(gUnknown_082EF544);
|
||||
sub_801568C(sText_TradeCanceled);
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_8011090(0x54, 0, 1);
|
||||
gUnknown_02022C2C = 0x44;
|
||||
sub_80180E8(GetCursorSelectionMonId(), &gUnknown_02022C40);
|
||||
RegisterTradeMon(GetCursorSelectionMonId(), &sUnionRoomTrade);
|
||||
data->state = 51;
|
||||
}
|
||||
break;
|
||||
}
|
||||
gUnknown_02022C40.field_0 = 0;
|
||||
sUnionRoomTrade.field_0 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2453,9 +2453,9 @@ void sub_80156E0(u8 taskId)
|
||||
case 1:
|
||||
case 2:
|
||||
if (sub_8011B90() == TRUE)
|
||||
sub_801568C(gUnknown_082EE6C8);
|
||||
sub_801568C(sText_TrainerAppearsBusy);
|
||||
else
|
||||
sub_8015664(30, gUnknown_082EE6C8);
|
||||
sub_8015664(30, sText_TrainerAppearsBusy);
|
||||
|
||||
gUnknown_02022C2C = 0x40;
|
||||
break;
|
||||
@ -2513,9 +2513,9 @@ void sub_80156E0(u8 taskId)
|
||||
{
|
||||
gUnknown_02022C2C = var5;
|
||||
gUnknown_02022C2D = (u32)(var5) >> 8;
|
||||
if (gUnknown_02022C2C == 0x41 && !sub_8018024())
|
||||
if (gUnknown_02022C2C == 0x41 && !HasAtLeastTwoMonsOfLevel30OrLower())
|
||||
{
|
||||
sub_8015664(5, gUnknown_082EEBD0);
|
||||
sub_8015664(5, sText_NeedTwoMonsOfLevel30OrLower1);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2528,7 +2528,7 @@ void sub_80156E0(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 28:
|
||||
StringCopy(gStringVar4, gUnknown_082EEB88);
|
||||
StringCopy(gStringVar4, sText_TrainerBattleBusy);
|
||||
data->state = 36;
|
||||
break;
|
||||
case 27:
|
||||
@ -2547,15 +2547,15 @@ void sub_80156E0(u8 taskId)
|
||||
break;
|
||||
case 31:
|
||||
data->field_4C[0] = 0x44;
|
||||
data->field_4C[1] = gUnknown_02022C40.species;
|
||||
data->field_4C[2] = gUnknown_02022C40.level;
|
||||
data->field_4C[1] = sUnionRoomTrade.species;
|
||||
data->field_4C[2] = sUnionRoomTrade.level;
|
||||
sub_800FE50(data->field_4C);
|
||||
data->state = 29;
|
||||
break;
|
||||
case 29:
|
||||
if (gReceivedRemoteLinkPlayers == 0)
|
||||
{
|
||||
StringCopy(gStringVar4, gUnknown_082EEB88);
|
||||
StringCopy(gStringVar4, sText_TrainerBattleBusy);
|
||||
data->state = 28;
|
||||
}
|
||||
else
|
||||
@ -2603,7 +2603,7 @@ void sub_80156E0(u8 taskId)
|
||||
{
|
||||
StringCopy(gStringVar1, gLinkPlayers[GetMultiplayerId() ^ 1].name);
|
||||
id = sub_800E540(gLinkPlayers[1].trainerId, gLinkPlayers[1].name);
|
||||
StringExpandPlaceholders(gStringVar4, gUnknown_082EE378[id]);
|
||||
StringExpandPlaceholders(gStringVar4, sUnionRoomTexts_AwaitingResponse[id]);
|
||||
data->state = 33;
|
||||
}
|
||||
else
|
||||
@ -2627,7 +2627,7 @@ void sub_80156E0(u8 taskId)
|
||||
case 1:
|
||||
case -1:
|
||||
playerGender = sub_8017CF8(taskData[1], data->field_0);
|
||||
sub_801568C(gUnknown_082EEC9C[playerGender]);
|
||||
sub_801568C(sUnionRoomTexts_DeclineBattle[playerGender]);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@ -2712,7 +2712,7 @@ void sub_80156E0(u8 taskId)
|
||||
if (sub_80168DC(data) && gMain.newKeys & B_BUTTON)
|
||||
{
|
||||
sub_8011DE0(1);
|
||||
StringCopy(gStringVar4, gUnionRoom_ChatEnded);
|
||||
StringCopy(gStringVar4, sText_ChatEnded);
|
||||
data->state = 36;
|
||||
}
|
||||
break;
|
||||
@ -2733,12 +2733,12 @@ void sub_80156E0(u8 taskId)
|
||||
taskData[3] = 0;
|
||||
if (gUnknown_02022C2C == 0x41)
|
||||
{
|
||||
if (!sub_8018024())
|
||||
if (!HasAtLeastTwoMonsOfLevel30OrLower())
|
||||
{
|
||||
data->field_4C[0] = 0x52;
|
||||
sub_800FE50(data->field_4C);
|
||||
data->state = 10;
|
||||
StringCopy(gStringVar4, gUnknown_082EEC14);
|
||||
StringCopy(gStringVar4, sText_NeedTwoMonsOfLevel30OrLower2);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2828,19 +2828,19 @@ void sub_80156E0(u8 taskId)
|
||||
{
|
||||
if (sub_800F7DC()->species == SPECIES_EGG)
|
||||
{
|
||||
StringCopy(gStringVar4, gUnknown_082EF590);
|
||||
StringCopy(gStringVar4, sText_CancelRegistrationOfEgg);
|
||||
}
|
||||
else
|
||||
{
|
||||
StringCopy(gStringVar1, gSpeciesNames[sub_800F7DC()->species]);
|
||||
ConvertIntToDecimalStringN(gStringVar2, sub_800F7DC()->level, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
StringExpandPlaceholders(gStringVar4, gUnknown_082EF564);
|
||||
StringExpandPlaceholders(gStringVar4, sText_CancelRegistrationOfMon);
|
||||
}
|
||||
sub_8015664(44, gStringVar4);
|
||||
}
|
||||
break;
|
||||
case 43:
|
||||
if (PrintOnTextbox(&data->textState, gUnknown_082EF20C))
|
||||
if (PrintOnTextbox(&data->textState, sText_RegisterMonAtTradingBoard))
|
||||
data->state = 47;
|
||||
break;
|
||||
case 47:
|
||||
@ -2856,11 +2856,11 @@ void sub_80156E0(u8 taskId)
|
||||
{
|
||||
switch (var5)
|
||||
{
|
||||
case 1:
|
||||
sub_8015664(53, gUnknown_082EF4C4);
|
||||
case 1: // REGISTER
|
||||
sub_8015664(53, sText_WhichMonWillYouOffer);
|
||||
break;
|
||||
case 2:
|
||||
sub_8015664(47, gUnknown_082EF298);
|
||||
case 2: // INFO
|
||||
sub_8015664(47, sText_TradingBoardInfo);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -2873,7 +2873,7 @@ void sub_80156E0(u8 taskId)
|
||||
case 54:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
gUnknown_02022C40.field_0 = 1;
|
||||
sUnionRoomTrade.field_0 = 1;
|
||||
gFieldCallback = sub_80AF128;
|
||||
sub_81B8904(8, CB2_ReturnToField);
|
||||
}
|
||||
@ -2886,20 +2886,20 @@ void sub_80156E0(u8 taskId)
|
||||
{
|
||||
case -2:
|
||||
case 18:
|
||||
sub_801807C(&gUnknown_02022C40);
|
||||
ResetUnionRoomTrade(&sUnionRoomTrade);
|
||||
sub_8010FCC(0, 0, 0);
|
||||
sub_801568C(gUnknown_082EF4FC);
|
||||
sub_801568C(sText_RegistrationCanceled);
|
||||
break;
|
||||
default:
|
||||
gUnknown_02022C40.type = var5;
|
||||
sUnionRoomTrade.type = var5;
|
||||
data->state = 55;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 55:
|
||||
sub_8010FCC(gUnknown_02022C40.type, gUnknown_02022C40.playerSpecies, gUnknown_02022C40.playerLevel);
|
||||
sub_801568C(gUnknown_082EF520);
|
||||
sub_8010FCC(sUnionRoomTrade.type, sUnionRoomTrade.playerSpecies, sUnionRoomTrade.playerLevel);
|
||||
sub_801568C(sText_RegistraionCompleted);
|
||||
break;
|
||||
case 44:
|
||||
switch (sub_80170B8(&data->textState, FALSE))
|
||||
@ -2915,16 +2915,16 @@ void sub_80156E0(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 56:
|
||||
if (PrintOnTextbox(&data->textState, gUnknown_082EF5B8))
|
||||
if (PrintOnTextbox(&data->textState, sText_RegistrationCanceled2))
|
||||
{
|
||||
sub_8010FCC(0, 0, 0);
|
||||
sub_801807C(&gUnknown_02022C40);
|
||||
ResetUnionRoomTrade(&sUnionRoomTrade);
|
||||
sub_801818C(TRUE);
|
||||
data->state = 4;
|
||||
}
|
||||
break;
|
||||
case 45:
|
||||
if (PrintOnTextbox(&data->textState, gUnknown_082EF1EC))
|
||||
if (PrintOnTextbox(&data->textState, sText_XCheckedTradingBoard))
|
||||
data->state = 46;
|
||||
break;
|
||||
case 46:
|
||||
@ -2948,18 +2948,18 @@ void sub_80156E0(u8 taskId)
|
||||
{
|
||||
case 0:
|
||||
sub_8018404(gStringVar1, &data->field_0->arr[var5]);
|
||||
sub_8015664(49, gUnknown_082EF65C);
|
||||
sub_8015664(49, sText_AskTrainerToMakeTrade);
|
||||
taskData[1] = var5;
|
||||
break;
|
||||
case 1:
|
||||
sub_8018404(gStringVar1, &data->field_0->arr[var5]);
|
||||
StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].unk.field_0.type]);
|
||||
sub_8015664(46, gUnknown_082EF6E4);
|
||||
sub_8015664(46, sText_DontHaveTypeTrainerWants);
|
||||
break;
|
||||
case 2:
|
||||
sub_8018404(gStringVar1, &data->field_0->arr[var5]);
|
||||
StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].unk.field_0.type]);
|
||||
sub_8015664(46, gUnknown_082EF718);
|
||||
sub_8015664(46, sText_DontHaveEggTrainerWants);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@ -2980,16 +2980,16 @@ void sub_80156E0(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 50:
|
||||
if (PrintOnTextbox(&data->textState, gUnknown_082EF4C4))
|
||||
if (PrintOnTextbox(&data->textState, sText_WhichMonWillYouOffer))
|
||||
{
|
||||
gUnknown_02022C40.field_0 = 2;
|
||||
sUnionRoomTrade.field_0 = 2;
|
||||
memcpy(&gUnknown_02022C38, &data->field_0->arr[taskData[1]].unk.field_0.unk_00, sizeof(gUnknown_02022C38));
|
||||
gUnionRoomRequestedMonType = data->field_0->arr[taskData[1]].unk.field_0.type;
|
||||
gUnionRoomOfferedSpecies = data->field_0->arr[taskData[1]].unk.field_0.species;
|
||||
gFieldCallback = sub_80AF128;
|
||||
sub_81B8904(9, CB2_ReturnToField);
|
||||
sub_80156B0(data);
|
||||
gUnknown_02022C40.field_8 = taskData[1];
|
||||
sUnionRoomTrade.field_8 = taskData[1];
|
||||
}
|
||||
break;
|
||||
case 51:
|
||||
@ -3859,7 +3859,7 @@ s32 sub_80179D4(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender
|
||||
r2 = sub_800E540(ReadAsU16(r5->unk.field_0.unk_00.playerTrainerId), gStringVar1);
|
||||
if (r5->unk.field_0.unk_0a_0 == 0x45)
|
||||
{
|
||||
StringExpandPlaceholders(gStringVar4, gUnknown_082EE6B8[r2][playerGender]);
|
||||
StringExpandPlaceholders(gStringVar4, sUnionRoomTexts_JoinChat[r2][playerGender]);
|
||||
return 2;
|
||||
}
|
||||
else
|
||||
@ -3881,7 +3881,7 @@ s32 sub_80179D4(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender
|
||||
StringExpandPlaceholders(gStringVar4, gUnknown_082EEEAC[playerGender][Random() % 4]);
|
||||
break;
|
||||
case 4:
|
||||
StringExpandPlaceholders(gStringVar4, gUnknown_082EF1CC[playerGender][Random() % 2]);
|
||||
StringExpandPlaceholders(gStringVar4, sUnionRoomTexts_Traded[playerGender][Random() % 2]);
|
||||
break;
|
||||
case 5:
|
||||
StringExpandPlaceholders(gStringVar4, gUnknown_082EF010[playerGender][Random() % 4]);
|
||||
@ -3890,7 +3890,7 @@ s32 sub_80179D4(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender
|
||||
StringExpandPlaceholders(gStringVar4, gUnknown_082EF100[playerGender][Random() % 2]);
|
||||
break;
|
||||
default:
|
||||
StringExpandPlaceholders(gStringVar4, gUnknown_082EE6C8);
|
||||
StringExpandPlaceholders(gStringVar4, sText_TrainerAppearsBusy);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
@ -3912,7 +3912,7 @@ void sub_8017B3C(u8 arg0, u8 arg1, struct UnkLinkRfuStruct_02022B14 * arg2, cons
|
||||
sub_80173E0(arg0, 1, str, 8, arg1, arg4);
|
||||
if (r8 == SPECIES_EGG)
|
||||
{
|
||||
sub_80173E0(arg0, 1, gUnknown_082EF7D0, 0x44, arg1, arg4);
|
||||
sub_80173E0(arg0, 1, sText_EggTrade, 0x44, arg1, arg4);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -4023,7 +4023,7 @@ void sub_8017D9C(u8 *dst, s32 arg1, u32 playerGender)
|
||||
StringExpandPlaceholders(dst, gUnknown_082EED3C[playerGender]);
|
||||
break;
|
||||
case 0x44:
|
||||
StringExpandPlaceholders(dst, gUnknown_082EF7B0);
|
||||
StringExpandPlaceholders(dst, sText_TradeOfferRejected);
|
||||
break;
|
||||
case 0x48:
|
||||
StringExpandPlaceholders(dst, gUnknown_082EEB08[playerGender]);
|
||||
@ -4059,16 +4059,16 @@ s32 sub_8017EA0(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3)
|
||||
switch (arg2[0])
|
||||
{
|
||||
case 0x41:
|
||||
StringExpandPlaceholders(dst, gUnionRoom_BattleChallenge);
|
||||
StringExpandPlaceholders(dst, sText_BattleChallenge);
|
||||
result = 1;
|
||||
break;
|
||||
case 0x45:
|
||||
StringExpandPlaceholders(dst, gUnionRoom_ChatInvitation);
|
||||
StringExpandPlaceholders(dst, sText_ChatInvitation);
|
||||
result = 1;
|
||||
break;
|
||||
case 0x44:
|
||||
ConvertIntToDecimalStringN(arg3->field_58 + 0x00, gUnknown_02022C40.playerLevel, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
StringCopy(arg3->field_58 + 0x10, gSpeciesNames[gUnknown_02022C40.playerSpecies]);
|
||||
ConvertIntToDecimalStringN(arg3->field_58 + 0x00, sUnionRoomTrade.playerLevel, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
StringCopy(arg3->field_58 + 0x10, gSpeciesNames[sUnionRoomTrade.playerSpecies]);
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
if (gUnknown_03007890->unk_14[i].unk_04 == 2)
|
||||
@ -4081,7 +4081,7 @@ s32 sub_8017EA0(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3)
|
||||
}
|
||||
if (species == SPECIES_EGG)
|
||||
{
|
||||
StringCopy(dst, gUnionRoom_OfferToTradeEgg);
|
||||
StringCopy(dst, sText_OfferToTradeEgg);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -4089,16 +4089,16 @@ s32 sub_8017EA0(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3)
|
||||
{
|
||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(i, arg3->field_58 + 0x10 * i);
|
||||
}
|
||||
DynamicPlaceholderTextUtil_ExpandPlaceholders(dst, gUnionRoom_OfferToTradeMon);
|
||||
DynamicPlaceholderTextUtil_ExpandPlaceholders(dst, sText_OfferToTradeMon);
|
||||
}
|
||||
result = 1;
|
||||
break;
|
||||
case 0x48:
|
||||
StringExpandPlaceholders(dst, gUnionRoom_ShowTrainerCard);
|
||||
StringExpandPlaceholders(dst, sText_ShowTrainerCard);
|
||||
result = 1;
|
||||
break;
|
||||
case 0x40:
|
||||
StringExpandPlaceholders(dst, gUnionRoom_ChatDropped);
|
||||
StringExpandPlaceholders(dst, sText_ChatDropped);
|
||||
result = 2;
|
||||
break;
|
||||
}
|
||||
@ -4131,14 +4131,14 @@ bool32 InUnionRoom(void)
|
||||
? TRUE : FALSE;
|
||||
}
|
||||
|
||||
bool32 sub_8018024(void)
|
||||
bool32 HasAtLeastTwoMonsOfLevel30OrLower(void)
|
||||
{
|
||||
s32 i;
|
||||
s32 count = 0;
|
||||
|
||||
for (i = 0; i < gPlayerPartyCount; i++)
|
||||
{
|
||||
if ( GetMonData(&gPlayerParty[i], MON_DATA_LEVEL) <= 30
|
||||
if (GetMonData(&gPlayerParty[i], MON_DATA_LEVEL) <= 30
|
||||
&& GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) != SPECIES_EGG)
|
||||
{
|
||||
count++;
|
||||
@ -4146,16 +4146,12 @@ bool32 sub_8018024(void)
|
||||
}
|
||||
|
||||
if (count > 1)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_801807C(struct TradeUnkStruct *arg0)
|
||||
static void ResetUnionRoomTrade(struct UnionRoomTrade *arg0)
|
||||
{
|
||||
arg0->field_0 = 0;
|
||||
arg0->type = 0;
|
||||
@ -4167,34 +4163,30 @@ void sub_801807C(struct TradeUnkStruct *arg0)
|
||||
arg0->personality = 0;
|
||||
}
|
||||
|
||||
void sub_8018090(void)
|
||||
void Script_ResetUnionRoomTrade(void)
|
||||
{
|
||||
sub_801807C(&gUnknown_02022C40);
|
||||
ResetUnionRoomTrade(&sUnionRoomTrade);
|
||||
}
|
||||
|
||||
bool32 sub_80180A0(u32 monId, struct TradeUnkStruct *arg1)
|
||||
static bool32 RegisterTradeMonAndGetIsEgg(u32 monId, struct UnionRoomTrade *trade)
|
||||
{
|
||||
arg1->playerSpecies = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES2);
|
||||
arg1->playerLevel = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
|
||||
arg1->playerPersonality = GetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY);
|
||||
if (arg1->playerSpecies == SPECIES_EGG)
|
||||
{
|
||||
trade->playerSpecies = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES2);
|
||||
trade->playerLevel = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
|
||||
trade->playerPersonality = GetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY);
|
||||
if (trade->playerSpecies == SPECIES_EGG)
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80180E8(u32 monId, struct TradeUnkStruct *arg1)
|
||||
static void RegisterTradeMon(u32 monId, struct UnionRoomTrade *trade)
|
||||
{
|
||||
arg1->species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES2);
|
||||
arg1->level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
|
||||
arg1->personality = GetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY);
|
||||
trade->species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES2);
|
||||
trade->level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
|
||||
trade->personality = GetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY);
|
||||
}
|
||||
|
||||
u32 sub_8018120(struct TradeUnkStruct *arg0, u8 multiplayerId)
|
||||
static u32 GetPartyPositionOfRegisteredMon(struct UnionRoomTrade *trade, u8 multiplayerId)
|
||||
{
|
||||
u16 response = 0;
|
||||
u16 species;
|
||||
@ -4203,15 +4195,17 @@ u32 sub_8018120(struct TradeUnkStruct *arg0, u8 multiplayerId)
|
||||
u16 cur_species;
|
||||
s32 i;
|
||||
|
||||
// player
|
||||
if (multiplayerId == 0)
|
||||
{
|
||||
species = arg0->playerSpecies;
|
||||
personality = arg0->playerPersonality;
|
||||
species = trade->playerSpecies;
|
||||
personality = trade->playerPersonality;
|
||||
}
|
||||
// partner
|
||||
else
|
||||
{
|
||||
species = arg0->species;
|
||||
personality = arg0->personality;
|
||||
species = trade->species;
|
||||
personality = trade->personality;
|
||||
}
|
||||
|
||||
for (i = 0; i < gPlayerPartyCount; i++)
|
||||
@ -4241,7 +4235,7 @@ void sub_801818C(bool32 arg0)
|
||||
gUnknown_02022C2C = 0;
|
||||
if (arg0)
|
||||
{
|
||||
sub_8010FCC(gUnknown_02022C40.type, gUnknown_02022C40.playerSpecies, gUnknown_02022C40.playerLevel);
|
||||
sub_8010FCC(sUnionRoomTrade.type, sUnionRoomTrade.playerSpecies, sUnionRoomTrade.playerLevel);
|
||||
sub_8011090(0x40, 0, 0);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user