summaryrefslogtreecommitdiff
path: root/src/use_pokeblock.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/use_pokeblock.c')
-rw-r--r--src/use_pokeblock.c266
1 files changed, 103 insertions, 163 deletions
diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c
index 3aa2f1fa5..0c8f59959 100644
--- a/src/use_pokeblock.c
+++ b/src/use_pokeblock.c
@@ -1,5 +1,6 @@
//
// Created by Scott Norton on 5/31/17.
+// Modified by Dizzy Egg on 8/15/17.
//
#include "global.h"
@@ -16,8 +17,6 @@
#include "sound.h"
#include "songs.h"
#include "pokeblock.h"
-#include "pokeblock_feed.h"
-#include "use_pokeblock.h"
#define GFX_TAG_CONDITIONUPDOWN 0
@@ -29,7 +28,7 @@ const u16 ConditionUpDownPalette[] = INCBIN_U16("graphics/misc/condition_up_down
const u32 ConditionUpDownTiles[] = INCBIN_U32("graphics/misc/condition_up_down.4bpp");
#endif
-const u32 gUnknown_08406118[] = {
+static const u32 sContestStatsMonData[] = {
MON_DATA_COOL,
MON_DATA_TOUGH,
MON_DATA_SMART,
@@ -37,11 +36,11 @@ const u32 gUnknown_08406118[] = {
MON_DATA_BEAUTY
};
-const u8 gUnknown_0840612C[] = {
+static const u8 gUnknown_0840612C[] = {
0, 4, 3, 2, 1
};
-const u8 *const gUnknown_08406134[] = {
+static const u8 *const sContextStatNames[] = {
OtherText_Coolness,
OtherText_Toughness,
OtherText_Smartness,
@@ -49,18 +48,18 @@ const u8 *const gUnknown_08406134[] = {
OtherText_Beauty
};
-const struct SpriteSheet gSpriteSheet_ConditionUpDown = {
+static const struct SpriteSheet gSpriteSheet_ConditionUpDown = {
(u8 *)ConditionUpDownTiles,
sizeof ConditionUpDownTiles,
GFX_TAG_CONDITIONUPDOWN
};
-const struct SpritePalette gSpritePalette_ConditionUpDown = {
+static const struct SpritePalette gSpritePalette_ConditionUpDown = {
ConditionUpDownPalette,
GFX_TAG_CONDITIONUPDOWN
};
-const s16 gUnknown_08406158[][2] = {
+static const s16 gUnknown_08406158[][2] = {
{0x9c, 0x1e},
{0x75, 0x35},
{0x75, 0x70},
@@ -68,28 +67,28 @@ const s16 gUnknown_08406158[][2] = {
{0xc5, 0x35}
};
-const struct OamData gOamData_840616C = {
+static const struct OamData gOamData_840616C = {
.shape = 1,
.size = 2,
.priority = 1
};
-const union AnimCmd gSpriteAnim_8406174[] = {
+static const union AnimCmd gSpriteAnim_8406174[] = {
ANIMCMD_FRAME(0, 5),
ANIMCMD_END
};
-const union AnimCmd gSpriteAnim_840617C[] = {
+static const union AnimCmd gSpriteAnim_840617C[] = {
ANIMCMD_FRAME(8, 5),
ANIMCMD_END
};
-const union AnimCmd *const gSpriteAnimTable_8406184[] = {
+static const union AnimCmd *const gSpriteAnimTable_8406184[] = {
gSpriteAnim_8406174,
gSpriteAnim_840617C
};
-const struct SpriteTemplate gSpriteTemplate_840618C = {
+static const struct SpriteTemplate gSpriteTemplate_840618C = {
GFX_TAG_CONDITIONUPDOWN,
GFX_TAG_CONDITIONUPDOWN,
&gOamData_840616C,
@@ -99,47 +98,44 @@ const struct SpriteTemplate gSpriteTemplate_840618C = {
SpriteCallbackDummy
};
-asm(".text\n"
- ".include \"constants/gba_constants.inc\"");
-
static EWRAM_DATA struct UnkPokenavStruct_Sub1 *gUnknown_02039304 = NULL;
static EWRAM_DATA MainCallback gUnknown_02039308 = NULL;
static EWRAM_DATA struct Pokeblock *gUnknown_0203930C = NULL;
-EWRAM_DATA u8 gUnknown_02039310 = 0;
-EWRAM_DATA s16 gUnknown_02039312 = 0;
+EWRAM_DATA u8 gPokeblockMonID = 0;
+EWRAM_DATA s16 gPokeblockGain = 0;
extern u16 gKeyRepeatStartDelay;
extern u16 gScriptItemId; // FIXME: remove after merge of #349 Pokeblock
-void launch_c3_walk_stairs_and_run_once(void (*const)(void));
-void sub_81361E4(void);
-void sub_813622C(void);
-void sub_8136244(void);
-void sub_8136264(void);
-void sub_8136294(void);
-void sub_81365A0(void);
-void sub_81365C8(void);
-void sub_8136638(void);
-void sub_81368A4(void);
+static void launch_c3_walk_stairs_and_run_once(void (*const)(void));
+static void sub_81361E4(void);
+static void sub_813622C(void);
+static void sub_8136244(void);
+static void sub_8136264(void);
+static void sub_8136294(void);
+static void sub_81365A0(void);
+static void sub_81365C8(void);
+static void sub_8136638(void);
+static void sub_81368A4(void);
void sub_8089668(void);
-void sub_8136B44(void);
-u8 sub_81370E4(u8);
-void sub_8136BB8(void);
-s8 sub_8136C40(void);
-bool8 sub_8137058(void);
-void sub_8136D60(void);
-void sub_8136808(void);
-void sub_8136D8C(void);
-u8 sub_81370A4(u8);
-void sub_81369CC(void);
-void sub_8136EF0(void);
-void sub_8137138(void);
-void sub_8136C6C(void);
-bool8 sub_8136D00(void);
-void sub_8136DC0(u8 *, u8, s16);
-void sub_8136DA0(const u8 *);
-void sub_8136F74(struct Pokeblock *, struct Pokemon *);
-void sub_81371DC(struct Sprite *);
+static void sub_8136B44(void);
+static u8 sub_81370E4(u8);
+static void sub_8136BB8(void);
+static s8 sub_8136C40(void);
+static bool8 sub_8137058(void);
+static void sub_8136D60(void);
+static void sub_8136808(void);
+static void sub_8136D8C(void);
+static u8 sub_81370A4(u8);
+static void sub_81369CC(void);
+static void sub_8136EF0(void);
+static void sub_8137138(void);
+static void sub_8136C6C(void);
+static bool8 sub_8136D00(void);
+static void Pokeblock_BufferEnhancedStatText(u8 *, u8, s16);
+static void Pokeblock_MenuWindowTextPrint(const u8 *);
+static void sub_8136F74(struct Pokeblock *, struct Pokemon *);
+static void sub_81371DC(struct Sprite *);
void sub_8136130(struct Pokeblock *pokeblock, MainCallback callback)
{
@@ -151,18 +147,18 @@ void sub_8136130(struct Pokeblock *pokeblock, MainCallback callback)
SetMainCallback2(sub_8136244);
}
-void sub_8136174(void)
+static void sub_8136174(void)
{
gUnknown_02039304->pokeblock = gUnknown_0203930C;
gUnknown_02039304->callback = gUnknown_02039308;
- gUnknown_02039310 = sub_81370E4(gUnknown_02039310);
- gUnknown_02039304->unk56 = gUnknown_02039310 < 4 ? 0 : 1;
+ gPokeblockMonID = sub_81370E4(gPokeblockMonID);
+ gUnknown_02039304->unk56 = gPokeblockMonID < 4 ? 0 : 1;
gUnknown_083DFEC4->unkD162[0] = 2;
launch_c3_walk_stairs_and_run_once(sub_8136294);
SetMainCallback2(sub_81361E4);
}
-void sub_81361E4(void)
+static void sub_81361E4(void)
{
gUnknown_02039304->unk0();
AnimateSprites();
@@ -176,7 +172,7 @@ void sub_81361E4(void)
}
}
-void sub_813622C(void)
+static void sub_813622C(void)
{
sub_81368A4();
AnimateSprites();
@@ -184,7 +180,7 @@ void sub_813622C(void)
UpdatePaletteFade();
}
-void sub_8136244(void)
+static void sub_8136244(void)
{
gUnknown_02039304->unk0();
AnimateSprites();
@@ -192,7 +188,7 @@ void sub_8136244(void)
UpdatePaletteFade();
}
-void sub_8136264(void)
+static void sub_8136264(void)
{
LoadOam();
ProcessSpriteCopyRequests();
@@ -201,13 +197,13 @@ void sub_8136264(void)
sub_8089668();
}
-void launch_c3_walk_stairs_and_run_once(void (*const func)(void))
+static void launch_c3_walk_stairs_and_run_once(void (*const func)(void))
{
gUnknown_02039304->unk0 = func;
gUnknown_02039304->unk50 = 0;
}
-void sub_8136294(void)
+static void sub_8136294(void)
{
bool32 c1LinkRelatedActive;
switch (gUnknown_02039304->unk50)
@@ -346,7 +342,7 @@ void sub_8136294(void)
}
}
-void sub_81365A0(void)
+static void sub_81365A0(void)
{
while (!gUnknown_02039304->unk55)
{
@@ -354,7 +350,7 @@ void sub_81365A0(void)
}
}
-void sub_81365C8(void)
+static void sub_81365C8(void)
{
switch (gUnknown_02039304->unk50)
{
@@ -374,7 +370,7 @@ void sub_81365C8(void)
}
}
-void sub_8136638(void)
+static void sub_8136638(void)
{
switch (gUnknown_02039304->unk50)
{
@@ -464,12 +460,12 @@ void sub_8136638(void)
}
}
-void sub_8136808(void)
+static void sub_8136808(void)
{
switch (gUnknown_02039304->unk50)
{
case 0:
- gUnknown_02039310 = sub_81370A4(gUnknown_083DFEC4->unk87DC);
+ gPokeblockMonID = sub_81370A4(gUnknown_083DFEC4->unk87DC);
gUnknown_02039308 = gUnknown_02039304->callback;
gUnknown_0203930C = gUnknown_02039304->pokeblock;
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
@@ -479,18 +475,18 @@ void sub_8136808(void)
if (!gPaletteFade.active)
{
gMain.savedCallback = sub_8136174;
- SetMainCallback2(sub_8147ADC);
+ SetMainCallback2(CB2_PreparePokeblockFeedScene);
}
break;
}
}
-void sub_81368A4(void)
+static void sub_81368A4(void)
{
switch (gUnknown_02039304->unk50)
{
case 0:
- if (gUnknown_083DFEC4->unk87DC != gUnknown_02039310)
+ if (gUnknown_083DFEC4->unk87DC != gPokeblockMonID)
{
sub_80F5060(gUnknown_02039304->unk56);
gUnknown_02039304->unk50++;
@@ -538,7 +534,7 @@ void sub_81368A4(void)
}
}
-void sub_81369CC(void)
+static void sub_81369CC(void)
{
switch (gUnknown_02039304->unk50)
{
@@ -578,14 +574,14 @@ void sub_81369CC(void)
case 5:
if (gMain.newKeys & (A_BUTTON | B_BUTTON) && !sub_8136D00())
{
- sub_810CA6C((u8)gScriptItemId);
+ PokeblockClearIfExists((u8)gScriptItemId);
launch_c3_walk_stairs_and_run_once(sub_8136B44);
}
break;
}
}
-void sub_8136B44(void)
+static void sub_8136B44(void)
{
switch (gUnknown_02039304->unk50)
{
@@ -609,7 +605,7 @@ void sub_8136B44(void)
}
}
-void sub_8136BB8(void)
+static void sub_8136BB8(void)
{
GetMonData(&gPlayerParty[sub_81370A4(gUnknown_083DFEC4->unk87DC)], MON_DATA_NICKNAME, gUnknown_02039304->stringBuffer);
StringGetEnd10(gUnknown_02039304->stringBuffer);
@@ -621,7 +617,7 @@ void sub_8136BB8(void)
MoveMenuCursor(0);
}
-s8 sub_8136C40(void)
+static s8 sub_8136C40(void)
{
s8 retval = ProcessMenuInputNoWrap();
if ((u8)(retval + 1) < 3)
@@ -632,124 +628,68 @@ s8 sub_8136C40(void)
return retval;
}
-void sub_8136C6C(void)
+static void sub_8136C6C(void)
{
BasicInitMenuWindow(&gWindowConfig_81E709C);
MenuDrawTextWindow(0, 16, 29, 19);
for (gUnknown_02039304->unk53 = 0; gUnknown_02039304->unk53 < 5 && gUnknown_02039304->unk61[gUnknown_02039304->unk53] == 0; gUnknown_02039304->unk53++);
if (gUnknown_02039304->unk53 < 5)
{
- sub_8136DC0(gUnknown_02039304->stringBuffer, gUnknown_02039304->unk53, gUnknown_02039304->unk61[gUnknown_02039304->unk53]);
+ Pokeblock_BufferEnhancedStatText(gUnknown_02039304->stringBuffer, gUnknown_02039304->unk53, gUnknown_02039304->unk61[gUnknown_02039304->unk53]);
}
else
{
- sub_8136DC0(gUnknown_02039304->stringBuffer, gUnknown_02039304->unk53, 0);
+ Pokeblock_BufferEnhancedStatText(gUnknown_02039304->stringBuffer, gUnknown_02039304->unk53, 0);
}
- sub_8136DA0(gUnknown_02039304->stringBuffer);
+ Pokeblock_MenuWindowTextPrint(gUnknown_02039304->stringBuffer);
}
-#ifdef NONMATCHING
-bool8 sub_8136D00(void)
+static bool8 sub_8136D00(void)
{
while (1)
{
- if (++gUnknown_02039304->unk53 >= 5)
+ gUnknown_02039304->unk53++;
+ if (gUnknown_02039304->unk53 < 5)
{
- break;
+ if (gUnknown_02039304->unk61[gUnknown_02039304->unk53] != 0)
+ break;
}
- if (gUnknown_02039304->unk61[gUnknown_02039304->unk53] != 0)
+ else
{
- sub_8136DC0(gUnknown_02039304->stringBuffer, gUnknown_02039304->unk53, gUnknown_02039304->unk61[gUnknown_02039304->unk53]);
- sub_8136DA0(gUnknown_02039304->stringBuffer);
- return TRUE;
+ gUnknown_02039304->unk53 = 5;
+ return FALSE;
}
}
- gUnknown_02039304->unk53 = 5;
- return FALSE;
+ Pokeblock_BufferEnhancedStatText(gUnknown_02039304->stringBuffer, gUnknown_02039304->unk53, gUnknown_02039304->unk61[gUnknown_02039304->unk53]);
+ Pokeblock_MenuWindowTextPrint(gUnknown_02039304->stringBuffer);
+ return TRUE;
}
-#else
-__attribute__((naked))
-bool8 sub_8136D00(void)
-{
- asm_unified("\tpush {r4,r5,lr}\n"
- "\tldr r4, _08136D30 @ =gUnknown_02039304\n"
- "\tadds r3, r4, 0\n"
- "\tmovs r5, 0x5\n"
- "_08136D08:\n"
- "\tldr r0, [r3]\n"
- "\tadds r0, 0x53\n"
- "\tldrb r1, [r0]\n"
- "\tadds r1, 0x1\n"
- "\tstrb r1, [r0]\n"
- "\tldr r2, [r3]\n"
- "\tadds r1, r2, 0\n"
- "\tadds r1, 0x53\n"
- "\tldrb r0, [r1]\n"
- "\tcmp r0, 0x4\n"
- "\tbhi _08136D34\n"
- "\tadds r0, r2, 0\n"
- "\tadds r0, 0x61\n"
- "\tldrb r1, [r1]\n"
- "\tadds r0, r1\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r0, 0\n"
- "\tbne _08136D3A\n"
- "\tb _08136D08\n"
- "\t.align 2, 0\n"
- "_08136D30: .4byte gUnknown_02039304\n"
- "_08136D34:\n"
- "\tstrb r5, [r1]\n"
- "\tmovs r0, 0\n"
- "\tb _08136D5A\n"
- "_08136D3A:\n"
- "\tldr r2, [r4]\n"
- "\tadds r0, r2, 0\n"
- "\tadds r0, 0x10\n"
- "\tadds r1, r2, 0\n"
- "\tadds r1, 0x53\n"
- "\tldrb r1, [r1]\n"
- "\tadds r2, 0x61\n"
- "\tadds r2, r1\n"
- "\tldrb r2, [r2]\n"
- "\tbl sub_8136DC0\n"
- "\tldr r0, [r4]\n"
- "\tadds r0, 0x10\n"
- "\tbl sub_8136DA0\n"
- "\tmovs r0, 0x1\n"
- "_08136D5A:\n"
- "\tpop {r4,r5}\n"
- "\tpop {r1}\n"
- "\tbx r1");
-}
-#endif
-void sub_8136D60(void)
+static void sub_8136D60(void)
{
BasicInitMenuWindow(&gWindowConfig_81E709C);
MenuDrawTextWindow(0, 16, 29, 19);
MenuPrint(gOtherText_WontEat, 1, 17);
}
-void sub_8136D8C(void)
+static void sub_8136D8C(void)
{
MenuZeroFillScreen();
BasicInitMenuWindow(&gWindowConfig_81E7080);
}
-void sub_8136DA0(const u8 *message)
+static void Pokeblock_MenuWindowTextPrint(const u8 *message)
{
MenuDrawTextWindow(0, 16, 29, 19);
MenuPrint(message, 1, 17);
}
#ifdef NONMATCHING
-void sub_8136DC0(u8 *dest, u8 a1, s16 a2)
+static void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statID, s16 a2)
{
- u16 v0 = a2;
if (a2 != 0)
{
- if ((v0 = max(a2, 0)) == 0);
- StringCopy(dest, gUnknown_08406134[a1]);
+ StringCopy(dest, sContextStatNames[statID]);
StringAppend(dest, gOtherText_WasEnhanced);
}
else
@@ -759,7 +699,7 @@ void sub_8136DC0(u8 *dest, u8 a1, s16 a2)
}
#else
__attribute__((naked))
-void sub_8136DC0(u8 *dest, u8 a1, s16 a2)
+static void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 a1, s16 a2)
{
asm_unified("\tpush {r4,lr}\n"
"\tadds r4, r0, 0\n"
@@ -775,7 +715,7 @@ void sub_8136DC0(u8 *dest, u8 a1, s16 a2)
"\tmovs r0, 0\n"
"_08136DD8:\n"
"\tlsls r0, 16\n"
- "\tldr r1, _08136DF4 @ =gUnknown_08406134\n"
+ "\tldr r1, _08136DF4 @ =sContextStatNames\n"
"\tlsls r0, r3, 2\n"
"\tadds r0, r1\n"
"\tldr r1, [r0]\n"
@@ -786,7 +726,7 @@ void sub_8136DC0(u8 *dest, u8 a1, s16 a2)
"\tbl StringAppend\n"
"\tb _08136E04\n"
"\t.align 2, 0\n"
- "_08136DF4: .4byte gUnknown_08406134\n"
+ "_08136DF4: .4byte sContextStatNames\n"
"_08136DF8: .4byte gOtherText_WasEnhanced\n"
"_08136DFC:\n"
"\tldr r1, _08136E0C @ =gOtherText_NothingChanged\n"
@@ -801,16 +741,16 @@ void sub_8136DC0(u8 *dest, u8 a1, s16 a2)
}
#endif
-void sub_8136E10(struct Pokemon *pokemon, u8 *data)
+static void Pokeblock_GetMonContestStats(struct Pokemon *pokemon, u8 *data)
{
u16 i;
for (i=0; i<5; i++)
{
- data[i] = GetMonData(pokemon, gUnknown_08406118[i]);
+ data[i] = GetMonData(pokemon, sContestStatsMonData[i]);
}
}
-void sub_8136E40(struct Pokeblock *pokeblock, struct Pokemon *pokemon)
+static void sub_8136E40(struct Pokeblock *pokeblock, struct Pokemon *pokemon)
{
u16 i;
s16 cstat;
@@ -820,14 +760,14 @@ void sub_8136E40(struct Pokeblock *pokeblock, struct Pokemon *pokemon)
sub_8136F74(pokeblock, pokemon);
for (i=0; i<5; i++)
{
- data = GetMonData(pokemon, gUnknown_08406118[i]);
+ data = GetMonData(pokemon, sContestStatsMonData[i]);
cstat = data + gUnknown_02039304->unk66[i];
if (cstat < 0)
cstat = 0;
if (cstat > 255)
cstat = 255;
data = cstat;
- SetMonData(pokemon, gUnknown_08406118[i], &data);
+ SetMonData(pokemon, sContestStatsMonData[i], &data);
}
cstat = (u8)GetMonData(pokemon, MON_DATA_SHEEN);
cstat = cstat + pokeblock->feel;
@@ -838,21 +778,21 @@ void sub_8136E40(struct Pokeblock *pokeblock, struct Pokemon *pokemon)
}
}
-void sub_8136EF0(void)
+static void sub_8136EF0(void)
{
u16 i;
struct Pokemon *pokemon = gPlayerParty;
pokemon += gUnknown_083DFEC4->unk893c[gUnknown_083DFEC4->unk87DC].partyIdx;
- sub_8136E10(pokemon, gUnknown_02039304->unk57);
+ Pokeblock_GetMonContestStats(pokemon, gUnknown_02039304->unk57);
sub_8136E40(gUnknown_02039304->pokeblock, pokemon);
- sub_8136E10(pokemon, gUnknown_02039304->unk5c);
+ Pokeblock_GetMonContestStats(pokemon, gUnknown_02039304->unk5c);
for (i=0; i<5; i++)
{
gUnknown_02039304->unk61[i] = gUnknown_02039304->unk5c[i] - gUnknown_02039304->unk57[i];
}
}
-void sub_8136F74(struct Pokeblock *pokeblock, struct Pokemon *pokemon)
+static void sub_8136F74(struct Pokeblock *pokeblock, struct Pokemon *pokemon)
{
s8 direction;
s8 i;
@@ -864,9 +804,9 @@ void sub_8136F74(struct Pokeblock *pokeblock, struct Pokemon *pokemon)
gUnknown_02039304->unk66[2] = pokeblock->bitter;
gUnknown_02039304->unk66[3] = pokeblock->sweet;
gUnknown_02039304->unk66[4] = pokeblock->dry;
- if (gUnknown_02039312 > 0)
+ if (gPokeblockGain > 0)
direction = 1;
- else if (gUnknown_02039312 < 0)
+ else if (gPokeblockGain < 0)
direction = -1;
else
return;
@@ -884,7 +824,7 @@ void sub_8136F74(struct Pokeblock *pokeblock, struct Pokemon *pokemon)
}
}
-bool8 sub_8137058(void)
+static bool8 sub_8137058(void)
{
struct Pokemon *pokemon = gPlayerParty;
pokemon += gUnknown_083DFEC4->unk893c[gUnknown_083DFEC4->unk87DC].partyIdx;
@@ -893,7 +833,7 @@ bool8 sub_8137058(void)
return FALSE;
}
-u8 sub_81370A4(u8 a0)
+static u8 sub_81370A4(u8 a0)
{
u8 i;
for (i=0; i<PARTY_SIZE; i++)
@@ -908,7 +848,7 @@ u8 sub_81370A4(u8 a0)
return 0;
}
-u8 sub_81370E4(u8 a0)
+static u8 sub_81370E4(u8 a0)
{
u8 ct;
u8 i;
@@ -927,7 +867,7 @@ u8 sub_8137124(u8 a0)
return sub_81370A4(a0);
}
-void sub_8137138(void)
+static void sub_8137138(void)
{
u16 flavor;
u8 spriteidx;
@@ -951,7 +891,7 @@ void sub_8137138(void)
}
}
-void sub_81371DC(struct Sprite *sprite)
+static void sub_81371DC(struct Sprite *sprite)
{
if (sprite->data0 <= 5)
sprite->pos2.y -= 2;