diff --git a/src/game/Doom2DF.lpr b/src/game/Doom2DF.lpr
index 91fd3a6276cf4a7778f5322d5616a1107ea3124a..f972e59a650dd8bee91d380ec6895f26a08f16da 100644 (file)
--- a/src/game/Doom2DF.lpr
+++ b/src/game/Doom2DF.lpr
{$ENDIF}
{$HINTS OFF}
-{$IFDEF USE_SDLMIXER}
- {$IFDEF USE_FMOD}
- {$ERROR define only one of USE_SDLMIXER or USE_FMOD}
- {$ENDIF}
+{$IF DEFINED(USE_SDLMIXER)}
+ {$IF DEFINED(USE_FMOD) OR DEFINED(USE_OPENAL)}
+ {$ERROR Only one sound driver must be selected!}
+ {$ENDIF}
+{$ELSEIF DEFINED(USE_FMOD)}
+ {$IF DEFINED(USE_SDLMIXER) OR DEFINED(USE_OPENAL)}
+ {$ERROR Only one sound driver must be selected!}
+ {$ENDIF}
+{$ELSEIF DEFINED(USE_OPENAL)}
+ {$IF DEFINED(USE_SDLMIXER) OR DEFINED(USE_FMOD)}
+ {$ERROR Only one sound driver must be selected!}
+ {$ENDIF}
{$ELSE}
- {$UNDEF USE_SDLMIXER}
- {$DEFINE USE_FMOD}
+ {$ERROR Sound driver not selected. Use -DUSE_SDLMIXER or -DUSE_FMOD or -DUSE_OPENAL}
{$ENDIF}
uses
conbuf in '../shared/conbuf.pas',
geom in '../shared/geom.pas',
math,
-{$IFDEF USE_NANOGL}
- nanoGL in '../lib/nanogl/nanoGL.pas',
-{$ELSE}
- GL,
- GLExt,
-{$ENDIF}
+
+{$INCLUDE ../nogl/noGLuses.inc}
+
{$IFDEF USE_MINIUPNPC}
miniupnpc in '../lib/miniupnpc/miniupnpc.pas',
{$ENDIF}
SDL2 in '../lib/sdl2/sdl2.pas',
{$IFDEF USE_SDLMIXER}
SDL2_mixer in '../lib/sdl2/SDL2_mixer.pas',
+{$ENDIF}
+{$IFDEF USE_OPENAL}
+ AL in '../lib/openal/al.pas',
+ e_soundfile in '../engine/e_soundfile.pas',
+ e_soundfile_wav in '../engine/e_soundfile_wav.pas',
{$ENDIF}
ENet in '../lib/enet/enet.pp',
e_graphics in '../engine/e_graphics.pas',
var
f: Integer;
noct: Boolean = false;
+{$IFDEF ANDROID}
+ storage: String;
+{$ENDIF}
//tfo: Text;
begin
SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide, exOverflow, exUnderflow, exPrecision]); //k8: fuck off, that's why
{$IFDEF ANDROID}
{$I-}
e_SetSafeSlowLog(true);
- Chdir(SDL_AndroidGetExternalStoragePath());
+ if SDL_AndroidGetExternalStorageState() <> 0 then
+ begin
+ storage := SDL_AndroidGetExternalStoragePath();
+ Chdir(storage);
+ e_WriteLog('Use external storage: ' + storage, TMsgType.Notify)
+ end
+ else
+ begin
+ storage := SDL_AndroidGetInternalStoragePath();
+ Chdir(storage);
+ e_WriteLog('Use internal storage: ' + storage, TMsgType.Notify)
+ end;
if IOresult <> 0 then
begin
- Chdir(SDL_AndroidGetInternalStoragePath());
- if IOresult <> 0 then
- begin
- e_WriteLog('Fuck! Cant chdir to any game directory :(', TMsgType.Fatal);
- result := 1;
- exit;
- end;
+ SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, PChar('Invalid path'), PChar('Can''t chdir to ' + storage), nil);
+ result := 1;
+ exit
end;
+ SetEnvVar('TIMIDITY_CFG', 'timidity.cfg');
{$ENDIF ANDROID}
- for f := 1 to ParamCount do
+ f := 1;
+ while f <= ParamCount do
+ begin
+ case ParamStr(f) of
+ '--gdb': noct := true;
+ '--log': conbufDumpToStdOut := true;
+ '--safe-log': e_SetSafeSlowLog(true);
+ '--log-file':
+ if f + 1 <= ParamCount then
+ begin
+ Inc(f);
+ LogFileName := ParamStr(f)
+ end;
+ end;
+ Inc(f)
+ end;
+
+ if LogFileName = '' then
begin
- if ParamStr(f) = '--gdb' then noct := true
- else if ParamStr(f) = '--log' then conbufDumpToStdOut := true
- else if ParamStr(f) = '--safe-log' then e_SetSafeSlowLog(true);
+{$IFDEF HEADLESS}
+ LogFileName := 'Doom2DF_H.log';
+{$ELSE}
+ LogFileName := 'Doom2DF.log';
+{$ENDIF}
end;
+
if noct then
begin
Main()