/// <summary> /// Examine a variable and set the flags. /// </summary> public static HITResult Test(HITThread thread) { var value = thread.ReadVar(thread.ReadByte()); thread.SetFlags(value); return(HITResult.CONTINUE); }
/// <summary> /// Write a 4-byte constant to a variable. /// </summary> public static HITResult LoadL(HITThread thread) { var dest = thread.ReadByte(); var value = thread.ReadInt32(); thread.WriteVar(dest, value); thread.SetFlags(value); return(HITResult.CONTINUE); }
/// <summary> /// Compare two variables and set the flags. /// </summary> public static HITResult Cmp(HITThread thread) //same as sub, but does not set afterwards. { var dest = thread.ReadByte(); var src = thread.ReadByte(); var result = thread.ReadVar(dest) - thread.ReadVar(src); thread.SetFlags(result); return(HITResult.CONTINUE); }
/// <summary> /// Copy the contents of one variable into another. /// </summary> public static HITResult Set(HITThread thread) { var dest = thread.ReadByte(); var src = thread.ReadVar(thread.ReadByte()); thread.WriteVar(dest, src); thread.SetFlags(src); return(HITResult.CONTINUE); }
//0x10 /// <summary> /// Increment a "dest" variable by a "src" variable. /// </summary> public static HITResult Add(HITThread thread) { var dest = thread.ReadByte(); var src = thread.ReadByte(); var result = thread.ReadVar(dest) + thread.ReadVar(src); thread.WriteVar(dest, result); thread.SetFlags(result); return HITResult.CONTINUE; }
/// <summary> /// Find the lower of a "dest" variable and a "src" constant and store the result in the variable. /// </summary> public static HITResult Min(HITThread thread) { var dest = thread.ReadByte(); var src = thread.ReadInt32(); var result = Math.Min(thread.ReadVar(dest), src); thread.WriteVar(dest, result); thread.SetFlags(result); return(HITResult.CONTINUE); //unused in the sims }
/// <summary> /// Multiply a "dest" variable by a "src" variable. /// </summary> public static HITResult Mul(HITThread thread) { var dest = thread.ReadByte(); var src = thread.ReadByte(); var result = thread.ReadVar(dest) * thread.ReadVar(src); thread.WriteVar(dest, result); thread.SetFlags(result); return(HITResult.CONTINUE); }
public static HITResult GetSrcDataField(HITThread thread) { var dest = thread.ReadByte(); var srcID = thread.ReadByte(); var field = thread.ReadByte(); //looks like this reads from object vars, though gender is apparently field 0 whereas object vars start at IsInsideViewFrustrum... thread.WriteVar(dest, 0); //set it to 0 for now... thread.SetFlags(0); return(HITResult.CONTINUE); }
public static HITResult GetSrcDataField(HITThread thread) { var dest = thread.ReadByte(); var src = thread.ReadByte(); var field = thread.ReadByte(); int ObjectVar = thread.ReadVar(src); ObjectVar = thread.ReadVar(10010 + ObjectVar); thread.WriteVar(dest, ObjectVar); thread.SetFlags(ObjectVar); return(HITResult.CONTINUE); }
/// <summary> /// Generate a random number between "low" and "high" variables, inclusive, /// and store the result in the "dest" variable. /// </summary> public static HITResult Rand(HITThread thread) { var dest = thread.ReadByte(); var low = thread.ReadByte(); var high = thread.ReadByte(); var result = (new Random()).Next(high + 1 - low) + low; thread.WriteVar(dest, result); thread.SetFlags(result); return(HITResult.CONTINUE); }
/// <summary> /// Examine a variable and set the flags. /// </summary> public static HITResult Test(HITThread thread) { var value = thread.ReadVar(thread.ReadByte()); thread.SetFlags(value); return HITResult.CONTINUE; }
/// <summary> /// Copy the contents of one variable into another. /// </summary> public static HITResult Set(HITThread thread) { var dest = thread.ReadByte(); var src = thread.ReadVar(thread.ReadByte()); thread.WriteVar(dest, src); thread.SetFlags(src); return HITResult.CONTINUE; }
/// <summary> /// Generate a random number between "low" and "high" variables, inclusive, /// and store the result in the "dest" variable. /// </summary> public static HITResult Rand(HITThread thread) { var dest = thread.ReadByte(); var low = thread.ReadByte(); var high = thread.ReadByte(); var result = (new Random()).Next(high+1-low)+low; thread.WriteVar(dest, result); thread.SetFlags(result); return HITResult.CONTINUE; }
/// <summary> /// Find the lower of a "dest" variable and a "src" constant and store the result in the variable. /// </summary> public static HITResult Min(HITThread thread) { var dest = thread.ReadByte(); var src = thread.ReadInt32(); var result = Math.Min(thread.ReadVar(dest), src); thread.WriteVar(dest, result); thread.SetFlags(result); return HITResult.CONTINUE; //unused in the sims }
/// <summary> /// Write a 4-byte constant to a variable. /// </summary> public static HITResult LoadL(HITThread thread) { var dest = thread.ReadByte(); var value = thread.ReadInt32(); thread.WriteVar(dest, value); thread.SetFlags(value); return HITResult.CONTINUE; }
public static HITResult GetSrcDataField(HITThread thread) { var dest = thread.ReadByte(); var src = thread.ReadByte(); var field = thread.ReadByte(); int ObjectVar = thread.ReadVar(src); thread.WriteVar(dest, ObjectVar); thread.SetFlags(ObjectVar); return HITResult.CONTINUE; }