X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2FDoom2DF.lpr;h=9277239bbda6ce8dce35792842adea6f05382be7;hb=01f7c9f6fb35b2b193cb967c2d881ab9fc5b6bcc;hp=5f707e0d06c7d6a5bd47dd79721715d629367ab4;hpb=510ce208a83791aca610ab38198a9ebbb2ad2bfe;p=d2df-sdl.git diff --git a/src/game/Doom2DF.lpr b/src/game/Doom2DF.lpr index 5f707e0..9277239 100644 --- a/src/game/Doom2DF.lpr +++ b/src/game/Doom2DF.lpr @@ -14,7 +14,7 @@ * along with this program. If not, see . *) {$INCLUDE ../shared/a_modes.inc} -program Doom2DF; +{$IFDEF ANDROID}library{$ELSE}program{$ENDIF} Doom2DF; {$IFNDEF HEADLESS} {$IFDEF WINDOWS} {$APPTYPE GUI} @@ -22,28 +22,63 @@ program Doom2DF; {$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 +{$IFDEF ANDROID} + ctypes, +{$ENDIF} +{$IFDEF UNIX} + cthreads, +{$ENDIF} mempool in '../shared/mempool.pas', conbuf in '../shared/conbuf.pas', geom in '../shared/geom.pas', math, - GL, - GLExt, + +{$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', + {$IFDEF USE_FLUIDSYNTH} + fluidsynth in '../lib/fluidsynth/fluidsynth.pas', + e_soundfile_fluid in '../engine/e_soundfile_fluid.pas', + {$ENDIF} + {$IFDEF USE_MODPLUG} + modplug in '../lib/modplug/modplug.pas', + e_soundfile_modplug in '../engine/e_soundfile_modplug.pas', + {$ENDIF} + {$IFDEF USE_XMP} + xmp in '../lib/xmp/xmp.pas', + e_soundfile_xmp in '../engine/e_soundfile_xmp.pas', + {$ENDIF} + {$IFDEF USE_MPG123} + mpg123 in '../lib/mpg123/mpg123.pas', + e_soundfile_mp3 in '../engine/e_soundfile_mp3.pas', + {$ENDIF} {$ENDIF} ENet in '../lib/enet/enet.pp', e_graphics in '../engine/e_graphics.pas', @@ -86,7 +121,6 @@ uses g_triggers in 'g_triggers.pas', g_weapons in 'g_weapons.pas', g_window in 'g_window.pas', - g_holmes in 'g_holmes.pas', SysUtils, {$IFDEF USE_FMOD} fmod in '../lib/FMOD/fmod.pas', @@ -105,6 +139,9 @@ uses g_panel in 'g_panel.pas', g_language in 'g_language.pas', +{$IFDEF ENABLE_HOLMES} + g_holmes in 'g_holmes.pas', + sdlcarcass in '../flexui/sdlcarcass.pas', //sdlstandalone in '../flexui/sdlstandalone.pas', @@ -115,6 +152,7 @@ uses fui_style in '../flexui/fui_style.pas', fui_flexlay in '../flexui/fui_flexlay.pas', fui_ctls in '../flexui/fui_ctls.pas', +{$ENDIF} ImagingTypes, Imaging, @@ -124,18 +162,70 @@ uses {$R *.res} {$ENDIF} +{$IFDEF ANDROID} +function SDL_main(argc: CInt; argv: PPChar): CInt; cdecl; +{$ENDIF ANDROID} + 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 - for f := 1 to ParamCount do + +{$IFDEF ANDROID} +{$I-} + e_SetSafeSlowLog(true); + 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 + 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} + + f := 1; + while f <= ParamCount do 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); + 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 +{$IFDEF HEADLESS} + LogFileName := 'Doom2DF_H.log'; +{$ELSE} + LogFileName := 'Doom2DF.log'; +{$ENDIF} + end; + if noct then begin Main() @@ -166,4 +256,10 @@ begin end; end; e_DeinitLog(); + +{$IFDEF ANDROID} + result := 0; +end; // SDL_main +exports SDL_main; +{$ENDIF ANDROID} end.