Changeset 20


Ignore:
Timestamp:
Mar 1, 2014, 11:18:26 AM (11 years ago)
Author:
chronos
Message:
  • Added: Build modes Debug and Release in project settings.
  • Modified: Show game board only if game is in Running state.
  • Added: Keep board center during main form resize.
Location:
trunk
Files:
3 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk

    • Property svn:ignore
      •  

        old new  
        33lib
        44xtactics.res
         5xtactics.dbg
  • trunk/UFormMain.lfm

    r9 r20  
    2626    OnMouseWheelUp = PaintBox1MouseWheelUp
    2727    OnPaint = PaintBox1Paint
     28    OnResize = PaintBox1Resize
    2829  end
    2930  object MainMenu1: TMainMenu
     
    6768    object AGameEnd: TAction
    6869      Caption = 'End'
     70      OnExecute = AGameEndExecute
    6971      ShortCut = 16454
    7072    end
     
    7678    object AGameRestart: TAction
    7779      Caption = 'Restart'
     80      OnExecute = AGameRestartExecute
    7881      ShortCut = 16466
    7982    end
  • trunk/UFormMain.pas

    r19 r20  
    3434    Timer1: TTimer;
    3535    procedure AExitExecute(Sender: TObject);
     36    procedure AGameEndExecute(Sender: TObject);
    3637    procedure AGameEndTurnExecute(Sender: TObject);
    3738    procedure AGameNewExecute(Sender: TObject);
     39    procedure AGameRestartExecute(Sender: TObject);
    3840    procedure FormCreate(Sender: TObject);
    3941    procedure FormDestroy(Sender: TObject);
     
    5254    procedure PaintBox1Paint(Sender: TObject);
    5355    procedure EraseBackground(DC: HDC); override;
     56    procedure PaintBox1Resize(Sender: TObject);
    5457    procedure Timer1Timer(Sender: TObject);
    5558  private
     
    7982procedure TFormMain.PaintBox1Paint(Sender: TObject);
    8083begin
     84  if Game.Running then
    8185  with Game.CurrentPlayer do begin
    8286    View := Bounds(View.Left, View.Top, PaintBox1.Width,
     
    8892procedure TFormMain.EraseBackground(DC: HDC);
    8993begin
     94end;
     95
     96procedure TFormMain.PaintBox1Resize(Sender: TObject);
     97begin
     98  if Assigned(Game.CurrentPlayer) then
     99  with Game.CurrentPlayer do
     100    View := Bounds(View.Left + (View.Right - View.Left) div 2 - PaintBox1.Width div 2,
     101      View.Top + (View.Bottom - View.Top) div 2 - PaintBox1.Height div 2,
     102      PaintBox1.Width, PaintBox1.Height);
     103  Redraw;
    90104end;
    91105
     
    134148end;
    135149
     150procedure TFormMain.AGameEndExecute(Sender: TObject);
     151begin
     152  Game.Running := False;
     153  Redraw;
     154end;
     155
    136156procedure TFormMain.AGameEndTurnExecute(Sender: TObject);
    137157begin
     
    150170    FormNew.Save(Game);
    151171    Game.New;
     172    Game.Running := True;
    152173    Redraw;
    153174  end;
     175end;
     176
     177procedure TFormMain.AGameRestartExecute(Sender: TObject);
     178begin
     179  Game.New;
     180  Game.Running := True;
     181  Redraw;
    154182end;
    155183
  • trunk/UGame.pas

    r19 r20  
    112112    FOnMove: TMoveEvent;
    113113    FOnWin: TWinEvent;
     114    FRunning: Boolean;
    114115    procedure MoveAll(Player: TPlayer);
    115116    procedure SetMove(CellFrom, CellTo: TCell);
     117    procedure SetRunning(AValue: Boolean);
    116118  public
    117119    Players: TPlayers;
     
    121123    Moves: TObjectList; // TList<TMove>
    122124    TurnCounter: Integer;
    123     Running: Boolean;
     125
    124126    procedure ComputePlayerStats;
    125127    procedure NextTurn;
     
    127129    destructor Destroy; override;
    128130    procedure New;
     131    property Running: Boolean read FRunning write SetRunning;
    129132  published
    130133    property OnMove: TMoveEvent read FOnMove write FOnMove;
     
    343346end;
    344347
     348procedure TGame.SetRunning(AValue: Boolean);
     349begin
     350  if FRunning = AValue then Exit;
     351  if AValue then begin
     352    if Players.Count < 2 then raise Exception.Create('You need at least two players');
     353    FRunning := AValue;
     354  end else FRunning := AValue;
     355end;
     356
    345357procedure TGame.ComputePlayerStats;
    346358var
     
    454466  end;
    455467  CurrentPlayer := TPlayer(Players[0]);
    456   Running := True;
    457468end;
    458469
  • trunk/xtactics.lpi

    r15 r20  
    1212    </General>
    1313    <i18n>
    14       <EnableI18N LFM="False"/>
     14      <EnableI18N Value="True"/>
     15      <OutDir Value="Languages"/>
    1516    </i18n>
    1617    <VersionInfo>
    1718      <StringTable ProductVersion=""/>
    1819    </VersionInfo>
    19     <BuildModes Count="1">
    20       <Item1 Name="Default" Default="True"/>
     20    <BuildModes Count="2">
     21      <Item1 Name="Debug" Default="True"/>
     22      <Item2 Name="Release">
     23        <CompilerOptions>
     24          <Version Value="11"/>
     25          <Target>
     26            <Filename Value="xtactics"/>
     27          </Target>
     28          <SearchPaths>
     29            <IncludeFiles Value="$(ProjOutDir)"/>
     30            <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
     31          </SearchPaths>
     32          <Parsing>
     33            <SyntaxOptions>
     34              <SyntaxMode Value="Delphi"/>
     35              <CStyleOperator Value="False"/>
     36              <AllowLabel Value="False"/>
     37              <CPPInline Value="False"/>
     38            </SyntaxOptions>
     39          </Parsing>
     40          <CodeGeneration>
     41            <SmartLinkUnit Value="True"/>
     42            <Optimizations>
     43              <OptimizationLevel Value="3"/>
     44            </Optimizations>
     45          </CodeGeneration>
     46          <Linking>
     47            <Debugging>
     48              <GenerateDebugInfo Value="False"/>
     49            </Debugging>
     50            <LinkSmart Value="True"/>
     51            <Options>
     52              <Win32>
     53                <GraphicApplication Value="True"/>
     54              </Win32>
     55            </Options>
     56          </Linking>
     57          <Other>
     58            <CompilerMessages>
     59              <MsgFileName Value=""/>
     60            </CompilerMessages>
     61            <CompilerPath Value="$(CompPath)"/>
     62          </Other>
     63        </CompilerOptions>
     64      </Item2>
    2165    </BuildModes>
    2266    <PublishOptions>
     
    82126      <SyntaxOptions>
    83127        <SyntaxMode Value="Delphi"/>
     128        <IncludeAssertionCode Value="True"/>
    84129      </SyntaxOptions>
    85130    </Parsing>
     131    <CodeGeneration>
     132      <Checks>
     133        <IOChecks Value="True"/>
     134        <RangeChecks Value="True"/>
     135        <OverflowChecks Value="True"/>
     136        <StackChecks Value="True"/>
     137      </Checks>
     138      <VerifyObjMethodCallValidity Value="True"/>
     139    </CodeGeneration>
    86140    <Linking>
     141      <Debugging>
     142        <UseHeaptrc Value="True"/>
     143        <UseExternalDbgSyms Value="True"/>
     144      </Debugging>
    87145      <Options>
    88146        <Win32>
Note: See TracChangeset for help on using the changeset viewer.