mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-11 19:54:03 +00:00
608 lines
16 KiB
C++
608 lines
16 KiB
C++
/* ScummVM - Graphic Adventure Engine
|
|
*
|
|
* ScummVM is the legal property of its developers, whose names
|
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
* file distributed with this source distribution.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
*/
|
|
|
|
#ifndef XEEN_RESOURCES_H
|
|
#define XEEN_RESOURCES_H
|
|
|
|
#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"
|
|
|
|
namespace Xeen {
|
|
|
|
#define Res (*g_resources)
|
|
#define STRING_BUFFER_SIZE 32768
|
|
|
|
class XeenEngine;
|
|
|
|
class Resources {
|
|
/**
|
|
* 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 {
|
|
private:
|
|
char *_buffer;
|
|
char *_buffStart;
|
|
public:
|
|
ResFile(const char* type, char *buffer, int num) : File(type + Common::String::format("%i", num)), _buffer(buffer), _buffStart(buffer) {}
|
|
|
|
void syncString(const char *&str) {
|
|
str = _buffer;
|
|
strcpy(_buffer, readString().c_str());
|
|
_buffer += strlen(_buffer) + 1;
|
|
assert((_buffer - _buffStart) < STRING_BUFFER_SIZE);
|
|
}
|
|
void syncStrings(const char **str, int count) {
|
|
uint tag = readUint32LE();
|
|
assert(tag == MKTAG(count, 0, 0, 0));
|
|
for (int idx = 0; idx < count; ++idx)
|
|
syncString(str[idx]);
|
|
}
|
|
void syncStrings2D(const char **str, int count1, int count2) {
|
|
uint tag = readUint32LE();
|
|
assert(tag == MKTAG(count1, count2, 0, 0));
|
|
for (int idx = 0; idx < count1 * count2; ++idx)
|
|
syncString(str[idx]);
|
|
}
|
|
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:
|
|
char _buffer[STRING_BUFFER_SIZE];
|
|
private:
|
|
/**
|
|
* Loads all the constants data stored in the xeen.ccs archive shipped with ScummVM
|
|
*/
|
|
void loadData();
|
|
public:
|
|
SpriteResource _globalSprites;
|
|
SpriteResource _logoSprites;
|
|
Common::StringArray _maeNames; // Magic and equipment names
|
|
Common::StringArray _cloudsMapNames; // Clouds of Xeen map names
|
|
const char **ITEM_NAMES[4];
|
|
|
|
// Data loaded from xeen.ccs
|
|
const char *CLOUDS_CREDITS;
|
|
const char *DARK_SIDE_CREDITS;
|
|
const char *SWORDS_CREDITS1;
|
|
const char *SWORDS_CREDITS2;
|
|
const char *OPTIONS_MENU;
|
|
const char *GAME_NAMES[3];
|
|
const char *THE_PARTY_NEEDS_REST;
|
|
const char *WHO_WILL;
|
|
const char *HOW_MUCH;
|
|
const char *WHATS_THE_PASSWORD;
|
|
const char *PASSWORD_INCORRECT;
|
|
const char *IN_NO_CONDITION;
|
|
const char *NOTHING_HERE;
|
|
const char *TERRAIN_TYPES[6];
|
|
const char *OUTDOORS_WALL_TYPES[16];
|
|
const char *SURFACE_NAMES[16];
|
|
const char *WHO_ACTIONS[32];
|
|
const char *WHO_WILL_ACTIONS[4];
|
|
byte SYMBOLS[20][64];
|
|
byte TEXT_COLORS[40][4];
|
|
byte TEXT_COLORS_STARTUP[40][4];
|
|
const char *DIRECTION_TEXT_UPPER[4];
|
|
const char *DIRECTION_TEXT[4];
|
|
const char *RACE_NAMES[5];
|
|
int RACE_HP_BONUSES[5];
|
|
int RACE_SP_BONUSES[5][2];
|
|
const char *CLASS_NAMES[11];
|
|
int CLASS_EXP_LEVELS[10];
|
|
const char *ALIGNMENT_NAMES[3];
|
|
const char *SEX_NAMES[2];
|
|
const char *SKILL_NAMES[18];
|
|
const char *CONDITION_NAMES_M[17];
|
|
const char *CONDITION_NAMES_F[17];
|
|
int CONDITION_COLORS[17];
|
|
const char *GOOD;
|
|
const char *BLESSED;
|
|
const char *POWER_SHIELD;
|
|
const char *HOLY_BONUS;
|
|
const char *HEROISM;
|
|
const char *IN_PARTY;
|
|
const char *PARTY_DETAILS;
|
|
const char *PARTY_DIALOG_TEXT;
|
|
int FACE_CONDITION_FRAMES[17];
|
|
int CHAR_FACES_X[6];
|
|
int HP_BARS_X[6];
|
|
const char *NO_ONE_TO_ADVENTURE_WITH;
|
|
byte DARKNESS_XLAT[3][256];
|
|
const char *YOUR_ROSTER_IS_FULL;
|
|
const char *PLEASE_WAIT;
|
|
const char *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[22];
|
|
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];
|
|
const char *TOWN_ACTION_MUSIC[2][7];
|
|
const char *TOWN_ACTION_SHAPES[7];
|
|
int TOWN_ACTION_FILES[2][7];
|
|
const char *BANK_TEXT;
|
|
const char *BLACKSMITH_TEXT;
|
|
const char *GUILD_NOT_MEMBER_TEXT;
|
|
const char *GUILD_TEXT;
|
|
const char *TAVERN_TEXT;
|
|
const char *GOOD_STUFF;
|
|
const char *HAVE_A_DRINK;
|
|
const char *YOURE_DRUNK;
|
|
int TAVERN_EXIT_LIST[2][6][5][2];
|
|
const char *FOOD_AND_DRINK;
|
|
const char *TEMPLE_TEXT;
|
|
const char *EXPERIENCE_FOR_LEVEL;
|
|
const char *TRAINING_LEARNED_ALL;
|
|
const char *ELIGIBLE_FOR_LEVEL;
|
|
const char *TRAINING_TEXT;
|
|
const char *GOLD_GEMS;
|
|
const char *GOLD_GEMS_2;
|
|
const char *DEPOSIT_WITHDRAWL[2];
|
|
const char *NOT_ENOUGH_X_IN_THE_Y;
|
|
const char *NO_X_IN_THE_Y;
|
|
const char *STAT_NAMES[16];
|
|
const char *CONSUMABLE_NAMES[4];
|
|
const char *CONSUMABLE_GOLD_FORMS[1];
|
|
const char *CONSUMABLE_GEM_FORMS[1];
|
|
const char *WHERE_NAMES[2];
|
|
const char *AMOUNT;
|
|
const char *FOOD_PACKS_FULL;
|
|
const char *BUY_SPELLS;
|
|
const char *GUILD_OPTIONS;
|
|
int MISC_SPELL_INDEX[74];
|
|
int SPELL_COSTS[77];
|
|
int CLOUDS_GUILD_SPELLS[5][20];
|
|
int DARK_SPELL_OFFSETS[3][39];
|
|
int DARK_SPELL_RANGES[12][2];
|
|
int SWORDS_SPELL_RANGES[12][2];
|
|
int SPELL_GEM_COST[77];
|
|
const char *NOT_A_SPELL_CASTER;
|
|
const char *SPELLS_LEARNED_ALL;
|
|
const char *SPELLS_FOR;
|
|
const char *SPELL_LINES_0_TO_9;
|
|
const char *SPELLS_DIALOG_SPELLS;
|
|
const char *SPELL_PTS;
|
|
const char *GOLD;
|
|
const char *SPELL_INFO;
|
|
const char *SPELL_PURCHASE;
|
|
const char *MAP_TEXT;
|
|
const char *LIGHT_COUNT_TEXT;
|
|
const char *FIRE_RESISTENCE_TEXT;
|
|
const char *ELECRICITY_RESISTENCE_TEXT;
|
|
const char *COLD_RESISTENCE_TEXT;
|
|
const char *POISON_RESISTENCE_TEXT;
|
|
const char *CLAIRVOYANCE_TEXT;
|
|
const char *LEVITATE_TEXT;
|
|
const char *WALK_ON_WATER_TEXT;
|
|
const char *GAME_INFORMATION;
|
|
const char *WORLD_GAME_TEXT;
|
|
const char *DARKSIDE_GAME_TEXT;
|
|
const char *CLOUDS_GAME_TEXT;
|
|
const char *SWORDS_GAME_TEXT;
|
|
const char *WEEK_DAY_STRINGS[10];
|
|
const char *CHARACTER_DETAILS;
|
|
const char *DAYS[3];
|
|
const char *PARTY_GOLD;
|
|
const char *PLUS_14;
|
|
const char *CHARACTER_TEMPLATE;
|
|
const char *EXCHANGING_IN_COMBAT;
|
|
const char *CURRENT_MAXIMUM_RATING_TEXT;
|
|
const char *CURRENT_MAXIMUM_TEXT;
|
|
const char *RATING_TEXT[24];
|
|
const char *BORN[2];
|
|
const char *AGE_TEXT;
|
|
const char *LEVEL_TEXT;
|
|
const char *RESISTENCES_TEXT;
|
|
const char *NONE;
|
|
const char *EXPERIENCE_TEXT;
|
|
const char *ELIGIBLE;
|
|
const char *IN_PARTY_IN_BANK;
|
|
const char *FOOD_ON_HAND[3];
|
|
const char *FOOD_TEXT;
|
|
const char *EXCHANGE_WITH_WHOM;
|
|
const char *QUICK_REF_LINE;
|
|
const char *QUICK_REFERENCE;
|
|
int BLACKSMITH_MAP_IDS[2][4];
|
|
const char *ITEMS_DIALOG_TEXT1;
|
|
const char *ITEMS_DIALOG_TEXT2;
|
|
const char *ITEMS_DIALOG_LINE1;
|
|
const char *ITEMS_DIALOG_LINE2;
|
|
const char *BTN_BUY;
|
|
const char *BTN_SELL;
|
|
const char *BTN_IDENTIFY;
|
|
const char *BTN_FIX;
|
|
const char *BTN_USE;
|
|
const char *BTN_EQUIP;
|
|
const char *BTN_REMOVE;
|
|
const char *BTN_DISCARD;
|
|
const char *BTN_QUEST;
|
|
const char *BTN_ENCHANT;
|
|
const char *BTN_RECHARGE;
|
|
const char *BTN_GOLD;
|
|
const char *ITEM_BROKEN;
|
|
const char *ITEM_CURSED;
|
|
const char *ITEM_OF;
|
|
const char *BONUS_NAMES[7];
|
|
const char *WEAPON_NAMES[41];
|
|
const char *ARMOR_NAMES[14];
|
|
const char *ACCESSORY_NAMES[11];
|
|
const char *MISC_NAMES[22];
|
|
const char *SPECIAL_NAMES[74];
|
|
const char *ELEMENTAL_NAMES[6];
|
|
const char *ATTRIBUTE_NAMES[10];
|
|
const char *EFFECTIVENESS_NAMES[7];
|
|
const char *QUEST_ITEM_NAMES[85];
|
|
const char *QUEST_ITEM_NAMES_SWORDS[51];
|
|
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];
|
|
const char *NOT_PROFICIENT;
|
|
const char *NO_ITEMS_AVAILABLE;
|
|
const char *CATEGORY_NAMES[4];
|
|
const char *X_FOR_THE_Y;
|
|
const char *X_FOR_Y;
|
|
const char *X_FOR_Y_GOLD;
|
|
const char *FMT_CHARGES;
|
|
const char *AVAILABLE_GOLD_COST;
|
|
const char *CHARGES;
|
|
const char *COST;
|
|
const char *ITEM_ACTIONS[7];
|
|
const char *WHICH_ITEM;
|
|
const char *WHATS_YOUR_HURRY;
|
|
const char *USE_ITEM_IN_COMBAT;
|
|
const char *NO_SPECIAL_ABILITIES;
|
|
const char *CANT_CAST_WHILE_ENGAGED;
|
|
const char *EQUIPPED_ALL_YOU_CAN;
|
|
const char *REMOVE_X_TO_EQUIP_Y;
|
|
const char *RING;
|
|
const char *MEDAL;
|
|
const char *CANNOT_REMOVE_CURSED_ITEM;
|
|
const char *CANNOT_DISCARD_CURSED_ITEM;
|
|
const char *PERMANENTLY_DISCARD;
|
|
const char *BACKPACK_IS_FULL;
|
|
const char *CATEGORY_BACKPACK_IS_FULL[4];
|
|
const char *BUY_X_FOR_Y_GOLD;
|
|
const char *SELL_X_FOR_Y_GOLD;
|
|
const char *GOLDS[2];
|
|
const char *NO_NEED_OF_THIS;
|
|
const char *NOT_RECHARGABLE;
|
|
const char *SPELL_FAILED;
|
|
const char *NOT_ENCHANTABLE;
|
|
const char *ITEM_NOT_BROKEN;
|
|
const char *FIX_IDENTIFY[2];
|
|
const char *FIX_IDENTIFY_GOLD;
|
|
const char *IDENTIFY_ITEM_MSG;
|
|
const char *ITEM_DETAILS;
|
|
const char *ALL;
|
|
const char *FIELD_NONE;
|
|
const char *DAMAGE_X_TO_Y;
|
|
const char *ELEMENTAL_XY_DAMAGE;
|
|
const char *ATTR_XY_BONUS;
|
|
const char *EFFECTIVE_AGAINST;
|
|
const char *QUESTS_DIALOG_TEXT;
|
|
const char *CLOUDS_OF_XEEN_LINE;
|
|
const char *DARKSIDE_OF_XEEN_LINE;
|
|
const char *SWORDS_OF_XEEN_LINE;
|
|
const char *NO_QUEST_ITEMS;
|
|
const char *NO_CURRENT_QUESTS;
|
|
const char *NO_AUTO_NOTES;
|
|
const char *QUEST_ITEMS_DATA;
|
|
const char *CURRENT_QUESTS_DATA;
|
|
const char *AUTO_NOTES_DATA;
|
|
const char *REST_COMPLETE;
|
|
const char *PARTY_IS_STARVING;
|
|
const char *HIT_SPELL_POINTS_RESTORED;
|
|
const char *TOO_DANGEROUS_TO_REST;
|
|
const char *SOME_CHARS_MAY_DIE;
|
|
const char *DISMISS_WHOM;
|
|
const char *CANT_DISMISS_LAST_CHAR;
|
|
const char *DELETE_CHAR_WITH_ELDER_WEAPON;
|
|
const char *REMOVE_DELETE[2];
|
|
const char *REMOVE_OR_DELETE_WHICH;
|
|
const char *YOUR_PARTY_IS_FULL;
|
|
const char *HAS_SLAYER_SWORD;
|
|
const char *SURE_TO_DELETE_CHAR;
|
|
const char *CREATE_CHAR_DETAILS;
|
|
const char *NEW_CHAR_STATS;
|
|
const char *NAME_FOR_NEW_CHARACTER;
|
|
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];
|
|
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];
|
|
const char *COMBAT_DETAILS;
|
|
const char *NOT_ENOUGH_TO_CAST;
|
|
const char *SPELL_CAST_COMPONENTS[2];
|
|
const char *CAST_SPELL_DETAILS;
|
|
const char *PARTY_FOUND;
|
|
const char *BACKPACKS_FULL_PRESS_KEY;
|
|
const char *HIT_A_KEY;
|
|
const char *GIVE_TREASURE_FORMATTING;
|
|
const char *FOUND[2];
|
|
const char *X_FOUND_Y;
|
|
const char *ON_WHO;
|
|
const char *WHICH_ELEMENT1;
|
|
const char *WHICH_ELEMENT2;
|
|
const char *DETECT_MONSTERS;
|
|
const char *LLOYDS_BEACON;
|
|
const char *HOW_MANY_SQUARES;
|
|
const char *TOWN_PORTAL;
|
|
const char *TOWN_PORTAL_SWORDS;
|
|
int TOWN_MAP_NUMBERS[3][5];
|
|
const char *MONSTER_DETAILS;
|
|
const char *MONSTER_SPECIAL_ATTACKS[23];
|
|
const char *IDENTIFY_MONSTERS;
|
|
const char *EVENT_SAMPLES[6];
|
|
const char *MOONS_NOT_ALIGNED;
|
|
const char *AWARDS_FOR;
|
|
const char *AWARDS_TEXT;
|
|
const char *NO_AWARDS;
|
|
const char *WARZONE_BATTLE_MASTER;
|
|
const char *WARZONE_MAXED;
|
|
const char *WARZONE_LEVEL;
|
|
const char *WARZONE_HOW_MANY;
|
|
const char *PICKS_THE_LOCK;
|
|
const char *PICK_FORM[2];
|
|
const char *UNABLE_TO_PICK_LOCK;
|
|
const char *UNABLE_TO_PICK_FORM[2];
|
|
const char *CONTROL_PANEL_TEXT;
|
|
const char *CONTROL_PANEL_BUTTONS;
|
|
const char *ON;
|
|
const char *OFF;
|
|
const char *CONFIRM_QUIT;
|
|
const char *MR_WIZARD;
|
|
const char *NO_LOADING_IN_COMBAT;
|
|
const char *NO_SAVING_IN_COMBAT;
|
|
const char *QUICK_FIGHT_TEXT;
|
|
const char *QUICK_FIGHT_OPTIONS[4];
|
|
const char *WORLD_END_TEXT[9];
|
|
const char *WORLD_CONGRATULATIONS;
|
|
const char *WORLD_CONGRATULATIONS2;
|
|
const char *CLOUDS_CONGRATULATIONS1;
|
|
const char *CLOUDS_CONGRATULATIONS2;
|
|
const char *GOOBER[3];
|
|
const char *MUSIC_FILES1[5];
|
|
const char *MUSIC_FILES2[6][7];
|
|
const char *DIFFICULTY_TEXT;
|
|
const char *SAVE_OFF_LIMITS;
|
|
const char *CLOUDS_INTRO1;
|
|
const char *DARKSIDE_ENDING1;
|
|
const char *DARKSIDE_ENDING2;
|
|
const char *PHAROAH_ENDING_TEXT1;
|
|
const char *PHAROAH_ENDING_TEXT2;
|
|
const char *CLOUDS_MAE_NAMES[131];
|
|
const char *CLOUDS_MIRROR_LOCATIONS[58];
|
|
const char *CLOUDS_MAP_NAMES[86];
|
|
const char *CLOUDS_MONSTERS[91];
|
|
const char *CLOUDS_SPELLS[77];
|
|
|
|
struct {
|
|
|
|
struct {
|
|
int KEY_ITEM;
|
|
int KEY_QUICK;
|
|
int KEY_EXCHANGE;
|
|
int KEY_ESCAPE;
|
|
} DialogsCharInfo;
|
|
|
|
struct {
|
|
int KEY_FXON;
|
|
int KEY_MUSICON;
|
|
int KEY_LOAD;
|
|
int KEY_SAVE;
|
|
int KEY_QUIT;
|
|
int KEY_MRWIZARD;
|
|
} DialogsControlPanel;
|
|
|
|
struct {
|
|
int KEY_ROLL;
|
|
int KEY_CREATE;
|
|
int KEY_MGT;
|
|
int KEY_INT;
|
|
int KEY_PER;
|
|
int KEY_END;
|
|
int KEY_SPD;
|
|
int KEY_ACY;
|
|
int KEY_LCK;
|
|
} DialogsCreateChar;
|
|
|
|
struct {
|
|
int KEY_ADVENTURER;
|
|
int KEY_WARRIOR;
|
|
} DialogsDifficulty;
|
|
|
|
struct {
|
|
int KEY_WEAPONS;
|
|
int KEY_ARMOR;
|
|
int KEY_ACCESSORY;
|
|
int KEY_MISC;
|
|
int KEY_ENCHANT;
|
|
int KEY_USE;
|
|
int KEY_BUY;
|
|
int KEY_SELL;
|
|
int KEY_IDENTIFY;
|
|
int KEY_FIX;
|
|
int KEY_EQUIP;
|
|
int KEY_REM;
|
|
int KEY_DISC;
|
|
int KEY_QUEST;
|
|
int KEY_RECHRG;
|
|
int KEY_GOLD;
|
|
} DialogsItems;
|
|
|
|
struct {
|
|
int KEY_DELETE;
|
|
int KEY_REMOVE;
|
|
int KEY_CREATE;
|
|
int KEY_EXIT;
|
|
} DialogsParty;
|
|
|
|
struct {
|
|
int KEY_QUEST_ITEMS;
|
|
int KEY_CURRENT_QUESTS;
|
|
int KEY_AUTO_NOTES;
|
|
} DialogsQuests;
|
|
|
|
struct {
|
|
int KEY_NEXT;
|
|
} DialogsQuickFight;
|
|
|
|
struct {
|
|
int KEY_CAST;
|
|
int KEY_NEW;
|
|
int KEY_FIRE;
|
|
int KEY_ELEC;
|
|
int KEY_COLD;
|
|
int KEY_ACID;
|
|
int KEY_SET;
|
|
int KEY_RETURN;
|
|
} DialogsSpells;
|
|
|
|
struct {
|
|
int KEY_DEP;
|
|
int KEY_WITH;
|
|
int KEY_GOLD;
|
|
int KEY_GEMS;
|
|
int KEY_BROWSE;
|
|
int KEY_BUY_SPELLS;
|
|
int KEY_SPELL_INFO;
|
|
int KEY_SIGN_IN;
|
|
int KEY_DRINK;
|
|
int KEY_FOOD;
|
|
int KEY_TIP;
|
|
int KEY_RUMORS;
|
|
int KEY_HEAL;
|
|
int KEY_DONATION;
|
|
int KEY_UNCURSE;
|
|
int KEY_TRAIN;
|
|
} Locations;
|
|
|
|
struct {
|
|
int KEY_START_NEW_GAME;
|
|
int KEY_LOAD_GAME;
|
|
int KEY_SHOW_CREDITS;
|
|
int KEY_VIEW_ENDGAME;
|
|
} CloudsOfXeenMenu;
|
|
} KeyConstants;
|
|
|
|
|
|
public:
|
|
/**
|
|
* Constructor
|
|
*/
|
|
Resources();
|
|
|
|
/**
|
|
* Initializes an instnace of the resources
|
|
*/
|
|
Resources *init(XeenEngine *vm);
|
|
};
|
|
|
|
extern Resources *g_resources;
|
|
|
|
} // End of namespace Xeen
|
|
|
|
#endif /* XEEN_RESOURCES_H */
|