Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Output from p2c 2.00.Oct.15, the Pascal-to-C translator */
- /* From input file "stalk1-koi.pas" */
- /*
- Это восстановленный из исполнимого файла код на языке Паскаль для игры,
- которая называлась 'Зона' или 'Сталкер', файл игры назывался
- STALK.SAV, PIKNIK.SAV или ZONA.SAV и предназначался для советских PDP11-
- совместимых машин - таких как ДВК и УКНЦ.
- Это игра в жанре рогалик (Rogue-like), бродилка по подземельям, по мотивам
- повести Стругацких "Пикник на обочине".
- Игра, по-видимому, создана в конце 1980-х, автор игры - неизвестный
- программист из Ульяновска - первоначально программа писала копирайт:
- *** (С)УЛЬЯНОВСК УЛПИ "ГОЛОГРАФИЯ"***
- Данный исходник предназначается для Паскаля ДВК или OMSI PASCAL-1
- и компилируется в исполнимый файл под системой RT-11 командами:
- PASCAL STALK1,STALK1=STALK1.PAS
- LINK/STACK:1000 STALK1,FRANDU,PASCAL
- */
- #include <p2c/p2c.h>
- /* p2c: stalk1-koi.pas, line 21:
- * Warning: Could not find module MATH [271] */
- #include "math.h"
- /*$A-*/
- /*$T-*/
- Static short DUNGEON; /* Номер подземелья */
- Static short VAR2, VAR4; /* Номер этажа */
- Static short VAR6; /* новый X игрока */
- Static short VAR10; /* новый Y игрока */
- Static short VAR12; /* Позиция Y игрока (строка) */
- Static short VAR14; /* Позиция X игрока (столбец) */
- Static short VAR16; /* переменная цикла */
- Static short i; /* переменная цикла */
- Static short VAR20; /* переменная цикла */
- Static short VAR22, VAR24, VAR26; /* Усталость */
- Static short VAR30; /* Вредность */
- Static short VAR32; /* Заряд батарей фонаря */
- Static short VAR34; /* Y */
- Static short VAR36; /* X */
- Static short VAR40, VAR42; /* Число для генератора случайных чисел */
- Static boolean VAR46, VAR47; /* Фонарь горит или нет */
- Static boolean VAR50; /* Приготовился к сражению */
- Static boolean VAR51;
- Static Char VAR52, VAR53, VAR54;
- /* Символ в клетке на которой стоит игрок */
- Static Char VAR55;
- Static short IND[5]; /* Индикаторы справа: */
- /* 1 - Рейтинг, 2 - Энергия, 3 - Оружие, 4 - Защита, 5 - В банке денег */
- Static Char F[9][16][32];
- Static Char *V11070; /* Указатель на клетку в F */
- Static Char *V11072; /* Указатель на клетку в F */
- Static short F2[9][16][32];
- Static short *V33074; /* Указатель на клетку в F2 */
- Static short *V33076; /* Указатель на клетку в F2 */
- Static Char RUKSAK[6]; /*033100..033105*/
- Static short V33106[6]; /*033106..033120*/
- Static Char V33122[4]; /*033122..033125*/
- Static short V33126[4]; /*033126..033134*/
- Static short V33136[4]; /*033136..033144*/
- Static short V33146[4]; /*033146..033154*/
- Static Char V33156;
- Static Char TITLE[30] = {
- '(', 'H', ')', ' ', 'H', 'a', 'c', 'k', 'e', 'd', ' ', 'b', 'y', ' ', 'O',
- 'l', 'e', 'g', ' ', 'H', '.', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
- };
- Static short RANDOM(A, B)
- short A, B;
- {
- /*L01046*/
- /*RANDOM := A + (_randint() mod (B - A + 1));*/
- return RandomRange(A, B);
- /* p2c: stalk1-koi.pas, line 79:
- * Warning: Symbol 'RANDOMRANGE' is not defined [221] */
- }
- Static Void READCHAR(CH)
- Char *CH;
- {
- /*L01166*/
- _L1:
- *CH = getch();
- /*
- if CH = CHR(0) then begin
- { функциональная клавиша }
- CH := readkey;
- case CH of
- 'H': CH := '8'; { стрелка вверх }
- 'P': CH := '2'; { стрелка вниз }
- 'K': CH := '4'; { стрелка влево }
- 'M': CH := '6'; { стрелка вправо }
- 'I': CH := '.'; { page up }
- 'Q': CH := '5'; { page down }
- else goto 1; { неизвестная клавиша - игнорируем }
- end;
- end;
- */
- if (*CH >= 'a' && *CH <= 'z') /* преобразуем в заглавные буквы */
- *CH = _toupper(*CH);
- }
- /* Очистка блока сообщений внизу экрана */
- Static Void CLEARMSG()
- {
- /*L01320*/
- CURSORTO(16, 0);
- /* p2c: stalk1-koi.pas, line 112:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- for (VAR16 = 1; VAR16 <= 7; VAR16++) {
- putchar('\n');
- clreol();
- }
- CURSORTO(17, 0);
- /* p2c: stalk1-koi.pas, line 116:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- }
- Static Void L01460(A, B, C)
- short A, B, C;
- {
- short I, J;
- for (I = -1; I <= 1; I++) {
- for (J = -1; J <= 1; J++) {
- VAR22 = B + I;
- VAR24 = C + J;
- if (F[A][VAR22-1][VAR24-1] == '^' && (F2[A][VAR22-1][VAR24-1] & 6) != 4) {
- CURSORTO(VAR22, VAR24);
- /* p2c: stalk1-koi.pas, line 127:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- putchar('.');
- } else {
- F2[A][VAR22-1][VAR24-1] |= 0100;
- CURSORTO(VAR22, VAR24);
- /* p2c: stalk1-koi.pas, line 131:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- putchar(F[A][VAR22-1][VAR24-1]);
- }
- }
- }
- }
- /* Поиск предметов в рюкзаке, возвращает индекс 1..6, или 7 если не найдены */
- Static short RUKSEEK(A, B)
- Char A, B;
- {
- /*L02332*/
- short Result;
- short K = 1;
- /*L02340*/
- while (RUKSAK[K-1] != A && RUKSAK[K-1] != B && K < 7)
- K++;
- Result = K;
- V33156 = '\001';
- return Result;
- }
- Static Void NELZYA()
- {
- /* p2c: stalk1-koi.pas, line 152:
- * Note: Characters >= 128 encountered [281] */
- printf(" \356 \305 \314 \330 \332 \321 ! ! !\n");
- }
- Static Void ZVERX(V, Y, X)
- short V, Y, X;
- {
- /*L02574*/
- Char FV;
- short FV2;
- FV = F[V][Y-1][X-1];
- FV2 = F2[V][Y-1][X-1];
- /* p2c: stalk1-koi.pas, line 160:
- * Note: Characters >= 128 encountered [281] */
- printf("\372 \327 \305 \322 \330 !\n");
- if ((FV2 & 4) == 0)
- return;
- if (FV == V33122[0] || FV == V33122[1] || FV == V33122[2])
- return;
- VAR16 = 0;
- for (VAR20 = 1; VAR20 <= 3; VAR20++) {
- VAR16++;
- if (V33122[VAR16-1] == ' ')
- return;
- }
- V33122[VAR16-1] = FV;
- V33126[VAR16-1] = FV2;
- V33136[VAR16-1] = Y;
- V33146[VAR16-1] = X;
- }
- Static Void ZAKLYATIE()
- {
- /* p2c: stalk1-koi.pas, line 179:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\356\301 \334\324\317\312 \333\324\325\313\305 \332\301\313\314\321\324\311\305\n");
- }
- /* Параметр: 'J' - обновить экран; '.' - вверх; '5' - вниз */
- Static Void L03362(A)
- Char A;
- {
- V33156 = '\001';
- if (A != 'J') { /*L03370*/
- if (*V11070 != '%') { /* Мы стоим на лестнице? */
- printf(" \342\305\332 \314\305\323\324\316\311\303\331?\n");
- /*L04140*/
- return;
- }
- for (VAR16 = 1; VAR16 <= 4; VAR16++)
- V33122[VAR16-1] = ' ';
- if (A == '.' && VAR4 != 0) { /*L03510*/
- VAR4--; /* Этаж вниз */
- /*L03560*/
- IND[1] -= 2; /* Энергия минус 2 */
- IND[0]++;
- goto _L1;
- }
- if (VAR4 != 8) { /*L03610*/
- VAR4++;
- IND[0] += 3;
- goto _L1;
- }
- V11070 = &F[VAR4][VAR12-1][VAR14-1]; /*L03644*/
- V33074 = &F2[VAR4][VAR12-1][VAR14-1]; /*L03716*/
- V11072 = &F[VAR4][VAR6-1][VAR10-1]; /*L04000*/
- V33076 = &F2[VAR4][VAR6-1][VAR10-1]; /*L04052*/
- /* не на лестнице */
- /* p2c: stalk1-koi.pas, line 209:
- * Note: Characters >= 128 encountered [281] */
- return; /* Выход из процедуры */
- }
- _L1:
- HOME(0);
- /* p2c: stalk1-koi.pas, line 214:
- * Warning: Expected an expression, found a ')' [227] */
- /* p2c: stalk1-koi.pas, line 214:
- * Warning: Symbol 'HOME' is not defined [221] */
- CLREOS(0);
- /* p2c: stalk1-koi.pas, line 214:
- * Warning: Expected an expression, found a ')' [227] */
- /* p2c: stalk1-koi.pas, line 214:
- * Warning: Symbol 'CLREOS' is not defined [221] */
- /* p2c: stalk1-koi.pas, line 215:
- * Note: Characters >= 128 encountered [281] */
- printf(" \360\317\304\332\305\315\305\314\330\305 ");
- printf("%d", DUNGEON); /* Номер подземелья */
- CURSORTO(1, 33);
- /* p2c: stalk1-koi.pas, line 217:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- /* p2c: stalk1-koi.pas, line 217:
- * Note: Characters >= 128 encountered [281] */
- printf("\362\305\312\324\311\316\307");
- CURSORTO(2, 33);
- /* p2c: stalk1-koi.pas, line 218:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- /* p2c: stalk1-koi.pas, line 218:
- * Note: Characters >= 128 encountered [281] */
- printf("\374\316\305\322\307\311\321");
- CURSORTO(3, 33);
- /* p2c: stalk1-koi.pas, line 219:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- /* p2c: stalk1-koi.pas, line 219:
- * Note: Characters >= 128 encountered [281] */
- printf("\357\322\325\326\311\305");
- CURSORTO(4, 33);
- /* p2c: stalk1-koi.pas, line 220:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- /* p2c: stalk1-koi.pas, line 220:
- * Note: Characters >= 128 encountered [281] */
- printf("\372\301\335\311\324\301");
- CURSORTO(5, 33);
- /* p2c: stalk1-koi.pas, line 221:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- /* p2c: stalk1-koi.pas, line 221:
- * Note: Characters >= 128 encountered [281] */
- printf("\367 \302\301\316\313\305");
- /*WRITELN('');*/
- CURSORTO(7, 32);
- /* p2c: stalk1-koi.pas, line 223:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- /* p2c: stalk1-koi.pas, line 223:
- * Note: Characters >= 128 encountered [281] */
- printf(" \367\322\305\304\316\317\323\324\330");
- /*WRITELN('');*/
- CURSORTO(9, 33);
- /* p2c: stalk1-koi.pas, line 225:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- /* p2c: stalk1-koi.pas, line 225:
- * Note: Characters >= 128 encountered [281] */
- printf("\362\300\313\332\301\313:");
- for (VAR16 = 1; VAR16 <= 5; VAR16++) { /* выводим значения индикаторов */
- CURSORTO(VAR16, 37);
- /* p2c: stalk1-koi.pas, line 227:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- printf("%3d", IND[VAR16-1]);
- putchar(' ');
- }
- CURSORTO(7, 37);
- /* p2c: stalk1-koi.pas, line 231:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- printf("%3d", VAR30); /* Вредность */
- CURSORTO(10, 33);
- /* p2c: stalk1-koi.pas, line 233:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- for (VAR16 = 1; VAR16 <= 6; VAR16++) /* выводим содержимое рюкзака */
- printf("%2c", RUKSAK[VAR16-1]);
- CURSORTO(0, 0);
- /* p2c: stalk1-koi.pas, line 237:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- for (VAR16 = 1; VAR16 <= 16; VAR16++) { /* выводим текущее поле */
- for (VAR20 = 1; VAR20 <= 32; VAR20++) {
- if ((F2[VAR4][VAR16-1][VAR20-1] & 0100) != 0) {
- CURSORTO(VAR16, VAR20);
- /* p2c: stalk1-koi.pas, line 241:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- putchar(F[VAR4][VAR16-1][VAR20-1]);
- }
- }
- }
- CLEARMSG();
- /* выход из процедуры */
- }
- Static Void L05370(DY, DX)
- short DY, DX;
- {
- if (F[VAR4][VAR12 + DY - 1][VAR14 + DX - 1] == '-' ||
- F[VAR4][VAR12 + DY - 1][VAR14 + DX - 1] == '!')
- { /* Если не стенка */
- NELZYA();
- return;
- }
- VAR12 += DY; /*L05500*/
- VAR14 += DX;
- V11070 = &F[VAR4][VAR12-1][VAR14-1];
- V33074 = &F2[VAR4][VAR12-1][VAR14-1];
- }
- Static Void L05702(A)
- Char A;
- {
- VAR12 = RANDOM(2, 15);
- VAR14 = RANDOM(2, 31);
- F[VAR4][VAR12-1][VAR14-1] = A;
- F2[VAR4][VAR12-1][VAR14-1] = RANDOM(0, 32767) & 0177677L;
- }
- main(argc, argv)
- int argc;
- Char *argv[];
- { /*MAIN*/
- short FORLIM, FORLIM1;
- PASCAL_MAIN(argc, argv);
- terminit();
- /* p2c: stalk1-koi.pas, line 272:
- * Warning: Symbol 'TERMINIT' is not defined [221] */
- printf("*** ");
- printf("%.30s", TITLE); /* Вывод начальной строки*/
- printf("***\n");
- /* p2c: stalk1-koi.pas, line 277:
- * Note: Characters >= 128 encountered [281] */
- printf(" ^_^_^_^ __ \363 \364 \341 \354 \353 \345 \362 __ \n");
- /*место под спецсимволы в строке*/
- /* p2c: stalk1-koi.pas, line 278:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\332\301\307\301\304\301\312\324\305 \336\311\323\314\317. \315\317\326\305\324 \302\331\324\330, \317\316\317 \327\301\315 \320\322\311\307\317\304\311\324\323\321... \324\301\315... ");
- /* Ввод числа, которое "может быть пригодится там" */
- scanf("%hd%*[^\r]", &VAR42);
- getchar();
- _randomize(VAR42);
- /* p2c: stalk1-koi.pas, line 281:
- * Warning: Symbol '_RANDOMIZE' is not defined [221] */
- /*RandSeed := VAR42;*/
- VAR34 = 1; /* Позиция Y игрока */
- VAR36 = 1; /* Позиция X игрока */
- VAR55 = ' ';
- DUNGEON = 1; /* Подземелье = 1 */
- _L1:
- /* Начало игры, или рестарт на следующем подземелье */
- HOME(0);
- /* p2c: stalk1-koi.pas, line 290:
- * Warning: Expected an expression, found a ')' [227] */
- /* p2c: stalk1-koi.pas, line 290:
- * Warning: Symbol 'HOME' is not defined [221] */
- CLREOS(0);
- /* p2c: stalk1-koi.pas, line 290:
- * Warning: Expected an expression, found a ')' [227] */
- /* p2c: stalk1-koi.pas, line 290:
- * Warning: Symbol 'CLREOS' is not defined [221] */
- CURSORTO(10, 1);
- /* p2c: stalk1-koi.pas, line 291:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- for (VAR4 = 0; VAR4 <= 8; VAR4++) { /* цикл по этажам */
- VAR22 = RANDOM(0, 88);
- /*WRITELN('FLOOR ', VAR4, ' LIT=', VAR22 and 100B);*/
- for (VAR20 = 1; VAR20 <= 32; VAR20++)
- F[VAR4][0][VAR20-1] = '-'; /* стенка вверху */
- for (VAR16 = 2; VAR16 <= 15; VAR16++) {
- F[VAR4][VAR16-1][0] = '!'; /* стенка слева */
- for (VAR20 = 2; VAR20 <= 31; VAR20++) {
- F[VAR4][VAR16-1][VAR20-1] = '.';
- F2[VAR4][VAR16-1][VAR20-1] = VAR22;
- }
- F[VAR4][VAR16-1][31] = '!'; /* стенка слева */
- }
- for (VAR20 = 1; VAR20 <= 32; VAR20++)
- F[VAR4][15][VAR20-1] = '-'; /* стенка снизу */
- }
- /* p2c: stalk1-koi.pas, line 310:
- * Note: Characters >= 128 encountered [281] */
- printf(
- " \344\314\321 \320\317\304\323\313\301\332\313\311 \316\301\326\311\315\301\312\324\305 \"H\" \n");
- for (VAR4 = 1; VAR4 <= 8; VAR4++) { /* цикл по этажам */
- VAR16 = RANDOM(2, 7); /*L07712*/
- while (VAR16 < 16) { /*L07736*/
- VAR22 = 2; /*L07752*/
- VAR24 = RANDOM(1, 7); /*L07760*/
- while (VAR24 < 32) { /*L10004*/
- FORLIM1 = VAR24;
- for (VAR20 = VAR22; VAR20 <= FORLIM1; VAR20++) /*L10020*/
- F[VAR4][VAR16-1][VAR20-1] = '-'; /*L10060*/
- VAR22 = RANDOM(1, 5) + VAR24; /*L10144*/
- VAR24 += RANDOM(3, 10); /*L10174*/
- }
- VAR16 += RANDOM(0, 7); /*L10230*/
- }
- }
- /*L07652*/
- /*delay(1000);*/
- putchar('\015');
- /* p2c: stalk1-koi.pas, line 328:
- * Note: Characters >= 128 encountered [281] */
- printf(" \364\305\315\316\331\312 \313\317\322\311\304\317\322 ... ");
- for (VAR4 = 1; VAR4 <= 8; VAR4++) { /* цикл по этажам */
- VAR20 = RANDOM(2, 7); /*L10366*/
- while (VAR20 < 32) { /*L10412*/
- VAR22 = 2; /*L10426*/
- VAR24 = RANDOM(1, 7);
- while (VAR24 < 16) { /*L10460*/
- FORLIM = VAR24;
- for (VAR16 = VAR22; VAR16 <= FORLIM; VAR16++) { /*L10474*/
- if (F[VAR4][VAR16-1][VAR20-1] == '.') /*L10576*/
- F[VAR4][VAR16-1][VAR20-1] = '!'; /*L10654*/
- else
- F[VAR4][VAR16-1][VAR20-1] = '#'; /*L10730*/
- }
- VAR22 = RANDOM(1, 5) + VAR24; /*L10752*/
- VAR24 += RANDOM(2, 7); /*L11002*/
- }
- VAR20 += RANDOM(2, 5); /*L11036*/
- }
- }
- /*L10326*/
- /*delay(1000);*/
- putchar('\015');
- /* p2c: stalk1-koi.pas, line 350:
- * Note: Characters >= 128 encountered [281] */
- printf(" \363 \313 \305 \314 \305 \324 \331 . . . ");
- FORLIM1 = DUNGEON;
- for (VAR20 = 1; VAR20 <= FORLIM1; VAR20++) { /*L11136*/
- for (VAR16 = 32; VAR16 <= 127; VAR16++) { /*L11174*/
- VAR4 = RANDOM(0, 8);
- L05702(VAR16); /*L11256*/
- }
- }
- /*delay(1000);*/
- putchar('\015');
- printf(" a-a-a-a-a-a-a-a-a-a-a-a-a . . . . . . .");
- for (VAR4 = 0; VAR4 <= 8; VAR4++) { /*L11350*/
- L05702('^'); /*L11406*/
- L05702('*');
- L05702('%');
- }
- VAR4 = 8; /*L11452*/
- L05702('%');
- L05702(',');
- if (DUNGEON == 1) {
- for (VAR16 = 1; VAR16 <= 6; VAR16++) /*L11512*/
- RUKSAK[VAR16-1] = '.'; /*L11552*/
- RUKSAK[0] = ']';
- RUKSAK[1] = '(';
- RUKSAK[2] = '<';
- for (VAR16 = 1; VAR16 <= 5; VAR16++) /*L11624*/
- IND[VAR16-1] = 0; /* Очищаем индикаторы */
- /* Инициализация переменных */
- IND[1] = 25; /* Энергия */
- VAR47 = false; /* Фонарь не горит */
- VAR51 = false;
- VAR50 = false;
- VAR40 = 0;
- VAR32 = 400; /* Заряд батарей */
- /*L11742*/
- VAR26 = 0; /* Усталость = 0 */
- V33156 = '\001';
- }
- for (VAR16 = 1; VAR16 <= 6; VAR16++) /*L11762*/
- V33106[VAR16-1] = RANDOM(0, 8191) & 0175777L; /*L12022*/
- VAR46 = false; /*L12074*/
- for (VAR16 = 1; VAR16 <= 4; VAR16++) /*L12100*/
- V33122[VAR16-1] = ' '; /*L12140*/
- VAR4 = 0; /* Этаж = 0 */
- /*L12170*/
- /*delay(1000);*/
- L03362('J');
- CLEARMSG();
- /* p2c: stalk1-koi.pas, line 399:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\360\322\317\307\316\311\327\333\311\312 \320\317\314 \320\322\317\327\301\314\311\314\323\321...");
- VAR2 = 0; /*L12226*/
- VAR12 = 2; /* Позиция Y игрока = 2 */
- VAR14 = 2; /* Позиция X игрока = 2 */
- VAR30 = 1;
- while (true) { /*L12254*/
- /* Начало игрового цикла */
- V11070 = &F[VAR4][VAR12-1][VAR14-1]; /*L12266*/
- V33074 = &F2[VAR4][VAR12-1][VAR14-1]; /*L12340*/
- for (VAR16 = -1; VAR16 <= 1; VAR16++) { /*L12422*/
- for (VAR20 = -1; VAR20 <= 1; VAR20++) { /*L12462*/
- VAR6 = VAR12 + VAR16; /* новый Y */
- VAR10 = VAR14 + VAR20; /* новый X */
- V11072 = &F[VAR4][VAR6-1][VAR10-1]; /*L12552*/
- V33076 = &F2[VAR4][VAR6-1][VAR10-1]; /*L12624*/
- switch (*V11072) { /*L12706*/
- case '%':
- printf("\354\305\323\324\316\311\303\301.");
- break;
- /* p2c: stalk1-koi.pas, line 415:
- * Note: Characters >= 128 encountered [281] */
- case '*':
- printf("\372\317\314\317\324\317.");
- break;
- /* p2c: stalk1-koi.pas, line 416:
- * Note: Characters >= 128 encountered [281] */
- case ',':
- if (VAR4 == 8) {
- printf("\372\317\314\317\324\317\312 \333\301\322!!!");
- VAR46 = true;
- }
- /* p2c: stalk1-koi.pas, line 419:
- * Note: Characters >= 128 encountered [281] */
- else
- printf("\367\317\314\333\305\302\316\301\321 \313\311\322\313\301.");
- break;
- /* p2c: stalk1-koi.pas, line 422:
- * Note: Characters >= 128 encountered [281] */
- case '$':
- case '+':
- printf(
- "\342\325\324\331\314\313\301 \323 \316\301\304\320\311\323\330\300 \"Drink me!\"\n");
- break;
- /* p2c: stalk1-koi.pas, line 424:
- * Note: Characters >= 128 encountered [281] */
- case ' ':
- printf("\376\305\322\316\301\321 \304\331\322\301\n");
- if (VAR16 == 0 && VAR20 == 0) {
- if (VAR46 != false) {
- if (VAR4 > 0) /* Этаж вниз */
- VAR4--;
- } else {
- if (VAR4 < 8) /* Этаж вверх */
- VAR4++;
- }
- IND[1] -= 3; /* Энергия минус 3 */
- VAR30 += 7; /* Вредность увеличиваем на 7 */
- L03362('J');
- /* p2c: stalk1-koi.pas, line 438:
- * Note: Characters >= 128 encountered [281] */
- printf("\357\312, \313\301\313 \302\317\314\330\316\317!...\n");
- }
- break;
- /* p2c: stalk1-koi.pas, line 426:
- * Note: Characters >= 128 encountered [281] */
- case '=':
- printf("\353\317\314\330\303\317.");
- break;
- /* p2c: stalk1-koi.pas, line 441:
- * Note: Characters >= 128 encountered [281] */
- case '^':
- if (VAR16 == 0 && VAR20 == 0) {
- printf("\367\305\304\330\315\311\316 \323\324\325\304\305\316\330!\n");
- IND[1] -= RANDOM(3, 15);
- VAR30 += RANDOM(0, 5);
- *V33076 = 4;
- }
- /* p2c: stalk1-koi.pas, line 443:
- * Note: Characters >= 128 encountered [281] */
- break;
- case '#':
- if (VAR16 == 0 && VAR20 == 0) {
- if (RANDOM(1, 2) == 1)
- *V11070 = '!';
- else
- *V11070 = '-';
- }
- break;
- case '(':
- case ')':
- printf("\344\317\323\320\305\310\311.");
- break;
- /* p2c: stalk1-koi.pas, line 454:
- * Note: Characters >= 128 encountered [281] */
- case '[':
- case ']':
- printf("\357\322\325\326\311\305.");
- break;
- /* p2c: stalk1-koi.pas, line 455:
- * Note: Characters >= 128 encountered [281] */
- case '?':
- printf("\363\327\311\323\324\317\313.");
- break;
- /* p2c: stalk1-koi.pas, line 456:
- * Note: Characters >= 128 encountered [281] */
- case ':':
- case ';':
- printf("\345\304\301!!!");
- break;
- /* p2c: stalk1-koi.pas, line 457:
- * Note: Characters >= 128 encountered [281] */
- case '\\':
- case '/':
- printf("\"\367\360\".");
- break;
- /* p2c: stalk1-koi.pas, line 458:
- * Note: Characters >= 128 encountered [281] */
- case '<':
- case '>':
- printf("\342\301\324\301\322\305\311.");
- break;
- /* p2c: stalk1-koi.pas, line 459:
- * Note: Characters >= 128 encountered [281] */
- case '"':
- case '\'': /*L14040*/
- printf("\353\317\315\301\322\311\316\301\321 \320\314\305\333\330\n");
- VAR12 = VAR6;
- VAR14 = VAR10;
- V11070 = &F[VAR4][VAR12-1][VAR14-1];
- V33074 = &F2[VAR4][VAR12-1][VAR14-1];
- if (VAR46 != false)
- *V11070 = '.';
- break;
- /* p2c: stalk1-koi.pas, line 461:
- * Note: Characters >= 128 encountered [281] */
- case '&':
- printf("\360\301\320\311\322\325\323.");
- break;
- /* p2c: stalk1-koi.pas, line 469:
- * Note: Characters >= 128 encountered [281] */
- case 'C':
- case 'H':
- case 'J':
- case 'T': /*L14300*/
- putchar('\007'); /* bell */
- /* p2c: stalk1-koi.pas, line 472:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\350\317\314\317\304\316\301\321, \323\313\317\314\330\332\313\301\321 \322\325\313\301 \323\310\327\301\324\311\314\301 \327\301\323 \332\301 \316\317\307\325 ...\n");
- IND[1] -= RANDOM(2, 8); /* Энергия уменьшается */
- *V11072 = '.';
- break;
- case 'D':
- case 'E':
- case 'F':
- case 'G':
- case 'I':
- case 'K':
- case 'L':
- case 'M':
- case 'N':
- case 'O':
- case 'P':
- case 'Q':
- case 'R':
- case 'S':
- case 'U':
- case 'V':
- case 'W':
- case 'X':
- case 'Y':
- case 'Z':
- if (VAR16 == 0 && VAR20 == 0) {
- if (((*V33074) & 6) == 0) {
- *V33076 |= 6;
- /* p2c: stalk1-koi.pas, line 480:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\356\325, \323\305\312\336\301\323 \317\316 \327\301\315 \320\317\313\301\326\305\324...\n");
- } else if (((*V33076) & 6) == 2) {
- VAR22 = RANDOM(1, 3) + VAR12 - 2;
- VAR24 = RANDOM(1, 3) + VAR14 - 2;
- if (F[VAR4][VAR22-1][VAR24-1] != '-' &&
- F[VAR4][VAR22-1][VAR24-1] != '!') {
- VAR53 = *V11070;
- *V11070 = '.';
- F[VAR4][VAR22-1][VAR24-1] = VAR53;
- F2[VAR4][VAR22-1][VAR24-1] = *V33074;
- }
- } else if (!VAR51) { /*L15100*/
- if (!VAR50) { /*L15120*/
- if (IND[3] > 1) /*L15140*/
- IND[3] -= RANDOM(2, 15);
- else
- IND[1] -= RANDOM(2, 15);
- /* Энергия уменьшается */
- putchar('\007'); /* bell */
- /* p2c: stalk1-koi.pas, line 497:
- * Note: Characters >= 128 encountered [281] */
- printf("\372\301\335\311\335\301\312\324\305\323\330 \326\305!!!\n");
- } else {
- IND[2] -= RANDOM(2, 11);
- IND[3] -= 2;
- VAR50 = false;
- VAR54 = '.';
- putchar('\007');
- /* p2c: stalk1-koi.pas, line 504:
- * Note: Characters >= 128 encountered [281] */
- printf("\347\317\324\317\327!\n");
- IND[0] += 10;
- if (IND[3] < 0) {
- IND[1] += IND[3];
- IND[3] = 0;
- }
- if (IND[2] < 0) {
- IND[0] += IND[2];
- IND[2] = 0;
- }
- i = 1;
- while (V33122[i-1] != *V11070 && i < 4)
- i++;
- V33122[i-1] = ' ';
- *V11070 = 'm';
- }
- }
- } else
- ZVERX(VAR4, VAR6, VAR10);
- break;
- case '0':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- case '{':
- case '}': /*L15616*/
- if (VAR16 == 0 && VAR20 == 0) {
- VAR22 = RANDOM(-7, 7);
- IND[1] += VAR22;
- if (VAR22 > 0) {
- printf("\356\305\304\325\322\323\324\327\305\316\316\317!\n");
- *V11070 = 'z';
- }
- /* p2c: stalk1-koi.pas, line 529:
- * Note: Characters >= 128 encountered [281] */
- else {
- printf("\364\330\306\325...\n");
- *V11072 = 'y';
- }
- } else {
- /* p2c: stalk1-koi.pas, line 532:
- * Note: Characters >= 128 encountered [281] */
- printf("\363\327\305\322\324o\313. \323\337\305\304\311\315?\n");
- }
- break;
- /* p2c: stalk1-koi.pas, line 536:
- * Note: Characters >= 128 encountered [281] */
- case '!':
- case '-':
- case '.': /* Стенки и пустая клетка */
- break;
- /*L16046*/
- case 'b': /*L16046*/
- printf(
- "\356\301\304\320\311\323\330 \"\372\304\305\323\330 \302\331\314 \367\301\323\321\"(\332\304\305\323\330 \367\301\323\321 \311 \317\323\324\301\314\323\321)\n");
- break;
- /* p2c: stalk1-koi.pas, line 540:
- * Note: Characters >= 128 encountered [281] */
- case 'c':
- printf("\347\322\325\304\301 \313\301\315\316\305\312.");
- break;
- /* p2c: stalk1-koi.pas, line 541:
- * Note: Characters >= 128 encountered [281] */
- case 'd':
- printf(
- "\355\305\324\314\301 \302\301\302\331 \321\307\311 (\323\314\317\315\301\316\301)\n");
- break;
- /* p2c: stalk1-koi.pas, line 542:
- * Note: Characters >= 128 encountered [281] */
- case 'e':
- printf("\376\305\322\305\320.");
- break;
- /* p2c: stalk1-koi.pas, line 543:
- * Note: Characters >= 128 encountered [281] */
- case 'f':
- printf(
- "\363\324\322\301\316\323\324\327\325\300\335\311\312 \323\313\305\314\305\324\n");
- break;
- /* p2c: stalk1-koi.pas, line 544:
- * Note: Characters >= 128 encountered [281] */
- case 'g':
- printf(
- "\363\324\301\304\317 \302\322\317\304\321\336\311\310 \326\311\327\331\310 \324\322\325\320\317\327. \n");
- break;
- /* p2c: stalk1-koi.pas, line 545:
- * Note: Characters >= 128 encountered [281] */
- case 'h':
- printf(
- "\353\325\323\317\336\305\313 \356\317\305\327\301 \313\317\327\336\305\307\301\n");
- break;
- /* p2c: stalk1-koi.pas, line 546:
- * Note: Characters >= 128 encountered [281] */
- case 'i':
- printf(
- "\372\301\320\311\323\313\301:\" \372\322\321 \324\331 \323\300\304\301 \320\317\314\305\332, \320\301\322\305\316\330... \341\327\324\317\322. \"\n");
- break;
- /* p2c: stalk1-koi.pas, line 547:
- * Note: Characters >= 128 encountered [281] */
- case 'j':
- printf("\376\305\322\316\331\312 \321\335\311\313.");
- break;
- /* p2c: stalk1-koi.pas, line 548:
- * Note: Characters >= 128 encountered [281] */
- case 'k':
- printf(
- "\354\325\326\301 \315\301\333\311\316\316\317\307\317 \315\301\323\314\301\n");
- break;
- /* p2c: stalk1-koi.pas, line 549:
- * Note: Characters >= 128 encountered [281] */
- case 'l': /*Пробелы компенсируют нули после строки*/
- printf(
- "\362\301\332\304\317\314\302\301\316\316\331\312 \313\317\315\320\330\300\324\305\322 ZX SPECTRUM - 128. \n");
- break;
- /* p2c: stalk1-koi.pas, line 550:
- * Note: Characters >= 128 encountered [281] */
- case 'm':
- printf("\344\317\310\314\331\312 \315\317\322\314\317\313");
- break;
- /* p2c: stalk1-koi.pas, line 551:
- * Note: Characters >= 128 encountered [281] */
- case 'n':
- printf("\372\325\304\301.");
- break;
- /* p2c: stalk1-koi.pas, line 552:
- * Note: Characters >= 128 encountered [281] */
- case 'o':
- printf("\360\325\323\324\331\333\313\301.");
- break;
- /* p2c: stalk1-koi.pas, line 553:
- * Note: Characters >= 128 encountered [281] */
- case 'p':
- printf("\353\325\336\301 \323\305\320\325\314\305\313.");
- break;
- /* p2c: stalk1-koi.pas, line 554:
- * Note: Characters >= 128 encountered [281] */
- case 'r': /*Пробелы компенсируют нули после строки*/
- printf(
- "\362\301\332\314\317\326\311\327\333\311\312\323\321 \324\322\325\320 \304\305\327\325\333\313\311. \n");
- break;
- /* p2c: stalk1-koi.pas, line 555:
- * Note: Characters >= 128 encountered [281] */
- case 's': /*Пробелы компенсируют нули после строки*/
- printf(
- "\356\301\304\320\311\323\330: \"\355\331 \304\317 \324\305\302\321 \305\335\305 \304\317\302\305\322\305\315\323\321!!! \" \n");
- break;
- /* p2c: stalk1-koi.pas, line 556:
- * Note: Characters >= 128 encountered [281] */
- case 't': /*Пробелы компенсируют нули после строки*/
- printf(
- "\357\324\322\305\332\301\316\316\301\321 \307\317\314\317\327\301 \320\322\305\304\331\304\325\335\305\307\317 \363\324\301\314\313\305\322\301. \n");
- break;
- /* p2c: stalk1-koi.pas, line 557:
- * Note: Characters >= 128 encountered [281] */
- case 'u': /*Пробелы компенсируют нули после строки*/
- printf(
- "\372\301\336\311\324\301\316\316\331\312 \326\325\322\316\301\314 \"\341\353\365\373\345\362\363\364\367\357 \351 \347\351\356\345\353\357\354\357\347\351\361\" \n");
- break;
- /* p2c: stalk1-koi.pas, line 558:
- * Note: Characters >= 128 encountered [281] */
- case 'v':
- printf("\341\322\324\305\306\301\313\324.");
- break;
- /* p2c: stalk1-koi.pas, line 559:
- * Note: Characters >= 128 encountered [281] */
- case 'w':
- printf(
- "\356\301\304\320\311\323\330 \"\372\304\305\323\330-\324\317 \315\331 \305\307\317 \311 \323\337\305\314\311\"\n");
- break;
- /* p2c: stalk1-koi.pas, line 560:
- * Note: Characters >= 128 encountered [281] */
- case 'x':
- printf(
- "\357\313\322\317\327\301\327\314\305\316\316\301\321 \302\305\316\332\317\320\311\314\301\n");
- break;
- /* p2c: stalk1-koi.pas, line 561:
- * Note: Characters >= 128 encountered [281] */
- case 'y':
- printf(
- "\376\324\317-\324\317 \317\336\305\316\330 \315\305\322\332\313\317\305\n");
- break;
- /* p2c: stalk1-koi.pas, line 562:
- * Note: Characters >= 128 encountered [281] */
- case 'z':
- printf("\363\314\305\304\331 \320\311\313\316\311\313\301.");
- break;
- /* p2c: stalk1-koi.pas, line 563:
- * Note: Characters >= 128 encountered [281] */
- case 'q': /*L17026*/
- printf(
- "\353\314\301\304\302\311\335\305 \323\316\325\323\315\325\315\322\311\313\317\327. \n");
- break;
- /* p2c: stalk1-koi.pas, line 564:
- * Note: Characters >= 128 encountered [281] */
- /*Пробелы компенсируют нули после строки*/
- case '~':
- printf("\376\305\322\324-\324\305 \336\324\317.");
- break;
- /* p2c: stalk1-koi.pas, line 565:
- * Note: Characters >= 128 encountered [281] */
- case '1':
- case 'A':
- case 'B':
- printf(
- "\342\322\317\304\321\336\311\312 \324\317\322\307\317\327\331\312 \301\327\324\317\315\301\324\n");
- break;
- /* p2c: stalk1-koi.pas, line 566:
- * Note: Characters >= 128 encountered [281] */
- case '|':
- printf(
- "\360\305\322\305\326\301\322\305\316\316\331\312 \332\305\314\300\313.\n");
- break;
- /* p2c: stalk1-koi.pas, line 567:
- * Note: Characters >= 128 encountered [281] */
- case '`':
- printf(
- "\355\331\333\305\314\317\324 (\327 \323\317\302\323\324\327\305\316\316\317\315 \323\317\313\325)\n");
- break;
- /* p2c: stalk1-koi.pas, line 568:
- * Note: Characters >= 128 encountered [281] */
- case '@': /*L17302*/
- /*L17200*/
- printf("\360\322\311\332\322\301\313.");
- VAR22 = RUKSEEK('.', '.');
- if (VAR22 < 7)
- VAR30++;
- RUKSAK[VAR22-1] = '@';
- break;
- /* p2c: stalk1-koi.pas, line 570:
- * Note: Characters >= 128 encountered [281] */
- default:
- if (VAR16 == 0 && VAR20 == 0) {
- *V11070 = RANDOM(32, 126);
- *V33074 = RANDOM(1, 8191);
- } else
- printf(
- "\355\305\333\317\313 \323 \316\301\304\320\311\323\330\300 \"Take me!\"\n");
- break;
- }/* case of */
- } /* for VAR20 */
- } /* for VAR16 */
- /* p2c: stalk1-koi.pas, line 581:
- * Note: Characters >= 128 encountered [281] */
- VAR54 = *V11070; /* Сохраняем символ, на который встал игрок */
- *V11070 = '@'; /*L20006*/
- if (VAR47 != false) /* Фонарь горит */
- L01460(VAR4, VAR12, VAR14); /*L20026*/
- else { /* игрок */
- CURSORTO(VAR12, VAR14); /*L20052*/
- /* p2c: stalk1-koi.pas, line 592:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- putchar('@');
- *V33074 |= 0100; /*L20100*/
- CURSORTO(VAR34, VAR36); /*L20106*/
- /* p2c: stalk1-koi.pas, line 595:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- putchar(VAR55); /*L20122*/
- }
- *V11070 = VAR54; /*L20136*/
- VAR34 = VAR12; /* Позиция Y игрока */
- VAR36 = VAR14; /* Позиция X игрока */
- VAR55 = VAR54;
- CURSORTO(1, 0); /*L20166*/
- /* p2c: stalk1-koi.pas, line 602:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- printf("%3d", VAR4); /*L20200*/
- for (VAR16 = 1; VAR16 <= 5; VAR16++) { /*L20214*/
- CURSORTO(VAR16, 37); /*L20254*/
- /* p2c: stalk1-koi.pas, line 605:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- printf("%3d", IND[VAR16-1]); /*L20270*/
- putchar(' ');
- }
- CURSORTO(7, 37); /*L20342*/
- /* p2c: stalk1-koi.pas, line 609:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- printf("%3d", VAR30); /* Вредность */
- /*L20356*/
- CURSORTO(10, 33); /* Рюкзак */
- /* p2c: stalk1-koi.pas, line 611:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- if (V33156 != '\0') { /*L20406*/
- for (VAR16 = 1; VAR16 <= 6; VAR16++)
- printf("%2c", RUKSAK[VAR16-1]); /*L20460*/
- }
- V33156 = '\0'; /*L20520*/
- CURSORTO(0, 0);
- /* p2c: stalk1-koi.pas, line 618:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- /* Ввод символа - команда игрока */
- READCHAR(&VAR53); /*L20534*/
- CLEARMSG();
- switch (VAR53) { /*L20554*/
- case '1': /* влево-вниз */
- L05370(1, -1);
- break;
- case '2': /* вниз */
- L05370(1, 0);
- break;
- case '3': /* вправо-вниз */
- L05370(1, 1);
- break;
- case '4': /* влево */
- L05370(0, -1);
- break;
- case '5': /* вниз по лестнице */
- L03362('5');
- break;
- case '6': /* вправо */
- L05370(0, 1);
- break;
- case '7': /* влево-вверх */
- L05370(-1, -1);
- break;
- case '8': /* вверх */
- L05370(-1, 0);
- break;
- case '9': /* вправо-вверх */
- L05370(-1, 1);
- break;
- case '0': /* отдохнуть */
- VAR26 = 0;
- break;
- case '.': /* вверх по лестнице */
- L03362('.');
- break;
- case 'Q': /* пить */
- VAR16 = RUKSEEK('$', '+');
- if (VAR16 < 7) {
- RUKSAK[VAR16-1] = '.';
- VAR30--;
- if ((V33106[VAR16-1] & 6) == 0) { /*L21122*/
- for (VAR16 = 2; VAR16 <= 15; VAR16++) {
- for (VAR20 = 2; VAR20 <= 31; VAR20++) {
- if (F[VAR4][VAR16-1][VAR20-1] != '.') {
- CURSORTO(VAR16, VAR20);
- /* p2c: stalk1-koi.pas, line 643:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- VAR53 = F[VAR4][VAR16-1][VAR20-1]; /*L21342*/
- if (F[VAR4][VAR16-1][VAR20-1] != '.' &&
- F[VAR4][VAR16-1][VAR20-1] != '-' &&
- F[VAR4][VAR16-1][VAR20-1] != '#' &&
- F[VAR4][VAR16-1][VAR20-1] != '!')
- VAR53 = RANDOM(33, 126);
- putchar(VAR53);
- }
- }
- }
- CLEARMSG(); /*L21600*/
- } else if ((V33106[VAR16-1] & 6) == 2) {
- IND[1] += 20; /* выпил */
- VAR26 = 0;
- /* p2c: stalk1-koi.pas, line 656:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\376\325\327\323\324\327\325\305\324\305 \320\322\311\314\311\327 \323\311\314?\n");
- /*L21654*/
- } else if ((V33106[VAR16-1] & 6) == 4) {
- for (VAR16 = 2; VAR16 <= 15; VAR16++) { /*L21734*/
- for (VAR20 = 2; VAR20 <= 31; VAR20++) {
- if (F[VAR4][VAR16-1][VAR20-1] != '.') {
- CURSORTO(VAR16, VAR20); /*L22112*/
- /* p2c: stalk1-koi.pas, line 661:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- putchar(F[VAR4][VAR16-1][VAR20-1]); /*L22126*/
- F2[VAR4][VAR16-1][VAR20-1] |= 0100; /*L22204*/
- }
- }
- }
- CLEARMSG();
- } else {
- VAR40 = 20; /*L22404*/
- /* p2c: stalk1-koi.pas, line 670:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\356\301\320\311\314\323\321 - \323\304\301\312 \323\324\305\313\314\317\324\301\322\325!!!!\n");
- }
- } else
- printf("\360\311\324\330 \316\305\336\305\307\317\n");
- break;
- /* p2c: stalk1-koi.pas, line 673:
- * Note: Characters >= 128 encountered [281] */
- case 'D': /* выбросить предмет */
- printf("\376\324\317 \327\331\302\322\317\323\311\324\330? ");
- READCHAR(&VAR53);
- CLEARMSG();
- VAR16 = RUKSEEK(VAR53, VAR53); /* Ищем в рюкзаке */
- if (VAR16 < 7) {
- if ((V33106[VAR16-1] & 02000) == 0) {
- if (VAR53 != '.') {
- VAR30--; /*L22646*/
- RUKSAK[VAR16-1] = '.';
- if (*V11070 != '\'' && *V11070 != '"') {
- *V11070 = VAR53;
- *V33074 = V33106[VAR16-1];
- }
- }
- } else
- ZAKLYATIE();
- } else
- printf("\356\305\324\325\n");
- break;
- /*L22466*/
- /* p2c: stalk1-koi.pas, line 676:
- * Note: Characters >= 128 encountered [281] */
- /* p2c: stalk1-koi.pas, line 693:
- * Note: Characters >= 128 encountered [281] */
- case 'Z': /* перевести деньги в банк на счёт пещеры */
- VAR16 = RUKSEEK('*', '*'); /* Ищем в рюкзаке */
- if (VAR16 < 7) {
- IND[0]++;
- VAR30--;
- RUKSAK[VAR16-1] = '.';
- IND[4] += RANDOM(10, 70);
- /* p2c: stalk1-koi.pas, line 702:
- * Note: Characters >= 128 encountered [281] */
- printf("\364\301\315!\n");
- } else
- printf("\347\304\305 \332\317\314\317\324\317-\324o?\n");
- break;
- /*L23010*/
- /* p2c: stalk1-koi.pas, line 704:
- * Note: Characters >= 128 encountered [281] */
- case 'S': /* свистнуть */
- VAR22 = RUKSEEK('?', '?'); /* Ищем в рюкзаке свисток */
- if (VAR22 < 7) {
- if ((V33106[VAR22-1] & 6) == 4)
- putchar('\007'); /* bell */
- else if ((V33106[VAR22-1] & 6) == 2) { /*L23310*/
- for (VAR16 = -2; VAR16 <= 2; VAR16++) {
- for (VAR20 = -2; VAR20 <= 2; VAR20++) {
- if ((unsigned)(VAR12 + VAR16) < 32 &&
- ((1L << (VAR12 + VAR16)) & 0xfffcL) != 0 &&
- (unsigned)(VAR14 + VAR20) < 32 &&
- ((1L << (VAR14 + VAR20)) & 0xfffffffcL) != 0)
- F[VAR4][VAR12 + VAR16 - 1][VAR14 + VAR20 - 1] = ' ';
- }
- }
- RUKSAK[VAR22-1] = '.';
- } else if ((V33106[VAR22-1] & 6) == 0) {
- /* p2c: stalk1-koi.pas, line 721:
- * Note: Characters >= 128 encountered [281] */
- printf("\342 \341 \355 - \355 - \355 ! ! !\n");
- VAR12 = RANDOM(2, 15);
- VAR14 = RANDOM(2, 31);
- V11070 = &F[VAR4][VAR12-1][VAR14-1];
- V33074 = &F2[VAR4][VAR12-1][VAR14-1];
- } else {
- printf(
- "\365\316\311\336\324\317\326\305\316\311\305 \332\327\305\322\321\n");
- for (VAR16 = 1; VAR16 <= 4; VAR16++)
- V33122[VAR16-1] = ' ';
- for (VAR16 = -1; VAR16 <= 1; VAR16++) {
- for (VAR20 = -1; VAR20 <= 1; VAR20++) {
- if (isupper(F[VAR4][VAR12 + VAR16 - 1][VAR14 + VAR20 - 1])) {
- F[VAR4][VAR12 + VAR16 - 1][VAR14 + VAR20 - 1] = '*';
- /* p2c: stalk1-koi.pas, line 727:
- * Note: Characters >= 128 encountered [281] */
- }
- }
- }
- }
- } else
- printf(
- "\357\304\316\301\313o, \323\327\311\323\324\317\313 \316\325\326\305\316\n");
- break;
- /* p2c: stalk1-koi.pas, line 739:
- * Note: Characters >= 128 encountered [281] */
- case 'E': /* поесть */
- VAR16 = RUKSEEK(':', ';');
- if (VAR16 < 7) {
- IND[1] += 18; /* Энергия */
- RUKSAK[VAR16-1] = '.';
- VAR30--;
- /* p2c: stalk1-koi.pas, line 747:
- * Note: Characters >= 128 encountered [281] */
- printf("\363\320\301\323\311\302\317!\n");
- } else
- printf("\345\304\331 \316\305\324\n");
- break;
- /* p2c: stalk1-koi.pas, line 749:
- * Note: Characters >= 128 encountered [281] */
- case 'T': /* взять предмет, на котором стоишь */
- VAR16 = RUKSEEK('.', '.'); /* Ищем место в рюкзаке */
- if (VAR16 < 7) {
- if (*V11070 == '\'' || *V11070 == '"')
- /* Комариную плешь брать нельзя */
- NELZYA();
- else {
- printf("\342\305\322\305\315\n");
- VAR30++;
- RUKSAK[VAR16-1] = *V11070;
- V33106[VAR16-1] = *V33074;
- *V11070 = '.';
- }
- } else {
- /* p2c: stalk1-koi.pas, line 757:
- * Note: Characters >= 128 encountered [281] */
- printf("\362\300\313\332\301\313 \320\317\314\317\316\n");
- }
- break;
- /* p2c: stalk1-koi.pas, line 764:
- * Note: Characters >= 128 encountered [281] */
- case 'P': /* надеть доспехи */
- VAR16 = RUKSEEK(')', '(');
- if (VAR16 < 7) {
- if ((V33106[VAR16-1] & 02000) == 0) {
- RUKSAK[VAR16-1] = '.';
- IND[3] += 11;
- /* p2c: stalk1-koi.pas, line 772:
- * Note: Characters >= 128 encountered [281] */
- printf("\344\317\323\320\305\310\311 \316\301\304\305\324\331\n");
- } else
- ZAKLYATIE();
- } else
- printf("\356\305\324\325\n");
- break;
- /* p2c: stalk1-koi.pas, line 776:
- * Note: Characters >= 128 encountered [281] */
- case 'L': /* включить фонарь */
- if (VAR32 > 0) {
- VAR47 = true; /* Фонарь горит */
- /* p2c: stalk1-koi.pas, line 781:
- * Note: Characters >= 128 encountered [281] */
- printf("\346\317\316\301\322\330 \327\313\314\300\336\305\316\n");
- } else
- printf(
- "\342\301\324\301\322\305\311 \323\305\314\311.\356\301\304\317 \302\331\314\317 \334\313\317\316\317\315\311\324\330 ... \n");
- break;
- /*L25436*/
- /* p2c: stalk1-koi.pas, line 783:
- * Note: Characters >= 128 encountered [281] */
- case 'O': /* выключить фонарь */
- VAR47 = false; /* Фонарь не горит */
- /* p2c: stalk1-koi.pas, line 788:
- * Note: Characters >= 128 encountered [281] */
- printf("\346\317\316\301\322\330 \327\331\313\314\300\336\305\316\n");
- break;
- /*L25532*/
- case 'W': /* взмахнуть волшебной палочкой */
- VAR16 = RUKSEEK('/', '\\');
- if (VAR16 < 7) {
- if ((V33106[VAR16-1] & 3) == 3)
- printf(
- "\367\331\320\325\323\324\311\314\311 \304\317 \307\317\323\320\322\311\305\315\313\311...\n");
- /* p2c: stalk1-koi.pas, line 794:
- * Note: Characters >= 128 encountered [281] */
- else if ((V33106[VAR16-1] & 3) == 2) {
- for (VAR20 = 2; VAR20 <= 31; VAR20++) {
- for (VAR22 = 2; VAR22 <= 15; VAR22++) {
- CURSORTO(VAR22, VAR20);
- /* p2c: stalk1-koi.pas, line 798:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- putchar(F[VAR4][VAR22-1][VAR20-1]);
- F2[VAR4][VAR22-1][VAR20-1] |= 0100;
- }
- }
- RUKSAK[VAR16-1] = '.';
- CLEARMSG();
- /* p2c: stalk1-koi.pas, line 805:
- * Note: Characters >= 128 encountered [281] */
- printf("\"\344\301 \302\325\304\305\324 \323\327\305\324...\"\n");
- } else if ((V33106[VAR16-1] & 3) == 1) {
- if (VAR46 != false) { /*L26420*/
- VAR4 -= 3;
- if (VAR4 < 0)
- VAR4 = 0;
- } else {
- VAR4 += 3;
- if (VAR4 > 8)
- VAR4 = 8;
- }
- RUKSAK[VAR16-1] = '.';
- L03362('J');
- /* p2c: stalk1-koi.pas, line 816:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\360\317\313\301 \367\331 \314\305\324\305\314\311 \323\313\327\317\332\330 \334\324\301\326\311, \"\367\360\" \320\317\324\305\322\321\314\301\323\330\n");
- VAR30--;
- } else { /*L26612*/
- printf(
- "\360\322\305\327\322\301\335\305\316\311\305 \304\317\307\317\316\321\300\335\305\307\317 \332\327\305\322\321\n");
- for (VAR22 = 1; VAR22 <= 3; VAR22++) {
- if (V33122[VAR22-1] != ' ') { /*L26652*/
- V33122[VAR22-1] = ' ';
- F[VAR4][V33136[VAR22-1] - 1]
- [V33146[VAR22-1] - 1] = RANDOM(36, 63);
- /*L26570*/
- /* p2c: stalk1-koi.pas, line 819:
- * Note: Characters >= 128 encountered [281] */
- }
- }
- }
- } else
- printf("\355\301\310\301\324\330-\324\317 \316\305\336\305\315 !\n");
- break;
- /* p2c: stalk1-koi.pas, line 828:
- * Note: Characters >= 128 encountered [281] */
- case '/':
- case '?': /* переложить вещи в рюкзаке */
- VAR52 = RUKSAK[5];
- VAR20 = V33106[5];
- for (VAR16 = 1; VAR16 <= 6; VAR16++) {
- RUKSAK[6 - VAR16] = RUKSAK[5 - VAR16];
- V33106[6 - VAR16] = V33106[5 - VAR16];
- }
- RUKSAK[0] = VAR52;
- V33106[0] = VAR20;
- V33156 = '\001';
- /* p2c: stalk1-koi.pas, line 840:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\360\305\322\305\323\324\322\317\312\313\301 \327 \322\300\313\332\301\313\305\n");
- break;
- case 'F': /* приготовиться к сражению */
- VAR50 = true;
- /* p2c: stalk1-koi.pas, line 844:
- * Note: Characters >= 128 encountered [281] */
- printf("\365-\322-\322-\322-\301-a ! ! !\n");
- break;
- case 'N':
- break;
- /* идёт начальник */
- /* игнорируем */
- case 'X': /* закончить */
- printf(
- "\372\301\313\317\316\336\311\324\330 \311\332\327\317\314\311\324\305? ");
- READCHAR(&VAR53);
- if (VAR53 == 'Y' || VAR53 == 'D') {
- printf(
- "\341 \327\305\304\330 \320\322\305\304\325\320\322\305\326\304\301\314\311...\n");
- goto _L2; /* Выход из игрового цикла */
- }
- /* p2c: stalk1-koi.pas, line 853:
- * Note: Characters >= 128 encountered [281] */
- break;
- /* p2c: stalk1-koi.pas, line 850:
- * Note: Characters >= 128 encountered [281] */
- case 'M': /* приготовить оружие */
- VAR16 = RUKSEEK('[', ']'); /* Ищем в рюкзаке */
- if (VAR16 < 7) {
- if ((V33106[VAR16-1] & 02000) == 0) {
- RUKSAK[VAR16-1] = '.';
- IND[2] += 15;
- /* p2c: stalk1-koi.pas, line 863:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\357\322\325\326\311\305 \320\322\311\307\317\324\317\327\314\305\316\317\n");
- } else
- ZAKLYATIE();
- } else
- printf("\356\305\324\325!\n");
- break;
- /*L27742*/
- /* p2c: stalk1-koi.pas, line 867:
- * Note: Characters >= 128 encountered [281] */
- case 'B': /* заменить батареи */
- VAR16 = RUKSEEK('<', '>');
- if (VAR16 < 7) {
- if ((V33106[VAR16-1] & 02000) == 0) {
- RUKSAK[VAR16-1] = '.';
- VAR30--;
- VAR32 = 400;
- /* p2c: stalk1-koi.pas, line 876:
- * Note: Characters >= 128 encountered [281] */
- printf("\342\301\324\301\322\305\311 \332\301\315\305\316\305\316\331\n");
- } else
- ZAKLYATIE();
- } else
- printf("\342\301\324\301\322\305\312 \316\305\324\n");
- break;
- /* p2c: stalk1-koi.pas, line 880:
- * Note: Characters >= 128 encountered [281] */
- case 'J': /* обновить экран */
- L03362('J');
- break;
- case 'R': /* читать папирус */
- VAR16 = RUKSEEK('&', '&');
- if (VAR16 < 7) {
- if ((V33106[VAR16-1] & 6) == 0) {
- for (VAR20 = 1; VAR20 <= 8; VAR20++)
- V33106[VAR20-1] &= 0175777L;
- /* p2c: stalk1-koi.pas, line 890:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\"APCHXYZZYURR!!!\"... \372\301\313\314\321\324\311\305 \323\316\321\324\317\n");
- } else if ((V33106[VAR16-1] & 6) == 2) {
- /* p2c: stalk1-koi.pas, line 892:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\356\301\304\320\311\323\330 \307\314\301\323\311\324: \"\363\301\315 \304\325\322\301\313\"\n");
- } else if ((V33106[VAR16-1] & 6) == 4) { /*L30656*/
- VAR22 = 2; /*L30710*/
- while (VAR22 < 16) { /*L30716*/
- VAR24 = 2;
- while (VAR24 < 32) { /*L30740*/
- if (F[VAR4][VAR22-1][VAR24-1] == '%')
- return;
- VAR24++;
- }
- if (F[VAR4][VAR22-1][VAR24-1] == '%')
- return;
- VAR22++;
- }
- /* p2c: stalk1-koi.pas, line 910:
- * Note: Characters >= 128 encountered [281] */
- printf("\354\305\323\324\316\311\303\301 -");
- printf("%4d%4d\n", VAR22, VAR24);
- } else {
- VAR22 = 1;
- while (VAR22 < 16) {
- VAR24 = 2;
- while (VAR24 < 32) {
- if (F[8][VAR22-1][VAR24-1] == ',')
- return;
- VAR24++;
- }
- if (F[8][VAR22-1][VAR24-1] == ',')
- return;
- VAR22++;
- }
- if (VAR22 == 16 && VAR24 == 32)
- printf(
- "\372\317\314\317\324\317\312 \333\301\322 \325\313\322\301\304\305\316!\n");
- /* p2c: stalk1-koi.pas, line 931:
- * Note: Characters >= 128 encountered [281] */
- else {
- printf("\372\317\314\317\324\317\312 \333\301\322 - 8");
- printf("%4d%4d\n", VAR22, VAR24);
- /* p2c: stalk1-koi.pas, line 933:
- * Note: Characters >= 128 encountered [281] */
- }
- }
- } else {
- /*L31226*/
- printf(
- "\341 \336\311\324\301\324\330-\324\317 \311 \316\305\336\305\307\317\n");
- }
- break;
- /* p2c: stalk1-koi.pas, line 939:
- * Note: Characters >= 128 encountered [281] */
- case 'I': /* надеть кольцо */
- VAR16 = RUKSEEK('=', '=');
- if (VAR16 < 7) {
- if ((V33106[VAR16-1] & 02000) == 0) {
- printf(
- "\363\311\314\317\327\317\305 \320\317\314\305 \327\313\314\300\336\305\316\317!\n");
- VAR51 = true;
- RUKSAK[VAR16-1] = '.';
- }
- /* p2c: stalk1-koi.pas, line 945:
- * Note: Characters >= 128 encountered [281] */
- else
- ZAKLYATIE();
- } else
- printf("\356\305\324\325\n");
- break;
- /* p2c: stalk1-koi.pas, line 951:
- * Note: Characters >= 128 encountered [281] */
- case 'V': /* снять кольцо */
- if (VAR51 != false) {
- VAR16 = RUKSEEK('.', '.');
- if (VAR16 < 7) {
- RUKSAK[VAR16-1] = '=';
- V33106[VAR16-1] = 02000;
- VAR51 = false;
- } else
- printf("\362\300\313\332\301\313 \320\317\314\317\316\n");
- } else {
- /* p2c: stalk1-koi.pas, line 961:
- * Note: Characters >= 128 encountered [281] */
- printf("\353\317\314\330\303\301 \316\305\324\n");
- }
- break;
- /* p2c: stalk1-koi.pas, line 963:
- * Note: Characters >= 128 encountered [281] */
- case 'A': /* купить (на золото) */
- if (*V11070 == 'B' || *V11070 == 'A' || *V11070 == '1') {
- if (IND[4] > 0) { /* В банке есть деньги? */
- printf("\376\305\307\317 \311\332\327\317\314\311\324\305?");
- READCHAR(&VAR53);
- VAR16 = RUKSEEK('.', '.');
- if (VAR16 < 7) {
- RUKSAK[VAR16-1] = VAR53;
- V33106[VAR16-1] = RANDOM(1, 8191);
- IND[4] -= RANDOM(10, 250);
- putchar('\015');
- /* p2c: stalk1-koi.pas, line 976:
- * Note: Characters >= 128 encountered [281] */
- printf("\360 \317 \314 \325 \336 \311 \324 \305 !\n");
- *V11070 = 'k';
- }
- }
- /* p2c: stalk1-koi.pas, line 968:
- * Note: Characters >= 128 encountered [281] */
- else
- printf(
- "\360\317\304\301\300 \324\317\314\330\313\317 \320\317 \320\321\324\316\311\303\301\315!\n");
- } else {
- /* p2c: stalk1-koi.pas, line 980:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\360\317\304\317\312\304\311 \302\314\311\326\305 \313 \301\327\324\317\315\301\324\325!\n");
- }
- break;
- /*L32222*/
- /* p2c: stalk1-koi.pas, line 983:
- * Note: Characters >= 128 encountered [281] */
- case 'K': /* сломать стенку киркой */
- VAR16 = RUKSEEK(',', ',');
- if (VAR16 < 7) {
- printf("\356\301\320\322\301\327\314\305\316\311\305? ");
- READCHAR(&VAR53);
- CLEARMSG();
- VAR22 = VAR12;
- VAR24 = VAR14;
- switch (VAR53) {
- case '1':
- VAR22 = VAR12 + 1;
- VAR24 = VAR14 - 1;
- break;
- case '2':
- VAR22 = VAR12 + 1;
- break;
- case '3':
- VAR22 = VAR12 + 1;
- VAR24 = VAR14 + 1;
- break;
- case '4':
- VAR24 = VAR14 - 1;
- break;
- case '5':
- *V11070 = ' ';
- break;
- case '6':
- VAR24 = VAR14 + 1;
- break;
- case '7':
- VAR22 = VAR12 - 1;
- VAR24 = VAR14 - 1;
- break;
- case '8':
- VAR22 = VAR12 - 1;
- break;
- case '9':
- VAR22 = VAR12 - 1;
- VAR24 = VAR14 + 1;
- break;
- case '.':
- if (VAR4 > 0) {
- F[VAR4-1][VAR12-1][VAR14-1] = ' ';
- /* p2c: stalk1-koi.pas, line 1005:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\353\325\323\317\313 \323\327\317\304\301 \317\302\322\325\333\311\314\323\321 \311 \322\301\323\313\317\314\317\314\323\321 \317 \327\301\333\325 \307\314\325\320\325\300 \307\317\314\317\327\325\n");
- }
- break;
- default:
- NELZYA();
- break;
- }/* case of */
- if ((unsigned)VAR22 < 32 && ((1L << VAR22) & 0xfffcL) != 0 &&
- (unsigned)VAR24 < 32 && ((1L << VAR24) & 0xfffffffcL) != 0 &&
- (F[VAR4][VAR22-1][VAR24-1] == '-' ||
- F[VAR4][VAR22-1][VAR24-1] == '!')) {
- F[VAR4][VAR22-1][VAR24-1] = 'c';
- IND[1]--;
- } else
- printf(
- "\356\325, \336\305\307\317 \322\301\332\315\301\310\301\314\323\321?\n");
- }
- /* p2c: stalk1-koi.pas, line 988:
- * Note: Characters >= 128 encountered [281] */
- else {
- /* p2c: stalk1-koi.pas, line 1014:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\341 \323\324\305\316\313\325 \327\331 \302\325\304\305\324\305 \314\302\317\315 \320\322\317\333\311\302\301\324\330?..\n");
- }
- break;
- /*L32600*/
- /* p2c: stalk1-koi.pas, line 1016:
- * Note: Characters >= 128 encountered [281] */
- case 'Y': /* зажарить убегающего зверя */
- if (((*V33074) & 6) == 2 && isupper(*V11070))
- *V11070 = ':'; /* Зверь становится едой */
- else
- NELZYA();
- break;
- /*L33724*/
- /*L34036*/
- case 'H': /* хелп */
- HOME(0);
- /* p2c: stalk1-koi.pas, line 1025:
- * Warning: Expected an expression, found a ')' [227] */
- /* p2c: stalk1-koi.pas, line 1025:
- * Warning: Symbol 'HOME' is not defined [221] */
- CLREOS(0);
- /* p2c: stalk1-koi.pas, line 1025:
- * Warning: Expected an expression, found a ')' [227] */
- /* p2c: stalk1-koi.pas, line 1025:
- * Warning: Symbol 'CLREOS' is not defined [221] */
- /* p2c: stalk1-koi.pas, line 1026:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\354\301\304\316\317, \321 \313\317\305-\336\324\317 \320\317\304\323\313\301\326\325. \351\324\301\313: \332\304\305\323\330 \324\327\317\322\311\324\323\321 \336\305\322\324 \332\316\301\305\324 \336\324\317,\n");
- /* p2c: stalk1-koi.pas, line 1027:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\316\317 \316\301 \327\317\323\330\315\317\315 \325\322\317\327\316\305 \314\305\326\311\324 \332\317\314\317\324\317\312 \333\301\322. \364\317\314\330\313\317 \304\317\323\324\301\327 \305\307\317, \367\331\n");
- /* p2c: stalk1-koi.pas, line 1028:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\323\315\317\326\305\324\305 \327\331\312\324\311 \311\332 \320\317\304\332\305\315\305\314\330\321, \320\322\311\304\321 \316\301 \324\317 \326\305 \315\305\323\324\317, \317\324\313\325\304\301 \327\331 \327\331\333\314\311\n");
- /* p2c: stalk1-koi.pas, line 1029:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\327\316\301\336\301\314\305. \363\327\317\311\315 \307\314\301\332\301\315 \316\305 \327\323\305\307\304\301 \323\324\317\311\324 \304\317\327\305\322\321\324\330!\n");
- /* p2c: stalk1-koi.pas, line 1030:
- * Note: Characters >= 128 encountered [281] */
- printf(
- " \367\331 \315\317\326\305\324\305 \311\323\320\317\314\330\332\317\327\301\324\330 \313\317\315\301\316\304\331:\n");
- /* p2c: stalk1-koi.pas, line 1031:
- * Note: Characters >= 128 encountered [281] */
- printf("A - \353\325\320\311\324\330 (\316\301 \332\317\314\317\324\317)\n");
- /* p2c: stalk1-koi.pas, line 1032:
- * Note: Characters >= 128 encountered [281] */
- printf("B - \372\301\315\305\316\311\324\330 \302\301\324\301\322\305\311\n");
- /* p2c: stalk1-koi.pas, line 1033:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "D - \367\331\302\322\317\323\311\324\330 \320\322\305\304\315\305\324\n");
- /* p2c: stalk1-koi.pas, line 1034:
- * Note: Characters >= 128 encountered [281] */
- printf("E - \360\317\305\323\324\330\n");
- /* p2c: stalk1-koi.pas, line 1035:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "F - \360\322\311\307\317\324\317\327\311\324\330\323\321 \313 \323\322\301\326\305\316\311\300\n");
- /* p2c: stalk1-koi.pas, line 1036:
- * Note: Characters >= 128 encountered [281] */
- printf("H - HELP (\334\324\317\324 \324\305\313\323\324)\n");
- /* p2c: stalk1-koi.pas, line 1037:
- * Note: Characters >= 128 encountered [281] */
- printf("I - \356\301\304\305\324\330 \313\317\314\330\303\317\n");
- /* p2c: stalk1-koi.pas, line 1038:
- * Note: Characters >= 128 encountered [281] */
- printf("J - \357\302\316\317\327\311\324\330 \334\313\322\301\316\n");
- /* p2c: stalk1-koi.pas, line 1039:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "K - \363\314\317\315\301\324\330 \323\324\305\316\313\325 (\313\311\322\313\317\312)\n");
- /* p2c: stalk1-koi.pas, line 1040:
- * Note: Characters >= 128 encountered [281] */
- printf("L - \367\313\314\300\336\311\324\330 \306\317\316\301\322\330\n");
- /* p2c: stalk1-koi.pas, line 1041:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "M - \360\322\311\307\317\324\317\327\311\324\330 \317\322\325\326\311\305\n");
- /* p2c: stalk1-koi.pas, line 1042:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "N - \353\314\301\327\311\333\301 \"\351\304\305\324 \316\301\336\301\314\330\316\311\313\" (\317\324\302\317\312 \324\322\305\327\317\307\311 - \"P\")\n");
- /* p2c: stalk1-koi.pas, line 1043:
- * Note: Characters >= 128 encountered [281] */
- printf("O - \367\331\313\314\300\336\311\324\330 \306\317\316\301\322\330\n");
- /* p2c: stalk1-koi.pas, line 1044:
- * Note: Characters >= 128 encountered [281] */
- printf("P - \356\301\304\305\324\330 \304\317\323\320\305\310\311\n");
- /* p2c: stalk1-koi.pas, line 1045:
- * Note: Characters >= 128 encountered [281] */
- printf("Q - \360\311\324\330\n");
- /* p2c: stalk1-koi.pas, line 1046:
- * Note: Characters >= 128 encountered [281] */
- printf("R - \376\311\324\301\324\330 \320\301\320\311\322\325\323\n");
- /* p2c: stalk1-koi.pas, line 1047:
- * Note: Characters >= 128 encountered [281] */
- printf("S - \363\327\311\323\324\316\325\324\330\n");
- /* p2c: stalk1-koi.pas, line 1048:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "T - \367\332\321\324\330 \320\322\305\304\315\305\324, \316\301 \313\314\324\317\322\317\315 \323\324\317\311\333\330\n");
- /* p2c: stalk1-koi.pas, line 1049:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "U - \367\331\332\327\301\324\330 \304\326\311\316\316\301 (\324\317\314\330\313\317 \327 \302\305\332\316\301\304\305\326\316\317\315 \323\314\325\336\301\305!)... \344\301\314\330\333\305? ");
- READCHAR(&VAR53);
- if (VAR53 == '\015')
- READCHAR(&VAR53);
- printf("\nV - \363\316\321\324\330 \313\317\314\330\303\317\n");
- /* p2c: stalk1-koi.pas, line 1055:
- * Note: Characters >= 128 encountered [281] */
- /* p2c: stalk1-koi.pas, line 1056:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "W - \367\332\315\301\310\316\325\324\330 \327\317\314\333\305\302\316\317\312 \320\301\314\317\336\313\317\312\n");
- /* p2c: stalk1-koi.pas, line 1057:
- * Note: Characters >= 128 encountered [281] */
- printf("X - \372\301\313\317\316\336\311\324\330\n");
- /* p2c: stalk1-koi.pas, line 1058:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "Y - \372\301\326\301\322\311\324\330 \325\302\305\307\301\300\335\305\307\317 \332\327\305\322\321\n");
- /* p2c: stalk1-koi.pas, line 1059:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "Z - \360\305\322\305\327\305\323\324\311 \304\305\316\330\307\311 \327 \302\301\316\313 \316\301 \323\336\305\324 \320\305\335\305\322\331.\n");
- /* p2c: stalk1-koi.pas, line 1060:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "/ - \360\305\322\305\314\317\326\311\324\330 \327\305\335\311 \327 \322\300\313\332\301\313\305\n");
- /* p2c: stalk1-koi.pas, line 1061:
- * Note: Characters >= 128 encountered [281] */
- printf(" \360 \345 \362 \345 \344 \367 \351 \366 \345 \356 \351 \345:\n\n");
- printf(" 7 8 9\n");
- /* p2c: stalk1-koi.pas, line 1064:
- * Note: Characters >= 128 encountered [281] */
- printf(
- " 4 6 - \344\327\311\326\305\316\311\305 \320\317 \325\322\317\327\316\300\n");
- printf(" 1 2 3\n");
- /* p2c: stalk1-koi.pas, line 1066:
- * Note: Characters >= 128 encountered [281] */
- printf("5 - \367\316\311\332 \320\317 \314\305\323\324\316\311\303\305\n");
- /* p2c: stalk1-koi.pas, line 1067:
- * Note: Characters >= 128 encountered [281] */
- printf(". - \367\327\305\322\310 \320\317 \314\305\323\324\316\311\303\305\n");
- /* p2c: stalk1-koi.pas, line 1068:
- * Note: Characters >= 128 encountered [281] */
- printf("0 - \357\324\304\331\310\301\324\330.\n\n");
- /* p2c: stalk1-koi.pas, line 1070:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\351\323\320\317\314\330\332\317\327\301\324\330 \315\317\326\316\317 \314\311\333\330 \327\305\335\311, \314\305\326\301\335\311\305 \327 \322\300\313\332\301\313\305.\n");
- /* p2c: stalk1-koi.pas, line 1071:
- * Note: Characters >= 128 encountered [281] */
- printf("\360\322\311\315\305\336\301\316\311\305:\n");
- /* p2c: stalk1-koi.pas, line 1072:
- * Note: Characters >= 128 encountered [281] */
- printf(
- " \367\317\314\333\305\302\316\301\321 \313\311\322\313\301 \327\331\316\305\323\305\324 \327\301\323 \311\332 \"\313\317\315\301\322\311\316\317\312 \320\314\305\333\311\" \320\322\311 \325\304\301\322\305 \305\312 \327\316\311\332.\n\n");
- /* p2c: stalk1-koi.pas, line 1074:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\356\325, \336\324\317, \320\317\312\304\305\315 \304\301\314\330\333\305? ");
- READCHAR(&VAR53);
- if (VAR53 == '\015')
- READCHAR(&VAR53);
- L03362('J'); /* Обновить экран */
- IND[0] -= 2; /* Рейтинг */
- break;
- /*L34046*/
- case 'U': /* вызвать джинна */
- if (!VAR46 != false) {
- printf(
- "\376\324\317, \327\314\311\320? \314\301\304\316\317, \320\317\320\322\317\302\325\300 \324\305\302\321 \320\305\322\305\316\305\323\324\311\n");
- /* p2c: stalk1-koi.pas, line 1085:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "\317\324\323\300\304\301. \324\317\314\330\313\317 \304\317\322\317\307\317\327\301\324\317 \334\324\317 \327\323\324\301\316\305\324...\n");
- /* p2c: stalk1-koi.pas, line 1086:
- * Note: Characters >= 128 encountered [281] */
- printf("\364\331 \307\317\324\317\327? ");
- READCHAR(&VAR53);
- if (VAR53 != 'N') {
- for (VAR16 = 1; VAR16 <= 5; VAR16++)
- IND[VAR16-1] -= RANDOM(0, 15);
- for (VAR16 = 1; VAR16 <= 6; VAR16++) /*L34504*/
- RUKSAK[VAR16-1] = '.';
- VAR12 = RANDOM(2, 15);
- VAR14 = RANDOM(2, 31);
- VAR22 = RANDOM(0, 8);
- V11070 = &F[VAR4][VAR12-1][VAR14-1];
- V33074 = &F2[VAR4][VAR12-1][VAR14-1];
- if (VAR22 > VAR4)
- VAR22 = VAR4;
- VAR4 = VAR22;
- L03362('J'); /* Обновить экран */
- }
- }
- /* p2c: stalk1-koi.pas, line 1084:
- * Note: Characters >= 128 encountered [281] */
- else
- printf("\344\326\311\316\316 \327 \317\324\307\325\314\305\n");
- break;
- /* p2c: stalk1-koi.pas, line 1109:
- * Note: Characters >= 128 encountered [281] */
- /* p2c: stalk1-koi.pas, line 1106:
- * Note: Characters >= 128 encountered [281] */
- default:
- printf("\376\324\317-\336\324\317?\n");
- break;
- }
- /* case of */
- /*L35274*/
- if (VAR40 > 0) {
- VAR22 = VAR12 + RANDOM(1, 3) - 2;
- VAR24 = VAR14 + RANDOM(1, 3) - 2;
- if ((unsigned)VAR22 < 32 && ((1L << VAR22) & 0xfffcL) != 0 &&
- (unsigned)VAR24 < 32 && ((1L << VAR24) & 0xfffffffcL) != 0) {
- VAR12 = VAR22;
- VAR14 = VAR24;
- VAR40--;
- }
- V11070 = &F[VAR4][VAR12-1][VAR14-1];
- V33074 = &F2[VAR4][VAR12-1][VAR14-1];
- }
- VAR20 = 1; /*L35650*/
- VAR26 += VAR30; /*L35656*/
- if (VAR47 != false) /* Фонарь горит */
- VAR32--;
- /* Уменьшаем заряд батарей */
- VAR2 += (IND[2] + IND[3]) / 10;
- if (VAR2 > 200) {
- VAR2 = 0;
- IND[0]++;
- IND[1]--;
- }
- if (IND[1] < 5) /*L35774*/
- printf("\363\311\314\331 \316\301 \311\323\310\317\304\305\n");
- /* p2c: stalk1-koi.pas, line 1133:
- * Note: Characters >= 128 encountered [281] */
- if (IND[1] > 50) /*L36032*/
- IND[1] = 50;
- if (VAR47 && VAR32 < 10 && VAR32 > 1) /*L36122*/
- printf("\346\317\316\301\322\330 \307\301\323\316\305\324\n");
- /* p2c: stalk1-koi.pas, line 1136:
- * Note: Characters >= 128 encountered [281] */
- if (VAR32 == 1) {
- IND[0]--;
- VAR47 = false; /* Фонарь не горит */
- VAR32 = 0; /* Заряд батарей */
- }
- if (VAR26 > 200)
- printf("\357\324\304\317\310\316\325\324\330-\302\331\n");
- /* p2c: stalk1-koi.pas, line 1143:
- * Note: Characters >= 128 encountered [281] */
- if (VAR26 > 215) { /* Слишком устал */
- IND[1] -= 3;
- VAR26 = 50; /*L36254*/
- }
- /*L36232*/
- for (VAR16 = 1; VAR16 <= 4; VAR16++) { /*L36262*/
- if (V33122[VAR16-1] != ' ') { /*L36322*/
- if (V33136[VAR16-1] != VAR12 || V33146[VAR16-1] != VAR14) {
- /*L36344*/
- if (VAR12 > V33136[VAR16-1]) /*L36434*/
- VAR22 = V33136[VAR16-1] + 1; /*L36460*/
- else if (VAR12 < V33136[VAR16-1]) /*L36506*/
- VAR22 = V33136[VAR16-1] - 1;
- /*L36532*/
- if (VAR14 > V33146[VAR16-1]) /*L36554*/
- VAR24 = V33146[VAR16-1] + 1; /*L36600*/
- else if (VAR14 < V33146[VAR16-1]) /*L36626*/
- VAR24 = V33146[VAR16-1] - 1;
- /*L36652*/
- if ((F[VAR4][VAR22-1][VAR24-1] == '-' ||
- F[VAR4][VAR22-1][VAR24-1] == '!') &&
- (V33126[VAR16-1] & 6) == 4)
- /*L36674*/
- V33122[VAR16-1] = ' ';
- else {
- F[VAR4][V33136[VAR16-1] - 1][V33146[VAR16-1] - 1] = '.';
- CURSORTO(V33136[VAR16-1], V33146[VAR16-1]);
- /* p2c: stalk1-koi.pas, line 1163:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- putchar('.');
- F[VAR4][VAR22-1][VAR24-1] = V33122[VAR16-1];
- CURSORTO(VAR22, VAR24);
- /* p2c: stalk1-koi.pas, line 1166:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- putchar(V33122[VAR16-1]);
- F2[VAR4][VAR22-1][VAR24-1] = V33126[VAR16-1];
- V33136[VAR16-1] = VAR22;
- V33146[VAR16-1] = VAR24;
- CURSORTO(18, 0);
- /* p2c: stalk1-koi.pas, line 1171:
- * Warning: Symbol 'CURSORTO' is not defined [221] */
- /*WRITE(CHR(33B), '[K'); { стираем до конца строки */
- printf("\033K");
- }
- }
- }
- }
- if (IND[1] < 0) { /* Умер от недостатка Энергии */
- VAR16 = RANDOM(10, 1000);
- /* p2c: stalk1-koi.pas, line 1180:
- * Note: Characters >= 128 encountered [281] */
- printf(" \367\317\324 \367\331 \311 \323\324\301\314\311");
- printf("%4d", VAR16);
- /* p2c: stalk1-koi.pas, line 1182:
- * Note: Characters >= 128 encountered [281] */
- printf(
- "-\317\312 \326\305\322\324\327\317\312 \334\324\317\307\317 \320\317\304\332\305\315\305\314\330\321.\n");
- goto _L2; /* Выходим из игрового цикла */
- }
- /*L37536*/
- /* Энергия пока есть - продолжаем */
- /*L37660*/
- if (VAR4 != 0)
- continue;
- /* конец игрового цикла */
- if (VAR46 == false)
- continue;
- if (VAR12 != 2 || VAR14 != 2)
- continue;
- if (IND[4] >= 0) { /* В банке есть деньги? */
- printf(
- "\353\301\313, \367\331 \327\305\322\316\325\314\311\323\330?! \356\325 \311 \316\325 !!!\n");
- /* p2c: stalk1-koi.pas, line 1191:
- * Note: Characters >= 128 encountered [281] */
- printf("\341 \304\301\314\330\333\305 \320\317\312\304\305\324\305? ");
- READCHAR(&VAR53);
- if (VAR53 == 'Y') {
- DUNGEON++; /* следующее подземелье */
- IND[0] += 50; /* Рейтинг */
- goto _L1; /* Рестарт игры */
- }
- goto _L2; /* Выходим из игрового цикла */
- }
- /* p2c: stalk1-koi.pas, line 1190:
- * Note: Characters >= 128 encountered [281] */
- else {
- printf(
- "\341 \322\301\323\320\314\301\336\311\327\301\324\330\323\321 \313\324\317 \302\325\304\305\324?\n");
- continue;
- /* p2c: stalk1-koi.pas: Note: Deleting unreachable code [255] */
- /* p2c: stalk1-koi.pas: Note: Deleting unreachable code [255] */
- /* p2c: stalk1-koi.pas: Note: Deleting unreachable code [255] */
- /* p2c: stalk1-koi.pas: Note: Deleting unreachable code [255] */
- continue;
- }
- }
- /* p2c: stalk1-koi.pas, line 1200:
- * Note: Characters >= 128 encountered [281] */
- _L2:
- /* Расчёт счёта игрока */
- VAR16 = IND[0] + (IND[1] + IND[2] + IND[3] + IND[4] / 5) / 3;
- /* p2c: stalk1-koi.pas, line 1209:
- * Note: Characters >= 128 encountered [281] */
- printf("\367\301\333 \323\336\305\324 -");
- printf("%5d\n", VAR16);
- exit(EXIT_SUCCESS);
- }
- /* End. */
Advertisement
Add Comment
Please, Sign In to add comment