Author: shadowmaster
Date: Sun Aug 24 22:54:01 2008
New Revision: 28946

URL: http://svn.gna.org/viewcvs/wesnoth?rev=28946&view=rev
Log:
* Fixed several side-effects of [modify_turns] and changed default
* value= when invalid from 50 to -1

Modified:
    trunk/changelog
    trunk/src/game_events.cpp

Modified: trunk/changelog
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/changelog?rev=28946&r1=28945&r2=28946&view=diff
==============================================================================
--- trunk/changelog (original)
+++ trunk/changelog Sun Aug 24 22:54:01 2008
@@ -23,6 +23,11 @@
  * Miscellaneous and bug fixes:
    * Changed side_drop handling not to automaticaly assign AI for side if
      leader is dead (bug #12186)
+   * Changed the behavior of [modify_turns] value= to default to -1
+     (no turn limit) instead of 50 if an invalid string is passed instead
+     of a number.
+   * Fixed [modify_turns] giving the unwanted side-effect of changing
+     turn limit when only current= modifier was used.=
    * Removed the compiler work arounds for MSVC6.
    * Added some more compiler workarounds for MSVC9.
 

Modified: trunk/src/game_events.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/game_events.cpp?rev=28946&r1=28945&r2=28946&view=diff
==============================================================================
--- trunk/src/game_events.cpp (original)
+++ trunk/src/game_events.cpp Sun Aug 24 22:54:01 2008
@@ -799,21 +799,20 @@
                std::string current = cfg["current"];
                assert(state_of_game != NULL);
                assert(status_ptr != NULL);
-               if(add != "") {
+               if(!add.empty()) {
                        status_ptr->modify_turns(add);
-               } else {
+               } else if(!value.empty()) {
                        status_ptr->add_turns(-status_ptr->number_of_turns());
-                       //[EMAIL PROTECTED] FIXME: why 50 is a good default for 
this?
-                       
status_ptr->add_turns(lexical_cast_default<int>(value,50));
+                       
status_ptr->add_turns(lexical_cast_default<int>(value,-1));
                }
                // change current turn only after applying mods
                if(!current.empty()) {
-                       const int new_turn_number = 
lexical_cast_default<int>(current,1);
+                       const unsigned int current_turn_number = 
status_ptr->turn();
+                       const int new_turn_number = 
lexical_cast_default<int>(current, current_turn_number);
                        const unsigned int new_turn_number_u = 
static_cast<unsigned int>(new_turn_number);
-                       const unsigned int current_turn_number = 
status_ptr->turn();
                        if(new_turn_number < current_turn_number || 
new_turn_number > status_ptr->number_of_turns()) {
                                ERR_NG << "attempted to change current turn 
number to one out of range (" << new_turn_number << ") or less than current 
turn\n";
-                       } else if(new_turn_number_u != status_ptr->turn()) {
+                       } else if(new_turn_number_u != current_turn_number) {
                                status_ptr->set_turn(new_turn_number_u);
                                (screen)->new_turn();
                        }


_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits

Reply via email to