aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/resources.h
blob: 000e332ad455ab780572d1d1fbcc27ff7a8df501 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
/* 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 2
 * 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, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 *
 */

#ifndef XEEN_RESOURCES_H
#define XEEN_RESOURCES_H

#include "common/scummsys.h"
#include "common/str-array.h"
#include "gui/debugger.h"
#include "xeen/party.h"
#include "xeen/spells.h"

namespace Xeen {

#define Res (*g_resources)

class XeenEngine;

class Resources {
protected:
	Resources();
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 SURFACE_TYPE_NAMES[15];
	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 BACKGROUND_XLAT[];
	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_DRAWSTRCT_INDEXES[44];
	static const int TOWN_MAXES[2][11];
	static const char *const TOWN_ACTION_MUSIC[14];
	static const char *const TOWN_ACTION_SHAPES[4];
	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[25];
	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;

	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];
public:
	/**
	 * Initializes an instnace of the resources
	 */
	static Resources *init(XeenEngine *vm);
};

extern Resources *g_resources;

} // End of namespace Xeen

#endif	/* XEEN_RESOURCES_H */