If the score is not added to the local high score list for a solved
level (because the high score table is completely full, and the new
score is not better than the lowest score entry in the list), there
was an out-of-bounds bug caused (by accessing the score array at
position "-1", which was not correctly handled as "no score entry").
This uncaught error condition could have caused various misbehavior
(inclusing crashes) of the game. This change fixes this bug.
// store last added local score entry (before merging server scores)
scores.last_added_local = scores.last_added;
- }
- if (game.LevelSolved_SaveTape)
- {
- SaveScoreTape(level_nr);
- SaveServerScore(level_nr, tape_saved);
+ if (game.LevelSolved_SaveTape)
+ {
+ SaveScoreTape(level_nr);
+ SaveServerScore(level_nr, tape_saved);
+ }
}
}