summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/new_game.c3
-rw-r--r--src/renewable_hidden_items.c148
2 files changed, 76 insertions, 75 deletions
diff --git a/src/new_game.c b/src/new_game.c
index efeea13cc..bede6ce94 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -25,6 +25,7 @@
#include "easy_chat.h"
#include "union_room_chat.h"
#include "mevent.h"
+#include "renewable_hidden_items.h"
#include "trainer_tower.h"
#include "script.h"
#include "berry_powder.h"
@@ -145,7 +146,7 @@ void NewGameInitData(void)
copy_strings_to_sav1();
ResetMiniGamesResults();
sub_8143D24();
- sub_815D838();
+ SetAllRenewableItemFlags();
WarpToPlayersRoom();
ScriptContext2_RunNewScript(EventScript_ResetAllMapFlags);
StringCopy(gSaveBlock1Ptr->rivalName, rivalName);
diff --git a/src/renewable_hidden_items.c b/src/renewable_hidden_items.c
index 8164471c8..741b92b40 100644
--- a/src/renewable_hidden_items.c
+++ b/src/renewable_hidden_items.c
@@ -4,23 +4,23 @@
#include "constants/maps.h"
#include "constants/flags.h"
-struct UnkStruct_8479D34
+struct RenewableHiddenItemData
{
s8 mapGroup;
s8 mapNum;
u8 filler[2];
- u8 flags1[8];
- u8 flags2[8];
- u8 flags3[8];
+ u8 rare[8]; // 10%
+ u8 uncommon[8]; // 30%
+ u8 common[8]; // 60%
};
-void sub_815D96C(void);
+static void SampleRenewableItemFlags(void);
-const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
+static const struct RenewableHiddenItemData sRenewableHiddenItems[] = {
{
.mapGroup = MAP_GROUP(ROUTE20),
.mapNum = MAP_NUM(ROUTE20),
- .flags1 = {
+ .rare = {
0xFF,
0xFF,
0xFF,
@@ -30,7 +30,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags2 = {
+ .uncommon = {
HIDDEN_ITEM_ROUTE20_STARDUST,
0xFF,
0xFF,
@@ -40,7 +40,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags3 = {
+ .common = {
0xFF,
0xFF,
0xFF,
@@ -54,7 +54,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
{
.mapGroup = MAP_GROUP(ROUTE21_NORTH),
.mapNum = MAP_NUM(ROUTE21_NORTH),
- .flags1 = {
+ .rare = {
0xFF,
0xFF,
0xFF,
@@ -64,7 +64,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags2 = {
+ .uncommon = {
HIDDEN_ITEM_ROUTE21_NORTH_PEARL,
0xFF,
0xFF,
@@ -74,7 +74,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags3 = {
+ .common = {
0xFF,
0xFF,
0xFF,
@@ -88,7 +88,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
{
.mapGroup = MAP_GROUP(UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL),
.mapNum = MAP_NUM(UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL),
- .flags1 = {
+ .rare = {
HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER,
0xFF,
0xFF,
@@ -98,7 +98,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags2 = {
+ .uncommon = {
HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION,
HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE,
HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL,
@@ -108,7 +108,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags3 = {
+ .common = {
0xFF,
0xFF,
0xFF,
@@ -122,7 +122,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
{
.mapGroup = MAP_GROUP(UNDERGROUND_PATH_EAST_WEST_TUNNEL),
.mapNum = MAP_NUM(UNDERGROUND_PATH_EAST_WEST_TUNNEL),
- .flags1 = {
+ .rare = {
HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER,
0xFF,
0xFF,
@@ -132,7 +132,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags2 = {
+ .uncommon = {
HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION,
HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE,
HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL,
@@ -142,7 +142,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags3 = {
+ .common = {
0xFF,
0xFF,
0xFF,
@@ -156,7 +156,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
{
.mapGroup = MAP_GROUP(SEVEN_ISLAND_TANOBY_RUINS),
.mapNum = MAP_NUM(SEVEN_ISLAND_TANOBY_RUINS),
- .flags1 = {
+ .rare = {
HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4,
HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE,
HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2,
@@ -166,7 +166,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags2 = {
+ .uncommon = {
0xFF,
0xFF,
0xFF,
@@ -176,7 +176,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags3 = {
+ .common = {
0xFF,
0xFF,
0xFF,
@@ -190,7 +190,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
{
.mapGroup = MAP_GROUP(MT_MOON_B1F),
.mapNum = MAP_NUM(MT_MOON_B1F),
- .flags1 = {
+ .rare = {
HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM,
HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2,
HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3,
@@ -200,7 +200,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags2 = {
+ .uncommon = {
HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM,
HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2,
HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3,
@@ -210,7 +210,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags3 = {
+ .common = {
0xFF,
0xFF,
0xFF,
@@ -224,7 +224,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
{
.mapGroup = MAP_GROUP(THREE_ISLAND_BERRY_FOREST),
.mapNum = MAP_NUM(THREE_ISLAND_BERRY_FOREST),
- .flags1 = {
+ .rare = {
HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY,
HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY,
HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY,
@@ -234,7 +234,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY,
HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY
},
- .flags2 = {
+ .uncommon = {
HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY,
HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY,
HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY,
@@ -244,7 +244,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY,
0xFF
},
- .flags3 = {
+ .common = {
HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY,
HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY,
HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY,
@@ -258,7 +258,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
{
.mapGroup = MAP_GROUP(ONE_ISLAND_TREASURE_BEACH),
.mapNum = MAP_NUM(ONE_ISLAND_TREASURE_BEACH),
- .flags1 = {
+ .rare = {
HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL,
HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2,
HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE,
@@ -268,7 +268,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags2 = {
+ .uncommon = {
HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST,
HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2,
HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL,
@@ -278,7 +278,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags3 = {
+ .common = {
HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL,
HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2,
0xFF,
@@ -292,7 +292,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
{
.mapGroup = MAP_GROUP(THREE_ISLAND_BOND_BRIDGE),
.mapNum = MAP_NUM(THREE_ISLAND_BOND_BRIDGE),
- .flags1 = {
+ .rare = {
0xFF,
0xFF,
0xFF,
@@ -302,7 +302,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags2 = {
+ .uncommon = {
HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL,
HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST,
0xFF,
@@ -312,7 +312,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags3 = {
+ .common = {
0xFF,
0xFF,
0xFF,
@@ -326,7 +326,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
{
.mapGroup = MAP_GROUP(FOUR_ISLAND),
.mapNum = MAP_NUM(FOUR_ISLAND),
- .flags1 = {
+ .rare = {
0xFF,
0xFF,
0xFF,
@@ -336,7 +336,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags2 = {
+ .uncommon = {
HIDDEN_ITEM_FOUR_ISLAND_PEARL,
0xFF,
0xFF,
@@ -346,7 +346,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags3 = {
+ .common = {
HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL,
0xFF,
0xFF,
@@ -360,7 +360,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
{
.mapGroup = MAP_GROUP(FIVE_ISLAND_MEMORIAL_PILLAR),
.mapNum = MAP_NUM(FIVE_ISLAND_MEMORIAL_PILLAR),
- .flags1 = {
+ .rare = {
HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL,
0xFF,
0xFF,
@@ -370,7 +370,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags2 = {
+ .uncommon = {
0xFF,
0xFF,
0xFF,
@@ -380,7 +380,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags3 = {
+ .common = {
0xFF,
0xFF,
0xFF,
@@ -394,7 +394,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
{
.mapGroup = MAP_GROUP(FIVE_ISLAND_RESORT_GORGEOUS),
.mapNum = MAP_NUM(FIVE_ISLAND_RESORT_GORGEOUS),
- .flags1 = {
+ .rare = {
HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL,
HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE,
0xFF,
@@ -404,7 +404,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags2 = {
+ .uncommon = {
HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST,
HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2,
0xFF,
@@ -414,7 +414,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags3 = {
+ .common = {
0xFF,
0xFF,
0xFF,
@@ -428,7 +428,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
{
.mapGroup = MAP_GROUP(SIX_ISLAND_OUTCAST_ISLAND),
.mapNum = MAP_NUM(SIX_ISLAND_OUTCAST_ISLAND),
- .flags1 = {
+ .rare = {
HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE,
HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL,
0xFF,
@@ -438,7 +438,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags2 = {
+ .uncommon = {
0xFF,
0xFF,
0xFF,
@@ -448,7 +448,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags3 = {
+ .common = {
0xFF,
0xFF,
0xFF,
@@ -462,7 +462,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
{
.mapGroup = MAP_GROUP(SIX_ISLAND_GREEN_PATH),
.mapNum = MAP_NUM(SIX_ISLAND_GREEN_PATH),
- .flags1 = {
+ .rare = {
0xFF,
0xFF,
0xFF,
@@ -472,7 +472,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags2 = {
+ .uncommon = {
0xFF,
0xFF,
0xFF,
@@ -482,7 +482,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags3 = {
+ .common = {
HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL,
0xFF,
0xFF,
@@ -496,7 +496,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
{
.mapGroup = MAP_GROUP(SEVEN_ISLAND_TRAINER_TOWER),
.mapNum = MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER),
- .flags1 = {
+ .rare = {
HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL,
0xFF,
0xFF,
@@ -506,7 +506,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags2 = {
+ .uncommon = {
HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL,
0xFF,
0xFF,
@@ -516,7 +516,7 @@ const struct UnkStruct_8479D34 gUnknown_8479D34[] = {
0xFF,
0xFF
},
- .flags3 = {
+ .common = {
0xFF,
0xFF,
0xFF,
@@ -535,56 +535,56 @@ bool32 sub_815D834(void)
return FALSE;
}
-void sub_815D838(void)
+void SetAllRenewableItemFlags(void)
{
u8 i, j;
for (i = 0; i < 15; i++)
{
- const u8 * flags1 = gUnknown_8479D34[i].flags1;
- const u8 * flags2 = gUnknown_8479D34[i].flags2;
- const u8 * flags3 = gUnknown_8479D34[i].flags3;
+ const u8 * rare = sRenewableHiddenItems[i].rare;
+ const u8 * uncommon = sRenewableHiddenItems[i].uncommon;
+ const u8 * common = sRenewableHiddenItems[i].common;
for (j = 0; j < 8; j++)
{
- if (flags1[j] != 0xFF)
- FlagSet(FLAG_HIDDEN_ITEMS_START + flags1[j]);
- if (flags2[j] != 0xFF)
- FlagSet(FLAG_HIDDEN_ITEMS_START + flags2[j]);
- if (flags3[j] != 0xFF)
- FlagSet(FLAG_HIDDEN_ITEMS_START + flags3[j]);
+ if (rare[j] != 0xFF)
+ FlagSet(FLAG_HIDDEN_ITEMS_START + rare[j]);
+ if (uncommon[j] != 0xFF)
+ FlagSet(FLAG_HIDDEN_ITEMS_START + uncommon[j]);
+ if (common[j] != 0xFF)
+ FlagSet(FLAG_HIDDEN_ITEMS_START + common[j]);
}
}
}
-void sub_815D8C8(void)
+void IncrementRenewableHiddenItemStepCounter(void)
{
- u16 var = VarGet(VAR_0x4023);
+ u16 var = VarGet(VAR_RENEWABLE_ITEM_STEP_COUNTER);
if (var < 1500) {
- VarSet(VAR_0x4023, var + 1);
+ VarSet(VAR_RENEWABLE_ITEM_STEP_COUNTER, var + 1);
}
}
-void sub_815D8F8(void)
+void TryRegenerateRenewableHiddenItems(void)
{
u8 i;
u8 found_map = 0xFF;
for (i = 0; i < 15; i++)
{
- if (gUnknown_8479D34[i].mapGroup == gSaveBlock1Ptr->location.mapGroup && gUnknown_8479D34[i].mapNum == gSaveBlock1Ptr->location.mapNum)
+ if (sRenewableHiddenItems[i].mapGroup == gSaveBlock1Ptr->location.mapGroup && sRenewableHiddenItems[i].mapNum == gSaveBlock1Ptr->location.mapNum)
found_map = i;
}
if (found_map == 0xFF)
return;
- if (VarGet(VAR_0x4023) >= 1500)
+ if (VarGet(VAR_RENEWABLE_ITEM_STEP_COUNTER) >= 1500)
{
- VarSet(VAR_0x4023, 0);
- sub_815D838();
- sub_815D96C();
+ VarSet(VAR_RENEWABLE_ITEM_STEP_COUNTER, 0);
+ SetAllRenewableItemFlags();
+ SampleRenewableItemFlags();
}
}
-void sub_815D96C(void)
+static void SampleRenewableItemFlags(void)
{
u8 i, j;
const u8 * flags;
@@ -594,11 +594,11 @@ void sub_815D96C(void)
{
rval = Random() % 100;
if (rval >= 90)
- flags = gUnknown_8479D34[i].flags1;
+ flags = sRenewableHiddenItems[i].rare;
else if (rval >= 60)
- flags = gUnknown_8479D34[i].flags2;
+ flags = sRenewableHiddenItems[i].uncommon;
else
- flags = gUnknown_8479D34[i].flags3;
+ flags = sRenewableHiddenItems[i].common;
for (j = 0; j < 8; j++)
{
if (flags[j] != 0xFF)