diff options
Diffstat (limited to 'Game/Code')
-rw-r--r-- | Game/Code/Classes/UMain.pas | 4 | ||||
-rw-r--r-- | Game/Code/Classes/UVisualizer.pas | 35 |
2 files changed, 30 insertions, 9 deletions
diff --git a/Game/Code/Classes/UMain.pas b/Game/Code/Classes/UMain.pas index 7b32857b..bbd4a5ee 100644 --- a/Game/Code/Classes/UMain.pas +++ b/Game/Code/Classes/UMain.pas @@ -92,6 +92,7 @@ var CoversPath: string;
LanguagesPath: string;
PluginPath: string;
+ VisualsPath: string;
PlayListPath: string;
UserSongPath: string = '';
@@ -1034,9 +1035,10 @@ begin initialize_path( LogPath , Platform.GetLogPath );
initialize_path( SoundPath , Platform.GetGameSharedPath + 'Sounds' + PathDelim );
initialize_path( ThemePath , Platform.GetGameSharedPath + 'Themes' + PathDelim );
- initialize_path( SkinsPath , Platform.GetGameSharedPath + 'Skins' + PathDelim );
+ initialize_path( SkinsPath , Platform.GetGameSharedPath + 'Skins' + PathDelim );
initialize_path( LanguagesPath , Platform.GetGameSharedPath + 'Languages' + PathDelim );
initialize_path( PluginPath , Platform.GetGameSharedPath + 'Plugins' + PathDelim );
+ initialize_path( VisualsPath , Platform.GetGameSharedPath + 'Visuals' + PathDelim );
initialize_path( ScreenshotsPath , Platform.GetGameUserPath + 'Screenshots' + PathDelim );
diff --git a/Game/Code/Classes/UVisualizer.pas b/Game/Code/Classes/UVisualizer.pas index 22c168a2..2f584299 100644 --- a/Game/Code/Classes/UVisualizer.pas +++ b/Game/Code/Classes/UVisualizer.pas @@ -36,6 +36,7 @@ implementation uses
UGraphic,
+ UMain,
ULog;
var
@@ -46,10 +47,15 @@ const gy = 24;
fps = 30;
texsize = 512;
- visualsDir = 'Visuals'; // TODO: move this to a place common for all visualizers
- projectMDir = visualsDir+'/projectM';
- presetsDir = projectMDir+'/presets';
- fontsDir = projectMDir+'/fonts';
+
+var
+ ProjectMPath : string;
+ presetsDir : string;
+ fontsDir : string;
+
+ // FIXME: dirty fix needed because the init method is not
+ // called yet.
+ inited: boolean;
type
TVideoPlayback_ProjectM = class( TInterfacedObject, IVideoPlayback, IVideoVisualization )
@@ -78,8 +84,8 @@ type procedure RestoreOpenGLState();
public
- constructor create();
- procedure init();
+ constructor Create();
+ procedure Init();
function GetName: String;
function Open( aFileName : string): boolean; // true if succeed
@@ -97,14 +103,22 @@ type end;
-constructor TVideoPlayback_ProjectM.create();
+constructor TVideoPlayback_ProjectM.Create();
begin
RndPCMcount := 0;
end;
-procedure TVideoPlayback_ProjectM.init();
+procedure TVideoPlayback_ProjectM.Init();
begin
+ // FIXME: dirty fix needed because the init method is not
+ // called yet.
+ inited := true;
+
+ ProjectMPath := VisualsPath + 'projectM' + PathDelim;
+ presetsDir := ProjectMPath + 'presets';
+ fontsDir := ProjectMPath + 'fonts';
+
VisualizerStarted := False;
VisualizerPaused := False;
@@ -212,6 +226,11 @@ procedure TVideoPlayback_ProjectM.VisualizerStart; var
initResult: Cardinal;
begin
+ // FIXME: dirty fix needed because the init method is not
+ // called yet.
+ if (not inited) then
+ Init();
+
VisualizerStarted := True;
pm := TProjectM.Create(gx, gy, fps, texsize, ScreenW, ScreenH,
|