trade through sub_804D694
This commit is contained in:
-285
@@ -5,291 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_804D4F8
|
|
||||||
sub_804D4F8: @ 804D4F8
|
|
||||||
push {lr}
|
|
||||||
bl LoadOam
|
|
||||||
bl ProcessSpriteCopyRequests
|
|
||||||
bl TransferPlttBuffer
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_804D4F8
|
|
||||||
|
|
||||||
thumb_func_start sub_804D50C
|
|
||||||
sub_804D50C: @ 804D50C
|
|
||||||
push {r4,lr}
|
|
||||||
sub sp, 0x4
|
|
||||||
ldr r4, _0804D544 @ =gUnknown_2031DA8
|
|
||||||
ldr r1, [r4]
|
|
||||||
adds r1, 0xA8
|
|
||||||
ldrb r0, [r1]
|
|
||||||
adds r0, 0x1
|
|
||||||
strb r0, [r1]
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0xF
|
|
||||||
bls _0804D53C
|
|
||||||
movs r0, 0x1
|
|
||||||
negs r0, r0
|
|
||||||
movs r1, 0
|
|
||||||
str r1, [sp]
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0x10
|
|
||||||
bl BeginNormalPaletteFade
|
|
||||||
ldr r0, [r4]
|
|
||||||
adds r0, 0x6F
|
|
||||||
movs r1, 0xA
|
|
||||||
strb r1, [r0]
|
|
||||||
_0804D53C:
|
|
||||||
add sp, 0x4
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0804D544: .4byte gUnknown_2031DA8
|
|
||||||
thumb_func_end sub_804D50C
|
|
||||||
|
|
||||||
thumb_func_start sub_804D548
|
|
||||||
sub_804D548: @ 804D548
|
|
||||||
push {r4,lr}
|
|
||||||
ldr r0, _0804D580 @ =gPaletteFade
|
|
||||||
ldrb r1, [r0, 0x7]
|
|
||||||
movs r0, 0x80
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0804D59E
|
|
||||||
ldr r1, _0804D584 @ =gUnknown_2031DA4
|
|
||||||
ldr r4, _0804D588 @ =gUnknown_2031DA8
|
|
||||||
ldr r2, [r4]
|
|
||||||
adds r0, r2, 0
|
|
||||||
adds r0, 0x35
|
|
||||||
ldrb r0, [r0]
|
|
||||||
strb r0, [r1]
|
|
||||||
adds r0, r2, 0
|
|
||||||
adds r0, 0x7E
|
|
||||||
ldrb r0, [r0]
|
|
||||||
strb r0, [r1, 0x1]
|
|
||||||
ldr r0, _0804D58C @ =gWirelessCommType
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0804D590
|
|
||||||
adds r1, r2, 0
|
|
||||||
adds r1, 0x6F
|
|
||||||
movs r0, 0x10
|
|
||||||
strb r0, [r1]
|
|
||||||
b _0804D59E
|
|
||||||
.align 2, 0
|
|
||||||
_0804D580: .4byte gPaletteFade
|
|
||||||
_0804D584: .4byte gUnknown_2031DA4
|
|
||||||
_0804D588: .4byte gUnknown_2031DA8
|
|
||||||
_0804D58C: .4byte gWirelessCommType
|
|
||||||
_0804D590:
|
|
||||||
movs r0, 0x20
|
|
||||||
bl sub_800AA80
|
|
||||||
ldr r0, [r4]
|
|
||||||
adds r0, 0x6F
|
|
||||||
movs r1, 0xD
|
|
||||||
strb r1, [r0]
|
|
||||||
_0804D59E:
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_804D548
|
|
||||||
|
|
||||||
thumb_func_start sub_804D5A4
|
|
||||||
sub_804D5A4: @ 804D5A4
|
|
||||||
push {r4,r5,lr}
|
|
||||||
ldr r5, _0804D5E4 @ =gMain
|
|
||||||
ldr r0, _0804D5E8 @ =sub_804C718
|
|
||||||
str r0, [r5, 0x8]
|
|
||||||
ldr r0, _0804D5EC @ =gWirelessCommType
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0804D5FC
|
|
||||||
bl IsLinkRfuTaskFinished
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0804D620
|
|
||||||
ldr r0, _0804D5F0 @ =gUnknown_2031C90
|
|
||||||
ldr r0, [r0]
|
|
||||||
bl Free
|
|
||||||
bl FreeAllWindowBuffers
|
|
||||||
ldr r0, _0804D5F4 @ =gUnknown_2031DA8
|
|
||||||
ldr r0, [r0]
|
|
||||||
bl Free
|
|
||||||
movs r0, 0
|
|
||||||
str r0, [r5]
|
|
||||||
bl DestroyWirelessStatusIndicatorSprite
|
|
||||||
ldr r0, _0804D5F8 @ =sub_8050138
|
|
||||||
bl SetMainCallback2
|
|
||||||
b _0804D620
|
|
||||||
.align 2, 0
|
|
||||||
_0804D5E4: .4byte gMain
|
|
||||||
_0804D5E8: .4byte sub_804C718
|
|
||||||
_0804D5EC: .4byte gWirelessCommType
|
|
||||||
_0804D5F0: .4byte gUnknown_2031C90
|
|
||||||
_0804D5F4: .4byte gUnknown_2031DA8
|
|
||||||
_0804D5F8: .4byte sub_8050138
|
|
||||||
_0804D5FC:
|
|
||||||
ldr r0, _0804D628 @ =gReceivedRemoteLinkPlayers
|
|
||||||
ldrb r4, [r0]
|
|
||||||
cmp r4, 0
|
|
||||||
bne _0804D620
|
|
||||||
ldr r0, _0804D62C @ =gUnknown_2031C90
|
|
||||||
ldr r0, [r0]
|
|
||||||
bl Free
|
|
||||||
bl FreeAllWindowBuffers
|
|
||||||
ldr r0, _0804D630 @ =gUnknown_2031DA8
|
|
||||||
ldr r0, [r0]
|
|
||||||
bl Free
|
|
||||||
str r4, [r5]
|
|
||||||
ldr r0, _0804D634 @ =sub_8050138
|
|
||||||
bl SetMainCallback2
|
|
||||||
_0804D620:
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0804D628: .4byte gReceivedRemoteLinkPlayers
|
|
||||||
_0804D62C: .4byte gUnknown_2031C90
|
|
||||||
_0804D630: .4byte gUnknown_2031DA8
|
|
||||||
_0804D634: .4byte sub_8050138
|
|
||||||
thumb_func_end sub_804D5A4
|
|
||||||
|
|
||||||
thumb_func_start sub_804D638
|
|
||||||
sub_804D638: @ 804D638
|
|
||||||
push {r4,lr}
|
|
||||||
bl sub_804E9E4
|
|
||||||
bl sub_804F4DC
|
|
||||||
movs r0, 0
|
|
||||||
bl sub_804EAE4
|
|
||||||
movs r0, 0x1
|
|
||||||
bl sub_804EAE4
|
|
||||||
ldr r4, _0804D690 @ =gUnknown_2031DA8
|
|
||||||
ldr r2, [r4]
|
|
||||||
ldrb r1, [r2]
|
|
||||||
adds r0, r1, 0x1
|
|
||||||
strb r0, [r2]
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
movs r0, 0x18
|
|
||||||
bl SetGpuReg
|
|
||||||
ldr r2, [r4]
|
|
||||||
ldrb r1, [r2, 0x1]
|
|
||||||
adds r0, r1, 0
|
|
||||||
adds r0, 0xFF
|
|
||||||
strb r0, [r2, 0x1]
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
movs r0, 0x1C
|
|
||||||
bl SetGpuReg
|
|
||||||
bl RunTextPrinters_CheckPrinter0Active
|
|
||||||
bl RunTasks
|
|
||||||
bl AnimateSprites
|
|
||||||
bl BuildOamBuffer
|
|
||||||
bl UpdatePaletteFade
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0804D690: .4byte gUnknown_2031DA8
|
|
||||||
thumb_func_end sub_804D638
|
|
||||||
|
|
||||||
thumb_func_start sub_804D694
|
|
||||||
sub_804D694: @ 804D694
|
|
||||||
push {r4,r5,lr}
|
|
||||||
sub sp, 0xC
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r4, r0, 24
|
|
||||||
cmp r4, 0x1
|
|
||||||
beq _0804D700
|
|
||||||
cmp r4, 0x1
|
|
||||||
bgt _0804D6AA
|
|
||||||
cmp r4, 0
|
|
||||||
beq _0804D6B0
|
|
||||||
b _0804D75A
|
|
||||||
_0804D6AA:
|
|
||||||
cmp r4, 0x2
|
|
||||||
beq _0804D728
|
|
||||||
b _0804D75A
|
|
||||||
_0804D6B0:
|
|
||||||
ldr r0, _0804D6F0 @ =gUnknown_8E9CEDC
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0x60
|
|
||||||
bl LoadPalette
|
|
||||||
ldr r1, _0804D6F4 @ =gUnknown_8E9CF5C
|
|
||||||
movs r2, 0x94
|
|
||||||
lsls r2, 5
|
|
||||||
movs r0, 0x1
|
|
||||||
movs r3, 0
|
|
||||||
bl LoadBgTiles
|
|
||||||
ldr r1, _0804D6F8 @ =gUnknown_8E9E9FC
|
|
||||||
movs r0, 0x20
|
|
||||||
str r0, [sp]
|
|
||||||
movs r0, 0x14
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
str r4, [sp, 0x8]
|
|
||||||
movs r0, 0x1
|
|
||||||
movs r2, 0
|
|
||||||
movs r3, 0
|
|
||||||
bl CopyToBgTilemapBufferRect_ChangePalette
|
|
||||||
ldr r1, _0804D6FC @ =gUnknown_8260C30
|
|
||||||
movs r2, 0x80
|
|
||||||
lsls r2, 4
|
|
||||||
movs r0, 0x2
|
|
||||||
movs r3, 0
|
|
||||||
bl LoadBgTilemap
|
|
||||||
b _0804D75A
|
|
||||||
.align 2, 0
|
|
||||||
_0804D6F0: .4byte gUnknown_8E9CEDC
|
|
||||||
_0804D6F4: .4byte gUnknown_8E9CF5C
|
|
||||||
_0804D6F8: .4byte gUnknown_8E9E9FC
|
|
||||||
_0804D6FC: .4byte gUnknown_8260C30
|
|
||||||
_0804D700:
|
|
||||||
ldr r1, _0804D724 @ =gUnknown_8261430
|
|
||||||
movs r2, 0x80
|
|
||||||
lsls r2, 4
|
|
||||||
movs r0, 0x3
|
|
||||||
movs r3, 0
|
|
||||||
bl LoadBgTilemap
|
|
||||||
movs r0, 0
|
|
||||||
bl sub_804F284
|
|
||||||
movs r0, 0x1
|
|
||||||
bl sub_804F284
|
|
||||||
movs r0, 0x1
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
b _0804D75A
|
|
||||||
.align 2, 0
|
|
||||||
_0804D724: .4byte gUnknown_8261430
|
|
||||||
_0804D728:
|
|
||||||
movs r5, 0x80
|
|
||||||
lsls r5, 21
|
|
||||||
movs r4, 0x3
|
|
||||||
_0804D72E:
|
|
||||||
lsrs r0, r5, 24
|
|
||||||
movs r1, 0
|
|
||||||
bl SetGpuReg
|
|
||||||
movs r0, 0x80
|
|
||||||
lsls r0, 18
|
|
||||||
adds r5, r0
|
|
||||||
subs r4, 0x1
|
|
||||||
cmp r4, 0
|
|
||||||
bge _0804D72E
|
|
||||||
movs r0, 0
|
|
||||||
bl ShowBg
|
|
||||||
movs r0, 0x1
|
|
||||||
bl ShowBg
|
|
||||||
movs r0, 0x2
|
|
||||||
bl ShowBg
|
|
||||||
movs r0, 0x3
|
|
||||||
bl ShowBg
|
|
||||||
_0804D75A:
|
|
||||||
add sp, 0xC
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_804D694
|
|
||||||
|
|
||||||
thumb_func_start sub_804D764
|
thumb_func_start sub_804D764
|
||||||
sub_804D764: @ 804D764
|
sub_804D764: @ 804D764
|
||||||
push {r4-r7,lr}
|
push {r4-r7,lr}
|
||||||
|
|||||||
@@ -4214,4 +4214,9 @@ extern const u8 gMonIcon_Unown_ExclamationMark[];
|
|||||||
extern const u8 gMonIcon_Unown_QuestionMark[];
|
extern const u8 gMonIcon_Unown_QuestionMark[];
|
||||||
extern const u8 gMonIcon_QuestionMark[];
|
extern const u8 gMonIcon_QuestionMark[];
|
||||||
|
|
||||||
|
// trade
|
||||||
|
extern const u16 gUnknown_8E9CEDC[];
|
||||||
|
extern const u16 gUnknown_8E9CF5C[];
|
||||||
|
extern const u16 gUnknown_8E9E9FC[];
|
||||||
|
|
||||||
#endif //GUARD_GRAPHICS_H
|
#endif //GUARD_GRAPHICS_H
|
||||||
|
|||||||
+128
-10
@@ -17,6 +17,7 @@
|
|||||||
#include "party_menu.h"
|
#include "party_menu.h"
|
||||||
#include "pokemon_summary_screen.h"
|
#include "pokemon_summary_screen.h"
|
||||||
#include "pokemon_storage_system.h"
|
#include "pokemon_storage_system.h"
|
||||||
|
#include "new_menu_helpers.h"
|
||||||
#include "constants/species.h"
|
#include "constants/species.h"
|
||||||
#include "constants/items.h"
|
#include "constants/items.h"
|
||||||
#include "constants/easy_chat.h"
|
#include "constants/easy_chat.h"
|
||||||
@@ -67,25 +68,33 @@ IWRAM_DATA vu16 gUnknown_3000E78;
|
|||||||
|
|
||||||
EWRAM_DATA u8 *gUnknown_2031C90 = NULL;
|
EWRAM_DATA u8 *gUnknown_2031C90 = NULL;
|
||||||
EWRAM_DATA u8 *gUnknown_2031C94[14] = {};
|
EWRAM_DATA u8 *gUnknown_2031C94[14] = {};
|
||||||
|
EWRAM_DATA u8 gUnknown_2031DA4[2] = {0};
|
||||||
EWRAM_DATA struct TradeResources * gUnknown_2031DA8 = NULL;
|
EWRAM_DATA struct TradeResources * gUnknown_2031DA8 = NULL;
|
||||||
|
|
||||||
void sub_804C728(void);
|
void sub_804C728(void);
|
||||||
void sub_804D4F8(void);
|
void sub_804D4F8(void);
|
||||||
u8 shedinja_maker_maybe(void);
|
void sub_804D638(void);
|
||||||
void sub_804F5BC(u8 str_idx);
|
void sub_804D694(u8 state);
|
||||||
void sub_804F9D8(void);
|
|
||||||
bool8 sub_804F610(void);
|
|
||||||
void sub_804F748(u8 side);
|
|
||||||
void sub_804F020(u8 side);
|
|
||||||
void sub_804D764(void);
|
void sub_804D764(void);
|
||||||
void sub_804D694(u8 imgIdx);
|
void sub_804DFF0(void);
|
||||||
|
void sub_804E9E4(void);
|
||||||
|
void sub_804EAE4(u8 side);
|
||||||
|
u8 shedinja_maker_maybe(void);
|
||||||
|
void sub_804F020(u8 side);
|
||||||
|
void sub_804F284(u8 side);
|
||||||
|
void sub_804F4DC(void);
|
||||||
|
void sub_804F5BC(u8 str_idx);
|
||||||
|
bool8 sub_804F610(void);
|
||||||
|
void sub_804F728(const u8 *name, u8 *a1, u8 unused);
|
||||||
|
void sub_804F748(u8 side);
|
||||||
void sub_804F890(u8 side);
|
void sub_804F890(u8 side);
|
||||||
void sub_804F964(void);
|
void sub_804F964(void);
|
||||||
void sub_804DFF0(void);
|
void sub_804F9D8(void);
|
||||||
void sub_804D638(void);
|
|
||||||
void LoadHeldItemIcons(void);
|
void LoadHeldItemIcons(void);
|
||||||
void sub_804F728(const u8 *name, u8 *a1, u8 unused);
|
void sub_8050138(void);
|
||||||
|
|
||||||
|
extern const u16 gUnknown_8260C30[];
|
||||||
|
extern const u16 gUnknown_8261430[];
|
||||||
extern const struct BgTemplate gUnknown_8261F1C[4];
|
extern const struct BgTemplate gUnknown_8261F1C[4];
|
||||||
extern const struct WindowTemplate gUnknown_8261F2C[18];
|
extern const struct WindowTemplate gUnknown_8261F2C[18];
|
||||||
extern const u8 gTradeMonSpriteCoords[][2];
|
extern const u8 gTradeMonSpriteCoords[][2];
|
||||||
@@ -2201,3 +2210,112 @@ void sub_804CF14(void)
|
|||||||
"_0804D4F4: .4byte sub_804D638");
|
"_0804D4F4: .4byte sub_804D638");
|
||||||
}
|
}
|
||||||
#endif //NONMATCHING
|
#endif //NONMATCHING
|
||||||
|
|
||||||
|
void sub_804D4F8(void)
|
||||||
|
{
|
||||||
|
LoadOam();
|
||||||
|
ProcessSpriteCopyRequests();
|
||||||
|
TransferPlttBuffer();
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_804D50C(void)
|
||||||
|
{
|
||||||
|
if (++gUnknown_2031DA8->unk_A8 >= 16)
|
||||||
|
{
|
||||||
|
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
|
||||||
|
gUnknown_2031DA8->unk_6F = 10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_804D548(void)
|
||||||
|
{
|
||||||
|
if (!gPaletteFade.active)
|
||||||
|
{
|
||||||
|
gUnknown_2031DA4[0] = gUnknown_2031DA8->tradeMenuCursorPosition;
|
||||||
|
gUnknown_2031DA4[1] = gUnknown_2031DA8->unk_7E;
|
||||||
|
if (gWirelessCommType != 0)
|
||||||
|
{
|
||||||
|
gUnknown_2031DA8->unk_6F = 16;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sub_800AA80(32);
|
||||||
|
gUnknown_2031DA8->unk_6F = 13;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_804D5A4(void)
|
||||||
|
{
|
||||||
|
gMain.savedCallback = sub_804C718;
|
||||||
|
if (gWirelessCommType != 0)
|
||||||
|
{
|
||||||
|
if (IsLinkRfuTaskFinished())
|
||||||
|
{
|
||||||
|
Free(gUnknown_2031C90);
|
||||||
|
FreeAllWindowBuffers();
|
||||||
|
Free(gUnknown_2031DA8);
|
||||||
|
gMain.callback1 = NULL;
|
||||||
|
DestroyWirelessStatusIndicatorSprite();
|
||||||
|
SetMainCallback2(sub_8050138);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (gReceivedRemoteLinkPlayers == 0)
|
||||||
|
{
|
||||||
|
Free(gUnknown_2031C90);
|
||||||
|
FreeAllWindowBuffers();
|
||||||
|
Free(gUnknown_2031DA8);
|
||||||
|
gMain.callback1 = NULL;
|
||||||
|
SetMainCallback2(sub_8050138);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_804D638(void)
|
||||||
|
{
|
||||||
|
sub_804E9E4();
|
||||||
|
sub_804F4DC();
|
||||||
|
sub_804EAE4(0);
|
||||||
|
sub_804EAE4(1);
|
||||||
|
SetGpuReg(REG_OFFSET_BG2HOFS, gUnknown_2031DA8->unk_0++);
|
||||||
|
SetGpuReg(REG_OFFSET_BG3HOFS, gUnknown_2031DA8->unk_1--);
|
||||||
|
RunTextPrinters_CheckPrinter0Active();
|
||||||
|
RunTasks();
|
||||||
|
AnimateSprites();
|
||||||
|
BuildOamBuffer();
|
||||||
|
UpdatePaletteFade();
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_804D694(u8 state)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
switch (state)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
LoadPalette(gUnknown_8E9CEDC, 0x00, 0x60);
|
||||||
|
LoadBgTiles(1, gUnknown_8E9CF5C, 0x1280, 0);
|
||||||
|
CopyToBgTilemapBufferRect_ChangePalette(1, gUnknown_8E9E9FC, 0, 0, 32, 20, 0);
|
||||||
|
LoadBgTilemap(2, gUnknown_8260C30, 0x800, 0);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
LoadBgTilemap(3, gUnknown_8261430, 0x800, 0);
|
||||||
|
sub_804F284(0);
|
||||||
|
sub_804F284(1);
|
||||||
|
CopyBgTilemapBufferToVram(1);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
for (i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
// BG0 and BG1 coords only
|
||||||
|
SetGpuReg(REG_OFFSET_BG0HOFS + 2 * i, 0);
|
||||||
|
}
|
||||||
|
ShowBg(0);
|
||||||
|
ShowBg(1);
|
||||||
|
ShowBg(2);
|
||||||
|
ShowBg(3);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user