diff options
-rw-r--r-- | asm/trade.s | 92 | ||||
-rw-r--r-- | include/global.h | 4 | ||||
-rw-r--r-- | include/pokemon_icon.h | 1 | ||||
-rw-r--r-- | src/trade.c | 23 |
4 files changed, 25 insertions, 95 deletions
diff --git a/asm/trade.s b/asm/trade.s index 19fbf83d7..53fe968a5 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -288,96 +288,4 @@ _0804AF08: .4byte gUnknown_03004824 _0804AF0C: .4byte gEnemyParty thumb_func_end sub_804AE3C - thumb_func_start sub_804AF10 -sub_804AF10: @ 804AF10 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r5, 0 -_0804AF18: - movs r4, 0 - ldr r2, _0804AF7C @ =gUnknown_03004824 - ldr r0, [r2] - adds r0, 0x42 - adds r0, r5 - adds r1, r5, 0x1 - mov r8, r1 - ldrb r0, [r0] - cmp r4, r0 - bge _0804AF6A - adds r6, r2, 0 - lsls r0, r5, 1 - adds r0, r5 - lsls r7, r0, 1 -_0804AF34: - ldr r2, [r6] - adds r3, r4, r7 - adds r0, r2, 0 - adds r0, 0x34 - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0804AF80 @ =gSprites - adds r0, r1 - adds r2, 0x69 - adds r2, r3 - ldrb r2, [r2] - movs r1, 0x4 - subs r1, r2 - lsls r1, 24 - lsrs r1, 24 - bl sub_809D824 - adds r4, 0x1 - ldr r0, [r6] - adds r0, 0x42 - adds r0, r5 - ldrb r0, [r0] - cmp r4, r0 - blt _0804AF34 -_0804AF6A: - mov r5, r8 - cmp r5, 0x1 - ble _0804AF18 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0804AF7C: .4byte gUnknown_03004824 -_0804AF80: .4byte gSprites - thumb_func_end sub_804AF10 - - thumb_func_start sub_804AF84 -sub_804AF84: @ 804AF84 - push {r4,lr} - movs r2, 0 - ldr r4, _0804AFB0 @ =gSaveBlock1 + 0x3110 - ldr r3, _0804AFB4 @ =gUnknown_03004824 -_0804AF8C: - adds r1, r2, r4 - ldrb r0, [r1] - cmp r0, 0 - bne _0804AFA2 - ldr r0, [r3] - adds r0, 0xB5 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0804AFA2 - strb r0, [r1] -_0804AFA2: - adds r2, 0x1 - cmp r2, 0xA - ble _0804AF8C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0804AFB0: .4byte gSaveBlock1 + 0x3110 -_0804AFB4: .4byte gUnknown_03004824 - thumb_func_end sub_804AF84 - .align 2, 0 @ Don't pad with nop. diff --git a/include/global.h b/include/global.h index f076274cc..07ea6a410 100644 --- a/include/global.h +++ b/include/global.h @@ -651,8 +651,8 @@ struct SaveBlock1 /* 0x02025734 */ /*0x30B7*/ u8 filler_30B7[1]; /*0x30B8*/ struct LinkBattleRecord linkBattleRecords[5]; /*0x3108*/ u8 filler_3108[8]; - /*0x3110*/ u8 giftRibbons[7]; - /*0x3117*/ u8 filler_311B[0x2D]; + /*0x3110*/ u8 giftRibbons[11]; + /*0x3117*/ u8 filler_311B[0x29]; /*0x3144*/ struct Roamer roamer; /*0x3160*/ struct EnigmaBerry enigmaBerry; /*0x3690*/ struct RamScript ramScript; diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index 20acb6676..6f00619fc 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -10,5 +10,6 @@ void sub_809D51C(void); void sub_809D580(u16); void sub_809D608(u16); void UpdateMonIconFrame(struct Sprite *sprite); +void sub_809D824(struct Sprite *, u8); #endif // GUARD_POKEMON_ICON_H diff --git a/src/trade.c b/src/trade.c index 3cb292a1b..f9922dcfb 100644 --- a/src/trade.c +++ b/src/trade.c @@ -95,7 +95,8 @@ struct TradeEwramSubstruct { /*0x0044*/ u8 tradeMenuOptionsActive[13]; /*0x0051*/ u8 unk_0051[6]; /*0x0057*/ u8 filler_0057[6]; - /*0x005d*/ u8 unk_005d[4][6]; + /*0x005d*/ u8 unk_005d[2][6]; + /*0x005d*/ u8 unk_0069[2][6]; /*0x0075*/ u8 unk_0075; /*0x0076*/ u8 filler_0076[4]; /*0x007a*/ u8 unk_007a; @@ -3511,6 +3512,26 @@ static bool8 sub_804ABF8(void) asm(".section .text.sub_804DAD4"); +void sub_804AF10(void) +{ + int i, j; + for (i = 0; i < 2; i ++) + { + for (j = 0; j < gUnknown_03004824->partyCounts[i]; j ++) + { + sub_809D824(&gSprites[gUnknown_03004824->partyIcons[i][j]], 4 - gUnknown_03004824->unk_0069[i][j]); + } + } +} + +void sub_804AF84(void) +{ + int i; + for (i = 0; i < 11; i ++) + if (gSaveBlock1.giftRibbons[i] == 0 && gUnknown_03004824->unk_00b5[i] != 0) + gSaveBlock1.giftRibbons[i] = gUnknown_03004824->unk_00b5[i]; +} + void sub_804AFB8(const struct WindowConfig *windowConfig, u8 *dest, const u8 *src, u8 size) { u8 i; |