Author: suokko
Date: Sun Sep 14 18:11:32 2008
New Revision: 29462
URL: http://svn.gna.org/viewcvs/wesnoth?rev=29462&view=rev
Log:
Made unit id manager give fake ids for fake units used by ai/game calculations
Modified:
trunk/src/unit.cpp
trunk/src/unit_id.cpp
trunk/src/unit_id.hpp
Modified: trunk/src/unit.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/unit.cpp?rev=29462&r1=29461&r2=29462&view=diff
==============================================================================
--- trunk/src/unit.cpp (original)
+++ trunk/src/unit.cpp Sun Sep 14 18:11:32 2008
@@ -3050,7 +3050,7 @@
void unit::clone()
{
- underlying_id_ = n_unit::id_manager::instance().next_id();
+ underlying_id_ = n_unit::id_manager::instance().next_fake_id();
}
Modified: trunk/src/unit_id.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/unit_id.cpp?rev=29462&r1=29461&r2=29462&view=diff
==============================================================================
--- trunk/src/unit_id.cpp (original)
+++ trunk/src/unit_id.cpp Sun Sep 14 18:11:32 2008
@@ -15,12 +15,14 @@
#include "log.hpp"
#include "unit_id.hpp"
+#include <cassert>
+
#define DBG_UT LOG_STREAM(debug, engine)
namespace n_unit {
id_manager id_manager::manager_;
- id_manager::id_manager() : next_id_(0)
+ id_manager::id_manager() : next_id_(0), fake_id_(-1)
{}
id_manager& id_manager::instance()
@@ -30,8 +32,15 @@
size_t id_manager::next_id()
{
+ assert(next_id_ != fake_id_);
DBG_UT << "id: " << next_id_ << "\n";
return ++next_id_;
+ }
+
+ size_t id_manager::next_fake_id()
+ {
+ assert(next_id_ != fake_id_);
+ return --fake_id_;
}
size_t id_manager::get_save_id()
Modified: trunk/src/unit_id.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/unit_id.hpp?rev=29462&r1=29461&r2=29462&view=diff
==============================================================================
--- trunk/src/unit_id.hpp (original)
+++ trunk/src/unit_id.hpp Sun Sep 14 18:11:32 2008
@@ -25,12 +25,15 @@
class id_manager : private boost::noncopyable {
private:
size_t next_id_;
+ size_t fake_id_;
static id_manager manager_;
id_manager();
public:
static id_manager& instance();
/** returns id for unit that is created */
size_t next_id();
+
+ size_t next_fake_id();
/** Used for saving id to savegame */
size_t get_save_id();
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits