From bcf55203a81aef383d0a7123996e872fa3a297dc Mon Sep 17 00:00:00 2001 From: jaybinks Date: Tue, 2 Oct 2007 04:37:08 +0000 Subject: Fixed resource compiler to work fine with linux paths. :) git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@459 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Tools/USDXResCompiler.lpr | 316 +++++++++++++++++++++++----------------------- 1 file changed, 159 insertions(+), 157 deletions(-) (limited to 'Tools/USDXResCompiler.lpr') diff --git a/Tools/USDXResCompiler.lpr b/Tools/USDXResCompiler.lpr index 6fc98efc..8e6e7921 100644 --- a/Tools/USDXResCompiler.lpr +++ b/Tools/USDXResCompiler.lpr @@ -1,157 +1,159 @@ -program USDXResCompiler; - -{$mode objfpc}{$H+} - -uses - Classes, - SysUtils, - LResources; - -var - lResourceFile : TMemoryStream; - -procedure AddFile( aResName, aResType, aFile : string ); -var - lTmpStream : TmemoryStream; -begin - if aFile[1] = '"' then - begin - aFile := copy( aFile, 2, length( aFile ) - 2 ); - end; - - if not fileexists( aFile ) then - begin - writeln( 'SKIPED' + ' ( '+aFile+' ) File not found' ); - exit; - end; - - lTmpStream := TmemoryStream.create(); - try - lTmpStream.loadfromfile( aFile ); - lTmpStream.position := 0; - - BinaryToLazarusResourceCode(lTmpStream, lResourceFile, aResName, aResType); - writeln( 'ADDED - ' + aResType + ' : ' + aResName + ' ( '+aFile+' )' ); - finally - freeandnil( lTmpStream ); - end; -end; - -procedure addresourceline( aRCLine : String ); -var - lName : String; - lType : String; - lFile : String; - lTmp , - lTmp2 : Integer; -begin - if trim( aRCLine ) = '' then - exit; - - if aRCLine[1] = '#' then - exit; - - if ( aRCLine[1] = '/' ) AND - ( aRCLine[2] = '/' ) THEN - exit; - - // find 2nd column... and put it in lTmp - lTmp := pos( ' ', aRcLine ); - lTmp2 := pos( #9, aRcLine ); - if lTmp2 < lTmp then - lTmp := lTmp2; - - // Name = Start to lTmp - lName := trim( copy( aRcLine, 1, lTmp ) ); - - // Type = lTmp to first " - lTmp2 := pos( '"', aRcLine ); - lType := trim( copy( aRcLine, lTmp, lTmp2-lTmp ) ); - - // File = " to end of line - lFile := trim( copy( aRcLine, lTmp2, maxint ) ); - -(* - writeln( aRcLine ); - writeln( lName ); - writeln( lType ); - writeln( lFile ); - writeln( '' ); -*) - AddFile( lName , lType , lFile ); - -end; - - -var - lRCFile : TStringList; - iCount : Integer; -begin - if not fileexists( paramstr(1) ) then - begin - writeln( 'MUST Specify Delphi format RC File' ); - exit; - end; - - lRCFile := TStringList.create(); - lResourceFile := TMemoryStream.create(); - try - lRCFile.loadfromfile( paramstr(1) ); - - if trim( lRCFile.text ) = '' then - exit; - - for iCount := 0 to lRCFile.count -1 do - begin - addresourceline( lRCFile[ iCount ] ); - end; - -(* - AddFile( 'Font', 'TEX', '..\Fonts\Normal\eurostar_regular.png' ); - AddFile( 'Font', 'FNT', '..\Fonts\Normal\eurostar_regular.dat' ); - - AddFile( 'FontB', 'TEX', '..\Fonts\Bold\eurostar_regular_bold.png' ); - AddFile( 'FontB', 'FNT', '..\Fonts\Bold\eurostar_regular_bold.dat' ); - - AddFile( 'FontO', 'TEX', '..\Fonts\Outline 1\Outline 1.PNG' ); - AddFile( 'FontO', 'FNT', '..\Fonts\Outline 1\Outline 1.dat' ); - - AddFile( 'FontO2', 'TEX', '..\Fonts\Outline 2\Outline 2.PNG' ); - AddFile( 'FontO2', 'FNT', '..\Fonts\Outline 2\Outline 2.dat' ); - - AddFile( 'MAINICON', 'ICON', '..\Graphics\ustar-icon_v01.ico' ); - - - AddFile( 'CRDTS_BG', 'TEX', '..\Graphics\credits_v5_bg.png' ); - AddFile( 'CRDTS_OVL', 'TEX', '..\Graphics\credits_v5_overlay.png' ); - AddFile( 'CRDTS_blindguard', 'TEX', '..\Graphics\names_blindguard.png' ); - AddFile( 'CRDTS_blindy', 'TEX', '..\Graphics\names_blindy.png' ); - AddFile( 'CRDTS_canni', 'TEX', '..\Graphics\names_canni.png' ); - AddFile( 'CRDTS_commandio', 'TEX', '..\Graphics\names_commandio.png' ); - AddFile( 'CRDTS_lazyjoker', 'TEX', '..\Graphics\names_lazyjoker.png' ); - AddFile( 'CRDTS_mog', 'TEX', '..\Graphics\names_mog.png' ); - AddFile( 'CRDTS_mota', 'TEX', '..\Graphics\names_mota.png' ); - AddFile( 'CRDTS_skillmaste', 'TEX', '..\Graphics\names_skillmaster.png' ); - AddFile( 'CRDTS_whiteshark', 'TEX', '..\Graphics\names_whiteshark.png' ); - AddFile( 'INTRO_L01', 'TEX', '..\Graphics\intro-l-01.png' ); - AddFile( 'INTRO_L02', 'TEX', '..\Graphics\intro-l-02.png' ); - AddFile( 'INTRO_L03', 'TEX', '..\Graphics\intro-l-03.png' ); - AddFile( 'INTRO_L04', 'TEX', '..\Graphics\intro-l-04.png' ); - AddFile( 'INTRO_L05', 'TEX', '..\Graphics\intro-l-05.png' ); - AddFile( 'INTRO_L06', 'TEX', '..\Graphics\intro-l-06.png' ); - AddFile( 'INTRO_L07', 'TEX', '..\Graphics\intro-l-07.png' ); - AddFile( 'INTRO_L08', 'TEX', '..\Graphics\intro-l-08.png' ); - AddFile( 'INTRO_L09', 'TEX', '..\Graphics\intro-l-09.png' ); - AddFile( 'OUTRO_BG', 'TEX', '..\Graphics\outro-bg.png' ); - AddFile( 'OUTRO_ESC', 'TEX', '..\Graphics\outro-esc.png' ); - AddFile( 'OUTRO_EXD', 'TEX', '..\Graphics\outro-exit-dark.png' ); -*) - - finally - lResourceFile.SaveToFile( 'UltraStar.lrs' ); - freeandnil( lResourceFile ); - - freeandnil( lRCFile ); - end; -end. - +program USDXResCompiler; + +{$mode objfpc}{$H+} + +uses + Classes, + SysUtils, + LResources; + +var + lResourceFile : TMemoryStream; + +procedure AddFile( aResName, aResType, aFile : string ); +var + lTmpStream : TmemoryStream; +begin + if aFile[1] = '"' then + begin + aFile := copy( aFile, 2, length( aFile ) - 2 ); + end; + + if not fileexists( aFile ) then + begin + writeln( 'SKIPED' + ' ( '+aFile+' ) File not found' ); + exit; + end; + + lTmpStream := TmemoryStream.create(); + try + lTmpStream.loadfromfile( aFile ); + lTmpStream.position := 0; + + BinaryToLazarusResourceCode(lTmpStream, lResourceFile, aResName, aResType); + writeln( 'ADDED - ' + aResType + ' : ' + aResName + ' ( '+aFile+' )' ); + finally + freeandnil( lTmpStream ); + end; +end; + +procedure addresourceline( aRCLine : String ); +var + lName : String; + lType : String; + lFile : String; + lTmp , + lTmp2 : Integer; +begin + if trim( aRCLine ) = '' then + exit; + + if aRCLine[1] = '#' then + exit; + + if ( aRCLine[1] = '/' ) AND + ( aRCLine[2] = '/' ) THEN + exit; + + // find 2nd column... and put it in lTmp + lTmp := pos( ' ', aRcLine ); + lTmp2 := pos( #9, aRcLine ); + if lTmp2 < lTmp then + lTmp := lTmp2; + + // Name = Start to lTmp + lName := trim( copy( aRcLine, 1, lTmp ) ); + + // Type = lTmp to first " + lTmp2 := pos( '"', aRcLine ); + lType := trim( copy( aRcLine, lTmp, lTmp2-lTmp ) ); + + // File = " to end of line + lFile := trim( copy( aRcLine, lTmp2, maxint ) ); + + lFile := StringReplace( lFile, '\', PathDelim ,[rfReplaceAll] ); + +(* + writeln( aRcLine ); + writeln( lName ); + writeln( lType ); + writeln( lFile ); + writeln( '' ); +*) + AddFile( lName , lType , lFile ); + +end; + + +var + lRCFile : TStringList; + iCount : Integer; +begin + if not fileexists( paramstr(1) ) then + begin + writeln( 'MUST Specify Delphi format RC File' ); + exit; + end; + + lRCFile := TStringList.create(); + lResourceFile := TMemoryStream.create(); + try + lRCFile.loadfromfile( paramstr(1) ); + + if trim( lRCFile.text ) = '' then + exit; + + for iCount := 0 to lRCFile.count -1 do + begin + addresourceline( lRCFile[ iCount ] ); + end; + +(* + AddFile( 'Font', 'TEX', '..\Fonts\Normal\eurostar_regular.png' ); + AddFile( 'Font', 'FNT', '..\Fonts\Normal\eurostar_regular.dat' ); + + AddFile( 'FontB', 'TEX', '..\Fonts\Bold\eurostar_regular_bold.png' ); + AddFile( 'FontB', 'FNT', '..\Fonts\Bold\eurostar_regular_bold.dat' ); + + AddFile( 'FontO', 'TEX', '..\Fonts\Outline 1\Outline 1.PNG' ); + AddFile( 'FontO', 'FNT', '..\Fonts\Outline 1\Outline 1.dat' ); + + AddFile( 'FontO2', 'TEX', '..\Fonts\Outline 2\Outline 2.PNG' ); + AddFile( 'FontO2', 'FNT', '..\Fonts\Outline 2\Outline 2.dat' ); + + AddFile( 'MAINICON', 'ICON', '..\Graphics\ustar-icon_v01.ico' ); + + + AddFile( 'CRDTS_BG', 'TEX', '..\Graphics\credits_v5_bg.png' ); + AddFile( 'CRDTS_OVL', 'TEX', '..\Graphics\credits_v5_overlay.png' ); + AddFile( 'CRDTS_blindguard', 'TEX', '..\Graphics\names_blindguard.png' ); + AddFile( 'CRDTS_blindy', 'TEX', '..\Graphics\names_blindy.png' ); + AddFile( 'CRDTS_canni', 'TEX', '..\Graphics\names_canni.png' ); + AddFile( 'CRDTS_commandio', 'TEX', '..\Graphics\names_commandio.png' ); + AddFile( 'CRDTS_lazyjoker', 'TEX', '..\Graphics\names_lazyjoker.png' ); + AddFile( 'CRDTS_mog', 'TEX', '..\Graphics\names_mog.png' ); + AddFile( 'CRDTS_mota', 'TEX', '..\Graphics\names_mota.png' ); + AddFile( 'CRDTS_skillmaste', 'TEX', '..\Graphics\names_skillmaster.png' ); + AddFile( 'CRDTS_whiteshark', 'TEX', '..\Graphics\names_whiteshark.png' ); + AddFile( 'INTRO_L01', 'TEX', '..\Graphics\intro-l-01.png' ); + AddFile( 'INTRO_L02', 'TEX', '..\Graphics\intro-l-02.png' ); + AddFile( 'INTRO_L03', 'TEX', '..\Graphics\intro-l-03.png' ); + AddFile( 'INTRO_L04', 'TEX', '..\Graphics\intro-l-04.png' ); + AddFile( 'INTRO_L05', 'TEX', '..\Graphics\intro-l-05.png' ); + AddFile( 'INTRO_L06', 'TEX', '..\Graphics\intro-l-06.png' ); + AddFile( 'INTRO_L07', 'TEX', '..\Graphics\intro-l-07.png' ); + AddFile( 'INTRO_L08', 'TEX', '..\Graphics\intro-l-08.png' ); + AddFile( 'INTRO_L09', 'TEX', '..\Graphics\intro-l-09.png' ); + AddFile( 'OUTRO_BG', 'TEX', '..\Graphics\outro-bg.png' ); + AddFile( 'OUTRO_ESC', 'TEX', '..\Graphics\outro-esc.png' ); + AddFile( 'OUTRO_EXD', 'TEX', '..\Graphics\outro-exit-dark.png' ); +*) + + finally + lResourceFile.SaveToFile( 'UltraStar.lrs' ); + freeandnil( lResourceFile ); + + freeandnil( lRCFile ); + end; +end. + -- cgit v1.2.3