diff options
Diffstat (limited to 'engines/avalanche/oldhighs.cpp')
-rw-r--r-- | engines/avalanche/oldhighs.cpp | 286 |
1 files changed, 0 insertions, 286 deletions
diff --git a/engines/avalanche/oldhighs.cpp b/engines/avalanche/oldhighs.cpp deleted file mode 100644 index c95b9a2d91..0000000000 --- a/engines/avalanche/oldhighs.cpp +++ /dev/null @@ -1,286 +0,0 @@ -/* 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 { - -struct scoretype { - varying_string<39> name; - word score; -}; - -struct ratetype { - varying_string<10> rank; - word lowest; -}; - -struct tabletype { - array<1, 12, scoretype> a; - byte light; -}; - -const array<1, 9, ratetype> ratings = { - { {"Rubbish", 0}, - {"Beginner", 1}, - {"Poor", 10}, - {"Average", 30}, - {"Fair", 50}, - {"Not bad", 70}, - {"Good", 100}, - {"Great", 200}, - {"Fantastic!", 330} - } -}; - -integer gd, gm; -tabletype table; - -byte ratingname(word x) { - byte fv; - byte ratingname_result; - for (fv = 9; fv >= 1; fv --) - if (x >= ratings[fv].lowest) { - ratingname_result = fv; - return ratingname_result; - } /* bad style */ - return ratingname_result; -} - -void title(); - -const string message = "A v a l o t : H i g h - S c o r e s"; - - -static void sayfast(integer x, integer y) { - integer anchor; - byte fv; - anchor = -296; - for (fv = 1; fv <= length(message); fv ++) { - if (message[fv - 1] != '\40') outtextxy(x + anchor, y - 8, message[fv - 1]); - anchor += 16; - } -} - -void title() { - const array<0, 6, byte> shades = - {{blue, lightgray, darkgray, blue, lightblue, blue, darkgray}}; - byte x; - integer len; - - settextstyle(0, 0, 2); /*settextjustify(1,1);*/ - len = textheight(message); - for (x = 6; x >= 0; x --) { - setcolor(shades[x]); - sayfast(320 - x * 2, 20 - x); - if (x > 0) { - sayfast(320 + x * 2, 20 - x); - sayfast(320 + x * 2, 20 + x); - sayfast(320 - x * 2, 20 + x); - } - } -} - -void newtable() { - const array<1, 12, varying_string<15> > names = { - { - "Mike", "Liz", "Thomas", "Mark", "Mandy", "Andrew", "Lucy Tryphena", "", - "Thanks to all", "who helped...", "", "Have fun!" - } - }; - byte fv; - fillchar(table, sizeof(table), '\261'); - for (fv = 1; fv <= 12; fv ++) { - scoretype &with = table.a[fv]; - with.name = names[fv]; - with.score = 193 - fv * 16; - } - table.light = 1; -} - -string strf(longint x) { /* From Gyro. Delete when integrated. */ - string q; - string strf_result; - str(x, q); - strf_result = q; - return strf_result; -} - -void sparkle(integer x, integer y, string z) { - setcolor(cyan); - outtextxy(x - 1, y - 1, z); - setcolor(blue); - outtextxy(x + 1, y + 1, z); - setcolor(white); - outtextxy(x , y , z); -} - -void drawtable() { - byte fv, last, now; - setfillstyle(1, 8); - bar(0, 40, 105, 58); - bar(110, 40, 400, 58); - bar(405, 40, 490, 58); - bar(495, 40, 640, 58); - bar(5, 60, 105, 181); - bar(110, 60, 400, 181); - bar(405, 60, 490, 181); - bar(495, 60, 635, 181); - bar(0, 185, 640, 190); - setcolor(lightred); - settextstyle(0, 0, 1); - settextjustify(0, 0); - outtextxy(45, 55, "Number:"); - outtextxy(120, 55, "Name:"); - outtextxy(420, 55, "Score:"); - outtextxy(500, 55, "Rating:"); - setcolor(white); - last = 177; - for (fv = 1; fv <= 12; fv ++) { - scoretype &with = table.a[fv]; - settextjustify(righttext, bottomtext); - sparkle(100, 60 + fv * 10, strf(fv) + '.'); - sparkle(455, 60 + fv * 10, strf(with.score)); - if (fv == table.light) sparkle(70, 60 + fv * 10, string("ออ") + '\20'); - - settextjustify(lefttext, bottomtext); - sparkle(120, 60 + fv * 10, with.name); - now = ratingname(with.score); - if (now != last) - sparkle(510, 60 + fv * 10, ratings[ratingname(with.score)].rank); - else - sparkle(517, 57 + fv * 10, ",,"); - last = now; - } -} - -void message1(string x) { - setfillstyle(1, 8); - bar(0, 190, 640, 200); - settextjustify(1, 1); - sparkle(320, 195, x); -} - -void sorthst() { - byte fv; - boolean ok; - scoretype temp; - do { - ok = true; - for (fv = 1; fv <= 11; fv ++) - if (table.a[fv].score < table.a[fv + 1].score) { - temp = table.a[fv]; - table.a[fv] = table.a[fv + 1]; - table.a[fv + 1] = temp; /* swap 'em */ - table.light = fv; /* must be- that's the only unsorted one */ - ok = false; /* So, we try again. */ - } - } while (!ok); -} - -void entername(); -static integer x, y; - - -static void cursor(byte col) { - setcolor(col); - outtextxy(x, y, "?"); -} - -void entername() { - varying_string<34> i; - char r; - integer counter; - byte flash; - - y = 60 + table.light * 10; - i = ""; - settextjustify(2, 0); - counter = 999; - flash = 0; - do { - x = 128 + length(i) * 8; - do { - counter += 1; - if (counter == 1000) { - cursor(4 + flash * 10); - flash = 1 - flash; - counter = 0; - } - delay(1); - } while (!keypressed()); - cursor(8); - sound(17177); - r = readkey(); - nosound; - if (r == '\10') { - if (i[0] > '\0') { - bar(x - 17, y - 10, x - 8, y); - i[0] -= 1; - sparkle(x - 16, y, i[length(i)]); - } - } else { - if ((i[0] < '\42') && (r != '\15')) { - sparkle(x, y, r); - i = i + r; - } - } - counter = 999; - } while (!(r == '\15')); -} - -void newscore(word sc) { - { - scoretype &with = table.a[12]; - if (sc > with.score) { - with.name = ""; - with.score = sc; - table.light = 10; - sorthst(); - drawtable(); - message1("Well done! Please enter your name, then press Return..."); - entername(); - } else drawtable(); - } /* too low for score */ - message1("Press Space to continue..."); - do { - } while (!(keypressed() && (readkey() == '\40'))); -} - -int main(int argc, const char *argv[]) { - pio_initialize(argc, argv); - gd = 3; - gm = 0; - initgraph(gd, gm, ""); - title(); - newtable(); - newscore(/*177*/0); - return EXIT_SUCCESS; -} - -} // End of namespace Avalanche.
\ No newline at end of file |