/* 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 "Crt.h"*/ namespace Avalanche { const varying_string<4> codes = " ßÜÛ"; typedef matrix < '\0', '\377', 0, 15, byte > fonttype; byte x, xx, y; string title, fn; file f; fonttype font; byte code; typedef array<1, 3840, byte> atype; void save() { file f; word fv; atype a /*absolute $B800:0*/; assign(f, "TEXT1.SCR"); rewrite(f); f << a; close(f); } void centre(byte y, string z) { gotoxy(40 - length(z) / 2, y); output << z; } int main(int argc, const char *argv[]) { pio_initialize(argc, argv); /* write('Title?'); readln(title); write('Font?'); readln(fn); */ textattr = 0; clrscr; title = "Bug Alert!"; fn = ""; for (xx = 1; xx <= 77; xx ++) { gotoxy(Random(80) + 1, Random(24) + 1); switch (Random(2)) { case 0: textattr = red; break; case 1: textattr = lightred; break; } switch (Random(4)) { case 0: output << '*'; break; case 1: output << '\17'; break; case 2: output << 'ù'; break; case 3: output << 'ú'; break; } } textattr = 12; assign(f, "c:\\thomas\\ttsmall.fnt"); reset(f); f >> font; close(f); for (y = 0; y <= 3; y ++) { for (x = 1; x <= length(title); x ++) { for (xx = 7; xx >= 0; xx --) { code = (byte)(((1 << xx) & font[title[x]][y * 2]) > 0) + (byte)(((1 << xx) & font[title[x]][y * 2 + 1]) > 0) * 2; gotoxy(1 + x * 8 - xx, y + 1); if (code > 0) output << codes[code + 1 - 1]; } } /*if wherex<>1 then writeln;*/ } textattr = red; centre(7, "An internal error has just occurred within the program."); textattr = white; gotoxy(26, 9); output << "Error number: "; textattr = lightred; output << " "; textattr = white; gotoxy(27, 10); output << "at location: "; textattr = lightred; output << " "; centre(12, "This screen should never come up..."); centre(13, "but it just has!"); textattr = 15; centre(15, "So, please tell Thorsoft about this as soon as"); centre(16, "possible, so that we can fix it."); textattr = red; centre(20, "Thanks..."); save(); return EXIT_SUCCESS; } } // End of namespace Avalanche.