[Scummvm-git-logs] scummvm master -> f084d29e9a9e3c07bde27688edbc4654dd4aaf29

orgads orgads at gmail.com
Mon Aug 2 20:13:00 UTC 2021


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
f084d29e9a DEVTOOLS: Fix create_xeen compilation without C++11


Commit: f084d29e9a9e3c07bde27688edbc4654dd4aaf29
    https://github.com/scummvm/scummvm/commit/f084d29e9a9e3c07bde27688edbc4654dd4aaf29
Author: Orgad Shaneh (orgads at gmail.com)
Date: 2021-08-02T23:12:57+03:00

Commit Message:
DEVTOOLS: Fix create_xeen compilation without C++11

Changed paths:
    devtools/create_xeen/cc.cpp
    devtools/create_xeen/constants.cpp
    devtools/create_xeen/constants.h
    devtools/create_xeen/en_constants.h
    devtools/create_xeen/ru_constants.h
    devtools/create_xeen/swords.cpp


diff --git a/devtools/create_xeen/cc.cpp b/devtools/create_xeen/cc.cpp
index 1d3ce76fdc..ae9371a10c 100644
--- a/devtools/create_xeen/cc.cpp
+++ b/devtools/create_xeen/cc.cpp
@@ -66,7 +66,7 @@ void CCArchive::loadIndex() {
 
 	if (_file.read(rawIndex, size) != size) {
 		delete[] rawIndex;
-		error("Failed to read %zu bytes from CC archive", size);
+		error("Failed to read %ld bytes from CC archive", size);
 	}
 
 	// Decrypt the index
diff --git a/devtools/create_xeen/constants.cpp b/devtools/create_xeen/constants.cpp
index 5e4fbf4235..e67c5cbea7 100644
--- a/devtools/create_xeen/constants.cpp
+++ b/devtools/create_xeen/constants.cpp
@@ -35,6 +35,831 @@
 #include "en_constants.h"
 #include "ru_constants.h"
 
+const char *const LangConstants::TERRAIN_TYPES[6] = {
+	"town", "cave", "towr", "cstl", "dung", "scfi"
+};
+
+const char *const LangConstants::OUTDOORS_WALL_TYPES[16] = {
+	nullptr, "mount", "ltree", "dtree", "grass", "snotree", "dsnotree",
+	"snomnt", "dedltree", "mount", "lavamnt", "palm", "dmount", "dedltree",
+	"dedltree", "dedltree"
+};
+
+const char *const LangConstants::SURFACE_NAMES[16] = {
+	"water.srf", "dirt.srf", "grass.srf", "snow.srf", "swamp.srf",
+	"lava.srf", "desert.srf", "road.srf", "dwater.srf", "tflr.srf",
+	"sky.srf", "croad.srf", "sewer.srf", "cloud.srf", "scortch.srf",
+	"space.srf"
+};
+
+const byte LangConstants::SYMBOLS[20][64] = {
+	{ // 0
+		0x00, 0x00, 0xA8, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0x00, 0xA8, 0x9E, 0x9C, 0x9C, 0x9E, 0x9E, 0x9E,
+		0xAC, 0x9C, 0xA4, 0xAC, 0xAC, 0x9A, 0x9A, 0x9A, 0xAC, 0x9E, 0xAC, 0xA8, 0xA8, 0xA6, 0x97, 0x98,
+		0xAC, 0xA0, 0xAC, 0xAC, 0xA4, 0xA6, 0x98, 0x99, 0x00, 0xAC, 0xA0, 0xA0, 0xA8, 0xAC, 0x9A, 0x9A,
+		0x00, 0x00, 0xAC, 0xAC, 0xAC, 0xA4, 0x9B, 0x9A, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xA0, 0x9B, 0x9B,
+	},
+	{ // 1
+		0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
+		0x99, 0x9A, 0x9A, 0x99, 0x99, 0x99, 0x9A, 0x99, 0x98, 0x98, 0x98, 0x97, 0x97, 0x97, 0x97, 0x97,
+		0x99, 0x98, 0x98, 0x99, 0x98, 0x98, 0x99, 0x99, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
+		0x9A, 0x9B, 0x9B, 0x9C, 0x9B, 0x9A, 0x9C, 0x9A, 0x9B, 0x9A, 0x99, 0x99, 0x99, 0x9A, 0x9A, 0x9B,
+	},
+	{ // 2
+		0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
+		0x99, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x99, 0x98, 0x98, 0x99, 0x98, 0x98, 0x97, 0x98, 0x98,
+		0x99, 0x98, 0x98, 0x98, 0x99, 0x99, 0x98, 0x99, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
+		0x9B, 0x9B, 0x9C, 0x9C, 0x9B, 0x9B, 0x9B, 0x9B, 0x99, 0x9A, 0x9B, 0x9B, 0x9A, 0x9A, 0x99, 0x9A,
+	},
+	{ // 3
+		0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
+		0x99, 0x9A, 0x9A, 0x9A, 0x99, 0x99, 0x99, 0x9A, 0x98, 0x98, 0x97, 0x97, 0x98, 0x98, 0x98, 0x98,
+		0x99, 0x99, 0x98, 0x99, 0x98, 0x98, 0x99, 0x99, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
+		0x9B, 0x9C, 0x9B, 0x9B, 0x9C, 0x9C, 0x9C, 0x9C, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x99, 0x99, 0x9A,
+	},
+	{ // 4
+		0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
+		0x9A, 0x9A, 0x9A, 0x99, 0x99, 0x99, 0x99, 0x9A, 0x97, 0x97, 0x97, 0x97, 0x97, 0x98, 0x98, 0x98,
+		0x99, 0x99, 0x98, 0x99, 0x99, 0x98, 0x98, 0x98, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
+		0x9A, 0x9C, 0x9B, 0x9B, 0x9C, 0x9B, 0x9B, 0x9B, 0x9A, 0x99, 0x9B, 0x9B, 0x9A, 0x99, 0x9A, 0x9A,
+	},
+	{ // 5
+		0xA4, 0xA4, 0xA8, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x9E, 0x9E, 0xA0, 0xA8, 0xAC, 0x00, 0x00,
+		0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9E, 0xAC, 0x00, 0x97, 0x97, 0x97, 0x98, 0x9C, 0x9C, 0xA0, 0xAC,
+		0x99, 0x98, 0x99, 0x99, 0x99, 0x9B, 0xA0, 0xAC, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9B, 0xA0, 0xAC,
+		0x9C, 0x9B, 0x9C, 0x9C, 0x9C, 0xA0, 0xAC, 0x00, 0x99, 0x9A, 0x9A, 0x9B, 0x9B, 0xA4, 0xAC, 0x00,
+	},
+	{ // 6
+		0x00, 0x00, 0x00, 0xAC, 0xA4, 0x9C, 0x99, 0x99, 0x00, 0x00, 0x00, 0xAC, 0xA0, 0x9C, 0x9B, 0x99,
+		0x00, 0x00, 0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x99, 0x00, 0xAC, 0xA0, 0x9C, 0x99, 0x98, 0x99, 0x99,
+		0x00, 0xAC, 0xA0, 0x9C, 0x9C, 0xA0, 0x9C, 0x9A, 0x00, 0x00, 0xAC, 0xA4, 0xA0, 0x99, 0x99, 0x99,
+		0x00, 0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x00, 0xAC, 0xA4, 0x9C, 0x99, 0x99, 0x99, 0x99,
+	},
+	{ // 7
+		0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x99, 0xAC, 0xA4, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x99,
+		0x00, 0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x00, 0x00, 0xAC, 0xA4, 0x9C, 0x9C, 0x99, 0x99,
+		0x00, 0x00, 0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x99, 0x00, 0x00, 0x00, 0xAC, 0xA4, 0x9C, 0x99, 0x99,
+		0x00, 0x00, 0xAC, 0xA0, 0x9B, 0xA0, 0x9E, 0x9C, 0x00, 0xAC, 0xA4, 0x9C, 0x99, 0x9C, 0x99, 0x99,
+	},
+	{ // 8
+		0x00, 0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x9B, 0x99, 0xAC, 0xA4, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x99,
+		0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x99, 0xAC, 0xA4, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x99,
+		0x00, 0xAC, 0xA4, 0x9C, 0x99, 0x99, 0x99, 0x99, 0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x99,
+		0x00, 0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x9C, 0x99, 0x00, 0xAC, 0xA4, 0x9C, 0x99, 0x9E, 0x9C, 0x99,
+	},
+	{ // 9
+		0x00, 0x00, 0xAC, 0xA4, 0xA0, 0x9C, 0x99, 0x99, 0x00, 0xAC, 0xA0, 0x9C, 0x9C, 0xA0, 0x9C, 0x9A,
+		0xAC, 0xA4, 0x9C, 0x9A, 0x99, 0x99, 0x99, 0x99, 0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x99,
+		0xAC, 0xA4, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x99, 0x00, 0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x99, 0x99,
+		0x00, 0xAC, 0xA4, 0x9C, 0x9A, 0x9C, 0x99, 0x99, 0x00, 0x00, 0xAC, 0xA0, 0x9C, 0x9A, 0x99, 0x99,
+	},
+	{ // 10
+		0x99, 0x99, 0x99, 0x9A, 0xA0, 0xAC, 0x00, 0x00, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC, 0x00, 0x00,
+		0x99, 0x99, 0x9C, 0x9E, 0xA4, 0xAC, 0x00, 0x00, 0x99, 0x99, 0x9C, 0x99, 0x9C, 0xA4, 0xAC, 0x00,
+		0x99, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC, 0x00, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC, 0x00, 0x00,
+		0x99, 0x99, 0x99, 0xA0, 0xA4, 0xAC, 0x00, 0x00, 0x9A, 0x9B, 0x9E, 0x9C, 0x9C, 0xA4, 0xAC, 0x00,
+	},
+	{ // 11
+		0x99, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC, 0x00, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9C, 0x9E, 0xAC,
+		0x99, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC, 0x00, 0x99, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC, 0x00,
+		0x99, 0x99, 0x99, 0x99, 0x99, 0x9C, 0xA4, 0xAC, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC,
+		0x9C, 0x99, 0x99, 0x99, 0x9C, 0x9C, 0xA4, 0xAC, 0x99, 0x9E, 0x9E, 0x9C, 0x9C, 0xA0, 0xAC, 0x00,
+	},
+	{ // 12
+		0x99, 0x99, 0x9C, 0xA0, 0xA4, 0xAC, 0x00, 0x00, 0x9B, 0x9C, 0x9E, 0x9C, 0x9C, 0xA4, 0xAC, 0x00,
+		0x99, 0x99, 0x99, 0x99, 0x99, 0xA0, 0xAC, 0x00, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC,
+		0x99, 0x99, 0x99, 0x99, 0x9C, 0x9C, 0xA4, 0xAC, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xA4, 0xAC, 0x00,
+		0x99, 0x99, 0x9C, 0x99, 0x99, 0x9C, 0xA0, 0xAC, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC,
+	},
+	{ // 13
+		0x99, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC, 0x00, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC, 0x00, 0x00,
+		0x99, 0x9B, 0x9C, 0xA0, 0xA4, 0xAC, 0x00, 0x00, 0x99, 0x99, 0x9A, 0x99, 0x9C, 0xA0, 0xAC, 0x00,
+		0x99, 0x99, 0x99, 0x99, 0x99, 0x9C, 0xA4, 0xAC, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC,
+		0x99, 0x99, 0x99, 0x99, 0x9A, 0x9C, 0xA4, 0xAC, 0x99, 0x99, 0x99, 0x9A, 0x9C, 0xA4, 0xAC, 0x00,
+	},
+	{ // 14
+		0x00, 0x00, 0xAC, 0x9E, 0x9C, 0x9C, 0x9C, 0x9B, 0x00, 0xAC, 0x9C, 0xA0, 0x9E, 0xA4, 0xA4, 0xA4,
+		0xAC, 0x9C, 0xA4, 0xAC, 0xAC, 0xAC, 0x9C, 0x9E, 0xAC, 0xA0, 0xAC, 0xA8, 0x9E, 0xA8, 0xAC, 0x99,
+		0xAC, 0x9E, 0xAC, 0xA8, 0xAC, 0x9E, 0xA4, 0xAC, 0xAC, 0xA4, 0xA0, 0xAC, 0xAC, 0xA0, 0xA4, 0xAC,
+		0x00, 0xAC, 0xA4, 0xA0, 0xA0, 0xA4, 0xAC, 0xA4, 0x00, 0x00, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
+	},
+	{ // 15
+		0x9C, 0x9C, 0x9C, 0x9B, 0x9C, 0x9C, 0x9C, 0x9B, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
+		0x9E, 0x9E, 0x9E, 0x9C, 0x9E, 0x9E, 0x9E, 0x9E, 0x99, 0x99, 0x99, 0x99, 0x99, 0x98, 0x99, 0x98,
+		0x9C, 0x9C, 0x9B, 0x9B, 0x9B, 0x9C, 0x9C, 0x9C, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0x9E, 0x9E, 0xA0,
+		0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
+	},
+	{ // 16
+		0x9B, 0x9B, 0x9B, 0x9B, 0x9C, 0x9B, 0x9C, 0x9C, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
+		0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9E, 0x98, 0x98, 0x98, 0x98, 0x99, 0x99, 0x99, 0x99,
+		0x9C, 0x9B, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0xA0, 0xA0, 0xA0, 0x9E, 0xA0, 0x9E, 0x9E, 0xA0,
+		0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
+	},
+	{ // 17
+		0x9C, 0x9C, 0x9C, 0x9B, 0x9B, 0x9B, 0x9C, 0x9B, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
+		0x9E, 0x9E, 0x9E, 0x9C, 0x9C, 0x9C, 0x9E, 0x9E, 0x98, 0x98, 0x98, 0x99, 0x9A, 0x9A, 0x99, 0x98,
+		0x9C, 0x9B, 0x9C, 0x9C, 0x9C, 0x9B, 0x9B, 0x9C, 0xA0, 0x9E, 0x9E, 0xA0, 0xA0, 0xA0, 0xA0, 0x9E,
+		0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
+	},
+	{ // 18
+		0x9B, 0x9B, 0x9C, 0x9C, 0x9C, 0x9B, 0x9B, 0x9B, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
+		0x9E, 0x9E, 0x9E, 0x9E, 0x9C, 0x9C, 0x9C, 0x9E, 0x98, 0x98, 0x98, 0x98, 0x9A, 0x9A, 0x98, 0x99,
+		0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9B, 0x9C, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0xA0, 0xA0, 0xA0,
+		0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
+	},
+	{ // 19
+		0x9C, 0x9B, 0x9C, 0x9C, 0xA0, 0xA4, 0xAC, 0x00, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xAC, 0x00, 0x00,
+		0x9E, 0x9E, 0x9C, 0x9C, 0x9E, 0xA0, 0xAC, 0x00, 0x99, 0x98, 0x98, 0x99, 0x9A, 0x9A, 0xA0, 0xAC,
+		0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0xA0, 0xAC, 0xA0, 0xA0, 0x9E, 0xA0, 0xA0, 0xA0, 0xA0, 0xAC,
+		0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xAC, 0x00, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0x00, 0x00,
+	}
+};
+
+const byte LangConstants::TEXT_COLORS[40][4] = {
+	{0x00, 0x19, 0x19, 0x19},
+	{0x00, 0x08, 0x08, 0x08},
+	{0x00, 0x0F, 0x0F, 0x0F},
+	{0x00, 0x15, 0x15, 0x15},
+	{0x00, 0x01, 0x01, 0x01},
+	{0x00, 0x21, 0x21, 0x21},
+	{0x00, 0x26, 0x26, 0x26},
+	{0x00, 0x2B, 0x2B, 0x2B},
+	{0x00, 0x31, 0x31, 0x31},
+	{0x00, 0x36, 0x36, 0x36},
+	{0x00, 0x3D, 0x3D, 0x3D},
+	{0x00, 0x41, 0x41, 0x41},
+	{0x00, 0x46, 0x46, 0x46},
+	{0x00, 0x4C, 0x4C, 0x4C},
+	{0x00, 0x50, 0x50, 0x50},
+	{0x00, 0x55, 0x55, 0x55},
+	{0x00, 0x5D, 0x5D, 0x5D},
+	{0x00, 0x60, 0x60, 0x60},
+	{0x00, 0x65, 0x65, 0x65},
+	{0x00, 0x6C, 0x6C, 0x6C},
+	{0x00, 0x70, 0x70, 0x70},
+	{0x00, 0x75, 0x75, 0x75},
+	{0x00, 0x7B, 0x7B, 0x7B},
+	{0x00, 0x80, 0x80, 0x80},
+	{0x00, 0x85, 0x85, 0x85},
+	{0x00, 0x8D, 0x8D, 0x8D},
+	{0x00, 0x90, 0x90, 0x90},
+	{0x00, 0x97, 0x97, 0x97},
+	{0x00, 0x9D, 0x9D, 0x9D},
+	{0x00, 0xA4, 0xA4, 0xA4},
+	{0x00, 0xAB, 0xAB, 0xAB},
+	{0x00, 0xB0, 0xB0, 0xB0},
+	{0x00, 0xB6, 0xB6, 0xB6},
+	{0x00, 0xBD, 0xBD, 0xBD},
+	{0x00, 0xC0, 0xC0, 0xC0},
+	{0x00, 0xC6, 0xC6, 0xC6},
+	{0x00, 0xCD, 0xCD, 0xCD},
+	{0x00, 0xD0, 0xD0, 0xD0},
+	{0x00, 0xD6, 0xD6, 0xD6},
+	{0x00, 0xDB, 0xDB, 0xDB},
+};
+
+const byte LangConstants::TEXT_COLORS_STARTUP[40][4] = {
+	{0x00, 0x19, 0x19, 0x19},
+	{0x00, 0x08, 0x08, 0x08},
+	{0x00, 0x0F, 0x0F, 0x0F},
+	{0x00, 0x15, 0x15, 0x15},
+	{0x00, 0x01, 0x01, 0x01},
+	{0x00, 0x1F, 0x1F, 0x1F},
+	{0x00, 0x26, 0x26, 0x26},
+	{0x00, 0x2B, 0x2B, 0x2B},
+	{0x00, 0x31, 0x31, 0x31},
+	{0x00, 0x36, 0x36, 0x36},
+	{0x00, 0x3D, 0x3D, 0x3D},
+	{0x00, 0x42, 0x42, 0x42},
+	{0x00, 0x46, 0x46, 0x46},
+	{0x00, 0x4C, 0x4C, 0x4C},
+	{0x00, 0x50, 0x50, 0x50},
+	{0x00, 0x55, 0x55, 0x55},
+	{0x00, 0x5D, 0x5D, 0x5D},
+	{0x00, 0x60, 0x60, 0x60},
+	{0x00, 0x65, 0x65, 0x65},
+	{0x00, 0x6C, 0x6C, 0x6C},
+	{0x00, 0x70, 0x70, 0x70},
+	{0x00, 0x75, 0x75, 0x75},
+	{0x00, 0x7B, 0x7B, 0x7B},
+	{0x00, 0x80, 0x80, 0x80},
+	{0x00, 0x85, 0x85, 0x85},
+	{0x00, 0x8D, 0x8D, 0x8D},
+	{0x00, 0x90, 0x90, 0x90},
+	{0x00, 0x97, 0x97, 0x97},
+	{0x00, 0x9D, 0x9D, 0x9D},
+	{0x00, 0xA4, 0xA4, 0xA4},
+	{0x00, 0xAB, 0xAB, 0xAB},
+	{0x00, 0xB0, 0xB0, 0xB0},
+	{0x00, 0xB6, 0xB6, 0xB6},
+	{0x00, 0xBD, 0xBD, 0xBD},
+	{0x00, 0xC0, 0xC0, 0xC0},
+	{0x00, 0xC6, 0xC6, 0xC6},
+	{0x00, 0xCD, 0xCD, 0xCD},
+	{0x00, 0xD0, 0xD0, 0xD0},
+	{0x00, 0x19, 0x19, 0x19},
+	{0x00, 0x31, 0x31, 0x31}
+};
+
+const int LangConstants::RACE_HP_BONUSES[5] = {0, -2, 1, -1, 2};
+
+const int LangConstants::RACE_SP_BONUSES[5][2] = {
+	{0, 0}, {2, 0}, {-1, -1}, {1, 1}, {-2, -2}
+};
+
+const int LangConstants::CLASS_EXP_LEVELS[10] = {
+	1500, 2000, 2000, 1500, 2000, 1000, 1500, 1500, 1500, 2000
+};
+
+const int LangConstants::CONDITION_COLORS[17] = {
+	9, 9, 9, 9, 9, 9, 9, 9, 32, 32, 32, 32, 6, 6, 6, 6, 15
+};
+
+const int LangConstants::FACE_CONDITION_FRAMES[17] = {
+	2, 2, 2, 1, 1, 4, 4, 4, 3, 2, 4, 3, 3, 5, 6, 7, 0
+};
+
+const int LangConstants::CHAR_FACES_X[6] = {10, 45, 81, 117, 153, 189};
+
+const int LangConstants::HP_BARS_X[6] = {13, 50, 86, 122, 158, 194};
+
+const byte LangConstants::DARKNESS_XLAT[3][256] = {
+	{
+	0, 25, 26, 27, 28, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	44, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	60, 61, 62, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	76, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	92, 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	108, 109, 110, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	140, 141, 142, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	168, 169, 170, 171, 172, 173, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	188, 189, 190, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	204, 205, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	220, 221, 222, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	236, 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	252, 253, 254, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+	}, {
+	0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	40, 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
+	56, 57, 58, 59, 60, 61, 62, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+	72, 73, 74, 75, 76, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0,
+	88, 89, 90, 91, 92, 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0,
+	104, 105, 106, 107, 108, 109, 110, 111, 0, 0, 0, 0, 0, 0, 0, 0,
+	120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0,
+	136, 137, 138, 139, 140, 141, 142, 143, 0, 0, 0, 0, 0, 0, 0, 0,
+	160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
+	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	184, 185, 186, 187, 188, 189, 190, 191, 0, 0, 0, 0, 0, 0, 0, 0,
+	200, 201, 202, 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0,
+	216, 217, 218, 219, 220, 221, 222, 223, 0, 0, 0, 0, 0, 0, 0, 0,
+	232, 233, 234, 235, 236, 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, 0,
+	248, 249, 250, 251, 252, 253, 254, 255, 0, 0, 0, 0, 0, 0, 0, 0
+	}, {
+	0, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
+	24, 25, 26, 27, 28, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0,
+	36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, 0,
+	52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 0, 0, 0, 0,
+	68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 0, 0, 0, 0,
+	84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 0, 0, 0, 0,
+	100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 0, 0, 0, 0,
+	116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0,
+	132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 0, 0, 0, 0,
+	152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+	168, 169, 170, 171, 172, 173, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0,
+	180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 0, 0, 0, 0,
+	196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 0, 0, 0, 0,
+	212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 0, 0, 0, 0,
+	228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 0, 0, 0, 0,
+	244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 0, 0, 0
+	}
+};
+
+const int LangConstants::SCREEN_POSITIONING_X[4][48] = {
+	{
+	-1,  0,  0,  0,  1, -1,  0,  0,  0,  1, -2, -1,
+	-1,  0,  0,  0,  1,  1,  2, -4, -3, -3, -2, -2,
+	-1, -1,  0,  0,  0,  1,  1,  2,  2,  3,  3,  4,
+	-3, -2, -1,  0,  0,  1,  2,  3, -4,  4,  0,  0
+	}, {
+	 0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  3,  3,  3,  3,  3,
+	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
+	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  0,  1
+	}, {
+	 1,  0,  0,  0, -1,  1,  0,  0,  0, -1,  2,  1,
+	 1,  0,  0,  0, -1, -1, -2,  4,  3,  3,  2,  2,
+	 1,  1,  0,  0,  0, -1, -1, -2, -2, -3, -3, -4,
+	 3,  2,  1,  0,  0, -1, -2, -3,  4, -4,  0,  0
+	}, {
+	 0,  0,  0,  0,  0, -1, -1, -1, -1, -1, -2, -2,
+	-2, -2, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3,
+	-3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3,
+	-4, -4, -4, -4, -4, -4, -4, -4, -4, -4,  0, -1
+	}
+};
+
+const int LangConstants::SCREEN_POSITIONING_Y[4][48] = {
+	{
+	 0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  2,  2,
+	 2,  2,  2,  2,  2,  2,  2,  3,  3,  3,  3,  3,
+	 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
+	 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  0,  1
+	}, {
+	 1,  0,  0,  0, -1,  1,  0,  0,  0, -1,  2,  1,
+	 1,  0,  0,  0, -1, -1, -2,  4,  3,  3,  2,  2,
+	 1,  1,  0,  0,  0, -1, -1, -2, -2, -3, -3, -4,
+	 3,  2,  1,  0,  0, -1, -2, -3,  4, -4,  0,  0
+	}, {
+	 0,  0,  0,  0,  0, -1, -1, -1, -1, -1, -2, -2,
+	-2, -2, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3,
+	-3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3,
+	-4, -4, -4, -4, -4, -4, -4, -4, -4, -4,  0, -1
+	}, {
+	-1,  0,  0,  0,  1, -1,  0,  0,  0,  1, -2, -1,
+	-1,  0,  0,  0,  1,  1,  2, -4, -3, -3, -2, -2,
+	-1, -1,  0,  0,  0,  1,  1,  2,  2,  3,  3,  4,
+	-3, -2, -1,  0,  0,  1,  2,  3, -4,  4,  0,  0
+	}
+};
+
+const int LangConstants::MONSTER_GRID_BITMASK[12] = {
+	0xC, 8, 4, 0, 0xF, 0xF000, 0xF00, 0xF0, 0xF00, 0xF0, 0x0F, 0xF000
+};
+
+const int LangConstants::INDOOR_OBJECT_X[2][12] = {
+	{ -5, -7, -112, 98, -8, -65, 49, -9, -34, 16, -58, 40 },
+	{ -35, -35, -142, 68, -35, -95, 19, -35, -62, -14, -98, 16 }
+};
+
+const int LangConstants::MAP_OBJECT_Y[2][12] = {
+	{ 2, 25, 25, 25, 50, 50, 50, 58, 58, 58, 58, 58 },
+	{ -65, -6, -6, -6, 36, 36, 36, 54, 54, 54, 54, 54 }
+};
+
+const int LangConstants::INDOOR_MONSTERS_Y[4] = { 2, 34, 53, 59 };
+
+const int LangConstants::OUTDOOR_OBJECT_X[2][12] = {
+	{ -5, -7, -112, 98, -8, -77, 61, -9, -43, 25, -74, 56 },
+	{ -35, -35, -142, 68, -35, -95, 19, -35, -62, -24, -98, 16 }
+};
+
+const int LangConstants::OUTDOOR_MONSTER_INDEXES[26] = {
+	42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 69, 70,
+	71, 72, 73, 74, 75, 90, 91, 92, 93, 94, 112, 115, 118
+};
+
+const int LangConstants::OUTDOOR_MONSTERS_Y[26] = {
+	59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 53, 53,
+	53, 53, 53, 53, 53, 34, 34, 34, 34, 34, 2, 2, 2
+};
+
+const int LangConstants::DIRECTION_ANIM_POSITIONS[4][4] = {
+	{ 0, 1, 2, 3 }, { 3, 0, 1, 2 }, { 2, 3, 0, 1 }, { 1, 2, 3, 0 }
+};
+
+const byte WALL_SHIFTS[4][48] = {
+	{
+		12, 0, 12, 8, 12, 12, 0, 12, 8, 12, 12, 0,
+		12, 0, 12, 8, 12, 8, 12, 12, 0, 12, 0, 12,
+		0, 12, 0, 12, 8, 12, 8, 12, 8, 12, 8, 12,
+		0, 0, 0, 0, 8, 8, 8, 8, 0, 0, 4, 4
+	}, {
+		8, 12, 8, 4, 8, 8, 12, 8, 4, 8, 8, 12,
+		8, 12, 8, 4, 8, 4, 8, 8, 12, 8, 12, 8,
+		12, 8, 12, 8, 4, 8, 4, 8, 4, 8, 4, 8,
+		12, 12, 12, 12, 4, 4, 4, 4, 0, 0, 0, 0
+	}, {
+		4, 8, 4, 0, 4, 4, 8, 4, 0, 4, 4, 8,
+		4, 8, 4, 0, 4, 0, 4, 4, 8, 4, 8, 4,
+		8, 4, 8, 4, 0, 4, 0, 4, 0, 4, 0, 4,
+		8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 12, 12
+	}, {
+		0, 4, 0, 12, 0, 0, 4, 0, 12, 0, 0, 4,
+		0, 4, 0, 12, 0, 12, 0, 0, 4, 0, 4, 0,
+		4, 0, 4, 0, 12, 0, 12, 0, 12, 0, 12, 0,
+		4, 4, 4, 4, 12, 12, 12, 12, 0, 0, 8, 8
+	}
+};
+
+const byte LangConstants::WALL_SHIFTS[4][48] = {
+	{
+		12, 0, 12, 8, 12, 12, 0, 12, 8, 12, 12, 0,
+		12, 0, 12, 8, 12, 8, 12, 12, 0, 12, 0, 12,
+		0, 12, 0, 12, 8, 12, 8, 12, 8, 12, 8, 12,
+		0, 0, 0, 0, 8, 8, 8, 8, 0, 0, 4, 4
+	}, {
+		8, 12, 8, 4, 8, 8, 12, 8, 4, 8, 8, 12,
+		8, 12, 8, 4, 8, 4, 8, 8, 12, 8, 12, 8,
+		12, 8, 12, 8, 4, 8, 4, 8, 4, 8, 4, 8,
+		12, 12, 12, 12, 4, 4, 4, 4, 0, 0, 0, 0
+	}, {
+		4, 8, 4, 0, 4, 4, 8, 4, 0, 4, 4, 8,
+		4, 8, 4, 0, 4, 0, 4, 4, 8, 4, 8, 4,
+		8, 4, 8, 4, 0, 4, 0, 4, 0, 4, 0, 4,
+		8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 12, 12
+	}, {
+		0, 4, 0, 12, 0, 0, 4, 0, 12, 0, 0, 4,
+		0, 4, 0, 12, 0, 12, 0, 0, 4, 0, 4, 0,
+		4, 0, 4, 0, 12, 0, 12, 0, 12, 0, 12, 0,
+		4, 4, 4, 4, 12, 12, 12, 12, 0, 0, 8, 8
+	}
+};
+
+const int LangConstants::DRAW_NUMBERS[25] = {
+	36, 37, 38, 43, 42, 41,
+	39, 20, 22, 24, 33, 31,
+	29, 26, 10, 11, 18, 16,
+	13, 5, 9, 6, 0, 4, 1
+};
+
+const int LangConstants::DRAW_FRAMES[25][2] = {
+	{ 18, 24 }, { 19, 23 }, { 20, 22 }, { 24, 18 }, { 23, 19 }, { 22, 20 },
+	{ 21, 21 }, { 11, 17 }, { 12, 16 }, { 13, 15 }, { 17, 11 }, { 16, 12 },
+	{ 15, 13 }, { 14, 14 }, { 6, 10 }, { 7, 9 }, { 10, 6 }, { 9, 7 },
+	{ 8, 8 }, { 3, 5 }, { 5, 3 }, { 4, 4 }, { 0, 2 }, { 2, 0 },
+	{ 1, 1 }
+};
+
+const int LangConstants::COMBAT_FLOAT_X[8] = { -2, -1, 0, 1, 2, 1, 0, -1 };
+
+const int LangConstants::COMBAT_FLOAT_Y[8] = { -2, 0, 2, 0, -1, 0, 2, 0 };
+
+const int LangConstants::MONSTER_EFFECT_FLAGS[15][8] = {
+	{ 0x104, 0x105, 0x106, 0x107, 0x108, 0x109, 0x10A, 0x10B },
+	{ 0x10C, 0x10D, 0x10E, 0x10F, 0x0, 0x0, 0x0, 0x0 },
+	{ 0x110, 0x111, 0x112, 0x113, 0x0, 0x0, 0x0, 0x0 },
+	{ 0x114, 0x115, 0x116, 0x117, 0x0, 0x0, 0x0, 0x0 },
+	{ 0x200, 0x201, 0x202, 0x203, 0x0, 0x0, 0x0, 0x0 },
+	{ 0x300, 0x301, 0x302, 0x303, 0x400, 0x401, 0x402, 0x403 },
+	{ 0x500, 0x501, 0x502, 0x503, 0x0, 0x0, 0x0, 0x0 },
+	{ 0x600, 0x601, 0x602, 0x603, 0x0, 0x0, 0x0, 0x0 },
+	{ 0x604, 0x605, 0x606, 0x607, 0x608, 0x609, 0x60A, 0x60B },
+	{ 0x60C, 0x60D, 0x60E, 0x60F, 0x0, 0x0, 0x0, 0x0 },
+	{ 0x100, 0x100, 0x100, 0x100, 0x100, 0x100, 0x100, 0x100 },
+	{ 0x101, 0x101, 0x101, 0x101, 0x101, 0x101, 0x101, 0x101 },
+	{ 0x102, 0x102, 0x102, 0x102, 0x102, 0x102, 0x102, 0x102 },
+	{ 0x103, 0x103, 0x103, 0x103, 0x103, 0x103, 0x103, 0x103 },
+	{ 0x108, 0x108, 0x108, 0x108, 0x108, 0x108, 0x108, 0x108 }
+};
+
+const int LangConstants::SPELLS_ALLOWED[3][40] = {
+	{
+		0, 1, 2, 3, 5, 6, 7, 8, 9, 10,
+		12, 14, 16, 23, 26, 27, 28, 30, 31, 32,
+		33, 42, 46, 48, 49, 50, 52, 55, 56, 58,
+		59, 62, 64, 65, 67, 68, 71, 73, 74, 76
+	}, {
+		1, 4, 11, 13, 15, 17, 18, 19, 20, 21,
+		22, 24, 25, 29, 34, 35, 36, 37, 38, 39,
+		40, 41, 42, 43, 44, 45, 47, 51, 53, 54,
+		57, 60, 61, 63, 66, 69, 70, 72, 75, 76
+	}, {
+		0, 1, 2, 3, 4, 5, 7, 9, 10, 20,
+		25, 26, 27, 28, 30, 31, 34, 38, 40, 41,
+		42, 43, 44, 45, 49, 50, 52, 53, 55, 59,
+		60, 61, 62, 67, 68, 72, 73, 74, 75, 76
+	}
+};
+
+const int LangConstants::BASE_HP_BY_CLASS[10] = { 10, 8, 7, 5, 4, 8, 7, 12, 6, 9 };
+
+const int LangConstants::AGE_RANGES[10] = { 1, 6, 11, 18, 36, 51, 76, 101, 201, 0xffff };
+
+const int LangConstants::AGE_RANGES_ADJUST[2][10] = {
+	{ -250, -50, -20, -10, 0, -2, -5, -10, -20, -50 },
+	{ -250, -50, -20, -10, 0, 2, 5, 10, 20, 50 }
+};
+
+const int LangConstants::STAT_VALUES[24] = {
+	3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 25, 30, 35, 40,
+	50, 75, 100, 125, 150, 175, 200, 225, 250, 65535
+};
+
+const int LangConstants::STAT_BONUSES[24] = {
+	-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6,
+	7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20
+};
+
+const int LangConstants::ELEMENTAL_CATEGORIES[6] = { 8, 15, 20, 25, 33, 36 };
+
+const int LangConstants::ATTRIBUTE_CATEGORIES[10] = {
+	9, 17, 25, 33, 39, 45, 50, 56, 61, 72
+};
+
+const int LangConstants::ATTRIBUTE_BONUSES[72] = {
+	2, 3, 5, 8, 12, 17, 23, 30, 38, 47,	// Might bonus
+	2, 3, 5, 8, 12, 17, 23, 30,			// int LangConstants::bonus
+	2, 3, 5, 8, 12, 17, 23, 30,			// PER bonus
+	2, 3, 5, 8, 12, 17, 23, 30,			// SPD bonus
+	3, 5, 10, 15, 20, 30,				// ACC bonus
+	5, 10, 15, 20, 25, 30,				// LUC bonus
+	4, 6, 10, 20, 50,					// HP bonus
+	4, 8, 12, 16, 20, 25,				// SP bonus
+	2, 4, 6, 10, 16,					// AC bonus
+	4, 6, 8, 10, 12, 14, 16, 18, 20, 25	// Thievery bonus
+};
+
+const int LangConstants::ELEMENTAL_RESISTENCES[37] = {
+	0, 5, 7, 9, 12, 15, 20, 25, 30, 5, 7, 9, 12, 15, 20, 25,
+	5, 10, 15, 20, 25, 10, 15, 20, 25, 40, 5, 7, 9, 11, 13, 15, 20, 25,
+	5, 10, 20
+};
+
+const int LangConstants::ELEMENTAL_DAMAGE[37] = {
+	0, 2, 3, 4, 5, 10, 15, 20, 30, 2, 3, 4, 5, 10, 15, 20, 2, 4, 5, 10, 20,
+	2, 4, 8, 16, 32, 2, 3, 4, 5, 10, 15, 20, 30, 5, 10, 25
+};
+
+const int LangConstants::WEAPON_DAMAGE_BASE[35] = {
+	0, 3, 2, 3, 2, 2, 4, 1, 2, 4, 2, 3,
+	2, 2, 1, 1, 1, 1, 4, 4, 3, 2, 4, 2,
+	2, 2, 5, 3, 3, 3, 3, 5, 4, 2, 6
+};
+
+const int LangConstants::WEAPON_DAMAGE_MULTIPLIER[35] = {
+	0, 3, 3, 4, 5, 4, 2, 3, 3, 3, 3, 3,
+	2, 4, 10, 6, 8, 9, 4, 3, 6, 8, 5, 6,
+	4, 5, 3, 5, 6, 7, 2, 2, 2, 2, 4
+};
+
+const int LangConstants::METAL_DAMAGE[22] = {
+	-3, -6, -4, -2, 2, 4, 6, 8, 10, 0, 1,
+	1, 2, 2, 3, 4, 5, 12, 15, 20, 30, 50
+};
+
+const int LangConstants::METAL_DAMAGE_PERCENT[22] = {
+	253, 252, 3, 2, 1, 2, 3, 4, 6, 0, 1,
+	1, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10
+};
+
+const int LangConstants::METAL_LAC[22] = {
+	-3, 0, -2, -1, 1, 2, 4, 6, 8, 0, 1,
+	1, 2, 2, 3, 4, 5, 10, 12, 14, 16, 20
+};
+
+const int LangConstants::ARMOR_STRENGTHS[14] = { 0, 2, 4, 5, 6, 7, 8, 10, 4, 2, 1, 1, 1, 1 };
+
+const int LangConstants::MAKE_ITEM_ARR1[6] = { 0, 8, 15, 20, 25, 33 };
+
+const int LangConstants::MAKE_ITEM_ARR2[6][7][2] = {
+	{ { 0, 0 }, { 1, 3 }, { 2, 5 }, { 3, 6 }, { 4, 7 }, { 5, 8 }, { 8, 8 } },
+	{ { 0, 0 }, { 1, 3 }, { 2, 5 }, { 3, 6 }, { 4, 7 }, { 6, 7 }, { 7, 7 } },
+	{ { 0, 0 }, { 1, 2 }, { 1, 3 }, { 2, 4 }, { 3, 5 }, { 4, 5 }, { 5, 5 } },
+	{ { 0, 0 }, { 1, 2 }, { 1, 3 }, { 2, 4 }, { 3, 4 }, { 4, 5 }, { 5, 5 } },
+	{ { 0, 0 }, { 1, 3 }, { 2, 5 }, { 3, 6 }, { 4, 7 }, { 5, 8 }, { 8, 8 } },
+	{ { 0, 0 }, { 1, 1 }, { 1, 1 }, { 1, 2 }, { 2, 2 }, { 2, 3 }, { 3, 3 } }
+};
+
+const int LangConstants::MAKE_ITEM_ARR3[10][7][2] = {
+	{ { 0, 0 }, { 1, 4 }, { 2, 5 }, { 3, 6 }, { 4, 7 }, { 6, 10 }, { 10, 10 } },
+	{ { 0, 0 }, { 1, 3 }, { 2, 5 }, { 3, 6 }, { 4, 7 }, { 5, 8 }, { 8, 8 } },
+	{ { 0, 0 }, { 1, 3 }, { 2, 5 }, { 3, 6 }, { 4, 7 }, { 5, 8 }, { 8, 8 } },
+	{ { 0, 0 }, { 1, 3 }, { 2, 5 }, { 3, 6 }, { 4, 7 }, { 5, 8 }, { 8, 8 } },
+	{ { 0, 0 }, { 1, 2 }, { 1, 3 }, { 2, 4 }, { 3, 5 }, { 4, 6 }, { 6, 6 } },
+	{ { 0, 0 }, { 1, 2 }, { 2, 3 }, { 3, 4 }, { 4, 5 }, { 5, 6 }, { 6, 6 } },
+	{ { 0, 0 }, { 1, 2 }, { 1, 3 }, { 2, 4 }, { 3, 4 }, { 4, 5 }, { 5, 5 } },
+	{ { 0, 0 }, { 1, 2 }, { 1, 3 }, { 2, 4 }, { 3, 5 }, { 4, 6 }, { 6, 6 } },
+	{ { 0, 0 }, { 1, 2 }, { 1, 3 }, { 2, 4 }, { 3, 4 }, { 4, 5 }, { 5, 5 } },
+	{ { 0, 0 }, { 1, 2 }, { 1, 4 }, { 3, 6 }, { 5, 8 }, { 7, 10 }, { 10, 10 } }
+};
+
+const int LangConstants::MAKE_ITEM_ARR4[2][7][2] = {
+	{ { 0, 0 }, { 1, 4 }, { 3, 7 }, { 4, 8 }, { 5, 9 }, { 8, 9 }, { 9, 9 } },
+	{ { 0, 0 }, { 1, 4 }, { 2, 6 }, { 4, 7 }, { 6, 10 }, { 9, 13 }, { 13, 13 } }
+};
+
+const int LangConstants::MAKE_ITEM_ARR5[8][2] = {
+	{ 0, 0 }, { 1, 15 }, { 16, 30 }, { 31, 40 }, { 41, 50 },
+	{ 51, 60 }, { 61, 73 }, { 61, 73 }
+};
+
+const int LangConstants::OUTDOOR_DRAWSTRUCT_INDEXES[44] = {
+	37, 38, 39, 40, 41, 44, 42, 43, 47, 45, 46,
+	48, 49, 52, 50, 51, 66, 67, 68, 69, 70, 71,
+	72, 75, 73, 74, 87, 88, 89, 90, 91, 94, 92,
+	93, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120
+};
+
+const int LangConstants::TOWN_MAXES[2][11] = {
+	{ 23, 13, 32, 16, 26, 16, 16, 16, 16, 16, 16 },
+	{ 26, 19, 48, 27, 26, 37, 16, 16, 16, 16, 16 }
+};
+
+const char *const LangConstants::TOWN_ACTION_MUSIC[2][7] = {
+	{ "bank.m", "smith.m", "guild.m", "tavern.m",
+	"temple.m", "grounds.m", "endgame.m" },
+	{ "bank.m", "sf09.m", "guild.m", "tavern.m",
+	"temple.m", "smith.m", "endgame.m" }
+};
+
+const char *const LangConstants::TOWN_ACTION_SHAPES[7] = {
+	"bnkr", "blck", "gild", "tvrn", "tmpl", "trng", "eface08"
+};
+
+const int LangConstants::TOWN_ACTION_FILES[2][7] = {
+	{ 3, 2, 4, 2, 4, 2, 1 }, { 5, 3, 7, 5, 4, 6, 1 }
+};
+
+const int LangConstants::TAVERN_EXIT_LIST[2][6][5][2] = {
+	{
+		{ { 21, 17 }, { 0, 0 }, { 20, 3 }, { 0, 0 }, { 0, 0 } },
+		{ { 13, 4 }, { 0, 0 }, { 19, 9 }, { 0, 0 }, { 0, 0 } },
+		{ { 20, 10 }, { 12, 8 }, { 5, 26 }, { 3, 4 }, { 7, 5 } },
+		{ { 18, 4 }, { 0, 0 }, { 19, 16 }, { 0, 0 }, { 11, 12 } },
+		{ { 15, 21 }, { 0, 0 }, { 13, 21 }, { 0, 0 }, { 0, 0 } },
+		{ { 10, 8 }, { 0, 0 }, { 15, 12 }, { 0, 0 }, { 0, 0 } },
+	}, {
+		{ { 21, 17 }, { 0, 0 }, { 20, 3 }, { 0, 0 }, { 0, 0 } },
+		{ { 13, 4 }, { 0, 0 }, { 19, 9 }, { 0, 0 }, { 0, 0 } },
+		{ { 20, 10 }, { 12, 8 }, { 5, 26 }, { 3, 4 }, { 7, 5 } },
+		{ { 17, 24 }, { 14, 13 }, { 0, 0 }, { 0, 0 }, { 9, 4 } },
+		{ { 15, 21 }, { 0, 0 }, { 13, 21 }, { 0, 0 }, { 0, 0 } },
+		{ { 10, 8 }, { 0, 0 }, { 15, 12 }, { 0, 0 }, { 0, 0 } }
+	}
+};
+
+const int LangConstants::MISC_SPELL_INDEX[74] = {
+	NO_SPELL, MS_Light, MS_Awaken, MS_MagicArrow,
+	MS_FirstAid, MS_FlyingFist, MS_EnergyBlast, MS_Sleep,
+	MS_Revitalize, MS_CureWounds, MS_Sparks, MS_Shrapmetal,
+	MS_InsectSpray, MS_ToxicCloud, MS_ProtFromElements, MS_Pain,
+	MS_Jump, MS_BeastMaster, MS_Clairvoyance, MS_TurnUndead,
+	MS_Levitate, MS_WizardEye, MS_Bless, MS_IdentifyMonster,
+	MS_LightningBolt, MS_HolyBonus, MS_PowerCure, MS_NaturesCure,
+	MS_LloydsBeacon, MS_PowerShield, MS_Heroism, MS_Hynotize,
+	MS_WalkOnWater, MS_FrostBite, MS_DetectMonster, MS_Fireball,
+	MS_ColdRay, MS_CurePoison, MS_AcidSpray, MS_TimeDistortion,
+	MS_DragonSleep, MS_CureDisease, MS_Teleport, MS_FingerOfDeath,
+	MS_CureParalysis, MS_GolemStopper, MS_PoisonVolley, MS_DeadlySwarm,
+	MS_SuperShelter, MS_DayOfProtection, MS_DayOfSorcery, MS_CreateFood,
+	MS_FieryFlail, MS_RechargeItem, MS_FantasticFreeze, MS_TownPortal,
+	MS_StoneToFlesh, MS_RaiseDead, MS_Etheralize, MS_DancingSword,
+	MS_MoonRay, MS_MassDistortion, MS_PrismaticLight, MS_EnchantItem,
+	MS_Incinerate, MS_HolyWord, MS_Resurrection, MS_ElementalStorm,
+	MS_MegaVolts, MS_Inferno, MS_SunRay, MS_Implosion,
+	MS_StarBurst, MS_DivineIntervention
+};
+
+const int LangConstants::SPELL_COSTS[77] = {
+	8, 1, 5, -2, 5, -2, 20, 10, 12, 8, 3,
+	- 3, 75, 40, 12, 6, 200, 10, 100, 30, -1, 30,
+	15, 25, 10, -2, 1, 2, 7, 20, -2, -2, 100,
+	15, 5, 100, 35, 75, 5, 20, 4, 5, 1, -2,
+	6, 2, 75, 40, 60, 6, 4, 25, -2, -2, 60,
+	- 1, 50, 15, 125, 2, -1, 3, -1, 200, 35, 150,
+	15, 5, 4, 10, 8, 30, 4, 5, 7, 5, 0
+};
+
+const int LangConstants::DARK_SPELL_RANGES[12][2] = {
+	{ 0, 20 }, { 16, 35 }, { 27, 37 }, { 29, 39 },
+	{ 0, 17 }, { 14, 34 }, { 26, 37 }, { 29, 39 },
+	{ 0, 20 }, { 16, 35 }, { 27, 37 }, { 29, 39 }
+};
+
+const int LangConstants::SWORDS_SPELL_RANGES[12][2] = {
+	{ 0, 20 },{ 16, 35 },{ 27, 39 },{ 29, 39 },
+	{ 0, 17 },{ 14, 34 },{ 26, 39 },{ 29, 39 },
+	{ 0, 20 },{ 16, 35 },{ 27, 39 },{ 29, 39 }
+};
+
+const int LangConstants::CLOUDS_GUILD_SPELLS[5][20] = {
+	{
+		1, 10, 20, 26, 27, 38, 40, 42, 45, 50,
+		55, 59, 60, 61, 62, 68, 72, 75, 77, 77
+	}, {
+		3, 4, 5, 14, 15, 25, 30, 31, 34, 41,
+		49, 51, 53, 67, 73, 75, -1, -1, -1, -1
+	}, {
+		4, 8, 9, 12, 13, 22, 23, 24, 28, 34,
+		41, 44, 52, 70, 73, 74, -1, -1, -1, -1
+	}, {
+		6, 7, 9, 11, 12, 13, 17, 21, 22, 24,
+		29, 36, 56, 58, 64, 71, -1, -1, -1, -1
+	}, {
+		6, 7, 9, 11, 12, 13, 18, 21, 29, 32,
+		36, 37, 46, 51, 56, 58, 69, -1, -1, -1
+	}
+};
+
+const int LangConstants::DARK_SPELL_OFFSETS[3][39] = {
+	{
+		42, 1, 26, 59, 27, 10, 50, 68, 55, 62, 67, 73, 2,
+		5, 3, 31, 30, 52, 49, 28, 74, 0, 9, 7, 14, 8,
+		33, 6, 23, 71, 64, 56, 48, 46, 12, 32, 58, 65, 16
+	}, {
+		42, 1, 45, 61, 72, 40, 20, 60, 38, 41, 75, 34, 4,
+		43, 25, 53, 44, 15, 70, 17, 24, 69, 22, 66, 57, 11,
+		29, 39, 51, 21, 19, 36, 47, 13, 54, 37, 18, 35, 63
+	}, {
+		0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+		13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+		26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38
+	}
+};
+
+const int LangConstants::SPELL_GEM_COST[77] = {
+	0, 0, 2, 1, 2, 4, 5, 0, 0, 0, 0, 10, 10, 10, 0, 0, 20, 4, 10, 20, 1, 10,
+	5, 5, 4, 2, 0, 0, 0, 10, 3, 1, 20, 4, 0, 20, 10, 10, 1, 10, 0, 0, 0, 2,
+	2, 0, 10, 10, 10, 0, 0, 10, 3, 2, 10, 1, 10, 10, 20, 0, 0, 1, 1, 20, 5, 20,
+	5, 0, 0, 0, 0, 5, 1, 2, 0, 2, 0
+};
+
+const int LangConstants::BLACKSMITH_MAP_IDS[2][4] = { { 28, 30, 73, 49 }, { 29, 31, 37, 43 } };
+
+const int LangConstants::WEAPON_BASE_COSTS[35] = {
+	0, 50, 15, 100, 80, 40, 60, 1, 10, 150, 30, 60, 8, 50,
+	100, 15, 30, 15, 200, 80, 250, 150, 400, 100, 40, 120,
+	300, 100, 200, 300, 25, 100, 50, 15, 0
+};
+const int LangConstants::ARMOR_BASE_COSTS[14] = {
+	0, 20, 100, 200, 400, 600, 1000, 2000, 100, 60, 40, 250, 200, 100
+};
+const int LangConstants::ACCESSORY_BASE_COSTS[11] = {
+	0, 100, 100, 250, 100, 50, 300, 200, 500, 1000, 2000
+};
+const int LangConstants::MISC_MATERIAL_COSTS[22] = {
+	0, 50, 1000, 500, 10, 100, 20, 10, 50, 10, 10, 100,
+	1, 1, 1, 1, 1, 1, 1, 1, 1, 1
+};
+const int LangConstants::MISC_BASE_COSTS[76] = {
+	0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+	100, 100, 100, 100, 200, 200, 200, 200, 200, 200, 200, 200,
+	200, 200, 200, 200, 200, 200, 200, 300, 300, 300, 300, 300,
+	300, 300, 300, 300, 300, 400, 400, 400, 400, 400, 400, 400,
+	400, 400, 400, 500, 500, 500, 500, 500, 500, 500, 500, 500,
+	500, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600,
+	600, 600, 600, 600
+};
+const int LangConstants::METAL_BASE_MULTIPLIERS[22] = {
+	10, 25, 5, 75, 2, 5, 10, 20, 50, 2, 3, 5, 10, 20, 30, 40,
+	50, 60, 70, 80, 90, 100
+};
+const int LangConstants::ITEM_SKILL_DIVISORS[4] = { 1, 2, 100, 10 };
+
+const int LangConstants::RESTRICTION_OFFSETS[4] = { 0, 35, 49, 60 };
+
+const int LangConstants::ITEM_RESTRICTIONS[86] = {
+	0, 86, 86, 86, 86, 86, 86, 0, 6, 239, 239, 239, 2, 4, 4, 4, 4,
+	6, 70, 70, 70, 70, 94, 70, 0, 4, 239, 86, 86, 86, 70, 70, 70, 70,
+	0, 0, 0, 68, 100, 116, 125, 255, 255, 85, 0, 0, 0, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+const int LangConstants::NEW_CHAR_SKILLS[10] = { 1, 5, -1, -1, 4, 0, 0, -1, 6, 11 };
+const int LangConstants::NEW_CHAR_SKILLS_LEN[10] = { 11, 8, 0, 0, 12, 8, 8, 0, 9, 11 };
+const int LangConstants::NEW_CHAR_RACE_SKILLS[10] = { 14, -1, 17, 16, -1, 0, 0, 0, 0, 0 };
+
+const int LangConstants::RACE_MAGIC_RESISTENCES[5] = { 7, 5, 20, 0, 0 };
+const int LangConstants::RACE_FIRE_RESISTENCES[5] = { 7, 0, 2, 5, 10 };
+const int LangConstants::RACE_ELECTRIC_RESISTENCES[5] = { 7, 0, 2, 5, 10 };
+const int LangConstants::RACE_COLD_RESISTENCES[5] = { 7, 0, 2, 5, 10 };
+const int LangConstants::RACE_ENERGY_RESISTENCES[5] = { 7, 5, 2, 5, 0 };
+const int LangConstants::RACE_POISON_RESISTENCES[5] = { 7, 0, 2, 20, 0 };
+const int LangConstants::NEW_CHARACTER_SPELLS[10][4] = {
+	{ -1, -1, -1, -1 },
+	{ 21, -1, -1, -1 },
+	{ 22, -1, -1, -1 },
+	{ 21, 1, 14, -1 },
+	{ 22, 0, 25, -1 },
+	{ -1, -1, -1, -1 },
+	{ -1, -1, -1, -1 },
+	{ -1, -1, -1, -1 },
+	{ 20, 1, 11, 23 },
+	{ 20, 1, -1, -1 }
+};
+
+const int LangConstants::TOWN_MAP_NUMBERS[3][5] = {
+	{ 28, 29, 30, 31, 32 }, { 29, 31, 33, 35, 37 }, { 53, 92, 63, 0, 0 }
+};
+
+const char *const LangConstants::EVENT_SAMPLES[6] = {
+	"ahh.voc", "whereto.voc", "gulp.voc", "null.voc", "scream.voc", "laff1.voc"
+};
+
+const char *const LangConstants::MUSIC_FILES1[5] = {
+	"outdoors.m", "town.m", "cavern.m", "dungeon.m", "castle.m"
+};
+
+const char *const LangConstants::MUSIC_FILES2[6][7] = {
+	{ "outday1.m", "outday2.m", "outday4.m", "outnght1.m",
+	"outnght2.m", "outnght4.m", "daydesrt.m" },
+	{ "townday1.m", "twnwlk.m", "newbrigh.m", "twnnitea.m",
+	"twnniteb.m", "twnwlk.m", "townday1.m" },
+	{ "cavern1.m", "cavern2.m", "cavern3a.m", "cavern1.m",
+	"cavern2.m", "cavern3a.m", "cavern1.m" },
+	{ "dngon1.m", "dngon2.m", "dngon3.m", "dngon1.m",
+	"dngon2.m", "dngon3.m", "dngon1.m" },
+	{ "cstl1rev.m", "cstl2rev.m", "cstl3rev.m", "cstl1rev.m",
+	"cstl2rev.m", "cstl3rev.m", "cstl1rev.m" },
+	{ "sf05.m", "sf05.m", "sf05.m", "sf05.m", "sf05.m", "sf05.m", "sf05.m" }
+};
+
+
 void LangConstants::writeConstants(Common::String num, CCArchive &cc) {
 	Common::MemFile file;
 	file.syncString(CLOUDS_CREDITS());
@@ -43,8 +868,6 @@ void LangConstants::writeConstants(Common::String num, CCArchive &cc) {
 	file.syncString(SWORDS_CREDITS2());
 	file.syncString(OPTIONS_MENU());
 	file.syncStrings(GAME_NAMES(), 3);
-	delete[] _gameNames;
-	_gameNames = NULL;
 	file.syncString(THE_PARTY_NEEDS_REST());
 	file.syncString(WHO_WILL());
 	file.syncString(HOW_MUCH());
@@ -56,44 +879,22 @@ void LangConstants::writeConstants(Common::String num, CCArchive &cc) {
 	file.syncStrings(OUTDOORS_WALL_TYPES, 16);
 	file.syncStrings(SURFACE_NAMES, 16);
 	file.syncStrings(WHO_ACTIONS(), 32);
-	delete[] _whoActions;
-	_whoActions = NULL;
 	file.syncStrings(WHO_WILL_ACTIONS(), 4);
-	delete[] _whoWillActions;
-	_whoWillActions = NULL;
 	file.syncBytes2D((const byte *)SYMBOLS, 20, 64);
 	file.syncBytes2D((const byte *)TEXT_COLORS, 40, 4);
 	file.syncBytes2D((const byte *)TEXT_COLORS_STARTUP, 40, 4);
 	file.syncStrings(DIRECTION_TEXT_UPPER(), 4);
-	delete[] _directionTextUpper;
-	_directionTextUpper = NULL;
 	file.syncStrings(DIRECTION_TEXT(), 4);
-	delete[] _directionText;
-	_directionText = NULL;
 	file.syncStrings(RACE_NAMES(), 5);
-	delete[] _raceNames;
-	_raceNames = NULL;
 	file.syncNumbers(RACE_HP_BONUSES, 5);
 	file.syncNumbers2D((const int *)RACE_SP_BONUSES, 5, 2);
 	file.syncStrings(CLASS_NAMES(), 11);
-	delete[] _classNames;
-	_classNames = NULL;
 	file.syncNumbers(CLASS_EXP_LEVELS, 10);
 	file.syncStrings(ALIGNMENT_NAMES(), 3);
-	delete[] _alignmentNames;
-	_alignmentNames = NULL;
 	file.syncStrings(SEX_NAMES(), 2);
-	delete[] _sexNames;
-	_sexNames = NULL;
 	file.syncStrings(SKILL_NAMES(), 18);
-	delete[] _skillNames;
-	_skillNames = NULL;
 	file.syncStrings(CONDITION_NAMES_M(), 17);
-	delete[] _conditionNamesM;
-	_conditionNamesM = NULL;
 	file.syncStrings(CONDITION_NAMES_F(), 17);
-	delete[] _conditionNamesF;
-	_conditionNamesF = NULL;
 	file.syncNumbers(CONDITION_COLORS, 17);
 	file.syncString(GOOD());
 	file.syncString(BLESSED());
@@ -172,25 +973,13 @@ void LangConstants::writeConstants(Common::String num, CCArchive &cc) {
 	file.syncString(GOLD_GEMS());
 	file.syncString(GOLD_GEMS_2());
 	file.syncStrings(DEPOSIT_WITHDRAWL(), 2);
-	delete[] _depositWithdrawl;
-	_depositWithdrawl = NULL;
 	file.syncString(NOT_ENOUGH_X_IN_THE_Y());
 	file.syncString(NO_X_IN_THE_Y());
 	file.syncStrings(STAT_NAMES(), 16);
-	delete[] _statNames;
-	_statNames = NULL;
 	file.syncStrings(CONSUMABLE_NAMES(), 4);
-	delete[] _consumableNames;
-	_consumableNames = NULL;
 	file.syncStrings(CONSUMABLE_GOLD_FORMS(), 1);
-	delete[] _consumableGoldForms;
-	_consumableGoldForms = NULL;
 	file.syncStrings(CONSUMABLE_GEM_FORMS(), 1);
-	delete[] _consumableGemForms;
-	_consumableGemForms = NULL;
 	file.syncStrings(WHERE_NAMES(), 2);
-	delete[] _whereNames;
-	_whereNames = NULL;
 	file.syncString(AMOUNT());
 	file.syncString(FOOD_PACKS_FULL());
 	file.syncString(BUY_SPELLS());
@@ -226,8 +1015,6 @@ void LangConstants::writeConstants(Common::String num, CCArchive &cc) {
 	file.syncString(CLOUDS_GAME_TEXT());
 	file.syncString(SWORDS_GAME_TEXT());
 	file.syncStrings(WEEK_DAY_STRINGS(), 10);
-	delete[] _weekDayStrings;
-	_weekDayStrings = NULL;
 	file.syncString(CHARACTER_DETAILS());
 	file.syncStrings(DAYS(), 3);
 	file.syncString(PARTY_GOLD());
@@ -237,11 +1024,7 @@ void LangConstants::writeConstants(Common::String num, CCArchive &cc) {
 	file.syncString(CURRENT_MAXIMUM_RATING_TEXT());
 	file.syncString(CURRENT_MAXIMUM_TEXT());
 	file.syncStrings(RATING_TEXT(), 24);
-	delete[] _ratingText;
-	_ratingText = NULL;
 	file.syncStrings(BORN(), 2);
-	delete[] _born;
-	_born = NULL;
 	file.syncString(AGE_TEXT());
 	file.syncString(LEVEL_TEXT());
 	file.syncString(RESISTENCES_TEXT());
@@ -250,8 +1033,6 @@ void LangConstants::writeConstants(Common::String num, CCArchive &cc) {
 	file.syncString(ELIGIBLE());
 	file.syncString(IN_PARTY_IN_BANK());
 	file.syncStrings(FOOD_ON_HAND(), 3);
-	delete[] _onHand;
-	_onHand = NULL;
 	file.syncString(FOOD_TEXT());
 	file.syncString(EXCHANGE_WITH_WHOM());
 	file.syncString(QUICK_REF_LINE());
@@ -277,38 +1058,16 @@ void LangConstants::writeConstants(Common::String num, CCArchive &cc) {
 	file.syncString(ITEM_CURSED());
 	file.syncString(ITEM_OF());
 	file.syncStrings(BONUS_NAMES(), 7);
-	delete[] _bonusNames;
-	_bonusNames = NULL;
 	file.syncStrings(WEAPON_NAMES(), 41);
-	delete[] _weaponNames;
-	_weaponNames = NULL;
 	file.syncStrings(ARMOR_NAMES(), 14);
-	delete[] _armorNames;
-	_armorNames = NULL;
 	file.syncStrings(ACCESSORY_NAMES(), 11);
-	delete[] _accessoryNames;
-	_accessoryNames = NULL;
 	file.syncStrings(MISC_NAMES(), 22);
-	delete[] _miscNames;
-	_miscNames = NULL;
 	file.syncStrings(SPECIAL_NAMES(), 74);
-	delete[] _specialNames;
-	_specialNames = NULL;
 	file.syncStrings(ELEMENTAL_NAMES(), 6);
-	delete[] _elementalNames;
-	_elementalNames = NULL;
 	file.syncStrings(ATTRIBUTE_NAMES(), 10);
-	delete[] _attributeNames;
-	_attributeNames = NULL;
 	file.syncStrings(EFFECTIVENESS_NAMES(), 7);
-	delete[] _effectivenessNames;
-	_effectivenessNames = NULL;
 	file.syncStrings(QUEST_ITEM_NAMES(), 85);
-	delete[] _questItemNames;
-	_questItemNames = NULL;
 	file.syncStrings(QUEST_ITEM_NAMES_SWORDS(), 51);
-	delete[] _questItemNamesSwords;
-	_questItemNamesSwords = NULL;
 	file.syncNumbers((const int *)WEAPON_BASE_COSTS, 35);
 	file.syncNumbers((const int *)ARMOR_BASE_COSTS, 14);
 	file.syncNumbers((const int *)ACCESSORY_BASE_COSTS, 11);
@@ -321,8 +1080,6 @@ void LangConstants::writeConstants(Common::String num, CCArchive &cc) {
 	file.syncString(NOT_PROFICIENT());
 	file.syncString(NO_ITEMS_AVAILABLE());
 	file.syncStrings(CATEGORY_NAMES(), 4);
-	delete[] _categoryNames;
-	_categoryNames = NULL;
 	file.syncString(X_FOR_THE_Y());
 	file.syncString(X_FOR_Y());
 	file.syncString(X_FOR_Y_GOLD());
@@ -331,8 +1088,6 @@ void LangConstants::writeConstants(Common::String num, CCArchive &cc) {
 	file.syncString(CHARGES());
 	file.syncString(COST());
 	file.syncStrings(ITEM_ACTIONS(), 7);
-	delete[] _itemActions;
-	_itemActions = NULL;
 	file.syncString(WHICH_ITEM());
 	file.syncString(WHATS_YOUR_HURRY());
 	file.syncString(USE_ITEM_IN_COMBAT());
@@ -350,16 +1105,12 @@ void LangConstants::writeConstants(Common::String num, CCArchive &cc) {
 	file.syncString(BUY_X_FOR_Y_GOLD());
 	file.syncString(SELL_X_FOR_Y_GOLD());
 	file.syncStrings(GOLDS(), 2);
-	delete[] _sellXForYGoldEndings;
-	_sellXForYGoldEndings = NULL;
 	file.syncString(NO_NEED_OF_THIS());
 	file.syncString(NOT_RECHARGABLE());
 	file.syncString(SPELL_FAILED());
 	file.syncString(NOT_ENCHANTABLE());
 	file.syncString(ITEM_NOT_BROKEN());
 	file.syncStrings(FIX_IDENTIFY(), 2);
-	delete[] _fixIdentify;
-	_fixIdentify = NULL;
 	file.syncString(FIX_IDENTIFY_GOLD());
 	file.syncString(IDENTIFY_ITEM_MSG());
 	file.syncString(ITEM_DETAILS());
@@ -388,8 +1139,6 @@ void LangConstants::writeConstants(Common::String num, CCArchive &cc) {
 	file.syncString(CANT_DISMISS_LAST_CHAR());
 	file.syncString(DELETE_CHAR_WITH_ELDER_WEAPON());
 	file.syncStrings(REMOVE_DELETE(), 2);
-	delete[] _removeDelete;
-	_removeDelete = NULL;
 	file.syncString(REMOVE_OR_DELETE_WHICH());
 	file.syncString(YOUR_PARTY_IS_FULL());
 	file.syncString(HAS_SLAYER_SWORD());
@@ -413,16 +1162,12 @@ void LangConstants::writeConstants(Common::String num, CCArchive &cc) {
 	file.syncString(COMBAT_DETAILS());
 	file.syncString(NOT_ENOUGH_TO_CAST());
 	file.syncStrings(SPELL_CAST_COMPONENTS(), 2);
-	delete[] _spellCastComponents;
-	_spellCastComponents = NULL;
 	file.syncString(CAST_SPELL_DETAILS());
 	file.syncString(PARTY_FOUND());
 	file.syncString(BACKPACKS_FULL_PRESS_KEY());
 	file.syncString(HIT_A_KEY());
 	file.syncString(GIVE_TREASURE_FORMATTING());
 	file.syncStrings(FOUND(), 2);
-	delete[] _found;
-	_found = NULL;
 	file.syncString(X_FOUND_Y());
 	file.syncString(ON_WHO());
 	file.syncString(WHICH_ELEMENT1());
@@ -435,8 +1180,6 @@ void LangConstants::writeConstants(Common::String num, CCArchive &cc) {
 	file.syncNumbers2D((const int *)TOWN_MAP_NUMBERS, 3, 5);
 	file.syncString(MONSTER_DETAILS());
 	file.syncStrings(MONSTER_SPECIAL_ATTACKS(), 23);
-	delete[] _monsterSpecialAttacks;
-	_monsterSpecialAttacks = NULL;
 	file.syncString(IDENTIFY_MONSTERS());
 	file.syncStrings(EVENT_SAMPLES, 6);
 	file.syncString(MOONS_NOT_ALIGNED());
@@ -449,12 +1192,8 @@ void LangConstants::writeConstants(Common::String num, CCArchive &cc) {
 	file.syncString(WARZONE_HOW_MANY());
 	file.syncString(PICKS_THE_LOCK());
 	file.syncStrings(PICK_FORM(), 2);
-	delete[] _pickForm;
-	_pickForm = NULL;
 	file.syncString(UNABLE_TO_PICK_LOCK());
 	file.syncStrings(UNABLE_TO_PICK_FORM(), 2);
-	delete[] _unableToPickForm;
-	_unableToPickForm = NULL;
 	file.syncString(CONTROL_PANEL_TEXT());
 	file.syncString(CONTROL_PANEL_BUTTONS());
 	file.syncString(ON());
@@ -465,18 +1204,12 @@ void LangConstants::writeConstants(Common::String num, CCArchive &cc) {
 	file.syncString(NO_SAVING_IN_COMBAT());
 	file.syncString(QUICK_FIGHT_TEXT());
 	file.syncStrings(QUICK_FIGHT_OPTIONS(), 4);
-	delete[] _quickFightOptions;
-	_quickFightOptions = NULL;
 	file.syncStrings(WORLD_END_TEXT(), 9);
-	delete[] _worldEndText;
-	_worldEndText = NULL;
 	file.syncString(WORLD_CONGRATULATIONS());
 	file.syncString(WORLD_CONGRATULATIONS2());
 	file.syncString(CLOUDS_CONGRATULATIONS1());
 	file.syncString(CLOUDS_CONGRATULATIONS2());
 	file.syncStrings(GOOBER(), 3);
-	delete[] _goober;
-	_goober = NULL;
 	file.syncStrings(MUSIC_FILES1, 5);
 	file.syncStrings2D((const char *const *)MUSIC_FILES2, 6, 7);
 	file.syncString(DIFFICULTY_TEXT());
@@ -487,8 +1220,6 @@ void LangConstants::writeConstants(Common::String num, CCArchive &cc) {
 	file.syncString(PHAROAH_ENDING_TEXT1());
 	file.syncString(PHAROAH_ENDING_TEXT2());
 	file.syncStrings(MAE_NAMES(), 131);
-	delete[] _maeNames;
-	_maeNames = NULL;
 
 	cc.add("CONSTANTS" + num, file);
 
diff --git a/devtools/create_xeen/constants.h b/devtools/create_xeen/constants.h
index bd52b258a5..d8aa2db24b 100644
--- a/devtools/create_xeen/constants.h
+++ b/devtools/create_xeen/constants.h
@@ -107,59 +107,97 @@ enum MagicSpell {
 };
 
 class LangConstants {
-protected:
-	const char **_gameNames = NULL;
-	const char **_whoWillActions = NULL;
-	const char **_whoActions = NULL;
-	const char **_directionText = NULL;
-	const char **_directionTextUpper = NULL;
-	const char **_raceNames = NULL;
-	const char **_sexNames = NULL;
-	const char **_alignmentNames = NULL;
-	const char **_skillNames = NULL;
-	const char **_classNames = NULL;
-	const char **_conditionNamesM = NULL;
-	const char **_conditionNamesF = NULL;
-	const char **_depositWithdrawl = NULL;
-	const char **_statNames = NULL;
-	const char **_whereNames = NULL;
-	const char **_consumableNames = NULL;
-	const char **_consumableGoldForms = NULL;
-	const char **_consumableGemForms = NULL;
-	const char **_weekDayStrings = NULL;
-	const char **_ratingText = NULL;
-	const char **_bonusNames = NULL;
-	const char **_weaponNames = NULL;
-	const char **_armorNames = NULL;
-	const char **_accessoryNames = NULL;
-	const char **_miscNames = NULL;
-	const char **_elementalNames = NULL;
-	const char **_specialNames = NULL;
-	const char **_attributeNames = NULL;
-	const char **_effectivenessNames = NULL;
-	const char **_questItemNamesSwords = NULL;
-	const char **_questItemNames = NULL;
-	const char **_categoryNames = NULL;
-	const char **_itemActions = NULL;
-	const char **_categoryBackpackIsFull = NULL;
-	const char **_fixIdentify = NULL;
-	const char **_removeDelete = NULL;
-	const char **_spellCastComponents = NULL;
-	const char **_monsterSpecialAttacks = NULL;
-	const char **_pickForm = NULL;
-	const char **_unableToPickForm = NULL;
-	const char **_quickFightOptions = NULL;
-	const char **_goober = NULL;
-	const char **_worldEndText = NULL;
-	const char **_days = NULL;
-	const char **_sellXForYGoldEndings = NULL;
-	const char **_found = NULL;
-	const char **_born = NULL;
-	const char **_onHand = NULL;
-	const char **_maeNames = NULL;
-	const int   *_newCharSkillsOffset = NULL;
-
 public:
+	static const char *const TERRAIN_TYPES[6];
+	static const char *const OUTDOORS_WALL_TYPES[16];
+	static const char *const SURFACE_NAMES[16];
+	static const byte SYMBOLS[20][64];
+	static const byte TEXT_COLORS[40][4];
+	static const byte TEXT_COLORS_STARTUP[40][4];
+	static const int RACE_HP_BONUSES[5];
+	static const int RACE_SP_BONUSES[5][2];
+	static const int CLASS_EXP_LEVELS[10];
+	static const int CONDITION_COLORS[17];
+	static const int FACE_CONDITION_FRAMES[17];
+	static const int CHAR_FACES_X[6];
+	static const int HP_BARS_X[6];
+	static const byte DARKNESS_XLAT[3][256];
+	static const int SCREEN_POSITIONING_X[4][48];
+	static const int SCREEN_POSITIONING_Y[4][48];
+	static const int MONSTER_GRID_BITMASK[12];
+	static const int INDOOR_OBJECT_X[2][12];
+	static const int MAP_OBJECT_Y[2][12];
+	static const int INDOOR_MONSTERS_Y[4];
+	static const int OUTDOOR_OBJECT_X[2][12];
+	static const int OUTDOOR_MONSTER_INDEXES[26];
+	static const int OUTDOOR_MONSTERS_Y[26];
+	static const int DIRECTION_ANIM_POSITIONS[4][4];
+	static const byte WALL_SHIFTS[4][48];
+	static const int DRAW_NUMBERS[25];
+	static const int DRAW_FRAMES[25][2];
+	static const int COMBAT_FLOAT_X[8];
+	static const int COMBAT_FLOAT_Y[8];
+	static const int MONSTER_EFFECT_FLAGS[15][8];
+	static const int SPELLS_ALLOWED[3][40];
+	static const int BASE_HP_BY_CLASS[10];
+	static const int AGE_RANGES[10];
+	static const int AGE_RANGES_ADJUST[2][10];
+	static const int STAT_VALUES[24];
+	static const int STAT_BONUSES[24];
+	static const int ELEMENTAL_CATEGORIES[6];
+	static const int ATTRIBUTE_CATEGORIES[10];
+	static const int ATTRIBUTE_BONUSES[72];
+	static const int ELEMENTAL_RESISTENCES[37];
+	static const int ELEMENTAL_DAMAGE[37];
+	static const int WEAPON_DAMAGE_BASE[35];
+	static const int WEAPON_DAMAGE_MULTIPLIER[35];
+	static const int METAL_DAMAGE[22];
+	static const int METAL_DAMAGE_PERCENT[22];
+	static const int METAL_LAC[22];
+	static const int ARMOR_STRENGTHS[14];
+	static const int MAKE_ITEM_ARR1[6];
+	static const int MAKE_ITEM_ARR2[6][7][2];
+	static const int MAKE_ITEM_ARR3[10][7][2];
+	static const int MAKE_ITEM_ARR4[2][7][2];
+	static const int MAKE_ITEM_ARR5[8][2];
+	static const int OUTDOOR_DRAWSTRUCT_INDEXES[44];
+	static const int TOWN_MAXES[2][11];
+	static const char *const TOWN_ACTION_MUSIC[2][7];
+	static const char *const TOWN_ACTION_SHAPES[7];
+	static const int TOWN_ACTION_FILES[2][7];
+	static const int TAVERN_EXIT_LIST[2][6][5][2];
+	static const int MISC_SPELL_INDEX[74];
+	static const int SPELL_COSTS[77];
+	static const int DARK_SPELL_RANGES[12][2];
+	static const int SWORDS_SPELL_RANGES[12][2];
+	static const int CLOUDS_GUILD_SPELLS[5][20];
+	static const int DARK_SPELL_OFFSETS[3][39];
+	static const int SPELL_GEM_COST[77];
+	static const int BLACKSMITH_MAP_IDS[2][4];
+	static const int WEAPON_BASE_COSTS[35];
+	static const int ARMOR_BASE_COSTS[14];
+	static const int ACCESSORY_BASE_COSTS[11];
+	static const int MISC_MATERIAL_COSTS[22];
+	static const int MISC_BASE_COSTS[76];
+	static const int METAL_BASE_MULTIPLIERS[22];
+	static const int ITEM_SKILL_DIVISORS[4];
+	static const int RESTRICTION_OFFSETS[4];
+	static const int ITEM_RESTRICTIONS[86];
+	static const int NEW_CHAR_SKILLS[10];
+	static const int NEW_CHAR_SKILLS_LEN[10];
+	static const int NEW_CHAR_RACE_SKILLS[10];
+	static const int RACE_MAGIC_RESISTENCES[5];
+	static const int RACE_FIRE_RESISTENCES[5];
+	static const int RACE_ELECTRIC_RESISTENCES[5];
+	static const int RACE_COLD_RESISTENCES[5];
+	static const int RACE_ENERGY_RESISTENCES[5];
+	static const int RACE_POISON_RESISTENCES[5];
+	static const int NEW_CHARACTER_SPELLS[10][4];
+	static const int TOWN_MAP_NUMBERS[3][5];
+	static const char *const EVENT_SAMPLES[6];
+	static const char *const MUSIC_FILES1[5];
+	static const char *const MUSIC_FILES2[6][7];
+
 	virtual ~LangConstants() {}
 	virtual const char  *CLOUDS_CREDITS() = 0;
 	virtual const char  *DARK_SIDE_CREDITS() = 0;
@@ -174,262 +212,17 @@ public:
 	virtual const char  *PASSWORD_INCORRECT() = 0;
 	virtual const char  *IN_NO_CONDITION() = 0;
 	virtual const char  *NOTHING_HERE() = 0;
-
-	const char *const TERRAIN_TYPES[6] = {
-		"town", "cave", "towr", "cstl", "dung", "scfi"
-	};
-
-	const char *const OUTDOORS_WALL_TYPES[16] = {
-		nullptr, "mount", "ltree", "dtree", "grass", "snotree", "dsnotree",
-		"snomnt", "dedltree", "mount", "lavamnt", "palm", "dmount", "dedltree",
-		"dedltree", "dedltree"
-	};
-
-	const char *const SURFACE_NAMES[16] = {
-		"water.srf", "dirt.srf", "grass.srf", "snow.srf", "swamp.srf",
-		"lava.srf", "desert.srf", "road.srf", "dwater.srf", "tflr.srf",
-		"sky.srf", "croad.srf", "sewer.srf", "cloud.srf", "scortch.srf",
-		"space.srf"
-	};
-
 	virtual const char **WHO_ACTIONS() = 0;
 	virtual const char **WHO_WILL_ACTIONS() = 0;
-
-	const byte SYMBOLS[20][64] = {
-		{ // 0
-			0x00, 0x00, 0xA8, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0x00, 0xA8, 0x9E, 0x9C, 0x9C, 0x9E, 0x9E, 0x9E,
-			0xAC, 0x9C, 0xA4, 0xAC, 0xAC, 0x9A, 0x9A, 0x9A, 0xAC, 0x9E, 0xAC, 0xA8, 0xA8, 0xA6, 0x97, 0x98,
-			0xAC, 0xA0, 0xAC, 0xAC, 0xA4, 0xA6, 0x98, 0x99, 0x00, 0xAC, 0xA0, 0xA0, 0xA8, 0xAC, 0x9A, 0x9A,
-			0x00, 0x00, 0xAC, 0xAC, 0xAC, 0xA4, 0x9B, 0x9A, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xA0, 0x9B, 0x9B,
-		},
-		{ // 1
-			0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
-			0x99, 0x9A, 0x9A, 0x99, 0x99, 0x99, 0x9A, 0x99, 0x98, 0x98, 0x98, 0x97, 0x97, 0x97, 0x97, 0x97,
-			0x99, 0x98, 0x98, 0x99, 0x98, 0x98, 0x99, 0x99, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
-			0x9A, 0x9B, 0x9B, 0x9C, 0x9B, 0x9A, 0x9C, 0x9A, 0x9B, 0x9A, 0x99, 0x99, 0x99, 0x9A, 0x9A, 0x9B,
-		},
-		{ // 2
-			0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
-			0x99, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x99, 0x98, 0x98, 0x99, 0x98, 0x98, 0x97, 0x98, 0x98,
-			0x99, 0x98, 0x98, 0x98, 0x99, 0x99, 0x98, 0x99, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
-			0x9B, 0x9B, 0x9C, 0x9C, 0x9B, 0x9B, 0x9B, 0x9B, 0x99, 0x9A, 0x9B, 0x9B, 0x9A, 0x9A, 0x99, 0x9A,
-		},
-		{ // 3
-			0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
-			0x99, 0x9A, 0x9A, 0x9A, 0x99, 0x99, 0x99, 0x9A, 0x98, 0x98, 0x97, 0x97, 0x98, 0x98, 0x98, 0x98,
-			0x99, 0x99, 0x98, 0x99, 0x98, 0x98, 0x99, 0x99, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
-			0x9B, 0x9C, 0x9B, 0x9B, 0x9C, 0x9C, 0x9C, 0x9C, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x99, 0x99, 0x9A,
-		},
-		{ // 4
-			0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E,
-			0x9A, 0x9A, 0x9A, 0x99, 0x99, 0x99, 0x99, 0x9A, 0x97, 0x97, 0x97, 0x97, 0x97, 0x98, 0x98, 0x98,
-			0x99, 0x99, 0x98, 0x99, 0x99, 0x98, 0x98, 0x98, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
-			0x9A, 0x9C, 0x9B, 0x9B, 0x9C, 0x9B, 0x9B, 0x9B, 0x9A, 0x99, 0x9B, 0x9B, 0x9A, 0x99, 0x9A, 0x9A,
-		},
-		{ // 5
-			0xA4, 0xA4, 0xA8, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x9E, 0x9E, 0xA0, 0xA8, 0xAC, 0x00, 0x00,
-			0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9E, 0xAC, 0x00, 0x97, 0x97, 0x97, 0x98, 0x9C, 0x9C, 0xA0, 0xAC,
-			0x99, 0x98, 0x99, 0x99, 0x99, 0x9B, 0xA0, 0xAC, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9B, 0xA0, 0xAC,
-			0x9C, 0x9B, 0x9C, 0x9C, 0x9C, 0xA0, 0xAC, 0x00, 0x99, 0x9A, 0x9A, 0x9B, 0x9B, 0xA4, 0xAC, 0x00,
-		},
-		{ // 6
-			0x00, 0x00, 0x00, 0xAC, 0xA4, 0x9C, 0x99, 0x99, 0x00, 0x00, 0x00, 0xAC, 0xA0, 0x9C, 0x9B, 0x99,
-			0x00, 0x00, 0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x99, 0x00, 0xAC, 0xA0, 0x9C, 0x99, 0x98, 0x99, 0x99,
-			0x00, 0xAC, 0xA0, 0x9C, 0x9C, 0xA0, 0x9C, 0x9A, 0x00, 0x00, 0xAC, 0xA4, 0xA0, 0x99, 0x99, 0x99,
-			0x00, 0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x00, 0xAC, 0xA4, 0x9C, 0x99, 0x99, 0x99, 0x99,
-		},
-		{ // 7
-			0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x99, 0xAC, 0xA4, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x99,
-			0x00, 0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x00, 0x00, 0xAC, 0xA4, 0x9C, 0x9C, 0x99, 0x99,
-			0x00, 0x00, 0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x99, 0x00, 0x00, 0x00, 0xAC, 0xA4, 0x9C, 0x99, 0x99,
-			0x00, 0x00, 0xAC, 0xA0, 0x9B, 0xA0, 0x9E, 0x9C, 0x00, 0xAC, 0xA4, 0x9C, 0x99, 0x9C, 0x99, 0x99,
-		},
-		{ // 8
-			0x00, 0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x9B, 0x99, 0xAC, 0xA4, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x99,
-			0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x99, 0xAC, 0xA4, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x99,
-			0x00, 0xAC, 0xA4, 0x9C, 0x99, 0x99, 0x99, 0x99, 0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x99,
-			0x00, 0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x9C, 0x99, 0x00, 0xAC, 0xA4, 0x9C, 0x99, 0x9E, 0x9C, 0x99,
-		},
-		{ // 9
-			0x00, 0x00, 0xAC, 0xA4, 0xA0, 0x9C, 0x99, 0x99, 0x00, 0xAC, 0xA0, 0x9C, 0x9C, 0xA0, 0x9C, 0x9A,
-			0xAC, 0xA4, 0x9C, 0x9A, 0x99, 0x99, 0x99, 0x99, 0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x99,
-			0xAC, 0xA4, 0x9C, 0x99, 0x99, 0x99, 0x99, 0x99, 0x00, 0xAC, 0xA0, 0x9C, 0x99, 0x99, 0x99, 0x99,
-			0x00, 0xAC, 0xA4, 0x9C, 0x9A, 0x9C, 0x99, 0x99, 0x00, 0x00, 0xAC, 0xA0, 0x9C, 0x9A, 0x99, 0x99,
-		},
-		{ // 10
-			0x99, 0x99, 0x99, 0x9A, 0xA0, 0xAC, 0x00, 0x00, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC, 0x00, 0x00,
-			0x99, 0x99, 0x9C, 0x9E, 0xA4, 0xAC, 0x00, 0x00, 0x99, 0x99, 0x9C, 0x99, 0x9C, 0xA4, 0xAC, 0x00,
-			0x99, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC, 0x00, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC, 0x00, 0x00,
-			0x99, 0x99, 0x99, 0xA0, 0xA4, 0xAC, 0x00, 0x00, 0x9A, 0x9B, 0x9E, 0x9C, 0x9C, 0xA4, 0xAC, 0x00,
-		},
-		{ // 11
-			0x99, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC, 0x00, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9C, 0x9E, 0xAC,
-			0x99, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC, 0x00, 0x99, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC, 0x00,
-			0x99, 0x99, 0x99, 0x99, 0x99, 0x9C, 0xA4, 0xAC, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC,
-			0x9C, 0x99, 0x99, 0x99, 0x9C, 0x9C, 0xA4, 0xAC, 0x99, 0x9E, 0x9E, 0x9C, 0x9C, 0xA0, 0xAC, 0x00,
-		},
-		{ // 12
-			0x99, 0x99, 0x9C, 0xA0, 0xA4, 0xAC, 0x00, 0x00, 0x9B, 0x9C, 0x9E, 0x9C, 0x9C, 0xA4, 0xAC, 0x00,
-			0x99, 0x99, 0x99, 0x99, 0x99, 0xA0, 0xAC, 0x00, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC,
-			0x99, 0x99, 0x99, 0x99, 0x9C, 0x9C, 0xA4, 0xAC, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xA4, 0xAC, 0x00,
-			0x99, 0x99, 0x9C, 0x99, 0x99, 0x9C, 0xA0, 0xAC, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC,
-		},
-		{ // 13
-			0x99, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC, 0x00, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC, 0x00, 0x00,
-			0x99, 0x9B, 0x9C, 0xA0, 0xA4, 0xAC, 0x00, 0x00, 0x99, 0x99, 0x9A, 0x99, 0x9C, 0xA0, 0xAC, 0x00,
-			0x99, 0x99, 0x99, 0x99, 0x99, 0x9C, 0xA4, 0xAC, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9C, 0xA0, 0xAC,
-			0x99, 0x99, 0x99, 0x99, 0x9A, 0x9C, 0xA4, 0xAC, 0x99, 0x99, 0x99, 0x9A, 0x9C, 0xA4, 0xAC, 0x00,
-		},
-		{ // 14
-			0x00, 0x00, 0xAC, 0x9E, 0x9C, 0x9C, 0x9C, 0x9B, 0x00, 0xAC, 0x9C, 0xA0, 0x9E, 0xA4, 0xA4, 0xA4,
-			0xAC, 0x9C, 0xA4, 0xAC, 0xAC, 0xAC, 0x9C, 0x9E, 0xAC, 0xA0, 0xAC, 0xA8, 0x9E, 0xA8, 0xAC, 0x99,
-			0xAC, 0x9E, 0xAC, 0xA8, 0xAC, 0x9E, 0xA4, 0xAC, 0xAC, 0xA4, 0xA0, 0xAC, 0xAC, 0xA0, 0xA4, 0xAC,
-			0x00, 0xAC, 0xA4, 0xA0, 0xA0, 0xA4, 0xAC, 0xA4, 0x00, 0x00, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
-		},
-		{ // 15
-			0x9C, 0x9C, 0x9C, 0x9B, 0x9C, 0x9C, 0x9C, 0x9B, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
-			0x9E, 0x9E, 0x9E, 0x9C, 0x9E, 0x9E, 0x9E, 0x9E, 0x99, 0x99, 0x99, 0x99, 0x99, 0x98, 0x99, 0x98,
-			0x9C, 0x9C, 0x9B, 0x9B, 0x9B, 0x9C, 0x9C, 0x9C, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0x9E, 0x9E, 0xA0,
-			0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
-		},
-		{ // 16
-			0x9B, 0x9B, 0x9B, 0x9B, 0x9C, 0x9B, 0x9C, 0x9C, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
-			0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9E, 0x98, 0x98, 0x98, 0x98, 0x99, 0x99, 0x99, 0x99,
-			0x9C, 0x9B, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0xA0, 0xA0, 0xA0, 0x9E, 0xA0, 0x9E, 0x9E, 0xA0,
-			0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
-		},
-		{ // 17
-			0x9C, 0x9C, 0x9C, 0x9B, 0x9B, 0x9B, 0x9C, 0x9B, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
-			0x9E, 0x9E, 0x9E, 0x9C, 0x9C, 0x9C, 0x9E, 0x9E, 0x98, 0x98, 0x98, 0x99, 0x9A, 0x9A, 0x99, 0x98,
-			0x9C, 0x9B, 0x9C, 0x9C, 0x9C, 0x9B, 0x9B, 0x9C, 0xA0, 0x9E, 0x9E, 0xA0, 0xA0, 0xA0, 0xA0, 0x9E,
-			0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
-		},
-		{ // 18
-			0x9B, 0x9B, 0x9C, 0x9C, 0x9C, 0x9B, 0x9B, 0x9B, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
-			0x9E, 0x9E, 0x9E, 0x9E, 0x9C, 0x9C, 0x9C, 0x9E, 0x98, 0x98, 0x98, 0x98, 0x9A, 0x9A, 0x98, 0x99,
-			0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9B, 0x9C, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0xA0, 0xA0, 0xA0,
-			0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC,
-		},
-		{ // 19
-			0x9C, 0x9B, 0x9C, 0x9C, 0xA0, 0xA4, 0xAC, 0x00, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xAC, 0x00, 0x00,
-			0x9E, 0x9E, 0x9C, 0x9C, 0x9E, 0xA0, 0xAC, 0x00, 0x99, 0x98, 0x98, 0x99, 0x9A, 0x9A, 0xA0, 0xAC,
-			0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0xA0, 0xAC, 0xA0, 0xA0, 0x9E, 0xA0, 0xA0, 0xA0, 0xA0, 0xAC,
-			0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xAC, 0x00, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0x00, 0x00,
-		}
-	};
-
-	const byte TEXT_COLORS[40][4] = {
-		{0x00, 0x19, 0x19, 0x19},
-		{0x00, 0x08, 0x08, 0x08},
-		{0x00, 0x0F, 0x0F, 0x0F},
-		{0x00, 0x15, 0x15, 0x15},
-		{0x00, 0x01, 0x01, 0x01},
-		{0x00, 0x21, 0x21, 0x21},
-		{0x00, 0x26, 0x26, 0x26},
-		{0x00, 0x2B, 0x2B, 0x2B},
-		{0x00, 0x31, 0x31, 0x31},
-		{0x00, 0x36, 0x36, 0x36},
-		{0x00, 0x3D, 0x3D, 0x3D},
-		{0x00, 0x41, 0x41, 0x41},
-		{0x00, 0x46, 0x46, 0x46},
-		{0x00, 0x4C, 0x4C, 0x4C},
-		{0x00, 0x50, 0x50, 0x50},
-		{0x00, 0x55, 0x55, 0x55},
-		{0x00, 0x5D, 0x5D, 0x5D},
-		{0x00, 0x60, 0x60, 0x60},
-		{0x00, 0x65, 0x65, 0x65},
-		{0x00, 0x6C, 0x6C, 0x6C},
-		{0x00, 0x70, 0x70, 0x70},
-		{0x00, 0x75, 0x75, 0x75},
-		{0x00, 0x7B, 0x7B, 0x7B},
-		{0x00, 0x80, 0x80, 0x80},
-		{0x00, 0x85, 0x85, 0x85},
-		{0x00, 0x8D, 0x8D, 0x8D},
-		{0x00, 0x90, 0x90, 0x90},
-		{0x00, 0x97, 0x97, 0x97},
-		{0x00, 0x9D, 0x9D, 0x9D},
-		{0x00, 0xA4, 0xA4, 0xA4},
-		{0x00, 0xAB, 0xAB, 0xAB},
-		{0x00, 0xB0, 0xB0, 0xB0},
-		{0x00, 0xB6, 0xB6, 0xB6},
-		{0x00, 0xBD, 0xBD, 0xBD},
-		{0x00, 0xC0, 0xC0, 0xC0},
-		{0x00, 0xC6, 0xC6, 0xC6},
-		{0x00, 0xCD, 0xCD, 0xCD},
-		{0x00, 0xD0, 0xD0, 0xD0},
-		{0x00, 0xD6, 0xD6, 0xD6},
-		{0x00, 0xDB, 0xDB, 0xDB},
-	};
-
-	const byte TEXT_COLORS_STARTUP[40][4] = {
-		{0x00, 0x19, 0x19, 0x19},
-		{0x00, 0x08, 0x08, 0x08},
-		{0x00, 0x0F, 0x0F, 0x0F},
-		{0x00, 0x15, 0x15, 0x15},
-		{0x00, 0x01, 0x01, 0x01},
-		{0x00, 0x1F, 0x1F, 0x1F},
-		{0x00, 0x26, 0x26, 0x26},
-		{0x00, 0x2B, 0x2B, 0x2B},
-		{0x00, 0x31, 0x31, 0x31},
-		{0x00, 0x36, 0x36, 0x36},
-		{0x00, 0x3D, 0x3D, 0x3D},
-		{0x00, 0x42, 0x42, 0x42},
-		{0x00, 0x46, 0x46, 0x46},
-		{0x00, 0x4C, 0x4C, 0x4C},
-		{0x00, 0x50, 0x50, 0x50},
-		{0x00, 0x55, 0x55, 0x55},
-		{0x00, 0x5D, 0x5D, 0x5D},
-		{0x00, 0x60, 0x60, 0x60},
-		{0x00, 0x65, 0x65, 0x65},
-		{0x00, 0x6C, 0x6C, 0x6C},
-		{0x00, 0x70, 0x70, 0x70},
-		{0x00, 0x75, 0x75, 0x75},
-		{0x00, 0x7B, 0x7B, 0x7B},
-		{0x00, 0x80, 0x80, 0x80},
-		{0x00, 0x85, 0x85, 0x85},
-		{0x00, 0x8D, 0x8D, 0x8D},
-		{0x00, 0x90, 0x90, 0x90},
-		{0x00, 0x97, 0x97, 0x97},
-		{0x00, 0x9D, 0x9D, 0x9D},
-		{0x00, 0xA4, 0xA4, 0xA4},
-		{0x00, 0xAB, 0xAB, 0xAB},
-		{0x00, 0xB0, 0xB0, 0xB0},
-		{0x00, 0xB6, 0xB6, 0xB6},
-		{0x00, 0xBD, 0xBD, 0xBD},
-		{0x00, 0xC0, 0xC0, 0xC0},
-		{0x00, 0xC6, 0xC6, 0xC6},
-		{0x00, 0xCD, 0xCD, 0xCD},
-		{0x00, 0xD0, 0xD0, 0xD0},
-		{0x00, 0x19, 0x19, 0x19},
-		{0x00, 0x31, 0x31, 0x31}
-	};
-
 	virtual const char **DIRECTION_TEXT_UPPER() = 0;
 	virtual const char **DIRECTION_TEXT() = 0;
 	virtual const char **RACE_NAMES() = 0;
-
-	const int RACE_HP_BONUSES[5] = {0, -2, 1, -1, 2};
-
-	const int RACE_SP_BONUSES[5][2] = {
-		{0, 0}, {2, 0}, {-1, -1}, {1, 1}, {-2, -2}
-	};
-
 	virtual const char **ALIGNMENT_NAMES() = 0;
 	virtual const char **SEX_NAMES() = 0;
 	virtual const char **SKILL_NAMES() = 0;
 	virtual const char **CLASS_NAMES() = 0;
-
-	const int CLASS_EXP_LEVELS[10] = {
-		1500, 2000, 2000, 1500, 2000, 1000, 1500, 1500, 1500, 2000
-	};
-
 	virtual const char **CONDITION_NAMES_M() = 0;
 	virtual const char **CONDITION_NAMES_F() = 0;
-
-	const int CONDITION_COLORS[17] = {
-		9, 9, 9, 9, 9, 9, 9, 9, 32, 32, 32, 32, 6, 6, 6, 6, 15
-	};
-
 	virtual const char *GOOD() = 0;
 	virtual const char *BLESSED() = 0;
 	virtual const char *POWER_SHIELD() = 0;
@@ -438,378 +231,10 @@ public:
 	virtual const char *IN_PARTY() = 0;
 	virtual const char *PARTY_DETAILS() = 0;
 	virtual const char *PARTY_DIALOG_TEXT() = 0;
-
-	const int FACE_CONDITION_FRAMES[17] = {
-		2, 2, 2, 1, 1, 4, 4, 4, 3, 2, 4, 3, 3, 5, 6, 7, 0
-	};
-
-	const int CHAR_FACES_X[6] = {10, 45, 81, 117, 153, 189};
-
-	const int HP_BARS_X[6] = {13, 50, 86, 122, 158, 194};
-
 	virtual const char *NO_ONE_TO_ADVENTURE_WITH() = 0;
 	virtual const char *YOUR_ROSTER_IS_FULL() = 0;
-
-	const byte DARKNESS_XLAT[3][256] = {
-		{
-		0, 25, 26, 27, 28, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0,
-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		44, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		60, 61, 62, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		76, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		92, 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		108, 109, 110, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		140, 141, 142, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		168, 169, 170, 171, 172, 173, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0,
-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		188, 189, 190, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		204, 205, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		220, 221, 222, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		236, 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		252, 253, 254, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-		}, {
-		0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		40, 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
-		56, 57, 58, 59, 60, 61, 62, 63, 0, 0, 0, 0, 0, 0, 0, 0,
-		72, 73, 74, 75, 76, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0,
-		88, 89, 90, 91, 92, 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0,
-		104, 105, 106, 107, 108, 109, 110, 111, 0, 0, 0, 0, 0, 0, 0, 0,
-		120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0,
-		136, 137, 138, 139, 140, 141, 142, 143, 0, 0, 0, 0, 0, 0, 0, 0,
-		160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		184, 185, 186, 187, 188, 189, 190, 191, 0, 0, 0, 0, 0, 0, 0, 0,
-		200, 201, 202, 203, 204, 205, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0,
-		216, 217, 218, 219, 220, 221, 222, 223, 0, 0, 0, 0, 0, 0, 0, 0,
-		232, 233, 234, 235, 236, 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, 0,
-		248, 249, 250, 251, 252, 253, 254, 255, 0, 0, 0, 0, 0, 0, 0, 0
-		}, {
-		0, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
-		24, 25, 26, 27, 28, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0,
-		36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, 0,
-		52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 0, 0, 0, 0,
-		68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 0, 0, 0, 0,
-		84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 0, 0, 0, 0,
-		100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 0, 0, 0, 0,
-		116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 0, 0, 0,
-		132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 0, 0, 0, 0,
-		152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
-		168, 169, 170, 171, 172, 173, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0,
-		180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 0, 0, 0, 0,
-		196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 0, 0, 0, 0,
-		212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 0, 0, 0, 0,
-		228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 0, 0, 0, 0,
-		244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 0, 0, 0
-		}
-	};
-
 	virtual const char *PLEASE_WAIT() = 0;
 	virtual const char *OOPS() = 0;
-
-	const int SCREEN_POSITIONING_X[4][48] = {
-		{
-		-1,  0,  0,  0,  1, -1,  0,  0,  0,  1, -2, -1,
-		-1,  0,  0,  0,  1,  1,  2, -4, -3, -3, -2, -2,
-		-1, -1,  0,  0,  0,  1,  1,  2,  2,  3,  3,  4,
-		-3, -2, -1,  0,  0,  1,  2,  3, -4,  4,  0,  0
-		}, {
-		 0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  2,  2,
-		 2,  2,  2,  2,  2,  2,  2,  3,  3,  3,  3,  3,
-		 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
-		 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  0,  1
-		}, {
-		 1,  0,  0,  0, -1,  1,  0,  0,  0, -1,  2,  1,
-		 1,  0,  0,  0, -1, -1, -2,  4,  3,  3,  2,  2,
-		 1,  1,  0,  0,  0, -1, -1, -2, -2, -3, -3, -4,
-		 3,  2,  1,  0,  0, -1, -2, -3,  4, -4,  0,  0
-		}, {
-		 0,  0,  0,  0,  0, -1, -1, -1, -1, -1, -2, -2,
-		-2, -2, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3,
-		-3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3,
-		-4, -4, -4, -4, -4, -4, -4, -4, -4, -4,  0, -1
-		}
-	};
-
-	const int SCREEN_POSITIONING_Y[4][48] = {
-		{
-		 0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  2,  2,
-		 2,  2,  2,  2,  2,  2,  2,  3,  3,  3,  3,  3,
-		 3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
-		 4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  0,  1
-		}, {
-		 1,  0,  0,  0, -1,  1,  0,  0,  0, -1,  2,  1,
-		 1,  0,  0,  0, -1, -1, -2,  4,  3,  3,  2,  2,
-		 1,  1,  0,  0,  0, -1, -1, -2, -2, -3, -3, -4,
-		 3,  2,  1,  0,  0, -1, -2, -3,  4, -4,  0,  0
-		}, {
-		 0,  0,  0,  0,  0, -1, -1, -1, -1, -1, -2, -2,
-		-2, -2, -2, -2, -2, -2, -2, -3, -3, -3, -3, -3,
-		-3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3,
-		-4, -4, -4, -4, -4, -4, -4, -4, -4, -4,  0, -1
-		}, {
-		-1,  0,  0,  0,  1, -1,  0,  0,  0,  1, -2, -1,
-		-1,  0,  0,  0,  1,  1,  2, -4, -3, -3, -2, -2,
-		-1, -1,  0,  0,  0,  1,  1,  2,  2,  3,  3,  4,
-		-3, -2, -1,  0,  0,  1,  2,  3, -4,  4,  0,  0
-		}
-	};
-
-	const int MONSTER_GRID_BITMASK[12] = {
-		0xC, 8, 4, 0, 0xF, 0xF000, 0xF00, 0xF0, 0xF00, 0xF0, 0x0F, 0xF000
-	};
-
-	const int INDOOR_OBJECT_X[2][12] = {
-		{ -5, -7, -112, 98, -8, -65, 49, -9, -34, 16, -58, 40 },
-		{ -35, -35, -142, 68, -35, -95, 19, -35, -62, -14, -98, 16 }
-	};
-
-	const int MAP_OBJECT_Y[2][12] = {
-		{ 2, 25, 25, 25, 50, 50, 50, 58, 58, 58, 58, 58 },
-		{ -65, -6, -6, -6, 36, 36, 36, 54, 54, 54, 54, 54 }
-	};
-
-	const int INDOOR_MONSTERS_Y[4] = { 2, 34, 53, 59 };
-
-	const int OUTDOOR_OBJECT_X[2][12] = {
-		{ -5, -7, -112, 98, -8, -77, 61, -9, -43, 25, -74, 56 },
-		{ -35, -35, -142, 68, -35, -95, 19, -35, -62, -24, -98, 16 }
-	};
-
-	const int OUTDOOR_MONSTER_INDEXES[26] = {
-		42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 69, 70,
-		71, 72, 73, 74, 75, 90, 91, 92, 93, 94, 112, 115, 118
-	};
-
-	const int OUTDOOR_MONSTERS_Y[26] = {
-		59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 53, 53,
-		53, 53, 53, 53, 53, 34, 34, 34, 34, 34, 2, 2, 2
-	};
-
-	const int DIRECTION_ANIM_POSITIONS[4][4] = {
-		{ 0, 1, 2, 3 }, { 3, 0, 1, 2 }, { 2, 3, 0, 1 }, { 1, 2, 3, 0 }
-	};
-
-	const byte WALL_SHIFTS[4][48] = {
-		{
-			12, 0, 12, 8, 12, 12, 0, 12, 8, 12, 12, 0,
-			12, 0, 12, 8, 12, 8, 12, 12, 0, 12, 0, 12,
-			0, 12, 0, 12, 8, 12, 8, 12, 8, 12, 8, 12,
-			0, 0, 0, 0, 8, 8, 8, 8, 0, 0, 4, 4
-		}, {
-			8, 12, 8, 4, 8, 8, 12, 8, 4, 8, 8, 12,
-			8, 12, 8, 4, 8, 4, 8, 8, 12, 8, 12, 8,
-			12, 8, 12, 8, 4, 8, 4, 8, 4, 8, 4, 8,
-			12, 12, 12, 12, 4, 4, 4, 4, 0, 0, 0, 0
-		}, {
-			4, 8, 4, 0, 4, 4, 8, 4, 0, 4, 4, 8,
-			4, 8, 4, 0, 4, 0, 4, 4, 8, 4, 8, 4,
-			8, 4, 8, 4, 0, 4, 0, 4, 0, 4, 0, 4,
-			8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 12, 12
-		}, {
-			0, 4, 0, 12, 0, 0, 4, 0, 12, 0, 0, 4,
-			0, 4, 0, 12, 0, 12, 0, 0, 4, 0, 4, 0,
-			4, 0, 4, 0, 12, 0, 12, 0, 12, 0, 12, 0,
-			4, 4, 4, 4, 12, 12, 12, 12, 0, 0, 8, 8
-		}
-	};
-
-	const int DRAW_NUMBERS[25] = {
-		36, 37, 38, 43, 42, 41,
-		39, 20, 22, 24, 33, 31,
-		29, 26, 10, 11, 18, 16,
-		13, 5, 9, 6, 0, 4, 1
-	};
-
-	const int DRAW_FRAMES[25][2] = {
-		{ 18, 24 }, { 19, 23 }, { 20, 22 }, { 24, 18 }, { 23, 19 }, { 22, 20 },
-		{ 21, 21 }, { 11, 17 }, { 12, 16 }, { 13, 15 }, { 17, 11 }, { 16, 12 },
-		{ 15, 13 }, { 14, 14 }, { 6, 10 }, { 7, 9 }, { 10, 6 }, { 9, 7 },
-		{ 8, 8 }, { 3, 5 }, { 5, 3 }, { 4, 4 }, { 0, 2 }, { 2, 0 },
-		{ 1, 1 }
-	};
-
-	const int COMBAT_FLOAT_X[8] = { -2, -1, 0, 1, 2, 1, 0, -1 };
-
-	const int COMBAT_FLOAT_Y[8] = { -2, 0, 2, 0, -1, 0, 2, 0 };
-
-	const int MONSTER_EFFECT_FLAGS[15][8] = {
-		{ 0x104, 0x105, 0x106, 0x107, 0x108, 0x109, 0x10A, 0x10B },
-		{ 0x10C, 0x10D, 0x10E, 0x10F, 0x0, 0x0, 0x0, 0x0 },
-		{ 0x110, 0x111, 0x112, 0x113, 0x0, 0x0, 0x0, 0x0 },
-		{ 0x114, 0x115, 0x116, 0x117, 0x0, 0x0, 0x0, 0x0 },
-		{ 0x200, 0x201, 0x202, 0x203, 0x0, 0x0, 0x0, 0x0 },
-		{ 0x300, 0x301, 0x302, 0x303, 0x400, 0x401, 0x402, 0x403 },
-		{ 0x500, 0x501, 0x502, 0x503, 0x0, 0x0, 0x0, 0x0 },
-		{ 0x600, 0x601, 0x602, 0x603, 0x0, 0x0, 0x0, 0x0 },
-		{ 0x604, 0x605, 0x606, 0x607, 0x608, 0x609, 0x60A, 0x60B },
-		{ 0x60C, 0x60D, 0x60E, 0x60F, 0x0, 0x0, 0x0, 0x0 },
-		{ 0x100, 0x100, 0x100, 0x100, 0x100, 0x100, 0x100, 0x100 },
-		{ 0x101, 0x101, 0x101, 0x101, 0x101, 0x101, 0x101, 0x101 },
-		{ 0x102, 0x102, 0x102, 0x102, 0x102, 0x102, 0x102, 0x102 },
-		{ 0x103, 0x103, 0x103, 0x103, 0x103, 0x103, 0x103, 0x103 },
-		{ 0x108, 0x108, 0x108, 0x108, 0x108, 0x108, 0x108, 0x108 }
-	};
-
-	const int SPELLS_ALLOWED[3][40] = {
-		{
-			0, 1, 2, 3, 5, 6, 7, 8, 9, 10,
-			12, 14, 16, 23, 26, 27, 28, 30, 31, 32,
-			33, 42, 46, 48, 49, 50, 52, 55, 56, 58,
-			59, 62, 64, 65, 67, 68, 71, 73, 74, 76
-		}, {
-			1, 4, 11, 13, 15, 17, 18, 19, 20, 21,
-			22, 24, 25, 29, 34, 35, 36, 37, 38, 39,
-			40, 41, 42, 43, 44, 45, 47, 51, 53, 54,
-			57, 60, 61, 63, 66, 69, 70, 72, 75, 76
-		}, {
-			0, 1, 2, 3, 4, 5, 7, 9, 10, 20,
-			25, 26, 27, 28, 30, 31, 34, 38, 40, 41,
-			42, 43, 44, 45, 49, 50, 52, 53, 55, 59,
-			60, 61, 62, 67, 68, 72, 73, 74, 75, 76
-		}
-	};
-
-	const int BASE_HP_BY_CLASS[10] = { 10, 8, 7, 5, 4, 8, 7, 12, 6, 9 };
-
-	const int AGE_RANGES[10] = { 1, 6, 11, 18, 36, 51, 76, 101, 201, 0xffff };
-
-	const int AGE_RANGES_ADJUST[2][10] = {
-		{ -250, -50, -20, -10, 0, -2, -5, -10, -20, -50 },
-		{ -250, -50, -20, -10, 0, 2, 5, 10, 20, 50 }
-	};
-
-	const int STAT_VALUES[24] = {
-		3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 25, 30, 35, 40,
-		50, 75, 100, 125, 150, 175, 200, 225, 250, 65535
-	};
-
-	const int STAT_BONUSES[24] = {
-		-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6,
-		7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20
-	};
-
-	const int ELEMENTAL_CATEGORIES[6] = { 8, 15, 20, 25, 33, 36 };
-
-	const int ATTRIBUTE_CATEGORIES[10] = {
-		9, 17, 25, 33, 39, 45, 50, 56, 61, 72
-	};
-
-	const int ATTRIBUTE_BONUSES[72] = {
-		2, 3, 5, 8, 12, 17, 23, 30, 38, 47,	// Might bonus
-		2, 3, 5, 8, 12, 17, 23, 30,			// INT bonus
-		2, 3, 5, 8, 12, 17, 23, 30,			// PER bonus
-		2, 3, 5, 8, 12, 17, 23, 30,			// SPD bonus
-		3, 5, 10, 15, 20, 30,				// ACC bonus
-		5, 10, 15, 20, 25, 30,				// LUC bonus
-		4, 6, 10, 20, 50,					// HP bonus
-		4, 8, 12, 16, 20, 25,				// SP bonus
-		2, 4, 6, 10, 16,					// AC bonus
-		4, 6, 8, 10, 12, 14, 16, 18, 20, 25	// Thievery bonus
-	};
-
-	const int ELEMENTAL_RESISTENCES[37] = {
-		0, 5, 7, 9, 12, 15, 20, 25, 30, 5, 7, 9, 12, 15, 20, 25,
-		5, 10, 15, 20, 25, 10, 15, 20, 25, 40, 5, 7, 9, 11, 13, 15, 20, 25,
-		5, 10, 20
-	};
-
-	const int ELEMENTAL_DAMAGE[37] = {
-		0, 2, 3, 4, 5, 10, 15, 20, 30, 2, 3, 4, 5, 10, 15, 20, 2, 4, 5, 10, 20,
-		2, 4, 8, 16, 32, 2, 3, 4, 5, 10, 15, 20, 30, 5, 10, 25
-	};
-
-	const int WEAPON_DAMAGE_BASE[35] = {
-		0, 3, 2, 3, 2, 2, 4, 1, 2, 4, 2, 3,
-		2, 2, 1, 1, 1, 1, 4, 4, 3, 2, 4, 2,
-		2, 2, 5, 3, 3, 3, 3, 5, 4, 2, 6
-	};
-
-	const int WEAPON_DAMAGE_MULTIPLIER[35] = {
-		0, 3, 3, 4, 5, 4, 2, 3, 3, 3, 3, 3,
-		2, 4, 10, 6, 8, 9, 4, 3, 6, 8, 5, 6,
-		4, 5, 3, 5, 6, 7, 2, 2, 2, 2, 4
-	};
-
-	const int METAL_DAMAGE[22] = {
-		-3, -6, -4, -2, 2, 4, 6, 8, 10, 0, 1,
-		1, 2, 2, 3, 4, 5, 12, 15, 20, 30, 50
-	};
-
-	const int METAL_DAMAGE_PERCENT[22] = {
-		253, 252, 3, 2, 1, 2, 3, 4, 6, 0, 1,
-		1, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10
-	};
-
-	const int METAL_LAC[22] = {
-		-3, 0, -2, -1, 1, 2, 4, 6, 8, 0, 1,
-		1, 2, 2, 3, 4, 5, 10, 12, 14, 16, 20
-	};
-
-	const int ARMOR_STRENGTHS[14] = { 0, 2, 4, 5, 6, 7, 8, 10, 4, 2, 1, 1, 1, 1 };
-
-	const int MAKE_ITEM_ARR1[6] = { 0, 8, 15, 20, 25, 33 };
-
-	const int MAKE_ITEM_ARR2[6][7][2] = {
-		{ { 0, 0 }, { 1, 3 }, { 2, 5 }, { 3, 6 }, { 4, 7 }, { 5, 8 }, { 8, 8 } },
-		{ { 0, 0 }, { 1, 3 }, { 2, 5 }, { 3, 6 }, { 4, 7 }, { 6, 7 }, { 7, 7 } },
-		{ { 0, 0 }, { 1, 2 }, { 1, 3 }, { 2, 4 }, { 3, 5 }, { 4, 5 }, { 5, 5 } },
-		{ { 0, 0 }, { 1, 2 }, { 1, 3 }, { 2, 4 }, { 3, 4 }, { 4, 5 }, { 5, 5 } },
-		{ { 0, 0 }, { 1, 3 }, { 2, 5 }, { 3, 6 }, { 4, 7 }, { 5, 8 }, { 8, 8 } },
-		{ { 0, 0 }, { 1, 1 }, { 1, 1 }, { 1, 2 }, { 2, 2 }, { 2, 3 }, { 3, 3 } }
-	};
-
-	const int MAKE_ITEM_ARR3[10][7][2] = {
-		{ { 0, 0 }, { 1, 4 }, { 2, 5 }, { 3, 6 }, { 4, 7 }, { 6, 10 }, { 10, 10 } },
-		{ { 0, 0 }, { 1, 3 }, { 2, 5 }, { 3, 6 }, { 4, 7 }, { 5, 8 }, { 8, 8 } },
-		{ { 0, 0 }, { 1, 3 }, { 2, 5 }, { 3, 6 }, { 4, 7 }, { 5, 8 }, { 8, 8 } },
-		{ { 0, 0 }, { 1, 3 }, { 2, 5 }, { 3, 6 }, { 4, 7 }, { 5, 8 }, { 8, 8 } },
-		{ { 0, 0 }, { 1, 2 }, { 1, 3 }, { 2, 4 }, { 3, 5 }, { 4, 6 }, { 6, 6 } },
-		{ { 0, 0 }, { 1, 2 }, { 2, 3 }, { 3, 4 }, { 4, 5 }, { 5, 6 }, { 6, 6 } },
-		{ { 0, 0 }, { 1, 2 }, { 1, 3 }, { 2, 4 }, { 3, 4 }, { 4, 5 }, { 5, 5 } },
-		{ { 0, 0 }, { 1, 2 }, { 1, 3 }, { 2, 4 }, { 3, 5 }, { 4, 6 }, { 6, 6 } },
-		{ { 0, 0 }, { 1, 2 }, { 1, 3 }, { 2, 4 }, { 3, 4 }, { 4, 5 }, { 5, 5 } },
-		{ { 0, 0 }, { 1, 2 }, { 1, 4 }, { 3, 6 }, { 5, 8 }, { 7, 10 }, { 10, 10 } }
-	};
-
-	const int MAKE_ITEM_ARR4[2][7][2] = {
-		{ { 0, 0 }, { 1, 4 }, { 3, 7 }, { 4, 8 }, { 5, 9 }, { 8, 9 }, { 9, 9 } },
-		{ { 0, 0 }, { 1, 4 }, { 2, 6 }, { 4, 7 }, { 6, 10 }, { 9, 13 }, { 13, 13 } }
-	};
-
-	const int MAKE_ITEM_ARR5[8][2] = {
-		{ 0, 0 }, { 1, 15 }, { 16, 30 }, { 31, 40 }, { 41, 50 },
-		{ 51, 60 }, { 61, 73 }, { 61, 73 }
-	};
-
-	const int OUTDOOR_DRAWSTRUCT_INDEXES[44] = {
-		37, 38, 39, 40, 41, 44, 42, 43, 47, 45, 46,
-		48, 49, 52, 50, 51, 66, 67, 68, 69, 70, 71,
-		72, 75, 73, 74, 87, 88, 89, 90, 91, 94, 92,
-		93, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120
-	};
-
-	const int TOWN_MAXES[2][11] = {
-		{ 23, 13, 32, 16, 26, 16, 16, 16, 16, 16, 16 },
-		{ 26, 19, 48, 27, 26, 37, 16, 16, 16, 16, 16 }
-	};
-
-	const char *const TOWN_ACTION_MUSIC[2][7] = {
-		{ "bank.m", "smith.m", "guild.m", "tavern.m",
-		"temple.m", "grounds.m", "endgame.m" },
-		{ "bank.m", "sf09.m", "guild.m", "tavern.m",
-		"temple.m", "smith.m", "endgame.m" }
-	};
-
-	const char *const TOWN_ACTION_SHAPES[7] = {
-		"bnkr", "blck", "gild", "tvrn", "tmpl", "trng", "eface08"
-	};
-
-	const int TOWN_ACTION_FILES[2][7] = {
-		{ 3, 2, 4, 2, 4, 2, 1 }, { 5, 3, 7, 5, 4, 6, 1 }
-	};
-
 	virtual const char *BANK_TEXT() = 0;
 	virtual const char *BLACKSMITH_TEXT() = 0;
 	virtual const char *GUILD_NOT_MEMBER_TEXT() = 0;
@@ -819,25 +244,6 @@ public:
 	virtual const char *GOOD_STUFF() = 0;
 	virtual const char *HAVE_A_DRINK() = 0;
 	virtual const char *YOURE_DRUNK() = 0;
-
-	const int TAVERN_EXIT_LIST[2][6][5][2] = {
-		{
-			{ { 21, 17 }, { 0, 0 }, { 20, 3 }, { 0, 0 }, { 0, 0 } },
-			{ { 13, 4 }, { 0, 0 }, { 19, 9 }, { 0, 0 }, { 0, 0 } },
-			{ { 20, 10 }, { 12, 8 }, { 5, 26 }, { 3, 4 }, { 7, 5 } },
-			{ { 18, 4 }, { 0, 0 }, { 19, 16 }, { 0, 0 }, { 11, 12 } },
-			{ { 15, 21 }, { 0, 0 }, { 13, 21 }, { 0, 0 }, { 0, 0 } },
-			{ { 10, 8 }, { 0, 0 }, { 15, 12 }, { 0, 0 }, { 0, 0 } },
-		}, {
-			{ { 21, 17 }, { 0, 0 }, { 20, 3 }, { 0, 0 }, { 0, 0 } },
-			{ { 13, 4 }, { 0, 0 }, { 19, 9 }, { 0, 0 }, { 0, 0 } },
-			{ { 20, 10 }, { 12, 8 }, { 5, 26 }, { 3, 4 }, { 7, 5 } },
-			{ { 17, 24 }, { 14, 13 }, { 0, 0 }, { 0, 0 }, { 9, 4 } },
-			{ { 15, 21 }, { 0, 0 }, { 13, 21 }, { 0, 0 }, { 0, 0 } },
-			{ { 10, 8 }, { 0, 0 }, { 15, 12 }, { 0, 0 }, { 0, 0 } }
-		}
-	};
-
 	virtual const char  *TEMPLE_TEXT() = 0;
 	virtual const char  *EXPERIENCE_FOR_LEVEL() = 0;
 	virtual const char  *TRAINING_LEARNED_ALL() = 0;
@@ -857,93 +263,6 @@ public:
 	virtual const char  *FOOD_PACKS_FULL() = 0;
 	virtual const char  *BUY_SPELLS() = 0;
 	virtual const char  *GUILD_OPTIONS() = 0;
-
-	const int MISC_SPELL_INDEX[74] = {
-		NO_SPELL, MS_Light, MS_Awaken, MS_MagicArrow,
-		MS_FirstAid, MS_FlyingFist, MS_EnergyBlast, MS_Sleep,
-		MS_Revitalize, MS_CureWounds, MS_Sparks, MS_Shrapmetal,
-		MS_InsectSpray, MS_ToxicCloud, MS_ProtFromElements, MS_Pain,
-		MS_Jump, MS_BeastMaster, MS_Clairvoyance, MS_TurnUndead,
-		MS_Levitate, MS_WizardEye, MS_Bless, MS_IdentifyMonster,
-		MS_LightningBolt, MS_HolyBonus, MS_PowerCure, MS_NaturesCure,
-		MS_LloydsBeacon, MS_PowerShield, MS_Heroism, MS_Hynotize,
-		MS_WalkOnWater, MS_FrostBite, MS_DetectMonster, MS_Fireball,
-		MS_ColdRay, MS_CurePoison, MS_AcidSpray, MS_TimeDistortion,
-		MS_DragonSleep, MS_CureDisease, MS_Teleport, MS_FingerOfDeath,
-		MS_CureParalysis, MS_GolemStopper, MS_PoisonVolley, MS_DeadlySwarm,
-		MS_SuperShelter, MS_DayOfProtection, MS_DayOfSorcery, MS_CreateFood,
-		MS_FieryFlail, MS_RechargeItem, MS_FantasticFreeze, MS_TownPortal,
-		MS_StoneToFlesh, MS_RaiseDead, MS_Etheralize, MS_DancingSword,
-		MS_MoonRay, MS_MassDistortion, MS_PrismaticLight, MS_EnchantItem,
-		MS_Incinerate, MS_HolyWord, MS_Resurrection, MS_ElementalStorm,
-		MS_MegaVolts, MS_Inferno, MS_SunRay, MS_Implosion,
-		MS_StarBurst, MS_DivineIntervention
-	};
-
-	const int SPELL_COSTS[77] = {
-		8, 1, 5, -2, 5, -2, 20, 10, 12, 8, 3,
-		- 3, 75, 40, 12, 6, 200, 10, 100, 30, -1, 30,
-		15, 25, 10, -2, 1, 2, 7, 20, -2, -2, 100,
-		15, 5, 100, 35, 75, 5, 20, 4, 5, 1, -2,
-		6, 2, 75, 40, 60, 6, 4, 25, -2, -2, 60,
-		- 1, 50, 15, 125, 2, -1, 3, -1, 200, 35, 150,
-		15, 5, 4, 10, 8, 30, 4, 5, 7, 5, 0
-	};
-
-	const int DARK_SPELL_RANGES[12][2] = {
-		{ 0, 20 }, { 16, 35 }, { 27, 37 }, { 29, 39 },
-		{ 0, 17 }, { 14, 34 }, { 26, 37 }, { 29, 39 },
-		{ 0, 20 }, { 16, 35 }, { 27, 37 }, { 29, 39 }
-	};
-
-	const int SWORDS_SPELL_RANGES[12][2] = {
-		{ 0, 20 },{ 16, 35 },{ 27, 39 },{ 29, 39 },
-		{ 0, 17 },{ 14, 34 },{ 26, 39 },{ 29, 39 },
-		{ 0, 20 },{ 16, 35 },{ 27, 39 },{ 29, 39 }
-	};
-
-	const int CLOUDS_GUILD_SPELLS[5][20] = {
-		{
-			1, 10, 20, 26, 27, 38, 40, 42, 45, 50,
-			55, 59, 60, 61, 62, 68, 72, 75, 77, 77
-		}, {
-			3, 4, 5, 14, 15, 25, 30, 31, 34, 41,
-			49, 51, 53, 67, 73, 75, -1, -1, -1, -1
-		}, {
-			4, 8, 9, 12, 13, 22, 23, 24, 28, 34,
-			41, 44, 52, 70, 73, 74, -1, -1, -1, -1
-		}, {
-			6, 7, 9, 11, 12, 13, 17, 21, 22, 24,
-			29, 36, 56, 58, 64, 71, -1, -1, -1, -1
-		}, {
-			6, 7, 9, 11, 12, 13, 18, 21, 29, 32,
-			36, 37, 46, 51, 56, 58, 69, -1, -1, -1
-		}
-	};
-
-	const int DARK_SPELL_OFFSETS[3][39] = {
-		{
-			42, 1, 26, 59, 27, 10, 50, 68, 55, 62, 67, 73, 2,
-			5, 3, 31, 30, 52, 49, 28, 74, 0, 9, 7, 14, 8,
-			33, 6, 23, 71, 64, 56, 48, 46, 12, 32, 58, 65, 16
-		}, {
-			42, 1, 45, 61, 72, 40, 20, 60, 38, 41, 75, 34, 4,
-			43, 25, 53, 44, 15, 70, 17, 24, 69, 22, 66, 57, 11,
-			29, 39, 51, 21, 19, 36, 47, 13, 54, 37, 18, 35, 63
-		}, {
-			0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-			13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-			26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38
-		}
-	};
-
-	const int SPELL_GEM_COST[77] = {
-		0, 0, 2, 1, 2, 4, 5, 0, 0, 0, 0, 10, 10, 10, 0, 0, 20, 4, 10, 20, 1, 10,
-		5, 5, 4, 2, 0, 0, 0, 10, 3, 1, 20, 4, 0, 20, 10, 10, 1, 10, 0, 0, 0, 2,
-		2, 0, 10, 10, 10, 0, 0, 10, 3, 2, 10, 1, 10, 10, 20, 0, 0, 1, 1, 20, 5, 20,
-		5, 0, 0, 0, 0, 5, 1, 2, 0, 2, 0
-	};
-
 	virtual const char  *NOT_A_SPELL_CASTER() = 0;
 	virtual const char  *SPELLS_LEARNED_ALL() = 0;
 	virtual const char  *SPELLS_FOR() = 0;
@@ -990,9 +309,6 @@ public:
 	virtual const char  *EXCHANGE_WITH_WHOM() = 0;
 	virtual const char  *QUICK_REF_LINE() = 0;
 	virtual const char  *QUICK_REFERENCE() = 0;
-
-	const int BLACKSMITH_MAP_IDS[2][4] = { { 28, 30, 73, 49 }, { 29, 31, 37, 43 } };
-
 	virtual const char  *ITEMS_DIALOG_TEXT1() = 0;
 	virtual const char  *ITEMS_DIALOG_TEXT2() = 0;
 	virtual const char  *ITEMS_DIALOG_LINE1() = 0;
@@ -1023,47 +339,6 @@ public:
 	virtual const char **EFFECTIVENESS_NAMES() = 0;
 	virtual const char **QUEST_ITEM_NAMES() = 0;
 	virtual const char **QUEST_ITEM_NAMES_SWORDS() = 0;
-
-	const int WEAPON_BASE_COSTS[35] = {
-		0, 50, 15, 100, 80, 40, 60, 1, 10, 150, 30, 60, 8, 50,
-		100, 15, 30, 15, 200, 80, 250, 150, 400, 100, 40, 120,
-		300, 100, 200, 300, 25, 100, 50, 15, 0
-	};
-	const int ARMOR_BASE_COSTS[14] = {
-		0, 20, 100, 200, 400, 600, 1000, 2000, 100, 60, 40, 250, 200, 100
-	};
-	const int ACCESSORY_BASE_COSTS[11] = {
-		0, 100, 100, 250, 100, 50, 300, 200, 500, 1000, 2000
-	};
-	const int MISC_MATERIAL_COSTS[22] = {
-		0, 50, 1000, 500, 10, 100, 20, 10, 50, 10, 10, 100,
-		1, 1, 1, 1, 1, 1, 1, 1, 1, 1
-	};
-	const int MISC_BASE_COSTS[76] = {
-		0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
-		100, 100, 100, 100, 200, 200, 200, 200, 200, 200, 200, 200,
-		200, 200, 200, 200, 200, 200, 200, 300, 300, 300, 300, 300,
-		300, 300, 300, 300, 300, 400, 400, 400, 400, 400, 400, 400,
-		400, 400, 400, 500, 500, 500, 500, 500, 500, 500, 500, 500,
-		500, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600,
-		600, 600, 600, 600
-	};
-	const int METAL_BASE_MULTIPLIERS[22] = {
-		10, 25, 5, 75, 2, 5, 10, 20, 50, 2, 3, 5, 10, 20, 30, 40,
-		50, 60, 70, 80, 90, 100
-	};
-	const int ITEM_SKILL_DIVISORS[4] = { 1, 2, 100, 10 };
-
-	const int RESTRICTION_OFFSETS[4] = { 0, 35, 49, 60 };
-
-	const int ITEM_RESTRICTIONS[86] = {
-		0, 86, 86, 86, 86, 86, 86, 0, 6, 239, 239, 239, 2, 4, 4, 4, 4,
-		6, 70, 70, 70, 70, 94, 70, 0, 4, 239, 86, 86, 86, 70, 70, 70, 70,
-		0, 0, 0, 68, 100, 116, 125, 255, 255, 85, 0, 0, 0, 0, 0, 0, 0, 0,
-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-	};
-
 	virtual const char  *NOT_PROFICIENT() = 0;
 	virtual const char  *NO_ITEMS_AVAILABLE() = 0;
 	virtual const char **CATEGORY_NAMES() = 0;
@@ -1135,31 +410,7 @@ public:
 	virtual const char  *NAME_FOR_NEW_CHARACTER() = 0;
 	virtual const char  *SELECT_CLASS_BEFORE_SAVING() = 0;
 	virtual const char  *EXCHANGE_ATTR_WITH() = 0;
-
-	const int NEW_CHAR_SKILLS[10] = { 1, 5, -1, -1, 4, 0, 0, -1, 6, 11 };
 	virtual const int *NEW_CHAR_SKILLS_OFFSET() = 0;
-	const int NEW_CHAR_SKILLS_LEN[10] = { 11, 8, 0, 0, 12, 8, 8, 0, 9, 11 };
-	const int NEW_CHAR_RACE_SKILLS[10] = { 14, -1, 17, 16, -1, 0, 0, 0, 0, 0 };
-
-	const int RACE_MAGIC_RESISTENCES[5] = { 7, 5, 20, 0, 0 };
-	const int RACE_FIRE_RESISTENCES[5] = { 7, 0, 2, 5, 10 };
-	const int RACE_ELECTRIC_RESISTENCES[5] = { 7, 0, 2, 5, 10 };
-	const int RACE_COLD_RESISTENCES[5] = { 7, 0, 2, 5, 10 };
-	const int RACE_ENERGY_RESISTENCES[5] = { 7, 5, 2, 5, 0 };
-	const int RACE_POISON_RESISTENCES[5] = { 7, 0, 2, 20, 0 };
-	const int NEW_CHARACTER_SPELLS[10][4] = {
-		{ -1, -1, -1, -1 },
-		{ 21, -1, -1, -1 },
-		{ 22, -1, -1, -1 },
-		{ 21, 1, 14, -1 },
-		{ 22, 0, 25, -1 },
-		{ -1, -1, -1, -1 },
-		{ -1, -1, -1, -1 },
-		{ -1, -1, -1, -1 },
-		{ 20, 1, 11, 23 },
-		{ 20, 1, -1, -1 }
-	};
-
 	virtual const char  *COMBAT_DETAILS() = 0;
 	virtual const char  *NOT_ENOUGH_TO_CAST() = 0;
 	virtual const char **SPELL_CAST_COMPONENTS() = 0;
@@ -1178,19 +429,9 @@ public:
 	virtual const char  *HOW_MANY_SQUARES() = 0;
 	virtual const char  *TOWN_PORTAL() = 0;
 	virtual const char  *TOWN_PORTAL_SWORDS() = 0;
-
-	const int TOWN_MAP_NUMBERS[3][5] = {
-		{ 28, 29, 30, 31, 32 }, { 29, 31, 33, 35, 37 }, { 53, 92, 63, 0, 0 }
-	};
-
 	virtual const char  *MONSTER_DETAILS() = 0;
 	virtual const char **MONSTER_SPECIAL_ATTACKS() = 0;
 	virtual const char  *IDENTIFY_MONSTERS() = 0;
-
-	const char *const EVENT_SAMPLES[6] = {
-		"ahh.voc", "whereto.voc", "gulp.voc", "null.voc", "scream.voc", "laff1.voc"
-	};
-
 	virtual const char  *MOONS_NOT_ALIGNED() = 0;
 	virtual const char  *AWARDS_FOR() = 0;
 	virtual const char  *AWARDS_TEXT() = 0;
@@ -1219,25 +460,6 @@ public:
 	virtual const char  *CLOUDS_CONGRATULATIONS1() = 0;
 	virtual const char  *CLOUDS_CONGRATULATIONS2() = 0;
 	virtual const char **GOOBER() = 0;
-
-	const char *const MUSIC_FILES1[5] = {
-		"outdoors.m", "town.m", "cavern.m", "dungeon.m", "castle.m"
-	};
-
-	const char *const MUSIC_FILES2[6][7] = {
-		{ "outday1.m", "outday2.m", "outday4.m", "outnght1.m",
-		"outnght2.m", "outnght4.m", "daydesrt.m" },
-		{ "townday1.m", "twnwlk.m", "newbrigh.m", "twnnitea.m",
-		"twnniteb.m", "twnwlk.m", "townday1.m" },
-		{ "cavern1.m", "cavern2.m", "cavern3a.m", "cavern1.m",
-		"cavern2.m", "cavern3a.m", "cavern1.m" },
-		{ "dngon1.m", "dngon2.m", "dngon3.m", "dngon1.m",
-		"dngon2.m", "dngon3.m", "dngon1.m" },
-		{ "cstl1rev.m", "cstl2rev.m", "cstl3rev.m", "cstl1rev.m",
-		"cstl2rev.m", "cstl3rev.m", "cstl1rev.m" },
-		{ "sf05.m", "sf05.m", "sf05.m", "sf05.m", "sf05.m", "sf05.m", "sf05.m" }
-	};
-
 	virtual const char  *DIFFICULTY_TEXT() = 0;
 	virtual const char  *SAVE_OFF_LIMITS() = 0;
 	virtual const char  *CLOUDS_INTRO1() = 0;
diff --git a/devtools/create_xeen/en_constants.h b/devtools/create_xeen/en_constants.h
index c79f51fd1f..912d626444 100644
--- a/devtools/create_xeen/en_constants.h
+++ b/devtools/create_xeen/en_constants.h
@@ -150,8 +150,7 @@ public:
 	}
 
 	const char **GAME_NAMES() {
-		delete[] _gameNames;
-		_gameNames = new const char *[3] { "Clouds", "Darkside", "World" };
+		static const char *_gameNames[] = { "Clouds", "Darkside", "World" };
 		return _gameNames;
 	}
 
@@ -197,8 +196,7 @@ public:
 	}
 
 	const char **WHO_ACTIONS() {
-		delete[] _whoActions;
-		_whoActions = new const char *[32] {
+		static const char *_whoActions[] = {
 			"search", "open", "drink", "mine", "touch", "read", "learn", "take",
 				"bang", "steal", "bribe", "pay", "sit", "try", "turn", "bathe",
 				"destroy", "pull", "descend", "toss a coin", "pray", "join", "act",
@@ -208,46 +206,39 @@ public:
 	}
 
 	const char **WHO_WILL_ACTIONS() {
-		delete[] _whoWillActions;
-		_whoWillActions = new const char *[4] {
+		static const char *_whoWillActions[] = {
 			"Open Grate", "Open Door", "Open Scroll", "Select Char"
 		};
 		return _whoWillActions;
 	}
 
 	const char **DIRECTION_TEXT_UPPER() {
-		delete[] _directionTextUpper;
-		_directionTextUpper = new const char *[4] { "NORTH", "EAST", "SOUTH", "WEST" };
+		static const char *_directionTextUpper[] = { "NORTH", "EAST", "SOUTH", "WEST" };
 		return _directionTextUpper;
 	}
 
 	const char **DIRECTION_TEXT() {
-		delete[] _directionText;
-		_directionText = new const char *[4] { "North", "East", "South", "West" };
+		static const char *_directionText[] = { "North", "East", "South", "West" };
 		return _directionText;
 	}
 
 	const char **RACE_NAMES() {
-		delete[] _raceNames;
-		_raceNames = new const char *[5] { "Human", "Elf", "Dwarf", "Gnome", "H-Orc" };
+		static const char *_raceNames[] = { "Human", "Elf", "Dwarf", "Gnome", "H-Orc" };
 		return _raceNames;
 	}
 
 	const char **ALIGNMENT_NAMES() {
-		delete[] _alignmentNames;
-		_alignmentNames = new const char *[3] { "Good", "Neutral", "Evil" };
+		static const char *_alignmentNames[] = { "Good", "Neutral", "Evil" };
 		return _alignmentNames;
 	}
 
 	const char **SEX_NAMES() {
-		delete[] _sexNames;
-		_sexNames = new const char *[2] { "Male", "Female" };
+		static const char *_sexNames[] = { "Male", "Female" };
 		return _sexNames;
 	}
 
 	const char **SKILL_NAMES() {
-		delete[] _skillNames;
-		_skillNames = new const char *[18] {
+		static const char *_skillNames[] = {
 			"Thievery\t100", "Arms Master", "Astrologer", "Body Builder", "Cartographer",
 				"Crusader", "Direction Sense", "Linguist", "Merchant", "Mountaineer",
 				"Navigator", "Path Finder", "Prayer Master", "Prestidigitator",
@@ -257,8 +248,7 @@ public:
 	}
 
 	const char **CLASS_NAMES() {
-		delete[] _classNames;
-		_classNames = new const char *[11] {
+		static const char *_classNames[] = {
 			"Knight", "Paladin", "Archer", "Cleric", "Sorcerer", "Robber",
 				"Ninja", "Barbarian", "Druid", "Ranger", nullptr
 		};
@@ -266,8 +256,7 @@ public:
 	}
 
 	const char **CONDITION_NAMES_M() {
-		delete[] _conditionNamesM;
-		_conditionNamesM = new const char *[17] {
+		static const char *_conditionNamesM[] = {
 			"Cursed", "Heart Broken", "Weak", "Poisoned", "Diseased",
 				"Insane", "In Love", "Drunk", "Asleep", "Depressed", "Confused",
 				"Paralyzed", "Unconscious", "Dead", "Stone", "Eradicated", "Good"
@@ -276,8 +265,7 @@ public:
 	}
 
 	const char **CONDITION_NAMES_F() {
-		delete[] _conditionNamesF;
-		_conditionNamesF = new const char *[17] {
+		static const char *_conditionNamesF[] = {
 			"Cursed", "Heart Broken", "Weak", "Poisoned", "Diseased",
 				"Insane", "In Love", "Drunk", "Asleep", "Depressed", "Confused",
 				"Paralyzed", "Unconscious", "Dead", "Stone", "Eradicated", "Good"
@@ -536,8 +524,7 @@ public:
 	}
 
 	const char **DEPOSIT_WITHDRAWL() {
-		delete[] _depositWithdrawl;
-		_depositWithdrawl = new const char *[2] { "Deposit", "Withdrawl" };
+		static const char *_depositWithdrawl[] = { "Deposit", "Withdrawl" };
 		return _depositWithdrawl;
 	}
 
@@ -552,8 +539,7 @@ public:
 	}
 
 	const char **STAT_NAMES() {
-		delete[] _statNames;
-		_statNames = new const char *[16] {
+		static const char *_statNames[] = {
 			"Might", "Intellect", "Personality", "Endurance", "Speed",
 				"Accuracy", "Luck", "Age", "Level", "Armor Class", "Hit Points",
 				"Spell Points", "Resistances", "Skills", "Awards", "Experience"
@@ -562,26 +548,22 @@ public:
 	}
 
 	const char **CONSUMABLE_NAMES() {
-		delete[] _consumableNames;
-		_consumableNames = new const char *[4] { "Gold", "Gems", "Food", "Condition" };
+		static const char *_consumableNames[] = { "Gold", "Gems", "Food", "Condition" };
 		return _consumableNames;
 	}
 
 	const char **CONSUMABLE_GOLD_FORMS() {
-		delete[] _consumableGoldForms;
-		_consumableGoldForms = new const char *[1] { "" };
+		static const char *_consumableGoldForms[] = { "" };
 		return _consumableGoldForms;
 	}
 
 	const char **CONSUMABLE_GEM_FORMS() {
-		delete[] _consumableGemForms;
-		_consumableGemForms = new const char *[1] { "" };
+		static const char *_consumableGemForms[] = { "" };
 		return _consumableGemForms;
 	}
 
 	const char **WHERE_NAMES() {
-		delete[] _whereNames;
-		_whereNames = new const char *[2] { "Party", "Bank" };
+		static const char *_whereNames[] = { "Party", "Bank" };
 		return _whereNames;
 	}
 
@@ -730,8 +712,7 @@ public:
 	}
 
 	const char **WEEK_DAY_STRINGS() {
-		delete[] _weekDayStrings;
-		_weekDayStrings = new const char *[10] {
+		static const char *_weekDayStrings[] = {
 			"Ten", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"
 		};
 		return _weekDayStrings;
@@ -753,8 +734,7 @@ public:
 	}
 
 	const char **DAYS() {
-		delete[] _days;
-		_days = new const char *[3] { "", "s", "" };
+		static const char *_days[] = { "", "s", "" };
 		return _days;
 	}
 
@@ -798,8 +778,7 @@ public:
 	}
 
 	const char **RATING_TEXT() {
-		delete[] _ratingText;
-		_ratingText = new const char *[24] {
+		static const char *_ratingText[] = {
 			"Nonexistant", "Very Poor", "Poor", "Very Low", "Low", "Average", "Good",
 				"Very Good", "High", "Very High", "Great", "Super", "Amazing", "Incredible",
 				"Gigantic", "Fantastic", "Astoundig", "Astonishing", "Monumental", "Tremendous",
@@ -809,8 +788,7 @@ public:
 	}
 
 	const char **BORN() {
-		delete[] _born;
-		_born = new const char *[2] { "Born", "" };
+		static const char *_born[] = { "Born", "" };
 		return _born;
 	}
 
@@ -866,8 +844,7 @@ public:
 	}
 
 	const char **FOOD_ON_HAND() {
-		delete[] _onHand;
-		_onHand = new const char *[3] { "on hand", "", "" };
+		static const char *_onHand[] = { "on hand", "", "" };
 		return _onHand;
 	}
 
@@ -981,8 +958,7 @@ public:
 	}
 
 	const char **BONUS_NAMES() {
-		delete[] _bonusNames;
-		_bonusNames = new const char *[7] {
+		static const char *_bonusNames[] = {
 			"", "Dragon Slayer", "Undead Eater", "Golem Smasher",
 				"Bug Zapper", "Monster Masher", "Beast Bopper"
 		};
@@ -990,8 +966,7 @@ public:
 	}
 
 	const char **WEAPON_NAMES() {
-		delete[] _weaponNames;
-		_weaponNames = new const char *[41] {
+		static const char *_weaponNames[] = {
 			nullptr, "long sword ", "short sword ", "broad sword ", "scimitar ",
 				"cutlass ", "sabre ", "club ", "hand axe ", "katana ", "nunchakas ",
 				"wakazashi ", "dagger ", "mace ", "flail ", "cudgel ", "maul ", "spear ",
@@ -1005,8 +980,7 @@ public:
 	}
 
 	const char **ARMOR_NAMES() {
-		delete[] _armorNames;
-		_armorNames = new const char *[14] {
+		static const char *_armorNames[] = {
 			nullptr, "robes ", "scale armor ", "ring mail ", "chain mail ",
 				"splint mail ", "plate mail ", "plate armor ", "shield ",
 				"helm ", "boots ", "cloak ", "cape ", "gauntlets "
@@ -1015,8 +989,7 @@ public:
 	}
 
 	const char **ACCESSORY_NAMES() {
-		delete[] _accessoryNames;
-		_accessoryNames = new const char *[11] {
+		static const char *_accessoryNames[] = {
 			nullptr, "ring ", "belt ", "brooch ", "medal ", "charm ", "cameo ",
 				"scarab ", "pendant ", "necklace ", "amulet "
 		};
@@ -1024,8 +997,7 @@ public:
 	}
 
 	const char **MISC_NAMES() {
-		delete[] _miscNames;
-		_miscNames = new const char *[22] {
+		static const char *_miscNames[] = {
 			nullptr, "rod ", "jewel ", "gem ", "box ", "orb ", "horn ", "coin ",
 				"wand ", "whistle ", "potion ", "scroll ", "bogus", "bogus", "bogus",
 				"bogus", "bogus", "bogus", "bogus", "bogus", "bogus", "bogus"
@@ -1034,8 +1006,7 @@ public:
 	}
 
 	const char **SPECIAL_NAMES() {
-		delete[] _specialNames;
-		_specialNames = new const char *[74] {
+		static const char *_specialNames[] = {
 			nullptr, "light", "awakening", "magic arrows", "first aid", "fists", "energy blasts", "sleeping",
 				"revitalization", "curing", "sparking", "shrapmetal", "insect repellent", "toxic clouds", "elemental protection",
 				"pain", "jumping", "beast control", "clairvoyance", "undead turning", "levitation", "wizard eyes", "blessing",
@@ -1052,16 +1023,14 @@ public:
 	}
 
 	const char **ELEMENTAL_NAMES() {
-		delete[] _elementalNames;
-		_elementalNames = new const char *[6] {
+		static const char *_elementalNames[] = {
 			"Fire", "Elec", "Cold", "Acid/Poison", "Energy", "Magic"
 		};
 		return _elementalNames;
 	}
 
 	const char **ATTRIBUTE_NAMES() {
-		delete[] _attributeNames;
-		_attributeNames = new const char *[10] {
+		static const char *_attributeNames[] = {
 			"might", "Intellect", "Personality", "Speed", "accuracy", "Luck",
 				"Hit Points", "Spell Points", "Armor Class", "Thievery"
 		};
@@ -1069,16 +1038,14 @@ public:
 	}
 
 	const char **EFFECTIVENESS_NAMES() {
-		delete[] _effectivenessNames;
-		_effectivenessNames = new const char *[7] {
+		static const char *_effectivenessNames[] = {
 			nullptr, "Dragons", "Undead", "Golems", "Bugs", "Monsters", "Beasts"
 		};
 		return _effectivenessNames;
 	}
 
 	const char **QUEST_ITEM_NAMES() {
-		delete[] _questItemNames;
-		_questItemNames = new const char *[85] {
+		static const char *_questItemNames[] = {
 			"Deed to New Castle",
 				"Crystal Key to Witch Tower",
 				"Skeleton Key to Darzog's Tower",
@@ -1169,8 +1136,7 @@ public:
 	}
 
 	const char **QUEST_ITEM_NAMES_SWORDS() {
-		delete[] _questItemNamesSwords;
-		_questItemNamesSwords = new const char *[51] {
+		static const char *_questItemNamesSwords[] = {
 			"Pass to Hart", "Pass to Impery", "Pass to town3", "Pass to town4", "Pass to town5",
 				"Key to Hart Sewers", "Key to Rettig's Pyramid", "Key to the Old Temple",
 				"Key to Canegtut's Pyramid", "Key to Ascihep's Pyramid", "Key to Dragon Tower",
@@ -1199,8 +1165,7 @@ public:
 	}
 
 	const char **CATEGORY_NAMES() {
-		delete[] _categoryNames;
-		_categoryNames = new const char *[4] { "Weapons", "Armor", "Accessories", "Miscellaneous" };
+		static const char *_categoryNames[] = { "Weapons", "Armor", "Accessories", "Miscellaneous" };
 		return _categoryNames;
 	}
 
@@ -1235,8 +1200,7 @@ public:
 	}
 
 	const char **ITEM_ACTIONS() {
-		delete[] _itemActions;
-		_itemActions = new const char *[7] {
+		static const char *_itemActions[] = {
 			"Equip", "Remove", "Use", "Discard", "Enchant", "Recharge", "Gold"
 		};
 		return _itemActions;
@@ -1303,8 +1267,7 @@ public:
 	}
 
 	const char **CATEGORY_BACKPACK_IS_FULL() {
-		delete[] _categoryBackpackIsFull;
-		_categoryBackpackIsFull = new const char *[4] {
+		static const char *_categoryBackpackIsFull[] = {
 			"\v010\t000\x3"
 			"c%s's weapons backpack is full.",
 				"\v010\t000\x3"
@@ -1326,8 +1289,7 @@ public:
 	}
 
 	const char **GOLDS() {
-		delete[] _sellXForYGoldEndings;
-		_sellXForYGoldEndings = new const char *[2] { "gold", "" };
+		static const char *_sellXForYGoldEndings[] = { "gold", "" };
 		return _sellXForYGoldEndings;
 	}
 
@@ -1355,8 +1317,7 @@ public:
 	}
 
 	const char **FIX_IDENTIFY() {
-		delete[] _fixIdentify;
-		_fixIdentify = new const char *[2] { "Fix", "Identify" };
+		static const char *_fixIdentify[] = { "Fix", "Identify" };
 		return _fixIdentify;
 	}
 
@@ -1520,8 +1481,7 @@ public:
 	}
 
 	const char **REMOVE_DELETE() {
-		delete[] _removeDelete;
-		_removeDelete = new const char *[2] { "Remove", "Delete" };
+		static const char *_removeDelete[] = { "Remove", "Delete" };
 		return _removeDelete;
 	}
 
@@ -1577,8 +1537,7 @@ public:
 	}
 
 	const int *NEW_CHAR_SKILLS_OFFSET() {
-		delete[] _newCharSkillsOffset;
-		_newCharSkillsOffset = new const int [10] { 0, 0, 0, 5, 0, 0, 0, 0, 0, 0 };
+		static const int _newCharSkillsOffset[] = { 0, 0, 0, 5, 0, 0, 0, 0, 0, 0 };
 		return _newCharSkillsOffset;
 	}
 
@@ -1594,8 +1553,7 @@ public:
 	}
 
 	const char **SPELL_CAST_COMPONENTS() {
-		delete[] _spellCastComponents;
-		_spellCastComponents = new const char *[2] { "Spell Points", "Gems" };
+		static const char *_spellCastComponents[] = { "Spell Points", "Gems" };
 		return _spellCastComponents;
 	}
 
@@ -1650,8 +1608,7 @@ public:
 	}
 
 	const char **FOUND() {
-		delete[] _found;
-		_found = new const char *[2] { "found", "" };
+		static const char *_found[] = { "found", "" };
 		return _found;
 	}
 
@@ -1733,8 +1690,7 @@ public:
 	}
 
 	const char **MONSTER_SPECIAL_ATTACKS() {
-		delete[] _monsterSpecialAttacks;
-		_monsterSpecialAttacks = new const char *[23] {
+		static const char *_monsterSpecialAttacks[] = {
 			"None", "Magic", "Fire", "Elec", "Cold", "Poison", "Energy", "Disease",
 				"Insane", "Asleep", "CurseItm", "InLove", "DrnSPts", "Curse", "Paralys",
 				"Uncons", "Confuse", "BrkWpn", "Weak", "Erad", "Age+5", "Dead", "Stone"
@@ -1790,8 +1746,7 @@ public:
 	}
 
 	const char **PICK_FORM() {
-		delete[] _pickForm;
-		_pickForm = new const char *[2] { "picks", "" };
+		static const char *_pickForm[] = { "picks", "" };
 		return _pickForm;
 	}
 
@@ -1801,8 +1756,7 @@ public:
 	}
 
 	const char **UNABLE_TO_PICK_FORM() {
-		delete[] _unableToPickForm;
-		_unableToPickForm = new const char *[2] { "unable to pick", "" };
+		static const char *_unableToPickForm[] = { "unable to pick", "" };
 		return _unableToPickForm;
 	}
 
@@ -1858,14 +1812,12 @@ public:
 	}
 
 	const char **QUICK_FIGHT_OPTIONS() {
-		delete[] _quickFightOptions;
-		_quickFightOptions = new const char *[4] { "Attack", "Cast", "Block", "Run" };
+		static const char *_quickFightOptions[] = { "Attack", "Cast", "Block", "Run" };
 		return _quickFightOptions;
 	}
 
 	const char **WORLD_END_TEXT() {
-		delete[] _worldEndText;
-		_worldEndText = new const char *[9] {
+		static const char *_worldEndText[] = {
 			"\n\n\n\n\n\n\n"
 			"Congratulations Adventurers!\n\n"
 			"Let the unification ceremony begin!",
@@ -1924,8 +1876,7 @@ public:
 	}
 
 	const char **GOOBER() {
-		delete[] _goober;
-		_goober = new const char *[3] {
+		static const char *_goober[] = {
 			"", "I am a Goober!", "I am a Super Goober!"
 		};
 		return _goober;
@@ -1992,8 +1943,7 @@ public:
 
 
 	const char **MAE_NAMES() {
-		delete[] _maeNames;
-		_maeNames = new const char *[131] {
+		static const char *_maeNames[] = {
 			"",
 		};
 		return _maeNames;
diff --git a/devtools/create_xeen/ru_constants.h b/devtools/create_xeen/ru_constants.h
index f9effd4426..063f46be86 100644
--- a/devtools/create_xeen/ru_constants.h
+++ b/devtools/create_xeen/ru_constants.h
@@ -150,8 +150,7 @@ public:
 	}
 
 	const char **GAME_NAMES() {
-		delete[] _gameNames;
-		_gameNames = new const char *[3] { "\x8E\xA1\xAB\xA0\xAA\xA0", "Darkside", "World" }; // "Облака", "Darkside", "World"
+		static const char *_gameNames[] = { "\x8E\xA1\xAB\xA0\xAA\xA0", "Darkside", "World" }; // "Облака", "Darkside", "World"
 		return _gameNames;
 	}
 
@@ -194,8 +193,7 @@ public:
 	}
 
 	const char **WHO_ACTIONS() {
-		delete[] _whoActions;
-		_whoActions = new const char *[32] {
+		static const char *_whoActions[] = {
 			"\x8A\xE2\xAE \xAE\xA1\xEB\xE9\xA5\xE2",                              // "Кто обыщет",
 			"\x8A\xE2\xAE \xAE\xE2\xAA\xE0\xAE\xA5\xE2",						  // "Кто откроет",
 			"\x8A\xE2\xAE \xA2\xEB\xAF\xEC\xA5\xE2",							  // "Кто выпьет",
@@ -233,8 +231,7 @@ public:
 	}
 
 	const char **WHO_WILL_ACTIONS() {
-		delete[] _whoWillActions;
-		_whoWillActions = new const char *[4] {
+		static const char *_whoWillActions[] = {
 			"\x8E\xE2\xAA\xE0\xEB\xE2\xEC \xE0\xA5\xE8\xF1\xE2\xAA\xE3",			// "Открыть решётку",
 			"\x8E\xE2\xAA\xE0\xEB\xE2\xEC \xA4\xA2\xA5\xE0\xEC",                    // "Открыть дверь",
 			"\x90\xA0\xE1\xAA\xE0\xEB\xE2\xEC \xE1\xA2\xA8\xE2\xAE\xAA",            // "Раскрыть свиток",
@@ -244,14 +241,12 @@ public:
 	}
 
 	const char **DIRECTION_TEXT_UPPER() {
-		delete[] _directionTextUpper;
-		_directionTextUpper = new const char *[4] { "NORTH", "EAST", "SOUTH", "WEST" };
+		static const char *_directionTextUpper[] = { "NORTH", "EAST", "SOUTH", "WEST" };
 		return _directionTextUpper;
 	}
 
 	const char **DIRECTION_TEXT() {
-		delete[] _directionText;
-		_directionText = new const char *[4] {
+		static const char *_directionText[] = {
 			"\x91\xA5\xA2\xA5\xE0",		// "Север",
 			"\x82\xAE\xE1\xE2\xAE\xAA", // "Восток",
 			"\x9E\xA3",                 // "Юг",
@@ -261,8 +256,7 @@ public:
 	}
 
 	const char **RACE_NAMES() {
-		delete[] _raceNames;
-		_raceNames = new const char *[5] {
+		static const char *_raceNames[] = {
 			"\x97\xA5\xAB\xAE\xA2\xA5\xAA", // "Человек",
 			"\x9D\xAB\xEC\xE4",				// "Эльф",
 			"\x84\xA2\xAE\xE0\xE4",			// "Дворф",
@@ -273,8 +267,7 @@ public:
 	}
 
 	const char **ALIGNMENT_NAMES() {
-		delete[] _alignmentNames;
-		_alignmentNames = new const char *[3] {
+		static const char *_alignmentNames[] = {
 			"\x95\xAE\xE0\xAE\xE8\xA8\xA9", // "Хороший",
 			"\x8D\xA5\xA9\xE2\xE0\xA0\xAB",	// "Нейтрал",
 			"\x87\xAB\xAE\xA9(-\xA0\xEF)"	// "Злой(-ая)"
@@ -283,8 +276,7 @@ public:
 	}
 
 	const char **SEX_NAMES() {
-		delete[] _sexNames;
-		_sexNames = new const char *[2] {
+		static const char *_sexNames[] = {
 			"\x8C\xE3\xA6\xE7\xA8\xAD\xA0", // "Мужчина",
 			"\x86\xA5\xAD\xE9\xA8\xAD\xA0"  // "Женщина"
 		};
@@ -292,8 +284,7 @@ public:
 	}
 
 	const char **SKILL_NAMES() {
-		delete[] _skillNames;
-		_skillNames = new const char *[18] {
+		static const char *_skillNames[] = {
 			"\x82\xAE\xE0\xAE\xA2\xE1\xE2\xA2\xAE\t100",								 // "Воровство\t100",
 			"\x8E\xE0\xE3\xA6\xA5\xA9\xAD\xA8\xAA",                                      // "Оружейник",
 			"\x80\xE1\xE2\xE0\xAE\xAB\xAE\xA3",                                          // "Астролог",
@@ -319,8 +310,7 @@ public:
 	}
 
 	const char **CLASS_NAMES() {
-		delete[] _classNames;
-		_classNames = new const char *[11] {
+		static const char *_classNames[] = {
 			"\x90\xEB\xE6\xA0\xE0\xEC",			// "Рыцарь",
 			"\x8F\xA0\xAB\xA0\xA4\xA8\xAD",     // "Паладин",
 			"\x8B\xE3\xE7\xAD\xA8\xAA",         // "Лучник",
@@ -337,8 +327,7 @@ public:
 	}
 
 	const char **CONDITION_NAMES_M() {
-		delete[] _conditionNamesM;
-		_conditionNamesM = new const char *[17] {
+		static const char *_conditionNamesM[] = {
 			"\x8F\xE0\xAE\xAA\xAB\xEF\xE2\xA8\xA5",		// "Проклятие",
 			"Heart Broken",                             // "Heart Broken",
 			"\x91\xAB\xA0\xA1\xAE\xE1\xE2\xEC",         // "Слабость",
@@ -361,8 +350,7 @@ public:
 	}
 
 	const char **CONDITION_NAMES_F() {
-		delete[] _conditionNamesF;
-		_conditionNamesF = new const char *[17] {
+		static const char *_conditionNamesF[] = {
 			"\x8F\xE0\xAE\xAA\xAB\xEF\xE2\xA8\xA5",         // "Проклятие",
 				"Heart Broken",                             // "Heart Broken",
 				"\x91\xAB\xA0\xA1\xAE\xE1\xE2\xEC",         // "Слабость",
@@ -606,8 +594,7 @@ public:
 	}
 
 	const char **DEPOSIT_WITHDRAWL() {
-		delete[] _depositWithdrawl;
-		_depositWithdrawl = new const char *[2] { "\x8F\xAE\xAB\xAE\xA6\xA8\xE2\xEC \xAD\xA0 \xE1\xE7\xF1\xE2", "\x91\xAD\xEF\xE2\xEC \xE1\xAE \xE1\xE7\xF1\xE2\xA0" }; // "Положить на счёт", "Снять со счёта"
+		static const char *_depositWithdrawl[] = { "\x8F\xAE\xAB\xAE\xA6\xA8\xE2\xEC \xAD\xA0 \xE1\xE7\xF1\xE2", "\x91\xAD\xEF\xE2\xEC \xE1\xAE \xE1\xE7\xF1\xE2\xA0" }; // "Положить на счёт", "Снять со счёта"
 		return _depositWithdrawl;
 	}
 
@@ -620,8 +607,7 @@ public:
 	}
 
 	const char **STAT_NAMES() {
-		delete[] _statNames;
-		_statNames = new const char *[16] {
+		static const char *_statNames[] = {
 			"\x91\xA8\xAB\xA0", "\x88\xAD\xE2\xA5\xAB\xAB\xA5\xAA\xE2", "\x91\xA8\xAB\xA0 \xA4\xE3\xE5\xA0", "\x91\xAB\xAE\xA6\xA5\xAD\xA8\xA5", "\x91\xAA\xAE\xE0\xAE\xE1\xE2\xEC",	 // "Сила", "Интеллект", "Сила духа", "Сложение", "Скорость",
 			"\x8C\xA5\xE2\xAA\xAE\xE1\xE2\xEC", "\x93\xA4\xA0\xE7\xA0", "\x82\xAE\xA7\xE0\xA0\xE1\xE2", "\x93\xE0\xAE\xA2\xA5\xAD\xEC", "\x8A\xAB\xA0\xE1\xE1 \xA7\xA0\xE9\xA8\xE2\xEB", // "Меткость", "Удача", "Возраст", "Уровень", "Класс защиты",
 			"\x87\xA4\xAE\xE0\xAE\xA2\xEC\xA5", "\x8E\xE7\xAA\xA8 \xAC\xA0\xA3\xA8\xA8", "\x93\xE1\xE2\xAE\xA9\xE7\xA8\xA2\xAE\xE1\xE2\xA8", "\x8D\xA0\xA2\xEB\xAA\xA8",				 // "Здоровье", "Очки магии", "Устойчивости", "Навыки",
@@ -631,26 +617,22 @@ public:
 	}
 
 	const char **CONSUMABLE_NAMES() {
-		delete[] _consumableNames;
-		_consumableNames = new const char *[4] { "\x87\xAE\xAB\xAE\xE2\xAE", "\x80\xAB\xAC\xA0\xA7\xEB", "\x8F\xA8\xE9\xA0", "\x91\xAE\xE1\xE2\xAE\xEF\xAD\xA8\xA5" }; // "Золото", "Алмазы", "Пища", "Состояние"
+		static const char *_consumableNames[] = { "\x87\xAE\xAB\xAE\xE2\xAE", "\x80\xAB\xAC\xA0\xA7\xEB", "\x8F\xA8\xE9\xA0", "\x91\xAE\xE1\xE2\xAE\xEF\xAD\xA8\xA5" }; // "Золото", "Алмазы", "Пища", "Состояние"
 		return _consumableNames;
 	}
 
 	const char **CONSUMABLE_GOLD_FORMS() {
-		delete[] _consumableGoldForms;
-		_consumableGoldForms = new const char *[1] { "\x87\xAE\xAB\xAE\xE2\xA0" }; // "Золота"
+		static const char *_consumableGoldForms[] = { "\x87\xAE\xAB\xAE\xE2\xA0" }; // "Золота"
 		return _consumableGoldForms;
 	}
 
 	const char **CONSUMABLE_GEM_FORMS() {
-		delete[] _consumableGemForms;
-		_consumableGemForms = new const char *[1] { "\x80\xAB\xAC\xA0\xA7\xAE\xA2" }; // "Алмазов"
+		static const char *_consumableGemForms[] = { "\x80\xAB\xAC\xA0\xA7\xAE\xA2" }; // "Алмазов"
 		return _consumableGemForms;
 	}
 
 	const char **WHERE_NAMES() {
-		delete[] _whereNames;
-		_whereNames = new const char *[2] { "\xE3 \xAE\xE2\xE0\xEF\xA4\xA0", "\xA2 \xA1\xA0\xAD\xAA\xA5" }; // "у отряда", "в банке"
+		static const char *_whereNames[] = { "\xE3 \xAE\xE2\xE0\xEF\xA4\xA0", "\xA2 \xA1\xA0\xAD\xAA\xA5" }; // "у отряда", "в банке"
 		return _whereNames;
 	}
 
@@ -799,8 +781,7 @@ public:
 	}
 
 	const char **WEEK_DAY_STRINGS() {
-		delete[] _weekDayStrings;
-		_weekDayStrings = new const char *[10] {
+		static const char *_weekDayStrings[] = {
 			"\xA4\xA5\xE1\xEF\xE2\xA8\xA4\xA5\xAD\xEC", "\xAF\xA5\xE0\xA2\xAE\xA4\xA5\xAD\xEC", "\xA2\xE2\xAE\xE0\xAE\xA4\xA5\xAD\xEC", "\xE2\xE0\xA5\xE2\xEC\xA5\xA4\xA5\xAD\xEC", "\xE7\xA5\xE2\xA2\xA5\xE0\xAE\xA4\xA5\xAD\xEC", // "десятидень", "перводень", "втородень", "третьедень", "четверодень",
 			"\xAF\xEF\xE2\xA8\xA4\xA5\xAD\xEC", "\xE8\xA5\xE1\xE2\xA8\xA4\xA5\xAD\xEC", "\xE1\xA5\xAC\xA8\xA4\xA5\xAD\xEC", "\xA2\xAE\xE1\xEC\xAC\xA8\xA4\xA5\xAD\xEC", "\xA4\xA5\xA2\xEF\xE2\xA8\xA4\xA5\xAD\xEC"                  // "пятидень",   "шестидень", "семидень",  "восьмидень", "девятидень"
 		};
@@ -823,8 +804,7 @@ public:
 	}
 
 	const char **DAYS() {
-		delete[] _days;
-		_days = new const char *[3] { "\xA4\xA5\xAD\xEC", "\xA4\xAD\xEF", "\xA4\xAD\xA5\xA9" }; // "день", "дня", "дней"
+		static const char *_days[] = { "\xA4\xA5\xAD\xEC", "\xA4\xAD\xEF", "\xA4\xAD\xA5\xA9" }; // "день", "дня", "дней"
 		return _days;
 	}
 
@@ -863,8 +843,7 @@ public:
 	}
 
 	const char **RATING_TEXT() {
-		delete[] _ratingText;
-		_ratingText = new const char *[24] {
+		static const char *_ratingText[] = {
 			"\x8D\xA5\xE2", "\x8C\xA8\xA7\xA5\xE0\xAD\xEB\xA9", "\x86\xA0\xAB\xAA\xA8\xA9", "\x8E\xE7.\xAD\xA8\xA7\xAA\xA8\xA9", "\x8D\xA8\xA7\xAA\xA8\xA9", "\x91\xE0\xA5\xA4\xAD\xA8\xA9", "\x95\xAE\xE0\xAE\xE8\xA8\xA9",											// "Нет", "Мизерный", "Жалкий", "Оч.низкий", "Низкий", "Средний", "Хороший",
 			"\x8E\xE2\xAB\xA8\xE7\xAD\xEB\xA9", "\x82\xEB\xE1\xAE\xAA\xA8\xA9", "\x82\xEB\xE1\xAE\xE7\xA5\xAD\xAD\xEB\xA9", "\x81\xAE\xAB\xEC\xE8\xAE\xA9", "\x8E\xA3\xE0\xAE\xAC\xAD\xEB\xA9", "\x93\xA4\xA8\xA2\xA8\xE2\xA5\xAB\xEC\xAD\xEB\xA9",                     // "Отличный", "Высокий", "Высоченный", "Большой", "Огромный", "Удивительный",
 			"\x8D\xA5\xA2\xA5\xE0\xAE\xEF\xE2\xAD\xEB\xA9", "\x83\xA8\xA3\xA0\xAD\xE2\xE1\xAA\xA8\xA9", "\x94\xA0\xAD\xE2\xA0\xE1\xE2\xA8\xE7\xAD\xEB\xA9", "\x88\xA7\xE3\xAC\xA8\xE2\xA5\xAB\xEC\xAD\xEB\xA9", "\x8F\xAE\xE0\xA0\xA7\xA8\xE2\xA5\xAB\xEC\xAD\xEB\xA9", // "Невероятный", "Гигантский", "Фантастичный", "Изумительный", "Поразительный",
@@ -875,8 +854,7 @@ public:
 	}
 
 	const char **BORN() {
-		delete[] _born;
-		_born = new const char *[2] { "\x90\xAE\xA4\xA8\xAB\xE1\xEF", "\x90\xAE\xA4\xA8\xAB\xA0\xE1\xEC" }; // "Родился", "Родилась"
+		static const char *_born[] = { "\x90\xAE\xA4\xA8\xAB\xE1\xEF", "\x90\xAE\xA4\xA8\xAB\xA0\xE1\xEC" }; // "Родился", "Родилась"
 		return _born;
 	}
 
@@ -925,8 +903,7 @@ public:
 	}
 
 	const char **FOOD_ON_HAND() {
-		delete[] _onHand;
-		_onHand = new const char *[3] { "\xAF\xAE\xE0\xE6\xA8\xEF", "\xAF\xAE\xE0\xE6\xA8\xA8", "\xAF\xAE\xE0\xE6\xA8\xA9" }; // "порция", "порции", "порций"
+		static const char *_onHand[] = { "\xAF\xAE\xE0\xE6\xA8\xEF", "\xAF\xAE\xE0\xE6\xA8\xA8", "\xAF\xAE\xE0\xE6\xA8\xA9" }; // "порция", "порции", "порций"
 		return _onHand;
 	}
 
@@ -1034,8 +1011,7 @@ public:
 	}
 
 	const char **BONUS_NAMES() {
-		delete[] _bonusNames;
-		_bonusNames = new const char *[7] {
+		static const char *_bonusNames[] = {
 			"", "\x93\xA1\xA8\xA9\xE6\xEB \xA4\xE0\xA0\xAA\xAE\xAD\xAE\xA2", "\x88\xA7\xA3\xAE\xAD\xEF\xEE\xE9\xA5\xA3\xAE \xAC\xF1\xE0\xE2\xA2\xEB\xE5", "\x8A\xE0\xE3\xE8\xA8\xE2\xA5\xAB\xEF \xA3\xAE\xAB\xA5\xAC\xAE\xA2", // "", "Убийцы драконов", "Изгоняющего мёртвых", "Крушителя големов",
 			"\x84\xA0\xA2\xA8\xE2\xA5\xAB\xEF \xAD\xA0\xE1\xA5\xAA\xAE\xAC\xEB\xE5", "\x93\xA1\xA8\xA9\xE6\xEB \xAC\xAE\xAD\xE1\xE2\xE0\xAE\xA2", "\x93\xA1\xA8\xA9\xE6\xEB \xA7\xA2\xA5\xE0\xA5\xA9"                          // "Давителя насекомых", "Убийцы монстров", "Убийцы зверей"
 		};
@@ -1043,8 +1019,7 @@ public:
 	}
 
 	const char **WEAPON_NAMES() {
-		delete[] _weaponNames;
-		_weaponNames = new const char *[41] {
+		static const char *_weaponNames[] = {
 			nullptr, "\xAC\xA5\xE7 ", "\xA3\xAB\xA0\xA4\xA8\xE3\xE1 ", "\xAF\xA0\xAB\xA0\xE8 ", "\xEF\xE2\xA0\xA3\xA0\xAD ",																			   // nullptr, "меч ", "гладиус ", "палаш ", "ятаган ",
 			"\xAA\xAE\xE0\xE2\xA8\xAA ", "\xE1\xA0\xA1\xAB\xEF ", "\xA4\xE3\xA1\xA8\xAD\xA0 ", "\xE2\xAE\xAF\xAE\xE0 ", "\xAA\xA0\xE2\xA0\xAD\xA0 ", "\xAD\xE3\xAD\xE7\xA0\xAA\xA8 ",                      // "кортик ", "сабля ", "дубина ", "топор ", "катана ", "нунчаки ",
 			"\xA2\xA0\xAA\xA8\xA4\xA7\xA0\xE1\xA8 ", "\xAA\xA8\xAD\xA6\xA0\xAB ", "\xA1\xE3\xAB\xA0\xA2\xA0 ", "\xE6\xA5\xAF ", "\xA6\xA5\xA7\xAB ", "\xAC\xAE\xAB\xAE\xE2 ", "\xAA\xAE\xAF\xEC\xF1 ",     // "вакидзаси ", "кинжал ", "булава ", "цеп ", "жезл ", "молот ", "копьё ",
@@ -1059,8 +1034,7 @@ public:
 	}
 
 	const char **ARMOR_NAMES() {
-		delete[] _armorNames;
-		_armorNames = new const char *[14] {
+		static const char *_armorNames[] = {
 			nullptr, "\xAC\xA0\xAD\xE2\xA8\xEF ", "\xE7\xA5\xE8\xE3\xEF ", "\xAF\xA0\xAD\xE6\xA8\xE0\xEC ", "\xAA\xAE\xAB\xEC\xE7\xE3\xA3\xA0 ",		// nullptr, "мантия ", "чешуя ", "панцирь ", "кольчуга ",
 			"\xEE\xE8\xAC\xA0\xAD ", "\xA1\xA5\xE5\xE2\xA5\xE0\xA5\xE6 ", "\xAB\xA0\xE2\xEB ", "\xE9\xA8\xE2 ",                                         // "юшман ", "бехтерец ", "латы ", "щит ",
 			"\xE8\xAB\xA5\xAC ", "\xE1\xA0\xAF\xAE\xA3\xA8 ", "\xAF\xAB\xA0\xE9 ", "\xAD\xA0\xAA\xA8\xA4\xAA\xA0 ", "\xAF\xA5\xE0\xE7\xA0\xE2\xAA\xA8 " // "шлем ", "сапоги ", "плащ ", "накидка ", "перчатки "
@@ -1069,8 +1043,7 @@ public:
 	}
 
 	const char **ACCESSORY_NAMES() {
-		delete[] _accessoryNames;
-		_accessoryNames = new const char *[11] {
+		static const char *_accessoryNames[] = {
 			nullptr, "\xAA\xAE\xAB\xEC\xE6\xAE ", "\xAF\xAE\xEF\xE1 ", "\xA1\xE0\xAE\xE8\xEC ", "\xAC\xA5\xA4\xA0\xAB\xEC ", "\xE2\xA0\xAB\xA8\xE1\xAC\xA0\xAD ", "\xAA\xA0\xAC\xA5\xEF ", // nullptr, "кольцо ", "пояс ", "брошь ", "медаль ", "талисман ", "камея ",
 			"\xE1\xAA\xA0\xE0\xA0\xA1\xA5\xA9 ", "\xAA\xE3\xAB\xAE\xAD ", "\xAE\xA6\xA5\xE0\xA5\xAB\xEC\xA5 ", "\xA0\xAC\xE3\xAB\xA5\xE2 "                                                 // "скарабей ", "кулон ", "ожерелье ", "амулет "
 		};
@@ -1078,8 +1051,7 @@ public:
 	}
 
 	const char **MISC_NAMES() {
-		delete[] _miscNames;
-		_miscNames = new const char *[22] {
+		static const char *_miscNames[] = {
 			nullptr, "\xE1\xAA\xA8\xAF\xA5\xE2\xE0 ", "\xE1\xA0\xAC\xAE\xE6\xA2\xA5\xE2 ", "\xAA\xA0\xAC\xA5\xAD\xEC ", "\xE8\xAA\xA0\xE2\xE3\xAB\xAA\xA0 ", "\xE1\xE4\xA5\xE0\xA0 ", "\xE0\xAE\xA3 ",								// nullptr, "скипетр ", "самоцвет ", "камень ", "шкатулка ", "сфера ", "рог ",
 			"\xAC\xAE\xAD\xA5\xE2\xAA\xA0 ", "\xA6\xA5\xA7\xAB ", "\xE1\xA2\xA8\xE1\xE2\xAE\xAA ", "\xA7\xA5\xAB\xEC\xA5 ", "\xE1\xA2\xA8\xE2\xAE\xAA ", "\xAF\xAE\xA4\xA4\xA5\xAB\xAA\xA0", "\xAF\xAE\xA4\xA4\xA5\xAB\xAA\xA0",    // "монетка ", "жезл ", "свисток ", "зелье ", "свиток ", "подделка", "подделка",
 			"\xAF\xAE\xA4\xA4\xA5\xAB\xAA\xA0", "\xAF\xAE\xA4\xA4\xA5\xAB\xAA\xA0", "\xAF\xAE\xA4\xA4\xA5\xAB\xAA\xA0", "\xAF\xAE\xA4\xA4\xA5\xAB\xAA\xA0", "\xAF\xAE\xA4\xA4\xA5\xAB\xAA\xA0", "\xAF\xAE\xA4\xA4\xA5\xAB\xAA\xA0", // "подделка", "подделка", "подделка", "подделка", "подделка", "подделка",
@@ -1089,8 +1061,7 @@ public:
 	}
 
 	const char **SPECIAL_NAMES() {
-		delete[] _specialNames;
-		_specialNames = new const char *[74] {
+		static const char *_specialNames[] = {
 			nullptr, "\xE1\xA2\xA5\xE2\xA0", "\xAF\xE0\xAE\xA1\xE3\xA6\xA4\xA5\xAD\xA8\xEF", "\xA2\xAE\xAB\xE8\xA5\xA1\xAD\xEB\xE5 \xE1\xE2\xE0\xA5\xAB", "\xAF\xA5\xE0\xA2\xAE\xA9 \xAF\xAE\xAC\xAE\xE9\xA8",														  // nullptr, "света", "пробуждения", "волшебных стрел", "первой помощи",
 			"\xAA\xE3\xAB\xA0\xAA\xAE\xA2", "\xED\xAD\xA5\xE0\xA3\xA5\xE2\xA8\xE7\xA5\xE1\xAA\xAE\xA3\xAE \xA2\xA7\xE0\xEB\xA2\xA0", "\xE3\xE1\xEB\xAF\xAB\xA5\xAD\xA8\xEF", "\xAB\xA5\xE7\xA5\xAD\xA8\xEF \xE1\xAB\xA0\xA1\xAE\xE1\xE2\xA8",                         // "кулаков", "энергетического взрыва", "усыпления", "лечения слабости",
 			"\xAB\xA5\xE7\xA5\xAD\xA8\xEF", "\xA8\xE1\xAA\xE0", "\xE8\xE0\xA0\xAF\xAD\xA5\xAB\xA8", "\xE0\xA5\xAF\xA5\xAB\xAB\xA5\xAD\xE2\xA0", "\xEF\xA4\xAE\xA2\xA8\xE2\xEB\xE5 \xAE\xA1\xAB\xA0\xAA\xAE\xA2",                                                      // "лечения", "искр", "шрапнели", "репеллента", "ядовитых облаков",
@@ -1114,16 +1085,14 @@ public:
 	}
 
 	const char **ELEMENTAL_NAMES() {
-		delete[] _elementalNames;
-		_elementalNames = new const char *[6] {
+		static const char *_elementalNames[] = {
 			"\x8E\xA3\xAD\xEF", "\x83\xE0\xAE\xAC\xA0", "\x95\xAE\xAB\xAE\xA4\xA0", "\x8A\xA8\xE1\xAB\xAE\xE2\xEB/\x9F\xA4\xA0", "\x9D\xAD\xA5\xE0\xA3\xA8\xA8", "\x8C\xA0\xA3\xA8\xA8" // "Огня", "Грома", "Холода", "Кислоты/Яда", "Энергии", "Магии"
 		};
 		return _elementalNames;
 	}
 
 	const char **ATTRIBUTE_NAMES() {
-		delete[] _attributeNames;
-		_attributeNames = new const char *[10] {
+		static const char *_attributeNames[] = {
 			"\x91\xA8\xAB\xA0", "\x88\xAD\xE2\xA5\xAB\xAB\xA5\xAA\xE2", "\x91\xA8\xAB\xA0 \xA4\xE3\xE5\xA0", "\x91\xAA\xAE\xE0\xAE\xE1\xE2\xEC", "\x8C\xA5\xE2\xAA\xAE\xE1\xE2\xEC", "\x93\xA4\xA0\xE7\xA0", // "Сила", "Интеллект", "Сила духа", "Скорость", "Меткость", "Удача",
 			"\x87\xA4\xAE\xE0\xAE\xA2\xEC\xA5", "\x8E\xE7\xAA\xA8 \xAC\xA0\xA3\xA8\xA8", "\x8A\xAB\xA0\xE1\xE1 \xA7\xA0\xE9\xA8\xE2\xEB", "\x82\xAE\xE0\xAE\xA2\xE1\xE2\xA2\xAE"                             // "Здоровье", "Очки магии", "Класс защиты", "Воровство"
 		};
@@ -1131,16 +1100,14 @@ public:
 	}
 
 	const char **EFFECTIVENESS_NAMES() {
-		delete[] _effectivenessNames;
-		_effectivenessNames = new const char *[7] {
+		static const char *_effectivenessNames[] = {
 			nullptr, "\x84\xE0\xA0\xAA\xAE\xAD\xAE\xA2", "\x8C\xF1\xE0\xE2\xA2\xEB\xE5", "\x83\xAE\xAB\xA5\xAC\xAE\xA2", "\x8D\xA0\xE1\xA5\xAA\xAE\xAC\xEB\xE5", "\x8C\xAE\xAD\xE1\xE2\xE0\xAE\xA2", "\x87\xA2\xA5\xE0\xA5\xA9" // nullptr, "Драконов", "Мёртвых", "Големов", "Насекомых", "Монстров", "Зверей"
 		};
 		return _effectivenessNames;
 	}
 
 	const char **QUEST_ITEM_NAMES() {
-		delete[] _questItemNames;
-		_questItemNames = new const char *[85] {
+		static const char *_questItemNames[] = {
 			"\x8F\xE0\xA0\xA2\xAE \xA2\xAB\xA0\xA4\xA5\xAD\xA8\xEF \x8D\xEC\xEE\xAA\xA0\xE1\xAB\xAE\xAC",											   // "Право владения Ньюкаслом",
 			"\x95\xE0\xE3\xE1\xE2\xA0\xAB\xEC\xAD\xEB\xA9 \xAA\xAB\xEE\xE7 \xAE\xE2 \x82\xA5\xA4\xEC\xAC\xA8\xAD\xAE\xA9 \xA1\xA0\xE8\xAD\xA8",        // "Хрустальный ключ от Ведьминой башни",
 			"\x8E\xE2\xAC\xEB\xE7\xAA\xA0 \xA4\xAB\xEF \xA1\xA0\xE8\xAD\xA8 \x84\xA0\xE0\xA7\xAE\xA3\xA0",                                             // "Отмычка для башни Дарзога",
@@ -1231,8 +1198,7 @@ public:
 	}
 
 	const char **QUEST_ITEM_NAMES_SWORDS() {
-		delete[] _questItemNamesSwords;
-		_questItemNamesSwords = new const char *[51] {
+		static const char *_questItemNamesSwords[] = {
 			"Pass to Hart", "Pass to Impery", "Pass to town3", "Pass to town4", "Pass to town5",
 				"Key to Hart Sewers", "Key to Rettig's Pyramid", "Key to the Old Temple",
 				"Key to Canegtut's Pyramid", "Key to Ascihep's Pyramid", "Key to Dragon Tower",
@@ -1258,8 +1224,7 @@ public:
 	}
 
 	const char **CATEGORY_NAMES() {
-		delete[] _categoryNames;
-		_categoryNames = new const char *[4] { "\x8E\xE0\xE3\xA6\xA8\xA5", "\x81\xE0\xAE\xAD\xEF", "\x93\xAA\xE0\xA0\xE8\xA5\xAD\xA8\xEF", "\x90\xA0\xA7\xAD\xAE\xA5" }; // "Оружие", "Броня", "Украшения", "Разное"
+		static const char *_categoryNames[] = { "\x8E\xE0\xE3\xA6\xA8\xA5", "\x81\xE0\xAE\xAD\xEF", "\x93\xAA\xE0\xA0\xE8\xA5\xAD\xA8\xEF", "\x90\xA0\xA7\xAD\xAE\xA5" }; // "Оружие", "Броня", "Украшения", "Разное"
 		return _categoryNames;
 	}
 
@@ -1298,8 +1263,7 @@ public:
 	}
 
 	const char **ITEM_ACTIONS() {
-		delete[] _itemActions;
-		_itemActions = new const char *[7] {
+		static const char *_itemActions[] = {
 			"\xAD\xA0\xA4\xA5\xE2\xEC", "\xE1\xAD\xEF\xE2\xEC", "\xA8\xE1\xAF\xAE\xAB\xEC\xA7\xAE\xA2\xA0\xE2\xEC", "\xA2\xEB\xAA\xA8\xAD\xE3\xE2\xEC", "\xA7\xA0\xE7\xA0\xE0\xAE\xA2\xA0\xE2\xEC", "\xAF\xA5\xE0\xA5\xA7\xA0\xE0\xEF\xA4\xA8\xE2\xEC", // "надеть", "снять", "использовать", "выкинуть", "зачаровать", "перезарядить",
 			"\x8F\xE0\xA5\xA2\xE0\xA0\xE2\xA8\xE2\xEC \xA2 \xA7\xAE\xAB\xAE\xE2\xAE"                                                                                                                                                                    // "Превратить в золото"
 		};
@@ -1360,8 +1324,7 @@ public:
 	}
 
 	const char **CATEGORY_BACKPACK_IS_FULL() {
-		delete[] _categoryBackpackIsFull;
-		_categoryBackpackIsFull = new const char *[4] {
+		static const char *_categoryBackpackIsFull[] = {
 			"\v010\t000\x3""c%s! \x82\xA0\xE8 \xE0\xEE\xAA\xA7\xA0\xAA \xAF\xAE\xAB\xAE\xAD.", // "\v010\t000\x3""c%s! Ваш рюкзак полон.",
 			"\v010\t000\x3""c%s! \x82\xA0\xE8 \xE0\xEE\xAA\xA7\xA0\xAA \xAF\xAE\xAB\xAE\xAD.", // "\v010\t000\x3""c%s! Ваш рюкзак полон.",
 			"\v010\t000\x3""c%s! \x82\xA0\xE8 \xE0\xEE\xAA\xA7\xA0\xAA \xAF\xAE\xAB\xAE\xAD.", // "\v010\t000\x3""c%s! Ваш рюкзак полон.",
@@ -1379,8 +1342,7 @@ public:
 	}
 
 	const char **GOLDS() {
-		delete[] _sellXForYGoldEndings;
-		_sellXForYGoldEndings = new const char *[2] { "\xA7\xAE\xAB\xAE\xE2\xAE\xA9", "\xA7\xAE\xAB\xAE\xE2\xEB\xE5" }; // "золотой", "золотых"
+		static const char *_sellXForYGoldEndings[] = { "\xA7\xAE\xAB\xAE\xE2\xAE\xA9", "\xA7\xAE\xAB\xAE\xE2\xEB\xE5" }; // "золотой", "золотых"
 		return _sellXForYGoldEndings;
 	}
 
@@ -1405,8 +1367,7 @@ public:
 	}
 
 	const char **FIX_IDENTIFY() {
-		delete[] _fixIdentify;
-		_fixIdentify = new const char *[2] { "\x8F\xAE\xE7\xA8\xAD\xA8\xE2\xEC", "\x8E\xAF\xAE\xA7\xAD\xA0\xE2\xEC" }; // "Починить", "Опознать"
+		static const char *_fixIdentify[] = { "\x8F\xAE\xE7\xA8\xAD\xA8\xE2\xEC", "\x8E\xAF\xAE\xA7\xAD\xA0\xE2\xEC" }; // "Починить", "Опознать"
 		return _fixIdentify;
 	}
 
@@ -1561,8 +1522,7 @@ public:
 	}
 
 	const char **REMOVE_DELETE() {
-		delete[] _removeDelete;
-		_removeDelete = new const char *[2] { "\x82\xEB\xA3\xAD\xA0\xE2\xEC", "\xE3\xA4\xA0\xAB\xA8\xE2\xEC" }; // "Выгнать", "удалить"
+		static const char *_removeDelete[] = { "\x82\xEB\xA3\xAD\xA0\xE2\xEC", "\xE3\xA4\xA0\xAB\xA8\xE2\xEC" }; // "Выгнать", "удалить"
 		return _removeDelete;
 	}
 
@@ -1614,8 +1574,7 @@ public:
 	}
 
 	const int *NEW_CHAR_SKILLS_OFFSET() {
-		delete[] _newCharSkillsOffset;
-		_newCharSkillsOffset = new const int[10]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+		static const int _newCharSkillsOffset[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
 		return _newCharSkillsOffset;
 	}
 
@@ -1628,8 +1587,7 @@ public:
 	}
 
 	const char **SPELL_CAST_COMPONENTS() {
-		delete[] _spellCastComponents;
-		_spellCastComponents = new const char *[2] { "\xAE\xE7\xAA\xAE\xA2 \xAC\xA0\xA3\xA8\xA8", "\xA0\xAB\xAC\xA0\xA7\xAE\xA2" }; // "очков магии", "алмазов"
+		static const char *_spellCastComponents[] = { "\xAE\xE7\xAA\xAE\xA2 \xAC\xA0\xA3\xA8\xA8", "\xA0\xAB\xAC\xA0\xA7\xAE\xA2" }; // "очков магии", "алмазов"
 		return _spellCastComponents;
 	}
 
@@ -1678,8 +1636,7 @@ public:
 	}
 
 	const char **FOUND() {
-		delete[] _found;
-		_found = new const char *[2] { "\xAD\xA0\xE8\xF1\xAB", "\xAD\xA0\xE8\xAB\xA0" }; // "нашёл", "нашла"
+		static const char *_found[] = { "\xAD\xA0\xE8\xF1\xAB", "\xAD\xA0\xE8\xAB\xA0" }; // "нашёл", "нашла"
 		return _found;
 	}
 
@@ -1752,8 +1709,7 @@ public:
 	}
 
 	const char **MONSTER_SPECIAL_ATTACKS() {
-		delete[] _monsterSpecialAttacks;
-		_monsterSpecialAttacks = new const char *[23] {
+		static const char *_monsterSpecialAttacks[] = {
 			"\x8D\xA5\xE2", "\x8C\xA0\xA3\xA8\xEF", "\x8E\xA3\xAD\xEF", "\x83\xE0\xAE\xAC\xA0", "\x95\xAE\xAB\xAE\xA4\xA0", "\x8E\xE2\xE0\xA0\xA2\xAB\xA5\xAD\xA8\xA5", "\x9D\xAD\xA5\xE0\xA3\xA8\xA8",								// "Нет", "Магия", "Огня", "Грома", "Холода", "Отравление", "Энергии",
 			"\x81\xAE\xAB\xA5\xA7\xAD\xEC", "\x81\xA5\xA7\xE3\xAC\xA8\xA5", "\x91\xAE\xAD", "\x8F\xE0\xAA\xAB\x8F\xE0\xA4\xAC", "\x82\xAB\xEE\xA1\xAB", "\x8E\xE1\xE3\xE8\x87\xA4\xAE\xE0", "\x8F\xE0\xAE\xAA\xAB\xEF\xE2\xA8\xA5",	// "Болезнь", "Безумие", "Сон", "ПрклПрдм", "Влюбл", "ОсушЗдор", "Проклятие",
 			"\x8F\xA0\xE0\xA0\xAB\xA8\xE7", "\x81\xA5\xE1\xE1\xAE\xA7\xAD", "\x91\xAC\xEF\xE2\xA5\xAD\xA8\xA5", "\x8B\xAE\xAC\x81\xE0\xAE\xAD", "\x91\xAB\xA0\xA1\xAE\xE1\xE2\xEC", "\x93\xAD\xA8\xE7\xE2\xAE\xA6",					// "Паралич", "Бессозн", "Смятение", "ЛомБрон", "Слабость", "Уничтож",
@@ -1804,8 +1760,7 @@ public:
 	}
 
 	const char **PICK_FORM() {
-		delete[] _pickForm;
-		_pickForm = new const char *[2] { "\xA2\xA7\xAB\xAE\xAC\xA0\xAB", "\xA2\xA7\xAB\xAE\xAC\xA0\xAB\xA0" }; // "взломал", "взломала"
+		static const char *_pickForm[] = { "\xA2\xA7\xAB\xAE\xAC\xA0\xAB", "\xA2\xA7\xAB\xAE\xAC\xA0\xAB\xA0" }; // "взломал", "взломала"
 		return _pickForm;
 	}
 
@@ -1814,8 +1769,7 @@ public:
 	}
 
 	const char **UNABLE_TO_PICK_FORM() {
-		delete[] _unableToPickForm;
-		_unableToPickForm = new const char *[2] { "\xAD\xA5 \xE1\xAC\xAE\xA3", "\xAD\xA5 \xE1\xAC\xAE\xA3\xAB\xA0" }; // "не смог", "не смогла"
+		static const char *_unableToPickForm[] = { "\xAD\xA5 \xE1\xAC\xAE\xA3", "\xAD\xA5 \xE1\xAC\xAE\xA3\xAB\xA0" }; // "не смог", "не смогла"
 		return _unableToPickForm;
 	}
 
@@ -1867,14 +1821,12 @@ public:
 	}
 
 	const char **QUICK_FIGHT_OPTIONS() {
-		delete[] _quickFightOptions;
-		_quickFightOptions = new const char *[4] { "\x80\xE2\xA0\xAA\xA0", "\x87\xA0\xAA\xAB\xA8\xAD\xA0\xAD\xA8\xA5", "\x81\xAB\xAE\xAA", "\x81\xA5\xA3\xE1\xE2\xA2\xAE" }; // "Атака", "Заклинание", "Блок", "Бегство"
+		static const char *_quickFightOptions[] = { "\x80\xE2\xA0\xAA\xA0", "\x87\xA0\xAA\xAB\xA8\xAD\xA0\xAD\xA8\xA5", "\x81\xAB\xAE\xAA", "\x81\xA5\xA3\xE1\xE2\xA2\xAE" }; // "Атака", "Заклинание", "Блок", "Бегство"
 		return _quickFightOptions;
 	}
 
 	const char **WORLD_END_TEXT() {
-		delete[] _worldEndText;
-		_worldEndText = new const char *[9] {
+		static const char *_worldEndText[] = {
 			"\n\n\n\n\n\n\n"
 			"Congratulations Adventurers!\n\n"
 			"Let the unification ceremony begin!",
@@ -1933,8 +1885,7 @@ public:
 	}
 
 	const char **GOOBER() {
-		delete[] _goober;
-		_goober = new const char *[3] {
+		static const char *_goober[] = {
 			"", "I am a Goober!", "I am a Super Goober!"
 		};
 		return _goober;
@@ -1998,8 +1949,7 @@ public:
 	}
 
 	const char **MAE_NAMES() {
-		delete[] _maeNames;
-		_maeNames = new const char *[131] {
+		static const char *_maeNames[] = {
 			"",
 			"\xA6\xA0\xE0\xA0",                                             //жара
 			"\xAE\xA3\xAD\xA5\xA9",                                         //огней
diff --git a/devtools/create_xeen/swords.cpp b/devtools/create_xeen/swords.cpp
index cb223e10f1..499038a721 100644
--- a/devtools/create_xeen/swords.cpp
+++ b/devtools/create_xeen/swords.cpp
@@ -37,7 +37,7 @@
 void writeSwordsData(CCArchive &cc, const char *swordsDatName) {
 	Common::File f;
 	Common::MemFile monsters;
-	const size_t size = MONSTERS_COUNT * 60;
+	const int size = MONSTERS_COUNT * 60;
 	const int32 offset = 0x44200;
 	byte buffer[size];
 
@@ -48,7 +48,7 @@ void writeSwordsData(CCArchive &cc, const char *swordsDatName) {
 		error("Failed to seek to 0x%x for '%s'", offset, swordsDatName);
 
 	if (f.read(buffer, size) != size)
-		error("Failed to read %zu bytes from '%s'", size, swordsDatName);
+		error("Failed to read %d bytes from '%s'", size, swordsDatName);
 
 	if (strcmp((const char *)buffer + 0x33, "Slime"))
 		error("Invalid '%s'", swordsDatName);




More information about the Scummvm-git-logs mailing list