diff --git a/data/data_80E59A8.s b/data/data_80E59A8.s index 6fcb6997e..01f63de40 100644 --- a/data/data_80E59A8.s +++ b/data/data_80E59A8.s @@ -1,206 +1,5 @@ .section .rodata -@ Start of Trade Items Data - - .global gUnknown_80E60A0 -gUnknown_80E60A0: @ 80E60A0 - .4byte SendItem_80E60C8 - .4byte 1 - .4byte ReceiveItem_80E60B8 - .4byte 2 - .4byte 0 - .4byte 0 - - .global ReceiveItem_80E60B8 - ReceiveItem_80E60B8: - .asciz "Receive item" - .align 2,0 - - .global SendItem_80E60C8 - SendItem_80E60C8: - .asciz "Send item" - .align 2,0 - - .global gUnknown_80E60D4 -gUnknown_80E60D4: @ 80E60D4 - .4byte SendItem_80E60C8 - .4byte -1 - .4byte ReceiveItem_80E60B8 - .4byte 2 - .4byte 0 - .4byte 0 - - .global gUnknown_80E60EC -gUnknown_80E60EC: @ 80E60EC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x15, 0x00, 0x04, 0x00 - .byte 0x06, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6104 -gUnknown_80E6104: @ 80E6104 - .4byte Confirm_80E6134 - .4byte 3 - .4byte Info_80E612C - .4byte 4 - .4byte Cancel_80E6124 - .4byte 7 - .4byte 0 - .4byte 0 - - .global Cancel_80E6124 - Cancel_80E6124: - .asciz "Cancel" - .align 2,0 - - - .global Info_80E612C - Info_80E612C: - .asciz "Info" - .align 2,0 - - .global Confirm_80E6134 - Confirm_80E6134: - .asciz "Confirm" - .align 2,0 - - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x16, 0x00, 0x09, 0x00 - .byte 0x05, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E6154 -gUnknown_80E6154: @ 80E6154 - .4byte Yes_80E6170 - .4byte 5 - .4byte No_80E616C - .4byte 6 - .4byte 0 - .4byte 0 - - .global No_80E616C - No_80E616C: - .asciz "No" - .align 2,0 - - .global Yes_80E6170 - Yes_80E6170: - .asciz "Yes" - .align 2,0 - - .global gUnknown_80E6174 -gUnknown_80E6174: @ 80E6174 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x15, 0x00, 0x0D, 0x00 - .byte 0x06, 0x00, 0x04, 0x00 - .byte 0x04, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80E618C -gUnknown_80E618C: @ 80E618C - .4byte Yes_80E6170 - .4byte 5 - .4byte Cancel_80E6124 - .4byte 0 - .4byte 0 - .4byte 0 - - .global gUnknown_80E61A4 -gUnknown_80E61A4: @ 80E61A4 - .asciz "What would you like to do? " - .align 2,0 - - .global gUnknown_80E61C0 -gUnknown_80E61C0: @ 80E61C0 - .asciz "Please choose the item to be sent." - .align 2,0 - - .global gUnknown_80E61E4 -gUnknown_80E61E4: @ 80E61E4 - .string "{COLOR_1 LIGHT_BLUE_2}$d0{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}\n" - .string "will be sent.\n" - .string "Is that OK?\0" - .align 2,0 - - .global gUnknown_80E6214 -gUnknown_80E6214: @ 80E6214 - .string "Your friend will send you an item.\n" - .string "When you are both ready{COMMA} you\n" - .string "may communicate.\0" - .align 2,0 - - .global gUnknown_80E6268 -gUnknown_80E6268: @ 80E6268 - .string "Preparing to send an item to your\n" - .string "friend. When you are both ready{COMMA}\n" - .string "you may communicate.\0" - .align 2,0 - - .global gUnknown_80E62C4 -gUnknown_80E62C4: @ 80E62C4 - .string "{CENTER_ALIGN}In communication...\n" - .string "{CENTER_ALIGN}Please wait with the power on.\n" - .string "{CENTER_ALIGN}To cancel{COMMA} press {B_BUTTON}.\0" - .align 2,0 - - .global gUnknown_80E6314 -gUnknown_80E6314: @ 80E6314 - .string "You received\n" - .string "{COLOR_1 LIGHT_BLUE_2}$d0{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}.\n" - .string "Your adventure will be saved.\0" - .align 2,0 - - .global gUnknown_80E6358 -gUnknown_80E6358: @ 80E6358 - .string "You sent {COLOR_1 LIGHT_BLUE_2}$d0{END_COLOR_TEXT_1} {COLOR_1 GREEN_2}{ARG_MOVE_ITEM_0}(s){END_COLOR_TEXT_1}.\0" - .align 2,0 - -@ Trade Items Link Errors - .global gTradeItemsCommunicationError -gTradeItemsCommunicationError: @ 80E6378 - .asciz "There was a communication error." - .align 2,0 - - .global gUnknown_80E639C -gUnknown_80E639C: @ 80E639C - .string "An incorrect number of GBA systems are\n" - .string "connected.\n" - .string "Please redo this process from the start.\0" - .align 2,0 - - .global gUnknown_80E63F8 -gUnknown_80E63F8: @ 80E63F8 - .string "There is no response from your friend.\n" - .string "Please redo this process from the start.\0" - .align 2,0 - - .global gUnknown_80E6448 -gUnknown_80E6448: @ 80E6448 - .string "The sender and receiver appear to be\n" - .string "in different modes.\n" - .string "Please redo the process from the start.\0" - .align 2,0 - - .global gUnknown_80E64AC -gUnknown_80E64AC: @ 80E64AC - .string "There is no response from your friend.\n" - .string "Please make sure the sender and receiver\n" - .string "are ready{COMMA} then redo this from the start.\0" - .align 2,0 - - .global gTradeItemsHowManyText -gTradeItemsHowManyText: @ 80E6528 - .asciz "How many?" - .align 2,0 - .asciz "pksdir0" - -@ End of Trade Menu Data - .global gUnknown_80E653C gUnknown_80E653C: @ 80E653C .byte 0x00, 0x00, 0x00, 0x00 diff --git a/data/data_80F54B4.s b/data/data_80F54B4.s index 3b2262a50..32c311fb9 100644 --- a/data/data_80F54B4.s +++ b/data/data_80F54B4.s @@ -15,8 +15,9 @@ gWarpScarfActivationChances: @ 80F5594 .global gUnknown_80F55BC gUnknown_80F55BC: @ 80F55BC - .incbin "baserom.gba", 0xF55BC, 0x30 + .2byte 50, 5, 100, 10, 200, 15, 300, 20, 400, 25, 500, 30, 600, 35, 700, 40, 800, 45, 1000, 45, 10000, 9999, -1, 1 .global gUnknown_80F55EC gUnknown_80F55EC: @ 80F55EC - .incbin "baserom.gba", 0xF55EC, 0x30 + .2byte 0, 9999, 50, 45, 100, 40, 200, 35, 300, 30, 400, 25, 500, 20, 600, 15, 700, 10, 1000, 5, 10000, 1, -1, 1 + diff --git a/ld_script.txt b/ld_script.txt index 823c9b68b..ed581ab1e 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -440,6 +440,7 @@ SECTIONS { src/adventure_log.o(.rodata); data/data_80E2068.o(.rodata); src/main_menu.o(.rodata); + src/trade_items_menu.o(.rodata); data/data_80E59A8.o(.rodata); src/load_screen.o(.rodata); src/wonder_mail_main_menu.o(.rodata); diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c index 7f9045c23..3692ca696 100644 --- a/src/trade_items_menu.c +++ b/src/trade_items_menu.c @@ -12,30 +12,71 @@ extern struct TradeItemsMenu *gTradeItemsMenu; extern u32 gUnknown_202DE30; extern u32 gUnknown_202DE58; -extern struct UnkTextStruct2 gUnknown_80E6174; -// Trade Items Menu Link Error Messages -extern u8 gTradeItemsCommunicationError[]; -extern u8 gUnknown_80E639C[]; -extern u8 gUnknown_80E63F8[]; -extern u8 gUnknown_80E6448[]; -extern u8 gUnknown_80E64AC[]; -extern u8 gTradeItemsHowManyText[]; -extern struct MenuItem gUnknown_80E60A0; -extern struct MenuItem gUnknown_80E60D4; -extern u8 gUnknown_80E61A4[]; -extern u8 gUnknown_80E61C0[]; -extern struct UnkTextStruct2 gUnknown_80E60EC; -extern struct MenuItem gUnknown_80E6104; -extern struct MenuItem gUnknown_80E6154; -extern u8 gUnknown_80E61E4[]; +const struct MenuItem gUnknown_80E60A0[3] = { + {"Send item", 1}, + {"Receive item", 2}, + {NULL, 0}, +}; -extern u8 gUnknown_80E6214[]; -extern struct MenuItem gUnknown_80E618C; -extern u8 gUnknown_80E6268[]; -extern u8 gUnknown_80E62C4[]; -extern u8 gUnknown_80E6358[]; -extern u8 gUnknown_80E6314[]; +const struct MenuItem gUnknown_80E60D4[3] = { + {"Send item", -1}, + {"Receive item", 2}, + {NULL, 0}, +}; + +const struct UnkTextStruct2 gUnknown_80E60EC = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, + 0x06, 0x05, + 0x05, 0x00, + NULL +}; + +const struct MenuItem gUnknown_80E6104[4] = { + {"Confirm", 3}, + {"Info", 4}, + {"Cancel", 7}, + {NULL, 0}, +}; + +static const struct UnkTextStruct2 unused = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x09, 0x00, + 0x05, 0x03, + 0x03, 0x00, + NULL +}; + + +const struct MenuItem gUnknown_80E6154[3] = { + {"Yes", 5}, + {"No", 6}, + {NULL, 0}, +}; + +const struct UnkTextStruct2 gUnknown_80E6174 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x0D, 0x00, + 0x06, 0x04, + 0x04, 0x00, + NULL +}; + + +const struct MenuItem gUnknown_80E618C[3] = { + {"Yes", 5}, + {"Cancel", 0}, + {NULL, 0}, +}; + +#include "data/trade_items.h" extern void sub_8013AA0(u32 *); @@ -55,13 +96,13 @@ extern void sub_801B450(); extern void sub_801CB5C(u32); extern void sub_8035CF4(u32 *, u32, u32); extern u32 sub_8013BBC(u32 *); -extern void sub_80141B4(u8 *, u32, u32, u32); +extern void sub_80141B4(const u8 *, u32, u32, u32); extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_8013C68(u32 *); extern void sub_80073E0(u32); -extern void xxx_call_draw_string(u32, u32, u8 *, u32, u32); +extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32); extern u8 sub_801CF14(u32); extern u32 sub_801D008(); extern void sub_801C8C4(u32, u32, s32 *, u32); @@ -574,10 +615,10 @@ void sub_8036B28(void) switch(gTradeItemsMenu->currMenu) { case TRADE_ITEMS_MAIN_MENU: if (sub_801CF14(0) != 0) { - sub_8014248(gUnknown_80E61A4,0,1,&gUnknown_80E60D4,0,4,0,0,0x101); + sub_8014248(gUnknown_80E61A4,0,1,gUnknown_80E60D4,0,4,0,0,0x101); } else { - sub_8014248(gUnknown_80E61A4,0,1,&gUnknown_80E60A0,0,4,0,0,0x101); + sub_8014248(gUnknown_80E61A4,0,1,gUnknown_80E60A0,0,4,0,0,0x101); } break; case TRADE_ITEMS_SEND_ITEM: @@ -594,7 +635,7 @@ void sub_8036B28(void) case TRADE_ITEMS_SEND_ITEM_POPUP_MENU: sub_8006518(gTradeItemsMenu->unk184); SetMenuItems(&gTradeItemsMenu->unk44,gTradeItemsMenu->unk184,3,&gUnknown_80E60EC, - &gUnknown_80E6104,1,0,0); + gUnknown_80E6104,1,0,0); sub_801CCD8(); sub_8035CF4(&gTradeItemsMenu->unk44,3,1); break; @@ -604,13 +645,13 @@ void sub_8036B28(void) case TRADE_ITEMS_SEND_ITEM_CONFIRM: gUnknown_202DE30 = gTradeItemsMenu->numItemsToSend; sub_8090DC4(&gUnknown_202DE58,gTradeItemsMenu->itemToSend.itemIndex,0); - sub_8014248(gUnknown_80E61E4,0,5, &gUnknown_80E6154,0,4,0,0,0x101); + sub_8014248(gUnknown_80E61E4,0,5, gUnknown_80E6154,0,4,0,0,0x101); break; case TRADE_ITEMS_RECEIVE_ITEM: - sub_8014248(gUnknown_80E6214,0,5,&gUnknown_80E618C,0,4,0,0,0x101); + sub_8014248(gUnknown_80E6214,0,5,gUnknown_80E618C,0,4,0,0,0x101); break; case 8: - sub_8014248(gUnknown_80E6268,0,5,&gUnknown_80E618C,0,4,0,0,0x101); + sub_8014248(gUnknown_80E6268,0,5,gUnknown_80E618C,0,4,0,0,0x101); break; case TRADE_ITEMS_IN_COMMUNICATION: nullsub_23(0);