Routines to manage units. More...
#include "units/unit.hpp"
#include "color.hpp"
#include "deprecation.hpp"
#include "display.hpp"
#include "formatter.hpp"
#include "formula/string_utils.hpp"
#include "game_board.hpp"
#include "game_config.hpp"
#include "game_data.hpp"
#include "game_errors.hpp"
#include "game_events/manager.hpp"
#include "game_version.hpp"
#include "gettext.hpp"
#include "lexical_cast.hpp"
#include "log.hpp"
#include "map/map.hpp"
#include "preferences/game.hpp"
#include "random.hpp"
#include "resources.hpp"
#include "scripting/game_lua_kernel.hpp"
#include "side_filter.hpp"
#include "synced_context.hpp"
#include "team.hpp"
#include "terrain/filter.hpp"
#include "units/abilities.hpp"
#include "units/animation.hpp"
#include "units/animation_component.hpp"
#include "units/filter.hpp"
#include "units/formula_manager.hpp"
#include "units/id.hpp"
#include "units/map.hpp"
#include "units/types.hpp"
#include "variable.hpp"
#include <cassert>
#include <cstdlib>
#include <exception>
#include <functional>
#include <iterator>
#include <new>
#include <ostream>
#include <string_view>
Go to the source code of this file.
Namespaces | |
t_translation | |
Macros | |
#define | DBG_UT LOG_STREAM(debug, log_unit) |
#define | LOG_UT LOG_STREAM(info, log_unit) |
#define | WRN_UT LOG_STREAM(warn, log_unit) |
#define | ERR_UT LOG_STREAM(err, log_unit) |
Functions | |
static const unit_type & | get_unit_type (const std::string &type_id) |
Converts a string ID to a unit_type. More... | |
static unit_race::GENDER | generate_gender (const unit_type &type, bool random_gender) |
static unit_race::GENDER | generate_gender (const unit_type &u_type, const config &cfg) |
static color_t | hp_color_impl (int hitpoints, int max_hitpoints) |
bool | mod_duration_match (const std::string &mod_dur, const std::string &goal_dur) |
Determines if mod_dur "matches" goal_dur. More... | |
std::string | get_checksum (const unit &u) |
Gets a checksum for a unit. More... | |
void | swap (unit &lhs, unit &rhs) |
Implement non-member swap function for std::swap (calls unit::swap). More... | |
Variables | |
static lg::log_domain | log_unit ("unit") |
Routines to manage units.
Definition in file unit.cpp.
#define DBG_UT LOG_STREAM(debug, log_unit) |
Definition at line 67 of file unit.cpp.
Referenced by get_checksum(), unit::invisible(), and unit_movement_resetter::~unit_movement_resetter().
#define ERR_UT LOG_STREAM(err, log_unit) |
Definition at line 70 of file unit.cpp.
Referenced by unit::~unit().
#define LOG_UT LOG_STREAM(info, log_unit) |
Definition at line 68 of file unit.cpp.
Referenced by unit::apply_builtin_effect(), and unit::generate_traits().
#define WRN_UT LOG_STREAM(warn, log_unit) |
Definition at line 69 of file unit.cpp.
Referenced by unit::advances_to_translated(), unit::apply_builtin_effect(), unit::mark_clone(), and unit::parse_upkeep().
|
static |
Definition at line 198 of file unit.cpp.
References unit_type::genders(), randomness::generator, and randomness::rng::get_random_int().
Referenced by generate_gender(), and unit::init().
|
static |
Definition at line 215 of file unit.cpp.
References generate_gender(), and string_gender().
std::string get_checksum | ( | const unit & | u | ) |
Gets a checksum for a unit.
In MP games the descriptions are locally generated and might differ, so it should be possible to discard them. Not sure whether replays suffer the same problem.
u | this unit |
Definition at line 2628 of file unit.cpp.
References config::add_child(), c, config::child_range(), DBG_UT, config::hash(), config::recursive_clear_value(), and unit::write().
Referenced by replay::add_unit_checksum(), and actions::find_recruit_location().
|
static |
Converts a string ID to a unit_type.
Throws a game_error exception if the string does not correspond to a type.
Definition at line 186 of file unit.cpp.
References unit_type::check_id(), unit_type_data::find(), i, and unit_types.
Referenced by unit::expire_modifications(), wfl::gamestate_function_symbol_table::gamestate_function_symbol_table(), and unit::init().
|
static |
Definition at line 1012 of file unit.cpp.
References unit::hitpoints(), and color_t::r.
Referenced by unit::hp_color(), and unit::hp_color_max().
|
inline |
Determines if mod_dur "matches" goal_dur.
If goal_dur is not empty, they match if they are equal. If goal_dur is empty, they match if mod_dur is neither empty nor "forever". Helper function for expire_modifications().
Definition at line 1160 of file unit.cpp.
Referenced by unit::expire_modifications().
Implement non-member swap function for std::swap (calls unit::swap).
Definition at line 2723 of file unit.cpp.
References unit::swap().
Referenced by unit::clear_visibility_cache(), unit::clone(), and unit::swap().
|
static |