diff --git a/devtools/create_xeen/constants.cpp b/devtools/create_xeen/constants.cpp index 92e0d1f82d5..72107599086 100644 --- a/devtools/create_xeen/constants.cpp +++ b/devtools/create_xeen/constants.cpp @@ -627,7 +627,7 @@ const int MONSTER_GRID_BITMASK[12] = { }; const int INDOOR_OBJECT_X[2][12] = { - { 5, -7, -112, 98, -8, -65, 49, -9, -34, 16, -58, 40 }, + { -5, -7, -112, 98, -8, -65, 49, -9, -34, 16, -58, 40 }, { -35, -35, -142, 68, -35, -95, 19, -35, -62, -14, -98, 16 } }; @@ -1694,6 +1694,7 @@ const char *const SELECT_CLASS_BEFORE_SAVING = const char *const EXCHANGE_ATTR_WITH = "Exchange %s with..."; const int NEW_CHAR_SKILLS[10] = { 1, 5, -1, -1, 4, 0, 0, -1, 6, 11 }; +const int NEW_CHAR_SKILLS_OFFSET[10] = { 0, 0, 0, 5, 0, 0, 0, 0, 0, 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 }; @@ -2255,6 +2256,7 @@ void writeConstants(CCArchive &cc) { file.syncString(SELECT_CLASS_BEFORE_SAVING); file.syncString(EXCHANGE_ATTR_WITH); file.syncNumbers((const int *)NEW_CHAR_SKILLS, 10); + file.syncNumbers((const int *)NEW_CHAR_SKILLS_OFFSET, 10); file.syncNumbers((const int *)NEW_CHAR_SKILLS_LEN, 10); file.syncNumbers((const int *)NEW_CHAR_RACE_SKILLS, 10); file.syncNumbers((const int *)RACE_MAGIC_RESISTENCES, 5); diff --git a/dists/engine-data/xeen.ccs b/dists/engine-data/xeen.ccs index d4c6dd68a8d..88671fb669e 100644 Binary files a/dists/engine-data/xeen.ccs and b/dists/engine-data/xeen.ccs differ diff --git a/engines/xeen/dialogs/dialogs_create_char.cpp b/engines/xeen/dialogs/dialogs_create_char.cpp index 9f3e2a51f19..ab86c4939a7 100644 --- a/engines/xeen/dialogs/dialogs_create_char.cpp +++ b/engines/xeen/dialogs/dialogs_create_char.cpp @@ -389,7 +389,8 @@ int CreateCharacterDialog::newCharDetails(Race race, Sex sex, int classId, // Set up default skill for the race, if any if (Res.NEW_CHAR_RACE_SKILLS[race] != -1) { - raceSkillStr = Res.SKILL_NAMES[Res.NEW_CHAR_RACE_SKILLS[race]]; + const char *skillP = Res.SKILL_NAMES[Res.NEW_CHAR_RACE_SKILLS[race]]; + raceSkillStr = Common::String(skillP + Res.NEW_CHAR_SKILLS_OFFSET[race]); } // Set up color to use for each skill string to be displayed, based diff --git a/engines/xeen/resources.cpp b/engines/xeen/resources.cpp index 58f2926e9cc..160c60a7a91 100644 --- a/engines/xeen/resources.cpp +++ b/engines/xeen/resources.cpp @@ -340,6 +340,7 @@ void Resources::loadData() { file.syncString(SELECT_CLASS_BEFORE_SAVING); file.syncString(EXCHANGE_ATTR_WITH); file.syncNumbers((int *)NEW_CHAR_SKILLS, 10); + file.syncNumbers((int *)NEW_CHAR_SKILLS_OFFSET, 10); file.syncNumbers((int *)NEW_CHAR_SKILLS_LEN, 10); file.syncNumbers((int *)NEW_CHAR_RACE_SKILLS, 10); file.syncNumbers((int *)RACE_MAGIC_RESISTENCES, 5); diff --git a/engines/xeen/resources.h b/engines/xeen/resources.h index f141a2eb751..55f0ed34139 100644 --- a/engines/xeen/resources.h +++ b/engines/xeen/resources.h @@ -395,6 +395,7 @@ public: const char *SELECT_CLASS_BEFORE_SAVING; const char *EXCHANGE_ATTR_WITH; int NEW_CHAR_SKILLS[10]; + int NEW_CHAR_SKILLS_OFFSET[10]; int NEW_CHAR_SKILLS_LEN[10]; int NEW_CHAR_RACE_SKILLS[10]; int RACE_MAGIC_RESISTENCES[5];