summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/data/wild_encounters.json.txt4
-rw-r--r--src/wild_encounter.c8
-rwxr-xr-xtools/jsonproc/jsonproc.cpp9
3 files changed, 14 insertions, 7 deletions
diff --git a/src/data/wild_encounters.json.txt b/src/data/wild_encounters.json.txt
index 3fb42c404..30b05360c 100755
--- a/src/data/wild_encounters.json.txt
+++ b/src/data/wild_encounters.json.txt
@@ -5,9 +5,9 @@
## for wild_encounter_field in wild_encounter_group.fields
## for encounter_rate in wild_encounter_field.encounter_rates
{% if trackVar(encounter_rate, 100) %}
-#define ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_INDEX_{{ loop.index }} {{ encounter_rate }} {% else %}#define ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_INDEX_{{ loop.index }} ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_INDEX_{{ subtract(loop.index, 1) }} + {{ encounter_rate }}{% endif %}
+#define ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_INDEX_{{ loop.index }} {{ encounter_rate }} {% else %}#define ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_INDEX_{{ loop.index }} ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_INDEX_{{ subtract(loop.index, 1) }} + {{ encounter_rate }}{% endif %} {{ setVarInt(wild_encounter_field.type, loop.index) }}
## endfor
-
+#define ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_TOTAL (ENCOUNTER_CHANCE_{{ upper(wild_encounter_field.type) }}_INDEX_{{ getVar(wild_encounter_field.type) }})
## endfor
{% endif %}
diff --git a/src/wild_encounter.c b/src/wild_encounter.c
index f8031c451..5a11396d9 100644
--- a/src/wild_encounter.c
+++ b/src/wild_encounter.c
@@ -105,7 +105,7 @@ static bool8 CheckFeebas(void)
if (y >= gRoute119WaterTileData[3 * 2 + 0] && y <= gRoute119WaterTileData[3 * 2 + 1])
route119Section = 2;
- if (Random() % 100 > 49)
+ if (Random() % 100 > 49) // 50% chance of encountering Feebas
return FALSE;
FeebasSeedRng(gSaveBlock1Ptr->easyChatPairs[0].unk2);
@@ -143,7 +143,7 @@ static void FeebasSeedRng(u16 seed)
static u8 ChooseWildMonIndex_Land(void)
{
- u8 rand = Random() % 100;
+ u8 rand = Random() % ENCOUNTER_CHANCE_LAND_MONS_TOTAL;
if (rand < ENCOUNTER_CHANCE_LAND_MONS_INDEX_0)
return 0;
@@ -173,7 +173,7 @@ static u8 ChooseWildMonIndex_Land(void)
static u8 ChooseWildMonIndex_WaterRock(void)
{
- u8 rand = Random() % 100;
+ u8 rand = Random() % ENCOUNTER_CHANCE_WATER_MONS_TOTAL;
if (rand < ENCOUNTER_CHANCE_WATER_MONS_INDEX_0)
return 0;
@@ -197,7 +197,7 @@ enum
static u8 ChooseWildMonIndex_Fishing(u8 rod)
{
u8 wildMonIndex = 0;
- u8 rand = Random() % 100;
+ u8 rand = Random() % ENCOUNTER_CHANCE_FISHING_MONS_TOTAL;
switch (rod)
{
diff --git a/tools/jsonproc/jsonproc.cpp b/tools/jsonproc/jsonproc.cpp
index c0d6e9434..15eae9dcb 100755
--- a/tools/jsonproc/jsonproc.cpp
+++ b/tools/jsonproc/jsonproc.cpp
@@ -5,7 +5,7 @@
#include <map>
#include <string>
-using std::string;
+using std::string; using std::to_string;
#include <inja.hpp>
using namespace inja;
@@ -53,6 +53,13 @@ int main(int argc, char *argv[])
return "";
});
+ env.add_callback("setVarInt", 2, [=](Arguments& args) {
+ string key = args.at(0)->get<string>();
+ string value = to_string(args.at(1)->get<int>());
+ set_custom_var(key, value);
+ return "";
+ });
+
env.add_callback("getVar", 1, [=](Arguments& args) {
string key = args.at(0)->get<string>();
return get_custom_var(key);