OpenTTD
|
Class to backup a specific variable and restore it later. More...
#include <backup_type.hpp>
Public Member Functions | |
Backup (T &original, const char *const file, const int line) | |
Backup variable. | |
template<typename U > | |
Backup (T &original, const U &new_value, const char *const file, const int line) | |
Backup variable and switch to new value. | |
~Backup () | |
Check whether the variable was restored on object destruction. | |
bool | IsValid () const |
Checks whether the variable was already restored. | |
const T & | GetOriginalValue () const |
Returns the backupped value. | |
template<typename U > | |
void | Change (const U &new_value) |
Change the value of the variable. | |
void | Revert () |
Revert the variable to its original value, but do not mark it as restored. | |
void | Trash () |
Trash the backup. | |
void | Restore () |
Restore the variable. | |
void | Update () |
Update the backup. | |
bool | Verify () const |
Check whether the variable is currently equals the backup. |
Private Attributes | |
T & | original |
bool | valid |
T | original_value |
const char *const | file |
const int | line |
Class to backup a specific variable and restore it later.
The variable is not restored automatically, but assertions make sure it is restored. You have to call either Trash() or Restore() exactly once.
Definition at line 23 of file backup_type.hpp.
|
inline |
Backup variable.
original | Variable to backup. |
file | Filename for debug output. Use FILE_LINE macro. |
line | Linenumber for debug output. Use FILE_LINE macro. |
Definition at line 30 of file backup_type.hpp.
|
inline |
Backup variable and switch to new value.
original | Variable to backup. |
new_value | New value for variable. |
file | Filename for debug output. Use FILE_LINE macro. |
line | Linenumber for debug output. Use FILE_LINE macro. |
Definition at line 40 of file backup_type.hpp.
Change the value of the variable.
While this does not touch the backup at all, it ensures that the variable is only modified while backupped.
new_value | New value for variable. |
Definition at line 86 of file backup_type.hpp.
Referenced by ChangeOwnershipOfCompanyItems(), CompaniesGenStatistics(), CompaniesPayInterest(), DoCommandPInternal(), Game::GameLoop(), AI::GameLoop(), and Game::StartNew().
|
inline |
Returns the backupped value.
Definition at line 74 of file backup_type.hpp.
Referenced by CmdBuildIndustry().
|
inline |
Checks whether the variable was already restored.
Definition at line 65 of file backup_type.hpp.
Referenced by _GenerateWorld().
|
inline |
Trash the backup.
The variable shall not be restored anymore.
Definition at line 105 of file backup_type.hpp.
Referenced by _GenerateWorld(), DoCommandPInternal(), and Backup< T >::Restore().
|
inline |
Update the backup.
That is trash the old value and make the current value of the variable the value to be restored later.
Definition at line 124 of file backup_type.hpp.
|
inline |
Check whether the variable is currently equals the backup.
Definition at line 134 of file backup_type.hpp.
Referenced by DoCommandPInternal().