scummvm/engines/avalanche/avvyans.cpp

130 lines
3.2 KiB
C++

/* 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.
*
*/
/*
* This code is based on the original source code of Lord Avalot d'Argent version 1.3.
* Copyright (c) 1994-1995 Mike, Mark and Thomas Thurman.
*/
#include "graph.h"
/*#include "Crt.h"*/
namespace Avalanche {
integer gd, gm;
untyped_file f;
array<1, 16000, byte> aa;
matrix<0, 27, 0, 35, byte> cols;
text t;
string x;
int main(int argc, const char *argv[]) {
pio_initialize(argc, argv);
gd = 3;
gm = 0;
initgraph(gd, gm, "c:\\bp\\bgi");
fillchar(cols, sizeof(cols), '\0');
assign(f, "v:avvypic.ptx");
reset(f, 1);
blockread(f, aa, filesize(f));
close(f);
putimage(0, 0, aa, 0);
for (gd = 0; gd <= 27; gd ++)
for (gm = 0; gm <= 34; gm ++)
cols[gd][gm + 1] = getpixel(gd, gm);
restorecrtmode();
/*
asm
mov ax,$1003
mov bl,0
int $10
end;
*/
for (gm = 0; gm <= 17; gm ++)
for (gd = 0; gd <= 27; gd ++) {
gotoxy(gd + 1, gm + 1);
if (cols[gd][2 * gm] == cols[gd][2 * gm + 1]) {
textattr = cols[gd][2 * gm];
output << 'Û';
} else if ((cols[gd][2 * gm] > 7) && (cols[gd][2 * gm + 1] < 8)) {
textattr = cols[gd][2 * gm] + cols[gd][2 * gm + 1] * 16;
output << 'ß';
} else {
textattr = cols[gd][2 * gm] * 16 + cols[gd][2 * gm + 1];
if (textattr > blink) textattr -= blink;
output << 'Ü';
}
}
gotoxy(23, 5);
textattr = red;
output << 'ß';
assign(t, "v:avalot.txt");
reset(t);
textattr = 9;
gm = 2;
do {
gm += 1;
t >> x >> NL;
gotoxy(30, gm);
output << x << NL;
} while (!(eof(t)));
textattr = 7;
gotoxy(35, 2);
output << "Back in good old A.D. ";
textattr = 15;
output << "1176";
textattr = 7;
output << "...";
textattr = 9;
gotoxy(40, 4);
output << "Lord";
gotoxy(67, 9);
output << "d'Argent";
textattr = yellow;
gotoxy(37, 12);
output << "He's back...";
gotoxy(47, 14);
output << "And this time,";
gotoxy(52, 15);
output << "he's wearing tights...";
textattr = 4;
gotoxy(36, 17);
output << "A Thorsoft of Letchworth game. * Requires EGA";
gotoxy(38, 18);
output << "and HD. * By Mike, Mark and Thomas Thurman.";
gotoxy(40, 19);
output << "Sfx archive- ";
textattr = 9;
output << "Download ";
textattr = 14;
output << "AVLT10.EXE";
textattr = 9;
output << " now!";
gotoxy(1, 1);
input >> NL;
return EXIT_SUCCESS;
}
} // End of namespace Avalanche.