Revision 119:66352054ce4d MulProvider/UMulManager.pas

b/MulProvider/UMulManager.pas
1
(*
2
 * CDDL HEADER START
3
 *
4
 * The contents of this file are subject to the terms of the
5
 * Common Development and Distribution License, Version 1.0 only
6
 * (the "License").  You may not use this file except in compliance
7
 * with the License.
8
 *
9
 * You can obtain a copy of the license at
10
 * http://www.opensource.org/licenses/cddl1.php.
11
 * See the License for the specific language governing permissions
12
 * and limitations under the License.
13
 *
14
 * When distributing Covered Code, include this CDDL HEADER in each
15
 * file and include the License file at
16
 * http://www.opensource.org/licenses/cddl1.php.  If applicable,
17
 * add the following below this CDDL HEADER, with the fields enclosed
18
 * by brackets "[]" replaced with your own identifying * information:
19
 *      Portions Copyright [yyyy] [name of copyright owner]
20
 *
21
 * CDDL HEADER END
22
 *
23
 *
24
 *      Portions Copyright 2009 Andreas Schneider
25
 *)
26
unit UMulManager;
27

  
28
interface
29

  
30
uses
31
  SysUtils, UMulProvider, UTileDataProvider, UArtProvider, UGumpProvider,
32
  UTexmapProvider, UHueProvider, URadarProvider, UAnimDataProvider;
33

  
34
type
35

  
36
  { TMulManager }
37

  
38
  TMulManager = class
39
    destructor Destroy; override;
40
  protected
41
    FArtProvider: TArtProvider;
42
    FGumpProvider: TGumpProvider;
43
    FTexmapProvider: TTexmapProvider;
44
    FTileDataProvider: TTileDataProvider;
45
    FAnimDataProvider: TAnimDataProvider;
46
    FHueProvider: THueProvider;
47
    FRadarProvider: TRadarProvider;
48
  public
49
    procedure RegisterArtProvider(AArtProvider: TArtProvider);
50
    procedure RegisterGumpProvider(AGumpProvider: TGumpProvider);
51
    procedure RegisterTexmapProvider(ATexmapProvider: TTexmapProvider);
52
    procedure RegisterTileDataProvider(ATileDataProvider: TTileDataProvider);
53
    procedure RegisterAnimDataProvider(AAnimDataProvider: TAnimDataProvider);
54
    procedure RegisterHueProvider(AHueProvider: THueProvider);
55
    procedure RegisterRadarProvider(ARadarProvider: TRadarProvider);
56
    property ArtProvider: TArtProvider read FArtProvider;
57
    property GumpProvider:  TGumpProvider read FGumpProvider;
58
    property TexmapProvider: TTexmapProvider read FTexmapProvider;
59
    property TileDataProvider: TTileDataProvider read FTileDataProvider;
60
    property AnimDataProvider: TAnimDataProvider read FAnimDataProvider;
61
    property HueProvider: THueProvider read FHueProvider;
62
    property RadarProvider: TRadarPRovider read FRadarProvider;
63
  end;
64

  
65
implementation
66

  
67
{ TMulManager }
68

  
69
destructor TMulManager.Destroy;
70
begin
71
  RegisterArtProvider(nil);
72
  RegisterGumpProvider(nil);
73
  RegisterTexmapProvider(nil);
74
  RegisterTileDataProvider(nil);
75
  RegisterHueProvider(nil);
76
  RegisterRadarProvider(nil);
77
  inherited Destroy;
78
end;
79

  
80
procedure TMulManager.RegisterArtProvider(
81
  AArtProvider: TArtProvider);
82
begin
83
  FreeAndNil(FArtProvider);
84
  FArtProvider := AArtProvider;
85
end;
86

  
87
procedure TMulManager.RegisterGumpProvider(
88
  AGumpProvider: TGumpProvider);
89
begin
90
  FreeAndNil(FGumpProvider);
91
  FGumpProvider := AGumpProvider;
92
end;
93

  
94
procedure TMulManager.RegisterHueProvider(
95
  AHueProvider: THueProvider);
96
begin
97
  FreeAndNil(FHueProvider);
98
  FHueProvider := AHueProvider;
99
end;
100

  
101
procedure TMulManager.RegisterRadarProvider(
102
  ARadarProvider: TRadarProvider);
103
begin
104
  FreeAndNil(FRadarProvider);
105
  FRadarProvider := ARadarProvider;
106
end;
107

  
108
procedure TMulManager.RegisterTexmapProvider(
109
  ATexmapProvider: TTexmapProvider);
110
begin
111
  FreeAndNil(FTexmapProvider);
112
  FTexmapProvider := ATexmapProvider;
113
end;
114

  
115
procedure TMulManager.RegisterTileDataProvider(
116
  ATileDataProvider: TTileDataProvider);
117
begin
118
  FreeAndNil(FTileDataProvider);
119
  FTileDataProvider := ATileDataProvider;
120
end;
121

  
122
procedure TMulManager.RegisterAnimDataProvider(
123
  AAnimDataProvider: TAnimDataProvider);
124
begin
125
  FreeAndNil(FAnimDataProvider);
126
  FAnimDataProvider := AAnimDataProvider;
127
end;
128

  
129
end.
1
(*
2
 * CDDL HEADER START
3
 *
4
 * The contents of this file are subject to the terms of the
5
 * Common Development and Distribution License, Version 1.0 only
6
 * (the "License").  You may not use this file except in compliance
7
 * with the License.
8
 *
9
 * You can obtain a copy of the license at
10
 * http://www.opensource.org/licenses/cddl1.php.
11
 * See the License for the specific language governing permissions
12
 * and limitations under the License.
13
 *
14
 * When distributing Covered Code, include this CDDL HEADER in each
15
 * file and include the License file at
16
 * http://www.opensource.org/licenses/cddl1.php.  If applicable,
17
 * add the following below this CDDL HEADER, with the fields enclosed
18
 * by brackets "[]" replaced with your own identifying * information:
19
 *      Portions Copyright [yyyy] [name of copyright owner]
20
 *
21
 * CDDL HEADER END
22
 *
23
 *
24
 *      Portions Copyright 2009 Andreas Schneider
25
 *)
26
unit UMulManager;
27

  
28
interface
29

  
30
uses
31
  SysUtils, UTileDataProvider, UArtProvider, UGumpProvider, UTexmapProvider,
32
  UHueProvider, URadarProvider, UAnimDataProvider;
33

  
34
type
35

  
36
  { TMulManager }
37

  
38
  TMulManager = class
39
    destructor Destroy; override;
40
  protected
41
    FArtProvider: TArtProvider;
42
    FGumpProvider: TGumpProvider;
43
    FTexmapProvider: TTexmapProvider;
44
    FTileDataProvider: TTileDataProvider;
45
    FAnimDataProvider: TAnimDataProvider;
46
    FHueProvider: THueProvider;
47
    FRadarProvider: TRadarProvider;
48
  public
49
    procedure RegisterArtProvider(AArtProvider: TArtProvider);
50
    procedure RegisterGumpProvider(AGumpProvider: TGumpProvider);
51
    procedure RegisterTexmapProvider(ATexmapProvider: TTexmapProvider);
52
    procedure RegisterTileDataProvider(ATileDataProvider: TTileDataProvider);
53
    procedure RegisterAnimDataProvider(AAnimDataProvider: TAnimDataProvider);
54
    procedure RegisterHueProvider(AHueProvider: THueProvider);
55
    procedure RegisterRadarProvider(ARadarProvider: TRadarProvider);
56
    property ArtProvider: TArtProvider read FArtProvider;
57
    property GumpProvider:  TGumpProvider read FGumpProvider;
58
    property TexmapProvider: TTexmapProvider read FTexmapProvider;
59
    property TileDataProvider: TTileDataProvider read FTileDataProvider;
60
    property AnimDataProvider: TAnimDataProvider read FAnimDataProvider;
61
    property HueProvider: THueProvider read FHueProvider;
62
    property RadarProvider: TRadarPRovider read FRadarProvider;
63
  end;
64

  
65
implementation
66

  
67
{ TMulManager }
68

  
69
destructor TMulManager.Destroy;
70
begin
71
  RegisterArtProvider(nil);
72
  RegisterGumpProvider(nil);
73
  RegisterTexmapProvider(nil);
74
  RegisterTileDataProvider(nil);
75
  RegisterHueProvider(nil);
76
  RegisterRadarProvider(nil);
77
  inherited Destroy;
78
end;
79

  
80
procedure TMulManager.RegisterArtProvider(
81
  AArtProvider: TArtProvider);
82
begin
83
  FreeAndNil(FArtProvider);
84
  FArtProvider := AArtProvider;
85
end;
86

  
87
procedure TMulManager.RegisterGumpProvider(
88
  AGumpProvider: TGumpProvider);
89
begin
90
  FreeAndNil(FGumpProvider);
91
  FGumpProvider := AGumpProvider;
92
end;
93

  
94
procedure TMulManager.RegisterHueProvider(
95
  AHueProvider: THueProvider);
96
begin
97
  FreeAndNil(FHueProvider);
98
  FHueProvider := AHueProvider;
99
end;
100

  
101
procedure TMulManager.RegisterRadarProvider(
102
  ARadarProvider: TRadarProvider);
103
begin
104
  FreeAndNil(FRadarProvider);
105
  FRadarProvider := ARadarProvider;
106
end;
107

  
108
procedure TMulManager.RegisterTexmapProvider(
109
  ATexmapProvider: TTexmapProvider);
110
begin
111
  FreeAndNil(FTexmapProvider);
112
  FTexmapProvider := ATexmapProvider;
113
end;
114

  
115
procedure TMulManager.RegisterTileDataProvider(
116
  ATileDataProvider: TTileDataProvider);
117
begin
118
  FreeAndNil(FTileDataProvider);
119
  FTileDataProvider := ATileDataProvider;
120
end;
121

  
122
procedure TMulManager.RegisterAnimDataProvider(
123
  AAnimDataProvider: TAnimDataProvider);
124
begin
125
  FreeAndNil(FAnimDataProvider);
126
  FAnimDataProvider := AAnimDataProvider;
127
end;
128

  
129
end.

Also available in: Unified diff