セーブデータごとに違う変数使用するなら、そりゃグローバル変数じゃないだろ・・・
というか記録する時にデータ呼び出して、trueが立ってたら上書きしないようにすればいいんじゃないのか