Author: sapient
Date: Sat Apr  7 05:35:50 2007
New Revision: 16659

URL: http://svn.gna.org/viewcvs/wesnoth?rev=16659&view=rev
Log:
silene's patch #716: Make --nogui actually useful on its own

Modified:
    trunk/src/game.cpp
    trunk/src/preferences.cpp
    trunk/src/preferences.hpp
    trunk/src/video.cpp

Modified: trunk/src/game.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/game.cpp?rev=16659&r1=16658&r2=16659&view=diff
==============================================================================
--- trunk/src/game.cpp (original)
+++ trunk/src/game.cpp Sat Apr  7 05:35:50 2007
@@ -164,6 +164,7 @@
      no_gui_(false), use_caching_(true), force_valid_cache_(false),
      force_bpp_(-1), disp_(NULL), loaded_game_show_replay_(false)
 {
+       bool no_sound = false;
        for(arg_ = 1; arg_ != argc_; ++arg_) {
                const std::string val(argv_[arg_]);
                if(val.empty()) {
@@ -215,6 +216,8 @@
                        }
                } else if(val == "--nogui") {
                        no_gui_ = true;
+                       no_sound = true;
+                       preferences::disable_preferences_save();
                } else if(val == "--windowed" || val == "-w") {
                        preferences::set_fullscreen(false);
                } else if(val == "--fullscreen" || val == "-f") {
@@ -231,10 +234,7 @@
                        game_config::no_delay = true;
                } else if (val.substr(0, 6) == "--log-") {
                } else if(val == "--nosound") {
-                       preferences::set_turn_bell(false);
-                       preferences::set_UI_sound(false);
-                       preferences::set_sound(false);
-                       preferences::set_music(false);
+                       no_sound = true;
                } else if(val[0] == '-') {
                        std::cerr << "unknown option: " << val << std::endl;
                        throw config::error("unknown option");
@@ -255,13 +255,14 @@
                }
        }
 
-       if (preferences::sound_on() || preferences::music_on() || 
preferences::turn_bell() || preferences::UI_sound_on()) {
-               if(!sound::init_sound()) {
-                       preferences::set_sound(false);
-                       preferences::set_music(false);
-                       preferences::set_turn_bell(false);
-                       preferences::set_UI_sound(false);
-               }
+       // disable sound in nosound mode, or when sound engine failed to 
initialize
+       if (no_sound || ((preferences::sound_on() || preferences::music_on() ||
+                         preferences::turn_bell() || 
preferences::UI_sound_on()) &&
+                        !sound::init_sound())) {
+               preferences::set_sound(false);
+               preferences::set_music(false);
+               preferences::set_turn_bell(false);
+               preferences::set_UI_sound(false);
        }
 }
 

Modified: trunk/src/preferences.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/preferences.cpp?rev=16659&r1=16658&r2=16659&view=diff
==============================================================================
--- trunk/src/preferences.cpp (original)
+++ trunk/src/preferences.cpp Sat Apr  7 05:35:50 2007
@@ -52,6 +52,8 @@
 
 bool lobby_minimaps = true;
 
+bool no_preferences_save = false;
+
 std::set<std::string> encountered_units_set;
 std::set<t_translation::t_letter> encountered_terrains_set;
 
@@ -96,6 +98,8 @@
 
        encountered_units_set.clear();
        encountered_terrains_set.clear();
+
+       if (no_preferences_save) return;
        try {
                scoped_ostream prefs_file = ostream_file(get_prefs_file());
                write(*prefs_file, prefs);
@@ -110,6 +114,10 @@
 
 std::string get(const std::string key) {
        return prefs[key];
+}
+
+void disable_preferences_save() {
+       no_preferences_save = true;
 }
 
 config* get_prefs(){

Modified: trunk/src/preferences.hpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/preferences.hpp?rev=16659&r1=16658&r2=16659&view=diff
==============================================================================
--- trunk/src/preferences.hpp (original)
+++ trunk/src/preferences.hpp Sat Apr  7 05:35:50 2007
@@ -46,6 +46,8 @@
        // low-level, should be seen only by preferences_display ?
        void set(std::string key, std::string value);
        std::string get(const std::string key);
+
+       void disable_preferences_save();
 
        config* get_prefs();
 

Modified: trunk/src/video.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/video.cpp?rev=16659&r1=16658&r2=16659&view=diff
==============================================================================
--- trunk/src/video.cpp (original)
+++ trunk/src/video.cpp Sat Apr  7 05:35:50 2007
@@ -265,6 +265,7 @@
 int CVideo::setMode( int x, int y, int bits_per_pixel, int flags )
 {
        update_rects.clear();
+       if (fake_screen) return 0;
        mode_changed_ = true;
 
        flags = get_flags(flags);


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

Reply via email to