diff --git a/res/e3a/spellbooks/gray.xml b/res/e3a/spellbooks/gray.xml
index 998405b03..f3f4e496d 100644
--- a/res/e3a/spellbooks/gray.xml
+++ b/res/e3a/spellbooks/gray.xml
@@ -25,7 +25,7 @@
-
+
diff --git a/res/e3a/spellbooks/illaun.xml b/res/e3a/spellbooks/illaun.xml
index 0392842c2..8d820bf71 100644
--- a/res/e3a/spellbooks/illaun.xml
+++ b/res/e3a/spellbooks/illaun.xml
@@ -27,7 +27,7 @@
-
+
diff --git a/res/e3a/spells.xml b/res/e3a/spells.xml
index 94d7cbc08..d72386803 100644
--- a/res/e3a/spells.xml
+++ b/res/e3a/spells.xml
@@ -79,13 +79,13 @@
+
-
+ -->
diff --git a/res/eressea/spellbooks/gray.xml b/res/eressea/spellbooks/gray.xml
index 942b50237..74486f004 100644
--- a/res/eressea/spellbooks/gray.xml
+++ b/res/eressea/spellbooks/gray.xml
@@ -30,7 +30,7 @@
-
+
diff --git a/res/eressea/spellbooks/illaun.xml b/res/eressea/spellbooks/illaun.xml
index 83ffcfc27..6552a4bd8 100644
--- a/res/eressea/spellbooks/illaun.xml
+++ b/res/eressea/spellbooks/illaun.xml
@@ -20,7 +20,7 @@
-
+
diff --git a/res/eressea/spells.xml b/res/eressea/spells.xml
index 1931a4c74..5725b8768 100644
--- a/res/eressea/spells.xml
+++ b/res/eressea/spells.xml
@@ -446,12 +446,13 @@
-
+
diff --git a/src/attributes/seenspell.c b/src/attributes/seenspell.c
index e20976015..698a83076 100644
--- a/src/attributes/seenspell.c
+++ b/src/attributes/seenspell.c
@@ -54,11 +54,12 @@ static int read_seenspells(variant *var, void *owner, struct gamedata *data)
READ_TOK(store, token, sizeof(token));
while (token[0]) {
spell *sp = find_spell(token);
- if (!sp) {
- log_info("read_seenspells: could not find spell '%s'\n", token);
- return AT_READ_FAIL;
+ if (sp) {
+ selist_push(&ql, sp);
+ }
+ else {
+ log_info("read_seenspells: could not find spell '%s'\n", token);
}
- selist_push(&ql, sp);
READ_TOK(store, token, sizeof(token));
}
var->v = ql;
@@ -70,8 +71,8 @@ static bool cb_write_spell(void *data, void *more) {
storage *store = (storage *)more;
WRITE_TOK(store, sp->sname);
return true;
-
}
+
static void
write_seenspells(const variant *var, const void *owner, struct storage *store)
{
diff --git a/src/creport.c b/src/creport.c
index 0458f7271..23e0f7c8a 100644
--- a/src/creport.c
+++ b/src/creport.c
@@ -108,8 +108,8 @@ struct locale *crtag_locale(void) {
static const char *crtag(const char *key)
{
const char *result;
- result = LOC(crtag_locale(), key);
- return result;
+ result = locale_string(crtag_locale(), key, false);
+ return result ? result : key;
}
/*
* translation table
@@ -849,11 +849,17 @@ void cr_output_unit(stream *out, const faction * f,
pzTmp = get_racename(u->attribs);
if (pzTmp) {
const char *pzRace = locale_string(lang, mkname("race", pzTmp), false);
- pzTmp = pzRace ? translate(pzRace, LOC(lang, pzRace)) : pzTmp;
- stream_printf(out, "\"%s\";Typ\n", pzTmp);
+ if (pzRace) {
+ pzTmp = pzRace;
+ }
+ pzRace = translate(pzTmp, locale_string(lang, pzTmp, false));
+ if (!pzRace) {
+ pzRace = pzTmp;
+ }
+ stream_printf(out, "\"%s\";Typ\n", pzRace);
if (u->faction == f && fval(u_race(u), RCF_SHAPESHIFTANY)) {
pzRace = rc_name_s(u_race(u), NAME_PLURAL);
- stream_printf(out, "\"%s\";wahrerTyp\n", pzTmp);
+ stream_printf(out, "\"%s\";wahrerTyp\n", pzRace);
}
}
else {
diff --git a/vs2017-build.bat b/vs2017-build.bat
index 22e153874..b79a81e85 100644
--- a/vs2017-build.bat
+++ b/vs2017-build.bat
@@ -12,5 +12,8 @@ IF exist build-vs%VSVERSION% goto HAVEDIR
mkdir build-vs%VSVERSION%
:HAVEDIR
cd build-vs%VSVERSION%
+IF NOT EXIST CMakeCache.txt GOTO NOCACHE
+DEL CMakeCache.txt
+:NOCACHE
"%CMAKE_ROOT%\bin\cmake.exe" -G "Visual Studio %VSVERSION%" -DCMAKE_PREFIX_PATH="%LUA_DEV%;%WIN32_DEV%" -DCMAKE_MODULE_PATH="%SRCDIR%/cmake/Modules" -DCMAKE_SUPPRESS_REGENERATION=TRUE ..
PAUSE