Merge remote-tracking branch 'upstream/develop' into develop
This commit is contained in:
commit
2eb3f7f6d3
175
CMakeLists.txt
175
CMakeLists.txt
|
@ -16,9 +16,9 @@ endif(NOT DEFINED CMAKE_BUILD_TYPE)
|
|||
# add additional CMake modules
|
||||
MESSAGE(STATUS "CMAKE_SOURCE_DIR = ${CMAKE_SOURCE_DIR}")
|
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/mk/cmake/Modules)
|
||||
|
||||
MESSAGE(STATUS "Build type for this compile will be: ${CMAKE_BUILD_TYPE}")
|
||||
|
||||
IF(CMAKE_BUILD_TYPE)
|
||||
MESSAGE(STATUS "Build type for this compile will be: ${CMAKE_BUILD_TYPE}")
|
||||
ENDIF()
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
SET(CMAKE_COMPILER_IS_GNUCXX "YES")
|
||||
# ADD_DEFINITIONS("-Qunused-arguments -Wno-switch")
|
||||
|
@ -31,6 +31,7 @@ OPTION(BUILD_MEGAGLEST_MAP_EDITOR "Build map editor" ON)
|
|||
OPTION(BUILD_MEGAGLEST "Build MegaGlest" ON)
|
||||
OPTION(BUILD_MEGAGLEST_TESTS "Build MegaGlest Unit Tests" OFF)
|
||||
OPTION(WITH_VLC "Use libVLC to play videos" ON)
|
||||
OPTION(SINGLE_INSTALL_DIRECTORY "Use single install directory for everything. It is useful for example for MacOS cpack bundles." OFF)
|
||||
|
||||
FIND_PROGRAM(HELP2MAN "help2man")
|
||||
|
||||
|
@ -45,42 +46,38 @@ include(${CMAKE_SOURCE_DIR}/mk/cmake/Modules/SpecialMacros.cmake)
|
|||
|
||||
SET(PKG_NAME "megaglest")
|
||||
# read version
|
||||
file(READ ${PROJECT_SOURCE_DIR}/source/glest_game/facilities/game_util.cpp MG_VERSION_H_CONTENTS)
|
||||
# find the version string
|
||||
#
|
||||
FILE(READ ${PROJECT_SOURCE_DIR}/source/glest_game/facilities/game_util.cpp MG_VERSION_H_CONTENTS)
|
||||
MESSAGE(STATUS "Determining version number system type to use:")
|
||||
string (REGEX MATCH "\"v([0-9]).([0-9]).([0-9].*)[^\";]" _threePartMatch ${MG_VERSION_H_CONTENTS})
|
||||
if(NOT _threePartMatch)
|
||||
MESSAGE(STATUS "** Trying 2 part versioning] ")
|
||||
string (REGEX MATCH "\"v([0-9]).([0-9].*)[^\";]" _threePartMatch ${MG_VERSION_H_CONTENTS})
|
||||
|
||||
if (_threePartMatch)
|
||||
# parse the parts of the version string
|
||||
STRING(REGEX REPLACE "\"v([0-9])\\.[0-9].*" "\\1" VER_MAJOR "${_threePartMatch}")
|
||||
STRING(REGEX REPLACE "\"v[0-9]\\.([0-9]).*" "\\1" VER_MINOR "${_threePartMatch}")
|
||||
|
||||
MESSAGE(STATUS "MegaGlest Version is [${VER_MAJOR}.${VER_MINOR}] ")
|
||||
endif()
|
||||
# parse the version string
|
||||
else()
|
||||
MESSAGE(STATUS "** Trying 3 part versioning] ")
|
||||
if (_threePartMatch)
|
||||
# parse the parts of the version string
|
||||
STRING(REGEX REPLACE "\"v([0-9])\\.[0-9]\\.[0-9].*" "\\1" VER_MAJOR "${_threePartMatch}")
|
||||
STRING(REGEX REPLACE "\"v[0-9]\\.([0-9])\\.[0-9].*" "\\1" VER_MINOR "${_threePartMatch}")
|
||||
STRING(REGEX REPLACE "\"v[0-9]\\.[0-9]\\.([0-9]).*" "\\1" VER_RELEASE "${_threePartMatch}")
|
||||
|
||||
#MESSAGE(STATUS "******* TEST3 MegaGlest Version #1 is [${VER_MAJOR}] ")
|
||||
#MESSAGE(STATUS "******* TEST3 MegaGlest Version #2 is [${VER_MINOR}] ")
|
||||
#MESSAGE(STATUS "******* TEST3 MegaGlest Version #3 is [${VER_RELEASE}] ")
|
||||
|
||||
MESSAGE(STATUS "MegaGlest Version is [${VER_MAJOR}.${VER_MINOR}.${VER_RELEASE}] ")
|
||||
endif()
|
||||
endif()
|
||||
SET(Begin_otv_string "string glestVersionString")
|
||||
STRING(REGEX MATCH "${Begin_otv_string}[ \t]*=[ \t]*\"[ \t]*v[ \t]*([0-9][^\\.]*)(\\.)([^\\.]*)(\\.)([^\"\\.;]*)\";" _threePartMatch "${MG_VERSION_H_CONTENTS}")
|
||||
STRING(REGEX MATCH "${Begin_otv_string}[ \t]*=[ \t]*\"[ \t]*v[ \t]*([0-9][^\\.]*)(\\.)([^\"\\.;]*)\";" _twoPartMatch "${MG_VERSION_H_CONTENTS}")
|
||||
STRING(REGEX MATCH "${Begin_otv_string}[ \t]*=[ \t]*\"[ \t]*v[ \t]*([0-9][^\"\\.;]*)\";" _onePartMatch "${MG_VERSION_H_CONTENTS}")
|
||||
IF(_threePartMatch)
|
||||
MESSAGE(STATUS "** Trying 3 part versioning ")
|
||||
STRING(REGEX REPLACE "[^=]*=[ \t]*\"[ \t]*v[ \t]*([0-9][^\\.]*)\\.[^\\.]*\\..*" "\\1" VER_MAJOR "${_threePartMatch}")
|
||||
STRING(REGEX REPLACE "[^=]*=[ \t]*\"[ \t]*v[ \t]*[0-9][^\\.]*\\.([^\\.]*)\\..*" "\\1" VER_MINOR "${_threePartMatch}")
|
||||
STRING(REGEX REPLACE "[^=]*=[ \t]*\"[ \t]*v[ \t]*[0-9][^\\.]*\\.[^\\.]*\\.([^\"\\.;]*).*" "\\1" VER_PATCH "${_threePartMatch}")
|
||||
SET(MEGAGLEST_VERSION "${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}")
|
||||
ELSEIF(_twoPartMatch)
|
||||
MESSAGE(STATUS "** Trying 2 part versioning ")
|
||||
STRING(REGEX REPLACE "[^=]*=[ \t]*\"[ \t]*v[ \t]*([0-9][^\\.]*)\\..*" "\\1" VER_MAJOR "${_twoPartMatch}")
|
||||
STRING(REGEX REPLACE "[^=]*=[ \t]*\"[ \t]*v[ \t]*[0-9][^\\.]*\\.([^\"\\.;]*).*" "\\1" VER_MINOR "${_twoPartMatch}")
|
||||
SET(VER_PATCH "0")
|
||||
SET(MEGAGLEST_VERSION "${VER_MAJOR}.${VER_MINOR}")
|
||||
ELSEIF(_onePartMatch)
|
||||
MESSAGE(STATUS "** Trying 1 part versioning ")
|
||||
STRING(REGEX REPLACE "[^=]*=[ \t]*\"[ \t]*v[ \t]*([0-9][^\"\\.;]*).*" "\\1" VER_MAJOR "${_onePartMatch}")
|
||||
SET(VER_MINOR "0")
|
||||
SET(VER_PATCH "0")
|
||||
SET(MEGAGLEST_VERSION "${VER_MAJOR}")
|
||||
ENDIF()
|
||||
FOREACH(ver_var VER_MAJOR;VER_MINOR;VER_PATCH;MEGAGLEST_VERSION)
|
||||
STRING(REGEX REPLACE "[ \t]" "" "${ver_var}" "${${ver_var}}")
|
||||
ENDFOREACH()
|
||||
MESSAGE(STATUS "Detected MegaGlest Version is [v${MEGAGLEST_VERSION}] ")
|
||||
|
||||
## Compiler flags, CPACK configuration and other Apple specific code.
|
||||
IF(APPLE)
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++")
|
||||
include(${PROJECT_SOURCE_DIR}/mk/macosx/CMakeLists.txt)
|
||||
ENDIF(APPLE)
|
||||
|
||||
|
@ -215,17 +212,17 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
|
|||
SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -s") ## Strip binary
|
||||
ENDIF()
|
||||
|
||||
# Get the git revision info for the binary
|
||||
SET(HAS_GIT "FALSE")
|
||||
SET(GIT_LIVE_REV_CMD "")
|
||||
# Get the git revision info for the binary
|
||||
SET(HAS_GIT "FALSE")
|
||||
SET(GIT_LIVE_REV_CMD "")
|
||||
|
||||
OPTION(WANT_GIT_STAMP "use git revision stamp" ON)
|
||||
IF(WANT_GIT_STAMP)
|
||||
# The stuff below gets GIT Global Revision # but ONLY when calling cmake!
|
||||
# the FindGit.cmake module is part of the standard distribution
|
||||
include(FindGit)
|
||||
|
||||
IF(GIT_FOUND)
|
||||
|
||||
IF(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git/")
|
||||
SET(HAS_GIT "TRUE")
|
||||
MESSAGE(STATUS "Found GIT and using GIT version stamping...")
|
||||
|
||||
|
@ -245,54 +242,81 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
|
|||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
SET(GIT_LIVE_REV_CMD "`git rev-list HEAD --count`.`git log -1 --format=%h`")
|
||||
SET(GIT_LIVE_REV_CMD "`cd '${PROJECT_SOURCE_DIR}' && git rev-list HEAD --count`.`cd '${PROJECT_SOURCE_DIR}' && git log -1 --format=%h`")
|
||||
|
||||
MESSAGE(STATUS "Using GIT revision stamp: [${GIT_COMMIT_COUNT}.${GIT_SHA1}] CMD [${GIT_LIVE_REV_CMD}]")
|
||||
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
IF(CMAKE_GENERATOR STREQUAL Xcode)
|
||||
SET(GIT_VERSION_CMD "-DGITVERSION='\\\\'${GIT_LIVE_REV_CMD}\\\\''")
|
||||
ELSE()
|
||||
SET(GIT_VERSION_CMD "-DGITVERSION='\\\"${GIT_LIVE_REV_CMD}\\\"'")
|
||||
IF(CMAKE_GENERATOR STREQUAL Xcode)
|
||||
SET(GIT_VERSION_CMD "-DGITVERSION='\\\\'${GIT_COMMIT_COUNT}.${GIT_SHA1}\\\\''")
|
||||
ELSE()
|
||||
SET(GIT_VERSION_CMD "-DGITVERSION='\\\"${GIT_LIVE_REV_CMD}\\\"'")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
IF(CMAKE_INSTALL_PREFIX STREQUAL "")
|
||||
MESSAGE(STATUS "*NOTE: NOT USING a Custom Data Install Path...")
|
||||
ELSE()
|
||||
IF(SINGLE_INSTALL_DIRECTORY AND NOT MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH)
|
||||
SET(MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH "megaglest-game/" CACHE STRING "The single directory installation path for game (this is appended to the CMAKE_INSTALL_PREFIX)")
|
||||
ENDIF()
|
||||
IF(NOT MEGAGLEST_BIN_INSTALL_PATH)
|
||||
SET(MEGAGLEST_BIN_INSTALL_PATH "bin/" CACHE STRING "The installation path for binaries (this is appended to the CMAKE_INSTALL_PREFIX)")
|
||||
IF(NOT SINGLE_INSTALL_DIRECTORY)
|
||||
SET(MEGAGLEST_BIN_INSTALL_PATH "bin/" CACHE STRING "The installation path for binaries (this is appended to the CMAKE_INSTALL_PREFIX)")
|
||||
ELSE()
|
||||
SET(MEGAGLEST_BIN_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(NOT MEGAGLEST_DATA_INSTALL_PATH)
|
||||
SET(MEGAGLEST_DATA_INSTALL_PATH "share/megaglest/" CACHE STRING "The installation path for data files (this is appended to the CMAKE_INSTALL_PREFIX)")
|
||||
IF(NOT SINGLE_INSTALL_DIRECTORY)
|
||||
SET(MEGAGLEST_DATA_INSTALL_PATH "share/megaglest/" CACHE STRING "The installation path for data files (this is appended to the CMAKE_INSTALL_PREFIX)")
|
||||
ELSE()
|
||||
SET(MEGAGLEST_DATA_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(NOT MEGAGLEST_DESKTOP_INSTALL_PATH)
|
||||
SET(MEGAGLEST_DESKTOP_INSTALL_PATH "share/applications/" CACHE STRING "The installation path for desktop files (this is appended to the CMAKE_INSTALL_PREFIX)")
|
||||
IF(NOT SINGLE_INSTALL_DIRECTORY)
|
||||
SET(MEGAGLEST_DESKTOP_INSTALL_PATH "share/applications/" CACHE STRING "The installation path for desktop files (this is appended to the CMAKE_INSTALL_PREFIX)")
|
||||
ELSE()
|
||||
SET(MEGAGLEST_DESKTOP_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(NOT MEGAGLEST_ICON_INSTALL_PATH)
|
||||
SET(MEGAGLEST_ICON_INSTALL_PATH "share/pixmaps/" CACHE STRING "The installation path for icon files (this is appended to the CMAKE_INSTALL_PREFIX)")
|
||||
IF(NOT SINGLE_INSTALL_DIRECTORY)
|
||||
SET(MEGAGLEST_ICON_INSTALL_PATH "share/pixmaps/" CACHE STRING "The installation path for icon files (this is appended to the CMAKE_INSTALL_PREFIX)")
|
||||
ELSE()
|
||||
SET(MEGAGLEST_ICON_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(NOT MEGAGLEST_MANPAGE_INSTALL_PATH)
|
||||
SET(MEGAGLEST_MANPAGE_INSTALL_PATH "share/man/man6/" CACHE STRING "The installation path for manpage files (this is appended to the CMAKE_INSTALL_PREFIX)")
|
||||
IF(NOT MEGAGLEST_MANPAGE_INSTALL_PATH AND NOT SINGLE_INSTALL_DIRECTORY)
|
||||
IF(NOT SINGLE_INSTALL_DIRECTORY)
|
||||
SET(MEGAGLEST_MANPAGE_INSTALL_PATH "share/man/man6/" CACHE STRING "The installation path for manpage files (this is appended to the CMAKE_INSTALL_PREFIX)")
|
||||
ELSE()
|
||||
SET(MEGAGLEST_MANPAGE_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(NOT CUSTOM_DATA_INSTALL_PATH AND NOT SINGLE_INSTALL_DIRECTORY)
|
||||
SET(CUSTOM_DATA_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}/${MEGAGLEST_DATA_INSTALL_PATH}" CACHE STRING "The FULL installation path for data files (this is build automatically by combining CMAKE_INSTALL_PREFIX and MEGAGLEST_DATA_INSTALL_PATH)")
|
||||
SET(CUSTOM_DATA_INSTALL_PATH_VALUE "-DCUSTOM_DATA_INSTALL_PATH=${CUSTOM_DATA_INSTALL_PATH}")
|
||||
ENDIF()
|
||||
|
||||
IF(NOT CUSTOM_DATA_INSTALL_PATH)
|
||||
SET (CUSTOM_DATA_INSTALL_PATH "\"${CMAKE_INSTALL_PREFIX}/${MEGAGLEST_DATA_INSTALL_PATH}\"" CACHE STRING "The FULL installation path for data files (this is build automatically by combining CMAKE_INSTALL_PREFIX and MEGAGLEST_DATA_INSTALL_PATH)")
|
||||
ENDIF()
|
||||
SET(CUSTOM_DATA_INSTALL_PATH_VALUE "-DCUSTOM_DATA_INSTALL_PATH=${CUSTOM_DATA_INSTALL_PATH}")
|
||||
|
||||
SET(PKG_DATADIR ${CUSTOM_DATA_INSTALL_PATH_VALUE})
|
||||
SET(PKG_BINDIR ${MEGAGLEST_BIN_INSTALL_PATH})
|
||||
|
||||
SET(PKG_DATADIR ${CUSTOM_DATA_INSTALL_PATH_VALUE})
|
||||
SET(PKG_BINDIR ${MEGAGLEST_BIN_INSTALL_PATH})
|
||||
MESSAGE(STATUS "*NOTE: Custom Data Install Path is [${CUSTOM_DATA_INSTALL_PATH}]")
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_CXX_FLAGS_NONE "${CMAKE_CXX_FLAGS_NONE} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE}")
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE}")
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE}")
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE}")
|
||||
SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${GIT_VERSION_CMD} ${CUSTOM_DATA_INSTALL_PATH_VALUE}")
|
||||
IF(HAS_GIT STREQUAL "TRUE")
|
||||
SET(CMAKE_CXX_FLAGS_NONE "${CMAKE_CXX_FLAGS_NONE} ${GIT_VERSION_CMD}")
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${GIT_VERSION_CMD}")
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${GIT_VERSION_CMD}")
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${GIT_VERSION_CMD}")
|
||||
SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${GIT_VERSION_CMD}")
|
||||
ENDIF()
|
||||
SET(CMAKE_CXX_FLAGS_NONE "${CMAKE_CXX_FLAGS_NONE} ${CUSTOM_DATA_INSTALL_PATH_VALUE}")
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${CUSTOM_DATA_INSTALL_PATH_VALUE}")
|
||||
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${CUSTOM_DATA_INSTALL_PATH_VALUE}")
|
||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${CUSTOM_DATA_INSTALL_PATH_VALUE}")
|
||||
SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${CUSTOM_DATA_INSTALL_PATH_VALUE}")
|
||||
|
||||
# We do some funky character escaping to get the right stuff written out to
|
||||
# the final Makefile so we get the GIT Global Revsion #
|
||||
|
@ -308,9 +332,9 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
|
|||
message("CMAKE_CXX_FLAGS_DEBUG: ${CMAKE_CXX_FLAGS_DEBUG}")
|
||||
ELSEIF( CMAKE_BUILD_TYPE STREQUAL Release )
|
||||
message("CMAKE_CXX_FLAGS_RELEASE: ${CMAKE_CXX_FLAGS_RELEASE}")
|
||||
ELSEIF( CMAKE_BUILD_TYPE STREQUAL RELWITHDEBINFO )
|
||||
ELSEIF( CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo )
|
||||
message("CMAKE_CXX_FLAGS_RELWITHDEBINFO: ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
||||
ELSEIF( CMAKE_BUILD_TYPE STREQUAL MINSIZEREL )
|
||||
ELSEIF( CMAKE_BUILD_TYPE STREQUAL MinSizeRel )
|
||||
message("CMAKE_CXX_FLAGS_MINSIZEREL: ${CMAKE_CXX_FLAGS_MINSIZEREL}")
|
||||
|
||||
ENDIF()
|
||||
|
@ -388,9 +412,10 @@ SET(CPACK_PACKAGE_VENDOR "megaglest.org")
|
|||
#SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
|
||||
#SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
|
||||
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "megaglest")
|
||||
SET(CPACK_PACKAGE_VERSION_MAJOR ${VER_MAJOR})
|
||||
SET(CPACK_PACKAGE_VERSION_MINOR ${VER_MINOR})
|
||||
SET(CPACK_PACKAGE_VERSION_PATCH ${VER_RELEASE})
|
||||
SET(CPACK_PACKAGE_VERSION "${MEGAGLEST_VERSION}")
|
||||
SET(CPACK_PACKAGE_VERSION_MAJOR "${VER_MAJOR}")
|
||||
SET(CPACK_PACKAGE_VERSION_MINOR "${VER_MINOR}")
|
||||
SET(CPACK_PACKAGE_VERSION_PATCH "${VER_PATCH}")
|
||||
|
||||
|
||||
# Debian specific generator options
|
||||
|
@ -417,6 +442,7 @@ IF(NOT DEFINED CPACK_GENERATOR)
|
|||
libxml2-dev,
|
||||
libz-dev,
|
||||
libfribidi-dev")
|
||||
# FIXME ^ cpack configuration should be fixed and tested
|
||||
|
||||
#find_program(DPKG_PROGRAM dpkg DOC "dpkg program of Debian-based systems")
|
||||
#if(DPKG_PROGRAM)
|
||||
|
@ -441,12 +467,9 @@ get_directory_property( DirDefs DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITION
|
|||
foreach( d ${DirDefs} )
|
||||
message( STATUS "=====> Found Define: " ${d} )
|
||||
endforeach()
|
||||
message( STATUS "=====> DirDefs: " ${DirDefs} )
|
||||
#MESSAGE( STATUS "=====> DirDefs: " ${DirDefs} )
|
||||
#MESSAGE(STATUS "*** Compiler definitions are [${COMPILE_DEFINITIONS}]")
|
||||
|
||||
MARK_AS_ADVANCED(SDLMAIN_LIBRARY)
|
||||
MARK_AS_ADVANCED(SDL_INCLUDE_DIR)
|
||||
MARK_AS_ADVANCED(SDL_LIBRARY)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 12bb08b14d36fb86a327bcf480872884ce9121ec
|
||||
Subproject commit 0d7df6aa3c71b2c85183dbb50c9dbd426fe073db
|
|
@ -11,30 +11,14 @@ Source and Data Archives:
|
|||
=========================
|
||||
|
||||
There are 3 archives that are built for a given release (starting with versions
|
||||
after 3.6.0). In order to build a release you must have all files checked out
|
||||
of svn for that specific release (example: trunk)
|
||||
|
||||
To set the current version for release, modify the file mk/linux/mg-version.sh
|
||||
and change the two variables:
|
||||
|
||||
OLD_MG_VERSION=3.6.0.1
|
||||
MG_VERSION=3.6.0.2
|
||||
|
||||
*Note: Please ensure the MG_VERSION variable matches the version set in the
|
||||
MegaGlest binary, this can be checked by running: ./megaglest --version
|
||||
It is possible to have the mg-version.sh script NOT match the binary in cases
|
||||
where we are releasing binary compatible updates to the archives in which case
|
||||
we typically use a forth digit in the version # (as seen above)
|
||||
|
||||
After setting the correct verions in mg-version.sh you should call:
|
||||
./mg-version-synch.sh
|
||||
|
||||
This will update associated installers to use the correct version stamps
|
||||
|
||||
To set the actual binary to the desired version you must manually edit
|
||||
glest_game/facilities/game_util.cpp
|
||||
const string glestVersionString = "v3.8-dev";
|
||||
after 3.6.0). In order to build a release you must have all git repositories
|
||||
checked out for that specific release (example, tag: 3.11.0) or downloaded all
|
||||
source archives/"tarballs" which in their name have same version, equal to tag.
|
||||
|
||||
To set the current version for release, modify the file source/version.txt
|
||||
and change there available variables, then run mk/linux/mg-version-synch.sh script
|
||||
for updating version number everywhere where it is needed and then you only have
|
||||
to commit changed files.
|
||||
|
||||
#1. The source archive:
|
||||
This archive contains source code for binary compilation of the application and
|
||||
|
|
|
@ -20,9 +20,10 @@ MESSAGE(STATUS "** Searching for library: FriBiDi...")
|
|||
# Set variable in temp var, otherwise FIND_PATH might fail
|
||||
# unset isn't present in the required version of cmake.
|
||||
FIND_PATH(xFRIBIDI_INCLUDE_DIR fribidi.h
|
||||
/usr/local/include/fribidi
|
||||
/usr/include/fribidi
|
||||
)
|
||||
/usr/local/include/fribidi
|
||||
/usr/include/fribidi
|
||||
/opt/local/include/fribidi
|
||||
)
|
||||
set(FRIBIDI_INCLUDE_DIR ${xFRIBIDI_INCLUDE_DIR})
|
||||
|
||||
SET(FRIBIDI_NAMES ${FRIBIDI_NAMES} fribidi libfribidi)
|
||||
|
@ -35,8 +36,10 @@ ENDIF()
|
|||
MESSAGE(STATUS "** Searching for library names: [${FRIBIDI_NAMES}] ...")
|
||||
|
||||
FIND_LIBRARY(FRIBIDI_LIBRARY
|
||||
NAMES ${FRIBIDI_NAMES}
|
||||
PATHS /usr/lib /usr/local/lib
|
||||
NAMES ${FRIBIDI_NAMES}
|
||||
PATHS /usr/lib
|
||||
/usr/local/lib
|
||||
/opt/local/lib
|
||||
)
|
||||
|
||||
IF (FRIBIDI_LIBRARY AND FRIBIDI_INCLUDE_DIR)
|
||||
|
|
|
@ -46,7 +46,9 @@ OPTION(FORCE_IRCCLIENT_DYNAMIC_LIBS "force the use of dynamic libs for IRCCLIENT
|
|||
MESSAGE(STATUS "Force IRCCLient dynamic: ${FORCE_IRCCLIENT_DYNAMIC_LIBS}")
|
||||
|
||||
IF(WANT_STATIC_LIBS AND NOT FORCE_IRCCLIENT_DYNAMIC_LIBS)
|
||||
SET(IRCCLIENT_FIND_LIBRARIES libircclient.a)
|
||||
SET(IRCCLIENT_FIND_LIBRARIES libircclient.a ircclient.a)
|
||||
ELSE()
|
||||
SET(IRCCLIENT_FIND_LIBRARIES libircclient ircclient)
|
||||
ENDIF()
|
||||
|
||||
FIND_LIBRARY(IRCCLIENT_LIBRARY
|
||||
|
|
|
@ -140,6 +140,16 @@ echo ' [ '"$distribution"' ] [ '"$release"' ] [ '"$codename"' ] [ '"$architectur
|
|||
|
||||
|
||||
case $distribution in
|
||||
Debian)
|
||||
case $release in
|
||||
6.*|7.*) ;;
|
||||
*)
|
||||
echo 'Turning ON dynamic FTGL, LUA, JPEG, PNG, IRCCLIENT ...'
|
||||
EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DFTGL_STATIC=OFF -DLUA_STATIC=OFF -DJPEG_STATIC=OFF -DPNG_STATIC=OFF -DFORCE_IRCCLIENT_DYNAMIC_LIBS=ON"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
SuSE|SUSE?LINUX|Opensuse)
|
||||
case $release in
|
||||
*)
|
||||
|
|
|
@ -59,6 +59,7 @@ cp *.bmp "$RELEASEDIR/"
|
|||
cp *.png "$RELEASEDIR/"
|
||||
cp *.xpm "$RELEASEDIR/"
|
||||
cp {../shared/,}*.ini "$RELEASEDIR/"
|
||||
if [ -e "$RELEASEDIR/glest-dev.ini" ]; then rm "$RELEASEDIR/glest-dev.ini"; fi
|
||||
cp megaglest "$RELEASEDIR/"
|
||||
cp megaglest_editor "$RELEASEDIR/"
|
||||
cp megaglest_g3dviewer "$RELEASEDIR/"
|
||||
|
|
|
@ -7,16 +7,26 @@
|
|||
# Consider setting this for small packages if there's plenty of RAM and CPU available:
|
||||
#export XZ_OPT="$XZ_OPT -9e"
|
||||
|
||||
KERNEL="$(uname -s | tr '[A-Z]' '[a-z]')"
|
||||
if [ "$KERNEL" = "darwin" ]; then
|
||||
CURRENTDIR="$(cd "$(dirname "$0")"; pwd)"
|
||||
else
|
||||
CURRENTDIR="$(dirname "$(readlink -f "$0")")"
|
||||
fi
|
||||
cd "$CURRENTDIR"
|
||||
VERSION=`./mg-version.sh --version`
|
||||
RELEASENAME=megaglest-standalone-data
|
||||
PACKAGE="$RELEASENAME-$VERSION.tar.xz"
|
||||
CURRENTDIR="$(dirname $(readlink -f $0))"
|
||||
RELEASEDIR_ROOT="$CURRENTDIR/../../../release/"
|
||||
RELEASEDIR_ROOT="$CURRENTDIR/../../../release"
|
||||
RELEASEDIR="${RELEASEDIR_ROOT}/${RELEASENAME-$VERSION}"
|
||||
PROJDIR="$CURRENTDIR/../../"
|
||||
REPODIR="$CURRENTDIR/../../"
|
||||
|
||||
echo "Creating data package in $RELEASEDIR"
|
||||
if [ "$KERNEL" != "darwin" ]; then
|
||||
echo "Creating data package in $RELEASEDIR"
|
||||
else
|
||||
echo "Creating data directory $RELEASEDIR"
|
||||
fi
|
||||
|
||||
[[ -d "$RELEASEDIR" ]] && rm -rf "$RELEASEDIR"
|
||||
mkdir -p "$RELEASEDIR"
|
||||
|
@ -74,11 +84,12 @@ rm -rf "$RELEASEDIR/data/cegui"
|
|||
# END
|
||||
|
||||
cd "$CURRENTDIR"
|
||||
echo "creating data archive: $PACKAGE"
|
||||
[[ -f "${RELEASEDIR_ROOT}/$PACKAGE" ]] && rm "${RELEASEDIR_ROOT}/$PACKAGE"
|
||||
cd $RELEASEDIR
|
||||
tar -cf - * | xz > ../$PACKAGE
|
||||
cd $CURRENTDIR
|
||||
|
||||
ls -la ${RELEASEDIR_ROOT}/$PACKAGE
|
||||
if [ "$KERNEL" != "darwin" ]; then
|
||||
echo "creating data archive: $PACKAGE"
|
||||
[[ -f "${RELEASEDIR_ROOT}/$PACKAGE" ]] && rm "${RELEASEDIR_ROOT}/$PACKAGE"
|
||||
cd $RELEASEDIR
|
||||
tar -cf - * | xz > ../$PACKAGE
|
||||
cd $CURRENTDIR
|
||||
|
||||
ls -la ${RELEASEDIR_ROOT}/$PACKAGE
|
||||
fi
|
||||
|
|
|
@ -1,45 +1,106 @@
|
|||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
# Use this script to synchronize other scripts and installers with the version
|
||||
# in mg-version.sh for a Version Release
|
||||
# ----------------------------------------------------------------------------
|
||||
# Written by Mark Vejvoda <mark_vejvoda@hotmail.com>
|
||||
# Copyright (c) 2011 Mark Vejvoda under GNU GPL v3.0+
|
||||
# Copyright (c) 2011-2015 Mark Vejvoda under GNU GPL v3.0+
|
||||
|
||||
CURRENT_VERSION=`./mg-version.sh --version`
|
||||
OLD_VERSION=`./mg-version.sh --oldversion_binary`
|
||||
|
||||
VERSION_INFO_FILE="$(dirname "$(readlink -f "$0")")/../../source/version.txt"
|
||||
LastCompatibleSaveGameVersion="$(awk -F '=' '/^LastCompatibleSaveGameVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')"
|
||||
MapeditorVersion="$CURRENT_VERSION"
|
||||
G3dviewerVersion="$CURRENT_VERSION"
|
||||
modifymore="yes"
|
||||
echo
|
||||
echo '===== Updating Game ======'
|
||||
# const string glestVersionString = "v3.12-dev";
|
||||
echo 'Game version # before:'
|
||||
grep -E '^const string glestVersionString = "[^"]*";$' ../../source/glest_game/facilities/game_util.cpp
|
||||
sed -i 's/^const string glestVersionString = "[^"]*";$/const string glestVersionString = "v'$CURRENT_VERSION'";/' ../../source/glest_game/facilities/game_util.cpp
|
||||
echo 'Game version # after:'
|
||||
grep -E '^const string glestVersionString = "[^"]*";$' ../../source/glest_game/facilities/game_util.cpp
|
||||
echo
|
||||
if [ "$modifymore" = "yes" ]; then
|
||||
# const string lastCompatibleSaveGameVersionString = "v3.9.0";
|
||||
echo 'Compatible Save Game version # before:'
|
||||
grep -E '^const string lastCompatibleSaveGameVersionString = "[^"]*";$' ../../source/glest_game/facilities/game_util.cpp
|
||||
sed -i 's/^const string lastCompatibleSaveGameVersionString = "[^"]*";$/const string lastCompatibleSaveGameVersionString = "v'$LastCompatibleSaveGameVersion'";/' ../../source/glest_game/facilities/game_util.cpp
|
||||
echo 'Compatible Save Game version # after:'
|
||||
grep -E '^const string lastCompatibleSaveGameVersionString = "[^"]*";$' ../../source/glest_game/facilities/game_util.cpp
|
||||
echo
|
||||
fi
|
||||
if [ "$modifymore" = "yes" ] && [ "$(git status >/dev/null 2>&1; echo "$?")" -eq "0" ]; then
|
||||
# const string GIT_RawRev = "$4446.1a8673f$";
|
||||
GitCommitForRelease="`git rev-list HEAD --count`.`git log -1 --format=%h`";
|
||||
echo 'GitCommitForRelease # before:'
|
||||
grep -E '^GitCommitForRelease = "[^"]*";$' "$VERSION_INFO_FILE"
|
||||
grep -E '^const string GIT_RawRev = "\$[^"$]*\$";$' ../../source/glest_game/facilities/game_util.cpp
|
||||
sed -i 's/^GitCommitForRelease = "[^"]*";$/GitCommitForRelease = "'$GitCommitForRelease'";/' "$VERSION_INFO_FILE"
|
||||
sed -i 's/^const string GIT_RawRev = "$[^"]*";$/const string GIT_RawRev = "$'$GitCommitForRelease'$";/' ../../source/glest_game/facilities/game_util.cpp
|
||||
echo 'GitCommitForRelease # after:'
|
||||
grep -E '^GitCommitForRelease = "[^"]*";$' "$VERSION_INFO_FILE"
|
||||
grep -E '^const string GIT_RawRev = "\$[^"$]*\$";$' ../../source/glest_game/facilities/game_util.cpp
|
||||
fi
|
||||
echo
|
||||
if [ "$modifymore" = "yes" ]; then
|
||||
echo '===== Updating Mapeditor ======'
|
||||
# const string mapeditorVersionString = "v1.6.1";
|
||||
echo 'Mapeditor version # before:'
|
||||
grep -E '^const string mapeditorVersionString = "[^"]*";$' ../../source/glest_map_editor/main.cpp
|
||||
sed -i 's/^const string mapeditorVersionString = "[^"]*";$/const string mapeditorVersionString = "v'$MapeditorVersion'";/' ../../source/glest_map_editor/main.cpp
|
||||
echo 'Mapeditor version # after:'
|
||||
grep -E '^const string mapeditorVersionString = "[^"]*";$' ../../source/glest_map_editor/main.cpp
|
||||
echo
|
||||
echo '===== Updating G3dviewer ======'
|
||||
# const string g3dviewerVersionString= "v1.3.6";
|
||||
echo 'G3dviewer version # before:'
|
||||
grep -E '^const string g3dviewerVersionString= "[^"]*";$' ../../source/g3d_viewer/main.cpp
|
||||
sed -i 's/^const string g3dviewerVersionString= "[^"]*";$/const string g3dviewerVersionString= "v'$G3dviewerVersion'";/' ../../source/g3d_viewer/main.cpp
|
||||
echo 'G3dviewer version # after:'
|
||||
grep -E '^const string g3dviewerVersionString= "[^"]*";$' ../../source/g3d_viewer/main.cpp
|
||||
fi
|
||||
echo
|
||||
echo '===== Updating Linux Installer ======'
|
||||
# local GAME_VERSION = "x.x.x";
|
||||
echo 'Linux Installer version # before:'
|
||||
grep -E '^local GAME_VERSION = "[^"]*";$' mojosetup/megaglest-installer/scripts/config.lua;sed -i 's/^local GAME_VERSION = "[^"]*";$/local GAME_VERSION = "'$CURRENT_VERSION'";/' mojosetup/megaglest-installer/scripts/config.lua
|
||||
grep -E '^local GAME_VERSION = "[^"]*";$' mojosetup/megaglest-installer/scripts/config.lua
|
||||
sed -i 's/^local GAME_VERSION = "[^"]*";$/local GAME_VERSION = "'$CURRENT_VERSION'";/' mojosetup/megaglest-installer/scripts/config.lua
|
||||
echo 'Linux Installer version # after:'
|
||||
grep -E '^local GAME_VERSION = "[^"]*";$' mojosetup/megaglest-installer/scripts/config.lua
|
||||
|
||||
echo
|
||||
echo '===== Updating Windows Installer ======'
|
||||
# !define APVER 3.6.0
|
||||
echo 'Windows Installer version # before:'
|
||||
grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi;sed -i 's/^\!define APVER [^"]*$/\!define APVER '$CURRENT_VERSION'/' ../windoze/Installer/MegaGlestInstaller.nsi
|
||||
grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi
|
||||
sed -i 's/^\!define APVER [^"]*$/\!define APVER '$CURRENT_VERSION'/' ../windoze/Installer/MegaGlestInstaller.nsi
|
||||
echo 'Windows Installer version # after:'
|
||||
grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi
|
||||
|
||||
echo 'Windows Installer version # before:'
|
||||
grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi;sed -i 's/^\!define APVER_OLD [^"]*$/\!define APVER_OLD '$OLD_VERSION'/' ../windoze/Installer/MegaGlestInstaller.nsi
|
||||
echo 'Windows Installer version # after:'
|
||||
grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi
|
||||
|
||||
echo '===== Updating Windows Updater ======'
|
||||
echo 'Windows Updater version # before:'
|
||||
grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi;sed -i 's/^\!define APVER [^"]*$/\!define APVER '$CURRENT_VERSION'/' ../windoze/Installer/MegaGlestUpdater.nsi
|
||||
echo 'Windows Updater version # after:'
|
||||
grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi
|
||||
|
||||
echo 'Windows Updater version # before:'
|
||||
grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi;sed -i 's/^\!define APVER_OLD [^"]*$/\!define APVER_OLD '$OLD_VERSION'/' ../windoze/Installer/MegaGlestUpdater.nsi
|
||||
echo 'Windows Updater version # after:'
|
||||
grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi
|
||||
|
||||
grep -E '^\!define APVER_UPDATE [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi;sed -i 's/^\!define APVER_UPDATE [^"]*$/\!define APVER_UPDATE '$CURRENT_VERSION'/' ../windoze/Installer/MegaGlestUpdater.nsi
|
||||
echo 'Windows Updater version # after:'
|
||||
grep -E '^\!define APVER_UPDATE [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi
|
||||
|
||||
|
||||
echo
|
||||
if [ "$modifymore" = "yes" ]; then
|
||||
echo 'Windows Installer version # before:'
|
||||
grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi
|
||||
sed -i 's/^\!define APVER_OLD [^"]*$/\!define APVER_OLD '$OLD_VERSION'/' ../windoze/Installer/MegaGlestInstaller.nsi
|
||||
echo 'Windows Installer version # after:'
|
||||
grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestInstaller.nsi
|
||||
echo
|
||||
echo '===== Updating Windows Updater ======'
|
||||
echo 'Windows Updater version # before:'
|
||||
grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi
|
||||
sed -i 's/^\!define APVER [^"]*$/\!define APVER '$CURRENT_VERSION'/' ../windoze/Installer/MegaGlestUpdater.nsi
|
||||
echo 'Windows Updater version # after:'
|
||||
grep -E '^\!define APVER [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi
|
||||
echo
|
||||
echo 'Windows Updater version # before:'
|
||||
grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi
|
||||
sed -i 's/^\!define APVER_OLD [^"]*$/\!define APVER_OLD '$OLD_VERSION'/' ../windoze/Installer/MegaGlestUpdater.nsi
|
||||
echo 'Windows Updater version # after:'
|
||||
grep -E '^\!define APVER_OLD [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi
|
||||
echo
|
||||
echo 'Windows Updater version # before:'
|
||||
grep -E '^\!define APVER_UPDATE [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi
|
||||
sed -i 's/^\!define APVER_UPDATE [^"]*$/\!define APVER_UPDATE '$CURRENT_VERSION'/' ../windoze/Installer/MegaGlestUpdater.nsi
|
||||
echo 'Windows Updater version # after:'
|
||||
grep -E '^\!define APVER_UPDATE [^"]*$' ../windoze/Installer/MegaGlestUpdater.nsi
|
||||
echo
|
||||
fi
|
||||
|
|
|
@ -1,12 +1,19 @@
|
|||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
# Use this script to idenitfy previous and current Version for a Version Release
|
||||
# ----------------------------------------------------------------------------
|
||||
# Written by Mark Vejvoda <mark_vejvoda@hotmail.com>
|
||||
# Copyright (c) 2011 Mark Vejvoda under GNU GPL v3.0+
|
||||
|
||||
OLD_MG_VERSION=3.9.1
|
||||
OLD_MG_VERSION_BINARY=3.9.1
|
||||
MG_VERSION=3.11.0
|
||||
KERNEL="$(uname -s | tr '[A-Z]' '[a-z]')"
|
||||
if [ "$KERNEL" = "darwin" ]; then
|
||||
CURRENTDIR="$(cd "$(dirname "$0")"; pwd)"
|
||||
else
|
||||
CURRENTDIR="$(dirname "$(readlink -f "$0")")"
|
||||
fi
|
||||
VERSION_INFO_FILE="$CURRENTDIR/../../source/version.txt"
|
||||
OLD_MG_VERSION="$(awk -F '=' '/^OldReleaseGameVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')"
|
||||
OLD_MG_VERSION_BINARY="$OLD_MG_VERSION"
|
||||
MG_VERSION="$(awk -F '=' '/^CurrentGameVersion =/ {print $2}' "$VERSION_INFO_FILE" | awk -F '"' '{print $2}')"
|
||||
|
||||
if [ "$1" = "--oldversion" ]; then
|
||||
echo "$OLD_MG_VERSION"
|
||||
|
|
|
@ -183,7 +183,7 @@ if [ $REPACKONLY -eq 0 ]; then
|
|||
cp "$CURRENTDIR/$megaglest_linux_path/start_megaglest" $INSTALLDATADIR
|
||||
cp "$CURRENTDIR/$megaglest_linux_path/megaglest" ${INSTALLDATADIR}
|
||||
cp "$CURRENTDIR/$megaglest_linux_path/glest.ini" $INSTALLDATADIR
|
||||
cp "$CURRENTDIR/$megaglest_linux_path/megaglest.bmp" $INSTALLDATADIR
|
||||
cp "$CURRENTDIR/$megaglest_linux_path/megaglest.png" $INSTALLDATADIR
|
||||
cp "$CURRENTDIR/$megaglest_shared_path/glestkeys.ini" $INSTALLDATADIR
|
||||
cp "$CURRENTDIR/$megaglest_linux_path/start_megaglest_mapeditor" $INSTALLDATADIR
|
||||
cp "$CURRENTDIR/$megaglest_linux_path/megaglest_editor" ${INSTALLDATADIR}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
local GAME_INSTALL_SIZE = 680000000;
|
||||
local GAME_VERSION = "3.11.0";
|
||||
local GAME_VERSION = "3.12-dev";
|
||||
|
||||
local _ = MojoSetup.translate
|
||||
|
||||
|
@ -119,7 +119,7 @@ Setup.Package
|
|||
genericname = _("MegaGlest"),
|
||||
tooltip = _("A real time strategy game."),
|
||||
builtin_icon = false,
|
||||
icon = "megaglest.ico",
|
||||
icon = "megaglest.png",
|
||||
commandline = "%0/start_megaglest",
|
||||
category = "Game;StrategyGame"
|
||||
},
|
||||
|
@ -131,7 +131,7 @@ Setup.Package
|
|||
genericname = _("MegaGlest"),
|
||||
tooltip = _("A real time strategy game."),
|
||||
builtin_icon = false,
|
||||
icon = "editor.ico",
|
||||
icon = "megaglest.png",
|
||||
commandline = "%0/start_megaglest_mapeditor",
|
||||
category = "Game;StrategyGame",
|
||||
--mimetype = {"application/x-gbm", "application/mgm"}
|
||||
|
@ -144,7 +144,7 @@ Setup.Package
|
|||
genericname = _("MegaGlest"),
|
||||
tooltip = _("A real time strategy game."),
|
||||
builtin_icon = false,
|
||||
icon = "g3dviewer.ico",
|
||||
icon = "megaglest.png",
|
||||
commandline = "%0/start_megaglest_g3dviewer",
|
||||
category = "Game;StrategyGame",
|
||||
--mimetype = {"application/x-g3d"}
|
||||
|
@ -157,7 +157,7 @@ Setup.Package
|
|||
genericname = _("MegaGlest"),
|
||||
tooltip = _("A real time strategy game."),
|
||||
builtin_icon = false,
|
||||
icon = "megaglest-uninstall.ico",
|
||||
icon = "megaglest-uninstall.ico",
|
||||
commandline = "%0/uninstall-megaglest.sh",
|
||||
category = "Game;StrategyGame"
|
||||
}
|
||||
|
|
|
@ -106,121 +106,117 @@ error_during_installation () {
|
|||
echo 'If you can come up with something which works for you, please report back to us, too. Thanks!'
|
||||
}
|
||||
|
||||
|
||||
|
||||
if [ "$quiet" -eq "1" ]; then
|
||||
APT_OPTIONS="$APT_OPTIONS -y -q"
|
||||
URPMI_OPTIONS="$URPMI_OPTIONS -q --auto"
|
||||
fi
|
||||
case $distribution in
|
||||
Debian)
|
||||
if [ $quiet = 1 ]; then
|
||||
APT_OPTIONS="$APT_OPTIONS -y -q"
|
||||
fi
|
||||
case $release in
|
||||
6.0*|unstable)
|
||||
oldstable|6|6.*)
|
||||
# No libvlc-dev since version (1.1.3) in Debian 6.0/Squeeze is incompatible, no libluajit-5.1-dev because it is not available on Debian 6.0/Squeeze, cf. http://glest.org/glest_board/?topic=8460
|
||||
installcommand='apt-get install '"$APT_OPTIONS"' build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libminiupnpc-dev librtmp-dev libgtk2.0-dev libcppunit-dev'
|
||||
installcommand="apt-get install $APT_OPTIONS build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libminiupnpc-dev librtmp-dev libgtk2.0-dev libcppunit-dev"
|
||||
$installcommand
|
||||
if [ $? != 0 ]; then
|
||||
error_during_installation;
|
||||
if [ "$?" -ne "0" ]; then
|
||||
error_during_installation;
|
||||
echo ''
|
||||
echo 'Be sure to have the squeeze-backports repository installed, it is required for libminiupnpc-dev.'
|
||||
exit 1;
|
||||
exit 1;
|
||||
fi
|
||||
;;
|
||||
stable|7|7.*)
|
||||
installcommand="apt-get install $APT_OPTIONS build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libminiupnpc-dev librtmp-dev libgtk2.0-dev libcppunit-dev"
|
||||
$installcommand
|
||||
if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi
|
||||
;;
|
||||
testing|unstable|8|8.0|9|9.0)
|
||||
installcommand="apt-get install $APT_OPTIONS build-essential cmake libcurl4-gnutls-dev libsdl1.2-dev libopenal-dev liblua5.2-dev libjpeg-dev libpng12-dev libfreetype6-dev libwxgtk3.0-dev libcppunit-dev libfribidi-dev libftgl-dev libglew-dev libogg-dev libvorbis-dev libminiupnpc-dev libircclient-dev libvlc-dev libxml2-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev librtmp-dev libkrb5-dev libldap2-dev libidn11-dev libgnutls-dev"
|
||||
$installcommand
|
||||
if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi
|
||||
;;
|
||||
*)
|
||||
installcommand='apt-get install '"$APT_OPTIONS"' build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libvlc-dev libminiupnpc-dev librtmp-dev libgtk2.0-dev libcppunit-dev'
|
||||
unsupported_release
|
||||
exit 1
|
||||
installcommand="apt-get install $APT_OPTIONS build-essential cmake libcurl4-gnutls-dev libsdl1.2-dev libopenal-dev liblua5.2-dev libjpeg-dev libpng12-dev libfreetype6-dev libwxgtk3.0-dev libcppunit-dev libfribidi-dev libftgl-dev libglew-dev libogg-dev libvorbis-dev libminiupnpc-dev libircclient-dev libvlc-dev libxml2-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev librtmp-dev libkrb5-dev libldap2-dev libidn11-dev libgnutls-dev"
|
||||
unsupported_release; exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
Ubuntu)
|
||||
if [ $quiet = 1 ]; then
|
||||
APT_OPTIONS="$APT_OPTIONS -y -q"
|
||||
fi
|
||||
Ubuntu)
|
||||
case $release in
|
||||
8.04)
|
||||
installcommand='apt-get install '"$APT_OPTIONS"' build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libcppunit-dev'
|
||||
$installcommand
|
||||
if [ $? != 0 ]; then error_during_installation; exit 1; fi
|
||||
;;
|
||||
10.04)
|
||||
installcommand='apt-get install '"$APT_OPTIONS"' build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew1.5-dev libftgl-dev libfribidi-dev libcppunit-dev'
|
||||
#LTS
|
||||
installcommand="apt-get install $APT_OPTIONS build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew1.5-dev libftgl-dev libfribidi-dev libcppunit-dev"
|
||||
$installcommand
|
||||
if [ $? != 0 ]; then error_during_installation; exit 1; fi
|
||||
if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi
|
||||
;;
|
||||
11.10|12.04|12.10|13.04|13.10)
|
||||
installcommand='apt-get install '"$APT_OPTIONS"' build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libvlc-dev libcppunit-dev'
|
||||
12.04|14.04)
|
||||
#LTS
|
||||
installcommand="apt-get install $APT_OPTIONS build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libvlc-dev libcppunit-dev"
|
||||
$installcommand
|
||||
if [ $? != 0 ]; then error_during_installation; exit 1; fi
|
||||
if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi
|
||||
;;
|
||||
14.04|14.10)
|
||||
installcommand='apt-get install '"$APT_OPTIONS"' build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase3.0-dev libwxgtk3.0-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libvlc-dev libcppunit-dev'
|
||||
14.10)
|
||||
installcommand="apt-get install $APT_OPTIONS build-essential cmake libcurl4-gnutls-dev libsdl1.2-dev libopenal-dev liblua5.2-dev libjpeg-dev libpng12-dev libfreetype6-dev libwxgtk3.0-dev libcppunit-dev libfribidi-dev libftgl-dev libglew-dev libogg-dev libvorbis-dev libminiupnpc-dev libircclient-dev libvlc-dev libxml2-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev librtmp-dev libkrb5-dev libldap2-dev libidn11-dev libgnutls-dev"
|
||||
$installcommand
|
||||
if [ $? != 0 ]; then error_during_installation; exit 1; fi
|
||||
if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi
|
||||
;;
|
||||
|
||||
*)
|
||||
installcommand='apt-get install '"$APT_OPTIONS"' build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libvlc-dev libcppunit-dev'
|
||||
installcommand="apt-get install $APT_OPTIONS build-essential cmake libcurl4-gnutls-dev libsdl1.2-dev libopenal-dev liblua5.2-dev libjpeg-dev libpng12-dev libfreetype6-dev libwxgtk3.0-dev libcppunit-dev libfribidi-dev libftgl-dev libglew-dev libogg-dev libvorbis-dev libminiupnpc-dev libircclient-dev libvlc-dev libxml2-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev librtmp-dev libkrb5-dev libldap2-dev libidn11-dev libgnutls-dev"
|
||||
unsupported_release
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
LinuxMint)
|
||||
if [ $quiet = 1 ]; then
|
||||
APT_OPTIONS="$APT_OPTIONS -y -q"
|
||||
fi
|
||||
LinuxMint)
|
||||
case $release in
|
||||
|
||||
13|14|15|16)
|
||||
installcommand='apt-get install '"$APT_OPTIONS"' build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libvlc-dev libcppunit-dev'
|
||||
13)
|
||||
#LTS
|
||||
installcommand="apt-get install $APT_OPTIONS build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libvlc-dev libcppunit-dev"
|
||||
$installcommand
|
||||
if [ $? != 0 ]; then error_during_installation; exit 1; fi
|
||||
if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi
|
||||
;;
|
||||
*)
|
||||
installcommand='apt-get install '"$APT_OPTIONS"' build-essential cmake libsdl1.2-dev libalut-dev libgl1-mesa-dev libglu1-mesa-dev libvorbis-dev libwxbase2.8-dev libwxgtk2.8-dev libx11-dev liblua5.1-0-dev libjpeg-dev libpng12-dev libcurl4-gnutls-dev libxml2-dev libircclient-dev libglew-dev libftgl-dev libfribidi-dev libvlc-dev libcppunit-dev'
|
||||
installcommand="apt-get install $APT_OPTIONS build-essential cmake libcurl4-gnutls-dev libsdl1.2-dev libopenal-dev liblua5.2-dev libjpeg-dev libpng12-dev libfreetype6-dev libwxgtk3.0-dev libcppunit-dev libfribidi-dev libftgl-dev libglew-dev libogg-dev libvorbis-dev libminiupnpc-dev libircclient-dev libvlc-dev libxml2-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev librtmp-dev libkrb5-dev libldap2-dev libidn11-dev libgnutls-dev"
|
||||
unsupported_release
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
SuSE|SUSE?LINUX|Opensuse*|openSUSE*)
|
||||
SuSE|SUSE?LINUX|Opensuse*|openSUSE*)
|
||||
case $release in
|
||||
11.2|11.3|11.4|12.1)
|
||||
installcommand='zypper install gcc gcc-c++ cmake libSDL-devel MesaGLw-devel freeglut-devel libvorbis-devel wxGTK-devel lua-devel libjpeg-devel libpng14-devel libcurl-devel openal-soft-devel xorg-x11-libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel'
|
||||
11.4)
|
||||
#LTS
|
||||
installcommand="zypper install gcc gcc-c++ cmake libSDL-devel MesaGLw-devel freeglut-devel libvorbis-devel wxGTK-devel lua-devel libjpeg-devel libpng14-devel libcurl-devel openal-soft-devel xorg-x11-libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel"
|
||||
$installcommand
|
||||
if [ $? != 0 ]; then error_during_installation; exit 1; fi
|
||||
;;
|
||||
12.2)
|
||||
installcommand='zypper install gcc gcc-c++ cmake libSDL-devel Mesa-libGL-devel freeglut-devel libvorbis-devel wxGTK-devel lua-devel libjpeg-devel libpng14-devel libcurl-devel openal-soft-devel xorg-x11-libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel'
|
||||
$installcommand
|
||||
if [ $? != 0 ]; then error_during_installation; exit 1; fi
|
||||
if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi
|
||||
;;
|
||||
13.1)
|
||||
installcommand='zypper install gcc gcc-c++ cmake libSDL-devel Mesa-libGL-devel freeglut-devel libvorbis-devel wxGTK-devel lua-devel libjpeg-devel libpng-devel libcurl-devel openal-soft-devel xorg-x11-libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel'
|
||||
#LTS
|
||||
installcommand="zypper install gcc gcc-c++ cmake libSDL-devel Mesa-libGL-devel freeglut-devel libvorbis-devel wxGTK-devel lua-devel libjpeg-devel libpng-devel libcurl-devel openal-soft-devel xorg-x11-libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel"
|
||||
$installcommand
|
||||
if [ $? != 0 ]; then error_during_installation; exit 1; fi
|
||||
if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi
|
||||
;;
|
||||
*)
|
||||
installcommand='zypper install gcc gcc-c++ cmake libSDL-devel Mesa-libGL-devel freeglut-devel libvorbis-devel wxGTK-devel lua-devel libjpeg-devel libpng14-devel libcurl-devel openal-soft-devel xorg-x11-libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel'
|
||||
installcommand="zypper install gcc gcc-c++ cmake libSDL-devel Mesa-libGL-devel freeglut-devel libvorbis-devel wxGTK-devel lua-devel libjpeg-devel libpng14-devel libcurl-devel openal-soft-devel xorg-x11-libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel"
|
||||
unsupported_release
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
Fedora)
|
||||
Fedora)
|
||||
case $release in
|
||||
13|14|15|16|17|18)
|
||||
installcommand='yum groupinstall development-tools'
|
||||
$installcommand
|
||||
if [ $? != 0 ]; then error_during_installation; exit 1; fi
|
||||
#18)
|
||||
# installcommand='yum groupinstall development-tools'
|
||||
# $installcommand
|
||||
# if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi
|
||||
|
||||
installcommand='yum install cmake SDL-devel mesa-libGL-devel mesa-libGLU-devel libvorbis-devel wxBase wxGTK-devel lua-devel libjpeg-devel libpng-devel libcurl-devel openal-soft-devel libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel'
|
||||
$installcommand
|
||||
;;
|
||||
# installcommand='yum install cmake SDL-devel mesa-libGL-devel mesa-libGLU-devel libvorbis-devel wxBase wxGTK-devel lua-devel libjpeg-devel libpng-devel libcurl-devel openal-soft-devel libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel'
|
||||
# $installcommand
|
||||
# if [ "$?" -ne "0" ]; then error_during_installation; exit 1; fi
|
||||
# ;;
|
||||
*)
|
||||
installcommand='yum groupinstall "Development Tools"; yum install cmake SDL-devel mesa-libGL-devel mesa-libGLU-devel libvorbis-devel wxBase wxGTK-devel lua-devel libjpeg-devel libpng-devel libcurl-devel openal-soft-devel libX11-devel libxml2-devel libircclient-devel glew-devel ftgl-devel fribidi-devel cppunit-devel'
|
||||
unsupported_release
|
||||
|
@ -229,6 +225,18 @@ case $distribution in
|
|||
esac
|
||||
;;
|
||||
|
||||
Mageia)
|
||||
if [ "$architecture" = "x86_64" ]; then lib="lib64"; else lib="lib"; fi
|
||||
case $release in
|
||||
*)
|
||||
installcommand="urpmi $URPMI_OPTIONS gcc gcc-c++ cmake make ${lib}curl-devel ${lib}SDL-devel ${lib}openal-devel ${lib}lua-devel ${lib}jpeg-devel ${lib}png-devel ${lib}freetype6-devel ${lib}wxgtku2.9-devel ${lib}cppunit-devel ${lib}fribidi-devel ${lib}ftgl-devel ${lib}glew-devel ${lib}ogg-devel ${lib}vorbis-devel ${lib}miniupnpc-devel ${lib}ircclient-static-devel ${lib}vlc-devel ${lib}xml2-devel ${lib}x11-devel ${lib}mesagl1-devel ${lib}mesaglu1-devel"
|
||||
# mageia uses link patches
|
||||
unsupported_release
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
archlinux)
|
||||
case $release in
|
||||
rolling)
|
||||
|
|
|
@ -23,9 +23,14 @@
|
|||
#
|
||||
# Please read http://wiki.megaglest.org/Dedicated_Server for more information
|
||||
#
|
||||
# ----------------------------------------------------------------------------
|
||||
# Written by Tom Reynolds <tomreyn[at]megaglest.org>
|
||||
# Copyright (c) 2013 Tom Reynolds, The Megaglest Team, under GNU GPL v3.0+
|
||||
# ----------------------------------------------------------------------------
|
||||
LANG=C
|
||||
|
||||
# Install location
|
||||
DIR_GAME=~/megaglest
|
||||
DIR_GAME="$(dirname "$(readlink -f "$0")")"
|
||||
|
||||
# Log file location (beware, this can grow large)
|
||||
#LOG_SERVER=/dev/null
|
||||
|
@ -42,7 +47,7 @@ while true; do
|
|||
if [ -f "core" ]; then mv -f "core" "core.1"; fi
|
||||
date > "$LOG_SERVER"
|
||||
echo 'Starting server...' | tee -a "$LOG_SERVER"
|
||||
./start_megaglest --ini-path=./ --data-path=./ --headless-server-mode=vps,exit >> "$LOG_SERVER" 2>&1
|
||||
./start_megaglest --headless-server-mode=vps,exit >> "$LOG_SERVER" 2>&1
|
||||
if [ $? -ne 0 ];
|
||||
then
|
||||
echo 'ERROR: Server has quit unexpectedly.' >> "$LOG_SERVER"
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
/megaglest
|
||||
/megaglest.6
|
||||
/megaglest_*
|
||||
/[Mm]ega[Gg]lest*.dmg
|
||||
|
||||
core
|
||||
core.bak
|
||||
|
||||
/p7zip/
|
||||
/build/
|
||||
/[Rr]elease/
|
||||
/[Dd]ebug/
|
||||
/mydata/
|
|
@ -1,72 +1,64 @@
|
|||
# Set defaults for Universal Binaries. We want 32-bit Intel/PPC on 10.4
|
||||
# and 32/64-bit Intel/PPC on >= 10.5. Anything <= 10.3 doesn't support.
|
||||
# These are just defaults/recommendations, but how we want to build
|
||||
# out of the box. But the user needs to be able to change these options.
|
||||
# Anything <= 10.3 isn't supported. We want 32-bit Intel/PPC on 10.4, 10.5.
|
||||
# On 10.6 32/64-bit Intel. On >= 10.7 unset architecture mean default 64-bit Intel.
|
||||
# Using oldest available sdk with current Xcode is recommended.
|
||||
# User needs to be able to change these options.
|
||||
# So we must only set the values the first time CMake is run, or we
|
||||
# will overwrite any changes the user sets.
|
||||
# FORCE is used because the options are not reflected in the UI otherwise.
|
||||
# Seems like a good place to add version specific compiler flags too.
|
||||
|
||||
IF(NOT CONFIG_HAS_BEEN_RUN_BEFORE)
|
||||
IF(EXISTS /Developer/SDKs/MacOSX10.6.sdk)
|
||||
SET(CMAKE_OSX_ARCHITECTURES "i386" CACHE STRING "Build architectures for OSX" FORCE)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.6 -ftree-vectorize -fvisibility-inlines-hidden" CACHE STRING "Flags used by the compiler during all build types." FORCE)
|
||||
|
||||
ELSEIF(EXISTS /Developer/SDKs/MacOSX10.5.sdk)
|
||||
# 64-bit compiles are not supported with Carbon. We should enable
|
||||
# 64-bit compilation by default once osgviewer has been
|
||||
# rewritten with Cocoa.
|
||||
#SET(CMAKE_OSX_ARCHITECTURES "ppc;i386;ppc64;x86_64" CACHE STRING "Build architectures for OSX" FORCE)
|
||||
SET(CMAKE_OSX_ARCHITECTURES "i386" CACHE STRING "Build architectures for OSX" FORCE)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.5 -ftree-vectorize -fvisibility-inlines-hidden" CACHE STRING "Flags used by the compiler during all build types." FORCE)
|
||||
ELSE()
|
||||
# No Universal Binary support
|
||||
# Should break down further to set the -mmacosx-version-min,
|
||||
# but the SDK detection is too unreliable here.
|
||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++")
|
||||
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden")
|
||||
ENDIF()
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftree-vectorize" CACHE STRING "Flags used by the compiler during all build types." FORCE)
|
||||
ENDIF(NOT CONFIG_HAS_BEEN_RUN_BEFORE)
|
||||
|
||||
# don't try to be too much "modern"
|
||||
ADD_DEFINITIONS(-Wno-deprecated -Wno-deprecated-declarations)
|
||||
|
||||
# Include extra paths to search for includes; this is the default system wide macports path.
|
||||
INCLUDE_DIRECTORIES(/opt/local/include)
|
||||
LINK_DIRECTORIES(/opt/local/lib)
|
||||
|
||||
##install part
|
||||
|
||||
# This file is in git CRLF but that causes the cpack run to fail
|
||||
#CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/docs/COPYRIGHT.source_code.txt"
|
||||
# "${CMAKE_CURRENT_BINARY_DIR}/docs/COPYRIGHT.source_code.txt" NEWLINE_STYLE UNIX)
|
||||
#SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/docs/COPYRIGHT.source_code.txt")
|
||||
|
||||
# This changes Info.plist from something with variables and CMakeisms to
|
||||
# something that can be installed on disk.
|
||||
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/Info.plist"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/Info.plist")
|
||||
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/bundle_resources/Info.plist.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/mk/macosx/bundle_resources/Info.plist")
|
||||
SET(CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_BINARY_DIR}/mk/macosx/bundle_resources/Info.plist")
|
||||
|
||||
include (InstallRequiredSystemLibraries)
|
||||
|
||||
# Use bundle generator (OSX has 3 other options if you feel adventurous)
|
||||
set (CPACK_GENERATOR "Bundle")
|
||||
|
||||
# The following CPACK_* options are all required
|
||||
set (CPACK_PACKAGE_FILE_NAME MegaGlest-${VER_MAJOR}.${VER_MINOR}.${VER_RELEASE})
|
||||
set (CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/MegaGlest.icns")
|
||||
|
||||
set (CPACK_RESOURCE_FILE_LICENSE
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/docs/COPYRIGHT.source_code.txt")
|
||||
set (CPACK_BUNDLE_NAME "MegaGlest")
|
||||
set (CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/data/glest_game/megaglest")
|
||||
set (CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/MegaGlest.icns")
|
||||
set (CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_BINARY_DIR}/Info.plist")
|
||||
SET(CPACK_GENERATOR "Bundle")
|
||||
SET(CPACK_BUNDLE_NAME "MegaGlest")
|
||||
SET(CPACK_PACKAGE_FILE_NAME "MegaGlest-game-macos-${MEGAGLEST_VERSION}")
|
||||
SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/bundle_resources/MegaGlest.icns")
|
||||
SET(CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/bundle_resources/MegaGlest.icns")
|
||||
SET(CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/mk/macosx/bundle_resources/MegaGlest.sh")
|
||||
|
||||
# Install files in to the package (FIXME: how? we sure?)
|
||||
INSTALL(FILES
|
||||
INSTALL(FILES
|
||||
${LUA_LIBRARIES}
|
||||
DESTINATION ../Frameworks
|
||||
DESTINATION ../Frameworks
|
||||
)
|
||||
|
||||
#the SDL_LIBRARY is seen as a framework thus we need to remove the suffix...
|
||||
STRING(REGEX REPLACE ";.*" "" SDL_LIBRARY_DIR "${SDL_LIBRARY}")
|
||||
|
||||
#INSTALL(DIRECTORY
|
||||
#INSTALL(DIRECTORY
|
||||
# ${OGG_LIBRARY}
|
||||
# ${XERCESC_LIBRARY}
|
||||
# ${VORBIS_LIBRARY}
|
||||
# ${SDL_LIBRARY_DIR}
|
||||
# ${PNG_LIBRARY}
|
||||
# DESTINATION ../Frameworks
|
||||
# )
|
||||
|
||||
# DESTINATION ../Frameworks
|
||||
# )
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
APPL????
|
||||
APPL????
|
|
@ -0,0 +1,214 @@
|
|||
#!/bin/sh
|
||||
# Use this script to build MegaGlest using cmake
|
||||
# ----------------------------------------------------------------------------
|
||||
# 2011 Written by Mark Vejvoda <mark_vejvoda@hotmail.com>
|
||||
# 2015 Rewritten by filux <heross(@@)o2.pl>
|
||||
# Copyright (c) 2011-2015 under GNU GPL v3.0+
|
||||
# ----------------------------------------------------------------------------
|
||||
# Default to English language output so we can understand your bug reports
|
||||
export LANG=C
|
||||
|
||||
SCRIPTDIR="$(cd "$(dirname "$0")"; pwd)"
|
||||
BUILD_BUNDLE=0
|
||||
CPU_COUNT=-1
|
||||
CMAKE_ONLY=0
|
||||
MAKE_ONLY=0
|
||||
USE_XCODE=0
|
||||
CLANG_FORCED=0
|
||||
WANT_STATIC_LIBS="-DWANT_STATIC_LIBS=ON"
|
||||
LUA_FORCED_VERSION=0
|
||||
|
||||
while getopts "c:dfhl:mnxb" option; do
|
||||
case "${option}" in
|
||||
c) CPU_COUNT=${OPTARG};;
|
||||
d) WANT_STATIC_LIBS="-DWANT_STATIC_LIBS=OFF";;
|
||||
f) CLANG_FORCED=1;;
|
||||
h) echo "Usage: $0 <option>"
|
||||
echo " where <option> can be: -b, -c x, -d, -f, -m, -n, -h, -l x, -x"
|
||||
echo " option descriptions:"
|
||||
echo " -b : Force default configuration designed for bundle/release."
|
||||
echo " -c x : Force the cpu / cores count to x - example: -c 4"
|
||||
echo " -d : Force DYNAMIC compile (do not want static libs)"
|
||||
echo " -f : Force using Clang compiler"
|
||||
echo " -l x : Force using LUA version x - example: -l 51"
|
||||
echo " -m : Force running CMAKE only to create Make files (do not compile)"
|
||||
echo " -n : Force running MAKE only to compile (assume CMAKE already built make files)"
|
||||
echo " -x : Force usage of Xcode and xcodebuild"
|
||||
echo " -h : Display this help usage"
|
||||
exit 0;;
|
||||
l) LUA_FORCED_VERSION=${OPTARG};;
|
||||
m) CMAKE_ONLY=1;;
|
||||
n) MAKE_ONLY=1;;
|
||||
x) USE_XCODE=1;;
|
||||
b) BUILD_BUNDLE=1
|
||||
#CPU_COUNT=-1
|
||||
CMAKE_ONLY=0
|
||||
MAKE_ONLY=0
|
||||
USE_XCODE=0
|
||||
CLANG_FORCED=0
|
||||
WANT_STATIC_LIBS="-DWANT_STATIC_LIBS=ON"
|
||||
LUA_FORCED_VERSION=0;;
|
||||
\?)
|
||||
echo "Script Invalid option: -$OPTARG" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
CLANG_BIN_PATH="$(which clang 2>/dev/null)"
|
||||
CLANGPP_BIN_PATH="$(which clang++ 2>/dev/null)"
|
||||
GCC_BIN_PATH="/opt/local/bin/gcc"
|
||||
GCCPP_BIN_PATH="/opt/local/bin/g++"
|
||||
# ^ install latest (not beta) gcc from "mac ports" and then choose it as default gcc version by "port select ..."
|
||||
# ( ^ same situation is with wxwidgets )
|
||||
cd ${SCRIPTDIR}
|
||||
|
||||
if [ "$BUILD_BUNDLE" -eq "1" ] && [ -d "p7zip" ]; then rm -rf "p7zip"; fi
|
||||
if [ -e ".p7zip.zip" ] && [ "$(find ./ -name ".p7zip.zip" -mtime +90)" ]; then rm ".p7zip.zip"; rm -rf "p7zip"; fi
|
||||
if [ ! -e ".p7zip.zip" ]; then
|
||||
curl -L -o .p7zip.zip https://github.com/MegaGlest/megaglest-source/releases/download/3.2.3/p7zip.zip 2>/dev/null
|
||||
if [ -e ".p7zip.zip" ]; then touch -m ".p7zip.zip"; fi
|
||||
fi
|
||||
if [ ! -d "p7zip" ]; then unzip .p7zip.zip >/dev/null; fi
|
||||
|
||||
# Google breakpad integration (cross platform memory dumps) - OPTIONAL
|
||||
# Set this to the root path of your Google breakpad subversion working copy.
|
||||
# By default, this script looks for a "google-breakpad" sub-directory within
|
||||
# the directory this script resides in. If this directory is not found, Cmake
|
||||
# will warn about it later.
|
||||
# Instead of editing this variable, consider creating a symbolic link:
|
||||
# ln -s ../../google-breakpad google-breakpad
|
||||
BREAKPAD_ROOT="$SCRIPTDIR/../../google-breakpad/"
|
||||
|
||||
# Build threads
|
||||
# By default we use all physical CPU cores to build.
|
||||
NUMCORES="$(sysctl -n hw.ncpu)"
|
||||
echo "CPU cores detected: $NUMCORES"
|
||||
if [ "$NUMCORES" = '' ]; then NUMCORES=1; fi
|
||||
if [ "$CPU_COUNT" != -1 ]; then NUMCORES=$CPU_COUNT; fi
|
||||
echo "CPU cores to be used: $NUMCORES"
|
||||
|
||||
if [ "$BUILD_BUNDLE" -eq "1" ] && [ -d "build" ]; then rm -rf build; fi
|
||||
if [ $MAKE_ONLY = 0 ]; then mkdir -p build; fi
|
||||
cd build
|
||||
|
||||
if [ $MAKE_ONLY = 0 ] && [ -f 'CMakeCache.txt' ]; then rm -f 'CMakeCache.txt'; fi
|
||||
|
||||
distribution="$(sw_vers -productName)"
|
||||
release="$(sw_vers -productVersion)"
|
||||
xcode_ver="$(xcodebuild -version | awk '/Xcode/ {print $2}')"
|
||||
architecture="$(uname -m)"
|
||||
echo 'We have detected the following system:'
|
||||
echo " [ $distribution ] [ $release ] [ $architecture ] [ $xcode_ver ]"
|
||||
case $release in
|
||||
*) echo 'Turning ON dynamic PNG ...'
|
||||
EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DPNG_STATIC=OFF";;
|
||||
esac
|
||||
case $xcode_ver in
|
||||
# en.wikipedia.org/wiki/Xcode, Version, OS X SDK(s) <- lowest, but not less than 10.4
|
||||
2.*|3.*) CMAKE_OSX_DEPLOYMENT_TARGET="10.4";;
|
||||
4.0*|4.1*|4.2*|4.3*) CMAKE_OSX_DEPLOYMENT_TARGET="10.6";;
|
||||
4.*) CMAKE_OSX_DEPLOYMENT_TARGET="10.7";;
|
||||
5.*) CMAKE_OSX_DEPLOYMENT_TARGET="10.8";;
|
||||
6.*) CMAKE_OSX_DEPLOYMENT_TARGET="10.9";;
|
||||
7.*) CMAKE_OSX_DEPLOYMENT_TARGET="10.10";;
|
||||
# ^ last one expected for future
|
||||
esac
|
||||
case $CMAKE_OSX_DEPLOYMENT_TARGET in
|
||||
10.4*|10.5*) CMAKE_OSX_ARCHITECTURES="ppc;i386";;
|
||||
10.6*) CMAKE_OSX_ARCHITECTURES="i386;x86_64";;
|
||||
esac
|
||||
if [ "$CMAKE_OSX_DEPLOYMENT_TARGET" != "" ]; then
|
||||
EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}"
|
||||
fi
|
||||
if [ "$CMAKE_OSX_ARCHITECTURES" != "" ]; then
|
||||
EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}"
|
||||
fi
|
||||
|
||||
if [ "$USE_XCODE" -ne "1" ]; then
|
||||
if [ "$CLANG_FORCED" -eq "1" ]; then
|
||||
EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DCMAKE_C_COMPILER=${CLANG_BIN_PATH} -DCMAKE_CXX_COMPILER=${CLANGPP_BIN_PATH}"
|
||||
echo "USER WANTS to use CLANG / LLVM compiler!"
|
||||
else
|
||||
EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DCMAKE_C_COMPILER=${GCC_BIN_PATH} -DCMAKE_CXX_COMPILER=${GCCPP_BIN_PATH}"
|
||||
fi
|
||||
fi
|
||||
|
||||
LUA_FORCED_CMAKE=
|
||||
if [ "$LUA_FORCED_VERSION" -ne "0" ]; then
|
||||
if [ "$LUA_FORCED_VERSION" -eq "52" ]; then
|
||||
EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DFORCE_LUA_5_2=ON"
|
||||
echo "USER WANTS TO FORCE USE of LUA 5.2"
|
||||
elif [ "$LUA_FORCED_VERSION" -eq "51" ]; then
|
||||
EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DFORCE_LUA_5_1=ON"
|
||||
echo "USER WANTS TO FORCE USE of LUA 5.1"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$MAKE_ONLY" -eq "0" ]; then
|
||||
EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DWANT_DEV_OUTPATH=ON $WANT_STATIC_LIBS -DBREAKPAD_ROOT=$BREAKPAD_ROOT"
|
||||
if [ "$BUILD_BUNDLE" -ne "1" ]; then
|
||||
EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DCMAKE_INSTALL_PREFIX=''"
|
||||
if [ "$CLANG_FORCED" -eq "1" ] || [ "$USE_XCODE" -eq "1" ]; then
|
||||
#^ Remove this condition when it V will start working on gcc
|
||||
EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DBUILD_MEGAGLEST_TESTS=ON"
|
||||
else
|
||||
rm -f ../megaglest_tests
|
||||
fi
|
||||
rm -f ../MegaGlest*.dmg
|
||||
else
|
||||
EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DCPACK_GENERATOR=Bundle -DSINGLE_INSTALL_DIRECTORY=ON -DBUILD_MEGAGLEST_MAP_EDITOR=OFF -DBUILD_MEGAGLEST_MODEL_VIEWER=OFF"
|
||||
rm -f ../megaglest_editor ../megaglest_g3dviewer ../megaglest_tests
|
||||
fi
|
||||
echo "Calling cmake with EXTRA_CMAKE_OPTIONS = ${EXTRA_CMAKE_OPTIONS}"
|
||||
if [ "$USE_XCODE" -eq "1" ]; then
|
||||
cmake -GXcode $EXTRA_CMAKE_OPTIONS ../../..
|
||||
if [ "$?" -ne "0" ]; then echo 'ERROR: CMAKE failed.' >&2; exit 1; fi
|
||||
else
|
||||
cmake —G"Unix Makefiles" $EXTRA_CMAKE_OPTIONS ../../..
|
||||
if [ "$?" -ne "0" ]; then echo 'ERROR: CMAKE failed.' >&2; exit 1; fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$CMAKE_ONLY" -eq "1" ]; then
|
||||
echo "==================> You may now call make with $NUMCORES cores... <=================="
|
||||
else
|
||||
if [ "$USE_XCODE" -eq "1" ]; then
|
||||
echo "==================> About to call xcodebuild... <================================="
|
||||
xcodebuild | egrep "(error|warning):"
|
||||
if [ "$?" -ne "0" ]; then echo 'ERROR: xcodebuild failed.' >&2; exit 2; fi
|
||||
else
|
||||
echo "==================> About to call make with $NUMCORES cores... <=================="
|
||||
make -j$NUMCORES
|
||||
if [ "$?" -ne "0" ]; then echo 'ERROR: MAKE failed.' >&2; exit 2; fi
|
||||
fi
|
||||
|
||||
if [ -d "../Debug" ]; then mv -f ../Debug/megaglest* "$SCRIPTDIR"; rm -rf ../Debug
|
||||
elif [ -d "../Release" ]; then mv -f ../Release/megaglest* "$SCRIPTDIR"; rm -rf ../Release; fi
|
||||
|
||||
cd ..
|
||||
if [ "$BUILD_BUNDLE" -ne "1" ]; then
|
||||
echo ''
|
||||
echo 'BUILD COMPLETE.'
|
||||
echo ''
|
||||
echo '- - - - - - - - - - - - - - - - - - - -'
|
||||
echo 'Mini test:'
|
||||
echo '>>> megaglest --version'
|
||||
./megaglest --version | head -3
|
||||
echo '>>> megaglest_editor --help'
|
||||
./megaglest_editor --help | head -3
|
||||
echo '>>> megaglest_g3dviewer --help'
|
||||
./megaglest_g3dviewer --help | head -3
|
||||
echo 'Dependencies:'
|
||||
otool -L megaglest
|
||||
echo '- - - - - - - - - - - - - - - - - - - -'
|
||||
echo ''
|
||||
echo 'To launch MegaGlest from the current directory, use:'
|
||||
echo ' ./megaglest'
|
||||
echo ''
|
||||
else
|
||||
ls -lhA megaglest
|
||||
echo ''
|
||||
./megaglest --version
|
||||
echo ''
|
||||
fi
|
||||
fi
|
|
@ -3,15 +3,15 @@
|
|||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>megaglest</string>
|
||||
<string>MegaGlest</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>${VER_MAJOR}.${VER_MINOR}.${VER_RELEASE}, © 2001-2015 The Glest Team All Rights Reserved.</string>
|
||||
<string>v${MEGAGLEST_VERSION}, © 2001-2015 The MegaGlest Team.</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>MegaGlest</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.megaglest.v${VER_MAJOR}-${VER_MINOR}-${VER_RELEASE}</string>
|
||||
<string>org.megaglest.v${MEGAGLEST_VERSION}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
|
@ -19,11 +19,11 @@
|
|||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>${VER_MAJOR}.${VER_MINOR}.${VER_RELEASE}</string>
|
||||
<string>${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>MGGL</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${VER_MAJOR}.${VER_MINOR}.${VER_RELEASE}</string>
|
||||
<string>${VER_MAJOR}.${VER_MINOR}.${VER_PATCH}</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>MainMenu</string>
|
||||
<key>NSPrincipalClass</key>
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/sh
|
||||
# Use this script in bundle to run game
|
||||
# ----------------------------------------------------------------------------
|
||||
# Copyright (c) 2015 under GNU GPL v3.0+
|
||||
|
||||
export LANG=C
|
||||
SCRIPTDIR="$(cd "$(dirname "$0")"; pwd)"
|
||||
export DYLD_LIBRARY_PATH="$SCRIPTDIR/../FRAMEWORKS"
|
||||
export PATH="$SCRIPTDIR/../Resources/megaglest-game:$PATH"
|
||||
|
||||
exec "$SCRIPTDIR/../Resources/megaglest-game/megaglest"
|
||||
exit "$?"
|
|
@ -0,0 +1,3 @@
|
|||
DataPath=$APPLICATIONPATH/../../data/glest_game/
|
||||
ServerListPath=$APPLICATIONPATH/../shared/
|
||||
GlestKeysIniPath=$APPLICATIONPATH/../shared/
|
|
@ -0,0 +1,94 @@
|
|||
; === propertyMap File ===
|
||||
; This file defines default properties and values. Do not edit this file,
|
||||
; instead, to modify, copy any properties to glestuser.ini, then change these as
|
||||
; needed. Values contained in glestuser.ini will overwrite values found here.
|
||||
;
|
||||
; For explanation of these properties, please refer to the MegaGlest wiki at
|
||||
; http://wiki.megaglest.org/
|
||||
;
|
||||
AiLog=0
|
||||
AiRedir=false
|
||||
AllowDownloadDataSynch=false
|
||||
AllowGameDataSynchCheck=false
|
||||
AllowRotateUnits=true
|
||||
AnnouncementURL=http://master.megaglest.org/files/announcement.txt
|
||||
AutoMaxFullScreen=false
|
||||
AutoTest=false
|
||||
CheckGlCaps=true
|
||||
ColorBits=32
|
||||
ConsoleMaxLines=8
|
||||
ConsoleMaxLinesStored=25
|
||||
ConsoleTimeout=20
|
||||
DataPath=$APPLICATIONDATAPATH/
|
||||
LogPath=$HOME/.megaglest/
|
||||
DayTime=1000
|
||||
DebugLogFile=debug.log
|
||||
DebugMode=false
|
||||
DebugPerformance=false
|
||||
DebugNetwork=false
|
||||
DebugWorldSynch=false
|
||||
DepthBits=16
|
||||
FactoryGraphics=OpenGL
|
||||
FactorySound=OpenAL
|
||||
FastSpeedLoops=8
|
||||
FileArchiveExtension=.7z
|
||||
FileArchiveExtractCommand=$APPLICATIONDATAPATH/p7zip/7z
|
||||
FileArchiveExtractCommandParameters=x -o"{outputpath}" "{archivename}"
|
||||
FileArchiveCompressCommand=$APPLICATIONDATAPATH/p7zip/7z
|
||||
FileArchiveCompressCommandParameters=a -r -xr!?svn\* "{archivename}" "{archivefiles}"
|
||||
FileArchiveCompressCommandSuccessResult=0
|
||||
Filter=Bilinear
|
||||
FilterMaxAnisotropy=1
|
||||
FirstTime=false
|
||||
FocusArrows=true
|
||||
FogOfWarSmoothing=true
|
||||
FogOfWarSmoothingFrameSkip=3
|
||||
FontConsoleBaseSize=14
|
||||
FontConsolePostfix=-*-*-*-*-*-*-*
|
||||
FontConsolePrefix=-*-arial-*-r-*-*-
|
||||
FontDisplayBaseSize=12
|
||||
FontDisplayPostfix=-*-*-*-*-*-*-*
|
||||
FontDisplayPrefix=-*-arial-*-r-*-*-
|
||||
FontDisplaySmallBaseSize=12
|
||||
FontMenuBigBaseSize=20
|
||||
FontMenuBigPostfix=-*-*-*-*-*-*-*
|
||||
FontMenuBigPrefix=-*-arial-*-r-*-*-
|
||||
FontMenuNormalBaseSize=14
|
||||
FontMenuNormalPostfix=-*-*-*-*-*-*-*
|
||||
FontMenuNormalPrefix=-*-arial-*-r-*-*-
|
||||
FontMenuVeryBigBaseSize=25
|
||||
FontSizeAdjustment=0
|
||||
FONT_HEIGHT_TEXT=yW
|
||||
Lang=english
|
||||
MaxLights=3
|
||||
Masterserver=http://master.megaglest.org/
|
||||
NetPlayerName=newbie
|
||||
NetworkConsistencyChecks=true
|
||||
PhotoMode=false
|
||||
PortList=61357,61367,61377,61387,61397
|
||||
PortServer=61357
|
||||
RefreshFrequency=75
|
||||
ScreenHeight=600
|
||||
ScreenWidth=800
|
||||
ServerIp=192.168.0.107
|
||||
ShadowFrameSkip=2
|
||||
ShadowTextureSize=512
|
||||
Shadows=Projected
|
||||
SoundStaticBuffers=16
|
||||
SoundStreamingBuffers=4
|
||||
SoundVolumeAmbient=80
|
||||
SoundVolumeFx=80
|
||||
SoundVolumeMusic=90
|
||||
StencilBits=0
|
||||
Textures3D=true
|
||||
TranslationGetURL=https://www.transifex.com/api/2/project/megaglest/resource/$file/translation/$language
|
||||
TranslationGetURLDetails=https://www.transifex.com/api/2/project/megaglest/resource/$file/?details
|
||||
TranslationGetURLFileList=main-language-file|megapack-language-file|loading-screen-hints|tutorials-1-very-basic-tutorial|tutorials-2-basic-tutorial|tutorials-3-advanced-tutorial|scenarios-amazones|scenarios-amazones-light|scenarios-capture-enemy-flag|scenarios-storming
|
||||
TranslationGetURLFileListMapping=data/lang/$language.lng|techs/megapack/lang/megapack_$language.lng|data/lang/hint/hint_$language.lng|tutorials/1_very_basic_tutorial/1_very_basic_tutorial_$language.lng|tutorials/2_basic_tutorial/2_basic_tutorial_$language.lng|tutorials/3_advanced_tutorial/3_advanced_tutorial_$language.lng|scenarios/amazones/amazones_$language.lng|scenarios/amazones_light/amazones_light_$language.lng|scenarios/capture_enemy_flag/capture_enemy_flag_$language.lng|scenarios/storming/storming_$language.lng
|
||||
TranslationGetURLLanguage=en
|
||||
TranslationGetURLPassword=
|
||||
TranslationGetURLUser=<enter username>
|
||||
UnitParticles=true
|
||||
UserData_Root=$HOME/.megaglest/
|
||||
VersionURL=http://master.megaglest.org/files/versions/
|
||||
Windowed=true
|
|
@ -0,0 +1,67 @@
|
|||
#!/bin/sh
|
||||
# Use this script to build MegaGlest Binary Archive for a Version Release
|
||||
# ----------------------------------------------------------------------------
|
||||
# 2011 Written by Mark Vejvoda <mark_vejvoda@hotmail.com>
|
||||
# 2015 Rewritten by filux <heross(@@)o2.pl>
|
||||
# Copyright (c) 2011-2015 under GNU GPL v3.0+
|
||||
# ----------------------------------------------------------------------------
|
||||
LANG=C
|
||||
|
||||
# set this to non 0 to skip building the binary
|
||||
skipbinarybuild=0
|
||||
|
||||
# Consider setting this for small packages if there's plenty of RAM and CPU available:
|
||||
#export XZ_OPT="$XZ_OPT -9e"
|
||||
|
||||
VERSION="$(../linux/mg-version.sh --version)"
|
||||
kernel="macos"
|
||||
|
||||
RELEASENAME="megaglest-binary-$kernel"
|
||||
PACKAGE="$RELEASENAME-$VERSION.tar.bz2"
|
||||
CURRENTDIR="$(cd "$(dirname "$0")"; pwd)"
|
||||
RELEASEDIR_ROOT="$CURRENTDIR/../../../release"
|
||||
RELEASEDIR="${RELEASEDIR_ROOT}/${RELEASENAME-$VERSION}"
|
||||
|
||||
echo "Creating binary package in $RELEASEDIR"
|
||||
|
||||
if [ -d "$RELEASEDIR" ]; then rm -rf "$RELEASEDIR"; fi
|
||||
mkdir -p "$RELEASEDIR"
|
||||
|
||||
if [ "$skipbinarybuild" -eq "0" ]; then
|
||||
echo "building binaries ..."
|
||||
cd "$CURRENTDIR"
|
||||
if [ -d "build" ]; then rm -rf "build"; fi
|
||||
./build-mg.sh -b
|
||||
if [ "$?" -ne "0" ]; then echo 'ERROR: "./build-mg.sh" failed.' >&2; exit 1; fi
|
||||
else
|
||||
echo "SKIPPING build of binaries ..."
|
||||
fi
|
||||
|
||||
cd "$CURRENTDIR"
|
||||
echo "copying binaries ..."
|
||||
cp ../shared/*.ico "$RELEASEDIR"
|
||||
if [ -e "$RELEASEDIR/glest.ico" ]; then rm "$RELEASEDIR/glest.ico"; fi
|
||||
#cp bundle_resources/*.icns "$RELEASEDIR"
|
||||
cp {../shared/,}*.ini "$RELEASEDIR"
|
||||
if [ -e "$RELEASEDIR/glest-dev.ini" ]; then rm "$RELEASEDIR/glest-dev.ini"; fi
|
||||
cp megaglest "$RELEASEDIR"
|
||||
if [ -e "megaglest_editor" ]; then
|
||||
cp megaglest_editor "$RELEASEDIR"
|
||||
else
|
||||
if [ -e "$RELEASEDIR/editor.ico" ]; then rm "$RELEASEDIR/editor.ico"; fi
|
||||
fi
|
||||
if [ -e "megaglest_g3dviewer" ]; then
|
||||
cp megaglest_g3dviewer "$RELEASEDIR"
|
||||
else
|
||||
if [ -e "$RELEASEDIR/g3dviewer.ico" ]; then rm "$RELEASEDIR/g3dviewer.ico"; fi
|
||||
fi
|
||||
if [ -d "p7zip" ]; then cp -r p7zip "$RELEASEDIR"; fi
|
||||
|
||||
echo "creating $PACKAGE"
|
||||
cd "$RELEASEDIR_ROOT"
|
||||
if [ -f "$PACKAGE" ]; then rm "$PACKAGE"; fi
|
||||
cd "$RELEASENAME"
|
||||
tar -cf - * | bzip2 -9 > "../$PACKAGE"
|
||||
cd "$CURRENTDIR"
|
||||
|
||||
ls -lhA "${RELEASEDIR_ROOT}/$PACKAGE"
|
|
@ -0,0 +1,55 @@
|
|||
#!/bin/sh
|
||||
# Use this script to build MegaGlest release archives for a Version Release
|
||||
# ----------------------------------------------------------------------------
|
||||
# 2015 Written by filux <heross(@@)o2.pl>
|
||||
# Copyright (c) 2015 under GNU GPL v3.0+
|
||||
# ----------------------------------------------------------------------------
|
||||
LANG=C
|
||||
|
||||
CURRENTDIR="$(cd "$(dirname "$0")"; pwd)"
|
||||
cd "$CURRENTDIR"
|
||||
VERSION="$(../linux/mg-version.sh --version)"
|
||||
kernel="macos"
|
||||
|
||||
RELEASENAME="MegaGlest-game-$kernel"
|
||||
PACKAGE="$RELEASENAME-$VERSION.zip"
|
||||
PACKAGE2="$RELEASENAME-$VERSION.dmg"
|
||||
RELEASEDIR_ROOT="$CURRENTDIR/../../../release"
|
||||
RELEASEDIR="${RELEASEDIR_ROOT}/${RELEASENAME-$VERSION}"
|
||||
BINARY_DIR="megaglest-binary-$kernel"
|
||||
DATA_DIR="megaglest-standalone-data"
|
||||
APP_RES_DIR="$RELEASEDIR/MegaGlest.app/Contents/Resources"
|
||||
APP_BIN_DIR="$RELEASEDIR/MegaGlest.app/Contents/MacOS"
|
||||
APP_PLIST_DIR="$RELEASEDIR/MegaGlest.app/Contents"
|
||||
APP_GAME_DIR="$APP_RES_DIR/megaglest-game"
|
||||
|
||||
if [ -d "$RELEASEDIR" ]; then rm -rf "$RELEASEDIR"; fi
|
||||
mkdir -p "$APP_GAME_DIR"
|
||||
mkdir -p "$APP_BIN_DIR"
|
||||
|
||||
./make-binary-archive.sh
|
||||
cp -r "$RELEASEDIR_ROOT/$BINARY_DIR/"* "$APP_GAME_DIR"
|
||||
../linux/make-data-archive.sh
|
||||
cp -r "$RELEASEDIR_ROOT/$DATA_DIR/"* "$APP_GAME_DIR"
|
||||
cp "$CURRENTDIR/build/mk/macosx/bundle_resources/Info.plist" "$APP_PLIST_DIR"
|
||||
cp "$CURRENTDIR/bundle_resources/MegaGlest.icns" "$APP_RES_DIR"
|
||||
cp "$CURRENTDIR/bundle_resources/MegaGlest.sh" "$APP_BIN_DIR"
|
||||
mv "$APP_BIN_DIR/MegaGlest.sh" "$APP_BIN_DIR/MegaGlest"
|
||||
|
||||
echo "creating $PACKAGE"
|
||||
cd "$RELEASEDIR_ROOT"
|
||||
if [ -f "$PACKAGE" ]; then rm "$PACKAGE"; fi
|
||||
cd "$RELEASENAME"
|
||||
zip -9r "../$PACKAGE" "MegaGlest.app" >/dev/null
|
||||
ls -lhA "${RELEASEDIR_ROOT}/$PACKAGE"
|
||||
|
||||
echo "creating $PACKAGE2"
|
||||
cd "$CURRENTDIR/build"
|
||||
if [ -f "$RELEASEDIR_ROOT/$PACKAGE2" ]; then rm "$RELEASEDIR_ROOT/$PACKAGE2"; fi
|
||||
cpack
|
||||
mv -f MegaGlest*.dmg "$RELEASEDIR_ROOT"
|
||||
ls -lhA "${RELEASEDIR_ROOT}/$PACKAGE2"
|
||||
|
||||
cd "$RELEASEDIR_ROOT"
|
||||
find "${RELEASEDIR_ROOT}" -name "MegaGlest*" -type d | xargs rm -rf 2>/dev/null
|
||||
find "${RELEASEDIR_ROOT}" -name "megaglest*" -type d | xargs rm -rf 2>/dev/null
|
|
@ -0,0 +1,60 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Start a headless MegaGlest game server (and keep it running)
|
||||
#
|
||||
# Using this script, a headless game server is started, waiting for players to
|
||||
# connect (if your firewall configuration permits). Players connect and start a
|
||||
# game. As soon as the game ends, the server will quit, and this script will
|
||||
# start up a new server immidiately. This is a stability measure to rule out
|
||||
# the unlikely case where side effects (such as memory leaks or corruption)
|
||||
# could drain on system resources.
|
||||
#
|
||||
# For this to work, Internet originated traffic must be able to reach the
|
||||
# server on the following ports:
|
||||
# TCP port 61357: game protocol port
|
||||
# TCP port 61358: FTP control port
|
||||
# TCP ports 61359 to 61366: FTP data ports
|
||||
#
|
||||
# Once publishing to the master server succeeded (this can be verified at
|
||||
# <http://master.megaglest.org>) you may connect to your headless game server
|
||||
# using a copy of MegaGlest you have installed on a Desktop computer. The first
|
||||
# user connecting to a headless server controls it. If this user disconnects,
|
||||
# the next user who connects (or had already connected) takes control.
|
||||
#
|
||||
# Please read http://wiki.megaglest.org/Dedicated_Server for more information
|
||||
#
|
||||
# ----------------------------------------------------------------------------
|
||||
# Written by Tom Reynolds <tomreyn[at]megaglest.org>
|
||||
# Copyright (c) 2013 Tom Reynolds, The Megaglest Team, under GNU GPL v3.0+
|
||||
# ----------------------------------------------------------------------------
|
||||
LANG=C
|
||||
|
||||
# Install location
|
||||
DIR_GAME="$(cd "$(dirname "$0")"; pwd)"
|
||||
|
||||
# Log file location (beware, this can grow large)
|
||||
#LOG_SERVER=/dev/null
|
||||
LOG_SERVER=~/.megaglest/server.log
|
||||
|
||||
|
||||
# ---
|
||||
|
||||
cd $DIR_GAME
|
||||
#ulimit -c unlimited
|
||||
|
||||
while true; do
|
||||
if [ -f "$LOG_SERVER" ]; then mv -f "$LOG_SERVER" "$LOG_SERVER.1"; fi
|
||||
if [ -f "core" ]; then mv -f "core" "core.1"; fi
|
||||
date > "$LOG_SERVER"
|
||||
echo 'Starting server...' | tee -a "$LOG_SERVER"
|
||||
./megaglest --headless-server-mode=vps,exit >> "$LOG_SERVER" 2>&1
|
||||
if [ $? -ne 0 ];
|
||||
then
|
||||
echo 'ERROR: Server has quit unexpectedly.' >> "$LOG_SERVER"
|
||||
echo 'ERROR: Server has quit unexpectedly.' >&2
|
||||
echo ' Please inspect '"$LOG_SERVER"'.' >&2
|
||||
exit 1
|
||||
else
|
||||
echo 'Server has quit.' | tee -a "$LOG_SERVER"
|
||||
fi
|
||||
done
|
|
@ -1,6 +1,6 @@
|
|||
; === propertyMap File ===
|
||||
; === propertyMap File ===
|
||||
|
||||
General=50.115.163.66
|
||||
Fakir=54.207.6.180
|
||||
Vega=23.94.101.97
|
||||
Initiate_1=94.23.148.250:62001
|
||||
Initiate_2=94.23.148.250:62012
|
||||
Initiate_3=94.23.148.250:62023
|
||||
This computer=127.0.0.1
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
!define APNAME MegaGlest
|
||||
!define APNAME_OLD Mega-Glest
|
||||
!define APVER_OLD 3.9.1
|
||||
!define APVER 3.11.0
|
||||
!define APVER_OLD 3.11.0
|
||||
!define APVER 3.12-dev
|
||||
|
||||
Name "${APNAME} ${APVER}"
|
||||
SetCompressor /FINAL /SOLID lzma
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
; General Attributes
|
||||
|
||||
!define APNAME MegaGlest
|
||||
!define APVER 3.11.0
|
||||
!define APVER 3.12-dev
|
||||
!define APNAME_OLD Mega-Glest
|
||||
!define APVER_OLD 3.9.1
|
||||
!define APVER_UPDATE 3.11.0
|
||||
!define APVER_OLD 3.11.0
|
||||
!define APVER_UPDATE 3.12-dev
|
||||
|
||||
Name "${APNAME} ${APVER_UPDATE}"
|
||||
SetCompressor /FINAL /SOLID lzma
|
||||
|
|
|
@ -1,6 +1,16 @@
|
|||
#/bin/bash
|
||||
# This is a help script to build windows installers on a linux machine
|
||||
#
|
||||
# for this script nsis is needed:
|
||||
# windows binaries must be in place ( for example from snapshots.megaglest.org )
|
||||
|
||||
CURRENTDIR="$(dirname $(readlink -f $0))"
|
||||
cd "$CURRENTDIR"
|
||||
|
||||
# We need the AccessControl plugin for nsis and place this in plugins directory
|
||||
# original from http://nsis.sourceforge.net/AccessControl_plug-in
|
||||
wget http://downloads.megaglest.org/windowsInstallerHelp/AccessControl.dll -P plugins
|
||||
wget http://downloads.megaglest.org/windowsInstallerHelp/AccessControl.txt -P plugins
|
||||
|
||||
# for this script nsis is needed
|
||||
# windows binaries must be installed from snapshots.megaglest.org
|
||||
makensis MegaGlestInstaller.nsi
|
||||
|
||||
|
|
Binary file not shown.
|
@ -1,253 +0,0 @@
|
|||
ACCESS CONTROL PLUGIN
|
||||
---------------------
|
||||
|
||||
Written by Mathias Hasselmann <mathias@taschenorakel.de>
|
||||
Modifications by:
|
||||
* Afrow UK <afrowuk@afrowsoft.co.uk>
|
||||
* AndersK <anders_k@users.sf.net>
|
||||
|
||||
The AccessControl plugin for NSIS provides a set of functions related
|
||||
Windows NT access control list (ACL) management.
|
||||
|
||||
|
||||
MODIFICATIONS
|
||||
-------------
|
||||
|
||||
v1.0.8.1 - 7th July 2014 - AndersK
|
||||
* Don't require SE_RESTORE_NAME and SE_TAKE_OWNERSHIP_NAME when changing owner.
|
||||
* Fixed broken return value when trustee parsing failed
|
||||
|
||||
v1.0.8.0 - 24th March 2014 - AndersK
|
||||
* Added basic String SID parsing in the emulated ConvertStringSidToSid (Broken in v1.0.6)
|
||||
* Fixed WinNT4 and Win95 support? (Unicode DLL will not load on Win95 but will probably load on Win98)
|
||||
* Fixed leaks from ParseSid and ConvertSidToStringSid
|
||||
* NameToSid and SidToName now pushes "error" and error details
|
||||
* Better GetCurrentUserName error handling (Still returns the problematic "error" string)
|
||||
|
||||
v1.0.7.0 - 25th February 2012 - Afrow UK
|
||||
* Fixed DisableFileInheritance (broken in v1.0.5.0).
|
||||
|
||||
v1.0.6.0 - 26th January 2012 - Afrow UK
|
||||
* Wrote replacements for ConvertSidToStringSid/ConvertStringSidToSid for
|
||||
backwards compatibility with Windows NT4/ME (ANSI build only).
|
||||
* Loads RegSetKeySecurity/RegGetKeySecurity functions at run-time for
|
||||
backwards compatibility with Windows NT4/ME (ANSI build only).
|
||||
* Removed commented out legacy code.
|
||||
|
||||
v1.0.5.0 - 25th January 2012 - Afrow UK
|
||||
* Removed IsUserTheAdministrator.
|
||||
* Added NameToSid.
|
||||
* Major code cleanup/rewrite.
|
||||
* Proper Unicode build (with Unicode plugin API).
|
||||
* Support for 64-bit registry (SetRegView 64).
|
||||
* Functions now return "ok" on success or "error" otherwise. On "error",
|
||||
the next item on the stack will be the error description.
|
||||
* Added version information resource.
|
||||
|
||||
23rd January 2008 - Afrow UK
|
||||
* Added function IsUserTheAdministrator.
|
||||
* Cleaned up code. Rebuilt as pure cpp, decreasing DLL size.
|
||||
* No longer using gobal temp variable for strings.
|
||||
|
||||
7th January 2008 - Afrow UK
|
||||
* Fixed registry instructions.
|
||||
|
||||
8th November 2007 - Afrow UK
|
||||
* EnableInheritance/DisableInheritance names changed.
|
||||
* Functions added:
|
||||
EnableFileInheritance
|
||||
DisableFileInheritance
|
||||
EnableRegKeyInheritance
|
||||
DisableRegKeyInheritance
|
||||
GetFileOwner
|
||||
GetFileGroup
|
||||
GetRegKeyOwner
|
||||
GetRegKeyGroup
|
||||
ClearOnFile
|
||||
ClearOnRegKey
|
||||
GetCurrentUserName
|
||||
SidToName
|
||||
|
||||
21st August 2007 - Afrow UK
|
||||
* Added /noinherit switch to prevent child objects inheriting a
|
||||
particular permission.
|
||||
* Added EnableInheritance and DisableInheritance functions.
|
||||
* Removed code to print items in the install log.
|
||||
|
||||
13th July 2007 - kichik
|
||||
* Return proper error codes (return value instead of GetLastError())
|
||||
|
||||
30th June 2006 - Afrow UK
|
||||
* Error MessageBox removed.
|
||||
* Error messages are now just returned on NSIS stack.
|
||||
|
||||
|
||||
CONVENTIONS
|
||||
-----------
|
||||
|
||||
<filename>
|
||||
A valid Windows(tm) filename (ie. "C:\WINDOWS\" or
|
||||
"\\HOSTNAME\SHARE").
|
||||
|
||||
<rootkey>
|
||||
The well-known root of a registry key. Following values are defined:
|
||||
|
||||
HKCR - HKEY_CLASSES_ROOT
|
||||
HKLM - HKEY_LOCAL_MACHINE
|
||||
HKCU - HKEY_CURRENT_USER
|
||||
HKU - HKEY_USERS
|
||||
|
||||
<regkey>
|
||||
The name of the registry to alter (ie. "Software\Microsoft\Windows").
|
||||
|
||||
<trustee>
|
||||
A valid Windows(tm) account. The account can be specified as relative
|
||||
account name (ie. "Administrator" or "Everyone"), a qualified account
|
||||
name (ie. "Domain\Administrator") or as security identifier (SID,
|
||||
ie. "(S-1-5-32-545)"). "BUILTIN\USERS" is also a valid account name.
|
||||
For a list of trustee names, open up
|
||||
Control Panel > Administrative Tools > Computer Management >
|
||||
Local Users and Groups.
|
||||
WinNT4 uses a emulated version of ConvertStringSidToSid and
|
||||
only supports the following SDDL strings: AN, AU, BA, BU, IU, SY and WD
|
||||
|
||||
<permissions>
|
||||
A combination of access rights (ie. "FullAccess" or
|
||||
"GenericRead + GenericWrite").
|
||||
For a full list of access rights, open the AccessControl.cpp source
|
||||
file in Notepad.
|
||||
|
||||
/NOINHERIT
|
||||
Ensures the specified ACEs (Access Control Entries) are not inherited
|
||||
by child nodes (i.e for directory or registry key objects).
|
||||
|
||||
HANDLING ERRORS
|
||||
---------------
|
||||
|
||||
To handle errors, check the result on the stack:
|
||||
|
||||
AccessControl::SetOnRegKey HKLM Software\MyApp Stuart FullAccess
|
||||
Pop $R0
|
||||
${If} $R0 == error
|
||||
Pop $R0
|
||||
DetailPrint `AccessControl error: $R0`
|
||||
${EndIf}
|
||||
|
||||
FUNCTIONS
|
||||
---------
|
||||
|
||||
GrantOnFile [/NOINHERIT] <filename> <trustee> <permissions>
|
||||
GrantOnRegKey [/NOINHERIT] <rootkey> <regkey> <trustee> <permissions>
|
||||
Pop $Result ; "ok" or "error" + error details
|
||||
|
||||
Makes sure that the trustee get the requested access rights on
|
||||
that object.
|
||||
|
||||
---------
|
||||
|
||||
SetOnFile [/NOINHERIT] <filename> <trustee> <permissions>
|
||||
SetOnRegKey [/NOINHERIT] <rootkey> <regkey> <trustee> <permissions>
|
||||
Pop $Result ; "ok" or "error" + error details
|
||||
|
||||
Replaces any existing access rights for the trustee on the object
|
||||
with the specified access rights.
|
||||
|
||||
---------
|
||||
|
||||
ClearOnFile [/NOINHERIT] <filename> <trustee> <permissions>
|
||||
ClearOnRegKey [/NOINHERIT] <rootkey> <regkey> <trustee> <permissions>
|
||||
Pop $Result ; "ok" or "error" + error details
|
||||
|
||||
Replaces all trustees on the object with the specified trustee and
|
||||
access rights.
|
||||
|
||||
---------
|
||||
|
||||
DenyOnFile [/NOINHERIT] <filename> <trustee> <permissions>
|
||||
DenyOnRegKey [/NOINHERIT] <rootkey> <regkey> <trustee> <permissions>
|
||||
Pop $Result ; "ok" or "error" + error details
|
||||
|
||||
Explicitly denies an access right on a object.
|
||||
|
||||
---------
|
||||
|
||||
RevokeOnFile [/NOINHERIT] <filename> <trustee> <permissions>
|
||||
RevokeOnRegKey [/NOINHERIT] <rootkey> <regkey> <trustee> <permissions>
|
||||
Pop $Result ; "ok" or "error" + error details
|
||||
|
||||
Removes a formerly defined access right for that object.
|
||||
Note that access rights will still be revoked even if they are
|
||||
inherited.
|
||||
|
||||
---------
|
||||
|
||||
SetFileOwner <filename> <trustee>
|
||||
SetRegKeyOwner <rootkey> <regkey> <trustee>
|
||||
Pop $Result ; "ok" or "error" + error details
|
||||
|
||||
Changes the owner of an object.
|
||||
|
||||
---------
|
||||
|
||||
GetFileOwner <filename>
|
||||
GetRegKeyOwner <rootkey> <regkey>
|
||||
Pop $Owner ; or "error" + error details
|
||||
|
||||
Gets the owner of an object.
|
||||
|
||||
---------
|
||||
|
||||
SetFileGroup <filename> <trustee>
|
||||
SetRegKeyGroup <rootkey> <regkey> <trustee>
|
||||
Pop $Result ; "ok" or "error" + error details
|
||||
|
||||
Changes the primary group of the object.
|
||||
|
||||
---------
|
||||
|
||||
GetFileGroup <filename>
|
||||
GetRegKeyGroup <rootkey> <regkey>
|
||||
Pop $Group ; or "error" + error details
|
||||
|
||||
Gets the primary group of the object.
|
||||
|
||||
---------
|
||||
|
||||
EnableFileInheritance <filename>
|
||||
EnableRegKeyInheritance <rootkey> <regkey>
|
||||
Pop $Result ; "ok" or "error" + error details
|
||||
|
||||
Enables inheritance of parent object permissions.
|
||||
|
||||
---------
|
||||
|
||||
DisableFileInheritance <filename>
|
||||
DisableRegKeyInheritance <rootkey> <regkey>
|
||||
Pop $Result ; "ok" or "error" + error details
|
||||
|
||||
Disables inheritance of parent object permissions.
|
||||
|
||||
---------
|
||||
|
||||
SidToName <sidstring>
|
||||
Pop $Domain ; or "error" + error details
|
||||
Pop $Username
|
||||
|
||||
Converts an SID on the local machine to the corresponding username and
|
||||
domain name.
|
||||
|
||||
---------
|
||||
|
||||
NameToSid <username>
|
||||
Pop $SID ; or "error" + error details
|
||||
|
||||
Gets the SID of the specified username on the local machine.
|
||||
|
||||
---------
|
||||
|
||||
GetCurrentUserName
|
||||
Pop $Username ; or "error"
|
||||
|
||||
Gets the username of the current user running the setup.
|
||||
|
||||
---------
|
|
@ -6,6 +6,10 @@ SET(TARGET_NAME_MANPAGE "${TARGET_NAME}.6")
|
|||
|
||||
IF(BUILD_MEGAGLEST_MODEL_VIEWER)
|
||||
MESSAGE(STATUS "Will try to build MegaGlest model viewer")
|
||||
|
||||
IF(UNIX AND APPLE AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
ADD_DEFINITIONS("-std=c++11")
|
||||
ENDIF()
|
||||
|
||||
FIND_PACKAGE(SDL REQUIRED)
|
||||
INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
|
||||
|
@ -128,13 +132,15 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER)
|
|||
ENDFOREACH(DIR)
|
||||
|
||||
OPTION(WANT_DEV_OUTPATH "use developer friendly output paths" OFF)
|
||||
IF(WANT_DEV_OUTPATH)
|
||||
IF(UNIX AND NOT APPLE)
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/)
|
||||
ELSE()
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(WANT_DEV_OUTPATH)
|
||||
IF(UNIX AND NOT APPLE)
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/)
|
||||
ELSEIF(UNIX AND APPLE)
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/macosx/)
|
||||
ELSE()
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
SET(HELP2MAN_OUT_PATH ${EXECUTABLE_OUTPUT_PATH})
|
||||
IF("${EXECUTABLE_OUTPUT_PATH}" STREQUAL "")
|
||||
|
@ -163,7 +169,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER)
|
|||
IF(EXISTS ${HELP2MAN})
|
||||
MESSAGE("***-- Found help2man: ${HELP2MAN} about to build manpage in [${HELP2MAN_OUT_PATH}${TARGET_NAME_MANPAGE}]")
|
||||
|
||||
SET(MG_MANPAGE_DESCRIPTION "G3D Model editor for the popular 3D realtime stragegy game")
|
||||
SET(MG_MANPAGE_DESCRIPTION "G3D Model editor for the popular 3D realtime strategy game")
|
||||
|
||||
IF(EXISTS ${XVFB_EXEC})
|
||||
MESSAGE("***-- Found xvfb-run: ${XVFB_EXEC} about to build manpage with it.")
|
||||
|
@ -199,12 +205,21 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER)
|
|||
"${PROJECT_SOURCE_DIR}/mk/shared/g3dviewer.ico"
|
||||
DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH})
|
||||
|
||||
# Installation of the program desktop file
|
||||
SET(MG_DESKTOP_FILE ${PROJECT_SOURCE_DIR}/mk/linux/megaglest_g3dviewer.desktop)
|
||||
IF(UNIX AND NOT APPLE)
|
||||
# Installation of the program desktop file
|
||||
SET(MG_DESKTOP_FILE ${PROJECT_SOURCE_DIR}/mk/linux/megaglest_g3dviewer.desktop)
|
||||
|
||||
INSTALL(FILES
|
||||
"${MG_DESKTOP_FILE}"
|
||||
DESTINATION ${MEGAGLEST_DESKTOP_INSTALL_PATH})
|
||||
INSTALL(FILES
|
||||
"${MG_DESKTOP_FILE}"
|
||||
DESTINATION ${MEGAGLEST_DESKTOP_INSTALL_PATH})
|
||||
|
||||
IF(NOT BUILD_MEGAGLEST)
|
||||
INSTALL(FILES
|
||||
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.png"
|
||||
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.xpm"
|
||||
DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH})
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
|
|
@ -58,7 +58,7 @@ const char *folderDelimiter = "/";
|
|||
//int GameConstants::updateFps= 40;
|
||||
//int GameConstants::cameraFps= 100;
|
||||
|
||||
const string g3dviewerVersionString= "v1.3.6";
|
||||
const string g3dviewerVersionString= "v3.12-dev";
|
||||
|
||||
// Because g3d should always support alpha transparency
|
||||
string fileFormat = "png";
|
||||
|
|
|
@ -217,13 +217,15 @@ IF(BUILD_MEGAGLEST)
|
|||
ENDIF()
|
||||
|
||||
OPTION(WANT_DEV_OUTPATH "use developer friendly output paths" OFF)
|
||||
IF(WANT_DEV_OUTPATH)
|
||||
IF(UNIX AND NOT APPLE)
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/)
|
||||
ELSE()
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(WANT_DEV_OUTPATH)
|
||||
IF(UNIX AND NOT APPLE)
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/)
|
||||
ELSEIF(UNIX AND APPLE)
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/macosx/)
|
||||
ELSE()
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
MESSAGE(STATUS "***Note: The final output path for Megaglest Game will be [${EXECUTABLE_OUTPUT_PATH}]")
|
||||
|
||||
|
@ -299,17 +301,27 @@ IF(BUILD_MEGAGLEST)
|
|||
DESTINATION ${MEGAGLEST_MANPAGE_INSTALL_PATH})
|
||||
ENDIF()
|
||||
|
||||
# rename the ini for installation
|
||||
INSTALL(FILES
|
||||
"${PROJECT_SOURCE_DIR}/mk/shared/glestkeys.ini"
|
||||
"${PROJECT_SOURCE_DIR}/mk/shared/servers.ini"
|
||||
DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH})
|
||||
IF(WIN32)
|
||||
INSTALL(FILES
|
||||
"${PROJECT_SOURCE_DIR}/mk/windoze/glest.ini"
|
||||
"${PROJECT_SOURCE_DIR}/mk/shared/glestkeys.ini"
|
||||
DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH})
|
||||
ELSE()
|
||||
INSTALL(FILES
|
||||
"${PROJECT_SOURCE_DIR}/mk/linux/glest.ini"
|
||||
"${PROJECT_SOURCE_DIR}/mk/shared/glestkeys.ini"
|
||||
DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH})
|
||||
INSTALL(FILES
|
||||
"${PROJECT_SOURCE_DIR}/mk/windoze/glest.ini"
|
||||
DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH})
|
||||
ELSEIF(UNIX AND NOT APPLE)
|
||||
INSTALL(FILES
|
||||
"${PROJECT_SOURCE_DIR}/mk/linux/glest.ini"
|
||||
DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH})
|
||||
ELSEIF(UNIX AND APPLE)
|
||||
INSTALL(FILES
|
||||
"${PROJECT_SOURCE_DIR}/mk/macosx/glest.ini"
|
||||
DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH})
|
||||
IF(SINGLE_INSTALL_DIRECTORY AND EXISTS "${PROJECT_SOURCE_DIR}/mk/macosx/p7zip/")
|
||||
INSTALL(DIRECTORY
|
||||
"${PROJECT_SOURCE_DIR}/mk/macosx/p7zip"
|
||||
DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH})
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
# Installation of data files from outside normal data folder
|
||||
|
@ -317,21 +329,34 @@ IF(BUILD_MEGAGLEST)
|
|||
# DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH}data/core/misc_textures
|
||||
# OPTIONAL REGEX "/.git" EXCLUDE)
|
||||
|
||||
MESSAGE(STATUS "**Source package detected git folder structure.")
|
||||
#MESSAGE(STATUS "**Source package detected git folder structure.")
|
||||
|
||||
# Installation of the program desktop file
|
||||
INSTALL(FILES
|
||||
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.desktop"
|
||||
DESTINATION ${MEGAGLEST_DESKTOP_INSTALL_PATH})
|
||||
IF(NOT APPLE)
|
||||
# Installation of the program desktop file
|
||||
INSTALL(FILES
|
||||
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.desktop"
|
||||
DESTINATION ${MEGAGLEST_DESKTOP_INSTALL_PATH})
|
||||
ENDIF()
|
||||
|
||||
# Installation of the program desktop icon file
|
||||
INSTALL(FILES
|
||||
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.png"
|
||||
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.xpm"
|
||||
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.bmp"
|
||||
"${PROJECT_SOURCE_DIR}/mk/shared/editor.ico"
|
||||
"${PROJECT_SOURCE_DIR}/mk/shared/glest.ico"
|
||||
"${PROJECT_SOURCE_DIR}/mk/shared/g3dviewer.ico"
|
||||
DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH})
|
||||
ENDIF()
|
||||
# Installation of the program desktop icon file
|
||||
INSTALL(FILES
|
||||
"${PROJECT_SOURCE_DIR}/mk/shared/megaglest.ico"
|
||||
DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH})
|
||||
IF(UNIX AND NOT APPLE)
|
||||
INSTALL(FILES
|
||||
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.png"
|
||||
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.xpm"
|
||||
DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH})
|
||||
ELSEIF(UNIX AND APPLE)
|
||||
IF(NOT SINGLE_INSTALL_DIRECTORY)
|
||||
INSTALL(FILES
|
||||
"${PROJECT_SOURCE_DIR}/mk/macosx/bundle_resources/MegaGlest.icns"
|
||||
DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH})
|
||||
ENDIF()
|
||||
ELSE()
|
||||
INSTALL(FILES
|
||||
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.bmp"
|
||||
DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH})
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
|
|
@ -32,7 +32,7 @@ const char *mailString = " http://bugs.megaglest.org";
|
|||
// !! Use minor versions !! Only major and minor version control compatibility!
|
||||
// typical version numbers look like this: v3.11-beta1.0 v3.12-dev v3.12.0
|
||||
// don't forget to update mk/linux/mg-version.sh
|
||||
const string glestVersionString = "v3.11.0";
|
||||
const string glestVersionString = "v3.12-dev";
|
||||
const string lastCompatibleSaveGameVersionString = "v3.9.0";
|
||||
|
||||
#if defined(GITVERSION)
|
||||
|
@ -43,7 +43,7 @@ const string lastCompatibleSaveGameVersionString = "v3.9.0";
|
|||
const string GIT_RawRev = string(GITVERSION);
|
||||
const string GIT_Rev = string("Rev: ") + string(GITVERSION);
|
||||
#else
|
||||
const string GIT_RawRev = "$4446.1a8673f$";
|
||||
const string GIT_RawRev = "$5060.7451e49$";
|
||||
const string GIT_Rev = "$Rev$";
|
||||
#endif
|
||||
|
||||
|
|
|
@ -240,7 +240,7 @@ void Game::resetMembers() {
|
|||
|
||||
scrollSpeed = Config::getInstance().getFloat("UiScrollSpeed","1.5");
|
||||
photoModeEnabled = Config::getInstance().getBool("PhotoMode","false");
|
||||
healthbarMode = Config::getInstance().getInt("HealthBarMode","0");
|
||||
healthbarMode = Config::getInstance().getInt("HealthBarMode","4");
|
||||
visibleHUD = Config::getInstance().getBool("VisibleHud","true");
|
||||
timeDisplay = Config::getInstance().getBool("TimeDisplay","true");
|
||||
withRainEffect = Config::getInstance().getBool("RainEffect","true");
|
||||
|
@ -1334,39 +1334,13 @@ void Game::init(bool initForPreviewOnly) {
|
|||
}
|
||||
|
||||
if(this->loadGameNode == NULL) {
|
||||
gameCamera.init(map->getW(), map->getH());
|
||||
|
||||
// camera default height calculation
|
||||
if(map->getCameraHeight()>0 && gameCamera.getCalculatedDefault()<map->getCameraHeight()){
|
||||
gameCamera.setCalculatedDefault(map->getCameraHeight());
|
||||
}
|
||||
else if(gameCamera.getCalculatedDefault()<map->getMaxMapHeight()+13.0f){
|
||||
gameCamera.setCalculatedDefault(map->getMaxMapHeight()+13.0f);
|
||||
}
|
||||
|
||||
if(world.getThisFaction() != NULL) {
|
||||
const Vec2i &v= map->getStartLocation(world.getThisFaction()->getStartLocationIndex());
|
||||
gameCamera.setPos(Vec2f(v.x, v.y));
|
||||
}
|
||||
initCamera(map);
|
||||
}
|
||||
else {
|
||||
gui.loadGame(loadGameNode,&world);
|
||||
|
||||
if(inJoinGameLoading == true) {
|
||||
gameCamera.init(map->getW(), map->getH());
|
||||
|
||||
// camera default height calculation
|
||||
if(map->getCameraHeight()>0 && gameCamera.getCalculatedDefault()<map->getCameraHeight()){
|
||||
gameCamera.setCalculatedDefault(map->getCameraHeight());
|
||||
}
|
||||
else if(gameCamera.getCalculatedDefault()<map->getMaxMapHeight()+13.0f){
|
||||
gameCamera.setCalculatedDefault(map->getMaxMapHeight()+13.0f);
|
||||
}
|
||||
|
||||
if(world.getThisFaction() != NULL) {
|
||||
const Vec2i &v= map->getStartLocation(world.getThisFaction()->getStartLocationIndex());
|
||||
gameCamera.setPos(Vec2f(v.x, v.y));
|
||||
}
|
||||
initCamera(map);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1634,6 +1608,23 @@ void Game::init(bool initForPreviewOnly) {
|
|||
}
|
||||
}
|
||||
|
||||
void Game::initCamera(Map *map){
|
||||
gameCamera.init(map->getW(), map->getH());
|
||||
|
||||
// camera default height calculation
|
||||
if(map->getCameraHeight()>0 && gameCamera.getCalculatedDefault()<map->getCameraHeight()){
|
||||
gameCamera.setCalculatedDefault(map->getCameraHeight());
|
||||
}
|
||||
else if(gameCamera.getCalculatedDefault()<map->getMaxMapHeight()+13.0f){
|
||||
gameCamera.setCalculatedDefault(map->getMaxMapHeight()+13.0f);
|
||||
}
|
||||
|
||||
if(world.getThisFaction() != NULL) {
|
||||
const Vec2i &v= map->getStartLocation(world.getThisFaction()->getStartLocationIndex());
|
||||
gameCamera.setPos(Vec2f(v.x, v.y+gameCamera.getCalculatedDefault()/2));
|
||||
}
|
||||
}
|
||||
|
||||
// ==================== update ====================
|
||||
|
||||
void Game::reInitGUI() {
|
||||
|
@ -4355,17 +4346,21 @@ void Game::mouseDoubleClickLeft(int x, int y) {
|
|||
|
||||
const Metrics &metrics= Metrics::getInstance();
|
||||
|
||||
//display panel
|
||||
if(metrics.isInDisplay(x, y) && !gui.isSelectingPos()) {
|
||||
int xd= x - metrics.getDisplayX();
|
||||
int yd= y - metrics.getDisplayY();
|
||||
if(gui.mouseValid(xd, yd)){
|
||||
return;
|
||||
}
|
||||
if(metrics.isInMinimap(x, y)){
|
||||
// no double click on minimap
|
||||
}
|
||||
else {
|
||||
//display panel
|
||||
if(metrics.isInDisplay(x, y) && !gui.isSelectingPos()) {
|
||||
int xd= x - metrics.getDisplayX();
|
||||
int yd= y - metrics.getDisplayY();
|
||||
if(gui.mouseValid(xd, yd)){
|
||||
return;
|
||||
}
|
||||
}
|
||||
//graphics panel
|
||||
gui.mouseDoubleClickLeftGraphics(x, y);
|
||||
}
|
||||
|
||||
//graphics panel
|
||||
gui.mouseDoubleClickLeftGraphics(x, y);
|
||||
}
|
||||
catch(const exception &ex) {
|
||||
char szBuf[8096]="";
|
||||
|
|
|
@ -408,6 +408,7 @@ private:
|
|||
void checkWinnerStandardHeadlessOrObserver();
|
||||
void checkWinnerStandardPlayer();
|
||||
std::map<int, int> getTeamsAlive();
|
||||
void initCamera(Map *map);
|
||||
|
||||
virtual bool clientLagHandler(int slotIndex,bool networkPauseGameForLaggedClients);
|
||||
};
|
||||
|
|
|
@ -257,8 +257,8 @@ void Gui::mouseDownLeftGraphics(int x, int y, bool prepared) {
|
|||
if(selectingPos) {
|
||||
//give standard orders
|
||||
Vec2i targetPos=game->getMouseCellPos();
|
||||
if(game->isValidMouseCellPos() &&
|
||||
world->getMap()->isInsideSurface(world->getMap()->toSurfCoords(targetPos)) == true) {
|
||||
if(prepared || (game->isValidMouseCellPos() &&
|
||||
world->getMap()->isInsideSurface(world->getMap()->toSurfCoords(targetPos)) == true)) {
|
||||
giveTwoClickOrders(x, y, prepared);
|
||||
}
|
||||
resetState();
|
||||
|
@ -267,8 +267,8 @@ void Gui::mouseDownLeftGraphics(int x, int y, bool prepared) {
|
|||
else if(selectingMeetingPoint) {
|
||||
if(selection.isCommandable()) {
|
||||
Vec2i targetPos=game->getMouseCellPos();
|
||||
if(game->isValidMouseCellPos() &&
|
||||
world->getMap()->isInsideSurface(world->getMap()->toSurfCoords(targetPos)) == true) {
|
||||
if(prepared || (game->isValidMouseCellPos() &&
|
||||
world->getMap()->isInsideSurface(world->getMap()->toSurfCoords(targetPos)) == true)) {
|
||||
commander->trySetMeetingPoint(selection.getFrontUnit(), targetPos);
|
||||
}
|
||||
}
|
||||
|
@ -288,15 +288,15 @@ void Gui::mouseDownRightGraphics(int x, int y , bool prepared) {
|
|||
else if(selection.isCommandable()) {
|
||||
if(prepared) {
|
||||
Vec2i targetPos=game->getMouseCellPos();
|
||||
if(game->isValidMouseCellPos() &&
|
||||
world->getMap()->isInsideSurface(world->getMap()->toSurfCoords(targetPos)) == true) {
|
||||
if(prepared || (game->isValidMouseCellPos() &&
|
||||
world->getMap()->isInsideSurface(world->getMap()->toSurfCoords(targetPos)) == true )) {
|
||||
givePreparedDefaultOrders(x, y);
|
||||
}
|
||||
}
|
||||
else {
|
||||
Vec2i targetPos=game->getMouseCellPos();
|
||||
if(game->isValidMouseCellPos() &&
|
||||
world->getMap()->isInsideSurface(world->getMap()->toSurfCoords(targetPos)) == true) {
|
||||
if(prepared || (game->isValidMouseCellPos() &&
|
||||
world->getMap()->isInsideSurface(world->getMap()->toSurfCoords(targetPos)) == true)) {
|
||||
giveDefaultOrders(x, y);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4607,7 +4607,7 @@ void MenuStateConnectedGame::setupUIFromGameSettings(GameSettings *gameSettings,
|
|||
|
||||
// Is the item in the mod center?
|
||||
MutexSafeWrapper safeMutexThread((modHttpServerThread != NULL ? modHttpServerThread->getMutexThreadObjectAccessor() : NULL),string(__FILE__) + "_" + intToStr(__LINE__));
|
||||
if(tilesetCacheList.find(getMissingMapFromFTPServer) == tilesetCacheList.end()) {
|
||||
if(tilesetCacheList.find(getMissingTilesetFromFTPServer) == tilesetCacheList.end()) {
|
||||
ftpMessageBox.init(lang.getString("Yes"),lang.getString("NoDownload"));
|
||||
}
|
||||
else {
|
||||
|
@ -4775,7 +4775,7 @@ void MenuStateConnectedGame::setupUIFromGameSettings(GameSettings *gameSettings,
|
|||
|
||||
// Is the item in the mod center?
|
||||
MutexSafeWrapper safeMutexThread((modHttpServerThread != NULL ? modHttpServerThread->getMutexThreadObjectAccessor() : NULL),string(__FILE__) + "_" + intToStr(__LINE__));
|
||||
if(mapCacheList.find(getMissingTechtreeFromFTPServer) == mapCacheList.end()) {
|
||||
if(mapCacheList.find(getMissingMapFromFTPServer) == mapCacheList.end()) {
|
||||
ftpMessageBox.init(lang.getString("Yes"),lang.getString("NoDownload"));
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -240,7 +240,7 @@ MenuStateOptions::MenuStateOptions(Program *program, MainMenu *mainMenu, Program
|
|||
listBoxHealthBars.pushBackItem(lang.getString("HealthbarsSelected"));
|
||||
listBoxHealthBars.pushBackItem(lang.getString("HealthbarsSelectedOrNeeded"));
|
||||
|
||||
int hpMode=config.getInt("HealthBarMode","0");
|
||||
int hpMode=config.getInt("HealthBarMode","4");
|
||||
int hpIndex=0;
|
||||
switch (hpMode) {
|
||||
case hbvUndefined:
|
||||
|
@ -411,7 +411,7 @@ void MenuStateOptions::reloadUI() {
|
|||
buttonKeyboardSetup.setText(lang.getString("Keyboardsetup"));
|
||||
|
||||
labelVisibleHud.setText(lang.getString("VisibleHUD"));
|
||||
labelHealthBars.setText(lang.getString("HealthBars"));
|
||||
labelHealthBars.setText(lang.getString("Healthbar"));
|
||||
labelChatStaysActive.setText(lang.getString("ChatStaysActive"));
|
||||
labelTimeDisplay.setText(lang.getString("TimeDisplay"));
|
||||
|
||||
|
|
|
@ -306,7 +306,7 @@ string UpgradeTypeBase::getDesc(bool translatedValue) const{
|
|||
string indent="->";
|
||||
Lang &lang= Lang::getInstance();
|
||||
|
||||
if(getMaxHp() != 0) {
|
||||
if(getMaxHp() != 0 || getMaxHpRegeneration() != 0) {
|
||||
str += indent+lang.getString("Hp",(translatedValue == true ? "" : "english")) + " +" + intToStr(maxHp);
|
||||
if(maxHpIsMultiplier) {
|
||||
str += "%";
|
||||
|
@ -315,11 +315,11 @@ string UpgradeTypeBase::getDesc(bool translatedValue) const{
|
|||
// str += " +" + intToStr(getMaxHpFromBoosts());
|
||||
// }
|
||||
if(getMaxHpRegeneration() != 0) {
|
||||
str += " [" + intToStr(maxHpRegeneration);
|
||||
str += " (" + lang.getString("Regeneration",(translatedValue == true ? "" : "english")) + ": +" + intToStr(maxHpRegeneration);
|
||||
// if(getMaxHpRegenerationFromBoosts() != 0) {
|
||||
// str += " +" + intToStr(getMaxHpRegenerationFromBoosts());
|
||||
// }
|
||||
str += "]";
|
||||
str += ")";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -336,7 +336,7 @@ string UpgradeTypeBase::getDesc(bool translatedValue) const{
|
|||
// }
|
||||
}
|
||||
|
||||
if(getMaxEp() != 0) {
|
||||
if(getMaxEp() != 0 || getMaxEpRegeneration() != 0) {
|
||||
if(str != "") {
|
||||
str += "\n";
|
||||
}
|
||||
|
@ -350,11 +350,11 @@ string UpgradeTypeBase::getDesc(bool translatedValue) const{
|
|||
// }
|
||||
|
||||
if(getMaxEpRegeneration() != 0) {
|
||||
str += " [" + intToStr(maxEpRegeneration);
|
||||
str += " (" + lang.getString("Regeneration",(translatedValue == true ? "" : "english")) + ": +" + intToStr(maxEpRegeneration);
|
||||
// if(getMaxEpRegenerationFromBoosts() != 0) {
|
||||
// str += " +" + intToStr(getMaxEpRegenerationFromBoosts());
|
||||
// }
|
||||
str += "]";
|
||||
str += ")";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,10 @@ SET(TARGET_NAME_MANPAGE "${TARGET_NAME}.6")
|
|||
|
||||
IF(BUILD_MEGAGLEST_MAP_EDITOR)
|
||||
MESSAGE(STATUS "Will try to build MegaGlest map editor")
|
||||
|
||||
IF(UNIX AND APPLE AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
ADD_DEFINITIONS("-std=c++11")
|
||||
ENDIF()
|
||||
|
||||
FIND_PACKAGE(SDL REQUIRED)
|
||||
INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
|
||||
|
@ -112,13 +116,15 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR)
|
|||
ENDFOREACH(DIR)
|
||||
|
||||
OPTION(WANT_DEV_OUTPATH "use developer friendly output paths" OFF)
|
||||
IF(WANT_DEV_OUTPATH)
|
||||
IF(UNIX AND NOT APPLE)
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/)
|
||||
ELSE()
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(WANT_DEV_OUTPATH)
|
||||
IF(UNIX AND NOT APPLE)
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/)
|
||||
ELSEIF(UNIX AND APPLE)
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/macosx/)
|
||||
ELSE()
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
SET(HELP2MAN_OUT_PATH ${EXECUTABLE_OUTPUT_PATH})
|
||||
IF("${EXECUTABLE_OUTPUT_PATH}" STREQUAL "")
|
||||
|
@ -156,7 +162,7 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR)
|
|||
IF(EXISTS ${HELP2MAN})
|
||||
MESSAGE("***-- Found help2man: ${HELP2MAN} about to build manpage in [${HELP2MAN_OUT_PATH}${TARGET_NAME_MANPAGE}]")
|
||||
|
||||
SET(MG_MANPAGE_DESCRIPTION "Map editor for the popular 3D realtime stragegy game")
|
||||
SET(MG_MANPAGE_DESCRIPTION "Map editor for the popular 3D realtime strategy game")
|
||||
|
||||
IF(EXISTS ${XVFB_EXEC})
|
||||
MESSAGE("***-- Found xvfb-run: ${XVFB_EXEC} about to build manpage with it.")
|
||||
|
@ -193,12 +199,20 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR)
|
|||
"${PROJECT_SOURCE_DIR}/mk/shared/editor.ico"
|
||||
DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH})
|
||||
|
||||
# Installation of the program desktop file
|
||||
SET(MG_DESKTOP_FILE ${PROJECT_SOURCE_DIR}/mk/linux/megaglest_editor.desktop)
|
||||
IF(UNIX AND NOT APPLE)
|
||||
# Installation of the program desktop file
|
||||
SET(MG_DESKTOP_FILE ${PROJECT_SOURCE_DIR}/mk/linux/megaglest_editor.desktop)
|
||||
|
||||
INSTALL(FILES
|
||||
"${MG_DESKTOP_FILE}"
|
||||
DESTINATION ${MEGAGLEST_DESKTOP_INSTALL_PATH})
|
||||
INSTALL(FILES
|
||||
"${MG_DESKTOP_FILE}"
|
||||
DESTINATION ${MEGAGLEST_DESKTOP_INSTALL_PATH})
|
||||
|
||||
IF(NOT BUILD_MEGAGLEST)
|
||||
INSTALL(FILES
|
||||
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.png"
|
||||
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.xpm"
|
||||
DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH})
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
|
|
@ -46,7 +46,7 @@ string getGameReadWritePath(string lookupKey) {
|
|||
|
||||
namespace MapEditor {
|
||||
|
||||
const string mapeditorVersionString = "v1.6.1";
|
||||
const string mapeditorVersionString = "v3.12-dev";
|
||||
const string MainWindow::winHeader = "MegaGlest Map Editor " + mapeditorVersionString;
|
||||
|
||||
// ===============================================
|
||||
|
@ -103,6 +103,13 @@ MainWindow::MainWindow(string appPath)
|
|||
resourceUnderMouse=0;
|
||||
objectUnderMouse=0;
|
||||
|
||||
// default values for random height calculation that turned out to be quite useful
|
||||
randomWithReset=true;
|
||||
randomMinimumHeight=-300;
|
||||
randomMaximumHeight=400;
|
||||
randomChanceDevider=30;
|
||||
randomRecursions=3;
|
||||
|
||||
this->appPath = appPath;
|
||||
Properties::setApplicationPath(executable_path(appPath));
|
||||
|
||||
|
@ -143,7 +150,7 @@ void MainWindow::init(string fname) {
|
|||
#elif wxCHECK_VERSION(2, 9, 1)
|
||||
|
||||
#else
|
||||
//glCanvas->SetCurrent();
|
||||
glCanvas->SetCurrent();
|
||||
//printf("setcurrent #2\n");
|
||||
#endif
|
||||
|
||||
|
@ -187,7 +194,7 @@ void MainWindow::init(string fname) {
|
|||
// ---------------------------------------------------------
|
||||
|
||||
menuEdit->Append(miEditRandomizeHeights, wxT("Randomize &Heights"));
|
||||
menuEdit->Append(miEditRandomize, wxT("Randomi&ze Heights/Players"));
|
||||
menuEdit->Append(miEditRandomize, wxT("Randomi&ze Players"));
|
||||
menuEdit->Append(miEditSwitchSurfaces, wxT("Switch Sur&faces..."));
|
||||
menuEdit->Append(miEditInfo, wxT("&Info..."));
|
||||
menuEdit->Append(miEditAdvanced, wxT("&Advanced..."));
|
||||
|
@ -314,7 +321,7 @@ void MainWindow::init(string fname) {
|
|||
GetStatusBar()->SetStatusWidths(siCOUNT, status_widths);
|
||||
|
||||
SetStatusText(wxT("File: ") + ToUnicode(fileName), siFILE_NAME);
|
||||
SetStatusText(wxT(".gbm"), siFILE_TYPE);
|
||||
SetStatusText(wxT(".mgm"), siFILE_TYPE);
|
||||
SetStatusText(wxT("Object: None (Erase)"), siCURR_OBJECT);
|
||||
SetStatusText(wxT("Brush: Height"), siBRUSH_TYPE);
|
||||
SetStatusText(wxT("Value: 0"), siBRUSH_VALUE);
|
||||
|
@ -480,8 +487,8 @@ void MainWindow::onClose(wxCloseEvent &event) {
|
|||
}
|
||||
|
||||
void MainWindow::setupStartupSettings() {
|
||||
program = new Program(glCanvas->GetClientSize().x, glCanvas->GetClientSize().y);
|
||||
|
||||
string playerName = Config::getInstance().getString("NetPlayerName","");
|
||||
program = new Program(glCanvas->GetClientSize().x, glCanvas->GetClientSize().y, playerName);
|
||||
fileName = "New (unsaved) Map";
|
||||
|
||||
//printf("#0 file load [%s]\n",currentFile.c_str());
|
||||
|
@ -536,14 +543,8 @@ void MainWindow::setExtension() {
|
|||
if (extnsn == "gbm" || extnsn == "mgm") {
|
||||
currentFile = cutLastExt(currentFile);
|
||||
}
|
||||
if (Program::getMap()->getMaxFactions() <= 4 || Program::getMap()->getCliffLevel() == 0) {
|
||||
SetStatusText(wxT(".gbm"), siFILE_TYPE);
|
||||
currentFile += ".gbm";
|
||||
}
|
||||
else {
|
||||
SetStatusText(wxT(".mgm"), siFILE_TYPE);
|
||||
currentFile += ".mgm";
|
||||
}
|
||||
SetStatusText(wxT(".mgm"), siFILE_TYPE);
|
||||
currentFile += ".mgm";
|
||||
}
|
||||
|
||||
void MainWindow::onMouseDown(wxMouseEvent &event, int x, int y) {
|
||||
|
@ -740,9 +741,9 @@ void MainWindow::onMenuFileSaveAs(wxCommandEvent &event) {
|
|||
}
|
||||
|
||||
#if wxCHECK_VERSION(2, 9, 1)
|
||||
wxFileDialog fd(this, wxT("Select file"), wxT(""), wxT(""), wxT("*.gbm|*.mgm"), wxFD_SAVE);
|
||||
wxFileDialog fd(this, wxT("Select file"), wxT(""), wxT(""), wxT("*.mgm|*.gbm"), wxFD_SAVE);
|
||||
#else
|
||||
wxFileDialog fd(this, wxT("Select file"), wxT(""), wxT(""), wxT("*.gbm|*.mgm"), wxSAVE);
|
||||
wxFileDialog fd(this, wxT("Select file"), wxT(""), wxT(""), wxT("*.mgm|*.gbm"), wxSAVE);
|
||||
#endif
|
||||
|
||||
if(fileDialog->GetPath() != ToUnicode("")) {
|
||||
|
@ -758,7 +759,7 @@ void MainWindow::onMenuFileSaveAs(wxCommandEvent &event) {
|
|||
fd.SetDirectory(ToUnicode(defaultPath));
|
||||
}
|
||||
|
||||
fd.SetWildcard(wxT("Glest Map (*.gbm)|*.gbm|MegaGlest Map (*.mgm)|*.mgm"));
|
||||
fd.SetWildcard(wxT("MegaGlest Map (*.mgm)|*.mgm|Glest Map (*.gbm)|*.gbm"));
|
||||
if (fd.ShowModal() == wxID_OK) {
|
||||
#ifdef WIN32
|
||||
const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(wxFNCONV(fd.GetPath()));
|
||||
|
@ -991,10 +992,40 @@ void MainWindow::onMenuEditRandomizeHeights(wxCommandEvent &event) {
|
|||
if(program == NULL) {
|
||||
return;
|
||||
}
|
||||
while(true){
|
||||
program->setUndoPoint(ctAll);//randomizeHeights(-300,400,30,3);
|
||||
|
||||
program->setUndoPoint(ctAll);
|
||||
program->randomizeMapHeights();
|
||||
setDirty();
|
||||
SimpleDialog simpleDialog;
|
||||
simpleDialog.addValue("Initial Reset", boolToStr(randomWithReset),"If set to '0' no height reset is done before calculating");
|
||||
simpleDialog.addValue("Min Height", intToStr(randomMinimumHeight),"Lowest random height. example: -300 or below if you want water , 0 if you don't want water.");
|
||||
simpleDialog.addValue("Max Height", intToStr(randomMaximumHeight),"Max random height. A good value is 400");
|
||||
simpleDialog.addValue("Chance Devider", intToStr(randomChanceDevider),"Defines how often you get a hill or hole default is 30. Bigger number, less hills/holes.");
|
||||
simpleDialog.addValue("Smooth Recursions", intToStr(randomRecursions),"Number of recursions cycles to smooth the hills and holes. 0<x<50 default is 3.");
|
||||
if (!simpleDialog.show("Randomize Height")) return;
|
||||
|
||||
try {
|
||||
randomWithReset=strToBool(simpleDialog.getValue("Initial Reset"));
|
||||
randomMinimumHeight=strToInt(simpleDialog.getValue("Min Height"));
|
||||
randomMaximumHeight=strToInt(simpleDialog.getValue("Max Height"));
|
||||
randomChanceDevider=strToInt(simpleDialog.getValue("Chance Devider"));
|
||||
randomRecursions=strToInt(simpleDialog.getValue("Smooth Recursions"));
|
||||
|
||||
// set insane inputs to something that does not crash
|
||||
if(randomMinimumHeight>=randomMaximumHeight) randomMinimumHeight=randomMaximumHeight-1;
|
||||
if(randomChanceDevider<1) randomChanceDevider=1;
|
||||
|
||||
// set randomRecursions to something useful
|
||||
if(randomRecursions<0) randomRecursions=0;
|
||||
if(randomRecursions>50) randomRecursions=50;
|
||||
|
||||
program->randomizeMapHeights(randomWithReset, randomMinimumHeight, randomMaximumHeight,
|
||||
randomChanceDevider, randomRecursions);
|
||||
}
|
||||
catch (const exception &e) {
|
||||
MsgDialog(this, ToUnicode(e.what()), wxT("Exception"), wxOK | wxICON_ERROR).ShowModal();
|
||||
}
|
||||
setDirty();
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::onMenuEditRandomize(wxCommandEvent &event) {
|
||||
|
@ -1003,7 +1034,7 @@ void MainWindow::onMenuEditRandomize(wxCommandEvent &event) {
|
|||
}
|
||||
|
||||
program->setUndoPoint(ctAll);
|
||||
program->randomizeMap();
|
||||
program->randomizeFactions();
|
||||
setDirty();
|
||||
}
|
||||
|
||||
|
@ -1585,25 +1616,20 @@ bool App::OnInit() {
|
|||
SystemFlags::VERBOSE_MODE_ENABLED = false;
|
||||
SystemFlags::ENABLE_THREADED_LOGGING = false;
|
||||
|
||||
#if defined(wxMAJOR_VERSION) && defined(wxMINOR_VERSION) && defined(wxRELEASE_NUMBER) && defined(wxSUBRELEASE_NUMBER)
|
||||
printf("Using wxWidgets version [%d.%d.%d.%d]\n",wxMAJOR_VERSION,wxMINOR_VERSION,wxRELEASE_NUMBER,wxSUBRELEASE_NUMBER);
|
||||
#endif
|
||||
|
||||
string fileparam;
|
||||
if(argc==2){
|
||||
if(argv[1][0]=='-') { // any flag gives help and exits program.
|
||||
std::cout << "MegaGlest map editor " << mapeditorVersionString << " [Using " << (const char *)wxConvCurrent->cWX2MB(wxVERSION_STRING) << "]" << std::endl << std::endl;
|
||||
std::cout << "glest_map_editor [GBM OR MGM FILE]" << std::endl << std::endl;
|
||||
std::cout << "glest_map_editor [MGM FILE]" << std::endl << std::endl;
|
||||
std::cout << "Creates or edits glest/megaglest maps." << std::endl;
|
||||
std::cout << "Draw with left mouse button (select what and how large area in menu or toolbar)" << std::endl;
|
||||
std::cout << "Pan trough the map with right mouse button" << std::endl;
|
||||
std::cout << "Draw with left mouse button" << std::endl;
|
||||
std::cout << "Move map with right mouse button" << std::endl;
|
||||
std::cout << "Zoom with middle mouse button or mousewheel" << std::endl;
|
||||
|
||||
// std::cout << " ~ more helps should be written here ~" << std::endl;
|
||||
std::cout << std::endl;
|
||||
exit (0);
|
||||
}
|
||||
|
||||
//#if defined(__MINGW32__)
|
||||
const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(argv[1]);
|
||||
fileparam = tmp_buf;
|
||||
|
@ -1618,6 +1644,10 @@ bool App::OnInit() {
|
|||
//#endif
|
||||
}
|
||||
|
||||
#if defined(wxMAJOR_VERSION) && defined(wxMINOR_VERSION) && defined(wxRELEASE_NUMBER) && defined(wxSUBRELEASE_NUMBER)
|
||||
printf("Using wxWidgets version [%d.%d.%d.%d]\n",wxMAJOR_VERSION,wxMINOR_VERSION,wxRELEASE_NUMBER,wxSUBRELEASE_NUMBER);
|
||||
#endif
|
||||
|
||||
wxString exe_path = wxStandardPaths::Get().GetExecutablePath();
|
||||
//wxString path_separator = wxFileName::GetPathSeparator();
|
||||
//exe_path = exe_path.BeforeLast(path_separator[0]);
|
||||
|
|
|
@ -197,6 +197,12 @@ private:
|
|||
int resourceUnderMouse;
|
||||
int objectUnderMouse;
|
||||
|
||||
bool randomWithReset;
|
||||
int randomMinimumHeight;
|
||||
int randomMaximumHeight;
|
||||
int randomChanceDevider;
|
||||
int randomRecursions;
|
||||
|
||||
ChangeType enabledGroup;
|
||||
|
||||
string fileName;
|
||||
|
|
|
@ -144,21 +144,24 @@ void UndoPoint::revert() {
|
|||
|
||||
MapPreview *Program::map = NULL;
|
||||
|
||||
Program::Program(int w, int h) {
|
||||
cellSize = 6;
|
||||
Program::Program(int w, int h, string playerName) {
|
||||
cellSize = 5;
|
||||
grid=false;
|
||||
heightmap=false;
|
||||
hideWater=false;
|
||||
ofsetX = 0;
|
||||
ofsetY = 0;
|
||||
|
||||
map = new MapPreview();
|
||||
resetFactions(8);
|
||||
renderer.initMapSurface(w, h);
|
||||
map->setAuthor(playerName);
|
||||
}
|
||||
|
||||
void Program::init() {
|
||||
undoStack = ChangeStack();
|
||||
redoStack = ChangeStack();
|
||||
cellSize = 6;
|
||||
cellSize = 5;
|
||||
grid=false;
|
||||
heightmap=false;
|
||||
hideWater=false;
|
||||
|
@ -557,12 +560,12 @@ void Program::shiftDown() {
|
|||
}
|
||||
|
||||
|
||||
void Program::randomizeMapHeights() {
|
||||
if(map) map->randomizeHeights();
|
||||
void Program::randomizeMapHeights(bool withReset,int minimumHeight, int maximumHeight, int chanceDevider, int smoothRecursions) {
|
||||
if(map) map->randomizeHeights(withReset, minimumHeight, maximumHeight, chanceDevider, smoothRecursions);
|
||||
}
|
||||
|
||||
void Program::randomizeMap() {
|
||||
if(map) map->randomize();
|
||||
void Program::randomizeFactions() {
|
||||
if(map) map->randomizeFactions();
|
||||
}
|
||||
|
||||
void Program::switchMapSurfaces(int surf1, int surf2) {
|
||||
|
@ -581,6 +584,7 @@ void Program::resize(int w, int h, int alt, int surf) {
|
|||
|
||||
void Program::resetFactions(int maxFactions) {
|
||||
if(map) map->resetFactions(maxFactions);
|
||||
randomizeFactions();
|
||||
}
|
||||
|
||||
bool Program::setMapTitle(const string &title) {
|
||||
|
@ -634,7 +638,7 @@ void Program::incCellSize(int i) {
|
|||
void Program::resetOfset() {
|
||||
ofsetX = 0;
|
||||
ofsetY = 0;
|
||||
cellSize = 6;
|
||||
cellSize = 5;
|
||||
}
|
||||
|
||||
bool Program::setGridOnOff() {
|
||||
|
|
|
@ -103,12 +103,11 @@ private:
|
|||
//static Map *map;
|
||||
static MapPreview *map;
|
||||
friend class UndoPoint;
|
||||
|
||||
ChangeStack undoStack, redoStack;
|
||||
|
||||
void init();
|
||||
public:
|
||||
Program(int w, int h);
|
||||
Program(int w, int h, string playerName);
|
||||
~Program();
|
||||
|
||||
Program(const Program& obj) {
|
||||
|
@ -152,8 +151,8 @@ public:
|
|||
void shiftUp();
|
||||
void shiftDown();
|
||||
|
||||
void randomizeMapHeights();
|
||||
void randomizeMap();
|
||||
void randomizeMapHeights(bool withReset, int minimumHeight, int maximumHeight, int chanceDevider, int smoothRecursions);;
|
||||
void randomizeFactions();
|
||||
void switchMapSurfaces(int surf1, int surf2);
|
||||
void loadMap(const string &path);
|
||||
void saveMap(const string &path);
|
||||
|
|
|
@ -17,10 +17,11 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST
|
|||
|
||||
INCLUDE (CheckIncludeFiles)
|
||||
|
||||
#Game options
|
||||
option(ENABLE_FRIBIDI "Enable FriBIDi support" ON)
|
||||
option(FORCE_LUA_5_1 "Force looking for LUA 5.1" OFF)
|
||||
option(FORCE_LUA_5_2 "Force looking for LUA 5.2" OFF)
|
||||
#Game options
|
||||
option(WANT_STATIC_LIBS "builds as many static libs as possible" OFF)
|
||||
option(ENABLE_FRIBIDI "Enable FriBIDi support" ON)
|
||||
option(FORCE_LUA_5_1 "Force looking for LUA 5.1" OFF)
|
||||
option(FORCE_LUA_5_2 "Force looking for LUA 5.2" OFF)
|
||||
|
||||
IF(WIN32)
|
||||
SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH}
|
||||
|
@ -115,10 +116,14 @@ option(FORCE_LUA_5_2 "Force looking for LUA 5.2" OFF)
|
|||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LUA_LIBRARIES} ${CMAKE_DL_LIBS})
|
||||
ENDIF()
|
||||
|
||||
OPTION(WANT_STATIC_LIBS "builds as many static libs as possible" OFF)
|
||||
|
||||
IF(WANT_STATIC_LIBS)
|
||||
SET(JPEG_NAMES libjpeg.a ${JPEG_NAMES})
|
||||
OPTION(JPEG_STATIC "Set to ON to link your project with static library (instead of DLL)." ON)
|
||||
OPTION(PNG_STATIC "Set to ON to link your project with static library (instead of DLL)." ON)
|
||||
ENDIF()
|
||||
IF(JPEG_STATIC)
|
||||
SET(JPEG_NAMES libjpeg.a ${JPEG_NAMES})
|
||||
ELSE()
|
||||
SET(JPEG_NAMES libjpeg ${JPEG_NAMES})
|
||||
ENDIF()
|
||||
|
||||
FIND_PACKAGE(JPEG REQUIRED)
|
||||
|
@ -127,8 +132,10 @@ option(FORCE_LUA_5_2 "Force looking for LUA 5.2" OFF)
|
|||
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${JPEG_LIBRARY})
|
||||
ENDIF()
|
||||
|
||||
IF(WANT_STATIC_LIBS)
|
||||
SET(PNG_NAMES libpng.a ${PNG_NAMES})
|
||||
IF(PNG_STATIC)
|
||||
SET(PNG_NAMES libpng.a ${PNG_NAMES})
|
||||
ELSE()
|
||||
SET(PNG_NAMES libpng ${PNG_NAMES})
|
||||
ENDIF()
|
||||
FIND_PACKAGE(PNG REQUIRED)
|
||||
INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIR})
|
||||
|
@ -455,7 +462,7 @@ option(FORCE_LUA_5_2 "Force looking for LUA 5.2" OFF)
|
|||
|
||||
IF(NOT WIN32)
|
||||
ADD_LIBRARY(${TARGET_NAME} STATIC ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES})
|
||||
MESSAGE(STATUS "Building shared game library as a STATIC library and saving to [${LIBRARY_OUTPUT_PATH}]")
|
||||
#MESSAGE(STATUS "Building shared game library as a STATIC library and saving to [${LIBRARY_OUTPUT_PATH}]")
|
||||
ELSE()
|
||||
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game)
|
||||
ADD_LIBRARY(${TARGET_NAME} STATIC ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES})
|
||||
|
|
|
@ -207,16 +207,16 @@ public:
|
|||
void reset(int w, int h, float alt, MapSurfaceType surf);
|
||||
void resize(int w, int h, float alt, MapSurfaceType surf);
|
||||
void resetFactions(int maxFactions);
|
||||
void randomizeHeights();
|
||||
void randomize();
|
||||
void randomizeHeights(bool withReset,int minimumHeight, int maximumHeight, int chanceDevider, int smoothRecursions);
|
||||
void randomizeFactions();
|
||||
void smoothSurface(bool limitHeights);
|
||||
void switchSurfaces(MapSurfaceType surf1, MapSurfaceType surf2);
|
||||
|
||||
void loadFromFile(const string &path);
|
||||
void saveToFile(const string &path);
|
||||
|
||||
void resetHeights(int height);
|
||||
void sinRandomize(int strenght);
|
||||
void decalRandomize(int strenght);
|
||||
void realRandomize(int minimumHeight, int maximumHeight, int chanceDivider, int smoothRecursions);
|
||||
void applyNewHeight(float newHeight, int x, int y, int strenght);
|
||||
|
||||
bool hasFileLoaded() const {return fileLoaded;}
|
||||
|
|
|
@ -704,17 +704,13 @@ void MapPreview::setAdvanced(int heightFactor, int waterLevel, int cliffLevel, i
|
|||
hasChanged = true;
|
||||
}
|
||||
|
||||
void MapPreview::randomizeHeights() {
|
||||
resetHeights(random.randRange(8, 10));
|
||||
sinRandomize(0);
|
||||
decalRandomize(4);
|
||||
sinRandomize(1);
|
||||
void MapPreview::randomizeHeights(bool withReset,int minimumHeight, int maximumHeight, int chanceDevider, int smoothRecursions) {
|
||||
if(withReset) resetHeights(random.randRange(8, 10));
|
||||
realRandomize(minimumHeight,maximumHeight,chanceDevider,smoothRecursions);
|
||||
hasChanged = true;
|
||||
}
|
||||
|
||||
void MapPreview::randomize() {
|
||||
randomizeHeights();
|
||||
|
||||
void MapPreview::randomizeFactions() {
|
||||
int slPlaceFactorX = random.randRange(0, 1);
|
||||
int slPlaceFactorY = random.randRange(0, 1) * 2;
|
||||
|
||||
|
@ -729,6 +725,40 @@ void MapPreview::randomize() {
|
|||
hasChanged = true;
|
||||
}
|
||||
|
||||
void MapPreview::smoothSurface(bool limitHeight) {
|
||||
float *oldHeights = new float[w*h];
|
||||
|
||||
for (int i = 0; i < w; ++i) {
|
||||
for (int j = 0; j < h; ++j) {
|
||||
oldHeights[i*w+j] = cells[i][j].height;
|
||||
//printf("count=%d height=%f h=%f\n",i*w+h,oldHeights[i*w+h],cells[i][j].height);
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 1; i < w - 1; ++i) {
|
||||
for (int j = 1; j < h - 1; ++j) {
|
||||
float height = 0.f;
|
||||
float numUsedToSmooth = 0.f;
|
||||
for (int k = -1; k <= 1; ++k) {
|
||||
for (int l = -1; l <= 1; ++l) {
|
||||
int tmpHeight=oldHeights[(j + k) * w + (i + l)];
|
||||
if(limitHeight && tmpHeight>20){
|
||||
tmpHeight=20;
|
||||
}
|
||||
if(limitHeight && tmpHeight<0){
|
||||
tmpHeight=0;
|
||||
}
|
||||
height += tmpHeight;
|
||||
numUsedToSmooth++;
|
||||
}
|
||||
}
|
||||
height /= numUsedToSmooth;
|
||||
cells[i][j].height=height;
|
||||
}
|
||||
}
|
||||
delete[] oldHeights;
|
||||
}
|
||||
|
||||
void MapPreview::switchSurfaces(MapSurfaceType surf1, MapSurfaceType surf2) {
|
||||
if (surf1 >= st_Grass && surf1 <= st_Ground && surf2 >= st_Grass && surf2 <= st_Ground) {
|
||||
for (int i = 0; i < w; ++i) {
|
||||
|
@ -986,52 +1016,32 @@ void MapPreview::resetHeights(int height) {
|
|||
}
|
||||
}
|
||||
|
||||
void MapPreview::sinRandomize(int strenght) {
|
||||
float sinH1 = random.randRange(5.f, 40.f);
|
||||
float sinH2 = random.randRange(5.f, 40.f);
|
||||
float sinV1 = random.randRange(5.f, 40.f);
|
||||
float sinV2 = random.randRange(5.f, 40.f);
|
||||
float ah = static_cast<float>(10 + random.randRange(-2, 2));
|
||||
float bh = static_cast<float>((maxHeight - minHeight)) / static_cast<float>(random.randRange(2, 3));
|
||||
float av = static_cast<float>(10 + random.randRange(-2, 2));
|
||||
float bv = static_cast<float>((maxHeight - minHeight)) / static_cast<float>(random.randRange(2, 3));
|
||||
void MapPreview::realRandomize(int minimumHeight, int maximumHeight, int _chanceDevider, int _smoothRecursions) {
|
||||
int moduloParam=abs(maximumHeight-minimumHeight);
|
||||
int chanceDevider=_chanceDevider;
|
||||
int smoothRecursions=_smoothRecursions;
|
||||
if(moduloParam<2) moduloParam=2;
|
||||
//printf("moduloParam=%d minimumHeight=%d maximumHeight=%d\n",moduloParam,minimumHeight,maximumHeight);
|
||||
|
||||
for (int i = 0; i < w; ++i) {
|
||||
for (int j = 0; j < h; ++j) {
|
||||
float normH = static_cast<float>(i) / w;
|
||||
float normV = static_cast<float>(j) / h;
|
||||
// set chanceDevider to something possible
|
||||
if(chanceDevider<2) chanceDevider=2;
|
||||
|
||||
#ifdef USE_STREFLOP
|
||||
float sh = (streflop::sinf(static_cast<streflop::Simple>(normH * sinH1)) + streflop::sin(static_cast<streflop::Simple>(normH * sinH2))) / 2.f;
|
||||
float sv = (streflop::sinf(static_cast<streflop::Simple>(normV * sinV1)) + streflop::sin(static_cast<streflop::Simple>(normV * sinV2))) / 2.f;
|
||||
#else
|
||||
float sh = (sinf(normH * sinH1) + sin(normH * sinH2)) / 2.f;
|
||||
float sv = (sinf(normV * sinV1) + sin(normV * sinV2)) / 2.f;
|
||||
#endif
|
||||
float newHeight = (ah + bh * sh + av + bv * sv) / 2.f;
|
||||
applyNewHeight(newHeight, i, j, strenght);
|
||||
// set smoothRecursions to something useful
|
||||
if(smoothRecursions<0) smoothRecursions=0;
|
||||
if(smoothRecursions>1000) smoothRecursions=1000;
|
||||
|
||||
for (int i = 1; i < w-1; ++i) {
|
||||
for (int j = 1; j < h-1; ++j) {
|
||||
if(rand()%chanceDevider==1){
|
||||
cells[i][j].height=(rand() % moduloParam)+minimumHeight;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MapPreview::decalRandomize(int strenght) {
|
||||
//first row
|
||||
int lastHeight = DEFAULT_MAP_CELL_HEIGHT;
|
||||
for (int i = 0; i < w; ++i) {
|
||||
lastHeight += random.randRange(-1, 1);
|
||||
lastHeight = clamp(lastHeight, minHeight, maxHeight);
|
||||
applyNewHeight(static_cast<float>(lastHeight), i, 0, strenght);
|
||||
}
|
||||
|
||||
//other rows
|
||||
for (int j = 1; j < h; ++j) {
|
||||
int height = static_cast<int>(cells[0][j-1].height + random.randRange(-1, 1));
|
||||
applyNewHeight(static_cast<float>(clamp(height, minHeight, maxHeight)), 0, j, strenght);
|
||||
for (int i = 1; i < w; ++i) {
|
||||
height = static_cast<int>((cells[i][j-1].height + cells[i-1][j].height) / 2.f + random.randRange(-1, 1));
|
||||
float newHeight = static_cast<float>(clamp(height, minHeight, maxHeight));
|
||||
applyNewHeight(newHeight, i, j, strenght);
|
||||
}
|
||||
for( int i = 0; i<smoothRecursions;++i){
|
||||
if(i+1==smoothRecursions)
|
||||
smoothSurface(true);
|
||||
else
|
||||
smoothSurface(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -140,13 +140,15 @@ IF(BUILD_MEGAGLEST_TESTS)
|
|||
SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1)
|
||||
|
||||
OPTION(WANT_DEV_OUTPATH "use developer friendly output paths" OFF)
|
||||
IF(WANT_DEV_OUTPATH)
|
||||
IF(UNIX AND NOT APPLE)
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/)
|
||||
ELSE()
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(WANT_DEV_OUTPATH)
|
||||
IF(UNIX AND NOT APPLE)
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/)
|
||||
ELSEIF(UNIX AND APPLE)
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/macosx/)
|
||||
ELSE()
|
||||
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
MESSAGE(STATUS "EXTERNAL_LIBS = [${EXTERNAL_LIBS}]")
|
||||
|
||||
|
@ -164,19 +166,19 @@ IF(BUILD_MEGAGLEST_TESTS)
|
|||
ENDIF()
|
||||
|
||||
TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS})
|
||||
IF(NOT "${CMAKE_GENERATOR}" STREQUAL "Xcode")
|
||||
# Run the unit tests after build
|
||||
IF(EXISTS ${XVFB_EXEC})
|
||||
MESSAGE("***-- Found xvfb-run: ${XVFB_EXEC} will run tests with it.")
|
||||
|
||||
# Run the unit tests after build
|
||||
IF(EXISTS ${XVFB_EXEC})
|
||||
MESSAGE("***-- Found xvfb-run: ${XVFB_EXEC} will run tests with it.")
|
||||
|
||||
add_custom_command(TARGET ${TARGET_NAME} POST_BUILD
|
||||
COMMAND ${XVFB_EXEC} --auto-servernum --server-num=770 ${EXECUTABLE_OUTPUT_PATH}${TARGET_NAME}
|
||||
COMMENT "***-- Found megaglest test runner: ${TARGET_NAME} about to run unit tests via xvfb...")
|
||||
|
||||
ELSE()
|
||||
add_custom_command(TARGET ${TARGET_NAME} POST_BUILD
|
||||
COMMAND ${EXECUTABLE_OUTPUT_PATH}${TARGET_NAME}
|
||||
COMMENT "***-- Found megaglest test runner: ${TARGET_NAME} about to run unit tests...")
|
||||
add_custom_command(TARGET ${TARGET_NAME} POST_BUILD
|
||||
COMMAND ${XVFB_EXEC} --auto-servernum --server-num=770 ${EXECUTABLE_OUTPUT_PATH}${TARGET_NAME}
|
||||
COMMENT "***-- Found megaglest test runner: ${TARGET_NAME} about to run unit tests via xvfb...")
|
||||
ELSE()
|
||||
add_custom_command(TARGET ${TARGET_NAME} POST_BUILD
|
||||
COMMAND ${EXECUTABLE_OUTPUT_PATH}${TARGET_NAME}
|
||||
COMMENT "***-- Found megaglest test runner: ${TARGET_NAME} about to run unit tests...")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
ENDIF()
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
# How it currently works?
|
||||
# Set version here (only here) and just start mk/linux/mg-version-synch.sh script.
|
||||
# Versions will be updated everywhere automatically.
|
||||
# Then you should commit changed files and that's all.
|
||||
|
||||
CurrentGameVersion = "3.12-dev";
|
||||
# ^ typical version numbers look like this: "3.11-beta1.0", "3.12-dev", "3.12.0"
|
||||
|
||||
OldReleaseGameVersion = "3.11.0";
|
||||
LastCompatibleSaveGameVersion = "3.9.0";
|
||||
|
||||
GitCommitForRelease = "5060.7451e49";
|
||||
# ^ will be automatically generated
|
Loading…
Reference in New Issue