I assume you have something done with gamestates
in your main loop
[pascal]case gamestate of:
gsMenu : displayMenu();
gsOptions : displayOptions():
gsGame : runGame();
gsGameOver : displayGameOverAnimation();
gsDisplayScoreList: displayScoreList();
gsEnterHighScore : displayHighScoreForm();
gsExit : cleanEveryThingUpAndThenExitGame();
end;[/pascal]
Now when the player has a sufficient score you can either send him to gsDisplayScore, gsEnterHighScore or gsMenu.
[pascal]
function getLowestScoreFromList():word;
begin
// get the lowest value from thescoreList,
end;
procedure TPlayer.Collsion;
begin
(...)
if (player.lives <= 0) then
begin
player.dead := true;
if (player.score = 0) then gamestate := displayGameOverAnimation
else (if player.score < getLowestScoreFromList() ) then displayScoreList()
else (if player.score > getLowestScoreFromList() ) then displayHighScoreForm()
end
else dec(player.lives)
end;
[/pascal]
I hope this helps a bit...
Bookmarks