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

Reply via email to