XEEN: Fix spells list selection for Vertigo guild

This commit is contained in:
Paul Gilbert 2018-03-18 21:29:51 -04:00
parent 500ed10658
commit c1b094bba8
5 changed files with 7 additions and 7 deletions

View File

@ -1037,7 +1037,7 @@ const int DARK_SPELL_RANGES[12][2] = {
{ 0, 20 }, { 16, 35 }, { 27, 37 }, { 29, 39 }
};
const int CLOUDS_SPELL_OFFSETS[5][20] = {
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
@ -2002,7 +2002,7 @@ void writeConstants(CCArchive &cc) {
file.syncString(GUILD_OPTIONS);
file.syncNumbers((const int *)MISC_SPELL_INDEX, 74);
file.syncNumbers((const int *)SPELL_COSTS, 77);
file.syncNumbers2D((const int *)CLOUDS_SPELL_OFFSETS, 5, 20);
file.syncNumbers2D((const int *)CLOUDS_GUILD_SPELLS, 5, 20);
file.syncNumbers2D((const int *)DARK_SPELL_OFFSETS, 3, 39);
file.syncNumbers2D((const int *)DARK_SPELL_RANGES, 12, 2);
file.syncNumbers((const int *)SPELL_GEM_COST, 77);

View File

@ -284,7 +284,7 @@ const char *SpellsDialog::setSpellText(Character *c, int mode) {
if ((mode & 0x7f) == 0) {
if (category != SPELLCAT_INVALID) {
if (party._mazeId == 49 || party._mazeId == 37) {
for (uint spellId = 0; spellId < 76; ++spellId) {
for (uint spellId = 0; spellId < TOTAL_SPELLS; ++spellId) {
int idx = 0;
while (idx < CHAR_MAX_SPELLS && Res.SPELLS_ALLOWED[category][idx] != (int)spellId)
++idx;
@ -319,7 +319,7 @@ const char *SpellsDialog::setSpellText(Character *c, int mode) {
} else {
for (int spellId = 0; spellId < 20; ++spellId) {
int idx = 0;
while (Res.CLOUDS_SPELL_OFFSETS[party._mazeId - 29][spellId] !=
while (Res.CLOUDS_GUILD_SPELLS[party._mazeId - 28][spellId] !=
(int)Res.SPELLS_ALLOWED[category][idx] && idx < SPELLS_PER_CLASS)
++idx;

View File

@ -182,7 +182,7 @@ void Resources::loadData() {
file.syncString(GUILD_OPTIONS);
file.syncNumbers((int *)MISC_SPELL_INDEX, 74);
file.syncNumbers((int *)SPELL_COSTS, 77);
file.syncNumbers2D((int *)CLOUDS_SPELL_OFFSETS, 5, 20);
file.syncNumbers2D((int *)CLOUDS_GUILD_SPELLS, 5, 20);
file.syncNumbers2D((int *)DARK_SPELL_OFFSETS, 3, 39);
file.syncNumbers2D((int *)DARK_SPELL_RANGES, 12, 2);
file.syncNumbers((int *)SPELL_GEM_COST, 77);

View File

@ -236,7 +236,7 @@ public:
const char *GUILD_OPTIONS;
int MISC_SPELL_INDEX[74];
int SPELL_COSTS[77];
int CLOUDS_SPELL_OFFSETS[5][20];
int CLOUDS_GUILD_SPELLS[5][20];
int DARK_SPELL_OFFSETS[3][39];
int DARK_SPELL_RANGES[12][2];
int SPELL_LEVEL_OFFSETS[3][39];

View File

@ -56,7 +56,7 @@ enum MagicSpell {
MS_SuppressDisease = 67, MS_SuppressPoison = 68, MS_Teleport = 69,
MS_TimeDistortion = 70, MS_TownPortal = 71, MS_ToxicCloud = 72,
MS_TurnUndead = 73, MS_WalkOnWater = 74, MS_WizardEye = 75,
NO_SPELL = 76
NO_SPELL = 76, TOTAL_SPELLS = 76
};
class Spells {