Merge branch 'dev' of github:colobot/colobot into dev

dev-ui
erihel 2013-01-09 23:21:37 +01:00
commit 08578c4015
7 changed files with 95 additions and 28 deletions

View File

@ -6,3 +6,5 @@ before_install:
- git submodule update --init --recursive
- sudo apt-get update -qq
- sudo apt-get install -qq --no-install-recommends libgl1-mesa-dev libsdl1.2-dev libsdl-image1.2-dev libsdl-ttf2.0-dev libpng12-dev libboost-dev libboost-system-dev libboost-filesystem-dev libboost-regex-dev google-mock libgtest-dev doxygen graphviz po4a librsvg2-bin
notifications:
email: false

View File

@ -47,10 +47,27 @@ if(NOT CMAKE_BUILD_TYPE)
endif()
# Global compile flags
# These are specific to GCC/MinGW; for other compilers, change as necessary
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wold-style-cast -std=c++11")
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
# These are specific to GCC/MinGW/clang; for other compilers, change as necessary
# The flags are used throughout src/ subdir
set(COLOBOT_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wold-style-cast -std=c++11")
set(COLOBOT_CXX_FLAGS_RELEASE "-O2")
set(COLOBOT_CXX_FLAGS_DEBUG "-g -O0")
# Compiler detection
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
execute_process(
COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
if (NOT (GCC_VERSION VERSION_GREATER 4.6 OR GCC_VERSION VERSION_EQUAL 4.6))
message(FATAL_ERROR "${PROJECT_NAME} requires GCC 4.6 or greater.")
else()
message(STATUS "Detected GCC version 4.6+")
endif()
elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
message(STATUS "Detected Clang compiler")
else()
message(FATAL_ERROR "Your C++ compiler doesn't seem to support C++11.\n"
"Supported compilers at this time are GCC 4.6+ and clang.")
endif()
# Asserts can be enabled/disabled regardless of build type
option(ASSERTS "Enable assert()s" ON)
@ -185,11 +202,11 @@ if(${TESTS})
endif()
# Installation paths defined before compiling sources
set(COLOBOT_INSTALL_BIN_DIR games CACHE PATH "Colobot binary directory")
set(COLOBOT_INSTALL_DATA_DIR share/games/colobot CACHE PATH "Colobot shared data directory")
set(COLOBOT_INSTALL_LIB_DIR lib/colobot CACHE PATH "Colobot libraries directory")
set(COLOBOT_INSTALL_DOC_DIR share/doc/colobot CACHE PATH "Colobot documentation directory")
set(COLOBOT_INSTALL_I18N_DIR share/locale CACHE PATH "Colobot translations directory")
set(COLOBOT_INSTALL_BIN_DIR ${CMAKE_INSTALL_PREFIX}/games CACHE PATH "Colobot binary directory")
set(COLOBOT_INSTALL_DATA_DIR ${CMAKE_INSTALL_PREFIX}/share/games/colobot CACHE PATH "Colobot shared data directory")
set(COLOBOT_INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib/colobot CACHE PATH "Colobot libraries directory")
set(COLOBOT_INSTALL_DOC_DIR ${CMAKE_INSTALL_PREFIX}/share/doc/colobot CACHE PATH "Colobot documentation directory")
set(COLOBOT_INSTALL_I18N_DIR ${CMAKE_INSTALL_PREFIX}/share/locale CACHE PATH "Colobot translations directory")
# Subdirectory with sources
add_subdirectory(src bin)
@ -199,10 +216,13 @@ add_subdirectory(src bin)
# Installation
##
file(GLOB DATA_FILES "data/*")
# Data
install(DIRECTORY data/ DESTINATION ${COLOBOT_INSTALL_DATA_DIR})
# Data: check if the submodule handles its own installation
if(EXISTS "${CMAKE_SOURCE_DIR}/data/CMakeLists.txt")
message(STATUS "Data directory will install itself.")
add_subdirectory(data)
else()
message(WARNING "Data directory is not available; make sure colobot-data is installed in ${COLOBOT_INSTALL_DATA_DIR}.")
endif()
# Documentation
if(INSTALL_DOCS AND DOXYGEN_FOUND AND DOXYGEN_DOT_FOUND)

2
data

@ -1 +1 @@
Subproject commit 6b6e5a0ab56bf42f17d969c1bd4c09185605cad6
Subproject commit 5a991a77eb5f476d29b4d4f976be48fdf74a053f

View File

@ -1,5 +1,7 @@
cmake_minimum_required(VERSION 2.8)
set(CMAKE_CXX_FLAGS "${${ORIGINAL_CXX_FLAGS}}")
include_directories(. include ${GTEST_INCLUDE_DIR})
# gmock-all.cc includes all other sources

View File

@ -1,7 +1,13 @@
# CBot library is built separately
# Compile flags as defined in global CMakeLists
set(CMAKE_CXX_FLAGS ${COLOBOT_CXX_FLAGS})
set(CMAKE_CXX_FLAGS_RELEASE ${COLOBOT_CXX_FLAGS_RELEASE})
set(CMAKE_CXX_FLAGS_DEBUG ${COLOBOT_CXX_FLAGS_DEBUG})
# Subdirectories
add_subdirectory(CBot)
# Tools directory is built separately
add_subdirectory(tools)
add_subdirectory(po)
@ -196,10 +202,16 @@ ${OPTIONAL_LIBS}
${PLATFORM_LIBS}
)
# Local
include_directories(
.
..
${CMAKE_CURRENT_BINARY_DIR}
)
# System
include_directories(
SYSTEM
${SDL_INCLUDE_DIR}
${SDLIMAGE_INCLUDE_DIR}
${SDLTTF_INCLUDE_DIR}

View File

@ -8,9 +8,9 @@
#include <cstdio>
namespace Gfx {
template<> Gfx::CModelManager* CSingleton<Gfx::CModelManager>::mInstance = nullptr;
template<> CModelManager* CSingleton<CModelManager>::mInstance = nullptr;
namespace Gfx {
CModelManager::CModelManager(CEngine* engine)
{

View File

@ -4277,6 +4277,7 @@ void CMainDialog::IOReadName()
CEdit* pe;
std::string filename;
char op[100];
char op_i18n[100];
char line[500];
char resume[100];
char name[100];
@ -4290,6 +4291,9 @@ void CMainDialog::IOReadName()
sprintf(resume, "%s %d", m_sceneName, m_chap[m_index]+1);
BuildSceneName(filename, m_sceneName, (m_chap[m_index]+1)*100);
sprintf(op, "Title.E");
sprintf(op_i18n, "Title.%c", m_app->GetLanguageChar() );
file = fopen(filename.c_str(), "r");
if ( file != NULL )
{
@ -4305,9 +4309,11 @@ void CMainDialog::IOReadName()
}
}
// TODO: Fallback to an non-localized entry
sprintf(op, "Title.%c", m_app->GetLanguageChar() );
if ( Cmd(line, op) )
{
OpString(line, "resume", resume);
}
if ( Cmd(line, op_i18n) )
{
OpString(line, "resume", resume);
break;
@ -4648,12 +4654,14 @@ void CMainDialog::UpdateSceneChap(int &chap)
//struct _finddata_t fileBuffer;
std::string fileName;
char op[100];
char op_i18n[100];
char line[500];
char name[100];
int i, j;
bool bPassed;
memset(op, 0, 100);
memset(op_i18n, 0, 100);
memset(line, 0, 500);
memset(name, 0, 100);
@ -4689,6 +4697,9 @@ void CMainDialog::UpdateSceneChap(int &chap)
else
{
BuildResumeName(name, m_sceneName, j+1); // default name
sprintf(op, "Title.E");
sprintf(op_i18n, "Title.%c", m_app->GetLanguageChar());
while ( fgets(line, 500, file) != NULL )
{
for ( i=0 ; i<500 ; i++ )
@ -4701,9 +4712,11 @@ void CMainDialog::UpdateSceneChap(int &chap)
}
}
// TODO: Fallback to an non-localized entry
sprintf(op, "Title.%c", m_app->GetLanguageChar());
if ( Cmd(line, op) )
{
OpString(line, "text", name);
}
if ( Cmd(line, op_i18n) )
{
OpString(line, "text", name);
break;
@ -4736,6 +4749,9 @@ void CMainDialog::UpdateSceneChap(int &chap)
if ( file == NULL ) break;
BuildResumeName(name, m_sceneName, j+1); // default name
sprintf(op, "Title.E");
sprintf(op_i18n, "Title.%c", m_app->GetLanguageChar());
while ( fgets(line, 500, file) != NULL )
{
for ( i=0 ; i<500 ; i++ )
@ -4748,9 +4764,11 @@ void CMainDialog::UpdateSceneChap(int &chap)
}
}
// TODO: Fallback to an non-localized entry
sprintf(op, "Title.%c", m_app->GetLanguageChar());
if ( Cmd(line, op) )
{
OpString(line, "text", name);
}
if ( Cmd(line, op_i18n) )
{
OpString(line, "text", name);
break;
@ -4801,12 +4819,14 @@ void CMainDialog::UpdateSceneList(int chap, int &sel)
CList* pl;
std::string fileName;
char op[100];
char op_i18n[100];
char line[500];
char name[100];
int i, j;
bool bPassed;
memset(op, 0, 100);
memset(op_i18n, 0, 100);
memset(line, 0, 500);
memset(name, 0, 100);
@ -4839,6 +4859,9 @@ void CMainDialog::UpdateSceneList(int chap, int &sel)
if ( file == NULL ) break;
BuildResumeName(name, m_sceneName, j+1); // default name
sprintf(op, "Title.E");
sprintf(op_i18n, "Title.%c", m_app->GetLanguageChar());
while ( fgets(line, 500, file) != NULL )
{
for ( i=0 ; i<500 ; i++ )
@ -4851,9 +4874,11 @@ void CMainDialog::UpdateSceneList(int chap, int &sel)
}
}
// TODO: Fallback to an non-localized entry
sprintf(op, "Title.%c", m_app->GetLanguageChar());
if ( Cmd(line, op) )
{
OpString(line, "text", name);
}
if ( Cmd(line, op_i18n) )
{
OpString(line, "text", name);
break;
@ -4950,6 +4975,7 @@ void CMainDialog::UpdateSceneResume(int rank)
CCheck* pc;
std::string fileName;
char op[100];
char op_i18n[100];
char line[500];
char name[500];
int i, numTry;
@ -4980,6 +5006,9 @@ void CMainDialog::UpdateSceneResume(int rank)
}
BuildSceneName(fileName, m_sceneName, rank);
sprintf(op, "Resume.E");
sprintf(op_i18n, "Resume.%c", m_app->GetLanguageChar());
file = fopen(fileName.c_str(), "r");
if ( file == NULL ) return;
@ -4996,9 +5025,11 @@ void CMainDialog::UpdateSceneResume(int rank)
}
}
// TODO: Fallback to an non-localized entry
sprintf(op, "Resume.%c", m_app->GetLanguageChar());
if ( Cmd(line, op) )
{
OpString(line, "text", name);
}
if ( Cmd(line, op_i18n) )
{
OpString(line, "text", name);
break;