X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2FDoom2DF.lpr;h=f50c895d58cae48e6a406ab4099988ff06c6e4a5;hb=3d2ad22a4edfeab661196c15d6b57fa3b3eca216;hp=41c7aaca14256e6a33ec8e3891e9b0fbd8f615e3;hpb=9e198c59ced795c654bc7b028d5aedc5f23b53dd;p=d2df-sdl.git diff --git a/src/game/Doom2DF.lpr b/src/game/Doom2DF.lpr index 41c7aac..f50c895 100644 --- a/src/game/Doom2DF.lpr +++ b/src/game/Doom2DF.lpr @@ -1,4 +1,4 @@ -(* Copyright (C) DooM 2D:Forever Developers +(* Copyright (C) Doom 2D: Forever Developers * * 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 @@ -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,34 +22,48 @@ program Doom2DF; {$ENDIF} {$HINTS OFF} -{$UNDEF XXX} {$IFDEF USE_SDLMIXER} - {$DEFINE XXX} -{$ENDIF} -{$IFDEF USE_FMOD} - {$IFDEF XXX} - {$ERROR define one of USE_SDLMIXER or USE_FMOD} - {$ELSE} - {$DEFINE XXX} + {$IFDEF USE_FMOD} + {$ERROR define only one of USE_SDLMIXER or USE_FMOD} {$ENDIF} -{$ENDIF} - -{$IFNDEF XXX} - {$ERROR define USE_SDLMIXER or USE_FMOD} +{$ELSE} + {$UNDEF USE_SDLMIXER} + {$DEFINE USE_FMOD} {$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} +{$IFDEF USE_SDL2WRAP} + SDL2 in '../wrappers/sdl2/sdl2.pas', + {$IFDEF USE_SDLMIXER} + SDL2_mixer in '../wrappers/sdl2/SDL2_mixer.pas', + {$ENDIF} +{$ELSE} SDL2 in '../lib/sdl2/sdl2.pas', -{$IFDEF USE_SDLMIXER} - SDL2_mixer in '../lib/sdl2/SDL2_mixer.pas', + {$IFDEF USE_SDLMIXER} + SDL2_mixer in '../lib/sdl2/SDL2_mixer.pas', + {$ENDIF} {$ENDIF} +{$IFDEF USE_ENETWRAP} + ENet in '../wrappers/enet/enet.pas', +{$ELSE} ENet in '../lib/enet/enet.pp', +{$ENDIF} e_graphics in '../engine/e_graphics.pas', e_input in '../engine/e_input.pas', e_log in '../engine/e_log.pas', @@ -90,7 +104,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', @@ -108,27 +121,68 @@ uses envvars in '../shared/envvars.pas', 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', + + fui_wadread in '../flexui/fui_wadread.pas', + fui_common in '../flexui/fui_common.pas', + fui_gfx_gl in '../flexui/fui_gfx_gl.pas', + fui_events in '../flexui/fui_events.pas', + fui_style in '../flexui/fui_style.pas', + fui_flexlay in '../flexui/fui_flexlay.pas', + fui_ctls in '../flexui/fui_ctls.pas', +{$ENDIF} + ImagingTypes, Imaging, - ImagingUtility, - sdlcarcass in '../gx/sdlcarcass.pas', - glgfx in '../gx/glgfx.pas', - gh_ui_common in '../gx/gh_ui_common.pas', - gh_ui_style in '../gx/gh_ui_style.pas', - gh_ui in '../gx/gh_ui.pas', - gh_flexlay in '../gx/gh_flexlay.pas'; + ImagingUtility; {$IFDEF WINDOWS} {$R *.res} - {$R CustomRes.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 + +{$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} + for f := 1 to ParamCount do begin if ParamStr(f) = '--gdb' then noct := true @@ -165,4 +219,10 @@ begin end; end; e_DeinitLog(); + +{$IFDEF ANDROID} + result := 0; +end; // SDL_main +exports SDL_main; +{$ENDIF ANDROID} end.