From 8f51ff28a0b3462e66344c609df7dd71df6d382b Mon Sep 17 00:00:00 2001 From: Dave White Date: Mon, 21 Jun 2004 14:42:18 +0000 Subject: [PATCH] added icons for preferences and multiplayer dialogs --- data/units/Ancient_Wose.cfg | 6 +++--- data/units/Elder_Wose.cfg | 2 +- images/icons/icon-display.png | Bin 0 -> 2344 bytes images/icons/icon-general.png | Bin 0 -> 2972 bytes images/icons/icon-hostgame.png | Bin 0 -> 2161 bytes images/icons/icon-music.png | Bin 0 -> 2631 bytes images/icons/icon-server.png | Bin 0 -> 4089 bytes images/icons/icon-serverother.png | Bin 0 -> 3704 bytes src/display.cpp | 18 +++++++++++++----- src/game.cpp | 6 +++--- src/network.cpp | 9 +++++++++ src/preferences.cpp | 7 ++++--- src/race.cpp | 6 ------ src/sdl_utils.cpp | 2 +- src/server/server.cpp | 5 ----- src/widgets/textbox.cpp | 30 +++++++++++++++++++++++------- wesnoth.dsp | 16 ++++++++++++++++ 17 files changed, 73 insertions(+), 34 deletions(-) create mode 100644 images/icons/icon-display.png create mode 100644 images/icons/icon-general.png create mode 100644 images/icons/icon-hostgame.png create mode 100644 images/icons/icon-music.png create mode 100644 images/icons/icon-server.png create mode 100644 images/icons/icon-serverother.png diff --git a/data/units/Ancient_Wose.cfg b/data/units/Ancient_Wose.cfg index 15b7f174a14..7a84e1002e7 100644 --- a/data/units/Ancient_Wose.cfg +++ b/data/units/Ancient_Wose.cfg @@ -5,7 +5,7 @@ image=wose-ancient.png ability=ambush,regenerates hitpoints=80 movement_type=treefolk -movement=2 +movement=3 experience=500 level=3 alignment=lawful @@ -16,8 +16,8 @@ usage=fighter name=crush type=impact range=short - damage=40 - number=1 + damage=25 + number=2 [frame] begin=-300 end=-100 diff --git a/data/units/Elder_Wose.cfg b/data/units/Elder_Wose.cfg index b7b27427be2..6a04b2558d0 100644 --- a/data/units/Elder_Wose.cfg +++ b/data/units/Elder_Wose.cfg @@ -17,7 +17,7 @@ usage=fighter name=crush type=impact range=short - damage=14 + damage=18 number=2 [frame] begin=-100 diff --git a/images/icons/icon-display.png b/images/icons/icon-display.png new file mode 100644 index 0000000000000000000000000000000000000000..c8b5749321e5db525ad4cdd9dc7d05736da26b33 GIT binary patch literal 2344 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 KsOBH{`2PTXj%z>w literal 0 HcmV?d00001 diff --git a/images/icons/icon-general.png b/images/icons/icon-general.png new file mode 100644 index 0000000000000000000000000000000000000000..f038770dea61ef20fa7159ad6d74300a3c492ab6 GIT binary patch literal 2972 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 PQ=73q5?*ohZq$DPvooRz literal 0 HcmV?d00001 diff --git a/images/icons/icon-hostgame.png b/images/icons/icon-hostgame.png new file mode 100644 index 0000000000000000000000000000000000000000..4863b2c6c71ac4b5005e1a3b4cb1aeff8cc90182 GIT binary patch literal 2161 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 CK|f3Y literal 0 HcmV?d00001 diff --git a/src/display.cpp b/src/display.cpp index 5e726902075..149d1232219 100644 --- a/src/display.cpp +++ b/src/display.cpp @@ -1222,7 +1222,7 @@ void display::draw_unit_on_tile(int x, int y, SDL_Surface* unit_image_override, if(u.experience() > 0 && u.type().can_advance()) { const double filled = double(u.experience())/double(u.max_experience()); const int level = maximum(u.type().level(),1); - const SDL_Color normal_colour = {200,200,0,0}, near_advance_colour = {255,255,255,0}; + const SDL_Color normal_colour = {173,200,248,0}, near_advance_colour = {255,255,255,0}; const bool near_advance = u.max_experience() - u.experience() <= game_config::kill_experience*level; const SDL_Color colour = near_advance ? near_advance_colour : normal_colour; @@ -1573,16 +1573,24 @@ void display::draw_footstep(const gamemap::location& loc, int xloc, int yloc) if(show_time && route_.move_left > 0 && route_.move_left < 10) { //draw number in yellow if terrain is light, else draw in black gamemap::TERRAIN terrain = map_.get_terrain(loc); - const bool tile_is_light = map_.get_terrain_info(terrain).is_light(); - SDL_Color text_colour = tile_is_light ? font::DARK_COLOUR : font::YELLOW_COLOUR; const SDL_Rect& rect = map_area(); std::string str(1,'x'); str[0] = '1' + route_.move_left; - const SDL_Rect& text_area = font::draw_text(NULL,rect,18,text_colour,str,0,0); + const SDL_Rect& text_area = font::text_area(str,18); const int x = xloc + zoom_/2 - text_area.w/2; const int y = yloc + zoom_/2 - text_area.h/2; - font::draw_text(this,rect,18,text_colour,str,x,y); + + //draw the text with a black outline + font::draw_text(this,rect,18,font::DARK_COLOUR,str,x-1,y-1); + font::draw_text(this,rect,18,font::DARK_COLOUR,str,x-1,y); + font::draw_text(this,rect,18,font::DARK_COLOUR,str,x-1,y+1); + font::draw_text(this,rect,18,font::DARK_COLOUR,str,x,y-1); + font::draw_text(this,rect,18,font::DARK_COLOUR,str,x+1,y-1); + font::draw_text(this,rect,18,font::DARK_COLOUR,str,x+1,y); + font::draw_text(this,rect,18,font::DARK_COLOUR,str,x+1,y+1); + font::draw_text(this,rect,18,font::DARK_COLOUR,str,x,y+1); + font::draw_text(this,rect,18,font::YELLOW_COLOUR,str,x,y); } } diff --git a/src/game.cpp b/src/game.cpp index 8912b8582a5..1bd74cb6aea 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -919,9 +919,9 @@ int play_game(int argc, char** argv) std::vector host_or_join; const std::string sep(1,gui::menu::HELP_STRING_SEPERATOR); - host_or_join.push_back(string_table["join_server"] + sep + string_table["join_server_help"]); - host_or_join.push_back(string_table["join_game"] + sep + string_table["join_game_help"]); - host_or_join.push_back(string_table["host_game"] + sep + string_table["host_game_help"]); + host_or_join.push_back("&icons/icon-server.png," + string_table["join_server"] + sep + string_table["join_server_help"]); + host_or_join.push_back("&icons/icon-serverother.png," + string_table["join_game"] + sep + string_table["join_game_help"]); + host_or_join.push_back("&icons/icon-hostgame.png," + string_table["host_game"] + sep + string_table["host_game_help"]); std::string login = preferences::login(); const int res = gui::show_dialog(disp,NULL,string_table["multiplayer_button"],"",gui::OK_CANCEL,&host_or_join,NULL,string_table["login"] + ": ",&login); diff --git a/src/network.cpp b/src/network.cpp index 64ec5f05600..9ac352d4d78 100644 --- a/src/network.cpp +++ b/src/network.cpp @@ -7,9 +7,12 @@ #include #include #include +#include #include #include +#include + namespace { //We store the details of a connection in a map that must be looked up by its handle. @@ -129,6 +132,12 @@ manager::manager() : free_(true) return; } + //on Unix-based systems, set sigpipe to be ignored +#if !(defined(_WIN32) || defined(__APPLE__)) + std::cerr << "ignoring SIGPIPE\n"; + signal(SIGPIPE,SIG_IGN); +#endif + if(SDLNet_Init() == -1) { throw error(SDL_GetError()); } diff --git a/src/preferences.cpp b/src/preferences.cpp index fd43f14a180..53277f1cb72 100644 --- a/src/preferences.cpp +++ b/src/preferences.cpp @@ -854,10 +854,11 @@ void preferences_dialog::set_selection(int index) void show_preferences_dialog(display& disp) { std::vector items; - items.push_back(string_table["preferences_item_general"]); - items.push_back(string_table["preferences_item_display"]); - items.push_back(string_table["preferences_item_sound"]); + items.push_back("&icons/icon-general.png," + string_table["preferences_item_general"]); + items.push_back("&icons/icon-display.png," + string_table["preferences_item_display"]); + items.push_back("&icons/icon-music.png," + string_table["preferences_item_sound"]); + for(;;) { try { const events::event_context dialog_events_context; diff --git a/src/race.cpp b/src/race.cpp index 2d3dcc77ae9..16d01b537df 100644 --- a/src/race.cpp +++ b/src/race.cpp @@ -28,7 +28,6 @@ markov_prefix_map markov_prefixes(const std::vector& items, size_t std::string markov_generate_name(const markov_prefix_map& prefixes, size_t chain_size, size_t max_len) { - std::cerr << "generating name with chain size of " << chain_size << " and " << prefixes.size() << " prefixes\n"; if(chain_size == 0) return ""; @@ -37,7 +36,6 @@ std::string markov_generate_name(const markov_prefix_map& prefixes, size_t chain while(res.size() < max_len) { const markov_prefix_map::const_iterator i = prefixes.find(prefix); if(i == prefixes.end() || i->second.empty()) { - std::cerr << "failed to find prefix for '" << prefix << "'\n"; return res; } @@ -107,10 +105,6 @@ unit_race::unit_race(const config& cfg) : name_(cfg["name"]), ntraits_(atoi(cfg[ next_[MALE] = markov_prefixes(names_[MALE],chain_size_); next_[FEMALE] = markov_prefixes(names_[FEMALE],chain_size_); - - if(next_[MALE].size() == 0) { - std::cerr << "empty prefix string: has " << names_[MALE].size() << " names: '" << cfg["male_names"] << "'\n"; - } } const std::string& unit_race::name() const { return name_; } diff --git a/src/sdl_utils.cpp b/src/sdl_utils.cpp index 95d4f62da2e..2c40af39d3f 100644 --- a/src/sdl_utils.cpp +++ b/src/sdl_utils.cpp @@ -397,7 +397,7 @@ SDL_Surface* mask_surface(SDL_Surface* surface, SDL_Surface* mask) return NULL; } - SDL_Surface* surf(make_neutral_surface(surface)); + SDL_Surface* surf = make_neutral_surface(surface); scoped_sdl_surface nmask(make_neutral_surface(mask)); if(surf == NULL || nmask == NULL) { diff --git a/src/server/server.cpp b/src/server/server.cpp index eeadaaf1f20..cda924af131 100644 --- a/src/server/server.cpp +++ b/src/server/server.cpp @@ -566,11 +566,6 @@ int main(int argc, char** argv) port = atoi(argv[arg]); } } - -#ifndef WIN32 - //trap the 'SIGPIPE' signal which specifies a broken pipe, and ignore it - signal(SIGPIPE,SIG_IGN); -#endif try { server(port).run(); diff --git a/src/widgets/textbox.cpp b/src/widgets/textbox.cpp index 635eb3f2f9a..76b80ed612a 100644 --- a/src/widgets/textbox.cpp +++ b/src/widgets/textbox.cpp @@ -332,12 +332,7 @@ void textbox::handle_event(const SDL_Event& event) { bool changed = false; - if(event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_c) { - std::cerr << "got press of 'c': " << int(event.key.keysym.mod) << " " << (event.key.keysym.mod&KMOD_CTRL) << " " - << size_t(selstart_) << "/" << size_t(selend_) << "/" << text_.size() << " " << (focus() ? "focus" : "no focus") << " " << location().x << "\n"; - } - - //if someone presses ctrl+c to copy text onto the clipboard + //if the user presses ctrl+c to copy text onto the clipboard if(event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_c && (event.key.keysym.mod&KMOD_CTRL) != 0 && size_t(selstart_) <= text_.size() && size_t(selend_) <= text_.size() && selstart_ != selend_) { const size_t beg = minimum(size_t(selstart_),size_t(selend_)); @@ -345,11 +340,32 @@ void textbox::handle_event(const SDL_Event& event) std::string selection(end - beg,'x'); std::copy(text_.begin()+beg,text_.begin()+end,selection.begin()); - std::cerr << "copying text to clipboard: '" << selection << "'\n"; copy_to_clipboard(selection); return; } + //if the user presses ctrl+v to paste text into the textbox + if(event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_v && (event.key.keysym.mod&KMOD_CTRL) != 0 && editable() && focus()) { + const size_t beg = minimum(size_t(selstart_),size_t(selend_)); + const size_t end = maximum(size_t(selstart_),size_t(selend_)); + if(beg < text_.size() && end <= text_.size() && beg != end) { + text_.erase(text_.begin()+beg,text_.begin()+end); + selstart_ = selend_ = cursor_ = int(beg); + } + + const std::string& str = copy_from_clipboard(); + wide_string tmp; + tmp.resize(str.size()); + std::copy(str.begin(),str.end(),tmp.begin()); + text_.insert(text_.begin()+minimum(size_t(cursor_),text_.size()),tmp.begin(),tmp.end()); + cursor_ += str.size(); + + update_text_cache(true); + set_dirty(); + + return; + } + int mousex, mousey; const Uint8 mousebuttons = SDL_GetMouseState(&mousex,&mousey); if(!(mousebuttons & SDL_BUTTON(1))) { diff --git a/wesnoth.dsp b/wesnoth.dsp index 00cf707ba8f..73974ae4a8f 100644 --- a/wesnoth.dsp +++ b/wesnoth.dsp @@ -124,6 +124,10 @@ SOURCE=.\src\cavegen.cpp # End Source File # Begin Source File +SOURCE=.\src\clipboard.cpp +# End Source File +# Begin Source File + SOURCE=.\src\widgets\combo.cpp # End Source File # Begin Source File @@ -180,6 +184,10 @@ SOURCE=.\src\halo.cpp # End Source File # Begin Source File +SOURCE=.\src\help.cpp +# End Source File +# Begin Source File + SOURCE=.\src\hotkeys.cpp # End Source File # Begin Source File @@ -388,6 +396,10 @@ SOURCE=.\src\cavegen.hpp # End Source File # Begin Source File +SOURCE=.\src\clipboard.hpp +# End Source File +# Begin Source File + SOURCE=.\src\widgets\combo.hpp # End Source File # Begin Source File @@ -440,6 +452,10 @@ SOURCE=.\src\halo.hpp # End Source File # Begin Source File +SOURCE=.\src\help.hpp +# End Source File +# Begin Source File + SOURCE=.\src\hotkeys.hpp # End Source File # Begin Source File