From b0e6c09d234b16b8abbcb6077f4e8652ca782dc3 Mon Sep 17 00:00:00 2001 From: "Ignacio R. Morelle" Date: Sun, 16 Oct 2011 16:43:17 +0000 Subject: [PATCH] Remove some previous asymmetric behavior kept (not introduced) in 2011-10-16T16:26:07Z!shadowm@wesnoth.org The behavior in question was apparently put in place to avoid a segmentation fault due to unchecked access to a vector's first element; ensure there'll always be a first element instead. --- src/about.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/about.cpp b/src/about.cpp index 4fc2f0a1109..e6b6ad34fa5 100644 --- a/src/about.cpp +++ b/src/about.cpp @@ -183,12 +183,20 @@ void show_about(display &disp, const std::string &campaign) std::vector image_list; if(campaign.size() && !images[campaign].empty()){ - image_list=utils::parenthetical_split(images[campaign], ',', "(", ")"); - }else{ - image_list=utils::parenthetical_split(images_default, ',', "(", ")", utils::STRIP_SPACES); + image_list = utils::parenthetical_split(images[campaign], ','); + } else{ + image_list = utils::parenthetical_split(images_default, ','); } - surface map_image(scale_surface(image::get_image(image_list[0]), screen->w, screen->h)); - if(! map_image){ + + surface map_image; + + if(!image_list.empty()) { + map_image = scale_surface(image::get_image(image_list[0]), screen->w, screen->h); + } else { + image_list.push_back(""); + } + + if(!map_image){ image_list[0]=game_config::images::game_title; map_image=surface(scale_surface(image::get_image(image_list[0]), screen->w, screen->h)); }