summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/trade.s92
-rw-r--r--include/global.h4
-rw-r--r--include/pokemon_icon.h1
-rw-r--r--src/trade.c23
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;