source: trunk/Tile.pas

Last change on this file was 106, checked in by chronos, 16 months ago
  • Added: Optionally generated unmergeable movable tiles.
File size: 1.6 KB
Line 
1unit Tile;
2
3interface
4
5uses
6 Classes, SysUtils, Generics.Collections, RegistryEx;
7
8type
9 TTileAction = (taNone, taMove, taMerge, taAppear);
10
11 { TTile }
12
13 TTile = class
14 public
15 Index: TPoint;
16 Value: Integer;
17 NewValue: Integer;
18 NewUnmergeable: Boolean;
19 Merged: Boolean;
20 Action: TTileAction;
21 Shift: TPoint;
22 Disabled: Boolean;
23 Unmergeable: Boolean;
24 procedure Clear;
25 procedure Assign(Source: TTile);
26 procedure SaveToRegistry(Reg: TRegistryEx; RegContext: TRegistryContext);
27 procedure LoadFromRegistry(Reg: TRegistryEx; RegContext: TRegistryContext);
28 end;
29
30 TTiles = class(TObjectList<TTile>)
31 end;
32
33
34implementation
35
36{ TTile }
37
38procedure TTile.Clear;
39begin
40 Value := 0;
41 Action := taNone;
42 Disabled := False;
43 Unmergeable := False;
44end;
45
46procedure TTile.Assign(Source: TTile);
47begin
48 Index := Source.Index;
49 Value := Source.Value;
50 Merged := Source.Merged;
51 Disabled := Source.Disabled;
52 Unmergeable := Source.Unmergeable;
53end;
54
55procedure TTile.SaveToRegistry(Reg: TRegistryEx; RegContext: TRegistryContext);
56begin
57 with Reg do begin
58 CurrentContext := RegContext;
59
60 WriteInteger('Value', Value);
61 WriteBool('Disabled', Disabled);
62 WriteBool('Unmergeable', Unmergeable);
63 end;
64end;
65
66procedure TTile.LoadFromRegistry(Reg: TRegistryEx; RegContext: TRegistryContext
67 );
68begin
69 with Reg do begin
70 CurrentContext := RegContext;
71
72 Value := ReadIntegerWithDefault('Value', Value);
73 Disabled := ReadBoolWithDefault('Disabled', Disabled);
74 Unmergeable := ReadBoolWithDefault('Unmergeable', Unmergeable);
75 end;
76end;
77
78end.
79
Note: See TracBrowser for help on using the repository browser.