From 79534937048f3082cabd707c24eb5d54cebf10f4 Mon Sep 17 00:00:00 2001 From: Sergii Pylypenko Date: Mon, 25 Sep 2017 23:25:51 +0300 Subject: [PATCH] OpenTTD: added JGR patchpack project --- .gitmodules | 4 + .../jni/application/openttd-jgrpp/.gitignore | 1 + .../openttd-jgrpp/AndroidAppSettings.cfg | 290 ++++++++++++++++++ .../application/openttd-jgrpp/AndroidBuild.sh | 32 ++ .../AndroidData/openttd-1.4.0.30.cfg | 25 ++ .../jni/application/openttd-jgrpp/build-pc.sh | 26 ++ .../jni/application/openttd-jgrpp/icon.png | Bin 0 -> 20566 bytes .../application/openttd-jgrpp/pack-data.sh | 7 + .../jni/application/openttd-jgrpp/readme.txt | 9 + .../openttd-jgrpp/reunpack-data-device.sh | 4 + project/jni/application/openttd-jgrpp/src | 1 + .../application/openttd-jgrpp/unpack-data.sh | 16 + .../jni/application/openttd/AndroidBuild.sh | 10 +- project/jni/application/openttd/build-pc.sh | 4 +- project/jni/application/openttd/readme.txt | 8 +- project/jni/application/openttd/src | 2 +- 16 files changed, 428 insertions(+), 11 deletions(-) create mode 100644 project/jni/application/openttd-jgrpp/.gitignore create mode 100644 project/jni/application/openttd-jgrpp/AndroidAppSettings.cfg create mode 100755 project/jni/application/openttd-jgrpp/AndroidBuild.sh create mode 100644 project/jni/application/openttd-jgrpp/AndroidData/openttd-1.4.0.30.cfg create mode 100755 project/jni/application/openttd-jgrpp/build-pc.sh create mode 100644 project/jni/application/openttd-jgrpp/icon.png create mode 100755 project/jni/application/openttd-jgrpp/pack-data.sh create mode 100644 project/jni/application/openttd-jgrpp/readme.txt create mode 100755 project/jni/application/openttd-jgrpp/reunpack-data-device.sh create mode 160000 project/jni/application/openttd-jgrpp/src create mode 100755 project/jni/application/openttd-jgrpp/unpack-data.sh diff --git a/.gitmodules b/.gitmodules index d2d5dc0ba..4ef1b9201 100644 --- a/.gitmodules +++ b/.gitmodules @@ -71,3 +71,7 @@ url = https://github.com/pelya/Ninslash.git branch = master update = merge +[submodule "project/jni/application/openttd-jgrpp/src"] + path = project/jni/application/openttd-jgrpp/src + url = https://github.com/pelya/OpenTTD-JGR-patchpack.git + branch = jgrpp diff --git a/project/jni/application/openttd-jgrpp/.gitignore b/project/jni/application/openttd-jgrpp/.gitignore new file mode 100644 index 000000000..2b107e500 --- /dev/null +++ b/project/jni/application/openttd-jgrpp/.gitignore @@ -0,0 +1 @@ +openttd-build-* diff --git a/project/jni/application/openttd-jgrpp/AndroidAppSettings.cfg b/project/jni/application/openttd-jgrpp/AndroidAppSettings.cfg new file mode 100644 index 000000000..c5635029b --- /dev/null +++ b/project/jni/application/openttd-jgrpp/AndroidAppSettings.cfg @@ -0,0 +1,290 @@ +# The application settings for Android libSDL port + +# Specify application name (e.x. My Application) +AppName="OpenTTD-JGRpp" + +# Specify reversed site name of application (e.x. com.mysite.myapp) +AppFullName=org.openttd.jgrpp + +# Application version code (integer) +AppVersionCode=021071 + +# Application user-visible version name (string) +AppVersionName="0.21.0.71" + +# 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 +# You can specify Google Play expansion files in the form 'obb:main.12345' or 'obb:patch.12345' where 12345 is the app version, first associated with the file +AppDataDownloadUrl="!!Data files - 20 Mb|openttd-data-1.7.1-1.zip.xz^!!Config file|:.openttd/openttd.cfg:openttd-1.4.0.30.cfg^!!MIDI music support (18 Mb)|timidity.zip.xz|http://sourceforge.net/projects/libsdl-android/files/timidity.zip.xz^!!Internationalization files|icudt59l.zip.xz|http://sourceforge.net/projects/libsdl-android/files/icudt59l.zip.xz^HD graphics (optional) - 220 Mb download|http://sourceforge.net/projects/libsdl-android/files/OpenTTD/abase-0.1.2-0.zip.xz/download|http://sourceforge.net/projects/libsdl-android/files/OpenTTD/zBase-v5588.zip.xz/download" + +# Reset SDL config when updating application to the new version (y) / (n) +ResetSdlConfigForThisVersion=n + +# Delete application data files when upgrading (specify file/dir paths separated by spaces) +DeleteFilesOnUpgrade="libsdl-DownloadFinished-0.flag" + +# 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 + +# Use glshim library for provide OpenGL 1.x functionality to OpenGL ES accelerated cards (y) or (n) +UseGlshim= + +# 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=y + +# On-screen Android soft text input emulates hardware keyboard, this will only work with Hackers Keyboard app (y)/(n) +CompatibilityHacksTextInputEmulatesHwKeyboard=n + +# Built-in text input keyboards with custom layouts for emulators, requires CompatibilityHacksTextInputEmulatesHwKeyboard=y +# 0 or empty - standard Android keyboard +# 1 - Simple QWERTY keyboard, no function keys, no arrow keys +# 2 - Commodore 64 keyboard +# 3 - Amiga keyboard +# 4 - Atari800 keyboard +TextInputKeyboard= + +# Hack for broken devices: prevent audio chopping, by sleeping a bit after pushing each audio chunk (y)/(n) +CompatibilityHacksPreventAudioChopping=n + +# Hack for broken apps: application ignores audio buffer size returned by SDL (y)/(n) +CompatibilityHacksAppIgnoresAudioBufferSize=n + +# 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=n + +# 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=n + +# 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=y + +# Show SDL mouse cursor, for applications that do not draw cursor at all (y) or (n) +ShowMouseCursor=n + +# Screen follows mouse cursor, when it's covered by soft keyboard, this works only in software video mode (y) or (n) +ScreenFollowsMouse= + +# 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=n + +# 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= + +HideSystemMousePointer=y + +# Application needs text input (y) or (n), enables button for text input on screen +AppNeedsTextInput=n + +# 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=n + +# Application uses gyroscope (y) or (n), the gyroscope will be used as joystick 1 axes 2-4 +AppUsesGyroscope=n + +# Application uses orientation sensor (y) or (n), reported as joystick 1 axes 8-10 +AppUsesOrientationSensor= + +# 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=y + +# 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=n + +# Application needs to access SD card. Always disable it, unless you want to access user photos and downloads. (y) / (n) +AccessSdCard=n + +# 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="LALT RETURN NO_REMAP NO_REMAP SPACE DELETE" + +# Number of virtual keyboard keys (currently 6 is maximum) +AppTouchscreenKeyboardKeysAmount=0 + +# Redefine on-screen keyboard keys to SDL keysyms - 6 keyboard keys + 4 multitouch gestures (zoom in/out and rotate left/right) +RedefinedKeysScreenKb="LALT RETURN KP_PLUS KP_MINUS SPACE DELETE KP_PLUS KP_MINUS 1 2" + +# Names for on-screen keyboard keys, such as Fire, Jump, Run etc, separated by spaces, they are used in SDL config menu +RedefinedKeysScreenKbNames="LALT RETURN KP_PLUS KP_MINUS SPACE DELETE KP_PLUS KP_MINUS 1 2" + +# On-screen keys theme +# 0 = Ultimate Droid by Sean Stieber (green, with cross joystick) +# 1 = Simple Theme by Beholder (white, with cross joystick) +# 2 = Sun by Sirea (yellow, with round joystick) +# 3 = Keen by Gerstrong (multicolor, with round joystick) +# 4 = Retro by Santiago Radeff (red/white, with cross joystick) +# 5 = GameBoy from RetroArch +# 6 = PlayStation from RetroArch +# 7 = SuperNintendo from RetroArch +# 8 = DualShock from RetroArch +# 9 = Nintendo64 from RetroArch +TouchscreenKeysTheme=2 + +# Redefine gamepad keys to SDL keysyms, button order is: +# A B X Y L1 R1 L2 R2 LThumb RThumb +RedefinedKeysGamepad="LALT RETURN KP_PLUS KP_MINUS MOUSE_RIGHT MOUSE_LEFT SPACE MOUSE_RIGHT DELETE MOUSE_LEFT" + +# 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.CommandlineConfig 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='SettingsMenuMouse.DisplaySizeConfig' + +# 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.CommandlineConfig 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='SettingsMenu.DummyMenu' + +# Minimum amount of RAM application requires, in Mb, SDL will print warning to user if it's lower +AppMinimumRAM=0 + +# GCC version, or 'clang' for CLANG +NDK_TOOLCHAIN_VERSION=clang + +# Specify architectures to compile, 'all' or 'y' to compile for all architectures. +# Available architectures: armeabi armeabi-v7a x86 mips arm64-v8a x86_64 +MultiABI='armeabi-v7a x86 arm64-v8a' + +# 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 freetype timidity expat fontconfig lzma lzo2 icui18n iculx icu-le-hb harfbuzz icudata icuuc" + +# 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='openttd -d 0 -b 16bpp-simple' + +# 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=m + +# Your AdMob Publisher ID, (n) if you don't want advertisements +AdmobPublisherId=n + +# 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=942284197278 + diff --git a/project/jni/application/openttd-jgrpp/AndroidBuild.sh b/project/jni/application/openttd-jgrpp/AndroidBuild.sh new file mode 100755 index 000000000..cc90f4615 --- /dev/null +++ b/project/jni/application/openttd-jgrpp/AndroidBuild.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +LOCAL_PATH=`dirname $0` +LOCAL_PATH=`cd $LOCAL_PATH && pwd` +VER=build + +[ -d openttd-$VER-$1 ] || mkdir -p openttd-$VER-$1/bin/baseset + +export ARCH=$1 + +CPU_TYPE=32 +[ "$ARCH" = "arm64-v8a" ] && CPU_TYPE=64 + +[ -e openttd-$VER-$1/objs/lang/english.lng ] || { + sh -c "cd openttd-$VER-$1 && ../src/configure --without-freetype --without-png --without-zlib --without-lzo2 --without-lzma --endian=LE --cpu-type=$CPU_TYPE && make lang && make -C objs/release endian_target.h depend && make -C objs/setting" || exit 1 + rm -f openttd-$VER-$1/Makefile +} || exit 1 + +[ -e openttd-$VER-$1/Makefile ] || { + rm -f src/src/rev.cpp + env PATH=$LOCAL_PATH/..:$PATH \ + env CLANG=1 ../setEnvironment-$1.sh sh -c "cd openttd-$VER-$1 && env ../src/configure --with-sdl --with-freetype --with-png --with-zlib --with-icu --with-libtimidity='pkg-config libtimidity' --with-lzo2=$LOCAL_PATH/../../../obj/local/$ARCH/liblzo2.so --prefix-dir='.' --data-dir='' --without-allegro --with-fontconfig --with-lzma --endian=LE --cpu-type=$CPU_TYPE" +} || exit 1 + +NCPU=4 +uname -s | grep -i "linux" > /dev/null && NCPU=`cat /proc/cpuinfo | grep -c -i processor` + +# clang arm hack +LIBATOMIC= +echo $1 | grep 'arm' && LIBATOMIC=-latomic + +env CLANG=1 LIBATOMIC=$LIBATOMIC ../setEnvironment-$1.sh sh -c "cd openttd-$VER-$1 && make -j$NCPU VERBOSE=1 STRIP='' LIBS='-lsdl-1.2 -llzo2 -lpng -ltimidity -lfontconfig -lfreetype -lexpat -licui18n -liculx -licu-le-hb -lharfbuzz -licuuc -licudata -lgcc -lz -lc -lgnustl_static -lsupc++ $LIBATOMIC'" && cp -f openttd-$VER-$1/objs/release/openttd libapplication-$1.so || exit 1 diff --git a/project/jni/application/openttd-jgrpp/AndroidData/openttd-1.4.0.30.cfg b/project/jni/application/openttd-jgrpp/AndroidData/openttd-1.4.0.30.cfg new file mode 100644 index 000000000..17b4a40e3 --- /dev/null +++ b/project/jni/application/openttd-jgrpp/AndroidData/openttd-1.4.0.30.cfg @@ -0,0 +1,25 @@ +[misc] +resolution = 854,480 +small_font = fonts/Roboto-Bold.ttf +medium_font = fonts/Roboto-Bold.ttf +large_font = fonts/DroidSerif-Bold.ttf +mono_font = fonts/DroidSansMono.ttf +small_size = 10 +medium_size = 12 +large_size = 16 +mono_size = 12 +small_aa = true +medium_aa = true +large_aa = true +mono_aa = true +min_button_size = 48 +min_step_size = 48 + +[gui] +left_mouse_btn_scrolling = true +osk_activation = disabled +auto_scrolling = 0 +reverse_scroll = true +windows_titlebars = false +windows_decorations = true +compact_vertical_toolbar = true diff --git a/project/jni/application/openttd-jgrpp/build-pc.sh b/project/jni/application/openttd-jgrpp/build-pc.sh new file mode 100755 index 000000000..c18359044 --- /dev/null +++ b/project/jni/application/openttd-jgrpp/build-pc.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +LOCAL_PATH=`dirname $0` +LOCAL_PATH=`cd $LOCAL_PATH && pwd` + +mkdir -p openttd-pc openttd-pc/baseset +cd openttd-pc +[ -e bin/baseset ] || cp -a ../src/bin ./ +[ -e bin/fonts ] || cp -a ../data/fonts bin/ + +export CFLAGS=-O0 +export CXXFLAGS=-O0 + +[ -e Makefile ] || ../src/configure --enable-debug --cpu-type=64 || exit 1 +make -j8 VERBOSE=1 || exit 1 +cd bin + +export LD_LIBRARY_PATH=/usr/local/lib + +if [ -z "$1" ]; then + ./openttd -d 2 -r 854x480 -g opntitle.sav +else + #valgrind --track-fds=yes --log-file=valgrind.log --leak-check=full \ + gdb -ex run --args \ + ./openttd -d 2 -r 854x480 -g opntitle.sav +fi diff --git a/project/jni/application/openttd-jgrpp/icon.png b/project/jni/application/openttd-jgrpp/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..607f06043ff0e3dc226f72259a298639d3e36425 GIT binary patch literal 20566 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 BLva8A literal 0 HcmV?d00001 diff --git a/project/jni/application/openttd-jgrpp/pack-data.sh b/project/jni/application/openttd-jgrpp/pack-data.sh new file mode 100755 index 000000000..536b14fca --- /dev/null +++ b/project/jni/application/openttd-jgrpp/pack-data.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +VER=1.7.1-1 + +cd data +rm -f ../AndroidData/openttd-data-*.zip.xz ../AndroidData/openttd-data-*.zip +zip -0 -r ../AndroidData/openttd-data-$VER.zip . && xz -8 ../AndroidData/openttd-data-$VER.zip diff --git a/project/jni/application/openttd-jgrpp/readme.txt b/project/jni/application/openttd-jgrpp/readme.txt new file mode 100644 index 000000000..2221ff946 --- /dev/null +++ b/project/jni/application/openttd-jgrpp/readme.txt @@ -0,0 +1,9 @@ +Quick compilation guide: +Install liblzma-dev, it's needed for configure script +sudo apt-get install liblzma-dev +Download my Git repo from https://github.com/pelya/commandergenius, +then install Android SDK, Android NDK, and "ant" tool, then launch commands + git submodule update --init --recursive + build.sh openttd-jgrpp +You may need to run command + android update project -p project -t android-25 diff --git a/project/jni/application/openttd-jgrpp/reunpack-data-device.sh b/project/jni/application/openttd-jgrpp/reunpack-data-device.sh new file mode 100755 index 000000000..09d8222d3 --- /dev/null +++ b/project/jni/application/openttd-jgrpp/reunpack-data-device.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +adb shell rm /mnt/shell/emulated/0/Android/data/org.openttd.sdl/files/libsdl-DownloadFinished-0.flag +adb shell rm /mnt/shell/emulated/0/Android/data/org.openttd.sdl/files/libsdl-DownloadFinished-1.flag diff --git a/project/jni/application/openttd-jgrpp/src b/project/jni/application/openttd-jgrpp/src new file mode 160000 index 000000000..8817a75e6 --- /dev/null +++ b/project/jni/application/openttd-jgrpp/src @@ -0,0 +1 @@ +Subproject commit 8817a75e6cebdf140ecdb24799561ecb886bedc1 diff --git a/project/jni/application/openttd-jgrpp/unpack-data.sh b/project/jni/application/openttd-jgrpp/unpack-data.sh new file mode 100755 index 000000000..8bf63b0df --- /dev/null +++ b/project/jni/application/openttd-jgrpp/unpack-data.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +ls openttd-data-*.zip.xz || cp AndroidData/openttd-data-*.zip.xz ./ + +for f in openttd-data-*.zip.xz; do + xz -d $f +done + +for f in openttd-data-*.zip; do + rm -rf data + mkdir data + cd data + unzip ../$f + cd .. +done + diff --git a/project/jni/application/openttd/AndroidBuild.sh b/project/jni/application/openttd/AndroidBuild.sh index 2285cd5a3..cc90f4615 100755 --- a/project/jni/application/openttd/AndroidBuild.sh +++ b/project/jni/application/openttd/AndroidBuild.sh @@ -6,16 +6,20 @@ VER=build [ -d openttd-$VER-$1 ] || mkdir -p openttd-$VER-$1/bin/baseset +export ARCH=$1 + +CPU_TYPE=32 +[ "$ARCH" = "arm64-v8a" ] && CPU_TYPE=64 + [ -e openttd-$VER-$1/objs/lang/english.lng ] || { - sh -c "cd openttd-$VER-$1 && ../src/configure --without-freetype --without-png --without-zlib --without-lzo2 --without-lzma --endian=LE && make lang && make -C objs/release endian_target.h depend && make -C objs/setting" || exit 1 + sh -c "cd openttd-$VER-$1 && ../src/configure --without-freetype --without-png --without-zlib --without-lzo2 --without-lzma --endian=LE --cpu-type=$CPU_TYPE && make lang && make -C objs/release endian_target.h depend && make -C objs/setting" || exit 1 rm -f openttd-$VER-$1/Makefile } || exit 1 -export ARCH=$1 [ -e openttd-$VER-$1/Makefile ] || { rm -f src/src/rev.cpp env PATH=$LOCAL_PATH/..:$PATH \ - env CLANG=1 ../setEnvironment-$1.sh sh -c "cd openttd-$VER-$1 && env ../src/configure --with-sdl --with-freetype --with-png --with-zlib --with-icu --with-libtimidity='pkg-config libtimidity' --with-lzo2=$LOCAL_PATH/../../../obj/local/$ARCH/liblzo2.so --prefix-dir='.' --data-dir='' --without-allegro --with-fontconfig --with-lzma --endian=LE" + env CLANG=1 ../setEnvironment-$1.sh sh -c "cd openttd-$VER-$1 && env ../src/configure --with-sdl --with-freetype --with-png --with-zlib --with-icu --with-libtimidity='pkg-config libtimidity' --with-lzo2=$LOCAL_PATH/../../../obj/local/$ARCH/liblzo2.so --prefix-dir='.' --data-dir='' --without-allegro --with-fontconfig --with-lzma --endian=LE --cpu-type=$CPU_TYPE" } || exit 1 NCPU=4 diff --git a/project/jni/application/openttd/build-pc.sh b/project/jni/application/openttd/build-pc.sh index c4ca31ab1..abc78360e 100755 --- a/project/jni/application/openttd/build-pc.sh +++ b/project/jni/application/openttd/build-pc.sh @@ -20,7 +20,7 @@ export LD_LIBRARY_PATH=/usr/local/lib if [ -z "$1" ]; then ./openttd -d 2 -r 854x480 -g opntitle.sav else - #gdb -ex run --args \ #valgrind --track-fds=yes --log-file=valgrind.log --leak-check=full \ - ./openttd -d 2 -r 854x480 #-g opntitle.sav + gdb -ex run --args \ + ./openttd -d 2 -r 854x480 -g opntitle.sav fi diff --git a/project/jni/application/openttd/readme.txt b/project/jni/application/openttd/readme.txt index 53f9e0b21..2221ff946 100644 --- a/project/jni/application/openttd/readme.txt +++ b/project/jni/application/openttd/readme.txt @@ -4,8 +4,6 @@ sudo apt-get install liblzma-dev Download my Git repo from https://github.com/pelya/commandergenius, then install Android SDK, Android NDK, and "ant" tool, then launch commands git submodule update --init --recursive - rm project/jni/application/src - ln -s openttd project/jni/application/src - ./changeAppSettings.sh -a - android update project -p project -then launch build.sh. That should be it. + build.sh openttd-jgrpp +You may need to run command + android update project -p project -t android-25 diff --git a/project/jni/application/openttd/src b/project/jni/application/openttd/src index ca629a74c..ebaa3964e 160000 --- a/project/jni/application/openttd/src +++ b/project/jni/application/openttd/src @@ -1 +1 @@ -Subproject commit ca629a74c84fc300255e57e507c0d375ac50668f +Subproject commit ebaa3964ed2558ac4f1883e67574e951036a4db8