//This state only sets the slot. There is a lua equivalent...it may be necessary. public override void WriteLua(TLuaState state) { //GSET is always string operand. I think that we can use slots as the right hand side of the argument? state.slots[state.regs.regD] = state.slots[state.regs.regA]; //_G[D] = A state.decompLines.Add("--GSET: " + state.slots[state.regs.regD].GetValue() + " = " + state.slots[state.regs.regA].GetValue() + "\n"); throw new System.NotImplementedException("GSET unimlpemented currently. It probably requires some lua source, but we have it commented out at the moment."); }
//This state only sets the slot. There is a lua equivalent, but it is unnecessary i think... public override void WriteLua(TLuaState state) { #region op //state.slots[state.regs.regA] = state._U[state.regs.regD]; #endregion return; }
protected bool backToBeginState = true; //whether or not child classes return to BeginState. //Child constructors act as sort of the things to do in the background AFTER the lua has been written such as setting slots. public BaseState(TLuaState state) { WriteLua(state); if (backToBeginState) { new BeginState(state); } }
public GTSetState(TLuaState state) : base(state) { }
//This state only sets the slot. There is a lua equivalent...it may be necessary. public override void WriteLua(TLuaState state) { //GGET is always a string operand. state.slots[state.regs.regA] = state.string_G[state.regs.regD]; //slot A = _G[D] state.decompLines.Add("--GGET: " + state.CheckGetVarName(state.regs.regA).Item2 + " = " + state.string_G[state.regs.regD].GetValue() + "\n"); }
public GetUVState(TLuaState state) : base(state) { }
public abstract void WriteLua(TLuaState state); //write the necessary lua. Runs first.
public override void WriteLua(TLuaState state) { //throw new System.NotImplementedException(); }
public TableGetState(TLuaState state) : base(state) { }