From 9e69afbbd6c8430e1861fe51202233634052b1a5 Mon Sep 17 00:00:00 2001 From: Fyren Date: Fri, 30 Oct 2009 13:26:13 +1300 Subject: [PATCH] Inital SM fixes for l4d2 and linux makefile updates --- core/ConCommandBaseIterator.h | 12 ++++---- core/ExtensionSys.cpp | 4 ++- core/GameConfigs.cpp | 2 ++ core/Makefile | 26 ++++++++++++++-- core/PluginSys.h | 2 +- core/UserMessages.cpp | 12 ++++---- core/UserMessages.h | 2 +- core/smn_console.cpp | 12 ++++---- core/sourcemm_api.h | 2 +- extensions/bintools/Makefile | 31 ++++++++++++++++--- extensions/sdktools/Makefile | 49 ++++++++++++++++++++----------- extensions/sdktools/trnatives.cpp | 2 +- extensions/sdktools/vnatives.cpp | 2 +- loader/Makefile | 2 +- loader/loader.cpp | 6 ++++ plugins/nextmap.sp | 2 ++ 16 files changed, 120 insertions(+), 48 deletions(-) diff --git a/core/ConCommandBaseIterator.h b/core/ConCommandBaseIterator.h index b75838b4..dfe84ac5 100644 --- a/core/ConCommandBaseIterator.h +++ b/core/ConCommandBaseIterator.h @@ -33,7 +33,7 @@ class ConCommandBaseIterator { -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) ICvarIteratorInternal *cvarIter; #else ConCommandBase *cvarIter; @@ -42,7 +42,7 @@ class ConCommandBaseIterator public: ConCommandBaseIterator() { -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) cvarIter = icvar->FactoryInternalIterator(); cvarIter->SetFirst(); #else @@ -52,14 +52,14 @@ public: ~ConCommandBaseIterator() { -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) g_pMemAlloc->Free(cvarIter); #endif } inline bool IsValid() { -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) return cvarIter->IsValid(); #else return cvarIter != NULL; @@ -68,7 +68,7 @@ public: inline void Next() { -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) cvarIter->Next(); #else cvarIter = const_cast(cvarIter->GetNext()); @@ -77,7 +77,7 @@ public: inline ConCommandBase *Get() { -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) return cvarIter->Get(); #else return cvarIter; diff --git a/core/ExtensionSys.cpp b/core/ExtensionSys.cpp index 3868b463..127f5aa6 100644 --- a/core/ExtensionSys.cpp +++ b/core/ExtensionSys.cpp @@ -63,6 +63,8 @@ CRemoteExtension::CRemoteExtension(IExtensionInterface *pAPI, const char *filena #if defined METAMOD_PLAPI_VERSION #if SOURCE_ENGINE == SE_LEFT4DEAD #define GAMEFIX "2.l4d" +#elif SOURCE_ENGINE == SE_LEFT4DEAD2 +#define GAMEFIX "2.l4d2" #elif SOURCE_ENGINE == SE_ORANGEBOX #define GAMEFIX "2.ep2" #elif SOURCE_ENGINE == SE_ORANGEBOXVALVE @@ -71,7 +73,7 @@ CRemoteExtension::CRemoteExtension(IExtensionInterface *pAPI, const char *filena #define GAMEFIX "2.darkm" #else #define GAMEFIX "2.ep1" -#endif //SOURCE_ENGINE == SE_LEFT4DEAD +#endif //(SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) #else //METAMOD_PLAPI_VERSION #define GAMEFIX "1.ep1" #endif //METAMOD_PLAPI_VERSION diff --git a/core/GameConfigs.cpp b/core/GameConfigs.cpp index b58b34ca..86bd1c18 100644 --- a/core/GameConfigs.cpp +++ b/core/GameConfigs.cpp @@ -117,6 +117,8 @@ static bool DoesEngineMatch(const char *value) if (strcmp(value, "orangebox_valve") == 0) #elif SOURCE_ENGINE == SE_LEFT4DEAD if (strcmp(value, "left4dead") == 0) +#elif SOURCE_ENGINE == SE_LEFT4DEAD2 + if (strcmp(value, "left4dead2") == 0) #else #error "Unknown engine type" #endif diff --git a/core/Makefile b/core/Makefile index 4b0cb1ba..c2368c6a 100644 --- a/core/Makefile +++ b/core/Makefile @@ -7,7 +7,8 @@ HL2SDK_ORIG = ../../hl2sdk HL2SDK_OB = ../../hl2sdk-ob HL2SDK_OB_VALVE = ../../hl2sdk-ob-valve HL2SDK_L4D = ../../hl2sdk-l4d -MMSOURCE17 = ../../mmsource-1.7 +HL2SDK_L4D2 = ../../hl2sdk-l4d2 +MMSOURCE17 = ../../mmsource-central ##################################### ### EDIT BELOW FOR OTHER PROJECTS ### @@ -92,11 +93,27 @@ ifeq "$(ENGINE)" "left4dead" BINARY = sourcemod.2.l4d.so override ENGSET = true endif +ifeq "$(ENGINE)" "left4dead2" + HL2SDK = $(HL2SDK_L4D2) + HL2PUB = $(HL2SDK)/public + HL2LIB = $(HL2SDK)/lib/linux + CFLAGS += -DSOURCE_ENGINE=6 + METAMOD = $(MMSOURCE17)/core + INCLUDE += -I$(HL2SDK)/public/game/server + SRCDS = $(SRCDS_BASE)/left4dead2_demo + BINARY = sourcemod.2.l4d2.so + override ENGSET = true +endif -CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_ORANGEBOXVALVE=4 -DSE_LEFT4DEAD=5 +CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_ORANGEBOXVALVE=4 -DSE_LEFT4DEAD=5 -DSE_LEFT4DEAD2=6 +ifeq "$(ENGINE)" "left4dead2" +LINK += $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a vstdlib_linux.so \ + tier0_linux.so -static-libgcc +else LINK += $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a vstdlib_i486.so \ tier0_i486.so -static-libgcc +endif INCLUDE += -I. -I.. -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/mathlib -I$(HL2PUB)/vstdlib \ -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 -I$(METAMOD) -I$(METAMOD)/sourcehook \ @@ -136,8 +153,13 @@ $(BIN_DIR)/%.o: %.c all: check mkdir -p $(BIN_DIR) +ifeq "$(ENGINE)" "left4dead2" + ln -sf $(SRCDS)/bin/vstdlib_linux.so vstdlib_linux.so; + ln -sf $(SRCDS)/bin/tier0_linux.so tier0_linux.so; +else ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so; ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so; +endif $(MAKE) -f Makefile sourcemod check: diff --git a/core/PluginSys.h b/core/PluginSys.h index db3ab302..e26cad74 100644 --- a/core/PluginSys.h +++ b/core/PluginSys.h @@ -47,7 +47,7 @@ #include "sm_trie.h" #include "sourcemod.h" #include -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) #include "convar_sm_l4d.h" #elif (SOURCE_ENGINE == SE_ORANGEBOX) || (SOURCE_ENGINE == SE_ORANGEBOXVALVE) #include "convar_sm_ob.h" diff --git a/core/UserMessages.cpp b/core/UserMessages.cpp index 667a07b7..3900c536 100644 --- a/core/UserMessages.cpp +++ b/core/UserMessages.cpp @@ -34,7 +34,7 @@ UserMessages g_UserMsgs; -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) SH_DECL_HOOK3(IVEngineServer, UserMessageBegin, SH_NOATTRIB, 0, bf_write *, IRecipientFilter *, int, const char *); #else SH_DECL_HOOK2(IVEngineServer, UserMessageBegin, SH_NOATTRIB, 0, bf_write *, IRecipientFilter *, int); @@ -168,13 +168,13 @@ bf_write *UserMessages::StartMessage(int msg_id, const cell_t players[], unsigne if (m_CurFlags & USERMSG_BLOCKHOOKS) { -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) buffer = ENGINE_CALL(UserMessageBegin)(static_cast(&m_CellRecFilter), msg_id, g_SMAPI->GetUserMessage(msg_id)); #else buffer = ENGINE_CALL(UserMessageBegin)(static_cast(&m_CellRecFilter), msg_id); #endif } else { -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) buffer = engine->UserMessageBegin(static_cast(&m_CellRecFilter), msg_id, g_SMAPI->GetUserMessage(msg_id)); #else buffer = engine->UserMessageBegin(static_cast(&m_CellRecFilter), msg_id); @@ -316,7 +316,7 @@ void UserMessages::_DecRefCounter() } } -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) bf_write *UserMessages::OnStartMessage_Pre(IRecipientFilter *filter, int msg_type, const char *msg_name) #else bf_write *UserMessages::OnStartMessage_Pre(IRecipientFilter *filter, int msg_type) @@ -346,7 +346,7 @@ bf_write *UserMessages::OnStartMessage_Pre(IRecipientFilter *filter, int msg_typ RETURN_META_VALUE(MRES_IGNORED, NULL); } -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) bf_write *UserMessages::OnStartMessage_Post(IRecipientFilter *filter, int msg_type, const char *msg_name) #else bf_write *UserMessages::OnStartMessage_Post(IRecipientFilter *filter, int msg_type) @@ -500,7 +500,7 @@ void UserMessages::OnMessageEnd_Pre() { bf_write *engine_bfw; -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) engine_bfw = ENGINE_CALL(UserMessageBegin)(m_CurRecFilter, m_CurId, g_SMAPI->GetUserMessage(m_CurId)); #else engine_bfw = ENGINE_CALL(UserMessageBegin)(m_CurRecFilter, m_CurId); diff --git a/core/UserMessages.h b/core/UserMessages.h index 0ff262fc..d8af3fd6 100644 --- a/core/UserMessages.h +++ b/core/UserMessages.h @@ -79,7 +79,7 @@ public: //IUserMessages IUserMessageListener *pListener, bool intercept=false); public: -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) bf_write *OnStartMessage_Pre(IRecipientFilter *filter, int msg_type, const char *msg_name); bf_write *OnStartMessage_Post(IRecipientFilter *filter, int msg_type, const char *msg_name); #else diff --git a/core/smn_console.cpp b/core/smn_console.cpp index 84651002..a12f5b81 100644 --- a/core/smn_console.cpp +++ b/core/smn_console.cpp @@ -46,7 +46,7 @@ #include "Logger.h" #include "ConsoleDetours.h" -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) #define NET_SETCONVAR 6 #else #define NET_SETCONVAR 5 @@ -69,7 +69,7 @@ struct GlobCmdIter struct ConCmdIter { -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) ICvarIteratorInternal *pLast; #else const ConCommandBase *pLast; @@ -103,7 +103,7 @@ public: else if (type == htConCmdIter) { ConCmdIter *iter = (ConCmdIter * )object; -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) // ICvarIteratorInternal has no virtual destructor g_pMemAlloc->Free(iter->pLast); #endif @@ -1183,7 +1183,7 @@ static cell_t FindFirstConCommand(IPluginContext *pContext, const cell_t *params pContext->LocalToPhysAddr(params[3], &pIsCmd); pContext->LocalToPhysAddr(params[4], &pFlags); -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) ICvarIteratorInternal *cvarIter = icvar->FactoryInternalIterator(); cvarIter->SetFirst(); if (!cvarIter->IsValid()) @@ -1210,7 +1210,7 @@ static cell_t FindFirstConCommand(IPluginContext *pContext, const cell_t *params } pIter = new ConCmdIter; -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) pIter->pLast = cvarIter; #else pIter->pLast = pConCmd; @@ -1245,7 +1245,7 @@ static cell_t FindNextConCommand(IPluginContext *pContext, const cell_t *params) return 0; } -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) ICvarIteratorInternal *cvarIter = pIter->pLast; cvarIter->Next(); if (!cvarIter->IsValid()) diff --git a/core/sourcemm_api.h b/core/sourcemm_api.h index f67a51e9..ed244c63 100644 --- a/core/sourcemm_api.h +++ b/core/sourcemm_api.h @@ -32,7 +32,7 @@ #ifndef _INCLUDE_SOURCEMOD_MM_API_H_ #define _INCLUDE_SOURCEMOD_MM_API_H_ -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) #include "convar_sm_l4d.h" #elif (SOURCE_ENGINE == SE_ORANGEBOX) || (SOURCE_ENGINE == SE_ORANGEBOXVALVE) #include "convar_sm_ob.h" diff --git a/extensions/bintools/Makefile b/extensions/bintools/Makefile index e88a10d5..683e57bb 100644 --- a/extensions/bintools/Makefile +++ b/extensions/bintools/Makefile @@ -7,7 +7,8 @@ HL2SDK_ORIG = ../../../hl2sdk HL2SDK_OB = ../../../hl2sdk-ob HL2SDK_OB_VALVE = ../../../hl2sdk-ob-valve HL2SDK_L4D = ../../../hl2sdk-l4d -MMSOURCE17 = ../../../mmsource-1.7 +HL2SDK_L4D2 = ../../../hl2sdk-l4d2 +MMSOURCE17 = ../../../mmsource-central ##################################### ### EDIT BELOW FOR OTHER PROJECTS ### @@ -79,16 +80,33 @@ ifeq "$(ENGINE)" "left4dead" USEMETA = true CFLAGS += -DHOOKING_ENABLED endif +ifeq "$(ENGINE)" "left4dead2" + HL2SDK = $(HL2SDK_L4D2) + HL2PUB = $(HL2SDK)/public + HL2LIB = $(HL2SDK)/lib/linux + CFLAGS += -DSOURCE_ENGINE=6 + METAMOD = $(MMSOURCE17)/core + INCLUDE += -I$(HL2SDK)/public/game/server + SRCDS = $(SRCDS_BASE)/left4dead2_demo + GAMEFIX = 2.l4d2 + override ENGSET = true + USEMETA = true + CFLAGS += -DHOOKING_ENABLED +endif ifeq "$(USEMETA)" "true" +ifeq "$(ENGINE)" "left4dead2" + LINK_HL2 = $(HL2LIB)/tier1_i486.a vstdlib_linux.so tier0_linux.so +else LINK_HL2 = $(HL2LIB)/tier1_i486.a vstdlib_i486.so tier0_i486.so +endif LINK += $(LINK_HL2) INCLUDE += -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \ -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn \ -I$(SMSDK)/public/extensions -I$(SMSDK)/public/jit -I$(SMSDK)/public/jit/x86 - CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_ORANGEBOXVALVE=4 -DSE_LEFT4DEAD=5 + CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_ORANGEBOXVALVE=4 -DSE_LEFT4DEAD=5 -DSE_LEFT4DEAD2=6 else INCLUDE += -I. -I.. -Isdk -I$(SMSDK)/public -I$(SMSDK)/public/extensions -I$(SMSDK)/public/jit \ -I$(SMSDK)/public/jit/x86 -I$(SMSDK)/public/sourcepawn @@ -142,8 +160,13 @@ $(BIN_DIR)/%.o: %.cpp all: check mkdir -p $(BIN_DIR)/sdk if [ "$(USEMETA)" = "true" ]; then \ - ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so; \ - ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so; \ + if [ "$(ENGINE)" = "left4dead2" ]; then \ + ln -sf $(SRCDS)/bin/vstdlib_linux.so vstdlib_linux.so; \ + ln -sf $(SRCDS)/bin/tier0_linux.so tier0_linux.so; \ + else \ + ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so; \ + ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so; \ + fi \ fi $(MAKE) -f Makefile extension diff --git a/extensions/sdktools/Makefile b/extensions/sdktools/Makefile index 64c99878..18234dc8 100644 --- a/extensions/sdktools/Makefile +++ b/extensions/sdktools/Makefile @@ -7,7 +7,8 @@ HL2SDK_ORIG = ../../../hl2sdk HL2SDK_OB = ../../../hl2sdk-ob HL2SDK_OB_VALVE = ../../../hl2sdk-ob-valve HL2SDK_L4D = ../../../hl2sdk-l4d -MMSOURCE17 = ../../../mmsource-1.7 +HL2SDK_L4D2 = ../../../hl2sdk-l4d2 +MMSOURCE17 = ../../../mmsource-central ##################################### ### EDIT BELOW FOR OTHER PROJECTS ### @@ -78,20 +79,31 @@ ifeq "$(ENGINE)" "left4dead" GAMEFIX = 2.l4d override ENGSET = true endif - -ifeq "$(USEMETA)" "true" - LINK_HL2 = $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a vstdlib_i486.so tier0_i486.so - - LINK += $(LINK_HL2) - - INCLUDE += -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/mathlib -I$(HL2PUB)/tier0 \ - -I$(HL2PUB)/tier1 -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(SMSDK)/public -I$(SMSDK)/public/extensions \ - -I$(SMSDK)/public/sourcepawn - CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_ORANGEBOXVALVE=4 -DSE_LEFT4DEAD=5 -else - INCLUDE += -I. -I.. -Isdk -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn +ifeq "$(ENGINE)" "left4dead2" + HL2SDK = $(HL2SDK_L4D2) + HL2PUB = $(HL2SDK)/public + HL2LIB = $(HL2SDK)/lib/linux + CFLAGS += -DSOURCE_ENGINE=6 + METAMOD = $(MMSOURCE17)/core + INCLUDE += -I$(HL2SDK)/public/game/server -I$(HL2SDK)/common -I$(HL2SDK)/game/shared + SRCDS = $(SRCDS_BASE)/left4dead2_demo + GAMEFIX = 2.l4d2 + override ENGSET = true endif +ifeq "$(ENGINE)" "left4dead2" + LINK_HL2 = $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a vstdlib_linux.so tier0_linux.so +else + LINK_HL2 = $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a vstdlib_i486.so tier0_i486.so +endif + +LINK += $(LINK_HL2) + +INCLUDE += -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/mathlib -I$(HL2PUB)/tier0 \ + -I$(HL2PUB)/tier1 -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(SMSDK)/public -I$(SMSDK)/public/extensions \ + -I$(SMSDK)/public/sourcepawn +CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_ORANGEBOXVALVE=4 -DSE_LEFT4DEAD=5 -DSE_LEFT4DEAD2=6 + LINK += -m32 -ldl -lm CFLAGS += -D_LINUX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \ @@ -137,10 +149,13 @@ $(BIN_DIR)/%.o: %.cpp all: check mkdir -p $(BIN_DIR)/sdk - if [ "$(USEMETA)" = "true" ]; then \ - ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so; \ - ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so; \ - fi +ifeq "$(ENGINE)" "left4dead2" + ln -sf $(SRCDS)/bin/vstdlib_linux.so vstdlib_linux.so; + ln -sf $(SRCDS)/bin/tier0_linux.so tier0_linux.so; +else + ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so; + ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so; +endif $(MAKE) -f Makefile extension check: diff --git a/extensions/sdktools/trnatives.cpp b/extensions/sdktools/trnatives.cpp index e0fb6659..1c5043fa 100644 --- a/extensions/sdktools/trnatives.cpp +++ b/extensions/sdktools/trnatives.cpp @@ -530,7 +530,7 @@ static cell_t smn_TRGetPointContents(IPluginContext *pContext, const cell_t *par { mask = enginetrace->GetPointContents(pos); } else { -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) mask = enginetrace->GetPointContents(pos, 0, &hentity); #else mask = enginetrace->GetPointContents(pos, &hentity); diff --git a/extensions/sdktools/vnatives.cpp b/extensions/sdktools/vnatives.cpp index 321f43d2..e81086d1 100644 --- a/extensions/sdktools/vnatives.cpp +++ b/extensions/sdktools/vnatives.cpp @@ -657,7 +657,7 @@ static cell_t FindEntityByClassname(IPluginContext *pContext, const cell_t *para return gamehelpers->EntityToBCompatRef(pEntity); } -#if SOURCE_ENGINE == SE_LEFT4DEAD +#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) static cell_t CreateEntityByName(IPluginContext *pContext, const cell_t *params) { static ValveCall *pCall = NULL; diff --git a/loader/Makefile b/loader/Makefile index 23a1d276..075ba76c 100644 --- a/loader/Makefile +++ b/loader/Makefile @@ -1,7 +1,7 @@ # (C)2004-2008 SourceMod Development Team # Makefile written by David "BAILOPAN" Anderson -MMSOURCE17 = ../../mmsource-1.7 +MMSOURCE17 = ../../mmsource-central ##################################### ### EDIT BELOW FOR OTHER PROJECTS ### diff --git a/loader/loader.cpp b/loader/loader.cpp index 690add40..49b3274a 100644 --- a/loader/loader.cpp +++ b/loader/loader.cpp @@ -74,6 +74,7 @@ #define FILENAME_1_6_EP1 "sourcemod.2.ep1" PLATFORM_EXT #define FILENAME_1_6_L4D "sourcemod.2.l4d" PLATFORM_EXT #define FILENAME_1_6_DARKM "sourcemod.2.darkm" PLATFORM_EXT +#define FILENAME_1_6_L4D2 "sourcemod.2.l4d2" PLATFORM_EXT HINSTANCE g_hCore = NULL; bool load_attempted = false; @@ -236,6 +237,11 @@ DLL_EXPORT METAMOD_PLUGIN *CreateInterface_MMS(const MetamodVersionInfo *mvi, co filename = FILENAME_1_6_DARKM; break; } + case SOURCE_ENGINE_LEFT4DEAD2: + { + filename = FILENAME_1_6_L4D2; + break; + } default: { return NULL; diff --git a/plugins/nextmap.sp b/plugins/nextmap.sp index 85759372..a4b6ab48 100644 --- a/plugins/nextmap.sp +++ b/plugins/nextmap.sp @@ -222,4 +222,6 @@ FormatTimeDuration(String:buffer[], maxlen, time) { return Format(buffer, maxlen, "%is", seconds); } + + return Plugin_Handled; }