def make_db(s): b = s.encode('cp1251') return ','.join(str(x) for x in b) + ',0' bosses = [ 'БЕС АЗАРТА', 'ДЕМОН КОСТЕЙ', 'ЧЕРНОКНИЖНИК', 'КРУПЬЕ ПРЕИСПОДНЕЙ', 'ДЕМОН БЛЕФА', 'ОБРЕЧЕННЫЙ ГРЕШНИК', 'КОЛЕСО СУДЬБЫ', 'КАРТОЧНЫЙ ЧЕРТ', 'ПАЛАЧ КРЮКА', 'ВЛАДЫКА БАШНИ' ] games = [ 'Орел и решка', 'Кости', 'Черепа и шарик', '21 / Очко', 'Покер', 'Русская рулетка', 'Казино-рулетка', 'Дурак', 'Крюк: Skill Check', 'Buckshot Roulette' ] descs = [ 'Угадай сторону монеты.', 'Перебрось демона в сумме костей.', 'Найди душу под черепом.', 'Собери 21 очко и победи крупье.', 'Вскрой карты и победи в покер.', '1 патрон в барабане: выживи.', 'Сделай ставку на рулетке.', 'Оставь чёрта в дураках.', 'Попади в зону и сорвись с крюка.', 'Дуэль на дробовиках за жизнь!' ] lines = [] lines.append('; --- hell_tower_data.inc: Data for Hell Tower 3D ---') lines.append('MODE_HELL_TOWER equ 22') lines.append('TOWER_STATE_BRIEFING equ 0') lines.append('TOWER_STATE_IN_GAME equ 1') lines.append('TOWER_STATE_CLEAR equ 2') lines.append('TOWER_STATE_DEFEAT equ 3') lines.append('TOWER_STATE_CHAMPION equ 4') lines.append('') lines.append('InitHellTower3D PROTO') lines.append('TowerExitToHall PROTO') lines.append('TowerReportRoundOutcome PROTO :DWORD') lines.append('RenderTowerInGameBadge PROTO') lines.append('') lines.append('.data') lines.append('towerStage dd 1') lines.append('towerFloorState dd 0') lines.append('towerAnimClock dd 0') lines.append('towerCurrentGame dd 0') lines.append('towerPrizeAmount dd 66600') lines.append('towerHudText db 91,32,0') lines.append('') lines.append('towerFloorModes dd MODE_COIN, MODE_DICE, MODE_SKULLS, MODE_BLACKJACK, MODE_POKER, MODE_RUSSIAN, MODE_ROULETTE, MODE_DURAK, MODE_SKILL, MODE_BUCKSHOT') lines.append('') for i, b in enumerate(bosses): lines.append(f'towerBoss{i+1} db {make_db(b)}') lines.append('') lines.append('towerBossNames dd ' + ', '.join(f'OFFSET towerBoss{i+1}' for i in range(10))) lines.append('') for i, g in enumerate(games): lines.append(f'towerGame{i+1} db {make_db(g)}') lines.append('') lines.append('towerGameNames dd ' + ', '.join(f'OFFSET towerGame{i+1}' for i in range(10))) lines.append('') for i, d in enumerate(descs): lines.append(f'towerDesc{i+1} db {make_db(d)}') lines.append('') lines.append('towerDescriptions dd ' + ', '.join(f'OFFSET towerDesc{i+1}' for i in range(10))) lines.append('') ui_texts = { 'towerHeader': 'КАЗИНО 3D - АДСКАЯ БАШНЯ', 'towerFloorPrefix': 'ЭТАЖ ', 'towerOfTen': ' / 10', 'towerEnemyLabel': 'ВРАГ: ', 'towerGameLabel': 'ИГРА: ', 'towerRuleText': '10 битв подряд без права на ошибку', 'towerLossWarning': 'Поражение - возврат в холл казино', 'towerStartBtn': '[ПРОБЕЛ] В БОЙ', 'towerEscBtn': '[ESC] СБЕЖАТЬ', 'towerClearTitle': 'ЭТАЖ ЗАЧИЩЕН! ВРАГ ПОВЕРЖЕН!', 'towerClearDesc': 'Враг повержен! Впереди новый этаж.', 'towerNextBtn': '[ПРОБЕЛ] ДАЛЬШЕ', 'towerDefeatTitle': 'ВЫ ПАЛИ В АДСКОЙ БАШНЕ...', 'towerDefeatDesc': 'Ваша душа навеки сгорела в Аду.', 'towerReturnBtn': '[ПРОБЕЛ / ESC] В ХОЛЛ КАЗИНО', 'towerChampTitle': 'ТРИУМФ! АДСКАЯ БАШНЯ ПОКОРЕНА!', 'towerChampSubtitle': 'ВЫ - ЧЕМПИОН АДСКОЙ БАШНИ!', 'towerPrizeText': 'СУПЕРПРИЗ: +$66,600 В БАНКРОЛЛ!', 'towerHudBadge': 'БАШНЯ: ', 'towerHudOfTen': '/10', } for k, v in ui_texts.items(): lines.append(f'{k} db {make_db(v)}') with open('src_graphics/hell_tower_data.inc', 'wb') as f: f.write(('\n'.join(lines) + '\n').encode('ascii')) print('hell_tower_data.inc regenerated with compact strings.')