Changeset 21


Ignore:
Timestamp:
Sep 27, 2011, 11:01:18 PM (13 years ago)
Author:
george
Message:
  • Moved: Forms to subdirectory.
  • Added: Preliminary multi language support.
  • Added: New game customization form.
Location:
trunk
Files:
7 added
3 edited
4 moved

Legend:

Unmodified
Added
Removed
  • trunk/Forms/UMainForm.lfm

    r19 r21  
    9494  end
    9595  object ActionList1: TActionList
    96     left = 272
    97     top = 24
     96    left = 288
     97    top = 32
    9898    object AFullScreen: TAction
    9999      Caption = 'Fullscreen mode'
     
    124124    end
    125125  end
     126  object CoolTranslator1: TCoolTranslator
     127    POFilesFolder = 'Languages'
     128    left = 288
     129    top = 104
     130  end
    126131end
  • trunk/Forms/UMainForm.pas

    r19 r21  
    88  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
    99  ComCtrls, Menus, ActnList, UCore, UPlatform, Math, DateUtils, GraphType,
    10   UPersistentForm, UApplicationInfo;
     10  UPersistentForm, UApplicationInfo, UCoolTranslator;
    1111
    1212type
     
    2222    AFullScreen: TAction;
    2323    ActionList1: TActionList;
     24    CoolTranslator1: TCoolTranslator;
    2425    Image1: TImage;
    2526    MainMenu1: TMainMenu;
     
    6970
    7071uses
    71   UMapForm;
     72  UMapForm, UNewGameForm;
    7273
    7374{ TMainForm }
     
    186187procedure TMainForm.ANewGameExecute(Sender: TObject);
    187188begin
    188   Engine.NewGame;
     189  if NewGameForm.ShowModal = mrOk then Engine.NewGame;
    189190end;
    190191
     
    225226begin
    226227  PersistentForm.Load(Self);
     228  CoolTranslator1.Language := CoolTranslator1.Languages.SearchByCode('cs');
    227229end;
    228230
  • trunk/UCore.pas

    r19 r21  
    7676  public
    7777    Id: Integer;
     78    Enabled: Boolean;
    7879    Engine: TEngine;
    7980    Position: TPoint;
     
    8283    Name: string;
    8384    Keys: TPlayerKeys;
    84     Tanks: TListObject;
    85     Bullets: TListObject; // TList<TBullet>
     85    Tanks: TListObject; // TListObject<TTank>
     86    Bullets: TListObject; // TListObject<TBullet>
    8687    Energy: Real;
    8788    LastEnergy: Real;
     
    153154    FSystemThread: TSystemThread;
    154155    IntfImage: TLazIntfImage;
     156    ClearBackground: Boolean;
    155157    function GetPlayerCount: Integer;
    156158    procedure SetActive(const AValue: Boolean);
     
    163165    Keyboard: TKeyboard;
    164166    World: TWorld;
    165     Players: TObjectList; // <TPlayer>
     167    Players: TListObject; // TListObject<TPlayer>
    166168    Lock: TCriticalSection;
    167169    constructor Create;
     
    900902    BytePerPixel := RawImage.Description.BitsPerPixel div 8;
    901903    BytePerRow := RawImage.Description.BytesPerLine;
    902     FillChar(RawImage.Data^, Bitmap.Height * BytePerRow, 0);
     904    if ClearBackground then begin
     905      FillChar(RawImage.Data^, Bitmap.Height * BytePerRow, 0);
     906      ClearBackground := False;
     907    end;
    903908
    904909    if (FBitmap.Width / FBitmapLower.Width) < (FBitmap.Height / FBitmapLower.Height) then
     
    983988    end;
    984989  end;
     990  ClearBackground := True;
    985991  Redraw;
    986992end;
     
    992998  FBitmapLock := TCriticalSection.Create;
    993999  IntfImage := TLazIntfImage.Create(1, 1);
    994   Players := TObjectList.Create;
     1000  Players := TListObject.Create;
    9951001  Keyboard := TKeyboard.Create;
    9961002  World := TWorld.Create;
  • trunk/tunneler.lpi

    r19 r21  
    1111    </General>
    1212    <i18n>
    13       <EnableI18N LFM="False"/>
     13      <EnableI18N Value="True"/>
     14      <OutDir Value="Languages"/>
    1415    </i18n>
    1516    <VersionInfo>
     
    3031      </local>
    3132    </RunParams>
    32     <RequiredPackages Count="3">
     33    <RequiredPackages Count="4">
    3334      <Item1>
     35        <PackageName Value="CoolTranslator"/>
     36      </Item1>
     37      <Item2>
    3438        <PackageName Value="LCLBase"/>
    3539        <MinVersion Major="1" Release="1" Valid="True"/>
    36       </Item1>
    37       <Item2>
    38         <PackageName Value="TemplateGenerics"/>
    3940      </Item2>
    4041      <Item3>
     42        <PackageName Value="TemplateGenerics"/>
     43      </Item3>
     44      <Item4>
    4145        <PackageName Value="LCL"/>
    42       </Item3>
     46      </Item4>
    4347    </RequiredPackages>
    44     <Units Count="60">
     48    <Units Count="64">
    4549      <Unit0>
    4650        <Filename Value="tunneler.lpr"/>
    4751        <IsPartOfProject Value="True"/>
    4852        <UnitName Value="tunneler"/>
    49         <WindowIndex Value="0"/>
    50         <TopLine Value="1"/>
    51         <CursorPos X="15" Y="4"/>
    52         <UsageCount Value="92"/>
     53        <EditorIndex Value="3"/>
     54        <WindowIndex Value="0"/>
     55        <TopLine Value="1"/>
     56        <CursorPos X="61" Y="10"/>
     57        <UsageCount Value="93"/>
     58        <Loaded Value="True"/>
    5359      </Unit0>
    5460      <Unit1>
    5561        <Filename Value="UMainForm.pas"/>
    56         <IsPartOfProject Value="True"/>
    5762        <ComponentName Value="MainForm"/>
    5863        <ResourceBaseClass Value="Form"/>
    5964        <UnitName Value="UMainForm"/>
    60         <EditorIndex Value="9"/>
    61         <WindowIndex Value="0"/>
    62         <TopLine Value="75"/>
    63         <CursorPos X="28" Y="91"/>
    64         <UsageCount Value="92"/>
    65         <Loaded Value="True"/>
    66         <LoadedDesigner Value="True"/>
     65        <WindowIndex Value="0"/>
     66        <TopLine Value="203"/>
     67        <CursorPos X="68" Y="209"/>
     68        <UsageCount Value="93"/>
    6769      </Unit1>
    6870      <Unit2>
     
    7072        <IsPartOfProject Value="True"/>
    7173        <UnitName Value="UCore"/>
    72         <IsVisibleTab Value="True"/>
    7374        <EditorIndex Value="0"/>
    7475        <WindowIndex Value="0"/>
    75         <TopLine Value="879"/>
    76         <CursorPos X="5" Y="902"/>
    77         <UsageCount Value="92"/>
     76        <TopLine Value="77"/>
     77        <CursorPos X="20" Y="86"/>
     78        <UsageCount Value="93"/>
    7879        <Loaded Value="True"/>
    7980      </Unit2>
     
    141142      <Unit11>
    142143        <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericMatrix.inc"/>
    143         <EditorIndex Value="4"/>
     144        <EditorIndex Value="8"/>
    144145        <WindowIndex Value="0"/>
    145146        <TopLine Value="154"/>
     
    259260      <Unit27>
    260261        <Filename Value="UMapForm.pas"/>
    261         <IsPartOfProject Value="True"/>
    262262        <ComponentName Value="MapForm"/>
    263263        <ResourceBaseClass Value="Form"/>
    264264        <UnitName Value="UMapForm"/>
    265         <EditorIndex Value="8"/>
    266         <WindowIndex Value="0"/>
    267         <TopLine Value="6"/>
    268         <CursorPos X="20" Y="39"/>
    269         <UsageCount Value="71"/>
    270         <Loaded Value="True"/>
     265        <WindowIndex Value="0"/>
     266        <TopLine Value="15"/>
     267        <CursorPos X="39" Y="45"/>
     268        <UsageCount Value="72"/>
    271269      </Unit27>
    272270      <Unit28>
     
    331329      <Unit36>
    332330        <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Generic/GenericBitmap.inc"/>
    333         <EditorIndex Value="3"/>
     331        <EditorIndex Value="7"/>
    334332        <WindowIndex Value="0"/>
    335333        <TopLine Value="1"/>
     
    341339        <Filename Value="../../PascalClassLibrary/Generics/TemplateGenerics/Specialized/SpecializedBitmap.pas"/>
    342340        <UnitName Value="SpecializedBitmap"/>
    343         <EditorIndex Value="2"/>
     341        <EditorIndex Value="6"/>
    344342        <WindowIndex Value="0"/>
    345343        <TopLine Value="47"/>
     
    398396        <IsPartOfProject Value="True"/>
    399397        <UnitName Value="UPlatform"/>
    400         <UsageCount Value="51"/>
     398        <UsageCount Value="52"/>
    401399      </Unit44>
    402400      <Unit45>
     
    443441        <IsPartOfProject Value="True"/>
    444442        <UnitName Value="URectangle"/>
    445         <EditorIndex Value="7"/>
     443        <EditorIndex Value="11"/>
    446444        <WindowIndex Value="0"/>
    447445        <TopLine Value="120"/>
    448446        <CursorPos X="44" Y="150"/>
    449         <UsageCount Value="36"/>
     447        <UsageCount Value="37"/>
    450448        <Loaded Value="True"/>
    451449      </Unit50>
     
    469467        <IsPartOfProject Value="True"/>
    470468        <UnitName Value="UPersistentForm"/>
    471         <EditorIndex Value="5"/>
     469        <EditorIndex Value="9"/>
    472470        <WindowIndex Value="0"/>
    473471        <TopLine Value="69"/>
    474472        <CursorPos X="3" Y="90"/>
    475         <UsageCount Value="29"/>
     473        <UsageCount Value="30"/>
    476474        <Loaded Value="True"/>
    477475      </Unit53>
     
    480478        <IsPartOfProject Value="True"/>
    481479        <UnitName Value="UApplicationInfo"/>
    482         <EditorIndex Value="6"/>
     480        <EditorIndex Value="10"/>
    483481        <WindowIndex Value="0"/>
    484482        <TopLine Value="1"/>
    485483        <CursorPos X="70" Y="42"/>
    486         <UsageCount Value="29"/>
     484        <UsageCount Value="30"/>
    487485        <Loaded Value="True"/>
    488486      </Unit54>
     
    491489        <IsPartOfProject Value="True"/>
    492490        <UnitName Value="URegistry"/>
    493         <UsageCount Value="28"/>
     491        <UsageCount Value="29"/>
    494492      </Unit55>
    495493      <Unit56>
     
    518516        <IsPartOfProject Value="True"/>
    519517        <UnitName Value="UThreading"/>
    520         <EditorIndex Value="1"/>
     518        <EditorIndex Value="5"/>
    521519        <WindowIndex Value="0"/>
    522520        <TopLine Value="79"/>
    523521        <CursorPos X="13" Y="95"/>
    524         <UsageCount Value="20"/>
     522        <UsageCount Value="21"/>
    525523        <Loaded Value="True"/>
    526524      </Unit59>
     525      <Unit60>
     526        <Filename Value="/usr/share/fpcsrc/2.4.2/packages/fcl-base/src/contnrs.pp"/>
     527        <UnitName Value="contnrs"/>
     528        <EditorIndex Value="4"/>
     529        <WindowIndex Value="0"/>
     530        <TopLine Value="55"/>
     531        <CursorPos X="3" Y="72"/>
     532        <UsageCount Value="10"/>
     533        <Loaded Value="True"/>
     534      </Unit60>
     535      <Unit61>
     536        <Filename Value="Forms/UNewGameForm.pas"/>
     537        <IsPartOfProject Value="True"/>
     538        <ComponentName Value="NewGameForm"/>
     539        <ResourceBaseClass Value="Form"/>
     540        <UnitName Value="UNewGameForm"/>
     541        <EditorIndex Value="1"/>
     542        <WindowIndex Value="0"/>
     543        <TopLine Value="27"/>
     544        <CursorPos X="51" Y="42"/>
     545        <UsageCount Value="21"/>
     546        <Loaded Value="True"/>
     547        <LoadedDesigner Value="True"/>
     548      </Unit61>
     549      <Unit62>
     550        <Filename Value="Forms/UMainForm.pas"/>
     551        <IsPartOfProject Value="True"/>
     552        <ComponentName Value="MainForm"/>
     553        <HasResources Value="True"/>
     554        <ResourceBaseClass Value="Form"/>
     555        <UnitName Value="UMainForm"/>
     556        <IsVisibleTab Value="True"/>
     557        <EditorIndex Value="2"/>
     558        <WindowIndex Value="0"/>
     559        <TopLine Value="204"/>
     560        <CursorPos X="74" Y="228"/>
     561        <UsageCount Value="21"/>
     562        <Loaded Value="True"/>
     563        <LoadedDesigner Value="True"/>
     564      </Unit62>
     565      <Unit63>
     566        <Filename Value="Forms/UMapForm.pas"/>
     567        <IsPartOfProject Value="True"/>
     568        <ComponentName Value="MapForm"/>
     569        <HasResources Value="True"/>
     570        <ResourceBaseClass Value="Form"/>
     571        <UnitName Value="UMapForm"/>
     572        <EditorIndex Value="12"/>
     573        <WindowIndex Value="0"/>
     574        <TopLine Value="1"/>
     575        <CursorPos X="10" Y="5"/>
     576        <UsageCount Value="21"/>
     577        <Loaded Value="True"/>
     578        <LoadedDesigner Value="True"/>
     579      </Unit63>
    527580    </Units>
    528581    <JumpHistory Count="30" HistoryIndex="29">
    529582      <Position1>
    530583        <Filename Value="UCore.pas"/>
    531         <Caret Line="970" Column="1" TopLine="946"/>
     584        <Caret Line="1006" Column="1" TopLine="987"/>
    532585      </Position1>
    533586      <Position2>
    534587        <Filename Value="UCore.pas"/>
    535         <Caret Line="973" Column="1" TopLine="946"/>
     588        <Caret Line="1007" Column="1" TopLine="987"/>
    536589      </Position2>
    537590      <Position3>
    538591        <Filename Value="UCore.pas"/>
    539         <Caret Line="930" Column="1" TopLine="924"/>
     592        <Caret Line="1008" Column="1" TopLine="987"/>
    540593      </Position3>
    541594      <Position4>
    542595        <Filename Value="UCore.pas"/>
    543         <Caret Line="931" Column="1" TopLine="924"/>
     596        <Caret Line="1009" Column="1" TopLine="987"/>
    544597      </Position4>
    545598      <Position5>
    546599        <Filename Value="UCore.pas"/>
    547         <Caret Line="932" Column="1" TopLine="924"/>
     600        <Caret Line="1010" Column="1" TopLine="987"/>
    548601      </Position5>
    549602      <Position6>
    550603        <Filename Value="UCore.pas"/>
    551         <Caret Line="933" Column="1" TopLine="924"/>
     604        <Caret Line="1011" Column="1" TopLine="987"/>
    552605      </Position6>
    553606      <Position7>
    554607        <Filename Value="UCore.pas"/>
    555         <Caret Line="934" Column="1" TopLine="924"/>
     608        <Caret Line="1012" Column="1" TopLine="987"/>
    556609      </Position7>
    557610      <Position8>
    558611        <Filename Value="UCore.pas"/>
    559         <Caret Line="933" Column="1" TopLine="924"/>
     612        <Caret Line="1068" Column="1" TopLine="1038"/>
    560613      </Position8>
    561614      <Position9>
    562615        <Filename Value="UCore.pas"/>
    563         <Caret Line="934" Column="1" TopLine="924"/>
     616        <Caret Line="170" Column="15" TopLine="153"/>
    564617      </Position9>
    565618      <Position10>
    566619        <Filename Value="UCore.pas"/>
    567         <Caret Line="933" Column="1" TopLine="924"/>
     620        <Caret Line="826" Column="1" TopLine="809"/>
    568621      </Position10>
    569622      <Position11>
    570623        <Filename Value="UCore.pas"/>
    571         <Caret Line="934" Column="1" TopLine="924"/>
     624        <Caret Line="827" Column="1" TopLine="809"/>
    572625      </Position11>
    573626      <Position12>
    574627        <Filename Value="UCore.pas"/>
    575         <Caret Line="933" Column="1" TopLine="924"/>
     628        <Caret Line="166" Column="23" TopLine="140"/>
    576629      </Position12>
    577630      <Position13>
    578         <Filename Value="UCore.pas"/>
    579         <Caret Line="934" Column="1" TopLine="924"/>
     631        <Filename Value="Forms/UNewGameForm.pas"/>
     632        <Caret Line="12" Column="31" TopLine="1"/>
    580633      </Position13>
    581634      <Position14>
    582         <Filename Value="UCore.pas"/>
    583         <Caret Line="937" Column="1" TopLine="924"/>
     635        <Filename Value="Forms/UNewGameForm.pas"/>
     636        <Caret Line="16" Column="31" TopLine="1"/>
    584637      </Position14>
    585638      <Position15>
    586         <Filename Value="UCore.pas"/>
    587         <Caret Line="939" Column="1" TopLine="924"/>
     639        <Filename Value="Forms/UNewGameForm.pas"/>
     640        <Caret Line="17" Column="31" TopLine="1"/>
    588641      </Position15>
    589642      <Position16>
    590         <Filename Value="UMainForm.pas"/>
    591         <Caret Line="123" Column="3" TopLine="121"/>
     643        <Filename Value="Forms/UNewGameForm.pas"/>
     644        <Caret Line="18" Column="31" TopLine="1"/>
    592645      </Position16>
    593646      <Position17>
    594         <Filename Value="UCore.pas"/>
    595         <Caret Line="161" Column="28" TopLine="153"/>
     647        <Filename Value="Forms/UNewGameForm.pas"/>
     648        <Caret Line="21" Column="31" TopLine="1"/>
    596649      </Position17>
    597650      <Position18>
    598         <Filename Value="UCore.pas"/>
    599         <Caret Line="939" Column="1" TopLine="906"/>
     651        <Filename Value="Forms/UNewGameForm.pas"/>
     652        <Caret Line="49" Column="28" TopLine="19"/>
    600653      </Position18>
    601654      <Position19>
    602         <Filename Value="UCore.pas"/>
    603         <Caret Line="895" Column="1" TopLine="874"/>
     655        <Filename Value="Forms/UNewGameForm.pas"/>
     656        <Caret Line="52" Column="29" TopLine="21"/>
    604657      </Position19>
    605658      <Position20>
    606         <Filename Value="UCore.pas"/>
    607         <Caret Line="175" Column="57" TopLine="151"/>
     659        <Filename Value="Forms/UNewGameForm.pas"/>
     660        <Caret Line="51" Column="30" TopLine="21"/>
    608661      </Position20>
    609662      <Position21>
    610663        <Filename Value="UCore.pas"/>
    611         <Caret Line="823" Column="39" TopLine="811"/>
     664        <Caret Line="84" Column="18" TopLine="67"/>
    612665      </Position21>
    613666      <Position22>
    614         <Filename Value="UCore.pas"/>
    615         <Caret Line="1047" Column="11" TopLine="1030"/>
     667        <Filename Value="Forms/UNewGameForm.pas"/>
     668        <Caret Line="50" Column="30" TopLine="21"/>
    616669      </Position22>
    617670      <Position23>
    618         <Filename Value="UCore.pas"/>
    619         <Caret Line="161" Column="17" TopLine="154"/>
     671        <Filename Value="Forms/UNewGameForm.pas"/>
     672        <Caret Line="42" Column="14" TopLine="28"/>
    620673      </Position23>
    621674      <Position24>
    622         <Filename Value="UCore.pas"/>
    623         <Caret Line="876" Column="21" TopLine="876"/>
     675        <Filename Value="Forms/UMainForm.pas"/>
     676        <Caret Line="5" Column="32" TopLine="1"/>
    624677      </Position24>
    625678      <Position25>
    626         <Filename Value="Common/UThreading.pas"/>
    627         <Caret Line="338" Column="1" TopLine="321"/>
     679        <Filename Value="Forms/UMainForm.pas"/>
     680        <Caret Line="72" Column="26" TopLine="56"/>
    628681      </Position25>
    629682      <Position26>
    630         <Filename Value="UCore.pas"/>
    631         <Caret Line="223" Column="42" TopLine="205"/>
     683        <Filename Value="Forms/UMainForm.pas"/>
     684        <Caret Line="189" Column="3" TopLine="187"/>
    632685      </Position26>
    633686      <Position27>
    634         <Filename Value="Common/UThreading.pas"/>
    635         <Caret Line="338" Column="10" TopLine="321"/>
     687        <Filename Value="Forms/UMainForm.pas"/>
     688        <Caret Line="235" Column="1" TopLine="204"/>
    636689      </Position27>
    637690      <Position28>
    638         <Filename Value="Common/UThreading.pas"/>
    639         <Caret Line="337" Column="3" TopLine="330"/>
     691        <Filename Value="Forms/UMainForm.pas"/>
     692        <Caret Line="202" Column="53" TopLine="187"/>
    640693      </Position28>
    641694      <Position29>
    642         <Filename Value="UCore.pas"/>
    643         <Caret Line="175" Column="53" TopLine="150"/>
     695        <Filename Value="Forms/UMainForm.pas"/>
     696        <Caret Line="50" Column="1" TopLine="33"/>
    644697      </Position29>
    645698      <Position30>
    646         <Filename Value="UCore.pas"/>
    647         <Caret Line="221" Column="3" TopLine="189"/>
     699        <Filename Value="Forms/UMainForm.pas"/>
     700        <Caret Line="181" Column="17" TopLine="171"/>
    648701      </Position30>
    649702    </JumpHistory>
     
    656709    <SearchPaths>
    657710      <IncludeFiles Value="$(ProjOutDir)"/>
    658       <OtherUnitFiles Value="Common"/>
     711      <OtherUnitFiles Value="Common;Forms"/>
    659712      <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
    660713    </SearchPaths>
     
    667720    </Linking>
    668721    <Other>
     722      <CompilerMessages>
     723        <UseMsgFile Value="True"/>
     724      </CompilerMessages>
    669725      <CompilerPath Value="$(CompPath)"/>
    670726    </Other>
    671727  </CompilerOptions>
    672728  <Debugging>
    673     <BreakPoints Count="1">
    674       <Item1>
    675         <Kind Value="bpkSource"/>
    676         <Source Value="UCore.pas"/>
    677         <Line Value="825"/>
    678       </Item1>
    679     </BreakPoints>
    680729    <Exceptions Count="3">
    681730      <Item1>
  • trunk/tunneler.lpr

    r19 r21  
    99  {$ENDIF}{$ENDIF}
    1010  Interfaces, // this includes the LCL widgetset
    11   Forms, UMainForm, UCore, TemplateGenerics, UMapForm, UPlatform,
    12   UApplicationInfo, URectangle, UPersistentForm, URegistry, UThreading
     11  Forms, UCore, TemplateGenerics, CoolTranslator, UPlatform,
     12  UApplicationInfo, URectangle, UPersistentForm, URegistry, UThreading,
     13UNewGameForm, UMainForm, UMapForm
    1314  { you can add units after this };
    1415
     
    1920  Application.CreateForm(TMainForm, MainForm);
    2021  Application.CreateForm(TMapForm, MapForm);
     22  Application.CreateForm(TNewGameForm, NewGameForm);
    2123  Application.Run;
    2224end.
Note: See TracChangeset for help on using the changeset viewer.