2009-12-08 20:22:45 +01:00
|
|
|
(*
|
|
|
|
* CDDL HEADER START
|
|
|
|
*
|
|
|
|
* The contents of this file are subject to the terms of the
|
|
|
|
* Common Development and Distribution License, Version 1.0 only
|
|
|
|
* (the "License"). You may not use this file except in compliance
|
|
|
|
* with the License.
|
|
|
|
*
|
|
|
|
* You can obtain a copy of the license at
|
|
|
|
* http://www.opensource.org/licenses/cddl1.php.
|
|
|
|
* See the License for the specific language governing permissions
|
|
|
|
* and limitations under the License.
|
|
|
|
*
|
|
|
|
* When distributing Covered Code, include this CDDL HEADER in each
|
|
|
|
* file and include the License file at
|
|
|
|
* http://www.opensource.org/licenses/cddl1.php. If applicable,
|
|
|
|
* add the following below this CDDL HEADER, with the fields enclosed
|
|
|
|
* by brackets "[]" replaced with your own identifying * information:
|
|
|
|
* Portions Copyright [yyyy] [name of copyright owner]
|
|
|
|
*
|
|
|
|
* CDDL HEADER END
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Portions Copyright 2009 Andreas Schneider
|
|
|
|
*)
|
|
|
|
unit UMulManager;
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
uses
|
|
|
|
SysUtils, UMulProvider, UTileDataProvider, UArtProvider, UGumpProvider,
|
|
|
|
UTexmapProvider, UHueProvider, URadarProvider, UAnimDataProvider;
|
|
|
|
|
|
|
|
type
|
|
|
|
|
|
|
|
{ TMulManager }
|
|
|
|
|
|
|
|
TMulManager = class
|
|
|
|
destructor Destroy; override;
|
|
|
|
protected
|
|
|
|
FArtProvider: TArtProvider;
|
|
|
|
FGumpProvider: TGumpProvider;
|
|
|
|
FTexmapProvider: TTexmapProvider;
|
|
|
|
FTileDataProvider: TTileDataProvider;
|
|
|
|
FAnimDataProvider: TAnimDataProvider;
|
|
|
|
FHueProvider: THueProvider;
|
|
|
|
FRadarProvider: TRadarProvider;
|
|
|
|
public
|
|
|
|
procedure RegisterArtProvider(AArtProvider: TArtProvider);
|
|
|
|
procedure RegisterGumpProvider(AGumpProvider: TGumpProvider);
|
|
|
|
procedure RegisterTexmapProvider(ATexmapProvider: TTexmapProvider);
|
|
|
|
procedure RegisterTileDataProvider(ATileDataProvider: TTileDataProvider);
|
|
|
|
procedure RegisterAnimDataProvider(AAnimDataProvider: TAnimDataProvider);
|
|
|
|
procedure RegisterHueProvider(AHueProvider: THueProvider);
|
|
|
|
procedure RegisterRadarProvider(ARadarProvider: TRadarProvider);
|
|
|
|
property ArtProvider: TArtProvider read FArtProvider;
|
|
|
|
property GumpProvider: TGumpProvider read FGumpProvider;
|
|
|
|
property TexmapProvider: TTexmapProvider read FTexmapProvider;
|
|
|
|
property TileDataProvider: TTileDataProvider read FTileDataProvider;
|
|
|
|
property AnimDataProvider: TAnimDataProvider read FAnimDataProvider;
|
|
|
|
property HueProvider: THueProvider read FHueProvider;
|
|
|
|
property RadarProvider: TRadarPRovider read FRadarProvider;
|
|
|
|
end;
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
|
|
{ TMulManager }
|
|
|
|
|
|
|
|
destructor TMulManager.Destroy;
|
|
|
|
begin
|
|
|
|
RegisterArtProvider(nil);
|
|
|
|
RegisterGumpProvider(nil);
|
|
|
|
RegisterTexmapProvider(nil);
|
|
|
|
RegisterTileDataProvider(nil);
|
|
|
|
RegisterHueProvider(nil);
|
|
|
|
RegisterRadarProvider(nil);
|
|
|
|
inherited Destroy;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMulManager.RegisterArtProvider(
|
|
|
|
AArtProvider: TArtProvider);
|
|
|
|
begin
|
|
|
|
FreeAndNil(FArtProvider);
|
|
|
|
FArtProvider := AArtProvider;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMulManager.RegisterGumpProvider(
|
|
|
|
AGumpProvider: TGumpProvider);
|
|
|
|
begin
|
|
|
|
FreeAndNil(FGumpProvider);
|
|
|
|
FGumpProvider := AGumpProvider;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMulManager.RegisterHueProvider(
|
|
|
|
AHueProvider: THueProvider);
|
|
|
|
begin
|
|
|
|
FreeAndNil(FHueProvider);
|
|
|
|
FHueProvider := AHueProvider;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMulManager.RegisterRadarProvider(
|
|
|
|
ARadarProvider: TRadarProvider);
|
|
|
|
begin
|
|
|
|
FreeAndNil(FRadarProvider);
|
|
|
|
FRadarProvider := ARadarProvider;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMulManager.RegisterTexmapProvider(
|
|
|
|
ATexmapProvider: TTexmapProvider);
|
|
|
|
begin
|
|
|
|
FreeAndNil(FTexmapProvider);
|
|
|
|
FTexmapProvider := ATexmapProvider;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMulManager.RegisterTileDataProvider(
|
|
|
|
ATileDataProvider: TTileDataProvider);
|
|
|
|
begin
|
|
|
|
FreeAndNil(FTileDataProvider);
|
|
|
|
FTileDataProvider := ATileDataProvider;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMulManager.RegisterAnimDataProvider(
|
|
|
|
AAnimDataProvider: TAnimDataProvider);
|
|
|
|
begin
|
|
|
|
FreeAndNil(FAnimDataProvider);
|
2009-12-08 22:17:39 +01:00
|
|
|
FAnimDataProvider := AAnimDataProvider;
|
2009-12-08 20:22:45 +01:00
|
|
|
end;
|
|
|
|
|
|
|
|
end.
|