Fix Windows build

This commit is contained in:
2017-09-04 23:32:50 -04:00
parent beadb49217
commit 3582a055e2
3 changed files with 20 additions and 5 deletions

View File

@@ -2027,7 +2027,8 @@ bool handle_keystroke(sf::Event& event){
break;
case 'a': // Show automap
if(overall_mode < MODE_TALK_TOWN) {
pass_point = mainPtr.mapCoordsToPixel({overall_mode == MODE_OUTDOORS ? 180 : 221, 405}, mainView);
pass_point = loc(overall_mode == MODE_OUTDOORS ? 180 : 221, 405);
pass_point = mainPtr.mapCoordsToPixel(pass_point, mainView);
pass_event.mouseButton.x = pass_point.x;
pass_event.mouseButton.y = pass_point.y;
are_done = handle_action(pass_event);
@@ -2045,7 +2046,8 @@ bool handle_keystroke(sf::Event& event){
case 'b': case 'L': // Bash door, pick lock
if(overall_mode == MODE_TOWN || overall_mode == MODE_BASH_TOWN) {
pass_point = mainPtr.mapCoordsToPixel({chr == 'b' ? 1002 : 1003, 0}, mainView);
pass_point = loc(chr == 'b' ? 1002 : 1003, 0);
pass_point = mainPtr.mapCoordsToPixel(pass_point, mainView);
pass_event.mouseButton.x = pass_point.x;
pass_event.mouseButton.y = pass_point.y;
are_done = handle_action(pass_event);

View File

@@ -149,6 +149,9 @@ void adjust_window_mode() {
}
rectangle windRect(mainPtr);
#ifdef _WIN32
windRect.height() -= menubarHeight;
#endif
if(mode == 0) {
ul.x = (windRect.right - width) / 2;
ul.y = (windRect.bottom - height) / 2;
@@ -157,13 +160,17 @@ void adjust_window_mode() {
ul.x = 10;
else ul.x = windRect.right - width - 10;
if(mode == 1 || mode == 2)
ul.y = 28 + menubarHeight;
ul.y = 28
#ifndef _WIN32
+ menubarHeight;
#endif
;
else ul.y = windRect.bottom - height - 28;
}
// Initialize the viewport for the game UI
mainView.setSize(width, height);
mainView.setCenter(/*ul.x +*/ width / 2, /*ul.y +*/ height / 2);
mainView.setCenter(width / 2, height / 2);
sf::FloatRect mainPort;
mainPort.left = float(ul.x) / windRect.width();
mainPort.top = float(ul.y) / windRect.height();

View File

@@ -84,6 +84,8 @@ static bool save_prefs(fs::path fpath) {
fout << kv.first << " = " << std::boolalpha << boost::any_cast<bool>(kv.second) << std::endl;
else if(kv.second.type() == typeid(int))
fout << kv.first << " = " << boost::any_cast<int>(kv.second) << std::endl;
else if(kv.second.type() == typeid(double))
fout << kv.first << " = " << boost::any_cast<double>(kv.second) << std::endl;
else printf("Warning: Unknown preference value type, skipping...\n");
if(!fout) {
perror("Error writing preferences");
@@ -129,7 +131,11 @@ static bool load_prefs(fs::path fpath) {
iarray vals;
while(arr_vals >> i) vals.push_back(i);
temp_prefs[key] = vals;
} else temp_prefs[key] = boost::lexical_cast<int>(val);
} else try {
temp_prefs[key] = boost::lexical_cast<int>(val);
} catch(boost::bad_lexical_cast&) {
temp_prefs[key] = boost::lexical_cast<double>(val);
}
}
prefs.swap(temp_prefs);
return prefsLoaded = true;