aboutsummaryrefslogtreecommitdiffstats
path: root/src/base/USkins.pas
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/USkins.pas')
-rw-r--r--src/base/USkins.pas220
1 files changed, 0 insertions, 220 deletions
diff --git a/src/base/USkins.pas b/src/base/USkins.pas
deleted file mode 100644
index 6ef5c596..00000000
--- a/src/base/USkins.pas
+++ /dev/null
@@ -1,220 +0,0 @@
-{* UltraStar Deluxe - Karaoke Game
- *
- * UltraStar Deluxe is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; see the file COPYING. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *}
-
-unit USkins;
-
-interface
-
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
-
-{$I switches.inc}
-
-uses
- UPath;
-
-type
- TSkinTexture = record
- Name: string;
- FileName: IPath;
- end;
-
- TSkinEntry = record
- Theme: string;
- Name: string;
- Path: IPath;
- FileName: IPath;
- Creator: string; // not used yet
- end;
-
- TSkin = class
- Skin: array of TSkinEntry;
- SkinTexture: array of TSkinTexture;
- SkinPath: IPath;
- Color: integer;
- constructor Create;
- procedure LoadList;
- procedure ParseDir(Dir: IPath);
- procedure LoadHeader(FileName: IPath);
- procedure LoadSkin(Name: string);
- function GetTextureFileName(TextureName: string): IPath;
- function GetSkinNumber(Name: string): integer;
- procedure onThemeChange;
- end;
-
-var
- Skin: TSkin;
-
-implementation
-
-uses
- IniFiles,
- Classes,
- SysUtils,
- UIni,
- ULog,
- UMain,
- UPathUtils,
- UFileSystem;
-
-constructor TSkin.Create;
-begin
- inherited;
- LoadList;
-// LoadSkin('...');
-// SkinColor := Color;
-end;
-
-procedure TSkin.LoadList;
-var
- Iter: IFileIterator;
- DirInfo: TFileInfo;
-begin
- Iter := FileSystem.FileFind(SkinsPath.Append('*'), faDirectory);
- while Iter.HasNext do
- begin
- DirInfo := Iter.Next();
- if (not DirInfo.Name.Equals('.')) and (not DirInfo.Name.Equals('..')) then
- ParseDir(SkinsPath.Append(DirInfo.Name, pdAppend));
- end;
-end;
-
-procedure TSkin.ParseDir(Dir: IPath);
-var
- Iter: IFileIterator;
- IniInfo: TFileInfo;
-begin
- Iter := FileSystem.FileFind(Dir.Append('*.ini'), 0);
- while Iter.HasNext do
- begin
- IniInfo := Iter.Next;
- LoadHeader(Dir.Append(IniInfo.Name));
- end;
-end;
-
-procedure TSkin.LoadHeader(FileName: IPath);
-var
- SkinIni: TMemIniFile;
- S: integer;
-begin
- SkinIni := TMemIniFile.Create(FileName.ToNative);
-
- S := Length(Skin);
- SetLength(Skin, S+1);
-
- Skin[S].Path := FileName.GetPath;
- Skin[S].FileName := FileName.GetName;
- Skin[S].Theme := SkinIni.ReadString('Skin', 'Theme', '');
- Skin[S].Name := SkinIni.ReadString('Skin', 'Name', '');
- Skin[S].Creator := SkinIni.ReadString('Skin', 'Creator', '');
-
- SkinIni.Free;
-end;
-
-procedure TSkin.LoadSkin(Name: string);
-var
- SkinIni: TMemIniFile;
- SL: TStringList;
- T: integer;
- S: integer;
-begin
- S := GetSkinNumber(Name);
- SkinPath := Skin[S].Path;
-
- SkinIni := TMemIniFile.Create(SkinPath.Append(Skin[S].FileName).ToNative);
-
- SL := TStringList.Create;
- SkinIni.ReadSection('Textures', SL);
-
- SetLength(SkinTexture, SL.Count);
- for T := 0 to SL.Count-1 do
- begin
- SkinTexture[T].Name := SL.Strings[T];
- SkinTexture[T].FileName := Path(SkinIni.ReadString('Textures', SL.Strings[T], ''));
- end;
-
- SL.Free;
- SkinIni.Free;
-end;
-
-function TSkin.GetTextureFileName(TextureName: string): IPath;
-var
- T: integer;
-begin
- Result := PATH_NONE;
-
- for T := 0 to High(SkinTexture) do
- begin
- if (SkinTexture[T].Name = TextureName) and
- (SkinTexture[T].FileName.IsSet) then
- begin
- Result := SkinPath.Append(SkinTexture[T].FileName);
- end;
- end;
-
- if (TextureName <> '') and (Result.IsSet) then
- begin
- //Log.LogError('', '-----------------------------------------');
- //Log.LogError(TextureName+' - '+ Result, 'TSkin.GetTextureFileName');
- end;
-
-{ Result := SkinPath + 'Bar.jpg';
- if TextureName = 'Ball' then
- Result := SkinPath + 'Ball.bmp';
- if Copy(TextureName, 1, 4) = 'Gray' then
- Result := SkinPath + 'Ball.bmp';
- if Copy(TextureName, 1, 6) = 'NoteBG' then
- Result := SkinPath + 'Ball.bmp';}
-end;
-
-function TSkin.GetSkinNumber(Name: string): integer;
-var
- S: integer;
-begin
- Result := 0; // set default to the first available skin
- for S := 0 to High(Skin) do
- if Skin[S].Name = Name then
- Result := S;
-end;
-
-procedure TSkin.onThemeChange;
-var
- S: integer;
- Name: String;
-begin
- Ini.SkinNo:=0;
- SetLength(ISkin, 0);
- Name := Uppercase(ITheme[Ini.Theme]);
- for S := 0 to High(Skin) do
- if Name = Uppercase(Skin[S].Theme) then
- begin
- SetLength(ISkin, Length(ISkin)+1);
- ISkin[High(ISkin)] := Skin[S].Name;
- end;
-
-end;
-
-end.