[Repositories] Add more precise types to repository generator (#2391)

* Make utils/scripts/generators/repository-generator.pl aware of more
datatypes

This adds support for unsigned and more integer types. It also avoids
using parsing functions that require casting (still needed in some
cases)

Having the data types in the Repository structs better map to the types
in the database will allow us to avoid casting when we pull data out of
them. And as a benefit, assume something is wrong if we do :)

Hopefully clean up some warnings due to casting too.

Co-authored-by: Akkadius <akkadius1@gmail.com>
This commit is contained in:
Michael Cook (mackal)
2022-08-31 01:04:27 -04:00
committed by GitHub
parent fcf01f6d87
commit 6f7fa98996
183 changed files with 7849 additions and 7818 deletions
+326 -326
View File
@@ -20,7 +20,7 @@ class BaseZoneRepository {
public:
struct Zone {
std::string short_name;
int id;
int32_t id;
std::string file_name;
std::string long_name;
std::string map_file_name;
@@ -29,91 +29,91 @@ public:
float safe_z;
float safe_heading;
float graveyard_id;
int min_level;
int min_status;
int zoneidnumber;
int version;
int timezone;
int maxclients;
int ruleset;
uint8_t min_level;
uint8_t min_status;
int32_t zoneidnumber;
uint8_t version;
int32_t timezone;
int32_t maxclients;
uint32_t ruleset;
std::string note;
float underworld;
float minclip;
float maxclip;
float fog_minclip;
float fog_maxclip;
int fog_blue;
int fog_red;
int fog_green;
int sky;
int ztype;
uint8_t fog_blue;
uint8_t fog_red;
uint8_t fog_green;
uint8_t sky;
uint8_t ztype;
float zone_exp_multiplier;
float walkspeed;
int time_type;
int fog_red1;
int fog_green1;
int fog_blue1;
uint8_t time_type;
uint8_t fog_red1;
uint8_t fog_green1;
uint8_t fog_blue1;
float fog_minclip1;
float fog_maxclip1;
int fog_red2;
int fog_green2;
int fog_blue2;
uint8_t fog_red2;
uint8_t fog_green2;
uint8_t fog_blue2;
float fog_minclip2;
float fog_maxclip2;
int fog_red3;
int fog_green3;
int fog_blue3;
uint8_t fog_red3;
uint8_t fog_green3;
uint8_t fog_blue3;
float fog_minclip3;
float fog_maxclip3;
int fog_red4;
int fog_green4;
int fog_blue4;
uint8_t fog_red4;
uint8_t fog_green4;
uint8_t fog_blue4;
float fog_minclip4;
float fog_maxclip4;
float fog_density;
std::string flag_needed;
int canbind;
int cancombat;
int canlevitate;
int castoutdoor;
int hotzone;
int insttype;
int64 shutdowndelay;
int peqzone;
int suspendbuffs;
int rain_chance1;
int rain_chance2;
int rain_chance3;
int rain_chance4;
int rain_duration1;
int rain_duration2;
int rain_duration3;
int rain_duration4;
int snow_chance1;
int snow_chance2;
int snow_chance3;
int snow_chance4;
int snow_duration1;
int snow_duration2;
int snow_duration3;
int snow_duration4;
int8_t canbind;
int8_t cancombat;
int8_t canlevitate;
int8_t castoutdoor;
uint8_t hotzone;
uint8_t insttype;
uint64_t shutdowndelay;
int8_t peqzone;
uint8_t suspendbuffs;
int32_t rain_chance1;
int32_t rain_chance2;
int32_t rain_chance3;
int32_t rain_chance4;
int32_t rain_duration1;
int32_t rain_duration2;
int32_t rain_duration3;
int32_t rain_duration4;
int32_t snow_chance1;
int32_t snow_chance2;
int32_t snow_chance3;
int32_t snow_chance4;
int32_t snow_duration1;
int32_t snow_duration2;
int32_t snow_duration3;
int32_t snow_duration4;
float gravity;
int type;
int skylock;
int fast_regen_hp;
int fast_regen_mana;
int fast_regen_endurance;
int npc_max_aggro_dist;
int max_movement_update_range;
int min_expansion;
int max_expansion;
int32_t type;
int8_t skylock;
int32_t fast_regen_hp;
int32_t fast_regen_mana;
int32_t fast_regen_endurance;
int32_t npc_max_aggro_dist;
uint32_t max_movement_update_range;
int8_t min_expansion;
int8_t max_expansion;
std::string content_flags;
std::string content_flags_disabled;
int underworld_teleport_index;
int lava_damage;
int min_lava_damage;
int expansion;
int bypass_expansion_check;
int32_t underworld_teleport_index;
int32_t lava_damage;
int32_t min_lava_damage;
int8_t expansion;
int8_t bypass_expansion_check;
};
static std::string PrimaryKey()
@@ -491,100 +491,100 @@ public:
Zone e{};
e.short_name = row[0] ? row[0] : "";
e.id = atoi(row[1]);
e.id = static_cast<int32_t>(atoi(row[1]));
e.file_name = row[2] ? row[2] : "";
e.long_name = row[3] ? row[3] : "";
e.map_file_name = row[4] ? row[4] : "";
e.safe_x = static_cast<float>(atof(row[5]));
e.safe_y = static_cast<float>(atof(row[6]));
e.safe_z = static_cast<float>(atof(row[7]));
e.safe_heading = static_cast<float>(atof(row[8]));
e.graveyard_id = static_cast<float>(atof(row[9]));
e.min_level = atoi(row[10]);
e.min_status = atoi(row[11]);
e.zoneidnumber = atoi(row[12]);
e.version = atoi(row[13]);
e.timezone = atoi(row[14]);
e.maxclients = atoi(row[15]);
e.ruleset = atoi(row[16]);
e.safe_x = strtof(row[5], nullptr);
e.safe_y = strtof(row[6], nullptr);
e.safe_z = strtof(row[7], nullptr);
e.safe_heading = strtof(row[8], nullptr);
e.graveyard_id = strtof(row[9], nullptr);
e.min_level = static_cast<uint8_t>(strtoul(row[10], nullptr, 10));
e.min_status = static_cast<uint8_t>(strtoul(row[11], nullptr, 10));
e.zoneidnumber = static_cast<int32_t>(atoi(row[12]));
e.version = static_cast<uint8_t>(strtoul(row[13], nullptr, 10));
e.timezone = static_cast<int32_t>(atoi(row[14]));
e.maxclients = static_cast<int32_t>(atoi(row[15]));
e.ruleset = static_cast<uint32_t>(strtoul(row[16], nullptr, 10));
e.note = row[17] ? row[17] : "";
e.underworld = static_cast<float>(atof(row[18]));
e.minclip = static_cast<float>(atof(row[19]));
e.maxclip = static_cast<float>(atof(row[20]));
e.fog_minclip = static_cast<float>(atof(row[21]));
e.fog_maxclip = static_cast<float>(atof(row[22]));
e.fog_blue = atoi(row[23]);
e.fog_red = atoi(row[24]);
e.fog_green = atoi(row[25]);
e.sky = atoi(row[26]);
e.ztype = atoi(row[27]);
e.zone_exp_multiplier = static_cast<float>(atof(row[28]));
e.walkspeed = static_cast<float>(atof(row[29]));
e.time_type = atoi(row[30]);
e.fog_red1 = atoi(row[31]);
e.fog_green1 = atoi(row[32]);
e.fog_blue1 = atoi(row[33]);
e.fog_minclip1 = static_cast<float>(atof(row[34]));
e.fog_maxclip1 = static_cast<float>(atof(row[35]));
e.fog_red2 = atoi(row[36]);
e.fog_green2 = atoi(row[37]);
e.fog_blue2 = atoi(row[38]);
e.fog_minclip2 = static_cast<float>(atof(row[39]));
e.fog_maxclip2 = static_cast<float>(atof(row[40]));
e.fog_red3 = atoi(row[41]);
e.fog_green3 = atoi(row[42]);
e.fog_blue3 = atoi(row[43]);
e.fog_minclip3 = static_cast<float>(atof(row[44]));
e.fog_maxclip3 = static_cast<float>(atof(row[45]));
e.fog_red4 = atoi(row[46]);
e.fog_green4 = atoi(row[47]);
e.fog_blue4 = atoi(row[48]);
e.fog_minclip4 = static_cast<float>(atof(row[49]));
e.fog_maxclip4 = static_cast<float>(atof(row[50]));
e.fog_density = static_cast<float>(atof(row[51]));
e.underworld = strtof(row[18], nullptr);
e.minclip = strtof(row[19], nullptr);
e.maxclip = strtof(row[20], nullptr);
e.fog_minclip = strtof(row[21], nullptr);
e.fog_maxclip = strtof(row[22], nullptr);
e.fog_blue = static_cast<uint8_t>(strtoul(row[23], nullptr, 10));
e.fog_red = static_cast<uint8_t>(strtoul(row[24], nullptr, 10));
e.fog_green = static_cast<uint8_t>(strtoul(row[25], nullptr, 10));
e.sky = static_cast<uint8_t>(strtoul(row[26], nullptr, 10));
e.ztype = static_cast<uint8_t>(strtoul(row[27], nullptr, 10));
e.zone_exp_multiplier = strtof(row[28], nullptr);
e.walkspeed = strtof(row[29], nullptr);
e.time_type = static_cast<uint8_t>(strtoul(row[30], nullptr, 10));
e.fog_red1 = static_cast<uint8_t>(strtoul(row[31], nullptr, 10));
e.fog_green1 = static_cast<uint8_t>(strtoul(row[32], nullptr, 10));
e.fog_blue1 = static_cast<uint8_t>(strtoul(row[33], nullptr, 10));
e.fog_minclip1 = strtof(row[34], nullptr);
e.fog_maxclip1 = strtof(row[35], nullptr);
e.fog_red2 = static_cast<uint8_t>(strtoul(row[36], nullptr, 10));
e.fog_green2 = static_cast<uint8_t>(strtoul(row[37], nullptr, 10));
e.fog_blue2 = static_cast<uint8_t>(strtoul(row[38], nullptr, 10));
e.fog_minclip2 = strtof(row[39], nullptr);
e.fog_maxclip2 = strtof(row[40], nullptr);
e.fog_red3 = static_cast<uint8_t>(strtoul(row[41], nullptr, 10));
e.fog_green3 = static_cast<uint8_t>(strtoul(row[42], nullptr, 10));
e.fog_blue3 = static_cast<uint8_t>(strtoul(row[43], nullptr, 10));
e.fog_minclip3 = strtof(row[44], nullptr);
e.fog_maxclip3 = strtof(row[45], nullptr);
e.fog_red4 = static_cast<uint8_t>(strtoul(row[46], nullptr, 10));
e.fog_green4 = static_cast<uint8_t>(strtoul(row[47], nullptr, 10));
e.fog_blue4 = static_cast<uint8_t>(strtoul(row[48], nullptr, 10));
e.fog_minclip4 = strtof(row[49], nullptr);
e.fog_maxclip4 = strtof(row[50], nullptr);
e.fog_density = strtof(row[51], nullptr);
e.flag_needed = row[52] ? row[52] : "";
e.canbind = atoi(row[53]);
e.cancombat = atoi(row[54]);
e.canlevitate = atoi(row[55]);
e.castoutdoor = atoi(row[56]);
e.hotzone = atoi(row[57]);
e.insttype = atoi(row[58]);
e.shutdowndelay = strtoll(row[59], nullptr, 10);
e.peqzone = atoi(row[60]);
e.suspendbuffs = atoi(row[61]);
e.rain_chance1 = atoi(row[62]);
e.rain_chance2 = atoi(row[63]);
e.rain_chance3 = atoi(row[64]);
e.rain_chance4 = atoi(row[65]);
e.rain_duration1 = atoi(row[66]);
e.rain_duration2 = atoi(row[67]);
e.rain_duration3 = atoi(row[68]);
e.rain_duration4 = atoi(row[69]);
e.snow_chance1 = atoi(row[70]);
e.snow_chance2 = atoi(row[71]);
e.snow_chance3 = atoi(row[72]);
e.snow_chance4 = atoi(row[73]);
e.snow_duration1 = atoi(row[74]);
e.snow_duration2 = atoi(row[75]);
e.snow_duration3 = atoi(row[76]);
e.snow_duration4 = atoi(row[77]);
e.gravity = static_cast<float>(atof(row[78]));
e.type = atoi(row[79]);
e.skylock = atoi(row[80]);
e.fast_regen_hp = atoi(row[81]);
e.fast_regen_mana = atoi(row[82]);
e.fast_regen_endurance = atoi(row[83]);
e.npc_max_aggro_dist = atoi(row[84]);
e.max_movement_update_range = atoi(row[85]);
e.min_expansion = atoi(row[86]);
e.max_expansion = atoi(row[87]);
e.canbind = static_cast<int8_t>(atoi(row[53]));
e.cancombat = static_cast<int8_t>(atoi(row[54]));
e.canlevitate = static_cast<int8_t>(atoi(row[55]));
e.castoutdoor = static_cast<int8_t>(atoi(row[56]));
e.hotzone = static_cast<uint8_t>(strtoul(row[57], nullptr, 10));
e.insttype = static_cast<uint8_t>(strtoul(row[58], nullptr, 10));
e.shutdowndelay = strtoull(row[59], nullptr, 10);
e.peqzone = static_cast<int8_t>(atoi(row[60]));
e.suspendbuffs = static_cast<uint8_t>(strtoul(row[61], nullptr, 10));
e.rain_chance1 = static_cast<int32_t>(atoi(row[62]));
e.rain_chance2 = static_cast<int32_t>(atoi(row[63]));
e.rain_chance3 = static_cast<int32_t>(atoi(row[64]));
e.rain_chance4 = static_cast<int32_t>(atoi(row[65]));
e.rain_duration1 = static_cast<int32_t>(atoi(row[66]));
e.rain_duration2 = static_cast<int32_t>(atoi(row[67]));
e.rain_duration3 = static_cast<int32_t>(atoi(row[68]));
e.rain_duration4 = static_cast<int32_t>(atoi(row[69]));
e.snow_chance1 = static_cast<int32_t>(atoi(row[70]));
e.snow_chance2 = static_cast<int32_t>(atoi(row[71]));
e.snow_chance3 = static_cast<int32_t>(atoi(row[72]));
e.snow_chance4 = static_cast<int32_t>(atoi(row[73]));
e.snow_duration1 = static_cast<int32_t>(atoi(row[74]));
e.snow_duration2 = static_cast<int32_t>(atoi(row[75]));
e.snow_duration3 = static_cast<int32_t>(atoi(row[76]));
e.snow_duration4 = static_cast<int32_t>(atoi(row[77]));
e.gravity = strtof(row[78], nullptr);
e.type = static_cast<int32_t>(atoi(row[79]));
e.skylock = static_cast<int8_t>(atoi(row[80]));
e.fast_regen_hp = static_cast<int32_t>(atoi(row[81]));
e.fast_regen_mana = static_cast<int32_t>(atoi(row[82]));
e.fast_regen_endurance = static_cast<int32_t>(atoi(row[83]));
e.npc_max_aggro_dist = static_cast<int32_t>(atoi(row[84]));
e.max_movement_update_range = static_cast<uint32_t>(strtoul(row[85], nullptr, 10));
e.min_expansion = static_cast<int8_t>(atoi(row[86]));
e.max_expansion = static_cast<int8_t>(atoi(row[87]));
e.content_flags = row[88] ? row[88] : "";
e.content_flags_disabled = row[89] ? row[89] : "";
e.underworld_teleport_index = atoi(row[90]);
e.lava_damage = atoi(row[91]);
e.min_lava_damage = atoi(row[92]);
e.expansion = atoi(row[93]);
e.bypass_expansion_check = atoi(row[94]);
e.underworld_teleport_index = static_cast<int32_t>(atoi(row[90]));
e.lava_damage = static_cast<int32_t>(atoi(row[91]));
e.min_lava_damage = static_cast<int32_t>(atoi(row[92]));
e.expansion = static_cast<int8_t>(atoi(row[93]));
e.bypass_expansion_check = static_cast<int8_t>(atoi(row[94]));
return e;
}
@@ -986,100 +986,100 @@ public:
Zone e{};
e.short_name = row[0] ? row[0] : "";
e.id = atoi(row[1]);
e.id = static_cast<int32_t>(atoi(row[1]));
e.file_name = row[2] ? row[2] : "";
e.long_name = row[3] ? row[3] : "";
e.map_file_name = row[4] ? row[4] : "";
e.safe_x = static_cast<float>(atof(row[5]));
e.safe_y = static_cast<float>(atof(row[6]));
e.safe_z = static_cast<float>(atof(row[7]));
e.safe_heading = static_cast<float>(atof(row[8]));
e.graveyard_id = static_cast<float>(atof(row[9]));
e.min_level = atoi(row[10]);
e.min_status = atoi(row[11]);
e.zoneidnumber = atoi(row[12]);
e.version = atoi(row[13]);
e.timezone = atoi(row[14]);
e.maxclients = atoi(row[15]);
e.ruleset = atoi(row[16]);
e.safe_x = strtof(row[5], nullptr);
e.safe_y = strtof(row[6], nullptr);
e.safe_z = strtof(row[7], nullptr);
e.safe_heading = strtof(row[8], nullptr);
e.graveyard_id = strtof(row[9], nullptr);
e.min_level = static_cast<uint8_t>(strtoul(row[10], nullptr, 10));
e.min_status = static_cast<uint8_t>(strtoul(row[11], nullptr, 10));
e.zoneidnumber = static_cast<int32_t>(atoi(row[12]));
e.version = static_cast<uint8_t>(strtoul(row[13], nullptr, 10));
e.timezone = static_cast<int32_t>(atoi(row[14]));
e.maxclients = static_cast<int32_t>(atoi(row[15]));
e.ruleset = static_cast<uint32_t>(strtoul(row[16], nullptr, 10));
e.note = row[17] ? row[17] : "";
e.underworld = static_cast<float>(atof(row[18]));
e.minclip = static_cast<float>(atof(row[19]));
e.maxclip = static_cast<float>(atof(row[20]));
e.fog_minclip = static_cast<float>(atof(row[21]));
e.fog_maxclip = static_cast<float>(atof(row[22]));
e.fog_blue = atoi(row[23]);
e.fog_red = atoi(row[24]);
e.fog_green = atoi(row[25]);
e.sky = atoi(row[26]);
e.ztype = atoi(row[27]);
e.zone_exp_multiplier = static_cast<float>(atof(row[28]));
e.walkspeed = static_cast<float>(atof(row[29]));
e.time_type = atoi(row[30]);
e.fog_red1 = atoi(row[31]);
e.fog_green1 = atoi(row[32]);
e.fog_blue1 = atoi(row[33]);
e.fog_minclip1 = static_cast<float>(atof(row[34]));
e.fog_maxclip1 = static_cast<float>(atof(row[35]));
e.fog_red2 = atoi(row[36]);
e.fog_green2 = atoi(row[37]);
e.fog_blue2 = atoi(row[38]);
e.fog_minclip2 = static_cast<float>(atof(row[39]));
e.fog_maxclip2 = static_cast<float>(atof(row[40]));
e.fog_red3 = atoi(row[41]);
e.fog_green3 = atoi(row[42]);
e.fog_blue3 = atoi(row[43]);
e.fog_minclip3 = static_cast<float>(atof(row[44]));
e.fog_maxclip3 = static_cast<float>(atof(row[45]));
e.fog_red4 = atoi(row[46]);
e.fog_green4 = atoi(row[47]);
e.fog_blue4 = atoi(row[48]);
e.fog_minclip4 = static_cast<float>(atof(row[49]));
e.fog_maxclip4 = static_cast<float>(atof(row[50]));
e.fog_density = static_cast<float>(atof(row[51]));
e.underworld = strtof(row[18], nullptr);
e.minclip = strtof(row[19], nullptr);
e.maxclip = strtof(row[20], nullptr);
e.fog_minclip = strtof(row[21], nullptr);
e.fog_maxclip = strtof(row[22], nullptr);
e.fog_blue = static_cast<uint8_t>(strtoul(row[23], nullptr, 10));
e.fog_red = static_cast<uint8_t>(strtoul(row[24], nullptr, 10));
e.fog_green = static_cast<uint8_t>(strtoul(row[25], nullptr, 10));
e.sky = static_cast<uint8_t>(strtoul(row[26], nullptr, 10));
e.ztype = static_cast<uint8_t>(strtoul(row[27], nullptr, 10));
e.zone_exp_multiplier = strtof(row[28], nullptr);
e.walkspeed = strtof(row[29], nullptr);
e.time_type = static_cast<uint8_t>(strtoul(row[30], nullptr, 10));
e.fog_red1 = static_cast<uint8_t>(strtoul(row[31], nullptr, 10));
e.fog_green1 = static_cast<uint8_t>(strtoul(row[32], nullptr, 10));
e.fog_blue1 = static_cast<uint8_t>(strtoul(row[33], nullptr, 10));
e.fog_minclip1 = strtof(row[34], nullptr);
e.fog_maxclip1 = strtof(row[35], nullptr);
e.fog_red2 = static_cast<uint8_t>(strtoul(row[36], nullptr, 10));
e.fog_green2 = static_cast<uint8_t>(strtoul(row[37], nullptr, 10));
e.fog_blue2 = static_cast<uint8_t>(strtoul(row[38], nullptr, 10));
e.fog_minclip2 = strtof(row[39], nullptr);
e.fog_maxclip2 = strtof(row[40], nullptr);
e.fog_red3 = static_cast<uint8_t>(strtoul(row[41], nullptr, 10));
e.fog_green3 = static_cast<uint8_t>(strtoul(row[42], nullptr, 10));
e.fog_blue3 = static_cast<uint8_t>(strtoul(row[43], nullptr, 10));
e.fog_minclip3 = strtof(row[44], nullptr);
e.fog_maxclip3 = strtof(row[45], nullptr);
e.fog_red4 = static_cast<uint8_t>(strtoul(row[46], nullptr, 10));
e.fog_green4 = static_cast<uint8_t>(strtoul(row[47], nullptr, 10));
e.fog_blue4 = static_cast<uint8_t>(strtoul(row[48], nullptr, 10));
e.fog_minclip4 = strtof(row[49], nullptr);
e.fog_maxclip4 = strtof(row[50], nullptr);
e.fog_density = strtof(row[51], nullptr);
e.flag_needed = row[52] ? row[52] : "";
e.canbind = atoi(row[53]);
e.cancombat = atoi(row[54]);
e.canlevitate = atoi(row[55]);
e.castoutdoor = atoi(row[56]);
e.hotzone = atoi(row[57]);
e.insttype = atoi(row[58]);
e.shutdowndelay = strtoll(row[59], nullptr, 10);
e.peqzone = atoi(row[60]);
e.suspendbuffs = atoi(row[61]);
e.rain_chance1 = atoi(row[62]);
e.rain_chance2 = atoi(row[63]);
e.rain_chance3 = atoi(row[64]);
e.rain_chance4 = atoi(row[65]);
e.rain_duration1 = atoi(row[66]);
e.rain_duration2 = atoi(row[67]);
e.rain_duration3 = atoi(row[68]);
e.rain_duration4 = atoi(row[69]);
e.snow_chance1 = atoi(row[70]);
e.snow_chance2 = atoi(row[71]);
e.snow_chance3 = atoi(row[72]);
e.snow_chance4 = atoi(row[73]);
e.snow_duration1 = atoi(row[74]);
e.snow_duration2 = atoi(row[75]);
e.snow_duration3 = atoi(row[76]);
e.snow_duration4 = atoi(row[77]);
e.gravity = static_cast<float>(atof(row[78]));
e.type = atoi(row[79]);
e.skylock = atoi(row[80]);
e.fast_regen_hp = atoi(row[81]);
e.fast_regen_mana = atoi(row[82]);
e.fast_regen_endurance = atoi(row[83]);
e.npc_max_aggro_dist = atoi(row[84]);
e.max_movement_update_range = atoi(row[85]);
e.min_expansion = atoi(row[86]);
e.max_expansion = atoi(row[87]);
e.canbind = static_cast<int8_t>(atoi(row[53]));
e.cancombat = static_cast<int8_t>(atoi(row[54]));
e.canlevitate = static_cast<int8_t>(atoi(row[55]));
e.castoutdoor = static_cast<int8_t>(atoi(row[56]));
e.hotzone = static_cast<uint8_t>(strtoul(row[57], nullptr, 10));
e.insttype = static_cast<uint8_t>(strtoul(row[58], nullptr, 10));
e.shutdowndelay = strtoull(row[59], nullptr, 10);
e.peqzone = static_cast<int8_t>(atoi(row[60]));
e.suspendbuffs = static_cast<uint8_t>(strtoul(row[61], nullptr, 10));
e.rain_chance1 = static_cast<int32_t>(atoi(row[62]));
e.rain_chance2 = static_cast<int32_t>(atoi(row[63]));
e.rain_chance3 = static_cast<int32_t>(atoi(row[64]));
e.rain_chance4 = static_cast<int32_t>(atoi(row[65]));
e.rain_duration1 = static_cast<int32_t>(atoi(row[66]));
e.rain_duration2 = static_cast<int32_t>(atoi(row[67]));
e.rain_duration3 = static_cast<int32_t>(atoi(row[68]));
e.rain_duration4 = static_cast<int32_t>(atoi(row[69]));
e.snow_chance1 = static_cast<int32_t>(atoi(row[70]));
e.snow_chance2 = static_cast<int32_t>(atoi(row[71]));
e.snow_chance3 = static_cast<int32_t>(atoi(row[72]));
e.snow_chance4 = static_cast<int32_t>(atoi(row[73]));
e.snow_duration1 = static_cast<int32_t>(atoi(row[74]));
e.snow_duration2 = static_cast<int32_t>(atoi(row[75]));
e.snow_duration3 = static_cast<int32_t>(atoi(row[76]));
e.snow_duration4 = static_cast<int32_t>(atoi(row[77]));
e.gravity = strtof(row[78], nullptr);
e.type = static_cast<int32_t>(atoi(row[79]));
e.skylock = static_cast<int8_t>(atoi(row[80]));
e.fast_regen_hp = static_cast<int32_t>(atoi(row[81]));
e.fast_regen_mana = static_cast<int32_t>(atoi(row[82]));
e.fast_regen_endurance = static_cast<int32_t>(atoi(row[83]));
e.npc_max_aggro_dist = static_cast<int32_t>(atoi(row[84]));
e.max_movement_update_range = static_cast<uint32_t>(strtoul(row[85], nullptr, 10));
e.min_expansion = static_cast<int8_t>(atoi(row[86]));
e.max_expansion = static_cast<int8_t>(atoi(row[87]));
e.content_flags = row[88] ? row[88] : "";
e.content_flags_disabled = row[89] ? row[89] : "";
e.underworld_teleport_index = atoi(row[90]);
e.lava_damage = atoi(row[91]);
e.min_lava_damage = atoi(row[92]);
e.expansion = atoi(row[93]);
e.bypass_expansion_check = atoi(row[94]);
e.underworld_teleport_index = static_cast<int32_t>(atoi(row[90]));
e.lava_damage = static_cast<int32_t>(atoi(row[91]));
e.min_lava_damage = static_cast<int32_t>(atoi(row[92]));
e.expansion = static_cast<int8_t>(atoi(row[93]));
e.bypass_expansion_check = static_cast<int8_t>(atoi(row[94]));
all_entries.push_back(e);
}
@@ -1105,100 +1105,100 @@ public:
Zone e{};
e.short_name = row[0] ? row[0] : "";
e.id = atoi(row[1]);
e.id = static_cast<int32_t>(atoi(row[1]));
e.file_name = row[2] ? row[2] : "";
e.long_name = row[3] ? row[3] : "";
e.map_file_name = row[4] ? row[4] : "";
e.safe_x = static_cast<float>(atof(row[5]));
e.safe_y = static_cast<float>(atof(row[6]));
e.safe_z = static_cast<float>(atof(row[7]));
e.safe_heading = static_cast<float>(atof(row[8]));
e.graveyard_id = static_cast<float>(atof(row[9]));
e.min_level = atoi(row[10]);
e.min_status = atoi(row[11]);
e.zoneidnumber = atoi(row[12]);
e.version = atoi(row[13]);
e.timezone = atoi(row[14]);
e.maxclients = atoi(row[15]);
e.ruleset = atoi(row[16]);
e.safe_x = strtof(row[5], nullptr);
e.safe_y = strtof(row[6], nullptr);
e.safe_z = strtof(row[7], nullptr);
e.safe_heading = strtof(row[8], nullptr);
e.graveyard_id = strtof(row[9], nullptr);
e.min_level = static_cast<uint8_t>(strtoul(row[10], nullptr, 10));
e.min_status = static_cast<uint8_t>(strtoul(row[11], nullptr, 10));
e.zoneidnumber = static_cast<int32_t>(atoi(row[12]));
e.version = static_cast<uint8_t>(strtoul(row[13], nullptr, 10));
e.timezone = static_cast<int32_t>(atoi(row[14]));
e.maxclients = static_cast<int32_t>(atoi(row[15]));
e.ruleset = static_cast<uint32_t>(strtoul(row[16], nullptr, 10));
e.note = row[17] ? row[17] : "";
e.underworld = static_cast<float>(atof(row[18]));
e.minclip = static_cast<float>(atof(row[19]));
e.maxclip = static_cast<float>(atof(row[20]));
e.fog_minclip = static_cast<float>(atof(row[21]));
e.fog_maxclip = static_cast<float>(atof(row[22]));
e.fog_blue = atoi(row[23]);
e.fog_red = atoi(row[24]);
e.fog_green = atoi(row[25]);
e.sky = atoi(row[26]);
e.ztype = atoi(row[27]);
e.zone_exp_multiplier = static_cast<float>(atof(row[28]));
e.walkspeed = static_cast<float>(atof(row[29]));
e.time_type = atoi(row[30]);
e.fog_red1 = atoi(row[31]);
e.fog_green1 = atoi(row[32]);
e.fog_blue1 = atoi(row[33]);
e.fog_minclip1 = static_cast<float>(atof(row[34]));
e.fog_maxclip1 = static_cast<float>(atof(row[35]));
e.fog_red2 = atoi(row[36]);
e.fog_green2 = atoi(row[37]);
e.fog_blue2 = atoi(row[38]);
e.fog_minclip2 = static_cast<float>(atof(row[39]));
e.fog_maxclip2 = static_cast<float>(atof(row[40]));
e.fog_red3 = atoi(row[41]);
e.fog_green3 = atoi(row[42]);
e.fog_blue3 = atoi(row[43]);
e.fog_minclip3 = static_cast<float>(atof(row[44]));
e.fog_maxclip3 = static_cast<float>(atof(row[45]));
e.fog_red4 = atoi(row[46]);
e.fog_green4 = atoi(row[47]);
e.fog_blue4 = atoi(row[48]);
e.fog_minclip4 = static_cast<float>(atof(row[49]));
e.fog_maxclip4 = static_cast<float>(atof(row[50]));
e.fog_density = static_cast<float>(atof(row[51]));
e.underworld = strtof(row[18], nullptr);
e.minclip = strtof(row[19], nullptr);
e.maxclip = strtof(row[20], nullptr);
e.fog_minclip = strtof(row[21], nullptr);
e.fog_maxclip = strtof(row[22], nullptr);
e.fog_blue = static_cast<uint8_t>(strtoul(row[23], nullptr, 10));
e.fog_red = static_cast<uint8_t>(strtoul(row[24], nullptr, 10));
e.fog_green = static_cast<uint8_t>(strtoul(row[25], nullptr, 10));
e.sky = static_cast<uint8_t>(strtoul(row[26], nullptr, 10));
e.ztype = static_cast<uint8_t>(strtoul(row[27], nullptr, 10));
e.zone_exp_multiplier = strtof(row[28], nullptr);
e.walkspeed = strtof(row[29], nullptr);
e.time_type = static_cast<uint8_t>(strtoul(row[30], nullptr, 10));
e.fog_red1 = static_cast<uint8_t>(strtoul(row[31], nullptr, 10));
e.fog_green1 = static_cast<uint8_t>(strtoul(row[32], nullptr, 10));
e.fog_blue1 = static_cast<uint8_t>(strtoul(row[33], nullptr, 10));
e.fog_minclip1 = strtof(row[34], nullptr);
e.fog_maxclip1 = strtof(row[35], nullptr);
e.fog_red2 = static_cast<uint8_t>(strtoul(row[36], nullptr, 10));
e.fog_green2 = static_cast<uint8_t>(strtoul(row[37], nullptr, 10));
e.fog_blue2 = static_cast<uint8_t>(strtoul(row[38], nullptr, 10));
e.fog_minclip2 = strtof(row[39], nullptr);
e.fog_maxclip2 = strtof(row[40], nullptr);
e.fog_red3 = static_cast<uint8_t>(strtoul(row[41], nullptr, 10));
e.fog_green3 = static_cast<uint8_t>(strtoul(row[42], nullptr, 10));
e.fog_blue3 = static_cast<uint8_t>(strtoul(row[43], nullptr, 10));
e.fog_minclip3 = strtof(row[44], nullptr);
e.fog_maxclip3 = strtof(row[45], nullptr);
e.fog_red4 = static_cast<uint8_t>(strtoul(row[46], nullptr, 10));
e.fog_green4 = static_cast<uint8_t>(strtoul(row[47], nullptr, 10));
e.fog_blue4 = static_cast<uint8_t>(strtoul(row[48], nullptr, 10));
e.fog_minclip4 = strtof(row[49], nullptr);
e.fog_maxclip4 = strtof(row[50], nullptr);
e.fog_density = strtof(row[51], nullptr);
e.flag_needed = row[52] ? row[52] : "";
e.canbind = atoi(row[53]);
e.cancombat = atoi(row[54]);
e.canlevitate = atoi(row[55]);
e.castoutdoor = atoi(row[56]);
e.hotzone = atoi(row[57]);
e.insttype = atoi(row[58]);
e.shutdowndelay = strtoll(row[59], nullptr, 10);
e.peqzone = atoi(row[60]);
e.suspendbuffs = atoi(row[61]);
e.rain_chance1 = atoi(row[62]);
e.rain_chance2 = atoi(row[63]);
e.rain_chance3 = atoi(row[64]);
e.rain_chance4 = atoi(row[65]);
e.rain_duration1 = atoi(row[66]);
e.rain_duration2 = atoi(row[67]);
e.rain_duration3 = atoi(row[68]);
e.rain_duration4 = atoi(row[69]);
e.snow_chance1 = atoi(row[70]);
e.snow_chance2 = atoi(row[71]);
e.snow_chance3 = atoi(row[72]);
e.snow_chance4 = atoi(row[73]);
e.snow_duration1 = atoi(row[74]);
e.snow_duration2 = atoi(row[75]);
e.snow_duration3 = atoi(row[76]);
e.snow_duration4 = atoi(row[77]);
e.gravity = static_cast<float>(atof(row[78]));
e.type = atoi(row[79]);
e.skylock = atoi(row[80]);
e.fast_regen_hp = atoi(row[81]);
e.fast_regen_mana = atoi(row[82]);
e.fast_regen_endurance = atoi(row[83]);
e.npc_max_aggro_dist = atoi(row[84]);
e.max_movement_update_range = atoi(row[85]);
e.min_expansion = atoi(row[86]);
e.max_expansion = atoi(row[87]);
e.canbind = static_cast<int8_t>(atoi(row[53]));
e.cancombat = static_cast<int8_t>(atoi(row[54]));
e.canlevitate = static_cast<int8_t>(atoi(row[55]));
e.castoutdoor = static_cast<int8_t>(atoi(row[56]));
e.hotzone = static_cast<uint8_t>(strtoul(row[57], nullptr, 10));
e.insttype = static_cast<uint8_t>(strtoul(row[58], nullptr, 10));
e.shutdowndelay = strtoull(row[59], nullptr, 10);
e.peqzone = static_cast<int8_t>(atoi(row[60]));
e.suspendbuffs = static_cast<uint8_t>(strtoul(row[61], nullptr, 10));
e.rain_chance1 = static_cast<int32_t>(atoi(row[62]));
e.rain_chance2 = static_cast<int32_t>(atoi(row[63]));
e.rain_chance3 = static_cast<int32_t>(atoi(row[64]));
e.rain_chance4 = static_cast<int32_t>(atoi(row[65]));
e.rain_duration1 = static_cast<int32_t>(atoi(row[66]));
e.rain_duration2 = static_cast<int32_t>(atoi(row[67]));
e.rain_duration3 = static_cast<int32_t>(atoi(row[68]));
e.rain_duration4 = static_cast<int32_t>(atoi(row[69]));
e.snow_chance1 = static_cast<int32_t>(atoi(row[70]));
e.snow_chance2 = static_cast<int32_t>(atoi(row[71]));
e.snow_chance3 = static_cast<int32_t>(atoi(row[72]));
e.snow_chance4 = static_cast<int32_t>(atoi(row[73]));
e.snow_duration1 = static_cast<int32_t>(atoi(row[74]));
e.snow_duration2 = static_cast<int32_t>(atoi(row[75]));
e.snow_duration3 = static_cast<int32_t>(atoi(row[76]));
e.snow_duration4 = static_cast<int32_t>(atoi(row[77]));
e.gravity = strtof(row[78], nullptr);
e.type = static_cast<int32_t>(atoi(row[79]));
e.skylock = static_cast<int8_t>(atoi(row[80]));
e.fast_regen_hp = static_cast<int32_t>(atoi(row[81]));
e.fast_regen_mana = static_cast<int32_t>(atoi(row[82]));
e.fast_regen_endurance = static_cast<int32_t>(atoi(row[83]));
e.npc_max_aggro_dist = static_cast<int32_t>(atoi(row[84]));
e.max_movement_update_range = static_cast<uint32_t>(strtoul(row[85], nullptr, 10));
e.min_expansion = static_cast<int8_t>(atoi(row[86]));
e.max_expansion = static_cast<int8_t>(atoi(row[87]));
e.content_flags = row[88] ? row[88] : "";
e.content_flags_disabled = row[89] ? row[89] : "";
e.underworld_teleport_index = atoi(row[90]);
e.lava_damage = atoi(row[91]);
e.min_lava_damage = atoi(row[92]);
e.expansion = atoi(row[93]);
e.bypass_expansion_check = atoi(row[94]);
e.underworld_teleport_index = static_cast<int32_t>(atoi(row[90]));
e.lava_damage = static_cast<int32_t>(atoi(row[91]));
e.min_lava_damage = static_cast<int32_t>(atoi(row[92]));
e.expansion = static_cast<int8_t>(atoi(row[93]));
e.bypass_expansion_check = static_cast<int8_t>(atoi(row[94]));
all_entries.push_back(e);
}