From 4ff5769f4286212d6ca50f82647cdd3849e1a361 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 23 Jan 2020 16:52:41 -0500 Subject: union_room_chat through sub_81287B4 --- include/global.h | 5 ++++- include/help_system.h | 1 + include/link_rfu.h | 1 + include/main.h | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index 180a1e0a3..686ecb11c 100644 --- a/include/global.h +++ b/include/global.h @@ -718,6 +718,8 @@ struct TrainerNameRecord u8 trainerName[PLAYER_NAME_LENGTH]; }; +#define UNION_ROOM_KB_ROW_COUNT 10 + struct SaveBlock1 { /*0x0000*/ struct Coords16 pos; @@ -772,7 +774,8 @@ struct SaveBlock1 /*0x3A18*/ u8 seen2[DEX_FLAGS_NO]; /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH]; /*0x3A54*/ struct FameCheckerSaveData fameChecker[NUM_FAMECHECKER_PERSONS]; - /*0x3A94*/ u8 filler3A94[0x114]; + /*0x3A94*/ u8 filler3A94[0x40]; + /*0x3AD4*/ u8 unk3AD4[UNION_ROOM_KB_ROW_COUNT][21]; /*0x3BA8*/ struct TrainerNameRecord trainerNameRecords[20]; /*0x3C98*/ struct DaycareMon route5DayCareMon; /*0x3D24*/ u8 filler3D24[0x10]; diff --git a/include/help_system.h b/include/help_system.h index 273b5e119..59adec912 100644 --- a/include/help_system.h +++ b/include/help_system.h @@ -92,5 +92,6 @@ bool8 MoveCursor(u8 by, u8 dirn); void HelpSystem_BackupSomeVariable(void); void HelpSystem_RestoreSomeVariable(void); void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 width, u8 height); +void sub_812B4AC(void); #endif //GUARD_HELP_SYSTEM_H diff --git a/include/link_rfu.h b/include/link_rfu.h index 790429870..2e502165a 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -325,6 +325,7 @@ void sub_80FC114(const u8 *name, struct GFtgtGname *structPtr, u8 a2); bool32 PlayerHasMetTrainerBefore(u16 id, u8 *name); bool8 sub_80FCC3C(struct GFtgtGname *gname, u8 *uname, u8 idx); bool8 sub_80FCCF4(struct GFtgtGname *gname, u8 *uname, u8 idx); +bool32 sub_80FBA1C(void); #include "mevent_server.h" extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[]; diff --git a/include/main.h b/include/main.h index c962cf7bd..f89ffbd63 100644 --- a/include/main.h +++ b/include/main.h @@ -73,5 +73,6 @@ extern const char RomHeaderGameCode[4]; extern const char RomHeaderSoftwareVersion; extern u8 gLinkTransferringData; +extern u16 gKeyRepeatStartDelay; #endif // GUARD_MAIN_H -- cgit v1.2.3 From 14b7ed7a5f21e2a0c81373f6861ebd0d4c6eb78c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 24 Jan 2020 13:07:41 -0500 Subject: through sub_8128FB8 --- include/data_8479668.h | 35 +++++++++++++++++++++++++++++++++++ include/link_rfu.h | 1 + 2 files changed, 36 insertions(+) create mode 100644 include/data_8479668.h (limited to 'include') diff --git a/include/data_8479668.h b/include/data_8479668.h new file mode 100644 index 000000000..1a1f44267 --- /dev/null +++ b/include/data_8479668.h @@ -0,0 +1,35 @@ +#ifndef GUARD_DATA_8479668_H +#define GUARD_DATA_8479668_H + +extern const u8 gText_UnionRoomChatKeyboard_ABCDE[]; +extern const u8 gText_UnionRoomChatKeyboard_FGHIJ[]; +extern const u8 gText_UnionRoomChatKeyboard_KLMNO[]; +extern const u8 gText_UnionRoomChatKeyboard_PQRST[]; +extern const u8 gText_UnionRoomChatKeyboard_UVWXY[]; +extern const u8 gText_UnionRoomChatKeyboard_Z[]; +extern const u8 gText_UnionRoomChatKeyboard_01234Upper[]; +extern const u8 gText_UnionRoomChatKeyboard_56789Upper[]; +extern const u8 gText_UnionRoomChatKeyboard_PunctuationUpper[]; +extern const u8 gText_UnionRoomChatKeyboard_SymbolsUpper[]; +extern const u8 gText_UnionRoomChatKeyboard_abcde[]; +extern const u8 gText_UnionRoomChatKeyboard_fghij[]; +extern const u8 gText_UnionRoomChatKeyboard_klmno[]; +extern const u8 gText_UnionRoomChatKeyboard_pqrst[]; +extern const u8 gText_UnionRoomChatKeyboard_uvwxy[]; +extern const u8 gText_UnionRoomChatKeyboard_z[]; +extern const u8 gText_UnionRoomChatKeyboard_01234Lower[]; +extern const u8 gText_UnionRoomChatKeyboard_56789Lower[]; +extern const u8 gText_UnionRoomChatKeyboard_PunctuationLower[]; +extern const u8 gText_UnionRoomChatKeyboard_SymbolsLower[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji1[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji2[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji3[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji4[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji5[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji6[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji7[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji8[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji9[]; +extern const u8 gText_UnionRoomChatKeyboard_Emoji10[]; + +#endif //GUARD_DATA_8479668_H diff --git a/include/link_rfu.h b/include/link_rfu.h index 2e502165a..9dac781b3 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -326,6 +326,7 @@ bool32 PlayerHasMetTrainerBefore(u16 id, u8 *name); bool8 sub_80FCC3C(struct GFtgtGname *gname, u8 *uname, u8 idx); bool8 sub_80FCCF4(struct GFtgtGname *gname, u8 *uname, u8 idx); bool32 sub_80FBA1C(void); +void sub_80FA4A8(void); #include "mevent_server.h" extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[]; -- cgit v1.2.3 From d22dd0f08b6e08b75b6db8391022b9662e6879ce Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 24 Jan 2020 17:03:03 -0500 Subject: through sub_8129560 --- include/text.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'include') diff --git a/include/text.h b/include/text.h index cd059e0e5..ff8b033e9 100644 --- a/include/text.h +++ b/include/text.h @@ -5,10 +5,24 @@ #define CHAR_SPACE 0x00 #define CHAR_0 0xA1 +#define CHAR_1 0xA2 +#define CHAR_2 0xA3 +#define CHAR_3 0xA4 +#define CHAR_4 0xA5 +#define CHAR_5 0xA6 +#define CHAR_6 0xA7 +#define CHAR_7 0xA8 +#define CHAR_8 0xA9 +#define CHAR_9 0xAA +#define CHAR_EXCL_MARK 0xAB #define CHAR_QUESTION_MARK 0xAC #define CHAR_PERIOD 0xAD #define CHAR_HYPHEN 0xAE #define CHAR_ELLIPSIS 0xB0 +#define CHAR_DBL_QUOT_LEFT 0xB1 +#define CHAR_DBL_QUOT_RIGHT 0xB2 +#define CHAR_SGL_QUOT_LEFT 0xB3 +#define CHAR_SGL_QUOT_RIGHT 0xB4 #define CHAR_MALE 0xB5 #define CHAR_FEMALE 0xB6 #define CHAR_CURRENCY 0xB7 -- cgit v1.2.3 From 70e7f464cafb9173aef2eb0a8a7b47bc90238f09 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 24 Jan 2020 21:57:31 -0500 Subject: PLAYER_NAME_LENGTH to 7 --- include/global.h | 14 +++++++------- include/trainer_card.h | 2 +- include/union_room.h | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index 686ecb11c..3da77e307 100644 --- a/include/global.h +++ b/include/global.h @@ -182,13 +182,13 @@ struct BerryCrush u32 unk; }; -#define PLAYER_NAME_LENGTH 8 +#define PLAYER_NAME_LENGTH 7 #define LINK_B_RECORDS_COUNT 5 struct LinkBattleRecord { - u8 name[PLAYER_NAME_LENGTH]; + u8 name[PLAYER_NAME_LENGTH + 1]; u16 trainerId; u16 wins; u16 losses; @@ -261,7 +261,7 @@ struct BattleTowerData // Leftover from R/S struct SaveBlock2 { - /*0x000*/ u8 playerName[PLAYER_NAME_LENGTH]; + /*0x000*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x008*/ u8 playerGender; // MALE, FEMALE /*0x009*/ u8 specialSaveWarpFlags; /*0x00A*/ u8 playerTrainerId[4]; @@ -312,7 +312,7 @@ struct SecretBaseRecord /*0x1A9D*/ u8 gender:1; /*0x1A9D*/ u8 sbr_field_1_5:1; /*0x1A9D*/ u8 sbr_field_1_6:2; - /*0x1A9E*/ u8 trainerName[7]; // TODO: Change PLAYER_NAME_LENGTH to 7 + /*0x1A9E*/ u8 trainerName[7]; // TODO: Change PLAYER_NAME_LENGTH + 1 to 7 /*0x1AA5*/ u8 trainerId[4]; // byte 0 is used for determining trainer class /*0x1AA9*/ u8 language; /*0x1AAA*/ u16 sbr_field_e; @@ -404,7 +404,7 @@ struct UnkMauvilleOldManStruct u8 unk_2D95; /*0x2D96*/ u16 mauvilleOldMan_ecArray[6]; /*0x2DA2*/ u16 mauvilleOldMan_ecArray2[6]; - /*0x2DAE*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; + /*0x2DAE*/ u8 playerName[PLAYER_NAME_LENGTH + 1 + 1]; /*0x2DB6*/ u8 filler_2DB6[0x3]; /*0x2DB9*/ u8 playerTrainerId[4]; u8 unk_2DBD; @@ -715,7 +715,7 @@ struct TrainerRematchState struct TrainerNameRecord { u32 trainerId; - u8 trainerName[PLAYER_NAME_LENGTH]; + u8 trainerName[PLAYER_NAME_LENGTH + 1]; }; #define UNION_ROOM_KB_ROW_COUNT 10 @@ -772,7 +772,7 @@ struct SaveBlock1 /*0x361C*/ struct RamScript ramScript; /*0x3A08*/ u8 filler3A08[16]; /*0x3A18*/ u8 seen2[DEX_FLAGS_NO]; - /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH]; + /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH + 1]; /*0x3A54*/ struct FameCheckerSaveData fameChecker[NUM_FAMECHECKER_PERSONS]; /*0x3A94*/ u8 filler3A94[0x40]; /*0x3AD4*/ u8 unk3AD4[UNION_ROOM_KB_ROW_COUNT][21]; diff --git a/include/trainer_card.h b/include/trainer_card.h index 06844dc2e..ed3e803d5 100644 --- a/include/trainer_card.h +++ b/include/trainer_card.h @@ -24,7 +24,7 @@ struct TrainerCard /*0x20*/ u16 pokemonTrades; /*0x24*/ u32 money; /*0x28*/ u16 var_28[4]; - /*0x30*/ u8 playerName[PLAYER_NAME_LENGTH]; + /*0x30*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x38*/ u8 version; /*0x3A*/ u16 var_3A; /*0x3C*/ u32 berryCrushPoints; diff --git a/include/union_room.h b/include/union_room.h index 3cb8eb84a..7e48b3e6e 100644 --- a/include/union_room.h +++ b/include/union_room.h @@ -7,7 +7,7 @@ struct UnkStruct_Shared { struct GFtgtGname gname; - u8 ALIGNED(4) playerName[PLAYER_NAME_LENGTH]; + u8 ALIGNED(4) playerName[PLAYER_NAME_LENGTH + 1]; }; struct UnkStruct_x1C -- cgit v1.2.3 From c99246fccfc6f04f015d0b5b2850fa7d01914961 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 25 Jan 2020 08:52:18 -0500 Subject: through sub_81298F8 --- include/link_rfu.h | 2 ++ include/strings.h | 14 ++++++++++++++ 2 files changed, 16 insertions(+) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index 9dac781b3..8e4da4d87 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -327,6 +327,8 @@ bool8 sub_80FCC3C(struct GFtgtGname *gname, u8 *uname, u8 idx); bool8 sub_80FCCF4(struct GFtgtGname *gname, u8 *uname, u8 idx); bool32 sub_80FBA1C(void); void sub_80FA4A8(void); +void sub_80FB9D0(void); +void sub_80FB030(u32 a0); #include "mevent_server.h" extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[]; diff --git a/include/strings.h b/include/strings.h index a57493a9b..81cbc63c1 100644 --- a/include/strings.h +++ b/include/strings.h @@ -1061,4 +1061,18 @@ extern const u8 gText_CommStandbyAwaitingOtherPlayer[]; extern const u8 gText_RefusedBattle[]; extern const u8 gText_BattleWasRefused[]; +// union_room_chat +extern const u8 gText_F700JoinedChat[]; +extern const u8 gText_F700LeftChat[]; +extern const u8 gText_Hello[]; +extern const u8 gText_Pokemon2[]; +extern const u8 gText_Trade[]; +extern const u8 gText_Battle[]; +extern const u8 gText_Lets[]; +extern const u8 gText_Ok[]; +extern const u8 gText_Sorry[]; +extern const u8 gText_YaySmileEmoji[]; +extern const u8 gText_ThankYou[]; +extern const u8 gText_ByeBye[]; + #endif //GUARD_STRINGS_H -- cgit v1.2.3 From f249df41e3620c210841b57b7520f53b692fd411 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 25 Jan 2020 10:47:17 -0500 Subject: union_room_chat_display through sub_812A1B8 --- include/union_room_chat.h | 7 ++++++- include/union_room_chat_display.h | 12 ++++++++++++ include/union_room_chat_objects.h | 16 ++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 include/union_room_chat_display.h create mode 100644 include/union_room_chat_objects.h (limited to 'include') diff --git a/include/union_room_chat.h b/include/union_room_chat.h index 66daac376..3488e71bc 100644 --- a/include/union_room_chat.h +++ b/include/union_room_chat.h @@ -1,8 +1,13 @@ #ifndef GUARD_UNION_ROOM_CHAT_H #define GUARD_UNION_ROOM_CHAT_H -void sub_801DD98(void); void sub_8128420(void); +u8 *sub_8129714(void); +void sub_8129730(u32 *a0, u32 *a1); +u8 *sub_8129758(void); +u16 sub_8129788(void); +u8 *sub_81297C4(void); +u16 sub_81297D0(void); void copy_strings_to_sav1(void); #endif // GUARD_UNION_ROOM_CHAT_H diff --git a/include/union_room_chat_display.h b/include/union_room_chat_display.h new file mode 100644 index 000000000..597296869 --- /dev/null +++ b/include/union_room_chat_display.h @@ -0,0 +1,12 @@ +#ifndef GUARD_UNION_ROOM_CHAT_DISPLAY_H +#define GUARD_UNION_ROOM_CHAT_DISPLAY_H + +bool8 sub_8129B14(void); +bool32 sub_8129B78(void); +void sub_8129B88(void); +void sub_8129BFC(void); +void sub_8129C34(u16 a0, u8 a1); +u8 sub_8129C8C(u8 a0); +s8 sub_812A568(void); + +#endif //GUARD_UNION_ROOM_CHAT_DISPLAY_H diff --git a/include/union_room_chat_objects.h b/include/union_room_chat_objects.h new file mode 100644 index 000000000..41db4d3a4 --- /dev/null +++ b/include/union_room_chat_objects.h @@ -0,0 +1,16 @@ +#ifndef GUARD_UNION_ROOM_CHAT_OBJECTS_H +#define GUARD_UNION_ROOM_CHAT_OBJECTS_H + +bool32 sub_812AE70(void); +void sub_812AEB0(void); +void sub_812AEC8(void); +void sub_812AEFC(bool8 invisible); +void sub_812AF1C(void); +void sub_812AF8C(u32 idx); +void sub_812AFC0(void); +bool32 sub_812AFFC(void); +void sub_812B048(void); +void sub_812B100(void); +void sub_812B160(void); + +#endif //GUARD_UNION_ROOM_CHAT_OBJECTS_H -- cgit v1.2.3 From c0b05784d64a6fce12eb25c7e40e401a59593e68 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 25 Jan 2020 13:35:34 -0500 Subject: Finish union_room_chat_display --- include/graphics.h | 8 ++++++++ include/strings.h | 35 ++++++++++++++++++++++++++++------- include/text_window.h | 1 + include/trade.h | 4 ++++ include/union_room_chat.h | 14 ++++++++++++++ 5 files changed, 55 insertions(+), 7 deletions(-) (limited to 'include') diff --git a/include/graphics.h b/include/graphics.h index e87acb556..c3620279d 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4864,4 +4864,12 @@ extern const u32 gUnknown_8E83444[]; extern const u32 gBagBgPalette[]; extern const u32 gBagBgPalette_FemaleOverride[]; +// union_room_chat_display +extern const u16 gUnknown_8EAA9F0[]; +extern const u32 gUnknown_8EAAA10[]; +extern const u32 gUnknown_8EAAA6C[]; +extern const u16 gLinkMiscMenu_Pal[]; +extern const u32 gLinkMiscMenu_Gfx[]; +extern const u32 gLinkMiscMenu_Tilemap[]; + #endif //GUARD_GRAPHICS_H diff --git a/include/strings.h b/include/strings.h index 81cbc63c1..7821825cf 100644 --- a/include/strings.h +++ b/include/strings.h @@ -40,7 +40,6 @@ extern const u8 gText_Second[]; extern const u8 gText_Third[]; extern const u8 gText_NoDecorations[]; extern const u8 gText_NoDecorationsInUse[]; -extern const u8 gText_Exit[]; extern const u8 gText_Cancel[]; extern const u8 gText_Color161Shadow161[]; extern const u8 gText_GoBackPrevMenu[]; @@ -288,7 +287,6 @@ 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[]; @@ -327,13 +325,9 @@ 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[]; extern const u8 gUnknown_84176CF[]; @@ -346,7 +340,6 @@ extern const u8 gText_PkmnCantParticipate[]; extern const u8 gText_CancelParticipation[]; extern const u8 gUnknown_8417494[]; extern const u8 gMenuText_Confirm[]; -extern const u8 gText_Lv[]; extern const u8 gText_MaleSymbol[]; extern const u8 gText_FemaleSymbol[]; extern const u8 gText_Slash[]; @@ -984,6 +977,16 @@ extern const u8 gUnknown_8415F6C[]; extern const u8 gUnknown_8415FFF[]; extern const u8 gUnknown_8416002[]; +// daycare +extern const u8 gText_Lv[]; +extern const u8 gDaycareText_GetAlongVeryWell[]; +extern const u8 gDaycareText_GetAlong[]; +extern const u8 gDaycareText_DontLikeOther[]; +extern const u8 gDaycareText_PlayOther[]; +extern const u8 gExpandedPlaceholder_Empty[]; +extern const u8 gText_HatchedFromEgg[]; +extern const u8 gText_NickHatchPrompt[]; + // trainer card extern const u8 gText_WaitingTrainerFinishReading[]; extern const u8 gText_TrainerCardName[]; @@ -1075,4 +1078,22 @@ extern const u8 gText_YaySmileEmoji[]; extern const u8 gText_ThankYou[]; extern const u8 gText_ByeBye[]; +// union_room_chat_display +extern const u8 gText_QuitChatting[]; +extern const u8 gText_RegisterTextWhere[]; +extern const u8 gText_RegisterTextHere[]; +extern const u8 gText_InputText[]; +extern const u8 gText_ExitingTheChat[]; +extern const u8 gText_LeaderHasLeftEndingChat[]; +extern const u8 gText_RegisteredTextChanged_OKtoSave[]; +extern const u8 gText_RegisteredTextChanged_AlreadySavedFile[]; +extern const u8 gText_RegisteredTextChanged_SavingDontTurnOff[]; +extern const u8 gText_RegisteredTextChanged_SavedTheGame[]; +extern const u8 gText_IfLeaderLeavesChatWillEnd[]; +extern const u8 gText_Upper[]; +extern const u8 gText_Lower[]; +extern const u8 gText_Symbols[]; +extern const u8 gText_Register2[]; +extern const u8 gText_Exit[]; + #endif //GUARD_STRINGS_H diff --git a/include/text_window.h b/include/text_window.h index 8e8466145..3796629b4 100644 --- a/include/text_window.h +++ b/include/text_window.h @@ -26,6 +26,7 @@ void TextWindow_SetUserSelectedFrame(u8 windowId, u16 tileStart, u8 palette); void LoadUserWindowBorderGfx(u8 windowId, u16 tileStart, u8 palette); void sub_814FDA0(u8 windowId, u16 tileStart, u8 palette); void DrawTextBorderOuter(u8 windowId, u16 tileStart, u8 palette); +void DrawTextBorderInner(u8 windowId, u16 tileNum, u8 palNum); void TextWindow_LoadTilesStdFrame1(u8 windowId, u16 destOffset); void sub_814FE6C(u8 windowId, u16 destOffset, u8 palIdx); void sub_814FEEC(u8 windowId, u16 destOffset, u8 palIdx); diff --git a/include/trade.h b/include/trade.h index d5106b172..f8e285e40 100644 --- a/include/trade.h +++ b/include/trade.h @@ -8,6 +8,10 @@ extern struct MailStruct gLinkPartnerMail[6]; extern u8 gSelectedTradeMonPositions[2]; +extern const u8 gText_MaleSymbol4[]; +extern const u8 gText_FemaleSymbol4[]; +extern const u8 gText_GenderlessSymbol[]; + extern const u16 gUnknown_826601C[]; void CB2_ReturnFromLinkTrade(void); s32 sub_804FB34(void); diff --git a/include/union_room_chat.h b/include/union_room_chat.h index 3488e71bc..93bd4a55f 100644 --- a/include/union_room_chat.h +++ b/include/union_room_chat.h @@ -1,13 +1,27 @@ #ifndef GUARD_UNION_ROOM_CHAT_H #define GUARD_UNION_ROOM_CHAT_H +enum +{ + UNION_ROOM_KB_PAGE_UPPER, + UNION_ROOM_KB_PAGE_LOWER, + UNION_ROOM_KB_PAGE_EMOJI, + UNION_ROOM_KB_PAGE_COUNT +}; + +extern const u8 *const gUnionRoomKeyboardText[UNION_ROOM_KB_PAGE_COUNT][UNION_ROOM_KB_ROW_COUNT]; + void sub_8128420(void); +u8 *sub_81294B0(int arg0); u8 *sub_8129714(void); void sub_8129730(u32 *a0, u32 *a1); u8 *sub_8129758(void); u16 sub_8129788(void); u8 *sub_81297C4(void); u16 sub_81297D0(void); +int sub_81297DC(void); +u8 *sub_8129814(void); void copy_strings_to_sav1(void); +u8 GetCurrentKeyboardPage(void); #endif // GUARD_UNION_ROOM_CHAT_H -- cgit v1.2.3 From 1f47b6ae4fefbe50a3680251fc9b88a7655e7179 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 25 Jan 2020 16:10:18 -0500 Subject: union_room_chat_objects --- include/graphics.h | 3 +++ include/union_room_chat.h | 3 +++ include/union_room_chat_objects.h | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/graphics.h b/include/graphics.h index c3620279d..e77cd2502 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4872,4 +4872,7 @@ extern const u16 gLinkMiscMenu_Pal[]; extern const u32 gLinkMiscMenu_Gfx[]; extern const u32 gLinkMiscMenu_Tilemap[]; +// union_room_chat_objects +extern const u32 gUnknown_8EA1A50[]; + #endif //GUARD_GRAPHICS_H diff --git a/include/union_room_chat.h b/include/union_room_chat.h index 93bd4a55f..13e51289e 100644 --- a/include/union_room_chat.h +++ b/include/union_room_chat.h @@ -13,13 +13,16 @@ extern const u8 *const gUnionRoomKeyboardText[UNION_ROOM_KB_PAGE_COUNT][UNION_RO void sub_8128420(void); u8 *sub_81294B0(int arg0); +void sub_8129700(u8 *arg0, u8 *arg1); u8 *sub_8129714(void); +int sub_8129720(void); void sub_8129730(u32 *a0, u32 *a1); u8 *sub_8129758(void); u16 sub_8129788(void); u8 *sub_81297C4(void); u16 sub_81297D0(void); int sub_81297DC(void); +int sub_81297E8(void); u8 *sub_8129814(void); void copy_strings_to_sav1(void); u8 GetCurrentKeyboardPage(void); diff --git a/include/union_room_chat_objects.h b/include/union_room_chat_objects.h index 41db4d3a4..38c94b668 100644 --- a/include/union_room_chat_objects.h +++ b/include/union_room_chat_objects.h @@ -4,7 +4,7 @@ bool32 sub_812AE70(void); void sub_812AEB0(void); void sub_812AEC8(void); -void sub_812AEFC(bool8 invisible); +void sub_812AEFC(bool32 invisible); void sub_812AF1C(void); void sub_812AF8C(u32 idx); void sub_812AFC0(void); -- cgit v1.2.3 From 0ebdbcfd5b1d352d37f5806943b124e915cbfe8b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 25 Jan 2020 19:58:39 -0500 Subject: Document union room chat --- include/global.h | 2 +- include/graphics.h | 8 ++++---- include/link_rfu.h | 4 ++-- include/union_room_chat.h | 28 ++++++++++++++-------------- include/union_room_chat_display.h | 36 +++++++++++++++++++++++++++++------- include/union_room_chat_objects.h | 22 +++++++++++----------- 6 files changed, 61 insertions(+), 39 deletions(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index 3da77e307..9f46c2eee 100644 --- a/include/global.h +++ b/include/global.h @@ -775,7 +775,7 @@ struct SaveBlock1 /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH + 1]; /*0x3A54*/ struct FameCheckerSaveData fameChecker[NUM_FAMECHECKER_PERSONS]; /*0x3A94*/ u8 filler3A94[0x40]; - /*0x3AD4*/ u8 unk3AD4[UNION_ROOM_KB_ROW_COUNT][21]; + /*0x3AD4*/ u8 registeredTexts[UNION_ROOM_KB_ROW_COUNT][21]; /*0x3BA8*/ struct TrainerNameRecord trainerNameRecords[20]; /*0x3C98*/ struct DaycareMon route5DayCareMon; /*0x3D24*/ u8 filler3D24[0x10]; diff --git a/include/graphics.h b/include/graphics.h index e77cd2502..467a1d461 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4865,14 +4865,14 @@ extern const u32 gBagBgPalette[]; extern const u32 gBagBgPalette_FemaleOverride[]; // union_room_chat_display -extern const u16 gUnknown_8EAA9F0[]; -extern const u32 gUnknown_8EAAA10[]; -extern const u32 gUnknown_8EAAA6C[]; +extern const u16 gUnionRoomChatPanelBgPal_7[]; +extern const u32 gUnionRoomChatPanelBgTiles[]; +extern const u32 gUnionRoomChatPanelBgMap[]; extern const u16 gLinkMiscMenu_Pal[]; extern const u32 gLinkMiscMenu_Gfx[]; extern const u32 gLinkMiscMenu_Tilemap[]; // union_room_chat_objects -extern const u32 gUnknown_8EA1A50[]; +extern const u32 gUnionRoomChatIcons[]; #endif //GUARD_GRAPHICS_H diff --git a/include/link_rfu.h b/include/link_rfu.h index 8e4da4d87..81dd7fdf0 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -216,7 +216,7 @@ struct UnkRfuStruct_2 /* 0x99d */ u8 unk_ce5; /* 0x99e */ u8 unk_ce6; /* 0x99f */ u8 unk_ce7; - /* 0x9a0 */ u8 unk_ce8; + /* 0x9a0 */ bool8 unk_ce8; /* 0x9a1 */ u8 unk_ce9; /* 0x9a2 */ u8 unk_cea[RFU_CHILD_MAX]; /* 0x9a6 */ u8 unk_cee[RFU_CHILD_MAX]; @@ -325,7 +325,7 @@ void sub_80FC114(const u8 *name, struct GFtgtGname *structPtr, u8 a2); bool32 PlayerHasMetTrainerBefore(u16 id, u8 *name); bool8 sub_80FCC3C(struct GFtgtGname *gname, u8 *uname, u8 idx); bool8 sub_80FCCF4(struct GFtgtGname *gname, u8 *uname, u8 idx); -bool32 sub_80FBA1C(void); +bool32 GetRfuUnkCE8(void); void sub_80FA4A8(void); void sub_80FB9D0(void); void sub_80FB030(u32 a0); diff --git a/include/union_room_chat.h b/include/union_room_chat.h index 13e51289e..3ce78b210 100644 --- a/include/union_room_chat.h +++ b/include/union_room_chat.h @@ -11,20 +11,20 @@ enum extern const u8 *const gUnionRoomKeyboardText[UNION_ROOM_KB_PAGE_COUNT][UNION_ROOM_KB_ROW_COUNT]; -void sub_8128420(void); -u8 *sub_81294B0(int arg0); -void sub_8129700(u8 *arg0, u8 *arg1); -u8 *sub_8129714(void); -int sub_8129720(void); -void sub_8129730(u32 *a0, u32 *a1); -u8 *sub_8129758(void); -u16 sub_8129788(void); -u8 *sub_81297C4(void); -u16 sub_81297D0(void); -int sub_81297DC(void); -int sub_81297E8(void); -u8 *sub_8129814(void); -void copy_strings_to_sav1(void); +void EnterUnionRoomChat(void); +u8 *UnionRoomChat_GetWorkRegisteredText(int arg0); +void UnionRoomChat_GetCursorColAndRow(u8 *colp, u8 *rowp); +u8 *UnionRoomChat_GetMessageEntryBuffer(void); +int UnionRoomChat_LenMessageEntryBuffer(void); +void UnionRoomChat_GetBufferSelectionRegion(u32 *startp, u32 *diffp); +u8 *UnionRoomChat_GetEndOfMessageEntryBuffer(void); +u16 UnionRoomChat_GetNumCharsInMessageEntryBuffer(void); +u8 *UnionRoomChat_GetLastReceivedMessage(void); +u16 UnionRoomChat_GetReceivedPlayerIndex(void); +int UnionRoomChat_GetMessageEntryCursorPosition(void); +int UnionRoomChat_GetWhetherShouldShowCaseToggleIcon(void); +u8 *UnionRoomChat_GetNameOfPlayerWhoDisbandedChat(void); +void UnionRoomChat_InitializeRegisteredTexts(void); u8 GetCurrentKeyboardPage(void); #endif // GUARD_UNION_ROOM_CHAT_H diff --git a/include/union_room_chat_display.h b/include/union_room_chat_display.h index 597296869..f880eeecb 100644 --- a/include/union_room_chat_display.h +++ b/include/union_room_chat_display.h @@ -1,12 +1,34 @@ #ifndef GUARD_UNION_ROOM_CHAT_DISPLAY_H #define GUARD_UNION_ROOM_CHAT_DISPLAY_H -bool8 sub_8129B14(void); -bool32 sub_8129B78(void); -void sub_8129B88(void); -void sub_8129BFC(void); -void sub_8129C34(u16 a0, u8 a1); -u8 sub_8129C8C(u8 a0); -s8 sub_812A568(void); +#define CHATDISPLAYROUTINE_LOADGFX 0 +#define CHATDISPLAYROUTINE_MOVEKBCURSOR 1 +#define CHATDISPLAYROUTINE_CURSORBLINK 2 +#define CHATDISPLAYROUTINE_SHOWKBSWAPMENU 3 +#define CHATDISPLAYROUTINE_HIDEKBSWAPMENU 4 +#define CHATDISPLAYROUTINE_SWITCHPAGES 5 +#define CHATDISPLAYROUTINE_SHOWQUITCHATTINGDIALOG 6 +#define CHATDISPLAYROUTINE_DESTROYSTDMSGANDYESNO 7 +#define CHATDISPLAYROUTINE_PRINTMSG 8 +#define CHATDISPLAYROUTINE_PRINTREGISTERWHERE 9 +#define CHATDISPLAYROUTINE_CANCELREGISTER 10 +#define CHATDISPLAYROUTINE_RETURNTOKB 11 +#define CHATDISPLAYROUTINE_SCROLLCHAT 12 +#define CHATDISPLAYROUTINE_PRINTINPUTTEXT 13 +#define CHATDISPLAYROUTINE_ASKSAVE 14 +#define CHATDISPLAYROUTINE_ASKOVERWRITESAVE 15 +#define CHATDISPLAYROUTINE_PRINTSAVING 16 +#define CHATDISPLAYROUTINE_PRINTSAVEDTHEGAME 17 +#define CHATDISPLAYROUTINE_PRINTEXITINGCHAT 18 +#define CHATDISPLAYROUTINE_PRINTLEADERLEFT 19 +#define CHATDISPLAYROUTINE_SHOWCONFIRMLEADERLEAVEDIALOG 20 + +bool8 UnionRoomChat_TryAllocGraphicsWork(void); +bool32 UnionRoomChat_RunDisplaySubtask0(void); +void UnionRoomChat_FreeGraphicsWork(void); +void UnionRoomChat_RunDisplaySubtasks(void); +void UnionRoomChat_StartDisplaySubtask(u16 a0, u8 a1); +u8 RunDisplaySubtask(u8 a0); +s8 UnionRoomChat_ProcessInput(void); #endif //GUARD_UNION_ROOM_CHAT_DISPLAY_H diff --git a/include/union_room_chat_objects.h b/include/union_room_chat_objects.h index 38c94b668..879f9f86b 100644 --- a/include/union_room_chat_objects.h +++ b/include/union_room_chat_objects.h @@ -1,16 +1,16 @@ #ifndef GUARD_UNION_ROOM_CHAT_OBJECTS_H #define GUARD_UNION_ROOM_CHAT_OBJECTS_H -bool32 sub_812AE70(void); -void sub_812AEB0(void); -void sub_812AEC8(void); -void sub_812AEFC(bool32 invisible); -void sub_812AF1C(void); -void sub_812AF8C(u32 idx); -void sub_812AFC0(void); -bool32 sub_812AFFC(void); -void sub_812B048(void); -void sub_812B100(void); -void sub_812B160(void); +bool32 UnionRoomChat_TryAllocSpriteWork(void); +void UnionRoomChat_FreeSpriteWork(void); +void UnionRoomChat_CreateSelectorCursorObj(void); +void UnionRoomChat_ToggleSelectorCursorObjVisibility(bool32 invisible); +void UnionRoomChat_MoveSelectorCursorObj(void); +void UnionRoomChat_UpdateObjPalCycle(u32 idx); +void UnionRoomChat_SetSelectorCursorClosedImage(void); +bool32 UnionRoomChat_AnimateSelectorCursorReopen(void); +void UnionRoomChat_SpawnTextEntryPointerSprites(void); +void CreatePageSwitchUISprites(void); +void UpdateVisibleUnionRoomChatIcon(void); #endif //GUARD_UNION_ROOM_CHAT_OBJECTS_H -- cgit v1.2.3 From 52fbc43d73995977aa8f6c45405a91c68d515061 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 25 Jan 2020 21:00:51 -0500 Subject: Address review comments --- include/constants/global.h | 5 ++++ include/global.h | 73 +++++++++++++++++++++++++++++++--------------- 2 files changed, 55 insertions(+), 23 deletions(-) (limited to 'include') diff --git a/include/constants/global.h b/include/constants/global.h index 77ef6f203..7f3c80bb4 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -38,6 +38,10 @@ #define FEMALE 1 #define GENDER_COUNT 2 +#define BARD_SONG_LENGTH 6 +#define NUM_STORYTELLER_TALES 4 +#define NUM_TRADER_ITEMS 4 + #define OPTIONS_BUTTON_MODE_HELP 0 #define OPTIONS_BUTTON_MODE_LR 1 #define OPTIONS_BUTTON_MODE_L_EQUALS_A 2 @@ -62,6 +66,7 @@ #define MAX_MON_MOVES 4 +#define TRAINER_ID_LENGTH 4 #define PARTY_SIZE 6 #define MULTI_PARTY_SIZE (PARTY_SIZE / 2) diff --git a/include/global.h b/include/global.h index 9f46c2eee..2f87a0c29 100644 --- a/include/global.h +++ b/include/global.h @@ -312,7 +312,7 @@ struct SecretBaseRecord /*0x1A9D*/ u8 gender:1; /*0x1A9D*/ u8 sbr_field_1_5:1; /*0x1A9D*/ u8 sbr_field_1_6:2; - /*0x1A9E*/ u8 trainerName[7]; // TODO: Change PLAYER_NAME_LENGTH + 1 to 7 + /*0x1A9E*/ u8 trainerName[PLAYER_NAME_LENGTH]; /*0x1AA5*/ u8 trainerId[4]; // byte 0 is used for determining trainer class /*0x1AA9*/ u8 language; /*0x1AAA*/ u16 sbr_field_e; @@ -398,41 +398,68 @@ struct MailStruct /*0x20*/ u16 itemId; }; -struct UnkMauvilleOldManStruct +struct MauvilleManCommon { - u8 unk_2D94; - u8 unk_2D95; - /*0x2D96*/ u16 mauvilleOldMan_ecArray[6]; - /*0x2DA2*/ u16 mauvilleOldMan_ecArray2[6]; - /*0x2DAE*/ u8 playerName[PLAYER_NAME_LENGTH + 1 + 1]; - /*0x2DB6*/ u8 filler_2DB6[0x3]; - /*0x2DB9*/ u8 playerTrainerId[4]; - u8 unk_2DBD; + u8 id; +}; + +struct MauvilleManBard +{ + /*0x00*/ u8 id; + /*0x02*/ u16 songLyrics[BARD_SONG_LENGTH]; + /*0x0E*/ u16 temporaryLyrics[BARD_SONG_LENGTH]; + /*0x1A*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; + /*0x22*/ u8 filler_2DB6[0x3]; + /*0x25*/ u8 playerTrainerId[TRAINER_ID_LENGTH]; + /*0x29*/ bool8 hasChangedSong; + /*0x2A*/ u8 language; }; /*size = 0x2C*/ -struct UnkMauvilleOldManStruct2 +struct MauvilleManStoryteller +{ + u8 id; + bool8 alreadyRecorded; + u8 filler2[2]; + u8 gameStatIDs[NUM_STORYTELLER_TALES]; + u8 trainerNames[NUM_STORYTELLER_TALES][PLAYER_NAME_LENGTH]; + u8 statValues[NUM_STORYTELLER_TALES][4]; + u8 language[NUM_STORYTELLER_TALES]; +}; + +struct MauvilleManGiddy { - u8 filler0; - u8 unk1; - u8 unk2; - u16 mauvilleOldMan_ecArray[10]; - u8 mauvilleOldMan_ecArray2[12]; - u8 fillerF[0x2]; + /*0x00*/ u8 id; + /*0x01*/ u8 taleCounter; + /*0x02*/ u8 questionNum; + /*0x04*/ u16 randomWords[10]; + /*0x18*/ u8 questionList[8]; + /*0x20*/ u8 language; }; /*size = 0x2C*/ +struct MauvilleManHipster +{ + u8 id; + bool8 alreadySpoken; + u8 language; +}; + struct MauvilleOldManTrader { - u8 unk0; - u8 unk1[4]; - u8 unk5[4][11]; - u8 unk31; + u8 id; + u8 decorIds[NUM_TRADER_ITEMS]; + u8 playerNames[NUM_TRADER_ITEMS][11]; + u8 alreadyTraded; + u8 language[NUM_TRADER_ITEMS]; }; typedef union OldMan { - struct UnkMauvilleOldManStruct oldMan1; - struct UnkMauvilleOldManStruct2 oldMan2; + struct MauvilleManCommon common; + struct MauvilleManBard bard; + struct MauvilleManGiddy giddy; + struct MauvilleManHipster hipster; struct MauvilleOldManTrader trader; + struct MauvilleManStoryteller storyteller; u8 filler[0x40]; } OldMan; -- cgit v1.2.3