Updated VCMI, added readme
This commit is contained in:
@@ -533,6 +533,7 @@ public class MainActivity extends Activity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ----- VCMI hack -----
|
||||||
try {
|
try {
|
||||||
System.out.println("libSDL: Extracting VCMI server");
|
System.out.println("libSDL: Extracting VCMI server");
|
||||||
|
|
||||||
@@ -603,6 +604,7 @@ public class MainActivity extends Activity {
|
|||||||
{
|
{
|
||||||
System.out.println("libSDL: Error: " + eee.toString());
|
System.out.println("libSDL: Error: " + eee.toString());
|
||||||
}
|
}
|
||||||
|
// ----- VCMI hack -----
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -264,6 +264,18 @@ class DemoRenderer extends GLSurfaceView_SDL.Renderer
|
|||||||
// Thread.currentThread().setPriority((Thread.currentThread().getPriority() + Thread.MIN_PRIORITY)/2);
|
// Thread.currentThread().setPriority((Thread.currentThread().getPriority() + Thread.MIN_PRIORITY)/2);
|
||||||
|
|
||||||
mGlContextLost = false;
|
mGlContextLost = false;
|
||||||
|
|
||||||
|
// ----- VCMI hack -----
|
||||||
|
try
|
||||||
|
{
|
||||||
|
File libpath = new File(context.getFilesDir(), "libvcmi.so");
|
||||||
|
System.load(libpath.getPath());
|
||||||
|
}
|
||||||
|
catch ( UnsatisfiedLinkError eee )
|
||||||
|
{
|
||||||
|
System.out.println("libSDL: error loading lib: " + eee.toString());
|
||||||
|
}
|
||||||
|
// ----- VCMI hack -----
|
||||||
|
|
||||||
String libs[] = { "application", "sdl_main" };
|
String libs[] = { "application", "sdl_main" };
|
||||||
try
|
try
|
||||||
@@ -275,13 +287,21 @@ class DemoRenderer extends GLSurfaceView_SDL.Renderer
|
|||||||
}
|
}
|
||||||
catch ( UnsatisfiedLinkError e )
|
catch ( UnsatisfiedLinkError e )
|
||||||
{
|
{
|
||||||
for(String l : libs)
|
System.out.println("libSDL: error loading lib: " + e.toString());
|
||||||
|
try
|
||||||
{
|
{
|
||||||
String libname = System.mapLibraryName(l);
|
for(String l : libs)
|
||||||
File libpath = new File(context.getCacheDir(), libname);
|
{
|
||||||
System.out.println("libSDL: loading lib " + libpath.getPath());
|
String libname = System.mapLibraryName(l);
|
||||||
System.load(libpath.getPath());
|
File libpath = new File(context.getCacheDir(), libname);
|
||||||
libpath.delete();
|
System.out.println("libSDL: loading lib " + libpath.getPath());
|
||||||
|
System.load(libpath.getPath());
|
||||||
|
libpath.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch ( UnsatisfiedLinkError ee )
|
||||||
|
{
|
||||||
|
System.out.println("libSDL: error loading lib: " + ee.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ Download my GIT repo from https://github.com/pelya/commandergenius,
|
|||||||
then install Android SDK 2.2, NDK r4b (NDK r5/r5b will not compile this),
|
then install Android SDK 2.2, NDK r4b (NDK r5/r5b will not compile this),
|
||||||
and "ant" tool, then launch commands
|
and "ant" tool, then launch commands
|
||||||
rm project/jni/application/src
|
rm project/jni/application/src
|
||||||
ln -s scummvm project/jni/application/src
|
ln -s vcmi project/jni/application/src
|
||||||
cd project && android update project -p .
|
cd project && android update project -p .
|
||||||
then download OpenTTD 1.1.1 into the dir project/jni/application/openttd/openttd
|
then download OpenTTD 1.1.1 into the dir project/jni/application/openttd/openttd
|
||||||
(or create a symlink to it if you already have downloaded it), then apply patch openttd-trunk-android.patch
|
(or create a symlink to it if you already have downloaded it), then apply patch openttd-trunk-android.patch
|
||||||
|
|||||||
@@ -63,15 +63,19 @@ CFLAGS="\
|
|||||||
`echo $APP_MODULES | sed \"s@\([-a-zA-Z0-9_.]\+\)@-I$LOCAL_PATH/../\1/include@g\"` \
|
`echo $APP_MODULES | sed \"s@\([-a-zA-Z0-9_.]\+\)@-I$LOCAL_PATH/../\1/include@g\"` \
|
||||||
$CRYSTAX_WCHAR_INCLUDE"
|
$CRYSTAX_WCHAR_INCLUDE"
|
||||||
|
|
||||||
SHARED=-shared
|
SHARED="-shared -Wl,-soname,libapplication.so"
|
||||||
if [ -n "$BUILD_EXECUTABLE" ]; then
|
if [ -n "$BUILD_EXECUTABLE" ]; then
|
||||||
SHARED=
|
SHARED=
|
||||||
fi
|
fi
|
||||||
|
if [ -n "$NO_SHARED_LIBS" ]; then
|
||||||
|
APP_SHARED_LIBS=
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
#-shared flag creates problems with damn libtool, so we're using -Wl,-shared instead
|
#-shared flag creates problems with damn libtool, so we're using -Wl,-shared instead
|
||||||
LDFLAGS="\
|
LDFLAGS="\
|
||||||
-fexceptions -frtti $SHARED \
|
-fexceptions -frtti $SHARED \
|
||||||
-Wl,-soname,libapplication.so --sysroot=$NDK/platforms/$PLATFORMVER/arch-arm \
|
--sysroot=$NDK/platforms/$PLATFORMVER/arch-arm \
|
||||||
`echo $APP_SHARED_LIBS | sed \"s@\([-a-zA-Z0-9_.]\+\)@$LOCAL_PATH/../../obj/local/armeabi/lib\1.so@g\"` \
|
`echo $APP_SHARED_LIBS | sed \"s@\([-a-zA-Z0-9_.]\+\)@$LOCAL_PATH/../../obj/local/armeabi/lib\1.so@g\"` \
|
||||||
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libc.so \
|
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libc.so \
|
||||||
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libm.so \
|
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libm.so \
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ AppVersionName="0.85.01"
|
|||||||
CompiledLibraries="sdl_mixer sdl_image sdl_ttf avutil avcore avcodec avformat swscale boost_program_options boost_filesystem boost_iostreams boost_system boost_thread"
|
CompiledLibraries="sdl_mixer sdl_image sdl_ttf avutil avcore avcodec avformat swscale boost_program_options boost_filesystem boost_iostreams boost_system boost_thread"
|
||||||
CustomBuildScript=n
|
CustomBuildScript=n
|
||||||
AppCflags='-DDATA_DIR=\\\"/sdcard/app-data/eu.vcmi\\\" -DBIN_DIR=\\\"/data/data/eu.vcmi/files\\\" -DLIB_DIR=\\\"/data/data/eu.vcmi/files\\\" -DWITH_AVCODEC_DECODE_VIDEO2=1'
|
AppCflags='-DDATA_DIR=\\\"/sdcard/app-data/eu.vcmi\\\" -DBIN_DIR=\\\"/data/data/eu.vcmi/files\\\" -DLIB_DIR=\\\"/data/data/eu.vcmi/files\\\" -DWITH_AVCODEC_DECODE_VIDEO2=1'
|
||||||
AppLdflags='-lz'
|
AppLdflags='-lz -Ljni/application/vcmi -lvcmi'
|
||||||
AppSubdirsBuild='vcmi vcmi/client vcmi/lib'
|
AppSubdirsBuild='vcmi vcmi/client'
|
||||||
AppCmdline=''
|
AppCmdline=''
|
||||||
ReadmeText='^You may press "Home" now - the data will be downloaded in background'
|
ReadmeText='^You may press "Home" now - the data will be downloaded in background'
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
BIN
project/jni/application/vcmi/AndroidData/vcmiserver1
Normal file
BIN
project/jni/application/vcmi/AndroidData/vcmiserver1
Normal file
Binary file not shown.
BIN
project/jni/application/vcmi/AndroidData/vcmiserver2
Normal file
BIN
project/jni/application/vcmi/AndroidData/vcmiserver2
Normal file
Binary file not shown.
@@ -1,34 +1,68 @@
|
|||||||
|
|
||||||
$(shell mkdir -p out/vcmi/lib out/vcmi/server)
|
$(shell mkdir -p debug out/vcmi/lib out/vcmi/server out/vcmi/AI/StupidAI out/vcmi/AI/GeniusAI)
|
||||||
|
|
||||||
LOCAL_PATH=$(shell dirname $0)
|
LOCAL_PATH=$(shell dirname $0)
|
||||||
LOCAL_PATH=`cd $LOCAL_PATH && pwd`
|
LOCAL_PATH=`cd $LOCAL_PATH && pwd`
|
||||||
|
|
||||||
GCC_PREFIX=$(if $(shell which ndk-build | grep 'android-ndk-r5'),arm-linux-androideabi,arm-eabi)
|
GCC_PREFIX=$(if $(shell which ndk-build | grep 'android-ndk-r5'),arm-linux-androideabi,arm-eabi)
|
||||||
|
|
||||||
SOURCES=$(wildcard vcmi/lib/*.cpp vcmi/server/*.cpp vcmi/CConsoleHandler.cpp vcmi/CThreadHelper.cpp)
|
SOURCES_LIB=$(wildcard vcmi/lib/*.cpp vcmi/CConsoleHandler.cpp vcmi/CThreadHelper.cpp)
|
||||||
OBJS=$(patsubst %.cpp, out/%.o, $(SOURCES))
|
OBJS_LIB=$(patsubst %.cpp, out/%.o, $(SOURCES_LIB))
|
||||||
$(warning SOURCES $(SOURCES))
|
|
||||||
$(warning OBJS $(OBJS))
|
|
||||||
|
|
||||||
vcmiserver: $(OBJS)
|
SOURCES_SERVER=$(wildcard vcmi/server/*.cpp)
|
||||||
env BUILD_EXECUTABLE=1 ../setEnvironment.sh sh -c \
|
OBJS_SERVER=$(patsubst %.cpp, out/%.o, $(SOURCES_SERVER))
|
||||||
"$(GCC_PREFIX)-g++ \
|
|
||||||
\$$LDFLAGS \
|
|
||||||
$^ -o $@ \
|
|
||||||
-lboost_filesystem -lboost_iostreams -lboost_system -lboost_thread"
|
|
||||||
mkdir -p debug
|
|
||||||
cp $@ debug/$@
|
|
||||||
$(GCC_PREFIX)-strip $@
|
|
||||||
|
|
||||||
$(OBJS): out/%.o: %.cpp
|
SOURCES_STUPIDAI=$(wildcard vcmi/AI/StupidAI/*.cpp)
|
||||||
|
OBJS_STUPIDAI=$(patsubst %.cpp, out/%.o, $(SOURCES_STUPIDAI))
|
||||||
|
|
||||||
|
SOURCES_GENIUSAI=$(filter-out %/ExpertSystem.cpp, $(wildcard vcmi/AI/GeniusAI/*.cpp))
|
||||||
|
OBJS_GENIUSAI=$(patsubst %.cpp, out/%.o, $(SOURCES_GENIUSAI))
|
||||||
|
|
||||||
|
all: AndroidData/vcmiserver0
|
||||||
|
|
||||||
|
AndroidData/vcmiserver0: vcmiserver.zip
|
||||||
|
split -b 1048576 -d -a 1 $< AndroidData/vcmiserver
|
||||||
|
|
||||||
|
vcmiserver.zip: vcmiserver libvcmi.so GeniusAI.so StupidAI.so
|
||||||
|
rm -f $@
|
||||||
|
zip $@ $^
|
||||||
|
|
||||||
|
$(OBJS_SERVER) $(OBJS_LIB) $(OBJS_GENIUSAI) $(OBJS_STUPIDAI): out/%.o: %.cpp
|
||||||
../setEnvironment.sh sh -c \
|
../setEnvironment.sh sh -c \
|
||||||
"$(GCC_PREFIX)-g++ \
|
"$(GCC_PREFIX)-g++ \
|
||||||
-c \$$CXXFLAGS -Ivcmi -Ivcmi/lib -Ivcmi/server \
|
-c \$$CXXFLAGS -Ivcmi -Ivcmi/lib \
|
||||||
-DDATA_DIR=\\\"/sdcard/app-data/eu.vcmi\\\" \
|
-DDATA_DIR=\\\"/sdcard/app-data/eu.vcmi\\\" \
|
||||||
-DBIN_DIR=\\\"/data/data/eu.vcmi/files\\\" \
|
-DBIN_DIR=\\\"/data/data/eu.vcmi/files\\\" \
|
||||||
-DLIB_DIR=\\\"/data/data/eu.vcmi/files\\\" \
|
-DLIB_DIR=\\\"/data/data/eu.vcmi/files\\\" \
|
||||||
-DWITH_AVCODEC_DECODE_VIDEO2=1 \
|
-DWITH_AVCODEC_DECODE_VIDEO2=1 \
|
||||||
$< -o $@"
|
$< -o $@"
|
||||||
|
|
||||||
|
vcmiserver: $(OBJS_SERVER) $(OBJS_LIB)
|
||||||
|
env BUILD_EXECUTABLE=1 NO_SHARED_LIBS=1 ../setEnvironment.sh sh -c \
|
||||||
|
"$(GCC_PREFIX)-g++ \
|
||||||
|
\$$LDFLAGS -L. \
|
||||||
|
$^ -o $@ \
|
||||||
|
-lboost_filesystem -lboost_iostreams -lboost_system -lboost_thread" && \
|
||||||
|
cp $@ debug/$@ && \
|
||||||
|
$(GCC_PREFIX)-strip $@
|
||||||
|
|
||||||
|
LINK_LIB= \
|
||||||
|
env BUILD_EXECUTABLE=1 NO_SHARED_LIBS=1 ../setEnvironment.sh sh -c \
|
||||||
|
"$(GCC_PREFIX)-g++ \
|
||||||
|
-shared \$$LDFLAGS -L. \
|
||||||
|
$^ -o $@ \
|
||||||
|
-lboost_filesystem -lboost_iostreams -lboost_system -lboost_thread" && \
|
||||||
|
cp $@ debug/$@ && \
|
||||||
|
$(GCC_PREFIX)-strip $@
|
||||||
|
|
||||||
|
GeniusAI.so: $(OBJS_GENIUSAI) -lvcmi
|
||||||
|
$(LINK_LIB)
|
||||||
|
|
||||||
|
StupidAI.so: $(OBJS_STUPIDAI) -lvcmi
|
||||||
|
$(LINK_LIB)
|
||||||
|
|
||||||
|
libvcmi.so: $(OBJS_LIB)
|
||||||
|
$(LINK_LIB)
|
||||||
|
|
||||||
|
.PHONY: -lvcmi
|
||||||
|
-lvcmi: libvcmi.so
|
||||||
|
|||||||
13
project/jni/application/vcmi/readme.txt
Normal file
13
project/jni/application/vcmi/readme.txt
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Quick compilation guide:
|
||||||
|
Download my GIT repo from https://github.com/pelya/commandergenius,
|
||||||
|
then install Android SDK 2.2, NDK r5c from http://developer.android.com,
|
||||||
|
and "ant" tool, then launch commands
|
||||||
|
rm project/jni/application/src
|
||||||
|
ln -s vcmi project/jni/application/src
|
||||||
|
cd project && android update project -p .
|
||||||
|
then download VCMI into the dir project/jni/application/vcmi/vcmi
|
||||||
|
(or create a symlink to it if you already have downloaded it), then apply patch vcmi-android.diff,
|
||||||
|
launch "make" from directory project/jni/application/vcmi (it will create some shared libs),
|
||||||
|
then launch build.sh.
|
||||||
|
To run it you should have complete installation of Heroes 3: Wake of Gods on your SD card on your device,
|
||||||
|
in the directory app-data/eu.vcmi
|
||||||
Reference in New Issue
Block a user