mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-25 03:04:15 +01:00
Decompile berry_powder.c
This commit is contained in:
parent
456cc3a6f0
commit
cf917a8733
@ -404,7 +404,7 @@ _08020F48:
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1, 0x68]
|
||||
str r0, [r1, 0x1C]
|
||||
bl sub_8024700
|
||||
bl GiveBerryPowder
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08020F66
|
||||
@ -6510,7 +6510,7 @@ _080240DC:
|
||||
movs r3, 0x6
|
||||
bl ConvertIntToDecimalStringN
|
||||
ldr r4, =gStringVar2
|
||||
bl sub_80247BC
|
||||
bl GetBerryPowder
|
||||
adds r1, r0, 0
|
||||
adds r0, r4, 0
|
||||
movs r2, 0
|
||||
|
@ -1,374 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8024668
|
||||
sub_8024668: @ 8024668
|
||||
ldr r1, =gSaveBlock2Ptr
|
||||
ldr r1, [r1]
|
||||
adds r1, 0xAC
|
||||
ldr r0, [r0]
|
||||
ldr r1, [r1]
|
||||
eors r0, r1
|
||||
bx lr
|
||||
.pool
|
||||
thumb_func_end sub_8024668
|
||||
|
||||
thumb_func_start SetBerryPowder
|
||||
SetBerryPowder: @ 802467C
|
||||
ldr r2, =gSaveBlock2Ptr
|
||||
ldr r2, [r2]
|
||||
adds r2, 0xAC
|
||||
ldr r2, [r2]
|
||||
eors r2, r1
|
||||
str r2, [r0]
|
||||
bx lr
|
||||
.pool
|
||||
thumb_func_end SetBerryPowder
|
||||
|
||||
thumb_func_start ApplyNewEncryptionKeyToBerryPowder
|
||||
ApplyNewEncryptionKeyToBerryPowder: @ 8024690
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
ldr r0, =gSaveBlock2Ptr
|
||||
ldr r0, [r0]
|
||||
movs r2, 0xFA
|
||||
lsls r2, 1
|
||||
adds r0, r2
|
||||
bl ApplyNewEncryptionKeyToWord
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end ApplyNewEncryptionKeyToBerryPowder
|
||||
|
||||
thumb_func_start sub_80246AC
|
||||
sub_80246AC: @ 80246AC
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r0, =gSaveBlock2Ptr
|
||||
ldr r0, [r0]
|
||||
movs r1, 0xFA
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
bl sub_8024668
|
||||
cmp r0, r4
|
||||
bcc _080246CC
|
||||
movs r0, 0x1
|
||||
b _080246CE
|
||||
.pool
|
||||
_080246CC:
|
||||
movs r0, 0
|
||||
_080246CE:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80246AC
|
||||
|
||||
thumb_func_start sub_80246D4
|
||||
sub_80246D4: @ 80246D4
|
||||
push {lr}
|
||||
ldr r0, =gSaveBlock2Ptr
|
||||
ldr r0, [r0]
|
||||
movs r1, 0xFA
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
bl sub_8024668
|
||||
ldr r1, =gSpecialVar_0x8004
|
||||
ldrh r1, [r1]
|
||||
cmp r0, r1
|
||||
bcc _080246F8
|
||||
movs r0, 0x1
|
||||
b _080246FA
|
||||
.pool
|
||||
_080246F8:
|
||||
movs r0, 0
|
||||
_080246FA:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80246D4
|
||||
|
||||
thumb_func_start sub_8024700
|
||||
sub_8024700: @ 8024700
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r0, =gSaveBlock2Ptr
|
||||
ldr r0, [r0]
|
||||
movs r1, 0xFA
|
||||
lsls r1, 1
|
||||
adds r5, r0, r1
|
||||
adds r0, r5, 0
|
||||
bl sub_8024668
|
||||
adds r1, r0, r4
|
||||
ldr r2, =0x0001869f @ Note to decompiler: See UNKNOWN_OFFSET
|
||||
cmp r1, r2
|
||||
bhi _08024730
|
||||
adds r0, r5, 0
|
||||
bl SetBerryPowder
|
||||
movs r0, 0x1
|
||||
b _0802473A
|
||||
.pool
|
||||
_08024730:
|
||||
adds r0, r5, 0
|
||||
adds r1, r2, 0
|
||||
bl SetBerryPowder
|
||||
movs r0, 0
|
||||
_0802473A:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8024700
|
||||
|
||||
thumb_func_start sub_8024740
|
||||
sub_8024740: @ 8024740
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
ldr r0, =gSaveBlock2Ptr
|
||||
ldr r0, [r0]
|
||||
movs r1, 0xFA
|
||||
lsls r1, 1
|
||||
adds r4, r0, r1
|
||||
adds r0, r5, 0
|
||||
bl sub_80246AC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08024774
|
||||
adds r0, r4, 0
|
||||
bl sub_8024668
|
||||
adds r1, r0, 0
|
||||
subs r1, r5
|
||||
adds r0, r4, 0
|
||||
bl SetBerryPowder
|
||||
movs r0, 0x1
|
||||
b _08024776
|
||||
.pool
|
||||
_08024774:
|
||||
movs r0, 0
|
||||
_08024776:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8024740
|
||||
|
||||
thumb_func_start sub_802477C
|
||||
sub_802477C: @ 802477C
|
||||
push {r4,r5,lr}
|
||||
ldr r0, =gSaveBlock2Ptr
|
||||
ldr r0, [r0]
|
||||
movs r1, 0xFA
|
||||
lsls r1, 1
|
||||
adds r4, r0, r1
|
||||
ldr r5, =gSpecialVar_0x8004
|
||||
ldrh r0, [r5]
|
||||
bl sub_80246AC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080247B4
|
||||
adds r0, r4, 0
|
||||
bl sub_8024668
|
||||
adds r1, r0, 0
|
||||
ldrh r0, [r5]
|
||||
subs r1, r0
|
||||
adds r0, r4, 0
|
||||
bl SetBerryPowder
|
||||
movs r0, 0x1
|
||||
b _080247B6
|
||||
.pool
|
||||
_080247B4:
|
||||
movs r0, 0
|
||||
_080247B6:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_802477C
|
||||
|
||||
thumb_func_start sub_80247BC
|
||||
sub_80247BC: @ 80247BC
|
||||
push {lr}
|
||||
ldr r0, =gSaveBlock2Ptr
|
||||
ldr r0, [r0]
|
||||
movs r1, 0xFA
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
bl sub_8024668
|
||||
pop {r1}
|
||||
bx r1
|
||||
.pool
|
||||
thumb_func_end sub_80247BC
|
||||
|
||||
thumb_func_start sub_80247D4
|
||||
sub_80247D4: @ 80247D4
|
||||
push {r4-r6,lr}
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5,r6}
|
||||
sub sp, 0xC
|
||||
adds r6, r0, 0
|
||||
mov r8, r2
|
||||
adds r4, r3, 0
|
||||
ldr r5, [sp, 0x24]
|
||||
lsls r6, 24
|
||||
lsrs r6, 24
|
||||
mov r0, r8
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r8, r0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
lsls r5, 24
|
||||
lsrs r5, 24
|
||||
ldr r0, =gStringVar1
|
||||
mov r9, r0
|
||||
movs r2, 0x1
|
||||
movs r3, 0x5
|
||||
bl ConvertIntToDecimalStringN
|
||||
str r4, [sp]
|
||||
str r5, [sp, 0x4]
|
||||
movs r0, 0
|
||||
str r0, [sp, 0x8]
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x1
|
||||
mov r2, r9
|
||||
mov r3, r8
|
||||
bl AddTextPrinterParameterized
|
||||
add sp, 0xC
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_80247D4
|
||||
|
||||
thumb_func_start sub_802482C
|
||||
sub_802482C: @ 802482C
|
||||
push {r4-r6,lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
sub sp, 0xC
|
||||
adds r6, r0, 0
|
||||
adds r4, r1, 0
|
||||
adds r5, r2, 0
|
||||
mov r8, r3
|
||||
lsls r6, 24
|
||||
lsrs r6, 24
|
||||
lsls r4, 16
|
||||
lsrs r4, 16
|
||||
lsls r5, 24
|
||||
lsrs r5, 24
|
||||
adds r0, r6, 0
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
adds r3, r5, 0
|
||||
bl DrawStdFrameWithCustomTileAndPalette
|
||||
ldr r2, =gText_Powder
|
||||
movs r0, 0x1
|
||||
str r0, [sp]
|
||||
movs r0, 0xFF
|
||||
str r0, [sp, 0x4]
|
||||
movs r4, 0
|
||||
str r4, [sp, 0x8]
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x1
|
||||
movs r3, 0
|
||||
bl AddTextPrinterParameterized
|
||||
str r4, [sp]
|
||||
adds r0, r6, 0
|
||||
mov r1, r8
|
||||
movs r2, 0x1A
|
||||
movs r3, 0x11
|
||||
bl sub_80247D4
|
||||
add sp, 0xC
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_802482C
|
||||
|
||||
thumb_func_start sub_802488C
|
||||
sub_802488C: @ 802488C
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
bl sub_80247BC
|
||||
adds r1, r0, 0
|
||||
ldr r0, =gUnknown_02022C94
|
||||
ldrb r0, [r0]
|
||||
movs r2, 0
|
||||
str r2, [sp]
|
||||
movs r2, 0x1A
|
||||
movs r3, 0x11
|
||||
bl sub_80247D4
|
||||
add sp, 0x4
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_802488C
|
||||
|
||||
thumb_func_start sub_80248B0
|
||||
sub_80248B0: @ 80248B0
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x18
|
||||
movs r0, 0x7
|
||||
str r0, [sp]
|
||||
movs r0, 0x4
|
||||
str r0, [sp, 0x4]
|
||||
movs r0, 0xF
|
||||
str r0, [sp, 0x8]
|
||||
movs r0, 0x1C
|
||||
str r0, [sp, 0xC]
|
||||
add r0, sp, 0x10
|
||||
movs r1, 0
|
||||
movs r2, 0x1
|
||||
movs r3, 0x1
|
||||
bl SetWindowTemplateFields
|
||||
ldr r4, =gUnknown_02022C94
|
||||
add r0, sp, 0x10
|
||||
bl AddWindow
|
||||
strb r0, [r4]
|
||||
ldrb r0, [r4]
|
||||
movs r1, 0
|
||||
bl FillWindowPixelBuffer
|
||||
ldrb r0, [r4]
|
||||
bl PutWindowTilemap
|
||||
ldrb r0, [r4]
|
||||
ldr r5, =0x0000021d
|
||||
adds r1, r5, 0
|
||||
movs r2, 0xD0
|
||||
bl LoadUserWindowBorderGfx_
|
||||
ldrb r4, [r4]
|
||||
bl sub_80247BC
|
||||
adds r3, r0, 0
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0xD
|
||||
bl sub_802482C
|
||||
add sp, 0x18
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_80248B0
|
||||
|
||||
thumb_func_start sub_8024918
|
||||
sub_8024918: @ 8024918
|
||||
push {r4,lr}
|
||||
ldr r4, =gUnknown_02022C94
|
||||
ldrb r0, [r4]
|
||||
bl ClearWindowTilemap
|
||||
ldrb r0, [r4]
|
||||
movs r1, 0x1
|
||||
bl ClearStdWindowAndFrameToTransparent
|
||||
ldrb r0, [r4]
|
||||
bl RemoveWindow
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_8024918
|
||||
|
||||
.align 2, 0 @ don't pad with nop
|
@ -3,8 +3,9 @@
|
||||
|
||||
.section .rodata
|
||||
|
||||
|
||||
.align 2
|
||||
gUnknown_082F7BA4_UnrefDupe:: @ 82F444C struct BgTemplate
|
||||
gUnknown_082F7BA4_UnrefDupe:: @ 82F444C struct BgTemplate(???)
|
||||
.4byte 0x000001e0
|
||||
.4byte 0x000012c9
|
||||
.4byte 0x000012ea
|
@ -732,11 +732,11 @@ SlateportCity_EventScript_1DD36E:: @ 81DD36E
|
||||
|
||||
SlateportCity_EventScript_1DD39A:: @ 81DD39A
|
||||
setvar VAR_0x8004, 1
|
||||
specialvar VAR_RESULT, sub_80246D4
|
||||
specialvar VAR_RESULT, HasEnoughBerryPowder
|
||||
compare VAR_RESULT, 0
|
||||
goto_if_eq SlateportCity_EventScript_1DD3C0
|
||||
msgbox SlateportCity_Text_1DEE40, MSGBOX_DEFAULT
|
||||
special sub_80248B0
|
||||
special DisplayBerryPowderVendorMenu
|
||||
goto SlateportCity_EventScript_1DD3CA
|
||||
end
|
||||
|
||||
@ -846,7 +846,7 @@ SlateportCity_EventScript_1DD536:: @ 81DD536
|
||||
|
||||
SlateportCity_EventScript_1DD54A:: @ 81DD54A
|
||||
msgbox SlateportCity_Text_1DEFBC, MSGBOX_DEFAULT
|
||||
special sub_8024918
|
||||
special RemoveBerryPowderVendorMenu
|
||||
release
|
||||
end
|
||||
|
||||
@ -855,26 +855,26 @@ SlateportCity_EventScript_1DD557:: @ 81DD557
|
||||
compare VAR_RESULT, 0
|
||||
goto_if_eq SlateportCity_EventScript_1DD3CA
|
||||
copyvar VAR_0x8004, VAR_0x8009
|
||||
specialvar VAR_RESULT, sub_80246D4
|
||||
specialvar VAR_RESULT, HasEnoughBerryPowder
|
||||
compare VAR_RESULT, 0
|
||||
goto_if_eq SlateportCity_EventScript_1DD5CE
|
||||
giveitem_std VAR_0x8008
|
||||
compare VAR_RESULT, 0
|
||||
goto_if_eq SlateportCity_EventScript_1DD5C1
|
||||
copyvar VAR_0x8004, VAR_0x8009
|
||||
special sub_802477C
|
||||
special sub_802488C
|
||||
special TakeBerryPowder
|
||||
special PrintPlayerBerryPowderAmount
|
||||
msgbox SlateportCity_Text_1DEEF7, MSGBOX_YESNO
|
||||
compare VAR_RESULT, 1
|
||||
goto_if_eq SlateportCity_EventScript_1DD3CA
|
||||
msgbox SlateportCity_Text_1DEF79, MSGBOX_DEFAULT
|
||||
special sub_8024918
|
||||
special RemoveBerryPowderVendorMenu
|
||||
release
|
||||
end
|
||||
|
||||
SlateportCity_EventScript_1DD5C1:: @ 81DD5C1
|
||||
msgbox gUnknown_08272A89, MSGBOX_DEFAULT
|
||||
special sub_8024918
|
||||
special RemoveBerryPowderVendorMenu
|
||||
release
|
||||
end
|
||||
|
||||
|
@ -471,11 +471,11 @@ gSpecials:: @ 81DBA64
|
||||
def_special sub_813AA04
|
||||
def_special sub_813AA18
|
||||
def_special sub_813AA44
|
||||
def_special sub_80248B0
|
||||
def_special sub_8024918
|
||||
def_special sub_80246D4
|
||||
def_special sub_802477C
|
||||
def_special sub_802488C
|
||||
def_special DisplayBerryPowderVendorMenu
|
||||
def_special RemoveBerryPowderVendorMenu
|
||||
def_special HasEnoughBerryPowder
|
||||
def_special TakeBerryPowder
|
||||
def_special PrintPlayerBerryPowderAmount
|
||||
def_special sub_813A820
|
||||
def_special sub_813A854
|
||||
def_special sub_813B7D8
|
||||
|
9
include/berry_powder.h
Executable file
9
include/berry_powder.h
Executable file
@ -0,0 +1,9 @@
|
||||
#ifndef GUARD_BERRY_POWDER_H
|
||||
#define GUARD_BERRY_POWDER_H
|
||||
|
||||
void SetBerryPowder(u32 *powder, u32 amount);
|
||||
void ApplyNewEncryptionKeyToBerryPowder(u32 encryptionKey);
|
||||
bool8 GiveBerryPowder(u32 amountToAdd);
|
||||
u32 GetBerryPowder(void);
|
||||
|
||||
#endif // GUARD_BERRY_POWDER_H
|
@ -2589,4 +2589,7 @@ extern const u8 gUnknown_085EE14B[];
|
||||
extern const u8 gUnknown_085EE14F[];
|
||||
extern const u8 gUnknown_085EE154[];
|
||||
|
||||
// Berry Powder Menu
|
||||
extern const u8 gText_Powder[];
|
||||
|
||||
#endif // GUARD_STRINGS_H
|
||||
|
@ -64,7 +64,7 @@ SECTIONS {
|
||||
asm/mevent_news.o(.text);
|
||||
asm/union_room_chat.o(.text);
|
||||
asm/berry_crush.o(.text);
|
||||
asm/berry_powder_vendor.o(.text);
|
||||
src/berry_powder.o(.text);
|
||||
asm/dodrio_berry_picking.o(.text);
|
||||
asm/pokemon_jump.o(.text);
|
||||
src/rtc.o(.text);
|
||||
@ -413,7 +413,7 @@ SECTIONS {
|
||||
data/mevent_server.o(.rodata);
|
||||
data/union_room_chat.o(.rodata);
|
||||
data/berry_crush.o(.rodata);
|
||||
data/berry_powder_vendor.o(.rodata);
|
||||
data/berry_powder.o(.rodata);
|
||||
data/dodrio_berry_picking.o(.rodata);
|
||||
data/pokemon_jump.o(.rodata);
|
||||
src/rtc.o(.rodata);
|
||||
|
128
src/berry_powder.c
Executable file
128
src/berry_powder.c
Executable file
@ -0,0 +1,128 @@
|
||||
#include "global.h"
|
||||
#include "berry_powder.h"
|
||||
#include "bg.h"
|
||||
#include "event_data.h"
|
||||
#include "load_save.h"
|
||||
#include "menu.h"
|
||||
#include "string_util.h"
|
||||
#include "strings.h"
|
||||
#include "text.h"
|
||||
#include "text_window.h"
|
||||
#include "window.h"
|
||||
|
||||
#define MAX_BERRY_POWDER 99999
|
||||
|
||||
static EWRAM_DATA u8 sBerryPowderVendorWindowId = 0;
|
||||
|
||||
static u32 DecryptBerryPowder(u32 *powder)
|
||||
{
|
||||
return *powder ^ gSaveBlock2Ptr->encryptionKey;
|
||||
}
|
||||
|
||||
void SetBerryPowder(u32 *powder, u32 amount)
|
||||
{
|
||||
*powder = amount ^ gSaveBlock2Ptr->encryptionKey;
|
||||
}
|
||||
|
||||
void ApplyNewEncryptionKeyToBerryPowder(u32 encryptionKey)
|
||||
{
|
||||
u32 *powder = &gSaveBlock2Ptr->berryCrush.berryPowderAmount;
|
||||
ApplyNewEncryptionKeyToWord(powder, encryptionKey);
|
||||
}
|
||||
|
||||
static bool8 HasEnoughBerryPowder_(u32 cost)
|
||||
{
|
||||
u32 *powder = &gSaveBlock2Ptr->berryCrush.berryPowderAmount;
|
||||
if (DecryptBerryPowder(powder) < cost)
|
||||
return FALSE;
|
||||
else
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 HasEnoughBerryPowder(void)
|
||||
{
|
||||
u32 *powder = &gSaveBlock2Ptr->berryCrush.berryPowderAmount;
|
||||
if (DecryptBerryPowder(powder) < gSpecialVar_0x8004)
|
||||
return FALSE;
|
||||
else
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 GiveBerryPowder(u32 amountToAdd)
|
||||
{
|
||||
u32 *powder = &gSaveBlock2Ptr->berryCrush.berryPowderAmount;
|
||||
u32 amount = DecryptBerryPowder(powder) + amountToAdd;
|
||||
if (amount > MAX_BERRY_POWDER)
|
||||
{
|
||||
SetBerryPowder(powder, MAX_BERRY_POWDER);
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
SetBerryPowder(powder, amount);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
static bool8 TakeBerryPowder_(u32 cost)
|
||||
{
|
||||
u32 *powder = &gSaveBlock2Ptr->berryCrush.berryPowderAmount;
|
||||
if (!HasEnoughBerryPowder_(cost))
|
||||
return FALSE;
|
||||
|
||||
SetBerryPowder(powder, DecryptBerryPowder(powder) - cost);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 TakeBerryPowder(void)
|
||||
{
|
||||
u32 *powder = &gSaveBlock2Ptr->berryCrush.berryPowderAmount;
|
||||
if (!HasEnoughBerryPowder_(gSpecialVar_0x8004))
|
||||
return FALSE;
|
||||
|
||||
SetBerryPowder(powder, DecryptBerryPowder(powder) - gSpecialVar_0x8004);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u32 GetBerryPowder(void)
|
||||
{
|
||||
u32 *powder = &gSaveBlock2Ptr->berryCrush.berryPowderAmount;
|
||||
return DecryptBerryPowder(powder);
|
||||
}
|
||||
|
||||
static void PrintBerryPowderAmount(u8 windowId, int amount, u8 x, u8 y, u8 speed)
|
||||
{
|
||||
ConvertIntToDecimalStringN(gStringVar1, amount, STR_CONV_MODE_RIGHT_ALIGN, 5);
|
||||
AddTextPrinterParameterized(windowId, 1, gStringVar1, x, y, speed, NULL);
|
||||
}
|
||||
|
||||
static void DrawPlayerPowderAmount(u8 windowId, u16 baseTileOffset, u8 paletteNum, u32 amount)
|
||||
{
|
||||
DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, baseTileOffset, paletteNum);
|
||||
AddTextPrinterParameterized(windowId, 1, gText_Powder, 0, 1, TEXT_SPEED_FF, NULL);
|
||||
PrintBerryPowderAmount(windowId, amount, 26, 17, 0);
|
||||
}
|
||||
|
||||
void PrintPlayerBerryPowderAmount(void)
|
||||
{
|
||||
u32 amount = GetBerryPowder();
|
||||
PrintBerryPowderAmount(sBerryPowderVendorWindowId, amount, 26, 17, 0);
|
||||
}
|
||||
|
||||
void DisplayBerryPowderVendorMenu(void)
|
||||
{
|
||||
struct WindowTemplate template;
|
||||
SetWindowTemplateFields(&template, 0, 1, 1, 7, 4, 15, 0x1C);
|
||||
sBerryPowderVendorWindowId = AddWindow(&template);
|
||||
FillWindowPixelBuffer(sBerryPowderVendorWindowId, PIXEL_FILL(0));
|
||||
PutWindowTilemap(sBerryPowderVendorWindowId);
|
||||
LoadUserWindowBorderGfx_(sBerryPowderVendorWindowId, 0x21D, 0xD0);
|
||||
DrawPlayerPowderAmount(sBerryPowderVendorWindowId, 0x21D, 13, GetBerryPowder());
|
||||
}
|
||||
|
||||
void RemoveBerryPowderVendorMenu(void)
|
||||
{
|
||||
ClearWindowTilemap(sBerryPowderVendorWindowId);
|
||||
ClearStdWindowAndFrameToTransparent(sBerryPowderVendorWindowId, TRUE);
|
||||
RemoveWindow(sBerryPowderVendorWindowId);
|
||||
}
|
@ -4,6 +4,7 @@
|
||||
#include "battle_pyramid.h"
|
||||
#include "battle_pyramid_bag.h"
|
||||
#include "berry.h"
|
||||
#include "berry_powder.h"
|
||||
#include "bike.h"
|
||||
#include "coins.h"
|
||||
#include "data2.h"
|
||||
@ -45,8 +46,6 @@ extern u8 Route102_EventScript_274482[];
|
||||
extern u8 Route102_EventScript_2744C0[];
|
||||
extern u8 BattleFrontier_OutsideEast_EventScript_242CFC[];
|
||||
|
||||
extern s32 sub_80247BC(void);
|
||||
|
||||
void SetUpItemUseCallback(u8 taskId);
|
||||
void MapPostLoadHook_UseItem(void);
|
||||
void sub_80AF6D4(void);
|
||||
@ -638,7 +637,7 @@ void ItemUseOutOfBattle_CoinCase(u8 taskId)
|
||||
|
||||
void ItemUseOutOfBattle_PowderJar(u8 taskId)
|
||||
{
|
||||
ConvertIntToDecimalStringN(gStringVar1, sub_80247BC(), 0, 5);
|
||||
ConvertIntToDecimalStringN(gStringVar1, GetBerryPowder(), 0, 5);
|
||||
StringExpandPlaceholders(gStringVar4, gText_PowderQty);
|
||||
|
||||
if (!gTasks[taskId].data[3])
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include "global.h"
|
||||
#include "alloc.h"
|
||||
#include "berry_powder.h"
|
||||
#include "item.h"
|
||||
#include "load_save.h"
|
||||
#include "main.h"
|
||||
@ -15,8 +16,6 @@
|
||||
|
||||
static void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey);
|
||||
|
||||
extern void ApplyNewEncryptionKeyToBerryPowder(u32 key);
|
||||
|
||||
#define SAVEBLOCK_MOVE_RANGE 128
|
||||
|
||||
struct LoadedSaveData
|
||||
|
@ -41,12 +41,12 @@
|
||||
#include "secret_base.h"
|
||||
#include "player_pc.h"
|
||||
#include "field_specials.h"
|
||||
#include "berry_powder.h"
|
||||
|
||||
|
||||
extern void copy_strings_to_sav1(void);
|
||||
extern void sub_801AFD8(void);
|
||||
extern void ResetPokeJumpResults(void);
|
||||
extern void SetBerryPowder(u32* powder, u32 newValue);
|
||||
|
||||
extern const u8 EventScript_ResetAllMapFlags[];
|
||||
|
||||
|
@ -73,9 +73,9 @@ gUnknown_02022C8C: @ 2022C8C
|
||||
gUnknown_02022C90: @ 2022C90
|
||||
.space 0x4
|
||||
|
||||
gUnknown_02022C94: @ 2022C94
|
||||
.space 0x4
|
||||
.include "src/berry_powder.o"
|
||||
|
||||
.align 2
|
||||
gUnknown_02022C98: @ 2022C98
|
||||
.space 0x4
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user