close Warning: Can't synchronize with repository "(default)" (No changeset 184 in the repository). Look in the Trac log for more information.

Changeset 68 for trunk/UCore.pas


Ignore:
Timestamp:
Sep 28, 2014, 2:36:03 PM (10 years ago)
Author:
chronos
Message:
  • Added: Option to change animation speed.
  • Fixed: Shifted view during computer turn.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/UCore.pas

    r65 r68  
    4848      CountRepeat: Integer; Update: Boolean; var Confirm: Boolean);
    4949    procedure DoOnWin(Player: TPlayer);
     50    procedure Delay(Time: Integer);
    5051  public
    5152    Game: TGame;
     
    5354    DevelMode: Boolean;
    5455    LastMapFileName: string;
    55     View: TView;
     56    AnimationSpeed: Integer;
    5657    procedure UpdateActions;
    5758    procedure Init;
     
    106107end;
    107108
     109procedure TCore.Delay(Time: Integer);
     110var
     111  I: Integer;
     112const
     113  Slice = 50; // ms
     114begin
     115  while Time > 0 do begin
     116    Application.ProcessMessages;
     117    if Time > Slice then Sleep(Slice) else Sleep(Time);
     118    Dec(Time, Slice);
     119  end;
     120end;
     121
    108122procedure TCore.UpdateActions;
    109123begin
     
    146160      Computer.Free;
    147161      FormMain.Redraw;
    148       for I := 0 to 10 do begin
    149         Application.ProcessMessages;
    150         Sleep(100);
    151       end;
     162      Delay(Trunc((100 - AnimationSpeed) / 100 * 2000));
    152163    end;
    153164    Game.NextTurn;
     
    232243  XMLConfig1.SetValue('LastMapFileName', LastMapFileName);
    233244  XMLConfig1.SetValue('DevelMode', DevelMode);
     245  XMLConfig1.SetValue('AnimationSpeed', AnimationSpeed);
    234246  FreeAndNil(Game);
    235247end;
     
    242254  LastMapFileName := XMLConfig1.GetValue('LastMapFileName', '');
    243255  DevelMode := XMLConfig1.GetValue('DevelMode', false);
     256  AnimationSpeed := XMLConfig1.GetValue('AnimationSpeed', 50);
    244257  CoolTranslator1.Language := CoolTranslator1.Languages.SearchByCode(XMLConfig1.GetValue('Language', ''));
    245258  for I := 0 to Game.Players.Count - 1 do
Note: See TracChangeset for help on using the changeset viewer.