aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/resources.h
diff options
context:
space:
mode:
authorPaul Gilbert2018-02-20 18:50:17 -0500
committerPaul Gilbert2018-02-23 15:23:20 -0500
commit900ef91aca039dc23e4cf300070f7fa5f6f3a335 (patch)
tree3fb56a267ea2d8d3b36689eb302d44238645879e /engines/xeen/resources.h
parent1b85d1dbc966b909f9ff9c9cc0eaac4b8ab872ae (diff)
downloadscummvm-rg350-900ef91aca039dc23e4cf300070f7fa5f6f3a335.tar.gz
scummvm-rg350-900ef91aca039dc23e4cf300070f7fa5f6f3a335.tar.bz2
scummvm-rg350-900ef91aca039dc23e4cf300070f7fa5f6f3a335.zip
XEEN: Creation of create_xeen tool
Diffstat (limited to 'engines/xeen/resources.h')
-rw-r--r--engines/xeen/resources.h736
1 files changed, 406 insertions, 330 deletions
diff --git a/engines/xeen/resources.h b/engines/xeen/resources.h
index c9e0c2ff5a..513e70d1c4 100644
--- a/engines/xeen/resources.h
+++ b/engines/xeen/resources.h
@@ -26,6 +26,7 @@
#include "common/scummsys.h"
#include "common/str-array.h"
#include "gui/debugger.h"
+#include "xeen/files.h"
#include "xeen/party.h"
#include "xeen/spells.h"
@@ -36,344 +37,419 @@ namespace Xeen {
class XeenEngine;
class Resources {
-protected:
- Resources();
+ /**
+ * Derived string class to fix automatic type conversion to const char *
+ */
+ class String : public Common::String {
+ public:
+ String() : Common::String() {}
+ String(const Common::String &s) : Common::String(s) {}
+ operator const char *() { return c_str(); }
+ };
+
+ /**
+ * Derived file class with sync method aliases so that the same
+ * code from create_xeen can be re-used for both reading and
+ * writing the resource data
+ */
+ class ResFile : public File {
+ public:
+ ResFile() : File("CONSTANTS") {}
+
+ void syncString(String &str) {
+ str = readString();
+ }
+ void syncStrings(String *str, int count) {
+ uint tag = readUint32LE();
+ assert(tag == MKTAG(count, 0, 0, 0));
+ for (int idx = 0; idx < count; ++idx)
+ str[idx] = readString();
+ }
+ void syncStrings2D(String *str, int count1, int count2) {
+ uint tag = readUint32LE();
+ assert(tag == MKTAG(count1, count2, 0, 0));
+ for (int idx = 0; idx < count1 * count2; ++idx)
+ str[idx] = readString();
+ }
+ void syncNumber(int &val) {
+ val = readSint32LE();
+ }
+ void syncNumbers(int *vals, int count) {
+ uint tag = readUint32LE();
+ assert(tag == MKTAG(count, 0, 0, 0));
+ for (int idx = 0; idx < count; ++idx)
+ vals[idx] = readSint32LE();
+ }
+ void syncNumbers2D(int *vals, int count1, int count2) {
+ uint tag = readUint32LE();
+ assert(tag == MKTAG(count1, count2, 0, 0));
+ for (int idx = 0; idx < count1 * count2; ++idx)
+ vals[idx] = readSint32LE();
+ }
+ void syncNumbers3D(int *vals, int count1, int count2, int count3) {
+ uint tag = readUint32LE();
+ assert(tag == MKTAG(count1, count2, count3, 0));
+ for (int idx = 0; idx < count1 * count2 * count3; ++idx)
+ vals[idx] = readSint32LE();
+ }
+ void syncNumbers4D(int *vals, int count1, int count2, int count3, int count4) {
+ uint tag = readUint32LE();
+ assert(tag == MKTAG(count1, count2, count3, count4));
+ for (int idx = 0; idx < count1 * count2 * count3 * count4; ++idx)
+ vals[idx] = readSint32LE();
+ }
+ void syncBytes2D(byte *vals, int count1, int count2) {
+ uint tag = readUint32LE();
+ assert(tag == MKTAG(count1, count2, 0, 0));
+ read(vals, count1 * count2);
+ }
+ };
+private:
+ /**
+ * Loads all the constants data stored in the xeen.css
+ */
+ void loadData();
public:
SpriteResource _globalSprites;
Common::StringArray _maeNames; // Magic and equipment names
- static const char *const CREDITS;
- static const char *const OPTIONS_TITLE;
- static const char *const THE_PARTY_NEEDS_REST;
- static const char *const WHO_WILL;
- static const char *const HOW_MUCH;
- static const char *const WHATS_THE_PASSWORD;
- static const char *const IN_NO_CONDITION;
- static const char *const NOTHING_HERE;
- static const char *const TERRAIN_TYPES[6];
- static const char *const OUTDOORS_WALL_TYPES[16];
- static const char *const SURFACE_NAMES[16];
- static const char *const WHO_ACTIONS[32];
- static const char *const WHO_WILL_ACTIONS[4];
- static const byte SYMBOLS[20][64];
- static const byte TEXT_COLORS[40][4];
- static const char *const DIRECTION_TEXT_UPPER[4];
- static const char *const DIRECTION_TEXT[4];
- static const char *const RACE_NAMES[5];
- static const int RACE_HP_BONUSES[5];
- static const int RACE_SP_BONUSES[5][2];
- static const char *const CLASS_NAMES[11];
- static const uint CLASS_EXP_LEVELS[10];
- static const char *const ALIGNMENT_NAMES[3];
- static const char *const SEX_NAMES[2];
- static const char *const SKILL_NAMES[18];
- static const char *const CONDITION_NAMES[17];
- static const int CONDITION_COLORS[17];
- static const char *const GOOD;
- static const char *const BLESSED;
- static const char *const POWER_SHIELD;
- static const char *const HOLY_BONUS;
- static const char *const HEROISM;
- static const char *const IN_PARTY;
- static const char *const PARTY_DETAILS;
- static const char *const PARTY_DIALOG_TEXT;
- static const int FACE_CONDITION_FRAMES[17];
- static const int CHAR_FACES_X[6];
- static const int HP_BARS_X[6];
- static const char *const NO_ONE_TO_ADVENTURE_WITH;
- static const byte DARKNESS_XLAT[3][256];
- static const char *const YOUR_ROSTER_IS_FULL;
- static const char *const PLEASE_WAIT;
- static const char *const OOPS;
- static const int8 SCREEN_POSITIONING_X[4][48];
- static const int8 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 uint 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 uint 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[9];
- 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 char *const BANK_TEXT;
- static const char *const BLACKSMITH_TEXT;
- static const char *const GUILD_NOT_MEMBER_TEXT;
- static const char *const GUILD_TEXT;
- static const char *const TAVERN_TEXT;
- static const char *const GOOD_STUFF;
- static const char *const HAVE_A_DRINK;
- static const char *const YOURE_DRUNK;
- static const int TAVERN_EXIT_LIST[2][6][5][2];
- static const char *const FOOD_AND_DRINK;
- static const char *const TEMPLE_TEXT;
- static const char *const EXPERIENCE_FOR_LEVEL;
- static const char *const LEARNED_ALL;
- static const char *const ELIGIBLE_FOR_LEVEL;
- static const char *const TRAINING_TEXT;
- static const char *const GOLD_GEMS;
- static const char *const GOLD_GEMS_2;
- static const char *const DEPOSIT_WITHDRAWL[2];
- static const char *const NOT_ENOUGH_X_IN_THE_Y;
- static const char *const NO_X_IN_THE_Y;
- static const char *const STAT_NAMES[16];
- static const char *const CONSUMABLE_NAMES[4];
- static const char *const WHERE_NAMES[2];
- static const char *const AMOUNT;
- static const char *const FOOD_PACKS_FULL;
- static const char *const BUY_SPELLS;
- static const char *const GUILD_OPTIONS;
- static const int MISC_SPELL_INDEX[74];
- static const int SPELL_COSTS[77];
- static const int CLOUDS_SPELL_OFFSETS[5][20];
- static const uint DARK_SPELL_OFFSETS[3][39];
- static const int DARK_SPELL_RANGES[12][2];
- static const int SPELL_LEVEL_OFFSETS[3][39];
- static const int SPELL_GEM_COST[77];
- static const char *const NOT_A_SPELL_CASTER;
- static const char *const SPELLS_FOR;
- static const char *const SPELL_LINES_0_TO_9;
- static const char *const SPELLS_DIALOG_SPELLS;
- static const char *const SPELL_PTS;
- static const char *const GOLD;
- static const char *const SPELLS_PRESS_A_KEY;
- static const char *const SPELLS_PURCHASE;
- static const char *const MAP_TEXT;
- static const char *const LIGHT_COUNT_TEXT;
- static const char *const FIRE_RESISTENCE_TEXT;
- static const char *const ELECRICITY_RESISTENCE_TEXT;
- static const char *const COLD_RESISTENCE_TEXT;
- static const char *const POISON_RESISTENCE_TEXT;
- static const char *const CLAIRVOYANCE_TEXT;
- static const char *const LEVITATE_TEXT;
- static const char *const WALK_ON_WATER_TEXT;
- static const char *const GAME_INFORMATION;
- static const char *const WORLD_GAME_TEXT;
- static const char *const DARKSIDE_GAME_TEXT;
- static const char *const CLOUDS_GAME_TEXT;
- static const char *const SWORDS_GAME_TEXT;
- static const char *const WEEK_DAY_STRINGS[10];
- static const char *const CHARACTER_DETAILS;
- static const char *const PARTY_GOLD;
- static const char *const PLUS_14;
- static const char *const CHARACTER_TEMPLATE;
- static const char *const EXCHANGING_IN_COMBAT;
- static const char *const CURRENT_MAXIMUM_RATING_TEXT;
- static const char *const CURRENT_MAXIMUM_TEXT;
- static const char *const RATING_TEXT[24];
- static const char *const AGE_TEXT;
- static const char *const LEVEL_TEXT;
- static const char *const RESISTENCES_TEXT;
- static const char *const NONE;
- static const char *const EXPERIENCE_TEXT;
- static const char *const ELIGIBLE;
- static const char *const IN_PARTY_IN_BANK;
- static const char *const FOOD_TEXT;
- static const char *const EXCHANGE_WITH_WHOM;
- static const char *const QUICK_REF_LINE;
- static const char *const QUICK_REFERENCE;
- static const uint BLACKSMITH_MAP_IDS[2][4];
- static const char *const ITEMS_DIALOG_TEXT1;
- static const char *const ITEMS_DIALOG_TEXT2;
- static const char *const ITEMS_DIALOG_LINE1;
- static const char *const ITEMS_DIALOG_LINE2;
- static const char *const BTN_BUY;
- static const char *const BTN_SELL;
- static const char *const BTN_IDENTIFY;
- static const char *const BTN_FIX;
- static const char *const BTN_USE;
- static const char *const BTN_EQUIP;
- static const char *const BTN_REMOVE;
- static const char *const BTN_DISCARD;
- static const char *const BTN_QUEST;
- static const char *const BTN_ENCHANT;
- static const char *const BTN_RECHARGE;
- static const char *const BTN_GOLD;
- static const char *const ITEM_BROKEN;
- static const char *const ITEM_CURSED;
- static const char *const BONUS_NAMES[7];
- static const char *const WEAPON_NAMES[35];
- static const char *const ARMOR_NAMES[14];
- static const char *const ACCESSORY_NAMES[11];
- static const char *const MISC_NAMES[22];
- static const char *const *ITEM_NAMES[4];
- static const char *const ELEMENTAL_NAMES[6];
- static const char *const ATTRIBUTE_NAMES[10];
- static const char *const EFFECTIVENESS_NAMES[7];
- static const char *const QUEST_ITEM_NAMES[85];
- 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 char *const NOT_PROFICIENT;
- static const char *const NO_ITEMS_AVAILABLE;
- static const char *const CATEGORY_NAMES[4];
- static const char *const X_FOR_THE_Y;
- static const char *const X_FOR_Y;
- static const char *const X_FOR_Y_GOLD;
- static const char *const FMT_CHARGES;
- static const char *const AVAILABLE_GOLD_COST;
- static const char *const CHARGES;
- static const char *const COST;
- static const char *const ITEM_ACTIONS[7];
- static const char *const WHICH_ITEM;
- static const char *const WHATS_YOUR_HURRY;
+ String *ITEM_NAMES[4];
- static const char *const USE_ITEM_IN_COMBAT;
-
- static const char *const NO_SPECIAL_ABILITIES;
-
- static const char *const CANT_CAST_WHILE_ENGAGED;
-
- static const char *const EQUIPPED_ALL_YOU_CAN;
- static const char *const REMOVE_X_TO_EQUIP_Y;
- static const char *const RING;
- static const char *const MEDAL;
- static const char *const CANNOT_REMOVE_CURSED_ITEM;
- static const char *const CANNOT_DISCARD_CURSED_ITEM;
- static const char *const PERMANENTLY_DISCARD;
- static const char *const BACKPACK_IS_FULL;
- static const char *const CATEGORY_BACKPACK_IS_FULL[4];
- static const char *const BUY_X_FOR_Y_GOLD;
- static const char *const SELL_X_FOR_Y_GOLD;
- static const char *const NO_NEED_OF_THIS;
- static const char *const NOT_RECHARGABLE;
- static const char *const SPELL_FAILED;
- static const char *const NOT_ENCHANTABLE;
- static const char *const ITEM_NOT_BROKEN;
- static const char *const FIX_IDENTIFY[2];
- static const char *const FIX_IDENTIFY_GOLD;
- static const char *const IDENTIFY_ITEM_MSG;
- static const char *const ITEM_DETAILS;
- static const char *const ALL;
- static const char *const FIELD_NONE;
- static const char *const DAMAGE_X_TO_Y;
- static const char *const ELEMENTAL_XY_DAMAGE;
- static const char *const ATTR_XY_BONUS;
- static const char *const EFFECTIVE_AGAINST;
- static const char *const QUESTS_DIALOG_TEXT;
- static const char *const CLOUDS_OF_XEEN_LINE;
- static const char *const DARKSIDE_OF_XEEN_LINE;
- static const char *const NO_QUEST_ITEMS;
- static const char *const NO_CURRENT_QUESTS;
- static const char *const NO_AUTO_NOTES;
- static const char *const QUEST_ITEMS_DATA;
- static const char *const CURRENT_QUESTS_DATA;
- static const char *const AUTO_NOTES_DATA;
- static const char *const REST_COMPLETE;
- static const char *const PARTY_IS_STARVING;
- static const char *const HIT_SPELL_POINTS_RESTORED;
- static const char *const TOO_DANGEROUS_TO_REST;
- static const char *const SOME_CHARS_MAY_DIE;
- static const char *const CANT_DISMISS_LAST_CHAR;
- static const char *const REMOVE_DELETE[2];
- static const char *const REMOVE_OR_DELETE_WHICH;
- static const char *const YOUR_PARTY_IS_FULL;
- static const char *const HAS_SLAYER_SWORD;
- static const char *const SURE_TO_DELETE_CHAR;
- static const char *const CREATE_CHAR_DETAILS;
- static const char *const NEW_CHAR_STATS;
- static const char *const NAME_FOR_NEW_CHARACTER;
- static const char *const SELECT_CLASS_BEFORE_SAVING;
- static const char *const EXCHANGE_ATTR_WITH;
- 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 char *const COMBAT_DETAILS;
- static const char *NOT_ENOUGH_TO_CAST;
- static const char *SPELL_CAST_COMPONENTS[2];
- static const char *const CAST_SPELL_DETAILS;
- static const char *const PARTY_FOUND;
- static const char *const BACKPACKS_FULL_PRESS_KEY;
- static const char *const HIT_A_KEY;
- static const char *const GIVE_TREASURE_FORMATTING;
- static const char *const X_FOUND_Y;
- static const char *const ON_WHO;
- static const char *const WHICH_ELEMENT1;
- static const char *const WHICH_ELEMENT2;
- static const char *const DETECT_MONSTERS;
- static const char *const LLOYDS_BEACON;
- static const char *const HOW_MANY_SQUARES;
- static const char *const TOWN_PORTAL;
- static const int TOWN_MAP_NUMBERS[2][5];
- static const char *const MONSTER_DETAILS;
- static const char *const MONSTER_SPECIAL_ATTACKS[23];
- static const char *const IDENTIFY_MONSTERS;
- static const char *const EVENT_SAMPLES[6];
- static const char *const MOONS_NOT_ALIGNED;
- static const char *const AWARDS_FOR;
- static const char *const AWARDS_TEXT;
- static const char *const NO_AWARDS;
- static const char *const WARZONE_BATTLE_MASTER;
- static const char *const WARZONE_MAXED;
- static const char *const WARZONE_LEVEL;
- static const char *const WARZONE_HOW_MANY;
- static const char *const PICKS_THE_LOCK;
- static const char *const UNABLE_TO_PICK_LOCK;
- static const char *const CONTROL_PANEL_TEXT;
- static const char *const CONTROL_PANEL_BUTTONS;
- static const char *const ON;
- static const char *const OFF;
- static const char *const CONFIRM_QUIT;
- static const char *const MR_WIZARD;
- static const char *const NO_LOADING_IN_COMBAT;
- static const char *const NO_SAVING_IN_COMBAT;
- static const char *const QUICK_FIGHT_TEXT;
- static const char *const QUICK_FIGHT_OPTIONS[4];
- static const char *const WORLD_END_TEXT[9];
- static const char *const WORLD_CONGRATULATIONS;
- static const char *const WORLD_CONGRATULATIONS2;
- static const char *const CLOUDS_CONGRATULATIONS1;
- static const char *const CLOUDS_CONGRATULATIONS2;
- static const char *const GOOBER[3];
+ // Data loaded from xeen.ccs
+ String CREDITS;
+ String OPTIONS_TITLE;
+ String THE_PARTY_NEEDS_REST;
+ String WHO_WILL;
+ String HOW_MUCH;
+ String WHATS_THE_PASSWORD;
+ String IN_NO_CONDITION;
+ String NOTHING_HERE;
+ String TERRAIN_TYPES[6];
+ String OUTDOORS_WALL_TYPES[16];
+ String SURFACE_NAMES[16];
+ String WHO_ACTIONS[32];
+ String WHO_WILL_ACTIONS[4];
+ byte SYMBOLS[20][64];
+ byte TEXT_COLORS[40][4];
+ String DIRECTION_TEXT_UPPER[4];
+ String DIRECTION_TEXT[4];
+ String RACE_NAMES[5];
+ int RACE_HP_BONUSES[5];
+ int RACE_SP_BONUSES[5][2];
+ String CLASS_NAMES[11];
+ int CLASS_EXP_LEVELS[10];
+ String ALIGNMENT_NAMES[3];
+ String SEX_NAMES[2];
+ String SKILL_NAMES[18];
+ String CONDITION_NAMES[17];
+ int CONDITION_COLORS[17];
+ String GOOD;
+ String BLESSED;
+ String POWER_SHIELD;
+ String HOLY_BONUS;
+ String HEROISM;
+ String IN_PARTY;
+ String PARTY_DETAILS;
+ String PARTY_DIALOG_TEXT;
+ int FACE_CONDITION_FRAMES[17];
+ int CHAR_FACES_X[6];
+ int HP_BARS_X[6];
+ String NO_ONE_TO_ADVENTURE_WITH;
+ byte DARKNESS_XLAT[3][256];
+ String YOUR_ROSTER_IS_FULL;
+ String PLEASE_WAIT;
+ String OOPS;
+ int SCREEN_POSITIONING_X[4][48];
+ int SCREEN_POSITIONING_Y[4][48];
+ int MONSTER_GRID_BITMASK[12];
+ int INDOOR_OBJECT_X[2][12];
+ int MAP_OBJECT_Y[2][12];
+ int INDOOR_MONSTERS_Y[4];
+ int OUTDOOR_OBJECT_X[2][12];
+ int OUTDOOR_MONSTER_INDEXES[26];
+ int OUTDOOR_MONSTERS_Y[26];
+ int DIRECTION_ANIM_POSITIONS[4][4];
+ byte WALL_SHIFTS[4][48];
+ int DRAW_NUMBERS[25];
+ int DRAW_FRAMES[25][2];
+ int COMBAT_FLOAT_X[8];
+ int COMBAT_FLOAT_Y[8];
+ int MONSTER_EFFECT_FLAGS[15][8];
+ int SPELLS_ALLOWED[3][40];
+ int BASE_HP_BY_CLASS[10];
+ int AGE_RANGES[10];
+ int AGE_RANGES_ADJUST[2][10];
+ int STAT_VALUES[24];
+ int STAT_BONUSES[24];
+ int ELEMENTAL_CATEGORIES[6];
+ int ATTRIBUTE_CATEGORIES[10];
+ int ATTRIBUTE_BONUSES[72];
+ int ELEMENTAL_RESISTENCES[37];
+ int ELEMENTAL_DAMAGE[37];
+ int WEAPON_DAMAGE_BASE[35];
+ int WEAPON_DAMAGE_MULTIPLIER[35];
+ int METAL_DAMAGE[22];
+ int METAL_DAMAGE_PERCENT[22];
+ int METAL_LAC[9];
+ int ARMOR_STRENGTHS[14];
+ int MAKE_ITEM_ARR1[6];
+ int MAKE_ITEM_ARR2[6][7][2];
+ int MAKE_ITEM_ARR3[10][7][2];
+ int MAKE_ITEM_ARR4[2][7][2];
+ int MAKE_ITEM_ARR5[8][2];
+ int OUTDOOR_DRAWSTRUCT_INDEXES[44];
+ int TOWN_MAXES[2][11];
+ String TOWN_ACTION_MUSIC[2][7];
+ String TOWN_ACTION_SHAPES[7];
+ int TOWN_ACTION_FILES[2][7];
+ String BANK_TEXT;
+ String BLACKSMITH_TEXT;
+ String GUILD_NOT_MEMBER_TEXT;
+ String GUILD_TEXT;
+ String TAVERN_TEXT;
+ String GOOD_STUFF;
+ String HAVE_A_DRINK;
+ String YOURE_DRUNK;
+ int TAVERN_EXIT_LIST[2][6][5][2];
+ String FOOD_AND_DRINK;
+ String TEMPLE_TEXT;
+ String EXPERIENCE_FOR_LEVEL;
+ String LEARNED_ALL;
+ String ELIGIBLE_FOR_LEVEL;
+ String TRAINING_TEXT;
+ String GOLD_GEMS;
+ String GOLD_GEMS_2;
+ String DEPOSIT_WITHDRAWL[2];
+ String NOT_ENOUGH_X_IN_THE_Y;
+ String NO_X_IN_THE_Y;
+ String STAT_NAMES[16];
+ String CONSUMABLE_NAMES[4];
+ String WHERE_NAMES[2];
+ String AMOUNT;
+ String FOOD_PACKS_FULL;
+ String BUY_SPELLS;
+ String GUILD_OPTIONS;
+ int MISC_SPELL_INDEX[74];
+ int SPELL_COSTS[77];
+ int CLOUDS_SPELL_OFFSETS[5][20];
+ int DARK_SPELL_OFFSETS[3][39];
+ int DARK_SPELL_RANGES[12][2];
+ int SPELL_LEVEL_OFFSETS[3][39];
+ int SPELL_GEM_COST[77];
+ String NOT_A_SPELL_CASTER;
+ String SPELLS_FOR;
+ String SPELL_LINES_0_TO_9;
+ String SPELLS_DIALOG_SPELLS;
+ String SPELL_PTS;
+ String GOLD;
+ String SPELLS_PRESS_A_KEY;
+ String SPELLS_PURCHASE;
+ String MAP_TEXT;
+ String LIGHT_COUNT_TEXT;
+ String FIRE_RESISTENCE_TEXT;
+ String ELECRICITY_RESISTENCE_TEXT;
+ String COLD_RESISTENCE_TEXT;
+ String POISON_RESISTENCE_TEXT;
+ String CLAIRVOYANCE_TEXT;
+ String LEVITATE_TEXT;
+ String WALK_ON_WATER_TEXT;
+ String GAME_INFORMATION;
+ String WORLD_GAME_TEXT;
+ String DARKSIDE_GAME_TEXT;
+ String CLOUDS_GAME_TEXT;
+ String SWORDS_GAME_TEXT;
+ String WEEK_DAY_STRINGS[10];
+ String CHARACTER_DETAILS;
+ String PARTY_GOLD;
+ String PLUS_14;
+ String CHARACTER_TEMPLATE;
+ String EXCHANGING_IN_COMBAT;
+ String CURRENT_MAXIMUM_RATING_TEXT;
+ String CURRENT_MAXIMUM_TEXT;
+ String RATING_TEXT[24];
+ String AGE_TEXT;
+ String LEVEL_TEXT;
+ String RESISTENCES_TEXT;
+ String NONE;
+ String EXPERIENCE_TEXT;
+ String ELIGIBLE;
+ String IN_PARTY_IN_BANK;
+ String FOOD_TEXT;
+ String EXCHANGE_WITH_WHOM;
+ String QUICK_REF_LINE;
+ String QUICK_REFERENCE;
+ int BLACKSMITH_MAP_IDS[2][4];
+ String ITEMS_DIALOG_TEXT1;
+ String ITEMS_DIALOG_TEXT2;
+ String ITEMS_DIALOG_LINE1;
+ String ITEMS_DIALOG_LINE2;
+ String BTN_BUY;
+ String BTN_SELL;
+ String BTN_IDENTIFY;
+ String BTN_FIX;
+ String BTN_USE;
+ String BTN_EQUIP;
+ String BTN_REMOVE;
+ String BTN_DISCARD;
+ String BTN_QUEST;
+ String BTN_ENCHANT;
+ String BTN_RECHARGE;
+ String BTN_GOLD;
+ String ITEM_BROKEN;
+ String ITEM_CURSED;
+ String BONUS_NAMES[7];
+ String WEAPON_NAMES[35];
+ String ARMOR_NAMES[14];
+ String ACCESSORY_NAMES[11];
+ String MISC_NAMES[22];
+ String ELEMENTAL_NAMES[6];
+ String ATTRIBUTE_NAMES[10];
+ String EFFECTIVENESS_NAMES[7];
+ String QUEST_ITEM_NAMES[85];
+ int WEAPON_BASE_COSTS[35];
+ int ARMOR_BASE_COSTS[14];
+ int ACCESSORY_BASE_COSTS[11];
+ int MISC_MATERIAL_COSTS[22];
+ int MISC_BASE_COSTS[76];
+ int METAL_BASE_MULTIPLIERS[22];
+ int ITEM_SKILL_DIVISORS[4];
+ int RESTRICTION_OFFSETS[4];
+ int ITEM_RESTRICTIONS[86];
+ String NOT_PROFICIENT;
+ String NO_ITEMS_AVAILABLE;
+ String CATEGORY_NAMES[4];
+ String X_FOR_THE_Y;
+ String X_FOR_Y;
+ String X_FOR_Y_GOLD;
+ String FMT_CHARGES;
+ String AVAILABLE_GOLD_COST;
+ String CHARGES;
+ String COST;
+ String ITEM_ACTIONS[7];
+ String WHICH_ITEM;
+ String WHATS_YOUR_HURRY;
+ String USE_ITEM_IN_COMBAT;
+ String NO_SPECIAL_ABILITIES;
+ String CANT_CAST_WHILE_ENGAGED;
+ String EQUIPPED_ALL_YOU_CAN;
+ String REMOVE_X_TO_EQUIP_Y;
+ String RING;
+ String MEDAL;
+ String CANNOT_REMOVE_CURSED_ITEM;
+ String CANNOT_DISCARD_CURSED_ITEM;
+ String PERMANENTLY_DISCARD;
+ String BACKPACK_IS_FULL;
+ String CATEGORY_BACKPACK_IS_FULL[4];
+ String BUY_X_FOR_Y_GOLD;
+ String SELL_X_FOR_Y_GOLD;
+ String NO_NEED_OF_THIS;
+ String NOT_RECHARGABLE;
+ String SPELL_FAILED;
+ String NOT_ENCHANTABLE;
+ String ITEM_NOT_BROKEN;
+ String FIX_IDENTIFY[2];
+ String FIX_IDENTIFY_GOLD;
+ String IDENTIFY_ITEM_MSG;
+ String ITEM_DETAILS;
+ String ALL;
+ String FIELD_NONE;
+ String DAMAGE_X_TO_Y;
+ String ELEMENTAL_XY_DAMAGE;
+ String ATTR_XY_BONUS;
+ String EFFECTIVE_AGAINST;
+ String QUESTS_DIALOG_TEXT;
+ String CLOUDS_OF_XEEN_LINE;
+ String DARKSIDE_OF_XEEN_LINE;
+ String NO_QUEST_ITEMS;
+ String NO_CURRENT_QUESTS;
+ String NO_AUTO_NOTES;
+ String QUEST_ITEMS_DATA;
+ String CURRENT_QUESTS_DATA;
+ String AUTO_NOTES_DATA;
+ String REST_COMPLETE;
+ String PARTY_IS_STARVING;
+ String HIT_SPELL_POINTS_RESTORED;
+ String TOO_DANGEROUS_TO_REST;
+ String SOME_CHARS_MAY_DIE;
+ String CANT_DISMISS_LAST_CHAR;
+ String REMOVE_DELETE[2];
+ String REMOVE_OR_DELETE_WHICH;
+ String YOUR_PARTY_IS_FULL;
+ String HAS_SLAYER_SWORD;
+ String SURE_TO_DELETE_CHAR;
+ String CREATE_CHAR_DETAILS;
+ String NEW_CHAR_STATS;
+ String NAME_FOR_NEW_CHARACTER;
+ String SELECT_CLASS_BEFORE_SAVING;
+ String EXCHANGE_ATTR_WITH;
+ int NEW_CHAR_SKILLS[10];
+ int NEW_CHAR_SKILLS_LEN[10];
+ int NEW_CHAR_RACE_SKILLS[10];
+ int RACE_MAGIC_RESISTENCES[5];
+ int RACE_FIRE_RESISTENCES[5];
+ int RACE_ELECTRIC_RESISTENCES[5];
+ int RACE_COLD_RESISTENCES[5];
+ int RACE_ENERGY_RESISTENCES[5];
+ int RACE_POISON_RESISTENCES[5];
+ int NEW_CHARACTER_SPELLS[10][4];
+ String COMBAT_DETAILS;
+ String NOT_ENOUGH_TO_CAST;
+ String SPELL_CAST_COMPONENTS[2];
+ String CAST_SPELL_DETAILS;
+ String PARTY_FOUND;
+ String BACKPACKS_FULL_PRESS_KEY;
+ String HIT_A_KEY;
+ String GIVE_TREASURE_FORMATTING;
+ String X_FOUND_Y;
+ String ON_WHO;
+ String WHICH_ELEMENT1;
+ String WHICH_ELEMENT2;
+ String DETECT_MONSTERS;
+ String LLOYDS_BEACON;
+ String HOW_MANY_SQUARES;
+ String TOWN_PORTAL;
+ int TOWN_MAP_NUMBERS[2][5];
+ String MONSTER_DETAILS;
+ String MONSTER_SPECIAL_ATTACKS[23];
+ String IDENTIFY_MONSTERS;
+ String EVENT_SAMPLES[6];
+ String MOONS_NOT_ALIGNED;
+ String AWARDS_FOR;
+ String AWARDS_TEXT;
+ String NO_AWARDS;
+ String WARZONE_BATTLE_MASTER;
+ String WARZONE_MAXED;
+ String WARZONE_LEVEL;
+ String WARZONE_HOW_MANY;
+ String PICKS_THE_LOCK;
+ String UNABLE_TO_PICK_LOCK;
+ String CONTROL_PANEL_TEXT;
+ String CONTROL_PANEL_BUTTONS;
+ String ON;
+ String OFF;
+ String CONFIRM_QUIT;
+ String MR_WIZARD;
+ String NO_LOADING_IN_COMBAT;
+ String NO_SAVING_IN_COMBAT;
+ String QUICK_FIGHT_TEXT;
+ String QUICK_FIGHT_OPTIONS[4];
+ String WORLD_END_TEXT[9];
+ String WORLD_CONGRATULATIONS;
+ String WORLD_CONGRATULATIONS2;
+ String CLOUDS_CONGRATULATIONS1;
+ String CLOUDS_CONGRATULATIONS2;
+ String GOOBER[3];
+ String MUSIC_FILES1[5];
+ String MUSIC_FILES2[6][7];
public:
/**
+ * Constructor
+ */
+ Resources();
+
+ /**
* Initializes an instnace of the resources
*/
- static Resources *init(XeenEngine *vm);
+ Resources *init(XeenEngine *vm);
};
extern Resources *g_resources;