From e71ce001ff410b25f9f4726a36b5444eec0c8fdc Mon Sep 17 00:00:00 2001 From: Chris Miles Date: Wed, 17 Sep 2025 00:47:42 -0500 Subject: [PATCH] Hotfix: revert #4996 --- common/database/database_update_manifest.cpp | 20 - .../base/base_spells_new_repository.h | 2040 ++++++++--------- common/shareddb.cpp | 391 ++-- common/spdat.h | 1 + common/version.h | 2 +- 5 files changed, 1196 insertions(+), 1258 deletions(-) diff --git a/common/database/database_update_manifest.cpp b/common/database/database_update_manifest.cpp index d5abb2a0e..15dc4a27f 100644 --- a/common/database/database_update_manifest.cpp +++ b/common/database/database_update_manifest.cpp @@ -7173,26 +7173,6 @@ ADD COLUMN `heal_amount` int(11) NULL DEFAULT 0 AFTER `spell_damage`; }, ManifestEntry{ .version = 9328, - .description = "2025_08_27_spells_new_column_names.sql", - .check = "SHOW COLUMNS FROM `spells_new` LIKE 'feedbackable'", - .condition = "empty", - .match = "", - .sql = R"( -ALTER TABLE `spells_new` -CHANGE COLUMN `field160` `feedbackable` int(11) NOT NULL DEFAULT 0 AFTER `npc_no_los`, -CHANGE COLUMN `field198` `no_detrimental_spell_aggro` int(11) NOT NULL DEFAULT 0 AFTER `not_extendable`, -CHANGE COLUMN `field209` `no_resist` int(11) NULL DEFAULT 0 AFTER `rank`, -CHANGE COLUMN `field217` `override_crit_chance` int(11) NULL DEFAULT 0 AFTER `field216`, -CHANGE COLUMN `field220` `no_heal_damage_item_mod` int(11) NULL DEFAULT 0 AFTER `maxtargets`, -CHANGE COLUMN `field221` `caster_requirement_id` int(11) NULL DEFAULT 0 AFTER `no_heal_damage_item_mod`, -CHANGE COLUMN `field222` `spell_class` int(11) NULL DEFAULT 0 AFTER `caster_requirement_id`, -CHANGE COLUMN `field223` `spell_subclass` int(11) NULL DEFAULT 0 AFTER `spell_class`, -CHANGE COLUMN `field232` `no_remove` int(11) NOT NULL DEFAULT 0 AFTER `min_range`; -)", - .content_schema_update = true - }, - ManifestEntry{ - .version = 9329, .description = "2025_08_22_character_parcel_updates.sql", .check = "SHOW COLUMNS FROM `character_parcels` LIKE 'evolve_amount'", .condition = "empty", diff --git a/common/repositories/base/base_spells_new_repository.h b/common/repositories/base/base_spells_new_repository.h index 60a19fb57..019e8eaea 100644 --- a/common/repositories/base/base_spells_new_repository.h +++ b/common/repositories/base/base_spells_new_repository.h @@ -179,7 +179,7 @@ public: int32_t effectdescnum; int32_t effectdescnum2; int32_t npc_no_los; - int32_t feedbackable; + int32_t field160; int32_t reflectable; int32_t bonushate; int32_t field163; @@ -217,7 +217,7 @@ public: int32_t ConeStopAngle; int32_t sneaking; int32_t not_extendable; - int32_t no_detrimental_spell_aggro; + int32_t field198; int32_t field199; int32_t suspendable; int32_t viral_range; @@ -228,7 +228,7 @@ public: int32_t field206; int32_t spellgroup; int32_t rank_; - int32_t no_resist; + int32_t field209; int32_t field210; int32_t CastRestriction; int32_t allowrest; @@ -236,13 +236,13 @@ public: int32_t OutofCombat; int32_t field215; int32_t field216; - int32_t override_crit_chance; + int32_t field217; int32_t aemaxtargets; int32_t maxtargets; - int32_t no_heal_damage_item_mod; - int32_t caster_requirement_id; - int32_t spell_class; - int32_t spell_subclass; + int32_t field220; + int32_t field221; + int32_t field222; + int32_t field223; int32_t persistdeath; int32_t field225; int32_t field226; @@ -251,7 +251,7 @@ public: float max_dist; float max_dist_mod; int32_t min_range; - int32_t no_remove; + int32_t field232; int32_t field233; int32_t field234; int32_t field235; @@ -426,7 +426,7 @@ public: "effectdescnum", "effectdescnum2", "npc_no_los", - "feedbackable", + "field160", "reflectable", "bonushate", "field163", @@ -464,7 +464,7 @@ public: "ConeStopAngle", "sneaking", "not_extendable", - "no_detrimental_spell_aggro", + "field198", "field199", "suspendable", "viral_range", @@ -475,7 +475,7 @@ public: "field206", "spellgroup", "`rank`", - "no_resist", + "field209", "field210", "CastRestriction", "allowrest", @@ -483,13 +483,13 @@ public: "OutofCombat", "field215", "field216", - "override_crit_chance", + "field217", "aemaxtargets", "maxtargets", - "no_heal_damage_item_mod", - "caster_requirement_id", - "spell_class", - "spell_subclass", + "field220", + "field221", + "field222", + "field223", "persistdeath", "field225", "field226", @@ -498,7 +498,7 @@ public: "max_dist", "max_dist_mod", "min_range", - "no_remove", + "field232", "field233", "field234", "field235", @@ -669,7 +669,7 @@ public: "effectdescnum", "effectdescnum2", "npc_no_los", - "feedbackable", + "field160", "reflectable", "bonushate", "field163", @@ -707,7 +707,7 @@ public: "ConeStopAngle", "sneaking", "not_extendable", - "no_detrimental_spell_aggro", + "field198", "field199", "suspendable", "viral_range", @@ -718,7 +718,7 @@ public: "field206", "spellgroup", "`rank`", - "no_resist", + "field209", "field210", "CastRestriction", "allowrest", @@ -726,13 +726,13 @@ public: "OutofCombat", "field215", "field216", - "override_crit_chance", + "field217", "aemaxtargets", "maxtargets", - "no_heal_damage_item_mod", - "caster_requirement_id", - "spell_class", - "spell_subclass", + "field220", + "field221", + "field222", + "field223", "persistdeath", "field225", "field226", @@ -741,7 +741,7 @@ public: "max_dist", "max_dist_mod", "min_range", - "no_remove", + "field232", "field233", "field234", "field235", @@ -786,243 +786,243 @@ public: { SpellsNew e{}; - e.id = 0; - e.name = ""; - e.player_1 = "BLUE_TRAIL"; - e.teleport_zone = ""; - e.you_cast = ""; - e.other_casts = ""; - e.cast_on_you = ""; - e.cast_on_other = ""; - e.spell_fades = ""; - e.range_ = 100; - e.aoerange = 0; - e.pushback = 0; - e.pushup = 0; - e.cast_time = 0; - e.recovery_time = 0; - e.recast_time = 0; - e.buffdurationformula = 7; - e.buffduration = 65; - e.AEDuration = 0; - e.mana = 0; - e.effect_base_value1 = 100; - e.effect_base_value2 = 0; - e.effect_base_value3 = 0; - e.effect_base_value4 = 0; - e.effect_base_value5 = 0; - e.effect_base_value6 = 0; - e.effect_base_value7 = 0; - e.effect_base_value8 = 0; - e.effect_base_value9 = 0; - e.effect_base_value10 = 0; - e.effect_base_value11 = 0; - e.effect_base_value12 = 0; - e.effect_limit_value1 = 0; - e.effect_limit_value2 = 0; - e.effect_limit_value3 = 0; - e.effect_limit_value4 = 0; - e.effect_limit_value5 = 0; - e.effect_limit_value6 = 0; - e.effect_limit_value7 = 0; - e.effect_limit_value8 = 0; - e.effect_limit_value9 = 0; - e.effect_limit_value10 = 0; - e.effect_limit_value11 = 0; - e.effect_limit_value12 = 0; - e.max1 = 0; - e.max2 = 0; - e.max3 = 0; - e.max4 = 0; - e.max5 = 0; - e.max6 = 0; - e.max7 = 0; - e.max8 = 0; - e.max9 = 0; - e.max10 = 0; - e.max11 = 0; - e.max12 = 0; - e.icon = 0; - e.memicon = 0; - e.components1 = -1; - e.components2 = -1; - e.components3 = -1; - e.components4 = -1; - e.component_counts1 = 1; - e.component_counts2 = 1; - e.component_counts3 = 1; - e.component_counts4 = 1; - e.NoexpendReagent1 = -1; - e.NoexpendReagent2 = -1; - e.NoexpendReagent3 = -1; - e.NoexpendReagent4 = -1; - e.formula1 = 100; - e.formula2 = 100; - e.formula3 = 100; - e.formula4 = 100; - e.formula5 = 100; - e.formula6 = 100; - e.formula7 = 100; - e.formula8 = 100; - e.formula9 = 100; - e.formula10 = 100; - e.formula11 = 100; - e.formula12 = 100; - e.LightType = 0; - e.goodEffect = 0; - e.Activated = 0; - e.resisttype = 0; - e.effectid1 = 254; - e.effectid2 = 254; - e.effectid3 = 254; - e.effectid4 = 254; - e.effectid5 = 254; - e.effectid6 = 254; - e.effectid7 = 254; - e.effectid8 = 254; - e.effectid9 = 254; - e.effectid10 = 254; - e.effectid11 = 254; - e.effectid12 = 254; - e.targettype = 2; - e.basediff = 0; - e.skill = 98; - e.zonetype = -1; - e.EnvironmentType = 0; - e.TimeOfDay = 0; - e.classes1 = 255; - e.classes2 = 255; - e.classes3 = 255; - e.classes4 = 255; - e.classes5 = 255; - e.classes6 = 255; - e.classes7 = 255; - e.classes8 = 255; - e.classes9 = 255; - e.classes10 = 255; - e.classes11 = 255; - e.classes12 = 255; - e.classes13 = 255; - e.classes14 = 255; - e.classes15 = 255; - e.classes16 = 255; - e.CastingAnim = 44; - e.TargetAnim = 13; - e.TravelType = 0; - e.SpellAffectIndex = -1; - e.disallow_sit = 0; - e.deities0 = 0; - e.deities1 = 0; - e.deities2 = 0; - e.deities3 = 0; - e.deities4 = 0; - e.deities5 = 0; - e.deities6 = 0; - e.deities7 = 0; - e.deities8 = 0; - e.deities9 = 0; - e.deities10 = 0; - e.deities11 = 0; - e.deities12 = 0; - e.deities13 = 0; - e.deities14 = 0; - e.deities15 = 0; - e.deities16 = 0; - e.field142 = 100; - e.field143 = 0; - e.new_icon = 161; - e.spellanim = 0; - e.uninterruptable = 0; - e.ResistDiff = -150; - e.dot_stacking_exempt = 0; - e.deleteable = 0; - e.RecourseLink = 0; - e.no_partial_resist = 0; - e.field152 = 0; - e.field153 = 0; - e.short_buff_box = -1; - e.descnum = 0; - e.typedescnum = 0; - e.effectdescnum = 0; - e.effectdescnum2 = 0; - e.npc_no_los = 0; - e.feedbackable = 0; - e.reflectable = 0; - e.bonushate = 0; - e.field163 = 100; - e.field164 = -150; - e.ldon_trap = 0; - e.EndurCost = 0; - e.EndurTimerIndex = 0; - e.IsDiscipline = 0; - e.field169 = 0; - e.field170 = 0; - e.field171 = 0; - e.field172 = 0; - e.HateAdded = 0; - e.EndurUpkeep = 0; - e.numhitstype = 0; - e.numhits = 0; - e.pvpresistbase = -150; - e.pvpresistcalc = 100; - e.pvpresistcap = -150; - e.spell_category = -99; - e.pvp_duration = 0; - e.pvp_duration_cap = 0; - e.pcnpc_only_flag = 0; - e.cast_not_standing = 0; - e.can_mgb = 0; - e.nodispell = -1; - e.npc_category = 0; - e.npc_usefulness = 0; - e.MinResist = 0; - e.MaxResist = 0; - e.viral_targets = 0; - e.viral_timer = 0; - e.nimbuseffect = 0; - e.ConeStartAngle = 0; - e.ConeStopAngle = 0; - e.sneaking = 0; - e.not_extendable = 0; - e.no_detrimental_spell_aggro = 0; - e.field199 = 1; - e.suspendable = 0; - e.viral_range = 0; - e.songcap = 0; - e.field203 = 0; - e.field204 = 0; - e.no_block = 0; - e.field206 = -1; - e.spellgroup = 0; - e.rank_ = 0; - e.no_resist = 0; - e.field210 = 1; - e.CastRestriction = 0; - e.allowrest = 0; - e.InCombat = 0; - e.OutofCombat = 0; - e.field215 = 0; - e.field216 = 0; - e.override_crit_chance = 0; - e.aemaxtargets = 0; - e.maxtargets = 0; - e.no_heal_damage_item_mod = 0; - e.caster_requirement_id = 0; - e.spell_class = 0; - e.spell_subclass = 0; - e.persistdeath = 0; - e.field225 = 0; - e.field226 = 0; - e.min_dist = 0; - e.min_dist_mod = 0; - e.max_dist = 0; - e.max_dist_mod = 0; - e.min_range = 0; - e.no_remove = 0; - e.field233 = 0; - e.field234 = 0; - e.field235 = 0; - e.field236 = 0; + e.id = 0; + e.name = ""; + e.player_1 = "BLUE_TRAIL"; + e.teleport_zone = ""; + e.you_cast = ""; + e.other_casts = ""; + e.cast_on_you = ""; + e.cast_on_other = ""; + e.spell_fades = ""; + e.range_ = 100; + e.aoerange = 0; + e.pushback = 0; + e.pushup = 0; + e.cast_time = 0; + e.recovery_time = 0; + e.recast_time = 0; + e.buffdurationformula = 7; + e.buffduration = 65; + e.AEDuration = 0; + e.mana = 0; + e.effect_base_value1 = 100; + e.effect_base_value2 = 0; + e.effect_base_value3 = 0; + e.effect_base_value4 = 0; + e.effect_base_value5 = 0; + e.effect_base_value6 = 0; + e.effect_base_value7 = 0; + e.effect_base_value8 = 0; + e.effect_base_value9 = 0; + e.effect_base_value10 = 0; + e.effect_base_value11 = 0; + e.effect_base_value12 = 0; + e.effect_limit_value1 = 0; + e.effect_limit_value2 = 0; + e.effect_limit_value3 = 0; + e.effect_limit_value4 = 0; + e.effect_limit_value5 = 0; + e.effect_limit_value6 = 0; + e.effect_limit_value7 = 0; + e.effect_limit_value8 = 0; + e.effect_limit_value9 = 0; + e.effect_limit_value10 = 0; + e.effect_limit_value11 = 0; + e.effect_limit_value12 = 0; + e.max1 = 0; + e.max2 = 0; + e.max3 = 0; + e.max4 = 0; + e.max5 = 0; + e.max6 = 0; + e.max7 = 0; + e.max8 = 0; + e.max9 = 0; + e.max10 = 0; + e.max11 = 0; + e.max12 = 0; + e.icon = 0; + e.memicon = 0; + e.components1 = -1; + e.components2 = -1; + e.components3 = -1; + e.components4 = -1; + e.component_counts1 = 1; + e.component_counts2 = 1; + e.component_counts3 = 1; + e.component_counts4 = 1; + e.NoexpendReagent1 = -1; + e.NoexpendReagent2 = -1; + e.NoexpendReagent3 = -1; + e.NoexpendReagent4 = -1; + e.formula1 = 100; + e.formula2 = 100; + e.formula3 = 100; + e.formula4 = 100; + e.formula5 = 100; + e.formula6 = 100; + e.formula7 = 100; + e.formula8 = 100; + e.formula9 = 100; + e.formula10 = 100; + e.formula11 = 100; + e.formula12 = 100; + e.LightType = 0; + e.goodEffect = 0; + e.Activated = 0; + e.resisttype = 0; + e.effectid1 = 254; + e.effectid2 = 254; + e.effectid3 = 254; + e.effectid4 = 254; + e.effectid5 = 254; + e.effectid6 = 254; + e.effectid7 = 254; + e.effectid8 = 254; + e.effectid9 = 254; + e.effectid10 = 254; + e.effectid11 = 254; + e.effectid12 = 254; + e.targettype = 2; + e.basediff = 0; + e.skill = 98; + e.zonetype = -1; + e.EnvironmentType = 0; + e.TimeOfDay = 0; + e.classes1 = 255; + e.classes2 = 255; + e.classes3 = 255; + e.classes4 = 255; + e.classes5 = 255; + e.classes6 = 255; + e.classes7 = 255; + e.classes8 = 255; + e.classes9 = 255; + e.classes10 = 255; + e.classes11 = 255; + e.classes12 = 255; + e.classes13 = 255; + e.classes14 = 255; + e.classes15 = 255; + e.classes16 = 255; + e.CastingAnim = 44; + e.TargetAnim = 13; + e.TravelType = 0; + e.SpellAffectIndex = -1; + e.disallow_sit = 0; + e.deities0 = 0; + e.deities1 = 0; + e.deities2 = 0; + e.deities3 = 0; + e.deities4 = 0; + e.deities5 = 0; + e.deities6 = 0; + e.deities7 = 0; + e.deities8 = 0; + e.deities9 = 0; + e.deities10 = 0; + e.deities11 = 0; + e.deities12 = 0; + e.deities13 = 0; + e.deities14 = 0; + e.deities15 = 0; + e.deities16 = 0; + e.field142 = 100; + e.field143 = 0; + e.new_icon = 161; + e.spellanim = 0; + e.uninterruptable = 0; + e.ResistDiff = -150; + e.dot_stacking_exempt = 0; + e.deleteable = 0; + e.RecourseLink = 0; + e.no_partial_resist = 0; + e.field152 = 0; + e.field153 = 0; + e.short_buff_box = -1; + e.descnum = 0; + e.typedescnum = 0; + e.effectdescnum = 0; + e.effectdescnum2 = 0; + e.npc_no_los = 0; + e.field160 = 0; + e.reflectable = 0; + e.bonushate = 0; + e.field163 = 100; + e.field164 = -150; + e.ldon_trap = 0; + e.EndurCost = 0; + e.EndurTimerIndex = 0; + e.IsDiscipline = 0; + e.field169 = 0; + e.field170 = 0; + e.field171 = 0; + e.field172 = 0; + e.HateAdded = 0; + e.EndurUpkeep = 0; + e.numhitstype = 0; + e.numhits = 0; + e.pvpresistbase = -150; + e.pvpresistcalc = 100; + e.pvpresistcap = -150; + e.spell_category = -99; + e.pvp_duration = 0; + e.pvp_duration_cap = 0; + e.pcnpc_only_flag = 0; + e.cast_not_standing = 0; + e.can_mgb = 0; + e.nodispell = -1; + e.npc_category = 0; + e.npc_usefulness = 0; + e.MinResist = 0; + e.MaxResist = 0; + e.viral_targets = 0; + e.viral_timer = 0; + e.nimbuseffect = 0; + e.ConeStartAngle = 0; + e.ConeStopAngle = 0; + e.sneaking = 0; + e.not_extendable = 0; + e.field198 = 0; + e.field199 = 1; + e.suspendable = 0; + e.viral_range = 0; + e.songcap = 0; + e.field203 = 0; + e.field204 = 0; + e.no_block = 0; + e.field206 = -1; + e.spellgroup = 0; + e.rank_ = 0; + e.field209 = 0; + e.field210 = 1; + e.CastRestriction = 0; + e.allowrest = 0; + e.InCombat = 0; + e.OutofCombat = 0; + e.field215 = 0; + e.field216 = 0; + e.field217 = 0; + e.aemaxtargets = 0; + e.maxtargets = 0; + e.field220 = 0; + e.field221 = 0; + e.field222 = 0; + e.field223 = 0; + e.persistdeath = 0; + e.field225 = 0; + e.field226 = 0; + e.min_dist = 0; + e.min_dist_mod = 0; + e.max_dist = 0; + e.max_dist_mod = 0; + e.min_range = 0; + e.field232 = 0; + e.field233 = 0; + e.field234 = 0; + e.field235 = 0; + e.field236 = 0; return e; } @@ -1059,243 +1059,243 @@ public: if (results.RowCount() == 1) { SpellsNew e{}; - e.id = row[0] ? static_cast(atoi(row[0])) : 0; - e.name = row[1] ? row[1] : ""; - e.player_1 = row[2] ? row[2] : "BLUE_TRAIL"; - e.teleport_zone = row[3] ? row[3] : ""; - e.you_cast = row[4] ? row[4] : ""; - e.other_casts = row[5] ? row[5] : ""; - e.cast_on_you = row[6] ? row[6] : ""; - e.cast_on_other = row[7] ? row[7] : ""; - e.spell_fades = row[8] ? row[8] : ""; - e.range_ = row[9] ? static_cast(atoi(row[9])) : 100; - e.aoerange = row[10] ? static_cast(atoi(row[10])) : 0; - e.pushback = row[11] ? static_cast(atoi(row[11])) : 0; - e.pushup = row[12] ? static_cast(atoi(row[12])) : 0; - e.cast_time = row[13] ? static_cast(atoi(row[13])) : 0; - e.recovery_time = row[14] ? static_cast(atoi(row[14])) : 0; - e.recast_time = row[15] ? static_cast(atoi(row[15])) : 0; - e.buffdurationformula = row[16] ? static_cast(atoi(row[16])) : 7; - e.buffduration = row[17] ? static_cast(atoi(row[17])) : 65; - e.AEDuration = row[18] ? static_cast(atoi(row[18])) : 0; - e.mana = row[19] ? static_cast(atoi(row[19])) : 0; - e.effect_base_value1 = row[20] ? static_cast(atoi(row[20])) : 100; - e.effect_base_value2 = row[21] ? static_cast(atoi(row[21])) : 0; - e.effect_base_value3 = row[22] ? static_cast(atoi(row[22])) : 0; - e.effect_base_value4 = row[23] ? static_cast(atoi(row[23])) : 0; - e.effect_base_value5 = row[24] ? static_cast(atoi(row[24])) : 0; - e.effect_base_value6 = row[25] ? static_cast(atoi(row[25])) : 0; - e.effect_base_value7 = row[26] ? static_cast(atoi(row[26])) : 0; - e.effect_base_value8 = row[27] ? static_cast(atoi(row[27])) : 0; - e.effect_base_value9 = row[28] ? static_cast(atoi(row[28])) : 0; - e.effect_base_value10 = row[29] ? static_cast(atoi(row[29])) : 0; - e.effect_base_value11 = row[30] ? static_cast(atoi(row[30])) : 0; - e.effect_base_value12 = row[31] ? static_cast(atoi(row[31])) : 0; - e.effect_limit_value1 = row[32] ? static_cast(atoi(row[32])) : 0; - e.effect_limit_value2 = row[33] ? static_cast(atoi(row[33])) : 0; - e.effect_limit_value3 = row[34] ? static_cast(atoi(row[34])) : 0; - e.effect_limit_value4 = row[35] ? static_cast(atoi(row[35])) : 0; - e.effect_limit_value5 = row[36] ? static_cast(atoi(row[36])) : 0; - e.effect_limit_value6 = row[37] ? static_cast(atoi(row[37])) : 0; - e.effect_limit_value7 = row[38] ? static_cast(atoi(row[38])) : 0; - e.effect_limit_value8 = row[39] ? static_cast(atoi(row[39])) : 0; - e.effect_limit_value9 = row[40] ? static_cast(atoi(row[40])) : 0; - e.effect_limit_value10 = row[41] ? static_cast(atoi(row[41])) : 0; - e.effect_limit_value11 = row[42] ? static_cast(atoi(row[42])) : 0; - e.effect_limit_value12 = row[43] ? static_cast(atoi(row[43])) : 0; - e.max1 = row[44] ? static_cast(atoi(row[44])) : 0; - e.max2 = row[45] ? static_cast(atoi(row[45])) : 0; - e.max3 = row[46] ? static_cast(atoi(row[46])) : 0; - e.max4 = row[47] ? static_cast(atoi(row[47])) : 0; - e.max5 = row[48] ? static_cast(atoi(row[48])) : 0; - e.max6 = row[49] ? static_cast(atoi(row[49])) : 0; - e.max7 = row[50] ? static_cast(atoi(row[50])) : 0; - e.max8 = row[51] ? static_cast(atoi(row[51])) : 0; - e.max9 = row[52] ? static_cast(atoi(row[52])) : 0; - e.max10 = row[53] ? static_cast(atoi(row[53])) : 0; - e.max11 = row[54] ? static_cast(atoi(row[54])) : 0; - e.max12 = row[55] ? static_cast(atoi(row[55])) : 0; - e.icon = row[56] ? static_cast(atoi(row[56])) : 0; - e.memicon = row[57] ? static_cast(atoi(row[57])) : 0; - e.components1 = row[58] ? static_cast(atoi(row[58])) : -1; - e.components2 = row[59] ? static_cast(atoi(row[59])) : -1; - e.components3 = row[60] ? static_cast(atoi(row[60])) : -1; - e.components4 = row[61] ? static_cast(atoi(row[61])) : -1; - e.component_counts1 = row[62] ? static_cast(atoi(row[62])) : 1; - e.component_counts2 = row[63] ? static_cast(atoi(row[63])) : 1; - e.component_counts3 = row[64] ? static_cast(atoi(row[64])) : 1; - e.component_counts4 = row[65] ? static_cast(atoi(row[65])) : 1; - e.NoexpendReagent1 = row[66] ? static_cast(atoi(row[66])) : -1; - e.NoexpendReagent2 = row[67] ? static_cast(atoi(row[67])) : -1; - e.NoexpendReagent3 = row[68] ? static_cast(atoi(row[68])) : -1; - e.NoexpendReagent4 = row[69] ? static_cast(atoi(row[69])) : -1; - e.formula1 = row[70] ? static_cast(atoi(row[70])) : 100; - e.formula2 = row[71] ? static_cast(atoi(row[71])) : 100; - e.formula3 = row[72] ? static_cast(atoi(row[72])) : 100; - e.formula4 = row[73] ? static_cast(atoi(row[73])) : 100; - e.formula5 = row[74] ? static_cast(atoi(row[74])) : 100; - e.formula6 = row[75] ? static_cast(atoi(row[75])) : 100; - e.formula7 = row[76] ? static_cast(atoi(row[76])) : 100; - e.formula8 = row[77] ? static_cast(atoi(row[77])) : 100; - e.formula9 = row[78] ? static_cast(atoi(row[78])) : 100; - e.formula10 = row[79] ? static_cast(atoi(row[79])) : 100; - e.formula11 = row[80] ? static_cast(atoi(row[80])) : 100; - e.formula12 = row[81] ? static_cast(atoi(row[81])) : 100; - e.LightType = row[82] ? static_cast(atoi(row[82])) : 0; - e.goodEffect = row[83] ? static_cast(atoi(row[83])) : 0; - e.Activated = row[84] ? static_cast(atoi(row[84])) : 0; - e.resisttype = row[85] ? static_cast(atoi(row[85])) : 0; - e.effectid1 = row[86] ? static_cast(atoi(row[86])) : 254; - e.effectid2 = row[87] ? static_cast(atoi(row[87])) : 254; - e.effectid3 = row[88] ? static_cast(atoi(row[88])) : 254; - e.effectid4 = row[89] ? static_cast(atoi(row[89])) : 254; - e.effectid5 = row[90] ? static_cast(atoi(row[90])) : 254; - e.effectid6 = row[91] ? static_cast(atoi(row[91])) : 254; - e.effectid7 = row[92] ? static_cast(atoi(row[92])) : 254; - e.effectid8 = row[93] ? static_cast(atoi(row[93])) : 254; - e.effectid9 = row[94] ? static_cast(atoi(row[94])) : 254; - e.effectid10 = row[95] ? static_cast(atoi(row[95])) : 254; - e.effectid11 = row[96] ? static_cast(atoi(row[96])) : 254; - e.effectid12 = row[97] ? static_cast(atoi(row[97])) : 254; - e.targettype = row[98] ? static_cast(atoi(row[98])) : 2; - e.basediff = row[99] ? static_cast(atoi(row[99])) : 0; - e.skill = row[100] ? static_cast(atoi(row[100])) : 98; - e.zonetype = row[101] ? static_cast(atoi(row[101])) : -1; - e.EnvironmentType = row[102] ? static_cast(atoi(row[102])) : 0; - e.TimeOfDay = row[103] ? static_cast(atoi(row[103])) : 0; - e.classes1 = row[104] ? static_cast(atoi(row[104])) : 255; - e.classes2 = row[105] ? static_cast(atoi(row[105])) : 255; - e.classes3 = row[106] ? static_cast(atoi(row[106])) : 255; - e.classes4 = row[107] ? static_cast(atoi(row[107])) : 255; - e.classes5 = row[108] ? static_cast(atoi(row[108])) : 255; - e.classes6 = row[109] ? static_cast(atoi(row[109])) : 255; - e.classes7 = row[110] ? static_cast(atoi(row[110])) : 255; - e.classes8 = row[111] ? static_cast(atoi(row[111])) : 255; - e.classes9 = row[112] ? static_cast(atoi(row[112])) : 255; - e.classes10 = row[113] ? static_cast(atoi(row[113])) : 255; - e.classes11 = row[114] ? static_cast(atoi(row[114])) : 255; - e.classes12 = row[115] ? static_cast(atoi(row[115])) : 255; - e.classes13 = row[116] ? static_cast(atoi(row[116])) : 255; - e.classes14 = row[117] ? static_cast(atoi(row[117])) : 255; - e.classes15 = row[118] ? static_cast(atoi(row[118])) : 255; - e.classes16 = row[119] ? static_cast(atoi(row[119])) : 255; - e.CastingAnim = row[120] ? static_cast(atoi(row[120])) : 44; - e.TargetAnim = row[121] ? static_cast(atoi(row[121])) : 13; - e.TravelType = row[122] ? static_cast(atoi(row[122])) : 0; - e.SpellAffectIndex = row[123] ? static_cast(atoi(row[123])) : -1; - e.disallow_sit = row[124] ? static_cast(atoi(row[124])) : 0; - e.deities0 = row[125] ? static_cast(atoi(row[125])) : 0; - e.deities1 = row[126] ? static_cast(atoi(row[126])) : 0; - e.deities2 = row[127] ? static_cast(atoi(row[127])) : 0; - e.deities3 = row[128] ? static_cast(atoi(row[128])) : 0; - e.deities4 = row[129] ? static_cast(atoi(row[129])) : 0; - e.deities5 = row[130] ? static_cast(atoi(row[130])) : 0; - e.deities6 = row[131] ? static_cast(atoi(row[131])) : 0; - e.deities7 = row[132] ? static_cast(atoi(row[132])) : 0; - e.deities8 = row[133] ? static_cast(atoi(row[133])) : 0; - e.deities9 = row[134] ? static_cast(atoi(row[134])) : 0; - e.deities10 = row[135] ? static_cast(atoi(row[135])) : 0; - e.deities11 = row[136] ? static_cast(atoi(row[136])) : 0; - e.deities12 = row[137] ? static_cast(atoi(row[137])) : 0; - e.deities13 = row[138] ? static_cast(atoi(row[138])) : 0; - e.deities14 = row[139] ? static_cast(atoi(row[139])) : 0; - e.deities15 = row[140] ? static_cast(atoi(row[140])) : 0; - e.deities16 = row[141] ? static_cast(atoi(row[141])) : 0; - e.field142 = row[142] ? static_cast(atoi(row[142])) : 100; - e.field143 = row[143] ? static_cast(atoi(row[143])) : 0; - e.new_icon = row[144] ? static_cast(atoi(row[144])) : 161; - e.spellanim = row[145] ? static_cast(atoi(row[145])) : 0; - e.uninterruptable = row[146] ? static_cast(atoi(row[146])) : 0; - e.ResistDiff = row[147] ? static_cast(atoi(row[147])) : -150; - e.dot_stacking_exempt = row[148] ? static_cast(atoi(row[148])) : 0; - e.deleteable = row[149] ? static_cast(atoi(row[149])) : 0; - e.RecourseLink = row[150] ? static_cast(atoi(row[150])) : 0; - e.no_partial_resist = row[151] ? static_cast(atoi(row[151])) : 0; - e.field152 = row[152] ? static_cast(atoi(row[152])) : 0; - e.field153 = row[153] ? static_cast(atoi(row[153])) : 0; - e.short_buff_box = row[154] ? static_cast(atoi(row[154])) : -1; - e.descnum = row[155] ? static_cast(atoi(row[155])) : 0; - e.typedescnum = row[156] ? static_cast(atoi(row[156])) : 0; - e.effectdescnum = row[157] ? static_cast(atoi(row[157])) : 0; - e.effectdescnum2 = row[158] ? static_cast(atoi(row[158])) : 0; - e.npc_no_los = row[159] ? static_cast(atoi(row[159])) : 0; - e.feedbackable = row[160] ? static_cast(atoi(row[160])) : 0; - e.reflectable = row[161] ? static_cast(atoi(row[161])) : 0; - e.bonushate = row[162] ? static_cast(atoi(row[162])) : 0; - e.field163 = row[163] ? static_cast(atoi(row[163])) : 100; - e.field164 = row[164] ? static_cast(atoi(row[164])) : -150; - e.ldon_trap = row[165] ? static_cast(atoi(row[165])) : 0; - e.EndurCost = row[166] ? static_cast(atoi(row[166])) : 0; - e.EndurTimerIndex = row[167] ? static_cast(atoi(row[167])) : 0; - e.IsDiscipline = row[168] ? static_cast(atoi(row[168])) : 0; - e.field169 = row[169] ? static_cast(atoi(row[169])) : 0; - e.field170 = row[170] ? static_cast(atoi(row[170])) : 0; - e.field171 = row[171] ? static_cast(atoi(row[171])) : 0; - e.field172 = row[172] ? static_cast(atoi(row[172])) : 0; - e.HateAdded = row[173] ? static_cast(atoi(row[173])) : 0; - e.EndurUpkeep = row[174] ? static_cast(atoi(row[174])) : 0; - e.numhitstype = row[175] ? static_cast(atoi(row[175])) : 0; - e.numhits = row[176] ? static_cast(atoi(row[176])) : 0; - e.pvpresistbase = row[177] ? static_cast(atoi(row[177])) : -150; - e.pvpresistcalc = row[178] ? static_cast(atoi(row[178])) : 100; - e.pvpresistcap = row[179] ? static_cast(atoi(row[179])) : -150; - e.spell_category = row[180] ? static_cast(atoi(row[180])) : -99; - e.pvp_duration = row[181] ? static_cast(atoi(row[181])) : 0; - e.pvp_duration_cap = row[182] ? static_cast(atoi(row[182])) : 0; - e.pcnpc_only_flag = row[183] ? static_cast(atoi(row[183])) : 0; - e.cast_not_standing = row[184] ? static_cast(atoi(row[184])) : 0; - e.can_mgb = row[185] ? static_cast(atoi(row[185])) : 0; - e.nodispell = row[186] ? static_cast(atoi(row[186])) : -1; - e.npc_category = row[187] ? static_cast(atoi(row[187])) : 0; - e.npc_usefulness = row[188] ? static_cast(atoi(row[188])) : 0; - e.MinResist = row[189] ? static_cast(atoi(row[189])) : 0; - e.MaxResist = row[190] ? static_cast(atoi(row[190])) : 0; - e.viral_targets = row[191] ? static_cast(atoi(row[191])) : 0; - e.viral_timer = row[192] ? static_cast(atoi(row[192])) : 0; - e.nimbuseffect = row[193] ? static_cast(atoi(row[193])) : 0; - e.ConeStartAngle = row[194] ? static_cast(atoi(row[194])) : 0; - e.ConeStopAngle = row[195] ? static_cast(atoi(row[195])) : 0; - e.sneaking = row[196] ? static_cast(atoi(row[196])) : 0; - e.not_extendable = row[197] ? static_cast(atoi(row[197])) : 0; - e.no_detrimental_spell_aggro = row[198] ? static_cast(atoi(row[198])) : 0; - e.field199 = row[199] ? static_cast(atoi(row[199])) : 1; - e.suspendable = row[200] ? static_cast(atoi(row[200])) : 0; - e.viral_range = row[201] ? static_cast(atoi(row[201])) : 0; - e.songcap = row[202] ? static_cast(atoi(row[202])) : 0; - e.field203 = row[203] ? static_cast(atoi(row[203])) : 0; - e.field204 = row[204] ? static_cast(atoi(row[204])) : 0; - e.no_block = row[205] ? static_cast(atoi(row[205])) : 0; - e.field206 = row[206] ? static_cast(atoi(row[206])) : -1; - e.spellgroup = row[207] ? static_cast(atoi(row[207])) : 0; - e.rank_ = row[208] ? static_cast(atoi(row[208])) : 0; - e.no_resist = row[209] ? static_cast(atoi(row[209])) : 0; - e.field210 = row[210] ? static_cast(atoi(row[210])) : 1; - e.CastRestriction = row[211] ? static_cast(atoi(row[211])) : 0; - e.allowrest = row[212] ? static_cast(atoi(row[212])) : 0; - e.InCombat = row[213] ? static_cast(atoi(row[213])) : 0; - e.OutofCombat = row[214] ? static_cast(atoi(row[214])) : 0; - e.field215 = row[215] ? static_cast(atoi(row[215])) : 0; - e.field216 = row[216] ? static_cast(atoi(row[216])) : 0; - e.override_crit_chance = row[217] ? static_cast(atoi(row[217])) : 0; - e.aemaxtargets = row[218] ? static_cast(atoi(row[218])) : 0; - e.maxtargets = row[219] ? static_cast(atoi(row[219])) : 0; - e.no_heal_damage_item_mod = row[220] ? static_cast(atoi(row[220])) : 0; - e.caster_requirement_id = row[221] ? static_cast(atoi(row[221])) : 0; - e.spell_class = row[222] ? static_cast(atoi(row[222])) : 0; - e.spell_subclass = row[223] ? static_cast(atoi(row[223])) : 0; - e.persistdeath = row[224] ? static_cast(atoi(row[224])) : 0; - e.field225 = row[225] ? static_cast(atoi(row[225])) : 0; - e.field226 = row[226] ? static_cast(atoi(row[226])) : 0; - e.min_dist = row[227] ? strtof(row[227], nullptr) : 0; - e.min_dist_mod = row[228] ? strtof(row[228], nullptr) : 0; - e.max_dist = row[229] ? strtof(row[229], nullptr) : 0; - e.max_dist_mod = row[230] ? strtof(row[230], nullptr) : 0; - e.min_range = row[231] ? static_cast(atoi(row[231])) : 0; - e.no_remove = row[232] ? static_cast(atoi(row[232])) : 0; - e.field233 = row[233] ? static_cast(atoi(row[233])) : 0; - e.field234 = row[234] ? static_cast(atoi(row[234])) : 0; - e.field235 = row[235] ? static_cast(atoi(row[235])) : 0; - e.field236 = row[236] ? static_cast(atoi(row[236])) : 0; + e.id = row[0] ? static_cast(atoi(row[0])) : 0; + e.name = row[1] ? row[1] : ""; + e.player_1 = row[2] ? row[2] : "BLUE_TRAIL"; + e.teleport_zone = row[3] ? row[3] : ""; + e.you_cast = row[4] ? row[4] : ""; + e.other_casts = row[5] ? row[5] : ""; + e.cast_on_you = row[6] ? row[6] : ""; + e.cast_on_other = row[7] ? row[7] : ""; + e.spell_fades = row[8] ? row[8] : ""; + e.range_ = row[9] ? static_cast(atoi(row[9])) : 100; + e.aoerange = row[10] ? static_cast(atoi(row[10])) : 0; + e.pushback = row[11] ? static_cast(atoi(row[11])) : 0; + e.pushup = row[12] ? static_cast(atoi(row[12])) : 0; + e.cast_time = row[13] ? static_cast(atoi(row[13])) : 0; + e.recovery_time = row[14] ? static_cast(atoi(row[14])) : 0; + e.recast_time = row[15] ? static_cast(atoi(row[15])) : 0; + e.buffdurationformula = row[16] ? static_cast(atoi(row[16])) : 7; + e.buffduration = row[17] ? static_cast(atoi(row[17])) : 65; + e.AEDuration = row[18] ? static_cast(atoi(row[18])) : 0; + e.mana = row[19] ? static_cast(atoi(row[19])) : 0; + e.effect_base_value1 = row[20] ? static_cast(atoi(row[20])) : 100; + e.effect_base_value2 = row[21] ? static_cast(atoi(row[21])) : 0; + e.effect_base_value3 = row[22] ? static_cast(atoi(row[22])) : 0; + e.effect_base_value4 = row[23] ? static_cast(atoi(row[23])) : 0; + e.effect_base_value5 = row[24] ? static_cast(atoi(row[24])) : 0; + e.effect_base_value6 = row[25] ? static_cast(atoi(row[25])) : 0; + e.effect_base_value7 = row[26] ? static_cast(atoi(row[26])) : 0; + e.effect_base_value8 = row[27] ? static_cast(atoi(row[27])) : 0; + e.effect_base_value9 = row[28] ? static_cast(atoi(row[28])) : 0; + e.effect_base_value10 = row[29] ? static_cast(atoi(row[29])) : 0; + e.effect_base_value11 = row[30] ? static_cast(atoi(row[30])) : 0; + e.effect_base_value12 = row[31] ? static_cast(atoi(row[31])) : 0; + e.effect_limit_value1 = row[32] ? static_cast(atoi(row[32])) : 0; + e.effect_limit_value2 = row[33] ? static_cast(atoi(row[33])) : 0; + e.effect_limit_value3 = row[34] ? static_cast(atoi(row[34])) : 0; + e.effect_limit_value4 = row[35] ? static_cast(atoi(row[35])) : 0; + e.effect_limit_value5 = row[36] ? static_cast(atoi(row[36])) : 0; + e.effect_limit_value6 = row[37] ? static_cast(atoi(row[37])) : 0; + e.effect_limit_value7 = row[38] ? static_cast(atoi(row[38])) : 0; + e.effect_limit_value8 = row[39] ? static_cast(atoi(row[39])) : 0; + e.effect_limit_value9 = row[40] ? static_cast(atoi(row[40])) : 0; + e.effect_limit_value10 = row[41] ? static_cast(atoi(row[41])) : 0; + e.effect_limit_value11 = row[42] ? static_cast(atoi(row[42])) : 0; + e.effect_limit_value12 = row[43] ? static_cast(atoi(row[43])) : 0; + e.max1 = row[44] ? static_cast(atoi(row[44])) : 0; + e.max2 = row[45] ? static_cast(atoi(row[45])) : 0; + e.max3 = row[46] ? static_cast(atoi(row[46])) : 0; + e.max4 = row[47] ? static_cast(atoi(row[47])) : 0; + e.max5 = row[48] ? static_cast(atoi(row[48])) : 0; + e.max6 = row[49] ? static_cast(atoi(row[49])) : 0; + e.max7 = row[50] ? static_cast(atoi(row[50])) : 0; + e.max8 = row[51] ? static_cast(atoi(row[51])) : 0; + e.max9 = row[52] ? static_cast(atoi(row[52])) : 0; + e.max10 = row[53] ? static_cast(atoi(row[53])) : 0; + e.max11 = row[54] ? static_cast(atoi(row[54])) : 0; + e.max12 = row[55] ? static_cast(atoi(row[55])) : 0; + e.icon = row[56] ? static_cast(atoi(row[56])) : 0; + e.memicon = row[57] ? static_cast(atoi(row[57])) : 0; + e.components1 = row[58] ? static_cast(atoi(row[58])) : -1; + e.components2 = row[59] ? static_cast(atoi(row[59])) : -1; + e.components3 = row[60] ? static_cast(atoi(row[60])) : -1; + e.components4 = row[61] ? static_cast(atoi(row[61])) : -1; + e.component_counts1 = row[62] ? static_cast(atoi(row[62])) : 1; + e.component_counts2 = row[63] ? static_cast(atoi(row[63])) : 1; + e.component_counts3 = row[64] ? static_cast(atoi(row[64])) : 1; + e.component_counts4 = row[65] ? static_cast(atoi(row[65])) : 1; + e.NoexpendReagent1 = row[66] ? static_cast(atoi(row[66])) : -1; + e.NoexpendReagent2 = row[67] ? static_cast(atoi(row[67])) : -1; + e.NoexpendReagent3 = row[68] ? static_cast(atoi(row[68])) : -1; + e.NoexpendReagent4 = row[69] ? static_cast(atoi(row[69])) : -1; + e.formula1 = row[70] ? static_cast(atoi(row[70])) : 100; + e.formula2 = row[71] ? static_cast(atoi(row[71])) : 100; + e.formula3 = row[72] ? static_cast(atoi(row[72])) : 100; + e.formula4 = row[73] ? static_cast(atoi(row[73])) : 100; + e.formula5 = row[74] ? static_cast(atoi(row[74])) : 100; + e.formula6 = row[75] ? static_cast(atoi(row[75])) : 100; + e.formula7 = row[76] ? static_cast(atoi(row[76])) : 100; + e.formula8 = row[77] ? static_cast(atoi(row[77])) : 100; + e.formula9 = row[78] ? static_cast(atoi(row[78])) : 100; + e.formula10 = row[79] ? static_cast(atoi(row[79])) : 100; + e.formula11 = row[80] ? static_cast(atoi(row[80])) : 100; + e.formula12 = row[81] ? static_cast(atoi(row[81])) : 100; + e.LightType = row[82] ? static_cast(atoi(row[82])) : 0; + e.goodEffect = row[83] ? static_cast(atoi(row[83])) : 0; + e.Activated = row[84] ? static_cast(atoi(row[84])) : 0; + e.resisttype = row[85] ? static_cast(atoi(row[85])) : 0; + e.effectid1 = row[86] ? static_cast(atoi(row[86])) : 254; + e.effectid2 = row[87] ? static_cast(atoi(row[87])) : 254; + e.effectid3 = row[88] ? static_cast(atoi(row[88])) : 254; + e.effectid4 = row[89] ? static_cast(atoi(row[89])) : 254; + e.effectid5 = row[90] ? static_cast(atoi(row[90])) : 254; + e.effectid6 = row[91] ? static_cast(atoi(row[91])) : 254; + e.effectid7 = row[92] ? static_cast(atoi(row[92])) : 254; + e.effectid8 = row[93] ? static_cast(atoi(row[93])) : 254; + e.effectid9 = row[94] ? static_cast(atoi(row[94])) : 254; + e.effectid10 = row[95] ? static_cast(atoi(row[95])) : 254; + e.effectid11 = row[96] ? static_cast(atoi(row[96])) : 254; + e.effectid12 = row[97] ? static_cast(atoi(row[97])) : 254; + e.targettype = row[98] ? static_cast(atoi(row[98])) : 2; + e.basediff = row[99] ? static_cast(atoi(row[99])) : 0; + e.skill = row[100] ? static_cast(atoi(row[100])) : 98; + e.zonetype = row[101] ? static_cast(atoi(row[101])) : -1; + e.EnvironmentType = row[102] ? static_cast(atoi(row[102])) : 0; + e.TimeOfDay = row[103] ? static_cast(atoi(row[103])) : 0; + e.classes1 = row[104] ? static_cast(atoi(row[104])) : 255; + e.classes2 = row[105] ? static_cast(atoi(row[105])) : 255; + e.classes3 = row[106] ? static_cast(atoi(row[106])) : 255; + e.classes4 = row[107] ? static_cast(atoi(row[107])) : 255; + e.classes5 = row[108] ? static_cast(atoi(row[108])) : 255; + e.classes6 = row[109] ? static_cast(atoi(row[109])) : 255; + e.classes7 = row[110] ? static_cast(atoi(row[110])) : 255; + e.classes8 = row[111] ? static_cast(atoi(row[111])) : 255; + e.classes9 = row[112] ? static_cast(atoi(row[112])) : 255; + e.classes10 = row[113] ? static_cast(atoi(row[113])) : 255; + e.classes11 = row[114] ? static_cast(atoi(row[114])) : 255; + e.classes12 = row[115] ? static_cast(atoi(row[115])) : 255; + e.classes13 = row[116] ? static_cast(atoi(row[116])) : 255; + e.classes14 = row[117] ? static_cast(atoi(row[117])) : 255; + e.classes15 = row[118] ? static_cast(atoi(row[118])) : 255; + e.classes16 = row[119] ? static_cast(atoi(row[119])) : 255; + e.CastingAnim = row[120] ? static_cast(atoi(row[120])) : 44; + e.TargetAnim = row[121] ? static_cast(atoi(row[121])) : 13; + e.TravelType = row[122] ? static_cast(atoi(row[122])) : 0; + e.SpellAffectIndex = row[123] ? static_cast(atoi(row[123])) : -1; + e.disallow_sit = row[124] ? static_cast(atoi(row[124])) : 0; + e.deities0 = row[125] ? static_cast(atoi(row[125])) : 0; + e.deities1 = row[126] ? static_cast(atoi(row[126])) : 0; + e.deities2 = row[127] ? static_cast(atoi(row[127])) : 0; + e.deities3 = row[128] ? static_cast(atoi(row[128])) : 0; + e.deities4 = row[129] ? static_cast(atoi(row[129])) : 0; + e.deities5 = row[130] ? static_cast(atoi(row[130])) : 0; + e.deities6 = row[131] ? static_cast(atoi(row[131])) : 0; + e.deities7 = row[132] ? static_cast(atoi(row[132])) : 0; + e.deities8 = row[133] ? static_cast(atoi(row[133])) : 0; + e.deities9 = row[134] ? static_cast(atoi(row[134])) : 0; + e.deities10 = row[135] ? static_cast(atoi(row[135])) : 0; + e.deities11 = row[136] ? static_cast(atoi(row[136])) : 0; + e.deities12 = row[137] ? static_cast(atoi(row[137])) : 0; + e.deities13 = row[138] ? static_cast(atoi(row[138])) : 0; + e.deities14 = row[139] ? static_cast(atoi(row[139])) : 0; + e.deities15 = row[140] ? static_cast(atoi(row[140])) : 0; + e.deities16 = row[141] ? static_cast(atoi(row[141])) : 0; + e.field142 = row[142] ? static_cast(atoi(row[142])) : 100; + e.field143 = row[143] ? static_cast(atoi(row[143])) : 0; + e.new_icon = row[144] ? static_cast(atoi(row[144])) : 161; + e.spellanim = row[145] ? static_cast(atoi(row[145])) : 0; + e.uninterruptable = row[146] ? static_cast(atoi(row[146])) : 0; + e.ResistDiff = row[147] ? static_cast(atoi(row[147])) : -150; + e.dot_stacking_exempt = row[148] ? static_cast(atoi(row[148])) : 0; + e.deleteable = row[149] ? static_cast(atoi(row[149])) : 0; + e.RecourseLink = row[150] ? static_cast(atoi(row[150])) : 0; + e.no_partial_resist = row[151] ? static_cast(atoi(row[151])) : 0; + e.field152 = row[152] ? static_cast(atoi(row[152])) : 0; + e.field153 = row[153] ? static_cast(atoi(row[153])) : 0; + e.short_buff_box = row[154] ? static_cast(atoi(row[154])) : -1; + e.descnum = row[155] ? static_cast(atoi(row[155])) : 0; + e.typedescnum = row[156] ? static_cast(atoi(row[156])) : 0; + e.effectdescnum = row[157] ? static_cast(atoi(row[157])) : 0; + e.effectdescnum2 = row[158] ? static_cast(atoi(row[158])) : 0; + e.npc_no_los = row[159] ? static_cast(atoi(row[159])) : 0; + e.field160 = row[160] ? static_cast(atoi(row[160])) : 0; + e.reflectable = row[161] ? static_cast(atoi(row[161])) : 0; + e.bonushate = row[162] ? static_cast(atoi(row[162])) : 0; + e.field163 = row[163] ? static_cast(atoi(row[163])) : 100; + e.field164 = row[164] ? static_cast(atoi(row[164])) : -150; + e.ldon_trap = row[165] ? static_cast(atoi(row[165])) : 0; + e.EndurCost = row[166] ? static_cast(atoi(row[166])) : 0; + e.EndurTimerIndex = row[167] ? static_cast(atoi(row[167])) : 0; + e.IsDiscipline = row[168] ? static_cast(atoi(row[168])) : 0; + e.field169 = row[169] ? static_cast(atoi(row[169])) : 0; + e.field170 = row[170] ? static_cast(atoi(row[170])) : 0; + e.field171 = row[171] ? static_cast(atoi(row[171])) : 0; + e.field172 = row[172] ? static_cast(atoi(row[172])) : 0; + e.HateAdded = row[173] ? static_cast(atoi(row[173])) : 0; + e.EndurUpkeep = row[174] ? static_cast(atoi(row[174])) : 0; + e.numhitstype = row[175] ? static_cast(atoi(row[175])) : 0; + e.numhits = row[176] ? static_cast(atoi(row[176])) : 0; + e.pvpresistbase = row[177] ? static_cast(atoi(row[177])) : -150; + e.pvpresistcalc = row[178] ? static_cast(atoi(row[178])) : 100; + e.pvpresistcap = row[179] ? static_cast(atoi(row[179])) : -150; + e.spell_category = row[180] ? static_cast(atoi(row[180])) : -99; + e.pvp_duration = row[181] ? static_cast(atoi(row[181])) : 0; + e.pvp_duration_cap = row[182] ? static_cast(atoi(row[182])) : 0; + e.pcnpc_only_flag = row[183] ? static_cast(atoi(row[183])) : 0; + e.cast_not_standing = row[184] ? static_cast(atoi(row[184])) : 0; + e.can_mgb = row[185] ? static_cast(atoi(row[185])) : 0; + e.nodispell = row[186] ? static_cast(atoi(row[186])) : -1; + e.npc_category = row[187] ? static_cast(atoi(row[187])) : 0; + e.npc_usefulness = row[188] ? static_cast(atoi(row[188])) : 0; + e.MinResist = row[189] ? static_cast(atoi(row[189])) : 0; + e.MaxResist = row[190] ? static_cast(atoi(row[190])) : 0; + e.viral_targets = row[191] ? static_cast(atoi(row[191])) : 0; + e.viral_timer = row[192] ? static_cast(atoi(row[192])) : 0; + e.nimbuseffect = row[193] ? static_cast(atoi(row[193])) : 0; + e.ConeStartAngle = row[194] ? static_cast(atoi(row[194])) : 0; + e.ConeStopAngle = row[195] ? static_cast(atoi(row[195])) : 0; + e.sneaking = row[196] ? static_cast(atoi(row[196])) : 0; + e.not_extendable = row[197] ? static_cast(atoi(row[197])) : 0; + e.field198 = row[198] ? static_cast(atoi(row[198])) : 0; + e.field199 = row[199] ? static_cast(atoi(row[199])) : 1; + e.suspendable = row[200] ? static_cast(atoi(row[200])) : 0; + e.viral_range = row[201] ? static_cast(atoi(row[201])) : 0; + e.songcap = row[202] ? static_cast(atoi(row[202])) : 0; + e.field203 = row[203] ? static_cast(atoi(row[203])) : 0; + e.field204 = row[204] ? static_cast(atoi(row[204])) : 0; + e.no_block = row[205] ? static_cast(atoi(row[205])) : 0; + e.field206 = row[206] ? static_cast(atoi(row[206])) : -1; + e.spellgroup = row[207] ? static_cast(atoi(row[207])) : 0; + e.rank_ = row[208] ? static_cast(atoi(row[208])) : 0; + e.field209 = row[209] ? static_cast(atoi(row[209])) : 0; + e.field210 = row[210] ? static_cast(atoi(row[210])) : 1; + e.CastRestriction = row[211] ? static_cast(atoi(row[211])) : 0; + e.allowrest = row[212] ? static_cast(atoi(row[212])) : 0; + e.InCombat = row[213] ? static_cast(atoi(row[213])) : 0; + e.OutofCombat = row[214] ? static_cast(atoi(row[214])) : 0; + e.field215 = row[215] ? static_cast(atoi(row[215])) : 0; + e.field216 = row[216] ? static_cast(atoi(row[216])) : 0; + e.field217 = row[217] ? static_cast(atoi(row[217])) : 0; + e.aemaxtargets = row[218] ? static_cast(atoi(row[218])) : 0; + e.maxtargets = row[219] ? static_cast(atoi(row[219])) : 0; + e.field220 = row[220] ? static_cast(atoi(row[220])) : 0; + e.field221 = row[221] ? static_cast(atoi(row[221])) : 0; + e.field222 = row[222] ? static_cast(atoi(row[222])) : 0; + e.field223 = row[223] ? static_cast(atoi(row[223])) : 0; + e.persistdeath = row[224] ? static_cast(atoi(row[224])) : 0; + e.field225 = row[225] ? static_cast(atoi(row[225])) : 0; + e.field226 = row[226] ? static_cast(atoi(row[226])) : 0; + e.min_dist = row[227] ? strtof(row[227], nullptr) : 0; + e.min_dist_mod = row[228] ? strtof(row[228], nullptr) : 0; + e.max_dist = row[229] ? strtof(row[229], nullptr) : 0; + e.max_dist_mod = row[230] ? strtof(row[230], nullptr) : 0; + e.min_range = row[231] ? static_cast(atoi(row[231])) : 0; + e.field232 = row[232] ? static_cast(atoi(row[232])) : 0; + e.field233 = row[233] ? static_cast(atoi(row[233])) : 0; + e.field234 = row[234] ? static_cast(atoi(row[234])) : 0; + e.field235 = row[235] ? static_cast(atoi(row[235])) : 0; + e.field236 = row[236] ? static_cast(atoi(row[236])) : 0; return e; } @@ -1489,7 +1489,7 @@ public: v.push_back(columns[157] + " = " + std::to_string(e.effectdescnum)); v.push_back(columns[158] + " = " + std::to_string(e.effectdescnum2)); v.push_back(columns[159] + " = " + std::to_string(e.npc_no_los)); - v.push_back(columns[160] + " = " + std::to_string(e.feedbackable)); + v.push_back(columns[160] + " = " + std::to_string(e.field160)); v.push_back(columns[161] + " = " + std::to_string(e.reflectable)); v.push_back(columns[162] + " = " + std::to_string(e.bonushate)); v.push_back(columns[163] + " = " + std::to_string(e.field163)); @@ -1527,7 +1527,7 @@ public: v.push_back(columns[195] + " = " + std::to_string(e.ConeStopAngle)); v.push_back(columns[196] + " = " + std::to_string(e.sneaking)); v.push_back(columns[197] + " = " + std::to_string(e.not_extendable)); - v.push_back(columns[198] + " = " + std::to_string(e.no_detrimental_spell_aggro)); + v.push_back(columns[198] + " = " + std::to_string(e.field198)); v.push_back(columns[199] + " = " + std::to_string(e.field199)); v.push_back(columns[200] + " = " + std::to_string(e.suspendable)); v.push_back(columns[201] + " = " + std::to_string(e.viral_range)); @@ -1538,7 +1538,7 @@ public: v.push_back(columns[206] + " = " + std::to_string(e.field206)); v.push_back(columns[207] + " = " + std::to_string(e.spellgroup)); v.push_back(columns[208] + " = " + std::to_string(e.rank_)); - v.push_back(columns[209] + " = " + std::to_string(e.no_resist)); + v.push_back(columns[209] + " = " + std::to_string(e.field209)); v.push_back(columns[210] + " = " + std::to_string(e.field210)); v.push_back(columns[211] + " = " + std::to_string(e.CastRestriction)); v.push_back(columns[212] + " = " + std::to_string(e.allowrest)); @@ -1546,13 +1546,13 @@ public: v.push_back(columns[214] + " = " + std::to_string(e.OutofCombat)); v.push_back(columns[215] + " = " + std::to_string(e.field215)); v.push_back(columns[216] + " = " + std::to_string(e.field216)); - v.push_back(columns[217] + " = " + std::to_string(e.override_crit_chance)); + v.push_back(columns[217] + " = " + std::to_string(e.field217)); v.push_back(columns[218] + " = " + std::to_string(e.aemaxtargets)); v.push_back(columns[219] + " = " + std::to_string(e.maxtargets)); - v.push_back(columns[220] + " = " + std::to_string(e.no_heal_damage_item_mod)); - v.push_back(columns[221] + " = " + std::to_string(e.caster_requirement_id)); - v.push_back(columns[222] + " = " + std::to_string(e.spell_class)); - v.push_back(columns[223] + " = " + std::to_string(e.spell_subclass)); + v.push_back(columns[220] + " = " + std::to_string(e.field220)); + v.push_back(columns[221] + " = " + std::to_string(e.field221)); + v.push_back(columns[222] + " = " + std::to_string(e.field222)); + v.push_back(columns[223] + " = " + std::to_string(e.field223)); v.push_back(columns[224] + " = " + std::to_string(e.persistdeath)); v.push_back(columns[225] + " = " + std::to_string(e.field225)); v.push_back(columns[226] + " = " + std::to_string(e.field226)); @@ -1561,7 +1561,7 @@ public: v.push_back(columns[229] + " = " + std::to_string(e.max_dist)); v.push_back(columns[230] + " = " + std::to_string(e.max_dist_mod)); v.push_back(columns[231] + " = " + std::to_string(e.min_range)); - v.push_back(columns[232] + " = " + std::to_string(e.no_remove)); + v.push_back(columns[232] + " = " + std::to_string(e.field232)); v.push_back(columns[233] + " = " + std::to_string(e.field233)); v.push_back(columns[234] + " = " + std::to_string(e.field234)); v.push_back(columns[235] + " = " + std::to_string(e.field235)); @@ -1747,7 +1747,7 @@ public: v.push_back(std::to_string(e.effectdescnum)); v.push_back(std::to_string(e.effectdescnum2)); v.push_back(std::to_string(e.npc_no_los)); - v.push_back(std::to_string(e.feedbackable)); + v.push_back(std::to_string(e.field160)); v.push_back(std::to_string(e.reflectable)); v.push_back(std::to_string(e.bonushate)); v.push_back(std::to_string(e.field163)); @@ -1785,7 +1785,7 @@ public: v.push_back(std::to_string(e.ConeStopAngle)); v.push_back(std::to_string(e.sneaking)); v.push_back(std::to_string(e.not_extendable)); - v.push_back(std::to_string(e.no_detrimental_spell_aggro)); + v.push_back(std::to_string(e.field198)); v.push_back(std::to_string(e.field199)); v.push_back(std::to_string(e.suspendable)); v.push_back(std::to_string(e.viral_range)); @@ -1796,7 +1796,7 @@ public: v.push_back(std::to_string(e.field206)); v.push_back(std::to_string(e.spellgroup)); v.push_back(std::to_string(e.rank_)); - v.push_back(std::to_string(e.no_resist)); + v.push_back(std::to_string(e.field209)); v.push_back(std::to_string(e.field210)); v.push_back(std::to_string(e.CastRestriction)); v.push_back(std::to_string(e.allowrest)); @@ -1804,13 +1804,13 @@ public: v.push_back(std::to_string(e.OutofCombat)); v.push_back(std::to_string(e.field215)); v.push_back(std::to_string(e.field216)); - v.push_back(std::to_string(e.override_crit_chance)); + v.push_back(std::to_string(e.field217)); v.push_back(std::to_string(e.aemaxtargets)); v.push_back(std::to_string(e.maxtargets)); - v.push_back(std::to_string(e.no_heal_damage_item_mod)); - v.push_back(std::to_string(e.caster_requirement_id)); - v.push_back(std::to_string(e.spell_class)); - v.push_back(std::to_string(e.spell_subclass)); + v.push_back(std::to_string(e.field220)); + v.push_back(std::to_string(e.field221)); + v.push_back(std::to_string(e.field222)); + v.push_back(std::to_string(e.field223)); v.push_back(std::to_string(e.persistdeath)); v.push_back(std::to_string(e.field225)); v.push_back(std::to_string(e.field226)); @@ -1819,7 +1819,7 @@ public: v.push_back(std::to_string(e.max_dist)); v.push_back(std::to_string(e.max_dist_mod)); v.push_back(std::to_string(e.min_range)); - v.push_back(std::to_string(e.no_remove)); + v.push_back(std::to_string(e.field232)); v.push_back(std::to_string(e.field233)); v.push_back(std::to_string(e.field234)); v.push_back(std::to_string(e.field235)); @@ -2013,7 +2013,7 @@ public: v.push_back(std::to_string(e.effectdescnum)); v.push_back(std::to_string(e.effectdescnum2)); v.push_back(std::to_string(e.npc_no_los)); - v.push_back(std::to_string(e.feedbackable)); + v.push_back(std::to_string(e.field160)); v.push_back(std::to_string(e.reflectable)); v.push_back(std::to_string(e.bonushate)); v.push_back(std::to_string(e.field163)); @@ -2051,7 +2051,7 @@ public: v.push_back(std::to_string(e.ConeStopAngle)); v.push_back(std::to_string(e.sneaking)); v.push_back(std::to_string(e.not_extendable)); - v.push_back(std::to_string(e.no_detrimental_spell_aggro)); + v.push_back(std::to_string(e.field198)); v.push_back(std::to_string(e.field199)); v.push_back(std::to_string(e.suspendable)); v.push_back(std::to_string(e.viral_range)); @@ -2062,7 +2062,7 @@ public: v.push_back(std::to_string(e.field206)); v.push_back(std::to_string(e.spellgroup)); v.push_back(std::to_string(e.rank_)); - v.push_back(std::to_string(e.no_resist)); + v.push_back(std::to_string(e.field209)); v.push_back(std::to_string(e.field210)); v.push_back(std::to_string(e.CastRestriction)); v.push_back(std::to_string(e.allowrest)); @@ -2070,13 +2070,13 @@ public: v.push_back(std::to_string(e.OutofCombat)); v.push_back(std::to_string(e.field215)); v.push_back(std::to_string(e.field216)); - v.push_back(std::to_string(e.override_crit_chance)); + v.push_back(std::to_string(e.field217)); v.push_back(std::to_string(e.aemaxtargets)); v.push_back(std::to_string(e.maxtargets)); - v.push_back(std::to_string(e.no_heal_damage_item_mod)); - v.push_back(std::to_string(e.caster_requirement_id)); - v.push_back(std::to_string(e.spell_class)); - v.push_back(std::to_string(e.spell_subclass)); + v.push_back(std::to_string(e.field220)); + v.push_back(std::to_string(e.field221)); + v.push_back(std::to_string(e.field222)); + v.push_back(std::to_string(e.field223)); v.push_back(std::to_string(e.persistdeath)); v.push_back(std::to_string(e.field225)); v.push_back(std::to_string(e.field226)); @@ -2085,7 +2085,7 @@ public: v.push_back(std::to_string(e.max_dist)); v.push_back(std::to_string(e.max_dist_mod)); v.push_back(std::to_string(e.min_range)); - v.push_back(std::to_string(e.no_remove)); + v.push_back(std::to_string(e.field232)); v.push_back(std::to_string(e.field233)); v.push_back(std::to_string(e.field234)); v.push_back(std::to_string(e.field235)); @@ -2123,243 +2123,243 @@ public: for (auto row = results.begin(); row != results.end(); ++row) { SpellsNew e{}; - e.id = row[0] ? static_cast(atoi(row[0])) : 0; - e.name = row[1] ? row[1] : ""; - e.player_1 = row[2] ? row[2] : "BLUE_TRAIL"; - e.teleport_zone = row[3] ? row[3] : ""; - e.you_cast = row[4] ? row[4] : ""; - e.other_casts = row[5] ? row[5] : ""; - e.cast_on_you = row[6] ? row[6] : ""; - e.cast_on_other = row[7] ? row[7] : ""; - e.spell_fades = row[8] ? row[8] : ""; - e.range_ = row[9] ? static_cast(atoi(row[9])) : 100; - e.aoerange = row[10] ? static_cast(atoi(row[10])) : 0; - e.pushback = row[11] ? static_cast(atoi(row[11])) : 0; - e.pushup = row[12] ? static_cast(atoi(row[12])) : 0; - e.cast_time = row[13] ? static_cast(atoi(row[13])) : 0; - e.recovery_time = row[14] ? static_cast(atoi(row[14])) : 0; - e.recast_time = row[15] ? static_cast(atoi(row[15])) : 0; - e.buffdurationformula = row[16] ? static_cast(atoi(row[16])) : 7; - e.buffduration = row[17] ? static_cast(atoi(row[17])) : 65; - e.AEDuration = row[18] ? static_cast(atoi(row[18])) : 0; - e.mana = row[19] ? static_cast(atoi(row[19])) : 0; - e.effect_base_value1 = row[20] ? static_cast(atoi(row[20])) : 100; - e.effect_base_value2 = row[21] ? static_cast(atoi(row[21])) : 0; - e.effect_base_value3 = row[22] ? static_cast(atoi(row[22])) : 0; - e.effect_base_value4 = row[23] ? static_cast(atoi(row[23])) : 0; - e.effect_base_value5 = row[24] ? static_cast(atoi(row[24])) : 0; - e.effect_base_value6 = row[25] ? static_cast(atoi(row[25])) : 0; - e.effect_base_value7 = row[26] ? static_cast(atoi(row[26])) : 0; - e.effect_base_value8 = row[27] ? static_cast(atoi(row[27])) : 0; - e.effect_base_value9 = row[28] ? static_cast(atoi(row[28])) : 0; - e.effect_base_value10 = row[29] ? static_cast(atoi(row[29])) : 0; - e.effect_base_value11 = row[30] ? static_cast(atoi(row[30])) : 0; - e.effect_base_value12 = row[31] ? static_cast(atoi(row[31])) : 0; - e.effect_limit_value1 = row[32] ? static_cast(atoi(row[32])) : 0; - e.effect_limit_value2 = row[33] ? static_cast(atoi(row[33])) : 0; - e.effect_limit_value3 = row[34] ? static_cast(atoi(row[34])) : 0; - e.effect_limit_value4 = row[35] ? static_cast(atoi(row[35])) : 0; - e.effect_limit_value5 = row[36] ? static_cast(atoi(row[36])) : 0; - e.effect_limit_value6 = row[37] ? static_cast(atoi(row[37])) : 0; - e.effect_limit_value7 = row[38] ? static_cast(atoi(row[38])) : 0; - e.effect_limit_value8 = row[39] ? static_cast(atoi(row[39])) : 0; - e.effect_limit_value9 = row[40] ? static_cast(atoi(row[40])) : 0; - e.effect_limit_value10 = row[41] ? static_cast(atoi(row[41])) : 0; - e.effect_limit_value11 = row[42] ? static_cast(atoi(row[42])) : 0; - e.effect_limit_value12 = row[43] ? static_cast(atoi(row[43])) : 0; - e.max1 = row[44] ? static_cast(atoi(row[44])) : 0; - e.max2 = row[45] ? static_cast(atoi(row[45])) : 0; - e.max3 = row[46] ? static_cast(atoi(row[46])) : 0; - e.max4 = row[47] ? static_cast(atoi(row[47])) : 0; - e.max5 = row[48] ? static_cast(atoi(row[48])) : 0; - e.max6 = row[49] ? static_cast(atoi(row[49])) : 0; - e.max7 = row[50] ? static_cast(atoi(row[50])) : 0; - e.max8 = row[51] ? static_cast(atoi(row[51])) : 0; - e.max9 = row[52] ? static_cast(atoi(row[52])) : 0; - e.max10 = row[53] ? static_cast(atoi(row[53])) : 0; - e.max11 = row[54] ? static_cast(atoi(row[54])) : 0; - e.max12 = row[55] ? static_cast(atoi(row[55])) : 0; - e.icon = row[56] ? static_cast(atoi(row[56])) : 0; - e.memicon = row[57] ? static_cast(atoi(row[57])) : 0; - e.components1 = row[58] ? static_cast(atoi(row[58])) : -1; - e.components2 = row[59] ? static_cast(atoi(row[59])) : -1; - e.components3 = row[60] ? static_cast(atoi(row[60])) : -1; - e.components4 = row[61] ? static_cast(atoi(row[61])) : -1; - e.component_counts1 = row[62] ? static_cast(atoi(row[62])) : 1; - e.component_counts2 = row[63] ? static_cast(atoi(row[63])) : 1; - e.component_counts3 = row[64] ? static_cast(atoi(row[64])) : 1; - e.component_counts4 = row[65] ? static_cast(atoi(row[65])) : 1; - e.NoexpendReagent1 = row[66] ? static_cast(atoi(row[66])) : -1; - e.NoexpendReagent2 = row[67] ? static_cast(atoi(row[67])) : -1; - e.NoexpendReagent3 = row[68] ? static_cast(atoi(row[68])) : -1; - e.NoexpendReagent4 = row[69] ? static_cast(atoi(row[69])) : -1; - e.formula1 = row[70] ? static_cast(atoi(row[70])) : 100; - e.formula2 = row[71] ? static_cast(atoi(row[71])) : 100; - e.formula3 = row[72] ? static_cast(atoi(row[72])) : 100; - e.formula4 = row[73] ? static_cast(atoi(row[73])) : 100; - e.formula5 = row[74] ? static_cast(atoi(row[74])) : 100; - e.formula6 = row[75] ? static_cast(atoi(row[75])) : 100; - e.formula7 = row[76] ? static_cast(atoi(row[76])) : 100; - e.formula8 = row[77] ? static_cast(atoi(row[77])) : 100; - e.formula9 = row[78] ? static_cast(atoi(row[78])) : 100; - e.formula10 = row[79] ? static_cast(atoi(row[79])) : 100; - e.formula11 = row[80] ? static_cast(atoi(row[80])) : 100; - e.formula12 = row[81] ? static_cast(atoi(row[81])) : 100; - e.LightType = row[82] ? static_cast(atoi(row[82])) : 0; - e.goodEffect = row[83] ? static_cast(atoi(row[83])) : 0; - e.Activated = row[84] ? static_cast(atoi(row[84])) : 0; - e.resisttype = row[85] ? static_cast(atoi(row[85])) : 0; - e.effectid1 = row[86] ? static_cast(atoi(row[86])) : 254; - e.effectid2 = row[87] ? static_cast(atoi(row[87])) : 254; - e.effectid3 = row[88] ? static_cast(atoi(row[88])) : 254; - e.effectid4 = row[89] ? static_cast(atoi(row[89])) : 254; - e.effectid5 = row[90] ? static_cast(atoi(row[90])) : 254; - e.effectid6 = row[91] ? static_cast(atoi(row[91])) : 254; - e.effectid7 = row[92] ? static_cast(atoi(row[92])) : 254; - e.effectid8 = row[93] ? static_cast(atoi(row[93])) : 254; - e.effectid9 = row[94] ? static_cast(atoi(row[94])) : 254; - e.effectid10 = row[95] ? static_cast(atoi(row[95])) : 254; - e.effectid11 = row[96] ? static_cast(atoi(row[96])) : 254; - e.effectid12 = row[97] ? static_cast(atoi(row[97])) : 254; - e.targettype = row[98] ? static_cast(atoi(row[98])) : 2; - e.basediff = row[99] ? static_cast(atoi(row[99])) : 0; - e.skill = row[100] ? static_cast(atoi(row[100])) : 98; - e.zonetype = row[101] ? static_cast(atoi(row[101])) : -1; - e.EnvironmentType = row[102] ? static_cast(atoi(row[102])) : 0; - e.TimeOfDay = row[103] ? static_cast(atoi(row[103])) : 0; - e.classes1 = row[104] ? static_cast(atoi(row[104])) : 255; - e.classes2 = row[105] ? static_cast(atoi(row[105])) : 255; - e.classes3 = row[106] ? static_cast(atoi(row[106])) : 255; - e.classes4 = row[107] ? static_cast(atoi(row[107])) : 255; - e.classes5 = row[108] ? static_cast(atoi(row[108])) : 255; - e.classes6 = row[109] ? static_cast(atoi(row[109])) : 255; - e.classes7 = row[110] ? static_cast(atoi(row[110])) : 255; - e.classes8 = row[111] ? static_cast(atoi(row[111])) : 255; - e.classes9 = row[112] ? static_cast(atoi(row[112])) : 255; - e.classes10 = row[113] ? static_cast(atoi(row[113])) : 255; - e.classes11 = row[114] ? static_cast(atoi(row[114])) : 255; - e.classes12 = row[115] ? static_cast(atoi(row[115])) : 255; - e.classes13 = row[116] ? static_cast(atoi(row[116])) : 255; - e.classes14 = row[117] ? static_cast(atoi(row[117])) : 255; - e.classes15 = row[118] ? static_cast(atoi(row[118])) : 255; - e.classes16 = row[119] ? static_cast(atoi(row[119])) : 255; - e.CastingAnim = row[120] ? static_cast(atoi(row[120])) : 44; - e.TargetAnim = row[121] ? static_cast(atoi(row[121])) : 13; - e.TravelType = row[122] ? static_cast(atoi(row[122])) : 0; - e.SpellAffectIndex = row[123] ? static_cast(atoi(row[123])) : -1; - e.disallow_sit = row[124] ? static_cast(atoi(row[124])) : 0; - e.deities0 = row[125] ? static_cast(atoi(row[125])) : 0; - e.deities1 = row[126] ? static_cast(atoi(row[126])) : 0; - e.deities2 = row[127] ? static_cast(atoi(row[127])) : 0; - e.deities3 = row[128] ? static_cast(atoi(row[128])) : 0; - e.deities4 = row[129] ? static_cast(atoi(row[129])) : 0; - e.deities5 = row[130] ? static_cast(atoi(row[130])) : 0; - e.deities6 = row[131] ? static_cast(atoi(row[131])) : 0; - e.deities7 = row[132] ? static_cast(atoi(row[132])) : 0; - e.deities8 = row[133] ? static_cast(atoi(row[133])) : 0; - e.deities9 = row[134] ? static_cast(atoi(row[134])) : 0; - e.deities10 = row[135] ? static_cast(atoi(row[135])) : 0; - e.deities11 = row[136] ? static_cast(atoi(row[136])) : 0; - e.deities12 = row[137] ? static_cast(atoi(row[137])) : 0; - e.deities13 = row[138] ? static_cast(atoi(row[138])) : 0; - e.deities14 = row[139] ? static_cast(atoi(row[139])) : 0; - e.deities15 = row[140] ? static_cast(atoi(row[140])) : 0; - e.deities16 = row[141] ? static_cast(atoi(row[141])) : 0; - e.field142 = row[142] ? static_cast(atoi(row[142])) : 100; - e.field143 = row[143] ? static_cast(atoi(row[143])) : 0; - e.new_icon = row[144] ? static_cast(atoi(row[144])) : 161; - e.spellanim = row[145] ? static_cast(atoi(row[145])) : 0; - e.uninterruptable = row[146] ? static_cast(atoi(row[146])) : 0; - e.ResistDiff = row[147] ? static_cast(atoi(row[147])) : -150; - e.dot_stacking_exempt = row[148] ? static_cast(atoi(row[148])) : 0; - e.deleteable = row[149] ? static_cast(atoi(row[149])) : 0; - e.RecourseLink = row[150] ? static_cast(atoi(row[150])) : 0; - e.no_partial_resist = row[151] ? static_cast(atoi(row[151])) : 0; - e.field152 = row[152] ? static_cast(atoi(row[152])) : 0; - e.field153 = row[153] ? static_cast(atoi(row[153])) : 0; - e.short_buff_box = row[154] ? static_cast(atoi(row[154])) : -1; - e.descnum = row[155] ? static_cast(atoi(row[155])) : 0; - e.typedescnum = row[156] ? static_cast(atoi(row[156])) : 0; - e.effectdescnum = row[157] ? static_cast(atoi(row[157])) : 0; - e.effectdescnum2 = row[158] ? static_cast(atoi(row[158])) : 0; - e.npc_no_los = row[159] ? static_cast(atoi(row[159])) : 0; - e.feedbackable = row[160] ? static_cast(atoi(row[160])) : 0; - e.reflectable = row[161] ? static_cast(atoi(row[161])) : 0; - e.bonushate = row[162] ? static_cast(atoi(row[162])) : 0; - e.field163 = row[163] ? static_cast(atoi(row[163])) : 100; - e.field164 = row[164] ? static_cast(atoi(row[164])) : -150; - e.ldon_trap = row[165] ? static_cast(atoi(row[165])) : 0; - e.EndurCost = row[166] ? static_cast(atoi(row[166])) : 0; - e.EndurTimerIndex = row[167] ? static_cast(atoi(row[167])) : 0; - e.IsDiscipline = row[168] ? static_cast(atoi(row[168])) : 0; - e.field169 = row[169] ? static_cast(atoi(row[169])) : 0; - e.field170 = row[170] ? static_cast(atoi(row[170])) : 0; - e.field171 = row[171] ? static_cast(atoi(row[171])) : 0; - e.field172 = row[172] ? static_cast(atoi(row[172])) : 0; - e.HateAdded = row[173] ? static_cast(atoi(row[173])) : 0; - e.EndurUpkeep = row[174] ? static_cast(atoi(row[174])) : 0; - e.numhitstype = row[175] ? static_cast(atoi(row[175])) : 0; - e.numhits = row[176] ? static_cast(atoi(row[176])) : 0; - e.pvpresistbase = row[177] ? static_cast(atoi(row[177])) : -150; - e.pvpresistcalc = row[178] ? static_cast(atoi(row[178])) : 100; - e.pvpresistcap = row[179] ? static_cast(atoi(row[179])) : -150; - e.spell_category = row[180] ? static_cast(atoi(row[180])) : -99; - e.pvp_duration = row[181] ? static_cast(atoi(row[181])) : 0; - e.pvp_duration_cap = row[182] ? static_cast(atoi(row[182])) : 0; - e.pcnpc_only_flag = row[183] ? static_cast(atoi(row[183])) : 0; - e.cast_not_standing = row[184] ? static_cast(atoi(row[184])) : 0; - e.can_mgb = row[185] ? static_cast(atoi(row[185])) : 0; - e.nodispell = row[186] ? static_cast(atoi(row[186])) : -1; - e.npc_category = row[187] ? static_cast(atoi(row[187])) : 0; - e.npc_usefulness = row[188] ? static_cast(atoi(row[188])) : 0; - e.MinResist = row[189] ? static_cast(atoi(row[189])) : 0; - e.MaxResist = row[190] ? static_cast(atoi(row[190])) : 0; - e.viral_targets = row[191] ? static_cast(atoi(row[191])) : 0; - e.viral_timer = row[192] ? static_cast(atoi(row[192])) : 0; - e.nimbuseffect = row[193] ? static_cast(atoi(row[193])) : 0; - e.ConeStartAngle = row[194] ? static_cast(atoi(row[194])) : 0; - e.ConeStopAngle = row[195] ? static_cast(atoi(row[195])) : 0; - e.sneaking = row[196] ? static_cast(atoi(row[196])) : 0; - e.not_extendable = row[197] ? static_cast(atoi(row[197])) : 0; - e.no_detrimental_spell_aggro = row[198] ? static_cast(atoi(row[198])) : 0; - e.field199 = row[199] ? static_cast(atoi(row[199])) : 1; - e.suspendable = row[200] ? static_cast(atoi(row[200])) : 0; - e.viral_range = row[201] ? static_cast(atoi(row[201])) : 0; - e.songcap = row[202] ? static_cast(atoi(row[202])) : 0; - e.field203 = row[203] ? static_cast(atoi(row[203])) : 0; - e.field204 = row[204] ? static_cast(atoi(row[204])) : 0; - e.no_block = row[205] ? static_cast(atoi(row[205])) : 0; - e.field206 = row[206] ? static_cast(atoi(row[206])) : -1; - e.spellgroup = row[207] ? static_cast(atoi(row[207])) : 0; - e.rank_ = row[208] ? static_cast(atoi(row[208])) : 0; - e.no_resist = row[209] ? static_cast(atoi(row[209])) : 0; - e.field210 = row[210] ? static_cast(atoi(row[210])) : 1; - e.CastRestriction = row[211] ? static_cast(atoi(row[211])) : 0; - e.allowrest = row[212] ? static_cast(atoi(row[212])) : 0; - e.InCombat = row[213] ? static_cast(atoi(row[213])) : 0; - e.OutofCombat = row[214] ? static_cast(atoi(row[214])) : 0; - e.field215 = row[215] ? static_cast(atoi(row[215])) : 0; - e.field216 = row[216] ? static_cast(atoi(row[216])) : 0; - e.override_crit_chance = row[217] ? static_cast(atoi(row[217])) : 0; - e.aemaxtargets = row[218] ? static_cast(atoi(row[218])) : 0; - e.maxtargets = row[219] ? static_cast(atoi(row[219])) : 0; - e.no_heal_damage_item_mod = row[220] ? static_cast(atoi(row[220])) : 0; - e.caster_requirement_id = row[221] ? static_cast(atoi(row[221])) : 0; - e.spell_class = row[222] ? static_cast(atoi(row[222])) : 0; - e.spell_subclass = row[223] ? static_cast(atoi(row[223])) : 0; - e.persistdeath = row[224] ? static_cast(atoi(row[224])) : 0; - e.field225 = row[225] ? static_cast(atoi(row[225])) : 0; - e.field226 = row[226] ? static_cast(atoi(row[226])) : 0; - e.min_dist = row[227] ? strtof(row[227], nullptr) : 0; - e.min_dist_mod = row[228] ? strtof(row[228], nullptr) : 0; - e.max_dist = row[229] ? strtof(row[229], nullptr) : 0; - e.max_dist_mod = row[230] ? strtof(row[230], nullptr) : 0; - e.min_range = row[231] ? static_cast(atoi(row[231])) : 0; - e.no_remove = row[232] ? static_cast(atoi(row[232])) : 0; - e.field233 = row[233] ? static_cast(atoi(row[233])) : 0; - e.field234 = row[234] ? static_cast(atoi(row[234])) : 0; - e.field235 = row[235] ? static_cast(atoi(row[235])) : 0; - e.field236 = row[236] ? static_cast(atoi(row[236])) : 0; + e.id = row[0] ? static_cast(atoi(row[0])) : 0; + e.name = row[1] ? row[1] : ""; + e.player_1 = row[2] ? row[2] : "BLUE_TRAIL"; + e.teleport_zone = row[3] ? row[3] : ""; + e.you_cast = row[4] ? row[4] : ""; + e.other_casts = row[5] ? row[5] : ""; + e.cast_on_you = row[6] ? row[6] : ""; + e.cast_on_other = row[7] ? row[7] : ""; + e.spell_fades = row[8] ? row[8] : ""; + e.range_ = row[9] ? static_cast(atoi(row[9])) : 100; + e.aoerange = row[10] ? static_cast(atoi(row[10])) : 0; + e.pushback = row[11] ? static_cast(atoi(row[11])) : 0; + e.pushup = row[12] ? static_cast(atoi(row[12])) : 0; + e.cast_time = row[13] ? static_cast(atoi(row[13])) : 0; + e.recovery_time = row[14] ? static_cast(atoi(row[14])) : 0; + e.recast_time = row[15] ? static_cast(atoi(row[15])) : 0; + e.buffdurationformula = row[16] ? static_cast(atoi(row[16])) : 7; + e.buffduration = row[17] ? static_cast(atoi(row[17])) : 65; + e.AEDuration = row[18] ? static_cast(atoi(row[18])) : 0; + e.mana = row[19] ? static_cast(atoi(row[19])) : 0; + e.effect_base_value1 = row[20] ? static_cast(atoi(row[20])) : 100; + e.effect_base_value2 = row[21] ? static_cast(atoi(row[21])) : 0; + e.effect_base_value3 = row[22] ? static_cast(atoi(row[22])) : 0; + e.effect_base_value4 = row[23] ? static_cast(atoi(row[23])) : 0; + e.effect_base_value5 = row[24] ? static_cast(atoi(row[24])) : 0; + e.effect_base_value6 = row[25] ? static_cast(atoi(row[25])) : 0; + e.effect_base_value7 = row[26] ? static_cast(atoi(row[26])) : 0; + e.effect_base_value8 = row[27] ? static_cast(atoi(row[27])) : 0; + e.effect_base_value9 = row[28] ? static_cast(atoi(row[28])) : 0; + e.effect_base_value10 = row[29] ? static_cast(atoi(row[29])) : 0; + e.effect_base_value11 = row[30] ? static_cast(atoi(row[30])) : 0; + e.effect_base_value12 = row[31] ? static_cast(atoi(row[31])) : 0; + e.effect_limit_value1 = row[32] ? static_cast(atoi(row[32])) : 0; + e.effect_limit_value2 = row[33] ? static_cast(atoi(row[33])) : 0; + e.effect_limit_value3 = row[34] ? static_cast(atoi(row[34])) : 0; + e.effect_limit_value4 = row[35] ? static_cast(atoi(row[35])) : 0; + e.effect_limit_value5 = row[36] ? static_cast(atoi(row[36])) : 0; + e.effect_limit_value6 = row[37] ? static_cast(atoi(row[37])) : 0; + e.effect_limit_value7 = row[38] ? static_cast(atoi(row[38])) : 0; + e.effect_limit_value8 = row[39] ? static_cast(atoi(row[39])) : 0; + e.effect_limit_value9 = row[40] ? static_cast(atoi(row[40])) : 0; + e.effect_limit_value10 = row[41] ? static_cast(atoi(row[41])) : 0; + e.effect_limit_value11 = row[42] ? static_cast(atoi(row[42])) : 0; + e.effect_limit_value12 = row[43] ? static_cast(atoi(row[43])) : 0; + e.max1 = row[44] ? static_cast(atoi(row[44])) : 0; + e.max2 = row[45] ? static_cast(atoi(row[45])) : 0; + e.max3 = row[46] ? static_cast(atoi(row[46])) : 0; + e.max4 = row[47] ? static_cast(atoi(row[47])) : 0; + e.max5 = row[48] ? static_cast(atoi(row[48])) : 0; + e.max6 = row[49] ? static_cast(atoi(row[49])) : 0; + e.max7 = row[50] ? static_cast(atoi(row[50])) : 0; + e.max8 = row[51] ? static_cast(atoi(row[51])) : 0; + e.max9 = row[52] ? static_cast(atoi(row[52])) : 0; + e.max10 = row[53] ? static_cast(atoi(row[53])) : 0; + e.max11 = row[54] ? static_cast(atoi(row[54])) : 0; + e.max12 = row[55] ? static_cast(atoi(row[55])) : 0; + e.icon = row[56] ? static_cast(atoi(row[56])) : 0; + e.memicon = row[57] ? static_cast(atoi(row[57])) : 0; + e.components1 = row[58] ? static_cast(atoi(row[58])) : -1; + e.components2 = row[59] ? static_cast(atoi(row[59])) : -1; + e.components3 = row[60] ? static_cast(atoi(row[60])) : -1; + e.components4 = row[61] ? static_cast(atoi(row[61])) : -1; + e.component_counts1 = row[62] ? static_cast(atoi(row[62])) : 1; + e.component_counts2 = row[63] ? static_cast(atoi(row[63])) : 1; + e.component_counts3 = row[64] ? static_cast(atoi(row[64])) : 1; + e.component_counts4 = row[65] ? static_cast(atoi(row[65])) : 1; + e.NoexpendReagent1 = row[66] ? static_cast(atoi(row[66])) : -1; + e.NoexpendReagent2 = row[67] ? static_cast(atoi(row[67])) : -1; + e.NoexpendReagent3 = row[68] ? static_cast(atoi(row[68])) : -1; + e.NoexpendReagent4 = row[69] ? static_cast(atoi(row[69])) : -1; + e.formula1 = row[70] ? static_cast(atoi(row[70])) : 100; + e.formula2 = row[71] ? static_cast(atoi(row[71])) : 100; + e.formula3 = row[72] ? static_cast(atoi(row[72])) : 100; + e.formula4 = row[73] ? static_cast(atoi(row[73])) : 100; + e.formula5 = row[74] ? static_cast(atoi(row[74])) : 100; + e.formula6 = row[75] ? static_cast(atoi(row[75])) : 100; + e.formula7 = row[76] ? static_cast(atoi(row[76])) : 100; + e.formula8 = row[77] ? static_cast(atoi(row[77])) : 100; + e.formula9 = row[78] ? static_cast(atoi(row[78])) : 100; + e.formula10 = row[79] ? static_cast(atoi(row[79])) : 100; + e.formula11 = row[80] ? static_cast(atoi(row[80])) : 100; + e.formula12 = row[81] ? static_cast(atoi(row[81])) : 100; + e.LightType = row[82] ? static_cast(atoi(row[82])) : 0; + e.goodEffect = row[83] ? static_cast(atoi(row[83])) : 0; + e.Activated = row[84] ? static_cast(atoi(row[84])) : 0; + e.resisttype = row[85] ? static_cast(atoi(row[85])) : 0; + e.effectid1 = row[86] ? static_cast(atoi(row[86])) : 254; + e.effectid2 = row[87] ? static_cast(atoi(row[87])) : 254; + e.effectid3 = row[88] ? static_cast(atoi(row[88])) : 254; + e.effectid4 = row[89] ? static_cast(atoi(row[89])) : 254; + e.effectid5 = row[90] ? static_cast(atoi(row[90])) : 254; + e.effectid6 = row[91] ? static_cast(atoi(row[91])) : 254; + e.effectid7 = row[92] ? static_cast(atoi(row[92])) : 254; + e.effectid8 = row[93] ? static_cast(atoi(row[93])) : 254; + e.effectid9 = row[94] ? static_cast(atoi(row[94])) : 254; + e.effectid10 = row[95] ? static_cast(atoi(row[95])) : 254; + e.effectid11 = row[96] ? static_cast(atoi(row[96])) : 254; + e.effectid12 = row[97] ? static_cast(atoi(row[97])) : 254; + e.targettype = row[98] ? static_cast(atoi(row[98])) : 2; + e.basediff = row[99] ? static_cast(atoi(row[99])) : 0; + e.skill = row[100] ? static_cast(atoi(row[100])) : 98; + e.zonetype = row[101] ? static_cast(atoi(row[101])) : -1; + e.EnvironmentType = row[102] ? static_cast(atoi(row[102])) : 0; + e.TimeOfDay = row[103] ? static_cast(atoi(row[103])) : 0; + e.classes1 = row[104] ? static_cast(atoi(row[104])) : 255; + e.classes2 = row[105] ? static_cast(atoi(row[105])) : 255; + e.classes3 = row[106] ? static_cast(atoi(row[106])) : 255; + e.classes4 = row[107] ? static_cast(atoi(row[107])) : 255; + e.classes5 = row[108] ? static_cast(atoi(row[108])) : 255; + e.classes6 = row[109] ? static_cast(atoi(row[109])) : 255; + e.classes7 = row[110] ? static_cast(atoi(row[110])) : 255; + e.classes8 = row[111] ? static_cast(atoi(row[111])) : 255; + e.classes9 = row[112] ? static_cast(atoi(row[112])) : 255; + e.classes10 = row[113] ? static_cast(atoi(row[113])) : 255; + e.classes11 = row[114] ? static_cast(atoi(row[114])) : 255; + e.classes12 = row[115] ? static_cast(atoi(row[115])) : 255; + e.classes13 = row[116] ? static_cast(atoi(row[116])) : 255; + e.classes14 = row[117] ? static_cast(atoi(row[117])) : 255; + e.classes15 = row[118] ? static_cast(atoi(row[118])) : 255; + e.classes16 = row[119] ? static_cast(atoi(row[119])) : 255; + e.CastingAnim = row[120] ? static_cast(atoi(row[120])) : 44; + e.TargetAnim = row[121] ? static_cast(atoi(row[121])) : 13; + e.TravelType = row[122] ? static_cast(atoi(row[122])) : 0; + e.SpellAffectIndex = row[123] ? static_cast(atoi(row[123])) : -1; + e.disallow_sit = row[124] ? static_cast(atoi(row[124])) : 0; + e.deities0 = row[125] ? static_cast(atoi(row[125])) : 0; + e.deities1 = row[126] ? static_cast(atoi(row[126])) : 0; + e.deities2 = row[127] ? static_cast(atoi(row[127])) : 0; + e.deities3 = row[128] ? static_cast(atoi(row[128])) : 0; + e.deities4 = row[129] ? static_cast(atoi(row[129])) : 0; + e.deities5 = row[130] ? static_cast(atoi(row[130])) : 0; + e.deities6 = row[131] ? static_cast(atoi(row[131])) : 0; + e.deities7 = row[132] ? static_cast(atoi(row[132])) : 0; + e.deities8 = row[133] ? static_cast(atoi(row[133])) : 0; + e.deities9 = row[134] ? static_cast(atoi(row[134])) : 0; + e.deities10 = row[135] ? static_cast(atoi(row[135])) : 0; + e.deities11 = row[136] ? static_cast(atoi(row[136])) : 0; + e.deities12 = row[137] ? static_cast(atoi(row[137])) : 0; + e.deities13 = row[138] ? static_cast(atoi(row[138])) : 0; + e.deities14 = row[139] ? static_cast(atoi(row[139])) : 0; + e.deities15 = row[140] ? static_cast(atoi(row[140])) : 0; + e.deities16 = row[141] ? static_cast(atoi(row[141])) : 0; + e.field142 = row[142] ? static_cast(atoi(row[142])) : 100; + e.field143 = row[143] ? static_cast(atoi(row[143])) : 0; + e.new_icon = row[144] ? static_cast(atoi(row[144])) : 161; + e.spellanim = row[145] ? static_cast(atoi(row[145])) : 0; + e.uninterruptable = row[146] ? static_cast(atoi(row[146])) : 0; + e.ResistDiff = row[147] ? static_cast(atoi(row[147])) : -150; + e.dot_stacking_exempt = row[148] ? static_cast(atoi(row[148])) : 0; + e.deleteable = row[149] ? static_cast(atoi(row[149])) : 0; + e.RecourseLink = row[150] ? static_cast(atoi(row[150])) : 0; + e.no_partial_resist = row[151] ? static_cast(atoi(row[151])) : 0; + e.field152 = row[152] ? static_cast(atoi(row[152])) : 0; + e.field153 = row[153] ? static_cast(atoi(row[153])) : 0; + e.short_buff_box = row[154] ? static_cast(atoi(row[154])) : -1; + e.descnum = row[155] ? static_cast(atoi(row[155])) : 0; + e.typedescnum = row[156] ? static_cast(atoi(row[156])) : 0; + e.effectdescnum = row[157] ? static_cast(atoi(row[157])) : 0; + e.effectdescnum2 = row[158] ? static_cast(atoi(row[158])) : 0; + e.npc_no_los = row[159] ? static_cast(atoi(row[159])) : 0; + e.field160 = row[160] ? static_cast(atoi(row[160])) : 0; + e.reflectable = row[161] ? static_cast(atoi(row[161])) : 0; + e.bonushate = row[162] ? static_cast(atoi(row[162])) : 0; + e.field163 = row[163] ? static_cast(atoi(row[163])) : 100; + e.field164 = row[164] ? static_cast(atoi(row[164])) : -150; + e.ldon_trap = row[165] ? static_cast(atoi(row[165])) : 0; + e.EndurCost = row[166] ? static_cast(atoi(row[166])) : 0; + e.EndurTimerIndex = row[167] ? static_cast(atoi(row[167])) : 0; + e.IsDiscipline = row[168] ? static_cast(atoi(row[168])) : 0; + e.field169 = row[169] ? static_cast(atoi(row[169])) : 0; + e.field170 = row[170] ? static_cast(atoi(row[170])) : 0; + e.field171 = row[171] ? static_cast(atoi(row[171])) : 0; + e.field172 = row[172] ? static_cast(atoi(row[172])) : 0; + e.HateAdded = row[173] ? static_cast(atoi(row[173])) : 0; + e.EndurUpkeep = row[174] ? static_cast(atoi(row[174])) : 0; + e.numhitstype = row[175] ? static_cast(atoi(row[175])) : 0; + e.numhits = row[176] ? static_cast(atoi(row[176])) : 0; + e.pvpresistbase = row[177] ? static_cast(atoi(row[177])) : -150; + e.pvpresistcalc = row[178] ? static_cast(atoi(row[178])) : 100; + e.pvpresistcap = row[179] ? static_cast(atoi(row[179])) : -150; + e.spell_category = row[180] ? static_cast(atoi(row[180])) : -99; + e.pvp_duration = row[181] ? static_cast(atoi(row[181])) : 0; + e.pvp_duration_cap = row[182] ? static_cast(atoi(row[182])) : 0; + e.pcnpc_only_flag = row[183] ? static_cast(atoi(row[183])) : 0; + e.cast_not_standing = row[184] ? static_cast(atoi(row[184])) : 0; + e.can_mgb = row[185] ? static_cast(atoi(row[185])) : 0; + e.nodispell = row[186] ? static_cast(atoi(row[186])) : -1; + e.npc_category = row[187] ? static_cast(atoi(row[187])) : 0; + e.npc_usefulness = row[188] ? static_cast(atoi(row[188])) : 0; + e.MinResist = row[189] ? static_cast(atoi(row[189])) : 0; + e.MaxResist = row[190] ? static_cast(atoi(row[190])) : 0; + e.viral_targets = row[191] ? static_cast(atoi(row[191])) : 0; + e.viral_timer = row[192] ? static_cast(atoi(row[192])) : 0; + e.nimbuseffect = row[193] ? static_cast(atoi(row[193])) : 0; + e.ConeStartAngle = row[194] ? static_cast(atoi(row[194])) : 0; + e.ConeStopAngle = row[195] ? static_cast(atoi(row[195])) : 0; + e.sneaking = row[196] ? static_cast(atoi(row[196])) : 0; + e.not_extendable = row[197] ? static_cast(atoi(row[197])) : 0; + e.field198 = row[198] ? static_cast(atoi(row[198])) : 0; + e.field199 = row[199] ? static_cast(atoi(row[199])) : 1; + e.suspendable = row[200] ? static_cast(atoi(row[200])) : 0; + e.viral_range = row[201] ? static_cast(atoi(row[201])) : 0; + e.songcap = row[202] ? static_cast(atoi(row[202])) : 0; + e.field203 = row[203] ? static_cast(atoi(row[203])) : 0; + e.field204 = row[204] ? static_cast(atoi(row[204])) : 0; + e.no_block = row[205] ? static_cast(atoi(row[205])) : 0; + e.field206 = row[206] ? static_cast(atoi(row[206])) : -1; + e.spellgroup = row[207] ? static_cast(atoi(row[207])) : 0; + e.rank_ = row[208] ? static_cast(atoi(row[208])) : 0; + e.field209 = row[209] ? static_cast(atoi(row[209])) : 0; + e.field210 = row[210] ? static_cast(atoi(row[210])) : 1; + e.CastRestriction = row[211] ? static_cast(atoi(row[211])) : 0; + e.allowrest = row[212] ? static_cast(atoi(row[212])) : 0; + e.InCombat = row[213] ? static_cast(atoi(row[213])) : 0; + e.OutofCombat = row[214] ? static_cast(atoi(row[214])) : 0; + e.field215 = row[215] ? static_cast(atoi(row[215])) : 0; + e.field216 = row[216] ? static_cast(atoi(row[216])) : 0; + e.field217 = row[217] ? static_cast(atoi(row[217])) : 0; + e.aemaxtargets = row[218] ? static_cast(atoi(row[218])) : 0; + e.maxtargets = row[219] ? static_cast(atoi(row[219])) : 0; + e.field220 = row[220] ? static_cast(atoi(row[220])) : 0; + e.field221 = row[221] ? static_cast(atoi(row[221])) : 0; + e.field222 = row[222] ? static_cast(atoi(row[222])) : 0; + e.field223 = row[223] ? static_cast(atoi(row[223])) : 0; + e.persistdeath = row[224] ? static_cast(atoi(row[224])) : 0; + e.field225 = row[225] ? static_cast(atoi(row[225])) : 0; + e.field226 = row[226] ? static_cast(atoi(row[226])) : 0; + e.min_dist = row[227] ? strtof(row[227], nullptr) : 0; + e.min_dist_mod = row[228] ? strtof(row[228], nullptr) : 0; + e.max_dist = row[229] ? strtof(row[229], nullptr) : 0; + e.max_dist_mod = row[230] ? strtof(row[230], nullptr) : 0; + e.min_range = row[231] ? static_cast(atoi(row[231])) : 0; + e.field232 = row[232] ? static_cast(atoi(row[232])) : 0; + e.field233 = row[233] ? static_cast(atoi(row[233])) : 0; + e.field234 = row[234] ? static_cast(atoi(row[234])) : 0; + e.field235 = row[235] ? static_cast(atoi(row[235])) : 0; + e.field236 = row[236] ? static_cast(atoi(row[236])) : 0; all_entries.push_back(e); } @@ -2384,243 +2384,243 @@ public: for (auto row = results.begin(); row != results.end(); ++row) { SpellsNew e{}; - e.id = row[0] ? static_cast(atoi(row[0])) : 0; - e.name = row[1] ? row[1] : ""; - e.player_1 = row[2] ? row[2] : "BLUE_TRAIL"; - e.teleport_zone = row[3] ? row[3] : ""; - e.you_cast = row[4] ? row[4] : ""; - e.other_casts = row[5] ? row[5] : ""; - e.cast_on_you = row[6] ? row[6] : ""; - e.cast_on_other = row[7] ? row[7] : ""; - e.spell_fades = row[8] ? row[8] : ""; - e.range_ = row[9] ? static_cast(atoi(row[9])) : 100; - e.aoerange = row[10] ? static_cast(atoi(row[10])) : 0; - e.pushback = row[11] ? static_cast(atoi(row[11])) : 0; - e.pushup = row[12] ? static_cast(atoi(row[12])) : 0; - e.cast_time = row[13] ? static_cast(atoi(row[13])) : 0; - e.recovery_time = row[14] ? static_cast(atoi(row[14])) : 0; - e.recast_time = row[15] ? static_cast(atoi(row[15])) : 0; - e.buffdurationformula = row[16] ? static_cast(atoi(row[16])) : 7; - e.buffduration = row[17] ? static_cast(atoi(row[17])) : 65; - e.AEDuration = row[18] ? static_cast(atoi(row[18])) : 0; - e.mana = row[19] ? static_cast(atoi(row[19])) : 0; - e.effect_base_value1 = row[20] ? static_cast(atoi(row[20])) : 100; - e.effect_base_value2 = row[21] ? static_cast(atoi(row[21])) : 0; - e.effect_base_value3 = row[22] ? static_cast(atoi(row[22])) : 0; - e.effect_base_value4 = row[23] ? static_cast(atoi(row[23])) : 0; - e.effect_base_value5 = row[24] ? static_cast(atoi(row[24])) : 0; - e.effect_base_value6 = row[25] ? static_cast(atoi(row[25])) : 0; - e.effect_base_value7 = row[26] ? static_cast(atoi(row[26])) : 0; - e.effect_base_value8 = row[27] ? static_cast(atoi(row[27])) : 0; - e.effect_base_value9 = row[28] ? static_cast(atoi(row[28])) : 0; - e.effect_base_value10 = row[29] ? static_cast(atoi(row[29])) : 0; - e.effect_base_value11 = row[30] ? static_cast(atoi(row[30])) : 0; - e.effect_base_value12 = row[31] ? static_cast(atoi(row[31])) : 0; - e.effect_limit_value1 = row[32] ? static_cast(atoi(row[32])) : 0; - e.effect_limit_value2 = row[33] ? static_cast(atoi(row[33])) : 0; - e.effect_limit_value3 = row[34] ? static_cast(atoi(row[34])) : 0; - e.effect_limit_value4 = row[35] ? static_cast(atoi(row[35])) : 0; - e.effect_limit_value5 = row[36] ? static_cast(atoi(row[36])) : 0; - e.effect_limit_value6 = row[37] ? static_cast(atoi(row[37])) : 0; - e.effect_limit_value7 = row[38] ? static_cast(atoi(row[38])) : 0; - e.effect_limit_value8 = row[39] ? static_cast(atoi(row[39])) : 0; - e.effect_limit_value9 = row[40] ? static_cast(atoi(row[40])) : 0; - e.effect_limit_value10 = row[41] ? static_cast(atoi(row[41])) : 0; - e.effect_limit_value11 = row[42] ? static_cast(atoi(row[42])) : 0; - e.effect_limit_value12 = row[43] ? static_cast(atoi(row[43])) : 0; - e.max1 = row[44] ? static_cast(atoi(row[44])) : 0; - e.max2 = row[45] ? static_cast(atoi(row[45])) : 0; - e.max3 = row[46] ? static_cast(atoi(row[46])) : 0; - e.max4 = row[47] ? static_cast(atoi(row[47])) : 0; - e.max5 = row[48] ? static_cast(atoi(row[48])) : 0; - e.max6 = row[49] ? static_cast(atoi(row[49])) : 0; - e.max7 = row[50] ? static_cast(atoi(row[50])) : 0; - e.max8 = row[51] ? static_cast(atoi(row[51])) : 0; - e.max9 = row[52] ? static_cast(atoi(row[52])) : 0; - e.max10 = row[53] ? static_cast(atoi(row[53])) : 0; - e.max11 = row[54] ? static_cast(atoi(row[54])) : 0; - e.max12 = row[55] ? static_cast(atoi(row[55])) : 0; - e.icon = row[56] ? static_cast(atoi(row[56])) : 0; - e.memicon = row[57] ? static_cast(atoi(row[57])) : 0; - e.components1 = row[58] ? static_cast(atoi(row[58])) : -1; - e.components2 = row[59] ? static_cast(atoi(row[59])) : -1; - e.components3 = row[60] ? static_cast(atoi(row[60])) : -1; - e.components4 = row[61] ? static_cast(atoi(row[61])) : -1; - e.component_counts1 = row[62] ? static_cast(atoi(row[62])) : 1; - e.component_counts2 = row[63] ? static_cast(atoi(row[63])) : 1; - e.component_counts3 = row[64] ? static_cast(atoi(row[64])) : 1; - e.component_counts4 = row[65] ? static_cast(atoi(row[65])) : 1; - e.NoexpendReagent1 = row[66] ? static_cast(atoi(row[66])) : -1; - e.NoexpendReagent2 = row[67] ? static_cast(atoi(row[67])) : -1; - e.NoexpendReagent3 = row[68] ? static_cast(atoi(row[68])) : -1; - e.NoexpendReagent4 = row[69] ? static_cast(atoi(row[69])) : -1; - e.formula1 = row[70] ? static_cast(atoi(row[70])) : 100; - e.formula2 = row[71] ? static_cast(atoi(row[71])) : 100; - e.formula3 = row[72] ? static_cast(atoi(row[72])) : 100; - e.formula4 = row[73] ? static_cast(atoi(row[73])) : 100; - e.formula5 = row[74] ? static_cast(atoi(row[74])) : 100; - e.formula6 = row[75] ? static_cast(atoi(row[75])) : 100; - e.formula7 = row[76] ? static_cast(atoi(row[76])) : 100; - e.formula8 = row[77] ? static_cast(atoi(row[77])) : 100; - e.formula9 = row[78] ? static_cast(atoi(row[78])) : 100; - e.formula10 = row[79] ? static_cast(atoi(row[79])) : 100; - e.formula11 = row[80] ? static_cast(atoi(row[80])) : 100; - e.formula12 = row[81] ? static_cast(atoi(row[81])) : 100; - e.LightType = row[82] ? static_cast(atoi(row[82])) : 0; - e.goodEffect = row[83] ? static_cast(atoi(row[83])) : 0; - e.Activated = row[84] ? static_cast(atoi(row[84])) : 0; - e.resisttype = row[85] ? static_cast(atoi(row[85])) : 0; - e.effectid1 = row[86] ? static_cast(atoi(row[86])) : 254; - e.effectid2 = row[87] ? static_cast(atoi(row[87])) : 254; - e.effectid3 = row[88] ? static_cast(atoi(row[88])) : 254; - e.effectid4 = row[89] ? static_cast(atoi(row[89])) : 254; - e.effectid5 = row[90] ? static_cast(atoi(row[90])) : 254; - e.effectid6 = row[91] ? static_cast(atoi(row[91])) : 254; - e.effectid7 = row[92] ? static_cast(atoi(row[92])) : 254; - e.effectid8 = row[93] ? static_cast(atoi(row[93])) : 254; - e.effectid9 = row[94] ? static_cast(atoi(row[94])) : 254; - e.effectid10 = row[95] ? static_cast(atoi(row[95])) : 254; - e.effectid11 = row[96] ? static_cast(atoi(row[96])) : 254; - e.effectid12 = row[97] ? static_cast(atoi(row[97])) : 254; - e.targettype = row[98] ? static_cast(atoi(row[98])) : 2; - e.basediff = row[99] ? static_cast(atoi(row[99])) : 0; - e.skill = row[100] ? static_cast(atoi(row[100])) : 98; - e.zonetype = row[101] ? static_cast(atoi(row[101])) : -1; - e.EnvironmentType = row[102] ? static_cast(atoi(row[102])) : 0; - e.TimeOfDay = row[103] ? static_cast(atoi(row[103])) : 0; - e.classes1 = row[104] ? static_cast(atoi(row[104])) : 255; - e.classes2 = row[105] ? static_cast(atoi(row[105])) : 255; - e.classes3 = row[106] ? static_cast(atoi(row[106])) : 255; - e.classes4 = row[107] ? static_cast(atoi(row[107])) : 255; - e.classes5 = row[108] ? static_cast(atoi(row[108])) : 255; - e.classes6 = row[109] ? static_cast(atoi(row[109])) : 255; - e.classes7 = row[110] ? static_cast(atoi(row[110])) : 255; - e.classes8 = row[111] ? static_cast(atoi(row[111])) : 255; - e.classes9 = row[112] ? static_cast(atoi(row[112])) : 255; - e.classes10 = row[113] ? static_cast(atoi(row[113])) : 255; - e.classes11 = row[114] ? static_cast(atoi(row[114])) : 255; - e.classes12 = row[115] ? static_cast(atoi(row[115])) : 255; - e.classes13 = row[116] ? static_cast(atoi(row[116])) : 255; - e.classes14 = row[117] ? static_cast(atoi(row[117])) : 255; - e.classes15 = row[118] ? static_cast(atoi(row[118])) : 255; - e.classes16 = row[119] ? static_cast(atoi(row[119])) : 255; - e.CastingAnim = row[120] ? static_cast(atoi(row[120])) : 44; - e.TargetAnim = row[121] ? static_cast(atoi(row[121])) : 13; - e.TravelType = row[122] ? static_cast(atoi(row[122])) : 0; - e.SpellAffectIndex = row[123] ? static_cast(atoi(row[123])) : -1; - e.disallow_sit = row[124] ? static_cast(atoi(row[124])) : 0; - e.deities0 = row[125] ? static_cast(atoi(row[125])) : 0; - e.deities1 = row[126] ? static_cast(atoi(row[126])) : 0; - e.deities2 = row[127] ? static_cast(atoi(row[127])) : 0; - e.deities3 = row[128] ? static_cast(atoi(row[128])) : 0; - e.deities4 = row[129] ? static_cast(atoi(row[129])) : 0; - e.deities5 = row[130] ? static_cast(atoi(row[130])) : 0; - e.deities6 = row[131] ? static_cast(atoi(row[131])) : 0; - e.deities7 = row[132] ? static_cast(atoi(row[132])) : 0; - e.deities8 = row[133] ? static_cast(atoi(row[133])) : 0; - e.deities9 = row[134] ? static_cast(atoi(row[134])) : 0; - e.deities10 = row[135] ? static_cast(atoi(row[135])) : 0; - e.deities11 = row[136] ? static_cast(atoi(row[136])) : 0; - e.deities12 = row[137] ? static_cast(atoi(row[137])) : 0; - e.deities13 = row[138] ? static_cast(atoi(row[138])) : 0; - e.deities14 = row[139] ? static_cast(atoi(row[139])) : 0; - e.deities15 = row[140] ? static_cast(atoi(row[140])) : 0; - e.deities16 = row[141] ? static_cast(atoi(row[141])) : 0; - e.field142 = row[142] ? static_cast(atoi(row[142])) : 100; - e.field143 = row[143] ? static_cast(atoi(row[143])) : 0; - e.new_icon = row[144] ? static_cast(atoi(row[144])) : 161; - e.spellanim = row[145] ? static_cast(atoi(row[145])) : 0; - e.uninterruptable = row[146] ? static_cast(atoi(row[146])) : 0; - e.ResistDiff = row[147] ? static_cast(atoi(row[147])) : -150; - e.dot_stacking_exempt = row[148] ? static_cast(atoi(row[148])) : 0; - e.deleteable = row[149] ? static_cast(atoi(row[149])) : 0; - e.RecourseLink = row[150] ? static_cast(atoi(row[150])) : 0; - e.no_partial_resist = row[151] ? static_cast(atoi(row[151])) : 0; - e.field152 = row[152] ? static_cast(atoi(row[152])) : 0; - e.field153 = row[153] ? static_cast(atoi(row[153])) : 0; - e.short_buff_box = row[154] ? static_cast(atoi(row[154])) : -1; - e.descnum = row[155] ? static_cast(atoi(row[155])) : 0; - e.typedescnum = row[156] ? static_cast(atoi(row[156])) : 0; - e.effectdescnum = row[157] ? static_cast(atoi(row[157])) : 0; - e.effectdescnum2 = row[158] ? static_cast(atoi(row[158])) : 0; - e.npc_no_los = row[159] ? static_cast(atoi(row[159])) : 0; - e.feedbackable = row[160] ? static_cast(atoi(row[160])) : 0; - e.reflectable = row[161] ? static_cast(atoi(row[161])) : 0; - e.bonushate = row[162] ? static_cast(atoi(row[162])) : 0; - e.field163 = row[163] ? static_cast(atoi(row[163])) : 100; - e.field164 = row[164] ? static_cast(atoi(row[164])) : -150; - e.ldon_trap = row[165] ? static_cast(atoi(row[165])) : 0; - e.EndurCost = row[166] ? static_cast(atoi(row[166])) : 0; - e.EndurTimerIndex = row[167] ? static_cast(atoi(row[167])) : 0; - e.IsDiscipline = row[168] ? static_cast(atoi(row[168])) : 0; - e.field169 = row[169] ? static_cast(atoi(row[169])) : 0; - e.field170 = row[170] ? static_cast(atoi(row[170])) : 0; - e.field171 = row[171] ? static_cast(atoi(row[171])) : 0; - e.field172 = row[172] ? static_cast(atoi(row[172])) : 0; - e.HateAdded = row[173] ? static_cast(atoi(row[173])) : 0; - e.EndurUpkeep = row[174] ? static_cast(atoi(row[174])) : 0; - e.numhitstype = row[175] ? static_cast(atoi(row[175])) : 0; - e.numhits = row[176] ? static_cast(atoi(row[176])) : 0; - e.pvpresistbase = row[177] ? static_cast(atoi(row[177])) : -150; - e.pvpresistcalc = row[178] ? static_cast(atoi(row[178])) : 100; - e.pvpresistcap = row[179] ? static_cast(atoi(row[179])) : -150; - e.spell_category = row[180] ? static_cast(atoi(row[180])) : -99; - e.pvp_duration = row[181] ? static_cast(atoi(row[181])) : 0; - e.pvp_duration_cap = row[182] ? static_cast(atoi(row[182])) : 0; - e.pcnpc_only_flag = row[183] ? static_cast(atoi(row[183])) : 0; - e.cast_not_standing = row[184] ? static_cast(atoi(row[184])) : 0; - e.can_mgb = row[185] ? static_cast(atoi(row[185])) : 0; - e.nodispell = row[186] ? static_cast(atoi(row[186])) : -1; - e.npc_category = row[187] ? static_cast(atoi(row[187])) : 0; - e.npc_usefulness = row[188] ? static_cast(atoi(row[188])) : 0; - e.MinResist = row[189] ? static_cast(atoi(row[189])) : 0; - e.MaxResist = row[190] ? static_cast(atoi(row[190])) : 0; - e.viral_targets = row[191] ? static_cast(atoi(row[191])) : 0; - e.viral_timer = row[192] ? static_cast(atoi(row[192])) : 0; - e.nimbuseffect = row[193] ? static_cast(atoi(row[193])) : 0; - e.ConeStartAngle = row[194] ? static_cast(atoi(row[194])) : 0; - e.ConeStopAngle = row[195] ? static_cast(atoi(row[195])) : 0; - e.sneaking = row[196] ? static_cast(atoi(row[196])) : 0; - e.not_extendable = row[197] ? static_cast(atoi(row[197])) : 0; - e.no_detrimental_spell_aggro = row[198] ? static_cast(atoi(row[198])) : 0; - e.field199 = row[199] ? static_cast(atoi(row[199])) : 1; - e.suspendable = row[200] ? static_cast(atoi(row[200])) : 0; - e.viral_range = row[201] ? static_cast(atoi(row[201])) : 0; - e.songcap = row[202] ? static_cast(atoi(row[202])) : 0; - e.field203 = row[203] ? static_cast(atoi(row[203])) : 0; - e.field204 = row[204] ? static_cast(atoi(row[204])) : 0; - e.no_block = row[205] ? static_cast(atoi(row[205])) : 0; - e.field206 = row[206] ? static_cast(atoi(row[206])) : -1; - e.spellgroup = row[207] ? static_cast(atoi(row[207])) : 0; - e.rank_ = row[208] ? static_cast(atoi(row[208])) : 0; - e.no_resist = row[209] ? static_cast(atoi(row[209])) : 0; - e.field210 = row[210] ? static_cast(atoi(row[210])) : 1; - e.CastRestriction = row[211] ? static_cast(atoi(row[211])) : 0; - e.allowrest = row[212] ? static_cast(atoi(row[212])) : 0; - e.InCombat = row[213] ? static_cast(atoi(row[213])) : 0; - e.OutofCombat = row[214] ? static_cast(atoi(row[214])) : 0; - e.field215 = row[215] ? static_cast(atoi(row[215])) : 0; - e.field216 = row[216] ? static_cast(atoi(row[216])) : 0; - e.override_crit_chance = row[217] ? static_cast(atoi(row[217])) : 0; - e.aemaxtargets = row[218] ? static_cast(atoi(row[218])) : 0; - e.maxtargets = row[219] ? static_cast(atoi(row[219])) : 0; - e.no_heal_damage_item_mod = row[220] ? static_cast(atoi(row[220])) : 0; - e.caster_requirement_id = row[221] ? static_cast(atoi(row[221])) : 0; - e.spell_class = row[222] ? static_cast(atoi(row[222])) : 0; - e.spell_subclass = row[223] ? static_cast(atoi(row[223])) : 0; - e.persistdeath = row[224] ? static_cast(atoi(row[224])) : 0; - e.field225 = row[225] ? static_cast(atoi(row[225])) : 0; - e.field226 = row[226] ? static_cast(atoi(row[226])) : 0; - e.min_dist = row[227] ? strtof(row[227], nullptr) : 0; - e.min_dist_mod = row[228] ? strtof(row[228], nullptr) : 0; - e.max_dist = row[229] ? strtof(row[229], nullptr) : 0; - e.max_dist_mod = row[230] ? strtof(row[230], nullptr) : 0; - e.min_range = row[231] ? static_cast(atoi(row[231])) : 0; - e.no_remove = row[232] ? static_cast(atoi(row[232])) : 0; - e.field233 = row[233] ? static_cast(atoi(row[233])) : 0; - e.field234 = row[234] ? static_cast(atoi(row[234])) : 0; - e.field235 = row[235] ? static_cast(atoi(row[235])) : 0; - e.field236 = row[236] ? static_cast(atoi(row[236])) : 0; + e.id = row[0] ? static_cast(atoi(row[0])) : 0; + e.name = row[1] ? row[1] : ""; + e.player_1 = row[2] ? row[2] : "BLUE_TRAIL"; + e.teleport_zone = row[3] ? row[3] : ""; + e.you_cast = row[4] ? row[4] : ""; + e.other_casts = row[5] ? row[5] : ""; + e.cast_on_you = row[6] ? row[6] : ""; + e.cast_on_other = row[7] ? row[7] : ""; + e.spell_fades = row[8] ? row[8] : ""; + e.range_ = row[9] ? static_cast(atoi(row[9])) : 100; + e.aoerange = row[10] ? static_cast(atoi(row[10])) : 0; + e.pushback = row[11] ? static_cast(atoi(row[11])) : 0; + e.pushup = row[12] ? static_cast(atoi(row[12])) : 0; + e.cast_time = row[13] ? static_cast(atoi(row[13])) : 0; + e.recovery_time = row[14] ? static_cast(atoi(row[14])) : 0; + e.recast_time = row[15] ? static_cast(atoi(row[15])) : 0; + e.buffdurationformula = row[16] ? static_cast(atoi(row[16])) : 7; + e.buffduration = row[17] ? static_cast(atoi(row[17])) : 65; + e.AEDuration = row[18] ? static_cast(atoi(row[18])) : 0; + e.mana = row[19] ? static_cast(atoi(row[19])) : 0; + e.effect_base_value1 = row[20] ? static_cast(atoi(row[20])) : 100; + e.effect_base_value2 = row[21] ? static_cast(atoi(row[21])) : 0; + e.effect_base_value3 = row[22] ? static_cast(atoi(row[22])) : 0; + e.effect_base_value4 = row[23] ? static_cast(atoi(row[23])) : 0; + e.effect_base_value5 = row[24] ? static_cast(atoi(row[24])) : 0; + e.effect_base_value6 = row[25] ? static_cast(atoi(row[25])) : 0; + e.effect_base_value7 = row[26] ? static_cast(atoi(row[26])) : 0; + e.effect_base_value8 = row[27] ? static_cast(atoi(row[27])) : 0; + e.effect_base_value9 = row[28] ? static_cast(atoi(row[28])) : 0; + e.effect_base_value10 = row[29] ? static_cast(atoi(row[29])) : 0; + e.effect_base_value11 = row[30] ? static_cast(atoi(row[30])) : 0; + e.effect_base_value12 = row[31] ? static_cast(atoi(row[31])) : 0; + e.effect_limit_value1 = row[32] ? static_cast(atoi(row[32])) : 0; + e.effect_limit_value2 = row[33] ? static_cast(atoi(row[33])) : 0; + e.effect_limit_value3 = row[34] ? static_cast(atoi(row[34])) : 0; + e.effect_limit_value4 = row[35] ? static_cast(atoi(row[35])) : 0; + e.effect_limit_value5 = row[36] ? static_cast(atoi(row[36])) : 0; + e.effect_limit_value6 = row[37] ? static_cast(atoi(row[37])) : 0; + e.effect_limit_value7 = row[38] ? static_cast(atoi(row[38])) : 0; + e.effect_limit_value8 = row[39] ? static_cast(atoi(row[39])) : 0; + e.effect_limit_value9 = row[40] ? static_cast(atoi(row[40])) : 0; + e.effect_limit_value10 = row[41] ? static_cast(atoi(row[41])) : 0; + e.effect_limit_value11 = row[42] ? static_cast(atoi(row[42])) : 0; + e.effect_limit_value12 = row[43] ? static_cast(atoi(row[43])) : 0; + e.max1 = row[44] ? static_cast(atoi(row[44])) : 0; + e.max2 = row[45] ? static_cast(atoi(row[45])) : 0; + e.max3 = row[46] ? static_cast(atoi(row[46])) : 0; + e.max4 = row[47] ? static_cast(atoi(row[47])) : 0; + e.max5 = row[48] ? static_cast(atoi(row[48])) : 0; + e.max6 = row[49] ? static_cast(atoi(row[49])) : 0; + e.max7 = row[50] ? static_cast(atoi(row[50])) : 0; + e.max8 = row[51] ? static_cast(atoi(row[51])) : 0; + e.max9 = row[52] ? static_cast(atoi(row[52])) : 0; + e.max10 = row[53] ? static_cast(atoi(row[53])) : 0; + e.max11 = row[54] ? static_cast(atoi(row[54])) : 0; + e.max12 = row[55] ? static_cast(atoi(row[55])) : 0; + e.icon = row[56] ? static_cast(atoi(row[56])) : 0; + e.memicon = row[57] ? static_cast(atoi(row[57])) : 0; + e.components1 = row[58] ? static_cast(atoi(row[58])) : -1; + e.components2 = row[59] ? static_cast(atoi(row[59])) : -1; + e.components3 = row[60] ? static_cast(atoi(row[60])) : -1; + e.components4 = row[61] ? static_cast(atoi(row[61])) : -1; + e.component_counts1 = row[62] ? static_cast(atoi(row[62])) : 1; + e.component_counts2 = row[63] ? static_cast(atoi(row[63])) : 1; + e.component_counts3 = row[64] ? static_cast(atoi(row[64])) : 1; + e.component_counts4 = row[65] ? static_cast(atoi(row[65])) : 1; + e.NoexpendReagent1 = row[66] ? static_cast(atoi(row[66])) : -1; + e.NoexpendReagent2 = row[67] ? static_cast(atoi(row[67])) : -1; + e.NoexpendReagent3 = row[68] ? static_cast(atoi(row[68])) : -1; + e.NoexpendReagent4 = row[69] ? static_cast(atoi(row[69])) : -1; + e.formula1 = row[70] ? static_cast(atoi(row[70])) : 100; + e.formula2 = row[71] ? static_cast(atoi(row[71])) : 100; + e.formula3 = row[72] ? static_cast(atoi(row[72])) : 100; + e.formula4 = row[73] ? static_cast(atoi(row[73])) : 100; + e.formula5 = row[74] ? static_cast(atoi(row[74])) : 100; + e.formula6 = row[75] ? static_cast(atoi(row[75])) : 100; + e.formula7 = row[76] ? static_cast(atoi(row[76])) : 100; + e.formula8 = row[77] ? static_cast(atoi(row[77])) : 100; + e.formula9 = row[78] ? static_cast(atoi(row[78])) : 100; + e.formula10 = row[79] ? static_cast(atoi(row[79])) : 100; + e.formula11 = row[80] ? static_cast(atoi(row[80])) : 100; + e.formula12 = row[81] ? static_cast(atoi(row[81])) : 100; + e.LightType = row[82] ? static_cast(atoi(row[82])) : 0; + e.goodEffect = row[83] ? static_cast(atoi(row[83])) : 0; + e.Activated = row[84] ? static_cast(atoi(row[84])) : 0; + e.resisttype = row[85] ? static_cast(atoi(row[85])) : 0; + e.effectid1 = row[86] ? static_cast(atoi(row[86])) : 254; + e.effectid2 = row[87] ? static_cast(atoi(row[87])) : 254; + e.effectid3 = row[88] ? static_cast(atoi(row[88])) : 254; + e.effectid4 = row[89] ? static_cast(atoi(row[89])) : 254; + e.effectid5 = row[90] ? static_cast(atoi(row[90])) : 254; + e.effectid6 = row[91] ? static_cast(atoi(row[91])) : 254; + e.effectid7 = row[92] ? static_cast(atoi(row[92])) : 254; + e.effectid8 = row[93] ? static_cast(atoi(row[93])) : 254; + e.effectid9 = row[94] ? static_cast(atoi(row[94])) : 254; + e.effectid10 = row[95] ? static_cast(atoi(row[95])) : 254; + e.effectid11 = row[96] ? static_cast(atoi(row[96])) : 254; + e.effectid12 = row[97] ? static_cast(atoi(row[97])) : 254; + e.targettype = row[98] ? static_cast(atoi(row[98])) : 2; + e.basediff = row[99] ? static_cast(atoi(row[99])) : 0; + e.skill = row[100] ? static_cast(atoi(row[100])) : 98; + e.zonetype = row[101] ? static_cast(atoi(row[101])) : -1; + e.EnvironmentType = row[102] ? static_cast(atoi(row[102])) : 0; + e.TimeOfDay = row[103] ? static_cast(atoi(row[103])) : 0; + e.classes1 = row[104] ? static_cast(atoi(row[104])) : 255; + e.classes2 = row[105] ? static_cast(atoi(row[105])) : 255; + e.classes3 = row[106] ? static_cast(atoi(row[106])) : 255; + e.classes4 = row[107] ? static_cast(atoi(row[107])) : 255; + e.classes5 = row[108] ? static_cast(atoi(row[108])) : 255; + e.classes6 = row[109] ? static_cast(atoi(row[109])) : 255; + e.classes7 = row[110] ? static_cast(atoi(row[110])) : 255; + e.classes8 = row[111] ? static_cast(atoi(row[111])) : 255; + e.classes9 = row[112] ? static_cast(atoi(row[112])) : 255; + e.classes10 = row[113] ? static_cast(atoi(row[113])) : 255; + e.classes11 = row[114] ? static_cast(atoi(row[114])) : 255; + e.classes12 = row[115] ? static_cast(atoi(row[115])) : 255; + e.classes13 = row[116] ? static_cast(atoi(row[116])) : 255; + e.classes14 = row[117] ? static_cast(atoi(row[117])) : 255; + e.classes15 = row[118] ? static_cast(atoi(row[118])) : 255; + e.classes16 = row[119] ? static_cast(atoi(row[119])) : 255; + e.CastingAnim = row[120] ? static_cast(atoi(row[120])) : 44; + e.TargetAnim = row[121] ? static_cast(atoi(row[121])) : 13; + e.TravelType = row[122] ? static_cast(atoi(row[122])) : 0; + e.SpellAffectIndex = row[123] ? static_cast(atoi(row[123])) : -1; + e.disallow_sit = row[124] ? static_cast(atoi(row[124])) : 0; + e.deities0 = row[125] ? static_cast(atoi(row[125])) : 0; + e.deities1 = row[126] ? static_cast(atoi(row[126])) : 0; + e.deities2 = row[127] ? static_cast(atoi(row[127])) : 0; + e.deities3 = row[128] ? static_cast(atoi(row[128])) : 0; + e.deities4 = row[129] ? static_cast(atoi(row[129])) : 0; + e.deities5 = row[130] ? static_cast(atoi(row[130])) : 0; + e.deities6 = row[131] ? static_cast(atoi(row[131])) : 0; + e.deities7 = row[132] ? static_cast(atoi(row[132])) : 0; + e.deities8 = row[133] ? static_cast(atoi(row[133])) : 0; + e.deities9 = row[134] ? static_cast(atoi(row[134])) : 0; + e.deities10 = row[135] ? static_cast(atoi(row[135])) : 0; + e.deities11 = row[136] ? static_cast(atoi(row[136])) : 0; + e.deities12 = row[137] ? static_cast(atoi(row[137])) : 0; + e.deities13 = row[138] ? static_cast(atoi(row[138])) : 0; + e.deities14 = row[139] ? static_cast(atoi(row[139])) : 0; + e.deities15 = row[140] ? static_cast(atoi(row[140])) : 0; + e.deities16 = row[141] ? static_cast(atoi(row[141])) : 0; + e.field142 = row[142] ? static_cast(atoi(row[142])) : 100; + e.field143 = row[143] ? static_cast(atoi(row[143])) : 0; + e.new_icon = row[144] ? static_cast(atoi(row[144])) : 161; + e.spellanim = row[145] ? static_cast(atoi(row[145])) : 0; + e.uninterruptable = row[146] ? static_cast(atoi(row[146])) : 0; + e.ResistDiff = row[147] ? static_cast(atoi(row[147])) : -150; + e.dot_stacking_exempt = row[148] ? static_cast(atoi(row[148])) : 0; + e.deleteable = row[149] ? static_cast(atoi(row[149])) : 0; + e.RecourseLink = row[150] ? static_cast(atoi(row[150])) : 0; + e.no_partial_resist = row[151] ? static_cast(atoi(row[151])) : 0; + e.field152 = row[152] ? static_cast(atoi(row[152])) : 0; + e.field153 = row[153] ? static_cast(atoi(row[153])) : 0; + e.short_buff_box = row[154] ? static_cast(atoi(row[154])) : -1; + e.descnum = row[155] ? static_cast(atoi(row[155])) : 0; + e.typedescnum = row[156] ? static_cast(atoi(row[156])) : 0; + e.effectdescnum = row[157] ? static_cast(atoi(row[157])) : 0; + e.effectdescnum2 = row[158] ? static_cast(atoi(row[158])) : 0; + e.npc_no_los = row[159] ? static_cast(atoi(row[159])) : 0; + e.field160 = row[160] ? static_cast(atoi(row[160])) : 0; + e.reflectable = row[161] ? static_cast(atoi(row[161])) : 0; + e.bonushate = row[162] ? static_cast(atoi(row[162])) : 0; + e.field163 = row[163] ? static_cast(atoi(row[163])) : 100; + e.field164 = row[164] ? static_cast(atoi(row[164])) : -150; + e.ldon_trap = row[165] ? static_cast(atoi(row[165])) : 0; + e.EndurCost = row[166] ? static_cast(atoi(row[166])) : 0; + e.EndurTimerIndex = row[167] ? static_cast(atoi(row[167])) : 0; + e.IsDiscipline = row[168] ? static_cast(atoi(row[168])) : 0; + e.field169 = row[169] ? static_cast(atoi(row[169])) : 0; + e.field170 = row[170] ? static_cast(atoi(row[170])) : 0; + e.field171 = row[171] ? static_cast(atoi(row[171])) : 0; + e.field172 = row[172] ? static_cast(atoi(row[172])) : 0; + e.HateAdded = row[173] ? static_cast(atoi(row[173])) : 0; + e.EndurUpkeep = row[174] ? static_cast(atoi(row[174])) : 0; + e.numhitstype = row[175] ? static_cast(atoi(row[175])) : 0; + e.numhits = row[176] ? static_cast(atoi(row[176])) : 0; + e.pvpresistbase = row[177] ? static_cast(atoi(row[177])) : -150; + e.pvpresistcalc = row[178] ? static_cast(atoi(row[178])) : 100; + e.pvpresistcap = row[179] ? static_cast(atoi(row[179])) : -150; + e.spell_category = row[180] ? static_cast(atoi(row[180])) : -99; + e.pvp_duration = row[181] ? static_cast(atoi(row[181])) : 0; + e.pvp_duration_cap = row[182] ? static_cast(atoi(row[182])) : 0; + e.pcnpc_only_flag = row[183] ? static_cast(atoi(row[183])) : 0; + e.cast_not_standing = row[184] ? static_cast(atoi(row[184])) : 0; + e.can_mgb = row[185] ? static_cast(atoi(row[185])) : 0; + e.nodispell = row[186] ? static_cast(atoi(row[186])) : -1; + e.npc_category = row[187] ? static_cast(atoi(row[187])) : 0; + e.npc_usefulness = row[188] ? static_cast(atoi(row[188])) : 0; + e.MinResist = row[189] ? static_cast(atoi(row[189])) : 0; + e.MaxResist = row[190] ? static_cast(atoi(row[190])) : 0; + e.viral_targets = row[191] ? static_cast(atoi(row[191])) : 0; + e.viral_timer = row[192] ? static_cast(atoi(row[192])) : 0; + e.nimbuseffect = row[193] ? static_cast(atoi(row[193])) : 0; + e.ConeStartAngle = row[194] ? static_cast(atoi(row[194])) : 0; + e.ConeStopAngle = row[195] ? static_cast(atoi(row[195])) : 0; + e.sneaking = row[196] ? static_cast(atoi(row[196])) : 0; + e.not_extendable = row[197] ? static_cast(atoi(row[197])) : 0; + e.field198 = row[198] ? static_cast(atoi(row[198])) : 0; + e.field199 = row[199] ? static_cast(atoi(row[199])) : 1; + e.suspendable = row[200] ? static_cast(atoi(row[200])) : 0; + e.viral_range = row[201] ? static_cast(atoi(row[201])) : 0; + e.songcap = row[202] ? static_cast(atoi(row[202])) : 0; + e.field203 = row[203] ? static_cast(atoi(row[203])) : 0; + e.field204 = row[204] ? static_cast(atoi(row[204])) : 0; + e.no_block = row[205] ? static_cast(atoi(row[205])) : 0; + e.field206 = row[206] ? static_cast(atoi(row[206])) : -1; + e.spellgroup = row[207] ? static_cast(atoi(row[207])) : 0; + e.rank_ = row[208] ? static_cast(atoi(row[208])) : 0; + e.field209 = row[209] ? static_cast(atoi(row[209])) : 0; + e.field210 = row[210] ? static_cast(atoi(row[210])) : 1; + e.CastRestriction = row[211] ? static_cast(atoi(row[211])) : 0; + e.allowrest = row[212] ? static_cast(atoi(row[212])) : 0; + e.InCombat = row[213] ? static_cast(atoi(row[213])) : 0; + e.OutofCombat = row[214] ? static_cast(atoi(row[214])) : 0; + e.field215 = row[215] ? static_cast(atoi(row[215])) : 0; + e.field216 = row[216] ? static_cast(atoi(row[216])) : 0; + e.field217 = row[217] ? static_cast(atoi(row[217])) : 0; + e.aemaxtargets = row[218] ? static_cast(atoi(row[218])) : 0; + e.maxtargets = row[219] ? static_cast(atoi(row[219])) : 0; + e.field220 = row[220] ? static_cast(atoi(row[220])) : 0; + e.field221 = row[221] ? static_cast(atoi(row[221])) : 0; + e.field222 = row[222] ? static_cast(atoi(row[222])) : 0; + e.field223 = row[223] ? static_cast(atoi(row[223])) : 0; + e.persistdeath = row[224] ? static_cast(atoi(row[224])) : 0; + e.field225 = row[225] ? static_cast(atoi(row[225])) : 0; + e.field226 = row[226] ? static_cast(atoi(row[226])) : 0; + e.min_dist = row[227] ? strtof(row[227], nullptr) : 0; + e.min_dist_mod = row[228] ? strtof(row[228], nullptr) : 0; + e.max_dist = row[229] ? strtof(row[229], nullptr) : 0; + e.max_dist_mod = row[230] ? strtof(row[230], nullptr) : 0; + e.min_range = row[231] ? static_cast(atoi(row[231])) : 0; + e.field232 = row[232] ? static_cast(atoi(row[232])) : 0; + e.field233 = row[233] ? static_cast(atoi(row[233])) : 0; + e.field234 = row[234] ? static_cast(atoi(row[234])) : 0; + e.field235 = row[235] ? static_cast(atoi(row[235])) : 0; + e.field236 = row[236] ? static_cast(atoi(row[236])) : 0; all_entries.push_back(e); } @@ -2855,7 +2855,7 @@ public: v.push_back(std::to_string(e.effectdescnum)); v.push_back(std::to_string(e.effectdescnum2)); v.push_back(std::to_string(e.npc_no_los)); - v.push_back(std::to_string(e.feedbackable)); + v.push_back(std::to_string(e.field160)); v.push_back(std::to_string(e.reflectable)); v.push_back(std::to_string(e.bonushate)); v.push_back(std::to_string(e.field163)); @@ -2893,7 +2893,7 @@ public: v.push_back(std::to_string(e.ConeStopAngle)); v.push_back(std::to_string(e.sneaking)); v.push_back(std::to_string(e.not_extendable)); - v.push_back(std::to_string(e.no_detrimental_spell_aggro)); + v.push_back(std::to_string(e.field198)); v.push_back(std::to_string(e.field199)); v.push_back(std::to_string(e.suspendable)); v.push_back(std::to_string(e.viral_range)); @@ -2904,7 +2904,7 @@ public: v.push_back(std::to_string(e.field206)); v.push_back(std::to_string(e.spellgroup)); v.push_back(std::to_string(e.rank_)); - v.push_back(std::to_string(e.no_resist)); + v.push_back(std::to_string(e.field209)); v.push_back(std::to_string(e.field210)); v.push_back(std::to_string(e.CastRestriction)); v.push_back(std::to_string(e.allowrest)); @@ -2912,13 +2912,13 @@ public: v.push_back(std::to_string(e.OutofCombat)); v.push_back(std::to_string(e.field215)); v.push_back(std::to_string(e.field216)); - v.push_back(std::to_string(e.override_crit_chance)); + v.push_back(std::to_string(e.field217)); v.push_back(std::to_string(e.aemaxtargets)); v.push_back(std::to_string(e.maxtargets)); - v.push_back(std::to_string(e.no_heal_damage_item_mod)); - v.push_back(std::to_string(e.caster_requirement_id)); - v.push_back(std::to_string(e.spell_class)); - v.push_back(std::to_string(e.spell_subclass)); + v.push_back(std::to_string(e.field220)); + v.push_back(std::to_string(e.field221)); + v.push_back(std::to_string(e.field222)); + v.push_back(std::to_string(e.field223)); v.push_back(std::to_string(e.persistdeath)); v.push_back(std::to_string(e.field225)); v.push_back(std::to_string(e.field226)); @@ -2927,7 +2927,7 @@ public: v.push_back(std::to_string(e.max_dist)); v.push_back(std::to_string(e.max_dist_mod)); v.push_back(std::to_string(e.min_range)); - v.push_back(std::to_string(e.no_remove)); + v.push_back(std::to_string(e.field232)); v.push_back(std::to_string(e.field233)); v.push_back(std::to_string(e.field234)); v.push_back(std::to_string(e.field235)); @@ -3114,7 +3114,7 @@ public: v.push_back(std::to_string(e.effectdescnum)); v.push_back(std::to_string(e.effectdescnum2)); v.push_back(std::to_string(e.npc_no_los)); - v.push_back(std::to_string(e.feedbackable)); + v.push_back(std::to_string(e.field160)); v.push_back(std::to_string(e.reflectable)); v.push_back(std::to_string(e.bonushate)); v.push_back(std::to_string(e.field163)); @@ -3152,7 +3152,7 @@ public: v.push_back(std::to_string(e.ConeStopAngle)); v.push_back(std::to_string(e.sneaking)); v.push_back(std::to_string(e.not_extendable)); - v.push_back(std::to_string(e.no_detrimental_spell_aggro)); + v.push_back(std::to_string(e.field198)); v.push_back(std::to_string(e.field199)); v.push_back(std::to_string(e.suspendable)); v.push_back(std::to_string(e.viral_range)); @@ -3163,7 +3163,7 @@ public: v.push_back(std::to_string(e.field206)); v.push_back(std::to_string(e.spellgroup)); v.push_back(std::to_string(e.rank_)); - v.push_back(std::to_string(e.no_resist)); + v.push_back(std::to_string(e.field209)); v.push_back(std::to_string(e.field210)); v.push_back(std::to_string(e.CastRestriction)); v.push_back(std::to_string(e.allowrest)); @@ -3171,13 +3171,13 @@ public: v.push_back(std::to_string(e.OutofCombat)); v.push_back(std::to_string(e.field215)); v.push_back(std::to_string(e.field216)); - v.push_back(std::to_string(e.override_crit_chance)); + v.push_back(std::to_string(e.field217)); v.push_back(std::to_string(e.aemaxtargets)); v.push_back(std::to_string(e.maxtargets)); - v.push_back(std::to_string(e.no_heal_damage_item_mod)); - v.push_back(std::to_string(e.caster_requirement_id)); - v.push_back(std::to_string(e.spell_class)); - v.push_back(std::to_string(e.spell_subclass)); + v.push_back(std::to_string(e.field220)); + v.push_back(std::to_string(e.field221)); + v.push_back(std::to_string(e.field222)); + v.push_back(std::to_string(e.field223)); v.push_back(std::to_string(e.persistdeath)); v.push_back(std::to_string(e.field225)); v.push_back(std::to_string(e.field226)); @@ -3186,7 +3186,7 @@ public: v.push_back(std::to_string(e.max_dist)); v.push_back(std::to_string(e.max_dist_mod)); v.push_back(std::to_string(e.min_range)); - v.push_back(std::to_string(e.no_remove)); + v.push_back(std::to_string(e.field232)); v.push_back(std::to_string(e.field233)); v.push_back(std::to_string(e.field234)); v.push_back(std::to_string(e.field235)); diff --git a/common/shareddb.cpp b/common/shareddb.cpp index 0a9dab91f..d680df1de 100644 --- a/common/shareddb.cpp +++ b/common/shareddb.cpp @@ -56,6 +56,19 @@ #include "repositories/damageshieldtypes_repository.h" #include "repositories/items_repository.h" +namespace ItemField +{ + enum { + source = 0, +#define F(x) x, +#include "item_fieldlist.h" +#undef F + updated, + minstatus, + comment, + }; +} + SharedDatabase::SharedDatabase() : Database() { @@ -1630,9 +1643,16 @@ const EvolveInfo* SharedDatabase::GetEvolveInfo(uint32 loregroup) { return nullptr; // nothing here for now... database and/or sharemem pulls later } -int SharedDatabase::GetMaxSpellID() -{ - return SpellsNewRepository::GetMaxId(*this); +int SharedDatabase::GetMaxSpellID() { + const std::string query = "SELECT MAX(id) FROM spells_new"; + auto results = QueryDatabase(query); + if (!results.Success()) { + return -1; + } + + auto& row = results.begin(); + + return Strings::ToInt(row[0]); } bool SharedDatabase::LoadSpells(const std::string &prefix, int32 *records, const SPDat_Spell_Struct **sp) { @@ -1664,247 +1684,173 @@ void SharedDatabase::LoadSpells(void *data, int max_spells) { *static_cast(data) = max_spells; SPDat_Spell_Struct *sp = reinterpret_cast(static_cast(data) + sizeof(uint32)); - const auto& l = SpellsNewRepository::All(*this); + const std::string query = "SELECT * FROM spells_new ORDER BY id ASC"; + auto results = QueryDatabase(query); + if (!results.Success()) { + return; + } - if (l.empty()) { + if(results.ColumnCount() <= SPELL_LOAD_FIELD_COUNT) { + LogSpells("Fatal error loading spells: Spell field count < SPELL_LOAD_FIELD_COUNT([{}])", SPELL_LOAD_FIELD_COUNT); return; - } + } - for (const auto& e : l) { - if (e.id >= max_spells) { + int counter = 0; + + for (auto& row = results.begin(); row != results.end(); ++row) { + const int tempid = Strings::ToInt(row[0]); + if(tempid >= max_spells) { LogSpells("Non fatal error: spell.id >= max_spells, ignoring"); continue; } - sp[e.id].id = e.id; + ++counter; + sp[tempid].id = tempid; + strn0cpy(sp[tempid].name, row[1], sizeof(sp[tempid].name)); + strn0cpy(sp[tempid].player_1, row[2], sizeof(sp[tempid].player_1)); + strn0cpy(sp[tempid].teleport_zone, row[3], sizeof(sp[tempid].teleport_zone)); + strn0cpy(sp[tempid].you_cast, row[4], sizeof(sp[tempid].you_cast)); + strn0cpy(sp[tempid].other_casts, row[5], sizeof(sp[tempid].other_casts)); + strn0cpy(sp[tempid].cast_on_you, row[6], sizeof(sp[tempid].cast_on_you)); + strn0cpy(sp[tempid].cast_on_other, row[7], sizeof(sp[tempid].cast_on_other)); + strn0cpy(sp[tempid].spell_fades, row[8], sizeof(sp[tempid].spell_fades)); - strn0cpy(sp[e.id].name, e.name.c_str(), sizeof(sp[e.id].name)); - strn0cpy(sp[e.id].player_1, e.player_1.c_str(), sizeof(sp[e.id].player_1)); - strn0cpy(sp[e.id].teleport_zone, e.teleport_zone.c_str(), sizeof(sp[e.id].teleport_zone)); - strn0cpy(sp[e.id].you_cast, e.you_cast.c_str(), sizeof(sp[e.id].you_cast)); - strn0cpy(sp[e.id].other_casts, e.other_casts.c_str(), sizeof(sp[e.id].other_casts)); - strn0cpy(sp[e.id].cast_on_you, e.cast_on_you.c_str(), sizeof(sp[e.id].cast_on_you)); - strn0cpy(sp[e.id].cast_on_other, e.cast_on_other.c_str(), sizeof(sp[e.id].cast_on_other)); - strn0cpy(sp[e.id].spell_fades, e.spell_fades.c_str(), sizeof(sp[e.id].spell_fades)); + sp[tempid].range = Strings::ToFloat(row[9]); + sp[tempid].aoe_range = Strings::ToFloat(row[10]); + sp[tempid].push_back = Strings::ToFloat(row[11]); + sp[tempid].push_up = Strings::ToFloat(row[12]); + sp[tempid].cast_time=Strings::ToUnsignedInt(row[13]); + sp[tempid].recovery_time=Strings::ToUnsignedInt(row[14]); + sp[tempid].recast_time=Strings::ToUnsignedInt(row[15]); + sp[tempid].buff_duration_formula=Strings::ToUnsignedInt(row[16]); + sp[tempid].buff_duration=Strings::ToUnsignedInt(row[17]); + sp[tempid].aoe_duration=Strings::ToUnsignedInt(row[18]); + sp[tempid].mana=Strings::ToInt(row[19]); - sp[e.id].range = e.range_; - sp[e.id].aoe_range = e.aoerange; - sp[e.id].push_back = e.pushback; - sp[e.id].push_up = e.pushup; - sp[e.id].cast_time = e.cast_time; - sp[e.id].recovery_time = e.recovery_time; - sp[e.id].recast_time = e.recast_time; - sp[e.id].buff_duration_formula = e.buffdurationformula; - sp[e.id].buff_duration = e.buffduration; - sp[e.id].aoe_duration = e.AEDuration; - sp[e.id].mana = e.mana; + int y=0; + for(y=0; y< EFFECT_COUNT;y++) + sp[tempid].base_value[y]=Strings::ToInt(row[20+y]); // effect_base_value - sp[e.id].base_value[0] = e.effect_base_value1; - sp[e.id].base_value[1] = e.effect_base_value2; - sp[e.id].base_value[2] = e.effect_base_value3; - sp[e.id].base_value[3] = e.effect_base_value4; - sp[e.id].base_value[4] = e.effect_base_value5; - sp[e.id].base_value[5] = e.effect_base_value6; - sp[e.id].base_value[6] = e.effect_base_value7; - sp[e.id].base_value[7] = e.effect_base_value8; - sp[e.id].base_value[8] = e.effect_base_value9; - sp[e.id].base_value[9] = e.effect_base_value10; - sp[e.id].base_value[10] = e.effect_base_value11; - sp[e.id].base_value[11] = e.effect_base_value12; + for(y=0; y < EFFECT_COUNT; y++) + sp[tempid].limit_value[y]=Strings::ToInt(row[32+y]); // effect_limit_value - sp[e.id].limit_value[0] = e.effect_limit_value1; - sp[e.id].limit_value[1] = e.effect_limit_value2; - sp[e.id].limit_value[2] = e.effect_limit_value3; - sp[e.id].limit_value[3] = e.effect_limit_value4; - sp[e.id].limit_value[4] = e.effect_limit_value5; - sp[e.id].limit_value[5] = e.effect_limit_value6; - sp[e.id].limit_value[6] = e.effect_limit_value7; - sp[e.id].limit_value[7] = e.effect_limit_value8; - sp[e.id].limit_value[8] = e.effect_limit_value9; - sp[e.id].limit_value[9] = e.effect_limit_value10; - sp[e.id].limit_value[10] = e.effect_limit_value11; - sp[e.id].limit_value[11] = e.effect_limit_value12; + for(y=0; y< EFFECT_COUNT;y++) + sp[tempid].max_value[y]=Strings::ToInt(row[44+y]); - sp[e.id].max_value[0] = e.max1; - sp[e.id].max_value[1] = e.max2; - sp[e.id].max_value[2] = e.max3; - sp[e.id].max_value[3] = e.max4; - sp[e.id].max_value[4] = e.max5; - sp[e.id].max_value[5] = e.max6; - sp[e.id].max_value[6] = e.max7; - sp[e.id].max_value[7] = e.max8; - sp[e.id].max_value[8] = e.max9; - sp[e.id].max_value[9] = e.max10; - sp[e.id].max_value[10] = e.max11; - sp[e.id].max_value[11] = e.max12; + for(y=0; y< 4;y++) + sp[tempid].component[y]=Strings::ToInt(row[58+y]); - sp[e.id].component[0] = e.components1; - sp[e.id].component[1] = e.components2; - sp[e.id].component[2] = e.components3; - sp[e.id].component[3] = e.components4; + for(y=0; y< 4;y++) + sp[tempid].component_count[y]=Strings::ToInt(row[62+y]); - sp[e.id].component_count[0] = e.component_counts1; - sp[e.id].component_count[1] = e.component_counts2; - sp[e.id].component_count[2] = e.component_counts3; - sp[e.id].component_count[3] = e.component_counts4; + for(y=0; y< 4;y++) + sp[tempid].no_expend_reagent[y]=Strings::ToInt(row[66+y]); - sp[e.id].no_expend_reagent[0] = e.NoexpendReagent1; - sp[e.id].no_expend_reagent[1] = e.NoexpendReagent2; - sp[e.id].no_expend_reagent[2] = e.NoexpendReagent3; - sp[e.id].no_expend_reagent[3] = e.NoexpendReagent4; + for(y=0; y< EFFECT_COUNT;y++) + sp[tempid].formula[y]=Strings::ToUnsignedInt(row[70+y]); - sp[e.id].formula[0] = e.formula1; - sp[e.id].formula[1] = e.formula2; - sp[e.id].formula[2] = e.formula3; - sp[e.id].formula[3] = e.formula4; - sp[e.id].formula[4] = e.formula5; - sp[e.id].formula[5] = e.formula6; - sp[e.id].formula[6] = e.formula7; - sp[e.id].formula[7] = e.formula8; - sp[e.id].formula[8] = e.formula9; - sp[e.id].formula[9] = e.formula10; - sp[e.id].formula[10] = e.formula11; - sp[e.id].formula[11] = e.formula12; + sp[tempid].good_effect=Strings::ToInt(row[83]); + sp[tempid].activated=Strings::ToInt(row[84]); + sp[tempid].resist_type=Strings::ToInt(row[85]); - sp[e.id].good_effect = e.goodEffect; - sp[e.id].activated = e.Activated; - sp[e.id].resist_type = e.resisttype; + for(y=0; y< EFFECT_COUNT;y++) + sp[tempid].effect_id[y]=Strings::ToInt(row[86+y]); - sp[e.id].effect_id[0] = e.effectid1; - sp[e.id].effect_id[1] = e.effectid2; - sp[e.id].effect_id[2] = e.effectid3; - sp[e.id].effect_id[3] = e.effectid4; - sp[e.id].effect_id[4] = e.effectid5; - sp[e.id].effect_id[5] = e.effectid6; - sp[e.id].effect_id[6] = e.effectid7; - sp[e.id].effect_id[7] = e.effectid8; - sp[e.id].effect_id[8] = e.effectid9; - sp[e.id].effect_id[9] = e.effectid10; - sp[e.id].effect_id[10] = e.effectid11; - sp[e.id].effect_id[11] = e.effectid12; + sp[tempid].target_type = static_cast(Strings::ToInt(row[98])); + sp[tempid].base_difficulty=Strings::ToInt(row[99]); - sp[e.id].target_type = static_cast(e.targettype); + int tmp_skill = Strings::ToInt(row[100]); - sp[e.id].base_difficulty = e.basediff; + if (tmp_skill < 0 || tmp_skill > EQ::skills::HIGHEST_SKILL) + sp[tempid].skill = EQ::skills::SkillBegging; /* not much better we can do. */ // can probably be changed to client-based 'SkillNone' once activated + else + sp[tempid].skill = static_cast(tmp_skill); - sp[e.id].skill = ( - EQ::ValueWithin(e.skill, 0, EQ::skills::HIGHEST_SKILL) ? - static_cast(e.skill) : - EQ::skills::SkillBegging - ); + sp[tempid].zone_type=Strings::ToInt(row[101]); + sp[tempid].environment_type=Strings::ToInt(row[102]); + sp[tempid].time_of_day=Strings::ToInt(row[103]); - sp[e.id].zone_type = e.zonetype; - sp[e.id].environment_type = e.EnvironmentType; - sp[e.id].time_of_day = e.TimeOfDay; + for(y=0; y < Class::PLAYER_CLASS_COUNT;y++) + sp[tempid].classes[y]=Strings::ToInt(row[104+y]); - sp[e.id].classes[0] = e.classes1; - sp[e.id].classes[1] = e.classes2; - sp[e.id].classes[2] = e.classes3; - sp[e.id].classes[3] = e.classes4; - sp[e.id].classes[4] = e.classes5; - sp[e.id].classes[5] = e.classes6; - sp[e.id].classes[6] = e.classes7; - sp[e.id].classes[7] = e.classes8; - sp[e.id].classes[8] = e.classes9; - sp[e.id].classes[9] = e.classes10; - sp[e.id].classes[10] = e.classes11; - sp[e.id].classes[11] = e.classes12; - sp[e.id].classes[12] = e.classes13; - sp[e.id].classes[13] = e.classes14; - sp[e.id].classes[14] = e.classes15; - sp[e.id].classes[15] = e.classes16; + sp[tempid].casting_animation=Strings::ToInt(row[120]); + sp[tempid].spell_affect_index=Strings::ToInt(row[123]); + sp[tempid].disallow_sit=Strings::ToInt(row[124]); + sp[tempid].deity_agnostic=Strings::ToInt(row[125]); - sp[e.id].casting_animation = e.CastingAnim; - sp[e.id].spell_affect_index = e.SpellAffectIndex; - sp[e.id].disallow_sit = e.disallow_sit; + for (y = 0; y < 16; y++) + sp[tempid].deities[y]=Strings::ToInt(row[126+y]); - sp[e.id].deity_agnostic = e.deities0; // Agnostic - sp[e.id].deities[0] = e.deities1; // Bertoxxulous - sp[e.id].deities[1] = e.deities2; // Brell Serilis - sp[e.id].deities[2] = e.deities3; // Cazic Thule - sp[e.id].deities[3] = e.deities4; // Erollsi Marr - sp[e.id].deities[4] = e.deities5; // Bristlebane - sp[e.id].deities[5] = e.deities6; // Innoruuk - sp[e.id].deities[6] = e.deities7; // Karana - sp[e.id].deities[7] = e.deities8; // Mithaniel Marr - sp[e.id].deities[8] = e.deities9; // Prexius - sp[e.id].deities[9] = e.deities10; // Quellious - sp[e.id].deities[10] = e.deities11; // Rallos Zek - sp[e.id].deities[11] = e.deities12; // Rodcet Nife - sp[e.id].deities[12] = e.deities13; // Solusek Ro - sp[e.id].deities[13] = e.deities14; // The Tribunal - sp[e.id].deities[14] = e.deities15; // Tunare - sp[e.id].deities[15] = e.deities16; // Veeshan + sp[tempid].new_icon=Strings::ToInt(row[144]); + sp[tempid].uninterruptable=Strings::ToBool(row[146]); + sp[tempid].resist_difficulty=Strings::ToInt(row[147]); + sp[tempid].unstackable_dot = Strings::ToBool(row[148]); + sp[tempid].recourse_link = Strings::ToUnsignedInt(row[150]); + sp[tempid].no_partial_resist = Strings::ToBool(row[151]); - sp[e.id].new_icon = e.new_icon; - sp[e.id].uninterruptable = e.uninterruptable; - sp[e.id].resist_difficulty = e.ResistDiff; - sp[e.id].unstackable_dot = e.dot_stacking_exempt; - sp[e.id].recourse_link = e.RecourseLink; - sp[e.id].no_partial_resist = e.no_partial_resist; - sp[e.id].short_buff_box = e.short_buff_box; - sp[e.id].description_id = e.descnum; - sp[e.id].type_description_id = e.typedescnum; - sp[e.id].effect_description_id = e.effectdescnum; - sp[e.id].npc_no_los = e.npc_no_los; - sp[e.id].feedbackable = e.feedbackable; - sp[e.id].reflectable = e.reflectable; - sp[e.id].bonus_hate = e.bonushate; - sp[e.id].ldon_trap = e.ldon_trap; - sp[e.id].endurance_cost = e.EndurCost; - sp[e.id].timer_id = e.EndurTimerIndex; - sp[e.id].is_discipline = e.IsDiscipline; - sp[e.id].hate_added = e.HateAdded; - sp[e.id].endurance_upkeep = e.EndurUpkeep; - sp[e.id].hit_number_type = e.numhits; - sp[e.id].hit_number = e.numhitstype; - sp[e.id].pvp_resist_base = e.pvpresistbase; - sp[e.id].pvp_resist_per_level = e.pvpresistcalc; - sp[e.id].pvp_resist_cap = e.pvpresistcap; - sp[e.id].spell_category = e.spell_category; - sp[e.id].pvp_duration = e.pvp_duration; - sp[e.id].pvp_duration_cap = e.pvp_duration_cap; - sp[e.id].pcnpc_only_flag = e.pcnpc_only_flag; - sp[e.id].cast_not_standing = e.cast_not_standing; - sp[e.id].can_mgb = e.can_mgb; - sp[e.id].dispel_flag = e.nodispell; - sp[e.id].min_resist = e.MinResist; - sp[e.id].max_resist = e.MaxResist; - sp[e.id].viral_targets = e.viral_targets; - sp[e.id].viral_timer = e.viral_timer; - sp[e.id].nimbus_effect = e.nimbuseffect; - sp[e.id].directional_start = e.ConeStartAngle; - sp[e.id].directional_end = e.ConeStopAngle; - sp[e.id].sneak = e.sneaking; - sp[e.id].not_focusable = e.not_extendable; + sp[tempid].short_buff_box = Strings::ToInt(row[154]); + sp[tempid].description_id = Strings::ToInt(row[155]); + sp[tempid].type_description_id = Strings::ToInt(row[156]); + sp[tempid].effect_description_id = Strings::ToInt(row[157]); - sp[e.id].no_detrimental_spell_aggro = e.no_detrimental_spell_aggro; + sp[tempid].npc_no_los = Strings::ToBool(row[159]); + sp[tempid].feedbackable = Strings::ToBool(row[160]); + sp[tempid].reflectable = Strings::ToBool(row[161]); + sp[tempid].bonus_hate=Strings::ToInt(row[162]); - sp[e.id].suspendable = e.suspendable; - sp[e.id].viral_range = e.viral_range; - sp[e.id].song_cap = e.songcap; - sp[e.id].no_block = e.no_block; - sp[e.id].spell_group = e.spellgroup; - sp[e.id].rank = e.rank_; - sp[e.id].no_resist = e.no_resist; - sp[e.id].cast_restriction = e.CastRestriction; - sp[e.id].allow_rest = e.allowrest; - sp[e.id].can_cast_in_combat = e.InCombat; - sp[e.id].can_cast_out_of_combat = e.OutofCombat; - sp[e.id].override_crit_chance = e.override_crit_chance; - sp[e.id].aoe_max_targets = e.aemaxtargets; - sp[e.id].no_heal_damage_item_mod = e.no_heal_damage_item_mod; - sp[e.id].caster_requirement_id = e.caster_requirement_id; - sp[e.id].spell_class = e.spell_class; - sp[e.id].spell_subclass = e.spell_subclass; - sp[e.id].persist_death = e.persistdeath; - sp[e.id].min_distance = e.min_dist; - sp[e.id].min_distance_mod = e.min_dist_mod; - sp[e.id].max_distance = e.max_dist; - sp[e.id].max_distance_mod = e.max_dist_mod; - sp[e.id].min_range = e.min_range; - sp[e.id].no_remove = e.no_remove; - sp[e.id].damage_shield_type = 0; + sp[tempid].ldon_trap = Strings::ToBool(row[165]); + sp[tempid].endurance_cost= Strings::ToInt(row[166]); + sp[tempid].timer_id= Strings::ToInt(row[167]); + sp[tempid].is_discipline = Strings::ToBool(row[168]); + sp[tempid].hate_added= Strings::ToInt(row[173]); + sp[tempid].endurance_upkeep=Strings::ToInt(row[174]); + sp[tempid].hit_number_type = Strings::ToInt(row[175]); + sp[tempid].hit_number = Strings::ToInt(row[176]); + sp[tempid].pvp_resist_base= Strings::ToInt(row[177]); + sp[tempid].pvp_resist_per_level= Strings::ToInt(row[178]); + sp[tempid].pvp_resist_cap= Strings::ToInt(row[179]); + sp[tempid].spell_category= Strings::ToInt(row[180]); + sp[tempid].pvp_duration = Strings::ToInt(row[181]); + sp[tempid].pvp_duration_cap = Strings::ToInt(row[182]); + sp[tempid].pcnpc_only_flag= Strings::ToInt(row[183]); + sp[tempid].cast_not_standing = Strings::ToInt(row[184]) != 0; + sp[tempid].can_mgb= Strings::ToBool(row[185]); + sp[tempid].dispel_flag = Strings::ToInt(row[186]); + sp[tempid].min_resist = Strings::ToInt(row[189]); + sp[tempid].max_resist = Strings::ToInt(row[190]); + sp[tempid].viral_targets = Strings::ToInt(row[191]); + sp[tempid].viral_timer = Strings::ToInt(row[192]); + sp[tempid].nimbus_effect = Strings::ToInt(row[193]); + sp[tempid].directional_start = Strings::ToFloat(row[194]); + sp[tempid].directional_end = Strings::ToFloat(row[195]); + sp[tempid].sneak = Strings::ToBool(row[196]); + sp[tempid].not_focusable = Strings::ToBool(row[197]); + sp[tempid].no_detrimental_spell_aggro = Strings::ToBool(row[198]); + sp[tempid].suspendable = Strings::ToBool(row[200]); + sp[tempid].viral_range = Strings::ToInt(row[201]); + sp[tempid].song_cap = Strings::ToInt(row[202]); + sp[tempid].no_block = Strings::ToInt(row[205]); + sp[tempid].spell_group=Strings::ToInt(row[207]); + sp[tempid].rank = Strings::ToInt(row[208]); + sp[tempid].no_resist=Strings::ToInt(row[209]); + sp[tempid].cast_restriction = Strings::ToInt(row[211]); + sp[tempid].allow_rest = Strings::ToBool(row[212]); + sp[tempid].can_cast_in_combat = Strings::ToBool(row[213]); + sp[tempid].can_cast_out_of_combat = Strings::ToBool(row[214]); + sp[tempid].override_crit_chance = Strings::ToInt(row[217]); + sp[tempid].aoe_max_targets = Strings::ToInt(row[218]); + sp[tempid].no_heal_damage_item_mod = Strings::ToInt(row[219]); + sp[tempid].caster_requirement_id = Strings::ToInt(row[220]); + sp[tempid].spell_class = Strings::ToInt(row[221]); + sp[tempid].spell_subclass = Strings::ToInt(row[222]); + sp[tempid].persist_death = Strings::ToBool(row[224]); + sp[tempid].min_distance = Strings::ToFloat(row[227]); + sp[tempid].min_distance_mod = Strings::ToFloat(row[228]); + sp[tempid].max_distance = Strings::ToFloat(row[229]); + sp[tempid].max_distance_mod = Strings::ToFloat(row[230]); + sp[tempid].min_range = Strings::ToFloat(row[231]); + sp[tempid].no_remove = Strings::ToBool(row[232]); + sp[tempid].damage_shield_type = 0; } LoadDamageShieldTypes(sp); @@ -1937,7 +1883,18 @@ void SharedDatabase::SaveCharacterInspectMessage(uint32 character_id, const Insp uint32 SharedDatabase::GetSpellsCount() { - return SpellsNewRepository::Count(*this); + auto results = QueryDatabase("SELECT count(*) FROM spells_new"); + if (!results.Success() || !results.RowCount()) { + return 0; + } + + auto& row = results.begin(); + + if (row[0]) { + return Strings::ToUnsignedInt(row[0]); + } + + return 0; } uint32 SharedDatabase::GetItemsCount() diff --git a/common/spdat.h b/common/spdat.h index 9df894d35..11130d6a4 100644 --- a/common/spdat.h +++ b/common/spdat.h @@ -1600,6 +1600,7 @@ namespace SpellEffect { // number. note that the id field is counted as 0, this way the numbers // here match the numbers given to sep in the loading function net.cpp // +#define SPELL_LOAD_FIELD_COUNT 236 struct SPDat_Spell_Struct { diff --git a/common/version.h b/common/version.h index 25688ca0d..b9c543691 100644 --- a/common/version.h +++ b/common/version.h @@ -42,7 +42,7 @@ * Manifest: https://github.com/EQEmu/Server/blob/master/utils/sql/db_update_manifest.txt */ -#define CURRENT_BINARY_DATABASE_VERSION 9329 +#define CURRENT_BINARY_DATABASE_VERSION 9328 #define CURRENT_BINARY_BOTS_DATABASE_VERSION 9054 #define CUSTOM_BINARY_DATABASE_VERSION 0