Skip to content

Commit

Permalink
Refactored the status code.
Browse files Browse the repository at this point in the history
Added all useful SRV and ship statuses.
  • Loading branch information
TheCrankLarson committed Aug 4, 2020
1 parent c988e55 commit 353b3b2
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 65 deletions.
97 changes: 41 additions & 56 deletions EDTracking/EDStatus.cs
Original file line number Diff line number Diff line change
Expand Up @@ -81,23 +81,47 @@ public string DetailedStatus()
{
StringBuilder status = new StringBuilder();

if (isFlagSet(StatusFlags.LightsOn))
if (isFlagSet(StatusFlags.In_SRV))
{
status.Append("L");
if (isFlagSet(StatusFlags.srvHighBeam))
status.Append("H");
else
// SRV only flags
if (isFlagSet(StatusFlags.LightsOn))
{
status.Append("L");
if (isFlagSet(StatusFlags.srvHighBeam))
status.Append("H");
else
status.Append("L");
}

if (isFlagSet(StatusFlags.Srv_Handbrake))
status.Append(" HB");

if (isFlagSet(StatusFlags.Srv_DriveAssist))
status.Append(" DA");
}
else if (isFlagSet(StatusFlags.In_MainShip))
{
// Ship only flags
if (isFlagSet(StatusFlags.Landing_Gear_Down))
status.Append(" LG");

if (!isFlagSet(StatusFlags.FlightAssist_Off))
status.Append(" FA");

if (isFlagSet(StatusFlags.Srv_Handbrake))
status.Append(" B");
if (isFlagSet(StatusFlags.Silent_Running))
status.Append(" SR");

if (isFlagSet(StatusFlags.Srv_DriveAssist))
status.Append(" DA");
if (isFlagSet(StatusFlags.Cargo_Scoop_Deployed))
status.Append(" C");

if (isFlagSet(StatusFlags.Being_Interdicted))
status.Append(" I");
}

// Flags that apply to all vehicles
if (isFlagSet(StatusFlags.Night_Vision_Active))
status.Append(" NV");

return status.ToString().Trim();
}

Expand All @@ -111,61 +135,22 @@ public void UpdateStatus(EDEvent updateEvent)
if (updateEvent.HasCoordinates)
Location = updateEvent.Location;

if (ShowDetailedStatus)
{
string detailedStatus = DetailedStatus();
if (detailedStatus.Equals(_lastStatus))
return;
StatusChanged?.Invoke(null, Commander, $"{this.ToString()} {detailedStatus}");
return;
}

bool statusChanged = false;

if (Eliminated)
return;

if (!isFlagSet(StatusFlags.In_SRV) && !_inPits)
{
Eliminated = true;
statusChanged = true;
}
else if (isFlagSet(StatusFlags.In_SRV))
{
if (isFlagSet(StatusFlags.Srv_UnderShip))
{
if (!_inPits)
{
_inPits = true;
statusChanged = true;
}
}
else
{
if (_inPits)
{
_inPits = false;
statusChanged = true;
}
}
}
_inPits = isFlagSet(StatusFlags.Srv_UnderShip);

if (isFlagSet(StatusFlags.Low_Fuel))
{
if (!_lowFuel)
{
_lowFuel = true;
statusChanged = true;
}
}
else if (_lowFuel)
{
_lowFuel = false;
statusChanged = true;
}
_lowFuel = isFlagSet(StatusFlags.Low_Fuel);

StringBuilder currentStatus = new StringBuilder(ToString());
if (ShowDetailedStatus)
currentStatus.Append($" {DetailedStatus()}");
if (currentStatus.Equals(_lastStatus))
return;

if (statusChanged)
StatusChanged?.Invoke(null, Commander, this.ToString());
}
}
}
2 changes: 1 addition & 1 deletion FormRaceMonitor.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 5 additions & 6 deletions FormRaceMonitor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,6 @@ private void UpdateStatus(EDEvent edEvent)
{
// Update the status table


if (_raceStarted)
{
if (!_racersStatus.ContainsKey(edEvent.Commander))
Expand All @@ -205,7 +204,6 @@ private void UpdateStatus(EDEvent edEvent)
if (_race.Route.Waypoints.Count > 0)
if (_race.Route.Waypoints[0].LocationIsWithinWaypoint(edEvent.Location))
AddTrackedCommander(edEvent.Commander);
return;
}

if (_nextWaypoint != null)
Expand Down Expand Up @@ -492,14 +490,15 @@ private void listBoxWaypoints_DrawItem(object sender, DrawItemEventArgs e)
e.DrawFocusRectangle();
}

private void checkBoxAutoAddCommanders_CheckedChanged(object sender, EventArgs e)
private void checkBoxShowDetailedStatus_CheckedChanged(object sender, EventArgs e)
{

EDStatus.ShowDetailedStatus = checkBoxShowDetailedStatus.Checked;
}

private void checkBoxShowDetailedStatus_CheckedChanged(object sender, EventArgs e)
private void comboBoxAddCommander_SelectedIndexChanged(object sender, EventArgs e)
{
EDStatus.ShowDetailedStatus = checkBoxShowDetailedStatus.Checked;
buttonAddCommander_Click(null, null);
comboBoxAddCommander.SelectedIndex = -1;
}
}

Expand Down
4 changes: 2 additions & 2 deletions FormTracker.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 353b3b2

Please sign in to comment.