1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2024-11-08 00:37:15 +01:00

Miscellaneous.

This commit is contained in:
Sandu Liviu Catalin 2021-02-23 16:36:17 +02:00
parent 6fa8a17e9d
commit 66b2af9be2
2 changed files with 36 additions and 5 deletions

View File

@ -2456,7 +2456,11 @@ void Register_Core(HSQUIRRELVM vm)
// Meta-methods
.SquirrelFunc(_SC("_typename"), &CoreStateTypename::Fn)
// Member Properties
.Prop(_SC("Value"), &CoreState::GetValue)
.Prop(_SC("Value"), &CoreState::GetState, &CoreState::SetState)
.Prop(_SC("Init"), &CoreState::GetStart)
// Member Methods
.Func(_SC("Propose"), &CoreState::SetState)
.Func(_SC("Regress"), &CoreState::Regress)
);
corens

View File

@ -849,7 +849,7 @@ struct CoreState
* Backup the current core state.
*/
CoreState()
: m_State(Core::Get().GetState())
: m_State(Core::Get().GetState()), m_Start(m_Start)
{
//...
}
@ -858,7 +858,7 @@ struct CoreState
* Backup the current core state and set the given state.
*/
explicit CoreState(int s)
: m_State(Core::Get().GetState())
: CoreState()
{
Core::Get().SetState(s);
}
@ -891,17 +891,44 @@ struct CoreState
*/
CoreState & operator = (CoreState && o) = delete;
/* --------------------------------------------------------------------------------------------
* Retrieve the initial state.
*/
SQMOD_NODISCARD int GetStart() const
{
return m_Start;
}
/* --------------------------------------------------------------------------------------------
* Retrieve the guarded state.
*/
SQMOD_NODISCARD int GetValue() const
SQMOD_NODISCARD int GetState() const
{
return m_State;
}
/* --------------------------------------------------------------------------------------------
* Modify the guarded state.
*/
CoreState & SetState(int s)
{
m_State = s;
return *this;
}
/* --------------------------------------------------------------------------------------------
* Restore the guarded state. I.e the original state value at the time of construction.
*/
CoreState & Regress()
{
m_State = m_Start;
return *this;
}
protected:
int m_State; // The core state at the time when this instance was created.
int m_State; // The core state to be applied by destructor.
int m_Start; // The core state at the time when this instance was created.
};
} // Namespace:: SqMod