1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
#include "global.h"
#include "event_data.h"
#include "load_save.h"
#include "menu.h"
#include "quest_log.h"
#include "script_menu.h"
#include "string_util.h"
#include "strings.h"
#include "text.h"
#include "text_window.h"
EWRAM_DATA u8 gUnknown_203F464 = 0;
u32 DecryptBerryPowder(u32 * a0)
{
return *a0 ^ gSaveBlock2Ptr->encryptionKey;
}
void SetBerryPowder(u32 * a0, u32 a1)
{
*a0 = gSaveBlock2Ptr->encryptionKey ^ a1;
}
void sub_815EE6C(u32 a0)
{
ApplyNewEncryptionKeyToWord(&gSaveBlock2Ptr->berryCrush.berryPowderAmount, a0);
}
bool8 sub_815EE88(u32 a0)
{
if (DecryptBerryPowder(&gSaveBlock2Ptr->berryCrush.berryPowderAmount) < a0)
return FALSE;
else
return TRUE;
}
bool8 sub_815EEB0(void)
{
if (DecryptBerryPowder(&gSaveBlock2Ptr->berryCrush.berryPowderAmount) < gSpecialVar_0x8004)
return FALSE;
else
return TRUE;
}
bool8 sub_815EEE0(u32 a0)
{
u32 * ptr = &gSaveBlock2Ptr->berryCrush.berryPowderAmount;
u32 amount = DecryptBerryPowder(ptr) + a0;
if (amount > 99999)
{
SetBerryPowder(ptr, 99999);
return FALSE;
}
else
{
SetBerryPowder(ptr, amount);
return TRUE;
}
}
bool8 sub_815EF20(u32 a0)
{
u32 * ptr = &gSaveBlock2Ptr->berryCrush.berryPowderAmount;
if (!sub_815EE88(a0))
return FALSE;
else
{
u32 amount = DecryptBerryPowder(ptr);
SetBerryPowder(ptr, amount - a0);
return TRUE;
}
}
bool8 sub_815EF5C(void)
{
u32 * ptr = &gSaveBlock2Ptr->berryCrush.berryPowderAmount;
if (!sub_815EE88(gSpecialVar_0x8004))
return FALSE;
else
{
u32 amount = DecryptBerryPowder(ptr);
SetBerryPowder(ptr, amount - gSpecialVar_0x8004);
return TRUE;
}
}
u32 GetBerryPowder(void)
{
return DecryptBerryPowder(&gSaveBlock2Ptr->berryCrush.berryPowderAmount);
}
void sub_815EFBC(u8 windowId, u32 powder, u8 x, u8 y, u8 speed)
{
ConvertIntToDecimalStringN(gStringVar1, powder, STR_CONV_MODE_RIGHT_ALIGN, 5);
AddTextPrinterParameterized(windowId, 0, gStringVar1, x, y, speed, NULL);
}
void sub_815F014(u8 windowId, u16 baseBlock, u8 palette, u32 powder)
{
DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, baseBlock, palette);
AddTextPrinterParameterized(windowId, 0, gOtherText_Powder, 0, 0, -1, NULL);
sub_815EFBC(windowId, powder, 39, 12, 0);
}
void sub_815F070(void)
{
sub_815EFBC(gUnknown_203F464, GetBerryPowder(), 39, 12, 0);
}
void sub_815F094(void)
{
struct WindowTemplate template;
if (QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) != TRUE)
{
template = SetWindowTemplateFields(0, 1, 1, 8, 3, 15, 32);
gUnknown_203F464 = AddWindow(&template);
FillWindowPixelBuffer(gUnknown_203F464, 0);
PutWindowTilemap(gUnknown_203F464);
TextWindow_SetStdFrame0_WithPal(gUnknown_203F464, 0x21D, 0xD0);
sub_815F014(gUnknown_203F464, 0x21D, 0xD, GetBerryPowder());
}
}
void sub_815F114(void)
{
ClearWindowTilemap(gUnknown_203F464);
ClearStdWindowAndFrameToTransparent(gUnknown_203F464, 1);
RemoveWindow(gUnknown_203F464);
}
|