Хай!

Столкнулся с одной задачкой.
Необходимо сделать автосохранение, и одно единственное - чтобы игрок не имел возможности переигрывать "правильно" те или иные ветки разговора.
В идеале, сохранение должно работать следующим образом:
1. Игрок переходит из локации в локацию.
2. Перед боем (когда игрок уже вписался в битву, но еще не сделал ни шага)
3. После боя.
4. После каждого выбора ответа в разговоре.
5. После сдачи квестов.
6. После получения квестов.
В общем, после мало-мальских действий.
Но эта схема мне кажется слишком громоздкой и неудобной. Может есть идеи получше?

Повторюсь - главная идея заключается в необратимости последствий для игрока. Чтобы ни одну часть игры, нельзя было переиграть, зная, что тебя ждет впереди.