Attempt to fix static de-initialization problems.
Some compilers are calling destructors for static objects before other static objects use them in their destructors. This patch initializes static t_interned objects with new and intentionally doesn't call delete in order to guarrantee their existence throughout the static de-initialization phase. It creates a new function generate_safe_static_const_t_interned for this purpose. It might address bug #18666, although I can not duplicate the crash with gcc on fedora 15.
This commit is contained in:
parent
e59dc97260
commit
88b5546118
45 changed files with 1745 additions and 1738 deletions
199
src/actions.cpp
199
src/actions.cpp
|
@ -52,95 +52,6 @@ static lg::log_domain log_config("config");
|
|||
static lg::log_domain log_ai_testing("ai/testing");
|
||||
#define LOG_AI_TESTING LOG_STREAM(info, log_ai_testing)
|
||||
|
||||
namespace{
|
||||
//Static tokens are replacements for string literals in code
|
||||
//They allow for fast comparison operations.
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_x("x", false);
|
||||
static const config::t_token z_y("y", false);
|
||||
static const config::t_token z_placement("placement", false);
|
||||
static const config::t_token z_map("map", false);
|
||||
static const config::t_token z_recall("recall", false);
|
||||
static const config::t_token z_leader_passable("leader_passable", false);
|
||||
static const config::t_token z_side("side", false);
|
||||
static const config::t_token z_player_id("player_id", false);
|
||||
static const config::t_token z_faction_from_recruit("faction_from_recruit", false);
|
||||
static const config::t_token z_animate("animate", false);
|
||||
static const config::t_token z_prerecall("prerecall", false);
|
||||
static const config::t_token z_prerecruit("prerecruit", false);
|
||||
static const config::t_token z_recruit("recruit", false);
|
||||
static const config::t_token z_checksum("checksum", false);
|
||||
static const config::t_token z_map_passable("map_passable", false);
|
||||
static const config::t_token z_leader("leader", false);
|
||||
static const config::t_token z_leadership("leadership", false);
|
||||
static const config::t_token z_value("value", false);
|
||||
static const config::t_token z_not_living("not_living", false);
|
||||
static const config::t_token z_slow("slow", false);
|
||||
static const config::t_token z_drains("drains", false);
|
||||
static const config::t_token z_petrifies("petrifies", false);
|
||||
static const config::t_token z_poison("poison", false);
|
||||
static const config::t_token z_berserk("berserk", false);
|
||||
static const config::t_token z_firststrike("firststrike", false);
|
||||
static const config::t_token z_plague("plague", false);
|
||||
static const config::t_token z_null("null", false);
|
||||
//static const config::t_token z_empty("", false);
|
||||
static const config::t_token z_type("type", false);
|
||||
static const config::t_token z_chance_to_hit("chance_to_hit", false);
|
||||
static const config::t_token z_damage("damage", false);
|
||||
static const config::t_token z_swarm("swarm", false);
|
||||
static const config::t_token z_swarm_attacks_min("swarm_attacks_min", false);
|
||||
static const config::t_token z_swarm_attacks_max("swarm_attacks_max", false);
|
||||
static const config::t_token z_attacks("attacks", false);
|
||||
static const config::t_token z_first("first", false);
|
||||
static const config::t_token z_second("second", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_none("none", false);
|
||||
static const config::t_token z_female("female", false);
|
||||
static const config::t_token z_attack_end("attack_end", false);
|
||||
static const config::t_token z_damage_inflicted("damage_inflicted", false);
|
||||
static const config::t_token z_chance("chance", false);
|
||||
static const config::t_token z_hits("hits", false);
|
||||
static const config::t_token z_successful("successful", false);
|
||||
static const config::t_token z_unsuccessful("unsucessful", false);
|
||||
static const config::t_token z_poisoned("poisoned", false);
|
||||
static const config::t_token z_slowed("slowed", false);
|
||||
static const config::t_token z_petrified("petrified", false);
|
||||
static const config::t_token z_female_poisoned("female^poisoned", false);
|
||||
static const config::t_token z_female_slowed("female^slowed", false);
|
||||
static const config::t_token z_female_petrified("female^petrified", false);
|
||||
static const config::t_token z_dies("dies", false);
|
||||
static const config::t_token z_die("die", false);
|
||||
static const config::t_token z_last_breath("last breath", false);
|
||||
static const config::t_token z_unit_hit("unit_hit", false);
|
||||
static const config::t_token z_defender("defender", false);
|
||||
static const config::t_token z_attacker("attacker", false);
|
||||
static const config::t_token z_perished("perished", false);
|
||||
static const config::t_token z_survived("survived", false);
|
||||
static const config::t_token z_attacker_hits("attacker_hits", false);
|
||||
static const config::t_token z_attacker_misses("attacker_misses", false);
|
||||
static const config::t_token z_defender_hits("defender_hits", false);
|
||||
static const config::t_token z_defender_misses("defender_misses", false);
|
||||
static const config::t_token z_effect("effect", false);
|
||||
static const config::t_token z_apply_to("apply_to", false);
|
||||
static const config::t_token z_unhealable("unhealable", false);
|
||||
static const config::t_token z_heals("heals", false);
|
||||
static const config::t_token z_cured("cured", false);
|
||||
static const config::t_token z_regenerate("regnerate", false);
|
||||
static const config::t_token z_advance("advance", false);
|
||||
static const config::t_token z_post_advance("post_advance", false);
|
||||
static const config::t_token z_hides("hides", false);
|
||||
static const config::t_token z_alert("alert", false);
|
||||
static const config::t_token z_sighted("sighted", false);
|
||||
static const config::t_token z_moveto("moveto", false);
|
||||
static const config::t_token z_friends("friends", false);
|
||||
static const config::t_token z_enemies("enemies", false);
|
||||
static const config::t_token z_friendphrase("friendphrase", false);
|
||||
static const config::t_token z_enemyphrase("enemyphrase", false);
|
||||
static const config::t_token z_hotkey("hotkey", false);
|
||||
static const config::t_token z_variation("variation", false);
|
||||
static const config::t_token z_attack("attack", false);
|
||||
|
||||
}
|
||||
struct castle_cost_calculator : pathfind::cost_calculator
|
||||
{
|
||||
castle_cost_calculator(const gamemap& map) : map_(map)
|
||||
|
@ -287,15 +198,24 @@ unit_creator& unit_creator::allow_add_to_recall(bool b)
|
|||
|
||||
map_location unit_creator::find_location(const config &cfg, const unit* pass_check)
|
||||
{
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_placement( generate_safe_static_const_t_interned(n_token::t_token("placement")) );
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
static const config::t_token & z_map( generate_safe_static_const_t_interned(n_token::t_token("map")) );
|
||||
static const config::t_token & z_recall( generate_safe_static_const_t_interned(n_token::t_token("recall")) );
|
||||
static const config::t_token & z_leader_passable( generate_safe_static_const_t_interned(n_token::t_token("leader_passable")) );
|
||||
static const config::t_token & z_map_passable( generate_safe_static_const_t_interned(n_token::t_token("map_passable")) );
|
||||
static const config::t_token & z_leader( generate_safe_static_const_t_interned(n_token::t_token("leader")) );
|
||||
|
||||
DBG_NG << "finding location for unit with id=["<<cfg[z_id]<<"] placement=["<<cfg[z_placement]<<"] x=["<<cfg[z_x]<<"] y=["<<cfg[z_y]<<"] for side " << team_.side() << "\n";
|
||||
|
||||
std::vector< std::string > placements = utils::split(cfg[z_placement]);
|
||||
std::vector< config::t_token > placements = utils::split_attr(cfg[z_placement]);
|
||||
|
||||
placements.push_back(z_map);
|
||||
placements.push_back(z_recall);
|
||||
|
||||
foreach(std::string place, placements) {
|
||||
foreach(config::t_token place, placements) {
|
||||
map_location loc;
|
||||
bool pass((place == z_leader_passable) || (place == z_map_passable));
|
||||
|
||||
|
@ -336,12 +256,19 @@ map_location unit_creator::find_location(const config &cfg, const unit* pass_che
|
|||
|
||||
void unit_creator::add_unit(const config &cfg)
|
||||
{
|
||||
static const config::t_token & z_side( generate_safe_static_const_t_interned(n_token::t_token("side")) );
|
||||
static const config::t_token & z_player_id( generate_safe_static_const_t_interned(n_token::t_token("player_id")) );
|
||||
static const config::t_token & z_faction_from_recruit( generate_safe_static_const_t_interned(n_token::t_token("faction_from_recruit")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_animate( generate_safe_static_const_t_interned(n_token::t_token("animate")) );
|
||||
|
||||
config temp_cfg(cfg);
|
||||
temp_cfg[z_side] = team_.side();
|
||||
temp_cfg.remove_attribute(z_player_id);
|
||||
temp_cfg.remove_attribute(z_faction_from_recruit);
|
||||
|
||||
const std::string& id =(cfg)[z_id];
|
||||
const config::attribute_value& aid =(cfg)[z_id];
|
||||
const config::t_token& id = aid.token();
|
||||
bool animate = temp_cfg[z_animate].to_bool();
|
||||
temp_cfg.remove_attribute(z_animate);
|
||||
|
||||
|
@ -659,6 +586,12 @@ void place_recruit(const unit &u, const map_location &recruit_location,
|
|||
bool is_recall, bool show, bool fire_event, bool full_movement,
|
||||
bool wml_triggered)
|
||||
{
|
||||
static const config::t_token & z_prerecall( generate_safe_static_const_t_interned(n_token::t_token("prerecall")) );
|
||||
static const config::t_token & z_prerecruit( generate_safe_static_const_t_interned(n_token::t_token("prerecruit")) );
|
||||
static const config::t_token & z_recall( generate_safe_static_const_t_interned(n_token::t_token("recall")) );
|
||||
static const config::t_token & z_recruit( generate_safe_static_const_t_interned(n_token::t_token("recruit")) );
|
||||
static const config::t_token & z_checksum( generate_safe_static_const_t_interned(n_token::t_token("checksum")) );
|
||||
|
||||
LOG_NG << "placing new unit on location " << recruit_location << "\n";
|
||||
|
||||
assert(resources::units->count(recruit_location) == 0);
|
||||
|
@ -758,6 +691,8 @@ void place_recruit(const unit &u, const map_location &recruit_location,
|
|||
map_location under_leadership(const unit_map& units,
|
||||
const map_location& loc, int* bonus)
|
||||
{
|
||||
static const config::t_token & z_leadership( generate_safe_static_const_t_interned(n_token::t_token("leadership")) );
|
||||
static const config::t_token & z_value( generate_safe_static_const_t_interned(n_token::t_token("value")) );
|
||||
|
||||
const unit_map::const_iterator un = units.find(loc);
|
||||
if(un == units.end()) {
|
||||
|
@ -1097,6 +1032,23 @@ battle_context_unit_stats::battle_context_unit_stats(const unit &u, const map_lo
|
|||
swarm_max(0),
|
||||
plague_type()
|
||||
{
|
||||
static const config::t_token & z_not_living( generate_safe_static_const_t_interned(n_token::t_token("not_living")) );
|
||||
static const config::t_token & z_slow( generate_safe_static_const_t_interned(n_token::t_token("slow")) );
|
||||
static const config::t_token & z_drains( generate_safe_static_const_t_interned(n_token::t_token("drains")) );
|
||||
static const config::t_token & z_petrifies( generate_safe_static_const_t_interned(n_token::t_token("petrifies")) );
|
||||
static const config::t_token & z_poison( generate_safe_static_const_t_interned(n_token::t_token("poison")) );
|
||||
static const config::t_token & z_berserk( generate_safe_static_const_t_interned(n_token::t_token("berserk")) );
|
||||
static const config::t_token & z_value( generate_safe_static_const_t_interned(n_token::t_token("value")) );
|
||||
static const config::t_token & z_firststrike( generate_safe_static_const_t_interned(n_token::t_token("firststrike")) );
|
||||
static const config::t_token & z_plague( generate_safe_static_const_t_interned(n_token::t_token("plague")) );
|
||||
static const config::t_token & z_type( generate_safe_static_const_t_interned(n_token::t_token("type")) );
|
||||
static const config::t_token & z_chance_to_hit( generate_safe_static_const_t_interned(n_token::t_token("chance_to_hit")) );
|
||||
static const config::t_token & z_damage( generate_safe_static_const_t_interned(n_token::t_token("damage")) );
|
||||
static const config::t_token & z_swarm( generate_safe_static_const_t_interned(n_token::t_token("swarm")) );
|
||||
static const config::t_token & z_swarm_attacks_min( generate_safe_static_const_t_interned(n_token::t_token("swarm_attacks_min")) );
|
||||
static const config::t_token & z_swarm_attacks_max( generate_safe_static_const_t_interned(n_token::t_token("swarm_attacks_max")) );
|
||||
static const config::t_token & z_attacks( generate_safe_static_const_t_interned(n_token::t_token("attacks")) );
|
||||
|
||||
// Get the current state of the unit.
|
||||
if (attack_num >= 0) {
|
||||
weapon = &u.attacks()[attack_num];
|
||||
|
@ -1298,6 +1250,12 @@ class attack
|
|||
|
||||
void attack::fire_event(const config::t_token& n)
|
||||
{
|
||||
static const config::t_token & z_first( generate_safe_static_const_t_interned(n_token::t_token("first")) );
|
||||
static const config::t_token & z_second( generate_safe_static_const_t_interned(n_token::t_token("second")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_none( generate_safe_static_const_t_interned(n_token::t_token("none")) );
|
||||
static const config::t_token & z_attack_end( generate_safe_static_const_t_interned(n_token::t_token("attack_end")) );
|
||||
|
||||
LOG_NG << "firing " << n << " event\n";
|
||||
//prepare the event data for weapon filtering
|
||||
config ev_data;
|
||||
|
@ -1470,6 +1428,35 @@ attack::attack(const map_location &attacker, const map_location &defender,
|
|||
|
||||
bool attack::perform_hit(bool attacker_turn, statistics::attack_context &stats)
|
||||
{
|
||||
static const config::t_token & z_damage_inflicted( generate_safe_static_const_t_interned(n_token::t_token("damage_inflicted")) );
|
||||
static const config::t_token & z_chance( generate_safe_static_const_t_interned(n_token::t_token("chance")) );
|
||||
static const config::t_token & z_hits( generate_safe_static_const_t_interned(n_token::t_token("hits")) );
|
||||
static const config::t_token & z_damage( generate_safe_static_const_t_interned(n_token::t_token("damage")) );
|
||||
static const config::t_token & z_successful( generate_safe_static_const_t_interned(n_token::t_token("successful")) );
|
||||
static const config::t_token & z_unsuccessful( generate_safe_static_const_t_interned(n_token::t_token("unsuccessful")) );
|
||||
static const config::t_token & z_dies( generate_safe_static_const_t_interned(n_token::t_token("dies")) );
|
||||
static const config::t_token & z_unit_hit( generate_safe_static_const_t_interned(n_token::t_token("unit_hit")) );
|
||||
static const config::t_token & z_defender( generate_safe_static_const_t_interned(n_token::t_token("defender")) );
|
||||
static const config::t_token & z_attacker( generate_safe_static_const_t_interned(n_token::t_token("attacker")) );
|
||||
static const config::t_token & z_perished( generate_safe_static_const_t_interned(n_token::t_token("perished")) );
|
||||
static const config::t_token & z_survived( generate_safe_static_const_t_interned(n_token::t_token("survived")) );
|
||||
static const config::t_token & z_attacker_hits( generate_safe_static_const_t_interned(n_token::t_token("attacker_hits")) );
|
||||
static const config::t_token & z_defender_hits( generate_safe_static_const_t_interned(n_token::t_token("defender_hits")) );
|
||||
static const config::t_token & z_attacker_misses( generate_safe_static_const_t_interned(n_token::t_token("attacker_misses")) );
|
||||
static const config::t_token & z_defender_misses( generate_safe_static_const_t_interned(n_token::t_token("defender_misses")) );
|
||||
static const config::t_token & z_attack_end( generate_safe_static_const_t_interned(n_token::t_token("attack_end")) );
|
||||
static const config::t_token & z_first( generate_safe_static_const_t_interned(n_token::t_token("first")) );
|
||||
static const config::t_token & z_second( generate_safe_static_const_t_interned(n_token::t_token("second")) );
|
||||
static const config::t_token & z_last_breath( generate_safe_static_const_t_interned(n_token::t_token("last_breath")) );
|
||||
static const config::t_token & z_die( generate_safe_static_const_t_interned(n_token::t_token("die")) );
|
||||
static const config::t_token & z_null( generate_safe_static_const_t_interned(n_token::t_token("null")) );
|
||||
static const config::t_token & z_effect( generate_safe_static_const_t_interned(n_token::t_token("effect")) );
|
||||
static const config::t_token & z_apply_to( generate_safe_static_const_t_interned(n_token::t_token("apply_to")) );
|
||||
static const config::t_token & z_variation( generate_safe_static_const_t_interned(n_token::t_token("variation")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_petrified( generate_safe_static_const_t_interned(n_token::t_token("petrified")) );
|
||||
static const config::t_token & z_none( generate_safe_static_const_t_interned(n_token::t_token("none")) );
|
||||
|
||||
unit_info
|
||||
&attacker = *(attacker_turn ? &a_ : &d_),
|
||||
&defender = *(attacker_turn ? &d_ : &a_);
|
||||
|
@ -1761,6 +1748,9 @@ bool attack::perform_hit(bool attacker_turn, statistics::attack_context &stats)
|
|||
|
||||
void attack::perform()
|
||||
{
|
||||
static const config::t_token & z_attack( generate_safe_static_const_t_interned(n_token::t_token("attack")) );
|
||||
static const config::t_token & z_poison( generate_safe_static_const_t_interned(n_token::t_token("poison")) );
|
||||
|
||||
// Stop the user from issuing any commands while the units are fighting
|
||||
const events::command_disabler disable_commands;
|
||||
|
||||
|
@ -1863,6 +1853,7 @@ void attack::perform()
|
|||
defender_strikes_first = (d_stats_->firststrike && ! a_stats_->firststrike);
|
||||
}
|
||||
|
||||
static const config::t_token & z_attack_end( generate_safe_static_const_t_interned(n_token::t_token("attack_end")) );
|
||||
if (a_.n_attacks_ <= 0 && d_.n_attacks_ <= 0) {
|
||||
fire_event(z_attack_end);
|
||||
refresh_bc();
|
||||
|
@ -1988,6 +1979,13 @@ struct unit_healing_struct {
|
|||
|
||||
void calculate_healing(int side, bool update_display)
|
||||
{
|
||||
static const config::t_token & z_unhealable( generate_safe_static_const_t_interned(n_token::t_token("unhealable")) );
|
||||
static const config::t_token & z_heals( generate_safe_static_const_t_interned(n_token::t_token("heals")) );
|
||||
static const config::t_token & z_poison( generate_safe_static_const_t_interned(n_token::t_token("poison")) );
|
||||
static const config::t_token & z_cured( generate_safe_static_const_t_interned(n_token::t_token("cured")) );
|
||||
static const config::t_token & z_slowed( generate_safe_static_const_t_interned(n_token::t_token("slowed")) );
|
||||
static const config::t_token & z_regenerate( generate_safe_static_const_t_interned(n_token::t_token("regenerate")) );
|
||||
|
||||
DBG_NG << "beginning of healing calculations\n";
|
||||
unit_map &units = *resources::units;
|
||||
|
||||
|
@ -2216,6 +2214,9 @@ unit get_advanced_unit(const unit &u, const std::string& advance_to)
|
|||
|
||||
void advance_unit(map_location loc, const std::string &advance_to, const bool &fire_event)
|
||||
{
|
||||
static const config::t_token & z_advance( generate_safe_static_const_t_interned(n_token::t_token("advance")) );
|
||||
static const config::t_token & z_post_advance( generate_safe_static_const_t_interned(n_token::t_token("post_advance")) );
|
||||
|
||||
unit_map::unit_iterator u = resources::units->find(loc);
|
||||
if(!u.valid()) {
|
||||
return;
|
||||
|
@ -2453,6 +2454,17 @@ size_t move_unit(move_unit_spectator *move_spectator,
|
|||
{
|
||||
assert(route.empty() == false);
|
||||
|
||||
static const config::t_token & z_hides( generate_safe_static_const_t_interned(n_token::t_token("hides")) );
|
||||
static const config::t_token & z_alert( generate_safe_static_const_t_interned(n_token::t_token("alert")) );
|
||||
static const config::t_token & z_sighted( generate_safe_static_const_t_interned(n_token::t_token("sighted")) );
|
||||
static const config::t_token & z_moveto( generate_safe_static_const_t_interned(n_token::t_token("moveto")) );
|
||||
static const config::t_token & z_friends( generate_safe_static_const_t_interned(n_token::t_token("friends")) );
|
||||
static const config::t_token & z_enemies( generate_safe_static_const_t_interned(n_token::t_token("enemies")) );
|
||||
static const config::t_token & z_friendphrase( generate_safe_static_const_t_interned(n_token::t_token("friendphrase")) );
|
||||
static const config::t_token & z_enemyphrase( generate_safe_static_const_t_interned(n_token::t_token("enemyphrase")) );
|
||||
static const config::t_token & z_hotkey( generate_safe_static_const_t_interned(n_token::t_token("hotkey")) );
|
||||
|
||||
|
||||
if (route.size() <= 2 && route.front() == route.back()) {
|
||||
DBG_NG << "Ignore an unit trying to jump on its hex at " << route.front() << "\n";
|
||||
}
|
||||
|
@ -2502,7 +2514,7 @@ size_t move_unit(move_unit_spectator *move_spectator,
|
|||
std::vector<map_location>::const_iterator step;
|
||||
std::string ambushed_string;
|
||||
|
||||
static const config::t_token z_skirmisher("skirmisher", false);
|
||||
static const config::t_token & z_skirmisher(generate_safe_static_const_t_interned(n_token::t_token("skirmisher")) );
|
||||
for(step = route.begin()+1; step != route.end(); ++step) {
|
||||
const bool skirmisher = ui->get_ability_bool(z_skirmisher,*step);
|
||||
const t_translation::t_terrain terrain = map[*step];
|
||||
|
@ -2889,6 +2901,7 @@ bool unit_can_move(const unit &u)
|
|||
|
||||
void apply_shroud_changes(undo_list &undos, int side)
|
||||
{
|
||||
static const config::t_token & z_sighted( generate_safe_static_const_t_interned(n_token::t_token("sighted")) );
|
||||
team &tm = (*resources::teams)[side - 1];
|
||||
// No need to do this if the team isn't using fog or shroud.
|
||||
if (!tm.uses_shroud() && !tm.uses_fog())
|
||||
|
|
|
@ -57,14 +57,6 @@ static lg::log_domain log_ai("ai/general");
|
|||
#pragma warning(disable:4250)
|
||||
#endif
|
||||
|
||||
namespace{
|
||||
//Static tokens are replacements for string literals in code
|
||||
//They allow for fast comparison operations.
|
||||
static const config::t_token z_chance_to_hit("chance_to_hit", false);
|
||||
static const config::t_token z_poison("poison", false);
|
||||
static const config::t_token z_steadfast("steadfast", false);
|
||||
}
|
||||
|
||||
namespace ai {
|
||||
|
||||
typedef util::array<map_location,6> adjacent_tiles_array;
|
||||
|
@ -108,7 +100,7 @@ int idle_ai::get_recursion_count() const
|
|||
|
||||
void idle_ai::play_turn()
|
||||
{
|
||||
static const config::t_token z_ai_turn("ai turn", false);
|
||||
static const config::t_token & z_ai_turn( generate_safe_static_const_t_interned(n_token::t_token("ai turn")) );
|
||||
game_events::fire(z_ai_turn);
|
||||
}
|
||||
|
||||
|
@ -366,6 +358,9 @@ int ai_default_recruitment_stage::average_resistance_against(const unit_type& a,
|
|||
LOG_AI << "average defense of '" << a.id() << "': " << defense << "\n";
|
||||
|
||||
int sum = 0, weight_sum = 0;
|
||||
static const config::t_token & z_chance_to_hit( generate_safe_static_const_t_interned(n_token::t_token("chance_to_hit")) );
|
||||
static const config::t_token & z_poison( generate_safe_static_const_t_interned(n_token::t_token("poison")) );
|
||||
static const config::t_token & z_steadfast( generate_safe_static_const_t_interned(n_token::t_token("steadfast")) );
|
||||
|
||||
// calculation of the average damage taken
|
||||
bool steadfast = a.has_ability_by_id(z_steadfast);
|
||||
|
|
|
@ -734,7 +734,7 @@ void manager::play_turn( side_number side ){
|
|||
/*hack. @todo 1.9 rework via extended event system*/
|
||||
get_ai_info().recent_attacks.clear();
|
||||
interface& ai_obj = get_active_ai_for_side(side);
|
||||
static const config::t_token z_ai_turn("ai turn", false);
|
||||
static const config::t_token & z_ai_turn( generate_safe_static_const_t_interned(n_token::t_token("ai turn")) );
|
||||
game_events::fire(z_ai_turn);
|
||||
raise_turn_started();
|
||||
ai_obj.new_turn();
|
||||
|
|
|
@ -41,14 +41,6 @@ static lg::log_domain log_ai_testing_aspect_attacks("ai/aspect/attacks");
|
|||
#define ERR_AI LOG_STREAM(err, log_ai_testing_aspect_attacks)
|
||||
|
||||
|
||||
namespace{
|
||||
//Static tokens are replacements for string literals in code
|
||||
//They allow for fast comparison operations.
|
||||
static const config::t_token z_backstab("backstab", false);
|
||||
static const config::t_token z_slow("slow", false);
|
||||
static const config::t_token z_value("value", false);
|
||||
}
|
||||
|
||||
aspect_attacks::aspect_attacks(readonly_context &context, const config &cfg, const std::string &id)
|
||||
: typesafe_aspect<attacks_vector>(context,cfg,id)
|
||||
, filter_own_()
|
||||
|
@ -165,6 +157,10 @@ void aspect_attacks::do_attack_analysis(
|
|||
unit_map::iterator unit_itor = units_.find(current_unit);
|
||||
assert(unit_itor != units_.end());
|
||||
|
||||
static const config::t_token & z_backstab( generate_safe_static_const_t_interned(n_token::t_token("backstab")) );
|
||||
static const config::t_token & z_slow( generate_safe_static_const_t_interned(n_token::t_token("slow")) );
|
||||
static const config::t_token & z_value( generate_safe_static_const_t_interned(n_token::t_token("value")) );
|
||||
|
||||
// See if the unit has the backstab ability.
|
||||
// Units with backstab will want to try to have a
|
||||
// friendly unit opposite the position they move to.
|
||||
|
|
|
@ -43,16 +43,6 @@ static lg::log_domain log_ai_testing_ai_default("ai/ca/testing_ai_default");
|
|||
#define ERR_AI_TESTING_AI_DEFAULT LOG_STREAM(err, log_ai_testing_ai_default)
|
||||
|
||||
|
||||
namespace{
|
||||
//Static tokens are replacements for string literals in code
|
||||
//They allow for fast comparison operations.
|
||||
static const config::t_token z_chance_to_hit("chance_to_hit", false);
|
||||
static const config::t_token z_poison("poison", false);
|
||||
static const config::t_token z_guardian("guardian", false);
|
||||
static const config::t_token z_steadfast("steadfast", false);
|
||||
}
|
||||
|
||||
|
||||
namespace ai {
|
||||
|
||||
namespace testing_ai_default {
|
||||
|
@ -412,6 +402,10 @@ int recruitment_phase::average_resistance_against(const unit_type& a, const unit
|
|||
|
||||
int sum = 0, weight_sum = 0;
|
||||
|
||||
static const config::t_token & z_chance_to_hit( generate_safe_static_const_t_interned(n_token::t_token("chance_to_hit")) );
|
||||
static const config::t_token & z_poison( generate_safe_static_const_t_interned(n_token::t_token("poison")) );
|
||||
static const config::t_token & z_steadfast( generate_safe_static_const_t_interned(n_token::t_token("steadfast")) );
|
||||
|
||||
// calculation of the average damage taken
|
||||
bool steadfast = a.has_ability_by_id(z_steadfast);
|
||||
bool living = !a.not_living();
|
||||
|
@ -1038,6 +1032,8 @@ void get_villages_phase::find_villages(
|
|||
vulnerability.insert(std::pair<map_location,double>(current_loc,threat));
|
||||
}
|
||||
|
||||
static const config::t_token & z_guardian( generate_safe_static_const_t_interned(n_token::t_token("guardian")) );
|
||||
|
||||
const unit_map::const_iterator u = resources::units->find(j->second);
|
||||
if (u == resources::units->end() || u->get_state(z_guardian)) {
|
||||
continue;
|
||||
|
|
|
@ -32,11 +32,6 @@
|
|||
|
||||
#include <deque>
|
||||
|
||||
namespace{
|
||||
//Static tokens are replacements for string literals in code
|
||||
//They allow for fast comparison operations.
|
||||
static const config::t_token z_guardian("guardian", false);
|
||||
}
|
||||
|
||||
namespace ai {
|
||||
|
||||
|
@ -297,6 +292,8 @@ std::pair<map_location,map_location> testing_move_to_targets_phase::choose_move(
|
|||
return std::pair<map_location,map_location>();
|
||||
}
|
||||
|
||||
static const config::t_token & z_guardian( generate_safe_static_const_t_interned(n_token::t_token("guardian")) );
|
||||
|
||||
//guardian units stay put
|
||||
if (u->get_state(z_guardian)) {
|
||||
LOG_AI << u->type_id() << " is guardian, staying still\n";
|
||||
|
|
|
@ -41,14 +41,7 @@
|
|||
#include <iostream>
|
||||
#include <map>
|
||||
|
||||
namespace{
|
||||
//Static tokens are replacements for string literals in code
|
||||
//They allow for fast comparison operations.
|
||||
static const config::t_token z_chance_to_hit("chance_to_hit", false);
|
||||
static const config::t_token z_poison("poison", false);
|
||||
static const config::t_token z_guardian("guardian", false);
|
||||
static const config::t_token z_steadfast("steadfast", false);
|
||||
}
|
||||
|
||||
|
||||
namespace ai {
|
||||
|
||||
|
@ -292,6 +285,9 @@ static int average_resistance_against(const unit_type& a, const unit_type& b)
|
|||
}
|
||||
|
||||
//LOG_AI << "average defense of '" << a.id() << "': " << defense << "\n";
|
||||
static const config::t_token & z_chance_to_hit( generate_safe_static_const_t_interned(n_token::t_token("chance_to_hit")) );
|
||||
static const config::t_token & z_poison( generate_safe_static_const_t_interned(n_token::t_token("poison")) );
|
||||
static const config::t_token & z_steadfast( generate_safe_static_const_t_interned(n_token::t_token("steadfast")) );
|
||||
|
||||
int sum = 0, weight_sum = 0;
|
||||
|
||||
|
|
|
@ -24,12 +24,6 @@
|
|||
#include "resources.hpp"
|
||||
#include "unit_abilities.hpp"
|
||||
|
||||
namespace {
|
||||
//Static tokens are replacements for string literals in code
|
||||
//They allow for fast comparison operations.
|
||||
static const config::t_token z_damage("damage", false);
|
||||
}
|
||||
|
||||
// Conversion routine for both unscathed and damage change percentage.
|
||||
static void format_prob(char str_buf[10], double prob)
|
||||
{
|
||||
|
@ -156,6 +150,8 @@ void battle_prediction_pane::get_unit_strings(const battle_context_unit_stats& s
|
|||
std::stringstream str;
|
||||
char str_buf[10];
|
||||
|
||||
static const config::t_token & z_damage( generate_safe_static_const_t_interned(n_token::t_token("damage")) );
|
||||
|
||||
// With a weapon.
|
||||
if(stats.weapon != NULL) {
|
||||
|
||||
|
|
|
@ -34,36 +34,6 @@ static lg::log_domain log_engine("engine");
|
|||
terrain_builder::building_ruleset terrain_builder::building_rules_;
|
||||
const config* terrain_builder::rules_cfg_ = NULL;
|
||||
|
||||
namespace{
|
||||
//Static tokens are replacements for string literals in code
|
||||
//They allow for fast comparison operations.
|
||||
static const config::t_token z_invalid_tod("invalid_tod", false);
|
||||
static const config::t_token z_image("image", false);
|
||||
static const config::t_token z_layer("layer", false);
|
||||
static const config::t_token z_base("base", false);
|
||||
static const config::t_token z_center("center", false);
|
||||
static const config::t_token z_variant("variant", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_variations("variations", false);
|
||||
static const config::t_token z_tod("tod", false);
|
||||
static const config::t_token z_random_start("random_start", false);
|
||||
static const config::t_token z_type("type", false);
|
||||
static const config::t_token z_has_flag("has_flag", false);
|
||||
static const config::t_token z_set_no_flag("set_no_flag", false);
|
||||
static const config::t_token z_x("x", false);
|
||||
static const config::t_token z_y("y", false);
|
||||
static const config::t_token z_probability("probability", false);
|
||||
static const config::t_token z_map("map", false);
|
||||
static const config::t_token z_tile("tile", false);
|
||||
static const config::t_token z_loc("loc", false);
|
||||
static const config::t_token z_pos("pos", false);
|
||||
static const config::t_token z_set_flag("set_flag", false);
|
||||
static const config::t_token z_no_flag("no_flag", false);
|
||||
static const config::t_token z_rotations("rotations", false);
|
||||
static const config::t_token z_precedence("precedence", false);
|
||||
static const config::t_token z_terrain_graphics("terrain_graphics", false);
|
||||
|
||||
}
|
||||
|
||||
terrain_builder::rule_image::rule_image(int layer, int x, int y, bool global_image, int cx, int cy) :
|
||||
layer(layer),
|
||||
|
@ -80,9 +50,12 @@ terrain_builder::tile::tile() :
|
|||
images(),
|
||||
images_foreground(),
|
||||
images_background(),
|
||||
last_tod(z_invalid_tod),
|
||||
last_tod(),
|
||||
sorted_images(false)
|
||||
{}
|
||||
{
|
||||
static const n_token::t_token & z_invalid_tod( generate_safe_static_const_t_interned(n_token::t_token("invalid_tod")) );
|
||||
last_tod = z_invalid_tod;
|
||||
}
|
||||
|
||||
void terrain_builder::tile::rebuild_cache(const n_token::t_token& tod, logs* log)
|
||||
{
|
||||
|
@ -123,6 +96,7 @@ void terrain_builder::tile::rebuild_cache(const n_token::t_token& tod, logs* log
|
|||
|
||||
void terrain_builder::tile::clear()
|
||||
{
|
||||
static const config::t_token & z_invalid_tod( generate_safe_static_const_t_interned(n_token::t_token("invalid_tod")) );
|
||||
flags.clear();
|
||||
images.clear();
|
||||
sorted_images = false;
|
||||
|
@ -184,7 +158,7 @@ terrain_builder::terrain_builder(const config& level,
|
|||
tile_map_(map().w(), map().h()),
|
||||
terrain_by_type_()
|
||||
{
|
||||
static const config::t_token z_cterrain("terrain/", false);
|
||||
static const config::t_token & z_cterrain( generate_safe_static_const_t_interned(n_token::t_token("terrain/")) );
|
||||
image::precache_file_existence(z_cterrain);
|
||||
|
||||
if(building_rules_.empty() && rules_cfg_){
|
||||
|
@ -602,6 +576,16 @@ terrain_builder::rule_image_variant::rule_image_variant(const n_token::t_token &
|
|||
|
||||
void terrain_builder::add_images_from_config(rule_imagelist& images, const config &cfg, bool global, int dx, int dy)
|
||||
{
|
||||
static const config::t_token & z_image( generate_safe_static_const_t_interned(n_token::t_token("image")) );
|
||||
static const config::t_token & z_layer( generate_safe_static_const_t_interned(n_token::t_token("layer")) );
|
||||
static const config::t_token & z_base( generate_safe_static_const_t_interned(n_token::t_token("base")) );
|
||||
static const config::t_token & z_center( generate_safe_static_const_t_interned(n_token::t_token("center")) );
|
||||
static const config::t_token & z_variant( generate_safe_static_const_t_interned(n_token::t_token("variant")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_variations( generate_safe_static_const_t_interned(n_token::t_token("variations")) );
|
||||
static const config::t_token & z_tod( generate_safe_static_const_t_interned(n_token::t_token("tod")) );
|
||||
static const config::t_token & z_random_start( generate_safe_static_const_t_interned(n_token::t_token("random_start")) );
|
||||
|
||||
foreach (const config &img, cfg.child_range(z_image))
|
||||
{
|
||||
int layer = img[z_layer];
|
||||
|
@ -680,6 +664,12 @@ void terrain_builder::add_constraints(terrain_builder::constraint_set &constrain
|
|||
const map_location& loc, const config& cfg, const config& global_images)
|
||||
|
||||
{
|
||||
static const config::t_token & z_type( generate_safe_static_const_t_interned(n_token::t_token("type")) );
|
||||
static const config::t_token & z_set_flag( generate_safe_static_const_t_interned(n_token::t_token("set_flag")) );
|
||||
static const config::t_token & z_has_flag( generate_safe_static_const_t_interned(n_token::t_token("has_flag")) );
|
||||
static const config::t_token & z_no_flag( generate_safe_static_const_t_interned(n_token::t_token("no_flag")) );
|
||||
static const config::t_token & z_set_no_flag( generate_safe_static_const_t_interned(n_token::t_token("set_no_flag")) );
|
||||
|
||||
terrain_constraint& constraint = add_constraints(constraints, loc,
|
||||
t_translation::t_match(cfg[z_type], t_translation::WILDCARD), global_images);
|
||||
|
||||
|
@ -787,6 +777,20 @@ void terrain_builder::add_rotated_rules(building_ruleset &rules, building_rule &
|
|||
|
||||
void terrain_builder::parse_config(const config &cfg, bool local)
|
||||
{
|
||||
static const config::t_token & z_terrain_graphics( generate_safe_static_const_t_interned(n_token::t_token("terrain_graphics")) );
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
static const config::t_token & z_probability( generate_safe_static_const_t_interned(n_token::t_token("probability")) );
|
||||
static const config::t_token & z_map( generate_safe_static_const_t_interned(n_token::t_token("map")) );
|
||||
static const config::t_token & z_tile( generate_safe_static_const_t_interned(n_token::t_token("tile")) );
|
||||
static const config::t_token & z_loc( generate_safe_static_const_t_interned(n_token::t_token("loc")) );
|
||||
static const config::t_token & z_pos( generate_safe_static_const_t_interned(n_token::t_token("pos")) );
|
||||
static const config::t_token & z_set_flag( generate_safe_static_const_t_interned(n_token::t_token("set_flag")) );
|
||||
static const config::t_token & z_no_flag( generate_safe_static_const_t_interned(n_token::t_token("no_flag")) );
|
||||
static const config::t_token & z_has_flag( generate_safe_static_const_t_interned(n_token::t_token("has_flag")) );
|
||||
static const config::t_token & z_set_no_flag( generate_safe_static_const_t_interned(n_token::t_token("set_no_flag")) );
|
||||
static const config::t_token & z_rotations( generate_safe_static_const_t_interned(n_token::t_token("rotations")) );
|
||||
static const config::t_token & z_precedence( generate_safe_static_const_t_interned(n_token::t_token("precedence")) );
|
||||
log_scope("terrain_builder::parse_config");
|
||||
|
||||
// Parses the list of building rules (BRs)
|
||||
|
@ -910,6 +914,18 @@ void terrain_builder::parse_config(const config &cfg, bool local)
|
|||
|
||||
void terrain_builder::add_off_map_rule(const n_token::t_token& image)
|
||||
{
|
||||
static const config::t_token & z_terrain_graphics( generate_safe_static_const_t_interned(n_token::t_token("terrain_graphics")) );
|
||||
static const config::t_token & z_tile( generate_safe_static_const_t_interned(n_token::t_token("tile")) );
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
static const config::t_token & z_type( generate_safe_static_const_t_interned(n_token::t_token("type")) );
|
||||
static const config::t_token & z_image( generate_safe_static_const_t_interned(n_token::t_token("image")) );
|
||||
static const config::t_token & z_layer( generate_safe_static_const_t_interned(n_token::t_token("layer")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_probability( generate_safe_static_const_t_interned(n_token::t_token("probability")) );
|
||||
static const config::t_token & z_no_flag( generate_safe_static_const_t_interned(n_token::t_token("no_flag")) );
|
||||
static const config::t_token & z_base( generate_safe_static_const_t_interned(n_token::t_token("base")) );
|
||||
static const config::t_token & z_set_flag( generate_safe_static_const_t_interned(n_token::t_token("set_flag")) );
|
||||
// Build a config object
|
||||
config cfg;
|
||||
|
||||
|
|
|
@ -142,6 +142,8 @@ int attack_type_callable::do_compare(const formula_callable* callable) const
|
|||
|
||||
variant unit_callable::get_value(const std::string& key) const
|
||||
{
|
||||
static const config::t_token & z_not_living( generate_safe_static_const_t_interned(n_token::t_token("not_living")) );
|
||||
|
||||
if(key == "x") {
|
||||
if (loc_==map_location::null_location) {
|
||||
return variant();
|
||||
|
@ -171,7 +173,6 @@ variant unit_callable::get_value(const std::string& key) const
|
|||
} else if(key == "leader") {
|
||||
return variant(u_.can_recruit());
|
||||
} else if(key == "undead") {
|
||||
static const config::t_token z_not_living("not_living");
|
||||
return variant(u_.get_state(z_not_living) ? 1 : 0);
|
||||
} else if(key == "attacks") {
|
||||
const std::vector<attack_type>& att = u_.attacks();
|
||||
|
|
|
@ -88,11 +88,11 @@ config::attribute_value &config::attribute_value::operator=(double v)
|
|||
}
|
||||
|
||||
config::attribute_value &config::attribute_value::operator=(const t_token &v) {
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token z_yes("yes", false);
|
||||
static const config::t_token z_true("true", false);
|
||||
static const config::t_token z_no("no", false);
|
||||
static const config::t_token z_false("false", false);
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
static const config::t_token & z_yes( generate_safe_static_const_t_interned(n_token::t_token("yes")) );
|
||||
static const config::t_token & z_true( generate_safe_static_const_t_interned(n_token::t_token("true")) );
|
||||
static const config::t_token & z_no( generate_safe_static_const_t_interned(n_token::t_token("no")) );
|
||||
static const config::t_token & z_false( generate_safe_static_const_t_interned(n_token::t_token("false")) );
|
||||
if (v == z_empty) {
|
||||
type_ = EMPTY;
|
||||
is_bool_ = false; is_int_ = false; is_double_ = false; is_t_string_ = false; is_token_ =false;
|
||||
|
@ -117,7 +117,7 @@ config::attribute_value &config::attribute_value::operator=(const t_token &v) {
|
|||
}
|
||||
|
||||
config::attribute_value &config::attribute_value::operator=(const std::string &v) {
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
if (v.empty()) { return *this = z_empty;}
|
||||
if (v == "yes" || v == "true") return *this = true;
|
||||
if (v == "no" || v == "false") return *this = false;
|
||||
|
@ -161,10 +161,10 @@ bool config::attribute_value::operator==(const config::attribute_value &other) c
|
|||
}
|
||||
|
||||
bool operator==(const config::attribute_value &a, config::t_token const & b) {
|
||||
static const config::t_token z_yes("yes", false);
|
||||
static const config::t_token z_true("true", false);
|
||||
static const config::t_token z_no("no", false);
|
||||
static const config::t_token z_false("false", false);
|
||||
static const config::t_token & z_yes( generate_safe_static_const_t_interned(n_token::t_token("yes")) );
|
||||
static const config::t_token & z_true( generate_safe_static_const_t_interned(n_token::t_token("true")) );
|
||||
static const config::t_token & z_no( generate_safe_static_const_t_interned(n_token::t_token("no")) );
|
||||
static const config::t_token & z_false( generate_safe_static_const_t_interned(n_token::t_token("false")) );
|
||||
// if(a.type_ == a.EMPTY){return false;}
|
||||
//note: having 4 different acceptable boolean string values has a cost
|
||||
if ((a.type_ == a.BOOL) || ( a.is_bool_)){
|
||||
|
@ -174,11 +174,11 @@ bool operator==(const config::attribute_value &a, config::t_token const & b) {
|
|||
|
||||
bool operator==(const config::attribute_value &a, t_string const & b) {
|
||||
// if(a.type_ == a.EMPTY){return false;}
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token z_yes("yes", false);
|
||||
static const config::t_token z_true("true", false);
|
||||
static const config::t_token z_no("no", false);
|
||||
static const config::t_token z_false("false", false);
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
static const config::t_token & z_yes( generate_safe_static_const_t_interned(n_token::t_token("yes")) );
|
||||
static const config::t_token & z_true( generate_safe_static_const_t_interned(n_token::t_token("true")) );
|
||||
static const config::t_token & z_no( generate_safe_static_const_t_interned(n_token::t_token("no")) );
|
||||
static const config::t_token & z_false( generate_safe_static_const_t_interned(n_token::t_token("false")) );
|
||||
static const t_string tstring_empty(z_empty)
|
||||
, tstring_true(z_true), tstring_false(z_false)
|
||||
, tstring_yes(z_yes), tstring_no(z_no);
|
||||
|
@ -219,11 +219,9 @@ double config::attribute_value::to_double(double def) const {
|
|||
}
|
||||
|
||||
t_token const & config::attribute_value::token() const {
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token z_yes("yes", false);
|
||||
static const config::t_token z_true("true", false);
|
||||
static const config::t_token z_no("no", false);
|
||||
static const config::t_token z_false("false", false);
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
static const config::t_token & z_yes( generate_safe_static_const_t_interned(n_token::t_token("yes")) );
|
||||
static const config::t_token & z_no( generate_safe_static_const_t_interned(n_token::t_token("no")) );
|
||||
|
||||
if ((type_ == TOKEN) || ( is_token_)){ return token_value_; }
|
||||
switch(type_){
|
||||
|
@ -251,9 +249,9 @@ std::string const & config::attribute_value::str() const {
|
|||
|
||||
|
||||
t_string const & config::attribute_value::t_str() const {
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token z_yes("yes", false);
|
||||
static const config::t_token z_no("no", false);
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
static const config::t_token & z_yes( generate_safe_static_const_t_interned(n_token::t_token("yes")) );
|
||||
static const config::t_token & z_no( generate_safe_static_const_t_interned(n_token::t_token("no")) );
|
||||
static const t_string tstring_empty(z_empty)
|
||||
, tstring_yes(z_yes), tstring_no(z_no);
|
||||
|
||||
|
@ -939,14 +937,14 @@ config config::get_diff(const config& c) const
|
|||
}
|
||||
|
||||
void config::get_diff(const config& c, config& res) const {
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token z_index("index", false);
|
||||
static const t_token z_insert_child("insert_child", false);
|
||||
static const t_token z_delete_child("delete_child", false);
|
||||
static const t_token z_change_child("change_child", false);
|
||||
static const t_token z_insert("insert", false);
|
||||
static const t_token z_delete("delete", false);
|
||||
static const t_token z_x("x", false);
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
static const config::t_token & z_index( generate_safe_static_const_t_interned(n_token::t_token("index")) );
|
||||
static const t_token & z_insert_child( generate_safe_static_const_t_interned(n_token::t_token("insert_child")) );
|
||||
static const t_token & z_delete_child( generate_safe_static_const_t_interned(n_token::t_token("delete_child")) );
|
||||
static const t_token & z_change_child( generate_safe_static_const_t_interned(n_token::t_token("change_child")) );
|
||||
static const t_token & z_insert( generate_safe_static_const_t_interned(n_token::t_token("insert")) );
|
||||
static const t_token & z_delete( generate_safe_static_const_t_interned(n_token::t_token("delete")) );
|
||||
static const t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
|
||||
check_valid(c);
|
||||
check_valid(res);
|
||||
|
@ -1055,16 +1053,16 @@ void config::get_diff(const config& c, config& res) const {
|
|||
|
||||
void config::apply_diff(const config& diff, bool track /* = false */)
|
||||
{
|
||||
static const config::t_token z_index("index", false);
|
||||
static const t_token z_diff_track_attribute_("diff_track_attribute_", false);
|
||||
static const t_token z_modified("modified", false);
|
||||
static const t_token z_insert("insert", false);
|
||||
static const t_token z_delete("delete", false);
|
||||
static const t_token z_insert_child("insert_child", false);
|
||||
static const t_token z_delete_child("delete_child", false);
|
||||
static const t_token z_change_child("change_child", false);
|
||||
static const t_token z_deleted("deleted", false);
|
||||
static const t_token z_new("new", false);
|
||||
static const config::t_token & z_index( generate_safe_static_const_t_interned(n_token::t_token("index")) );
|
||||
static const t_token & z_diff_track_attribute_( generate_safe_static_const_t_interned(n_token::t_token("diff_track_attribute_")) );
|
||||
static const t_token & z_modified( generate_safe_static_const_t_interned(n_token::t_token("modified")) );
|
||||
static const t_token & z_insert( generate_safe_static_const_t_interned(n_token::t_token("insert")) );
|
||||
static const t_token & z_delete( generate_safe_static_const_t_interned(n_token::t_token("delete")) );
|
||||
static const t_token & z_insert_child( generate_safe_static_const_t_interned(n_token::t_token("insert_child")) );
|
||||
static const t_token & z_delete_child( generate_safe_static_const_t_interned(n_token::t_token("delete_child")) );
|
||||
static const t_token & z_change_child( generate_safe_static_const_t_interned(n_token::t_token("change_child")) );
|
||||
static const t_token & z_deleted( generate_safe_static_const_t_interned(n_token::t_token("deleted")) );
|
||||
static const t_token & z_new( generate_safe_static_const_t_interned(n_token::t_token("new")) );
|
||||
|
||||
check_valid(diff);
|
||||
|
||||
|
@ -1128,11 +1126,10 @@ void config::apply_diff(const config& diff, bool track /* = false */)
|
|||
|
||||
void config::clear_diff_track(const config& diff)
|
||||
{
|
||||
static const t_token z_diff_track_attribute_("diff_track_attribute_", false);
|
||||
static const t_token z_delete("delete", false);
|
||||
static const t_token z_index("index", false);
|
||||
static const t_token z_delete_child("delete_child", false);
|
||||
static const t_token z_change_child("change_child", false);
|
||||
static const t_token & z_diff_track_attribute_( generate_safe_static_const_t_interned(n_token::t_token("diff_track_attribute_")) );
|
||||
static const t_token & z_index( generate_safe_static_const_t_interned(n_token::t_token("index")) );
|
||||
static const t_token & z_delete_child( generate_safe_static_const_t_interned(n_token::t_token("delete_child")) );
|
||||
static const t_token & z_change_child( generate_safe_static_const_t_interned(n_token::t_token("change_child")) );
|
||||
|
||||
remove_attribute(z_diff_track_attribute_);
|
||||
foreach (const config &i, diff.child_range(z_delete_child))
|
||||
|
@ -1199,7 +1196,7 @@ void config::merge_with(const config& c)
|
|||
|
||||
bool config::matches(const config &filter) const
|
||||
{
|
||||
static const t_token z_not("not", false);
|
||||
static const t_token & z_not( generate_safe_static_const_t_interned(n_token::t_token("not")) );
|
||||
|
||||
check_valid(filter);
|
||||
|
||||
|
|
|
@ -68,16 +68,14 @@ static lg::log_domain log_display("display");
|
|||
static lg::log_domain log_config("config");
|
||||
#define ERR_CF LOG_STREAM(err, log_config)
|
||||
|
||||
namespace{
|
||||
static const config::t_token z_advance("advance", false);
|
||||
static const config::t_token z_post_advance("post_advance", false);
|
||||
static const config::t_token z_leader("leader", false);
|
||||
}
|
||||
|
||||
namespace dialogs
|
||||
{
|
||||
|
||||
int advance_unit_dialog(const map_location &loc)
|
||||
{
|
||||
|
||||
static const n_token::t_token & z_advance( generate_safe_static_const_t_interned(n_token::t_token("advance")) );
|
||||
unit_map::iterator u = resources::units->find(loc);
|
||||
|
||||
const std::vector<config::t_token>& options = u->advances_to();
|
||||
|
@ -213,12 +211,14 @@ bool animate_unit_advancement(const map_location &loc, size_t choice, const bool
|
|||
if (!resources::screen->video().update_locked()) {
|
||||
unit_animator animator;
|
||||
bool with_bars = true;
|
||||
static const config::t_token z_levelout("levelout", false);
|
||||
static const config::t_token & z_levelout( generate_safe_static_const_t_interned(n_token::t_token("levelout")) );
|
||||
animator.add_animation(&*u, z_levelout, u->get_location(), map_location(), 0, with_bars);
|
||||
animator.start_animations();
|
||||
animator.wait_for_end();
|
||||
}
|
||||
|
||||
static const n_token::t_token & z_advance( generate_safe_static_const_t_interned(n_token::t_token("advance")) );
|
||||
static const n_token::t_token & z_post_advance( generate_safe_static_const_t_interned(n_token::t_token("post_advance")) );
|
||||
if(choice < options.size()) {
|
||||
// chosen_unit is not a reference, since the unit may disappear at any moment.
|
||||
std::string chosen_unit = options[choice];
|
||||
|
@ -250,7 +250,7 @@ bool animate_unit_advancement(const map_location &loc, size_t choice, const bool
|
|||
|
||||
if (u != resources::units->end() && !resources::screen->video().update_locked()) {
|
||||
unit_animator animator;
|
||||
static const config::t_token z_levelin("levelin", false);
|
||||
static const config::t_token & z_levelin( generate_safe_static_const_t_interned(n_token::t_token("levelin")) );
|
||||
animator.add_animation(&*u, z_levelin, u->get_location(), map_location(), 0, true);
|
||||
animator.start_animations();
|
||||
animator.wait_for_end();
|
||||
|
@ -363,6 +363,8 @@ private:
|
|||
|
||||
void save_preview_pane::draw_contents()
|
||||
{
|
||||
static const n_token::t_token & z_leader( generate_safe_static_const_t_interned(n_token::t_token("leader")) );
|
||||
|
||||
if (size_t(index_) >= saves_.size() ){
|
||||
return; }
|
||||
|
||||
|
|
|
@ -22,16 +22,15 @@ namespace wml_interpolation {
|
|||
typedef n_token::t_token t_token;
|
||||
typedef std::vector<t_token> t_tokens;
|
||||
|
||||
//static const t_token z_empty("", false);
|
||||
static const t_token z_dollar("$", false);
|
||||
static const t_token z_bar("|", false);
|
||||
static const t_token z_dot(".", false);
|
||||
static const t_token z_lbracket("[", false);
|
||||
static const t_token z_rbracket("]", false);
|
||||
static const t_token z_lparen("(", false);
|
||||
static const t_token z_rparen(")", false);
|
||||
static const t_token z_single_quote("'", false);
|
||||
static const t_token z_sharp("#", false);
|
||||
static const t_token & z_dollar( generate_safe_static_const_t_interned(n_token::t_token("$")) );
|
||||
static const t_token & z_bar( generate_safe_static_const_t_interned(n_token::t_token("|")) );
|
||||
static const t_token & z_dot( generate_safe_static_const_t_interned(n_token::t_token(".")) );
|
||||
static const t_token & z_lbracket( generate_safe_static_const_t_interned(n_token::t_token("[")) );
|
||||
static const t_token & z_rbracket( generate_safe_static_const_t_interned(n_token::t_token("]")) );
|
||||
static const t_token & z_lparen( generate_safe_static_const_t_interned(n_token::t_token("(")) );
|
||||
static const t_token & z_rparen( generate_safe_static_const_t_interned(n_token::t_token(")")) );
|
||||
static const t_token & z_single_quote( generate_safe_static_const_t_interned(n_token::t_token("'")) );
|
||||
static const t_token & z_sharp( generate_safe_static_const_t_interned(n_token::t_token("#")) );
|
||||
|
||||
|
||||
template <typename T>
|
||||
|
@ -47,7 +46,7 @@ t_tokens const & t_tokenizer::tokenize(T const & in) {
|
|||
return tokenize(); }
|
||||
|
||||
t_tokens const & t_tokenizer::tokenize() {
|
||||
static const t_token z_empty("", false);
|
||||
static const t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
|
||||
if(!is_done_){
|
||||
tokens_.clear();
|
||||
|
@ -267,7 +266,7 @@ t_instructions & t_parse::parse(){
|
|||
}
|
||||
|
||||
t_token const & t_parse::peek_next(t_tokens::iterator const & curr_pos ){
|
||||
static const t_token z_empty("", false);
|
||||
static const t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
t_tokens::iterator next(curr_pos + 1);
|
||||
return (next != tokens_.end() ) ? (*next) : z_empty; }
|
||||
|
||||
|
@ -291,7 +290,7 @@ t_tokens::iterator t_parse::do_parse_plain(t_tokens::iterator const & start_pos
|
|||
curr_pos = do_parse_interp(++curr_pos); }
|
||||
catch (game::wml_syntax_error & e) {
|
||||
ERR_INTERP << e.what()<<"\n";
|
||||
static const config::t_token z_caption(_("Invalid WML found"), false);
|
||||
static const config::t_token & z_caption( generate_safe_static_const_t_interned(n_token::t_token(_("Invalid WML found"))) );
|
||||
if(resources::screen) {
|
||||
resources::screen->add_chat_message(time(NULL), z_caption, 0, e.what(),
|
||||
events::chat_handler::MESSAGE_PUBLIC, false); }
|
||||
|
@ -445,7 +444,7 @@ t_tokens::iterator t_parse::do_parse_formula(t_tokens::iterator const & start_po
|
|||
int paren_nesting_level = 1;
|
||||
bool in_string = false, in_comment = false;
|
||||
|
||||
static const t_token z_empty("", false);
|
||||
static const t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
static const t_operation_ptr op_empty(new t_operation_push(z_empty));
|
||||
complete_parse_.ops().push_back(op_empty);
|
||||
|
||||
|
|
|
@ -179,13 +179,13 @@ namespace {
|
|||
*/
|
||||
static void put_wml_message(const n_token::t_token& logger, const std::string& message)
|
||||
{
|
||||
static const config::t_token z_err("err", false);
|
||||
static const config::t_token z_error("error", false);
|
||||
static const config::t_token z_warn("warn", false);
|
||||
static const config::t_token z_wrn("wrn", false);
|
||||
static const config::t_token z_warning("warning", false);
|
||||
static const config::t_token z_debug("debug", false);
|
||||
static const config::t_token z_dbg("dbg", false);
|
||||
static const config::t_token & z_err( generate_safe_static_const_t_interned(n_token::t_token("err")) );
|
||||
static const config::t_token & z_error( generate_safe_static_const_t_interned(n_token::t_token("error")) );
|
||||
static const config::t_token & z_warn( generate_safe_static_const_t_interned(n_token::t_token("warn")) );
|
||||
static const config::t_token & z_wrn( generate_safe_static_const_t_interned(n_token::t_token("wrn")) );
|
||||
static const config::t_token & z_warning( generate_safe_static_const_t_interned(n_token::t_token("warning")) );
|
||||
static const config::t_token & z_debug( generate_safe_static_const_t_interned(n_token::t_token("debug")) );
|
||||
static const config::t_token & z_dbg( generate_safe_static_const_t_interned(n_token::t_token("dbg")) );
|
||||
|
||||
if (logger == z_err || logger == z_error) {
|
||||
ERR_WML << message << "\n";
|
||||
|
@ -330,7 +330,7 @@ static static_wml_action_map static_wml_actions;
|
|||
{ \
|
||||
wml_func_register_##pname() \
|
||||
{ \
|
||||
static const n_token::t_token z_##pname( #pname , false); \
|
||||
static const config::t_token & z_##pname( generate_safe_static_const_t_interned(n_token::t_token( #pname )) ); \
|
||||
static_wml_actions[z_##pname] = &wml_func_##pname; } \
|
||||
}; \
|
||||
static wml_func_register_##pname wml_func_register_##pname##_aux; \
|
||||
|
@ -342,24 +342,24 @@ namespace game_events {
|
|||
|
||||
static bool internal_conditional_passed(const vconfig& cond, bool& backwards_compat)
|
||||
{
|
||||
static const config::t_token z_have_unit("have_unit", false);
|
||||
static const config::t_token z_count("count", false);
|
||||
static const config::t_token z_search_recall_list("search_recall_list", false);
|
||||
static const config::t_token z_this_unit("this_unit", false);
|
||||
static const config::t_token z_have_location("have_location", false);
|
||||
static const config::t_token z_variable("variable", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_equals("equals", false);
|
||||
static const config::t_token z_not_equals("not_equals", false);
|
||||
static const config::t_token z_numerical_equals("numerical_equals", false);
|
||||
static const config::t_token z_numerical_not_equals("numerical_not_equals", false);
|
||||
static const config::t_token z_greater_than("greater_than", false);
|
||||
static const config::t_token z_less_than("less_than", false);
|
||||
static const config::t_token z_greater_than_equal_to("greater_than_equal_to", false);
|
||||
static const config::t_token z_less_than_equal_to("less_than_equal_to", false);
|
||||
static const config::t_token z_boolean_equals("boolean_equals", false);
|
||||
static const config::t_token z_boolean_not_equals("boolean_not_equals", false);
|
||||
static const config::t_token z_contains("contains", false);
|
||||
static const config::t_token & z_have_unit( generate_safe_static_const_t_interned(n_token::t_token("have_unit")) );
|
||||
static const config::t_token & z_count( generate_safe_static_const_t_interned(n_token::t_token("count")) );
|
||||
static const config::t_token & z_search_recall_list( generate_safe_static_const_t_interned(n_token::t_token("search_recall_list")) );
|
||||
static const config::t_token & z_this_unit( generate_safe_static_const_t_interned(n_token::t_token("this_unit")) );
|
||||
static const config::t_token & z_have_location( generate_safe_static_const_t_interned(n_token::t_token("have_location")) );
|
||||
static const config::t_token & z_variable( generate_safe_static_const_t_interned(n_token::t_token("variable")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_equals( generate_safe_static_const_t_interned(n_token::t_token("equals")) );
|
||||
static const config::t_token & z_not_equals( generate_safe_static_const_t_interned(n_token::t_token("not_equals")) );
|
||||
static const config::t_token & z_numerical_equals( generate_safe_static_const_t_interned(n_token::t_token("numerical_equals")) );
|
||||
static const config::t_token & z_numerical_not_equals( generate_safe_static_const_t_interned(n_token::t_token("numerical_not_equals")) );
|
||||
static const config::t_token & z_greater_than( generate_safe_static_const_t_interned(n_token::t_token("greater_than")) );
|
||||
static const config::t_token & z_less_than( generate_safe_static_const_t_interned(n_token::t_token("less_than")) );
|
||||
static const config::t_token & z_greater_than_equal_to( generate_safe_static_const_t_interned(n_token::t_token("greater_than_equal_to")) );
|
||||
static const config::t_token & z_less_than_equal_to( generate_safe_static_const_t_interned(n_token::t_token("less_than_equal_to")) );
|
||||
static const config::t_token & z_boolean_equals( generate_safe_static_const_t_interned(n_token::t_token("boolean_equals")) );
|
||||
static const config::t_token & z_boolean_not_equals( generate_safe_static_const_t_interned(n_token::t_token("boolean_not_equals")) );
|
||||
static const config::t_token & z_contains( generate_safe_static_const_t_interned(n_token::t_token("contains")) );
|
||||
|
||||
static std::vector<std::pair<int,int> > default_counts = utils::parse_ranges("1-99999");
|
||||
|
||||
|
@ -485,10 +485,10 @@ namespace game_events {
|
|||
|
||||
bool conditional_passed(const vconfig& cond, bool backwards_compat)
|
||||
{
|
||||
static const config::t_token z_backwards_compat("backwards_compat", false);
|
||||
static const config::t_token z_and("and", false);
|
||||
static const config::t_token z_or("or", false);
|
||||
static const config::t_token z_not("not", false);
|
||||
static const config::t_token & z_backwards_compat( generate_safe_static_const_t_interned(n_token::t_token("backwards_compat")) );
|
||||
static const config::t_token & z_and( generate_safe_static_const_t_interned(n_token::t_token("and")) );
|
||||
static const config::t_token & z_or( generate_safe_static_const_t_interned(n_token::t_token("or")) );
|
||||
static const config::t_token & z_not( generate_safe_static_const_t_interned(n_token::t_token("not")) );
|
||||
|
||||
bool allow_backwards_compat = backwards_compat = backwards_compat &&
|
||||
cond[z_backwards_compat].to_bool(true);
|
||||
|
@ -546,8 +546,8 @@ namespace game_events {
|
|||
|
||||
void handle_wml_log_message(const config& cfg)
|
||||
{
|
||||
static const config::t_token z_logger("logger", false);
|
||||
static const config::t_token z_message("message", false);
|
||||
static const config::t_token & z_logger( generate_safe_static_const_t_interned(n_token::t_token("logger")) );
|
||||
static const config::t_token & z_message( generate_safe_static_const_t_interned(n_token::t_token("message")) );
|
||||
|
||||
const config::attribute_value& logger = cfg[z_logger];
|
||||
const config::attribute_value& msg = cfg[z_message];
|
||||
|
@ -557,7 +557,7 @@ namespace game_events {
|
|||
|
||||
void handle_deprecated_message(const config& cfg)
|
||||
{
|
||||
static const config::t_token z_message("message", false);
|
||||
static const config::t_token & z_message( generate_safe_static_const_t_interned(n_token::t_token("message")) );
|
||||
|
||||
// Note: no need to translate the string, since only used for deprecated things.
|
||||
const config::attribute_value& message = cfg[z_message];
|
||||
|
@ -566,9 +566,9 @@ namespace game_events {
|
|||
|
||||
std::set<int> get_sides_set(const vconfig& cfg, const bool only_ssf, const bool only_side)
|
||||
{
|
||||
static const config::t_token z_side("side", false);
|
||||
static const config::t_token z_filter_side("filter_side", false);
|
||||
static const config::t_token z_error("error", false);
|
||||
static const config::t_token & z_side( generate_safe_static_const_t_interned(n_token::t_token("side")) );
|
||||
static const config::t_token & z_filter_side( generate_safe_static_const_t_interned(n_token::t_token("filter_side")) );
|
||||
static const config::t_token & z_error( generate_safe_static_const_t_interned(n_token::t_token("error")) );
|
||||
|
||||
if(only_ssf) {
|
||||
side_filter filter(cfg);
|
||||
|
@ -618,8 +618,8 @@ namespace {
|
|||
|
||||
static map_location cfg_to_loc(const vconfig& cfg,int defaultx = 0, int defaulty = 0)
|
||||
{
|
||||
static const config::t_token z_x("x", false);
|
||||
static const config::t_token z_y("y", false);
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
|
||||
int x = cfg[z_x].to_int(defaultx) - 1;
|
||||
int y = cfg[z_y].to_int(defaulty) - 1;
|
||||
|
@ -652,7 +652,7 @@ namespace {
|
|||
* respects this class's buffering functionality.
|
||||
*/
|
||||
void add_event_handler(game_events::event_handler const & new_handler) {
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
|
||||
if(buffering_) { insert_buffer_.push_back(new_handler); }
|
||||
|
||||
|
@ -675,8 +675,8 @@ namespace {
|
|||
* buffering functionality.
|
||||
*/
|
||||
void remove_event_handler(config::t_token const & id) {
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
if(id == z_empty) { return; }
|
||||
|
||||
if(buffering_) { remove_buffer_.insert(id); }
|
||||
|
@ -779,12 +779,12 @@ WML_HANDLER_FUNCTION(place_shroud, /*event_info*/,cfg)
|
|||
|
||||
WML_HANDLER_FUNCTION(tunnel, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_remove("remove", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_source("source", false);
|
||||
static const config::t_token z_target("target", false);
|
||||
static const config::t_token z_filter("filter", false);
|
||||
static const config::t_token z_bidirectional("bidirectional", false);
|
||||
static const config::t_token & z_remove( generate_safe_static_const_t_interned(n_token::t_token("remove")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_source( generate_safe_static_const_t_interned(n_token::t_token("source")) );
|
||||
static const config::t_token & z_target( generate_safe_static_const_t_interned(n_token::t_token("target")) );
|
||||
static const config::t_token & z_filter( generate_safe_static_const_t_interned(n_token::t_token("filter")) );
|
||||
static const config::t_token & z_bidirectional( generate_safe_static_const_t_interned(n_token::t_token("bidirectional")) );
|
||||
|
||||
const bool remove = utils::string_bool(cfg[z_remove], false);
|
||||
if (remove) {
|
||||
|
@ -810,10 +810,10 @@ WML_HANDLER_FUNCTION(tunnel, /*event_info*/, cfg)
|
|||
|
||||
WML_HANDLER_FUNCTION(teleport, event_info, cfg)
|
||||
{
|
||||
static const config::t_token z_filter("filter", false);
|
||||
static const config::t_token z_check_passability("check_passability", false);
|
||||
static const config::t_token z_clear_shroud("clear_shroud", false);
|
||||
static const config::t_token z_animate("animate", false);
|
||||
static const config::t_token & z_filter( generate_safe_static_const_t_interned(n_token::t_token("filter")) );
|
||||
static const config::t_token & z_check_passability( generate_safe_static_const_t_interned(n_token::t_token("check_passability")) );
|
||||
static const config::t_token & z_clear_shroud( generate_safe_static_const_t_interned(n_token::t_token("clear_shroud")) );
|
||||
static const config::t_token & z_animate( generate_safe_static_const_t_interned(n_token::t_token("animate")) );
|
||||
|
||||
unit_map::iterator u = resources::units->find(event_info.loc1);
|
||||
|
||||
|
@ -869,8 +869,8 @@ WML_HANDLER_FUNCTION(teleport, event_info, cfg)
|
|||
WML_HANDLER_FUNCTION(volume, /*event_info*/, cfg)
|
||||
{
|
||||
|
||||
static const config::t_token z_music("music", false);
|
||||
static const config::t_token z_sound("sound", false);
|
||||
static const config::t_token & z_music( generate_safe_static_const_t_interned(n_token::t_token("music")) );
|
||||
static const config::t_token & z_sound( generate_safe_static_const_t_interned(n_token::t_token("sound")) );
|
||||
|
||||
int vol;
|
||||
float rel;
|
||||
|
@ -898,9 +898,9 @@ WML_HANDLER_FUNCTION(volume, /*event_info*/, cfg)
|
|||
}
|
||||
|
||||
static void color_adjust(const vconfig& cfg) {
|
||||
static const config::t_token z_red("red", false);
|
||||
static const config::t_token z_green("green", false);
|
||||
static const config::t_token z_blue("blue", false);
|
||||
static const config::t_token & z_red( generate_safe_static_const_t_interned(n_token::t_token("red")) );
|
||||
static const config::t_token & z_green( generate_safe_static_const_t_interned(n_token::t_token("green")) );
|
||||
static const config::t_token & z_blue( generate_safe_static_const_t_interned(n_token::t_token("blue")) );
|
||||
|
||||
game_display &screen = *resources::screen;
|
||||
screen.adjust_color_overlay(cfg[z_red], cfg[z_green], cfg[z_blue]);
|
||||
|
@ -922,8 +922,8 @@ WML_HANDLER_FUNCTION(colour_adjust, /*event_info*/, cfg)
|
|||
|
||||
WML_HANDLER_FUNCTION(scroll, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_x("x", false);
|
||||
static const config::t_token z_y("y", false);
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
|
||||
game_display &screen = *resources::screen;
|
||||
screen.scroll(cfg[z_x], cfg[z_y]);
|
||||
|
@ -935,9 +935,9 @@ WML_HANDLER_FUNCTION(scroll, /*event_info*/, cfg)
|
|||
// or if the turn / time-of-day sequence mutates in a scenario.
|
||||
WML_HANDLER_FUNCTION(store_time_of_day, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_turn("turn", false);
|
||||
static const config::t_token z_variable("variable", false);
|
||||
static const config::t_token z_time_of_day("time_of_day", false);
|
||||
static const config::t_token & z_turn( generate_safe_static_const_t_interned(n_token::t_token("turn")) );
|
||||
static const config::t_token & z_variable( generate_safe_static_const_t_interned(n_token::t_token("variable")) );
|
||||
static const config::t_token & z_time_of_day( generate_safe_static_const_t_interned(n_token::t_token("time_of_day")) );
|
||||
|
||||
const map_location loc = cfg_to_loc(cfg, -999, -999);
|
||||
int turn = cfg[z_turn];
|
||||
|
@ -974,21 +974,21 @@ WML_HANDLER_FUNCTION(modify_ai, /*event_info*/, cfg)
|
|||
|
||||
WML_HANDLER_FUNCTION(modify_side, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_team_name("team_name", false);
|
||||
static const config::t_token z_user_team_name("user_team_name", false);
|
||||
static const config::t_token z_controller("controller", false);
|
||||
static const config::t_token z_recruit("recruit", false);
|
||||
static const config::t_token z_shroud_data("shroud_data", false);
|
||||
static const config::t_token z_ai("ai", false);
|
||||
static const config::t_token z_switch_ai("switch_ai", false);
|
||||
static const config::t_token z_income("income", false);
|
||||
static const config::t_token z_gold("gold", false);
|
||||
static const config::t_token z_shroud("shroud", false);
|
||||
static const config::t_token z_hidden("hidden", false);
|
||||
static const config::t_token z_fog("fog", false);
|
||||
static const config::t_token z_village_gold("village_gold", false);
|
||||
static const config::t_token z_share_view("share_view", false);
|
||||
static const config::t_token z_share_maps("share_maps", false);
|
||||
static const config::t_token & z_team_name( generate_safe_static_const_t_interned(n_token::t_token("team_name")) );
|
||||
static const config::t_token & z_user_team_name( generate_safe_static_const_t_interned(n_token::t_token("user_team_name")) );
|
||||
static const config::t_token & z_controller( generate_safe_static_const_t_interned(n_token::t_token("controller")) );
|
||||
static const config::t_token & z_recruit( generate_safe_static_const_t_interned(n_token::t_token("recruit")) );
|
||||
static const config::t_token & z_shroud_data( generate_safe_static_const_t_interned(n_token::t_token("shroud_data")) );
|
||||
static const config::t_token & z_ai( generate_safe_static_const_t_interned(n_token::t_token("ai")) );
|
||||
static const config::t_token & z_switch_ai( generate_safe_static_const_t_interned(n_token::t_token("switch_ai")) );
|
||||
static const config::t_token & z_income( generate_safe_static_const_t_interned(n_token::t_token("income")) );
|
||||
static const config::t_token & z_gold( generate_safe_static_const_t_interned(n_token::t_token("gold")) );
|
||||
static const config::t_token & z_shroud( generate_safe_static_const_t_interned(n_token::t_token("shroud")) );
|
||||
static const config::t_token & z_hidden( generate_safe_static_const_t_interned(n_token::t_token("hidden")) );
|
||||
static const config::t_token & z_fog( generate_safe_static_const_t_interned(n_token::t_token("fog")) );
|
||||
static const config::t_token & z_village_gold( generate_safe_static_const_t_interned(n_token::t_token("village_gold")) );
|
||||
static const config::t_token & z_share_view( generate_safe_static_const_t_interned(n_token::t_token("share_view")) );
|
||||
static const config::t_token & z_share_maps( generate_safe_static_const_t_interned(n_token::t_token("share_maps")) );
|
||||
|
||||
std::vector<team> &teams = *resources::teams;
|
||||
|
||||
|
@ -1096,9 +1096,9 @@ WML_HANDLER_FUNCTION(modify_side, /*event_info*/, cfg)
|
|||
|
||||
WML_HANDLER_FUNCTION(modify_turns, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_value("value", false);
|
||||
static const config::t_token z_add("add", false);
|
||||
static const config::t_token z_current("current", false);
|
||||
static const config::t_token & z_value( generate_safe_static_const_t_interned(n_token::t_token("value")) );
|
||||
static const config::t_token & z_add( generate_safe_static_const_t_interned(n_token::t_token("add")) );
|
||||
static const config::t_token & z_current( generate_safe_static_const_t_interned(n_token::t_token("current")) );
|
||||
|
||||
config::attribute_value const & value = cfg[z_value];
|
||||
config::attribute_value const & add = cfg[z_add];
|
||||
|
@ -1127,16 +1127,16 @@ namespace {
|
|||
|
||||
game_display::fake_unit *create_fake_unit(const vconfig& cfg)
|
||||
{
|
||||
static const config::t_token z_type("type", false);
|
||||
static const config::t_token z_variation("variation", false);
|
||||
static const config::t_token z_image_mods("image_mods", false);
|
||||
static const config::t_token z_side("side", false);
|
||||
static const config::t_token z_gender("gender", false);
|
||||
static const config::t_token z_effect("effect", false);
|
||||
static const config::t_token z_apply_to("apply_to", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_image_mod("image_mod", false);
|
||||
static const config::t_token z_add("add", false);
|
||||
static const config::t_token & z_type( generate_safe_static_const_t_interned(n_token::t_token("type")) );
|
||||
static const config::t_token & z_variation( generate_safe_static_const_t_interned(n_token::t_token("variation")) );
|
||||
static const config::t_token & z_image_mods( generate_safe_static_const_t_interned(n_token::t_token("image_mods")) );
|
||||
static const config::t_token & z_side( generate_safe_static_const_t_interned(n_token::t_token("side")) );
|
||||
static const config::t_token & z_gender( generate_safe_static_const_t_interned(n_token::t_token("gender")) );
|
||||
static const config::t_token & z_effect( generate_safe_static_const_t_interned(n_token::t_token("effect")) );
|
||||
static const config::t_token & z_apply_to( generate_safe_static_const_t_interned(n_token::t_token("apply_to")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_image_mod( generate_safe_static_const_t_interned(n_token::t_token("image_mod")) );
|
||||
static const config::t_token & z_add( generate_safe_static_const_t_interned(n_token::t_token("add")) );
|
||||
|
||||
config::attribute_value const & type = cfg[z_type];
|
||||
config::attribute_value const & variation = cfg[z_variation];
|
||||
|
@ -1235,8 +1235,8 @@ std::vector<map_location> fake_unit_path(const unit& fake_unit, const std::vecto
|
|||
// that is just moving for the visual effect
|
||||
WML_HANDLER_FUNCTION(move_unit_fake, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_x("x", false);
|
||||
static const config::t_token z_y("y", false);
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
|
||||
util::unique_ptr<unit> dummy_unit(create_fake_unit(cfg));
|
||||
if(!dummy_unit.get())
|
||||
|
@ -1255,10 +1255,10 @@ WML_HANDLER_FUNCTION(move_unit_fake, /*event_info*/, cfg)
|
|||
|
||||
WML_HANDLER_FUNCTION(move_units_fake, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_fake_unit("fake_unit", false);
|
||||
static const config::t_token z_x("x", false);
|
||||
static const config::t_token z_y("y", false);
|
||||
static const config::t_token z_skip_steps("skip_steps", false);
|
||||
static const config::t_token & z_fake_unit( generate_safe_static_const_t_interned(n_token::t_token("fake_unit")) );
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
static const config::t_token & z_skip_steps( generate_safe_static_const_t_interned(n_token::t_token("skip_steps")) );
|
||||
|
||||
LOG_NG << "Processing [move_units_fake]\n";
|
||||
|
||||
|
@ -1319,30 +1319,30 @@ WML_HANDLER_FUNCTION(move_units_fake, /*event_info*/, cfg)
|
|||
|
||||
WML_HANDLER_FUNCTION(set_variable, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_literal("literal", false);
|
||||
static const config::t_token z_value("value", false);
|
||||
static const config::t_token z_to_variable("to_variable", false);
|
||||
static const config::t_token z_add("add", false);
|
||||
static const config::t_token z_sub("sub", false);
|
||||
static const config::t_token z_multiply("multiply", false);
|
||||
static const config::t_token z_divide("divide", false);
|
||||
static const config::t_token z_modulo("modulo", false);
|
||||
static const config::t_token z_round("round", false);
|
||||
static const config::t_token z_ceil("ceil", false);
|
||||
static const config::t_token z_floor("floor", false);
|
||||
static const config::t_token z_ipart("ipart", false);
|
||||
static const config::t_token z_fpart("fpart", false);
|
||||
static const config::t_token z_string_length("string_length", false);
|
||||
static const config::t_token z_time("time", false);
|
||||
static const config::t_token z_stamp("stamp", false);
|
||||
static const config::t_token z_rand("rand", false);
|
||||
static const config::t_token z_join("join", false);
|
||||
static const config::t_token z_variable("variable", false);
|
||||
static const config::t_token z_separator("separator", false);
|
||||
static const config::t_token z_key("key", false);
|
||||
static const config::t_token z_remove_empty("remove_empty", false);
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_literal( generate_safe_static_const_t_interned(n_token::t_token("literal")) );
|
||||
static const config::t_token & z_value( generate_safe_static_const_t_interned(n_token::t_token("value")) );
|
||||
static const config::t_token & z_to_variable( generate_safe_static_const_t_interned(n_token::t_token("to_variable")) );
|
||||
static const config::t_token & z_add( generate_safe_static_const_t_interned(n_token::t_token("add")) );
|
||||
static const config::t_token & z_sub( generate_safe_static_const_t_interned(n_token::t_token("sub")) );
|
||||
static const config::t_token & z_multiply( generate_safe_static_const_t_interned(n_token::t_token("multiply")) );
|
||||
static const config::t_token & z_divide( generate_safe_static_const_t_interned(n_token::t_token("divide")) );
|
||||
static const config::t_token & z_modulo( generate_safe_static_const_t_interned(n_token::t_token("modulo")) );
|
||||
static const config::t_token & z_round( generate_safe_static_const_t_interned(n_token::t_token("round")) );
|
||||
static const config::t_token & z_ceil( generate_safe_static_const_t_interned(n_token::t_token("ceil")) );
|
||||
static const config::t_token & z_floor( generate_safe_static_const_t_interned(n_token::t_token("floor")) );
|
||||
static const config::t_token & z_ipart( generate_safe_static_const_t_interned(n_token::t_token("ipart")) );
|
||||
static const config::t_token & z_fpart( generate_safe_static_const_t_interned(n_token::t_token("fpart")) );
|
||||
static const config::t_token & z_string_length( generate_safe_static_const_t_interned(n_token::t_token("string_length")) );
|
||||
static const config::t_token & z_time( generate_safe_static_const_t_interned(n_token::t_token("time")) );
|
||||
static const config::t_token & z_stamp( generate_safe_static_const_t_interned(n_token::t_token("stamp")) );
|
||||
static const config::t_token & z_rand( generate_safe_static_const_t_interned(n_token::t_token("rand")) );
|
||||
static const config::t_token & z_join( generate_safe_static_const_t_interned(n_token::t_token("join")) );
|
||||
static const config::t_token & z_variable( generate_safe_static_const_t_interned(n_token::t_token("variable")) );
|
||||
static const config::t_token & z_separator( generate_safe_static_const_t_interned(n_token::t_token("separator")) );
|
||||
static const config::t_token & z_key( generate_safe_static_const_t_interned(n_token::t_token("key")) );
|
||||
static const config::t_token & z_remove_empty( generate_safe_static_const_t_interned(n_token::t_token("remove_empty")) );
|
||||
|
||||
game_state *state_of_game = resources::state_of_game;
|
||||
|
||||
|
@ -1564,21 +1564,21 @@ WML_HANDLER_FUNCTION(set_variable, /*event_info*/, cfg)
|
|||
|
||||
WML_HANDLER_FUNCTION(set_variables, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_mode("mode", false);
|
||||
static const config::t_token z_extend("extend", false);
|
||||
static const config::t_token z_append("append", false);
|
||||
static const config::t_token z_merge("merge", false);
|
||||
static const config::t_token z_insert("insert", false);
|
||||
static const config::t_token z_value("value", false);
|
||||
static const config::t_token z_literal("literal", false);
|
||||
static const config::t_token z_split("split", false);
|
||||
static const config::t_token z_to_variable("to_variable", false);
|
||||
static const config::t_token z_list("list", false);
|
||||
static const config::t_token z_separator("separator", false);
|
||||
static const config::t_token z_key("key", false);
|
||||
static const config::t_token z_remove_empty("remove_empty", false);
|
||||
static const config::t_token z_replace("replace", false);
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_mode( generate_safe_static_const_t_interned(n_token::t_token("mode")) );
|
||||
static const config::t_token & z_extend( generate_safe_static_const_t_interned(n_token::t_token("extend")) );
|
||||
static const config::t_token & z_append( generate_safe_static_const_t_interned(n_token::t_token("append")) );
|
||||
static const config::t_token & z_merge( generate_safe_static_const_t_interned(n_token::t_token("merge")) );
|
||||
static const config::t_token & z_insert( generate_safe_static_const_t_interned(n_token::t_token("insert")) );
|
||||
static const config::t_token & z_value( generate_safe_static_const_t_interned(n_token::t_token("value")) );
|
||||
static const config::t_token & z_literal( generate_safe_static_const_t_interned(n_token::t_token("literal")) );
|
||||
static const config::t_token & z_split( generate_safe_static_const_t_interned(n_token::t_token("split")) );
|
||||
static const config::t_token & z_to_variable( generate_safe_static_const_t_interned(n_token::t_token("to_variable")) );
|
||||
static const config::t_token & z_list( generate_safe_static_const_t_interned(n_token::t_token("list")) );
|
||||
static const config::t_token & z_separator( generate_safe_static_const_t_interned(n_token::t_token("separator")) );
|
||||
static const config::t_token & z_key( generate_safe_static_const_t_interned(n_token::t_token("key")) );
|
||||
static const config::t_token & z_remove_empty( generate_safe_static_const_t_interned(n_token::t_token("remove_empty")) );
|
||||
static const config::t_token & z_replace( generate_safe_static_const_t_interned(n_token::t_token("replace")) );
|
||||
|
||||
const config::attribute_value & name = cfg[z_name];
|
||||
variable_info dest(name, true, variable_info::TYPE_CONTAINER);
|
||||
|
@ -1701,10 +1701,10 @@ WML_HANDLER_FUNCTION(set_variables, /*event_info*/, cfg)
|
|||
|
||||
WML_HANDLER_FUNCTION(role, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_role("role", false);
|
||||
static const config::t_token z_type("type", false);
|
||||
static const config::t_token z_side("side", false);
|
||||
static const config::t_token z_this_unit("this_unit", false);
|
||||
static const config::t_token & z_role( generate_safe_static_const_t_interned(n_token::t_token("role")) );
|
||||
static const config::t_token & z_type( generate_safe_static_const_t_interned(n_token::t_token("type")) );
|
||||
static const config::t_token & z_side( generate_safe_static_const_t_interned(n_token::t_token("side")) );
|
||||
static const config::t_token & z_this_unit( generate_safe_static_const_t_interned(n_token::t_token("this_unit")) );
|
||||
|
||||
bool found = false;
|
||||
|
||||
|
@ -1781,7 +1781,7 @@ WML_HANDLER_FUNCTION(sound_source, /*event_info*/, cfg)
|
|||
|
||||
WML_HANDLER_FUNCTION(remove_sound_source, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
|
||||
resources::soundsources->remove(cfg[z_id]);
|
||||
}
|
||||
|
@ -1814,8 +1814,8 @@ void change_terrain(const map_location &loc, const t_translation::t_terrain &t,
|
|||
// Creating a mask of the terrain
|
||||
WML_HANDLER_FUNCTION(terrain_mask, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_mask("mask", false);
|
||||
static const config::t_token z_border("border", false);
|
||||
static const config::t_token & z_mask( generate_safe_static_const_t_interned(n_token::t_token("mask")) );
|
||||
static const config::t_token & z_border( generate_safe_static_const_t_interned(n_token::t_token("border")) );
|
||||
|
||||
map_location loc = cfg_to_loc(cfg, 1, 1);
|
||||
|
||||
|
@ -1850,10 +1850,10 @@ static bool try_add_unit_to_recall_list(const map_location& loc, const unit& u)
|
|||
// If we should spawn a new unit on the map somewhere
|
||||
WML_HANDLER_FUNCTION(unit, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_to_variable("to_variable", false);
|
||||
static const config::t_token z_x("x", false);
|
||||
static const config::t_token z_y("y", false);
|
||||
static const config::t_token z_side("side", false);
|
||||
static const config::t_token & z_to_variable( generate_safe_static_const_t_interned(n_token::t_token("to_variable")) );
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
static const config::t_token & z_side( generate_safe_static_const_t_interned(n_token::t_token("side")) );
|
||||
|
||||
config parsed_cfg = cfg.get_parsed_config();
|
||||
|
||||
|
@ -1897,13 +1897,13 @@ WML_HANDLER_FUNCTION(unit, /*event_info*/, cfg)
|
|||
// If we should recall units that match a certain description
|
||||
WML_HANDLER_FUNCTION(recall, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_x("x", false);
|
||||
static const config::t_token z_recall("recall", false);
|
||||
static const config::t_token z_y("y", false);
|
||||
static const config::t_token z_this_unit("this_unit", false);
|
||||
static const config::t_token z_check_passability("check_passability", false);
|
||||
static const config::t_token z_show("show", false);
|
||||
static const config::t_token z_fire_event("fire_event", false);
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_recall( generate_safe_static_const_t_interned(n_token::t_token("recall")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
static const config::t_token & z_this_unit( generate_safe_static_const_t_interned(n_token::t_token("this_unit")) );
|
||||
static const config::t_token & z_check_passability( generate_safe_static_const_t_interned(n_token::t_token("check_passability")) );
|
||||
static const config::t_token & z_show( generate_safe_static_const_t_interned(n_token::t_token("show")) );
|
||||
static const config::t_token & z_fire_event( generate_safe_static_const_t_interned(n_token::t_token("fire_event")) );
|
||||
|
||||
LOG_NG << "recalling unit...\n";
|
||||
bool unit_recalled = false;
|
||||
|
@ -1958,16 +1958,16 @@ WML_HANDLER_FUNCTION(recall, /*event_info*/, cfg)
|
|||
|
||||
WML_HANDLER_FUNCTION(object, event_info, cfg)
|
||||
{
|
||||
static const config::t_token z_image("image", false);
|
||||
static const config::t_token z_description("description", false);
|
||||
static const config::t_token z_filter("filter", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_then("then", false);
|
||||
static const config::t_token z_object("object", false);
|
||||
static const config::t_token z_cannot_use_message("cannot_use_message", false);
|
||||
static const config::t_token z_else("else", false);
|
||||
static const config::t_token z_silent("silent", false);
|
||||
static const config::t_token & z_image( generate_safe_static_const_t_interned(n_token::t_token("image")) );
|
||||
static const config::t_token & z_description( generate_safe_static_const_t_interned(n_token::t_token("description")) );
|
||||
static const config::t_token & z_filter( generate_safe_static_const_t_interned(n_token::t_token("filter")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_then( generate_safe_static_const_t_interned(n_token::t_token("then")) );
|
||||
static const config::t_token & z_object( generate_safe_static_const_t_interned(n_token::t_token("object")) );
|
||||
static const config::t_token & z_cannot_use_message( generate_safe_static_const_t_interned(n_token::t_token("cannot_use_message")) );
|
||||
static const config::t_token & z_else( generate_safe_static_const_t_interned(n_token::t_token("else")) );
|
||||
static const config::t_token & z_silent( generate_safe_static_const_t_interned(n_token::t_token("silent")) );
|
||||
|
||||
|
||||
const vconfig filter = cfg.child(z_filter);
|
||||
|
@ -2035,12 +2035,12 @@ WML_HANDLER_FUNCTION(object, event_info, cfg)
|
|||
|
||||
WML_HANDLER_FUNCTION(print, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_text("text", false);
|
||||
static const config::t_token z_size("size", false);
|
||||
static const config::t_token z_duration("duration", false);
|
||||
static const config::t_token z_red("red", false);
|
||||
static const config::t_token z_green("green", false);
|
||||
static const config::t_token z_blue("blue", false);
|
||||
static const config::t_token & z_text( generate_safe_static_const_t_interned(n_token::t_token("text")) );
|
||||
static const config::t_token & z_size( generate_safe_static_const_t_interned(n_token::t_token("size")) );
|
||||
static const config::t_token & z_duration( generate_safe_static_const_t_interned(n_token::t_token("duration")) );
|
||||
static const config::t_token & z_red( generate_safe_static_const_t_interned(n_token::t_token("red")) );
|
||||
static const config::t_token & z_green( generate_safe_static_const_t_interned(n_token::t_token("green")) );
|
||||
static const config::t_token & z_blue( generate_safe_static_const_t_interned(n_token::t_token("blue")) );
|
||||
|
||||
// Remove any old message.
|
||||
if (floating_label)
|
||||
|
@ -2115,15 +2115,15 @@ typedef boost::scoped_ptr<recursion_preventer> recursion_preventer_ptr;
|
|||
|
||||
WML_HANDLER_FUNCTION(kill, event_info, cfg)
|
||||
{
|
||||
static const config::t_token z_secondary_unit("secondary_unit", false);
|
||||
static const config::t_token z_fire_event("fire_event", false);
|
||||
static const config::t_token z_die("die", false);
|
||||
static const config::t_token z_last_breath("last breath", false);
|
||||
static const config::t_token z_animate("animate", false);
|
||||
static const config::t_token z_x("x", false);
|
||||
static const config::t_token z_y("y", false);
|
||||
static const config::t_token z_recall("recall", false);
|
||||
static const config::t_token z_this_unit("this_unit", false);
|
||||
static const config::t_token & z_secondary_unit( generate_safe_static_const_t_interned(n_token::t_token("secondary_unit")) );
|
||||
static const config::t_token & z_fire_event( generate_safe_static_const_t_interned(n_token::t_token("fire_event")) );
|
||||
static const config::t_token & z_die( generate_safe_static_const_t_interned(n_token::t_token("die")) );
|
||||
static const config::t_token & z_last_breath( generate_safe_static_const_t_interned(n_token::t_token("last breath")) );
|
||||
static const config::t_token & z_animate( generate_safe_static_const_t_interned(n_token::t_token("animate")) );
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
static const config::t_token & z_recall( generate_safe_static_const_t_interned(n_token::t_token("recall")) );
|
||||
static const config::t_token & z_this_unit( generate_safe_static_const_t_interned(n_token::t_token("this_unit")) );
|
||||
|
||||
bool secondary_unit = cfg.has_child(z_secondary_unit);
|
||||
game_events::entity_location killer_loc(map_location(0, 0));
|
||||
|
@ -2246,13 +2246,13 @@ WML_HANDLER_FUNCTION(set_menu_item, /*event_info*/, cfg)
|
|||
[/command]
|
||||
[/set_menu_item]
|
||||
*/
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_image("image", false);
|
||||
static const config::t_token z_description("description", false);
|
||||
static const config::t_token z_needs_select("needs_select", false);
|
||||
static const config::t_token z_show_if("show_if", false);
|
||||
static const config::t_token z_filter_location("filter_location", false);
|
||||
static const config::t_token z_command("command", false);
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_image( generate_safe_static_const_t_interned(n_token::t_token("image")) );
|
||||
static const config::t_token & z_description( generate_safe_static_const_t_interned(n_token::t_token("description")) );
|
||||
static const config::t_token & z_needs_select( generate_safe_static_const_t_interned(n_token::t_token("needs_select")) );
|
||||
static const config::t_token & z_show_if( generate_safe_static_const_t_interned(n_token::t_token("show_if")) );
|
||||
static const config::t_token & z_filter_location( generate_safe_static_const_t_interned(n_token::t_token("filter_location")) );
|
||||
static const config::t_token & z_command( generate_safe_static_const_t_interned(n_token::t_token("command")) );
|
||||
|
||||
config::attribute_value const & id = cfg[z_id];
|
||||
wml_menu_item*& mref = resources::state_of_game->wml_menu_items[id];
|
||||
|
@ -2292,7 +2292,7 @@ struct unstore_unit_advance_choice: mp_sync::user_choice
|
|||
|
||||
virtual config query_user() const
|
||||
{
|
||||
static const config::t_token z_value("value", false);
|
||||
static const config::t_token & z_value( generate_safe_static_const_t_interned(n_token::t_token("value")) );
|
||||
|
||||
int selected;
|
||||
if (use_dialog) {
|
||||
|
@ -2309,7 +2309,7 @@ struct unstore_unit_advance_choice: mp_sync::user_choice
|
|||
|
||||
virtual config random_choice(rand_rng::simple_rng &rng) const
|
||||
{
|
||||
static const config::t_token z_value("value", false);
|
||||
static const config::t_token & z_value( generate_safe_static_const_t_interned(n_token::t_token("value")) );
|
||||
|
||||
config cfg;
|
||||
cfg[z_value] = rng.get_next_random() % nb_options;
|
||||
|
@ -2320,19 +2320,19 @@ struct unstore_unit_advance_choice: mp_sync::user_choice
|
|||
// Unit serialization to variables
|
||||
WML_HANDLER_FUNCTION(unstore_unit, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_variable("variable", false);
|
||||
static const config::t_token z_x("x", false);
|
||||
static const config::t_token z_y("y", false);
|
||||
static const config::t_token z_advance("advance", false);
|
||||
static const config::t_token z_find_vacant("find_vacant", false);
|
||||
static const config::t_token z_check_passability("check_passability", false);
|
||||
static const config::t_token z_text("text", false);
|
||||
static const config::t_token z_red("red", false);
|
||||
static const config::t_token z_green("green", false);
|
||||
static const config::t_token z_blue("blue", false);
|
||||
static const config::t_token z_choose("choose", false);
|
||||
static const config::t_token z_value("value", false);
|
||||
static const config::t_token z_fire_event("fire_event", false);
|
||||
static const config::t_token & z_variable( generate_safe_static_const_t_interned(n_token::t_token("variable")) );
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
static const config::t_token & z_advance( generate_safe_static_const_t_interned(n_token::t_token("advance")) );
|
||||
static const config::t_token & z_find_vacant( generate_safe_static_const_t_interned(n_token::t_token("find_vacant")) );
|
||||
static const config::t_token & z_check_passability( generate_safe_static_const_t_interned(n_token::t_token("check_passability")) );
|
||||
static const config::t_token & z_text( generate_safe_static_const_t_interned(n_token::t_token("text")) );
|
||||
static const config::t_token & z_red( generate_safe_static_const_t_interned(n_token::t_token("red")) );
|
||||
static const config::t_token & z_green( generate_safe_static_const_t_interned(n_token::t_token("green")) );
|
||||
static const config::t_token & z_blue( generate_safe_static_const_t_interned(n_token::t_token("blue")) );
|
||||
static const config::t_token & z_choose( generate_safe_static_const_t_interned(n_token::t_token("choose")) );
|
||||
static const config::t_token & z_value( generate_safe_static_const_t_interned(n_token::t_token("value")) );
|
||||
static const config::t_token & z_fire_event( generate_safe_static_const_t_interned(n_token::t_token("fire_event")) );
|
||||
|
||||
const config &var = resources::state_of_game->get_variable_cfg(cfg[z_variable]);
|
||||
|
||||
|
@ -2449,10 +2449,10 @@ WML_HANDLER_FUNCTION(unstore_unit, /*event_info*/, cfg)
|
|||
|
||||
WML_HANDLER_FUNCTION(store_starting_location, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_variable("variable", false);
|
||||
static const config::t_token z_location("location", false);
|
||||
static const config::t_token z_side("side", false);
|
||||
static const config::t_token z_owner_side("owner_side", false);
|
||||
static const config::t_token & z_variable( generate_safe_static_const_t_interned(n_token::t_token("variable")) );
|
||||
static const config::t_token & z_location( generate_safe_static_const_t_interned(n_token::t_token("location")) );
|
||||
static const config::t_token & z_side( generate_safe_static_const_t_interned(n_token::t_token("side")) );
|
||||
static const config::t_token & z_owner_side( generate_safe_static_const_t_interned(n_token::t_token("owner_side")) );
|
||||
|
||||
config::attribute_value variable = cfg[z_variable];
|
||||
if (variable.empty()) {
|
||||
|
@ -2479,10 +2479,10 @@ WML_HANDLER_FUNCTION(store_starting_location, /*event_info*/, cfg)
|
|||
*/
|
||||
WML_HANDLER_FUNCTION(store_villages, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_store_villages("store_villages", false);
|
||||
static const config::t_token z_variable("variable", false);
|
||||
static const config::t_token z_location("location", false);
|
||||
static const config::t_token z_owner_side("owner_side", false);
|
||||
static const config::t_token & z_store_villages( generate_safe_static_const_t_interned(n_token::t_token("store_villages")) );
|
||||
static const config::t_token & z_variable( generate_safe_static_const_t_interned(n_token::t_token("variable")) );
|
||||
static const config::t_token & z_location( generate_safe_static_const_t_interned(n_token::t_token("location")) );
|
||||
static const config::t_token & z_owner_side( generate_safe_static_const_t_interned(n_token::t_token("owner_side")) );
|
||||
|
||||
log_scope(z_store_villages);
|
||||
config::attribute_value variable = cfg[z_variable];
|
||||
|
@ -2515,21 +2515,21 @@ WML_HANDLER_FUNCTION(end_turn, /*event_info*/, /*cfg*/)
|
|||
|
||||
WML_HANDLER_FUNCTION(endlevel, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_next_scenario("next_scenario", false);
|
||||
static const config::t_token z_end_text("end_text", false);
|
||||
static const config::t_token z_end_text_duration("end_text_duration", false);
|
||||
static const config::t_token z_result("result", false);
|
||||
static const config::t_token z_victory("victory", false);
|
||||
static const config::t_token z_defeat("defeat", false);
|
||||
static const config::t_token z_music("music", false);
|
||||
static const config::t_token z_carryover_report("carryover_report", false);
|
||||
static const config::t_token z_save("save", false);
|
||||
static const config::t_token z_replay_save("replay_save", false);
|
||||
static const config::t_token z_linger_mode("linger_mode", false);
|
||||
static const config::t_token z_reveal_map("reveal_map", false);
|
||||
static const config::t_token z_bonus("bonus", false);
|
||||
static const config::t_token z_carryover_percentage("carryover_percentage", false);
|
||||
static const config::t_token z_carryover_add("carryover_add", false);
|
||||
static const config::t_token & z_next_scenario( generate_safe_static_const_t_interned(n_token::t_token("next_scenario")) );
|
||||
static const config::t_token & z_end_text( generate_safe_static_const_t_interned(n_token::t_token("end_text")) );
|
||||
static const config::t_token & z_end_text_duration( generate_safe_static_const_t_interned(n_token::t_token("end_text_duration")) );
|
||||
static const config::t_token & z_result( generate_safe_static_const_t_interned(n_token::t_token("result")) );
|
||||
static const config::t_token & z_victory( generate_safe_static_const_t_interned(n_token::t_token("victory")) );
|
||||
static const config::t_token & z_defeat( generate_safe_static_const_t_interned(n_token::t_token("defeat")) );
|
||||
static const config::t_token & z_music( generate_safe_static_const_t_interned(n_token::t_token("music")) );
|
||||
static const config::t_token & z_carryover_report( generate_safe_static_const_t_interned(n_token::t_token("carryover_report")) );
|
||||
static const config::t_token & z_save( generate_safe_static_const_t_interned(n_token::t_token("save")) );
|
||||
static const config::t_token & z_replay_save( generate_safe_static_const_t_interned(n_token::t_token("replay_save")) );
|
||||
static const config::t_token & z_linger_mode( generate_safe_static_const_t_interned(n_token::t_token("linger_mode")) );
|
||||
static const config::t_token & z_reveal_map( generate_safe_static_const_t_interned(n_token::t_token("reveal_map")) );
|
||||
static const config::t_token & z_bonus( generate_safe_static_const_t_interned(n_token::t_token("bonus")) );
|
||||
static const config::t_token & z_carryover_percentage( generate_safe_static_const_t_interned(n_token::t_token("carryover_percentage")) );
|
||||
static const config::t_token & z_carryover_add( generate_safe_static_const_t_interned(n_token::t_token("carryover_add")) );
|
||||
|
||||
game_state *state_of_game = resources::state_of_game;
|
||||
unit_map *units = resources::units;
|
||||
|
@ -2591,7 +2591,7 @@ WML_HANDLER_FUNCTION(endlevel, /*event_info*/, cfg)
|
|||
|
||||
WML_HANDLER_FUNCTION(redraw, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_side("side", false);
|
||||
static const config::t_token & z_side( generate_safe_static_const_t_interned(n_token::t_token("side")) );
|
||||
|
||||
game_display &screen = *resources::screen;
|
||||
|
||||
|
@ -2627,16 +2627,16 @@ WML_HANDLER_FUNCTION(label, /*event_info*/, cfg)
|
|||
|
||||
WML_HANDLER_FUNCTION(heal_unit, event_info, cfg)
|
||||
{
|
||||
static const config::t_token z_filter_second("filter_second", false);
|
||||
static const config::t_token z_heals("heals", false);
|
||||
static const config::t_token z_amount("amount", false);
|
||||
static const config::t_token z_moves("moves", false);
|
||||
static const config::t_token z_restore_attacks("restore_attacks", false);
|
||||
static const config::t_token z_restore_statuses("restore_statuses", false);
|
||||
static const config::t_token z_animate("animate", false);
|
||||
static const config::t_token z_filter("filter", false);
|
||||
static const config::t_token z_full("full", false);
|
||||
static const config::t_token z_heal_amount("heal_amount", false);
|
||||
static const config::t_token & z_filter_second( generate_safe_static_const_t_interned(n_token::t_token("filter_second")) );
|
||||
static const config::t_token & z_heals( generate_safe_static_const_t_interned(n_token::t_token("heals")) );
|
||||
static const config::t_token & z_amount( generate_safe_static_const_t_interned(n_token::t_token("amount")) );
|
||||
static const config::t_token & z_moves( generate_safe_static_const_t_interned(n_token::t_token("moves")) );
|
||||
static const config::t_token & z_restore_attacks( generate_safe_static_const_t_interned(n_token::t_token("restore_attacks")) );
|
||||
static const config::t_token & z_restore_statuses( generate_safe_static_const_t_interned(n_token::t_token("restore_statuses")) );
|
||||
static const config::t_token & z_animate( generate_safe_static_const_t_interned(n_token::t_token("animate")) );
|
||||
static const config::t_token & z_filter( generate_safe_static_const_t_interned(n_token::t_token("filter")) );
|
||||
static const config::t_token & z_full( generate_safe_static_const_t_interned(n_token::t_token("full")) );
|
||||
static const config::t_token & z_heal_amount( generate_safe_static_const_t_interned(n_token::t_token("heal_amount")) );
|
||||
|
||||
unit_map* units = resources::units;
|
||||
|
||||
|
@ -2717,7 +2717,7 @@ WML_HANDLER_FUNCTION(allow_undo,/*event_info*/,/*cfg*/)
|
|||
|
||||
WML_HANDLER_FUNCTION(open_help, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_topic("topic", false);
|
||||
static const config::t_token & z_topic( generate_safe_static_const_t_interned(n_token::t_token("topic")) );
|
||||
|
||||
game_display &screen = *resources::screen;
|
||||
config::attribute_value topic_id = cfg[z_topic];
|
||||
|
@ -2739,10 +2739,10 @@ unit_map::iterator handle_speaker(
|
|||
const vconfig& cfg,
|
||||
bool scroll)
|
||||
{
|
||||
static const config::t_token z_speaker("speaker", false);
|
||||
static const config::t_token z_unit("unit", false);
|
||||
static const config::t_token z_second_unit("second_unit", false);
|
||||
static const config::t_token z_narrator("narrator", false);
|
||||
static const config::t_token & z_speaker( generate_safe_static_const_t_interned(n_token::t_token("speaker")) );
|
||||
static const config::t_token & z_unit( generate_safe_static_const_t_interned(n_token::t_token("unit")) );
|
||||
static const config::t_token & z_second_unit( generate_safe_static_const_t_interned(n_token::t_token("second_unit")) );
|
||||
static const config::t_token & z_narrator( generate_safe_static_const_t_interned(n_token::t_token("narrator")) );
|
||||
|
||||
unit_map *units = resources::units;
|
||||
game_display &screen = *resources::screen;
|
||||
|
@ -2792,7 +2792,7 @@ unit_map::iterator handle_speaker(
|
|||
*/
|
||||
config::t_token get_image(const vconfig& cfg, unit_map::iterator speaker)
|
||||
{
|
||||
static const config::t_token z_image("image", false);
|
||||
static const config::t_token & z_image( generate_safe_static_const_t_interned(n_token::t_token("image")) );
|
||||
|
||||
config::attribute_value image = cfg[z_image];
|
||||
if (image.empty() && speaker != resources::units->end())
|
||||
|
@ -2817,7 +2817,7 @@ config::t_token get_image(const vconfig& cfg, unit_map::iterator speaker)
|
|||
*/
|
||||
config::t_token get_caption(const vconfig& cfg, unit_map::iterator speaker)
|
||||
{
|
||||
static const config::t_token z_caption("caption", false);
|
||||
static const config::t_token & z_caption( generate_safe_static_const_t_interned(n_token::t_token("caption")) );
|
||||
|
||||
config::attribute_value caption = cfg[z_caption];
|
||||
if (caption.empty() && speaker != resources::units->end()) {
|
||||
|
@ -2847,11 +2847,11 @@ struct message_user_choice : mp_sync::user_choice
|
|||
|
||||
virtual config query_user() const
|
||||
{
|
||||
static const config::t_token z_label("label", false);
|
||||
static const config::t_token z_text("text", false);
|
||||
static const config::t_token z_max_length("max_length", false);
|
||||
static const config::t_token z_message("message", false);
|
||||
static const config::t_token z_value("value", false);
|
||||
static const config::t_token & z_label( generate_safe_static_const_t_interned(n_token::t_token("label")) );
|
||||
static const config::t_token & z_text( generate_safe_static_const_t_interned(n_token::t_token("text")) );
|
||||
static const config::t_token & z_max_length( generate_safe_static_const_t_interned(n_token::t_token("max_length")) );
|
||||
static const config::t_token & z_message( generate_safe_static_const_t_interned(n_token::t_token("message")) );
|
||||
static const config::t_token & z_value( generate_safe_static_const_t_interned(n_token::t_token("value")) );
|
||||
|
||||
std::string image = (*get_image(cfg, speaker));
|
||||
config::t_token const & caption = get_caption(cfg, speaker);
|
||||
|
@ -2911,20 +2911,20 @@ struct message_user_choice : mp_sync::user_choice
|
|||
// Display a message dialog
|
||||
WML_HANDLER_FUNCTION(message, event_info, cfg)
|
||||
{
|
||||
static const config::t_token z_option("option", false);
|
||||
static const config::t_token z_text_input("text_input", false);
|
||||
static const config::t_token z_side_for("side_for", false);
|
||||
static const config::t_token z_scroll("scroll", false);
|
||||
static const config::t_token z_speaker("speaker", false);
|
||||
static const config::t_token z_narrator("narrator", false);
|
||||
static const config::t_token z_message("message", false);
|
||||
static const config::t_token z_show_if("show_if", false);
|
||||
static const config::t_token z_command("command", false);
|
||||
static const config::t_token z_sound("sound", false);
|
||||
static const config::t_token z_input("input", false);
|
||||
static const config::t_token z_value("value", false);
|
||||
static const config::t_token z_text("text", false);
|
||||
static const config::t_token z_variable("variable", false);
|
||||
static const config::t_token & z_option( generate_safe_static_const_t_interned(n_token::t_token("option")) );
|
||||
static const config::t_token & z_text_input( generate_safe_static_const_t_interned(n_token::t_token("text_input")) );
|
||||
static const config::t_token & z_side_for( generate_safe_static_const_t_interned(n_token::t_token("side_for")) );
|
||||
static const config::t_token & z_scroll( generate_safe_static_const_t_interned(n_token::t_token("scroll")) );
|
||||
static const config::t_token & z_speaker( generate_safe_static_const_t_interned(n_token::t_token("speaker")) );
|
||||
static const config::t_token & z_narrator( generate_safe_static_const_t_interned(n_token::t_token("narrator")) );
|
||||
static const config::t_token & z_message( generate_safe_static_const_t_interned(n_token::t_token("message")) );
|
||||
static const config::t_token & z_show_if( generate_safe_static_const_t_interned(n_token::t_token("show_if")) );
|
||||
static const config::t_token & z_command( generate_safe_static_const_t_interned(n_token::t_token("command")) );
|
||||
static const config::t_token & z_sound( generate_safe_static_const_t_interned(n_token::t_token("sound")) );
|
||||
static const config::t_token & z_input( generate_safe_static_const_t_interned(n_token::t_token("input")) );
|
||||
static const config::t_token & z_value( generate_safe_static_const_t_interned(n_token::t_token("value")) );
|
||||
static const config::t_token & z_text( generate_safe_static_const_t_interned(n_token::t_token("text")) );
|
||||
static const config::t_token & z_variable( generate_safe_static_const_t_interned(n_token::t_token("variable")) );
|
||||
|
||||
// Check if there is any input to be made, if not the message may be skipped
|
||||
const vconfig::child_list menu_items = cfg.get_children(z_option);
|
||||
|
@ -3064,9 +3064,9 @@ WML_HANDLER_FUNCTION(message, event_info, cfg)
|
|||
// Adding/removing new time_areas dynamically with Standard Location Filters.
|
||||
WML_HANDLER_FUNCTION(time_area, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_time_area("time_area", false);
|
||||
static const config::t_token z_remove("remove", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token & z_time_area( generate_safe_static_const_t_interned(n_token::t_token("time_area")) );
|
||||
static const config::t_token & z_remove( generate_safe_static_const_t_interned(n_token::t_token("remove")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
|
||||
log_scope(z_time_area);
|
||||
|
||||
|
@ -3103,7 +3103,7 @@ WML_HANDLER_FUNCTION(time_area, /*event_info*/, cfg)
|
|||
//Replacing the current time of day schedule
|
||||
WML_HANDLER_FUNCTION(replace_schedule, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_time("time", false);
|
||||
static const config::t_token & z_time( generate_safe_static_const_t_interned(n_token::t_token("time")) );
|
||||
|
||||
if(cfg.get_children(z_time).empty()) {
|
||||
ERR_NG << "attempted to to replace ToD schedule with empty schedule\n";
|
||||
|
@ -3127,9 +3127,9 @@ WML_HANDLER_FUNCTION(disallow_end_turn, /*event_info*/, /*cfg*/)
|
|||
// Adding new events
|
||||
WML_HANDLER_FUNCTION(event, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_remove("remove", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_delayed_variable_substitution("delayed_variable_substitution", false);
|
||||
static const config::t_token & z_remove( generate_safe_static_const_t_interned(n_token::t_token("remove")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_delayed_variable_substitution( generate_safe_static_const_t_interned(n_token::t_token("delayed_variable_substitution")) );
|
||||
|
||||
if (cfg[z_remove].to_bool(false)) {
|
||||
event_handlers.remove_event_handler(cfg[z_id].token());
|
||||
|
@ -3143,9 +3143,9 @@ WML_HANDLER_FUNCTION(event, /*event_info*/, cfg)
|
|||
// Experimental map replace
|
||||
WML_HANDLER_FUNCTION(replace_map, /*event_info*/, cfg)
|
||||
{
|
||||
static const config::t_token z_map("map", false);
|
||||
static const config::t_token z_expand("expand", false);
|
||||
static const config::t_token z_shrink("shrink", false);
|
||||
static const config::t_token & z_map( generate_safe_static_const_t_interned(n_token::t_token("map")) );
|
||||
static const config::t_token & z_expand( generate_safe_static_const_t_interned(n_token::t_token("expand")) );
|
||||
static const config::t_token & z_shrink( generate_safe_static_const_t_interned(n_token::t_token("shrink")) );
|
||||
gamemap *game_map = resources::game_map;
|
||||
|
||||
gamemap map(*game_map);
|
||||
|
@ -3213,9 +3213,9 @@ static void commit_new_handlers() {
|
|||
event_handlers.commit_buffer();
|
||||
}
|
||||
static void commit_wmi_commands() {
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_first_time_only("first_time_only", false);
|
||||
static const config::t_token z_allow_undo("allow_undo", false);
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_first_time_only( generate_safe_static_const_t_interned(n_token::t_token("first_time_only")) );
|
||||
static const config::t_token & z_allow_undo( generate_safe_static_const_t_interned(n_token::t_token("allow_undo")) );
|
||||
|
||||
// Commit WML Menu Item command changes
|
||||
while(wmi_command_changes.size() > 0) {
|
||||
|
@ -3251,19 +3251,19 @@ static void commit_wmi_commands() {
|
|||
|
||||
static bool process_event(game_events::event_handler& handler, const game_events::queued_event& ev)
|
||||
{
|
||||
static const config::t_token z_unit("unit", false);
|
||||
static const config::t_token z_second_unit("second_unit", false);
|
||||
static const config::t_token z_weapon("weapon", false);
|
||||
static const config::t_token z_first("first", false);
|
||||
static const config::t_token z_second_weapon("second_weapon", false);
|
||||
static const config::t_token z_second("second", false);
|
||||
static const config::t_token z_filter_condition("filter_condition", false);
|
||||
static const config::t_token z_filter("filter", false);
|
||||
static const config::t_token z_filter_side("filter_side", false);
|
||||
static const config::t_token z_filter_attack("filter_attack", false);
|
||||
static const config::t_token z_filter_second("filter_second", false);
|
||||
static const config::t_token z_filter_second_attack("filter_second_attack", false);
|
||||
static const config::t_token z_select("select", false);
|
||||
static const config::t_token & z_unit( generate_safe_static_const_t_interned(n_token::t_token("unit")) );
|
||||
static const config::t_token & z_second_unit( generate_safe_static_const_t_interned(n_token::t_token("second_unit")) );
|
||||
static const config::t_token & z_weapon( generate_safe_static_const_t_interned(n_token::t_token("weapon")) );
|
||||
static const config::t_token & z_first( generate_safe_static_const_t_interned(n_token::t_token("first")) );
|
||||
static const config::t_token & z_second_weapon( generate_safe_static_const_t_interned(n_token::t_token("second_weapon")) );
|
||||
static const config::t_token & z_second( generate_safe_static_const_t_interned(n_token::t_token("second")) );
|
||||
static const config::t_token & z_filter_condition( generate_safe_static_const_t_interned(n_token::t_token("filter_condition")) );
|
||||
static const config::t_token & z_filter( generate_safe_static_const_t_interned(n_token::t_token("filter")) );
|
||||
static const config::t_token & z_filter_side( generate_safe_static_const_t_interned(n_token::t_token("filter_side")) );
|
||||
static const config::t_token & z_filter_attack( generate_safe_static_const_t_interned(n_token::t_token("filter_attack")) );
|
||||
static const config::t_token & z_filter_second( generate_safe_static_const_t_interned(n_token::t_token("filter_second")) );
|
||||
static const config::t_token & z_filter_second_attack( generate_safe_static_const_t_interned(n_token::t_token("filter_second_attack")) );
|
||||
static const config::t_token & z_select( generate_safe_static_const_t_interned(n_token::t_token("select")) );
|
||||
|
||||
if(handler.disabled())
|
||||
return false;
|
||||
|
@ -3383,7 +3383,7 @@ namespace game_events {
|
|||
|
||||
void event_handler::handle_event(const game_events::queued_event& event_info)
|
||||
{
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
|
||||
if (first_time_only_)
|
||||
{
|
||||
|
@ -3398,7 +3398,7 @@ namespace game_events {
|
|||
}
|
||||
|
||||
void handle_event_commands(const game_events::queued_event& event_info, const vconfig &cfg) {
|
||||
static const config::t_token z_command("command", false);
|
||||
static const config::t_token & z_command( generate_safe_static_const_t_interned(n_token::t_token("command")) );
|
||||
resources::lua_kernel->run_wml_action(z_command, cfg, event_info);
|
||||
}
|
||||
|
||||
|
@ -3420,7 +3420,7 @@ namespace game_events {
|
|||
|
||||
bool event_handler::matches_name(const config::t_token &tname) const
|
||||
{
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
|
||||
std::string const & name(tname);
|
||||
const config::attribute_value& t_my_names = cfg_[z_name];
|
||||
|
@ -3483,9 +3483,9 @@ namespace game_events {
|
|||
|
||||
bool matches_special_filter(const config &cfg, const vconfig& filter)
|
||||
{
|
||||
static const config::t_token z_and("and", false);
|
||||
static const config::t_token z_or("or", false);
|
||||
static const config::t_token z_not("not", false);
|
||||
static const config::t_token & z_and( generate_safe_static_const_t_interned(n_token::t_token("and")) );
|
||||
static const config::t_token & z_or( generate_safe_static_const_t_interned(n_token::t_token("or")) );
|
||||
static const config::t_token & z_not( generate_safe_static_const_t_interned(n_token::t_token("not")) );
|
||||
|
||||
if (!cfg) {
|
||||
WRN_NG << "attempt to filter attack for an event with no attack data.\n";
|
||||
|
@ -3533,9 +3533,9 @@ namespace game_events {
|
|||
manager::manager(const config& cfg)
|
||||
: variable_manager()
|
||||
{
|
||||
static const config::t_token z_event("event", false);
|
||||
static const config::t_token z_unit_wml_ids("unit_wml_ids", false);
|
||||
static const config::t_token z_used_items("used_items", false);
|
||||
static const config::t_token & z_event( generate_safe_static_const_t_interned(n_token::t_token("event")) );
|
||||
static const config::t_token & z_unit_wml_ids( generate_safe_static_const_t_interned(n_token::t_token("unit_wml_ids")) );
|
||||
static const config::t_token & z_used_items( generate_safe_static_const_t_interned(n_token::t_token("used_items")) );
|
||||
|
||||
assert(!manager_running);
|
||||
foreach (const config &ev, cfg.child_range(z_event)) {
|
||||
|
@ -3574,9 +3574,9 @@ namespace game_events {
|
|||
|
||||
void write_events(config& cfg)
|
||||
{
|
||||
static const config::t_token z_event("event", false);
|
||||
static const config::t_token z_used_items("used_items", false);
|
||||
static const config::t_token z_unit_wml_ids("unit_wml_ids", false);
|
||||
static const config::t_token & z_event( generate_safe_static_const_t_interned(n_token::t_token("event")) );
|
||||
static const config::t_token & z_used_items( generate_safe_static_const_t_interned(n_token::t_token("used_items")) );
|
||||
static const config::t_token & z_unit_wml_ids( generate_safe_static_const_t_interned(n_token::t_token("unit_wml_ids")) );
|
||||
|
||||
assert(manager_running);
|
||||
foreach (const game_events::event_handler &eh, event_handlers) {
|
||||
|
@ -3671,10 +3671,10 @@ bool fire(const n_token::t_token& event,
|
|||
|
||||
bool pump()
|
||||
{
|
||||
static const config::t_token z_x1("x1", false);
|
||||
static const config::t_token z_y1("y1", false);
|
||||
static const config::t_token z_x2("x2", false);
|
||||
static const config::t_token z_y2("y2", false);
|
||||
static const config::t_token & z_x1( generate_safe_static_const_t_interned(n_token::t_token("x1")) );
|
||||
static const config::t_token & z_y1( generate_safe_static_const_t_interned(n_token::t_token("y1")) );
|
||||
static const config::t_token & z_x2( generate_safe_static_const_t_interned(n_token::t_token("x2")) );
|
||||
static const config::t_token & z_y2( generate_safe_static_const_t_interned(n_token::t_token("y2")) );
|
||||
|
||||
assert(manager_running);
|
||||
if(!events_init())
|
||||
|
|
|
@ -61,6 +61,7 @@ static lg::log_domain log_engine_tc("engine/team_construction");
|
|||
#define LOG_NG_TC LOG_STREAM(info, log_engine_tc)
|
||||
#define DBG_NG_TC LOG_STREAM(debug, log_engine_tc)
|
||||
|
||||
namespace {
|
||||
DEFAULT_TOKEN_BODY(z_NORMAL_default, "NORMAL");
|
||||
DEFAULT_TOKEN_BODY(z_label_default, "label")
|
||||
DEFAULT_TOKEN_BODY(z_parent_default, "parent")
|
||||
|
@ -77,6 +78,7 @@ DEFAULT_TOKEN_BODY(z_completion_default, "completion")
|
|||
DEFAULT_TOKEN_BODY(z_end_text_default, "end_text")
|
||||
DEFAULT_TOKEN_BODY(z_end_text_duration_default, "end_text_duration")
|
||||
DEFAULT_TOKEN_BODY(z_difficulty_default, "difficulty")
|
||||
}
|
||||
|
||||
game_classification::game_classification():
|
||||
savegame_config(),
|
||||
|
@ -138,21 +140,21 @@ game_classification::game_classification(const game_classification& gc):
|
|||
|
||||
config game_classification::to_config() const
|
||||
{
|
||||
static const config::t_token z_label("label", false);
|
||||
static const config::t_token z_parent("parent", false);
|
||||
static const config::t_token z_version("version", false);
|
||||
static const config::t_token z_campaign_type("campaign_type", false);
|
||||
static const config::t_token z_campaign_define("campaign_define", false);
|
||||
static const config::t_token z_campaign_extra_defines("campaign_extra_defines", false);
|
||||
static const config::t_token z_campaign("campaign", false);
|
||||
static const config::t_token z_history("history", false);
|
||||
static const config::t_token z_abbrev("abbrev", false);
|
||||
static const config::t_token z_scenario("scenario", false);
|
||||
static const config::t_token z_next_scenario("next_scenario", false);
|
||||
static const config::t_token z_completion("completion", false);
|
||||
static const config::t_token z_end_text("end_text", false);
|
||||
static const config::t_token z_end_text_duration("end_text_duration", false);
|
||||
static const config::t_token z_difficulty("difficulty", false);
|
||||
static const config::t_token & z_label( generate_safe_static_const_t_interned(n_token::t_token("label")) );
|
||||
static const config::t_token & z_parent( generate_safe_static_const_t_interned(n_token::t_token("parent")) );
|
||||
static const config::t_token & z_version( generate_safe_static_const_t_interned(n_token::t_token("version")) );
|
||||
static const config::t_token & z_campaign_type( generate_safe_static_const_t_interned(n_token::t_token("campaign_type")) );
|
||||
static const config::t_token & z_campaign_define( generate_safe_static_const_t_interned(n_token::t_token("campaign_define")) );
|
||||
static const config::t_token & z_campaign_extra_defines( generate_safe_static_const_t_interned(n_token::t_token("campaign_extra_defines")) );
|
||||
static const config::t_token & z_campaign( generate_safe_static_const_t_interned(n_token::t_token("campaign")) );
|
||||
static const config::t_token & z_history( generate_safe_static_const_t_interned(n_token::t_token("history")) );
|
||||
static const config::t_token & z_abbrev( generate_safe_static_const_t_interned(n_token::t_token("abbrev")) );
|
||||
static const config::t_token & z_scenario( generate_safe_static_const_t_interned(n_token::t_token("scenario")) );
|
||||
static const config::t_token & z_next_scenario( generate_safe_static_const_t_interned(n_token::t_token("next_scenario")) );
|
||||
static const config::t_token & z_completion( generate_safe_static_const_t_interned(n_token::t_token("completion")) );
|
||||
static const config::t_token & z_end_text( generate_safe_static_const_t_interned(n_token::t_token("end_text")) );
|
||||
static const config::t_token & z_end_text_duration( generate_safe_static_const_t_interned(n_token::t_token("end_text_duration")) );
|
||||
static const config::t_token & z_difficulty( generate_safe_static_const_t_interned(n_token::t_token("difficulty")) );
|
||||
|
||||
config cfg;
|
||||
|
||||
|
@ -194,18 +196,18 @@ game_state::game_state() :
|
|||
|
||||
void write_players(game_state& gamestate, config& cfg, const bool use_snapshot, const bool merge_side)
|
||||
{
|
||||
static const config::t_token z_player("player", false);
|
||||
static const config::t_token z_side("side", false);
|
||||
static const config::t_token z_save_id("save_id", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_gold("gold", false);
|
||||
static const config::t_token z_gold_add("gold_add", false);
|
||||
static const config::t_token z_previous_recruits("previous_recruits", false);
|
||||
static const config::t_token z_can_recruit("can_recruit", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_current_player("current_player", false);
|
||||
static const config::t_token z_color("color", false);
|
||||
static const config::t_token z_unit("unit", false);
|
||||
static const config::t_token & z_player( generate_safe_static_const_t_interned(n_token::t_token("player")) );
|
||||
static const config::t_token & z_side( generate_safe_static_const_t_interned(n_token::t_token("side")) );
|
||||
static const config::t_token & z_save_id( generate_safe_static_const_t_interned(n_token::t_token("save_id")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_gold( generate_safe_static_const_t_interned(n_token::t_token("gold")) );
|
||||
static const config::t_token & z_gold_add( generate_safe_static_const_t_interned(n_token::t_token("gold_add")) );
|
||||
static const config::t_token & z_previous_recruits( generate_safe_static_const_t_interned(n_token::t_token("previous_recruits")) );
|
||||
static const config::t_token & z_can_recruit( generate_safe_static_const_t_interned(n_token::t_token("can_recruit")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_current_player( generate_safe_static_const_t_interned(n_token::t_token("current_player")) );
|
||||
static const config::t_token & z_color( generate_safe_static_const_t_interned(n_token::t_token("color")) );
|
||||
static const config::t_token & z_unit( generate_safe_static_const_t_interned(n_token::t_token("unit")) );
|
||||
|
||||
// If there is already a player config available it means we are loading
|
||||
// from a savegame. Don't do anything then, the information is already there
|
||||
|
@ -303,17 +305,17 @@ game_state::game_state(const config& cfg, bool show_replay) :
|
|||
phase_(INITIAL),
|
||||
can_end_turn_(true)
|
||||
{
|
||||
static const config::t_token z_next_underlying_unit_id("next_underlying_unit_id", false);
|
||||
static const config::t_token z_read_game("read_game", false);
|
||||
static const config::t_token z_snapshot("snapshot", false);
|
||||
static const config::t_token z_replay_start("replay_start", false);
|
||||
static const config::t_token z_random_calls("random_calls", false);
|
||||
static const config::t_token z_can_end_turn("can_end_turn", false);
|
||||
static const config::t_token z_variables("variables", false);
|
||||
static const config::t_token z_menu_item("menu_item", false);
|
||||
static const config::t_token z_replay("replay", false);
|
||||
static const config::t_token z_player("player", false);
|
||||
static const config::t_token z_statistics("statistics", false);
|
||||
static const config::t_token & z_next_underlying_unit_id( generate_safe_static_const_t_interned(n_token::t_token("next_underlying_unit_id")) );
|
||||
static const config::t_token & z_read_game( generate_safe_static_const_t_interned(n_token::t_token("read_game")) );
|
||||
static const config::t_token & z_snapshot( generate_safe_static_const_t_interned(n_token::t_token("snapshot")) );
|
||||
static const config::t_token & z_replay_start( generate_safe_static_const_t_interned(n_token::t_token("replay_start")) );
|
||||
static const config::t_token & z_random_calls( generate_safe_static_const_t_interned(n_token::t_token("random_calls")) );
|
||||
static const config::t_token & z_can_end_turn( generate_safe_static_const_t_interned(n_token::t_token("can_end_turn")) );
|
||||
static const config::t_token & z_variables( generate_safe_static_const_t_interned(n_token::t_token("variables")) );
|
||||
static const config::t_token & z_menu_item( generate_safe_static_const_t_interned(n_token::t_token("menu_item")) );
|
||||
static const config::t_token & z_replay( generate_safe_static_const_t_interned(n_token::t_token("replay")) );
|
||||
static const config::t_token & z_player( generate_safe_static_const_t_interned(n_token::t_token("player")) );
|
||||
static const config::t_token & z_statistics( generate_safe_static_const_t_interned(n_token::t_token("statistics")) );
|
||||
|
||||
n_unit::id_manager::instance().set_save_id(cfg[z_next_underlying_unit_id]);
|
||||
log_scope(z_read_game);
|
||||
|
@ -381,34 +383,34 @@ game_state::game_state(const config& cfg, bool show_replay) :
|
|||
|
||||
void game_state::write_snapshot(config& cfg) const
|
||||
{
|
||||
static const config::t_token z_write_game("write_game", false);
|
||||
static const config::t_token z_label("label", false);
|
||||
static const config::t_token z_history("history", false);
|
||||
static const config::t_token z_abbrev("abbrev", false);
|
||||
static const config::t_token z_version("version", false);
|
||||
static const config::t_token z_scenario("scenario", false);
|
||||
static const config::t_token z_next_scenario("next_scenario", false);
|
||||
static const config::t_token z_completion("completion", false);
|
||||
static const config::t_token z_campaign("campaign", false);
|
||||
static const config::t_token z_campaign_type("campaign_type", false);
|
||||
static const config::t_token z_difficulty("difficulty", false);
|
||||
static const config::t_token z_campaign_define("campaign_define", false);
|
||||
static const config::t_token z_campaign_extra_defines("campaign_extra_defines", false);
|
||||
static const config::t_token z_next_underlying_unit_id("next_underlying_unit_id", false);
|
||||
static const config::t_token z_can_end_turn("can_end_turn", false);
|
||||
static const config::t_token z_random_seed("random_seed", false);
|
||||
static const config::t_token z_random_calls("random_calls", false);
|
||||
static const config::t_token z_end_text("end_text", false);
|
||||
static const config::t_token z_end_text_duration("end_text_duration", false);
|
||||
static const config::t_token z_variables("variables", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_image("image", false);
|
||||
static const config::t_token z_description("description", false);
|
||||
static const config::t_token z_needs_select("needs_select", false);
|
||||
static const config::t_token z_show_if("show_if", false);
|
||||
static const config::t_token z_filter_location("filter_location", false);
|
||||
static const config::t_token z_command("command", false);
|
||||
static const config::t_token z_menu_item("menu_item", false);
|
||||
static const config::t_token & z_write_game( generate_safe_static_const_t_interned(n_token::t_token("write_game")) );
|
||||
static const config::t_token & z_label( generate_safe_static_const_t_interned(n_token::t_token("label")) );
|
||||
static const config::t_token & z_history( generate_safe_static_const_t_interned(n_token::t_token("history")) );
|
||||
static const config::t_token & z_abbrev( generate_safe_static_const_t_interned(n_token::t_token("abbrev")) );
|
||||
static const config::t_token & z_version( generate_safe_static_const_t_interned(n_token::t_token("version")) );
|
||||
static const config::t_token & z_scenario( generate_safe_static_const_t_interned(n_token::t_token("scenario")) );
|
||||
static const config::t_token & z_next_scenario( generate_safe_static_const_t_interned(n_token::t_token("next_scenario")) );
|
||||
static const config::t_token & z_completion( generate_safe_static_const_t_interned(n_token::t_token("completion")) );
|
||||
static const config::t_token & z_campaign( generate_safe_static_const_t_interned(n_token::t_token("campaign")) );
|
||||
static const config::t_token & z_campaign_type( generate_safe_static_const_t_interned(n_token::t_token("campaign_type")) );
|
||||
static const config::t_token & z_difficulty( generate_safe_static_const_t_interned(n_token::t_token("difficulty")) );
|
||||
static const config::t_token & z_campaign_define( generate_safe_static_const_t_interned(n_token::t_token("campaign_define")) );
|
||||
static const config::t_token & z_campaign_extra_defines( generate_safe_static_const_t_interned(n_token::t_token("campaign_extra_defines")) );
|
||||
static const config::t_token & z_next_underlying_unit_id( generate_safe_static_const_t_interned(n_token::t_token("next_underlying_unit_id")) );
|
||||
static const config::t_token & z_can_end_turn( generate_safe_static_const_t_interned(n_token::t_token("can_end_turn")) );
|
||||
static const config::t_token & z_random_seed( generate_safe_static_const_t_interned(n_token::t_token("random_seed")) );
|
||||
static const config::t_token & z_random_calls( generate_safe_static_const_t_interned(n_token::t_token("random_calls")) );
|
||||
static const config::t_token & z_end_text( generate_safe_static_const_t_interned(n_token::t_token("end_text")) );
|
||||
static const config::t_token & z_end_text_duration( generate_safe_static_const_t_interned(n_token::t_token("end_text_duration")) );
|
||||
static const config::t_token & z_variables( generate_safe_static_const_t_interned(n_token::t_token("variables")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_image( generate_safe_static_const_t_interned(n_token::t_token("image")) );
|
||||
static const config::t_token & z_description( generate_safe_static_const_t_interned(n_token::t_token("description")) );
|
||||
static const config::t_token & z_needs_select( generate_safe_static_const_t_interned(n_token::t_token("needs_select")) );
|
||||
static const config::t_token & z_show_if( generate_safe_static_const_t_interned(n_token::t_token("show_if")) );
|
||||
static const config::t_token & z_filter_location( generate_safe_static_const_t_interned(n_token::t_token("filter_location")) );
|
||||
static const config::t_token & z_command( generate_safe_static_const_t_interned(n_token::t_token("command")) );
|
||||
static const config::t_token & z_menu_item( generate_safe_static_const_t_interned(n_token::t_token("menu_item")) );
|
||||
|
||||
log_scope(z_write_game);
|
||||
cfg[z_label] = classification_.label;
|
||||
|
@ -457,32 +459,32 @@ void game_state::write_snapshot(config& cfg) const
|
|||
|
||||
void extract_summary_from_config(config& cfg_save, config& cfg_summary)
|
||||
{
|
||||
static const config::t_token z_snapshot("snapshot", false);
|
||||
static const config::t_token z_replay_start("replay_start", false);
|
||||
static const config::t_token z_replay("replay", false);
|
||||
static const config::t_token z_side("side", false);
|
||||
static const config::t_token z_label("label", false);
|
||||
static const config::t_token z_parent("parent", false);
|
||||
static const config::t_token z_campaign_type("campaign_type", false);
|
||||
static const config::t_token z_scenario("scenario", false);
|
||||
static const config::t_token z_campaign("campaign", false);
|
||||
static const config::t_token z_difficulty("difficulty", false);
|
||||
static const config::t_token z_version("version", false);
|
||||
static const config::t_token z_corrupt("corrupt", false);
|
||||
static const config::t_token z_turn("turn", false);
|
||||
static const config::t_token z_turn_at("turn_at", false);
|
||||
static const config::t_token z_turns("turns", false);
|
||||
static const config::t_token z_controller("controller", false);
|
||||
static const config::t_token z_human("human", false);
|
||||
static const config::t_token z_shroud("shroud", false);
|
||||
static const config::t_token z_canrecruit("canrecruit", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_image("image", false);
|
||||
static const config::t_token z_unit("unit", false);
|
||||
static const config::t_token z_leader("leader", false);
|
||||
static const config::t_token z_leader_image("leader_image", false);
|
||||
static const config::t_token z_map_data("map_data", false);
|
||||
static const config::t_token z_yes("yes", false);
|
||||
static const config::t_token & z_snapshot( generate_safe_static_const_t_interned(n_token::t_token("snapshot")) );
|
||||
static const config::t_token & z_replay_start( generate_safe_static_const_t_interned(n_token::t_token("replay_start")) );
|
||||
static const config::t_token & z_replay( generate_safe_static_const_t_interned(n_token::t_token("replay")) );
|
||||
static const config::t_token & z_side( generate_safe_static_const_t_interned(n_token::t_token("side")) );
|
||||
static const config::t_token & z_label( generate_safe_static_const_t_interned(n_token::t_token("label")) );
|
||||
static const config::t_token & z_parent( generate_safe_static_const_t_interned(n_token::t_token("parent")) );
|
||||
static const config::t_token & z_campaign_type( generate_safe_static_const_t_interned(n_token::t_token("campaign_type")) );
|
||||
static const config::t_token & z_scenario( generate_safe_static_const_t_interned(n_token::t_token("scenario")) );
|
||||
static const config::t_token & z_campaign( generate_safe_static_const_t_interned(n_token::t_token("campaign")) );
|
||||
static const config::t_token & z_difficulty( generate_safe_static_const_t_interned(n_token::t_token("difficulty")) );
|
||||
static const config::t_token & z_version( generate_safe_static_const_t_interned(n_token::t_token("version")) );
|
||||
static const config::t_token & z_corrupt( generate_safe_static_const_t_interned(n_token::t_token("corrupt")) );
|
||||
static const config::t_token & z_turn( generate_safe_static_const_t_interned(n_token::t_token("turn")) );
|
||||
static const config::t_token & z_turn_at( generate_safe_static_const_t_interned(n_token::t_token("turn_at")) );
|
||||
static const config::t_token & z_turns( generate_safe_static_const_t_interned(n_token::t_token("turns")) );
|
||||
static const config::t_token & z_controller( generate_safe_static_const_t_interned(n_token::t_token("controller")) );
|
||||
static const config::t_token & z_human( generate_safe_static_const_t_interned(n_token::t_token("human")) );
|
||||
static const config::t_token & z_shroud( generate_safe_static_const_t_interned(n_token::t_token("shroud")) );
|
||||
static const config::t_token & z_canrecruit( generate_safe_static_const_t_interned(n_token::t_token("canrecruit")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_image( generate_safe_static_const_t_interned(n_token::t_token("image")) );
|
||||
static const config::t_token & z_unit( generate_safe_static_const_t_interned(n_token::t_token("unit")) );
|
||||
static const config::t_token & z_leader( generate_safe_static_const_t_interned(n_token::t_token("leader")) );
|
||||
static const config::t_token & z_leader_image( generate_safe_static_const_t_interned(n_token::t_token("leader_image")) );
|
||||
static const config::t_token & z_map_data( generate_safe_static_const_t_interned(n_token::t_token("map_data")) );
|
||||
static const config::t_token & z_yes( generate_safe_static_const_t_interned(n_token::t_token("yes")) );
|
||||
|
||||
const config &cfg_snapshot = cfg_save.child(z_snapshot);
|
||||
const config &cfg_replay_start = cfg_save.child(z_replay_start);
|
||||
|
@ -733,7 +735,7 @@ void game_state::build_team_stage_two(team_builder_ptr tb_ptr)
|
|||
|
||||
void game_state::set_menu_items(const config::const_child_itors &menu_items)
|
||||
{
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
|
||||
clear_wmi(wml_menu_items);
|
||||
foreach (const config &item, menu_items)
|
||||
|
@ -750,22 +752,22 @@ void game_state::set_menu_items(const config::const_child_itors &menu_items)
|
|||
|
||||
void game_state::write_config(config_writer& out, bool write_variables) const
|
||||
{
|
||||
static const config::t_token z_multiplayer("multiplayer", false);
|
||||
static const config::t_token z_random_seed("random_seed", false);
|
||||
static const config::t_token z_random_calls("random_calls", false);
|
||||
static const config::t_token z_variables("variables", false);
|
||||
static const config::t_token z_menu_item("menu_item", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_image("image", false);
|
||||
static const config::t_token z_description("description", false);
|
||||
static const config::t_token z_needs_select("needs_select", false);
|
||||
static const config::t_token z_yes("yes", false);
|
||||
static const config::t_token z_no("no", false);
|
||||
static const config::t_token z_show_if("show_if", false);
|
||||
static const config::t_token z_filter_location("filter_location", false);
|
||||
static const config::t_token z_command("command", false);
|
||||
static const config::t_token z_replay("replay", false);
|
||||
static const config::t_token z_replay_start("replay_start", false);
|
||||
static const config::t_token & z_multiplayer( generate_safe_static_const_t_interned(n_token::t_token("multiplayer")) );
|
||||
static const config::t_token & z_random_seed( generate_safe_static_const_t_interned(n_token::t_token("random_seed")) );
|
||||
static const config::t_token & z_random_calls( generate_safe_static_const_t_interned(n_token::t_token("random_calls")) );
|
||||
static const config::t_token & z_variables( generate_safe_static_const_t_interned(n_token::t_token("variables")) );
|
||||
static const config::t_token & z_menu_item( generate_safe_static_const_t_interned(n_token::t_token("menu_item")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_image( generate_safe_static_const_t_interned(n_token::t_token("image")) );
|
||||
static const config::t_token & z_description( generate_safe_static_const_t_interned(n_token::t_token("description")) );
|
||||
static const config::t_token & z_needs_select( generate_safe_static_const_t_interned(n_token::t_token("needs_select")) );
|
||||
static const config::t_token & z_yes( generate_safe_static_const_t_interned(n_token::t_token("yes")) );
|
||||
static const config::t_token & z_no( generate_safe_static_const_t_interned(n_token::t_token("no")) );
|
||||
static const config::t_token & z_show_if( generate_safe_static_const_t_interned(n_token::t_token("show_if")) );
|
||||
static const config::t_token & z_filter_location( generate_safe_static_const_t_interned(n_token::t_token("filter_location")) );
|
||||
static const config::t_token & z_command( generate_safe_static_const_t_interned(n_token::t_token("command")) );
|
||||
static const config::t_token & z_replay( generate_safe_static_const_t_interned(n_token::t_token("replay")) );
|
||||
static const config::t_token & z_replay_start( generate_safe_static_const_t_interned(n_token::t_token("replay_start")) );
|
||||
|
||||
out.write(classification_.to_config());
|
||||
if (classification_.campaign_type == z_multiplayer)
|
||||
|
@ -815,12 +817,12 @@ wml_menu_item::wml_menu_item(const std::string& id, const config* cfg) :
|
|||
temp << ' ' << id;
|
||||
}
|
||||
name = config::t_token(temp.str());
|
||||
static const config::t_token z_image("image", false);
|
||||
static const config::t_token z_description("description", false);
|
||||
static const config::t_token z_needs_select("needs_select", false);
|
||||
static const config::t_token z_show_if("show_if", false);
|
||||
static const config::t_token z_filter_location("filter_location", false);
|
||||
static const config::t_token z_command("command", false);
|
||||
static const config::t_token & z_image( generate_safe_static_const_t_interned(n_token::t_token("image")) );
|
||||
static const config::t_token & z_description( generate_safe_static_const_t_interned(n_token::t_token("description")) );
|
||||
static const config::t_token & z_needs_select( generate_safe_static_const_t_interned(n_token::t_token("needs_select")) );
|
||||
static const config::t_token & z_show_if( generate_safe_static_const_t_interned(n_token::t_token("show_if")) );
|
||||
static const config::t_token & z_filter_location( generate_safe_static_const_t_interned(n_token::t_token("filter_location")) );
|
||||
static const config::t_token & z_command( generate_safe_static_const_t_interned(n_token::t_token("command")) );
|
||||
|
||||
if(cfg != NULL) {
|
||||
image = (*cfg)[z_image].str();
|
||||
|
|
|
@ -42,9 +42,6 @@ static lg::log_domain log_lobby("lobby");
|
|||
#define SCOPE_LB log_scope2(log_lobby, __func__)
|
||||
|
||||
|
||||
namespace{
|
||||
static const config::t_token z_diff_track_attribute_("diff_track_attribute_", false);
|
||||
}
|
||||
lobby_info::lobby_info(const config& game_config)
|
||||
: game_config_(game_config)
|
||||
, gamelist_()
|
||||
|
@ -89,6 +86,7 @@ std::string dump_games_map(const lobby_info::game_info_map& games)
|
|||
|
||||
std::string dump_games_config(const config& gamelist)
|
||||
{
|
||||
static const config::t_token & z_diff_track_attribute_( generate_safe_static_const_t_interned(n_token::t_token("diff_track_attribute_")) );
|
||||
std::stringstream ss;
|
||||
foreach (const config& c, gamelist.child_range("game")) {
|
||||
ss << "g" << c["id"] << "(" << c["name"] << ") " << c[z_diff_track_attribute_] << " ";
|
||||
|
@ -118,6 +116,7 @@ void lobby_info::process_gamelist(const config &data)
|
|||
|
||||
bool lobby_info::process_gamelist_diff(const config &data)
|
||||
{
|
||||
static const config::t_token & z_diff_track_attribute_( generate_safe_static_const_t_interned(n_token::t_token("diff_track_attribute_")) );
|
||||
SCOPE_LB;
|
||||
if (!gamelist_initialized_) return false;
|
||||
DBG_LB << "prediff " << dump_games_config(gamelist_.child("gamelist"));
|
||||
|
|
|
@ -182,8 +182,8 @@ std::string menu_handler::get_title_suffix(int side_num)
|
|||
|
||||
void menu_handler::objectives(int side_num)
|
||||
{
|
||||
static const config::t_token z__from_interface("_from_interface", false);
|
||||
static const config::t_token z_show_objectives("show_objectives", false);
|
||||
static const config::t_token & z__from_interface( generate_safe_static_const_t_interned(n_token::t_token("_from_interface")) );
|
||||
static const config::t_token & z_show_objectives( generate_safe_static_const_t_interned(n_token::t_token("show_objectives")) );
|
||||
|
||||
config cfg;
|
||||
cfg["side"] = str_cast(side_num);
|
||||
|
|
|
@ -614,7 +614,7 @@ void mouse_handler::select_hex(const map_location& hex, const bool browse) {
|
|||
if (!browse && !commands_disabled && u->side() == gui().viewing_side()) {
|
||||
sound::play_UI_sound("select-unit.wav");
|
||||
u->set_selecting();
|
||||
static const config::t_token z_select("select", false);
|
||||
static const config::t_token & z_select( generate_safe_static_const_t_interned(n_token::t_token("select")) );
|
||||
game_events::fire(z_select, hex);
|
||||
}
|
||||
|
||||
|
|
|
@ -272,7 +272,7 @@ void play_controller::init(CVideo& video){
|
|||
init_managers();
|
||||
// add era events for MP game
|
||||
if (const config &era_cfg = level_.child("era")) {
|
||||
static const config::t_token z_era_events("era_events", false);
|
||||
static const config::t_token & z_era_events( generate_safe_static_const_t_interned(n_token::t_token("era_events")) );
|
||||
|
||||
game_events::add_events(era_cfg.child_range("event"), z_era_events);
|
||||
}
|
||||
|
@ -509,7 +509,7 @@ void play_controller::fire_prestart(bool execute)
|
|||
// Run initialization scripts, even if loading from a snapshot.
|
||||
resources::state_of_game->set_phase(game_state::PRELOAD);
|
||||
resources::lua_kernel->initialize();
|
||||
static const config::t_token z_preload("preload", false);
|
||||
static const config::t_token & z_preload( generate_safe_static_const_t_interned(n_token::t_token("preload")) );
|
||||
game_events::fire(z_preload);
|
||||
|
||||
// pre-start events must be executed before any GUI operation,
|
||||
|
@ -517,7 +517,7 @@ void play_controller::fire_prestart(bool execute)
|
|||
if (execute){
|
||||
update_locker lock_display(gui_->video());
|
||||
resources::state_of_game->set_phase(game_state::PRESTART);
|
||||
static const config::t_token z_prestart("prestart", false);
|
||||
static const config::t_token & z_prestart( generate_safe_static_const_t_interned(n_token::t_token("prestart")) );
|
||||
game_events::fire(z_prestart);
|
||||
check_end_level();
|
||||
// prestart event may modify start turn with WML, reflect any changes.
|
||||
|
@ -528,7 +528,7 @@ void play_controller::fire_prestart(bool execute)
|
|||
void play_controller::fire_start(bool execute){
|
||||
if(execute) {
|
||||
resources::state_of_game->set_phase(game_state::START);
|
||||
static const config::t_token z_start("start", false);
|
||||
static const config::t_token & z_start( generate_safe_static_const_t_interned(n_token::t_token("start")) );
|
||||
game_events::fire(z_start);
|
||||
check_end_level();
|
||||
// start event may modify start turn with WML, reflect any changes.
|
||||
|
@ -591,13 +591,13 @@ void play_controller::do_init_side(const unsigned int team_index, bool is_replay
|
|||
if (!loading_game_) {
|
||||
if(it_is_a_new_turn_)
|
||||
{
|
||||
static const config::t_token z_new_turn("new turn", false);
|
||||
static const config::t_token & z_new_turn( generate_safe_static_const_t_interned(n_token::t_token("new turn")) );
|
||||
game_events::fire(config::t_token("turn " + turn_num));
|
||||
game_events::fire(z_new_turn);
|
||||
it_is_a_new_turn_ = false;
|
||||
}
|
||||
|
||||
static const config::t_token z_side_turn("side turn", false);
|
||||
static const config::t_token & z_side_turn( generate_safe_static_const_t_interned(n_token::t_token("side turn")) );
|
||||
game_events::fire(z_side_turn);
|
||||
game_events::fire(config::t_token("side " + side_num + " turn"));
|
||||
game_events::fire(config::t_token("side turn " + turn_num));
|
||||
|
@ -636,7 +636,7 @@ void play_controller::do_init_side(const unsigned int team_index, bool is_replay
|
|||
}
|
||||
|
||||
if (!loading_game_) {
|
||||
static const config::t_token z_turn_refresh("turn refresh", false);
|
||||
static const config::t_token & z_turn_refresh( generate_safe_static_const_t_interned(n_token::t_token("turn refresh")) );
|
||||
|
||||
game_events::fire(z_turn_refresh);
|
||||
game_events::fire(config::t_token( "side " + side_num + " turn refresh" ));
|
||||
|
@ -722,7 +722,7 @@ void play_controller::finish_side_turn(){
|
|||
|
||||
const std::string turn_num = str_cast(turn());
|
||||
const std::string side_num = str_cast(player_number_);
|
||||
static const config::t_token z_side_turn_end("side turn end", false);
|
||||
static const config::t_token & z_side_turn_end( generate_safe_static_const_t_interned(n_token::t_token("side turn end")) );
|
||||
game_events::fire(z_side_turn_end);
|
||||
game_events::fire(config::t_token( "side "+ side_num + " turn end"));
|
||||
game_events::fire(config::t_token( "side turn " + turn_num + " end"));
|
||||
|
@ -744,7 +744,7 @@ void play_controller::finish_turn()
|
|||
{
|
||||
const std::string turn_num = str_cast(turn());
|
||||
const std::string side_num = str_cast(player_number_);
|
||||
static const config::t_token z_turn_end("turn end", false);
|
||||
static const config::t_token & z_turn_end( generate_safe_static_const_t_interned(n_token::t_token("turn end")) );
|
||||
game_events::fire(z_turn_end);
|
||||
game_events::fire(config::t_token( "turn " + turn_num + " end"));
|
||||
}
|
||||
|
@ -1324,7 +1324,7 @@ void play_controller::check_victory()
|
|||
}
|
||||
|
||||
if (found_player) {
|
||||
static const config::t_token z_enemies_defeated("enemies defeated", false);
|
||||
static const config::t_token & z_enemies_defeated( generate_safe_static_const_t_interned(n_token::t_token("enemies defeated")) );
|
||||
game_events::fire(z_enemies_defeated);
|
||||
check_end_level();
|
||||
}
|
||||
|
|
|
@ -52,14 +52,6 @@ static lg::log_domain log_engine("engine");
|
|||
#define ERR_NG LOG_STREAM(err, log_engine)
|
||||
#define LOG_NG LOG_STREAM(info, log_engine)
|
||||
|
||||
namespace{
|
||||
//Static tokens are replacements for string literals in code
|
||||
//They allow for fast comparison, copying and hashing operations.
|
||||
static const config::t_token z_defeat("defeat", false);
|
||||
static const config::t_token z_victory("victory", false);
|
||||
static const config::t_token z_time_over("time over", false);
|
||||
}
|
||||
|
||||
playsingle_controller::playsingle_controller(const config& level,
|
||||
game_state& state_of_game, const int ticks, const int num_turns,
|
||||
const config& game_config, CVideo& video, bool skip_replay) :
|
||||
|
@ -463,6 +455,9 @@ LEVEL_RESULT playsingle_controller::play_scenario(
|
|||
}
|
||||
}
|
||||
|
||||
static const config::t_token & z_defeat( generate_safe_static_const_t_interned(n_token::t_token("defeat")) );
|
||||
static const config::t_token & z_victory( generate_safe_static_const_t_interned(n_token::t_token("victory")) );
|
||||
|
||||
if (end_level_result == QUIT) {
|
||||
return QUIT;
|
||||
}
|
||||
|
@ -871,6 +866,7 @@ void playsingle_controller::handle_generic_event(const std::string& name){
|
|||
}
|
||||
|
||||
void playsingle_controller::check_time_over(){
|
||||
static const config::t_token & z_time_over( generate_safe_static_const_t_interned(n_token::t_token("time over")) );
|
||||
bool b = tod_manager_.next_turn();
|
||||
it_is_a_new_turn_ = true;
|
||||
if(!b) {
|
||||
|
|
69
src/race.cpp
69
src/race.cpp
|
@ -27,24 +27,15 @@
|
|||
#include "simple_rng.hpp"
|
||||
|
||||
namespace {
|
||||
//Static tokens are replacements for string literals in code
|
||||
//They allow for fast comparison, copying and hashing operations.
|
||||
static const config::t_token z_trait("trait", false);
|
||||
static const config::t_token z_topic("topic", false);
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_plural_name("plural_name", false);
|
||||
static const config::t_token z_description("description", false);
|
||||
static const config::t_token z_num_traits("num_traits", false);
|
||||
static const config::t_token z_markov_chain_size("markov_chain_size", false);
|
||||
static const config::t_token z_ignore_global_traits("ignore_global_traits", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_male_name("male_name", false);
|
||||
static const config::t_token z_female_name("female_name", false);
|
||||
static const config::t_token z_male_names("male_names", false);
|
||||
static const config::t_token z_female_names("female_names", false);
|
||||
static const config::t_token z_female("female", false);
|
||||
static const config::t_token z_male("male", false);
|
||||
DEFAULT_TOKEN_BODY(zf_trait, "trait");
|
||||
DEFAULT_TOKEN_BODY(zf_topic, "topic");
|
||||
DEFAULT_TOKEN_BODY(z_empty, "");
|
||||
DEFAULT_TOKEN_BODY(zf_id, "id");
|
||||
DEFAULT_TOKEN_BODY(zf_plural_name, "plural_name");
|
||||
DEFAULT_TOKEN_BODY(zf_description, "description");
|
||||
DEFAULT_TOKEN_BODY(zf_num_traits, "num_traits");
|
||||
DEFAULT_TOKEN_BODY(zf_markov_chain_size, "markov_chain_size");
|
||||
DEFAULT_TOKEN_BODY(zf_ignore_global_traits, "ignore_global_traits");
|
||||
|
||||
}
|
||||
|
||||
|
@ -166,26 +157,35 @@ unit_race::unit_race() :
|
|||
description_(),
|
||||
ntraits_(0),
|
||||
chain_size_(0),
|
||||
traits_(empty_traits().child_range(z_trait)),
|
||||
topics_(empty_topics().child_range(z_topic)),
|
||||
traits_(empty_traits().child_range(zf_trait())),
|
||||
topics_(empty_topics().child_range(zf_topic())),
|
||||
global_traits_(true)
|
||||
{
|
||||
name_[MALE] = z_empty;
|
||||
name_[FEMALE] = z_empty;
|
||||
static const n_token::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("empty")) );
|
||||
|
||||
name_[MALE] = z_empty;
|
||||
name_[FEMALE] = z_empty;
|
||||
}
|
||||
|
||||
unit_race::unit_race(const config& cfg) :
|
||||
cfg_(cfg),
|
||||
id_(cfg[z_id].token()),
|
||||
plural_name_(cfg[z_plural_name].t_str()),
|
||||
description_(cfg[z_description].t_str()),
|
||||
ntraits_(cfg[z_num_traits]),
|
||||
chain_size_(cfg[z_markov_chain_size]),
|
||||
traits_(cfg.child_range(z_trait)),
|
||||
topics_(cfg.child_range(z_topic)),
|
||||
global_traits_(!cfg[z_ignore_global_traits].to_bool())
|
||||
id_(cfg[zf_id()].token()),
|
||||
plural_name_(cfg[zf_plural_name()].t_str()),
|
||||
description_(cfg[zf_description()].t_str()),
|
||||
ntraits_(cfg[zf_num_traits()]),
|
||||
chain_size_(cfg[zf_markov_chain_size()]),
|
||||
traits_(cfg.child_range(zf_trait())),
|
||||
topics_(cfg.child_range(zf_topic())),
|
||||
global_traits_(!cfg[zf_ignore_global_traits()].to_bool())
|
||||
|
||||
{
|
||||
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_male_name( generate_safe_static_const_t_interned(n_token::t_token("male_name")) );
|
||||
static const config::t_token & z_female_name( generate_safe_static_const_t_interned(n_token::t_token("female_name")) );
|
||||
static const config::t_token & z_male_names( generate_safe_static_const_t_interned(n_token::t_token("male_names")) );
|
||||
static const config::t_token & z_female_names( generate_safe_static_const_t_interned(n_token::t_token("female_names")) );
|
||||
|
||||
config::attribute_value const & a_name= cfg[z_name];
|
||||
config::attribute_value const & a_male_name= cfg[z_male_name];
|
||||
config::attribute_value const & a_female_name= cfg[z_female_name];
|
||||
|
@ -239,14 +239,15 @@ const config::const_child_itors &unit_race::additional_topics() const
|
|||
unsigned int unit_race::num_traits() const { return ntraits_; }
|
||||
|
||||
config::t_token const& gender_string(unit_race::GENDER gender) {
|
||||
static const config::t_token female_string(z_female);
|
||||
static const config::t_token male_string(z_male);
|
||||
static const config::t_token & z_female_string( generate_safe_static_const_t_interned(n_token::t_token("female")) );
|
||||
static const config::t_token & z_male_string( generate_safe_static_const_t_interned(n_token::t_token("male")) );
|
||||
|
||||
switch(gender) {
|
||||
case unit_race::FEMALE:
|
||||
return female_string;
|
||||
return z_female_string;
|
||||
default:
|
||||
case unit_race::MALE:
|
||||
return male_string;
|
||||
return z_male_string;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -55,12 +55,6 @@ static lg::log_domain log_random("random");
|
|||
#define ERR_RND LOG_STREAM(err, log_random)
|
||||
|
||||
|
||||
namespace{
|
||||
//Static tokens are replacements for string literals in code
|
||||
//They allow for fast comparison, copying and hashing operations.
|
||||
static const config::t_token z_sighted("sighted", false);
|
||||
}
|
||||
|
||||
|
||||
//functions to verify that the unit structure on both machines is identical
|
||||
|
||||
|
@ -756,12 +750,13 @@ bool do_replay(int side_num, replay *obj)
|
|||
|
||||
bool do_replay_handle(int side_num, const std::string &do_untill)
|
||||
{
|
||||
static const config::t_token & z_sighted( generate_safe_static_const_t_interned(n_token::t_token("sighted")) );
|
||||
|
||||
//a list of units that have promoted from the last attack
|
||||
std::deque<map_location> advancing_units;
|
||||
|
||||
team ¤t_team = (*resources::teams)[side_num - 1];
|
||||
|
||||
|
||||
for(;;) {
|
||||
const config *cfg = get_replay_source().get_next_action();
|
||||
|
||||
|
|
|
@ -34,13 +34,6 @@
|
|||
#include <cassert>
|
||||
#include <ctime>
|
||||
|
||||
namespace {
|
||||
//Static tokens are replacements for string literals in code
|
||||
//They allow for fast comparison operations.
|
||||
static const config::t_token z_swarm("swarm", false);
|
||||
static const config::t_token z_swarm_attacks_min("swarm_attacks_min", false);
|
||||
static const config::t_token z_swarm_attacks_max("swarm_attacks_max", false);
|
||||
}
|
||||
|
||||
static void add_text(config &report, const std::string &text,
|
||||
const std::string &tooltip, const std::string &help = "")
|
||||
|
@ -421,6 +414,10 @@ REPORT_GENERATOR(unit_weapons)
|
|||
map_location displayed_unit_hex = resources::screen->displayed_unit_hex();
|
||||
config res;
|
||||
|
||||
static const config::t_token & z_swarm( generate_safe_static_const_t_interned(n_token::t_token("swarm")) );
|
||||
static const config::t_token & z_swarm_attacks_min( generate_safe_static_const_t_interned(n_token::t_token("swarm_attacks_min")) );
|
||||
static const config::t_token & z_swarm_attacks_max( generate_safe_static_const_t_interned(n_token::t_token("swarm_attacks_max")) );
|
||||
|
||||
foreach (const attack_type &at, u->attacks())
|
||||
{
|
||||
at.set_specials_context(displayed_unit_hex, map_location(), *u);
|
||||
|
|
|
@ -127,12 +127,6 @@ static lg::log_domain log_engine("engine");
|
|||
#endif /* _WIN32 */
|
||||
|
||||
|
||||
|
||||
namespace {
|
||||
//Static tokens are replacements for string literals in code
|
||||
//They allow for fast comparison, copying and hashing operations.
|
||||
static const config::t_token z_save("save", false);
|
||||
}
|
||||
namespace savegame {
|
||||
|
||||
const std::string save_info::format_time_local() const{
|
||||
|
@ -376,6 +370,8 @@ config& save_index::save_summary(std::string save)
|
|||
* a file. If not some parts of the code use the name with and some parts
|
||||
* without the .gz suffix.
|
||||
*/
|
||||
static const config::t_token & z_save( generate_safe_static_const_t_interned(n_token::t_token("save")) );
|
||||
|
||||
if(save.length() < 3 || save.substr(save.length() - 3) != ".gz") {
|
||||
save += ".gz";
|
||||
}
|
||||
|
@ -390,6 +386,7 @@ config& save_index::save_summary(std::string save)
|
|||
}
|
||||
|
||||
config::t_child_range_index const save_index::indexed_summaries(){
|
||||
static const config::t_token & z_save( generate_safe_static_const_t_interned(n_token::t_token("save")) );
|
||||
return load().child_range_index(z_save, z_save);
|
||||
}
|
||||
|
||||
|
|
|
@ -100,8 +100,8 @@ parser::~parser() {
|
|||
}
|
||||
|
||||
void parser::operator()() {
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token z_tag("tag", false);
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
static const config::t_token & z_tag( generate_safe_static_const_t_interned(n_token::t_token("tag")) );
|
||||
|
||||
cfg_.clear();
|
||||
elements_.push(element(&cfg_, z_empty));
|
||||
|
@ -193,8 +193,8 @@ void parser::parse_element() {
|
|||
if(elements_.size() <= 1)
|
||||
error(_("Unexpected closing tag"));
|
||||
if(elname != elements_.top().name) {
|
||||
static const config::t_token z_tag1("tag1", false);
|
||||
static const config::t_token z_tag2("tag2", false);
|
||||
static const config::t_token & z_tag1( generate_safe_static_const_t_interned(n_token::t_token("tag1")) );
|
||||
static const config::t_token & z_tag2( generate_safe_static_const_t_interned(n_token::t_token("tag2")) );
|
||||
utils::token_map i18n_symbols;
|
||||
i18n_symbols[z_tag1] = elements_.top().name;
|
||||
i18n_symbols[z_tag2] = elname;
|
||||
|
@ -217,7 +217,7 @@ void parser::parse_element() {
|
|||
|
||||
void parser::parse_variable()
|
||||
{
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
|
||||
assert(!elements_.empty());
|
||||
assert(elements_.top().cfg);
|
||||
|
@ -334,7 +334,7 @@ void parser::parse_variable()
|
|||
*/
|
||||
std::string parser::lineno_string(utils::token_map &i18n_symbols,
|
||||
std::string const &lineno, const char *error_string) {
|
||||
static const config::t_token z_pos("pos", false);
|
||||
static const config::t_token & z_pos( generate_safe_static_const_t_interned(n_token::t_token("pos")) );
|
||||
|
||||
i18n_symbols[z_pos] = ::lineno_string(lineno);
|
||||
std::string result = _(error_string);
|
||||
|
@ -345,9 +345,9 @@ std::string parser::lineno_string(utils::token_map &i18n_symbols,
|
|||
|
||||
void parser::error(const std::string& error_type)
|
||||
{
|
||||
static const config::t_token z_error("error", false);
|
||||
static const config::t_token z_value("value", false);
|
||||
static const config::t_token z_previous_value("previous_value", false);
|
||||
static const config::t_token & z_error( generate_safe_static_const_t_interned(n_token::t_token("error")) );
|
||||
static const config::t_token & z_value( generate_safe_static_const_t_interned(n_token::t_token("value")) );
|
||||
static const config::t_token & z_previous_value( generate_safe_static_const_t_interned(n_token::t_token("previous_value")) );
|
||||
utils::token_map i18n_symbols;
|
||||
i18n_symbols[z_error] = error_type;
|
||||
i18n_symbols[z_value] = tok_->current_token().value();
|
||||
|
|
|
@ -63,14 +63,14 @@ tokenizer::~tokenizer()
|
|||
|
||||
const token &tokenizer::next_token()
|
||||
{
|
||||
static const n_token::t_token z_LBRACKET("[", false);
|
||||
static const n_token::t_token z_RBRACKET("]", false);
|
||||
static const n_token::t_token z_SLASH("/", false);
|
||||
static const n_token::t_token z_LF("\n", false);
|
||||
static const n_token::t_token z_EQUALS("=", false);
|
||||
static const n_token::t_token z_COMMA(",", false);
|
||||
static const n_token::t_token z_PLUS("+", false);
|
||||
static const n_token::t_token z_UNDERSCORE("_", false);
|
||||
static const n_token::t_token & z_LBRACKET( generate_safe_static_const_t_interned(n_token::t_token("[")) );
|
||||
static const n_token::t_token & z_RBRACKET( generate_safe_static_const_t_interned(n_token::t_token("]")) );
|
||||
static const n_token::t_token & z_SLASH( generate_safe_static_const_t_interned(n_token::t_token("/")) );
|
||||
static const n_token::t_token & z_LF( generate_safe_static_const_t_interned(n_token::t_token("\n")) );
|
||||
static const n_token::t_token & z_EQUALS( generate_safe_static_const_t_interned(n_token::t_token("=")) );
|
||||
static const n_token::t_token & z_COMMA( generate_safe_static_const_t_interned(n_token::t_token(",")) );
|
||||
static const n_token::t_token & z_PLUS( generate_safe_static_const_t_interned(n_token::t_token("+")) );
|
||||
static const n_token::t_token & z_UNDERSCORE( generate_safe_static_const_t_interned(n_token::t_token("_")) );
|
||||
|
||||
|
||||
#if DEBUG
|
||||
|
|
|
@ -71,7 +71,7 @@ struct token {
|
|||
std::vector<char> buffer_;
|
||||
|
||||
n_token::t_token const & value() const {
|
||||
static const n_token::t_token z_empty("", false);
|
||||
static const n_token::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
if(!is_parsed_){
|
||||
if(!buffer_.empty()){
|
||||
value_.assign(buffer_.begin(), buffer_.end());
|
||||
|
|
|
@ -39,12 +39,6 @@ static lg::log_domain log_engine_enemies("engine/enemies");
|
|||
#define WRN_NGE LOG_STREAM(warn, log_engine_enemies)
|
||||
|
||||
|
||||
namespace{
|
||||
//Static tokens are replacements for string literals in code
|
||||
//They allow for fast comparison, copying and hashing operations.
|
||||
static const config::t_token z_capture("capture", false);
|
||||
}
|
||||
|
||||
static std::vector<team> *&teams = resources::teams;
|
||||
|
||||
//static member initialization
|
||||
|
@ -360,6 +354,7 @@ void team::write(config& cfg) const
|
|||
|
||||
bool team::get_village(const map_location& loc)
|
||||
{
|
||||
static const config::t_token & z_capture( generate_safe_static_const_t_interned(n_token::t_token("capture")) );
|
||||
villages_.insert(loc);
|
||||
return game_events::fire(z_capture,loc);
|
||||
}
|
||||
|
|
|
@ -129,17 +129,17 @@ void team_builder::log_step(const char *s) const
|
|||
void team_builder::init()
|
||||
{
|
||||
|
||||
static const config::t_token z_side("side", false);
|
||||
static const config::t_token z_controller("controller", false);
|
||||
static const config::t_token z_human("human", false);
|
||||
static const config::t_token z_network("network", false);
|
||||
static const config::t_token z_network_ai("network_ai", false);
|
||||
static const config::t_token z_human_ai("human_ai", false);
|
||||
static const config::t_token z_persistent("persistent", false);
|
||||
static const config::t_token z_player("player", false);
|
||||
static const config::t_token z_save_id("save_id", false);
|
||||
static const config::t_token z_true("true", false);
|
||||
static const config::t_token z_false("false", false);
|
||||
static const config::t_token & z_side( generate_safe_static_const_t_interned(n_token::t_token("side")) );
|
||||
static const config::t_token & z_controller( generate_safe_static_const_t_interned(n_token::t_token("controller")) );
|
||||
static const config::t_token & z_human( generate_safe_static_const_t_interned(n_token::t_token("human")) );
|
||||
static const config::t_token & z_network( generate_safe_static_const_t_interned(n_token::t_token("network")) );
|
||||
static const config::t_token & z_network_ai( generate_safe_static_const_t_interned(n_token::t_token("network_ai")) );
|
||||
static const config::t_token & z_human_ai( generate_safe_static_const_t_interned(n_token::t_token("human_ai")) );
|
||||
static const config::t_token & z_persistent( generate_safe_static_const_t_interned(n_token::t_token("persistent")) );
|
||||
static const config::t_token & z_player( generate_safe_static_const_t_interned(n_token::t_token("player")) );
|
||||
static const config::t_token & z_save_id( generate_safe_static_const_t_interned(n_token::t_token("save_id")) );
|
||||
static const config::t_token & z_true( generate_safe_static_const_t_interned(n_token::t_token("true")) );
|
||||
static const config::t_token & z_false( generate_safe_static_const_t_interned(n_token::t_token("false")) );
|
||||
|
||||
side_ = side_cfg_[z_side].to_int(1);
|
||||
if (unsigned(side_ - 1) >= teams_.size() || teams_[side_ - 1].side() != 0)
|
||||
|
@ -202,10 +202,9 @@ bool team_builder::use_player_cfg() const
|
|||
|
||||
void team_builder::gold()
|
||||
{
|
||||
static const config::t_token z_gold("gold", false);
|
||||
static const config::t_token z_gold_add("gold_add", false);
|
||||
static const config::t_token z_100("100", false);
|
||||
static const config::t_token z_default_gold_qty(z_100, false);
|
||||
static const config::t_token & z_gold( generate_safe_static_const_t_interned(n_token::t_token("gold")) );
|
||||
static const config::t_token & z_gold_add( generate_safe_static_const_t_interned(n_token::t_token("gold_add")) );
|
||||
static const config::t_token & z_default_gold_qty( generate_safe_static_const_t_interned(n_token::t_token("100")) );
|
||||
|
||||
log_step("gold");
|
||||
|
||||
|
@ -260,7 +259,7 @@ void team_builder::new_team()
|
|||
|
||||
void team_builder::objectives()
|
||||
{
|
||||
static const config::t_token z_objectives("objectives", false);
|
||||
static const config::t_token & z_objectives( generate_safe_static_const_t_interned(n_token::t_token("objectives")) );
|
||||
|
||||
log_step("objectives");
|
||||
// If this team has no objectives, set its objectives
|
||||
|
@ -272,7 +271,7 @@ void team_builder::objectives()
|
|||
|
||||
void team_builder::previous_recruits()
|
||||
{
|
||||
static const config::t_token z_previous_recruits("previous_recruits", false);
|
||||
static const config::t_token & z_previous_recruits( generate_safe_static_const_t_interned(n_token::t_token("previous_recruits")) );
|
||||
|
||||
log_step("previous recruits");
|
||||
// If the game state specifies units that
|
||||
|
@ -291,12 +290,12 @@ void team_builder::previous_recruits()
|
|||
|
||||
void team_builder::handle_unit(const config &u, const char *origin)
|
||||
{
|
||||
static const config::t_token z_type("type", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_placement("placement", false);
|
||||
static const config::t_token z_x("x", false);
|
||||
static const config::t_token z_y("y", false);
|
||||
static const config::t_token z_side("side", false);
|
||||
static const config::t_token & z_type( generate_safe_static_const_t_interned(n_token::t_token("type")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_placement( generate_safe_static_const_t_interned(n_token::t_token("placement")) );
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
static const config::t_token & z_side( generate_safe_static_const_t_interned(n_token::t_token("side")) );
|
||||
|
||||
DBG_NG_TC
|
||||
<< "unit from "<<origin
|
||||
|
@ -327,8 +326,8 @@ void team_builder::handle_unit(const config &u, const char *origin)
|
|||
|
||||
void team_builder::handle_leader(const config &leader)
|
||||
{
|
||||
static const config::t_token z_canrecruit("canrecruit", false);
|
||||
static const config::t_token z_placement("placement", false);
|
||||
static const config::t_token & z_canrecruit( generate_safe_static_const_t_interned(n_token::t_token("canrecruit")) );
|
||||
static const config::t_token & z_placement( generate_safe_static_const_t_interned(n_token::t_token("placement")) );
|
||||
|
||||
leader_configs_.push_back(leader);
|
||||
|
||||
|
@ -342,10 +341,10 @@ void team_builder::handle_leader(const config &leader)
|
|||
|
||||
void team_builder::leader()
|
||||
{
|
||||
static const config::t_token z_no_leader("no_leader", false);
|
||||
static const config::t_token z_controller("controller", false);
|
||||
static const config::t_token z_null("null", false);
|
||||
static const config::t_token z_leader("leader", false);
|
||||
static const config::t_token & z_no_leader( generate_safe_static_const_t_interned(n_token::t_token("no_leader")) );
|
||||
static const config::t_token & z_controller( generate_safe_static_const_t_interned(n_token::t_token("controller")) );
|
||||
static const config::t_token & z_null( generate_safe_static_const_t_interned(n_token::t_token("null")) );
|
||||
static const config::t_token & z_leader( generate_safe_static_const_t_interned(n_token::t_token("leader")) );
|
||||
|
||||
log_step("leader");
|
||||
// If this side tag describes the leader of the side, we can simply add it to front of unit queue
|
||||
|
@ -365,7 +364,7 @@ void team_builder::leader()
|
|||
|
||||
void team_builder::prepare_units()
|
||||
{
|
||||
static const config::t_token z_unit("unit", false);
|
||||
static const config::t_token & z_unit( generate_safe_static_const_t_interned(n_token::t_token("unit")) );
|
||||
|
||||
log_step("prepare units");
|
||||
if (use_player_cfg()) {
|
||||
|
@ -388,50 +387,50 @@ void team_builder::prepare_units()
|
|||
|
||||
void team_builder::place_units()
|
||||
{
|
||||
static const config::t_token z_income("income", false);
|
||||
static const config::t_token z_team_name("team_name", false);
|
||||
static const config::t_token z_user_team_name("user_team_name", false);
|
||||
static const config::t_token z_save_id("save_id", false);
|
||||
static const config::t_token z_current_player("current_player", false);
|
||||
static const config::t_token z_countdown_time("countdown_time", false);
|
||||
static const config::t_token z_action_bonus_count("action_bonus_count", false);
|
||||
static const config::t_token z_flag("flag", false);
|
||||
static const config::t_token z_flag_icon("flag_icon", false);
|
||||
static const config::t_token z_objectives("objectives", false);
|
||||
static const config::t_token z_objectives_changed("objectives_changed", false);
|
||||
static const config::t_token z_disallow_observers("disallow_observers", false);
|
||||
static const config::t_token z_allow_player("allow_player", false);
|
||||
static const config::t_token z_no_leader("no_leader", false);
|
||||
static const config::t_token z_hidden("hidden", false);
|
||||
static const config::t_token z_music("music", false);
|
||||
static const config::t_token z_color("color", false);
|
||||
static const config::t_token z_colour("colour", false);
|
||||
static const config::t_token z_ai_config("ai_config", false);
|
||||
static const config::t_token z_gold("gold", false);
|
||||
static const config::t_token z_start_gold("start_gold", false);
|
||||
static const config::t_token z_team_rgb("team_rgb", false);
|
||||
static const config::t_token z_village_gold("village_gold", false);
|
||||
static const config::t_token z_recall_cost("recall_cost", false);
|
||||
static const config::t_token z_controller("controller", false);
|
||||
static const config::t_token z_persistent("persistent", false);
|
||||
static const config::t_token z_share_view("share_view", false);
|
||||
static const config::t_token z_share_maps("share_maps", false);
|
||||
static const config::t_token z_recruit("recruit", false);
|
||||
static const config::t_token z_fog("fog", false);
|
||||
static const config::t_token z_shroud("shroud", false);
|
||||
static const config::t_token z_shroud_data("shroud_data", false);
|
||||
static const config::t_token z_scroll_to_leader("scroll_to_leader", false);
|
||||
static const config::t_token z_income_lock("income_lock", false);
|
||||
static const config::t_token z_gold_lock("gold_lock", false);
|
||||
static const config::t_token z_color_lock("color_lock", false);
|
||||
static const config::t_token z_team_lock("team_lock", false);
|
||||
static const config::t_token z_leader("leader", false);
|
||||
static const config::t_token z_random_leader("random_leader", false);
|
||||
static const config::t_token z_terrain_liked("terrain_liked", false);
|
||||
static const config::t_token z_allow_changes("allow_changes", false);
|
||||
static const config::t_token z_faction_name("faction_name", false);
|
||||
static const config::t_token z_user_description("user_description", false);
|
||||
static const config::t_token z_faction("faction", false);
|
||||
static const config::t_token & z_income( generate_safe_static_const_t_interned(n_token::t_token("income")) );
|
||||
static const config::t_token & z_team_name( generate_safe_static_const_t_interned(n_token::t_token("team_name")) );
|
||||
static const config::t_token & z_user_team_name( generate_safe_static_const_t_interned(n_token::t_token("user_team_name")) );
|
||||
static const config::t_token & z_save_id( generate_safe_static_const_t_interned(n_token::t_token("save_id")) );
|
||||
static const config::t_token & z_current_player( generate_safe_static_const_t_interned(n_token::t_token("current_player")) );
|
||||
static const config::t_token & z_countdown_time( generate_safe_static_const_t_interned(n_token::t_token("countdown_time")) );
|
||||
static const config::t_token & z_action_bonus_count( generate_safe_static_const_t_interned(n_token::t_token("action_bonus_count")) );
|
||||
static const config::t_token & z_flag( generate_safe_static_const_t_interned(n_token::t_token("flag")) );
|
||||
static const config::t_token & z_flag_icon( generate_safe_static_const_t_interned(n_token::t_token("flag_icon")) );
|
||||
static const config::t_token & z_objectives( generate_safe_static_const_t_interned(n_token::t_token("objectives")) );
|
||||
static const config::t_token & z_objectives_changed( generate_safe_static_const_t_interned(n_token::t_token("objectives_changed")) );
|
||||
static const config::t_token & z_disallow_observers( generate_safe_static_const_t_interned(n_token::t_token("disallow_observers")) );
|
||||
static const config::t_token & z_allow_player( generate_safe_static_const_t_interned(n_token::t_token("allow_player")) );
|
||||
static const config::t_token & z_no_leader( generate_safe_static_const_t_interned(n_token::t_token("no_leader")) );
|
||||
static const config::t_token & z_hidden( generate_safe_static_const_t_interned(n_token::t_token("hidden")) );
|
||||
static const config::t_token & z_music( generate_safe_static_const_t_interned(n_token::t_token("music")) );
|
||||
static const config::t_token & z_color( generate_safe_static_const_t_interned(n_token::t_token("color")) );
|
||||
static const config::t_token & z_colour( generate_safe_static_const_t_interned(n_token::t_token("colour")) );
|
||||
static const config::t_token & z_ai_config( generate_safe_static_const_t_interned(n_token::t_token("ai_config")) );
|
||||
static const config::t_token & z_gold( generate_safe_static_const_t_interned(n_token::t_token("gold")) );
|
||||
static const config::t_token & z_start_gold( generate_safe_static_const_t_interned(n_token::t_token("start_gold")) );
|
||||
static const config::t_token & z_team_rgb( generate_safe_static_const_t_interned(n_token::t_token("team_rgb")) );
|
||||
static const config::t_token & z_village_gold( generate_safe_static_const_t_interned(n_token::t_token("village_gold")) );
|
||||
static const config::t_token & z_recall_cost( generate_safe_static_const_t_interned(n_token::t_token("recall_cost")) );
|
||||
static const config::t_token & z_controller( generate_safe_static_const_t_interned(n_token::t_token("controller")) );
|
||||
static const config::t_token & z_persistent( generate_safe_static_const_t_interned(n_token::t_token("persistent")) );
|
||||
static const config::t_token & z_share_view( generate_safe_static_const_t_interned(n_token::t_token("share_view")) );
|
||||
static const config::t_token & z_share_maps( generate_safe_static_const_t_interned(n_token::t_token("share_maps")) );
|
||||
static const config::t_token & z_recruit( generate_safe_static_const_t_interned(n_token::t_token("recruit")) );
|
||||
static const config::t_token & z_fog( generate_safe_static_const_t_interned(n_token::t_token("fog")) );
|
||||
static const config::t_token & z_shroud( generate_safe_static_const_t_interned(n_token::t_token("shroud")) );
|
||||
static const config::t_token & z_shroud_data( generate_safe_static_const_t_interned(n_token::t_token("shroud_data")) );
|
||||
static const config::t_token & z_scroll_to_leader( generate_safe_static_const_t_interned(n_token::t_token("scroll_to_leader")) );
|
||||
static const config::t_token & z_income_lock( generate_safe_static_const_t_interned(n_token::t_token("income_lock")) );
|
||||
static const config::t_token & z_gold_lock( generate_safe_static_const_t_interned(n_token::t_token("gold_lock")) );
|
||||
static const config::t_token & z_color_lock( generate_safe_static_const_t_interned(n_token::t_token("color_lock")) );
|
||||
static const config::t_token & z_team_lock( generate_safe_static_const_t_interned(n_token::t_token("team_lock")) );
|
||||
static const config::t_token & z_leader( generate_safe_static_const_t_interned(n_token::t_token("leader")) );
|
||||
static const config::t_token & z_random_leader( generate_safe_static_const_t_interned(n_token::t_token("random_leader")) );
|
||||
static const config::t_token & z_terrain_liked( generate_safe_static_const_t_interned(n_token::t_token("terrain_liked")) );
|
||||
static const config::t_token & z_allow_changes( generate_safe_static_const_t_interned(n_token::t_token("allow_changes")) );
|
||||
static const config::t_token & z_faction_name( generate_safe_static_const_t_interned(n_token::t_token("faction_name")) );
|
||||
static const config::t_token & z_user_description( generate_safe_static_const_t_interned(n_token::t_token("user_description")) );
|
||||
static const config::t_token & z_faction( generate_safe_static_const_t_interned(n_token::t_token("faction")) );
|
||||
|
||||
static n_token::t_token const side_attrs[] = {
|
||||
z_income, z_team_name, z_user_team_name, z_save_id,
|
||||
|
|
|
@ -30,33 +30,6 @@
|
|||
static lg::log_domain log_engine("engine");
|
||||
#define ERR_NG LOG_STREAM(err, log_engine)
|
||||
|
||||
namespace {
|
||||
//Constant literal tokens
|
||||
static const config::t_token z_x("x", false);
|
||||
static const config::t_token z_y("y", false);
|
||||
static const config::t_token z_or("or", false);
|
||||
static const config::t_token z_and("and", false);
|
||||
static const config::t_token z_not("not", false);
|
||||
static const config::t_token z_terrain("terrain", false);
|
||||
static const config::t_token z_filter("filter", false);
|
||||
static const config::t_token z_filter_adjacent_location("filter_adjacent_location", false);
|
||||
static const config::t_token z_adjacent("adjacent", false);
|
||||
static const config::t_token z_count("count", false);
|
||||
static const config::t_token z_time_of_day("time_of_day", false);
|
||||
static const config::t_token z_time_of_day_id("time_of_day_id", false);
|
||||
static const config::t_token z_chaotic("chaotic", false);
|
||||
static const config::t_token z_lawful("lawful", false);
|
||||
static const config::t_token z_neutral("neutral", false);
|
||||
static const config::t_token z_liminal("liminal", false);
|
||||
static const config::t_token z_owner_side("owner_side", false);
|
||||
static const config::t_token z_recall("recall", false);
|
||||
static const config::t_token z_radius("radius", false);
|
||||
static const config::t_token z_filter_radius("filter_radius", false);
|
||||
static const config::t_token z_find_in("find_in", false);
|
||||
//static const config::t_token z_("", false);
|
||||
|
||||
|
||||
}
|
||||
terrain_filter::~terrain_filter()
|
||||
{
|
||||
}
|
||||
|
@ -122,6 +95,7 @@ terrain_filter& terrain_filter::operator=(const terrain_filter& other)
|
|||
namespace {
|
||||
struct cfg_isor {
|
||||
bool operator() (std::pair<const config::t_token, const vconfig> val) {
|
||||
static const n_token::t_token & z_or( generate_safe_static_const_t_interned(n_token::t_token("or")) );
|
||||
return val.first == z_or;
|
||||
}
|
||||
};
|
||||
|
@ -129,6 +103,22 @@ namespace {
|
|||
|
||||
bool terrain_filter::match_internal(const map_location& loc, const bool ignore_xy,gamemap const & game_map, t_teams const & teams, tod_manager const & tod_manager) const
|
||||
{
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
static const config::t_token & z_terrain( generate_safe_static_const_t_interned(n_token::t_token("terrain")) );
|
||||
static const config::t_token & z_filter( generate_safe_static_const_t_interned(n_token::t_token("filter")) );
|
||||
static const config::t_token & z_filter_adjacent_location( generate_safe_static_const_t_interned(n_token::t_token("filter_adjacent_location")) );
|
||||
static const config::t_token & z_adjacent( generate_safe_static_const_t_interned(n_token::t_token("adjacent")) );
|
||||
static const config::t_token & z_count( generate_safe_static_const_t_interned(n_token::t_token("count")) );
|
||||
static const config::t_token & z_time_of_day( generate_safe_static_const_t_interned(n_token::t_token("time_of_day")) );
|
||||
static const config::t_token & z_time_of_day_id( generate_safe_static_const_t_interned(n_token::t_token("time_of_day_id")) );
|
||||
static const config::t_token & z_chaotic( generate_safe_static_const_t_interned(n_token::t_token("chaotic")) );
|
||||
static const config::t_token & z_lawful( generate_safe_static_const_t_interned(n_token::t_token("lawful")) );
|
||||
static const config::t_token & z_neutral( generate_safe_static_const_t_interned(n_token::t_token("neutral")) );
|
||||
static const config::t_token & z_liminal( generate_safe_static_const_t_interned(n_token::t_token("liminal")) );
|
||||
static const config::t_token & z_owner_side( generate_safe_static_const_t_interned(n_token::t_token("owner_side")) );
|
||||
static const config::t_token & z_find_in( generate_safe_static_const_t_interned(n_token::t_token("find_in")) );
|
||||
|
||||
if(cfg_.has_attribute(z_terrain)) {
|
||||
if(cache_.parsed_terrain == NULL) {
|
||||
cache_.parsed_terrain = new t_translation::t_match(cfg_[z_terrain]);
|
||||
|
@ -284,6 +274,15 @@ bool terrain_filter::match_internal(const map_location& loc, const bool ignore_x
|
|||
|
||||
bool terrain_filter::match(const map_location& loc, gamemap const & game_map, t_teams const & teams, tod_manager const & tod_manager) const
|
||||
{
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
static const config::t_token & z_or( generate_safe_static_const_t_interned(n_token::t_token("or")) );
|
||||
static const config::t_token & z_and( generate_safe_static_const_t_interned(n_token::t_token("and")) );
|
||||
static const config::t_token & z_not( generate_safe_static_const_t_interned(n_token::t_token("not")) );
|
||||
static const config::t_token & z_recall( generate_safe_static_const_t_interned(n_token::t_token("recall")) );
|
||||
static const config::t_token & z_radius( generate_safe_static_const_t_interned(n_token::t_token("radius")) );
|
||||
static const config::t_token & z_filter_radius( generate_safe_static_const_t_interned(n_token::t_token("filter_radius")) );
|
||||
|
||||
if(cfg_[z_x] == z_recall && cfg_[z_y] == z_recall) {
|
||||
return !game_map.on_board(loc);
|
||||
}
|
||||
|
@ -353,6 +352,16 @@ bool terrain_filter::match(const map_location& loc, gamemap const & game_map, t_
|
|||
|
||||
void terrain_filter::get_locations(t_maploc_set& locs, bool with_border, gamemap const & game_map, t_teams const & teams, tod_manager const & tod_manager) const
|
||||
{
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
static const config::t_token & z_or( generate_safe_static_const_t_interned(n_token::t_token("or")) );
|
||||
static const config::t_token & z_and( generate_safe_static_const_t_interned(n_token::t_token("and")) );
|
||||
static const config::t_token & z_not( generate_safe_static_const_t_interned(n_token::t_token("not")) );
|
||||
static const config::t_token & z_filter_adjacent_location( generate_safe_static_const_t_interned(n_token::t_token("filter_adjacent_location")) );
|
||||
static const config::t_token & z_radius( generate_safe_static_const_t_interned(n_token::t_token("radius")) );
|
||||
static const config::t_token & z_filter_radius( generate_safe_static_const_t_interned(n_token::t_token("filter_radius")) );
|
||||
static const config::t_token & z_find_in( generate_safe_static_const_t_interned(n_token::t_token("find_in")) );
|
||||
|
||||
std::vector<map_location> xy_vector =
|
||||
parse_location_range(cfg_[z_x], cfg_[z_y], with_border);
|
||||
t_maploc_set xy_set(xy_vector.begin(), xy_vector.end());
|
||||
|
|
|
@ -35,7 +35,7 @@ static lg::log_domain log_display("display");
|
|||
namespace{
|
||||
//Static tokens are replacements for string literals in code
|
||||
//They allow for fast comparison operations.
|
||||
static const config::t_token z_tile_image("tile_image", false);
|
||||
DEFAULT_TOKEN_BODY( zf_tile_image, "tile_image" );
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
@ -297,7 +297,7 @@ theme::tborder::tborder(const config& cfg) :
|
|||
size(cfg["border_size"].to_double()),
|
||||
|
||||
background_image(cfg["background_image"]),
|
||||
tile_image(cfg[z_tile_image].token()),
|
||||
tile_image(cfg[zf_tile_image()].token()),
|
||||
|
||||
corner_image_top_left(cfg["corner_image_top_left"]),
|
||||
corner_image_bottom_left(cfg["corner_image_bottom_left"]),
|
||||
|
|
|
@ -21,33 +21,32 @@
|
|||
#include "foreach.hpp"
|
||||
#include "time_of_day.hpp"
|
||||
|
||||
namespace{
|
||||
//Static tokens are replacements for string literals in code
|
||||
//They allow for fast comparison, copying and hashing operations.
|
||||
|
||||
static const config::t_token z_lawful_bonus("lawful_bonus", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_time("time", false);
|
||||
static const config::t_token z_image("image", false);
|
||||
static const config::t_token z_mask("mask", false);
|
||||
static const config::t_token z_red("red", false);
|
||||
static const config::t_token z_green("green", false);
|
||||
static const config::t_token z_blue("blue", false);
|
||||
static const config::t_token z_sound("sound", false);
|
||||
static const config::t_token z_NULL_TOD("NULL_TOD", false);
|
||||
static const config::t_token z_nulltod("nulltod", false);
|
||||
namespace {
|
||||
//Create default value functions
|
||||
DEFAULT_TOKEN_BODY(zf_lawful_bonus, "lawful_bonus");
|
||||
DEFAULT_TOKEN_BODY(zf_name, "name");
|
||||
DEFAULT_TOKEN_BODY(zf_id, "id");
|
||||
DEFAULT_TOKEN_BODY(zf_time, "time");
|
||||
DEFAULT_TOKEN_BODY(zf_image, "image");
|
||||
DEFAULT_TOKEN_BODY(zf_mask, "mask");
|
||||
DEFAULT_TOKEN_BODY(zf_red, "red");
|
||||
DEFAULT_TOKEN_BODY(zf_green, "green");
|
||||
DEFAULT_TOKEN_BODY(zf_blue, "blue");
|
||||
DEFAULT_TOKEN_BODY(zf_sound, "sound");
|
||||
DEFAULT_TOKEN_BODY(zf_NULL_TOD, "NULL_TOD");
|
||||
DEFAULT_TOKEN_BODY(zf_nulltod, "nulltod");
|
||||
|
||||
}
|
||||
|
||||
|
||||
time_of_day::time_of_day(const config& cfg):
|
||||
lawful_bonus(cfg[z_lawful_bonus]),
|
||||
lawful_bonus(cfg[zf_lawful_bonus()]),
|
||||
bonus_modified(0),
|
||||
image(cfg[z_image].token()), name(cfg[z_name].t_str()), id(cfg[z_id].token()),
|
||||
image_mask(cfg[z_mask].token()),
|
||||
red(cfg[z_red]), green(cfg[z_green]), blue(cfg[z_blue]),
|
||||
sounds(cfg[z_sound].token())
|
||||
image(cfg[zf_image()].token()), name(cfg[zf_name()].t_str()), id(cfg[zf_id()].token()),
|
||||
image_mask(cfg[zf_mask()].token()),
|
||||
red(cfg[zf_red()]), green(cfg[zf_green()]), blue(cfg[zf_blue()]),
|
||||
sounds(cfg[zf_sound()].token())
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -55,8 +54,8 @@ time_of_day::time_of_day()
|
|||
: lawful_bonus(0)
|
||||
, bonus_modified(0)
|
||||
, image()
|
||||
, name(z_NULL_TOD)
|
||||
, id(z_nulltod)
|
||||
, name(zf_NULL_TOD())
|
||||
, id(zf_nulltod())
|
||||
, image_mask()
|
||||
, red(0)
|
||||
, green(0)
|
||||
|
@ -67,6 +66,16 @@ time_of_day::time_of_day()
|
|||
|
||||
void time_of_day::write(config& cfg) const
|
||||
{
|
||||
|
||||
static const n_token::t_token & z_lawful_bonus( generate_safe_static_const_t_interned(n_token::t_token("lawful_bonus")) );
|
||||
static const n_token::t_token & z_red( generate_safe_static_const_t_interned(n_token::t_token("red")) );
|
||||
static const n_token::t_token & z_green( generate_safe_static_const_t_interned(n_token::t_token("green")) );
|
||||
static const n_token::t_token & z_blue( generate_safe_static_const_t_interned(n_token::t_token("blue")) );
|
||||
static const n_token::t_token & z_image( generate_safe_static_const_t_interned(n_token::t_token("image")) );
|
||||
static const n_token::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const n_token::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const n_token::t_token & z_mask( generate_safe_static_const_t_interned(n_token::t_token("mask")) );
|
||||
|
||||
cfg[z_lawful_bonus] = lawful_bonus;
|
||||
cfg[z_red] = red;
|
||||
cfg[z_green] = green;
|
||||
|
@ -79,6 +88,8 @@ void time_of_day::write(config& cfg) const
|
|||
|
||||
void time_of_day::parse_times(const config& cfg, std::vector<time_of_day>& normal_times)
|
||||
{
|
||||
static const n_token::t_token & z_time( generate_safe_static_const_t_interned(n_token::t_token("time")) );
|
||||
|
||||
foreach (const config &t, cfg.child_range(z_time)) {
|
||||
normal_times.push_back(time_of_day(t));
|
||||
}
|
||||
|
|
|
@ -28,24 +28,6 @@
|
|||
static lg::log_domain log_engine("engine");
|
||||
#define LOG_NG LOG_STREAM(info, log_engine)
|
||||
|
||||
namespace{
|
||||
//Static tokens are replacements for string literals in code
|
||||
//They allow for fast comparison operations.
|
||||
static const config::t_token z_turn_at("turn_at", false);
|
||||
static const config::t_token z_turns("turns", false);
|
||||
static const config::t_token z_current_tod("current_tod", false);
|
||||
static const config::t_token z_current_time("current_time", false);
|
||||
static const config::t_token z_time("time", false);
|
||||
static const config::t_token z_time_area("time_area", false);
|
||||
static const config::t_token z_x("x", false);
|
||||
static const config::t_token z_y("y", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_random_start_time("random_start_time", false);
|
||||
static const config::t_token z_illuminates("illuminates", false);
|
||||
static const config::t_token z_max_value("max_value", false);
|
||||
static const config::t_token z_min_value("min_value", false);
|
||||
static const config::t_token z_turn_number("turn_number", false);
|
||||
}
|
||||
|
||||
tod_manager::tod_manager(const config& scenario_cfg, const int num_turns):
|
||||
savegame_config(),
|
||||
|
@ -55,6 +37,9 @@ tod_manager::tod_manager(const config& scenario_cfg, const int num_turns):
|
|||
turn_(1),
|
||||
num_turns_(num_turns)
|
||||
{
|
||||
static const config::t_token & z_turn_at( generate_safe_static_const_t_interned(n_token::t_token("turn_at")) );
|
||||
static const config::t_token & z_current_tod( generate_safe_static_const_t_interned(n_token::t_token("current_tod")) );
|
||||
|
||||
const config::attribute_value& turn_at = scenario_cfg[z_turn_at];
|
||||
if(!turn_at.blank()) {
|
||||
turn_ = turn_at.to_int(1);
|
||||
|
@ -88,6 +73,15 @@ tod_manager& tod_manager::operator=(const tod_manager& manager)
|
|||
|
||||
config tod_manager::to_config() const
|
||||
{
|
||||
static const config::t_token & z_turn_at( generate_safe_static_const_t_interned(n_token::t_token("turn_at")) );
|
||||
static const config::t_token & z_turns( generate_safe_static_const_t_interned(n_token::t_token("turns")) );
|
||||
static const config::t_token & z_current_tod( generate_safe_static_const_t_interned(n_token::t_token("current_tod")) );
|
||||
static const config::t_token & z_current_time( generate_safe_static_const_t_interned(n_token::t_token("current_time")) );
|
||||
static const config::t_token & z_time( generate_safe_static_const_t_interned(n_token::t_token("time")) );
|
||||
static const config::t_token & z_time_area( generate_safe_static_const_t_interned(n_token::t_token("time_area")) );
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
|
||||
config cfg;
|
||||
cfg[z_turn_at] = turn_;
|
||||
cfg[z_turns] = num_turns_;
|
||||
|
@ -164,6 +158,11 @@ void tod_manager::replace_schedule(const config& time_cfg)
|
|||
|
||||
void tod_manager::add_time_area(const config& cfg)
|
||||
{
|
||||
static const config::t_token & z_current_time( generate_safe_static_const_t_interned(n_token::t_token("current_time")) );
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
|
||||
areas_.push_back(area_time_of_day());
|
||||
area_time_of_day &area = areas_.back();
|
||||
area.id = cfg[z_id].token();
|
||||
|
@ -204,6 +203,9 @@ void tod_manager::remove_time_area(const config::t_token& area_id)
|
|||
|
||||
int tod_manager::get_start_ToD(const config &level) const
|
||||
{
|
||||
static const config::t_token & z_current_tod( generate_safe_static_const_t_interned(n_token::t_token("current_tod")) );
|
||||
static const config::t_token & z_random_start_time( generate_safe_static_const_t_interned(n_token::t_token("random_start_time")) );
|
||||
|
||||
const config::attribute_value& current_tod = level[z_current_tod];
|
||||
if (!current_tod.blank())
|
||||
{
|
||||
|
@ -240,6 +242,10 @@ const time_of_day& tod_manager::get_time_of_day_turn(const std::vector<time_of_d
|
|||
|
||||
time_of_day tod_manager::get_time_of_day_with_areas_and_units(const map_location& loc, const int for_turn) const
|
||||
{
|
||||
static const n_token::t_token & z_illuminates( generate_safe_static_const_t_interned(n_token::t_token("illuminates")) );
|
||||
static const n_token::t_token & z_max_value( generate_safe_static_const_t_interned(n_token::t_token("max_value")) );
|
||||
static const n_token::t_token & z_min_value( generate_safe_static_const_t_interned(n_token::t_token("min_value")) );
|
||||
|
||||
const gamemap& map = *resources::game_map;
|
||||
const unit_map& units = *resources::units;
|
||||
int light_modif = map.get_terrain_info(map.get_terrain(loc)).light_modification();
|
||||
|
@ -294,6 +300,7 @@ void tod_manager::set_number_of_turns(int num)
|
|||
|
||||
void tod_manager::set_turn(const int num, const bool increase_limit_if_needed)
|
||||
{
|
||||
static const n_token::t_token & z_turn_number( generate_safe_static_const_t_interned(n_token::t_token("turn_number")) );
|
||||
const int new_turn = std::max<int>(num, 1);
|
||||
LOG_NG << "changing current turn number from " << turn_ << " to " << new_turn << '\n';
|
||||
// Correct ToD
|
||||
|
|
|
@ -41,7 +41,7 @@ namespace n_token {
|
|||
|
||||
The copying of tokens is faster than the creation of tokens, because a reference object isn't created.
|
||||
Hence use static tokens as replacements for constant string literals in the code in a local scope, as follows:
|
||||
static const t_token z_some_string("some_string", false);
|
||||
static const n_token::t_token & z_label( generate_safe_static_const_t_interned(n_token::t_token("some text")) );
|
||||
@see below on caveats in Static Initialization
|
||||
|
||||
@note It is intentionally inconvenient to convert to std::string. Allowing automatic conversion would allow
|
||||
|
|
|
@ -239,7 +239,7 @@ t_string_base::t_string_base(const std::string& string, const std::string& textd
|
|||
last_untranslatable_(false)
|
||||
{
|
||||
if (string.empty()) {
|
||||
static const n_token::t_token z_empty("");
|
||||
static const n_token::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
value_ = z_empty;
|
||||
translatable_ = false;
|
||||
return;
|
||||
|
@ -342,7 +342,7 @@ t_string_base& t_string_base::operator=(const t_string_base& string)
|
|||
t_string_base& t_string_base::operator=(const t_token& string)
|
||||
{
|
||||
value_ = string;
|
||||
static const n_token::t_token z_empty("");
|
||||
static const n_token::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
translated_value_ = z_empty;
|
||||
translation_timestamp_ = 0;
|
||||
translatable_ = false;
|
||||
|
@ -355,7 +355,7 @@ t_string_base& t_string_base::operator=(const std::string& string){ return opera
|
|||
t_string_base& t_string_base::operator=(const char* string)
|
||||
{
|
||||
value_ = t_token(string);
|
||||
static const n_token::t_token z_empty("");
|
||||
static const n_token::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
translated_value_ = z_empty;
|
||||
translation_timestamp_ = 0;
|
||||
translatable_ = false;
|
||||
|
@ -393,7 +393,7 @@ t_string_base t_string_base::operator+(const char* string) const
|
|||
|
||||
t_string_base& t_string_base::operator+=(const t_string_base& string)
|
||||
{
|
||||
static const n_token::t_token z_empty("");
|
||||
static const n_token::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
if (string.value_.empty())
|
||||
return *this;
|
||||
if (value_.empty()) {
|
||||
|
@ -431,7 +431,7 @@ t_string_base& t_string_base::operator+=(const t_string_base& string)
|
|||
|
||||
t_string_base& t_string_base::operator+=(const t_token& string)
|
||||
{
|
||||
static const n_token::t_token z_empty("");
|
||||
static const n_token::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
if (string.empty())
|
||||
return *this;
|
||||
if (value_.empty()) {
|
||||
|
@ -456,7 +456,7 @@ t_string_base& t_string_base::operator+=(const std::string& string) {return oper
|
|||
|
||||
t_string_base& t_string_base::operator+=(const char* string)
|
||||
{
|
||||
static const n_token::t_token z_empty("");
|
||||
static const n_token::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
if (string[0] == 0)
|
||||
return *this;
|
||||
if (value_.empty()) {
|
||||
|
@ -500,7 +500,7 @@ bool t_string_base::operator<(const t_string_base &that) const
|
|||
|
||||
const t_string_base::t_token& t_string_base::token() const
|
||||
{
|
||||
static const n_token::t_token z_empty("");
|
||||
static const n_token::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
if(!translatable_)
|
||||
return value_;
|
||||
|
||||
|
|
731
src/unit.cpp
731
src/unit.cpp
|
@ -54,13 +54,6 @@ static lg::log_domain log_config("config");
|
|||
|
||||
|
||||
namespace{
|
||||
static const config::t_token z_advance("advance", false);
|
||||
static const config::t_token z_trait("trait", false);
|
||||
static const config::t_token z_object("object", false);
|
||||
static const config::t_token ModificationTypes[] = { z_advance, z_trait, z_object };
|
||||
static const size_t NumModificationTypes = sizeof(ModificationTypes)/
|
||||
sizeof(*ModificationTypes);
|
||||
|
||||
/**
|
||||
* Pointers to units which have data in their internal caches. The
|
||||
* destructor of an unit removes itself from the cache, so the pointers are
|
||||
|
@ -92,9 +85,9 @@ static unit_race::GENDER generate_gender(const std::string &type_id, bool random
|
|||
}
|
||||
|
||||
static unit_race::GENDER generate_gender(const config &cfg, game_state *state) {
|
||||
static const config::t_token z_gender("gender", false);
|
||||
static const config::t_token z_type("type", false);
|
||||
static const config::t_token z_random_gender("random_gender", false);
|
||||
static const config::t_token & z_gender( generate_safe_static_const_t_interned(n_token::t_token("gender")) );
|
||||
static const config::t_token & z_type( generate_safe_static_const_t_interned(n_token::t_token("type")) );
|
||||
static const config::t_token & z_random_gender( generate_safe_static_const_t_interned(n_token::t_token("random_gender")) );
|
||||
const config::attribute_value& gender = cfg[z_gender];
|
||||
if(!gender.empty())
|
||||
return string_gender(gender.token());
|
||||
|
@ -274,81 +267,81 @@ unit::unit(const config &cfg, bool use_traits, game_state* state) :
|
|||
modifications_(),
|
||||
invisibility_cache_()
|
||||
{
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token z_x("x", false);
|
||||
static const config::t_token z_y("y", false);
|
||||
static const config::t_token z_type("type", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_variation("variation", false);
|
||||
static const config::t_token z_canrecruit("canrecruit", false);
|
||||
static const config::t_token z_role("role", false);
|
||||
static const config::t_token z_ai_special("ai_special", false);
|
||||
static const config::t_token z_side("side", false);
|
||||
static const config::t_token z_underlying_id("underlying_id", false);
|
||||
static const config::t_token z_overlays("overlays", false);
|
||||
static const config::t_token z_variables("variables", false);
|
||||
static const config::t_token z_facing("facing", false);
|
||||
static const config::t_token z_modifications("modifications", false);
|
||||
static const config::t_token z_race("race", false);
|
||||
static const config::t_token z_level("level", false);
|
||||
static const config::t_token z_undead_variation("undead_variation", false);
|
||||
static const config::t_token z_max_attacks("max_attacks", false);
|
||||
static const config::t_token z_attacks_left("attacks_left", false);
|
||||
static const config::t_token z_alpha("alpha", false);
|
||||
static const config::t_token z_zoc("zoc", false);
|
||||
static const config::t_token z_flying("flying", false);
|
||||
static const config::t_token z_description("description", false);
|
||||
static const config::t_token z_cost("cost", false);
|
||||
static const config::t_token z_halo("halo", false);
|
||||
static const config::t_token z_profile("profile", false);
|
||||
static const config::t_token z_small_profile("small_profile", false);
|
||||
static const config::t_token z_max_hitpoints("max_hitpoints", false);
|
||||
static const config::t_token z_max_moves("max_moves", false);
|
||||
static const config::t_token z_max_experience("max_experience", false);
|
||||
static const config::t_token z_advances_to("advances_to", false);
|
||||
static const config::t_token z_null("null", false);
|
||||
static const config::t_token z_ai("ai", false);
|
||||
static const config::t_token z_formula("formula", false);
|
||||
static const config::t_token z_loop_formula("loop_formula", false);
|
||||
static const config::t_token z_priority("priority", false);
|
||||
static const config::t_token z_vars("vars", false);
|
||||
static const config::t_token z_attack("attack", false);
|
||||
static const config::t_token z_abilities("abilities", false);
|
||||
static const config::t_token z_defense("defense", false);
|
||||
static const config::t_token z_movement_costs("movement_costs", false);
|
||||
static const config::t_token z_resistance("resistance", false);
|
||||
static const config::t_token z_status("status", false);
|
||||
static const config::t_token z_healable("healable", false);
|
||||
static const config::t_token z_unhealable("unhealable", false);
|
||||
static const config::t_token z_guardian("guardian", false);
|
||||
static const config::t_token z_hitpoints("hitpoints", false);
|
||||
static const config::t_token z_goto_x("goto_x", false);
|
||||
static const config::t_token z_goto_y("goto_y", false);
|
||||
static const config::t_token z_moves("moves", false);
|
||||
static const config::t_token z_experience("experience", false);
|
||||
static const config::t_token z_resting("resting", false);
|
||||
static const config::t_token z_unrenamable("unrenamable", false);
|
||||
static const config::t_token z_alignment("alignment", false);
|
||||
static const config::t_token z_lawful("lawful", false);
|
||||
static const config::t_token z_neutral("neutral", false);
|
||||
static const config::t_token z_chaotic("chaotic", false);
|
||||
static const config::t_token z_liminal("liminal", false);
|
||||
static const config::t_token z_upkeep("upkeep", false);
|
||||
static const config::t_token z_full("full", false);
|
||||
static const config::t_token z_extra_recruit("extra_recruit", false);
|
||||
static const config::t_token z_filter_recall("filter_recall", false);
|
||||
static const config::t_token z_gender("gender", false);
|
||||
static const config::t_token z_random_gender("random_gender", false);
|
||||
static const config::t_token z_placement("placement", false);
|
||||
static const config::t_token z_flag_rgb("flag_rgb", false);
|
||||
static const config::t_token z_language_name("language_name", false);
|
||||
static const config::t_token z_usage("usage", false);
|
||||
static const config::t_token z_ellipse("ellipse", false);
|
||||
static const config::t_token z_image("image", false);
|
||||
static const config::t_token z_random_traits("random_traits", false);
|
||||
static const config::t_token z_generate_name("generate_name", false);
|
||||
static const config::t_token z_do_not_list("do_not_list", false);
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
static const config::t_token & z_type( generate_safe_static_const_t_interned(n_token::t_token("type")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_variation( generate_safe_static_const_t_interned(n_token::t_token("variation")) );
|
||||
static const config::t_token & z_canrecruit( generate_safe_static_const_t_interned(n_token::t_token("canrecruit")) );
|
||||
static const config::t_token & z_role( generate_safe_static_const_t_interned(n_token::t_token("role")) );
|
||||
static const config::t_token & z_ai_special( generate_safe_static_const_t_interned(n_token::t_token("ai_special")) );
|
||||
static const config::t_token & z_side( generate_safe_static_const_t_interned(n_token::t_token("side")) );
|
||||
static const config::t_token & z_underlying_id( generate_safe_static_const_t_interned(n_token::t_token("underlying_id")) );
|
||||
static const config::t_token & z_overlays( generate_safe_static_const_t_interned(n_token::t_token("overlays")) );
|
||||
static const config::t_token & z_variables( generate_safe_static_const_t_interned(n_token::t_token("variables")) );
|
||||
static const config::t_token & z_facing( generate_safe_static_const_t_interned(n_token::t_token("facing")) );
|
||||
static const config::t_token & z_modifications( generate_safe_static_const_t_interned(n_token::t_token("modifications")) );
|
||||
static const config::t_token & z_race( generate_safe_static_const_t_interned(n_token::t_token("race")) );
|
||||
static const config::t_token & z_level( generate_safe_static_const_t_interned(n_token::t_token("level")) );
|
||||
static const config::t_token & z_undead_variation( generate_safe_static_const_t_interned(n_token::t_token("undead_variation")) );
|
||||
static const config::t_token & z_max_attacks( generate_safe_static_const_t_interned(n_token::t_token("max_attacks")) );
|
||||
static const config::t_token & z_attacks_left( generate_safe_static_const_t_interned(n_token::t_token("attacks_left")) );
|
||||
static const config::t_token & z_alpha( generate_safe_static_const_t_interned(n_token::t_token("alpha")) );
|
||||
static const config::t_token & z_zoc( generate_safe_static_const_t_interned(n_token::t_token("zoc")) );
|
||||
static const config::t_token & z_flying( generate_safe_static_const_t_interned(n_token::t_token("flying")) );
|
||||
static const config::t_token & z_description( generate_safe_static_const_t_interned(n_token::t_token("description")) );
|
||||
static const config::t_token & z_cost( generate_safe_static_const_t_interned(n_token::t_token("cost")) );
|
||||
static const config::t_token & z_halo( generate_safe_static_const_t_interned(n_token::t_token("halo")) );
|
||||
static const config::t_token & z_profile( generate_safe_static_const_t_interned(n_token::t_token("profile")) );
|
||||
static const config::t_token & z_small_profile( generate_safe_static_const_t_interned(n_token::t_token("small_profile")) );
|
||||
static const config::t_token & z_max_hitpoints( generate_safe_static_const_t_interned(n_token::t_token("max_hitpoints")) );
|
||||
static const config::t_token & z_max_moves( generate_safe_static_const_t_interned(n_token::t_token("max_moves")) );
|
||||
static const config::t_token & z_max_experience( generate_safe_static_const_t_interned(n_token::t_token("max_experience")) );
|
||||
static const config::t_token & z_advances_to( generate_safe_static_const_t_interned(n_token::t_token("advances_to")) );
|
||||
static const config::t_token & z_null( generate_safe_static_const_t_interned(n_token::t_token("null")) );
|
||||
static const config::t_token & z_ai( generate_safe_static_const_t_interned(n_token::t_token("ai")) );
|
||||
static const config::t_token & z_formula( generate_safe_static_const_t_interned(n_token::t_token("formula")) );
|
||||
static const config::t_token & z_loop_formula( generate_safe_static_const_t_interned(n_token::t_token("loop_formula")) );
|
||||
static const config::t_token & z_priority( generate_safe_static_const_t_interned(n_token::t_token("priority")) );
|
||||
static const config::t_token & z_vars( generate_safe_static_const_t_interned(n_token::t_token("vars")) );
|
||||
static const config::t_token & z_attack( generate_safe_static_const_t_interned(n_token::t_token("attack")) );
|
||||
static const config::t_token & z_abilities( generate_safe_static_const_t_interned(n_token::t_token("abilities")) );
|
||||
static const config::t_token & z_defense( generate_safe_static_const_t_interned(n_token::t_token("defense")) );
|
||||
static const config::t_token & z_movement_costs( generate_safe_static_const_t_interned(n_token::t_token("movement_costs")) );
|
||||
static const config::t_token & z_resistance( generate_safe_static_const_t_interned(n_token::t_token("resistance")) );
|
||||
static const config::t_token & z_status( generate_safe_static_const_t_interned(n_token::t_token("status")) );
|
||||
static const config::t_token & z_healable( generate_safe_static_const_t_interned(n_token::t_token("healable")) );
|
||||
static const config::t_token & z_unhealable( generate_safe_static_const_t_interned(n_token::t_token("unhealable")) );
|
||||
static const config::t_token & z_guardian( generate_safe_static_const_t_interned(n_token::t_token("guardian")) );
|
||||
static const config::t_token & z_hitpoints( generate_safe_static_const_t_interned(n_token::t_token("hitpoints")) );
|
||||
static const config::t_token & z_goto_x( generate_safe_static_const_t_interned(n_token::t_token("goto_x")) );
|
||||
static const config::t_token & z_goto_y( generate_safe_static_const_t_interned(n_token::t_token("goto_y")) );
|
||||
static const config::t_token & z_moves( generate_safe_static_const_t_interned(n_token::t_token("moves")) );
|
||||
static const config::t_token & z_experience( generate_safe_static_const_t_interned(n_token::t_token("experience")) );
|
||||
static const config::t_token & z_resting( generate_safe_static_const_t_interned(n_token::t_token("resting")) );
|
||||
static const config::t_token & z_unrenamable( generate_safe_static_const_t_interned(n_token::t_token("unrenamable")) );
|
||||
static const config::t_token & z_alignment( generate_safe_static_const_t_interned(n_token::t_token("alignment")) );
|
||||
static const config::t_token & z_lawful( generate_safe_static_const_t_interned(n_token::t_token("lawful")) );
|
||||
static const config::t_token & z_neutral( generate_safe_static_const_t_interned(n_token::t_token("neutral")) );
|
||||
static const config::t_token & z_chaotic( generate_safe_static_const_t_interned(n_token::t_token("chaotic")) );
|
||||
static const config::t_token & z_liminal( generate_safe_static_const_t_interned(n_token::t_token("liminal")) );
|
||||
static const config::t_token & z_upkeep( generate_safe_static_const_t_interned(n_token::t_token("upkeep")) );
|
||||
static const config::t_token & z_full( generate_safe_static_const_t_interned(n_token::t_token("full")) );
|
||||
static const config::t_token & z_extra_recruit( generate_safe_static_const_t_interned(n_token::t_token("extra_recruit")) );
|
||||
static const config::t_token & z_filter_recall( generate_safe_static_const_t_interned(n_token::t_token("filter_recall")) );
|
||||
static const config::t_token & z_gender( generate_safe_static_const_t_interned(n_token::t_token("gender")) );
|
||||
static const config::t_token & z_random_gender( generate_safe_static_const_t_interned(n_token::t_token("random_gender")) );
|
||||
static const config::t_token & z_placement( generate_safe_static_const_t_interned(n_token::t_token("placement")) );
|
||||
static const config::t_token & z_flag_rgb( generate_safe_static_const_t_interned(n_token::t_token("flag_rgb")) );
|
||||
static const config::t_token & z_language_name( generate_safe_static_const_t_interned(n_token::t_token("language_name")) );
|
||||
static const config::t_token & z_usage( generate_safe_static_const_t_interned(n_token::t_token("usage")) );
|
||||
static const config::t_token & z_ellipse( generate_safe_static_const_t_interned(n_token::t_token("ellipse")) );
|
||||
static const config::t_token & z_image( generate_safe_static_const_t_interned(n_token::t_token("image")) );
|
||||
static const config::t_token & z_random_traits( generate_safe_static_const_t_interned(n_token::t_token("random_traits")) );
|
||||
static const config::t_token & z_generate_name( generate_safe_static_const_t_interned(n_token::t_token("generate_name")) );
|
||||
static const config::t_token & z_do_not_list( generate_safe_static_const_t_interned(n_token::t_token("do_not_list")) );
|
||||
|
||||
if (type_.empty()) {
|
||||
throw game::game_error("creating unit with an empty type field");
|
||||
|
@ -695,8 +688,8 @@ unit::unit(const unit_type *t, int side, bool real_unit,
|
|||
modifications_(),
|
||||
invisibility_cache_()
|
||||
{
|
||||
static const config::t_token z_upkeep("upkeep", false);
|
||||
static const config::t_token z_full("full", false);
|
||||
static const config::t_token & z_upkeep( generate_safe_static_const_t_interned(n_token::t_token("upkeep")) );
|
||||
static const config::t_token & z_full( generate_safe_static_const_t_interned(n_token::t_token("full")) );
|
||||
|
||||
cfg_[z_upkeep]=z_full;
|
||||
advance_to(t, real_unit);
|
||||
|
@ -756,7 +749,7 @@ unit& unit::operator=(const unit& u)
|
|||
|
||||
void unit::set_game_context()
|
||||
{
|
||||
static const config::t_token z_event("event", false);
|
||||
static const config::t_token & z_event( generate_safe_static_const_t_interned(n_token::t_token("event")) );
|
||||
|
||||
// In case the unit carries EventWML, apply it now
|
||||
game_events::add_events(cfg_.child_range(z_event), type_);
|
||||
|
@ -765,7 +758,7 @@ void unit::set_game_context()
|
|||
|
||||
void unit::generate_name(rand_rng::simple_rng* rng)
|
||||
{
|
||||
static const config::t_token z_generate_name("generate_name", false);
|
||||
static const config::t_token & z_generate_name( generate_safe_static_const_t_interned(n_token::t_token("generate_name")) );
|
||||
|
||||
if (!name_.empty() || !cfg_[z_generate_name].to_bool(true)) return;
|
||||
|
||||
|
@ -787,13 +780,13 @@ void unit::generate_name(rand_rng::simple_rng* rng)
|
|||
|
||||
void unit::generate_traits(bool musthaveonly, game_state* state)
|
||||
{
|
||||
static const config::t_token z_type("type", false);
|
||||
static const config::t_token z_trait("trait", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_availability("availability", false);
|
||||
static const config::t_token z_musthave("musthave", false);
|
||||
static const config::t_token z_any("any", false);
|
||||
static const config::t_token z_random_traits("random_traits", false);
|
||||
static const config::t_token & z_type( generate_safe_static_const_t_interned(n_token::t_token("type")) );
|
||||
static const config::t_token & z_trait( generate_safe_static_const_t_interned(n_token::t_token("trait")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_availability( generate_safe_static_const_t_interned(n_token::t_token("availability")) );
|
||||
static const config::t_token & z_musthave( generate_safe_static_const_t_interned(n_token::t_token("musthave")) );
|
||||
static const config::t_token & z_any( generate_safe_static_const_t_interned(n_token::t_token("any")) );
|
||||
static const config::t_token & z_random_traits( generate_safe_static_const_t_interned(n_token::t_token("random_traits")) );
|
||||
|
||||
LOG_UT << "Generating a trait for unit type " << type_id() << " with musthaveonly " << musthaveonly << "\n";
|
||||
const unit_type *type = unit_types.find(type_id());
|
||||
|
@ -862,8 +855,8 @@ void unit::generate_traits(bool musthaveonly, game_state* state)
|
|||
|
||||
std::vector<config::t_token> unit::get_traits_list() const
|
||||
{
|
||||
static const config::t_token z_trait("trait", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token & z_trait( generate_safe_static_const_t_interned(n_token::t_token("trait")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
|
||||
std::vector<config::t_token> res;
|
||||
|
||||
|
@ -895,25 +888,25 @@ void unit::advance_to(const config &old_cfg, const unit_type *t,
|
|||
// Clear the stored config and replace it with the one from the unit type,
|
||||
// except for a few attributes.
|
||||
config new_cfg;
|
||||
static const config::t_token z_upkeep("upkeep", false);
|
||||
static const config::t_token z_ellipse("ellipse", false);
|
||||
static const config::t_token z_image("image", false);
|
||||
static const config::t_token z_usage("usage", false);
|
||||
static const config::t_token z_random_traits("random_traits", false);
|
||||
static const config::t_token z_generate_name("generate_name", false);
|
||||
static const config::t_token z_movement("movement", false);
|
||||
static const config::t_token z_movement_type("movement_type", false);
|
||||
static const config::t_token z_die_sound("die_sound", false);
|
||||
static const config::t_token z_flies("flies", false);
|
||||
static const config::t_token z_inherit("inherit", false);
|
||||
static const config::t_token z_variation_name("variation_name", false);
|
||||
static const config::t_token z_ignore_race_traits("ignore_race_traits", false);
|
||||
static const config::t_token z_hide_help("hide_help", false);
|
||||
static const config::t_token z_profile("profile", false);
|
||||
static const config::t_token z_small_profile("small_profile", false);
|
||||
static const config::t_token z_male("male", false);
|
||||
static const config::t_token z_female("female", false);
|
||||
static const config::t_token z_description("description", false);
|
||||
static const config::t_token & z_upkeep( generate_safe_static_const_t_interned(n_token::t_token("upkeep")) );
|
||||
static const config::t_token & z_ellipse( generate_safe_static_const_t_interned(n_token::t_token("ellipse")) );
|
||||
static const config::t_token & z_image( generate_safe_static_const_t_interned(n_token::t_token("image")) );
|
||||
static const config::t_token & z_usage( generate_safe_static_const_t_interned(n_token::t_token("usage")) );
|
||||
static const config::t_token & z_random_traits( generate_safe_static_const_t_interned(n_token::t_token("random_traits")) );
|
||||
static const config::t_token & z_generate_name( generate_safe_static_const_t_interned(n_token::t_token("generate_name")) );
|
||||
static const config::t_token & z_movement( generate_safe_static_const_t_interned(n_token::t_token("movement")) );
|
||||
static const config::t_token & z_movement_type( generate_safe_static_const_t_interned(n_token::t_token("movement_type")) );
|
||||
static const config::t_token & z_die_sound( generate_safe_static_const_t_interned(n_token::t_token("die_sound")) );
|
||||
static const config::t_token & z_flies( generate_safe_static_const_t_interned(n_token::t_token("flies")) );
|
||||
static const config::t_token & z_inherit( generate_safe_static_const_t_interned(n_token::t_token("inherit")) );
|
||||
static const config::t_token & z_variation_name( generate_safe_static_const_t_interned(n_token::t_token("variation_name")) );
|
||||
static const config::t_token & z_ignore_race_traits( generate_safe_static_const_t_interned(n_token::t_token("ignore_race_traits")) );
|
||||
static const config::t_token & z_hide_help( generate_safe_static_const_t_interned(n_token::t_token("hide_help")) );
|
||||
static const config::t_token & z_profile( generate_safe_static_const_t_interned(n_token::t_token("profile")) );
|
||||
static const config::t_token & z_small_profile( generate_safe_static_const_t_interned(n_token::t_token("small_profile")) );
|
||||
static const config::t_token & z_male( generate_safe_static_const_t_interned(n_token::t_token("male")) );
|
||||
static const config::t_token & z_female( generate_safe_static_const_t_interned(n_token::t_token("female")) );
|
||||
static const config::t_token & z_description( generate_safe_static_const_t_interned(n_token::t_token("description")) );
|
||||
|
||||
static config::t_token const *persistent_attrs[] = { &z_upkeep, &z_ellipse,
|
||||
&z_image, &z_usage, &z_random_traits, &z_generate_name };
|
||||
|
@ -1029,8 +1022,8 @@ const unit_type* unit::type() const
|
|||
|
||||
config::t_token const & unit::big_profile() const
|
||||
{
|
||||
static const config::t_token z_profile("profile", false);
|
||||
static const config::t_token z_unit_image("unit_image", false);
|
||||
static const config::t_token & z_profile( generate_safe_static_const_t_interned(n_token::t_token("profile")) );
|
||||
static const config::t_token & z_unit_image( generate_safe_static_const_t_interned(n_token::t_token("unit_image")) );
|
||||
|
||||
const config::attribute_value &prof = cfg_[z_profile];
|
||||
if (!prof.empty() && prof != z_unit_image) {
|
||||
|
@ -1042,8 +1035,8 @@ config::t_token const & unit::big_profile() const
|
|||
config::t_token const & unit::small_profile() const
|
||||
{
|
||||
|
||||
static const config::t_token z_small_profile("small_profile", false);
|
||||
static const config::t_token z_unit_image("unit_image", false);
|
||||
static const config::t_token & z_small_profile( generate_safe_static_const_t_interned(n_token::t_token("small_profile")) );
|
||||
static const config::t_token & z_unit_image( generate_safe_static_const_t_interned(n_token::t_token("unit_image")) );
|
||||
const config::attribute_value &prof = cfg_[z_small_profile];
|
||||
if (!prof.empty() && prof != z_unit_image) {
|
||||
return prof.token();
|
||||
|
@ -1173,11 +1166,11 @@ void unit::end_turn()
|
|||
}
|
||||
void unit::new_scenario()
|
||||
{
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
|
||||
static const config::t_token z_duration("duration", false);
|
||||
static const config::t_token z_forever("forever", false);
|
||||
static const config::t_token z_prev_type("prev_type", false);
|
||||
static const config::t_token & z_duration( generate_safe_static_const_t_interned(n_token::t_token("duration")) );
|
||||
static const config::t_token & z_forever( generate_safe_static_const_t_interned(n_token::t_token("forever")) );
|
||||
static const config::t_token & z_prev_type( generate_safe_static_const_t_interned(n_token::t_token("prev_type")) );
|
||||
|
||||
ai_special_ = z_empty;
|
||||
|
||||
|
@ -1186,13 +1179,12 @@ void unit::new_scenario()
|
|||
|
||||
bool rebuild_from_type = false;
|
||||
|
||||
for(unsigned int i = 0; i != NumModificationTypes; ++i) {
|
||||
const std::string& mod_name = ModificationTypes[i];
|
||||
foreach( const config::t_token& mod_name, modification_types()){
|
||||
for (int j = modifications_.child_count(mod_name) - 1; j >= 0; --j)
|
||||
{
|
||||
const config &mod = modifications_.child(mod_name, j);
|
||||
const std::string& duration = mod[z_duration];
|
||||
if (!duration.empty() && duration != z_forever) {
|
||||
const config::attribute_value & duration = mod[z_duration];
|
||||
if (!duration.empty() && duration.token() != z_forever) {
|
||||
if (const config::attribute_value *v = mod.get(z_prev_type)) {
|
||||
type_ = v->token();
|
||||
}
|
||||
|
@ -1228,7 +1220,7 @@ void unit::heal(int amount)
|
|||
const std::map<config::t_token,config::t_token> unit::get_states() const
|
||||
{
|
||||
|
||||
static const config::t_token z_yes("yes", false);
|
||||
static const config::t_token & z_yes( generate_safe_static_const_t_interned(n_token::t_token("yes")) );
|
||||
std::map<config::t_token, config::t_token> all_states;
|
||||
foreach (config::t_token const &s, states_) {
|
||||
all_states[s] = z_yes;
|
||||
|
@ -1275,12 +1267,12 @@ std::map<config::t_token, unit::state_t> unit::known_boolean_state_names_ = get_
|
|||
|
||||
std::map<config::t_token, unit::state_t> unit::get_known_boolean_state_names()
|
||||
{
|
||||
static const config::t_token z_slowed("slowed", false);
|
||||
static const config::t_token z_poisoned("poisoned", false);
|
||||
static const config::t_token z_petrified("petrified", false);
|
||||
static const config::t_token z_uncovered("uncovered", false);
|
||||
static const config::t_token z_not_moved("not_moved", false);
|
||||
static const config::t_token z_unhealable("unhealable", false);
|
||||
static const config::t_token & z_slowed( generate_safe_static_const_t_interned(n_token::t_token("slowed")) );
|
||||
static const config::t_token & z_poisoned( generate_safe_static_const_t_interned(n_token::t_token("poisoned")) );
|
||||
static const config::t_token & z_petrified( generate_safe_static_const_t_interned(n_token::t_token("petrified")) );
|
||||
static const config::t_token & z_uncovered( generate_safe_static_const_t_interned(n_token::t_token("uncovered")) );
|
||||
static const config::t_token & z_not_moved( generate_safe_static_const_t_interned(n_token::t_token("not_moved")) );
|
||||
static const config::t_token & z_unhealable( generate_safe_static_const_t_interned(n_token::t_token("unhealable")) );
|
||||
|
||||
std::map<config::t_token, state_t> known_boolean_state_names_map;
|
||||
known_boolean_state_names_map.insert(std::make_pair(z_slowed,STATE_SLOWED));
|
||||
|
@ -1310,8 +1302,8 @@ void unit::set_state(const config::t_token &state, bool value)
|
|||
|
||||
bool unit::has_ability_by_id(const std::string& ability) const
|
||||
{
|
||||
static const config::t_token z_abilities("abilities", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token & z_abilities( generate_safe_static_const_t_interned(n_token::t_token("abilities")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
|
||||
if (const config &abil = cfg_.child(z_abilities))
|
||||
{
|
||||
|
@ -1325,8 +1317,8 @@ bool unit::has_ability_by_id(const std::string& ability) const
|
|||
|
||||
void unit::remove_ability_by_id(const std::string &ability)
|
||||
{
|
||||
static const config::t_token z_abilities("abilities", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token & z_abilities( generate_safe_static_const_t_interned(n_token::t_token("abilities")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
|
||||
if (config &abil = cfg_.child(z_abilities))
|
||||
{
|
||||
|
@ -1346,10 +1338,10 @@ bool unit::matches_filter(const vconfig& cfg, const map_location& loc, bool use_
|
|||
t_teams const & teams, LuaKernel & lua_kernel,
|
||||
tod_manager const & tod_manager) const
|
||||
{
|
||||
static const config::t_token z_this_unit("this_unit", false);
|
||||
static const config::t_token z_and("and", false);
|
||||
static const config::t_token z_or("or", false);
|
||||
static const config::t_token z_not("not", false);
|
||||
static const config::t_token & z_this_unit( generate_safe_static_const_t_interned(n_token::t_token("this_unit")) );
|
||||
static const config::t_token & z_and( generate_safe_static_const_t_interned(n_token::t_token("and")) );
|
||||
static const config::t_token & z_or( generate_safe_static_const_t_interned(n_token::t_token("or")) );
|
||||
static const config::t_token & z_not( generate_safe_static_const_t_interned(n_token::t_token("not")) );
|
||||
|
||||
bool matches = true;
|
||||
|
||||
|
@ -1396,38 +1388,38 @@ bool unit::internal_matches_filter(const vconfig& cfg, const map_location& loc,
|
|||
t_teams const & teams, LuaKernel & lua_kernel,
|
||||
tod_manager const & tod_manager) const
|
||||
{
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_speaker("speaker", false);
|
||||
static const config::t_token z_filter_location("filter_location", false);
|
||||
static const config::t_token z_x("x", false);
|
||||
static const config::t_token z_y("y", false);
|
||||
static const config::t_token z_recall("recall", false);
|
||||
static const config::t_token z_type("type", false);
|
||||
static const config::t_token z_ability("ability", false);
|
||||
static const config::t_token z_race("race", false);
|
||||
static const config::t_token z_gender("gender", false);
|
||||
static const config::t_token z_side("side", false);
|
||||
static const config::t_token z_has_weapon("has_weapon", false);
|
||||
static const config::t_token z_role("role", false);
|
||||
static const config::t_token z_ai_special("ai_special", false);
|
||||
static const config::t_token z_canrecruit("canrecruit", false);
|
||||
static const config::t_token z_level("level", false);
|
||||
static const config::t_token z_defense("defense", false);
|
||||
static const config::t_token z_movement_cost("movement_cost", false);
|
||||
static const config::t_token z_filter_wml("filter_wml", false);
|
||||
static const config::t_token z_variables("variables", false);
|
||||
static const config::t_token z_filter_vision("filter_vision", false);
|
||||
static const config::t_token z_visible("visible", false);
|
||||
static const config::t_token z_viewing_side("viewing_side", false);
|
||||
static const config::t_token z_filter_adjacent("filter_adjacent", false);
|
||||
static const config::t_token z_adjacent("adjacent", false);
|
||||
static const config::t_token z_is_enemy("is_enemy", false);
|
||||
static const config::t_token z_count("count", false);
|
||||
static const config::t_token z_find_in("find_in", false);
|
||||
static const config::t_token z_formula("formula", false);
|
||||
static const config::t_token z_lua_function("lua_function", false);
|
||||
static const config::t_token z_filter_side("filter_side", false);
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_speaker( generate_safe_static_const_t_interned(n_token::t_token("speaker")) );
|
||||
static const config::t_token & z_filter_location( generate_safe_static_const_t_interned(n_token::t_token("filter_location")) );
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
static const config::t_token & z_recall( generate_safe_static_const_t_interned(n_token::t_token("recall")) );
|
||||
static const config::t_token & z_type( generate_safe_static_const_t_interned(n_token::t_token("type")) );
|
||||
static const config::t_token & z_ability( generate_safe_static_const_t_interned(n_token::t_token("ability")) );
|
||||
static const config::t_token & z_race( generate_safe_static_const_t_interned(n_token::t_token("race")) );
|
||||
static const config::t_token & z_gender( generate_safe_static_const_t_interned(n_token::t_token("gender")) );
|
||||
static const config::t_token & z_side( generate_safe_static_const_t_interned(n_token::t_token("side")) );
|
||||
static const config::t_token & z_has_weapon( generate_safe_static_const_t_interned(n_token::t_token("has_weapon")) );
|
||||
static const config::t_token & z_role( generate_safe_static_const_t_interned(n_token::t_token("role")) );
|
||||
static const config::t_token & z_ai_special( generate_safe_static_const_t_interned(n_token::t_token("ai_special")) );
|
||||
static const config::t_token & z_canrecruit( generate_safe_static_const_t_interned(n_token::t_token("canrecruit")) );
|
||||
static const config::t_token & z_level( generate_safe_static_const_t_interned(n_token::t_token("level")) );
|
||||
static const config::t_token & z_defense( generate_safe_static_const_t_interned(n_token::t_token("defense")) );
|
||||
static const config::t_token & z_movement_cost( generate_safe_static_const_t_interned(n_token::t_token("movement_cost")) );
|
||||
static const config::t_token & z_filter_wml( generate_safe_static_const_t_interned(n_token::t_token("filter_wml")) );
|
||||
static const config::t_token & z_variables( generate_safe_static_const_t_interned(n_token::t_token("variables")) );
|
||||
static const config::t_token & z_filter_vision( generate_safe_static_const_t_interned(n_token::t_token("filter_vision")) );
|
||||
static const config::t_token & z_visible( generate_safe_static_const_t_interned(n_token::t_token("visible")) );
|
||||
static const config::t_token & z_viewing_side( generate_safe_static_const_t_interned(n_token::t_token("viewing_side")) );
|
||||
static const config::t_token & z_filter_adjacent( generate_safe_static_const_t_interned(n_token::t_token("filter_adjacent")) );
|
||||
static const config::t_token & z_adjacent( generate_safe_static_const_t_interned(n_token::t_token("adjacent")) );
|
||||
static const config::t_token & z_is_enemy( generate_safe_static_const_t_interned(n_token::t_token("is_enemy")) );
|
||||
static const config::t_token & z_count( generate_safe_static_const_t_interned(n_token::t_token("count")) );
|
||||
static const config::t_token & z_find_in( generate_safe_static_const_t_interned(n_token::t_token("find_in")) );
|
||||
static const config::t_token & z_formula( generate_safe_static_const_t_interned(n_token::t_token("formula")) );
|
||||
static const config::t_token & z_lua_function( generate_safe_static_const_t_interned(n_token::t_token("lua_function")) );
|
||||
static const config::t_token & z_filter_side( generate_safe_static_const_t_interned(n_token::t_token("filter_side")) );
|
||||
|
||||
config::attribute_value cfg_name = cfg[z_name];
|
||||
if (!cfg_name.empty() && cfg_name.str() != name_) {
|
||||
|
@ -1745,55 +1737,55 @@ bool unit::internal_matches_filter(const vconfig& cfg, const map_location& loc,
|
|||
|
||||
void unit::write(config& cfg) const
|
||||
{
|
||||
static const config::t_token z_description("description", false);
|
||||
static const config::t_token z_hitpoints("hitpoints", false);
|
||||
static const config::t_token z_max_hitpoints("max_hitpoints", false);
|
||||
static const config::t_token z_experience("experience", false);
|
||||
static const config::t_token z_max_experience("max_experience", false);
|
||||
static const config::t_token z_side("side", false);
|
||||
static const config::t_token z_type("type", false);
|
||||
static const config::t_token z_ai("ai", false);
|
||||
static const config::t_token z_formula("formula", false);
|
||||
static const config::t_token z_loop_formula("loop_formula", false);
|
||||
static const config::t_token z_priority("priority", false);
|
||||
static const config::t_token z_vars("vars", false);
|
||||
static const config::t_token z_gender("gender", false);
|
||||
static const config::t_token z_variation("variation", false);
|
||||
static const config::t_token z_role("role", false);
|
||||
static const config::t_token z_ai_special("ai_special", false);
|
||||
static const config::t_token z_flying("flying", false);
|
||||
static const config::t_token z_variables("variables", false);
|
||||
static const config::t_token z_status("status", false);
|
||||
static const config::t_token z_overlays("overlays", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_underlying_id("underlying_id", false);
|
||||
static const config::t_token z_canrecruit("canrecruit", false);
|
||||
static const config::t_token z_extra_recruit("extra_recruit", false);
|
||||
static const config::t_token z_facing("facing", false);
|
||||
static const config::t_token z_goto_x("goto_x", false);
|
||||
static const config::t_token z_goto_y("goto_y", false);
|
||||
static const config::t_token z_moves("moves", false);
|
||||
static const config::t_token z_max_moves("max_moves", false);
|
||||
static const config::t_token z_resting("resting", false);
|
||||
static const config::t_token z_advances_to("advances_to", false);
|
||||
static const config::t_token z_race("race", false);
|
||||
static const config::t_token z_language_name("language_name", false);
|
||||
static const config::t_token z_undead_variation("undead_variation", false);
|
||||
static const config::t_token z_level("level", false);
|
||||
static const config::t_token z_alignment("alignment", false);
|
||||
static const config::t_token z_lawful("lawful", false);
|
||||
static const config::t_token z_neutral("neutral", false);
|
||||
static const config::t_token z_chaotic("chaotic", false);
|
||||
static const config::t_token z_flag_rgb("flag_rgb", false);
|
||||
static const config::t_token z_unrenamable("unrenamable", false);
|
||||
static const config::t_token z_alpha("alpha", false);
|
||||
static const config::t_token z_attacks_left("attacks_left", false);
|
||||
static const config::t_token z_max_attacks("max_attacks", false);
|
||||
static const config::t_token z_zoc("zoc", false);
|
||||
static const config::t_token z_attack("attack", false);
|
||||
static const config::t_token z_cost("cost", false);
|
||||
static const config::t_token z_modifications("modifications", false);
|
||||
static const config::t_token & z_description( generate_safe_static_const_t_interned(n_token::t_token("description")) );
|
||||
static const config::t_token & z_hitpoints( generate_safe_static_const_t_interned(n_token::t_token("hitpoints")) );
|
||||
static const config::t_token & z_max_hitpoints( generate_safe_static_const_t_interned(n_token::t_token("max_hitpoints")) );
|
||||
static const config::t_token & z_experience( generate_safe_static_const_t_interned(n_token::t_token("experience")) );
|
||||
static const config::t_token & z_max_experience( generate_safe_static_const_t_interned(n_token::t_token("max_experience")) );
|
||||
static const config::t_token & z_side( generate_safe_static_const_t_interned(n_token::t_token("side")) );
|
||||
static const config::t_token & z_type( generate_safe_static_const_t_interned(n_token::t_token("type")) );
|
||||
static const config::t_token & z_ai( generate_safe_static_const_t_interned(n_token::t_token("ai")) );
|
||||
static const config::t_token & z_formula( generate_safe_static_const_t_interned(n_token::t_token("formula")) );
|
||||
static const config::t_token & z_loop_formula( generate_safe_static_const_t_interned(n_token::t_token("loop_formula")) );
|
||||
static const config::t_token & z_priority( generate_safe_static_const_t_interned(n_token::t_token("priority")) );
|
||||
static const config::t_token & z_vars( generate_safe_static_const_t_interned(n_token::t_token("vars")) );
|
||||
static const config::t_token & z_gender( generate_safe_static_const_t_interned(n_token::t_token("gender")) );
|
||||
static const config::t_token & z_variation( generate_safe_static_const_t_interned(n_token::t_token("variation")) );
|
||||
static const config::t_token & z_role( generate_safe_static_const_t_interned(n_token::t_token("role")) );
|
||||
static const config::t_token & z_ai_special( generate_safe_static_const_t_interned(n_token::t_token("ai_special")) );
|
||||
static const config::t_token & z_flying( generate_safe_static_const_t_interned(n_token::t_token("flying")) );
|
||||
static const config::t_token & z_variables( generate_safe_static_const_t_interned(n_token::t_token("variables")) );
|
||||
static const config::t_token & z_status( generate_safe_static_const_t_interned(n_token::t_token("status")) );
|
||||
static const config::t_token & z_overlays( generate_safe_static_const_t_interned(n_token::t_token("overlays")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_underlying_id( generate_safe_static_const_t_interned(n_token::t_token("underlying_id")) );
|
||||
static const config::t_token & z_canrecruit( generate_safe_static_const_t_interned(n_token::t_token("canrecruit")) );
|
||||
static const config::t_token & z_extra_recruit( generate_safe_static_const_t_interned(n_token::t_token("extra_recruit")) );
|
||||
static const config::t_token & z_facing( generate_safe_static_const_t_interned(n_token::t_token("facing")) );
|
||||
static const config::t_token & z_goto_x( generate_safe_static_const_t_interned(n_token::t_token("goto_x")) );
|
||||
static const config::t_token & z_goto_y( generate_safe_static_const_t_interned(n_token::t_token("goto_y")) );
|
||||
static const config::t_token & z_moves( generate_safe_static_const_t_interned(n_token::t_token("moves")) );
|
||||
static const config::t_token & z_max_moves( generate_safe_static_const_t_interned(n_token::t_token("max_moves")) );
|
||||
static const config::t_token & z_resting( generate_safe_static_const_t_interned(n_token::t_token("resting")) );
|
||||
static const config::t_token & z_advances_to( generate_safe_static_const_t_interned(n_token::t_token("advances_to")) );
|
||||
static const config::t_token & z_race( generate_safe_static_const_t_interned(n_token::t_token("race")) );
|
||||
static const config::t_token & z_language_name( generate_safe_static_const_t_interned(n_token::t_token("language_name")) );
|
||||
static const config::t_token & z_undead_variation( generate_safe_static_const_t_interned(n_token::t_token("undead_variation")) );
|
||||
static const config::t_token & z_level( generate_safe_static_const_t_interned(n_token::t_token("level")) );
|
||||
static const config::t_token & z_alignment( generate_safe_static_const_t_interned(n_token::t_token("alignment")) );
|
||||
static const config::t_token & z_lawful( generate_safe_static_const_t_interned(n_token::t_token("lawful")) );
|
||||
static const config::t_token & z_neutral( generate_safe_static_const_t_interned(n_token::t_token("neutral")) );
|
||||
static const config::t_token & z_chaotic( generate_safe_static_const_t_interned(n_token::t_token("chaotic")) );
|
||||
static const config::t_token & z_flag_rgb( generate_safe_static_const_t_interned(n_token::t_token("flag_rgb")) );
|
||||
static const config::t_token & z_unrenamable( generate_safe_static_const_t_interned(n_token::t_token("unrenamable")) );
|
||||
static const config::t_token & z_alpha( generate_safe_static_const_t_interned(n_token::t_token("alpha")) );
|
||||
static const config::t_token & z_attacks_left( generate_safe_static_const_t_interned(n_token::t_token("attacks_left")) );
|
||||
static const config::t_token & z_max_attacks( generate_safe_static_const_t_interned(n_token::t_token("max_attacks")) );
|
||||
static const config::t_token & z_zoc( generate_safe_static_const_t_interned(n_token::t_token("zoc")) );
|
||||
static const config::t_token & z_attack( generate_safe_static_const_t_interned(n_token::t_token("attack")) );
|
||||
static const config::t_token & z_cost( generate_safe_static_const_t_interned(n_token::t_token("cost")) );
|
||||
static const config::t_token & z_modifications( generate_safe_static_const_t_interned(n_token::t_token("modifications")) );
|
||||
|
||||
cfg.append(cfg_);
|
||||
const unit_type *ut = unit_types.find(type_id());
|
||||
|
@ -1954,9 +1946,9 @@ const surface unit::still_image(bool scaled) const
|
|||
}
|
||||
|
||||
void unit::set_standing(bool with_bars) {
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token z_standing("standing", false);
|
||||
static const config::t_token z__disabled_("_disabled_", false);
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
static const config::t_token & z_standing( generate_safe_static_const_t_interned(n_token::t_token("standing")) );
|
||||
static const config::t_token & z__disabled_( generate_safe_static_const_t_interned(n_token::t_token("_disabled_")) );
|
||||
|
||||
|
||||
game_display *disp = game_display::get_singleton();
|
||||
|
@ -1971,7 +1963,7 @@ void unit::set_standing(bool with_bars) {
|
|||
|
||||
void unit::set_ghosted(bool with_bars)
|
||||
{
|
||||
static const config::t_token z_ghosted("ghosted", false);
|
||||
static const config::t_token & z_ghosted( generate_safe_static_const_t_interned(n_token::t_token("ghosted")) );
|
||||
|
||||
game_display *disp = game_display::get_singleton();
|
||||
start_animation(INT_MAX, choose_animation(*disp, loc_, z_ghosted),
|
||||
|
@ -1980,7 +1972,7 @@ void unit::set_ghosted(bool with_bars)
|
|||
|
||||
void unit::set_disabled_ghosted(bool with_bars)
|
||||
{
|
||||
static const config::t_token z_disabled_ghosted("disabled_ghosted", false);
|
||||
static const config::t_token & z_disabled_ghosted( generate_safe_static_const_t_interned(n_token::t_token("disabled_ghosted")) );
|
||||
|
||||
game_display *disp = game_display::get_singleton();
|
||||
start_animation(INT_MAX, choose_animation(*disp, loc_, z_disabled_ghosted),
|
||||
|
@ -1989,8 +1981,8 @@ void unit::set_disabled_ghosted(bool with_bars)
|
|||
|
||||
void unit::set_idling()
|
||||
{
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token z_idling("idling", false);
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
static const config::t_token & z_idling( generate_safe_static_const_t_interned(n_token::t_token("idling")) );
|
||||
|
||||
game_display *disp = game_display::get_singleton();
|
||||
start_animation(INT_MAX, choose_animation(*disp, loc_, z_idling),
|
||||
|
@ -1999,9 +1991,9 @@ void unit::set_idling()
|
|||
|
||||
void unit::set_selecting()
|
||||
{
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token z_selected("selected", false);
|
||||
static const config::t_token z__disabled_selected_("_disabled_selected_", false);
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
static const config::t_token & z_selected( generate_safe_static_const_t_interned(n_token::t_token("selected")) );
|
||||
static const config::t_token & z__disabled_selected_( generate_safe_static_const_t_interned(n_token::t_token("_disabled_selected_")) );
|
||||
|
||||
const game_display *disp = game_display::get_singleton();
|
||||
if (preferences::show_standing_animations() && !get_state(STATE_PETRIFIED)) {
|
||||
|
@ -2300,10 +2292,10 @@ bool unit::invalidate(const map_location &loc)
|
|||
|
||||
int unit::upkeep() const
|
||||
{
|
||||
static const config::t_token z_upkeep("upkeep", false);
|
||||
static const config::t_token z_full("full", false);
|
||||
static const config::t_token z_loyal("loyal", false);
|
||||
static const config::t_token z_free("free", false);
|
||||
static const config::t_token & z_upkeep( generate_safe_static_const_t_interned(n_token::t_token("upkeep")) );
|
||||
static const config::t_token & z_full( generate_safe_static_const_t_interned(n_token::t_token("full")) );
|
||||
static const config::t_token & z_loyal( generate_safe_static_const_t_interned(n_token::t_token("loyal")) );
|
||||
static const config::t_token & z_free( generate_safe_static_const_t_interned(n_token::t_token("free")) );
|
||||
|
||||
// Leaders do not incur upkeep.
|
||||
if(can_recruit()) {
|
||||
|
@ -2323,9 +2315,9 @@ int unit::upkeep() const
|
|||
|
||||
bool unit::loyal() const
|
||||
{
|
||||
static const config::t_token z_upkeep("upkeep", false);
|
||||
static const config::t_token z_loyal("loyal", false);
|
||||
static const config::t_token z_free("free", false);
|
||||
static const config::t_token & z_upkeep( generate_safe_static_const_t_interned(n_token::t_token("upkeep")) );
|
||||
static const config::t_token & z_loyal( generate_safe_static_const_t_interned(n_token::t_token("loyal")) );
|
||||
static const config::t_token & z_free( generate_safe_static_const_t_interned(n_token::t_token("free")) );
|
||||
|
||||
return cfg_[z_upkeep] == z_loyal || cfg_[z_upkeep] == z_free;
|
||||
}
|
||||
|
@ -2360,12 +2352,12 @@ int unit::defense_modifier(t_translation::t_terrain terrain, gamemap const & gam
|
|||
|
||||
bool unit::resistance_filter_matches(const config& cfg, bool attacker, const std::string& damage_name, int res) const
|
||||
{
|
||||
static const config::t_token z_active_on("active_on", false);
|
||||
static const config::t_token z_offense("offense", false);
|
||||
static const config::t_token z_defense("defense", false);
|
||||
static const config::t_token z_apply_to("apply_to", false);
|
||||
static const config::t_token & z_active_on( generate_safe_static_const_t_interned(n_token::t_token("active_on")) );
|
||||
static const config::t_token & z_offense( generate_safe_static_const_t_interned(n_token::t_token("offense")) );
|
||||
static const config::t_token & z_defense( generate_safe_static_const_t_interned(n_token::t_token("defense")) );
|
||||
static const config::t_token & z_apply_to( generate_safe_static_const_t_interned(n_token::t_token("apply_to")) );
|
||||
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
if(!(cfg[z_active_on]==z_empty || (attacker && cfg[z_active_on]==z_offense) || (!attacker && cfg[z_active_on]==z_defense))) {
|
||||
return false;
|
||||
}
|
||||
|
@ -2391,8 +2383,8 @@ bool unit::resistance_filter_matches(const config& cfg, bool attacker, const std
|
|||
|
||||
int unit::resistance_against(const std::string& damage_name,bool attacker,const map_location& loc) const
|
||||
{
|
||||
static const config::t_token z_resistance("resistance", false);
|
||||
static const config::t_token z_max_value("max_value", false);
|
||||
static const config::t_token & z_resistance( generate_safe_static_const_t_interned(n_token::t_token("resistance")) );
|
||||
static const config::t_token & z_max_value( generate_safe_static_const_t_interned(n_token::t_token("max_value")) );
|
||||
|
||||
int res = 0;
|
||||
|
||||
|
@ -2418,7 +2410,7 @@ int unit::resistance_against(const std::string& damage_name,bool attacker,const
|
|||
|
||||
utils::string_map unit::get_base_resistances() const
|
||||
{
|
||||
static const config::t_token z_resistance("resistance", false);
|
||||
static const config::t_token & z_resistance( generate_safe_static_const_t_interned(n_token::t_token("resistance")) );
|
||||
|
||||
if (const config &resistance = cfg_.child(z_resistance))
|
||||
{
|
||||
|
@ -2458,8 +2450,8 @@ std::map<std::string,std::string> unit::advancement_icons() const
|
|||
|
||||
foreach (const config &adv, get_modification_advances())
|
||||
{
|
||||
static const config::t_token z_image("image", false);
|
||||
static const config::t_token z_description("description", false);
|
||||
static const config::t_token & z_image( generate_safe_static_const_t_interned(n_token::t_token("image")) );
|
||||
static const config::t_token & z_description( generate_safe_static_const_t_interned(n_token::t_token("description")) );
|
||||
|
||||
config::attribute_value const & aimage = adv[z_image];
|
||||
const config::t_token & image = aimage.token();
|
||||
|
@ -2476,10 +2468,10 @@ std::map<std::string,std::string> unit::advancement_icons() const
|
|||
}
|
||||
std::vector<std::pair<std::string,std::string> > unit::amla_icons() const
|
||||
{
|
||||
static const config::t_token z_icon("icon", false);
|
||||
static const config::t_token z_description("description", false);
|
||||
static const config::t_token z_advance("advance", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token & z_icon( generate_safe_static_const_t_interned(n_token::t_token("icon")) );
|
||||
static const config::t_token & z_description( generate_safe_static_const_t_interned(n_token::t_token("description")) );
|
||||
static const config::t_token & z_advance( generate_safe_static_const_t_interned(n_token::t_token("advance")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
std::vector<std::pair<std::string,std::string> > temp;
|
||||
std::pair<std::string,std::string> icon; //<image,tooltip>
|
||||
|
||||
|
@ -2500,11 +2492,11 @@ std::vector<std::pair<std::string,std::string> > unit::amla_icons() const
|
|||
|
||||
std::vector<config> unit::get_modification_advances() const
|
||||
{
|
||||
static const config::t_token z_strict_amla("strict_amla", false);
|
||||
static const config::t_token z_advance("advance", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_max_times("max_times", false);
|
||||
static const config::t_token z_require_amla("require_amla", false);
|
||||
static const config::t_token & z_strict_amla( generate_safe_static_const_t_interned(n_token::t_token("strict_amla")) );
|
||||
static const config::t_token & z_advance( generate_safe_static_const_t_interned(n_token::t_token("advance")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_max_times( generate_safe_static_const_t_interned(n_token::t_token("max_times")) );
|
||||
static const config::t_token & z_require_amla( generate_safe_static_const_t_interned(n_token::t_token("require_amla")) );
|
||||
|
||||
std::vector<config> res;
|
||||
foreach (const config &adv, modification_advancements())
|
||||
|
@ -2543,7 +2535,7 @@ std::vector<config> unit::get_modification_advances() const
|
|||
|
||||
size_t unit::modification_count(const config::t_token& type, const std::string& id) const
|
||||
{
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
|
||||
size_t res = 0;
|
||||
foreach (const config &item, modifications_.child_range(type)) {
|
||||
|
@ -2571,60 +2563,60 @@ void unit::add_modification(const config::t_token& type, const config& mod, bool
|
|||
tod_manager const & tod_manager)
|
||||
{
|
||||
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token z_trait("trait", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_fearless("fearless", false);
|
||||
static const config::t_token z_healthy("healthy", false);
|
||||
static const config::t_token z_effect("effect", false);
|
||||
static const config::t_token z_unit_type("unit_type", false);
|
||||
static const config::t_token z_unit_gender("unit_gender", false);
|
||||
static const config::t_token z_filter("filter", false);
|
||||
static const config::t_token z_apply_to("apply_to", false);
|
||||
static const config::t_token z_times("times", false);
|
||||
static const config::t_token z_variation("variation", false);
|
||||
static const config::t_token z_type("type", false);
|
||||
static const config::t_token z_profile("profile", false);
|
||||
static const config::t_token z_portrait("portrait", false);
|
||||
static const config::t_token z_small_portrait("small_portrait", false);
|
||||
static const config::t_token z_small_profile("small_profile", false);
|
||||
static const config::t_token z_description("description", false);
|
||||
static const config::t_token z_new_attack("new_attack", false);
|
||||
static const config::t_token z_remove_attacks("remove_attacks", false);
|
||||
static const config::t_token z_attack("attack", false);
|
||||
static const config::t_token z_attack_list("attack_list", false);
|
||||
static const config::t_token z_effect_description("effect_description", false);
|
||||
static const config::t_token z_hitpoints("hitpoints", false);
|
||||
static const config::t_token z_increase_total("increase_total", false);
|
||||
static const config::t_token z_set("set", false);
|
||||
static const config::t_token z_set_total("set_total", false);
|
||||
static const config::t_token z_violate_maximum("violate_maximum", false);
|
||||
static const config::t_token z_HP("HP", false);
|
||||
static const config::t_token z_heal_full("heal_full", false);
|
||||
static const config::t_token z_movement("movement", false);
|
||||
static const config::t_token z_increase("increase", false);
|
||||
static const config::t_token z_moves("moves", false);
|
||||
static const config::t_token z_wesnoth("wesnoth", false);
|
||||
static const config::t_token z_max_experience("max_experience", false);
|
||||
static const config::t_token z_loyal("loyal", false);
|
||||
static const config::t_token z_upkeep("upkeep", false);
|
||||
static const config::t_token z_status("status", false);
|
||||
static const config::t_token z_add("add", false);
|
||||
static const config::t_token z_remove("remove", false);
|
||||
static const config::t_token z_movement_costs("movement_costs", false);
|
||||
static const config::t_token z_replace("replace", false);
|
||||
static const config::t_token z_defense("defense", false);
|
||||
static const config::t_token z_resistance("resistance", false);
|
||||
static const config::t_token z_zoc("zoc", false);
|
||||
static const config::t_token z_value("value", false);
|
||||
static const config::t_token z_new_ability("new_ability", false);
|
||||
static const config::t_token z_abilities("abilities", false);
|
||||
static const config::t_token z_remove_ability("remove_ability", false);
|
||||
static const config::t_token z_image_mod("image_mod", false);
|
||||
static const config::t_token z_new_animation("new_animation", false);
|
||||
static const config::t_token z_ellipse("ellipse", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_per_level("per level", false);
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
static const config::t_token & z_trait( generate_safe_static_const_t_interned(n_token::t_token("trait")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_fearless( generate_safe_static_const_t_interned(n_token::t_token("fearless")) );
|
||||
static const config::t_token & z_healthy( generate_safe_static_const_t_interned(n_token::t_token("healthy")) );
|
||||
static const config::t_token & z_effect( generate_safe_static_const_t_interned(n_token::t_token("effect")) );
|
||||
static const config::t_token & z_unit_type( generate_safe_static_const_t_interned(n_token::t_token("unit_type")) );
|
||||
static const config::t_token & z_unit_gender( generate_safe_static_const_t_interned(n_token::t_token("unit_gender")) );
|
||||
static const config::t_token & z_filter( generate_safe_static_const_t_interned(n_token::t_token("filter")) );
|
||||
static const config::t_token & z_apply_to( generate_safe_static_const_t_interned(n_token::t_token("apply_to")) );
|
||||
static const config::t_token & z_times( generate_safe_static_const_t_interned(n_token::t_token("times")) );
|
||||
static const config::t_token & z_variation( generate_safe_static_const_t_interned(n_token::t_token("variation")) );
|
||||
static const config::t_token & z_type( generate_safe_static_const_t_interned(n_token::t_token("type")) );
|
||||
static const config::t_token & z_profile( generate_safe_static_const_t_interned(n_token::t_token("profile")) );
|
||||
static const config::t_token & z_portrait( generate_safe_static_const_t_interned(n_token::t_token("portrait")) );
|
||||
static const config::t_token & z_small_portrait( generate_safe_static_const_t_interned(n_token::t_token("small_portrait")) );
|
||||
static const config::t_token & z_small_profile( generate_safe_static_const_t_interned(n_token::t_token("small_profile")) );
|
||||
static const config::t_token & z_description( generate_safe_static_const_t_interned(n_token::t_token("description")) );
|
||||
static const config::t_token & z_new_attack( generate_safe_static_const_t_interned(n_token::t_token("new_attack")) );
|
||||
static const config::t_token & z_remove_attacks( generate_safe_static_const_t_interned(n_token::t_token("remove_attacks")) );
|
||||
static const config::t_token & z_attack( generate_safe_static_const_t_interned(n_token::t_token("attack")) );
|
||||
static const config::t_token & z_attack_list( generate_safe_static_const_t_interned(n_token::t_token("attack_list")) );
|
||||
static const config::t_token & z_effect_description( generate_safe_static_const_t_interned(n_token::t_token("effect_description")) );
|
||||
static const config::t_token & z_hitpoints( generate_safe_static_const_t_interned(n_token::t_token("hitpoints")) );
|
||||
static const config::t_token & z_increase_total( generate_safe_static_const_t_interned(n_token::t_token("increase_total")) );
|
||||
static const config::t_token & z_set( generate_safe_static_const_t_interned(n_token::t_token("set")) );
|
||||
static const config::t_token & z_set_total( generate_safe_static_const_t_interned(n_token::t_token("set_total")) );
|
||||
static const config::t_token & z_violate_maximum( generate_safe_static_const_t_interned(n_token::t_token("violate_maximum")) );
|
||||
static const config::t_token & z_HP( generate_safe_static_const_t_interned(n_token::t_token("HP")) );
|
||||
static const config::t_token & z_heal_full( generate_safe_static_const_t_interned(n_token::t_token("heal_full")) );
|
||||
static const config::t_token & z_movement( generate_safe_static_const_t_interned(n_token::t_token("movement")) );
|
||||
static const config::t_token & z_increase( generate_safe_static_const_t_interned(n_token::t_token("increase")) );
|
||||
static const config::t_token & z_moves( generate_safe_static_const_t_interned(n_token::t_token("moves")) );
|
||||
static const config::t_token & z_wesnoth( generate_safe_static_const_t_interned(n_token::t_token("wesnoth")) );
|
||||
static const config::t_token & z_max_experience( generate_safe_static_const_t_interned(n_token::t_token("max_experience")) );
|
||||
static const config::t_token & z_loyal( generate_safe_static_const_t_interned(n_token::t_token("loyal")) );
|
||||
static const config::t_token & z_upkeep( generate_safe_static_const_t_interned(n_token::t_token("upkeep")) );
|
||||
static const config::t_token & z_status( generate_safe_static_const_t_interned(n_token::t_token("status")) );
|
||||
static const config::t_token & z_add( generate_safe_static_const_t_interned(n_token::t_token("add")) );
|
||||
static const config::t_token & z_remove( generate_safe_static_const_t_interned(n_token::t_token("remove")) );
|
||||
static const config::t_token & z_movement_costs( generate_safe_static_const_t_interned(n_token::t_token("movement_costs")) );
|
||||
static const config::t_token & z_replace( generate_safe_static_const_t_interned(n_token::t_token("replace")) );
|
||||
static const config::t_token & z_defense( generate_safe_static_const_t_interned(n_token::t_token("defense")) );
|
||||
static const config::t_token & z_resistance( generate_safe_static_const_t_interned(n_token::t_token("resistance")) );
|
||||
static const config::t_token & z_zoc( generate_safe_static_const_t_interned(n_token::t_token("zoc")) );
|
||||
static const config::t_token & z_value( generate_safe_static_const_t_interned(n_token::t_token("value")) );
|
||||
static const config::t_token & z_new_ability( generate_safe_static_const_t_interned(n_token::t_token("new_ability")) );
|
||||
static const config::t_token & z_abilities( generate_safe_static_const_t_interned(n_token::t_token("abilities")) );
|
||||
static const config::t_token & z_remove_ability( generate_safe_static_const_t_interned(n_token::t_token("remove_ability")) );
|
||||
static const config::t_token & z_image_mod( generate_safe_static_const_t_interned(n_token::t_token("image_mod")) );
|
||||
static const config::t_token & z_new_animation( generate_safe_static_const_t_interned(n_token::t_token("new_animation")) );
|
||||
static const config::t_token & z_ellipse( generate_safe_static_const_t_interned(n_token::t_token("ellipse")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_per_level( generate_safe_static_const_t_interned(n_token::t_token("per level")) );
|
||||
|
||||
//some trait activate specific flags
|
||||
if(type == z_trait) {
|
||||
|
@ -3014,9 +3006,9 @@ void unit::add_modification(const config::t_token& type, const config& mod, bool
|
|||
|
||||
void unit::add_trait_description(const config& trait, const t_string& description)
|
||||
{
|
||||
static const config::t_token z_female_name("female_name", false);
|
||||
static const config::t_token z_male_name("male_name", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token & z_female_name( generate_safe_static_const_t_interned(n_token::t_token("female_name")) );
|
||||
static const config::t_token & z_male_name( generate_safe_static_const_t_interned(n_token::t_token("male_name")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
|
||||
const config::t_token& gender_string = gender_ == unit_race::FEMALE ? z_female_name : z_male_name;
|
||||
config::attribute_value const &gender_specific_name = trait[gender_string];
|
||||
|
@ -3057,15 +3049,24 @@ const unit_animation* unit::choose_animation(const game_display& disp, const map
|
|||
}
|
||||
|
||||
|
||||
std::vector<config::t_token> const & unit::modification_types() const {
|
||||
static const config::t_token & z_advance( generate_safe_static_const_t_interned(n_token::t_token("advance")) );
|
||||
static const config::t_token & z_trait( generate_safe_static_const_t_interned(n_token::t_token("trait")) );
|
||||
static const config::t_token & z_object( generate_safe_static_const_t_interned(n_token::t_token("object")) );
|
||||
|
||||
static const config::t_token ModificationTypes[] = { z_advance, z_trait, z_object };
|
||||
static const std::vector<config::t_token> ModificationTypesV(ModificationTypes, ModificationTypes + sizeof(ModificationTypes) / sizeof(config::t_token));
|
||||
return ModificationTypesV;
|
||||
}
|
||||
|
||||
void unit::apply_modifications()
|
||||
{
|
||||
log_scope("apply mods");
|
||||
|
||||
for(size_t i = 0; i != NumModificationTypes; ++i) {
|
||||
const config::t_token& mod = ModificationTypes[i];
|
||||
foreach( const config::t_token& mod, modification_types()){
|
||||
foreach (const config &m, modifications_.child_range(mod)) {
|
||||
log_scope("add mod");
|
||||
add_modification(ModificationTypes[i], m, true);
|
||||
add_modification(mod , m, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3089,7 +3090,7 @@ bool unit::invisible(const map_location& loc, bool see_all, unit_map const & uni
|
|||
}
|
||||
|
||||
// Test hidden status
|
||||
static const config::t_token z_hides("hides", false);
|
||||
static const config::t_token & z_hides( generate_safe_static_const_t_interned(n_token::t_token("hides")) );
|
||||
bool is_inv = !get_state(STATE_UNCOVERED) && get_ability_bool(z_hides,loc);
|
||||
if(is_inv){
|
||||
foreach (const unit &u, units)
|
||||
|
@ -3138,7 +3139,7 @@ bool unit::is_visible_to_team(team const& team, bool const see_all, gamemap cons
|
|||
}
|
||||
|
||||
void unit::set_underlying_id() {
|
||||
static const config::t_token z_Unit("Unit", false);
|
||||
static const config::t_token & z_Unit( generate_safe_static_const_t_interned(n_token::t_token("Unit")) );
|
||||
|
||||
if(underlying_id_ == 0){
|
||||
underlying_id_ = n_unit::id_manager::instance().next_id();
|
||||
|
@ -3161,7 +3162,7 @@ unit& unit::clone(bool is_temporary)
|
|||
&& static_cast< std::string const &>(id_).find_first_not_of("0123456789", pos+1) == std::string::npos) {
|
||||
// this appears to be a duplicate of a generic unit, so give it a new id
|
||||
WRN_UT << "assigning new id to clone of generic unit " << id_ << "\n";
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
id_ = z_empty;
|
||||
set_underlying_id();
|
||||
}
|
||||
|
@ -3379,46 +3380,46 @@ std::string get_checksum(const unit& u) {
|
|||
config unit_config;
|
||||
config wcfg;
|
||||
u.write(unit_config);
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token z_advances_to("advances_to", false);
|
||||
static const config::t_token z_alignment("alignment", false);
|
||||
static const config::t_token z_cost("cost", false);
|
||||
static const config::t_token z_experience("experience", false);
|
||||
static const config::t_token z_gender("gender", false);
|
||||
static const config::t_token z_hitpoints("hitpoints", false);
|
||||
static const config::t_token z_ignore_race_traits("ignore_race_traits", false);
|
||||
static const config::t_token z_ignore_global_traits("ignore_global_traits", false);
|
||||
static const config::t_token z_level("level", false);
|
||||
static const config::t_token z_max_attacks("max_attacks", false);
|
||||
static const config::t_token z_max_experience("max_experience", false);
|
||||
static const config::t_token z_max_hitpoints("max_hitpoints", false);
|
||||
static const config::t_token z_max_moves("max_moves", false);
|
||||
static const config::t_token z_movement("movement", false);
|
||||
static const config::t_token z_movement_type("movement_type", false);
|
||||
static const config::t_token z_race("race", false);
|
||||
static const config::t_token z_random_traits("random_traits", false);
|
||||
static const config::t_token z_resting("resting", false);
|
||||
static const config::t_token z_undead_variation("undead_variation", false);
|
||||
static const config::t_token z_upkeep("upkeep", false);
|
||||
static const config::t_token z_zoc("zoc", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_type("type", false);
|
||||
static const config::t_token z_range("range", false);
|
||||
static const config::t_token z_damage("damage", false);
|
||||
static const config::t_token z_number("number", false);
|
||||
static const config::t_token z_attack("attack", false);
|
||||
static const config::t_token z_specials("specials", false);
|
||||
static const config::t_token z_description("description", false);
|
||||
static const config::t_token z_abilities("abilities", false);
|
||||
static const config::t_token z_description_inactive("description_inactive", false);
|
||||
static const config::t_token z_name_inactive("name_inactive", false);
|
||||
static const config::t_token z_trait("trait", false);
|
||||
static const config::t_token z_male_name("male_name", false);
|
||||
static const config::t_token z_female_name("female_name", false);
|
||||
static const config::t_token z_advance_from("advance_from", false);
|
||||
static const config::t_token z_defense("defense", false);
|
||||
static const config::t_token z_movement_costs("movement_costs", false);
|
||||
static const config::t_token z_resistance("resistance", false);
|
||||
|
||||
static const config::t_token & z_advances_to( generate_safe_static_const_t_interned(n_token::t_token("advances_to")) );
|
||||
static const config::t_token & z_alignment( generate_safe_static_const_t_interned(n_token::t_token("alignment")) );
|
||||
static const config::t_token & z_cost( generate_safe_static_const_t_interned(n_token::t_token("cost")) );
|
||||
static const config::t_token & z_experience( generate_safe_static_const_t_interned(n_token::t_token("experience")) );
|
||||
static const config::t_token & z_gender( generate_safe_static_const_t_interned(n_token::t_token("gender")) );
|
||||
static const config::t_token & z_hitpoints( generate_safe_static_const_t_interned(n_token::t_token("hitpoints")) );
|
||||
static const config::t_token & z_ignore_race_traits( generate_safe_static_const_t_interned(n_token::t_token("ignore_race_traits")) );
|
||||
static const config::t_token & z_ignore_global_traits( generate_safe_static_const_t_interned(n_token::t_token("ignore_global_traits")) );
|
||||
static const config::t_token & z_level( generate_safe_static_const_t_interned(n_token::t_token("level")) );
|
||||
static const config::t_token & z_max_attacks( generate_safe_static_const_t_interned(n_token::t_token("max_attacks")) );
|
||||
static const config::t_token & z_max_experience( generate_safe_static_const_t_interned(n_token::t_token("max_experience")) );
|
||||
static const config::t_token & z_max_hitpoints( generate_safe_static_const_t_interned(n_token::t_token("max_hitpoints")) );
|
||||
static const config::t_token & z_max_moves( generate_safe_static_const_t_interned(n_token::t_token("max_moves")) );
|
||||
static const config::t_token & z_movement( generate_safe_static_const_t_interned(n_token::t_token("movement")) );
|
||||
static const config::t_token & z_movement_type( generate_safe_static_const_t_interned(n_token::t_token("movement_type")) );
|
||||
static const config::t_token & z_race( generate_safe_static_const_t_interned(n_token::t_token("race")) );
|
||||
static const config::t_token & z_random_traits( generate_safe_static_const_t_interned(n_token::t_token("random_traits")) );
|
||||
static const config::t_token & z_resting( generate_safe_static_const_t_interned(n_token::t_token("resting")) );
|
||||
static const config::t_token & z_undead_variation( generate_safe_static_const_t_interned(n_token::t_token("undead_variation")) );
|
||||
static const config::t_token & z_upkeep( generate_safe_static_const_t_interned(n_token::t_token("upkeep")) );
|
||||
static const config::t_token & z_zoc( generate_safe_static_const_t_interned(n_token::t_token("zoc")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_type( generate_safe_static_const_t_interned(n_token::t_token("type")) );
|
||||
static const config::t_token & z_range( generate_safe_static_const_t_interned(n_token::t_token("range")) );
|
||||
static const config::t_token & z_damage( generate_safe_static_const_t_interned(n_token::t_token("damage")) );
|
||||
static const config::t_token & z_number( generate_safe_static_const_t_interned(n_token::t_token("number")) );
|
||||
static const config::t_token & z_attack( generate_safe_static_const_t_interned(n_token::t_token("attack")) );
|
||||
static const config::t_token & z_specials( generate_safe_static_const_t_interned(n_token::t_token("specials")) );
|
||||
static const config::t_token & z_description( generate_safe_static_const_t_interned(n_token::t_token("description")) );
|
||||
static const config::t_token & z_abilities( generate_safe_static_const_t_interned(n_token::t_token("abilities")) );
|
||||
static const config::t_token & z_description_inactive( generate_safe_static_const_t_interned(n_token::t_token("description_inactive")) );
|
||||
static const config::t_token & z_name_inactive( generate_safe_static_const_t_interned(n_token::t_token("name_inactive")) );
|
||||
static const config::t_token & z_trait( generate_safe_static_const_t_interned(n_token::t_token("trait")) );
|
||||
static const config::t_token & z_male_name( generate_safe_static_const_t_interned(n_token::t_token("male_name")) );
|
||||
static const config::t_token & z_female_name( generate_safe_static_const_t_interned(n_token::t_token("female_name")) );
|
||||
static const config::t_token & z_advance_from( generate_safe_static_const_t_interned(n_token::t_token("advance_from")) );
|
||||
static const config::t_token & z_defense( generate_safe_static_const_t_interned(n_token::t_token("defense")) );
|
||||
static const config::t_token & z_movement_costs( generate_safe_static_const_t_interned(n_token::t_token("movement_costs")) );
|
||||
static const config::t_token & z_resistance( generate_safe_static_const_t_interned(n_token::t_token("resistance")) );
|
||||
|
||||
static const n_token::t_token main_keys[] =
|
||||
{ z_advances_to,
|
||||
|
|
15
src/unit.hpp
15
src/unit.hpp
|
@ -104,7 +104,7 @@ public:
|
|||
config::t_token const & big_profile() const;
|
||||
/** Information about the unit -- a detailed description of it */
|
||||
t_string unit_description() const {
|
||||
static const config::t_token z_description("description", false);
|
||||
static const config::t_token & z_description( generate_safe_static_const_t_interned(n_token::t_token("description")) );
|
||||
return cfg_[z_description].t_str(); }
|
||||
|
||||
int hitpoints() const { return hit_points_; }
|
||||
|
@ -257,7 +257,7 @@ public:
|
|||
|
||||
std::vector<config> get_modification_advances() const;
|
||||
config::const_child_itors modification_advancements() const {
|
||||
static const config::t_token z_advancement("advancement", false);
|
||||
static const config::t_token & z_advancement( generate_safe_static_const_t_interned(n_token::t_token("advancement")) );
|
||||
return cfg_.child_range(z_advancement); }
|
||||
|
||||
size_t modification_count(const config::t_token& type, const std::string& id) const;
|
||||
|
@ -284,21 +284,21 @@ public:
|
|||
|
||||
/** The name of the file to game_display (used in menus). */
|
||||
config::t_token const & absolute_image() const {
|
||||
static const config::t_token z_image("image", false);
|
||||
static const config::t_token & z_image( generate_safe_static_const_t_interned(n_token::t_token("image")) );
|
||||
return cfg_[z_image].token(); }
|
||||
config::t_token const & image_halo() const {
|
||||
static const config::t_token z_halo("halo", false);
|
||||
static const config::t_token & z_halo( generate_safe_static_const_t_interned(n_token::t_token("halo")) );
|
||||
return cfg_[z_halo].token(); }
|
||||
|
||||
config::t_token const & image_ellipse() const {
|
||||
static const config::t_token z_ellipse("ellipse", false);
|
||||
static const config::t_token & z_ellipse( generate_safe_static_const_t_interned(n_token::t_token("ellipse")) );
|
||||
return cfg_[z_ellipse].token(); }
|
||||
|
||||
config &variables() { return variables_; }
|
||||
const config &variables() const { return variables_; }
|
||||
|
||||
config::t_token usage() const {
|
||||
static const config::t_token z_usage("usage", false);
|
||||
static const config::t_token & z_usage( generate_safe_static_const_t_interned(n_token::t_token("usage")) );
|
||||
return cfg_[z_usage].token(); }
|
||||
unit_type::ALIGNMENT alignment() const { return alignment_; }
|
||||
const unit_race* race() const { return race_; }
|
||||
|
@ -348,6 +348,9 @@ public:
|
|||
const std::string& get_priority_formula() const { return unit_priority_formula_; }
|
||||
|
||||
void backup_state();
|
||||
private:
|
||||
std::vector<config::t_token> const & modification_types() const;
|
||||
public:
|
||||
void apply_modifications();
|
||||
void generate_traits(bool musthaveonly=false, game_state* state = 0);
|
||||
void generate_name(rand_rng::simple_rng *rng = 0);
|
||||
|
|
|
@ -109,8 +109,8 @@ namespace unit_abilities {
|
|||
|
||||
static bool affects_side(const config& cfg, const t_teams& teams, size_t side, size_t other_side)
|
||||
{
|
||||
static const config::t_token z_affect_allies("affect_allies", false);
|
||||
static const config::t_token z_affect_enemies("affect_enemies", false);
|
||||
static const config::t_token & z_affect_allies( generate_safe_static_const_t_interned(n_token::t_token("affect_allies")) );
|
||||
static const config::t_token & z_affect_enemies( generate_safe_static_const_t_interned(n_token::t_token("affect_enemies")) );
|
||||
|
||||
if (side == other_side)
|
||||
return cfg[z_affect_allies].to_bool(true);
|
||||
|
@ -125,7 +125,7 @@ static bool affects_side(const config& cfg, const t_teams& teams, size_t side, s
|
|||
|
||||
bool unit::get_ability_bool(const config::t_token& ability, const map_location& loc, gamemap const & game_map, unit_map const & units, t_teams const & teams, LuaKernel & lua_kernel, tod_manager const & tod_manager) const
|
||||
{
|
||||
static const config::t_token z_abilities("abilities", false);
|
||||
static const config::t_token & z_abilities( generate_safe_static_const_t_interned(n_token::t_token("abilities")) );
|
||||
|
||||
if (const config &abilities = cfg_.child(z_abilities))
|
||||
{
|
||||
|
@ -159,7 +159,7 @@ bool unit::get_ability_bool(const config::t_token& ability, const map_location&
|
|||
}
|
||||
unit_ability_list unit::get_abilities(const config::t_token& ability, const map_location& loc) const
|
||||
{
|
||||
static const config::t_token z_abilities("abilities", false);
|
||||
static const config::t_token & z_abilities( generate_safe_static_const_t_interned(n_token::t_token("abilities")) );
|
||||
|
||||
unit_ability_list res;
|
||||
|
||||
|
@ -196,8 +196,8 @@ unit_ability_list unit::get_abilities(const config::t_token& ability, const map_
|
|||
|
||||
std::vector<std::string> unit::get_ability_list() const
|
||||
{
|
||||
static const config::t_token z_abilities("abilities", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token & z_abilities( generate_safe_static_const_t_interned(n_token::t_token("abilities")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
|
||||
std::vector<std::string> res;
|
||||
|
||||
|
@ -213,13 +213,13 @@ std::vector<std::string> unit::get_ability_list() const
|
|||
|
||||
std::vector<std::string> unit::ability_tooltips(bool force_active) const
|
||||
{
|
||||
static const config::t_token z_abilities("abilities", false);
|
||||
static const config::t_token z_female_name("female_name", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_description("description", false);
|
||||
static const config::t_token z_female_name_inactive("female_name_inactive", false);
|
||||
static const config::t_token z_name_inactive("name_inactive", false);
|
||||
static const config::t_token z_description_inactive("description_inactive", false);
|
||||
static const config::t_token & z_abilities( generate_safe_static_const_t_interned(n_token::t_token("abilities")) );
|
||||
static const config::t_token & z_female_name( generate_safe_static_const_t_interned(n_token::t_token("female_name")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_description( generate_safe_static_const_t_interned(n_token::t_token("description")) );
|
||||
static const config::t_token & z_female_name_inactive( generate_safe_static_const_t_interned(n_token::t_token("female_name_inactive")) );
|
||||
static const config::t_token & z_name_inactive( generate_safe_static_const_t_interned(n_token::t_token("name_inactive")) );
|
||||
static const config::t_token & z_description_inactive( generate_safe_static_const_t_interned(n_token::t_token("description_inactive")) );
|
||||
|
||||
std::vector<std::string> res;
|
||||
|
||||
|
@ -261,7 +261,7 @@ std::vector<std::string> unit::ability_tooltips(bool force_active) const
|
|||
*/
|
||||
static bool cache_illuminates(int &cache, std::string const &ability)
|
||||
{
|
||||
static const config::t_token z_illuminates("illuminates", false);
|
||||
static const config::t_token & z_illuminates( generate_safe_static_const_t_interned(n_token::t_token("illuminates")) );
|
||||
|
||||
if (cache < 0)
|
||||
cache = (ability == z_illuminates);
|
||||
|
@ -273,10 +273,10 @@ bool unit::ability_active(const std::string& ability,const config& cfg,const map
|
|||
, t_teams const & teams, LuaKernel & lua_kernel
|
||||
, tod_manager const & tod_manager) const
|
||||
{
|
||||
static const config::t_token z_filter("filter", false);
|
||||
static const config::t_token z_filter_adjacent("filter_adjacent", false);
|
||||
static const config::t_token z_adjacent("adjacent", false);
|
||||
static const config::t_token z_filter_adjacent_location("filter_adjacent_location", false);
|
||||
static const config::t_token & z_filter( generate_safe_static_const_t_interned(n_token::t_token("filter")) );
|
||||
static const config::t_token & z_filter_adjacent( generate_safe_static_const_t_interned(n_token::t_token("filter_adjacent")) );
|
||||
static const config::t_token & z_adjacent( generate_safe_static_const_t_interned(n_token::t_token("adjacent")) );
|
||||
static const config::t_token & z_filter_adjacent_location( generate_safe_static_const_t_interned(n_token::t_token("filter_adjacent_location")) );
|
||||
|
||||
int illuminates = -1;
|
||||
//assert(resources::units && resources::game_map && resources::teams && resources::tod_manager);
|
||||
|
@ -335,15 +335,15 @@ bool unit::ability_affects_adjacent(const std::string& ability, const config& cf
|
|||
tod_manager const & tod_manager
|
||||
) const
|
||||
{
|
||||
static const config::t_token z_n("n", false);
|
||||
static const config::t_token z_ne("ne", false);
|
||||
static const config::t_token z_se("se", false);
|
||||
static const config::t_token z_s("s", false);
|
||||
static const config::t_token z_sw("sw", false);
|
||||
static const config::t_token z_nw("nw", false);
|
||||
static const config::t_token z_affect_adjacent("affect_adjacent", false);
|
||||
static const config::t_token z_adjacent("adjacent", false);
|
||||
static const config::t_token z_filter("filter", false);
|
||||
static const config::t_token & z_n( generate_safe_static_const_t_interned(n_token::t_token("n")) );
|
||||
static const config::t_token & z_ne( generate_safe_static_const_t_interned(n_token::t_token("ne")) );
|
||||
static const config::t_token & z_se( generate_safe_static_const_t_interned(n_token::t_token("se")) );
|
||||
static const config::t_token & z_s( generate_safe_static_const_t_interned(n_token::t_token("s")) );
|
||||
static const config::t_token & z_sw( generate_safe_static_const_t_interned(n_token::t_token("sw")) );
|
||||
static const config::t_token & z_nw( generate_safe_static_const_t_interned(n_token::t_token("nw")) );
|
||||
static const config::t_token & z_affect_adjacent( generate_safe_static_const_t_interned(n_token::t_token("affect_adjacent")) );
|
||||
static const config::t_token & z_adjacent( generate_safe_static_const_t_interned(n_token::t_token("adjacent")) );
|
||||
static const config::t_token & z_filter( generate_safe_static_const_t_interned(n_token::t_token("filter")) );
|
||||
|
||||
int illuminates = -1;
|
||||
|
||||
|
@ -373,8 +373,8 @@ bool unit::ability_affects_self(const std::string& ability,const config& cfg,con
|
|||
, t_teams const & teams, LuaKernel & lua_kernel
|
||||
, tod_manager const & tod_manager
|
||||
) const {
|
||||
static const config::t_token z_filter_self("filter_self", false);
|
||||
static const config::t_token z_affect_self("affect_self", false);
|
||||
static const config::t_token & z_filter_self( generate_safe_static_const_t_interned(n_token::t_token("filter_self")) );
|
||||
static const config::t_token & z_affect_self( generate_safe_static_const_t_interned(n_token::t_token("affect_self")) );
|
||||
|
||||
int illuminates = -1;
|
||||
const config &filter = cfg.child(z_filter_self);
|
||||
|
@ -386,7 +386,7 @@ bool unit::ability_affects_self(const std::string& ability,const config& cfg,con
|
|||
|
||||
bool unit::has_ability_type(const config::t_token& ability) const
|
||||
{
|
||||
static const config::t_token z_abilities("abilities", false);
|
||||
static const config::t_token & z_abilities( generate_safe_static_const_t_interned(n_token::t_token("abilities")) );
|
||||
|
||||
if (const config &list = cfg_.child(z_abilities)) {
|
||||
config::const_child_itors itors = list.child_range(ability);
|
||||
|
@ -402,7 +402,7 @@ bool unit_ability_list::empty() const
|
|||
}
|
||||
|
||||
std::pair<int,map_location> unit_ability_list::highest(const config::t_token& key, int def) const {
|
||||
static const config::t_token z_cumulative("cumulative", false);
|
||||
static const config::t_token & z_cumulative( generate_safe_static_const_t_interned(n_token::t_token("cumulative")) );
|
||||
if (cfgs.empty()) {
|
||||
return std::make_pair(def, map_location());
|
||||
}
|
||||
|
@ -435,7 +435,7 @@ std::pair<int,map_location> unit_ability_list::highest(const config::t_token& ke
|
|||
|
||||
std::pair<int,map_location> unit_ability_list::lowest(const config::t_token& key, int def) const
|
||||
{
|
||||
static const config::t_token z_cumulative("cumulative", false);
|
||||
static const config::t_token & z_cumulative( generate_safe_static_const_t_interned(n_token::t_token("cumulative")) );
|
||||
|
||||
if (cfgs.empty()) {
|
||||
return std::make_pair(def, map_location());
|
||||
|
@ -498,7 +498,7 @@ std::pair<int,map_location> unit_ability_list::lowest(const config::t_token& key
|
|||
namespace {
|
||||
bool get_special_children(std::vector<const config*>& result, const config& parent,
|
||||
const config::t_token& id, bool just_peeking=false) {
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
|
||||
foreach (const config::any_child &sp, parent.all_children_range())
|
||||
{
|
||||
|
@ -516,7 +516,7 @@ namespace {
|
|||
|
||||
bool attack_type::get_special_bool(const config::t_token& special,bool force) const
|
||||
{
|
||||
static const config::t_token z_specials("specials", false);
|
||||
static const config::t_token & z_specials( generate_safe_static_const_t_interned(n_token::t_token("specials")) );
|
||||
|
||||
// log_scope("get_special_bool");
|
||||
if (const config &specials = cfg_.child(z_specials))
|
||||
|
@ -544,7 +544,7 @@ bool attack_type::get_special_bool(const config::t_token& special,bool force) co
|
|||
}
|
||||
|
||||
unit_ability_list attack_type::get_specials(const config::t_token& special) const {
|
||||
static const config::t_token z_specials("specials", false);
|
||||
static const config::t_token & z_specials( generate_safe_static_const_t_interned(n_token::t_token("specials")) );
|
||||
|
||||
// log_scope("get_specials");
|
||||
unit_ability_list res;
|
||||
|
@ -569,11 +569,11 @@ unit_ability_list attack_type::get_specials(const config::t_token& special) cons
|
|||
}
|
||||
std::vector<t_string> attack_type::special_tooltips(bool force) const
|
||||
{
|
||||
static const config::t_token z_specials("specials", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_description("description", false);
|
||||
static const config::t_token z_name_inactive("name_inactive", false);
|
||||
static const config::t_token z_description_inactive("description_inactive", false);
|
||||
static const config::t_token & z_specials( generate_safe_static_const_t_interned(n_token::t_token("specials")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_description( generate_safe_static_const_t_interned(n_token::t_token("description")) );
|
||||
static const config::t_token & z_name_inactive( generate_safe_static_const_t_interned(n_token::t_token("name_inactive")) );
|
||||
static const config::t_token & z_description_inactive( generate_safe_static_const_t_interned(n_token::t_token("description_inactive")) );
|
||||
|
||||
// log_scope("special_tooltips");
|
||||
std::vector<t_string> res;
|
||||
|
@ -600,10 +600,10 @@ std::vector<t_string> attack_type::special_tooltips(bool force) const
|
|||
}
|
||||
config::t_token attack_type::weapon_specials(bool force) const
|
||||
{
|
||||
static const config::t_token z_specials("specials", false);
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_name_inactive("name_inactive", false);
|
||||
static const config::t_token & z_specials( generate_safe_static_const_t_interned(n_token::t_token("specials")) );
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_name_inactive( generate_safe_static_const_t_interned(n_token::t_token("name_inactive")) );
|
||||
|
||||
// log_scope("weapon_specials");
|
||||
const config &specials = cfg_.child(z_specials);
|
||||
|
@ -637,17 +637,17 @@ bool attack_type::special_active(gamemap const & game_map, unit_map const & unit
|
|||
tod_manager const & tod_manager,
|
||||
const config& cfg, bool self) const
|
||||
{
|
||||
static const config::t_token z_active_on("active_on", false);
|
||||
static const config::t_token z_offense("offense", false);
|
||||
static const config::t_token z_filter_self("filter_self", false);
|
||||
static const config::t_token z_filter_weapon("filter_weapon", false);
|
||||
static const config::t_token z_filter_opponent("filter_opponent", false);
|
||||
static const config::t_token z_defense("defense", false);
|
||||
static const config::t_token z_filter_attacker("filter_attacker", false);
|
||||
static const config::t_token z_filter_defender("filter_defender", false);
|
||||
static const config::t_token z_filter_adjacent("filter_adjacent", false);
|
||||
static const config::t_token z_adjacent("adjacent", false);
|
||||
static const config::t_token z_filter_adjacent_location("filter_adjacent_location", false);
|
||||
static const config::t_token & z_active_on( generate_safe_static_const_t_interned(n_token::t_token("active_on")) );
|
||||
static const config::t_token & z_offense( generate_safe_static_const_t_interned(n_token::t_token("offense")) );
|
||||
static const config::t_token & z_filter_self( generate_safe_static_const_t_interned(n_token::t_token("filter_self")) );
|
||||
static const config::t_token & z_filter_weapon( generate_safe_static_const_t_interned(n_token::t_token("filter_weapon")) );
|
||||
static const config::t_token & z_filter_opponent( generate_safe_static_const_t_interned(n_token::t_token("filter_opponent")) );
|
||||
static const config::t_token & z_defense( generate_safe_static_const_t_interned(n_token::t_token("defense")) );
|
||||
static const config::t_token & z_filter_attacker( generate_safe_static_const_t_interned(n_token::t_token("filter_attacker")) );
|
||||
static const config::t_token & z_filter_defender( generate_safe_static_const_t_interned(n_token::t_token("filter_defender")) );
|
||||
static const config::t_token & z_filter_adjacent( generate_safe_static_const_t_interned(n_token::t_token("filter_adjacent")) );
|
||||
static const config::t_token & z_adjacent( generate_safe_static_const_t_interned(n_token::t_token("adjacent")) );
|
||||
static const config::t_token & z_filter_adjacent_location( generate_safe_static_const_t_interned(n_token::t_token("filter_adjacent_location")) );
|
||||
|
||||
// log_scope("special_active");
|
||||
assert(unitmap_ != NULL);
|
||||
|
@ -798,11 +798,11 @@ bool attack_type::special_active(gamemap const & game_map, unit_map const & unit
|
|||
*/
|
||||
bool attack_type::special_affects_opponent(const config& cfg) const
|
||||
{
|
||||
static const config::t_token z_apply_to("apply_to", false);
|
||||
static const config::t_token z_both("both", false);
|
||||
static const config::t_token z_opponent("opponent", false);
|
||||
static const config::t_token z_defender("defender", false);
|
||||
static const config::t_token z_attacker("attacker", false);
|
||||
static const config::t_token & z_apply_to( generate_safe_static_const_t_interned(n_token::t_token("apply_to")) );
|
||||
static const config::t_token & z_both( generate_safe_static_const_t_interned(n_token::t_token("both")) );
|
||||
static const config::t_token & z_opponent( generate_safe_static_const_t_interned(n_token::t_token("opponent")) );
|
||||
static const config::t_token & z_defender( generate_safe_static_const_t_interned(n_token::t_token("defender")) );
|
||||
static const config::t_token & z_attacker( generate_safe_static_const_t_interned(n_token::t_token("attacker")) );
|
||||
|
||||
// log_scope("special_affects_opponent");
|
||||
config::attribute_value const &apply_to = cfg[z_apply_to];
|
||||
|
@ -825,11 +825,11 @@ bool attack_type::special_affects_opponent(const config& cfg) const
|
|||
*/
|
||||
bool attack_type::special_affects_self(const config& cfg) const
|
||||
{
|
||||
static const config::t_token z_apply_to("apply_to", false);
|
||||
static const config::t_token z_both("both", false);
|
||||
static const config::t_token z_self("self", false);
|
||||
static const config::t_token z_attacker("attacker", false);
|
||||
static const config::t_token z_defender("defender", false);
|
||||
static const config::t_token & z_apply_to( generate_safe_static_const_t_interned(n_token::t_token("apply_to")) );
|
||||
static const config::t_token & z_both( generate_safe_static_const_t_interned(n_token::t_token("both")) );
|
||||
static const config::t_token & z_self( generate_safe_static_const_t_interned(n_token::t_token("self")) );
|
||||
static const config::t_token & z_attacker( generate_safe_static_const_t_interned(n_token::t_token("attacker")) );
|
||||
static const config::t_token & z_defender( generate_safe_static_const_t_interned(n_token::t_token("defender")) );
|
||||
|
||||
// log_scope("special_affects_self");
|
||||
config::attribute_value const &apply_to = cfg[z_apply_to];
|
||||
|
@ -880,13 +880,13 @@ void individual_effect::set(value_modifier t, int val, const config *abil, const
|
|||
|
||||
bool filter_base_matches(const config& cfg, int def)
|
||||
{
|
||||
static const config::t_token z_filter_base_value("filter_base_value", false);
|
||||
static const config::t_token z_equals("equals", false);
|
||||
static const config::t_token z_not_equals("not_equals", false);
|
||||
static const config::t_token z_less_than("less_than", false);
|
||||
static const config::t_token z_greater_than("greater_than", false);
|
||||
static const config::t_token z_greater_than_equal_to("greater_than_equal_to", false);
|
||||
static const config::t_token z_less_than_equal_to("less_than_equal_to", false);
|
||||
static const config::t_token & z_filter_base_value( generate_safe_static_const_t_interned(n_token::t_token("filter_base_value")) );
|
||||
static const config::t_token & z_equals( generate_safe_static_const_t_interned(n_token::t_token("equals")) );
|
||||
static const config::t_token & z_not_equals( generate_safe_static_const_t_interned(n_token::t_token("not_equals")) );
|
||||
static const config::t_token & z_less_than( generate_safe_static_const_t_interned(n_token::t_token("less_than")) );
|
||||
static const config::t_token & z_greater_than( generate_safe_static_const_t_interned(n_token::t_token("greater_than")) );
|
||||
static const config::t_token & z_greater_than_equal_to( generate_safe_static_const_t_interned(n_token::t_token("greater_than_equal_to")) );
|
||||
static const config::t_token & z_less_than_equal_to( generate_safe_static_const_t_interned(n_token::t_token("less_than_equal_to")) );
|
||||
|
||||
if (const config &apply_filter = cfg.child(z_filter_base_value)) {
|
||||
config::attribute_value cond_eq = apply_filter[z_equals];
|
||||
|
@ -909,15 +909,15 @@ effect::effect(const unit_ability_list& list, int def, bool backstab) :
|
|||
effect_list_(),
|
||||
composite_value_(0)
|
||||
{
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_backstab("backstab", false);
|
||||
static const config::t_token z_value("value", false);
|
||||
static const config::t_token z_cumulative("cumulative", false);
|
||||
static const config::t_token z_add("add", false);
|
||||
static const config::t_token z_sub("sub", false);
|
||||
static const config::t_token z_multiply("multiply", false);
|
||||
static const config::t_token z_divide("divide", false);
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_backstab( generate_safe_static_const_t_interned(n_token::t_token("backstab")) );
|
||||
static const config::t_token & z_value( generate_safe_static_const_t_interned(n_token::t_token("value")) );
|
||||
static const config::t_token & z_cumulative( generate_safe_static_const_t_interned(n_token::t_token("cumulative")) );
|
||||
static const config::t_token & z_add( generate_safe_static_const_t_interned(n_token::t_token("add")) );
|
||||
static const config::t_token & z_sub( generate_safe_static_const_t_interned(n_token::t_token("sub")) );
|
||||
static const config::t_token & z_multiply( generate_safe_static_const_t_interned(n_token::t_token("multiply")) );
|
||||
static const config::t_token & z_divide( generate_safe_static_const_t_interned(n_token::t_token("divide")) );
|
||||
|
||||
|
||||
int value_set = def;
|
||||
|
|
|
@ -30,30 +30,30 @@
|
|||
|
||||
struct tag_name_manager {
|
||||
tag_name_manager() : names() {
|
||||
static const config::t_token z_animation("animation", false);
|
||||
static const config::t_token z_attack_anim("attack_anim", false);
|
||||
static const config::t_token z_death("death", false);
|
||||
static const config::t_token z_defend("defend", false);
|
||||
static const config::t_token z_extra_anim("extra_anim", false);
|
||||
static const config::t_token z_healed_anim("healed_anim", false);
|
||||
static const config::t_token z_healing_anim("healing_anim", false);
|
||||
static const config::t_token z_idle_anim("idle_anim", false);
|
||||
static const config::t_token z_leading_anim("leading_anim", false);
|
||||
static const config::t_token z_resistance_anim("resistance_anim", false);
|
||||
static const config::t_token z_levelin_anim("levelin_anim", false);
|
||||
static const config::t_token z_levelout_anim("levelout_anim", false);
|
||||
static const config::t_token z_movement_anim("movement_anim", false);
|
||||
static const config::t_token z_poison_anim("poison_anim", false);
|
||||
static const config::t_token z_recruit_anim("recruit_anim", false);
|
||||
static const config::t_token z_recruiting_anim("recruiting_anim", false);
|
||||
static const config::t_token z_standing_anim("standing_anim", false);
|
||||
static const config::t_token z_teleport_anim("teleport_anim", false);
|
||||
static const config::t_token z_pre_movement_anim("pre_movement_anim", false);
|
||||
static const config::t_token z_post_movement_anim("post_movement_anim", false);
|
||||
static const config::t_token z_draw_weapon_anim("draw_weapon_anim", false);
|
||||
static const config::t_token z_sheath_weapon_anim("sheath_weapon_anim", false);
|
||||
static const config::t_token z_victory_anim("victory_anim", false);
|
||||
static const config::t_token z__transparent("_transparent", false);
|
||||
static const config::t_token & z_animation( generate_safe_static_const_t_interned(n_token::t_token("animation")) );
|
||||
static const config::t_token & z_attack_anim( generate_safe_static_const_t_interned(n_token::t_token("attack_anim")) );
|
||||
static const config::t_token & z_death( generate_safe_static_const_t_interned(n_token::t_token("death")) );
|
||||
static const config::t_token & z_defend( generate_safe_static_const_t_interned(n_token::t_token("defend")) );
|
||||
static const config::t_token & z_extra_anim( generate_safe_static_const_t_interned(n_token::t_token("extra_anim")) );
|
||||
static const config::t_token & z_healed_anim( generate_safe_static_const_t_interned(n_token::t_token("healed_anim")) );
|
||||
static const config::t_token & z_healing_anim( generate_safe_static_const_t_interned(n_token::t_token("healing_anim")) );
|
||||
static const config::t_token & z_idle_anim( generate_safe_static_const_t_interned(n_token::t_token("idle_anim")) );
|
||||
static const config::t_token & z_leading_anim( generate_safe_static_const_t_interned(n_token::t_token("leading_anim")) );
|
||||
static const config::t_token & z_resistance_anim( generate_safe_static_const_t_interned(n_token::t_token("resistance_anim")) );
|
||||
static const config::t_token & z_levelin_anim( generate_safe_static_const_t_interned(n_token::t_token("levelin_anim")) );
|
||||
static const config::t_token & z_levelout_anim( generate_safe_static_const_t_interned(n_token::t_token("levelout_anim")) );
|
||||
static const config::t_token & z_movement_anim( generate_safe_static_const_t_interned(n_token::t_token("movement_anim")) );
|
||||
static const config::t_token & z_poison_anim( generate_safe_static_const_t_interned(n_token::t_token("poison_anim")) );
|
||||
static const config::t_token & z_recruit_anim( generate_safe_static_const_t_interned(n_token::t_token("recruit_anim")) );
|
||||
static const config::t_token & z_recruiting_anim( generate_safe_static_const_t_interned(n_token::t_token("recruiting_anim")) );
|
||||
static const config::t_token & z_standing_anim( generate_safe_static_const_t_interned(n_token::t_token("standing_anim")) );
|
||||
static const config::t_token & z_teleport_anim( generate_safe_static_const_t_interned(n_token::t_token("teleport_anim")) );
|
||||
static const config::t_token & z_pre_movement_anim( generate_safe_static_const_t_interned(n_token::t_token("pre_movement_anim")) );
|
||||
static const config::t_token & z_post_movement_anim( generate_safe_static_const_t_interned(n_token::t_token("post_movement_anim")) );
|
||||
static const config::t_token & z_draw_weapon_anim( generate_safe_static_const_t_interned(n_token::t_token("draw_weapon_anim")) );
|
||||
static const config::t_token & z_sheath_weapon_anim( generate_safe_static_const_t_interned(n_token::t_token("sheath_weapon_anim")) );
|
||||
static const config::t_token & z_victory_anim( generate_safe_static_const_t_interned(n_token::t_token("victory_anim")) );
|
||||
static const config::t_token & z__transparent( generate_safe_static_const_t_interned(n_token::t_token("_transparent")) );
|
||||
|
||||
names.push_back(z_animation);
|
||||
names.push_back(z_attack_anim);
|
||||
|
@ -131,8 +131,8 @@ struct animation_cursor
|
|||
|
||||
static void prepare_single_animation(const config &anim_cfg, animation_branches &expanded_anims)
|
||||
{
|
||||
static const config::t_token z_if("if", false);
|
||||
static const config::t_token z_else("else", false);
|
||||
static const config::t_token & z_if( generate_safe_static_const_t_interned(n_token::t_token("if")) );
|
||||
static const config::t_token & z_else( generate_safe_static_const_t_interned(n_token::t_token("else")) );
|
||||
|
||||
std::list<animation_cursor> anim_cursors;
|
||||
anim_cursors.push_back(animation_cursor(anim_cfg));
|
||||
|
@ -238,21 +238,21 @@ unit_animation::unit_animation(const config& cfg,const n_token::t_token& frame_s
|
|||
play_offscreen_(true),
|
||||
overlaped_hex_()
|
||||
{
|
||||
static const config::t_token z_apply_to("apply_to", false);
|
||||
static const config::t_token z_direction("direction", false);
|
||||
static const config::t_token z_filter("filter", false);
|
||||
static const config::t_token z_filter_second("filter_second", false);
|
||||
static const config::t_token z_value("value", false);
|
||||
static const config::t_token z_hits("hits", false);
|
||||
static const config::t_token z_yes("yes", false);
|
||||
static const config::t_token z_hit("hit", false);
|
||||
static const config::t_token z_no("no", false);
|
||||
static const config::t_token z_miss("miss", false);
|
||||
static const config::t_token z_kill("kill", false);
|
||||
static const config::t_token z_value_second("value_second", false);
|
||||
static const config::t_token z_filter_attack("filter_attack", false);
|
||||
static const config::t_token z_filter_second_attack("filter_second_attack", false);
|
||||
static const config::t_token z_offscreen("offscreen", false);
|
||||
static const config::t_token & z_apply_to( generate_safe_static_const_t_interned(n_token::t_token("apply_to")) );
|
||||
static const config::t_token & z_direction( generate_safe_static_const_t_interned(n_token::t_token("direction")) );
|
||||
static const config::t_token & z_filter( generate_safe_static_const_t_interned(n_token::t_token("filter")) );
|
||||
static const config::t_token & z_filter_second( generate_safe_static_const_t_interned(n_token::t_token("filter_second")) );
|
||||
static const config::t_token & z_value( generate_safe_static_const_t_interned(n_token::t_token("value")) );
|
||||
static const config::t_token & z_hits( generate_safe_static_const_t_interned(n_token::t_token("hits")) );
|
||||
static const config::t_token & z_yes( generate_safe_static_const_t_interned(n_token::t_token("yes")) );
|
||||
static const config::t_token & z_hit( generate_safe_static_const_t_interned(n_token::t_token("hit")) );
|
||||
static const config::t_token & z_no( generate_safe_static_const_t_interned(n_token::t_token("no")) );
|
||||
static const config::t_token & z_miss( generate_safe_static_const_t_interned(n_token::t_token("miss")) );
|
||||
static const config::t_token & z_kill( generate_safe_static_const_t_interned(n_token::t_token("kill")) );
|
||||
static const config::t_token & z_value_second( generate_safe_static_const_t_interned(n_token::t_token("value_second")) );
|
||||
static const config::t_token & z_filter_attack( generate_safe_static_const_t_interned(n_token::t_token("filter_attack")) );
|
||||
static const config::t_token & z_filter_second_attack( generate_safe_static_const_t_interned(n_token::t_token("filter_second_attack")) );
|
||||
static const config::t_token & z_offscreen( generate_safe_static_const_t_interned(n_token::t_token("offscreen")) );
|
||||
|
||||
// if(!cfg[z_debug].empty()) printf("DEBUG WML: FINAL\n%s\n\n",cfg.debug().c_str());
|
||||
foreach (const config::any_child &fr, cfg.all_children_range())
|
||||
|
@ -407,38 +407,38 @@ int unit_animation::matches(const game_display &disp,const map_location& loc,con
|
|||
|
||||
void unit_animation::fill_initial_animations( std::vector<unit_animation> & animations, const config & cfg)
|
||||
{
|
||||
static const config::t_token z_GS("~GS()", false);
|
||||
static const config::t_token z_local_heal_wav("heal.wav", false);
|
||||
static const config::t_token z_local_pois_sound("poison.ogg", false);
|
||||
static const config::t_token z_image("image", false);
|
||||
static const config::t_token z_default("default", false);
|
||||
static const config::t_token z__disabled_("_disabled_", false);
|
||||
static const config::t_token z__disabled_selected_("_disabled_selected_", false);
|
||||
static const config::t_token z_standing("standing", false);
|
||||
static const config::t_token z_ghosted("ghosted", false);
|
||||
static const config::t_token z_disabled_ghosted("disabled_ghosted", false);
|
||||
static const config::t_token z_selected("selected", false);
|
||||
static const config::t_token z_recruited("recruited", false);
|
||||
static const config::t_token z_levelin("levelin", false);
|
||||
static const config::t_token z_levelout("levelout", false);
|
||||
static const config::t_token z_pre_movement("pre_movement", false);
|
||||
static const config::t_token z_post_movement("post_movement", false);
|
||||
static const config::t_token z_movement("movement", false);
|
||||
static const config::t_token z_defend("defend", false);
|
||||
static const config::t_token z_attack("attack", false);
|
||||
static const config::t_token z_range("range", false);
|
||||
static const config::t_token z_melee("melee", false);
|
||||
static const config::t_token z_ranged("ranged", false);
|
||||
static const config::t_token z_death("death", false);
|
||||
static const config::t_token z__death_sound("_death_sound", false);
|
||||
static const config::t_token z_die_sound("die_sound", false);
|
||||
static const config::t_token z_victory("victory", false);
|
||||
static const config::t_token z_pre_teleport("pre_teleport", false);
|
||||
static const config::t_token z_post_teleport("post_teleport", false);
|
||||
static const config::t_token z_healed("healed", false);
|
||||
static const config::t_token z__healed_sound("_healed_sound", false);
|
||||
static const config::t_token z_poisoned("poisoned", false);
|
||||
static const config::t_token z__poison_sound("_poison_sound", false);
|
||||
static const config::t_token & z_GS( generate_safe_static_const_t_interned(n_token::t_token("~GS()")) );
|
||||
static const config::t_token & z_local_heal_wav( generate_safe_static_const_t_interned(n_token::t_token("heal.wav")) );
|
||||
static const config::t_token & z_local_pois_sound( generate_safe_static_const_t_interned(n_token::t_token("poison.ogg")) );
|
||||
static const config::t_token & z_image( generate_safe_static_const_t_interned(n_token::t_token("image")) );
|
||||
static const config::t_token & z_default( generate_safe_static_const_t_interned(n_token::t_token("default")) );
|
||||
static const config::t_token & z__disabled_( generate_safe_static_const_t_interned(n_token::t_token("_disabled_")) );
|
||||
static const config::t_token & z__disabled_selected_( generate_safe_static_const_t_interned(n_token::t_token("_disabled_selected_")) );
|
||||
static const config::t_token & z_standing( generate_safe_static_const_t_interned(n_token::t_token("standing")) );
|
||||
static const config::t_token & z_ghosted( generate_safe_static_const_t_interned(n_token::t_token("ghosted")) );
|
||||
static const config::t_token & z_disabled_ghosted( generate_safe_static_const_t_interned(n_token::t_token("disabled_ghosted")) );
|
||||
static const config::t_token & z_selected( generate_safe_static_const_t_interned(n_token::t_token("selected")) );
|
||||
static const config::t_token & z_recruited( generate_safe_static_const_t_interned(n_token::t_token("recruited")) );
|
||||
static const config::t_token & z_levelin( generate_safe_static_const_t_interned(n_token::t_token("levelin")) );
|
||||
static const config::t_token & z_levelout( generate_safe_static_const_t_interned(n_token::t_token("levelout")) );
|
||||
static const config::t_token & z_pre_movement( generate_safe_static_const_t_interned(n_token::t_token("pre_movement")) );
|
||||
static const config::t_token & z_post_movement( generate_safe_static_const_t_interned(n_token::t_token("post_movement")) );
|
||||
static const config::t_token & z_movement( generate_safe_static_const_t_interned(n_token::t_token("movement")) );
|
||||
static const config::t_token & z_defend( generate_safe_static_const_t_interned(n_token::t_token("defend")) );
|
||||
static const config::t_token & z_attack( generate_safe_static_const_t_interned(n_token::t_token("attack")) );
|
||||
static const config::t_token & z_range( generate_safe_static_const_t_interned(n_token::t_token("range")) );
|
||||
static const config::t_token & z_melee( generate_safe_static_const_t_interned(n_token::t_token("melee")) );
|
||||
static const config::t_token & z_ranged( generate_safe_static_const_t_interned(n_token::t_token("ranged")) );
|
||||
static const config::t_token & z_death( generate_safe_static_const_t_interned(n_token::t_token("death")) );
|
||||
static const config::t_token & z__death_sound( generate_safe_static_const_t_interned(n_token::t_token("_death_sound")) );
|
||||
static const config::t_token & z_die_sound( generate_safe_static_const_t_interned(n_token::t_token("die_sound")) );
|
||||
static const config::t_token & z_victory( generate_safe_static_const_t_interned(n_token::t_token("victory")) );
|
||||
static const config::t_token & z_pre_teleport( generate_safe_static_const_t_interned(n_token::t_token("pre_teleport")) );
|
||||
static const config::t_token & z_post_teleport( generate_safe_static_const_t_interned(n_token::t_token("post_teleport")) );
|
||||
static const config::t_token & z_healed( generate_safe_static_const_t_interned(n_token::t_token("healed")) );
|
||||
static const config::t_token & z__healed_sound( generate_safe_static_const_t_interned(n_token::t_token("_healed_sound")) );
|
||||
static const config::t_token & z_poisoned( generate_safe_static_const_t_interned(n_token::t_token("poisoned")) );
|
||||
static const config::t_token & z__poison_sound( generate_safe_static_const_t_interned(n_token::t_token("_poison_sound")) );
|
||||
|
||||
const image::locator default_image = image::locator(cfg[z_image].token());
|
||||
std::vector<unit_animation> animation_base;
|
||||
|
@ -457,7 +457,7 @@ static const config::t_token z_local_pois_sound("poison.ogg", false);
|
|||
|
||||
animations.push_back(unit_animation(0,frame_builder().image(default_image).duration(1),z__disabled_,0));
|
||||
{
|
||||
static const config::t_token z_local_blend("0.0~0.3:100,0.3~0.0:200", false);
|
||||
static const config::t_token & z_local_blend( generate_safe_static_const_t_interned(n_token::t_token("0.0~0.3:100,0.3~0.0:200")) );
|
||||
animations.push_back(unit_animation(0,frame_builder().image(default_image).duration(300).
|
||||
blend(z_local_blend,display::rgb(255,255,255)),z__disabled_selected_,0));
|
||||
}
|
||||
|
@ -474,22 +474,22 @@ static const config::t_token z_local_pois_sound("poison.ogg", false);
|
|||
animations.push_back(*itor);
|
||||
animations.back().event_ = utils::split_token(z_ghosted);
|
||||
|
||||
static const config::t_token z_local_0p9("0.9", false);
|
||||
static const config::t_token & z_local_0p9( generate_safe_static_const_t_interned(n_token::t_token("0.9")) );
|
||||
animations.back().unit_anim_.override(0,animations.back().unit_anim_.get_animation_duration(),particule::UNSET,z_local_0p9,n_token::t_token::z_empty(),0,n_token::t_token::z_empty(),n_token::t_token::z_empty(), z_GS);
|
||||
|
||||
animations.push_back(*itor);
|
||||
animations.back().event_ = utils::split_token(z_disabled_ghosted);
|
||||
static const config::t_token z_local_0p4("0.4", false);
|
||||
static const config::t_token & z_local_0p4( generate_safe_static_const_t_interned(n_token::t_token("0.4")) );
|
||||
animations.back().unit_anim_.override(0,1,particule::UNSET,z_local_0p4 ,n_token::t_token::z_empty(),0,n_token::t_token::z_empty(),n_token::t_token::z_empty(),z_GS);
|
||||
|
||||
animations.push_back(*itor);
|
||||
animations.back().event_ = utils::split_token(z_selected);
|
||||
static const config::t_token z_local_t1("0.0~0.3:100,0.3~0.0:200", false);
|
||||
static const config::t_token & z_local_t1( generate_safe_static_const_t_interned(n_token::t_token("0.0~0.3:100,0.3~0.0:200")) );
|
||||
animations.back().unit_anim_.override(0,300,particule::UNSET,n_token::t_token::z_empty(),z_local_t1,display::rgb(255,255,255));
|
||||
|
||||
animations.push_back(*itor);
|
||||
animations.back().event_ = utils::split_token(z_recruited);
|
||||
static const config::t_token z_local_0_1_600("0~1:600", false);
|
||||
static const config::t_token & z_local_0_1_600( generate_safe_static_const_t_interned(n_token::t_token("0~1:600")) );
|
||||
animations.back().unit_anim_.override(0,600,particule::NO_CYCLE, z_local_0_1_600);
|
||||
|
||||
animations.push_back(*itor);
|
||||
|
@ -498,7 +498,7 @@ static const config::t_token z_local_pois_sound("poison.ogg", false);
|
|||
|
||||
animations.push_back(*itor);
|
||||
animations.back().event_ = utils::split_token(z_levelout);
|
||||
static const config::t_token z_local_0_1_600_1("0~1:600,1", false);
|
||||
static const config::t_token & z_local_0_1_600_1( generate_safe_static_const_t_interned(n_token::t_token("0~1:600,1")) );
|
||||
animations.back().unit_anim_.override(0,600,particule::NO_CYCLE,n_token::t_token::z_empty(), z_local_0_1_600_1,display::rgb(255,255,255));
|
||||
|
||||
animations.push_back(*itor);
|
||||
|
@ -509,13 +509,13 @@ static const config::t_token z_local_pois_sound("poison.ogg", false);
|
|||
|
||||
animations.push_back(*itor);
|
||||
animations.back().event_ = utils::split_token(z_movement);
|
||||
static const config::t_token z_local_try_and_parse_me("0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,", false);
|
||||
static const n_token::t_token z_local_move_layer(lexical_cast<std::string>(display::LAYER_UNIT_MOVE_DEFAULT-display::LAYER_UNIT_FIRST), false);
|
||||
static const config::t_token & z_local_try_and_parse_me( generate_safe_static_const_t_interned(n_token::t_token("0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,0~1:200,")) );
|
||||
static const n_token::t_token & z_local_move_layer( generate_safe_static_const_t_interned(n_token::t_token(lexical_cast<std::string>(display::LAYER_UNIT_MOVE_DEFAULT-display::LAYER_UNIT_FIRST)) ) );
|
||||
animations.back().unit_anim_.override(0,6800,particule::NO_CYCLE,n_token::t_token::z_empty(),n_token::t_token::z_empty(),0,z_local_try_and_parse_me , z_local_move_layer);
|
||||
|
||||
animations.push_back(*itor);
|
||||
animations.back().event_ = utils::split_token(z_defend);
|
||||
static const config::t_token z_local_t2("0.0,0.5:75,0.0:75,0.5:75,0.0", false);
|
||||
static const config::t_token & z_local_t2( generate_safe_static_const_t_interned(n_token::t_token("0.0,0.5:75,0.0:75,0.5:75,0.0")) );
|
||||
animations.back().unit_anim_.override(0,animations.back().unit_anim_.get_animation_duration(),particule::NO_CYCLE,n_token::t_token::z_empty(), z_local_t2,game_display::rgb(255,0,0));
|
||||
animations.back().hits_.push_back(HIT);
|
||||
animations.back().hits_.push_back(KILL);
|
||||
|
@ -525,7 +525,7 @@ static const config::t_token z_local_pois_sound("poison.ogg", false);
|
|||
|
||||
animations.push_back(*itor);
|
||||
animations.back().event_ = utils::split_token(z_attack);
|
||||
static const config::t_token z_local_t4("0~0.6:150,0.6~0:150", false);
|
||||
static const config::t_token & z_local_t4( generate_safe_static_const_t_interned(n_token::t_token("0~0.6:150,0.6~0:150")) );
|
||||
animations.back().unit_anim_.override(-150,300,particule::NO_CYCLE,n_token::t_token::z_empty(),n_token::t_token::z_empty(),0, z_local_t4,z_local_move_layer);
|
||||
animations.back().primary_attack_filter_.push_back(config());
|
||||
animations.back().primary_attack_filter_.back()[z_range] = z_melee;
|
||||
|
@ -538,7 +538,7 @@ static const config::t_token z_local_pois_sound("poison.ogg", false);
|
|||
|
||||
animations.push_back(*itor);
|
||||
animations.back().event_ = utils::split_token(z_death);
|
||||
static const config::t_token z_local_1_0_600("1~0:600", false);
|
||||
static const config::t_token & z_local_1_0_600( generate_safe_static_const_t_interned(n_token::t_token("1~0:600")) );
|
||||
animations.back().unit_anim_.override(0,600,particule::NO_CYCLE, z_local_1_0_600);
|
||||
animations.back().sub_anims_[z__death_sound] = particule();
|
||||
animations.back().sub_anims_[z__death_sound].add_frame(1,frame_builder());
|
||||
|
@ -548,18 +548,18 @@ static const config::t_token z_local_pois_sound("poison.ogg", false);
|
|||
animations.back().event_ = utils::split_token(z_victory);
|
||||
|
||||
animations.push_back(*itor);
|
||||
static const config::t_token z_local_pretele("1~0:150", false);
|
||||
static const config::t_token & z_local_pretele( generate_safe_static_const_t_interned(n_token::t_token("1~0:150")) );
|
||||
animations.back().unit_anim_.override(0,150,particule::NO_CYCLE,z_local_pretele);
|
||||
animations.back().event_ = utils::split_token(z_pre_teleport);
|
||||
|
||||
animations.push_back(*itor);
|
||||
static const config::t_token z_local_posttele("0~1:150,1", false);
|
||||
static const config::t_token & z_local_posttele( generate_safe_static_const_t_interned(n_token::t_token("0~1:150,1")) );
|
||||
animations.back().unit_anim_.override(0,150,particule::NO_CYCLE, z_local_posttele);
|
||||
animations.back().event_ = utils::split_token(z_post_teleport);
|
||||
|
||||
animations.push_back(*itor);
|
||||
animations.back().event_ = utils::split_token(z_healed);
|
||||
static const config::t_token z_local_healed("0:30,0.5:30,0:30,0.5:30,0:30,0.5:30,0:30,0.5:30,0:30", false);
|
||||
static const config::t_token & z_local_healed( generate_safe_static_const_t_interned(n_token::t_token("0:30,0.5:30,0:30,0.5:30,0:30,0.5:30,0:30,0.5:30,0:30")) );
|
||||
animations.back().unit_anim_.override(0,300,particule::NO_CYCLE,n_token::t_token::z_empty(),z_local_healed,display::rgb(255,255,255));
|
||||
animations.back().sub_anims_[z__healed_sound] = particule();
|
||||
animations.back().sub_anims_[z__healed_sound].add_frame(1,frame_builder());
|
||||
|
@ -567,7 +567,7 @@ static const config::t_token z_local_pois_sound("poison.ogg", false);
|
|||
|
||||
animations.push_back(*itor);
|
||||
animations.back().event_ = utils::split_token(z_poisoned);
|
||||
static const config::t_token z_local_pois("0:30,0.5:30,0:30,0.5:30,0:30,0.5:30,0:30,0.5:30,0:30", false);
|
||||
static const config::t_token & z_local_pois( generate_safe_static_const_t_interned(n_token::t_token("0:30,0.5:30,0:30,0.5:30,0:30,0.5:30,0:30,0.5:30,0:30")) );
|
||||
animations.back().unit_anim_.override(0,300,particule::NO_CYCLE,n_token::t_token::z_empty(), z_local_pois,display::rgb(0,255,0));
|
||||
animations.back().sub_anims_[z__poison_sound] = particule();
|
||||
animations.back().sub_anims_[z__poison_sound].add_frame(1,frame_builder());
|
||||
|
@ -581,9 +581,9 @@ static void add_simple_anim(std::vector<unit_animation> &animations, const confi
|
|||
display::tdrawing_layer layer = display::LAYER_UNIT_DEFAULT,
|
||||
bool offscreen = true)
|
||||
{
|
||||
static const config::t_token z_apply_to("apply_to", false);
|
||||
static const config::t_token z_offscreen("offscreen", false);
|
||||
static const config::t_token z_layer("layer", false);
|
||||
static const config::t_token & z_apply_to( generate_safe_static_const_t_interned(n_token::t_token("apply_to")) );
|
||||
static const config::t_token & z_offscreen( generate_safe_static_const_t_interned(n_token::t_token("offscreen")) );
|
||||
static const config::t_token & z_layer( generate_safe_static_const_t_interned(n_token::t_token("layer")) );
|
||||
|
||||
foreach (const animation_branch &ab, prepare_animation(cfg, tag_name))
|
||||
{
|
||||
|
@ -600,72 +600,72 @@ static void add_simple_anim(std::vector<unit_animation> &animations, const confi
|
|||
}
|
||||
|
||||
void unit_animation::add_anims( std::vector<unit_animation> & animations, const config & cfg) {
|
||||
static const config::t_token z_animation("animation", false);
|
||||
static const config::t_token z_resistance_anim("resistance_anim", false);
|
||||
static const config::t_token z_resistance("resistance", false);
|
||||
static const config::t_token z_leading_anim("leading_anim", false);
|
||||
static const config::t_token z_leading("leading", false);
|
||||
static const config::t_token z_recruit_anim("recruit_anim", false);
|
||||
static const config::t_token z_recruited("recruited", false);
|
||||
static const config::t_token z_recruiting_anim("recruiting_anim", false);
|
||||
static const config::t_token z_recruiting("recruiting", false);
|
||||
static const config::t_token z_idle_anim("idle_anim", false);
|
||||
static const config::t_token z_idling("idling", false);
|
||||
static const config::t_token z_levelin_anim("levelin_anim", false);
|
||||
static const config::t_token z_levelin("levelin", false);
|
||||
static const config::t_token z_levelout_anim("levelout_anim", false);
|
||||
static const config::t_token z_levelout("levelout", false);
|
||||
static const config::t_token z_standing_anim("standing_anim", false);
|
||||
static const config::t_token z_apply_to("apply_to", false);
|
||||
static const config::t_token z_standing_c_default("standing,default", false);
|
||||
static const config::t_token z_cycles("cycles", false);
|
||||
static const config::t_token z_true("true", false);
|
||||
static const config::t_token z_layer("layer", false);
|
||||
static const config::t_token z_offscreen("offscreen", false);
|
||||
static const config::t_token z_healing_anim("healing_anim", false);
|
||||
static const config::t_token z_healing("healing", false);
|
||||
static const config::t_token z_value("value", false);
|
||||
static const config::t_token z_healed_anim("healed_anim", false);
|
||||
static const config::t_token z_healed("healed", false);
|
||||
static const config::t_token z__healed_sound("_healed_sound", false);
|
||||
static const config::t_token z_local_heal_wav("local_heal_wav", false);
|
||||
static const config::t_token z_poison_anim("poison_anim", false);
|
||||
static const config::t_token z_poisoned("poisoned", false);
|
||||
static const config::t_token z_damage("damage", false);
|
||||
static const config::t_token z__poison_sound("_poison_sound", false);
|
||||
static const config::t_token z_local_pois_sound("local_pois_sound", false);
|
||||
static const config::t_token z_pre_movement_anim("pre_movement_anim", false);
|
||||
static const config::t_token z_pre_movement("pre_movement", false);
|
||||
static const config::t_token z_movement_anim("movement_anim", false);
|
||||
static const config::t_token z_offset("offset", false);
|
||||
static const config::t_token z_movement("movement", false);
|
||||
static const config::t_token z_post_movement_anim("post_movement_anim", false);
|
||||
static const config::t_token z_post_movement("post_movement", false);
|
||||
static const config::t_token z_defend("defend", false);
|
||||
static const config::t_token z_hits("hits", false);
|
||||
static const config::t_token z_yes("yes", false);
|
||||
static const config::t_token z_hit("hit", false);
|
||||
static const config::t_token z_kill("kill", false);
|
||||
static const config::t_token z_draw_weapon_anim("draw_weapon_anim", false);
|
||||
static const config::t_token z_draw_weapon("draw_weapon", false);
|
||||
static const config::t_token z_sheath_weapon_anim("sheath_weapon_anim", false);
|
||||
static const config::t_token z_sheath_weapon("sheath_weapon", false);
|
||||
static const config::t_token z_attack_anim("attack_anim", false);
|
||||
static const config::t_token z_attack("attack", false);
|
||||
static const config::t_token z_missile_frame("missile_frame", false);
|
||||
static const config::t_token z_missile_offset("missile_offset", false);
|
||||
static const config::t_token z_missile_layer("missile_layer", false);
|
||||
static const config::t_token z_duration("duration", false);
|
||||
static const config::t_token z_death("death", false);
|
||||
static const config::t_token z_die_sound("die_sound", false);
|
||||
static const config::t_token z__death_sound("_death_sound", false);
|
||||
static const config::t_token z_victory_anim("victory_anim", false);
|
||||
static const config::t_token z_victory("victory", false);
|
||||
static const config::t_token z_extra_anim("extra_anim", false);
|
||||
static const config::t_token z_flag("flag", false);
|
||||
static const config::t_token z_teleport_anim("teleport_anim", false);
|
||||
static const config::t_token z_pre_teleport("pre_teleport", false);
|
||||
static const config::t_token z_post_teleport("post_teleport", false);
|
||||
static const config::t_token & z_animation( generate_safe_static_const_t_interned(n_token::t_token("animation")) );
|
||||
static const config::t_token & z_resistance_anim( generate_safe_static_const_t_interned(n_token::t_token("resistance_anim")) );
|
||||
static const config::t_token & z_resistance( generate_safe_static_const_t_interned(n_token::t_token("resistance")) );
|
||||
static const config::t_token & z_leading_anim( generate_safe_static_const_t_interned(n_token::t_token("leading_anim")) );
|
||||
static const config::t_token & z_leading( generate_safe_static_const_t_interned(n_token::t_token("leading")) );
|
||||
static const config::t_token & z_recruit_anim( generate_safe_static_const_t_interned(n_token::t_token("recruit_anim")) );
|
||||
static const config::t_token & z_recruited( generate_safe_static_const_t_interned(n_token::t_token("recruited")) );
|
||||
static const config::t_token & z_recruiting_anim( generate_safe_static_const_t_interned(n_token::t_token("recruiting_anim")) );
|
||||
static const config::t_token & z_recruiting( generate_safe_static_const_t_interned(n_token::t_token("recruiting")) );
|
||||
static const config::t_token & z_idle_anim( generate_safe_static_const_t_interned(n_token::t_token("idle_anim")) );
|
||||
static const config::t_token & z_idling( generate_safe_static_const_t_interned(n_token::t_token("idling")) );
|
||||
static const config::t_token & z_levelin_anim( generate_safe_static_const_t_interned(n_token::t_token("levelin_anim")) );
|
||||
static const config::t_token & z_levelin( generate_safe_static_const_t_interned(n_token::t_token("levelin")) );
|
||||
static const config::t_token & z_levelout_anim( generate_safe_static_const_t_interned(n_token::t_token("levelout_anim")) );
|
||||
static const config::t_token & z_levelout( generate_safe_static_const_t_interned(n_token::t_token("levelout")) );
|
||||
static const config::t_token & z_standing_anim( generate_safe_static_const_t_interned(n_token::t_token("standing_anim")) );
|
||||
static const config::t_token & z_apply_to( generate_safe_static_const_t_interned(n_token::t_token("apply_to")) );
|
||||
static const config::t_token & z_standing_c_default( generate_safe_static_const_t_interned(n_token::t_token("standing,default")) );
|
||||
static const config::t_token & z_cycles( generate_safe_static_const_t_interned(n_token::t_token("cycles")) );
|
||||
static const config::t_token & z_true( generate_safe_static_const_t_interned(n_token::t_token("true")) );
|
||||
static const config::t_token & z_layer( generate_safe_static_const_t_interned(n_token::t_token("layer")) );
|
||||
static const config::t_token & z_offscreen( generate_safe_static_const_t_interned(n_token::t_token("offscreen")) );
|
||||
static const config::t_token & z_healing_anim( generate_safe_static_const_t_interned(n_token::t_token("healing_anim")) );
|
||||
static const config::t_token & z_healing( generate_safe_static_const_t_interned(n_token::t_token("healing")) );
|
||||
static const config::t_token & z_value( generate_safe_static_const_t_interned(n_token::t_token("value")) );
|
||||
static const config::t_token & z_healed_anim( generate_safe_static_const_t_interned(n_token::t_token("healed_anim")) );
|
||||
static const config::t_token & z_healed( generate_safe_static_const_t_interned(n_token::t_token("healed")) );
|
||||
static const config::t_token & z__healed_sound( generate_safe_static_const_t_interned(n_token::t_token("_healed_sound")) );
|
||||
static const config::t_token & z_local_heal_wav( generate_safe_static_const_t_interned(n_token::t_token("local_heal_wav")) );
|
||||
static const config::t_token & z_poison_anim( generate_safe_static_const_t_interned(n_token::t_token("poison_anim")) );
|
||||
static const config::t_token & z_poisoned( generate_safe_static_const_t_interned(n_token::t_token("poisoned")) );
|
||||
static const config::t_token & z_damage( generate_safe_static_const_t_interned(n_token::t_token("damage")) );
|
||||
static const config::t_token & z__poison_sound( generate_safe_static_const_t_interned(n_token::t_token("_poison_sound")) );
|
||||
static const config::t_token & z_local_pois_sound( generate_safe_static_const_t_interned(n_token::t_token("local_pois_sound")) );
|
||||
static const config::t_token & z_pre_movement_anim( generate_safe_static_const_t_interned(n_token::t_token("pre_movement_anim")) );
|
||||
static const config::t_token & z_pre_movement( generate_safe_static_const_t_interned(n_token::t_token("pre_movement")) );
|
||||
static const config::t_token & z_movement_anim( generate_safe_static_const_t_interned(n_token::t_token("movement_anim")) );
|
||||
static const config::t_token & z_offset( generate_safe_static_const_t_interned(n_token::t_token("offset")) );
|
||||
static const config::t_token & z_movement( generate_safe_static_const_t_interned(n_token::t_token("movement")) );
|
||||
static const config::t_token & z_post_movement_anim( generate_safe_static_const_t_interned(n_token::t_token("post_movement_anim")) );
|
||||
static const config::t_token & z_post_movement( generate_safe_static_const_t_interned(n_token::t_token("post_movement")) );
|
||||
static const config::t_token & z_defend( generate_safe_static_const_t_interned(n_token::t_token("defend")) );
|
||||
static const config::t_token & z_hits( generate_safe_static_const_t_interned(n_token::t_token("hits")) );
|
||||
static const config::t_token & z_yes( generate_safe_static_const_t_interned(n_token::t_token("yes")) );
|
||||
static const config::t_token & z_hit( generate_safe_static_const_t_interned(n_token::t_token("hit")) );
|
||||
static const config::t_token & z_kill( generate_safe_static_const_t_interned(n_token::t_token("kill")) );
|
||||
static const config::t_token & z_draw_weapon_anim( generate_safe_static_const_t_interned(n_token::t_token("draw_weapon_anim")) );
|
||||
static const config::t_token & z_draw_weapon( generate_safe_static_const_t_interned(n_token::t_token("draw_weapon")) );
|
||||
static const config::t_token & z_sheath_weapon_anim( generate_safe_static_const_t_interned(n_token::t_token("sheath_weapon_anim")) );
|
||||
static const config::t_token & z_sheath_weapon( generate_safe_static_const_t_interned(n_token::t_token("sheath_weapon")) );
|
||||
static const config::t_token & z_attack_anim( generate_safe_static_const_t_interned(n_token::t_token("attack_anim")) );
|
||||
static const config::t_token & z_attack( generate_safe_static_const_t_interned(n_token::t_token("attack")) );
|
||||
static const config::t_token & z_missile_frame( generate_safe_static_const_t_interned(n_token::t_token("missile_frame")) );
|
||||
static const config::t_token & z_missile_offset( generate_safe_static_const_t_interned(n_token::t_token("missile_offset")) );
|
||||
static const config::t_token & z_missile_layer( generate_safe_static_const_t_interned(n_token::t_token("missile_layer")) );
|
||||
static const config::t_token & z_duration( generate_safe_static_const_t_interned(n_token::t_token("duration")) );
|
||||
static const config::t_token & z_death( generate_safe_static_const_t_interned(n_token::t_token("death")) );
|
||||
static const config::t_token & z_die_sound( generate_safe_static_const_t_interned(n_token::t_token("die_sound")) );
|
||||
static const config::t_token & z__death_sound( generate_safe_static_const_t_interned(n_token::t_token("_death_sound")) );
|
||||
static const config::t_token & z_victory_anim( generate_safe_static_const_t_interned(n_token::t_token("victory_anim")) );
|
||||
static const config::t_token & z_victory( generate_safe_static_const_t_interned(n_token::t_token("victory")) );
|
||||
static const config::t_token & z_extra_anim( generate_safe_static_const_t_interned(n_token::t_token("extra_anim")) );
|
||||
static const config::t_token & z_flag( generate_safe_static_const_t_interned(n_token::t_token("flag")) );
|
||||
static const config::t_token & z_teleport_anim( generate_safe_static_const_t_interned(n_token::t_token("teleport_anim")) );
|
||||
static const config::t_token & z_pre_teleport( generate_safe_static_const_t_interned(n_token::t_token("pre_teleport")) );
|
||||
static const config::t_token & z_post_teleport( generate_safe_static_const_t_interned(n_token::t_token("post_teleport")) );
|
||||
|
||||
foreach (const animation_branch &ab, prepare_animation(cfg, z_animation)) {
|
||||
animations.push_back(unit_animation(ab.merge())); }
|
||||
|
@ -753,7 +753,7 @@ void unit_animation::add_anims( std::vector<unit_animation> & animations, const
|
|||
animations.push_back(unit_animation(anim));
|
||||
anim[z_hits] = true;
|
||||
animations.push_back(unit_animation(anim));
|
||||
static const config::t_token z_local_blend("0.0,0.5:75,0.0:75,0.5:75,0.0", false);
|
||||
static const config::t_token & z_local_blend( generate_safe_static_const_t_interned(n_token::t_token("0.0,0.5:75,0.0:75,0.5:75,0.0")) );
|
||||
animations.back().add_frame(225,frame_builder()
|
||||
.image(animations.back().get_last_frame().parameters(0).image)
|
||||
.duration(225)
|
||||
|
@ -768,7 +768,7 @@ void unit_animation::add_anims( std::vector<unit_animation> & animations, const
|
|||
tmp[z_hits] = hit_type;
|
||||
animations.push_back(unit_animation(tmp));
|
||||
if(hit_type == z_yes || hit_type == z_hit || hit_type==z_kill) {
|
||||
static const config::t_token z_local_blend("0.0,0.5:75,0.0:75,0.5:75,0.0", false);
|
||||
static const config::t_token & z_local_blend( generate_safe_static_const_t_interned(n_token::t_token("0.0,0.5:75,0.0:75,0.5:75,0.0")) );
|
||||
animations.back().add_frame(225,frame_builder()
|
||||
.image(animations.back().get_last_frame().parameters(0).image)
|
||||
.duration(225)
|
||||
|
@ -787,12 +787,12 @@ void unit_animation::add_anims( std::vector<unit_animation> & animations, const
|
|||
anim[z_apply_to] = z_attack;
|
||||
if (anim[z_layer].empty()) anim[z_layer] = move_layer;
|
||||
config::const_child_itors missile_fs = anim.child_range(z_missile_frame);
|
||||
static const config::t_token z_local_missile_t1("0~0.6,0.6~0", false);
|
||||
static const config::t_token & z_local_missile_t1( generate_safe_static_const_t_interned(n_token::t_token("0~0.6,0.6~0")) );
|
||||
if (anim[z_offset].empty() && missile_fs.first == missile_fs.second) {
|
||||
anim[z_offset] = z_local_missile_t1;
|
||||
}
|
||||
if (missile_fs.first != missile_fs.second) {
|
||||
static const config::t_token z_local_missile_t2("0~0.8", false);
|
||||
static const config::t_token & z_local_missile_t2( generate_safe_static_const_t_interned(n_token::t_token("0~0.8")) );
|
||||
if (anim[z_missile_offset].empty()) anim[z_missile_offset] = z_local_missile_t2;
|
||||
if (anim[z_missile_layer].empty()) anim[z_missile_layer] = missile_layer;
|
||||
config tmp;
|
||||
|
@ -811,7 +811,7 @@ void unit_animation::add_anims( std::vector<unit_animation> & animations, const
|
|||
if (anim[z_layer].empty()) anim[z_layer] = default_layer;
|
||||
animations.push_back(unit_animation(anim));
|
||||
image::locator image_loc = animations.back().get_last_frame().parameters(0).image;
|
||||
static const config::t_token z_local_1_0_600("1~0:600", false);
|
||||
static const config::t_token & z_local_1_0_600( generate_safe_static_const_t_interned(n_token::t_token("1~0:600")) );
|
||||
animations.back().add_frame(600,frame_builder().image(image_loc).duration(600).highlight(z_local_1_0_600));
|
||||
if(!cfg[z_die_sound].empty()) {
|
||||
animations.back().sub_anims_[z__death_sound] = particule();
|
||||
|
@ -901,10 +901,10 @@ unit_animation::particule::particule(
|
|||
last_frame_begin_time_(0),
|
||||
cycles_(false)
|
||||
{
|
||||
static const config::t_token z_frame("frame", false);
|
||||
static const config::t_token z_start_time("start_time", false);
|
||||
static const config::t_token z_begin("begin", false);
|
||||
static const config::t_token z_cycles("cycles", false);
|
||||
static const config::t_token & z_frame( generate_safe_static_const_t_interned(n_token::t_token("frame")) );
|
||||
static const config::t_token & z_start_time( generate_safe_static_const_t_interned(n_token::t_token("start_time")) );
|
||||
static const config::t_token & z_begin( generate_safe_static_const_t_interned(n_token::t_token("begin")) );
|
||||
static const config::t_token & z_cycles( generate_safe_static_const_t_interned(n_token::t_token("cycles")) );
|
||||
|
||||
|
||||
config::const_child_itors range = cfg.child_range(frame_string+z_frame);
|
||||
|
@ -1014,7 +1014,7 @@ void unit_animation::start_animation(int start_time
|
|||
dst_ = dst;
|
||||
unit_anim_.start_animation(start_time);
|
||||
if(!text.empty()) {
|
||||
static const config::t_token z__add_text("_add_text", false);
|
||||
static const config::t_token & z__add_text( generate_safe_static_const_t_interned(n_token::t_token("_add_text")) );
|
||||
|
||||
particule crude_build;
|
||||
crude_build.add_frame(1,frame_builder());
|
||||
|
|
|
@ -29,53 +29,11 @@
|
|||
|
||||
#define LOG_DP LOG_STREAM(info, display)
|
||||
|
||||
namespace {
|
||||
//Static tokens are replacements for string literals in code
|
||||
//They allow for fast comparison, copying and hashing operations.
|
||||
static const config::t_token z_red("red", false);
|
||||
static const config::t_token z_green("green", false);
|
||||
static const config::t_token z_blue("blue", false);
|
||||
static const config::t_token z_pre_teleport("pre_teleport", false);
|
||||
static const config::t_token z_post_teleport("post_teleport", false);
|
||||
static const config::t_token z_movement("movement", false);
|
||||
static const config::t_token z_pre_movement("pre_movement", false);
|
||||
static const config::t_token z_post_movement("post_movement", false);
|
||||
static const config::t_token z_draw_weapon("draw_weapon", false);
|
||||
static const config::t_token z_sheath_weapon("sheath_weapon", false);
|
||||
static const config::t_token z_death("death", false);
|
||||
static const config::t_token z_victory("victory", false);
|
||||
static const config::t_token z_unit_attack("unit_attack", false);
|
||||
static const config::t_token z_leadership("leadership", false);
|
||||
static const config::t_token z_resistance("resistance", false);
|
||||
static const config::t_token z_attack("attack", false);
|
||||
static const config::t_token z_defend("defend", false);
|
||||
static const config::t_token z_leading("leading", false);
|
||||
static const config::t_token z_recruiting("recruiting", false);
|
||||
static const config::t_token z_recruited("recruited", false);
|
||||
static const config::t_token z_healing("healing", false);
|
||||
static const config::t_token z_poisoned("poisoned", false);
|
||||
static const config::t_token z_healed("healed", false);
|
||||
static const config::t_token z_filter("filter", false);
|
||||
static const config::t_token z_primary_attack("primary_attack", false);
|
||||
static const config::t_token z_secondary_attack("secondary_attack", false);
|
||||
static const config::t_token z_hits("hits", false);
|
||||
static const config::t_token z_yes("yes", false);
|
||||
static const config::t_token z_hit("hit", false);
|
||||
static const config::t_token z_no("no", false);
|
||||
static const config::t_token z_miss("miss", false);
|
||||
static const config::t_token z_kill("kill", false);
|
||||
static const config::t_token z_facing("facing", false);
|
||||
static const config::t_token z_flag("flag", false);
|
||||
static const config::t_token z_value("value", false);
|
||||
static const config::t_token z_with_bars("with_bars", false);
|
||||
static const config::t_token z_text("text", false);
|
||||
static const config::t_token z_value_second("value_second", false);
|
||||
static const config::t_token z_animate("animate", false);
|
||||
|
||||
}
|
||||
|
||||
static void teleport_unit_between( const map_location& a, const map_location& b, unit& temp_unit)
|
||||
{
|
||||
static const n_token::t_token & z_pre_teleport( generate_safe_static_const_t_interned(n_token::t_token("pre_teleport")) );
|
||||
static const n_token::t_token & z_post_teleport( generate_safe_static_const_t_interned(n_token::t_token("post_teleport")) );
|
||||
game_display* disp = game_display::get_singleton();
|
||||
if(!disp || disp->video().update_locked() || disp->video().faked() || (disp->fogged(a) && disp->fogged(b))) {
|
||||
return;
|
||||
|
@ -110,6 +68,7 @@ static void teleport_unit_between( const map_location& a, const map_location& b,
|
|||
|
||||
static void move_unit_between(const map_location& a, const map_location& b, unit& temp_unit,unsigned int step_num,unsigned int step_left)
|
||||
{
|
||||
static const n_token::t_token & z_movement( generate_safe_static_const_t_interned(n_token::t_token("movement")) );
|
||||
game_display* disp = game_display::get_singleton();
|
||||
if(!disp || disp->video().update_locked() || disp->video().faked() || (disp->fogged(a) && disp->fogged(b))) {
|
||||
return;
|
||||
|
@ -212,6 +171,8 @@ void move_unit(const std::vector<map_location>& path, unit& u,
|
|||
disp->draw(true);
|
||||
|
||||
// extra immobile mvt anim for take-off
|
||||
|
||||
static const n_token::t_token & z_pre_movement( generate_safe_static_const_t_interned(n_token::t_token("pre_movement")) );
|
||||
temp_unit.set_location(path[0]);
|
||||
disp->invalidate(temp_unit.get_location());
|
||||
temp_unit.set_facing(path[0].get_relative_dir(path[1]));
|
||||
|
@ -220,6 +181,7 @@ void move_unit(const std::vector<map_location>& path, unit& u,
|
|||
animator.start_animations();
|
||||
animator.wait_for_end();
|
||||
|
||||
static const n_token::t_token & z_post_movement( generate_safe_static_const_t_interned(n_token::t_token("post_movement")) );
|
||||
for(size_t i = 0; i+1 < path.size(); ++i) {
|
||||
|
||||
invisible = teams[temp_unit.side()-1].is_enemy(int(disp->viewing_team()+1)) &&
|
||||
|
@ -276,6 +238,7 @@ void reset_helpers(const unit *attacker,const unit *defender);
|
|||
void unit_draw_weapon(const map_location& loc, unit& attacker,
|
||||
const attack_type* attack,const attack_type* secondary_attack, const map_location& defender_loc,unit* defender)
|
||||
{
|
||||
static const n_token::t_token & z_draw_weapon( generate_safe_static_const_t_interned(n_token::t_token("draw_weapon")) );
|
||||
game_display* disp = game_display::get_singleton();
|
||||
if(!disp ||disp->video().update_locked() || disp->video().faked() || disp->fogged(loc) || preferences::show_combat() == false) {
|
||||
return;
|
||||
|
@ -292,6 +255,7 @@ void unit_draw_weapon(const map_location& loc, unit& attacker,
|
|||
void unit_sheath_weapon(const map_location& primary_loc, unit* primary_unit,
|
||||
const attack_type* primary_attack,const attack_type* secondary_attack, const map_location& secondary_loc,unit* secondary_unit)
|
||||
{
|
||||
static const n_token::t_token & z_sheath_weapon( generate_safe_static_const_t_interned(n_token::t_token("sheath_weapon")) );
|
||||
game_display* disp = game_display::get_singleton();
|
||||
if(!disp ||disp->video().update_locked() || disp->video().faked() || disp->fogged(primary_loc) || preferences::show_combat() == false) {
|
||||
return;
|
||||
|
@ -322,6 +286,8 @@ void unit_sheath_weapon(const map_location& primary_loc, unit* primary_unit,
|
|||
void unit_die(const map_location& loc, unit& loser,
|
||||
const attack_type* attack,const attack_type* secondary_attack, const map_location& winner_loc,unit* winner)
|
||||
{
|
||||
static const n_token::t_token & z_death( generate_safe_static_const_t_interned(n_token::t_token("death")) );
|
||||
static const n_token::t_token & z_victory( generate_safe_static_const_t_interned(n_token::t_token("victory")) );
|
||||
game_display* disp = game_display::get_singleton();
|
||||
if(!disp ||disp->video().update_locked() || disp->video().faked() || disp->fogged(loc) || preferences::show_combat() == false) {
|
||||
return;
|
||||
|
@ -348,6 +314,12 @@ void unit_attack(
|
|||
const attack_type& attack, const attack_type* secondary_attack,
|
||||
int swing,std::string hit_text,bool drain,std::string att_text)
|
||||
{
|
||||
static const n_token::t_token & z_unit_attack( generate_safe_static_const_t_interned(n_token::t_token("unit_attack")) );
|
||||
static const n_token::t_token & z_leadership( generate_safe_static_const_t_interned(n_token::t_token("leadership")) );
|
||||
static const n_token::t_token & z_resistance( generate_safe_static_const_t_interned(n_token::t_token("resistance")) );
|
||||
static const n_token::t_token & z_attack( generate_safe_static_const_t_interned(n_token::t_token("attack")) );
|
||||
static const n_token::t_token & z_defend( generate_safe_static_const_t_interned(n_token::t_token("defend")) );
|
||||
static const n_token::t_token & z_leading( generate_safe_static_const_t_interned(n_token::t_token("leading")) );
|
||||
game_display* disp = game_display::get_singleton();
|
||||
if(!disp ||disp->video().update_locked() || disp->video().faked() ||
|
||||
(disp->fogged(a) && disp->fogged(b)) || preferences::show_combat() == false) {
|
||||
|
@ -457,6 +429,8 @@ void unit_attack(
|
|||
// private helper function, set all helpers to default position
|
||||
void reset_helpers(const unit *attacker,const unit *defender)
|
||||
{
|
||||
static const n_token::t_token & z_leadership( generate_safe_static_const_t_interned(n_token::t_token("leadership")) );
|
||||
static const n_token::t_token & z_resistance( generate_safe_static_const_t_interned(n_token::t_token("resistance")) );
|
||||
game_display* disp = game_display::get_singleton();
|
||||
unit_map& units = disp->get_units();
|
||||
if(attacker) {
|
||||
|
@ -480,6 +454,8 @@ void reset_helpers(const unit *attacker,const unit *defender)
|
|||
|
||||
void unit_recruited(const map_location& loc,const map_location& leader_loc)
|
||||
{
|
||||
static const n_token::t_token & z_recruiting( generate_safe_static_const_t_interned(n_token::t_token("recruiting")) );
|
||||
static const n_token::t_token & z_recruited( generate_safe_static_const_t_interned(n_token::t_token("recruited")) );
|
||||
game_display* disp = game_display::get_singleton();
|
||||
if(!disp || disp->video().update_locked() || disp->video().faked() ||disp->fogged(loc)) return;
|
||||
unit_map::iterator u = disp->get_units().find(loc);
|
||||
|
@ -509,6 +485,9 @@ void unit_recruited(const map_location& loc,const map_location& leader_loc)
|
|||
void unit_healing(unit &healed, const map_location &healed_loc,
|
||||
const std::vector<unit *> &healers, int healing)
|
||||
{
|
||||
static const n_token::t_token & z_healing( generate_safe_static_const_t_interned(n_token::t_token("healing")) );
|
||||
static const n_token::t_token & z_poisoned( generate_safe_static_const_t_interned(n_token::t_token("poisoned")) );
|
||||
static const n_token::t_token & z_healed( generate_safe_static_const_t_interned(n_token::t_token("healed")) );
|
||||
game_display* disp = game_display::get_singleton();
|
||||
if(!disp || disp->video().update_locked() || disp->video().faked() || disp->fogged(healed_loc)) return;
|
||||
if(healing==0) return;
|
||||
|
@ -548,6 +527,25 @@ void wml_animation(const vconfig &cfg, const map_location &default_location)
|
|||
|
||||
void wml_animation_internal(unit_animator &animator, const vconfig &cfg, const map_location &default_location)
|
||||
{
|
||||
static const n_token::t_token & z_filter( generate_safe_static_const_t_interned(n_token::t_token("filter")) );
|
||||
static const n_token::t_token & z_primary_attack( generate_safe_static_const_t_interned(n_token::t_token("primary_attack")) );
|
||||
static const n_token::t_token & z_secondary_attack( generate_safe_static_const_t_interned(n_token::t_token("secondary_attack")) );
|
||||
static const n_token::t_token & z_hits( generate_safe_static_const_t_interned(n_token::t_token("hits")) );
|
||||
static const n_token::t_token & z_yes( generate_safe_static_const_t_interned(n_token::t_token("yes")) );
|
||||
static const n_token::t_token & z_hit( generate_safe_static_const_t_interned(n_token::t_token("hit")) );
|
||||
static const n_token::t_token & z_no( generate_safe_static_const_t_interned(n_token::t_token("no")) );
|
||||
static const n_token::t_token & z_miss( generate_safe_static_const_t_interned(n_token::t_token("miss")) );
|
||||
static const n_token::t_token & z_kill( generate_safe_static_const_t_interned(n_token::t_token("kill")) );
|
||||
static const n_token::t_token & z_red( generate_safe_static_const_t_interned(n_token::t_token("red")) );
|
||||
static const n_token::t_token & z_green( generate_safe_static_const_t_interned(n_token::t_token("green")) );
|
||||
static const n_token::t_token & z_blue( generate_safe_static_const_t_interned(n_token::t_token("blue")) );
|
||||
static const n_token::t_token & z_facing( generate_safe_static_const_t_interned(n_token::t_token("facing")) );
|
||||
static const n_token::t_token & z_value_second( generate_safe_static_const_t_interned(n_token::t_token("value_second")) );
|
||||
static const n_token::t_token & z_flag( generate_safe_static_const_t_interned(n_token::t_token("flag")) );
|
||||
static const n_token::t_token & z_value( generate_safe_static_const_t_interned(n_token::t_token("value")) );
|
||||
static const n_token::t_token & z_text( generate_safe_static_const_t_interned(n_token::t_token("text")) );
|
||||
static const n_token::t_token & z_with_bars( generate_safe_static_const_t_interned(n_token::t_token("with_bars")) );
|
||||
static const n_token::t_token & z_animate( generate_safe_static_const_t_interned(n_token::t_token("animate")) );
|
||||
unit_map::iterator u = resources::units->find(default_location);
|
||||
|
||||
// Search for a valid unit filter,
|
||||
|
|
|
@ -265,14 +265,14 @@ frame_builder::frame_builder(const config& cfg,const n_token::t_token& frame_str
|
|||
primary_frame_(t_unset),
|
||||
drawing_layer_(cfg[frame_string + z_layer_default()].token())
|
||||
{
|
||||
static const config::t_token z_auto_vflip("auto_vflip", false);
|
||||
static const config::t_token z_auto_hflip("auto_hflip", false);
|
||||
static const config::t_token z_primary("primary", false);
|
||||
static const config::t_token z_text_color("text_color", false);
|
||||
static const config::t_token z_duration("duration", false);
|
||||
static const config::t_token z_end("end", false);
|
||||
static const config::t_token z_begin("begin", false);
|
||||
static const config::t_token z_blend_color("blend_color", false);
|
||||
static const config::t_token & z_auto_vflip( generate_safe_static_const_t_interned(n_token::t_token("auto_vflip")) );
|
||||
static const config::t_token & z_auto_hflip( generate_safe_static_const_t_interned(n_token::t_token("auto_hflip")) );
|
||||
static const config::t_token & z_primary( generate_safe_static_const_t_interned(n_token::t_token("primary")) );
|
||||
static const config::t_token & z_text_color( generate_safe_static_const_t_interned(n_token::t_token("text_color")) );
|
||||
static const config::t_token & z_duration( generate_safe_static_const_t_interned(n_token::t_token("duration")) );
|
||||
static const config::t_token & z_end( generate_safe_static_const_t_interned(n_token::t_token("end")) );
|
||||
static const config::t_token & z_begin( generate_safe_static_const_t_interned(n_token::t_token("begin")) );
|
||||
static const config::t_token & z_blend_color( generate_safe_static_const_t_interned(n_token::t_token("blend_color")) );
|
||||
if(!cfg.has_attribute(frame_string + z_auto_vflip)) {
|
||||
auto_vflip_ = t_unset;
|
||||
} else if(cfg[frame_string + z_auto_vflip].to_bool()) {
|
||||
|
|
|
@ -106,11 +106,11 @@ config::t_token attack_type::accuracy_parry_description() const
|
|||
|
||||
bool attack_type::matches_filter(const config& cfg,bool self) const
|
||||
{
|
||||
static const config::t_token z_range("range", false);
|
||||
static const config::t_token z_damage("damage", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_type("type", false);
|
||||
static const config::t_token z_special("special", false);
|
||||
static const config::t_token & z_range( generate_safe_static_const_t_interned(n_token::t_token("range")) );
|
||||
static const config::t_token & z_damage( generate_safe_static_const_t_interned(n_token::t_token("damage")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_type( generate_safe_static_const_t_interned(n_token::t_token("type")) );
|
||||
static const config::t_token & z_special( generate_safe_static_const_t_interned(n_token::t_token("special")) );
|
||||
const std::vector<config::t_token>& filter_range = utils::split_attr(cfg[z_range]);
|
||||
const config::attribute_value& filter_damage = cfg[z_damage];
|
||||
const std::vector<config::t_token> filter_name = utils::split_attr(cfg[z_name]);
|
||||
|
@ -138,28 +138,28 @@ bool attack_type::matches_filter(const config& cfg,bool self) const
|
|||
|
||||
std::pair<bool, config::t_token> attack_type::apply_modification(const config& cfg)
|
||||
{
|
||||
static const config::t_token z_set_name("set_name", false);
|
||||
static const config::t_token z_set_description("set_description", false);
|
||||
static const config::t_token z_set_type("set_type", false);
|
||||
static const config::t_token z_remove_specials("remove_specials", false);
|
||||
static const config::t_token z_set_specials("set_specials", false);
|
||||
static const config::t_token z_increase_damage("increase_damage", false);
|
||||
static const config::t_token z_increase_attacks("increase_attacks", false);
|
||||
static const config::t_token z_attack_weight("attack_weight", false);
|
||||
static const config::t_token z_defense_weight("defense_weight", false);
|
||||
static const config::t_token z_increase_accuracy("increase_accuracy", false);
|
||||
static const config::t_token z_increase_parry("increase_parry", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_description("description", false);
|
||||
static const config::t_token z_type("type", false);
|
||||
static const config::t_token z_specials("specials", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_mode("mode", false);
|
||||
static const config::t_token z_append("append", false);
|
||||
static const config::t_token z_damage("damage", false);
|
||||
static const config::t_token z_number("number", false);
|
||||
static const config::t_token z_accuracy("accuracy", false);
|
||||
static const config::t_token z_parry("parry", false);
|
||||
static const config::t_token & z_set_name( generate_safe_static_const_t_interned(n_token::t_token("set_name")) );
|
||||
static const config::t_token & z_set_description( generate_safe_static_const_t_interned(n_token::t_token("set_description")) );
|
||||
static const config::t_token & z_set_type( generate_safe_static_const_t_interned(n_token::t_token("set_type")) );
|
||||
static const config::t_token & z_remove_specials( generate_safe_static_const_t_interned(n_token::t_token("remove_specials")) );
|
||||
static const config::t_token & z_set_specials( generate_safe_static_const_t_interned(n_token::t_token("set_specials")) );
|
||||
static const config::t_token & z_increase_damage( generate_safe_static_const_t_interned(n_token::t_token("increase_damage")) );
|
||||
static const config::t_token & z_increase_attacks( generate_safe_static_const_t_interned(n_token::t_token("increase_attacks")) );
|
||||
static const config::t_token & z_attack_weight( generate_safe_static_const_t_interned(n_token::t_token("attack_weight")) );
|
||||
static const config::t_token & z_defense_weight( generate_safe_static_const_t_interned(n_token::t_token("defense_weight")) );
|
||||
static const config::t_token & z_increase_accuracy( generate_safe_static_const_t_interned(n_token::t_token("increase_accuracy")) );
|
||||
static const config::t_token & z_increase_parry( generate_safe_static_const_t_interned(n_token::t_token("increase_parry")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_description( generate_safe_static_const_t_interned(n_token::t_token("description")) );
|
||||
static const config::t_token & z_type( generate_safe_static_const_t_interned(n_token::t_token("type")) );
|
||||
static const config::t_token & z_specials( generate_safe_static_const_t_interned(n_token::t_token("specials")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_mode( generate_safe_static_const_t_interned(n_token::t_token("mode")) );
|
||||
static const config::t_token & z_append( generate_safe_static_const_t_interned(n_token::t_token("append")) );
|
||||
static const config::t_token & z_damage( generate_safe_static_const_t_interned(n_token::t_token("damage")) );
|
||||
static const config::t_token & z_number( generate_safe_static_const_t_interned(n_token::t_token("number")) );
|
||||
static const config::t_token & z_accuracy( generate_safe_static_const_t_interned(n_token::t_token("accuracy")) );
|
||||
static const config::t_token & z_parry( generate_safe_static_const_t_interned(n_token::t_token("parry")) );
|
||||
|
||||
if(!matches_filter(cfg,0)) {
|
||||
return std::make_pair(false, n_token::t_token::z_empty()); }
|
||||
|
@ -277,8 +277,8 @@ std::pair<bool, config::t_token> attack_type::apply_modification(const config& c
|
|||
// Same as above, except only update the descriptions
|
||||
std::pair<bool, config::t_token> attack_type::describe_modification(const config& cfg)
|
||||
{
|
||||
static const config::t_token z_increase_damage("increase_damage", false);
|
||||
static const config::t_token z_increase_attacks("increase_attacks", false);
|
||||
static const config::t_token & z_increase_damage( generate_safe_static_const_t_interned(n_token::t_token("increase_damage")) );
|
||||
static const config::t_token & z_increase_attacks( generate_safe_static_const_t_interned(n_token::t_token("increase_attacks")) );
|
||||
|
||||
if(!matches_filter(cfg,0)) {
|
||||
return std::make_pair(false, n_token::t_token::z_empty()); }
|
||||
|
@ -313,11 +313,11 @@ unit_movement_type::unit_movement_type(const config& cfg, const unit_movement_ty
|
|||
//so we filter to keep only keys related to movement_type
|
||||
//FIXME: This helps but it's still not clean, both cfg use a "name" key
|
||||
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_flies("flies", false);
|
||||
static const config::t_token z_movement_costs("movement_costs", false);
|
||||
static const config::t_token z_defense("defense", false);
|
||||
static const config::t_token z_resistance("resistance", false);
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_flies( generate_safe_static_const_t_interned(n_token::t_token("flies")) );
|
||||
static const config::t_token & z_movement_costs( generate_safe_static_const_t_interned(n_token::t_token("movement_costs")) );
|
||||
static const config::t_token & z_defense( generate_safe_static_const_t_interned(n_token::t_token("defense")) );
|
||||
static const config::t_token & z_resistance( generate_safe_static_const_t_interned(n_token::t_token("resistance")) );
|
||||
|
||||
const config::attribute_value& name = cfg[z_name];
|
||||
if (!name.empty())
|
||||
|
@ -342,7 +342,7 @@ unit_movement_type::unit_movement_type(): moveCosts_(), defenseMods_(), parent_(
|
|||
|
||||
config::t_token unit_movement_type::name() const
|
||||
{
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
|
||||
if (!cfg_.has_attribute(z_name) && parent_)
|
||||
return parent_->name();
|
||||
|
@ -354,7 +354,7 @@ config::t_token unit_movement_type::name() const
|
|||
|
||||
int unit_movement_type::resistance_against(const attack_type& attack) const
|
||||
{
|
||||
static const config::t_token z_resistance("resistance", false);
|
||||
static const config::t_token & z_resistance( generate_safe_static_const_t_interned(n_token::t_token("resistance")) );
|
||||
|
||||
bool result_found = false;
|
||||
int res = 100;
|
||||
|
@ -376,7 +376,7 @@ int unit_movement_type::resistance_against(const attack_type& attack) const
|
|||
|
||||
utils::string_map unit_movement_type::damage_table() const
|
||||
{
|
||||
static const config::t_token z_resistance("resistance", false);
|
||||
static const config::t_token & z_resistance( generate_safe_static_const_t_interned(n_token::t_token("resistance")) );
|
||||
|
||||
utils::string_map res;
|
||||
if(parent_ != NULL)
|
||||
|
@ -394,7 +394,7 @@ utils::string_map unit_movement_type::damage_table() const
|
|||
|
||||
bool unit_movement_type::is_flying() const
|
||||
{
|
||||
static const config::t_token z_flies("flies", false);
|
||||
static const config::t_token & z_flies( generate_safe_static_const_t_interned(n_token::t_token("flies")) );
|
||||
|
||||
if (!cfg_.has_attribute(z_flies) && parent_)
|
||||
return parent_->is_flying();
|
||||
|
@ -454,7 +454,7 @@ int movement_cost_internal(t_move_cost_cache& move_costs,
|
|||
bool result_found = false;
|
||||
int res = impassable;
|
||||
|
||||
static const config::t_token z_movement_costs("movement_costs", false);
|
||||
static const config::t_token & z_movement_costs( generate_safe_static_const_t_interned(n_token::t_token("movement_costs")) );
|
||||
|
||||
if (const config& movement_costs = cfg.child(z_movement_costs)) {
|
||||
if (underlying.size() != 1) {
|
||||
|
@ -501,7 +501,7 @@ const defense_range &defense_range_modifier_internal(defense_cache &defense_mods
|
|||
const t_translation::t_list& underlying = map.underlying_def_terrain(terrain);
|
||||
assert(!underlying.empty());
|
||||
|
||||
static const config::t_token z_defense("defense", false);
|
||||
static const config::t_token & z_defense( generate_safe_static_const_t_interned(n_token::t_token("defense")) );
|
||||
if (underlying.size() != 1 || underlying.front() != terrain) {
|
||||
bool revert = underlying.front() == t_translation::MINUS;
|
||||
if(recurse_count >= 90) {
|
||||
|
@ -702,22 +702,22 @@ unit_type::~unit_type()
|
|||
void unit_type::build_full(const movement_type_map &mv_types,
|
||||
const race_map &races, const config::const_child_itors &traits)
|
||||
{
|
||||
static const config::t_token z_trait("trait", false);
|
||||
static const config::t_token z_variation("variation", false);
|
||||
static const config::t_token z_inherit("inherit", false);
|
||||
static const config::t_token z_variation_name("variation_name", false);
|
||||
static const config::t_token z_alignment("alignment", false);
|
||||
static const config::t_token z_lawful("lawful", false);
|
||||
static const config::t_token z_chaotic("chaotic", false);
|
||||
static const config::t_token z_neutral("neutral", false);
|
||||
static const config::t_token z_ignore_race_traits("ignore_race_traits", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_fearless("fearless", false);
|
||||
static const config::t_token z_zoc("zoc", false);
|
||||
static const config::t_token z_alpha("alpha", false);
|
||||
static const config::t_token z_movement_type("movement_type", false);
|
||||
static const config::t_token z_flag_rgb("flag_rgb", false);
|
||||
static const config::t_token z_portrait("portrait", false);
|
||||
static const config::t_token & z_trait( generate_safe_static_const_t_interned(n_token::t_token("trait")) );
|
||||
static const config::t_token & z_variation( generate_safe_static_const_t_interned(n_token::t_token("variation")) );
|
||||
static const config::t_token & z_inherit( generate_safe_static_const_t_interned(n_token::t_token("inherit")) );
|
||||
static const config::t_token & z_variation_name( generate_safe_static_const_t_interned(n_token::t_token("variation_name")) );
|
||||
static const config::t_token & z_alignment( generate_safe_static_const_t_interned(n_token::t_token("alignment")) );
|
||||
static const config::t_token & z_lawful( generate_safe_static_const_t_interned(n_token::t_token("lawful")) );
|
||||
static const config::t_token & z_chaotic( generate_safe_static_const_t_interned(n_token::t_token("chaotic")) );
|
||||
static const config::t_token & z_neutral( generate_safe_static_const_t_interned(n_token::t_token("neutral")) );
|
||||
static const config::t_token & z_ignore_race_traits( generate_safe_static_const_t_interned(n_token::t_token("ignore_race_traits")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_fearless( generate_safe_static_const_t_interned(n_token::t_token("fearless")) );
|
||||
static const config::t_token & z_zoc( generate_safe_static_const_t_interned(n_token::t_token("zoc")) );
|
||||
static const config::t_token & z_alpha( generate_safe_static_const_t_interned(n_token::t_token("alpha")) );
|
||||
static const config::t_token & z_movement_type( generate_safe_static_const_t_interned(n_token::t_token("movement_type")) );
|
||||
static const config::t_token & z_flag_rgb( generate_safe_static_const_t_interned(n_token::t_token("flag_rgb")) );
|
||||
static const config::t_token & z_portrait( generate_safe_static_const_t_interned(n_token::t_token("portrait")) );
|
||||
|
||||
if (build_status_ == NOT_BUILT || build_status_ == CREATED)
|
||||
build_help_index(mv_types, races, traits);
|
||||
|
@ -821,28 +821,28 @@ void unit_type::build_full(const movement_type_map &mv_types,
|
|||
void unit_type::build_help_index(const movement_type_map &mv_types,
|
||||
const race_map &races, const config::const_child_itors &traits)
|
||||
{
|
||||
static const config::t_token z_empty("", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_description("description", false);
|
||||
static const config::t_token z_hitpoints("hitpoints", false);
|
||||
static const config::t_token z_level("level", false);
|
||||
static const config::t_token z_movement("movement", false);
|
||||
static const config::t_token z_attacks("attacks", false);
|
||||
static const config::t_token z_cost("cost", false);
|
||||
static const config::t_token z_usage("usage", false);
|
||||
static const config::t_token z_undead_variation("undead_variation", false);
|
||||
static const config::t_token z_image("image", false);
|
||||
static const config::t_token z_small_profile("small_profile", false);
|
||||
static const config::t_token z_profile("profile", false);
|
||||
static const config::t_token z_race("race", false);
|
||||
static const config::t_token z_num_traits("num_traits", false);
|
||||
static const config::t_token z_gender("gender", false);
|
||||
static const config::t_token z_abilities("abilities", false);
|
||||
static const config::t_token z_advancement("advancement", false);
|
||||
static const config::t_token z_effect("effect", false);
|
||||
static const config::t_token z_apply_to("apply_to", false);
|
||||
static const config::t_token z_new_ability("new_ability", false);
|
||||
static const config::t_token z_hide_help("hide_help", false);
|
||||
static const config::t_token & z_empty( generate_safe_static_const_t_interned(n_token::t_token("")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_description( generate_safe_static_const_t_interned(n_token::t_token("description")) );
|
||||
static const config::t_token & z_hitpoints( generate_safe_static_const_t_interned(n_token::t_token("hitpoints")) );
|
||||
static const config::t_token & z_level( generate_safe_static_const_t_interned(n_token::t_token("level")) );
|
||||
static const config::t_token & z_movement( generate_safe_static_const_t_interned(n_token::t_token("movement")) );
|
||||
static const config::t_token & z_attacks( generate_safe_static_const_t_interned(n_token::t_token("attacks")) );
|
||||
static const config::t_token & z_cost( generate_safe_static_const_t_interned(n_token::t_token("cost")) );
|
||||
static const config::t_token & z_usage( generate_safe_static_const_t_interned(n_token::t_token("usage")) );
|
||||
static const config::t_token & z_undead_variation( generate_safe_static_const_t_interned(n_token::t_token("undead_variation")) );
|
||||
static const config::t_token & z_image( generate_safe_static_const_t_interned(n_token::t_token("image")) );
|
||||
static const config::t_token & z_small_profile( generate_safe_static_const_t_interned(n_token::t_token("small_profile")) );
|
||||
static const config::t_token & z_profile( generate_safe_static_const_t_interned(n_token::t_token("profile")) );
|
||||
static const config::t_token & z_race( generate_safe_static_const_t_interned(n_token::t_token("race")) );
|
||||
static const config::t_token & z_num_traits( generate_safe_static_const_t_interned(n_token::t_token("num_traits")) );
|
||||
static const config::t_token & z_gender( generate_safe_static_const_t_interned(n_token::t_token("gender")) );
|
||||
static const config::t_token & z_abilities( generate_safe_static_const_t_interned(n_token::t_token("abilities")) );
|
||||
static const config::t_token & z_advancement( generate_safe_static_const_t_interned(n_token::t_token("advancement")) );
|
||||
static const config::t_token & z_effect( generate_safe_static_const_t_interned(n_token::t_token("effect")) );
|
||||
static const config::t_token & z_apply_to( generate_safe_static_const_t_interned(n_token::t_token("apply_to")) );
|
||||
static const config::t_token & z_new_ability( generate_safe_static_const_t_interned(n_token::t_token("new_ability")) );
|
||||
static const config::t_token & z_hide_help( generate_safe_static_const_t_interned(n_token::t_token("hide_help")) );
|
||||
|
||||
if (build_status_ == NOT_BUILT)
|
||||
build_created(mv_types, races, traits);
|
||||
|
@ -927,12 +927,12 @@ void unit_type::build_help_index(const movement_type_map &mv_types,
|
|||
void unit_type::build_created(const movement_type_map &mv_types,
|
||||
const race_map &races, const config::const_child_itors &traits)
|
||||
{
|
||||
static const config::t_token z_male("male", false);
|
||||
static const config::t_token z_inherit("inherit", false);
|
||||
static const config::t_token z_female("female", false);
|
||||
static const config::t_token z_advances_to("advances_to", false);
|
||||
static const config::t_token z_null("null", false);
|
||||
static const config::t_token z_experience("experience", false);
|
||||
static const config::t_token & z_male( generate_safe_static_const_t_interned(n_token::t_token("male")) );
|
||||
static const config::t_token & z_inherit( generate_safe_static_const_t_interned(n_token::t_token("inherit")) );
|
||||
static const config::t_token & z_female( generate_safe_static_const_t_interned(n_token::t_token("female")) );
|
||||
static const config::t_token & z_advances_to( generate_safe_static_const_t_interned(n_token::t_token("advances_to")) );
|
||||
static const config::t_token & z_null( generate_safe_static_const_t_interned(n_token::t_token("null")) );
|
||||
static const config::t_token & z_experience( generate_safe_static_const_t_interned(n_token::t_token("experience")) );
|
||||
|
||||
gender_types_[0] = NULL;
|
||||
gender_types_[1] = NULL;
|
||||
|
@ -980,8 +980,8 @@ void unit_type::build_created(const movement_type_map &mv_types,
|
|||
|
||||
const unit_type& unit_type::get_gender_unit_type(config::t_token const & gender) const
|
||||
{
|
||||
static const config::t_token z_female("female", false);
|
||||
static const config::t_token z_male("male", false);
|
||||
static const config::t_token & z_female( generate_safe_static_const_t_interned(n_token::t_token("female")) );
|
||||
static const config::t_token & z_male( generate_safe_static_const_t_interned(n_token::t_token("male")) );
|
||||
|
||||
if (gender == z_female) return get_gender_unit_type(unit_race::FEMALE);
|
||||
else if (gender == z_male) return get_gender_unit_type(unit_race::MALE);
|
||||
|
@ -1034,7 +1034,7 @@ const std::vector<unit_animation>& unit_type::animations() const {
|
|||
|
||||
std::vector<attack_type> unit_type::attacks() const
|
||||
{
|
||||
static const config::t_token z_attack("attack", false);
|
||||
static const config::t_token & z_attack( generate_safe_static_const_t_interned(n_token::t_token("attack")) );
|
||||
|
||||
std::vector<attack_type> res;
|
||||
foreach (const config &att, cfg_.child_range(z_attack)) {
|
||||
|
@ -1091,8 +1091,8 @@ const char* unit_type::alignment_id(unit_type::ALIGNMENT align)
|
|||
|
||||
bool unit_type::has_ability_by_id(const config::t_token& ability) const
|
||||
{
|
||||
static const config::t_token z_abilities("abilities", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token & z_abilities( generate_safe_static_const_t_interned(n_token::t_token("abilities")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
|
||||
if (const config &abil = cfg_.child(z_abilities))
|
||||
{
|
||||
|
@ -1106,8 +1106,8 @@ bool unit_type::has_ability_by_id(const config::t_token& ability) const
|
|||
|
||||
std::vector<config::t_token> unit_type::get_ability_list() const
|
||||
{
|
||||
static const config::t_token z_abilities("abilities", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token & z_abilities( generate_safe_static_const_t_interned(n_token::t_token("abilities")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
|
||||
std::vector<config::t_token> res;
|
||||
|
||||
|
@ -1129,7 +1129,7 @@ bool unit_type::hide_help() const {
|
|||
|
||||
void unit_type::add_advancement(const unit_type &to_unit,int xp)
|
||||
{
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
|
||||
const config::attribute_value &to_id = to_unit.cfg_[z_id];
|
||||
const config::attribute_value &from_id = cfg_[z_id];
|
||||
|
@ -1233,14 +1233,14 @@ unit_type_data::unit_type_data() :
|
|||
|
||||
void unit_type_data::set_config(config &cfg)
|
||||
{
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_movetype("movetype", false);
|
||||
static const config::t_token z_race("race", false);
|
||||
static const config::t_token z_unit_type("unit_type", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token z_base_unit("base_unit", false);
|
||||
static const config::t_token z_hide_help("hide_help", false);
|
||||
static const config::t_token z_all("all", false);
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_movetype( generate_safe_static_const_t_interned(n_token::t_token("movetype")) );
|
||||
static const config::t_token & z_race( generate_safe_static_const_t_interned(n_token::t_token("race")) );
|
||||
static const config::t_token & z_unit_type( generate_safe_static_const_t_interned(n_token::t_token("unit_type")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
static const config::t_token & z_base_unit( generate_safe_static_const_t_interned(n_token::t_token("base_unit")) );
|
||||
static const config::t_token & z_hide_help( generate_safe_static_const_t_interned(n_token::t_token("hide_help")) );
|
||||
static const config::t_token & z_all( generate_safe_static_const_t_interned(n_token::t_token("all")) );
|
||||
|
||||
DBG_UT << "unit_type_data::set_config, name: " << cfg[z_name] << "\n";
|
||||
|
||||
|
@ -1290,7 +1290,7 @@ void unit_type_data::set_config(config &cfg)
|
|||
|
||||
const unit_type *unit_type_data::find(const config::t_token& key, unit_type::BUILD_STATUS status) const
|
||||
{
|
||||
static const config::t_token z_random("random", false);
|
||||
static const config::t_token & z_random( generate_safe_static_const_t_interned(n_token::t_token("random")) );
|
||||
|
||||
if (key.empty() || key == z_random) return NULL;
|
||||
|
||||
|
@ -1321,8 +1321,8 @@ void unit_type_data::check_types(const std::vector<config::t_token>& types) cons
|
|||
|
||||
const config& unit_type_data::find_config(const config::t_token& key) const
|
||||
{
|
||||
static const config::t_token z_unit_type("unit_type", false);
|
||||
static const config::t_token z_id("id", false);
|
||||
static const config::t_token & z_unit_type( generate_safe_static_const_t_interned(n_token::t_token("unit_type")) );
|
||||
static const config::t_token & z_id( generate_safe_static_const_t_interned(n_token::t_token("id")) );
|
||||
|
||||
const config &cfg = unit_cfg_->find_child(z_unit_type, z_id, key);
|
||||
|
||||
|
@ -1365,7 +1365,7 @@ void unit_type_data::build_all(unit_type::BUILD_STATUS status)
|
|||
|
||||
unit_type &unit_type_data::build_unit_type(const unit_type_map::iterator &ut, unit_type::BUILD_STATUS status) const
|
||||
{
|
||||
static const config::t_token z_trait("trait", false);
|
||||
static const config::t_token & z_trait( generate_safe_static_const_t_interned(n_token::t_token("trait")) );
|
||||
|
||||
DBG_UT << "Building unit type " << ut->first << ", level " << status << '\n';
|
||||
|
||||
|
@ -1389,10 +1389,10 @@ unit_type &unit_type_data::build_unit_type(const unit_type_map::iterator &ut, un
|
|||
|
||||
void unit_type_data::read_hide_help(const config& cfg)
|
||||
{
|
||||
static const config::t_token z_race("race", false);
|
||||
static const config::t_token z_type("type", false);
|
||||
static const config::t_token z_type_adv_tree("type_adv_tree", false);
|
||||
static const config::t_token z_not("not", false);
|
||||
static const config::t_token & z_race( generate_safe_static_const_t_interned(n_token::t_token("race")) );
|
||||
static const config::t_token & z_type( generate_safe_static_const_t_interned(n_token::t_token("type")) );
|
||||
static const config::t_token & z_type_adv_tree( generate_safe_static_const_t_interned(n_token::t_token("type_adv_tree")) );
|
||||
static const config::t_token & z_not( generate_safe_static_const_t_interned(n_token::t_token("not")) );
|
||||
|
||||
if (!cfg)
|
||||
return;
|
||||
|
@ -1437,9 +1437,9 @@ bool unit_type_data::hide_help(const config::t_token& type, const config::t_toke
|
|||
|
||||
void unit_type_data::add_advancement(unit_type& to_unit) const
|
||||
{
|
||||
static const config::t_token z_advancefrom("advancefrom", false);
|
||||
static const config::t_token z_unit("unit", false);
|
||||
static const config::t_token z_experience("experience", false);
|
||||
static const config::t_token & z_advancefrom( generate_safe_static_const_t_interned(n_token::t_token("advancefrom")) );
|
||||
static const config::t_token & z_unit( generate_safe_static_const_t_interned(n_token::t_token("unit")) );
|
||||
static const config::t_token & z_experience( generate_safe_static_const_t_interned(n_token::t_token("experience")) );
|
||||
|
||||
const config& cfg = to_unit.get_cfg();
|
||||
|
||||
|
@ -1475,15 +1475,15 @@ const unit_race *unit_type_data::find_race(const config::t_token &key) const
|
|||
// a particular unit is living or not, use get_state("not_living") for that.
|
||||
bool unit_type::not_living() const
|
||||
{
|
||||
static const config::t_token z_availability("availability", false);
|
||||
static const config::t_token z_musthave("musthave", false);
|
||||
static const config::t_token z_effect("effect", false);
|
||||
static const config::t_token z_unit_type("unit_type", false);
|
||||
static const config::t_token z_apply_to("apply_to", false);
|
||||
static const config::t_token z_status("status", false);
|
||||
static const config::t_token z_add("add", false);
|
||||
static const config::t_token z_not_living("not_living", false);
|
||||
static const config::t_token z_remove("remove", false);
|
||||
static const config::t_token & z_availability( generate_safe_static_const_t_interned(n_token::t_token("availability")) );
|
||||
static const config::t_token & z_musthave( generate_safe_static_const_t_interned(n_token::t_token("musthave")) );
|
||||
static const config::t_token & z_effect( generate_safe_static_const_t_interned(n_token::t_token("effect")) );
|
||||
static const config::t_token & z_unit_type( generate_safe_static_const_t_interned(n_token::t_token("unit_type")) );
|
||||
static const config::t_token & z_apply_to( generate_safe_static_const_t_interned(n_token::t_token("apply_to")) );
|
||||
static const config::t_token & z_status( generate_safe_static_const_t_interned(n_token::t_token("status")) );
|
||||
static const config::t_token & z_add( generate_safe_static_const_t_interned(n_token::t_token("add")) );
|
||||
static const config::t_token & z_not_living( generate_safe_static_const_t_interned(n_token::t_token("not_living")) );
|
||||
static const config::t_token & z_remove( generate_safe_static_const_t_interned(n_token::t_token("remove")) );
|
||||
|
||||
// If a unit hasn't been modified it starts out as living.
|
||||
bool not_living = false;
|
||||
|
|
|
@ -62,7 +62,7 @@ public:
|
|||
std::pair<bool, config::t_token> describe_modification(const config& cfg);
|
||||
|
||||
int movement_used() const {
|
||||
static const config::t_token z_movement_used("movement_used", false);
|
||||
static const config::t_token & z_movement_used( generate_safe_static_const_t_interned(n_token::t_token("movement_used")) );
|
||||
return cfg_[z_movement_used].to_int(100000); }
|
||||
|
||||
config& get_cfg() { return cfg_; }
|
||||
|
@ -215,7 +215,7 @@ public:
|
|||
const std::vector<config::t_token> advances_from() const;
|
||||
|
||||
config::const_child_itors modification_advancements() const {
|
||||
static const config::t_token z_advancement("advancement", false);
|
||||
static const config::t_token & z_advancement( generate_safe_static_const_t_interned(n_token::t_token("advancement")) );
|
||||
return cfg_.child_range(z_advancement); }
|
||||
|
||||
const unit_type& get_gender_unit_type(config::t_token const & gender) const;
|
||||
|
@ -286,7 +286,7 @@ public:
|
|||
std::vector<config::t_token> get_ability_list() const;
|
||||
|
||||
config::const_child_itors possible_traits() const {
|
||||
static const config::t_token z_trait("trait", false);
|
||||
static const config::t_token & z_trait( generate_safe_static_const_t_interned(n_token::t_token("trait")) );
|
||||
return possibleTraits_.child_range(z_trait); }
|
||||
bool has_random_traits() const;
|
||||
|
||||
|
|
|
@ -169,7 +169,7 @@ private:
|
|||
@note usage inside a function body type and zzz with be a safe copy of yyy
|
||||
static const T & zzz = generate_safe_static_const_t_interned.get( yyy )
|
||||
|
||||
@note Do not use this to create objects that are not static
|
||||
@note Do not use this to create objects that are not static, that will be a memory leak
|
||||
|
||||
*/
|
||||
|
||||
|
@ -288,9 +288,6 @@ void t_interned_token<T, T_hasher>::dec_ref() {
|
|||
|
||||
template <typename T, typename T_hasher >
|
||||
bool t_interned_token<T, T_hasher>::valid() const { return true; }
|
||||
// static t_stash & the_stash_ = the_stash();
|
||||
// return iter_ != the_stash_.end(); }
|
||||
|
||||
|
||||
|
||||
template <typename T>
|
||||
|
|
|
@ -250,9 +250,9 @@ vconfig& vconfig::operator=(const vconfig& cfg)
|
|||
}
|
||||
|
||||
const config vconfig::get_parsed_config() const {
|
||||
static const config::t_token z_insert_tag("insert_tag", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_variable("variable", false);
|
||||
static const config::t_token & z_insert_tag( generate_safe_static_const_t_interned(n_token::t_token("insert_tag")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_variable( generate_safe_static_const_t_interned(n_token::t_token("variable")) );
|
||||
|
||||
config res;
|
||||
foreach (const config::attribute &i, cfg_->attribute_range()) {
|
||||
|
@ -302,9 +302,9 @@ const config vconfig::get_parsed_config() const {
|
|||
}
|
||||
|
||||
vconfig::child_list vconfig::get_children(const config::t_token& key) const {
|
||||
static const config::t_token z_insert_tag("insert_tag", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_variable("variable", false);
|
||||
static const config::t_token & z_insert_tag( generate_safe_static_const_t_interned(n_token::t_token("insert_tag")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_variable( generate_safe_static_const_t_interned(n_token::t_token("variable")) );
|
||||
|
||||
vconfig::child_list res;
|
||||
|
||||
|
@ -343,9 +343,9 @@ vconfig::child_list vconfig::get_children(const std::string& key) const {return
|
|||
|
||||
vconfig vconfig::child(const config::t_token& key) const
|
||||
{
|
||||
static const config::t_token z_insert_tag("insert_tag", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token z_variable("variable", false);
|
||||
static const config::t_token & z_insert_tag( generate_safe_static_const_t_interned(n_token::t_token("insert_tag")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
static const config::t_token & z_variable( generate_safe_static_const_t_interned(n_token::t_token("variable")) );
|
||||
|
||||
if (const config &natural = cfg_->child(key)) {
|
||||
return vconfig(&natural, cache_key_);
|
||||
|
@ -368,8 +368,8 @@ vconfig vconfig::child(const std::string& key) const {return child(t_token(key))
|
|||
|
||||
bool vconfig::has_child(const config::t_token& key) const
|
||||
{
|
||||
static const config::t_token z_insert_tag("insert_tag", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token & z_insert_tag( generate_safe_static_const_t_interned(n_token::t_token("insert_tag")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
|
||||
if (cfg_->child(key)) {
|
||||
return true;
|
||||
|
@ -415,8 +415,8 @@ vconfig::all_children_iterator::all_children_iterator(const Itor &i, const confi
|
|||
}
|
||||
|
||||
vconfig::all_children_iterator& vconfig::all_children_iterator::operator++() {
|
||||
static const config::t_token z_insert_tag("insert_tag", false);
|
||||
static const config::t_token z_variable("variable", false);
|
||||
static const config::t_token & z_insert_tag( generate_safe_static_const_t_interned(n_token::t_token("insert_tag")) );
|
||||
static const config::t_token & z_variable( generate_safe_static_const_t_interned(n_token::t_token("variable")) );
|
||||
|
||||
if (inner_index_ >= 0 && i_->key == z_insert_tag)
|
||||
{
|
||||
|
@ -454,8 +454,8 @@ vconfig::all_children_iterator::pointer vconfig::all_children_iterator::operator
|
|||
|
||||
config::t_token vconfig::all_children_iterator::get_key() const
|
||||
{
|
||||
static const config::t_token z_insert_tag("insert_tag", false);
|
||||
static const config::t_token z_name("name", false);
|
||||
static const config::t_token & z_insert_tag( generate_safe_static_const_t_interned(n_token::t_token("insert_tag")) );
|
||||
static const config::t_token & z_name( generate_safe_static_const_t_interned(n_token::t_token("name")) );
|
||||
|
||||
const config::t_token &key = i_->key;
|
||||
if (inner_index_ >= 0 && key == z_insert_tag) {
|
||||
|
@ -467,8 +467,8 @@ config::t_token vconfig::all_children_iterator::get_key() const
|
|||
|
||||
vconfig vconfig::all_children_iterator::get_child() const
|
||||
{
|
||||
static const config::t_token z_insert_tag("insert_tag", false);
|
||||
static const config::t_token z_variable("variable", false);
|
||||
static const config::t_token & z_insert_tag( generate_safe_static_const_t_interned(n_token::t_token("insert_tag")) );
|
||||
static const config::t_token & z_variable( generate_safe_static_const_t_interned(n_token::t_token("variable")) );
|
||||
|
||||
if (inner_index_ >= 0 && i_->key == z_insert_tag)
|
||||
{
|
||||
|
@ -547,8 +547,8 @@ scoped_wml_variable::~scoped_wml_variable()
|
|||
|
||||
void scoped_xy_unit::activate()
|
||||
{
|
||||
static const config::t_token z_x("x", false);
|
||||
static const config::t_token z_y("y", false);
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
|
||||
map_location loc = map_location(x_, y_);
|
||||
unit_map::const_iterator itor = umap_.find(loc);
|
||||
|
@ -572,9 +572,9 @@ void scoped_weapon_info::activate()
|
|||
|
||||
void scoped_recall_unit::activate()
|
||||
{
|
||||
static const config::t_token z_x("x", false);
|
||||
static const config::t_token z_y("y", false);
|
||||
static const config::t_token z_recall("recall", false);
|
||||
static const config::t_token & z_x( generate_safe_static_const_t_interned(n_token::t_token("x")) );
|
||||
static const config::t_token & z_y( generate_safe_static_const_t_interned(n_token::t_token("y")) );
|
||||
static const config::t_token & z_recall( generate_safe_static_const_t_interned(n_token::t_token("recall")) );
|
||||
|
||||
const t_teams& teams = teams_manager::get_teams();
|
||||
t_teams::const_iterator team_it;
|
||||
|
@ -603,10 +603,6 @@ void scoped_recall_unit::activate()
|
|||
|
||||
|
||||
namespace {
|
||||
static const config::t_token z_dot(".", false);
|
||||
static const config::t_token z_lbracket("[", false);
|
||||
static const config::t_token z_rbracket("]", false);
|
||||
|
||||
|
||||
typedef config::t_token t_token;
|
||||
struct t_parsed {
|
||||
|
@ -734,9 +730,9 @@ void activate_scope_variable(t_parsed_tokens const & tokens)
|
|||
|
||||
|
||||
void variable_info::init(const config::t_token& varname, bool force_valid) {
|
||||
static const config::t_token z_length("length", false);
|
||||
static const config::t_token z___array("__array", false);
|
||||
static const config::t_token z___value("__value", false);
|
||||
static const config::t_token & z_length( generate_safe_static_const_t_interned(n_token::t_token("length")) );
|
||||
static const config::t_token & z___array( generate_safe_static_const_t_interned(n_token::t_token("__array")) );
|
||||
static const config::t_token & z___value( generate_safe_static_const_t_interned(n_token::t_token("__value")) );
|
||||
try {
|
||||
|
||||
//an example varname is "unit_store.modifications.trait[0]"
|
||||
|
|
Loading…
Add table
Reference in a new issue