1 /* ScummVM - Graphic Adventure Engine 2 * 3 * ScummVM is the legal property of its developers, whose names 4 * are too numerous to list here. Please refer to the COPYRIGHT 5 * file distributed with this source distribution. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * as published by the Free Software Foundation; either version 2 10 * of the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 * 21 */ 22 23 #ifndef CONSTANTS_H 24 #define CONSTANTS_H 25 26 #include "common/scummsys.h" 27 #include "cc.h" 28 29 enum MagicSpell { 30 MS_AcidSpray = 0, 31 MS_Awaken = 1, 32 MS_BeastMaster = 2, 33 MS_Bless = 3, 34 MS_Clairvoyance = 4, 35 MS_ColdRay = 5, 36 MS_CreateFood = 6, 37 MS_CureDisease = 7, 38 MS_CureParalysis = 8, 39 MS_CurePoison = 9, 40 MS_CureWounds = 10, 41 MS_DancingSword = 11, 42 MS_DayOfProtection = 12, 43 MS_DayOfSorcery = 13, 44 MS_DeadlySwarm = 14, 45 MS_DetectMonster = 15, 46 MS_DivineIntervention = 16, 47 MS_DragonSleep = 17, 48 MS_ElementalStorm = 18, 49 MS_EnchantItem = 19, 50 MS_EnergyBlast = 20, 51 MS_Etheralize = 21, 52 MS_FantasticFreeze = 22, 53 MS_FieryFlail = 23, 54 MS_FingerOfDeath = 24, 55 MS_Fireball = 25, 56 MS_FirstAid = 26, 57 MS_FlyingFist = 27, 58 MS_FrostBite = 28, 59 MS_GolemStopper = 29, 60 MS_Heroism = 30, 61 MS_HolyBonus = 31, 62 MS_HolyWord = 32, 63 MS_Hynotize = 33, 64 MS_IdentifyMonster = 34, 65 MS_Implosion = 35, 66 MS_Incinerate = 36, 67 MS_Inferno = 37, 68 MS_InsectSpray = 38, 69 MS_ItemToGold = 39, 70 MS_Jump = 40, 71 MS_Levitate = 41, 72 MS_Light = 42, 73 MS_LightningBolt = 43, 74 MS_LloydsBeacon = 44, 75 MS_MagicArrow = 45, 76 MS_MassDistortion = 46, 77 MS_MegaVolts = 47, 78 MS_MoonRay = 48, 79 MS_NaturesCure = 49, 80 MS_Pain = 50, 81 MS_PoisonVolley = 51, 82 MS_PowerCure = 52, 83 MS_PowerShield = 53, 84 MS_PrismaticLight = 54, 85 MS_ProtFromElements = 55, 86 MS_RaiseDead = 56, 87 MS_RechargeItem = 57, 88 MS_Resurrection = 58, 89 MS_Revitalize = 59, 90 MS_Shrapmetal = 60, 91 MS_Sleep = 61, 92 MS_Sparks = 62, 93 MS_StarBurst = 63, 94 MS_StoneToFlesh = 64, 95 MS_SunRay = 65, 96 MS_SuperShelter = 66, 97 MS_SuppressDisease = 67, 98 MS_SuppressPoison = 68, 99 MS_Teleport = 69, 100 MS_TimeDistortion = 70, 101 MS_TownPortal = 71, 102 MS_ToxicCloud = 72, 103 MS_TurnUndead = 73, 104 MS_WalkOnWater = 74, 105 MS_WizardEye = 75, 106 NO_SPELL = 76 107 }; 108 109 class LangConstants { 110 public: 111 static const char *const TERRAIN_TYPES[6]; 112 static const char *const OUTDOORS_WALL_TYPES[16]; 113 static const char *const SURFACE_NAMES[16]; 114 static const byte SYMBOLS[20][64]; 115 static const byte TEXT_COLORS[40][4]; 116 static const byte TEXT_COLORS_STARTUP[40][4]; 117 static const int RACE_HP_BONUSES[5]; 118 static const int RACE_SP_BONUSES[5][2]; 119 static const int CLASS_EXP_LEVELS[10]; 120 static const int CONDITION_COLORS[17]; 121 static const int FACE_CONDITION_FRAMES[17]; 122 static const int CHAR_FACES_X[6]; 123 static const int HP_BARS_X[6]; 124 static const byte DARKNESS_XLAT[3][256]; 125 static const int SCREEN_POSITIONING_X[4][48]; 126 static const int SCREEN_POSITIONING_Y[4][48]; 127 static const int MONSTER_GRID_BITMASK[12]; 128 static const int INDOOR_OBJECT_X[2][12]; 129 static const int MAP_OBJECT_Y[2][12]; 130 static const int INDOOR_MONSTERS_Y[4]; 131 static const int OUTDOOR_OBJECT_X[2][12]; 132 static const int OUTDOOR_MONSTER_INDEXES[26]; 133 static const int OUTDOOR_MONSTERS_Y[26]; 134 static const int DIRECTION_ANIM_POSITIONS[4][4]; 135 static const byte WALL_SHIFTS[4][48]; 136 static const int DRAW_NUMBERS[25]; 137 static const int DRAW_FRAMES[25][2]; 138 static const int COMBAT_FLOAT_X[8]; 139 static const int COMBAT_FLOAT_Y[8]; 140 static const int MONSTER_EFFECT_FLAGS[15][8]; 141 static const int SPELLS_ALLOWED[3][40]; 142 static const int BASE_HP_BY_CLASS[10]; 143 static const int AGE_RANGES[10]; 144 static const int AGE_RANGES_ADJUST[2][10]; 145 static const int STAT_VALUES[24]; 146 static const int STAT_BONUSES[24]; 147 static const int ELEMENTAL_CATEGORIES[6]; 148 static const int ATTRIBUTE_CATEGORIES[10]; 149 static const int ATTRIBUTE_BONUSES[72]; 150 static const int ELEMENTAL_RESISTENCES[37]; 151 static const int ELEMENTAL_DAMAGE[37]; 152 static const int WEAPON_DAMAGE_BASE[35]; 153 static const int WEAPON_DAMAGE_MULTIPLIER[35]; 154 static const int METAL_DAMAGE[22]; 155 static const int METAL_DAMAGE_PERCENT[22]; 156 static const int METAL_LAC[22]; 157 static const int ARMOR_STRENGTHS[14]; 158 static const int MAKE_ITEM_ARR1[6]; 159 static const int MAKE_ITEM_ARR2[6][7][2]; 160 static const int MAKE_ITEM_ARR3[10][7][2]; 161 static const int MAKE_ITEM_ARR4[2][7][2]; 162 static const int MAKE_ITEM_ARR5[8][2]; 163 static const int OUTDOOR_DRAWSTRUCT_INDEXES[44]; 164 static const int TOWN_MAXES[2][11]; 165 static const char *const TOWN_ACTION_MUSIC[2][7]; 166 static const char *const TOWN_ACTION_SHAPES[7]; 167 static const int TOWN_ACTION_FILES[2][7]; 168 static const int TAVERN_EXIT_LIST[2][6][5][2]; 169 static const int MISC_SPELL_INDEX[74]; 170 static const int SPELL_COSTS[77]; 171 static const int DARK_SPELL_RANGES[12][2]; 172 static const int SWORDS_SPELL_RANGES[12][2]; 173 static const int CLOUDS_GUILD_SPELLS[5][20]; 174 static const int DARK_SPELL_OFFSETS[3][39]; 175 static const int SPELL_GEM_COST[77]; 176 static const int BLACKSMITH_MAP_IDS[2][4]; 177 static const int WEAPON_BASE_COSTS[35]; 178 static const int ARMOR_BASE_COSTS[14]; 179 static const int ACCESSORY_BASE_COSTS[11]; 180 static const int MISC_MATERIAL_COSTS[22]; 181 static const int MISC_BASE_COSTS[76]; 182 static const int METAL_BASE_MULTIPLIERS[22]; 183 static const int ITEM_SKILL_DIVISORS[4]; 184 static const int RESTRICTION_OFFSETS[4]; 185 static const int ITEM_RESTRICTIONS[86]; 186 static const int NEW_CHAR_SKILLS[10]; 187 static const int NEW_CHAR_SKILLS_LEN[10]; 188 static const int NEW_CHAR_RACE_SKILLS[10]; 189 static const int RACE_MAGIC_RESISTENCES[5]; 190 static const int RACE_FIRE_RESISTENCES[5]; 191 static const int RACE_ELECTRIC_RESISTENCES[5]; 192 static const int RACE_COLD_RESISTENCES[5]; 193 static const int RACE_ENERGY_RESISTENCES[5]; 194 static const int RACE_POISON_RESISTENCES[5]; 195 static const int NEW_CHARACTER_SPELLS[10][4]; 196 static const int TOWN_MAP_NUMBERS[3][5]; 197 static const char *const EVENT_SAMPLES[6]; 198 static const char *const MUSIC_FILES1[5]; 199 static const char *const MUSIC_FILES2[6][7]; 200 ~LangConstants()201 virtual ~LangConstants() {} 202 virtual const char *CLOUDS_CREDITS() = 0; 203 virtual const char *DARK_SIDE_CREDITS() = 0; 204 virtual const char *SWORDS_CREDITS1() = 0; 205 virtual const char *SWORDS_CREDITS2() = 0; 206 virtual const char *OPTIONS_MENU() = 0; 207 virtual const char **GAME_NAMES() = 0; 208 virtual const char *THE_PARTY_NEEDS_REST() = 0; 209 virtual const char *WHO_WILL() = 0; 210 virtual const char *HOW_MUCH() = 0; 211 virtual const char *WHATS_THE_PASSWORD() = 0; 212 virtual const char *PASSWORD_INCORRECT() = 0; 213 virtual const char *IN_NO_CONDITION() = 0; 214 virtual const char *NOTHING_HERE() = 0; 215 virtual const char **WHO_ACTIONS() = 0; 216 virtual const char **WHO_WILL_ACTIONS() = 0; 217 virtual const char **DIRECTION_TEXT_UPPER() = 0; 218 virtual const char **DIRECTION_TEXT() = 0; 219 virtual const char **RACE_NAMES() = 0; 220 virtual const char **ALIGNMENT_NAMES() = 0; 221 virtual const char **SEX_NAMES() = 0; 222 virtual const char **SKILL_NAMES() = 0; 223 virtual const char **CLASS_NAMES() = 0; 224 virtual const char **CONDITION_NAMES_M() = 0; 225 virtual const char **CONDITION_NAMES_F() = 0; 226 virtual const char *GOOD() = 0; 227 virtual const char *BLESSED() = 0; 228 virtual const char *POWER_SHIELD() = 0; 229 virtual const char *HOLY_BONUS() = 0; 230 virtual const char *HEROISM() = 0; 231 virtual const char *IN_PARTY() = 0; 232 virtual const char *PARTY_DETAILS() = 0; 233 virtual const char *PARTY_DIALOG_TEXT() = 0; 234 virtual const char *NO_ONE_TO_ADVENTURE_WITH() = 0; 235 virtual const char *YOUR_ROSTER_IS_FULL() = 0; 236 virtual const char *PLEASE_WAIT() = 0; 237 virtual const char *OOPS() = 0; 238 virtual const char *BANK_TEXT() = 0; 239 virtual const char *BLACKSMITH_TEXT() = 0; 240 virtual const char *GUILD_NOT_MEMBER_TEXT() = 0; 241 virtual const char *GUILD_TEXT() = 0; 242 virtual const char *TAVERN_TEXT() = 0; 243 virtual const char *FOOD_AND_DRINK() = 0; 244 virtual const char *GOOD_STUFF() = 0; 245 virtual const char *HAVE_A_DRINK() = 0; 246 virtual const char *YOURE_DRUNK() = 0; 247 virtual const char *TEMPLE_TEXT() = 0; 248 virtual const char *EXPERIENCE_FOR_LEVEL() = 0; 249 virtual const char *TRAINING_LEARNED_ALL() = 0; 250 virtual const char *ELIGIBLE_FOR_LEVEL() = 0; 251 virtual const char *TRAINING_TEXT() = 0; 252 virtual const char *GOLD_GEMS() = 0; 253 virtual const char *GOLD_GEMS_2() = 0; 254 virtual const char **DEPOSIT_WITHDRAWL() = 0; 255 virtual const char *NOT_ENOUGH_X_IN_THE_Y() = 0; 256 virtual const char *NO_X_IN_THE_Y() = 0; 257 virtual const char **STAT_NAMES() = 0; 258 virtual const char **CONSUMABLE_NAMES() = 0; 259 virtual const char **CONSUMABLE_GOLD_FORMS() = 0; 260 virtual const char **CONSUMABLE_GEM_FORMS() = 0; 261 virtual const char **WHERE_NAMES() = 0; 262 virtual const char *AMOUNT() = 0; 263 virtual const char *FOOD_PACKS_FULL() = 0; 264 virtual const char *BUY_SPELLS() = 0; 265 virtual const char *GUILD_OPTIONS() = 0; 266 virtual const char *NOT_A_SPELL_CASTER() = 0; 267 virtual const char *SPELLS_LEARNED_ALL() = 0; 268 virtual const char *SPELLS_FOR() = 0; 269 virtual const char *SPELL_LINES_0_TO_9() = 0; 270 virtual const char *SPELLS_DIALOG_SPELLS() = 0; 271 virtual const char *SPELL_PTS() = 0; 272 virtual const char *GOLD() = 0; 273 virtual const char *SPELL_INFO() = 0; 274 virtual const char *SPELL_PURCHASE() = 0; 275 virtual const char *MAP_TEXT() = 0; 276 virtual const char *LIGHT_COUNT_TEXT() = 0; 277 virtual const char *FIRE_RESISTENCE_TEXT() = 0; 278 virtual const char *ELECRICITY_RESISTENCE_TEXT() = 0; 279 virtual const char *COLD_RESISTENCE_TEXT() = 0; 280 virtual const char *POISON_RESISTENCE_TEXT() = 0; 281 virtual const char *CLAIRVOYANCE_TEXT() = 0; 282 virtual const char *LEVITATE_TEXT() = 0; 283 virtual const char *WALK_ON_WATER_TEXT() = 0; 284 virtual const char *GAME_INFORMATION() = 0; 285 virtual const char *WORLD_GAME_TEXT() = 0; 286 virtual const char *DARKSIDE_GAME_TEXT() = 0; 287 virtual const char *CLOUDS_GAME_TEXT() = 0; 288 virtual const char *SWORDS_GAME_TEXT() = 0; 289 virtual const char **WEEK_DAY_STRINGS() = 0; 290 virtual const char *CHARACTER_DETAILS() = 0; 291 virtual const char **DAYS() = 0; 292 virtual const char *PARTY_GOLD() = 0; 293 virtual const char *PLUS_14() = 0; 294 virtual const char *CHARACTER_TEMPLATE() = 0; 295 virtual const char *EXCHANGING_IN_COMBAT() = 0; 296 virtual const char *CURRENT_MAXIMUM_RATING_TEXT() = 0; 297 virtual const char *CURRENT_MAXIMUM_TEXT() = 0; 298 virtual const char **RATING_TEXT() = 0; 299 virtual const char **BORN() = 0; 300 virtual const char *AGE_TEXT() = 0; 301 virtual const char *LEVEL_TEXT() = 0; 302 virtual const char *RESISTENCES_TEXT() = 0; 303 virtual const char *NONE() = 0; 304 virtual const char *EXPERIENCE_TEXT() = 0; 305 virtual const char *ELIGIBLE() = 0; 306 virtual const char *IN_PARTY_IN_BANK() = 0; 307 virtual const char **FOOD_ON_HAND() = 0; 308 virtual const char *FOOD_TEXT() = 0; 309 virtual const char *EXCHANGE_WITH_WHOM() = 0; 310 virtual const char *QUICK_REF_LINE() = 0; 311 virtual const char *QUICK_REFERENCE() = 0; 312 virtual const char *ITEMS_DIALOG_TEXT1() = 0; 313 virtual const char *ITEMS_DIALOG_TEXT2() = 0; 314 virtual const char *ITEMS_DIALOG_LINE1() = 0; 315 virtual const char *ITEMS_DIALOG_LINE2() = 0; 316 virtual const char *BTN_BUY() = 0; 317 virtual const char *BTN_SELL() = 0; 318 virtual const char *BTN_IDENTIFY() = 0; 319 virtual const char *BTN_FIX() = 0; 320 virtual const char *BTN_USE() = 0; 321 virtual const char *BTN_EQUIP() = 0; 322 virtual const char *BTN_REMOVE() = 0; 323 virtual const char *BTN_DISCARD() = 0; 324 virtual const char *BTN_QUEST() = 0; 325 virtual const char *BTN_ENCHANT() = 0; 326 virtual const char *BTN_RECHARGE() = 0; 327 virtual const char *BTN_GOLD() = 0; 328 virtual const char *ITEM_BROKEN() = 0; 329 virtual const char *ITEM_CURSED() = 0; 330 virtual const char *ITEM_OF() = 0; 331 virtual const char **BONUS_NAMES() = 0; 332 virtual const char **WEAPON_NAMES() = 0; 333 virtual const char **ARMOR_NAMES() = 0; 334 virtual const char **ACCESSORY_NAMES() = 0; 335 virtual const char **MISC_NAMES() = 0; 336 virtual const char **SPECIAL_NAMES() = 0; 337 virtual const char **ELEMENTAL_NAMES() = 0; 338 virtual const char **ATTRIBUTE_NAMES() = 0; 339 virtual const char **EFFECTIVENESS_NAMES() = 0; 340 virtual const char **QUEST_ITEM_NAMES() = 0; 341 virtual const char **QUEST_ITEM_NAMES_SWORDS() = 0; 342 virtual const char *NOT_PROFICIENT() = 0; 343 virtual const char *NO_ITEMS_AVAILABLE() = 0; 344 virtual const char **CATEGORY_NAMES() = 0; 345 virtual const char *X_FOR_THE_Y() = 0; 346 virtual const char *X_FOR_Y() = 0; 347 virtual const char *X_FOR_Y_GOLD() = 0; 348 virtual const char *FMT_CHARGES() = 0; 349 virtual const char *AVAILABLE_GOLD_COST() = 0; 350 virtual const char *CHARGES() = 0; 351 virtual const char *COST() = 0; 352 virtual const char **ITEM_ACTIONS() = 0; 353 virtual const char *WHICH_ITEM() = 0; 354 virtual const char *WHATS_YOUR_HURRY() = 0; 355 virtual const char *USE_ITEM_IN_COMBAT() = 0; 356 virtual const char *NO_SPECIAL_ABILITIES() = 0; 357 virtual const char *CANT_CAST_WHILE_ENGAGED() = 0; 358 virtual const char *EQUIPPED_ALL_YOU_CAN() = 0; 359 virtual const char *REMOVE_X_TO_EQUIP_Y() = 0; 360 virtual const char *RING() = 0; 361 virtual const char *MEDAL() = 0; 362 virtual const char *CANNOT_REMOVE_CURSED_ITEM() = 0; 363 virtual const char *CANNOT_DISCARD_CURSED_ITEM() = 0; 364 virtual const char *PERMANENTLY_DISCARD() = 0; 365 virtual const char *BACKPACK_IS_FULL() = 0; 366 virtual const char **CATEGORY_BACKPACK_IS_FULL() = 0; 367 virtual const char *BUY_X_FOR_Y_GOLD() = 0; 368 virtual const char *SELL_X_FOR_Y_GOLD() = 0; 369 virtual const char **GOLDS() = 0; 370 virtual const char *NO_NEED_OF_THIS() = 0; 371 virtual const char *NOT_RECHARGABLE() = 0; 372 virtual const char *NOT_ENCHANTABLE() = 0; 373 virtual const char *SPELL_FAILED() = 0; 374 virtual const char *ITEM_NOT_BROKEN() = 0; 375 virtual const char **FIX_IDENTIFY() = 0; 376 virtual const char *FIX_IDENTIFY_GOLD() = 0; 377 virtual const char *IDENTIFY_ITEM_MSG() = 0; 378 virtual const char *ITEM_DETAILS() = 0; 379 virtual const char *ALL() = 0; 380 virtual const char *FIELD_NONE() = 0; 381 virtual const char *DAMAGE_X_TO_Y() = 0; 382 virtual const char *ELEMENTAL_XY_DAMAGE() = 0; 383 virtual const char *ATTR_XY_BONUS() = 0; 384 virtual const char *EFFECTIVE_AGAINST() = 0; 385 virtual const char *QUESTS_DIALOG_TEXT() = 0; 386 virtual const char *CLOUDS_OF_XEEN_LINE() = 0; 387 virtual const char *DARKSIDE_OF_XEEN_LINE() = 0; 388 virtual const char *SWORDS_OF_XEEN_LINE() = 0; 389 virtual const char *NO_QUEST_ITEMS() = 0; 390 virtual const char *NO_CURRENT_QUESTS() = 0; 391 virtual const char *NO_AUTO_NOTES() = 0; 392 virtual const char *QUEST_ITEMS_DATA() = 0; 393 virtual const char *CURRENT_QUESTS_DATA() = 0; 394 virtual const char *AUTO_NOTES_DATA() = 0; 395 virtual const char *REST_COMPLETE() = 0; 396 virtual const char *PARTY_IS_STARVING() = 0; 397 virtual const char *HIT_SPELL_POINTS_RESTORED() = 0; 398 virtual const char *TOO_DANGEROUS_TO_REST() = 0; 399 virtual const char *SOME_CHARS_MAY_DIE() = 0; 400 virtual const char *DISMISS_WHOM() = 0; 401 virtual const char *CANT_DISMISS_LAST_CHAR() = 0; 402 virtual const char *DELETE_CHAR_WITH_ELDER_WEAPON() = 0; 403 virtual const char **REMOVE_DELETE() = 0; 404 virtual const char *REMOVE_OR_DELETE_WHICH() = 0; 405 virtual const char *YOUR_PARTY_IS_FULL() = 0; 406 virtual const char *HAS_SLAYER_SWORD() = 0; 407 virtual const char *SURE_TO_DELETE_CHAR() = 0; 408 virtual const char *CREATE_CHAR_DETAILS() = 0; 409 virtual const char *NEW_CHAR_STATS() = 0; 410 virtual const char *NAME_FOR_NEW_CHARACTER() = 0; 411 virtual const char *SELECT_CLASS_BEFORE_SAVING() = 0; 412 virtual const char *EXCHANGE_ATTR_WITH() = 0; 413 virtual const int *NEW_CHAR_SKILLS_OFFSET() = 0; 414 virtual const char *COMBAT_DETAILS() = 0; 415 virtual const char *NOT_ENOUGH_TO_CAST() = 0; 416 virtual const char **SPELL_CAST_COMPONENTS() = 0; 417 virtual const char *CAST_SPELL_DETAILS() = 0; 418 virtual const char *PARTY_FOUND() = 0; 419 virtual const char *BACKPACKS_FULL_PRESS_KEY() = 0; 420 virtual const char *HIT_A_KEY() = 0; 421 virtual const char *GIVE_TREASURE_FORMATTING() = 0; 422 virtual const char **FOUND() = 0; 423 virtual const char *X_FOUND_Y() = 0; 424 virtual const char *ON_WHO() = 0; 425 virtual const char *WHICH_ELEMENT1() = 0; 426 virtual const char *WHICH_ELEMENT2() = 0; 427 virtual const char *DETECT_MONSTERS() = 0; 428 virtual const char *LLOYDS_BEACON() = 0; 429 virtual const char *HOW_MANY_SQUARES() = 0; 430 virtual const char *TOWN_PORTAL() = 0; 431 virtual const char *TOWN_PORTAL_SWORDS() = 0; 432 virtual const char *MONSTER_DETAILS() = 0; 433 virtual const char **MONSTER_SPECIAL_ATTACKS() = 0; 434 virtual const char *IDENTIFY_MONSTERS() = 0; 435 virtual const char *MOONS_NOT_ALIGNED() = 0; 436 virtual const char *AWARDS_FOR() = 0; 437 virtual const char *AWARDS_TEXT() = 0; 438 virtual const char *NO_AWARDS() = 0; 439 virtual const char *WARZONE_BATTLE_MASTER() = 0; 440 virtual const char *WARZONE_MAXED() = 0; 441 virtual const char *WARZONE_LEVEL() = 0; 442 virtual const char *WARZONE_HOW_MANY() = 0; 443 virtual const char *PICKS_THE_LOCK() = 0; 444 virtual const char **PICK_FORM() = 0; 445 virtual const char *UNABLE_TO_PICK_LOCK() = 0; 446 virtual const char **UNABLE_TO_PICK_FORM() = 0; 447 virtual const char *CONTROL_PANEL_TEXT() = 0; 448 virtual const char *CONTROL_PANEL_BUTTONS() = 0; 449 virtual const char *ON() = 0; 450 virtual const char *OFF() = 0; 451 virtual const char *CONFIRM_QUIT() = 0; 452 virtual const char *MR_WIZARD() = 0; 453 virtual const char *NO_LOADING_IN_COMBAT() = 0; 454 virtual const char *NO_SAVING_IN_COMBAT() = 0; 455 virtual const char *QUICK_FIGHT_TEXT() = 0; 456 virtual const char **QUICK_FIGHT_OPTIONS() = 0; 457 virtual const char **WORLD_END_TEXT() = 0; 458 virtual const char *WORLD_CONGRATULATIONS() = 0; 459 virtual const char *WORLD_CONGRATULATIONS2() = 0; 460 virtual const char *CLOUDS_CONGRATULATIONS1() = 0; 461 virtual const char *CLOUDS_CONGRATULATIONS2() = 0; 462 virtual const char **GOOBER() = 0; 463 virtual const char *DIFFICULTY_TEXT() = 0; 464 virtual const char *SAVE_OFF_LIMITS() = 0; 465 virtual const char *CLOUDS_INTRO1() = 0; 466 virtual const char *DARKSIDE_ENDING1() = 0; 467 virtual const char *DARKSIDE_ENDING2() = 0; 468 virtual const char *PHAROAH_ENDING_TEXT1() = 0; 469 virtual const char *PHAROAH_ENDING_TEXT2() = 0; 470 virtual const char **CLOUDS_MAE_NAMES() = 0; 471 virtual const char **CLOUDS_MIRROR_LOCATIONS() = 0; 472 virtual const char **CLOUDS_MAP_NAMES() = 0; 473 virtual const char **CLOUDS_MONSTERS() = 0; 474 virtual const char **CLOUDS_SPELLS() = 0; 475 476 void writeConstants(Common::String num, CCArchive &cc); 477 478 class KeyConstants { 479 public: 480 class DialogsCharInfo { 481 public: 482 virtual int KEY_ITEM() = 0; 483 virtual int KEY_QUICK() = 0; 484 virtual int KEY_EXCHANGE() = 0; ~DialogsCharInfo()485 virtual ~DialogsCharInfo() {} 486 }; 487 virtual DialogsCharInfo *dialogsCharInfo() = 0; 488 489 class DialogsControlPanel { 490 public: 491 virtual int KEY_FXON() = 0; 492 virtual int KEY_MUSICON() = 0; 493 virtual int KEY_LOAD() = 0; 494 virtual int KEY_SAVE() = 0; 495 virtual int KEY_QUIT() = 0; 496 virtual int KEY_MRWIZARD() = 0; ~DialogsControlPanel()497 virtual ~DialogsControlPanel() {} 498 }; 499 virtual DialogsControlPanel *dialogsControlPanel() = 0; 500 501 class DialogsCreateChar { 502 public: 503 virtual int KEY_ROLL() = 0; 504 virtual int KEY_CREATE() = 0; 505 virtual int KEY_MGT() = 0; 506 virtual int KEY_INT() = 0; 507 virtual int KEY_PER() = 0; 508 virtual int KEY_END() = 0; 509 virtual int KEY_SPD() = 0; 510 virtual int KEY_ACY() = 0; 511 virtual int KEY_LCK() = 0; ~DialogsCreateChar()512 virtual ~DialogsCreateChar() {} 513 }; 514 virtual DialogsCreateChar *dialogsCreateChar() = 0; 515 516 class DialogsDifficulty { 517 public: 518 virtual int KEY_ADVENTURER() = 0; 519 virtual int KEY_WARRIOR() = 0; ~DialogsDifficulty()520 virtual ~DialogsDifficulty() {} 521 }; 522 virtual DialogsDifficulty *dialogsDifficulty() = 0; 523 524 class DialogsItems { 525 public: 526 virtual int KEY_WEAPONS() = 0; 527 virtual int KEY_ARMOR() = 0; 528 virtual int KEY_ACCESSORY() = 0; 529 virtual int KEY_MISC() = 0; 530 virtual int KEY_ENCHANT() = 0; 531 virtual int KEY_USE() = 0; 532 virtual int KEY_BUY() = 0; 533 virtual int KEY_SELL() = 0; 534 virtual int KEY_IDENTIFY() = 0; 535 virtual int KEY_FIX() = 0; 536 virtual int KEY_EQUIP() = 0; 537 virtual int KEY_REM() = 0; 538 virtual int KEY_DISC() = 0; 539 virtual int KEY_QUEST() = 0; 540 virtual int KEY_RECHRG() = 0; 541 virtual int KEY_GOLD() = 0; ~DialogsItems()542 virtual ~DialogsItems() {} 543 }; 544 virtual DialogsItems *dialogsItems() = 0; 545 546 class DialogsParty { 547 public: 548 virtual int KEY_DELETE() = 0; 549 virtual int KEY_REMOVE() = 0; 550 virtual int KEY_CREATE() = 0; 551 virtual int KEY_EXIT() = 0; ~DialogsParty()552 virtual ~DialogsParty() {} 553 }; 554 virtual DialogsParty *dialogsParty() = 0; 555 556 class DialogsQuests { 557 public: 558 virtual int KEY_QUEST_ITEMS() = 0; 559 virtual int KEY_CURRENT_QUESTS() = 0; 560 virtual int KEY_AUTO_NOTES() = 0; ~DialogsQuests()561 virtual ~DialogsQuests() {} 562 }; 563 virtual DialogsQuests *dialogsQuests() = 0; 564 565 class DialogsQuickFight { 566 public: 567 virtual int KEY_NEXT() = 0; ~DialogsQuickFight()568 virtual ~DialogsQuickFight() {} 569 }; 570 virtual DialogsQuickFight *dialogsQuickFight() = 0; 571 572 class DialogsSpells { 573 public: 574 virtual int KEY_CAST() = 0; 575 virtual int KEY_NEW() = 0; 576 virtual int KEY_FIRE() = 0; 577 virtual int KEY_ELEC() = 0; 578 virtual int KEY_COLD() = 0; 579 virtual int KEY_ACID() = 0; 580 virtual int KEY_SET() = 0; 581 virtual int KEY_RETURN() = 0; ~DialogsSpells()582 virtual ~DialogsSpells() {} 583 }; 584 virtual DialogsSpells *dialogsSpells() = 0; 585 586 class Locations { 587 public: 588 virtual int KEY_DEP() = 0; 589 virtual int KEY_WITH() = 0; 590 virtual int KEY_GOLD() = 0; 591 virtual int KEY_GEMS() = 0; 592 virtual int KEY_BROWSE() = 0; 593 virtual int KEY_BUY_SPELLS() = 0; 594 virtual int KEY_SPELL_INFO() = 0; 595 virtual int KEY_SIGN_IN() = 0; 596 virtual int KEY_DRINK() = 0; 597 virtual int KEY_FOOD() = 0; 598 virtual int KEY_TIP() = 0; 599 virtual int KEY_RUMORS() = 0; 600 virtual int KEY_HEAL() = 0; 601 virtual int KEY_DONATION() = 0; 602 virtual int KEY_UNCURSE() = 0; 603 virtual int KEY_TRAIN() = 0; ~Locations()604 virtual ~Locations() {} 605 }; 606 virtual Locations *locations() = 0; 607 608 class CloudsOfXeenMenu { 609 public: 610 virtual int KEY_START_NEW_GAME() = 0; 611 virtual int KEY_LOAD_GAME() = 0; 612 virtual int KEY_SHOW_CREDITS() = 0; 613 virtual int KEY_VIEW_ENDGAME() = 0; ~CloudsOfXeenMenu()614 virtual ~CloudsOfXeenMenu() {} 615 }; 616 virtual CloudsOfXeenMenu *cloudsOfXeenMenu() = 0; ~KeyConstants()617 virtual ~KeyConstants() {} 618 }; 619 virtual KeyConstants *keyConstants() = 0; 620 }; 621 622 extern void writeConstants(CCArchive &cc); 623 624 #endif 625