Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
From 2948579a866d0289d8296a18e2a3dab90b43846f Mon Sep 17 00:00:00 2001
From: Craig Robbins <kde.psych@gmail.com>
Date: Sat, 4 Oct 2014 17:05:27 +1000
Subject: [PATCH] Work-around ServerMap::loadMapMeta(): could not open for new worlds
---
src/map.cpp | 9 ++++++++-
src/subgame.cpp | 1 +
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/map.cpp b/src/map.cpp
index 1fe0ca9..10996af 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -3069,10 +3069,17 @@ void ServerMap::loadMapMeta()
std::ifstream is(fullpath.c_str(), std::ios_base::binary);
if (!is.good()) {
errorstream << "ServerMap::loadMapMeta(): "
- << "could not open" << fullpath << std::endl;
+ << "could not open " << fullpath << std::endl;
throw FileNotGoodException("Cannot open map metadata");
}
+ if (is.peek() == std::ifstream::traits_type::eof()) {
+ infostream << "ServerMap::loadMapMeta(): "
+ << "empty " << fullpath <<" (will save params on exit)"
+ << std::endl;
+ throw FileNotGoodException("Empty map metadata");
+ }
+
Settings params;
if (!params.parseConfigLines(is, "[end_of_params]")) {
diff --git a/src/subgame.cpp b/src/subgame.cpp
index f2465c9..98ff3a5 100644
--- a/src/subgame.cpp
+++ b/src/subgame.cpp
@@ -244,6 +244,7 @@ bool initializeWorld(const std::string &path, const std::string &gameid)
std::ostringstream ss(std::ios_base::binary);
ss<<"gameid = "<<gameid<< "\nbackend = sqlite3\n";
fs::safeWriteToFile(worldmt_path, ss.str());
+ fs::safeWriteToFile(path + DIR_DELIM + "map_meta.txt", "");
}
return true;
}
--
1.9.3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment