scummvm/devtools/create_xeen/constants.cpp

478 lines
18 KiB
C++
Raw Normal View History

2018-02-20 18:50:17 -05:00
/* 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.
*
*/
// Disable symbol overrides so that we can use system headers.
2018-02-20 18:50:17 -05:00
#define FORBIDDEN_SYMBOL_ALLOW_ALL
// HACK to allow building with the SDL backend on MinGW
// see bug #3412 "TOOLS: MinGW tools building broken"
2018-02-20 18:50:17 -05:00
#ifdef main
#undef main
#endif // main
#include "common/language.h"
2018-02-20 18:50:17 -05:00
#include "constants.h"
#include "en_constants.h"
#include "ru_constants.h"
void LangConstants::writeConstants(Common::String num, CCArchive &cc) {
Common::MemFile file;
file.syncString(CLOUDS_CREDITS());
file.syncString(DARK_SIDE_CREDITS());
file.syncString(SWORDS_CREDITS1());
file.syncString(SWORDS_CREDITS2());
file.syncString(OPTIONS_MENU());
file.syncStrings(GAME_NAMES(), 3);
delete[] _gameNames;
_gameNames = NULL;
file.syncString(THE_PARTY_NEEDS_REST());
file.syncString(WHO_WILL());
file.syncString(HOW_MUCH());
file.syncString(WHATS_THE_PASSWORD());
file.syncString(PASSWORD_INCORRECT());
file.syncString(IN_NO_CONDITION());
file.syncString(NOTHING_HERE());
file.syncStrings(TERRAIN_TYPES, 6);
file.syncStrings(OUTDOORS_WALL_TYPES, 16);
file.syncStrings(SURFACE_NAMES, 16);
file.syncStrings(WHO_ACTIONS(), 32);
delete[] _whoActions;
_whoActions = NULL;
file.syncStrings(WHO_WILL_ACTIONS(), 4);
delete[] _whoWillActions;
_whoWillActions = NULL;
file.syncBytes2D((const byte *)SYMBOLS, 20, 64);
file.syncBytes2D((const byte *)TEXT_COLORS, 40, 4);
file.syncBytes2D((const byte *)TEXT_COLORS_STARTUP, 40, 4);
file.syncStrings(DIRECTION_TEXT_UPPER(), 4);
delete[] _directionTextUpper;
_directionTextUpper = NULL;
file.syncStrings(DIRECTION_TEXT(), 4);
delete[] _directionText;
_directionText = NULL;
file.syncStrings(RACE_NAMES(), 5);
delete[] _raceNames;
_raceNames = NULL;
file.syncNumbers(RACE_HP_BONUSES, 5);
file.syncNumbers2D((const int *)RACE_SP_BONUSES, 5, 2);
file.syncStrings(CLASS_NAMES(), 11);
delete[] _classNames;
_classNames = NULL;
file.syncNumbers(CLASS_EXP_LEVELS, 10);
file.syncStrings(ALIGNMENT_NAMES(), 3);
delete[] _alignmentNames;
_alignmentNames = NULL;
file.syncStrings(SEX_NAMES(), 2);
delete[] _sexNames;
_sexNames = NULL;
file.syncStrings(SKILL_NAMES(), 18);
delete[] _skillNames;
_skillNames = NULL;
file.syncStrings(CONDITION_NAMES_M(), 17);
delete[] _conditionNamesM;
_conditionNamesM = NULL;
file.syncStrings(CONDITION_NAMES_F(), 17);
delete[] _conditionNamesF;
_conditionNamesF = NULL;
file.syncNumbers(CONDITION_COLORS, 17);
file.syncString(GOOD());
file.syncString(BLESSED());
file.syncString(POWER_SHIELD());
file.syncString(HOLY_BONUS());
file.syncString(HEROISM());
file.syncString(IN_PARTY());
file.syncString(PARTY_DETAILS());
file.syncString(PARTY_DIALOG_TEXT());
file.syncNumbers(FACE_CONDITION_FRAMES, 17);
file.syncNumbers(CHAR_FACES_X, 6);
file.syncNumbers(HP_BARS_X, 6);
file.syncString(NO_ONE_TO_ADVENTURE_WITH());
file.syncBytes2D((const byte *)DARKNESS_XLAT, 3, 256);
file.syncString(YOUR_ROSTER_IS_FULL());
file.syncString(PLEASE_WAIT());
file.syncString(OOPS());
file.syncNumbers2D((const int *)SCREEN_POSITIONING_X, 4, 48);
file.syncNumbers2D((const int *)SCREEN_POSITIONING_Y, 4, 48);
file.syncNumbers(MONSTER_GRID_BITMASK, 12);
file.syncNumbers2D((const int *)INDOOR_OBJECT_X, 2, 12);
file.syncNumbers2D((const int *)MAP_OBJECT_Y, 2, 12);
file.syncNumbers(INDOOR_MONSTERS_Y, 4);
file.syncNumbers2D((const int *)OUTDOOR_OBJECT_X, 2, 12);
file.syncNumbers(OUTDOOR_MONSTER_INDEXES, 26);
file.syncNumbers(OUTDOOR_MONSTERS_Y, 26);
file.syncNumbers2D((const int *)DIRECTION_ANIM_POSITIONS, 4, 4);
file.syncBytes2D((const byte *)WALL_SHIFTS, 4, 48);
file.syncNumbers(DRAW_NUMBERS, 25);
file.syncNumbers2D((const int *)DRAW_FRAMES, 25, 2);
file.syncNumbers(COMBAT_FLOAT_X, 8);
file.syncNumbers(COMBAT_FLOAT_Y, 8);
file.syncNumbers2D((const int *)MONSTER_EFFECT_FLAGS, 15, 8);
file.syncNumbers2D((const int *)SPELLS_ALLOWED, 3, 40);
file.syncNumbers(BASE_HP_BY_CLASS, 10);
file.syncNumbers(AGE_RANGES, 10);
file.syncNumbers2D((const int *)AGE_RANGES_ADJUST, 2, 10);
file.syncNumbers(STAT_VALUES, 24);
file.syncNumbers(STAT_BONUSES, 24);
file.syncNumbers(ELEMENTAL_CATEGORIES, 6);
file.syncNumbers(ATTRIBUTE_CATEGORIES, 10);
file.syncNumbers(ATTRIBUTE_BONUSES, 72);
file.syncNumbers(ELEMENTAL_RESISTENCES, 37);
file.syncNumbers(ELEMENTAL_DAMAGE, 37);
file.syncNumbers(WEAPON_DAMAGE_BASE, 35);
file.syncNumbers(WEAPON_DAMAGE_MULTIPLIER, 35);
file.syncNumbers(METAL_DAMAGE, 22);
file.syncNumbers(METAL_DAMAGE_PERCENT, 22);
file.syncNumbers(METAL_LAC, 22);
file.syncNumbers(ARMOR_STRENGTHS, 14);
file.syncNumbers(MAKE_ITEM_ARR1, 6);
file.syncNumbers3D((const int *)MAKE_ITEM_ARR2, 6, 7, 2);
file.syncNumbers3D((const int *)MAKE_ITEM_ARR3, 10, 7, 2);
file.syncNumbers3D((const int *)MAKE_ITEM_ARR4, 2, 7, 2);
file.syncNumbers2D((const int *)MAKE_ITEM_ARR5, 8, 2);
file.syncNumbers(OUTDOOR_DRAWSTRUCT_INDEXES, 44);
file.syncNumbers2D((const int *)TOWN_MAXES, 2, 11);
file.syncStrings2D((const char *const *)TOWN_ACTION_MUSIC, 2, 7);
file.syncStrings(TOWN_ACTION_SHAPES, 7);
file.syncNumbers2D((const int *)TOWN_ACTION_FILES, 2, 7);
file.syncString(BANK_TEXT());
file.syncString(BLACKSMITH_TEXT());
file.syncString(GUILD_NOT_MEMBER_TEXT());
file.syncString(GUILD_TEXT());
file.syncString(TAVERN_TEXT());
file.syncString(GOOD_STUFF());
file.syncString(HAVE_A_DRINK());
file.syncString(YOURE_DRUNK());
file.syncNumbers4D((const int *)TAVERN_EXIT_LIST, 2, 6, 5, 2);
file.syncString(FOOD_AND_DRINK());
file.syncString(TEMPLE_TEXT());
file.syncString(EXPERIENCE_FOR_LEVEL());
file.syncString(TRAINING_LEARNED_ALL());
file.syncString(ELIGIBLE_FOR_LEVEL());
file.syncString(TRAINING_TEXT());
file.syncString(GOLD_GEMS());
file.syncString(GOLD_GEMS_2());
file.syncStrings(DEPOSIT_WITHDRAWL(), 2);
delete[] _depositWithdrawl;
_depositWithdrawl = NULL;
file.syncString(NOT_ENOUGH_X_IN_THE_Y());
file.syncString(NO_X_IN_THE_Y());
file.syncStrings(STAT_NAMES(), 16);
delete[] _statNames;
_statNames = NULL;
file.syncStrings(CONSUMABLE_NAMES(), 6);
delete[] _consumableNames;
_consumableNames = NULL;
file.syncStrings(WHERE_NAMES(), 2);
delete[] _whereNames;
_whereNames = NULL;
file.syncString(AMOUNT());
file.syncString(FOOD_PACKS_FULL());
file.syncString(BUY_SPELLS());
file.syncString(GUILD_OPTIONS());
file.syncNumbers((const int *)MISC_SPELL_INDEX, 74);
file.syncNumbers((const int *)SPELL_COSTS, 77);
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.syncNumbers2D((const int *)SWORDS_SPELL_RANGES, 12, 2);
file.syncNumbers((const int *)SPELL_GEM_COST, 77);
file.syncString(NOT_A_SPELL_CASTER());
file.syncString(SPELLS_LEARNED_ALL());
file.syncString(SPELLS_FOR());
file.syncString(SPELL_LINES_0_TO_9());
file.syncString(SPELLS_DIALOG_SPELLS());
file.syncString(SPELL_PTS());
file.syncString(GOLD());
file.syncString(SPELL_INFO());
file.syncString(SPELL_PURCHASE());
file.syncString(MAP_TEXT());
file.syncString(LIGHT_COUNT_TEXT());
file.syncString(FIRE_RESISTENCE_TEXT());
file.syncString(ELECRICITY_RESISTENCE_TEXT());
file.syncString(COLD_RESISTENCE_TEXT());
file.syncString(POISON_RESISTENCE_TEXT());
file.syncString(CLAIRVOYANCE_TEXT());
file.syncString(LEVITATE_TEXT());
file.syncString(WALK_ON_WATER_TEXT());
file.syncString(GAME_INFORMATION());
file.syncString(WORLD_GAME_TEXT());
file.syncString(DARKSIDE_GAME_TEXT());
file.syncString(CLOUDS_GAME_TEXT());
file.syncString(SWORDS_GAME_TEXT());
file.syncStrings(WEEK_DAY_STRINGS(), 10);
delete[] _weekDayStrings;
_weekDayStrings = NULL;
file.syncString(CHARACTER_DETAILS());
file.syncStrings(DAYS(), 3);
file.syncString(PARTY_GOLD());
file.syncString(PLUS_14());
file.syncString(CHARACTER_TEMPLATE());
file.syncString(EXCHANGING_IN_COMBAT());
file.syncString(CURRENT_MAXIMUM_RATING_TEXT());
file.syncString(CURRENT_MAXIMUM_TEXT());
file.syncStrings(RATING_TEXT(), 24);
delete[] _ratingText;
_ratingText = NULL;
file.syncString(AGE_TEXT());
file.syncString(LEVEL_TEXT());
file.syncString(RESISTENCES_TEXT());
file.syncString(NONE());
file.syncString(EXPERIENCE_TEXT());
file.syncString(ELIGIBLE());
file.syncString(IN_PARTY_IN_BANK());
file.syncString(FOOD_TEXT());
file.syncString(EXCHANGE_WITH_WHOM());
file.syncString(QUICK_REF_LINE());
file.syncString(QUICK_REFERENCE());
file.syncNumbers2D((const int *)BLACKSMITH_MAP_IDS, 2, 4);
file.syncString(ITEMS_DIALOG_TEXT1());
file.syncString(ITEMS_DIALOG_TEXT2());
file.syncString(ITEMS_DIALOG_LINE1());
file.syncString(ITEMS_DIALOG_LINE2());
file.syncString(BTN_BUY());
file.syncString(BTN_SELL());
file.syncString(BTN_IDENTIFY());
file.syncString(BTN_FIX());
file.syncString(BTN_USE());
file.syncString(BTN_EQUIP());
file.syncString(BTN_REMOVE());
file.syncString(BTN_DISCARD());
file.syncString(BTN_QUEST());
file.syncString(BTN_ENCHANT());
file.syncString(BTN_RECHARGE());
file.syncString(BTN_GOLD());
file.syncString(ITEM_BROKEN());
file.syncString(ITEM_CURSED());
file.syncString(ITEM_OF());
file.syncStrings(BONUS_NAMES(), 7);
delete[] _bonusNames;
_bonusNames = NULL;
file.syncStrings(WEAPON_NAMES(), 41);
delete[] _weaponNames;
_weaponNames = NULL;
file.syncStrings(ARMOR_NAMES(), 14);
delete[] _armorNames;
_armorNames = NULL;
file.syncStrings(ACCESSORY_NAMES(), 11);
delete[] _accessoryNames;
_accessoryNames = NULL;
file.syncStrings(MISC_NAMES(), 22);
delete[] _miscNames;
_miscNames = NULL;
file.syncStrings(SPECIAL_NAMES(), 74);
delete[] _specialNames;
_specialNames = NULL;
file.syncStrings(ELEMENTAL_NAMES(), 6);
delete[] _elementalNames;
_elementalNames = NULL;
file.syncStrings(ATTRIBUTE_NAMES(), 10);
delete[] _attributeNames;
_attributeNames = NULL;
file.syncStrings(EFFECTIVENESS_NAMES(), 7);
delete[] _effectivenessNames;
_effectivenessNames = NULL;
file.syncStrings(QUEST_ITEM_NAMES(), 85);
delete[] _questItemNames;
_questItemNames = NULL;
file.syncStrings(QUEST_ITEM_NAMES_SWORDS(), 51);
delete[] _questItemNamesSwords;
_questItemNamesSwords = NULL;
file.syncNumbers((const int *)WEAPON_BASE_COSTS, 35);
file.syncNumbers((const int *)ARMOR_BASE_COSTS, 14);
file.syncNumbers((const int *)ACCESSORY_BASE_COSTS, 11);
file.syncNumbers((const int *)MISC_MATERIAL_COSTS, 22);
file.syncNumbers((const int *)MISC_BASE_COSTS, 76);
file.syncNumbers((const int *)METAL_BASE_MULTIPLIERS, 22);
file.syncNumbers((const int *)ITEM_SKILL_DIVISORS, 4);
file.syncNumbers((const int *)RESTRICTION_OFFSETS, 4);
file.syncNumbers((const int *)ITEM_RESTRICTIONS, 86);
file.syncString(NOT_PROFICIENT());
file.syncString(NO_ITEMS_AVAILABLE());
file.syncStrings(CATEGORY_NAMES(), 4);
delete[] _categoryNames;
_categoryNames = NULL;
file.syncString(X_FOR_THE_Y());
file.syncString(X_FOR_Y());
file.syncString(X_FOR_Y_GOLD());
file.syncString(FMT_CHARGES());
file.syncString(AVAILABLE_GOLD_COST());
file.syncString(CHARGES());
file.syncString(COST());
file.syncStrings(ITEM_ACTIONS(), 7);
delete[] _itemActions;
_itemActions = NULL;
file.syncString(WHICH_ITEM());
file.syncString(WHATS_YOUR_HURRY());
file.syncString(USE_ITEM_IN_COMBAT());
file.syncString(NO_SPECIAL_ABILITIES());
file.syncString(CANT_CAST_WHILE_ENGAGED());
file.syncString(EQUIPPED_ALL_YOU_CAN());
file.syncString(REMOVE_X_TO_EQUIP_Y());
file.syncString(RING());
file.syncString(MEDAL());
file.syncString(CANNOT_REMOVE_CURSED_ITEM());
file.syncString(CANNOT_DISCARD_CURSED_ITEM());
file.syncString(PERMANENTLY_DISCARD());
file.syncString(BACKPACK_IS_FULL());
file.syncStrings(CATEGORY_BACKPACK_IS_FULL(), 4);
file.syncString(BUY_X_FOR_Y_GOLD());
file.syncString(SELL_X_FOR_Y_GOLD());
file.syncStrings(GOLDS(), 2);
delete[] _sellXForYGoldEndings;
_sellXForYGoldEndings = NULL;
file.syncString(NO_NEED_OF_THIS());
file.syncString(NOT_RECHARGABLE());
file.syncString(SPELL_FAILED());
file.syncString(NOT_ENCHANTABLE());
file.syncString(ITEM_NOT_BROKEN());
file.syncStrings(FIX_IDENTIFY(), 2);
delete[] _fixIdentify;
_fixIdentify = NULL;
file.syncString(FIX_IDENTIFY_GOLD());
file.syncString(IDENTIFY_ITEM_MSG());
file.syncString(ITEM_DETAILS());
file.syncString(ALL());
file.syncString(FIELD_NONE());
file.syncString(DAMAGE_X_TO_Y());
file.syncString(ELEMENTAL_XY_DAMAGE());
file.syncString(ATTR_XY_BONUS());
file.syncString(EFFECTIVE_AGAINST());
file.syncString(QUESTS_DIALOG_TEXT());
file.syncString(CLOUDS_OF_XEEN_LINE());
file.syncString(DARKSIDE_OF_XEEN_LINE());
file.syncString(SWORDS_OF_XEEN_LINE());
file.syncString(NO_QUEST_ITEMS());
file.syncString(NO_CURRENT_QUESTS());
file.syncString(NO_AUTO_NOTES());
file.syncString(QUEST_ITEMS_DATA());
file.syncString(CURRENT_QUESTS_DATA());
file.syncString(AUTO_NOTES_DATA());
file.syncString(REST_COMPLETE());
file.syncString(PARTY_IS_STARVING());
file.syncString(HIT_SPELL_POINTS_RESTORED());
file.syncString(TOO_DANGEROUS_TO_REST());
file.syncString(SOME_CHARS_MAY_DIE());
file.syncString(DISMISS_WHOM());
file.syncString(CANT_DISMISS_LAST_CHAR());
file.syncString(DELETE_CHAR_WITH_ELDER_WEAPON());
file.syncStrings(REMOVE_DELETE(), 2);
delete[] _removeDelete;
_removeDelete = NULL;
file.syncString(REMOVE_OR_DELETE_WHICH());
file.syncString(YOUR_PARTY_IS_FULL());
file.syncString(HAS_SLAYER_SWORD());
file.syncString(SURE_TO_DELETE_CHAR());
file.syncString(CREATE_CHAR_DETAILS());
file.syncString(NEW_CHAR_STATS());
file.syncString(NAME_FOR_NEW_CHARACTER());
file.syncString(SELECT_CLASS_BEFORE_SAVING());
file.syncString(EXCHANGE_ATTR_WITH());
file.syncNumbers((const int *)NEW_CHAR_SKILLS, 10);
file.syncNumbers((const int *)NEW_CHAR_SKILLS_OFFSET, 10);
file.syncNumbers((const int *)NEW_CHAR_SKILLS_LEN, 10);
file.syncNumbers((const int *)NEW_CHAR_RACE_SKILLS, 10);
file.syncNumbers((const int *)RACE_MAGIC_RESISTENCES, 5);
file.syncNumbers((const int *)RACE_FIRE_RESISTENCES, 5);
file.syncNumbers((const int *)RACE_ELECTRIC_RESISTENCES, 5);
file.syncNumbers((const int *)RACE_COLD_RESISTENCES, 5);
file.syncNumbers((const int *)RACE_ENERGY_RESISTENCES, 5);
file.syncNumbers((const int *)RACE_POISON_RESISTENCES, 5);
file.syncNumbers2D((const int *)NEW_CHARACTER_SPELLS, 10, 4);
file.syncString(COMBAT_DETAILS());
file.syncString(NOT_ENOUGH_TO_CAST());
file.syncStrings(SPELL_CAST_COMPONENTS(), 2);
delete[] _spellCastComponents;
_spellCastComponents = NULL;
file.syncString(CAST_SPELL_DETAILS());
file.syncString(PARTY_FOUND());
file.syncString(BACKPACKS_FULL_PRESS_KEY());
file.syncString(HIT_A_KEY());
file.syncString(GIVE_TREASURE_FORMATTING());
file.syncString(X_FOUND_Y());
file.syncString(ON_WHO());
file.syncString(WHICH_ELEMENT1());
file.syncString(WHICH_ELEMENT2());
file.syncString(DETECT_MONSTERS());
file.syncString(LLOYDS_BEACON());
file.syncString(HOW_MANY_SQUARES());
file.syncString(TOWN_PORTAL());
file.syncString(TOWN_PORTAL_SWORDS());
file.syncNumbers2D((const int *)TOWN_MAP_NUMBERS, 3, 5);
file.syncString(MONSTER_DETAILS());
file.syncStrings(MONSTER_SPECIAL_ATTACKS(), 23);
delete[] _monsterSpecialAttacks;
_monsterSpecialAttacks = NULL;
file.syncString(IDENTIFY_MONSTERS());
file.syncStrings(EVENT_SAMPLES, 6);
file.syncString(MOONS_NOT_ALIGNED());
file.syncString(AWARDS_FOR());
file.syncString(AWARDS_TEXT());
file.syncString(NO_AWARDS());
file.syncString(WARZONE_BATTLE_MASTER());
file.syncString(WARZONE_MAXED());
file.syncString(WARZONE_LEVEL());
file.syncString(WARZONE_HOW_MANY());
file.syncString(PICKS_THE_LOCK());
file.syncString(UNABLE_TO_PICK_LOCK());
file.syncString(CONTROL_PANEL_TEXT());
file.syncString(CONTROL_PANEL_BUTTONS());
file.syncString(ON());
file.syncString(OFF());
file.syncString(CONFIRM_QUIT());
file.syncString(MR_WIZARD());
file.syncString(NO_LOADING_IN_COMBAT());
file.syncString(NO_SAVING_IN_COMBAT());
file.syncString(QUICK_FIGHT_TEXT());
file.syncStrings(QUICK_FIGHT_OPTIONS(), 4);
delete[] _quickFightOptions;
_quickFightOptions = NULL;
file.syncStrings(WORLD_END_TEXT(), 9);
delete[] _worldEndText;
_worldEndText = NULL;
file.syncString(WORLD_CONGRATULATIONS());
file.syncString(WORLD_CONGRATULATIONS2());
file.syncString(CLOUDS_CONGRATULATIONS1());
file.syncString(CLOUDS_CONGRATULATIONS2());
file.syncStrings(GOOBER(), 3);
delete[] _goober;
_goober = NULL;
file.syncStrings(MUSIC_FILES1, 5);
file.syncStrings2D((const char *const *)MUSIC_FILES2, 6, 7);
file.syncString(DIFFICULTY_TEXT());
file.syncString(SAVE_OFF_LIMITS());
file.syncString(CLOUDS_INTRO1());
file.syncString(DARKSIDE_ENDING1());
file.syncString(DARKSIDE_ENDING2());
file.syncString(PHAROAH_ENDING_TEXT1());
file.syncString(PHAROAH_ENDING_TEXT2());
cc.add("CONSTANTS" + num, file);
}
2021-07-19 18:48:14 +03:00
void writeConstants(CCArchive &cc) {
EN eng;
eng.writeConstants(Common::String::format("_%i", Common::Language::EN_ANY), cc);
RU ru;
ru.writeConstants(Common::String::format("_%i", Common::Language::RU_RUS), cc);
2018-02-20 18:50:17 -05:00
}