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