Author: alink
Date: Tue Apr 21 04:06:41 2009
New Revision: 35094
URL: http://svn.gna.org/viewcvs/wesnoth?rev=35094&view=rev
Log:
Make the context-menu 'change unit side' allow to change village flag.
(cycle between teams and free. Supposed to fire the event but not tested)
Also rename 'Change unit side' to 'Change side' to better reflect this.
But not sure if not confusing.
Modified:
trunk/src/hotkeys.cpp
trunk/src/hotkeys.hpp
trunk/src/menu_events.cpp
trunk/src/menu_events.hpp
trunk/src/playsingle_controller.cpp
trunk/src/playsingle_controller.hpp
Modified: trunk/src/hotkeys.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/hotkeys.cpp?rev=35094&r1=35093&r2=35094&view=diff
==============================================================================
--- trunk/src/hotkeys.cpp (original)
+++ trunk/src/hotkeys.cpp Tue Apr 21 04:06:41 2009
@@ -73,7 +73,7 @@
{ hotkey::HOTKEY_MUTE, "mute", N_("Mute"), false, hotkey::SCOPE_GENERAL
},
{ hotkey::HOTKEY_SPEAK, "speak", N_("Speak"), false, hotkey::SCOPE_GAME
},
{ hotkey::HOTKEY_CREATE_UNIT, "createunit", N_("Create Unit (Debug!)"),
false, hotkey::SCOPE_GAME },
- { hotkey::HOTKEY_CHANGE_UNIT_SIDE, "changeside", N_("Change Unit Side
(Debug!)"), false, hotkey::SCOPE_GAME },
+ { hotkey::HOTKEY_CHANGE_SIDE, "changeside", N_("Change Side (Debug!)"),
false, hotkey::SCOPE_GAME },
{ hotkey::HOTKEY_PREFERENCES, "preferences", N_("Preferences"), false,
hotkey::SCOPE_GENERAL },
{ hotkey::HOTKEY_OBJECTIVES, "objectives", N_("Scenario Objectives"),
false, hotkey::SCOPE_GAME },
{ hotkey::HOTKEY_UNIT_LIST, "unitlist", N_("Unit List"), false,
hotkey::SCOPE_GAME },
@@ -751,8 +751,8 @@
case HOTKEY_CREATE_UNIT:
create_unit();
break;
- case HOTKEY_CHANGE_UNIT_SIDE:
- change_unit_side();
+ case HOTKEY_CHANGE_SIDE:
+ change_side();
break;
case HOTKEY_PREFERENCES:
preferences();
Modified: trunk/src/hotkeys.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/hotkeys.hpp?rev=35094&r1=35093&r2=35094&view=diff
==============================================================================
--- trunk/src/hotkeys.hpp (original)
+++ trunk/src/hotkeys.hpp Tue Apr 21 04:06:41 2009
@@ -50,7 +50,7 @@
HOTKEY_SAVE_GAME, HOTKEY_SAVE_REPLAY, HOTKEY_SAVE_MAP, HOTKEY_LOAD_GAME,
HOTKEY_RECRUIT, HOTKEY_REPEAT_RECRUIT, HOTKEY_RECALL, HOTKEY_ENDTURN,
HOTKEY_TOGGLE_GRID, HOTKEY_STATUS_TABLE, HOTKEY_MUTE,
HOTKEY_MOUSE_SCROLL,
- HOTKEY_SPEAK, HOTKEY_CREATE_UNIT, HOTKEY_CHANGE_UNIT_SIDE,
HOTKEY_PREFERENCES,
+ HOTKEY_SPEAK, HOTKEY_CREATE_UNIT, HOTKEY_CHANGE_SIDE,
HOTKEY_PREFERENCES,
HOTKEY_OBJECTIVES, HOTKEY_UNIT_LIST, HOTKEY_STATISTICS,
HOTKEY_STOP_NETWORK, HOTKEY_START_NETWORK, HOTKEY_QUIT_GAME,
HOTKEY_LABEL_TEAM_TERRAIN, HOTKEY_LABEL_TERRAIN,
HOTKEY_CLEAR_LABELS,HOTKEY_SHOW_ENEMY_MOVES, HOTKEY_BEST_ENEMY_MOVES,
HOTKEY_DELAY_SHROUD, HOTKEY_UPDATE_SHROUD, HOTKEY_CONTINUE_MOVE,
@@ -262,7 +262,7 @@
virtual void whisper() {}
virtual void shout() {}
virtual void create_unit() {}
- virtual void change_unit_side() {}
+ virtual void change_side() {}
virtual void preferences() {}
virtual void objectives() {}
virtual void unit_list() {}
Modified: trunk/src/menu_events.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/menu_events.cpp?rev=35094&r1=35093&r2=35094&view=diff
==============================================================================
--- trunk/src/menu_events.cpp (original)
+++ trunk/src/menu_events.cpp Tue Apr 21 04:06:41 2009
@@ -1424,20 +1424,30 @@
}
}
- void menu_handler::change_unit_side(mouse_handler& mousehandler)
- {
- const unit_map::iterator i =
units_.find(mousehandler.get_last_hex());
+ void menu_handler::change_side(mouse_handler& mousehandler)
+ {
+ const map_location& loc = mousehandler.get_last_hex();
+ const unit_map::iterator i = units_.find(loc);
if(i == units_.end()) {
- return;
- }
-
- int side = i->second.side();
- ++side;
- if(side > team::nteams()) {
- side = 1;
- }
-
- i->second.set_side(side);
+ if(!map_.is_village(loc))
+ return;
+
+ // village_owner returns -1 for free village, so side 0
will get it
+ int side = village_owner(loc, teams_) + 1;
+ // side is 0-based so side=team::nteams() is not a side
+ // but this will make get_village free it
+ if(side > team::nteams()) {
+ side = 0;
+ }
+ get_village(loc, *gui_, teams_, side, units_);
+ } else {
+ int side = i->second.side();
+ ++side;
+ if(side > team::nteams()) {
+ side = 1;
+ }
+ i->second.set_side(side);
+ }
}
void menu_handler::label_terrain(mouse_handler& mousehandler, bool
team_only)
Modified: trunk/src/menu_events.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/menu_events.hpp?rev=35094&r1=35093&r2=35094&view=diff
==============================================================================
--- trunk/src/menu_events.hpp (original)
+++ trunk/src/menu_events.hpp Tue Apr 21 04:06:41 2009
@@ -89,7 +89,7 @@
void unit_description(mouse_handler& mousehandler);
void rename_unit(mouse_handler& mousehandler);
void create_unit(mouse_handler& mousehandler);
- void change_unit_side(mouse_handler& mousehandler);
+ void change_side(mouse_handler& mousehandler);
void label_terrain(mouse_handler& mousehandler, bool team_only);
void clear_labels();
void continue_move(mouse_handler& mousehandler, const unsigned int
team_num);
Modified: trunk/src/playsingle_controller.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/playsingle_controller.cpp?rev=35094&r1=35093&r2=35094&view=diff
==============================================================================
--- trunk/src/playsingle_controller.cpp (original)
+++ trunk/src/playsingle_controller.cpp Tue Apr 21 04:06:41 2009
@@ -133,8 +133,8 @@
menu_handler_.create_unit(mouse_handler_);
}
-void playsingle_controller::change_unit_side(){
- menu_handler_.change_unit_side(mouse_handler_);
+void playsingle_controller::change_side(){
+ menu_handler_.change_side(mouse_handler_);
}
void playsingle_controller::label_terrain(bool team_only){
@@ -885,7 +885,7 @@
// Commands we can only do if in debug mode
case hotkey::HOTKEY_CREATE_UNIT:
- case hotkey::HOTKEY_CHANGE_UNIT_SIDE:
+ case hotkey::HOTKEY_CHANGE_SIDE:
return !events::commands_disabled && game_config::debug
&& map_.on_board(mouse_handler_.get_last_hex());
case hotkey::HOTKEY_LABEL_TEAM_TERRAIN:
Modified: trunk/src/playsingle_controller.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/playsingle_controller.hpp?rev=35094&r1=35093&r2=35094&view=diff
==============================================================================
--- trunk/src/playsingle_controller.hpp (original)
+++ trunk/src/playsingle_controller.hpp Tue Apr 21 04:06:41 2009
@@ -47,7 +47,7 @@
virtual void end_turn();
virtual void rename_unit();
virtual void create_unit();
- virtual void change_unit_side();
+ virtual void change_side();
virtual void label_terrain(bool);
virtual void continue_move();
virtual void unit_hold_position();
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits