Merge pull request #240 from PikalaxALT/union_room_chat
Union room chat
This commit is contained in:
File diff suppressed because it is too large
Load Diff
+30
-30
@@ -75,64 +75,64 @@ gUnknown_847AA8F::
|
||||
gUnknown_847AAA8::
|
||||
.string "{CLEAR 11}…{CLEAR 16}“{CLEAR 16}”{CLEAR 18}‘{CLEAR 18}'{CLEAR 18} $"
|
||||
|
||||
gUnknown_847AAC1::
|
||||
gText_UnionRoomChatKeyboard_ABCDE::
|
||||
.string "ABCDE$"
|
||||
|
||||
gUnknown_847AAC7::
|
||||
gText_UnionRoomChatKeyboard_FGHIJ::
|
||||
.string "FGHIJ$"
|
||||
|
||||
gUnknown_847AACD::
|
||||
gText_UnionRoomChatKeyboard_KLMNO::
|
||||
.string "KLMNO$"
|
||||
|
||||
gUnknown_847AAD3::
|
||||
gText_UnionRoomChatKeyboard_PQRST::
|
||||
.string "PQRST$"
|
||||
|
||||
gUnknown_847AAD9::
|
||||
gText_UnionRoomChatKeyboard_UVWXY::
|
||||
.string "UVWXY$"
|
||||
|
||||
gUnknown_847AADF::
|
||||
gText_UnionRoomChatKeyboard_Z::
|
||||
.string "Z $"
|
||||
|
||||
gUnknown_847AAE5::
|
||||
gText_UnionRoomChatKeyboard_01234Upper::
|
||||
.string "01234$"
|
||||
|
||||
gUnknown_847AAEB::
|
||||
gText_UnionRoomChatKeyboard_56789Upper::
|
||||
.string "56789$"
|
||||
|
||||
gUnknown_847AAF1::
|
||||
gText_UnionRoomChatKeyboard_PunctuationUpper::
|
||||
.string ".,!? $"
|
||||
|
||||
gUnknown_847AAF7::
|
||||
gText_UnionRoomChatKeyboard_SymbolsUpper::
|
||||
.string "-/&… $"
|
||||
|
||||
gUnknown_847AAFD::
|
||||
gText_UnionRoomChatKeyboard_abcde::
|
||||
.string "abcde$"
|
||||
|
||||
gUnknown_847AB03::
|
||||
gText_UnionRoomChatKeyboard_fghij::
|
||||
.string "fghij$"
|
||||
|
||||
gUnknown_847AB09::
|
||||
gText_UnionRoomChatKeyboard_klmno::
|
||||
.string "klmno$"
|
||||
|
||||
gUnknown_847AB0F::
|
||||
gText_UnionRoomChatKeyboard_pqrst::
|
||||
.string "pqrst$"
|
||||
|
||||
gUnknown_847AB15::
|
||||
gText_UnionRoomChatKeyboard_uvwxy::
|
||||
.string "uvwxy$"
|
||||
|
||||
gUnknown_847AB1B::
|
||||
gText_UnionRoomChatKeyboard_z::
|
||||
.string "z $"
|
||||
|
||||
gUnknown_847AB21::
|
||||
gText_UnionRoomChatKeyboard_01234Lower::
|
||||
.string "01234$"
|
||||
|
||||
gUnknown_847AB27::
|
||||
gText_UnionRoomChatKeyboard_56789Lower::
|
||||
.string "56789$"
|
||||
|
||||
gUnknown_847AB2D::
|
||||
gText_UnionRoomChatKeyboard_PunctuationLower::
|
||||
.string ".,!? $"
|
||||
|
||||
gUnknown_847AB33::
|
||||
gText_UnionRoomChatKeyboard_SymbolsLower::
|
||||
.string "-/&… $"
|
||||
|
||||
.string "$"
|
||||
@@ -144,34 +144,34 @@ gUnknown_847AB33::
|
||||
.string "$"
|
||||
.string "$"
|
||||
|
||||
gUnknown_847AB41::
|
||||
gText_UnionRoomChatKeyboard_Emoji1::
|
||||
.string "{EXTRA 245}{EXTRA 246}{EXTRA 247}{EXTRA 248}{EXTRA 254}$"
|
||||
|
||||
gUnknown_847AB4C::
|
||||
gText_UnionRoomChatKeyboard_Emoji2::
|
||||
.string "{EXTRA 249}{EXTRA 250}{EXTRA 252}{EXTRA 251}{EXTRA 253}$"
|
||||
|
||||
gUnknown_847AB57::
|
||||
gText_UnionRoomChatKeyboard_Emoji3::
|
||||
.string "{EXTRA 236}{EXTRA 237}{EXTRA 238}{EXTRA 235}{EXTRA 234}$"
|
||||
|
||||
gUnknown_847AB62::
|
||||
gText_UnionRoomChatKeyboard_Emoji4::
|
||||
.string "♂♀{EXTRA 212}{EXTRA 213}{EXTRA 211}$"
|
||||
|
||||
gUnknown_847AB6B::
|
||||
gText_UnionRoomChatKeyboard_Emoji5::
|
||||
.string "{EXTRA 216}{EXTRA 217}{EXTRA 242}{EXTRA 243}{EXTRA 244}$"
|
||||
|
||||
gUnknown_847AB76::
|
||||
gText_UnionRoomChatKeyboard_Emoji6::
|
||||
.string "{EXTRA 218}{EXTRA 241}{EXTRA 224}{EXTRA 226}{EXTRA 227}$"
|
||||
|
||||
gUnknown_847AB81::
|
||||
gText_UnionRoomChatKeyboard_Emoji7::
|
||||
.string "{EXTRA 240}{EXTRA 239}{EXTRA 225}{EXTRA 214}{EXTRA 215}$"
|
||||
|
||||
gUnknown_847AB8C::
|
||||
gText_UnionRoomChatKeyboard_Emoji8::
|
||||
.string "{EXTRA 228}{EXTRA 229}{EXTRA 230}{EXTRA 231}{EXTRA 232}$"
|
||||
|
||||
gUnknown_847AB97::
|
||||
gText_UnionRoomChatKeyboard_Emoji9::
|
||||
.string "{EXTRA 233}{EXTRA 220}{EXTRA 221}{EXTRA 222}{EXTRA 209}$"
|
||||
|
||||
gUnknown_847ABA2::
|
||||
gText_UnionRoomChatKeyboard_Emoji10::
|
||||
.string "{EXTRA 210}{EXTRA 208}ょ: $"
|
||||
|
||||
// trainer_tower (again?)
|
||||
|
||||
+7
-7
@@ -16374,16 +16374,16 @@ gFameCheckerBg3Tilemap:: @ 8EA0700
|
||||
gFameCheckerBg2Tilemap:: @ 8EA0F00
|
||||
.incbin "data/graphics/fame_checker_tilemap2.bin"
|
||||
|
||||
gUnknown_8EA1700:: @ 8EA1700
|
||||
gLinkMiscMenu_Pal:: @ 8EA1700
|
||||
.incbin "graphics/interface/union_room_chat.gbapal"
|
||||
|
||||
gUnknown_8EA1720:: @ 8EA1720
|
||||
gLinkMiscMenu_Gfx:: @ 8EA1720
|
||||
.incbin "graphics/interface/union_room_chat.4bpp.lz"
|
||||
|
||||
gUnknown_8EA1958:: @ 8EA1958
|
||||
gLinkMiscMenu_Tilemap:: @ 8EA1958
|
||||
.incbin "graphics/interface/union_room_chat.bin.lz"
|
||||
|
||||
gUnknown_8EA1A50:: @ 8EA1A50
|
||||
gUnionRoomChatIcons:: @ 8EA1A50
|
||||
.incbin "graphics/interface/union_room_chat_icons.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
@@ -16508,13 +16508,13 @@ gTilesetPalettes_8EA9D88:: @ 8EA9D88
|
||||
gTilesetTiles_8EA9F88:: @ 8EA9F88
|
||||
.incbin "data/tilesets/secondary/82D4E6C/tiles.4bpp.lz"
|
||||
|
||||
gUnknown_8EAA9F0:: @ 8EAA9F0
|
||||
gUnionRoomChatPanelBgPal_7:: @ 8EAA9F0
|
||||
.incbin "graphics/interface/union_room_chat_panel.gbapal"
|
||||
|
||||
gUnknown_8EAAA10:: @ 8EAAA10
|
||||
gUnionRoomChatPanelBgTiles:: @ 8EAAA10
|
||||
.incbin "graphics/interface/union_room_chat_panel.4bpp.lz"
|
||||
|
||||
gUnknown_8EAAA6C:: @ 8EAAA6C
|
||||
gUnionRoomChatPanelBgMap:: @ 8EAAA6C
|
||||
.incbin "graphics/interface/union_room_chat_panel.bin.lz"
|
||||
|
||||
gCreditsMonBackdropPals:: @ 8EAAB18
|
||||
|
||||
+29
-29
@@ -3093,40 +3093,40 @@ gUnknown_841B32E:: @ 841B32E
|
||||
.string "{DYNAMIC 0x00} learned\n"
|
||||
.string "{DYNAMIC 0x01}!$"
|
||||
|
||||
gUnknown_841B33D:: @ 0x841B33D
|
||||
gText_Upper:: @ 0x841B33D
|
||||
.string "UPPER$"
|
||||
|
||||
gUnknown_841B343:: @ 0x841B343
|
||||
gText_Lower:: @ 0x841B343
|
||||
.string "lower$"
|
||||
|
||||
gUnknown_841B349:: @ 0x841B349
|
||||
gText_Others:: @ 0x841B349
|
||||
.string "OTHERS$"
|
||||
|
||||
gUnknown_841B350:: @ 0x841B350
|
||||
gText_Symbols:: @ 0x841B350
|
||||
.string "SYMBOLS$"
|
||||
|
||||
gUnknown_841B358:: @ 0x841B358
|
||||
gText_Register2:: @ 0x841B358
|
||||
.string "REGISTER$"
|
||||
|
||||
gUnknown_841B361:: @ 0x841B361
|
||||
gText_Exit:: @ 0x841B361
|
||||
.string "EXIT$"
|
||||
|
||||
gUnknown_841B366:: @ 0x841B366
|
||||
gText_QuitChatting:: @ 0x841B366
|
||||
.string "Quit chatting?$"
|
||||
|
||||
gUnknown_841B375:: @ 0x841B375
|
||||
gText_RegisterTextWhere:: @ 0x841B375
|
||||
.string "Register text where?$"
|
||||
|
||||
gUnknown_841B38A:: @ 0x841B38A
|
||||
gText_RegisterTextHere:: @ 0x841B38A
|
||||
.string "Register text here?$"
|
||||
|
||||
gUnknown_841B39E:: @ 0x841B39E
|
||||
gText_InputText:: @ 0x841B39E
|
||||
.string "Input text.$"
|
||||
|
||||
gUnknown_841B3AA:: @ 841B3AA
|
||||
gText_F700JoinedChat:: @ 841B3AA
|
||||
.string "{DYNAMIC 0x00} joined the chat!$"
|
||||
|
||||
gUnknown_841B3BE:: @ 841B3BE
|
||||
gText_F700LeftChat:: @ 841B3BE
|
||||
.string "{DYNAMIC 0x00} left the chat.$"
|
||||
|
||||
gUnknown_841B3D0:: @ 0x841B3D0
|
||||
@@ -3135,60 +3135,60 @@ gUnknown_841B3D0:: @ 0x841B3D0
|
||||
gUnknown_841B3DA:: @ 0x841B3DA
|
||||
.string "{DYNAMIC 0x00}の{DYNAMIC 0x01}ひきめは いません$"
|
||||
|
||||
gUnknown_841B3E9:: @ 0x841B3E9
|
||||
gText_ExitingTheChat:: @ 0x841B3E9
|
||||
.string "Exiting the chat‥$"
|
||||
|
||||
gUnknown_841B3FB:: @ 0x841B3FB
|
||||
gText_LeaderHasLeftEndingChat:: @ 0x841B3FB
|
||||
.string "The LEADER, {DYNAMIC 0x00}, has\n"
|
||||
.string "left, ending the chat.$"
|
||||
|
||||
gUnknown_841B426:: @ 0x841B426
|
||||
gText_RegisteredTextChanged_OKtoSave:: @ 0x841B426
|
||||
.string "The registered text has been changed.\n"
|
||||
.string "Is it okay to save the game?$"
|
||||
|
||||
gUnknown_841B469:: @ 0x841B469
|
||||
gText_RegisteredTextChanged_AlreadySavedFile:: @ 0x841B469
|
||||
.string "There is already a saved file.\n"
|
||||
.string "Is it okay to overwrite it?$"
|
||||
|
||||
gUnknown_841B4A4:: @ 0x841B4A4
|
||||
gText_RegisteredTextChanged_SavingDontTurnOff:: @ 0x841B4A4
|
||||
.string "SAVING‥\n"
|
||||
.string "DON'T TURN OFF THE POWER.$"
|
||||
|
||||
gUnknown_841B4C6:: @ 0x841B4C6
|
||||
gText_RegisteredTextChanged_SavedTheGame:: @ 0x841B4C6
|
||||
.string "{DYNAMIC 0x00} saved the game.$"
|
||||
|
||||
gUnknown_841B4D9:: @ 0x841B4D9
|
||||
gText_IfLeaderLeavesChatWillEnd:: @ 0x841B4D9
|
||||
.string "If the LEADER leaves, the chat\n"
|
||||
.string "will end. Is that okay?$"
|
||||
|
||||
gUnknown_841B510:: @ 841B510
|
||||
gText_Hello:: @ 841B510
|
||||
.string "HELLO$"
|
||||
|
||||
gUnknown_841B516:: @ 841B516
|
||||
gText_Pokemon2:: @ 841B516
|
||||
.string "POKéMON$"
|
||||
|
||||
gUnknown_841B51E:: @ 841B51E
|
||||
gText_Trade:: @ 841B51E
|
||||
.string "TRADE$"
|
||||
|
||||
gUnknown_841B524:: @ 841B524
|
||||
gText_Battle:: @ 841B524
|
||||
.string "BATTLE$"
|
||||
|
||||
gUnknown_841B52B:: @ 841B52B
|
||||
gText_Lets:: @ 841B52B
|
||||
.string "LET'S$"
|
||||
|
||||
gUnknown_841B531:: @ 841B531
|
||||
gText_Ok:: @ 841B531
|
||||
.string "OK!$"
|
||||
|
||||
gUnknown_841B535:: @ 841B535
|
||||
gText_Sorry:: @ 841B535
|
||||
.string "SORRY$"
|
||||
|
||||
gUnknown_841B53B:: @ 841B53B
|
||||
gText_YaySmileEmoji:: @ 841B53B
|
||||
.string "YAY{EXTRA 0xF9}$"
|
||||
|
||||
gUnknown_841B541:: @ 841B541
|
||||
gText_ThankYou:: @ 841B541
|
||||
.string "THANK YOU$"
|
||||
|
||||
gUnknown_841B54B:: @ 841B54B
|
||||
gText_ByeBye:: @ 841B54B
|
||||
.string "BYE-BYE!$"
|
||||
|
||||
gUnknown_841B554:: @ 841B554
|
||||
|
||||
@@ -1,358 +0,0 @@
|
||||
#include "constants/region_map.h"
|
||||
#include "constants/flags.h"
|
||||
#include "constants/moves.h"
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnknown_845A880:: @ 845A880
|
||||
.4byte sub_8128640
|
||||
.4byte sub_81286C4
|
||||
.4byte sub_81287B4
|
||||
.4byte sub_81288D4
|
||||
.4byte sub_8128DA4
|
||||
.4byte sub_8128E78
|
||||
.4byte sub_8128AA0
|
||||
.4byte sub_8128C04
|
||||
.4byte sub_8128CA8
|
||||
.4byte sub_8128FB8
|
||||
|
||||
gUnknown_845A8A8:: @ 845A8A8
|
||||
.byte 0x09, 0x09, 0x09, 0x09
|
||||
|
||||
gUnknown_845A8AC:: @ 845A8AC
|
||||
.byte 0x00, 0x16, 0x17, 0x68, 0x19, 0x1a, 0x1b, 0x1c
|
||||
.byte 0x1d, 0x1e, 0x00, 0x20, 0x21, 0x22, 0x23, 0x24
|
||||
.byte 0x25, 0x26, 0x27, 0x28, 0x29, 0x15, 0x01, 0x02
|
||||
.byte 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00
|
||||
.byte 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12
|
||||
.byte 0x13, 0x14, 0x2a, 0x2b, 0x2c, 0x2d, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x36, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x53, 0x54, 0x55, 0x56, 0x00
|
||||
.byte 0x00, 0x00, 0x6f, 0x5b, 0x5c, 0x5d, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x84, 0x85, 0x86, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7
|
||||
.byte 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf
|
||||
.byte 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7
|
||||
.byte 0xb8, 0xb9, 0xba, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9
|
||||
.byte 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1
|
||||
.byte 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9
|
||||
.byte 0xea, 0xeb, 0xec, 0xed, 0xee, 0xbb, 0xbc, 0xbd
|
||||
.byte 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5
|
||||
.byte 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd
|
||||
.byte 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xef
|
||||
.byte 0xf0, 0xf4, 0xf5, 0xf6, 0xf1, 0xf2, 0xf3, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
gUnknown_845A9AC:: @ 845A9AC
|
||||
.4byte gUnknown_847AAC1
|
||||
.4byte gUnknown_847AAC7
|
||||
.4byte gUnknown_847AACD
|
||||
.4byte gUnknown_847AAD3
|
||||
.4byte gUnknown_847AAD9
|
||||
.4byte gUnknown_847AADF
|
||||
.4byte gUnknown_847AAE5
|
||||
.4byte gUnknown_847AAEB
|
||||
.4byte gUnknown_847AAF1
|
||||
.4byte gUnknown_847AAF7
|
||||
.4byte gUnknown_847AAFD
|
||||
.4byte gUnknown_847AB03
|
||||
.4byte gUnknown_847AB09
|
||||
.4byte gUnknown_847AB0F
|
||||
.4byte gUnknown_847AB15
|
||||
.4byte gUnknown_847AB1B
|
||||
.4byte gUnknown_847AB21
|
||||
.4byte gUnknown_847AB27
|
||||
.4byte gUnknown_847AB2D
|
||||
.4byte gUnknown_847AB33
|
||||
.4byte gUnknown_847AB41
|
||||
.4byte gUnknown_847AB4C
|
||||
.4byte gUnknown_847AB57
|
||||
.4byte gUnknown_847AB62
|
||||
.4byte gUnknown_847AB6B
|
||||
.4byte gUnknown_847AB76
|
||||
.4byte gUnknown_847AB81
|
||||
.4byte gUnknown_847AB8C
|
||||
.4byte gUnknown_847AB97
|
||||
.4byte gUnknown_847ABA2
|
||||
|
||||
gUnknown_845AA24:: @ 845AA24
|
||||
.incbin "graphics/union_room_chat/unk_845AA24.gbapal"
|
||||
|
||||
gUnknown_845AA44:: @ 845AA44
|
||||
.incbin "graphics/union_room_chat/unk_845AA44.gbapal"
|
||||
|
||||
gUnknown_845AA64:: @ 845AA64
|
||||
.incbin "graphics/union_room_chat/unk_845AA64.gbapal"
|
||||
|
||||
gUnknown_845AA84:: @ 845AA84
|
||||
.4byte 0x00000070
|
||||
@ {
|
||||
@ .bg = 0,
|
||||
@ .charBaseIndex = 0,
|
||||
@ .mapBaseIndex = 7,
|
||||
@ .screenSize = 0,
|
||||
@ .paletteMode = 0,
|
||||
@ .priority = 0,
|
||||
@ .baseTile = 0x0000
|
||||
@ }
|
||||
.4byte 0x000011fd
|
||||
@ {
|
||||
@ .bg = 1,
|
||||
@ .charBaseIndex = 3,
|
||||
@ .mapBaseIndex = 31,
|
||||
@ .screenSize = 0,
|
||||
@ .paletteMode = 0,
|
||||
@ .priority = 1,
|
||||
@ .baseTile = 0x0000
|
||||
@ }
|
||||
.4byte 0x0000217a
|
||||
@ {
|
||||
@ .bg = 2,
|
||||
@ .charBaseIndex = 2,
|
||||
@ .mapBaseIndex = 23,
|
||||
@ .screenSize = 0,
|
||||
@ .paletteMode = 0,
|
||||
@ .priority = 2,
|
||||
@ .baseTile = 0x0000
|
||||
@ }
|
||||
.4byte 0x000070f7
|
||||
@ {
|
||||
@ .bg = 3,
|
||||
@ .charBaseIndex = 1,
|
||||
@ .mapBaseIndex = 15,
|
||||
@ .screenSize = 0,
|
||||
@ .paletteMode = 0,
|
||||
@ .priority = 3,
|
||||
@ .baseTile = 0x0001
|
||||
@ }
|
||||
|
||||
gUnknown_845AA94:: @ 845AA94
|
||||
.byte 3, 8, 1, 21, 19, 15
|
||||
.2byte 0x0001
|
||||
.byte 1, 9, 18, 15, 2, 12
|
||||
.2byte 0x007a
|
||||
.byte 1, 0, 2, 6, 15, 7
|
||||
.2byte 0x0020
|
||||
.byte 0, 1, 2, 7, 9, 14
|
||||
.2byte 0x0013
|
||||
.byte 255, 0, 0, 0, 0, 0
|
||||
.2byte 0x0000
|
||||
|
||||
gUnknown_845AABC:: @ 845AABC
|
||||
.2byte 0x00
|
||||
.align 2
|
||||
.4byte sub_8129CA0
|
||||
.2byte 0x03
|
||||
.align 2
|
||||
.4byte sub_8129D40
|
||||
.2byte 0x04
|
||||
.align 2
|
||||
.4byte sub_8129D78
|
||||
.2byte 0x05
|
||||
.align 2
|
||||
.4byte sub_8129DB0
|
||||
.2byte 0x01
|
||||
.align 2
|
||||
.4byte sub_8129E1C
|
||||
.2byte 0x06
|
||||
.align 2
|
||||
.4byte sub_8129E28
|
||||
.2byte 0x07
|
||||
.align 2
|
||||
.4byte sub_8129E74
|
||||
.2byte 0x08
|
||||
.align 2
|
||||
.4byte sub_8129EB8
|
||||
.2byte 0x09
|
||||
.align 2
|
||||
.4byte sub_8129F24
|
||||
.2byte 0x0a
|
||||
.align 2
|
||||
.4byte sub_8129FCC
|
||||
.2byte 0x0b
|
||||
.align 2
|
||||
.4byte sub_812A074
|
||||
.2byte 0x0c
|
||||
.align 2
|
||||
.4byte sub_812A0B0
|
||||
.2byte 0x02
|
||||
.align 2
|
||||
.4byte sub_812A18C
|
||||
.2byte 0x0d
|
||||
.align 2
|
||||
.4byte sub_812A1B8
|
||||
.2byte 0x12
|
||||
.align 2
|
||||
.4byte sub_812A1FC
|
||||
.2byte 0x13
|
||||
.align 2
|
||||
.4byte sub_812A240
|
||||
.2byte 0x0e
|
||||
.align 2
|
||||
.4byte sub_812A294
|
||||
.2byte 0x0f
|
||||
.align 2
|
||||
.4byte sub_812A2E4
|
||||
.2byte 0x10
|
||||
.align 2
|
||||
.4byte sub_812A334
|
||||
.2byte 0x11
|
||||
.align 2
|
||||
.4byte sub_812A378
|
||||
.2byte 0x14
|
||||
.align 2
|
||||
.4byte sub_812A3D0
|
||||
|
||||
gUnknown_845AB64:: @ 845AB64
|
||||
.4byte gUnknown_841B366
|
||||
.byte 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00
|
||||
.align 2
|
||||
.4byte gUnknown_841B375
|
||||
.byte 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00
|
||||
.align 2
|
||||
.4byte gUnknown_841B38A
|
||||
.byte 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00
|
||||
.align 2
|
||||
.4byte gUnknown_841B39E
|
||||
.byte 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00
|
||||
.align 2
|
||||
.4byte gUnknown_841B3E9
|
||||
.byte 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00
|
||||
.align 2
|
||||
.4byte gUnknown_841B3FB
|
||||
.byte 0x02, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00
|
||||
.align 2
|
||||
.4byte gUnknown_841B426
|
||||
.byte 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x01
|
||||
.align 2
|
||||
.4byte gUnknown_841B469
|
||||
.byte 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x01
|
||||
.align 2
|
||||
.4byte gUnknown_841B4A4
|
||||
.byte 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x01
|
||||
.align 2
|
||||
.4byte gUnknown_841B4C6
|
||||
.byte 0x02, 0x00, 0x00, 0x01, 0x02, 0x01, 0x01
|
||||
.align 2
|
||||
.4byte gUnknown_841B4D9
|
||||
.byte 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x01
|
||||
.align 2
|
||||
|
||||
gUnknown_845ABE8:: @ 845ABE8
|
||||
.string "…$"
|
||||
|
||||
.align 2
|
||||
gUnknown_845ABEC:: @ 845ABEC
|
||||
.4byte gUnknown_841B33D, 0
|
||||
.4byte gUnknown_841B343, 0
|
||||
.4byte gUnknown_841B350, 0
|
||||
.4byte gUnknown_841B358, 0
|
||||
.4byte gUnknown_841B361, 0
|
||||
|
||||
gUnknown_845AC14:: @ 845AC14
|
||||
.incbin "graphics/union_room_chat/unk_845AC14.gbapal"
|
||||
|
||||
gUnknown_845AC34::
|
||||
.incbin "graphics/union_room_chat/unk_845AC34.4bpp.lz"
|
||||
|
||||
gUnknown_845AEB8::
|
||||
.incbin "graphics/union_room_chat/unk_845AEB8.4bpp.lz"
|
||||
|
||||
gUnknown_845AED8::
|
||||
.incbin "graphics/union_room_chat/unk_845AED8.4bpp.lz"
|
||||
|
||||
gUnknown_845AF04::
|
||||
.incbin "graphics/union_room_chat/unk_845AF04.4bpp.lz"
|
||||
|
||||
gUnknown_845AF58:: @ 845AF58
|
||||
obj_tiles gUnknown_845AC34, 0x1000, 0
|
||||
obj_tiles gUnknown_845AED8, 0x0040, 1
|
||||
obj_tiles gUnknown_845AEB8, 0x0040, 2
|
||||
obj_tiles gUnknown_845AF04, 0x0080, 3
|
||||
obj_tiles gUnknown_8EA1A50, 0x0400, 4
|
||||
|
||||
gUnknown_845AF80:: @ 845AF80
|
||||
obj_pal gUnknown_845AC14, 0
|
||||
|
||||
gOamData_845AF88::
|
||||
.4byte 0xc0004000, 0x00000400
|
||||
|
||||
gAnimCmd_845AF90::
|
||||
obj_image_anim_frame 0x0000, 30
|
||||
obj_image_anim_end
|
||||
|
||||
gAnimCmd_845AF98::
|
||||
obj_image_anim_frame 0x0020, 30
|
||||
obj_image_anim_end
|
||||
|
||||
gAnimCmd_845AFA0::
|
||||
obj_image_anim_frame 0x0040, 30
|
||||
obj_image_anim_end
|
||||
|
||||
gAnimCmd_845AFA8::
|
||||
obj_image_anim_frame 0x0060, 30
|
||||
obj_image_anim_end
|
||||
|
||||
gSpriteAnimTable_845AFB0::
|
||||
.4byte gAnimCmd_845AF90
|
||||
.4byte gAnimCmd_845AF98
|
||||
.4byte gAnimCmd_845AFA0
|
||||
.4byte gAnimCmd_845AFA8
|
||||
|
||||
gUnknown_845AFC0:: @ 845AFC0
|
||||
spr_template 0, 0, gOamData_845AF88, gSpriteAnimTable_845AFB0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
gOamData_845AFD8::
|
||||
.4byte 0x00008000, 0x00000800
|
||||
|
||||
gUnknown_845AFE0:: @ 845AFE0
|
||||
spr_template 2, 0, gOamData_845AFD8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812B09C
|
||||
|
||||
gUnknown_845AFF8:: @ 845AFF8
|
||||
spr_template 1, 0, gOamData_845AFD8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_812B0D4
|
||||
|
||||
gOamData_845B010::
|
||||
.4byte 0x40000000, 0x00000800
|
||||
|
||||
gOamData_845B018::
|
||||
.4byte 0x80004000, 0x00000800
|
||||
|
||||
gAnimCmd_845B020::
|
||||
obj_image_anim_frame 0x0000, 2
|
||||
obj_image_anim_end
|
||||
|
||||
gAnimCmd_845B028::
|
||||
obj_image_anim_frame 0x0008, 2
|
||||
obj_image_anim_end
|
||||
|
||||
gAnimCmd_845B030::
|
||||
obj_image_anim_frame 0x0010, 2
|
||||
obj_image_anim_end
|
||||
|
||||
gAnimCmd_845B038::
|
||||
obj_image_anim_frame 0x0018, 2
|
||||
obj_image_anim_end
|
||||
|
||||
gSpriteAnimTable_845B040::
|
||||
.4byte gAnimCmd_845B020
|
||||
.4byte gAnimCmd_845B028
|
||||
.4byte gAnimCmd_845B030
|
||||
.4byte gAnimCmd_845B038
|
||||
|
||||
gUnknown_845B050:: @ 845B050
|
||||
spr_template 3, 0, gOamData_845B010, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
gUnknown_845B068:: @ 845B068
|
||||
spr_template 4, 0, gOamData_845B018, gSpriteAnimTable_845B040, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
+59
-29
@@ -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 filler0;
|
||||
u8 unk1;
|
||||
u8 unk2;
|
||||
u16 mauvilleOldMan_ecArray[10];
|
||||
u8 mauvilleOldMan_ecArray2[12];
|
||||
u8 fillerF[0x2];
|
||||
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
|
||||
{
|
||||
/*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];
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
+5
-1
@@ -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[];
|
||||
|
||||
@@ -73,5 +73,6 @@ extern const char RomHeaderGameCode[4];
|
||||
extern const char RomHeaderSoftwareVersion;
|
||||
|
||||
extern u8 gLinkTransferringData;
|
||||
extern u16 gKeyRepeatStartDelay;
|
||||
|
||||
#endif // GUARD_MAIN_H
|
||||
|
||||
+42
-7
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
+6
-2
@@ -246,7 +246,9 @@ SECTIONS {
|
||||
src/union_room_battle.o(.text);
|
||||
asm/pokemon_special_anim.o(.text);
|
||||
src/party_menu.o(.text);
|
||||
asm/union_room_chat.o(.text);
|
||||
src/union_room_chat.o(.text);
|
||||
src/union_room_chat_display.o(.text);
|
||||
src/union_room_chat_objects.o(.text);
|
||||
src/help_system_812B1E0.o(.text);
|
||||
src/quest_log_battle.o(.text);
|
||||
src/fame_checker.o(.text);
|
||||
@@ -534,7 +536,9 @@ SECTIONS {
|
||||
src/union_room_message.o(.rodata);
|
||||
data/pokemon_special_anim.o(.rodata);
|
||||
src/party_menu.o(.rodata);
|
||||
data/union_room_chat.o(.rodata);
|
||||
src/union_room_chat.o(.rodata);
|
||||
src/union_room_chat_display.o(.rodata);
|
||||
src/union_room_chat_objects.o(.rodata);
|
||||
src/help_system_812B1E0.o(.rodata);
|
||||
src/fame_checker.o(.rodata);
|
||||
src/menu2.o(.rodata);
|
||||
|
||||
+3
-27
@@ -1,44 +1,34 @@
|
||||
#include "global.h"
|
||||
#include "pokemon.h"
|
||||
#include "gflib.h"
|
||||
#include "battle.h"
|
||||
#include "daycare.h"
|
||||
#include "string_util.h"
|
||||
#include "constants/species.h"
|
||||
#include "constants/items.h"
|
||||
#include "mail_data.h"
|
||||
#include "pokemon_storage_system.h"
|
||||
#include "event_data.h"
|
||||
#include "random.h"
|
||||
#include "main.h"
|
||||
#include "constants/moves.h"
|
||||
#include "text.h"
|
||||
#include "menu.h"
|
||||
#include "new_menu_helpers.h"
|
||||
#include "script.h"
|
||||
#include "strings.h"
|
||||
#include "task.h"
|
||||
#include "window.h"
|
||||
#include "party_menu.h"
|
||||
#include "list_menu.h"
|
||||
#include "overworld.h"
|
||||
#include "pokedex.h"
|
||||
#include "decompress.h"
|
||||
#include "palette.h"
|
||||
#include "sound.h"
|
||||
#include "constants/songs.h"
|
||||
#include "text_window.h"
|
||||
#include "trig.h"
|
||||
#include "malloc.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "bg.h"
|
||||
#include "m4a.h"
|
||||
#include "graphics.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "naming_screen.h"
|
||||
#include "help_system.h"
|
||||
#include "field_fadetransition.h"
|
||||
#include "trade.h"
|
||||
#include "constants/daycare.h"
|
||||
#include "constants/pokemon.h"
|
||||
#include "constants/region_map.h"
|
||||
|
||||
// Combination of RSE's Day-Care (re-used on Four Island), FRLG's Day-Care, and egg_hatch.c
|
||||
@@ -60,20 +50,6 @@ struct EggHatchData
|
||||
u8 textColor[3];
|
||||
};
|
||||
|
||||
extern const u8 gText_MaleSymbol4[];
|
||||
extern const u8 gText_FemaleSymbol4[];
|
||||
extern const u8 gText_GenderlessSymbol[];
|
||||
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 u32 gUnknown_826601C[]; // tilemap gameboy circle
|
||||
extern const u8 gText_HatchedFromEgg[];
|
||||
extern const u8 gText_NickHatchPrompt[];
|
||||
|
||||
// this file's functions
|
||||
static void ClearDaycareMonMail(struct DayCareMail *mail);
|
||||
static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare);
|
||||
@@ -638,7 +614,7 @@ static void ClearDaycareMonMail(struct DayCareMail *mail)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH/* + 1*/; i++)
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++)
|
||||
mail->OT_name[i] = 0;
|
||||
for (i = 0; i < POKEMON_NAME_LENGTH + 1; i++)
|
||||
mail->monName[i] = 0;
|
||||
|
||||
+16
-15
@@ -30,7 +30,7 @@ static u16 gUnknown_3002008[7];
|
||||
|
||||
struct GFtgtGname gHostRFUtgtGnameBuffer;
|
||||
struct UnkRfuStruct_2 Rfu;
|
||||
u8 gHostRFUtgtUnameBuffer[PLAYER_NAME_LENGTH];
|
||||
u8 gHostRFUtgtUnameBuffer[PLAYER_NAME_LENGTH + 1];
|
||||
|
||||
static void sub_80F8AA4(void);
|
||||
static void sub_80F8AEC(void);
|
||||
@@ -448,7 +448,7 @@ static void sub_80F8B34(u8 taskId)
|
||||
gTasks[taskId].data[1] = 8;
|
||||
Rfu.unk_0c = 1;
|
||||
CreateTask(sub_80FA834, 5);
|
||||
Rfu.unk_ce8 = 1;
|
||||
Rfu.unk_ce8 = TRUE;
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
}
|
||||
@@ -1337,7 +1337,7 @@ static void sub_80FA1C4(void)
|
||||
|
||||
static void sub_80FA224(void)
|
||||
{
|
||||
if (gSendCmd[0] == 0 && Rfu.unk_ce8 == 0)
|
||||
if (gSendCmd[0] == 0 && !Rfu.unk_ce8)
|
||||
{
|
||||
sub_80F9D04(0x5f00);
|
||||
Rfu.RfuFunc = sub_80FA1C4;
|
||||
@@ -1620,7 +1620,7 @@ static void sub_80FA834(u8 taskId)
|
||||
|
||||
if (Rfu.unk_f1 == 1 || Rfu.unk_f1 == 2)
|
||||
{
|
||||
Rfu.unk_ce8 = 0;
|
||||
Rfu.unk_ce8 = FALSE;
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
switch (gTasks[taskId].data[0])
|
||||
@@ -1681,7 +1681,7 @@ static void sub_80FA834(u8 taskId)
|
||||
case 6:
|
||||
DestroyTask(taskId);
|
||||
gReceivedRemoteLinkPlayers = 1;
|
||||
Rfu.unk_ce8 = 0;
|
||||
Rfu.unk_ce8 = FALSE;
|
||||
sub_80FEA34(1, 0x258);
|
||||
if (Rfu.unk_ce6)
|
||||
{
|
||||
@@ -1740,7 +1740,7 @@ static void sub_80FAA94(u8 taskId)
|
||||
u8 r4 = Rfu.unk_cde[gUnknown_843EC38[Rfu.unk_ce9]];
|
||||
if (Rfu.unk_f1 == 1 || Rfu.unk_f1 == 2)
|
||||
{
|
||||
Rfu.unk_ce8 = 0;
|
||||
Rfu.unk_ce8 = FALSE;
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
switch (gTasks[taskId].data[0])
|
||||
@@ -1790,7 +1790,7 @@ static void sub_80FAA94(u8 taskId)
|
||||
{
|
||||
CpuFill16(0, gBlockRecvBuffer, sizeof(struct UnkRfuStruct_8010A14));
|
||||
ResetBlockReceivedFlag(0);
|
||||
Rfu.unk_ce8 = 0;
|
||||
Rfu.unk_ce8 = FALSE;
|
||||
if (Rfu.unk_ce6)
|
||||
{
|
||||
for (i = 0; i < RFU_CHILD_MAX; i++)
|
||||
@@ -1799,7 +1799,7 @@ static void sub_80FAA94(u8 taskId)
|
||||
{
|
||||
Rfu.unk_ce5 = 1 << i;
|
||||
Rfu.unk_ce6 ^= (1 << i);
|
||||
Rfu.unk_ce8 = 1;
|
||||
Rfu.unk_ce8 = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1948,7 +1948,7 @@ void sub_80FB008(u8 a0, u32 a1, u32 a2)
|
||||
rfu_REQ_configGameData(0, 2, (void *)&gHostRFUtgtGnameBuffer, gHostRFUtgtUnameBuffer);
|
||||
}
|
||||
|
||||
void sub_80FB030(u32 a0)
|
||||
void sub_80FB030(u32 linkPlayerCount)
|
||||
{
|
||||
s32 i;
|
||||
u32 r5;
|
||||
@@ -1964,9 +1964,10 @@ void sub_80FB030(u32 a0)
|
||||
{
|
||||
if ((r8 >> i) & 1)
|
||||
{
|
||||
r7 |= ((0x80 | ((gLinkPlayers[Rfu.unk_cde[i]].gender & 1) << 3) | (gLinkPlayers[Rfu.unk_cde[i]].trainerId & 7)) << (r5 << 3));
|
||||
r7 |= ((
|
||||
0x80 | ((gLinkPlayers[Rfu.unk_cde[i]].gender & 1) << 3) | (gLinkPlayers[Rfu.unk_cde[i]].trainerId & 7)) << (r5 << 3));
|
||||
r5++;
|
||||
if (r5 == a0 - 1)
|
||||
if (r5 == linkPlayerCount - 1)
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -2214,11 +2215,11 @@ static void sub_80FB5EC(u8 a0, u8 unused1)
|
||||
if (idx != 0)
|
||||
{
|
||||
r1 = 1 << sub_80F886C(idx);
|
||||
if (Rfu.unk_ce6 == 0 && Rfu.unk_ce8 == 0)
|
||||
if (Rfu.unk_ce6 == 0 && !Rfu.unk_ce8)
|
||||
{
|
||||
Rfu.unk_ce5 = r1;
|
||||
Rfu.unk_ce6 |= (r1 ^ idx);
|
||||
Rfu.unk_ce8 = 1;
|
||||
Rfu.unk_ce8 = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2360,7 +2361,7 @@ bool32 sub_80FBA00(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool32 sub_80FBA1C(void)
|
||||
bool32 GetRfuUnkCE8(void)
|
||||
{
|
||||
return Rfu.unk_ce8;
|
||||
}
|
||||
@@ -2534,7 +2535,7 @@ void sub_80FBD6C(u32 a0)
|
||||
|
||||
static void sub_80FBDB8(u8 taskId)
|
||||
{
|
||||
if (gSendCmd[0] == 0 && Rfu.unk_ce8 == 0)
|
||||
if (gSendCmd[0] == 0 && !Rfu.unk_ce8)
|
||||
{
|
||||
sub_80F9D04(0xED00);
|
||||
gSendCmd[1] = gTasks[taskId].data[0];
|
||||
|
||||
+2
-2
@@ -848,7 +848,7 @@ static void ZeroName(u8 *name)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH; i++)
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++)
|
||||
{
|
||||
*name++ = 0;
|
||||
}
|
||||
@@ -858,7 +858,7 @@ static bool32 NameIsEmpty(const u8 *name)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH; i++)
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++)
|
||||
{
|
||||
if (*name++ != 0)
|
||||
{
|
||||
|
||||
+2
-2
@@ -20,7 +20,7 @@ void ClearMailStruct(struct MailStruct *mail)
|
||||
|
||||
for (i = 0; i < MAIL_WORDS_COUNT; i++)
|
||||
mail->words[i] = 0xFFFF;
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH; i++)
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++)
|
||||
mail->playerName[i] = EOS;
|
||||
for (i = 0; i < 4; i++)
|
||||
mail->trainerId[i] = 0;
|
||||
@@ -52,7 +52,7 @@ u8 GiveMailToMon(struct Pokemon *mon, u16 itemId)
|
||||
{
|
||||
for (i = 0; i < MAIL_WORDS_COUNT; i++)
|
||||
gSaveBlock1Ptr->mail[id].words[i] = 0xFFFF;
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH - 1 && gSaveBlock2Ptr->playerName[i] != EOS; i++)
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH && gSaveBlock2Ptr->playerName[i] != EOS; i++)
|
||||
gSaveBlock1Ptr->mail[id].playerName[i] = gSaveBlock2Ptr->playerName[i];
|
||||
for (; i <= 5; i++)
|
||||
gSaveBlock1Ptr->mail[id].playerName[i] = CHAR_SPACE;
|
||||
|
||||
+2
-2
@@ -108,7 +108,7 @@ void ResetMenuAndMonGlobals(void)
|
||||
|
||||
void NewGameInitData(void)
|
||||
{
|
||||
u8 rivalName[PLAYER_NAME_LENGTH];
|
||||
u8 rivalName[PLAYER_NAME_LENGTH + 1];
|
||||
|
||||
StringCopy(rivalName, gSaveBlock1Ptr->rivalName);
|
||||
gDifferentSaveFile = TRUE;
|
||||
@@ -143,7 +143,7 @@ void NewGameInitData(void)
|
||||
sub_809C794();
|
||||
InitEasyChatPhrases();
|
||||
ResetTrainerFanClub();
|
||||
copy_strings_to_sav1();
|
||||
UnionRoomChat_InitializeRegisteredTexts();
|
||||
ResetMiniGamesResults();
|
||||
sub_8143D24();
|
||||
SetAllRenewableItemFlags();
|
||||
|
||||
+2
-2
@@ -1902,8 +1902,8 @@ static void GetDefaultName(u8 arg0, u8 namePick)
|
||||
src = sRivalNameChoices[namePick];
|
||||
dest = gSaveBlock1Ptr->rivalName;
|
||||
}
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH - 1 && src[i] != EOS; i++)
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH && src[i] != EOS; i++)
|
||||
dest[i] = src[i];
|
||||
for (; i < PLAYER_NAME_LENGTH; i++)
|
||||
for (; i < PLAYER_NAME_LENGTH + 1; i++)
|
||||
dest[i] = EOS;
|
||||
}
|
||||
|
||||
+2
-2
@@ -2991,7 +2991,7 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
|
||||
{
|
||||
retVal = 0;
|
||||
|
||||
// FRLG changed this to 7 which used to be PLAYER_NAME_LENGTH
|
||||
// FRLG changed this to 7 which used to be PLAYER_NAME_LENGTH + 1
|
||||
while (retVal < 7)
|
||||
{
|
||||
data[retVal] = boxMon->otName[retVal];
|
||||
@@ -5769,7 +5769,7 @@ s8 GetFlavorRelationByPersonality(u32 personality, u8 flavor)
|
||||
|
||||
bool8 IsTradedMon(struct Pokemon *mon)
|
||||
{
|
||||
u8 otName[7 + 1]; // change PLAYER_NAME_LENGTH to 7
|
||||
u8 otName[PLAYER_NAME_LENGTH];
|
||||
u32 otId;
|
||||
GetMonData(mon, MON_DATA_OT_NAME, otName);
|
||||
otId = GetMonData(mon, MON_DATA_OT_ID, 0);
|
||||
|
||||
+22
-22
@@ -2411,8 +2411,8 @@ static void BufferFanClubTrainerName(struct LinkBattleRecords *linkRecords, u8 w
|
||||
else
|
||||
{
|
||||
str = gStringVar1;
|
||||
StringCopyN(str, linkTrainerName, PLAYER_NAME_LENGTH - 1);
|
||||
str[PLAYER_NAME_LENGTH - 1] = EOS;
|
||||
StringCopyN(str, linkTrainerName, PLAYER_NAME_LENGTH);
|
||||
str[PLAYER_NAME_LENGTH] = EOS;
|
||||
if ( str[0] == EXT_CTRL_CODE_BEGIN
|
||||
&& str[1] == EXT_CTRL_CODE_JPN)
|
||||
{
|
||||
@@ -3401,8 +3401,8 @@ static const u16 *BufferQuestLogText_LinkTraded(const u16 *a0)
|
||||
{
|
||||
const u16 *r6 = a0 + 4;
|
||||
|
||||
memset(gStringVar1, EOS, PLAYER_NAME_LENGTH);
|
||||
memcpy(gStringVar1, r6, PLAYER_NAME_LENGTH - 1);
|
||||
memset(gStringVar1, EOS, PLAYER_NAME_LENGTH + 1);
|
||||
memcpy(gStringVar1, r6, PLAYER_NAME_LENGTH);
|
||||
|
||||
BufferLinkPartnersName(gStringVar1);
|
||||
QuestLog_GetSpeciesName(a0[3], gStringVar2, 0); // Mon received
|
||||
@@ -3435,7 +3435,7 @@ static u16 *BufferQuestLogData_LinkBattledSingle(u16 *a0, const u16 *eventData)
|
||||
a0[0] = QL_EVENT_LINK_BATTLED_SINGLE;
|
||||
a0[1] = sQuestLogIdx;
|
||||
*((u8 *)a0 + 4) = *((const u8 *)eventData + 0);
|
||||
memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH - 1);
|
||||
memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH);
|
||||
a0 += 6;
|
||||
return a0;
|
||||
}
|
||||
@@ -3444,8 +3444,8 @@ static const u16 *BufferQuestLogText_LinkBattledSingle(const u16 *a0)
|
||||
{
|
||||
DynamicPlaceholderTextUtil_Reset();
|
||||
|
||||
memset(gStringVar1, EOS, PLAYER_NAME_LENGTH);
|
||||
memcpy(gStringVar1, (const u8 *)a0 + 5, PLAYER_NAME_LENGTH - 1);
|
||||
memset(gStringVar1, EOS, PLAYER_NAME_LENGTH + 1);
|
||||
memcpy(gStringVar1, (const u8 *)a0 + 5, PLAYER_NAME_LENGTH);
|
||||
BufferLinkPartnersName(gStringVar1);
|
||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
|
||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, sBattleOutcomeTexts[((const u8 *)a0)[4]]);
|
||||
@@ -3459,7 +3459,7 @@ static u16 *BufferQuestLogData_LinkBattledDouble(u16 *a0, const u16 *eventData)
|
||||
a0[0] = QL_EVENT_LINK_BATTLED_DOUBLE;
|
||||
a0[1] = sQuestLogIdx;
|
||||
*((u8 *)a0 + 4) = *((const u8 *)eventData + 0);
|
||||
memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH - 1);
|
||||
memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH);
|
||||
a0 += 6;
|
||||
return a0;
|
||||
}
|
||||
@@ -3468,8 +3468,8 @@ static const u16 *BufferQuestLogText_LinkBattledDouble(const u16 *a0)
|
||||
{
|
||||
DynamicPlaceholderTextUtil_Reset();
|
||||
|
||||
memset(gStringVar1, EOS, PLAYER_NAME_LENGTH);
|
||||
memcpy(gStringVar1, (const u8 *)a0 + 5, PLAYER_NAME_LENGTH - 1);
|
||||
memset(gStringVar1, EOS, PLAYER_NAME_LENGTH + 1);
|
||||
memcpy(gStringVar1, (const u8 *)a0 + 5, PLAYER_NAME_LENGTH);
|
||||
BufferLinkPartnersName(gStringVar1);
|
||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
|
||||
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, sBattleOutcomeTexts[((const u8 *)a0)[4]]);
|
||||
@@ -3483,9 +3483,9 @@ static u16 *BufferQuestLogData_LinkBattledMulti(u16 *a0, const u16 *eventData)
|
||||
a0[0] = QL_EVENT_LINK_BATTLED_MULTI;
|
||||
a0[1] = sQuestLogIdx;
|
||||
*((u8 *)a0 + 4) = *((const u8 *)eventData + 0);
|
||||
memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH - 1);
|
||||
memcpy((u8 *)a0 + 12, (const u8 *)eventData + 8, PLAYER_NAME_LENGTH - 1);
|
||||
memcpy((u8 *)a0 + 19, (const u8 *)eventData + 15, PLAYER_NAME_LENGTH - 1);
|
||||
memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH);
|
||||
memcpy((u8 *)a0 + 12, (const u8 *)eventData + 8, PLAYER_NAME_LENGTH);
|
||||
memcpy((u8 *)a0 + 19, (const u8 *)eventData + 15, PLAYER_NAME_LENGTH);
|
||||
a0 += 13;
|
||||
return a0;
|
||||
}
|
||||
@@ -3494,9 +3494,9 @@ static const u16 *BufferQuestLogText_LinkBattledMulti(const u16 *a0)
|
||||
{
|
||||
DynamicPlaceholderTextUtil_Reset();
|
||||
|
||||
memset(gStringVar1, EOS, PLAYER_NAME_LENGTH);
|
||||
memset(gStringVar2, EOS, PLAYER_NAME_LENGTH);
|
||||
memset(gStringVar3, EOS, PLAYER_NAME_LENGTH);
|
||||
memset(gStringVar1, EOS, PLAYER_NAME_LENGTH + 1);
|
||||
memset(gStringVar2, EOS, PLAYER_NAME_LENGTH + 1);
|
||||
memset(gStringVar3, EOS, PLAYER_NAME_LENGTH + 1);
|
||||
StringCopy7(gStringVar1, (const u8 *)a0 + 5);
|
||||
StringCopy7(gStringVar2, (const u8 *)a0 + 12);
|
||||
StringCopy7(gStringVar3, (const u8 *)a0 + 19);
|
||||
@@ -3548,7 +3548,7 @@ static u16 *BufferQuestLogData_LinkTradedUnionRoom(u16 *a0, const u16 *eventData
|
||||
a0[1] = sQuestLogIdx;
|
||||
a0[2] = eventData[0];
|
||||
a0[3] = eventData[1];
|
||||
memcpy(r4, eventData + 2, PLAYER_NAME_LENGTH - 1);
|
||||
memcpy(r4, eventData + 2, PLAYER_NAME_LENGTH);
|
||||
r4 += 8;
|
||||
return (u16 *)r4;
|
||||
}
|
||||
@@ -3556,8 +3556,8 @@ static u16 *BufferQuestLogData_LinkTradedUnionRoom(u16 *a0, const u16 *eventData
|
||||
static const u16 *BufferQuestLogText_LinkTradedUnionRoom(const u16 *a0)
|
||||
{
|
||||
const u8 *r6 = (const u8 *)(a0 + 4);
|
||||
memset(gStringVar1, EOS, PLAYER_NAME_LENGTH);
|
||||
memcpy(gStringVar1, r6, PLAYER_NAME_LENGTH - 1);
|
||||
memset(gStringVar1, EOS, PLAYER_NAME_LENGTH + 1);
|
||||
memcpy(gStringVar1, r6, PLAYER_NAME_LENGTH);
|
||||
BufferLinkPartnersName(gStringVar1);
|
||||
QuestLog_GetSpeciesName(a0[3], gStringVar2, 0);
|
||||
QuestLog_GetSpeciesName(a0[2], gStringVar3, 0);
|
||||
@@ -3571,15 +3571,15 @@ static u16 *BufferQuestLogData_LinkBattledUnionRoom(u16 *a0, const u16 *eventDat
|
||||
a0[0] = QL_EVENT_LINK_BATTLED_UNION;
|
||||
a0[1] = sQuestLogIdx;
|
||||
*(u8 *)&a0[2] = *(const u8 *)&eventData[0];
|
||||
memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH - 1);
|
||||
memcpy((u8 *)a0 + 5, (const u8 *)eventData + 1, PLAYER_NAME_LENGTH);
|
||||
a0 += 6;
|
||||
return a0;
|
||||
}
|
||||
|
||||
static const u16 *BufferQuestLogText_LinkBattledUnionRoom(const u16 *a0)
|
||||
{
|
||||
memset(gStringVar1, EOS, PLAYER_NAME_LENGTH);
|
||||
memcpy(gStringVar1, (const u8 *)a0 + 5, PLAYER_NAME_LENGTH - 1);
|
||||
memset(gStringVar1, EOS, PLAYER_NAME_LENGTH + 1);
|
||||
memcpy(gStringVar1, (const u8 *)a0 + 5, PLAYER_NAME_LENGTH);
|
||||
BufferLinkPartnersName(gStringVar1);
|
||||
StringCopy(gStringVar2, sBattleOutcomeTexts[*(const u8 *)&a0[2]]);
|
||||
StringExpandPlaceholders(gStringVar4, QuestLog_Text_BattledTrainerEndedInOutcome);
|
||||
|
||||
+1
-24
@@ -1,41 +1,22 @@
|
||||
#include "global.h"
|
||||
#include "palette.h"
|
||||
#include "gflib.h"
|
||||
#include "task.h"
|
||||
#include "decompress.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "malloc.h"
|
||||
#include "bg.h"
|
||||
#include "text.h"
|
||||
#include "window.h"
|
||||
#include "librfu.h"
|
||||
#include "text_window.h"
|
||||
#include "evolution_scene.h"
|
||||
#include "pokemon_icon.h"
|
||||
#include "pokedex.h"
|
||||
#include "mail_data.h"
|
||||
#include "graphics.h"
|
||||
#include "link.h"
|
||||
#include "random.h"
|
||||
#include "save.h"
|
||||
#include "load_save.h"
|
||||
#include "quest_log.h"
|
||||
#include "field_fadetransition.h"
|
||||
#include "mevent.h"
|
||||
#include "help_system.h"
|
||||
#include "link_rfu.h"
|
||||
#include "cable_club.h"
|
||||
#include "data.h"
|
||||
#include "sound.h"
|
||||
#include "string_util.h"
|
||||
#include "strings.h"
|
||||
#include "menu.h"
|
||||
#include "overworld.h"
|
||||
#include "battle_anim.h"
|
||||
#include "pokeball.h"
|
||||
#include "party_menu.h"
|
||||
#include "util.h"
|
||||
#include "daycare.h"
|
||||
#include "script.h"
|
||||
#include "event_data.h"
|
||||
#include "battle_interface.h"
|
||||
#include "pokemon_summary_screen.h"
|
||||
@@ -43,11 +24,7 @@
|
||||
#include "new_menu_helpers.h"
|
||||
#include "trade.h"
|
||||
#include "trade_scene.h"
|
||||
#include "constants/species.h"
|
||||
#include "constants/items.h"
|
||||
#include "constants/easy_chat.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/region_map.h"
|
||||
#include "constants/moves.h"
|
||||
|
||||
struct TradeMenuResources
|
||||
|
||||
+2
-2
@@ -1852,7 +1852,7 @@ static void sub_81175BC(u8 taskId)
|
||||
sub_80F8D14();
|
||||
SetHostRFUtgtGname(69, 0, 1);
|
||||
}
|
||||
sub_8128420();
|
||||
EnterUnionRoomChat();
|
||||
break;
|
||||
case 8:
|
||||
case 72:
|
||||
@@ -3385,7 +3385,7 @@ static void sub_81199FC(u8 taskId)
|
||||
case 2:
|
||||
if (sUnionRoomPlayerName[0] == EOS)
|
||||
{
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH; i++)
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH + 1; i++)
|
||||
{
|
||||
if (structPtr->field_0->arr[i].field_1A_0 == 1)
|
||||
{
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,318 @@
|
||||
#include "global.h"
|
||||
#include "gflib.h"
|
||||
#include "decompress.h"
|
||||
#include "graphics.h"
|
||||
#include "union_room_chat.h"
|
||||
|
||||
struct UnionRoomChat3
|
||||
{
|
||||
struct Sprite *selectorCursorSprite;
|
||||
struct Sprite *characterSelectCursorSprite;
|
||||
struct Sprite *textEntryCursorSprite;
|
||||
struct Sprite *rButtonSprite;
|
||||
struct Sprite *chatIconsSprite;
|
||||
u16 cursorBlinkTimer;
|
||||
};
|
||||
|
||||
static EWRAM_DATA struct UnionRoomChat3 *sWork = NULL;
|
||||
|
||||
static void SpriteCB_TextEntryCursor(struct Sprite * sprite);
|
||||
static void SpriteCB_CharacterSelectCursor(struct Sprite * sprite);
|
||||
|
||||
static const u16 sUnionRoomChatInterfacePal[] = INCBIN_U16("graphics/union_room_chat/unk_845AC14.gbapal");
|
||||
static const u32 sSelectorCursorGfxTiles[] = INCBIN_U32("graphics/union_room_chat/unk_845AC34.4bpp.lz");
|
||||
static const u32 sHorizontalBarGfxTiles[] = INCBIN_U32("graphics/union_room_chat/unk_845AEB8.4bpp.lz");
|
||||
static const u32 sMenuCursorGfxTiles[] = INCBIN_U32("graphics/union_room_chat/unk_845AED8.4bpp.lz");
|
||||
static const u32 sRButtonGfxTiles[] = INCBIN_U32("graphics/union_room_chat/unk_845AF04.4bpp.lz");
|
||||
|
||||
static const struct CompressedSpriteSheet sSpriteSheets[] = {
|
||||
{sSelectorCursorGfxTiles, 0x1000, 0},
|
||||
{sMenuCursorGfxTiles, 0x0040, 1},
|
||||
{sHorizontalBarGfxTiles, 0x0040, 2},
|
||||
{sRButtonGfxTiles, 0x0080, 3},
|
||||
{gUnionRoomChatIcons, 0x0400, 4}
|
||||
};
|
||||
|
||||
static const struct SpritePalette sSpritePalette = {
|
||||
sUnionRoomChatInterfacePal, 0
|
||||
};
|
||||
|
||||
static const struct OamData sOamData_64x32_1 = {
|
||||
.shape = SPRITE_SHAPE(64x32),
|
||||
.size = SPRITE_SIZE(64x32),
|
||||
.priority = 1
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_CursorSmallOpen[] = {
|
||||
ANIMCMD_FRAME(0x00, 30),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_CursorSmallClosed[] = {
|
||||
ANIMCMD_FRAME(0x20, 30),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_CursorLargeOpen[] = {
|
||||
ANIMCMD_FRAME(0x40, 30),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_CursorLargeClosed[] = {
|
||||
ANIMCMD_FRAME(0x60, 30),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sSpriteAnims_SelectorCursor[] = {
|
||||
sAnim_CursorSmallOpen,
|
||||
sAnim_CursorSmallClosed,
|
||||
sAnim_CursorLargeOpen,
|
||||
sAnim_CursorLargeClosed
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate sSpriteTemplate_SelectorCursor = {
|
||||
.tileTag = 0,
|
||||
.paletteTag = 0,
|
||||
.oam = &sOamData_64x32_1,
|
||||
.anims = sSpriteAnims_SelectorCursor,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
static const struct OamData sOamData_8x16_2 = {
|
||||
.shape = SPRITE_SHAPE(8x16),
|
||||
.size = SPRITE_SIZE(8x16),
|
||||
.priority = 2
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate sSpriteTemplate_TextEntryCursor = {
|
||||
.tileTag = 2,
|
||||
.paletteTag = 0,
|
||||
.oam = &sOamData_8x16_2,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCB_TextEntryCursor
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate sSpriteTemplate_CharacterSelectCursor = {
|
||||
.tileTag = 1,
|
||||
.paletteTag = 0,
|
||||
.oam = &sOamData_8x16_2,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCB_CharacterSelectCursor
|
||||
};
|
||||
|
||||
static const struct OamData sOamData_16x16_2 = {
|
||||
.shape = SPRITE_SHAPE(16x16),
|
||||
.size = SPRITE_SIZE(16x16),
|
||||
.priority = 2
|
||||
};
|
||||
|
||||
static const struct OamData sOamData_32x16_2 = {
|
||||
.shape = SPRITE_SHAPE(32x16),
|
||||
.size = SPRITE_SIZE(32x16),
|
||||
.priority = 2
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_UnionRoomChatIcons_ToggleCase[] = {
|
||||
ANIMCMD_FRAME(0x00, 2),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_UnionRoomChatIcons_Dummy1[] = {
|
||||
ANIMCMD_FRAME(0x08, 2),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_UnionRoomChatIcons_Dummy2[] = {
|
||||
ANIMCMD_FRAME(0x10, 2),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sAnim_UnionRoomChatIcons_Register[] = {
|
||||
ANIMCMD_FRAME(0x18, 2),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sSpriteAnimTable_UnionRoomChatIcons[] = {
|
||||
sAnim_UnionRoomChatIcons_ToggleCase,
|
||||
sAnim_UnionRoomChatIcons_Dummy1,
|
||||
sAnim_UnionRoomChatIcons_Dummy2,
|
||||
sAnim_UnionRoomChatIcons_Register
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate sSpriteTemplate_RButton = {
|
||||
.tileTag = 3,
|
||||
.paletteTag = 0,
|
||||
.oam = &sOamData_16x16_2,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate sSpriteTemplate_UnionRoomChatIcons = {
|
||||
.tileTag = 4,
|
||||
.paletteTag = 0,
|
||||
.oam = &sOamData_32x16_2,
|
||||
.anims = sSpriteAnimTable_UnionRoomChatIcons,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
bool32 UnionRoomChat_TryAllocSpriteWork(void)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < NELEMS(sSpriteSheets); i++)
|
||||
LoadCompressedSpriteSheet(&sSpriteSheets[i]);
|
||||
|
||||
LoadSpritePalette(&sSpritePalette);
|
||||
sWork = Alloc(sizeof(struct UnionRoomChat3));
|
||||
if (sWork == NULL)
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void UnionRoomChat_FreeSpriteWork(void)
|
||||
{
|
||||
if (sWork != NULL)
|
||||
Free(sWork);
|
||||
}
|
||||
|
||||
void UnionRoomChat_CreateSelectorCursorObj(void)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&sSpriteTemplate_SelectorCursor, 10, 24, 0);
|
||||
sWork->selectorCursorSprite = &gSprites[spriteId];
|
||||
}
|
||||
|
||||
void UnionRoomChat_ToggleSelectorCursorObjVisibility(bool32 invisible)
|
||||
{
|
||||
sWork->selectorCursorSprite->invisible = invisible;
|
||||
}
|
||||
|
||||
void UnionRoomChat_MoveSelectorCursorObj(void)
|
||||
{
|
||||
u8 x, y;
|
||||
u8 page = GetCurrentKeyboardPage();
|
||||
UnionRoomChat_GetCursorColAndRow(&x, &y);
|
||||
if (page != UNION_ROOM_KB_PAGE_COUNT)
|
||||
{
|
||||
StartSpriteAnim(sWork->selectorCursorSprite, 0);
|
||||
sWork->selectorCursorSprite->pos1.x = x * 8 + 10;
|
||||
sWork->selectorCursorSprite->pos1.y = y * 12 + 24;
|
||||
}
|
||||
else
|
||||
{
|
||||
StartSpriteAnim(sWork->selectorCursorSprite, 2);
|
||||
sWork->selectorCursorSprite->pos1.x = 24;
|
||||
sWork->selectorCursorSprite->pos1.y = y * 12 + 24;
|
||||
}
|
||||
}
|
||||
|
||||
void UnionRoomChat_UpdateObjPalCycle(int arg0)
|
||||
{
|
||||
const u16 *palette = &sUnionRoomChatInterfacePal[arg0 * 2 + 1];
|
||||
u8 index = IndexOfSpritePaletteTag(0);
|
||||
LoadPalette(palette, index * 16 + 0x101, 4);
|
||||
}
|
||||
|
||||
void UnionRoomChat_SetSelectorCursorClosedImage(void)
|
||||
{
|
||||
if (GetCurrentKeyboardPage() != UNION_ROOM_KB_PAGE_COUNT)
|
||||
StartSpriteAnim(sWork->selectorCursorSprite, 1);
|
||||
else
|
||||
StartSpriteAnim(sWork->selectorCursorSprite, 3);
|
||||
|
||||
sWork->cursorBlinkTimer = 0;
|
||||
}
|
||||
|
||||
bool32 UnionRoomChat_AnimateSelectorCursorReopen(void)
|
||||
{
|
||||
if (sWork->cursorBlinkTimer > 3)
|
||||
return FALSE;
|
||||
|
||||
if (++sWork->cursorBlinkTimer > 3)
|
||||
{
|
||||
if (GetCurrentKeyboardPage() != UNION_ROOM_KB_PAGE_COUNT)
|
||||
StartSpriteAnim(sWork->selectorCursorSprite, 0);
|
||||
else
|
||||
StartSpriteAnim(sWork->selectorCursorSprite, 2);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void UnionRoomChat_SpawnTextEntryPointerSprites(void)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&sSpriteTemplate_TextEntryCursor, 76, 152, 2);
|
||||
sWork->textEntryCursorSprite = &gSprites[spriteId];
|
||||
spriteId = CreateSprite(&sSpriteTemplate_CharacterSelectCursor, 64, 152, 1);
|
||||
sWork->characterSelectCursorSprite = &gSprites[spriteId];
|
||||
}
|
||||
|
||||
static void SpriteCB_TextEntryCursor(struct Sprite *sprite)
|
||||
{
|
||||
int var0 = UnionRoomChat_GetMessageEntryCursorPosition();
|
||||
if (var0 == 15)
|
||||
{
|
||||
sprite->invisible = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite->invisible = FALSE;
|
||||
sprite->pos1.x = var0 * 8 + 76;
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_CharacterSelectCursor(struct Sprite *sprite)
|
||||
{
|
||||
if (++sprite->data[0] > 4)
|
||||
{
|
||||
sprite->data[0] = 0;
|
||||
if (++sprite->pos2.x > 4)
|
||||
sprite->pos2.x = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void CreatePageSwitchUISprites(void)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&sSpriteTemplate_RButton, 8, 152, 3);
|
||||
sWork->rButtonSprite = &gSprites[spriteId];
|
||||
spriteId = CreateSprite(&sSpriteTemplate_UnionRoomChatIcons, 32, 152, 4);
|
||||
sWork->chatIconsSprite = &gSprites[spriteId];
|
||||
sWork->chatIconsSprite->invisible = TRUE;
|
||||
}
|
||||
|
||||
void UpdateVisibleUnionRoomChatIcon(void)
|
||||
{
|
||||
if (GetCurrentKeyboardPage() == UNION_ROOM_KB_PAGE_COUNT)
|
||||
{
|
||||
if (UnionRoomChat_LenMessageEntryBuffer() != 0)
|
||||
{
|
||||
// REGISTER
|
||||
sWork->chatIconsSprite->invisible = FALSE;
|
||||
StartSpriteAnim(sWork->chatIconsSprite, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
sWork->chatIconsSprite->invisible = TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
int anim = UnionRoomChat_GetWhetherShouldShowCaseToggleIcon();
|
||||
if (anim == 3)
|
||||
{
|
||||
sWork->chatIconsSprite->invisible = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
// A <--> a
|
||||
sWork->chatIconsSprite->invisible = FALSE;
|
||||
StartSpriteAnim(sWork->chatIconsSprite, anim);
|
||||
}
|
||||
}
|
||||
}
|
||||
+5
-10
@@ -369,17 +369,12 @@ gUnknown_203B098: @ 203B098
|
||||
|
||||
.align 2
|
||||
.include "src/party_menu.o"
|
||||
|
||||
.align 2
|
||||
gUnknown_203B0E0: @ 203B0E0
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203B0E4: @ 203B0E4
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203B0E8: @ 203B0E8
|
||||
.space 0x4
|
||||
|
||||
.include "src/union_room_chat.o"
|
||||
.align 2
|
||||
.include "src/union_room_chat_display.o"
|
||||
.align 2
|
||||
.include "src/union_room_chat_objects.o"
|
||||
.align 2
|
||||
.include "src/help_system_812B1E0.o"
|
||||
.align 2
|
||||
|
||||
Reference in New Issue
Block a user