public void OnVehicleEnterSpecVol(SpecialVolume volume, Vehicle vehicle) { int currentVolumeId = vehicle.CurrentSpecialVolume.Count == 0 ? -1 : vehicle.CurrentSpecialVolume.Peek().Id; GameConsole.WriteEvent("Enter specvol - " + vehicle.CurrentSpecialVolume.Count); if (currentVolumeId != volume.Id) { volume.Enter(vehicle); } vehicle.CurrentSpecialVolume.Push(volume); }
public void OnVehicleExitSpecVol(SpecialVolume exitedVolume, Vehicle vehicle) { SpecialVolume vol = vehicle.CurrentSpecialVolume.Pop(); SpecialVolume nextVol = vehicle.CurrentSpecialVolume.Count == 0 ? null : vehicle.CurrentSpecialVolume.Peek(); GameConsole.WriteEvent("Exit specvol - " + vehicle.CurrentSpecialVolume.Count); if (nextVol == null) { //reset exitedVolume.Reset(vehicle); exitedVolume.Exit(vehicle); } else if (nextVol.Id != vol.Id) { nextVol.Enter(vehicle); exitedVolume.Exit(vehicle); } }