summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/constants/global.h5
-rw-r--r--include/data_8479668.h35
-rw-r--r--include/global.h88
-rw-r--r--include/graphics.h11
-rw-r--r--include/help_system.h1
-rw-r--r--include/link_rfu.h6
-rw-r--r--include/main.h1
-rw-r--r--include/strings.h49
-rw-r--r--include/text.h14
-rw-r--r--include/text_window.h1
-rw-r--r--include/trade.h4
-rw-r--r--include/trainer_card.h2
-rw-r--r--include/union_room.h2
-rw-r--r--include/union_room_chat.h28
-rw-r--r--include/union_room_chat_display.h34
-rw-r--r--include/union_room_chat_objects.h16
16 files changed, 255 insertions, 42 deletions
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/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/global.h b/include/global.h
index 180a1e0a3..2f87a0c29 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[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];
- /*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;
@@ -715,9 +742,11 @@ struct TrainerRematchState
struct TrainerNameRecord
{
u32 trainerId;
- u8 trainerName[PLAYER_NAME_LENGTH];
+ u8 trainerName[PLAYER_NAME_LENGTH + 1];
};
+#define UNION_ROOM_KB_ROW_COUNT 10
+
struct SaveBlock1
{
/*0x0000*/ struct Coords16 pos;
@@ -770,9 +799,10 @@ 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[0x114];
+ /*0x3A94*/ u8 filler3A94[0x40];
+ /*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 e87acb556..467a1d461 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -4864,4 +4864,15 @@ extern const u32 gUnknown_8E83444[];
extern const u32 gBagBgPalette[];
extern const u32 gBagBgPalette_FemaleOverride[];
+// union_room_chat_display
+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 gUnionRoomChatIcons[];
+
#endif //GUARD_GRAPHICS_H
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..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,6 +325,10 @@ 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 GetRfuUnkCE8(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/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
diff --git a/include/strings.h b/include/strings.h
index a57493a9b..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[];
@@ -1061,4 +1064,36 @@ 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[];
+
+// 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.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
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/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
diff --git a/include/union_room_chat.h b/include/union_room_chat.h
index 66daac376..3ce78b210 100644
--- a/include/union_room_chat.h
+++ b/include/union_room_chat.h
@@ -1,8 +1,30 @@
#ifndef GUARD_UNION_ROOM_CHAT_H
#define GUARD_UNION_ROOM_CHAT_H
-void sub_801DD98(void);
-void sub_8128420(void);
-void copy_strings_to_sav1(void);
+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 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
new file mode 100644
index 000000000..f880eeecb
--- /dev/null
+++ b/include/union_room_chat_display.h
@@ -0,0 +1,34 @@
+#ifndef GUARD_UNION_ROOM_CHAT_DISPLAY_H
+#define GUARD_UNION_ROOM_CHAT_DISPLAY_H
+
+#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
new file mode 100644
index 000000000..879f9f86b
--- /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 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