public void LoadFSMVariables(Fsm fsm, string id) { if (subFsmVars == null) { subFsmVars = new Dictionary <string, Variables>(); } bool flag = false; Variables value = fsmVars; if (value.FSMID == id) { flag = true; } else if (subFsmVars.ContainsKey(id)) { value = subFsmVars[id]; flag = true; } if (!flag) { return; } FsmVariables variables = fsm.Variables; if (value.Floats != null) { for (int i = 0; i < value.Floats.Length; i++) { variables.GetFsmFloat(value.Floats[i].Name).Value = value.Floats[i].Value; } } if (value.Ints != null) { for (int i = 0; i < value.Ints.Length; i++) { variables.GetFsmInt(value.Ints[i].Name).Value = value.Ints[i].Value; } } if (value.Strings != null) { for (int i = 0; i < value.Strings.Length; i++) { variables.GetFsmString(value.Strings[i].Name).Value = value.Strings[i].Value; } } if (value.Bools != null) { for (int i = 0; i < value.Bools.Length; i++) { variables.GetFsmBool(value.Bools[i].Name).Value = value.Bools[i].Value; } } if (value.Vec2s != null) { for (int i = 0; i < value.Vec2s.Length; i++) { variables.GetFsmVector2(value.Vec2s[i].Name).Value = value.Vec2s[i].Value; } } if (value.Vec3s != null) { for (int i = 0; i < value.Vec3s.Length; i++) { variables.GetFsmVector3(value.Vec3s[i].Name).Value = value.Vec3s[i].Value; } } if (fsmVars.FSMID == id) { fsmVars = value; } else if (subFsmVars.ContainsKey(id)) { subFsmVars[id] = value; } }