Commit e91bd904ee6aa39acea675f2b0d0b721c24518cc
1 parent
282baa7e
Exists in
master
runner: fix server crash
- occuring when a consequence style set does not have gscG.
Showing
2 changed files
with
7 additions
and
3 deletions
Show diff stats
experiment_runner/units/game_actors.pas
... | ... | @@ -732,8 +732,10 @@ procedure TConsequence.PresentPoints(APlayerBox: TPlayerBox; G: TLabel); |
732 | 732 | begin |
733 | 733 | if gscG in FStyle then |
734 | 734 | G.Caption:= IntToStr(StrToInt(G.Caption) + FP.ResultAsInteger) |
735 | - else | |
736 | - APlayerBox.LabelPointsCount.Caption := IntToStr(StrToInt(APlayerBox.LabelPointsCount.Caption) + FP.ResultAsInteger); | |
735 | + | |
736 | + if (gscI in FStyle) or (gscA in FStyle) or (gscB in FStyle) then | |
737 | + if Assigned(APlayerBox) then | |
738 | + APlayerBox.LabelPointsCount.Caption := IntToStr(StrToInt(APlayerBox.LabelPointsCount.Caption) + FP.ResultAsInteger); | |
737 | 739 | end; |
738 | 740 | |
739 | 741 | function TConsequence.GetShouldPublishMessage: Boolean; // for players only | ... | ... |
experiment_runner/units/game_control.pas
... | ... | @@ -306,6 +306,7 @@ end; |
306 | 306 | function TGameControl.GetPlayerBox(AID: UTF8string): TPlayerBox; |
307 | 307 | var i : integer; |
308 | 308 | begin |
309 | + Result := nil; | |
309 | 310 | for i := 0 to FormMatrixGame.GBLastChoice.ComponentCount-1 do |
310 | 311 | if TPlayerBox(FormMatrixGame.GBLastChoice.Components[i]).ID = AID then |
311 | 312 | begin |
... | ... | @@ -536,6 +537,8 @@ begin |
536 | 537 | {$IFDEF DEBUG} |
537 | 538 | WriteLn(S); |
538 | 539 | {$ENDIF} |
540 | + // player box is ignored for group points | |
541 | + // LabelGroupCount is ignored for player points | |
539 | 542 | LConsequence.PresentPoints(GetPlayerBox(AID), FormMatrixGame.LabelGroupCount); |
540 | 543 | end; |
541 | 544 | end; |
... | ... | @@ -644,7 +647,6 @@ begin |
644 | 647 | gaPlayer:FExperiment := TExperiment.Create(FZMQActor.Owner); |
645 | 648 | gaWatcher:FExperiment := TExperiment.Create(FZMQActor.Owner); |
646 | 649 | end; |
647 | - FExperiment.State:=xsWaiting; | |
648 | 650 | FExperiment.OnEndTurn := @NextTurn; |
649 | 651 | FExperiment.OnEndCycle := @NextCycle; |
650 | 652 | FExperiment.OnEndCondition:= @NextCondition; | ... | ... |