mirror of
https://github.com/wesnoth/wesnoth
synced 2025-04-30 01:47:13 +00:00
Clean the use of @todo for Doxygen
Use ///@todo bla or /** @todo bla */ with lowercase and no colon after todo
This commit is contained in:
parent
e571ac2553
commit
c7c222380d
@ -288,7 +288,7 @@ void attack_result::do_execute()
|
||||
const unit_map::const_iterator a_ = resources::units->find(attacker_loc_);
|
||||
const unit_map::const_iterator d_ = resources::units->find(defender_loc_);
|
||||
|
||||
//@todo 1.9: change ToD to be location specific for the defender unit
|
||||
///@todo 1.9: change ToD to be location specific for the defender unit
|
||||
recorder.add_attack(attacker_loc_, defender_loc_, attacker_weapon, defender_weapon, a_->type_id(),
|
||||
d_->type_id(), a_->level(), d_->level(), resources::tod_manager->turn(),
|
||||
resources::tod_manager->get_time_of_day());
|
||||
@ -390,7 +390,7 @@ bool move_result::test_route(const unit &un)
|
||||
const pathfind::shortest_path_calculator calc(un, my_team, *resources::units, *resources::teams, *resources::game_map);
|
||||
|
||||
//allowed teleports
|
||||
std::set<map_location> allowed_teleports = pathfind::get_teleport_locations(un, my_team, true);//@todo 1.9: see_all -> false
|
||||
std::set<map_location> allowed_teleports = pathfind::get_teleport_locations(un, my_team, true);///@todo 1.9: see_all -> false
|
||||
|
||||
//do an A*-search
|
||||
route_ = boost::shared_ptr<pathfind::plain_route>( new pathfind::plain_route(pathfind::a_star_search(un.get_location(), to_, 10000.0, &calc, resources::game_map->w(), resources::game_map->h(), &allowed_teleports)));
|
||||
@ -435,7 +435,7 @@ void move_result::do_check_after()
|
||||
set_error(E_FAILED_TELEPORT);
|
||||
return;
|
||||
}
|
||||
//@todo 1.9 add 'new units spotted' failure mode
|
||||
///@todo 1.9 add 'new units spotted' failure mode
|
||||
|
||||
if (unit_location_!=to_) {
|
||||
set_error(E_NOT_REACHED_DESTINATION);
|
||||
@ -475,7 +475,7 @@ void move_result::do_execute()
|
||||
/*undo_list* undo_stack*/ NULL,
|
||||
/*bool show_move*/ preferences::show_ai_moves(),
|
||||
/*map_location *next_unit*/ NULL,
|
||||
/*bool continue_move*/ true, //@todo: 1.9 set to false after implemeting interrupt awareness
|
||||
/*bool continue_move*/ true, ///@todo 1.9 set to false after implemeting interrupt awareness
|
||||
/*bool should_clear_shroud*/ true,
|
||||
/*bool is_replay*/ false);
|
||||
|
||||
|
@ -396,8 +396,8 @@ static std::map<int,std::string> error_names_;
|
||||
};
|
||||
|
||||
|
||||
//@todo 1.7.11 important! Add an ai action (and fai function) to set a goto on a unit
|
||||
//@todo 1.7.11 important! Add an ai action (and fai function) to send a chat message to a player
|
||||
///@todo 1.7.11 important! Add an ai action (and fai function) to set a goto on a unit
|
||||
///@todo 1.7.11 important! Add an ai action (and fai function) to send a chat message to a player
|
||||
|
||||
} //end of namespace ai
|
||||
|
||||
|
@ -164,7 +164,7 @@ std::string ai_composite::get_engine() const
|
||||
std::string ai_composite::evaluate(const std::string& str)
|
||||
{
|
||||
config cfg;
|
||||
cfg["engine"] = "fai";//@todo 1.9 : consider allowing other engines to evaluate
|
||||
cfg["engine"] = "fai";///@todo 1.9 : consider allowing other engines to evaluate
|
||||
engine_ptr e_ptr = get_engine_by_cfg(cfg);
|
||||
if (!e_ptr) {
|
||||
return interface::evaluate(str);
|
||||
@ -175,7 +175,7 @@ std::string ai_composite::evaluate(const std::string& str)
|
||||
|
||||
void ai_composite::new_turn()
|
||||
{
|
||||
//@todo 1.9 replace with event system
|
||||
///@todo 1.9 replace with event system
|
||||
recalculate_move_maps();
|
||||
invalidate_defensive_position_cache();
|
||||
invalidate_keeps_cache();
|
||||
|
@ -48,14 +48,14 @@ aspect::~aspect()
|
||||
manager::remove_turn_started_observer(this);
|
||||
}
|
||||
if (invalidate_on_tod_change_) {
|
||||
//@todo 1.9 add tod_changed_observer
|
||||
///@todo 1.9 add tod_changed_observer
|
||||
//manager::remove_tod_changed_observer(this);
|
||||
}
|
||||
if (invalidate_on_gamestate_change_) {
|
||||
manager::remove_gamestate_observer(this);
|
||||
}
|
||||
if (invalidate_on_minor_gamestate_change_) {
|
||||
//@todo 1.9 add minor_gamestate_change_observer
|
||||
///@todo 1.9 add minor_gamestate_change_observer
|
||||
//manager::remove_minor_gamestate_observer(this);
|
||||
}
|
||||
}
|
||||
@ -75,14 +75,14 @@ bool aspect::redeploy(const config &cfg, const std::string& /*id*/)
|
||||
manager::remove_turn_started_observer(this);
|
||||
}
|
||||
if (invalidate_on_tod_change_) {
|
||||
//@todo 1.9 add tod_changed_observer
|
||||
///@todo 1.9 add tod_changed_observer
|
||||
//manager::remove_tod_changed_observer(this);
|
||||
}
|
||||
if (invalidate_on_gamestate_change_) {
|
||||
manager::remove_gamestate_observer(this);
|
||||
}
|
||||
if (invalidate_on_minor_gamestate_change_) {
|
||||
//@todo 1.9 add minor_gamestate_change_observer
|
||||
///@todo 1.9 add minor_gamestate_change_observer
|
||||
//manager::remove_minor_gamestate_observer(this);
|
||||
}
|
||||
|
||||
@ -101,14 +101,14 @@ bool aspect::redeploy(const config &cfg, const std::string& /*id*/)
|
||||
manager::add_turn_started_observer(this);
|
||||
}
|
||||
if (invalidate_on_tod_change_) {
|
||||
//@todo 1.9 add tod_changed_observer
|
||||
///@todo 1.9 add tod_changed_observer
|
||||
//manager::add_tod_changed_observer(this);
|
||||
}
|
||||
if (invalidate_on_gamestate_change_) {
|
||||
manager::add_gamestate_observer(this);
|
||||
}
|
||||
if (invalidate_on_minor_gamestate_change_) {
|
||||
//@todo 1.9 add minor_gamestate_change_observer
|
||||
///@todo 1.9 add minor_gamestate_change_observer
|
||||
//manager::add_minor_gamestate_observer(this);
|
||||
}
|
||||
return true;
|
||||
|
@ -300,7 +300,7 @@ public:
|
||||
|
||||
virtual void recalculate() const
|
||||
{
|
||||
//@todo 1.9 optimize in case of an aspect which returns variant
|
||||
///@todo 1.9 optimize in case of an aspect which returns variant
|
||||
foreach (const typename aspect_type<T>::typesafe_ptr &f, make_pair(facets_.rbegin(),facets_.rend())) {
|
||||
if (f->active()) {
|
||||
this->value_ = boost::shared_ptr<T>(f->get_ptr());
|
||||
|
@ -43,7 +43,7 @@ static lg::log_domain log_ai_engine_fai("ai/engine/fai");
|
||||
class fai_candidate_action_wrapper : public candidate_action {
|
||||
public:
|
||||
fai_candidate_action_wrapper( rca_context &context, const config &cfg, game_logic::candidate_action_ptr fai_ca, formula_ai &_formula_ai )
|
||||
: candidate_action(context,cfg),fai_ca_(fai_ca),formula_ai_(_formula_ai),cfg_(cfg)//@todo 1.7: implement fai_ca->to_config()
|
||||
: candidate_action(context,cfg),fai_ca_(fai_ca),formula_ai_(_formula_ai),cfg_(cfg)///@todo 1.7: implement fai_ca->to_config()
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -183,7 +183,7 @@ void engine_lua::do_parse_stage_from_config( ai_context &context, const config &
|
||||
|
||||
std::string engine_lua::evaluate(const std::string &/*str*/)
|
||||
{
|
||||
//@todo: this is not mandatory, but if we want to allow lua to evaluate
|
||||
///@todo this is not mandatory, but if we want to allow lua to evaluate
|
||||
// something 'in context' of this ai, this will be useful
|
||||
return "";
|
||||
}
|
||||
|
@ -488,7 +488,7 @@ double readonly_context_impl::get_aggression() const
|
||||
int readonly_context_impl::get_attack_depth() const
|
||||
{
|
||||
if (attack_depth_) {
|
||||
return std::max<int>(1,attack_depth_->get()); //@todo 1.9: add validators, such as minmax filters to aspects
|
||||
return std::max<int>(1,attack_depth_->get()); ///@todo 1.9: add validators, such as minmax filters to aspects
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
@ -521,7 +521,7 @@ const variant& readonly_context_impl::get_attacks_as_variant() const
|
||||
if (attacks_) {
|
||||
return attacks_->get_variant();
|
||||
}
|
||||
static variant v;//@todo 1.9: replace with variant::null_variant;
|
||||
static variant v;///@todo 1.9: replace with variant::null_variant;
|
||||
return v;
|
||||
}
|
||||
|
||||
@ -718,7 +718,7 @@ const moves_map& readonly_context_impl::get_possible_moves() const
|
||||
const std::vector<unit>& readonly_context_impl::get_recall_list() const
|
||||
{
|
||||
static std::vector<unit> dummy_units;
|
||||
//@todo 1.9: check for (level_["disallow_recall"]))
|
||||
///@todo 1.9: check for (level_["disallow_recall"]))
|
||||
if(!current_team().persistent()) {
|
||||
return dummy_units;
|
||||
}
|
||||
@ -1071,7 +1071,7 @@ void readonly_context_impl::recalculate_move_maps() const
|
||||
++i;
|
||||
}
|
||||
}
|
||||
//@todo 1.9: shall possible moves be modified as well ?
|
||||
///@todo 1.9: shall possible moves be modified as well ?
|
||||
}
|
||||
}
|
||||
move_maps_valid_ = true;
|
||||
|
@ -575,7 +575,7 @@ void ai_default_recruitment_stage::analyze_potential_recruit_movements()
|
||||
}
|
||||
|
||||
const unit_type &ut = *info;
|
||||
//@todo 1.9: we give max movement, but recruited will get 0? Seems inaccurate
|
||||
///@todo 1.9: we give max movement, but recruited will get 0? Seems inaccurate
|
||||
//but keep it like that for now
|
||||
// pathfinding ignoring other units and terrain defense
|
||||
const pathfind::move_type_path_calculator calc(ut.movement_type(), ut.movement(), ut.movement(), current_team(),map_);
|
||||
|
@ -45,7 +45,7 @@ struct target {
|
||||
double value;
|
||||
|
||||
TYPE type;
|
||||
//@todo 1.7: ai goals: this is a 'target' marker class which should be expanded with additional information which is generic enough to apply to all targets.
|
||||
///@todo 1.7: ai goals: this is a 'target' marker class which should be expanded with additional information which is generic enough to apply to all targets.
|
||||
};
|
||||
|
||||
|
||||
@ -286,7 +286,7 @@ public:
|
||||
|
||||
private:
|
||||
recursion_counter recursion_counter_;
|
||||
mutable std::vector<target> additional_targets_;//@todo 1.9 refactor this
|
||||
mutable std::vector<target> additional_targets_;///@todo 1.9 refactor this
|
||||
|
||||
|
||||
};
|
||||
|
@ -157,7 +157,7 @@ variant formula_ai::make_action(game_logic::const_formula_ptr formula_, const ga
|
||||
throw formula_error("null formula passed to make_action","","formula",0);
|
||||
}
|
||||
LOG_AI << "do move...\n";
|
||||
const variant var = formula_->evaluate(variables);//@todo 1.9 add formula_debugger
|
||||
const variant var = formula_->evaluate(variables);///@todo 1.9 add formula_debugger
|
||||
variant res;
|
||||
|
||||
if (ai_ptr_) {
|
||||
|
@ -136,7 +136,7 @@ private:
|
||||
|
||||
static unsigned search_counter;
|
||||
|
||||
//@todo 1.8: document
|
||||
///@todo 1.8: document
|
||||
class calculate_map_ownership_function : public function_expression {
|
||||
public:
|
||||
calculate_map_ownership_function(const args_list& args, const formula_ai& ai)
|
||||
|
@ -75,7 +75,7 @@ void stage_side_formulas::on_create()
|
||||
config stage_side_formulas::to_config() const
|
||||
{
|
||||
config cfg = stage::to_config();
|
||||
//@todo 1.7: serialize to config
|
||||
///@todo 1.7: serialize to config
|
||||
cfg.append(cfg_);
|
||||
return cfg;
|
||||
}
|
||||
|
@ -456,7 +456,7 @@ long manager::history_item_counter_ = 1;
|
||||
//this is stub code to allow testing of basic 'history', 'repeat-last-command', 'add/remove/replace ai' capabilities.
|
||||
//yes, it doesn't look nice. but it is usable.
|
||||
//to be refactored at earliest opportunity
|
||||
//@todo 1.9 extract to separate class which will use fai or lua parser
|
||||
///@todo 1.9 extract to separate class which will use fai or lua parser
|
||||
const std::string manager::internal_evaluate_command( side_number side, const std::string& str ){
|
||||
const int MAX_HISTORY_VISIBLE = 30;
|
||||
|
||||
@ -570,7 +570,7 @@ const std::string manager::internal_evaluate_command( side_number side, const st
|
||||
// ADD, CREATE AIs, OR LIST AI TYPES
|
||||
// =======================================================================
|
||||
|
||||
//@todo 1.9 add error reporting
|
||||
///@todo 1.9 add error reporting
|
||||
bool manager::add_ai_for_side_from_file( side_number side, const std::string& file, bool replace )
|
||||
{
|
||||
config cfg;
|
||||
@ -597,7 +597,7 @@ bool manager::add_ai_for_side_from_config( side_number side, const config& cfg,
|
||||
}
|
||||
|
||||
|
||||
//@todo 1.9 add error reporting
|
||||
///@todo 1.9 add error reporting
|
||||
bool manager::add_ai_for_side( side_number side, const std::string& ai_algorithm_type, bool replace )
|
||||
{
|
||||
if (replace) {
|
||||
|
@ -93,7 +93,7 @@ void ai_testing::log_game_start()
|
||||
LOG_AI_TESTING << "FACTION"<<side<<": " << tm->name() << std::endl;
|
||||
recorder.add_log_data("ai_log","ai_id"+str_cast(side),ai::manager::get_active_ai_identifier_for_side(side));
|
||||
recorder.add_log_data("ai_log","faction"+str_cast(side),tm->name());
|
||||
//@todo 1.9: add information about ai_config
|
||||
///@todo 1.9: add information about ai_config
|
||||
}
|
||||
LOG_AI_TESTING << "VERSION: " << game_config::revision << std::endl;
|
||||
recorder.add_log_data("ai_log","version",game_config::revision);
|
||||
|
@ -855,7 +855,7 @@ void get_villages_phase::execute()
|
||||
//25.0* current_team().caution() * power_projection(loc,enemy_dstsrc) / new_unit->second.hitpoints()
|
||||
//Is this an improvement?
|
||||
|
||||
//@todo 1.7 check if this an improvement
|
||||
///@todo 1.7 check if this an improvement
|
||||
//add_target(target(new_unit->first,1.0,target::SUPPORT));
|
||||
}
|
||||
}
|
||||
|
@ -395,7 +395,7 @@ std::pair<map_location,map_location> testing_move_to_targets_phase::choose_move(
|
||||
|
||||
const move_cost_calculator calc(*u, map_, units_, enemy_dstsrc);
|
||||
|
||||
//@todo 1.9: lower this value for perf,
|
||||
///@todo 1.9: lower this value for perf,
|
||||
// but best_rating is too big for scout and support
|
||||
// which give a too small locStopValue
|
||||
// so keep costy A* for the moment.
|
||||
|
@ -42,7 +42,7 @@ fallback_to_other_ai::fallback_to_other_ai( ai_context &context, const config &c
|
||||
void fallback_to_other_ai::on_create()
|
||||
{
|
||||
config ai_cfg = cfg_.child_or_empty("ai");
|
||||
//@todo 1.9.3 backward-compatability hack - try to update the old default ai config. remove in 1.9.3
|
||||
///@todo 1.9.3 backward-compatability hack - try to update the old default ai config. remove in 1.9.3
|
||||
std::string ai_algorithm = ai_cfg["ai_algorithm"];
|
||||
if ((ai_algorithm.empty()) || (ai_algorithm=="default_ai")) {
|
||||
if (configuration::parse_side_config(get_side(),cfg_,ai_cfg)) {
|
||||
|
@ -141,7 +141,7 @@ struct file_tree_checksum
|
||||
explicit file_tree_checksum(const class config& cfg);
|
||||
void write(class config& cfg) const;
|
||||
void reset() {nfiles = 0;modified = 0;sum_size=0;};
|
||||
// @todo: make variables private!
|
||||
// @todo make variables private!
|
||||
size_t nfiles, sum_size;
|
||||
time_t modified;
|
||||
};
|
||||
|
@ -2292,7 +2292,7 @@ static int do_gameloop(int argc, char** argv)
|
||||
continue;
|
||||
#ifndef DISABLE_EDITOR
|
||||
} else if(res == gui::START_MAP_EDITOR) {
|
||||
//@todo editor can ask the game to quit completely
|
||||
///@todo editor can ask the game to quit completely
|
||||
if (game.start_editor() == editor::EXIT_QUIT_TO_DESKTOP) {
|
||||
return 0;
|
||||
} else {
|
||||
|
@ -233,7 +233,7 @@ void write_players(game_state& gamestate, config& cfg, const bool use_snapshot,
|
||||
(*scenario_side)["name"] = carryover_side["name"];
|
||||
(*scenario_side)["current_player"] = carryover_side["current_player"];
|
||||
|
||||
//@todo 1.9.2
|
||||
///@todo 1.9.2
|
||||
const std::string colour_error = "Usage of 'colour' in [side] is deprecated, support will be removed in 1.9.2.\n";
|
||||
(*scenario_side)["color"] = carryover_side.get_old_attribute("color","colour",colour_error);
|
||||
|
||||
|
@ -1142,7 +1142,7 @@ void ttext::draw(surface& canvas
|
||||
<< " text width " << surf->w
|
||||
<< " text height " << surf->h;
|
||||
*/
|
||||
//@todo formulas are now recalculated every draw cycle which is a
|
||||
///@todo formulas are now recalculated every draw cycle which is a
|
||||
// bit silly unless there has been a resize. So to optimize we should
|
||||
// use an extra flag or do the calculation in a separate routine.
|
||||
|
||||
|
@ -191,7 +191,7 @@ public:
|
||||
return;
|
||||
}
|
||||
|
||||
int i = 0;//@todo: replace with precached data
|
||||
int i = 0;///@todo replace with precached data
|
||||
const config &vars = resources::state_of_game->get_variables();
|
||||
|
||||
foreach( const config::attribute &a, vars.attribute_range()) {
|
||||
@ -264,7 +264,7 @@ public:
|
||||
return;
|
||||
}
|
||||
|
||||
int i = 0;//@todo: replace with precached data
|
||||
int i = 0;///@todo replace with precached data
|
||||
for(unit_map::iterator u = resources::units->begin(); u != resources::units->end(); ++u) {
|
||||
if (selected==i) {
|
||||
config c_unit;
|
||||
|
@ -320,7 +320,7 @@ void terrain_label::read(const config &cfg)
|
||||
loc_ = map_location(cfg, &vs);
|
||||
SDL_Color color = font::LABEL_COLOR;
|
||||
|
||||
//@todo 1.9.2
|
||||
///@todo 1.9.2
|
||||
const std::string colour_error = "Usage of 'colour' in [label] is deprecated, support will be removed in 1.9.2.\n";
|
||||
std::string tmp_color = cfg.get_old_attribute("color","colour", colour_error);
|
||||
|
||||
|
@ -1434,7 +1434,7 @@ void menu_handler::create_unit_2(mouse_handler& mousehandler)
|
||||
|
||||
void menu_handler::create_unit(mouse_handler& mousehandler)
|
||||
{
|
||||
/** @todo: reenable after releasing 1.7.4; as-is causes memory corruption */
|
||||
/** @todo reenable after releasing 1.7.4; as-is causes memory corruption */
|
||||
if(gui2::new_widgets) {
|
||||
create_unit_2(mousehandler);
|
||||
return;
|
||||
|
@ -913,7 +913,7 @@ void mouse_handler::attack_enemy_(const map_location& att_loc
|
||||
gui().unhighlight_reach();
|
||||
gui().draw();
|
||||
|
||||
//@TODO: change ToD to be location specific for the defender
|
||||
///@todo change ToD to be location specific for the defender
|
||||
recorder.add_attack(attacker_loc, defender_loc, att.attack_num, def.attack_num,
|
||||
attacker->type_id(), defender->type_id(), att.level,
|
||||
def.level, resources::tod_manager->turn(), resources::tod_manager->get_time_of_day());
|
||||
|
@ -16,7 +16,7 @@
|
||||
* Network worker handles data transfers in threads
|
||||
* Remember to use mutexs as little as possible
|
||||
* All global vars should be used in mutex
|
||||
* FIXME: @todo: All code which holds a mutex should run O(1) time
|
||||
* FIXME: @todo All code which holds a mutex should run O(1) time
|
||||
* for scalability. Implement read/write locks.
|
||||
* (postponed for 1.5)
|
||||
*/
|
||||
|
@ -279,7 +279,7 @@ LEVEL_RESULT play_game(display& disp, game_state& gamestate, const config& game_
|
||||
if (side["current_player"] == preferences::login()) {
|
||||
side["controller"] = preferences::client_type();
|
||||
} else if (side["controller"] != "null") {
|
||||
// @todo: Fix logic to use network_ai controller
|
||||
/// @todo Fix logic to use network_ai controller
|
||||
// if it is networked ai
|
||||
side["controller"] = "network";
|
||||
}
|
||||
|
@ -84,7 +84,7 @@ seed_t get_last_seed();
|
||||
/**
|
||||
* Set the callback for a fuction that will be called on subsequent set_seed
|
||||
* calls.
|
||||
* @TODO needs a reliable way of clearing the callback when things don't go as
|
||||
* @todo needs a reliable way of clearing the callback when things don't go as
|
||||
* normal (e.g. player quit the game while the callback is set)
|
||||
*/
|
||||
void set_new_seed_callback(boost::function<void (seed_t)> f);
|
||||
|
@ -123,7 +123,7 @@ private:
|
||||
}
|
||||
} while (UNLIKELY(current_ == '\r'));
|
||||
#if 0
|
||||
// @todo: disabled untill campaign server is fixed
|
||||
/// @todo disabled untill campaign server is fixed
|
||||
if(LIKELY(in_.good())) {
|
||||
current_ = in_.get();
|
||||
if (UNLIKELY(current_ == '\r'))
|
||||
|
@ -904,7 +904,7 @@ bool game::end_turn() {
|
||||
return true;
|
||||
}
|
||||
|
||||
//@todo differentiate between "observers not allowed" and "player already in the game" errors.
|
||||
///@todo differentiate between "observers not allowed" and "player already in the game" errors.
|
||||
// maybe return a string with an error message.
|
||||
bool game::add_player(const network::connection player, bool observer) {
|
||||
if(is_member(player)) {
|
||||
|
@ -80,7 +80,7 @@ team::team_info::team_info(const config& cfg) :
|
||||
side(cfg["side"].to_int(1)),
|
||||
persistent(false)
|
||||
{
|
||||
//@todo 1.9.2
|
||||
///@todo 1.9.2
|
||||
const std::string colour_error = "Usage of 'colour' in [side] is deprecated, support will be removed in 1.9.2.\n";
|
||||
if(cfg.has_old_attribute("color","colour",colour_error))
|
||||
color = cfg.get_old_attribute("color","colour").str();
|
||||
|
@ -34,7 +34,7 @@
|
||||
|
||||
#include "tests/utils/fake_display.hpp"
|
||||
/**
|
||||
* @todo: add all others exception handlers too
|
||||
* @todo add all others exception handlers too
|
||||
**/
|
||||
|
||||
static void exception_translator_config(const config::error& e)
|
||||
|
@ -1483,7 +1483,7 @@ bool unit::internal_matches_filter(const vconfig& cfg, const map_location& loc,
|
||||
if(cfg.has_attribute("formula")) {
|
||||
const unit_callable callable(std::pair<map_location, unit>(loc,*this));
|
||||
const game_logic::formula form(cfg["formula"]);
|
||||
if(!form.evaluate(callable).as_bool()) {//@todo: use formula_ai
|
||||
if(!form.evaluate(callable).as_bool()) {///@todo use formula_ai
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -181,7 +181,7 @@ void upload_log::read_replay()
|
||||
return;
|
||||
}
|
||||
|
||||
//@TODO: check if game_ is always there
|
||||
///@todo check if game_ is always there
|
||||
if( !game_ ) {
|
||||
game_ = new config();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user