This commit is contained in:
1 parent
3d5edaa086
commit
27cf50da27
4 files changed
+345
-12
No files matched your search
@@ -16,10 +16,15 @@ type
|
||||
FFileIOButton: TCastleButton;
|
||||
FStatusLabel, FDetailsLabel, FExportFeedbackLabel: TCastleLabel;
|
||||
FExportButton: TCastleButton;
|
||||
FTerrainReadinessButton: TCastleButton;
|
||||
FTerrainReadinessStatusLabel: TCastleLabel;
|
||||
FTerrainReadinessDetailsLabel: TCastleLabel;
|
||||
FFileIOInProgress, FExportInProgress: Boolean;
|
||||
FTerrainReadinessInProgress: Boolean;
|
||||
procedure RefreshReport;
|
||||
procedure UpdateWrapWidth;
|
||||
procedure FileIOClick(Sender: TObject);
|
||||
procedure TerrainReadinessClick(Sender: TObject);
|
||||
procedure ExportClick(Sender: TObject);
|
||||
procedure ExportComplete(const AOutcome: TDiagnosticExportOutcome);
|
||||
public
|
||||
@@ -31,7 +36,8 @@ type
|
||||
implementation
|
||||
|
||||
uses
|
||||
SysUtils, GameDiagnosticsFileIO, GameDiagnosticsReport;
|
||||
SysUtils, GameDiagnosticsFileIO, GameDiagnosticsReport,
|
||||
GameDiagnosticsTerrainReadiness;
|
||||
|
||||
const
|
||||
LayoutMargin = 16;
|
||||
@@ -72,11 +78,19 @@ begin
|
||||
FExportFeedbackLabel := TCastleLabel.Create(Self);
|
||||
FFileIOButton := TCastleButton.Create(Self);
|
||||
FExportButton := TCastleButton.Create(Self);
|
||||
FTerrainReadinessButton := TCastleButton.Create(Self);
|
||||
FTerrainReadinessStatusLabel := TCastleLabel.Create(Self);
|
||||
FTerrainReadinessDetailsLabel := TCastleLabel.Create(Self);
|
||||
|
||||
FContent.InsertFront(FExportFeedbackLabel);
|
||||
FExportButton.Caption := 'Export Report';
|
||||
FExportButton.OnClick := @ExportClick;
|
||||
FContent.InsertFront(FExportButton);
|
||||
FContent.InsertFront(FTerrainReadinessDetailsLabel);
|
||||
FContent.InsertFront(FTerrainReadinessStatusLabel);
|
||||
FTerrainReadinessButton.Caption := 'Test MAP/RXX Terrain Readiness';
|
||||
FTerrainReadinessButton.OnClick := @TerrainReadinessClick;
|
||||
FContent.InsertFront(FTerrainReadinessButton);
|
||||
FContent.InsertFront(FDetailsLabel);
|
||||
FContent.InsertFront(FStatusLabel);
|
||||
FFileIOButton.Caption := 'Test File I/O';
|
||||
@@ -94,6 +108,7 @@ begin
|
||||
WrapWidth := Width - 2 * LayoutMargin;
|
||||
if WrapWidth < 1 then WrapWidth := 1;
|
||||
FDetailsLabel.MaxWidth := WrapWidth;
|
||||
FTerrainReadinessDetailsLabel.MaxWidth := WrapWidth;
|
||||
FExportFeedbackLabel.MaxWidth := WrapWidth;
|
||||
end;
|
||||
|
||||
@@ -101,6 +116,7 @@ procedure TDiagnosticsView.RefreshReport;
|
||||
var
|
||||
State: TDiagnosticReportState;
|
||||
Stage: TDiagnosticStageId;
|
||||
TerrainStage: TTerrainReadinessDiagnosticStageId;
|
||||
Details: string;
|
||||
begin
|
||||
State := CurrentDiagnosticReport;
|
||||
@@ -132,6 +148,45 @@ begin
|
||||
if RepeatEqual.HasValue then Details := Details + LineEnding + 'repeat_equal: ' + OptionalBooleanText(RepeatEqual);
|
||||
end;
|
||||
FDetailsLabel.Caption := Details;
|
||||
|
||||
FTerrainReadinessStatusLabel.Caption := 'MAP/RXX terrain readiness: ' +
|
||||
DiagnosticStatusToken(State.TerrainReadiness.Status);
|
||||
Details := '';
|
||||
for TerrainStage := Low(TTerrainReadinessDiagnosticStageId)
|
||||
to High(TTerrainReadinessDiagnosticStageId) do
|
||||
begin
|
||||
if Details <> '' then Details := Details + LineEnding;
|
||||
Details := Details + TerrainReadinessDiagnosticStageIdToken(TerrainStage) + ': ' +
|
||||
DiagnosticStatusToken(State.TerrainReadiness.Stages[TerrainStage]);
|
||||
end;
|
||||
if State.TerrainReadiness.FailureStage.HasValue then
|
||||
Details := Details + LineEnding + 'failure_stage: ' +
|
||||
TerrainReadinessDiagnosticStageIdToken(
|
||||
State.TerrainReadiness.FailureStage.Value);
|
||||
if State.TerrainReadiness.Error.Present then
|
||||
begin
|
||||
Details := Details + LineEnding + 'error class: ' +
|
||||
OptionalStringText(State.TerrainReadiness.Error.ClassName);
|
||||
Details := Details + LineEnding + 'error message: ' +
|
||||
OptionalStringText(State.TerrainReadiness.Error.MessageText);
|
||||
end;
|
||||
with State.TerrainReadiness.Evidence do
|
||||
begin
|
||||
if RxTilesLoaded.HasValue then
|
||||
Details := Details + LineEnding + 'rx_tiles_loaded: ' +
|
||||
OptionalBooleanText(RxTilesLoaded);
|
||||
if GeneratedTransitionsReady.HasValue then
|
||||
Details := Details + LineEnding + 'generated_transitions_ready: ' +
|
||||
OptionalBooleanText(GeneratedTransitionsReady);
|
||||
if MapX.HasValue then Details := Details + LineEnding + 'map_x: ' + OptionalInt64Text(MapX);
|
||||
if MapY.HasValue then Details := Details + LineEnding + 'map_y: ' + OptionalInt64Text(MapY);
|
||||
if GameRev.HasValue then Details := Details + LineEnding + 'game_rev: ' + OptionalInt64Text(GameRev);
|
||||
if ExpectedTileCount.HasValue then
|
||||
Details := Details + LineEnding + 'expected_tile_count: ' + OptionalInt64Text(ExpectedTileCount);
|
||||
if CompletedTileCount.HasValue then
|
||||
Details := Details + LineEnding + 'completed_tile_count: ' + OptionalInt64Text(CompletedTileCount);
|
||||
end;
|
||||
FTerrainReadinessDetailsLabel.Caption := Details;
|
||||
end;
|
||||
|
||||
procedure TDiagnosticsView.Start;
|
||||
@@ -160,6 +215,20 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TDiagnosticsView.TerrainReadinessClick(Sender: TObject);
|
||||
begin
|
||||
if FTerrainReadinessInProgress then Exit;
|
||||
FTerrainReadinessInProgress := True;
|
||||
FTerrainReadinessButton.Enabled := False;
|
||||
try
|
||||
RunTerrainReadinessDiagnostic;
|
||||
RefreshReport;
|
||||
finally
|
||||
FTerrainReadinessButton.Enabled := True;
|
||||
FTerrainReadinessInProgress := False;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TDiagnosticsView.ExportClick(Sender: TObject);
|
||||
begin
|
||||
if FExportInProgress then Exit;
|
||||
|
||||
Reference in new issue
Block a user