summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/tv.s94
-rw-r--r--src/tv.c58
2 files changed, 57 insertions, 95 deletions
diff --git a/asm/tv.s b/asm/tv.s
index 14f886489..52bc6e82a 100644
--- a/asm/tv.s
+++ b/asm/tv.s
@@ -1944,100 +1944,6 @@ _080BED9C: .4byte 0x00002abc
_080BEDA0: .4byte gScriptResult
thumb_func_end sub_80BECE8
- thumb_func_start GetPriceReduction
-GetPriceReduction: @ 80BEDA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _080BEDB4
- b _080BEDF6
-_080BEDB0:
- movs r0, 0x1
- b _080BEDF8
-_080BEDB4:
- movs r2, 0
- ldr r4, _080BEDE0 @ =gSaveBlock1
-_080BEDB8:
- lsls r0, r2, 2
- adds r1, r0, r4
- ldr r5, _080BEDE4 @ =0x00002abc
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, r3
- bne _080BEDEC
- ldr r2, _080BEDE8 @ =0x00002abd
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080BEDF6
- adds r0, r3, 0
- bl IsPriceDiscounted
- lsls r0, 24
- cmp r0, 0
- bne _080BEDB0
- b _080BEDF6
- .align 2, 0
-_080BEDE0: .4byte gSaveBlock1
-_080BEDE4: .4byte 0x00002abc
-_080BEDE8: .4byte 0x00002abd
-_080BEDEC:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _080BEDB8
-_080BEDF6:
- movs r0, 0
-_080BEDF8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetPriceReduction
-
- thumb_func_start IsPriceDiscounted
-IsPriceDiscounted: @ 80BEE00
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BEE12
- cmp r0, 0x3
- beq _080BEE30
-_080BEE0E:
- movs r0, 0x1
- b _080BEE3C
-_080BEE12:
- ldr r0, _080BEE28 @ =gSaveBlock1
- ldrh r1, [r0, 0x4]
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bne _080BEE3A
- ldr r0, _080BEE2C @ =gScriptLastTalked
- ldrh r0, [r0]
- cmp r0, 0x1A
- beq _080BEE0E
- b _080BEE3A
- .align 2, 0
-_080BEE28: .4byte gSaveBlock1
-_080BEE2C: .4byte gScriptLastTalked
-_080BEE30:
- ldr r0, _080BEE40 @ =gSaveBlock1
- ldrh r1, [r0, 0x4]
- ldr r0, _080BEE44 @ =0x0000160d
- cmp r1, r0
- beq _080BEE0E
-_080BEE3A:
- movs r0, 0
-_080BEE3C:
- pop {r1}
- bx r1
- .align 2, 0
-_080BEE40: .4byte gSaveBlock1
-_080BEE44: .4byte 0x0000160d
- thumb_func_end IsPriceDiscounted
-
.section .text_80BF544
thumb_func_start sub_80BFF68
diff --git a/src/tv.c b/src/tv.c
index 3b5b8cd54..d8ff22316 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -56,7 +56,8 @@ extern void sub_80BEBF4(void);
extern u16 gUnknown_020387E0;
extern u16 gUnknown_020387E2;
-extern const u8 *gUnknown_083CE048[];;
+extern const u8 *gUnknown_083CE048[];
+extern u16 gScriptLastTalked;
u32 GetPlayerTrainerId(void);
@@ -463,6 +464,61 @@ void sub_80BEC10(u8);
void sub_80BEC40(void);
void sub_80BF588(TVShow tvShows[]);
+bool8 IsPriceDiscounted(u8);
+
+bool8 GetPriceReduction(u8 arg0)
+{
+ u8 i;
+ if (arg0 == 0)
+ {
+ return FALSE;
+ }
+ for (i=0; i<16; i++)
+ {
+ if (gSaveBlock1.unknown_2ABC[i].val0 == arg0)
+ {
+ if (gSaveBlock1.unknown_2ABC[i].val1 == 2 && IsPriceDiscounted(arg0) != 0)
+ {
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+ }
+ }
+ return FALSE;
+}
+
+bool8 IsPriceDiscounted(u8 arg0)
+{
+ switch (arg0)
+ {
+ case 1:
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP_SLATEPORT_CITY && gSaveBlock1.location.mapNum == MAP_ID_SLATEPORT_CITY && gScriptLastTalked == 0x1a)
+ {
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+ break;
+ case 3:
+ if (gSaveBlock1.location.mapGroup == MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP && gSaveBlock1.location.mapNum == MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP)
+ {
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+ break;
+ default:
+ return TRUE;
+ }
+}
+
bool8 sub_80BEE48(u8 arg0)
{
u8 i;