guix/gnu/packages/patches/lierolibre-newer-libconfig.patch
Marius Bakke ffed9eabcc
gnu: Add lierolibre.
* gnu/packages/patches/lierolibre-check-unaligned-access.patch,
gnu/packages/patches/lierolibre-is-free-software.patch,
gnu/packages/patches/lierolibre-remove-arch-warning.patch,
gnu/packages/patches/lierolibre-try-building-other-arch.patch,
gnu/packages/patches/lierolibre-newer-libconfig.patch: New files.
* gnu/local.mk (dist_patch_DATA): Add them.
* gnu/packages/games.scm (lierolibre): New variable.
2017-05-12 15:42:08 +02:00

190 lines
6.6 KiB
Diff

Fix compatibility with newer libconfig.
Patch copied from upstream source repository:
https://gitlab.com/lierolibre/lierolibre/commit/b27e3604aa6bfbfcc50db1000b394d06c87ae2f2
diff --git a/src/common.cpp b/src/common.cpp
index 2d6ada5..4942b05 100644
--- a/src/common.cpp
+++ b/src/common.cpp
@@ -162,7 +162,7 @@ void Texts::loadFromCFG(std::string cfgFilePath)
const libconfig::Setting &sgmodes = texts["gameModes"];
for(int i = 0; i < 4; ++i)
{
- gameModes[i] = (char const*)sgmodes["gameModes" + to_string(i)];
+ gameModes[i] = (char const*)sgmodes[("gameModes" + to_string(i)).c_str()];
}
const libconfig::Setting &sgmspec = texts["gameModeSpec"];
@@ -181,13 +181,13 @@ void Texts::loadFromCFG(std::string cfgFilePath)
const libconfig::Setting &swstates = texts["weapStates"];
for(int i = 0; i < 3; ++i)
{
- weapStates[i] = (char const*)swstates["weapStates" + to_string(i)];
+ weapStates[i] = (char const*)swstates[("weapStates" + to_string(i)).c_str()];
}
const libconfig::Setting &sknames = texts["keyNames"];
for(int i = 1; i < 177; ++i) // First key starts at 1
{
- keyNames[i] = (char const*)sknames["keyNames" + to_string(i)];
+ keyNames[i] = (char const*)sknames[("keyNames" + to_string(i)).c_str()];
}
selWeap = (char const*)texts["selWeap"];
@@ -315,8 +315,8 @@ void Common::loadPaletteFromCFG(std::string cfgFilePath)
const libconfig::Setting &scanim = palette["colorAnim"];
for(int i = 0; i < 4; ++i)
{
- colorAnim[i].from = (int)scanim["colorAnim" + to_string(i) + "from"];
- colorAnim[i].to = (int)scanim["colorAnim" + to_string(i) + "to"];
+ colorAnim[i].from = (int)scanim[("colorAnim" + to_string(i) + "from").c_str()];
+ colorAnim[i].to = (int)scanim[("colorAnim" + to_string(i) + "to").c_str()];
}
}
@@ -383,7 +383,7 @@ void Common::loadMaterialsFromCFG(std::string cfgFilePath)
for(int i = 0; i < 256; ++i)
{
- const libconfig::Setting &smflags = smaterials["flags" + to_string(i)];
+ const libconfig::Setting &smflags = smaterials[("flags" + to_string(i)).c_str()];
materials[i].flags = smflags;
}
}
diff --git a/src/configCompat.cpp b/src/configCompat.cpp
index 1aeb262..a72c40f 100644
--- a/src/configCompat.cpp
+++ b/src/configCompat.cpp
@@ -160,19 +160,19 @@ void Common::loadConstantsFromCFGVer0(string cfgFilePath)
const Setting &vconstants = constants["Values"];
for(int i = 0; i < MaxC; ++i)
{
- C[i] = (int)vconstants[valueConstantsNamesCFGVer0[i]];
+ C[i] = (int)vconstants[valueConstantsNamesCFGVer0[i].c_str()];
}
const Setting &sconstants = constants["Strings"];
for(int i = 0; i < MaxS; ++i)
{
- S[i]= (char const*)sconstants[stringConstantsNamesCFGVer0[i]];
+ S[i]= (char const*)sconstants[stringConstantsNamesCFGVer0[i].c_str()];
}
const Setting &hconstants = constants["Hacks"];
for(int i = 0; i < MaxH; ++i)
{
- H[i] = (bool)hconstants[hackConstantsNamesVer0[i]];
+ H[i] = (bool)hconstants[hackConstantsNamesVer0[i].c_str()];
}
}
diff --git a/src/configHelper.cpp b/src/configHelper.cpp
index fcd1f3f..a63bddc 100644
--- a/src/configHelper.cpp
+++ b/src/configHelper.cpp
@@ -54,15 +54,11 @@ template Uint8 ConfigHelper::getValue<Uint8, const Setting, int>(const Setting &
template Uint8 ConfigHelper::getValue<Uint8, const Setting, char const*>(const Setting &node, char const* index);
-template Uint8 ConfigHelper::getValue<Uint8, const Setting, string>(const Setting &node, string index);
-
// Non-const
template Uint8 ConfigHelper::getValue<Uint8, Setting, int>(Setting &node, int index);
template Uint8 ConfigHelper::getValue<Uint8, Setting, char const*>(Setting &node, char const* index);
-template Uint8 ConfigHelper::getValue<Uint8, Setting, string>(Setting &node, string index);
-
// Since we still need specialisation per value type (Setting::Type),
// no need to templateify these
@@ -72,7 +68,7 @@ void ConfigHelper::put(Setting &node, string variable, string value)
{
node.add(variable, Setting::TypeString) = value;
} else {
- Setting &var = node[variable];
+ Setting &var = node[variable.c_str()];
var = value;
}
}
@@ -83,7 +79,7 @@ void ConfigHelper::put(Setting &node, string variable, int value)
{
node.add(variable, Setting::TypeInt) = value;
} else {
- Setting &var = node[variable];
+ Setting &var = node[variable.c_str()];
var = value;
}
}
@@ -94,7 +90,7 @@ void ConfigHelper::put(Setting &node, string variable, Uint8 value)
{
node.add(variable, Setting::TypeInt) = value;
} else {
- Setting &var = node[variable];
+ Setting &var = node[variable.c_str()];
var = value;
}
}
@@ -105,7 +101,7 @@ void ConfigHelper::put(Setting &node, string variable, bool value)
{
node.add(variable, Setting::TypeBoolean) = value;
} else {
- Setting &var = node[variable];
+ Setting &var = node[variable.c_str()];
var = value;
}
}
@@ -135,6 +131,6 @@ Setting& ConfigHelper::getSubgroup(Setting &node, string groupName)
{
node.add(groupName, Setting::TypeGroup);
}
- return node[groupName];
+ return node[groupName.c_str()];
}
diff --git a/src/constants.cpp b/src/constants.cpp
index 7fced6a..cf7bbfc 100644
--- a/src/constants.cpp
+++ b/src/constants.cpp
@@ -523,19 +523,19 @@ void Common::loadConstantsFromCFG(std::string cfgFilePath)
const libconfig::Setting &vconstants = constants["Values"];
for(int i = 0; i < MaxC; ++i)
{
- C[i] = (int)vconstants[valueConstantsNames[i]];
+ C[i] = (int)vconstants[valueConstantsNames[i].c_str()];
}
const libconfig::Setting &sconstants = constants["Strings"];
for(int i = 0; i < MaxS; ++i)
{
- S[i]= (char const*)sconstants[stringConstantsNames[i]];
+ S[i]= (char const*)sconstants[stringConstantsNames[i].c_str()];
}
const libconfig::Setting &hconstants = constants["Hacks"];
for(int i = 0; i < MaxH; ++i)
{
- H[i] = (bool)hconstants[hackConstantsNames[i]];
+ H[i] = (bool)hconstants[hackConstantsNames[i].c_str()];
}
}
diff --git a/src/gfx/palette.cpp b/src/gfx/palette.cpp
index 3fd08c4..3d3bf22 100644
--- a/src/gfx/palette.cpp
+++ b/src/gfx/palette.cpp
@@ -124,9 +124,9 @@ void Palette::readFromCFG(std::string cfgFilePath)
for(int i = 0; i < 256; ++i)
{
- entries[i].r = cfgHelp.getValue<Uint8>(spentries, "entries" + to_string(i) + "r");
- entries[i].g = cfgHelp.getValue<Uint8>(spentries, "entries" + to_string(i) + "g");
- entries[i].b = cfgHelp.getValue<Uint8>(spentries, "entries" + to_string(i) + "b");
+ entries[i].r = cfgHelp.getValue<Uint8>(spentries, ("entries" + to_string(i) + "r").c_str());
+ entries[i].g = cfgHelp.getValue<Uint8>(spentries, ("entries" + to_string(i) + "g").c_str());
+ entries[i].b = cfgHelp.getValue<Uint8>(spentries, ("entries" + to_string(i) + "b").c_str());
}
}