mirror of
https://github.com/libretro/scummvm.git
synced 2025-03-04 17:29:11 +00:00
SLUDGE: Move stack variable getter/setter to VariableStack
This commit is contained in:
parent
dc18ec2fd0
commit
9fb57f944d
@ -351,7 +351,7 @@ bool continueFunction(LoadedFunction *fun) {
|
||||
Variable *grab =
|
||||
(fun->stack->thisVar.varType == SVT_FASTARRAY) ?
|
||||
fun->stack->thisVar.varData.fastArray->fastArrayGetByIndex(ii) :
|
||||
stackGetByIndex(fun->stack->thisVar.varData.theStack->first, ii);
|
||||
fun->stack->thisVar.varData.theStack->first->stackGetByIndex(ii);
|
||||
|
||||
trimStack(fun->stack);
|
||||
|
||||
@ -396,9 +396,7 @@ bool continueFunction(LoadedFunction *fun) {
|
||||
int ii;
|
||||
if (!fun->reg.getValueType(ii, SVT_INT))
|
||||
return false;
|
||||
if (!stackSetByIndex(
|
||||
fun->stack->thisVar.varData.theStack->first, ii,
|
||||
fun->stack->next->thisVar)) {
|
||||
if (!fun->stack->thisVar.varData.theStack->first->stackSetByIndex(ii, fun->stack->next->thisVar)) {
|
||||
return false;
|
||||
}
|
||||
trimStack(fun->stack);
|
||||
|
@ -448,7 +448,8 @@ bool addVarToStackQuick(Variable &va, VariableStack *&thisStack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool stackSetByIndex(VariableStack *vS, uint theIndex, const Variable &va) {
|
||||
bool VariableStack::stackSetByIndex(uint theIndex, const Variable &va) {
|
||||
VariableStack *vS = this;
|
||||
while (theIndex--) {
|
||||
vS = vS->next;
|
||||
if (!vS)
|
||||
@ -457,7 +458,8 @@ bool stackSetByIndex(VariableStack *vS, uint theIndex, const Variable &va) {
|
||||
return vS->thisVar.copyFrom(va);
|
||||
}
|
||||
|
||||
Variable *stackGetByIndex(VariableStack *vS, uint theIndex) {
|
||||
Variable *VariableStack::stackGetByIndex(uint theIndex) {
|
||||
VariableStack *vS = this;
|
||||
while (theIndex--) {
|
||||
vS = vS->next;
|
||||
if (!vS) {
|
||||
|
@ -117,6 +117,10 @@ struct Variable {
|
||||
struct VariableStack {
|
||||
Variable thisVar;
|
||||
VariableStack *next;
|
||||
|
||||
// Variable getter & setter
|
||||
bool stackSetByIndex(uint, const Variable &);
|
||||
Variable *stackGetByIndex(uint);
|
||||
};
|
||||
|
||||
// Stacky stuff
|
||||
@ -129,8 +133,6 @@ int deleteVarFromStack(const Variable &va, VariableStack *&thisStack,
|
||||
VariableStack *stackFindLast(VariableStack *hunt);
|
||||
bool copyStack(const Variable &from, Variable &to);
|
||||
int stackSize(const StackHandler *me);
|
||||
bool stackSetByIndex(VariableStack *, uint, const Variable &);
|
||||
Variable *stackGetByIndex(VariableStack *, uint);
|
||||
bool getSavedGamesStack(StackHandler *sH, const Common::String &ext);
|
||||
|
||||
// load & save
|
||||
|
Loading…
x
Reference in New Issue
Block a user