@@ -9,44 +9,44 @@ dnd::Creature parse_creature(const json& j) {
99 creature.set_meta (j.value (" meta" , " " ));
1010
1111 // Stats
12- creature.set_armor_class (j.value (" armor_class " , " " ));
13- creature.set_hit_points (j.value (" hit_points " , " " ));
14- creature.set_speed (j.value (" speed " , " " ));
15- creature.set_str (j.value (" str " , " " ));
16- creature.set_str_mod (j.value (" str_mod " , " " ));
17- creature.set_dex (j.value (" dex " , " " ));
18- creature.set_dex_mod (j.value (" dex_mod " , " " ));
19- creature.set_con (j.value (" con " , " " ));
20- creature.set_con_mod (j.value (" con_mod " , " " ));
21- creature.set_creature_int (j.value (" int " , " " ));
22- creature.set_int_mod (j.value (" int_mod " , " " ));
23- creature.set_wis (j.value (" wis " , " " ));
24- creature.set_wis_mod (j.value (" wis_mod " , " " ));
25- creature.set_cha (j.value (" cha " , " " ));
26- creature.set_cha_mod (j.value (" cha_mod " , " " ));
12+ creature.set_armor_class (j.value (" Armor Class " , " " ));
13+ creature.set_hit_points (j.value (" Hit Points " , " " ));
14+ creature.set_speed (j.value (" Speed " , " " ));
15+ creature.set_str (j.value (" STR " , " " ));
16+ creature.set_str_mod (j.value (" STR_mod " , " " ));
17+ creature.set_dex (j.value (" DEX " , " " ));
18+ creature.set_dex_mod (j.value (" DEX_mod " , " " ));
19+ creature.set_con (j.value (" CON " , " " ));
20+ creature.set_con_mod (j.value (" CON_mod " , " " ));
21+ creature.set_creature_int (j.value (" INT " , " " ));
22+ creature.set_int_mod (j.value (" INT_mod " , " " ));
23+ creature.set_wis (j.value (" WIS " , " " ));
24+ creature.set_wis_mod (j.value (" WIS_mod " , " " ));
25+ creature.set_cha (j.value (" CHA " , " " ));
26+ creature.set_cha_mod (j.value (" CHA_mod " , " " ));
2727
2828 // Other fields
29- creature.set_saving_throws (j.value (" saving_throws " , " " ));
29+ creature.set_saving_throws (j.value (" Saving Throws " , " " ));
3030
31- creature.set_skills (j.value (" skills " , " " ));
32- creature.set_senses (j.value (" senses " , " " ));
33- creature.set_languages (j.value (" languages " , " " ));
34- creature.set_challenge (j.value (" challenge " , " " ));
31+ creature.set_skills (j.value (" Skills " , " " ));
32+ creature.set_senses (j.value (" Senses " , " " ));
33+ creature.set_languages (j.value (" Languages " , " " ));
34+ creature.set_challenge (j.value (" Challenge " , " " ));
3535
3636 // Actions and traits
37- creature.set_traits (j.value (" traits " , " " ));
38- creature.set_actions (j.value (" actions " , " " ));
39- creature.set_legendary_actions (j.value (" legendary_actions " , " " ));
37+ creature.set_traits (j.value (" Traits " , " " ));
38+ creature.set_actions (j.value (" Actions " , " " ));
39+ creature.set_legendary_actions (j.value (" Legendary Actions " , " " ));
4040
4141 // Image URL
4242 creature.set_img_url (j.value (" img_url" , " " ));
4343
4444 // Combat-related fields
45- creature.set_damage_immunities (j.value (" damage_immunities " , " " ));
46- creature.set_condition_immunities (j.value (" condition_immunities " , " " ));
47- creature.set_damage_resistances (j.value (" damage_resistances " , " " ));
48- creature.set_damage_vulnerabilities (j.value (" damage_vulnerabilities " , " " ));
49- creature.set_reactions (j.value (" reactions " , " " ));
45+ creature.set_damage_immunities (j.value (" Damage Immunities " , " " ));
46+ creature.set_condition_immunities (j.value (" Condition Immunities " , " " ));
47+ creature.set_damage_resistances (j.value (" Damage Resistances " , " " ));
48+ creature.set_damage_vulnerabilities (j.value (" Damage Vulnerabilities " , " " ));
49+ creature.set_reactions (j.value (" Reactions " , " " ));
5050
5151 return creature;
5252}
@@ -81,6 +81,7 @@ std::vector<dnd::Creature> parse_creatures_from_file(
8181
8282std::vector<dnd::Creature> parse_creatures_from_directory (
8383 const std::string& directory) {
84+ SDL_Log (" Loading creatures..." );
8485 std::vector<dnd::Creature> all_creatures;
8586 for (const auto & entry : std::filesystem::directory_iterator (directory)) {
8687 if (entry.path ().extension () == " .json" ) {
@@ -90,5 +91,18 @@ std::vector<dnd::Creature> parse_creatures_from_directory(
9091 }
9192 }
9293
94+ save_creatures_to_file (all_creatures, " all_creatures.json" );
95+
9396 return all_creatures;
9497}
98+
99+ void save_creatures_to_file (const std::vector<dnd::Creature>& creatures,
100+ const std::string& filename) {
101+ json j = json::array ();
102+ for (dnd::Creature creature : creatures) {
103+ j.push_back (creature.to_json ());
104+ }
105+
106+ std::ofstream file (filename);
107+ file << j;
108+ }
0 commit comments