wesnoth-cvs-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Wesnoth-cvs-commits] wesnoth/src leader_list.cpp multiplayer_connect...


From: Philippe Plantier
Subject: [Wesnoth-cvs-commits] wesnoth/src leader_list.cpp multiplayer_connect...
Date: Sat, 19 Mar 2005 12:33:34 -0500

CVSROOT:        /cvsroot/wesnoth
Module name:    wesnoth
Branch:         
Changes by:     Philippe Plantier <address@hidden>      05/03/19 17:33:33

Modified files:
        src            : leader_list.cpp multiplayer_connect.cpp 
                         multiplayer_connect.hpp multiplayer_create.cpp 
                         multiplayer_wait.cpp 

Log message:
        When loading multiplayer savegames, the leader is now displayed. Fixes 
bug
        #12112 .

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/leader_list.cpp.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/multiplayer_connect.cpp.diff?tr1=1.127&tr2=1.128&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/multiplayer_connect.hpp.diff?tr1=1.34&tr2=1.35&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/multiplayer_create.cpp.diff?tr1=1.16&tr2=1.17&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/multiplayer_wait.cpp.diff?tr1=1.16&tr2=1.17&r1=text&r2=text

Patches:
Index: wesnoth/src/leader_list.cpp
diff -u wesnoth/src/leader_list.cpp:1.9 wesnoth/src/leader_list.cpp:1.10
--- wesnoth/src/leader_list.cpp:1.9     Fri Mar 11 02:27:54 2005
+++ wesnoth/src/leader_list.cpp Sat Mar 19 17:33:32 2005
@@ -1,4 +1,4 @@
-/* $Id: leader_list.cpp,v 1.9 2005/03/11 02:27:54 Sirp Exp $ */
+/* $Id: leader_list.cpp,v 1.10 2005/03/19 17:33:32 gruikya Exp $ */
 /*
    Copyright (C) 
    Part of the Battle for Wesnoth Project http://www.wesnoth.org
@@ -95,7 +95,6 @@
        }
 
        leaders_.push_back("random");
-       // FIXME: Maybe this should not code into the code.
        leader_strings.push_back(IMAGE_PREFIX + random_enemy_picture +
                                 COLUMN_SEPARATOR + _("Random"));
 
Index: wesnoth/src/multiplayer_connect.cpp
diff -u wesnoth/src/multiplayer_connect.cpp:1.127 
wesnoth/src/multiplayer_connect.cpp:1.128
--- wesnoth/src/multiplayer_connect.cpp:1.127   Sat Mar 19 16:21:02 2005
+++ wesnoth/src/multiplayer_connect.cpp Sat Mar 19 17:33:32 2005
@@ -1,4 +1,4 @@
-/* $Id: multiplayer_connect.cpp,v 1.127 2005/03/19 16:21:02 gruikya Exp $ */
+/* $Id: multiplayer_connect.cpp,v 1.128 2005/03/19 17:33:32 gruikya Exp $ */
 /*
    Copyright (C) 
    Part of the Battle for Wesnoth Project http://www.wesnoth.org
@@ -57,11 +57,9 @@
        combo_colour_(parent.disp(), parent.player_colours_),
        slider_gold_(parent.video()),
        label_gold_(parent.video(), "100", font::SIZE_NORMAL, 
font::GOOD_COLOUR),
-
-       llm_(parent.era_sides_, &parent.game_data_, &combo_leader_),
-
        enabled_(!parent_->params_.saved_game),
-       changed_(false)
+       changed_(false),
+       llm_(parent.era_sides_, &parent.game_data_, enabled_ ? &combo_leader_ : 
NULL)
 {
        if(enabled_) {
                controller_ = parent_->default_controller_;
@@ -110,6 +108,32 @@
                pseudo_factions.push_back(cfg_["name"]);
                combo_faction_.set_items(pseudo_factions);
                combo_faction_.set_selected(0);
+
+               // Hack: if there is a unit which can recruit, use it as a
+               // leader. Necessary to display leader information when loading
+               // saves.
+               config::const_child_itors side_units = cfg.child_range("unit");
+               std::string leader_type;
+               for(;side_units.first != side_units.second; ++side_units.first) 
{
+                       if((**side_units.first)["canrecruit"] == "1") {
+                               leader_type = (**side_units.first)["type"];
+                               break;
+                       }
+               }
+               std::vector<std::string> leader_name_pseudolist;
+               if(leader_type.empty()) {
+                       leader_name_pseudolist.push_back("-");
+               } else {
+                       game_data::unit_type_map::const_iterator leader_name = 
+                               
parent_->game_data_.unit_types.find(leader_type);
+                       if(leader_name == parent_->game_data_.unit_types.end()) 
{
+                               leader_name_pseudolist.push_back("-");
+                       } else {
+                               
leader_name_pseudolist.push_back(leader_name->second.language_name());
+                       }
+               }
+               combo_leader_.set_items(leader_name_pseudolist);
+               combo_leader_.set_selected(0);
        }
 
        update_ui();
@@ -125,10 +149,10 @@
        orig_controller_(a.orig_controller_),
        combo_faction_(a.combo_faction_), combo_leader_(a.combo_leader_),
        combo_team_(a.combo_team_), combo_colour_(a.combo_colour_),
-       slider_gold_(a.slider_gold_), label_gold_(a.label_gold_), llm_(a.llm_),
-       enabled_(a.enabled_), changed_(a.changed_)
+       slider_gold_(a.slider_gold_), label_gold_(a.label_gold_), 
+       enabled_(a.enabled_), changed_(a.changed_), llm_(a.llm_)
 {
-       llm_.set_combo(&combo_leader_);
+       llm_.set_combo(enabled_ ? &combo_leader_ : NULL);
 }
 
 void connect::side::add_widgets_to_scrollpane(gui::scrollpane& pane, int pos)
Index: wesnoth/src/multiplayer_connect.hpp
diff -u wesnoth/src/multiplayer_connect.hpp:1.34 
wesnoth/src/multiplayer_connect.hpp:1.35
--- wesnoth/src/multiplayer_connect.hpp:1.34    Sat Mar 19 16:21:02 2005
+++ wesnoth/src/multiplayer_connect.hpp Sat Mar 19 17:33:32 2005
@@ -1,4 +1,4 @@
-/* $Id: multiplayer_connect.hpp,v 1.34 2005/03/19 16:21:02 gruikya Exp $ */
+/* $Id: multiplayer_connect.hpp,v 1.35 2005/03/19 17:33:32 gruikya Exp $ */
 /*
    Copyright (C) 
    Part of the Battle for Wesnoth Project http://www.wesnoth.org
@@ -121,10 +121,9 @@
                gui::slider slider_gold_;
                gui::label label_gold_;
 
-               leader_list_manager llm_;
-
                bool enabled_;
                bool changed_;
+               leader_list_manager llm_;
        };
 
        friend class side;
Index: wesnoth/src/multiplayer_create.cpp
diff -u wesnoth/src/multiplayer_create.cpp:1.16 
wesnoth/src/multiplayer_create.cpp:1.17
--- wesnoth/src/multiplayer_create.cpp:1.16     Fri Mar 18 21:21:48 2005
+++ wesnoth/src/multiplayer_create.cpp  Sat Mar 19 17:33:32 2005
@@ -1,4 +1,4 @@
-/* $Id: multiplayer_create.cpp,v 1.16 2005/03/18 21:21:48 ydirson Exp $ */
+/* $Id: multiplayer_create.cpp,v 1.17 2005/03/19 17:33:32 gruikya Exp $ */
 /*
    Copyright (C) 
    Part of the Battle for Wesnoth Project http://www.wesnoth.org
@@ -74,7 +74,7 @@
 
        //create the scenarios menu
        maps_menu_.set_items(map_options_);
-       if (preferences::map() < map_options_.size())
+       if (size_t(preferences::map()) < map_options_.size())
                maps_menu_.move_selection(preferences::map());
        maps_menu_.set_numeric_keypress_selection(false);
 
@@ -123,7 +123,7 @@
        }
        era_combo_.set_items(eras);
 
-       if (preferences::era() < eras.size())
+       if (size_t(preferences::era()) < eras.size())
                era_combo_.set_selected(preferences::era());
 
        string_map i18n_symbols;
Index: wesnoth/src/multiplayer_wait.cpp
diff -u wesnoth/src/multiplayer_wait.cpp:1.16 
wesnoth/src/multiplayer_wait.cpp:1.17
--- wesnoth/src/multiplayer_wait.cpp:1.16       Sat Mar 19 16:21:02 2005
+++ wesnoth/src/multiplayer_wait.cpp    Sat Mar 19 17:33:32 2005
@@ -1,4 +1,4 @@
-/* $Id: multiplayer_wait.cpp,v 1.16 2005/03/19 16:21:02 gruikya Exp $ */
+/* $Id: multiplayer_wait.cpp,v 1.17 2005/03/19 17:33:32 gruikya Exp $ */
 /*
    Copyright (C) 
    Part of the Battle for Wesnoth Project http://www.wesnoth.org
@@ -369,8 +369,20 @@
                } else {
                        side_name = sd["name"];
                }
+               
                std::string leader_type = sd["type"];
 
+               // Hack: if there is a unit which can recruit, use it as a
+               // leader. Necessary to display leader information when loading
+               // saves.
+               config::const_child_itors side_units = sd.child_range("unit");
+               for(;side_units.first != side_units.second; ++side_units.first) 
{
+                       if((**side_units.first)["canrecruit"] == "1") {
+                               leader_type = (**side_units.first)["type"];
+                               break;
+                       }
+               }
+
                if(!sd["description"].empty())
                        playerlist.push_back(sd["description"]);
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]