From 30981d1e3481050b3bca02562ec4660d276651ec Mon Sep 17 00:00:00 2001 From: Sergii Pylypenko Date: Sat, 11 Oct 2014 07:38:21 +0300 Subject: [PATCH] Added ja2-stracciatella build files --- .../application/ja2/AndroidAppSettings.cfg | 262 +++++++++ project/jni/application/ja2/AndroidBuild.sh | 8 + .../jni/application/ja2/AndroidData/ja2.zip | Bin 0 -> 98154 bytes project/jni/application/ja2/icon.png | Bin 0 -> 1299 bytes project/jni/application/ja2/ja2.patch | 516 ++++++++++++++++++ 5 files changed, 786 insertions(+) create mode 100644 project/jni/application/ja2/AndroidAppSettings.cfg create mode 100755 project/jni/application/ja2/AndroidBuild.sh create mode 100644 project/jni/application/ja2/AndroidData/ja2.zip create mode 100644 project/jni/application/ja2/icon.png create mode 100644 project/jni/application/ja2/ja2.patch diff --git a/project/jni/application/ja2/AndroidAppSettings.cfg b/project/jni/application/ja2/AndroidAppSettings.cfg new file mode 100644 index 000000000..1260f8532 --- /dev/null +++ b/project/jni/application/ja2/AndroidAppSettings.cfg @@ -0,0 +1,262 @@ +# The application settings for Android libSDL port + +# Specify application name (e.x. My Application) +AppName="JaggedAlliance2" + +# Specify reversed site name of application (e.x. com.mysite.myapp) +AppFullName=com.opensourced.ja2 + +# Application version code (integer) +AppVersionCode=2347 + +# Application user-visible version name (string) +AppVersionName="0.12.10" + +# Specify path to download application data in zip archive in the form 'Description|URL|MirrorURL^Description2|URL2|MirrorURL2^...' +# If you'll start Description with '!' symbol it will be enabled by default, other downloads should be selected by user from startup config menu +# If the URL in in the form ':dir/file.dat:http://URL/' it will be downloaded as binary BLOB to the application dir and not unzipped +# If the URL does not contain 'http://' it is treated as file from 'project/jni/application/src/AndroidData' dir - +# these files are put inside .apk package by build system +# Also please avoid 'https://' URLs, many Android devices do not have trust certificates and will fail to connect to SF.net over HTTPS +AppDataDownloadUrl="!!JaggedAllianceData|ja2.zip" + +# Reset SDL config when updating application to the new version (y) / (n) +ResetSdlConfigForThisVersion=y + +# Delete application data files when upgrading (specify file/dir paths separated by spaces) +DeleteFilesOnUpgrade="" + +# Here you may type readme text, which will be shown during startup. Format is: +# Text in English, use \\\\n to separate lines (that's four backslashes)^de:Text in Deutsch^ru:Text in Russian^button:Button that will open some URL:http://url-to-open/ +ReadmeText='' + +# libSDL version to use (1.2/1.3/2.0) +LibSdlVersion=1.2 + +# Specify screen orientation: (v)ertical/(p)ortrait or (h)orizontal/(l)andscape +ScreenOrientation=h + +# Video color depth - 16 BPP is the fastest and supported for all modes, 24 bpp is supported only +# with SwVideoMode=y, SDL_OPENGL mode supports everything. (16)/(24)/(32) +VideoDepthBpp=16 + +# Enable OpenGL depth buffer (needed only for 3-d applications, small speed decrease) (y) or (n) +NeedDepthBuffer=n + +# Enable OpenGL stencil buffer (needed only for 3-d applications, small speed decrease) (y) or (n) +NeedStencilBuffer=n + +# Try to use GLES 2.x context - will revert to GLES 1.X if unsupported by device +# you need this option only if you're developing 3-d app (y) or (n) +NeedGles2=n + +# Application uses software video buffer - you're calling SDL_SetVideoMode() without SDL_HWSURFACE and without SDL_OPENGL, +# this will allow small speed optimization. Enable this even when you're using SDL_HWSURFACE. (y) or (n) +SwVideoMode=y + +# Application video output will be resized to fit into native device screen (y)/(n) +SdlVideoResize=y + +# Application resizing will keep 4:3 aspect ratio, with black bars at sides (y)/(n) +SdlVideoResizeKeepAspect=n + +# Do not allow device to sleep when the application is in foreground, set this for video players or apps which use accelerometer +InhibitSuspend=y + +# Create Android service, so the app is less likely to be killed while in background +CreateService= + +# Application does not call SDL_Flip() or SDL_UpdateRects() appropriately, or draws from non-main thread - +# enabling the compatibility mode will force screen update every 100 milliseconds, which is laggy and inefficient (y) or (n) +CompatibilityHacksForceScreenUpdate=n + +# Application does not call SDL_Flip() or SDL_UpdateRects() after mouse click (ScummVM and all Amiga emulators do that) - +# force screen update by moving mouse cursor a little after each click (y) or (n) +CompatibilityHacksForceScreenUpdateMouseClick=y + +# Application initializes SDL audio/video inside static constructors (which is bad, you won't be able to run ndk-gdb) (y)/(n) +CompatibilityHacksStaticInit= + +# On-screen Android soft text input emulates hardware keyboard, this will only work with Hackers Keyboard app (y)/(n) +CompatibilityHacksTextInputEmulatesHwKeyboard= + +# Hack for broken devices: prevent audio chopping, by sleeping a bit after pushing each audio chunk (y)/(n) +CompatibilityHacksPreventAudioChopping= + +# Hack for broken apps: application ignores audio buffer size returned by SDL (y)/(n) +CompatibilityHacksAppIgnoresAudioBufferSize= + +# Hack for VCMI: preload additional shared libraries before aplication start +CompatibilityHacksAdditionalPreloadedSharedLibraries="" + +# Hack for Free Heroes 2, which redraws the screen inside SDL_PumpEvents(): slow and compatible SDL event queue - +# do not use it with accelerometer/gyroscope, or your app may freeze at random (y)/(n) +CompatibilityHacksSlowCompatibleEventQueue= + +# Save and restore OpenGL state when drawing on-screen keyboard for apps that use SDL_OPENGL +CompatibilityHacksTouchscreenKeyboardSaveRestoreOpenGLState= + +# Application uses SDL_UpdateRects() properly, and does not draw in any region outside those rects. +# This improves drawing speed, but I know only one application that does that, and it's written by me (y)/(n) +CompatibilityHacksProperUsageOfSDL_UpdateRects= + +# Application uses mouse (y) or (n), this will show mouse emulation dialog to the user +AppUsesMouse=y + +# Application needs two-button mouse, will also enable advanced point-and-click features (y) or (n) +AppNeedsTwoButtonMouse=y + +# Right mouse button can do long-press/drag&drop action, necessary for some games (y) or (n) +# If you disable it, swiping with two fingers will send mouse wheel events +RightMouseButtonLongPress= + +# Show SDL mouse cursor, for applications that do not draw cursor at all (y) or (n) +ShowMouseCursor= + +# Generate more touch events, by default SDL generates one event per one video frame, this is useful for drawing apps (y) or (n) +GenerateSubframeTouchEvents= + +# Force relative (laptop) mouse movement mode, useful when both on-screen keyboard and mouse are needed (y) or (n) +ForceRelativeMouseMode=n + +# Show on-screen dpad/joystick, that will act as arrow keys (y) or (n) +AppNeedsArrowKeys=y + +# On-screen dpad/joystick will appear under finger when it touches the screen (y) or (n) +# Joystick always follows finger, so moving mouse requires touching the screen with other finger +FloatingScreenJoystick= + +# Application needs text input (y) or (n), enables button for text input on screen +AppNeedsTextInput=y + +# Application uses joystick (y) or (n), the on-screen DPAD will be used as joystick 0 axes 0-1 +# This will disable AppNeedsArrowKeys option +AppUsesJoystick=n + +# Application uses second on-screen joystick, as SDL joystick 0 axes 2-3 (y)/(n) +AppUsesSecondJoystick=n + +# Application uses third on-screen joystick, as SDL joystick 0 axes 20-21 (y)/(n) +AppUsesThirdJoystick= + +# Application uses accelerometer (y) or (n), the accelerometer will be used as joystick 1 axes 0-1 and 5-7 +AppUsesAccelerometer= + +# Application uses gyroscope (y) or (n), the gyroscope will be used as joystick 1 axes 2-4 +AppUsesGyroscope= + +# Use gyroscope to move mouse cursor (y) or (n), it eats battery, and can be disabled in settings, do not use with AppUsesGyroscope setting +MoveMouseWithGyroscope= + +# Application uses multitouch (y) or (n), multitouch events are passed as SDL_JOYBALLMOTION events for the joystick 0 +AppUsesMultitouch=n + +# Application records audio (it will use any available source, such a s microphone) +# API is defined in file SDL_android.h: int SDL_ANDROID_OpenAudioRecording(SDL_AudioSpec *spec); void SDL_ANDROID_CloseAudioRecording(void); +# This option will add additional permission to Android manifest (y)/(n) +AppRecordsAudio= + +# Application needs to access SD card. If your data files are bigger than 5 Mb, enable it. (y) / (n) +AccessSdCard= + +# Application needs Internet access. If you disable it, you'll have to bundle all your data files inside .apk (y) / (n) +AccessInternet= + +# Immersive mode - Android will hide on-screen Home/Back keys. Looks bad if you invoke Android keyboard. (y) / (n) +ImmersiveMode= + +# Application implements Android-specific routines to put to background, and will not draw anything to screen +# between SDL_ACTIVEEVENT lost / gained notifications - you should check for them +# rigth after SDL_Flip(), if (n) then SDL_Flip() will block till app in background (y) or (n) +# This option is reported to be buggy, sometimes failing to restore video state +NonBlockingSwapBuffers=n + +# Redefine common hardware keys to SDL keysyms +# BACK hardware key is available on all devices, MENU is available on pre-ICS devices, other keys may be absent +# SEARCH and CALL by default return same keycode as DPAD_CENTER - one of those keys is available on most devices +# Use word NO_REMAP if you want to preserve native functionality for certain key (volume keys are 3-rd and 4-th) +# Keys: TOUCHSCREEN (works only when AppUsesMouse=n), DPAD_CENTER/SEARCH, VOLUMEUP, VOLUMEDOWN, MENU, BACK, CAMERA +RedefinedKeys="LCTRL RETURN KP_PLUS KP_MINUS LCTRL" + +# Number of virtual keyboard keys (currently 6 is maximum) +AppTouchscreenKeyboardKeysAmount=5 + +# Redefine on-screen keyboard keys to SDL keysyms - 6 keyboard keys + 4 multitouch gestures (zoom in/out and rotate left/right) +RedefinedKeysScreenKb="LCTRL RETURN KP_PLUS KP_MINUS LCTRL" + +# Names for on-screen keyboard keys, such as Fire, Jump, Run etc, separated by spaces, they are used in SDL config menu +RedefinedKeysScreenKbNames="" + +# On-screen keys theme +# 0 = Ultimate Droid by Sean Stieber (green, with gamepad joystick) +# 1 = Simple Theme by Beholder (white, with gamepad joystick) +# 2 = Sun by Sirea (yellow, with round joystick) +# 3 = Keen by Gerstrong (multicolor, with round joystick) +TouchscreenKeysTheme=2 + +# Redefine gamepad keys to SDL keysyms, button order is: +# A B X Y L1 R1 L2 R2 LThumb RThumb +RedefinedKeysGamepad="" + +# How long to show startup menu button, in msec, 0 to disable startup menu +StartupMenuButtonTimeout=3000 + +# Menu items to hide from startup menu, available menu items: +# SettingsMenu.OkButton SettingsMenu.DummyMenu SettingsMenu.MainMenu SettingsMenuMisc.DownloadConfig SettingsMenuMisc.OptionalDownloadConfig SettingsMenuMisc.AudioConfig SettingsMenuMisc.VideoSettingsConfig SettingsMenuMisc.ShowReadme SettingsMenuMisc.GyroscopeCalibration SettingsMenuMisc.ResetToDefaultsConfig SettingsMenuMouse.MouseConfigMainMenu SettingsMenuMouse.DisplaySizeConfig SettingsMenuMouse.LeftClickConfig SettingsMenuMouse.RightClickConfig SettingsMenuMouse.AdditionalMouseConfig SettingsMenuMouse.JoystickMouseConfig SettingsMenuMouse.TouchPressureMeasurementTool SettingsMenuMouse.CalibrateTouchscreenMenu SettingsMenuKeyboard.KeyboardConfigMainMenu SettingsMenuKeyboard.ScreenKeyboardSizeConfig SettingsMenuKeyboard.ScreenKeyboardDrawSizeConfig SettingsMenuKeyboard.ScreenKeyboardThemeConfig SettingsMenuKeyboard.ScreenKeyboardTransparencyConfig SettingsMenuKeyboard.RemapHwKeysConfig SettingsMenuKeyboard.RemapScreenKbConfig SettingsMenuKeyboard.ScreenGesturesConfig SettingsMenuKeyboard.CustomizeScreenKbLayout SettingsMenuKeyboard.ScreenKeyboardAdvanced +HiddenMenuOptions='SettingsMenuMisc.OptionalDownloadConfig' + +# Menu items to show at startup - this is Java code snippet, leave empty for default +# new SettingsMenuMisc.ShowReadme(), (AppUsesMouse \&\& \! ForceRelativeMouseMode \? new SettingsMenuMouse.DisplaySizeConfig(true) : new SettingsMenu.DummyMenu()), new SettingsMenuMisc.OptionalDownloadConfig(true), new SettingsMenuMisc.GyroscopeCalibration() +# Available menu items: +# SettingsMenu.OkButton SettingsMenu.DummyMenu SettingsMenu.MainMenu SettingsMenuMisc.DownloadConfig SettingsMenuMisc.OptionalDownloadConfig SettingsMenuMisc.AudioConfig SettingsMenuMisc.VideoSettingsConfig SettingsMenuMisc.ShowReadme SettingsMenuMisc.GyroscopeCalibration SettingsMenuMisc.ResetToDefaultsConfig SettingsMenuMouse.MouseConfigMainMenu SettingsMenuMouse.DisplaySizeConfig SettingsMenuMouse.LeftClickConfig SettingsMenuMouse.RightClickConfig SettingsMenuMouse.AdditionalMouseConfig SettingsMenuMouse.JoystickMouseConfig SettingsMenuMouse.TouchPressureMeasurementTool SettingsMenuMouse.CalibrateTouchscreenMenu SettingsMenuKeyboard.KeyboardConfigMainMenu SettingsMenuKeyboard.ScreenKeyboardSizeConfig SettingsMenuKeyboard.ScreenKeyboardDrawSizeConfig SettingsMenuKeyboard.ScreenKeyboardThemeConfig SettingsMenuKeyboard.ScreenKeyboardTransparencyConfig SettingsMenuKeyboard.RemapHwKeysConfig SettingsMenuKeyboard.RemapScreenKbConfig SettingsMenuKeyboard.ScreenGesturesConfig SettingsMenuKeyboard.CustomizeScreenKbLayout SettingsMenuKeyboard.ScreenKeyboardAdvanced +FirstStartMenuOptions='' + +# Specify architectures to compile, 'all' or 'y' to compile for all architectures. +# Available architectures: armeabi armeabi-v7a armeabi-v7a-hard x86 mips +MultiABI='armeabi-v7a' + +# Minimum amount of RAM application requires, in Mb, SDL will print warning to user if it's lower +AppMinimumRAM=0 + +# Optional shared libraries to compile - removing some of them will save space +# MP3 support by libMAD is encumbered by patents and libMAD is GPL-ed +# Available libraries: mad (GPL-ed!) sdl_mixer sdl_image sdl_ttf sdl_net sdl_blitpool sdl_gfx sdl_sound intl xml2 lua jpeg png ogg flac tremor vorbis freetype xerces curl theora fluidsynth lzma lzo2 mikmod openal timidity zzip bzip2 yaml-cpp python boost_date_time boost_filesystem boost_iostreams boost_program_options boost_regex boost_signals boost_system boost_thread glu avcodec avdevice avfilter avformat avresample avutil swscale swresample bzip2 +CompiledLibraries="jpeg png boost_filesystem boost_system" + +# Application uses custom build script AndroidBuild.sh instead of Android.mk (y) or (n) +CustomBuildScript=y + +# Aditional CFLAGS for application +AppCflags='' + +# Additional LDFLAGS for application +AppLdflags='' + +# If application has headers with the same name as system headers, this option tries to fix compiler flags to make it compilable +AppOverlapsSystemHeaders= + +# Build only following subdirs (empty will build all dirs, ignored with custom script) +AppSubdirsBuild='' + +# Exclude these files from build +AppBuildExclude='' + +# Application command line parameters, including app name as 0-th param +AppCmdline='ja2 -resversion ENGLISH' + +# Screen size is used by Google Play to prevent an app to be installed on devices with smaller screens +# Minimum screen size that application supports: (s)mall / (m)edium / (l)arge +MinimumScreenSize= + +# Your AdMob Publisher ID, (n) if you don't want advertisements +AdmobPublisherId= + +# Your AdMob test device ID, to receive a test ad +AdmobTestDeviceId= + +# Your AdMob banner size (BANNER/FULL_BANNER/LEADERBOARD/MEDIUM_RECTANGLE/SMART_BANNER/WIDE_SKYSCRAPER/FULL_WIDTH:Height/Width:AUTO_HEIGHT/Width:Height) +AdmobBannerSize= + +# Google Play Game Services application ID, required for cloud saves to work +GooglePlayGameServicesId= + diff --git a/project/jni/application/ja2/AndroidBuild.sh b/project/jni/application/ja2/AndroidBuild.sh new file mode 100755 index 000000000..c921742e1 --- /dev/null +++ b/project/jni/application/ja2/AndroidBuild.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +[ -e src-$1 ] || { + git clone --depth 1 https://bitbucket.org/gennady/ja2-stracciatella.git src-$1 || exit 1 + patch -p1 -d src-$1 < ja2.patch || exit 1 +} || exit 1 + +../setEnvironment-$1.sh sh -c "make -j4 -C src-$1 WITH_LPTHREAD=0" && cp -f src-$1/ja2 libapplication-$1.so diff --git a/project/jni/application/ja2/AndroidData/ja2.zip b/project/jni/application/ja2/AndroidData/ja2.zip new file mode 100644 index 0000000000000000000000000000000000000000..4418fad56a522c91a4dd1ae704e625bf624dedc1 GIT binary patch literal 98154 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
lD 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 VHc(8vGPp8amtkP2O#;oY0RU`ci3$J! literal 0 HcmV?d00001 diff --git a/project/jni/application/ja2/icon.png b/project/jni/application/ja2/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9f82422e6fbe06c62cb7ecd8409d812916c779f8 GIT binary patch literal 1299 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%b@U_I1CI$uu z&H|6fVg?2V4={E+nQaFWEGuwK2k8al_Fr@6GBB{%c)B=-L>xXkO?Sc_H-XmurLm!H zsS#=#hm9NsH%A;%TCrfw%|qP6r(0!hcARND?U%^SDyn8Y^W+IGX^S-BD{PDR%D;bm zZ=S4rtf}hN6<6PvexEJ>LulEA;MnJR+5FTu zo{v+kTABKqJ91lCMQTg2%XN-aCByWc>`C4(kAl{nyX(pFO5@ek)0GNUD}U}}d37Z_TIqFz z$XQO7X&l&kttFEfc?ztt3Vu#CZYhP&l#83lpG&zD~c+VS|GJ7wQ@-BJ$XMSW_ObGcWdEGSA6DGN59{#@lQ%1-;G7+6_L{efulLytnb% zr`JY{cYoP)=&{U?bLz4-7up`5HgHj!FLadMpn!GHcia7~6XkhA_{uefJ?z~s=e z&qfw&7)_Twx*>Jpw?Ow|7A+RnTUFB&s&?cEb#iWy*5HzmmQXJ!tIN6|8{lZIl3?7} zH)|vJ_kv(Z6%nb~nn^7Cza27|%;D*hG9hv0nx&qCVo#+q*DGw%yufl}i44O%xBmB@ zi!@Dn8dp|2v^Zw3F`c1k)Ye|!&2;#*()0Iu=i(G=tGW4f4xP;tZ#*&UW_ij%2^9nN z%}m!g3{@-Lcmz!T8Z0$g7X9FlP|}5*Q!@KDncU7@Rd-VFkFUM#hreq!)pOkOHe=q) zA}X|Z0pt9zBa+NM<$>=-93@W}9d%IHBe&y5PlCgAHZ_h@_kXMx5ik{4$!X4Vm+Pab z1nXnhOTwZTmWb)6IdZo88OsVpyx=*hFT0lif_sK@)+V+sY)daaGkRZ^WHf^*f5r)h z*^YZlO0$0?&`|@6mJL)#`n{BocM*x?b%58@t)>%$?l3SxHNr(eQii z)0U5do$d8@8Ggz^)08Am`u}+zZ@Q98@ad9Y_6Ke&32$t@!hRt9T8*WVceYDckRD%y z{#?P8r`@%S{^(dFgekx8;@T#>KK977?d3-$l<#Mu~x(o~qswJ)wB`Jv|saDBFsfi`2 z3`PcqhPnnux(22phQ?NgCRWC#+6IPJ1_tlNV^5=K$jwj5OsmALVV>91as~zl22WQ% Jmvv4FO#nM(9yI^} literal 0 HcmV?d00001 diff --git a/project/jni/application/ja2/ja2.patch b/project/jni/application/ja2/ja2.patch new file mode 100644 index 000000000..f0b7ac9b9 --- /dev/null +++ b/project/jni/application/ja2/ja2.patch @@ -0,0 +1,516 @@ +diff --git a/Makefile b/Makefile +index a21c6b5..8a65a69 100644 +--- a/Makefile ++++ b/Makefile +@@ -55,7 +55,7 @@ endif + endif + + CFLAGS += $(CFLAGS_SDL) +-LDFLAGS += $(LDFLAGS_SDL) ++LDFLAGS += $(LDFLAGS_SDL) -lboost_filesystem -lboost_system + + ############################################################ + # MinGW settings for building on Windows and for +@@ -98,7 +98,8 @@ CFLAGS += -I Build/Utils + CFLAGS += -I sgp + CFLAGS += -I src + CFLAGS += -I _build/lib-MicroIni/include +-CFLAGS += -I _build/lib-boost ++#CFLAGS += -I _build/lib-boost ++CFLAGS += -I ../../../boost/include + CFLAGS += -I _build/lib-rapidjson + CFLAGS += -I _build/lib-slog + CFLAGS += -I _build/lib-smacker/libsmacker +@@ -522,15 +523,15 @@ SRCS += _build/lib-MicroIni/src/MicroIni/Line.cpp + SRCS += _build/lib-MicroIni/src/MicroIni/Section.cpp + SRCS += _build/lib-MicroIni/src/MicroIni/Value.cpp + +-SRCS += _build/lib-boost/libs/system/src/error_code.cpp +-SRCS += _build/lib-boost/libs/filesystem/src/codecvt_error_category.cpp +-SRCS += _build/lib-boost/libs/filesystem/src/operations.cpp +-SRCS += _build/lib-boost/libs/filesystem/src/path.cpp +-SRCS += _build/lib-boost/libs/filesystem/src/path_traits.cpp +-SRCS += _build/lib-boost/libs/filesystem/src/portability.cpp +-SRCS += _build/lib-boost/libs/filesystem/src/unique_path.cpp +-SRCS += _build/lib-boost/libs/filesystem/src/utf8_codecvt_facet.cpp +-SRCS += _build/lib-boost/libs/filesystem/src/windows_file_codecvt.cpp ++#SRCS += _build/lib-boost/libs/system/src/error_code.cpp ++#SRCS += _build/lib-boost/libs/filesystem/src/codecvt_error_category.cpp ++#SRCS += _build/lib-boost/libs/filesystem/src/operations.cpp ++#SRCS += _build/lib-boost/libs/filesystem/src/path.cpp ++#SRCS += _build/lib-boost/libs/filesystem/src/path_traits.cpp ++#SRCS += _build/lib-boost/libs/filesystem/src/portability.cpp ++#SRCS += _build/lib-boost/libs/filesystem/src/unique_path.cpp ++#SRCS += _build/lib-boost/libs/filesystem/src/utf8_codecvt_facet.cpp ++#SRCS += _build/lib-boost/libs/filesystem/src/windows_file_codecvt.cpp + + SRCS += _build/lib-slog/slog/slog.c + +diff --git a/_build/lib-slog/slog/slog.c b/_build/lib-slog/slog/slog.c +index 87ceb53..3799dbc 100644 +--- a/_build/lib-slog/slog/slog.c ++++ b/_build/lib-slog/slog/slog.c +@@ -30,6 +30,7 @@ + #include + #include + #include ++#include + + #if defined(_MSC_VER) + /* Visual Studio */ +@@ -152,6 +153,8 @@ void SLOG_LogMessage(SLOGLevel level, const char *tag, const char *format, ...) + + buf[size] = 0; + ++ __android_log_print(ANDROID_LOG_INFO, "JA2", "%s", buf); ++ + if(logToConsole) + { + write(s_consoleFD, buf, size); +diff --git a/ja2config.h b/ja2config.h +index cb3f1f9..d2659ec 100644 +--- a/ja2config.h ++++ b/ja2config.h +@@ -1,3 +1,3 @@ + /* location of externalized data, mods, unittests files, etc */ + /* when empty - the same directory as ja2 binary */ +-#define EXTRA_DATA_DIR "" ++#define EXTRA_DATA_DIR "." +diff --git a/sgp/Debug.cc b/sgp/Debug.cc +index 3ce95c3..c9c00f1 100644 +--- a/sgp/Debug.cc ++++ b/sgp/Debug.cc +@@ -1,4 +1,5 @@ + #include "Debug.h" ++#include "Logger.h" + + #if defined ( SGP_DEBUG ) || defined ( FORCE_ASSERTS_ON ) + +@@ -38,8 +39,9 @@ BOOLEAN InitializeDebugManager(void) + + void DebugMsg(TopicID uiTopicId, DebugLevel uiDebugLevel, const char* strMessage) + { +- fprintf(stderr, "%s\n", strMessage); ++ printf("%s\n", strMessage); + ++/* + //add _NO_DEBUG_TXT to your SGP preprocessor definitions to avoid this f**king huge file from + //slowly growing behind the scenes!!!! + #ifndef _NO_DEBUG_TXT +@@ -50,6 +52,7 @@ void DebugMsg(TopicID uiTopicId, DebugLevel uiDebugLevel, const char* strMessage + fclose(OutFile); + } + #endif ++*/ + } + + +@@ -67,9 +70,8 @@ static void _DebugRecordToDebugger(BOOLEAN gfState) + + void _DebugMessage(const char* pString, UINT32 uiLineNum, const char* pSourceFile) + { +- char ubOutputString[512]; +- sprintf(ubOutputString, "{ %ld } %s [Line %d in %s]\n", GetClock(), pString, uiLineNum, pSourceFile); +- ++ printf("{ %ld } %s [Line %d in %s]\n", GetClock(), pString, uiLineNum, pSourceFile); ++/* + if (gfRecordToDebugger) + { + fputs(ubOutputString, stderr); +@@ -86,17 +88,17 @@ void _DebugMessage(const char* pString, UINT32 uiLineNum, const char* pSourceFil + } + } + #endif ++*/ + } + + + void _FailMessage(const char *pString, UINT32 uiLineNum, const char *pSourceFile) + { +- char ubOutputString[512]; + if (pString != NULL) +- sprintf(ubOutputString, "{ %ld } Assertion Failure [Line %d in %s]: %s\n", GetClock(), uiLineNum, pSourceFile, pString); ++ printf("{ %ld } Assertion Failure [Line %d in %s]: %s\n", GetClock(), uiLineNum, pSourceFile, pString); + else +- sprintf(ubOutputString, "{ %ld } Assertion Failure [Line %d in %s]\n", GetClock(), uiLineNum, pSourceFile); +- ++ printf("{ %ld } Assertion Failure [Line %d in %s]\n", GetClock(), uiLineNum, pSourceFile); ++/* + //Output to debugger + if (gfRecordToDebugger) + fputs(ubOutputString, stderr); +@@ -113,7 +115,7 @@ void _FailMessage(const char *pString, UINT32 uiLineNum, const char *pSourceFile + } + } + #endif +- ++*/ + SDL_Quit(); + abort(); + } +diff --git a/sgp/Debug.h b/sgp/Debug.h +index 05717f9..6285a33 100644 +--- a/sgp/Debug.h ++++ b/sgp/Debug.h +@@ -9,6 +9,7 @@ + #define DEBUG_PRINT_GAME_CYCLE_TIME (0) /**< Flag telling to print how much time every game cycle takes. */ + + ++#define SGP_DEBUG 1 + #if defined ( SGP_DEBUG ) || defined ( FORCE_ASSERTS_ON ) + + // If DEBUG_ is defined, we need to initialize all the debug macros. Otherwise all the +diff --git a/sgp/FileMan.cc b/sgp/FileMan.cc +index 38d8b36..a5de49f 100644 +--- a/sgp/FileMan.cc ++++ b/sgp/FileMan.cc +@@ -104,6 +104,7 @@ std::string FileMan::findConfigFolderAndSwitchIntoIt() + } + #else + const char* home = getenv("HOME"); ++ return home; // Do not create extra dirs on Android + if (home == NULL) + { + const struct passwd* const passwd = getpwuid(getuid()); +@@ -152,6 +153,7 @@ std::string FileMan::findConfigFolderAndSwitchIntoIt() + int FileMan::openFileCaseInsensitive(const std::string &folderPath, const char *filename, int mode) + { + std::string path = FileMan::joinPaths(folderPath, filename); ++ SLOGD(TAG, "%s: open file %s\n", __func__, path.c_str()); + int d = open(path.c_str(), mode); + if (d < 0) + { +diff --git a/sgp/FileMan.h b/sgp/FileMan.h +index a7f96cb..6d7a64f 100644 +--- a/sgp/FileMan.h ++++ b/sgp/FileMan.h +@@ -11,7 +11,7 @@ + # define WIN32_LEAN_AND_MEAN + # include + #else +-# include ++//# include + #endif + + /* Delete the file at path. Returns true iff deleting the file succeeded or +diff --git a/sgp/LibraryDataBase.cc b/sgp/LibraryDataBase.cc +index 2205166..039a202 100644 +--- a/sgp/LibraryDataBase.cc ++++ b/sgp/LibraryDataBase.cc +@@ -1,5 +1,8 @@ + #include + #include ++#ifdef WITH_UNITTESTS ++#include "gtest/gtest.h" ++#endif + + #include "Types.h" + #include "FileMan.h" +diff --git a/sgp/Logger.h b/sgp/Logger.h +index 771e515..d7995d3 100644 +--- a/sgp/Logger.h ++++ b/sgp/Logger.h +@@ -6,6 +6,7 @@ + * General logging + ***********************************************************/ + ++#include "../../../android_debug.h" + /** Available log levels. */ + enum + { +@@ -16,7 +17,7 @@ enum + }; + + /** Current log level. */ +-#define LOG_LEVEL (LOGLEVEL_INFO) ++#define LOG_LEVEL (LOGLEVEL_DEBUG) + + #if LOG_LEVEL >= LOGLEVEL_ERROR + #define LOG_ERROR printf +diff --git a/sgp/Platform.h b/sgp/Platform.h +index 263f9b1..57d377c 100644 +--- a/sgp/Platform.h ++++ b/sgp/Platform.h +@@ -12,7 +12,7 @@ + #define PATH_SEPARATOR '\\' + #define PATH_SEPARATOR_STR "\\" + #else +-#define CASE_SENSITIVE_FS 1 ++#define CASE_SENSITIVE_FS 0 // SD card on Android is case-insensitive + #define PATH_SEPARATOR '/' + #define PATH_SEPARATOR_STR "/" + #endif +diff --git a/sgp/SGP.cc b/sgp/SGP.cc +index d156d73..66d7cf0 100644 +--- a/sgp/SGP.cc ++++ b/sgp/SGP.cc +@@ -13,6 +13,9 @@ + + #include + #include ++#ifdef WITH_UNITTESTS ++#include "gtest/gtest.h" ++#endif + + #include "Button_System.h" + #include "Debug.h" +@@ -49,9 +52,6 @@ + #include "slog/slog.h" + #define TAG "SGP" + +-#ifdef WITH_UNITTESTS +-#include "gtest/gtest.h" +-#endif + + #if defined _WIN32 + # define WIN32_LEAN_AND_MEAN +@@ -318,7 +318,7 @@ static BOOLEAN ParseParameters(int argc, char* const argv[], + int main(int argc, char* argv[]) + try + { +- std::string exeFolder = FileMan::getParentPath(argv[0], true); ++ //std::string exeFolder = FileMan::getParentPath(argv[0], true); + + #if defined BROKEN_SWPRINTF + if (setlocale(LC_CTYPE, "UTF-8") == NULL) +@@ -361,10 +361,12 @@ try + setGameVersion(version); + + //////////////////////////////////////////////////////////// ++ SLOGD(TAG, "Starting %s:%d\n", __FILE__,__LINE__); + + SDL_Init(SDL_INIT_VIDEO); + SDL_EnableUNICODE(SDL_ENABLE); + ++ SLOGD(TAG, "Starting %s:%d\n", __FILE__,__LINE__); + #ifdef __APPLE__ + // Enable 3-button mouse support if the user haven't instructed + // otherwise +@@ -380,6 +382,7 @@ try + freopen("CON", "w", stderr); + #endif + ++ SLOGD(TAG, "Starting %s:%d\n", __FILE__,__LINE__); + #ifdef SGP_DEBUG + // Initialize the Debug Manager - success doesn't matter + InitializeDebugManager(); +@@ -398,7 +401,7 @@ try + if(extraDataDir.empty()) + { + // use location of the exe file +- extraDataDir = exeFolder; ++ //extraDataDir = exeFolder; + } + + std::string externalizedDataPath = FileMan::joinPaths(extraDataDir, "externalized"); +@@ -428,6 +431,7 @@ try + else + #endif + { ++ SLOGD(TAG, "Starting %s:%d\n", __FILE__,__LINE__); + cm = new DefaultContentManager(version, + configFolderPath, + gameResRootPath, externalizedDataPath); +@@ -775,7 +779,7 @@ static void WriteDefaultConfigFile(const char* ConfigFile) + #ifdef _WIN32 + fprintf(IniFile, "data_dir = C:\\Program Files\\Jagged Alliance 2"); + #else +- fprintf(IniFile, "data_dir = /some/place/where/the/data/is"); ++ fprintf(IniFile, "data_dir = ."); + #endif + fclose(IniFile); + fprintf(stderr, "Please edit \"%s\" to point to the binary data.\n", ConfigFile); +diff --git a/src/DefaultContentManager.cc b/src/DefaultContentManager.cc +index b7e4971..25bec4b 100644 +--- a/src/DefaultContentManager.cc ++++ b/src/DefaultContentManager.cc +@@ -602,8 +602,10 @@ const AmmoTypeModel* DefaultContentManager::getAmmoType(uint8_t index) + + bool DefaultContentManager::loadWeapons() + { ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + AutoSGPFile f(openGameResForReading("weapons.json")); + std::string jsonData = FileMan::fileReadText(f); ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + + rapidjson::Document document; + if (document.Parse<0>(jsonData.c_str()).HasParseError()) +@@ -613,6 +615,7 @@ bool DefaultContentManager::loadWeapons() + } + else + { ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + if(document.IsArray()) { + const rapidjson::Value& a = document; + for (rapidjson::SizeType i = 0; i < a.Size(); i++) +@@ -632,6 +635,7 @@ bool DefaultContentManager::loadWeapons() + } + } + } ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + + return true; + } +@@ -675,8 +679,11 @@ bool DefaultContentManager::loadMagazines() + + bool DefaultContentManager::loadCalibres() + { ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + AutoSGPFile f(openGameResForReading("calibres.json")); ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + std::string jsonData = FileMan::fileReadText(f); ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + + rapidjson::Document document; + if (document.Parse<0>(jsonData.c_str()).HasParseError()) +@@ -686,6 +693,7 @@ bool DefaultContentManager::loadCalibres() + } + else + { ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + if(document.IsArray()) { + const rapidjson::Value& a = document; + for (rapidjson::SizeType i = 0; i < a.Size(); i++) +@@ -703,19 +711,23 @@ bool DefaultContentManager::loadCalibres() + } + } + } ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + + BOOST_FOREACH(const CalibreModel* calibre, m_calibres) + { + m_calibreMap.insert(std::make_pair(std::string(calibre->internalName), calibre)); + } ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + + return true; + } + + bool DefaultContentManager::loadAmmoTypes() + { ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + AutoSGPFile f(openGameResForReading("ammo_types.json")); + std::string jsonData = FileMan::fileReadText(f); ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + + rapidjson::Document document; + if (document.Parse<0>(jsonData.c_str()).HasParseError()) +@@ -725,6 +737,7 @@ bool DefaultContentManager::loadAmmoTypes() + } + else + { ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + if(document.IsArray()) { + const rapidjson::Value& a = document; + for (rapidjson::SizeType i = 0; i < a.Size(); i++) +@@ -742,12 +755,14 @@ bool DefaultContentManager::loadAmmoTypes() + } + } + } ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + + BOOST_FOREACH(const AmmoTypeModel* ammoType, m_ammoTypes) + { + m_ammoTypeMap.insert(std::make_pair(std::string(ammoType->internalName), ammoType)); + } + ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + return true; + } + +@@ -755,8 +770,10 @@ bool DefaultContentManager::readWeaponTable( + const char *fileName, + std::vector > & weaponTable) + { ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + AutoSGPFile f(openGameResForReading(fileName)); + std::string jsonData = FileMan::fileReadText(f); ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + + rapidjson::Document document; + if (document.Parse<0>(jsonData.c_str()).HasParseError()) +@@ -764,6 +781,7 @@ bool DefaultContentManager::readWeaponTable( + SLOGE(TAG, "Failed to parse %s", fileName); + return false; + } ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + + if(document.IsArray()) + { +@@ -780,6 +798,7 @@ bool DefaultContentManager::readWeaponTable( + } + } + } ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + + return true; + } +@@ -796,12 +815,14 @@ const std::vector > & DefaultContentManager::get + + bool DefaultContentManager::loadArmyGunChoice() + { ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + return readWeaponTable("army-gun-choice-normal.json", mNormalGunChoice) + && readWeaponTable("army-gun-choice-extended.json", mExtendedGunChoice); + } + + void DefaultContentManager::loadStringRes(const char *name, std::vector &strings) const + { ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + std::string fullName(name); + + switch(m_gameVersion) +@@ -819,6 +840,7 @@ void DefaultContentManager::loadStringRes(const char *name, std::vector json(readJsonDataFile(fullName.c_str())); +@@ -828,12 +850,15 @@ void DefaultContentManager::loadStringRes(const char *name, std::vectorgetInternalName(), item)); + } ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + + loadAllDealersInventory(); ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + + boost::shared_ptr game_json(readJsonDataFile("game.json")); + m_gamePolicy = new DefaultGamePolicy(game_json.get()); ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + + boost::shared_ptr imp_json(readJsonDataFile("imp.json")); + m_impPolicy = new DefaultIMPPolicy(imp_json.get(), this); ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + + loadStringRes("strings/ammo-calibre", m_calibreNames); + loadStringRes("strings/ammo-calibre-bobbyray", m_calibreNamesBobbyRay); + + loadStringRes("strings/new-strings", m_newStrings); ++ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__); + + return result; + }