517 lines
16 KiB
Diff
517 lines
16 KiB
Diff
diff --git a/Makefile b/Makefile
|
|
index a21c6b5..8a65a69 100644
|
|
--- a/Makefile
|
|
+++ b/Makefile
|
|
@@ -55,7 +55,7 @@ endif
|
|
endif
|
|
|
|
CFLAGS += $(CFLAGS_SDL)
|
|
-LDFLAGS += $(LDFLAGS_SDL)
|
|
+LDFLAGS += $(LDFLAGS_SDL) -lboost_filesystem -lboost_system
|
|
|
|
############################################################
|
|
# MinGW settings for building on Windows and for
|
|
@@ -98,7 +98,8 @@ CFLAGS += -I Build/Utils
|
|
CFLAGS += -I sgp
|
|
CFLAGS += -I src
|
|
CFLAGS += -I _build/lib-MicroIni/include
|
|
-CFLAGS += -I _build/lib-boost
|
|
+#CFLAGS += -I _build/lib-boost
|
|
+CFLAGS += -I ../../../boost/include
|
|
CFLAGS += -I _build/lib-rapidjson
|
|
CFLAGS += -I _build/lib-slog
|
|
CFLAGS += -I _build/lib-smacker/libsmacker
|
|
@@ -522,15 +523,15 @@ SRCS += _build/lib-MicroIni/src/MicroIni/Line.cpp
|
|
SRCS += _build/lib-MicroIni/src/MicroIni/Section.cpp
|
|
SRCS += _build/lib-MicroIni/src/MicroIni/Value.cpp
|
|
|
|
-SRCS += _build/lib-boost/libs/system/src/error_code.cpp
|
|
-SRCS += _build/lib-boost/libs/filesystem/src/codecvt_error_category.cpp
|
|
-SRCS += _build/lib-boost/libs/filesystem/src/operations.cpp
|
|
-SRCS += _build/lib-boost/libs/filesystem/src/path.cpp
|
|
-SRCS += _build/lib-boost/libs/filesystem/src/path_traits.cpp
|
|
-SRCS += _build/lib-boost/libs/filesystem/src/portability.cpp
|
|
-SRCS += _build/lib-boost/libs/filesystem/src/unique_path.cpp
|
|
-SRCS += _build/lib-boost/libs/filesystem/src/utf8_codecvt_facet.cpp
|
|
-SRCS += _build/lib-boost/libs/filesystem/src/windows_file_codecvt.cpp
|
|
+#SRCS += _build/lib-boost/libs/system/src/error_code.cpp
|
|
+#SRCS += _build/lib-boost/libs/filesystem/src/codecvt_error_category.cpp
|
|
+#SRCS += _build/lib-boost/libs/filesystem/src/operations.cpp
|
|
+#SRCS += _build/lib-boost/libs/filesystem/src/path.cpp
|
|
+#SRCS += _build/lib-boost/libs/filesystem/src/path_traits.cpp
|
|
+#SRCS += _build/lib-boost/libs/filesystem/src/portability.cpp
|
|
+#SRCS += _build/lib-boost/libs/filesystem/src/unique_path.cpp
|
|
+#SRCS += _build/lib-boost/libs/filesystem/src/utf8_codecvt_facet.cpp
|
|
+#SRCS += _build/lib-boost/libs/filesystem/src/windows_file_codecvt.cpp
|
|
|
|
SRCS += _build/lib-slog/slog/slog.c
|
|
|
|
diff --git a/_build/lib-slog/slog/slog.c b/_build/lib-slog/slog/slog.c
|
|
index 87ceb53..3799dbc 100644
|
|
--- a/_build/lib-slog/slog/slog.c
|
|
+++ b/_build/lib-slog/slog/slog.c
|
|
@@ -30,6 +30,7 @@
|
|
#include <stdarg.h>
|
|
#include <stdio.h>
|
|
#include <time.h>
|
|
+#include <android/log.h>
|
|
|
|
#if defined(_MSC_VER)
|
|
/* Visual Studio */
|
|
@@ -152,6 +153,8 @@ void SLOG_LogMessage(SLOGLevel level, const char *tag, const char *format, ...)
|
|
|
|
buf[size] = 0;
|
|
|
|
+ __android_log_print(ANDROID_LOG_INFO, "JA2", "%s", buf);
|
|
+
|
|
if(logToConsole)
|
|
{
|
|
write(s_consoleFD, buf, size);
|
|
diff --git a/ja2config.h b/ja2config.h
|
|
index cb3f1f9..d2659ec 100644
|
|
--- a/ja2config.h
|
|
+++ b/ja2config.h
|
|
@@ -1,3 +1,3 @@
|
|
/* location of externalized data, mods, unittests files, etc */
|
|
/* when empty - the same directory as ja2 binary */
|
|
-#define EXTRA_DATA_DIR ""
|
|
+#define EXTRA_DATA_DIR "."
|
|
diff --git a/sgp/Debug.cc b/sgp/Debug.cc
|
|
index 3ce95c3..c9c00f1 100644
|
|
--- a/sgp/Debug.cc
|
|
+++ b/sgp/Debug.cc
|
|
@@ -1,4 +1,5 @@
|
|
#include "Debug.h"
|
|
+#include "Logger.h"
|
|
|
|
#if defined ( SGP_DEBUG ) || defined ( FORCE_ASSERTS_ON )
|
|
|
|
@@ -38,8 +39,9 @@ BOOLEAN InitializeDebugManager(void)
|
|
|
|
void DebugMsg(TopicID uiTopicId, DebugLevel uiDebugLevel, const char* strMessage)
|
|
{
|
|
- fprintf(stderr, "%s\n", strMessage);
|
|
+ printf("%s\n", strMessage);
|
|
|
|
+/*
|
|
//add _NO_DEBUG_TXT to your SGP preprocessor definitions to avoid this f**king huge file from
|
|
//slowly growing behind the scenes!!!!
|
|
#ifndef _NO_DEBUG_TXT
|
|
@@ -50,6 +52,7 @@ void DebugMsg(TopicID uiTopicId, DebugLevel uiDebugLevel, const char* strMessage
|
|
fclose(OutFile);
|
|
}
|
|
#endif
|
|
+*/
|
|
}
|
|
|
|
|
|
@@ -67,9 +70,8 @@ static void _DebugRecordToDebugger(BOOLEAN gfState)
|
|
|
|
void _DebugMessage(const char* pString, UINT32 uiLineNum, const char* pSourceFile)
|
|
{
|
|
- char ubOutputString[512];
|
|
- sprintf(ubOutputString, "{ %ld } %s [Line %d in %s]\n", GetClock(), pString, uiLineNum, pSourceFile);
|
|
-
|
|
+ printf("{ %ld } %s [Line %d in %s]\n", GetClock(), pString, uiLineNum, pSourceFile);
|
|
+/*
|
|
if (gfRecordToDebugger)
|
|
{
|
|
fputs(ubOutputString, stderr);
|
|
@@ -86,17 +88,17 @@ void _DebugMessage(const char* pString, UINT32 uiLineNum, const char* pSourceFil
|
|
}
|
|
}
|
|
#endif
|
|
+*/
|
|
}
|
|
|
|
|
|
void _FailMessage(const char *pString, UINT32 uiLineNum, const char *pSourceFile)
|
|
{
|
|
- char ubOutputString[512];
|
|
if (pString != NULL)
|
|
- sprintf(ubOutputString, "{ %ld } Assertion Failure [Line %d in %s]: %s\n", GetClock(), uiLineNum, pSourceFile, pString);
|
|
+ printf("{ %ld } Assertion Failure [Line %d in %s]: %s\n", GetClock(), uiLineNum, pSourceFile, pString);
|
|
else
|
|
- sprintf(ubOutputString, "{ %ld } Assertion Failure [Line %d in %s]\n", GetClock(), uiLineNum, pSourceFile);
|
|
-
|
|
+ printf("{ %ld } Assertion Failure [Line %d in %s]\n", GetClock(), uiLineNum, pSourceFile);
|
|
+/*
|
|
//Output to debugger
|
|
if (gfRecordToDebugger)
|
|
fputs(ubOutputString, stderr);
|
|
@@ -113,7 +115,7 @@ void _FailMessage(const char *pString, UINT32 uiLineNum, const char *pSourceFile
|
|
}
|
|
}
|
|
#endif
|
|
-
|
|
+*/
|
|
SDL_Quit();
|
|
abort();
|
|
}
|
|
diff --git a/sgp/Debug.h b/sgp/Debug.h
|
|
index 05717f9..6285a33 100644
|
|
--- a/sgp/Debug.h
|
|
+++ b/sgp/Debug.h
|
|
@@ -9,6 +9,7 @@
|
|
#define DEBUG_PRINT_GAME_CYCLE_TIME (0) /**< Flag telling to print how much time every game cycle takes. */
|
|
|
|
|
|
+#define SGP_DEBUG 1
|
|
#if defined ( SGP_DEBUG ) || defined ( FORCE_ASSERTS_ON )
|
|
|
|
// If DEBUG_ is defined, we need to initialize all the debug macros. Otherwise all the
|
|
diff --git a/sgp/FileMan.cc b/sgp/FileMan.cc
|
|
index 38d8b36..a5de49f 100644
|
|
--- a/sgp/FileMan.cc
|
|
+++ b/sgp/FileMan.cc
|
|
@@ -104,6 +104,7 @@ std::string FileMan::findConfigFolderAndSwitchIntoIt()
|
|
}
|
|
#else
|
|
const char* home = getenv("HOME");
|
|
+ return home; // Do not create extra dirs on Android
|
|
if (home == NULL)
|
|
{
|
|
const struct passwd* const passwd = getpwuid(getuid());
|
|
@@ -152,6 +153,7 @@ std::string FileMan::findConfigFolderAndSwitchIntoIt()
|
|
int FileMan::openFileCaseInsensitive(const std::string &folderPath, const char *filename, int mode)
|
|
{
|
|
std::string path = FileMan::joinPaths(folderPath, filename);
|
|
+ SLOGD(TAG, "%s: open file %s\n", __func__, path.c_str());
|
|
int d = open(path.c_str(), mode);
|
|
if (d < 0)
|
|
{
|
|
diff --git a/sgp/FileMan.h b/sgp/FileMan.h
|
|
index a7f96cb..6d7a64f 100644
|
|
--- a/sgp/FileMan.h
|
|
+++ b/sgp/FileMan.h
|
|
@@ -11,7 +11,7 @@
|
|
# define WIN32_LEAN_AND_MEAN
|
|
# include <windows.h>
|
|
#else
|
|
-# include <glob.h>
|
|
+//# include <glob.h>
|
|
#endif
|
|
|
|
/* Delete the file at path. Returns true iff deleting the file succeeded or
|
|
diff --git a/sgp/LibraryDataBase.cc b/sgp/LibraryDataBase.cc
|
|
index 2205166..039a202 100644
|
|
--- a/sgp/LibraryDataBase.cc
|
|
+++ b/sgp/LibraryDataBase.cc
|
|
@@ -1,5 +1,8 @@
|
|
#include <cstdlib>
|
|
#include <stdexcept>
|
|
+#ifdef WITH_UNITTESTS
|
|
+#include "gtest/gtest.h"
|
|
+#endif
|
|
|
|
#include "Types.h"
|
|
#include "FileMan.h"
|
|
diff --git a/sgp/Logger.h b/sgp/Logger.h
|
|
index 771e515..d7995d3 100644
|
|
--- a/sgp/Logger.h
|
|
+++ b/sgp/Logger.h
|
|
@@ -6,6 +6,7 @@
|
|
* General logging
|
|
***********************************************************/
|
|
|
|
+#include "../../../android_debug.h"
|
|
/** Available log levels. */
|
|
enum
|
|
{
|
|
@@ -16,7 +17,7 @@ enum
|
|
};
|
|
|
|
/** Current log level. */
|
|
-#define LOG_LEVEL (LOGLEVEL_INFO)
|
|
+#define LOG_LEVEL (LOGLEVEL_DEBUG)
|
|
|
|
#if LOG_LEVEL >= LOGLEVEL_ERROR
|
|
#define LOG_ERROR printf
|
|
diff --git a/sgp/Platform.h b/sgp/Platform.h
|
|
index 263f9b1..57d377c 100644
|
|
--- a/sgp/Platform.h
|
|
+++ b/sgp/Platform.h
|
|
@@ -12,7 +12,7 @@
|
|
#define PATH_SEPARATOR '\\'
|
|
#define PATH_SEPARATOR_STR "\\"
|
|
#else
|
|
-#define CASE_SENSITIVE_FS 1
|
|
+#define CASE_SENSITIVE_FS 0 // SD card on Android is case-insensitive
|
|
#define PATH_SEPARATOR '/'
|
|
#define PATH_SEPARATOR_STR "/"
|
|
#endif
|
|
diff --git a/sgp/SGP.cc b/sgp/SGP.cc
|
|
index d156d73..66d7cf0 100644
|
|
--- a/sgp/SGP.cc
|
|
+++ b/sgp/SGP.cc
|
|
@@ -13,6 +13,9 @@
|
|
|
|
#include <exception>
|
|
#include <new>
|
|
+#ifdef WITH_UNITTESTS
|
|
+#include "gtest/gtest.h"
|
|
+#endif
|
|
|
|
#include "Button_System.h"
|
|
#include "Debug.h"
|
|
@@ -49,9 +52,6 @@
|
|
#include "slog/slog.h"
|
|
#define TAG "SGP"
|
|
|
|
-#ifdef WITH_UNITTESTS
|
|
-#include "gtest/gtest.h"
|
|
-#endif
|
|
|
|
#if defined _WIN32
|
|
# define WIN32_LEAN_AND_MEAN
|
|
@@ -318,7 +318,7 @@ static BOOLEAN ParseParameters(int argc, char* const argv[],
|
|
int main(int argc, char* argv[])
|
|
try
|
|
{
|
|
- std::string exeFolder = FileMan::getParentPath(argv[0], true);
|
|
+ //std::string exeFolder = FileMan::getParentPath(argv[0], true);
|
|
|
|
#if defined BROKEN_SWPRINTF
|
|
if (setlocale(LC_CTYPE, "UTF-8") == NULL)
|
|
@@ -361,10 +361,12 @@ try
|
|
setGameVersion(version);
|
|
|
|
////////////////////////////////////////////////////////////
|
|
+ SLOGD(TAG, "Starting %s:%d\n", __FILE__,__LINE__);
|
|
|
|
SDL_Init(SDL_INIT_VIDEO);
|
|
SDL_EnableUNICODE(SDL_ENABLE);
|
|
|
|
+ SLOGD(TAG, "Starting %s:%d\n", __FILE__,__LINE__);
|
|
#ifdef __APPLE__
|
|
// Enable 3-button mouse support if the user haven't instructed
|
|
// otherwise
|
|
@@ -380,6 +382,7 @@ try
|
|
freopen("CON", "w", stderr);
|
|
#endif
|
|
|
|
+ SLOGD(TAG, "Starting %s:%d\n", __FILE__,__LINE__);
|
|
#ifdef SGP_DEBUG
|
|
// Initialize the Debug Manager - success doesn't matter
|
|
InitializeDebugManager();
|
|
@@ -398,7 +401,7 @@ try
|
|
if(extraDataDir.empty())
|
|
{
|
|
// use location of the exe file
|
|
- extraDataDir = exeFolder;
|
|
+ //extraDataDir = exeFolder;
|
|
}
|
|
|
|
std::string externalizedDataPath = FileMan::joinPaths(extraDataDir, "externalized");
|
|
@@ -428,6 +431,7 @@ try
|
|
else
|
|
#endif
|
|
{
|
|
+ SLOGD(TAG, "Starting %s:%d\n", __FILE__,__LINE__);
|
|
cm = new DefaultContentManager(version,
|
|
configFolderPath,
|
|
gameResRootPath, externalizedDataPath);
|
|
@@ -775,7 +779,7 @@ static void WriteDefaultConfigFile(const char* ConfigFile)
|
|
#ifdef _WIN32
|
|
fprintf(IniFile, "data_dir = C:\\Program Files\\Jagged Alliance 2");
|
|
#else
|
|
- fprintf(IniFile, "data_dir = /some/place/where/the/data/is");
|
|
+ fprintf(IniFile, "data_dir = .");
|
|
#endif
|
|
fclose(IniFile);
|
|
fprintf(stderr, "Please edit \"%s\" to point to the binary data.\n", ConfigFile);
|
|
diff --git a/src/DefaultContentManager.cc b/src/DefaultContentManager.cc
|
|
index b7e4971..25bec4b 100644
|
|
--- a/src/DefaultContentManager.cc
|
|
+++ b/src/DefaultContentManager.cc
|
|
@@ -602,8 +602,10 @@ const AmmoTypeModel* DefaultContentManager::getAmmoType(uint8_t index)
|
|
|
|
bool DefaultContentManager::loadWeapons()
|
|
{
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
AutoSGPFile f(openGameResForReading("weapons.json"));
|
|
std::string jsonData = FileMan::fileReadText(f);
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
|
|
rapidjson::Document document;
|
|
if (document.Parse<0>(jsonData.c_str()).HasParseError())
|
|
@@ -613,6 +615,7 @@ bool DefaultContentManager::loadWeapons()
|
|
}
|
|
else
|
|
{
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
if(document.IsArray()) {
|
|
const rapidjson::Value& a = document;
|
|
for (rapidjson::SizeType i = 0; i < a.Size(); i++)
|
|
@@ -632,6 +635,7 @@ bool DefaultContentManager::loadWeapons()
|
|
}
|
|
}
|
|
}
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
|
|
return true;
|
|
}
|
|
@@ -675,8 +679,11 @@ bool DefaultContentManager::loadMagazines()
|
|
|
|
bool DefaultContentManager::loadCalibres()
|
|
{
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
AutoSGPFile f(openGameResForReading("calibres.json"));
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
std::string jsonData = FileMan::fileReadText(f);
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
|
|
rapidjson::Document document;
|
|
if (document.Parse<0>(jsonData.c_str()).HasParseError())
|
|
@@ -686,6 +693,7 @@ bool DefaultContentManager::loadCalibres()
|
|
}
|
|
else
|
|
{
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
if(document.IsArray()) {
|
|
const rapidjson::Value& a = document;
|
|
for (rapidjson::SizeType i = 0; i < a.Size(); i++)
|
|
@@ -703,19 +711,23 @@ bool DefaultContentManager::loadCalibres()
|
|
}
|
|
}
|
|
}
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
|
|
BOOST_FOREACH(const CalibreModel* calibre, m_calibres)
|
|
{
|
|
m_calibreMap.insert(std::make_pair(std::string(calibre->internalName), calibre));
|
|
}
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
|
|
return true;
|
|
}
|
|
|
|
bool DefaultContentManager::loadAmmoTypes()
|
|
{
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
AutoSGPFile f(openGameResForReading("ammo_types.json"));
|
|
std::string jsonData = FileMan::fileReadText(f);
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
|
|
rapidjson::Document document;
|
|
if (document.Parse<0>(jsonData.c_str()).HasParseError())
|
|
@@ -725,6 +737,7 @@ bool DefaultContentManager::loadAmmoTypes()
|
|
}
|
|
else
|
|
{
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
if(document.IsArray()) {
|
|
const rapidjson::Value& a = document;
|
|
for (rapidjson::SizeType i = 0; i < a.Size(); i++)
|
|
@@ -742,12 +755,14 @@ bool DefaultContentManager::loadAmmoTypes()
|
|
}
|
|
}
|
|
}
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
|
|
BOOST_FOREACH(const AmmoTypeModel* ammoType, m_ammoTypes)
|
|
{
|
|
m_ammoTypeMap.insert(std::make_pair(std::string(ammoType->internalName), ammoType));
|
|
}
|
|
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
return true;
|
|
}
|
|
|
|
@@ -755,8 +770,10 @@ bool DefaultContentManager::readWeaponTable(
|
|
const char *fileName,
|
|
std::vector<std::vector<const WeaponModel*> > & weaponTable)
|
|
{
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
AutoSGPFile f(openGameResForReading(fileName));
|
|
std::string jsonData = FileMan::fileReadText(f);
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
|
|
rapidjson::Document document;
|
|
if (document.Parse<0>(jsonData.c_str()).HasParseError())
|
|
@@ -764,6 +781,7 @@ bool DefaultContentManager::readWeaponTable(
|
|
SLOGE(TAG, "Failed to parse %s", fileName);
|
|
return false;
|
|
}
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
|
|
if(document.IsArray())
|
|
{
|
|
@@ -780,6 +798,7 @@ bool DefaultContentManager::readWeaponTable(
|
|
}
|
|
}
|
|
}
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
|
|
return true;
|
|
}
|
|
@@ -796,12 +815,14 @@ const std::vector<std::vector<const WeaponModel*> > & DefaultContentManager::get
|
|
|
|
bool DefaultContentManager::loadArmyGunChoice()
|
|
{
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
return readWeaponTable("army-gun-choice-normal.json", mNormalGunChoice)
|
|
&& readWeaponTable("army-gun-choice-extended.json", mExtendedGunChoice);
|
|
}
|
|
|
|
void DefaultContentManager::loadStringRes(const char *name, std::vector<const UTF8String*> &strings) const
|
|
{
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
std::string fullName(name);
|
|
|
|
switch(m_gameVersion)
|
|
@@ -819,6 +840,7 @@ void DefaultContentManager::loadStringRes(const char *name, std::vector<const UT
|
|
throw std::runtime_error(FormattedString("unknown game version %d", m_gameVersion));
|
|
}
|
|
}
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
|
|
fullName += ".json";
|
|
boost::shared_ptr<rapidjson::Document> json(readJsonDataFile(fullName.c_str()));
|
|
@@ -828,12 +850,15 @@ void DefaultContentManager::loadStringRes(const char *name, std::vector<const UT
|
|
{
|
|
strings.push_back(new UTF8String(str.c_str()));
|
|
}
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
}
|
|
|
|
/** Load the game data. */
|
|
bool DefaultContentManager::loadGameData()
|
|
{
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
createAllHardcodedItemModels(m_items);
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
|
|
bool result = loadCalibres()
|
|
&& loadAmmoTypes()
|
|
@@ -841,23 +866,29 @@ bool DefaultContentManager::loadGameData()
|
|
&& loadWeapons()
|
|
&& loadArmyGunChoice();
|
|
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
BOOST_FOREACH(const ItemModel *item, m_items)
|
|
{
|
|
m_itemMap.insert(std::make_pair(item->getInternalName(), item));
|
|
}
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
|
|
loadAllDealersInventory();
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
|
|
boost::shared_ptr<rapidjson::Document> game_json(readJsonDataFile("game.json"));
|
|
m_gamePolicy = new DefaultGamePolicy(game_json.get());
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
|
|
boost::shared_ptr<rapidjson::Document> imp_json(readJsonDataFile("imp.json"));
|
|
m_impPolicy = new DefaultIMPPolicy(imp_json.get(), this);
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
|
|
loadStringRes("strings/ammo-calibre", m_calibreNames);
|
|
loadStringRes("strings/ammo-calibre-bobbyray", m_calibreNamesBobbyRay);
|
|
|
|
loadStringRes("strings/new-strings", m_newStrings);
|
|
+ SLOGD(TAG, "%s:%d\n", __FILE__,__LINE__);
|
|
|
|
return result;
|
|
}
|