public void Initialize(FezSettings settings) { CurrentLevel = 0; NextLevel = 0; isLoading = false; inDoor = false; //set splits splits = new InfoList(); splits.AddRange(DefaultInfo.BaseSplits); foreach (var _setting in settings.CheckedSplits) { if (!_setting.isEnabled) { splits.Remove(splits[_setting.Name]); } } }
public bool doSplit(Process game) { data.UpdateAll(game); //check for loading byte _load = Convert.ToByte(data["TimerBool"].Current); if (_load == 0 && isLoading == false) { LoadStart?.Invoke(this, EventArgs.Empty); isLoading = true; } else if (_load == 1 && isLoading == true) { LoadEnd?.Invoke(this, EventArgs.Empty); isLoading = false; } //check for update to room byte _door = Convert.ToByte(data["DoorEnter"].Current); if (_door == 1 && inDoor == false) { NextLevel = Convert.ToInt32(data["DoorDest"].Current); inDoor = true; } else if (_door == 0 && inDoor == true) { CurrentLevel = NextLevel; inDoor = false; } //check for splits foreach (var _split in splits) { int count = 0; foreach (var _trigger in _split.Triggers) { if (_trigger.Key == "CurrentLevel") { if (CurrentLevel == _trigger.Value) { count++; } } else if (_trigger.Key == "NextLevel") { if (NextLevel == _trigger.Value) { count++; } } else { int _int = Convert.ToInt32(data[_trigger.Key].Current); if (_int == _trigger.Value) { count++; } } } if (count == _split.Triggers.Count) { splits.Remove(_split); return(true); } } return(false); }