#include <acknex.h>
#include <default.c>
var GameLevel = 9;
var GameElapsed = 0;
FONT* fontHighScore = "Arial#20b";
STRING* PlayerName = "#40";
STRING* HOF_Name_00 = "Anonymous";
STRING* HOF_Name_01 = "Anonymous";
STRING* HOF_Name_02 = "Anonymous";
var HOF_Level[3];
var HOF_Elapsed[3];
PANEL* HallOfFame =
{
layer = 3;
digits (50, 50, HOF_Name_00, fontHighScore, 0, 0);
digits (50, 70, HOF_Name_01, fontHighScore, 0, 0);
digits (50, 90, HOF_Name_02, fontHighScore, 0, 0);
digits (400, 50, "%03.0f", fontHighScore, 1, HOF_Level[0]);
digits (400, 70, "%03.0f", fontHighScore, 1, HOF_Level[1]);
digits (400, 90, "%03.0f", fontHighScore, 1, HOF_Level[2]);
digits (500, 50, "%06.0f secs", fontHighScore, 1, HOF_Elapsed[0]);
digits (500, 70, "%06.0f secs", fontHighScore, 1, HOF_Elapsed[1]);
digits (500, 90, "%06.0f secs", fontHighScore, 1, HOF_Elapsed[2]);
flags = VISIBLE;
}
TEXT* InputName =
{
layer = 4;
pos_x = 50;
pos_y = 500;
font = fontHighScore;
string (PlayerName);
flags = VISIBLE;
}
function HOFRead()
{
var filehandle;
filehandle = file_open_read("hs_name.txt");
file_str_read(filehandle,HOF_Name_00);
file_str_read(filehandle,HOF_Name_01);
file_str_read(filehandle,HOF_Name_02);
file_close(filehandle);
filehandle = file_open_read("hs_level.txt");
var temp0; for (temp0=0; temp0<3; temp0++) HOF_Level[temp0] = file_var_read(filehandle);
file_close(filehandle);
filehandle = file_open_read("hs_elapsed.txt");
var temp0; for (temp0=0; temp0<3; temp0++) HOF_Elapsed[temp0] = file_var_read(filehandle);
file_close(filehandle);
}
function HOFWrite()
{
var filehandle;
filehandle = file_open_write("hs_name.txt");
file_str_write(filehandle,HOF_Name_00);
file_str_write(filehandle,",");
file_str_write(filehandle,HOF_Name_01);
file_str_write(filehandle,",");
file_str_write(filehandle,HOF_Name_02);
file_close(filehandle);
filehandle = file_open_write("hs_level.txt");
var temp0; for (temp0=0; temp0<3; temp0++) file_var_write(filehandle,HOF_Level[temp0]);
file_close(filehandle);
filehandle = file_open_write("hs_elapsed.txt");
var temp0; for (temp0=0; temp0<3; temp0++) file_var_write(filehandle,HOF_Elapsed[temp0]);
file_close(filehandle);
}
function HOFUpdate()
{
// bubble sort
//=============================================================
STRING* tempName;
var tempLevel;
var tempElapsed;
var temp0;
var pass;
for(pass=0; pass<3; pass++)
{
for (temp0=2; temp0>0; temp0--)
{
if (HOF_Level[temp0] > HOF_Level[temp0-1] || (HOF_Level[temp0] == HOF_Level[temp0-1] && HOF_Elapsed[temp0] < HOF_Elapsed[temp0-1]) )
{
tempLevel = HOF_Level[temp0-1];
tempElapsed = HOF_Elapsed[temp0-1];
switch (temp0)
{
case 1:
tempName = HOF_Name_00;
HOF_Name_00 = HOF_Name_01;
HOF_Name_01 = tempName;
break;
case 2:
tempName = HOF_Name_01;
HOF_Name_01 = HOF_Name_02;
HOF_Name_02 = tempName;
break;
}
HOF_Level[temp0-1] = HOF_Level[temp0];
HOF_Elapsed[temp0-1] = HOF_Elapsed[temp0];
HOF_Level[temp0] = tempLevel;
HOF_Elapsed[temp0] = tempElapsed;
}
}
}
HOFWrite();
}
function HOFEnterNewRecord()
{
HOF_Elapsed[2] = GameElapsed;
result = inkey(PlayerName); // wait until [enter] pressed]
HOF_Name_02 = PlayerName;
HOF_Level[2] = GameLevel;
HOFUpdate();
}
function HOFCheckQualify()
{
if (GameLevel > HOF_Level[2] || (GameLevel == HOF_Level[2] && GameElapsed < HOF_Elapsed[2])) HOFEnterNewRecord();
}
function main()
{
video_mode = 8;
video_window(nullvector,nullvector,1,NULL);
vec_set(screen_color,vector(128,128,128));
HOFRead();
wait(-2);
GameElapsed = 999;
HOFCheckQualify();
}