diff --git a/data/Memory-ng.xml b/data/Memory-ng.xml
index fdb84d2b1..0b4293d55 100644
--- a/data/Memory-ng.xml
+++ b/data/Memory-ng.xml
@@ -1481,13 +1481,13 @@
-
+
@@ -1516,7 +1516,7 @@
-
+
@@ -1551,7 +1551,7 @@
-->
-
+
-
+
this is crap it seems
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/library/modules/Materials.cpp b/library/modules/Materials.cpp
index 2ad78361e..608e7b663 100644
--- a/library/modules/Materials.cpp
+++ b/library/modules/Materials.cpp
@@ -402,19 +402,23 @@ bool Materials::ReadCreatureTypesEx (void)
p->readSTLString (caste_start + sizeof_string, caste.singular, sizeof(caste.singular));
p->readSTLString (caste_start + 2 * sizeof_string, caste.plural, sizeof(caste.plural));
p->readSTLString (caste_start + 3 * sizeof_string, caste.adjective, sizeof(caste.adjective));
+ cout << "Caste " << caste.rawname << " " << caste.singular << ": 0x" << hex << caste_start << endl;
if(have_advanced)
{
/* color mod reading */
+ // Caste + offset > color mod vector
DfVector p_colormod(p, caste_start + caste_colormod_offset);
sizecolormod = p_colormod.size();
caste.ColorModifier.resize(sizecolormod);
for(uint32_t k = 0; k < sizecolormod;k++)
{
+ // color mod [0] -> color list
DfVector p_colorlist(p, p_colormod[k]);
sizecolorlist = p_colorlist.size();
caste.ColorModifier[k].colorlist.resize(sizecolorlist);
for(uint32_t l = 0; l < sizecolorlist; l++)
caste.ColorModifier[k].colorlist[l] = p_colorlist[l];
+ // color mod [color_modifier_part_offset] = string part
p->readSTLString( p_colormod[k] + color_modifier_part_offset, caste.ColorModifier[k].part, sizeof(caste.ColorModifier[k].part));
caste.ColorModifier[k].startdate = p->readDWord( p_colormod[k] + color_modifier_startdate_offset );
caste.ColorModifier[k].enddate = p->readDWord( p_colormod[k] + color_modifier_enddate_offset );