From c5c945f0c3d5df14f1dd171bbacd7ced1b6cbe61 Mon Sep 17 00:00:00 2001 From: KimLS Date: Thu, 2 May 2013 23:21:04 -0700 Subject: [PATCH 1/3] Make perl truely optional (Dalaya) --- CMakeLists.txt | 14 ++++++++++---- zone/net.cpp | 12 ++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a7897be92..03e76792b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -112,6 +112,7 @@ OPTION(EQEMU_BUILD_SERVER "Build the game server." ON) OPTION(EQEMU_BUILD_LOGIN "Build the login server." OFF) OPTION(EQEMU_BUILD_AZONE "Build azone utility." OFF) OPTION(EQEMU_BUILD_TESTS "Build utility tests." OFF) +OPTION(EQEMU_BUILD_PERL "Build Perl parser." OFF) #C++11 stuff IF(NOT MSVC) @@ -128,8 +129,10 @@ IF(EQEMU_ENABLE_RVALUE_MOVE) ENDIF(EQEMU_ENABLE_RVALUE_MOVE) #Various definitions -ADD_DEFINITIONS(-DEMBPERL) -ADD_DEFINITIONS(-DEMBPERL_PLUGIN) +IF(EQEMU_BUILD_PERL) + ADD_DEFINITIONS(-DEMBPERL) + ADD_DEFINITIONS(-DEMBPERL_PLUGIN) +ENDIF(EQEMU_BUILD_PERL) ADD_DEFINITIONS(-DEQDEBUG=${EQEMU_DEBUG_LEVEL}) ADD_DEFINITIONS(-DINVERSEXY) ADD_DEFINITIONS(-DFIELD_ITEMS) @@ -138,8 +141,11 @@ ADD_DEFINITIONS(-DMAP_DIR="./Maps") #Find everything we need FIND_PACKAGE(ZLIB REQUIRED) FIND_PACKAGE(MySQL REQUIRED) -FIND_PACKAGE(PerlLibs REQUIRED) -INCLUDE_DIRECTORIES("${ZLIB_INCLUDE_DIRS}" "${PERL_INCLUDE_PATH}" "${MySQL_INCLUDE_DIR}") +IF(EQEMU_BUILD_PERL) + FIND_PACKAGE(PerlLibs REQUIRED) + INCLUDE_DIRECTORIES("${PERL_INCLUDE_PATH}") +ENDIF(EQEMU_BUILD_PERL) +INCLUDE_DIRECTORIES("${ZLIB_INCLUDE_DIRS}" "${MySQL_INCLUDE_DIR}") IF(EQEMU_BUILD_SERVER OR EQEMU_BUILD_LOGIN OR EQEMU_BUILD_TESTS) ADD_SUBDIRECTORY(common) diff --git a/zone/net.cpp b/zone/net.cpp index ac3ab94f2..2ac9d1c61 100644 --- a/zone/net.cpp +++ b/zone/net.cpp @@ -284,9 +284,11 @@ int main(int argc, char** argv) { } parse = new QuestParserCollection(); - PerlXSParser *pxs = new PerlXSParser(); - Parser *ps = new Parser(); - parse->RegisterQuestInterface(pxs, "pl"); +#ifdef EMBPERL + PerlXSParser *pxs = new PerlXSParser(); + parse->RegisterQuestInterface(pxs, "pl"); +#endif + Parser *ps = new Parser(); //parse->RegisterQuestInterface(ps, "qst"); @@ -473,7 +475,9 @@ int main(int argc, char** argv) { entity_list.Clear(); safe_delete(parse); - safe_delete(pxs); +#ifdef EMBPERL + safe_delete(pxs); +#endif safe_delete(ps); safe_delete(mmf); From d3588d2c95d0543db2bfbe34f21d92d6367ea98a Mon Sep 17 00:00:00 2001 From: KimLS Date: Thu, 2 May 2013 23:24:52 -0700 Subject: [PATCH 2/3] PERL ON BY DEFAULT - THANKS DALAYA --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 03e76792b..312095f08 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -112,7 +112,7 @@ OPTION(EQEMU_BUILD_SERVER "Build the game server." ON) OPTION(EQEMU_BUILD_LOGIN "Build the login server." OFF) OPTION(EQEMU_BUILD_AZONE "Build azone utility." OFF) OPTION(EQEMU_BUILD_TESTS "Build utility tests." OFF) -OPTION(EQEMU_BUILD_PERL "Build Perl parser." OFF) +OPTION(EQEMU_BUILD_PERL "Build Perl parser." ON) #C++11 stuff IF(NOT MSVC) From e1c2657b115f61420dd3a9b7be9630e8cd0cd3f3 Mon Sep 17 00:00:00 2001 From: Derision Date: Fri, 3 May 2013 09:36:16 +0100 Subject: [PATCH 3/3] NULL check in Merc::CalcItemBonuses --- zone/merc.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zone/merc.cpp b/zone/merc.cpp index ba9e5d66f..04df278a3 100644 --- a/zone/merc.cpp +++ b/zone/merc.cpp @@ -275,7 +275,8 @@ void Merc::CalcItemBonuses(StatBonuses* newbon) { if(equipment[i] == 0) continue; const Item_Struct * itm = database.GetItem(equipment[i]); - AddItemBonuses(itm, newbon); + if(itm) + AddItemBonuses(itm, newbon); } //Power Source Slot