Exemple #1
0
        public override string GetBody(EditorScope scope)
        {
            var op     = (VMDropOntoOperand)Operand;
            var result = new StringBuilder();

            result.Append("From slot[");
            if (op.SrcSlotMode == 1)
            {
                result.Append(scope.GetVarName(VMVariableScope.Parameters, (short)op.SrcSlotNum));
            }
            else
            {
                result.Append(op.SrcSlotNum);
            }
            result.Append("] to slot[");
            if (op.DestSlotMode == 1)
            {
                result.Append(scope.GetVarName(VMVariableScope.Parameters, (short)op.DestSlotNum));
            }
            else
            {
                result.Append(op.DestSlotNum);
            }
            result.Append("]");

            return(result.ToString());
        }
        public override string GetBody(EditorScope scope)
        {
            var op     = (VMSetMotiveChangeOperand)Operand;
            var result = new StringBuilder();

            if (op.ClearAll)
            {
                result.Append("Clear all");
            }
            else
            {
                result.Append(scope.GetVarScopeDataName(VMVariableScope.MyMotives, (short)op.Motive));
                result.Append(" += ");
                result.Append(scope.GetVarName(op.DeltaOwner, op.DeltaData));

                if (!op.Once)
                {
                    result.Append(" (per hr)");
                }

                result.Append("\r\n Stop at ");
                result.Append(scope.GetVarName(op.MaxOwner, op.MaxData));
            }

            return(result.ToString());
        }
        public override string GetBody(EditorScope scope)
        {
            var op     = (VMRandomNumberOperand)Operand;
            var result = new StringBuilder();

            result.Append(scope.GetVarName(op.DestinationScope, (short)op.DestinationData));
            result.Append(" := between 0 and ");
            result.Append(scope.GetVarName(op.RangeScope, (short)op.RangeData));

            return(result.ToString());
        }
        public override string GetBody(EditorScope scope)
        {
            var op = (VMRandomNumberOperand)Operand;
            var result = new StringBuilder();

            result.Append(scope.GetVarName(op.DestinationScope, (short)op.DestinationData));
            result.Append(" := between 0 and ");
            result.Append(scope.GetVarName(op.RangeScope, (short)op.RangeData));

            return result.ToString();
        }
Exemple #5
0
        public override string GetBody(EditorScope scope)
        {
            var op     = (VMGetDistanceToOperand)Operand;
            var result = new StringBuilder();

            result.Append("From object with ID: ");
            result.Append(scope.GetVarName(op.ObjectScope, (short)op.OScopeData));
            result.Append("\r\nto the Stack Object\r\nStore in: ");
            result.Append(scope.GetVarName(VMVariableScope.Temps, (short)op.TempNum));

            return(result.ToString());
        }
        public override string GetBody(EditorScope scope)
        {
            var op     = (VMRelationshipOperand)Operand;
            var result = new StringBuilder();

            var old = (Operand is VMOldRelationshipOperand);

            if (op.SetMode == 0)
            {
                result.Append(scope.GetVarName(op.VarScope, op.VarData));
                result.Append(" := ");
            }
            result.Append(" Relationship Var #");
            result.Append(op.RelVar);
            result.Append("\r\n of ");
            result.Append(EditorScope.Behaviour.Get <STR>((ushort)(old?170:235)).GetString((int)op.Mode));
            if (op.Mode > 1)
            {
                result.Append(" (" + scope.GetVarScopeDataName(SimAntics.Engine.Scopes.VMVariableScope.Local, op.Local) + ")");
            }

            if (op.SetMode > 0)
            {
                result.Append("\r\n ");
                result.Append((op.SetMode == 1) ? ":= " : "+= ");
                result.Append(scope.GetVarName(op.VarScope, op.VarData));
            }

            var    flagStr = new StringBuilder();
            string prepend = "";

            if (op.FailIfTooSmall)
            {
                flagStr.Append(prepend + "Fail if too small"); prepend = ",";
            }
            if (op.UseNeighbor)
            {
                flagStr.Append(prepend + "Use Neighbor"); prepend = ",";
            }
            if (op.FSONeverPersist)
            {
                flagStr.Append(prepend + "Never Persist (FSO)"); prepend = ",";
            }

            if (flagStr.Length != 0)
            {
                result.Append("\r\n(");
                result.Append(flagStr);
                result.Append(")");
            }

            return(result.ToString());
        }
        public override string GetBody(EditorScope scope)
        {
            var op = (VMGetDirectionToOperand)Operand;
            var result = new StringBuilder();

            result.Append("From object with ID: ");
            result.Append(scope.GetVarName(op.ObjectScope, (short)op.OScopeData));
            result.Append("\r\nto the Stack Object\r\nStore in: ");
            result.Append(scope.GetVarName(op.ResultOwner, (short)op.ResultData));

            return result.ToString();
        }
        public override string GetBody(EditorScope scope)
        {
            var op = (VMGetDistanceToOperand)Operand;
            var result = new StringBuilder();

            result.Append("From object with ID: ");
            result.Append(scope.GetVarName(op.ObjectScope, (short)op.OScopeData));
            result.Append("\r\nto the Stack Object\r\nStore in: ");
            result.Append(scope.GetVarName(VMVariableScope.Temps, (short)op.TempNum));

            return result.ToString();
        }
Exemple #9
0
        public override string GetBody(EditorScope scope)
        {
            var op     = (VMGetDirectionToOperand)Operand;
            var result = new StringBuilder();

            result.Append("From object with ID: ");
            result.Append(scope.GetVarName(op.ObjectScope, (short)op.OScopeData));
            result.Append("\r\nto the Stack Object\r\nStore in: ");
            result.Append(scope.GetVarName(op.ResultOwner, (short)op.ResultData));

            return(result.ToString());
        }
Exemple #10
0
        public override string GetBody(EditorScope scope)
        {
            var op     = (VMExpressionOperand)Operand;
            var result = new StringBuilder();

            result.Append(scope.GetVarName(op.LhsOwner, (short)op.LhsData));
            result.Append(" ");
            result.Append(OperatorStr[op.Operator]);
            result.Append(" ");
            result.Append(scope.GetVarName(op.RhsOwner, (short)op.RhsData));

            return(result.ToString());
        }
        public override string GetBody(EditorScope scope)
        {
            var op = (VMDropOntoOperand)Operand;
            var result = new StringBuilder();

            result.Append("From slot[");
            if (op.SrcSlotMode == 1) result.Append(scope.GetVarName(VMVariableScope.Parameters, (short)op.SrcSlotNum));
            else result.Append(op.SrcSlotNum);
            result.Append("] to slot[");
            if (op.DestSlotMode == 1) result.Append(scope.GetVarName(VMVariableScope.Parameters, (short)op.DestSlotNum));
            else result.Append(op.DestSlotNum);
            result.Append("]");

            return result.ToString();
        }
        public override string GetBody(EditorScope scope)
        {
            var op = (VMFindLocationForOperand)Operand;
            var result = new StringBuilder();

            result.Append(EditorScope.Behaviour.Get<STR>(239).GetString((int)op.Mode));

            var flagStr = new StringBuilder();
            string prepend = "";
            if (op.UseLocalAsRef) {
                flagStr.Append("Obj in ");
                flagStr.Append(scope.GetVarName(VMVariableScope.Local, op.Local));
                flagStr.Append(" as reference");
                prepend = ",\r\n";
            }
            if (op.AllowIntersection) { flagStr.Append(prepend + "Allow Intersection"); prepend = ",\r\n"; }
            if (op.UserEditableTilesOnly) { flagStr.Append(prepend + "User Editable tiles only"); prepend = ",\r\n"; }

            if (flagStr.Length != 0)
            {
                result.Append("\r\n(");
                result.Append(flagStr);
                result.Append(")");
            }
            return result.ToString();
        }
        public override string GetBody(EditorScope scope)
        {
            var op = (VMSetToNextOperand)Operand;
            var result = new StringBuilder();
            var nextObject = EditorScope.Behaviour.Get<STR>(164).GetString((int)op.SearchType);
            result.Append(nextObject);

            if (op.SearchType == VMSetToNextSearchType.ObjectOfType) {
                var obj = Content.Content.Get().WorldObjects.Get(op.GUID);

                result.Append((obj == null) ? ("0x" + Convert.ToString(op.GUID.ToString("x8"))) : obj.OBJ.ChunkLabel);
            }
            else if (op.SearchType == VMSetToNextSearchType.ObjectAdjacentToObjectInLocal) { result.Append(" "); result.Append(op.Local.ToString()); }

            var flagStr = new StringBuilder();
            if (op.TargetData != 0 || op.TargetOwner != VMVariableScope.StackObjectID) { flagStr.Append("Result in "+ scope.GetVarName(op.TargetOwner, (short)op.TargetData)); }

            if (flagStr.Length != 0)
            {
                result.Append("\r\n(");
                result.Append(flagStr);
                result.Append(")");
            }

            return result.ToString();
        }
Exemple #14
0
        public override string GetBody(EditorScope scope)
        {
            var op     = (VMFindLocationForOperand)Operand;
            var result = new StringBuilder();

            result.Append(EditorScope.Behaviour.Get <STR>(239).GetString((int)op.Mode));

            var    flagStr = new StringBuilder();
            string prepend = "";

            if (op.UseLocalAsRef)
            {
                flagStr.Append("Obj in ");
                flagStr.Append(scope.GetVarName(VMVariableScope.Local, op.Local));
                flagStr.Append(" as reference");
                prepend = ",\r\n";
            }
            if (op.PreferNonEmpty)
            {
                flagStr.Append(prepend + "Prefer non-empty"); prepend = ",\r\n";
            }
            if (op.UserEditableTilesOnly)
            {
                flagStr.Append(prepend + "User Editable tiles only"); prepend = ",\r\n";
            }

            if (flagStr.Length != 0)
            {
                result.Append("\r\n(");
                result.Append(flagStr);
                result.Append(")");
            }
            return(result.ToString());
        }
Exemple #15
0
        public override string GetBody(EditorScope scope)
        {
            var op     = (VMSnapOperand)Operand;
            var result = new StringBuilder();


            switch (op.Mode)
            {
            case VMSnapSlotScope.Global:
                var gslots = scope.GetResource <STR>(257, ScopeSource.Global);
                result.Append(gslots?.GetString(op.Index) ?? "Global slot " + op.Index);
                break;

            case VMSnapSlotScope.Literal:
                var slotNs = scope.GetResource <STR>(257, ScopeSource.Private);
                result.Append((slotNs != null && slotNs.GetString(op.Index) != null) ? slotNs.GetString(op.Index) : "Private slot " + op.Index);
                break;

            case VMSnapSlotScope.StackVariable:
                result.Append("Private slot indexed by " + scope.GetVarName(VMVariableScope.Parameters, (short)op.Index));
                break;

            case VMSnapSlotScope.BeContained:
                result.Append("Be contained in Stack Object");
                break;

            case VMSnapSlotScope.InFront:
                result.Append("In front of Stack Object");
                break;
            }

            //if (op.NoFailureTrees) result.Append("\r\n(No Failure Trees)");

            return(result.ToString());
        }
Exemple #16
0
        public override string GetBody(EditorScope scope)
        {
            var op     = (VMGotoRoutingSlotOperand)Operand;
            var result = new StringBuilder();

            switch (op.Type)
            {
            case VMSlotScope.Global:
                var gslots = scope.GetResource <STR>(257, ScopeSource.Global);
                result.Append(gslots?.GetString(op.Data) ?? ("Global slot " + op.Data));
                break;

            case VMSlotScope.Literal:
                var slotNs = scope.GetResource <STR>(257, ScopeSource.Private);
                result.Append((slotNs != null && slotNs.GetString(op.Data) != null) ? slotNs.GetString(op.Data) : "Private slot " + op.Data);
                break;

            case VMSlotScope.StackVariable:
                result.Append("Private slot indexed by " + scope.GetVarName(VMVariableScope.Parameters, (short)op.Data));
                break;
            }

            if (op.NoFailureTrees)
            {
                result.Append("\r\n(No Failure Trees)");
            }

            return(result.ToString());
        }
Exemple #17
0
        public override string GetBody(EditorScope scope)
        {
            var op         = (VMSetToNextOperand)Operand;
            var result     = new StringBuilder();
            var nextObject = EditorScope.Behaviour.Get <STR>(164).GetString((int)op.SearchType);

            result.Append(nextObject);

            if (op.SearchType == VMSetToNextSearchType.ObjectOfType)
            {
                var obj = Content.Content.Get().WorldObjects.Get(op.GUID);

                result.Append((obj == null) ? ("0x" + Convert.ToString(op.GUID.ToString("x8"))) : obj.OBJ.ChunkLabel);
            }
            else if (op.SearchType == VMSetToNextSearchType.ObjectAdjacentToObjectInLocal)
            {
                result.Append(" "); result.Append(op.Local.ToString());
            }

            var flagStr = new StringBuilder();

            if (op.TargetData != 0 || op.TargetOwner != VMVariableScope.StackObjectID)
            {
                flagStr.Append("Result in " + scope.GetVarName(op.TargetOwner, (short)op.TargetData));
            }

            if (flagStr.Length != 0)
            {
                result.Append("\r\n(");
                result.Append(flagStr);
                result.Append(")");
            }

            return(result.ToString());
        }
        public override string GetBody(EditorScope scope)
        {
            var op     = (VMBreakPointOperand)Operand;
            var result = new StringBuilder();

            result.Append("when ");
            result.Append(scope.GetVarName(op.Scope, (short)op.Data));
            result.Append(" != 0");

            return(result.ToString());
        }
        public override string GetBody(EditorScope scope)
        {
            var op = (VMBreakPointOperand)Operand;
            var result = new StringBuilder();

            result.Append("when ");
            result.Append(scope.GetVarName(op.Scope, (short)op.Data));
            result.Append(" != 0");

            return result.ToString();
        }
        public override string GetBody(EditorScope scope)
        {
            var op = (VMSetMotiveChangeOperand)Operand;
            var result = new StringBuilder();

            if (op.ClearAll) result.Append("Clear all");
            else
            {
                result.Append(scope.GetVarScopeDataName(VMVariableScope.MyMotives, (short)op.Motive));
                result.Append(" += ");
                result.Append(scope.GetVarName(op.DeltaOwner, op.DeltaData));

                if (!op.Once) result.Append(" (per hr)");

                result.Append("\r\n Stop at ");
                result.Append(scope.GetVarName(op.MaxOwner, op.MaxData));
            }

            return result.ToString();
        }
        public override string GetBody(EditorScope scope)
        {
            var op     = (VMSubRoutineOperand)Operand;
            var result = new StringBuilder();

            var paramNames = new string[4];

            for (var i = 0; i < 4; i++)
            {
                paramNames[i] = "arg" + i;
            }

            var bhav = scope.GetBHAV(PrimID);

            if (bhav != null)
            {
                //There might be param names
                var labels = scope.GetLabels(bhav.ChunkID);
                if (labels?.ParamNames != null)
                {
                    for (var i = 0; i < 4; i++)
                    {
                        if (i < labels.ParamNames.Length)
                        {
                            paramNames[i] = labels.ParamNames[i];
                        }
                    }
                }
            }

            //Add parameter names and values
            for (var i = 0; i < bhav.Args; i++)
            {
                if (i > 0)
                {
                    result.Append(", ");
                }

                result.Append(paramNames[i] + "=");

                short  argValue       = op.Arguments[i];
                string argValueString = argValue + "";

                if (argValue == -1)
                {
                    argValueString = scope.GetVarName(VMVariableScope.Temps, (short)i);
                }

                result.Append(argValueString);
            }

            return(result.ToString());
        }
        public override string GetBody(EditorScope scope)
        {
            var op = (VMRelationshipOperand)Operand;
            var result = new StringBuilder();

            var old = (Operand is VMOldRelationshipOperand);

            if (op.SetMode == 0)
            {
                result.Append(scope.GetVarName(op.VarScope, op.VarData));
                result.Append(" := ");
            }
            result.Append(" Relationship Var #");
            result.Append(op.RelVar);
            result.Append("\r\n of ");
            result.Append(EditorScope.Behaviour.Get<STR>((ushort)(old?170:235)).GetString((int)op.Mode));
            if (op.Mode>1) result.Append(" ("+scope.GetVarScopeDataName(SimAntics.Engine.Scopes.VMVariableScope.Local, op.Local)+")");

            if (op.SetMode > 0)
            {
                result.Append("\r\n ");
                result.Append((op.SetMode == 1) ? ":= " : "+= ");
                result.Append(scope.GetVarName(op.VarScope, op.VarData));
            }

            var flagStr = new StringBuilder();
            string prepend = "";
            if (op.FailIfTooSmall) { flagStr.Append(prepend + "Fail if too small"); prepend = ","; }
            if (op.UseNeighbor) { flagStr.Append(prepend + "Use Neighbor"); prepend = ","; }

            if (flagStr.Length != 0)
            {
                result.Append("\r\n(");
                result.Append(flagStr);
                result.Append(")");
            }

            return result.ToString();
        }
        public override string GetBody(EditorScope scope)
        {
            var op     = (VMTestObjectTypeOperand)Operand;
            var result = new StringBuilder();

            result.Append("Object with ID: ");
            result.Append(scope.GetVarName(op.IdOwner, (short)op.IdData));
            result.Append("\r\n has (master) type ");
            var obj = Content.GameContent.Get.WorldObjects.Get(op.GUID);

            result.Append((obj == null) ? ("0x" + Convert.ToString(op.GUID.ToString("x8"))) : obj.OBJ.ChunkLabel);

            return(result.ToString());
        }
        public override string GetBody(EditorScope scope)
        {
            var op = (VMTestObjectTypeOperand)Operand;
            var result = new StringBuilder();

            result.Append("Object with ID: ");
            result.Append(scope.GetVarName(op.IdOwner, (short)op.IdData));
            result.Append("\r\n has (master) type ");
            var obj = Content.Content.Get().WorldObjects.Get(op.GUID);

            result.Append((obj == null) ? ("0x" + Convert.ToString(op.GUID.ToString("x8"))) : obj.OBJ.ChunkLabel);

            return result.ToString();
        }
Exemple #25
0
        public override string GetBody(EditorScope scope)
        {
            var op     = (VMInventoryOperationsOperand)Operand;
            var result = new StringBuilder();

            var obj = Content.Content.Get().WorldObjects.Get(op.GUID);

            result.Append("Mode: " + op.Mode.ToString() + "\r\n");
            result.Append("Target Data: " + scope.GetVarName(op.FSOScope, op.FSOData) + "\r\n");

            if (op.GUID != 0)
            {
                result.Append("Object: ");
                result.Append((obj == null) ? ("0x" + Convert.ToString(op.GUID.ToString("x8"))) : obj.OBJ.ChunkLabel);
            }

            return(result.ToString());
        }
        public override string GetBody(EditorScope scope)
        {
            var op = (VMGotoRoutingSlotOperand)Operand;
            var result = new StringBuilder();

            switch (op.Type)
            {
                case VMSlotScope.Global:
                    var gslots = scope.GetResource<STR>(257, ScopeSource.Global);
                    result.Append(gslots.GetString(op.Data));
                    break;
                case VMSlotScope.Literal:
                    var slotNs = scope.GetResource<STR>(257, ScopeSource.Private);
                    result.Append((slotNs != null && slotNs.GetString(op.Data) != null) ? slotNs.GetString(op.Data) : "Private slot " + op.Data);
                    break;
                case VMSlotScope.StackVariable:
                    result.Append("Private slot indexed by " + scope.GetVarName(VMVariableScope.Parameters, (short)op.Data));
                    break;
            }

            if (op.NoFailureTrees) result.Append("\r\n(No Failure Trees)");

            return result.ToString();
        }
        public override string GetBody(EditorScope scope)
        {
            var op = (VMExpressionOperand)Operand;
            var result = new StringBuilder();

            result.Append(scope.GetVarName(op.LhsOwner, (short)op.LhsData));
            result.Append(" ");
            result.Append(OperatorStr[op.Operator]);
            result.Append(" ");
            result.Append(scope.GetVarName(op.RhsOwner, (short)op.RhsData));

            return result.ToString();
        }
Exemple #28
0
        public void OperandUpdated()
        {
            int value = Convert.ToInt32(OpUtils.GetOperandProperty(Operand, SourceProperty));

            ScopeLabel.Text = Scope.GetVarName((VMVariableScope)value, Convert.ToInt16(OpUtils.GetOperandProperty(Operand, DataProperty)));
        }
Exemple #29
0
        public override string GetBody(EditorScope scope)
        {
            var op = (VMSnapOperand)Operand;
            var result = new StringBuilder();

            switch (op.Mode)
            {
                case VMSnapSlotScope.Global:
                    var gslots = scope.GetResource<STR>(257, ScopeSource.Global);
                    result.Append(gslots.GetString(op.Index));
                    break;
                case VMSnapSlotScope.Literal:
                    var slotNs = scope.GetResource<STR>(257, ScopeSource.Private);
                    result.Append((slotNs != null && slotNs.GetString(op.Index) != null) ? slotNs.GetString(op.Index) : "Private slot " + op.Index);
                    break;
                case VMSnapSlotScope.StackVariable:
                    result.Append("Private slot indexed by " + scope.GetVarName(VMVariableScope.Parameters, (short)op.Index));
                    break;
                case VMSnapSlotScope.BeContained:
                    result.Append("Be contained in Stack Object");
                    break;
                case VMSnapSlotScope.InFront:
                    result.Append("In front of Stack Object");
                    break;
            }

            //if (op.NoFailureTrees) result.Append("\r\n(No Failure Trees)");

            return result.ToString();
        }