Import of core modularization plan (bug 3599).
This commit is contained in:
		
							parent
							
								
									850dbd62c6
								
							
						
					
					
						commit
						421b58f68e
					
				@ -37,7 +37,7 @@
 | 
				
			|||||||
#include "Logger.h"
 | 
					#include "Logger.h"
 | 
				
			||||||
#include "ExtensionSys.h"
 | 
					#include "ExtensionSys.h"
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include "ThreadSupport.h"
 | 
					#include <IThreader.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define DBPARSE_LEVEL_NONE		0
 | 
					#define DBPARSE_LEVEL_NONE		0
 | 
				
			||||||
#define DBPARSE_LEVEL_MAIN		1
 | 
					#define DBPARSE_LEVEL_MAIN		1
 | 
				
			||||||
 | 
				
			|||||||
@ -39,7 +39,6 @@
 | 
				
			|||||||
#include "sm_globals.h"
 | 
					#include "sm_globals.h"
 | 
				
			||||||
#include "sm_memtable.h"
 | 
					#include "sm_memtable.h"
 | 
				
			||||||
#include "sm_trie_tpl.h"
 | 
					#include "sm_trie_tpl.h"
 | 
				
			||||||
#include "ThreadSupport.h"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
using namespace SourceMod;
 | 
					using namespace SourceMod;
 | 
				
			||||||
using namespace SourceHook;
 | 
					using namespace SourceHook;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,8 +1,8 @@
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * vim: set ts=4 :
 | 
					 * vim: set ts=4 sw=4 :
 | 
				
			||||||
 * =============================================================================
 | 
					 * =============================================================================
 | 
				
			||||||
 * SourceMod
 | 
					 * SourceMod
 | 
				
			||||||
 * Copyright (C) 2004-2008 AlliedModders LLC.  All rights reserved.
 | 
					 * Copyright (C) 2004-2009 AlliedModders LLC.  All rights reserved.
 | 
				
			||||||
 * =============================================================================
 | 
					 * =============================================================================
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * This program is free software; you can redistribute it and/or modify it under
 | 
					 * This program is free software; you can redistribute it and/or modify it under
 | 
				
			||||||
@ -378,6 +378,14 @@ print_error:
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Logger::LogError(const char *vafmt, ...)
 | 
					void Logger::LogError(const char *vafmt, ...)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						va_list ap;
 | 
				
			||||||
 | 
						va_start(ap, vafmt);
 | 
				
			||||||
 | 
						LogErrorEx(vafmt, ap);
 | 
				
			||||||
 | 
						va_end(ap);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Logger::LogErrorEx(const char *vafmt, va_list ap)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (!m_Active)
 | 
						if (!m_Active)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
@ -408,10 +416,7 @@ void Logger::LogError(const char *vafmt, ...)
 | 
				
			|||||||
			fprintf(fp, "L %s: Info (map \"%s\") (file \"errors_%04d%02d%02d.log\")\n", date, m_CurMapName.c_str(), curtime->tm_year + 1900, curtime->tm_mon + 1, curtime->tm_mday);
 | 
								fprintf(fp, "L %s: Info (map \"%s\") (file \"errors_%04d%02d%02d.log\")\n", date, m_CurMapName.c_str(), curtime->tm_year + 1900, curtime->tm_mon + 1, curtime->tm_mday);
 | 
				
			||||||
			m_ErrMapStart = true;
 | 
								m_ErrMapStart = true;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		va_list ap;
 | 
					 | 
				
			||||||
		va_start(ap, vafmt);
 | 
					 | 
				
			||||||
		LogToOpenFileEx(fp, vafmt, ap);
 | 
							LogToOpenFileEx(fp, vafmt, ap);
 | 
				
			||||||
		va_end(ap);
 | 
					 | 
				
			||||||
		fclose(fp);
 | 
							fclose(fp);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
 | 
				
			|||||||
@ -75,6 +75,7 @@ public:
 | 
				
			|||||||
	void DisableLogging();
 | 
						void DisableLogging();
 | 
				
			||||||
	void LogMessage(const char *msg, ...);
 | 
						void LogMessage(const char *msg, ...);
 | 
				
			||||||
	void LogError(const char *msg, ...);
 | 
						void LogError(const char *msg, ...);
 | 
				
			||||||
 | 
						void LogErrorEx(const char *msg, va_list ap); 
 | 
				
			||||||
	void LogFatal(const char *msg, ...);
 | 
						void LogFatal(const char *msg, ...);
 | 
				
			||||||
	void LogToOpenFile(FILE *fp, const char *msg, ...);
 | 
						void LogToOpenFile(FILE *fp, const char *msg, ...);
 | 
				
			||||||
	void LogToOpenFileEx(FILE *fp, const char *msg, va_list ap);
 | 
						void LogToOpenFileEx(FILE *fp, const char *msg, va_list ap);
 | 
				
			||||||
 | 
				
			|||||||
@ -14,19 +14,19 @@ MMSOURCE17 = ../../mmsource-1.7
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
OBJECTS = AdminCache.cpp CDataPack.cpp ConCmdManager.cpp ConVarManager.cpp CoreConfig.cpp \
 | 
					OBJECTS = AdminCache.cpp CDataPack.cpp ConCmdManager.cpp ConVarManager.cpp CoreConfig.cpp \
 | 
				
			||||||
	Database.cpp DebugReporter.cpp EventManager.cpp GameConfigs.cpp HalfLife2.cpp Logger.cpp \
 | 
						Database.cpp DebugReporter.cpp EventManager.cpp GameConfigs.cpp HalfLife2.cpp Logger.cpp \
 | 
				
			||||||
	MemoryUtils.cpp PlayerManager.cpp TextParsers.cpp TimerSys.cpp Translator.cpp UserMessages.cpp \
 | 
						MemoryUtils.cpp PlayerManager.cpp TimerSys.cpp Translator.cpp UserMessages.cpp \
 | 
				
			||||||
	sm_autonatives.cpp sm_memtable.cpp sm_srvcmds.cpp sm_stringutil.cpp sm_trie.cpp \
 | 
						sm_autonatives.cpp sm_memtable.cpp sm_srvcmds.cpp sm_stringutil.cpp sm_trie.cpp \
 | 
				
			||||||
	sourcemm_api.cpp sourcemod.cpp MenuStyle_Base.cpp MenuStyle_Valve.cpp MenuManager.cpp \
 | 
						sourcemm_api.cpp sourcemod.cpp MenuStyle_Base.cpp MenuStyle_Valve.cpp MenuManager.cpp \
 | 
				
			||||||
	MenuStyle_Radio.cpp ChatTriggers.cpp ADTFactory.cpp MenuVoting.cpp sm_crc32.cpp \
 | 
						MenuStyle_Radio.cpp ChatTriggers.cpp ADTFactory.cpp MenuVoting.cpp sm_crc32.cpp \
 | 
				
			||||||
	frame_hooks.cpp concmd_cleaner.cpp Profiler.cpp PhraseCollection.cpp NextMap.cpp \
 | 
						frame_hooks.cpp concmd_cleaner.cpp Profiler.cpp PhraseCollection.cpp NextMap.cpp \
 | 
				
			||||||
	NativeOwner.cpp
 | 
						NativeOwner.cpp logic_bridge.cpp
 | 
				
			||||||
OBJECTS += smn_admin.cpp smn_bitbuffer.cpp smn_console.cpp smn_core.cpp \
 | 
					OBJECTS += smn_admin.cpp smn_bitbuffer.cpp smn_console.cpp smn_core.cpp \
 | 
				
			||||||
	smn_datapacks.cpp smn_entities.cpp smn_events.cpp smn_fakenatives.cpp \
 | 
						smn_datapacks.cpp smn_entities.cpp smn_events.cpp smn_fakenatives.cpp \
 | 
				
			||||||
	smn_filesystem.cpp smn_float.cpp smn_functions.cpp smn_gameconfigs.cpp smn_halflife.cpp \
 | 
						smn_filesystem.cpp smn_functions.cpp smn_gameconfigs.cpp smn_halflife.cpp \
 | 
				
			||||||
	smn_handles.cpp smn_keyvalues.cpp smn_banning.cpp smn_maplists.cpp \
 | 
						smn_handles.cpp smn_keyvalues.cpp smn_banning.cpp \
 | 
				
			||||||
	smn_lang.cpp smn_player.cpp smn_string.cpp smn_sorting.cpp smn_textparse.cpp smn_timers.cpp \
 | 
						smn_lang.cpp smn_player.cpp smn_string.cpp smn_timers.cpp \
 | 
				
			||||||
	smn_usermsgs.cpp smn_menus.cpp smn_database.cpp smn_vector.cpp smn_adt_array.cpp \
 | 
						smn_usermsgs.cpp smn_menus.cpp smn_database.cpp smn_vector.cpp \
 | 
				
			||||||
	smn_adt_trie.cpp smn_hudtext.cpp smn_adt_stack.cpp smn_nextmap.cpp
 | 
						smn_adt_trie.cpp smn_hudtext.cpp smn_nextmap.cpp
 | 
				
			||||||
OBJECTS += ExtensionSys.cpp 		\
 | 
					OBJECTS += ExtensionSys.cpp 		\
 | 
				
			||||||
		   ForwardSys.cpp 			\
 | 
							   ForwardSys.cpp 			\
 | 
				
			||||||
		   HandleSys.cpp 			\
 | 
							   HandleSys.cpp 			\
 | 
				
			||||||
@ -35,7 +35,6 @@ OBJECTS += ExtensionSys.cpp 		\
 | 
				
			|||||||
		   PluginSys.cpp 			\
 | 
							   PluginSys.cpp 			\
 | 
				
			||||||
		   ShareSys.cpp				\
 | 
							   ShareSys.cpp				\
 | 
				
			||||||
		   NativeInvoker.cpp
 | 
							   NativeInvoker.cpp
 | 
				
			||||||
OBJECTS += thread/ThreadWorker.cpp thread/BaseWorker.cpp thread/PosixThreads.cpp ThreadSupport.cpp
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
##############################################
 | 
					##############################################
 | 
				
			||||||
### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | 
					### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | 
				
			||||||
@ -85,7 +84,7 @@ endif
 | 
				
			|||||||
CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_LEFT4DEAD=4
 | 
					CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_LEFT4DEAD=4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LINK += $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a vstdlib_i486.so \
 | 
					LINK += $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a vstdlib_i486.so \
 | 
				
			||||||
	tier0_i486.so -lpthread -static-libgcc
 | 
						tier0_i486.so -static-libgcc
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
INCLUDE += -I. -I.. -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/mathlib -I$(HL2PUB)/vstdlib \
 | 
					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 \
 | 
						-I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 -I$(METAMOD) -I$(METAMOD)/sourcehook \
 | 
				
			||||||
@ -124,8 +123,6 @@ $(BIN_DIR)/%.o: %.c
 | 
				
			|||||||
	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | 
						$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
all: check
 | 
					all: check
 | 
				
			||||||
	mkdir -p $(BIN_DIR)/systems
 | 
					 | 
				
			||||||
	mkdir -p $(BIN_DIR)/thread
 | 
					 | 
				
			||||||
	ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so;
 | 
						ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so;
 | 
				
			||||||
	ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so;
 | 
						ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so;
 | 
				
			||||||
	$(MAKE) -f Makefile sourcemod
 | 
						$(MAKE) -f Makefile sourcemod
 | 
				
			||||||
@ -146,6 +143,5 @@ default: all
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
clean: check
 | 
					clean: check
 | 
				
			||||||
	rm -rf $(BIN_DIR)/*.o
 | 
						rm -rf $(BIN_DIR)/*.o
 | 
				
			||||||
	rm -rf $(BIN_DIR)/systems/*.o
 | 
					 | 
				
			||||||
	rm -rf $(BIN_DIR)/thread/*.o
 | 
						rm -rf $(BIN_DIR)/thread/*.o
 | 
				
			||||||
	rm -rf $(BIN_DIR)/$(BINARY)
 | 
						rm -rf $(BIN_DIR)/$(BINARY)
 | 
				
			||||||
 | 
				
			|||||||
@ -37,7 +37,6 @@
 | 
				
			|||||||
#include "ForwardSys.h"
 | 
					#include "ForwardSys.h"
 | 
				
			||||||
#include "sourcemm_api.h"
 | 
					#include "sourcemm_api.h"
 | 
				
			||||||
#include "sourcemod.h"
 | 
					#include "sourcemod.h"
 | 
				
			||||||
#include "TextParsers.h"
 | 
					 | 
				
			||||||
#include "Logger.h"
 | 
					#include "Logger.h"
 | 
				
			||||||
#include "ExtensionSys.h"
 | 
					#include "ExtensionSys.h"
 | 
				
			||||||
#include "sm_srvcmds.h"
 | 
					#include "sm_srvcmds.h"
 | 
				
			||||||
 | 
				
			|||||||
@ -37,7 +37,7 @@
 | 
				
			|||||||
#include "PlayerManager.h"
 | 
					#include "PlayerManager.h"
 | 
				
			||||||
#include "CoreConfig.h"
 | 
					#include "CoreConfig.h"
 | 
				
			||||||
#include <sm_queue.h>
 | 
					#include <sm_queue.h>
 | 
				
			||||||
#include "ThreadSupport.h"
 | 
					#include <IThreader.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static IMutex *frame_mutex;
 | 
					static IMutex *frame_mutex;
 | 
				
			||||||
static Queue<FrameAction> *frame_queue;
 | 
					static Queue<FrameAction> *frame_queue;
 | 
				
			||||||
 | 
				
			|||||||
@ -29,6 +29,9 @@
 | 
				
			|||||||
 * Version: $Id$
 | 
					 * Version: $Id$
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _INCLUDE_SOURCEMOD_CELLARRAY_H_
 | 
				
			||||||
 | 
					#define _INCLUDE_SOURCEMOD_CELLARRAY_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -204,3 +207,6 @@ private:
 | 
				
			|||||||
	size_t m_AllocSize;
 | 
						size_t m_AllocSize;
 | 
				
			||||||
	size_t m_Size;
 | 
						size_t m_Size;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _INCLUDE_SOURCEMOD_CELLARRAY_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										89
									
								
								core/logic/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								core/logic/Makefile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,89 @@
 | 
				
			|||||||
 | 
					# (C)2004-2008 SourceMod Development Team
 | 
				
			||||||
 | 
					# Makefile written by David "BAILOPAN" Anderson
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SMSDK = ../..
 | 
				
			||||||
 | 
					MMSOURCE17 = ../../../mmsource-1.7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#####################################
 | 
				
			||||||
 | 
					### EDIT BELOW FOR OTHER PROJECTS ###
 | 
				
			||||||
 | 
					#####################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BINARY = sourcemod.logic.so
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OBJECTS = \
 | 
				
			||||||
 | 
						common_logic.cpp	\
 | 
				
			||||||
 | 
						smn_adt_array.cpp	\
 | 
				
			||||||
 | 
						smn_sorting.cpp		\
 | 
				
			||||||
 | 
						smn_maplists.cpp	\
 | 
				
			||||||
 | 
						smn_adt_stack.cpp	\
 | 
				
			||||||
 | 
						thread/ThreadWorker.cpp \
 | 
				
			||||||
 | 
						thread/BaseWorker.cpp 	\
 | 
				
			||||||
 | 
						thread/PosixThreads.cpp \
 | 
				
			||||||
 | 
						ThreadSupport.cpp	\
 | 
				
			||||||
 | 
						smn_float.cpp		\
 | 
				
			||||||
 | 
						TextParsers.cpp		\
 | 
				
			||||||
 | 
						smn_textparse.cpp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##############################################
 | 
				
			||||||
 | 
					### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | 
				
			||||||
 | 
					##############################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -pipe -fno-strict-aliasing
 | 
				
			||||||
 | 
					C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | 
				
			||||||
 | 
					C_GCC4_FLAGS = -fvisibility=hidden
 | 
				
			||||||
 | 
					CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | 
				
			||||||
 | 
					CPP = gcc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LINK += -lpthread -static-libgcc
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					INCLUDE += -I. -I$(MMSOURCE17)/core/sourcehook -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS += -D_LINUX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \
 | 
				
			||||||
 | 
						-D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Werror \
 | 
				
			||||||
 | 
						-Wno-uninitialized -mfpmath=sse -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -DSM_DEFAULT_THREADER -m32 \
 | 
				
			||||||
 | 
						-DSM_LOGIC
 | 
				
			||||||
 | 
					CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					################################################
 | 
				
			||||||
 | 
					### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | 
				
			||||||
 | 
					################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ifeq "$(DEBUG)" "true"
 | 
				
			||||||
 | 
						BIN_DIR = Debug
 | 
				
			||||||
 | 
						CFLAGS += $(C_DEBUG_FLAGS)
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						BIN_DIR = Release
 | 
				
			||||||
 | 
						CFLAGS += $(C_OPT_FLAGS)
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | 
				
			||||||
 | 
					ifeq "$(GCC_VERSION)" "4"
 | 
				
			||||||
 | 
						CFLAGS += $(C_GCC4_FLAGS)
 | 
				
			||||||
 | 
						CPPFLAGS += $(CPP_GCC4_FLAGS)
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | 
				
			||||||
 | 
					OBJ_LINUX := $(OBJ_LINUX:%.c=$(BIN_DIR)/%.o)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(BIN_DIR)/%.o: %.cpp
 | 
				
			||||||
 | 
						$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(BIN_DIR)/%.o: %.c
 | 
				
			||||||
 | 
						$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: 
 | 
				
			||||||
 | 
						mkdir -p $(BIN_DIR)/thread
 | 
				
			||||||
 | 
						$(MAKE) -f Makefile sourcemod
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sourcemod: $(OBJ_LINUX)
 | 
				
			||||||
 | 
						$(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -m32 -shared -ldl -lm -o $(BIN_DIR)/$(BINARY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					debug:
 | 
				
			||||||
 | 
						$(MAKE) -f Makefile all DEBUG=true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					default: all
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clean: 
 | 
				
			||||||
 | 
						rm -rf $(BIN_DIR)/*.o
 | 
				
			||||||
 | 
						rm -rf $(BIN_DIR)/thread/*.o
 | 
				
			||||||
 | 
						rm -rf $(BIN_DIR)/$(BINARY)
 | 
				
			||||||
@ -36,9 +36,7 @@
 | 
				
			|||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <assert.h>
 | 
					#include <assert.h>
 | 
				
			||||||
#include "TextParsers.h"
 | 
					#include "TextParsers.h"
 | 
				
			||||||
#include "ShareSys.h"
 | 
					#include <ILibrarySys.h>
 | 
				
			||||||
#include "sm_stringutil.h"
 | 
					 | 
				
			||||||
#include "LibrarySys.h"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
TextParsers g_TextParser;
 | 
					TextParsers g_TextParser;
 | 
				
			||||||
ITextParsers *textparsers = &g_TextParser;
 | 
					ITextParsers *textparsers = &g_TextParser;
 | 
				
			||||||
@ -71,7 +69,7 @@ TextParsers::TextParsers()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void TextParsers::OnSourceModAllInitialized()
 | 
					void TextParsers::OnSourceModAllInitialized()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	g_ShareSys.AddInterface(NULL, this);
 | 
						sharesys->AddInterface(NULL, this);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
unsigned int TextParsers::GetUTF8CharBytes(const char *stream)
 | 
					unsigned int TextParsers::GetUTF8CharBytes(const char *stream)
 | 
				
			||||||
@ -135,8 +133,8 @@ SMCError TextParsers::ParseSMCFile(const char *file,
 | 
				
			|||||||
			states->line = 0;
 | 
								states->line = 0;
 | 
				
			||||||
			states->col = 0;
 | 
								states->col = 0;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		g_LibSys.GetPlatformError(error, sizeof(error));
 | 
							libsys->GetPlatformError(error, sizeof(error));
 | 
				
			||||||
		UTIL_Format(buffer, maxsize, "File could not be opened: %s", error);
 | 
							smcore.Format(buffer, maxsize, "File could not be opened: %s", error);
 | 
				
			||||||
		return SMCError_StreamOpen;
 | 
							return SMCError_StreamOpen;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -145,7 +143,7 @@ SMCError TextParsers::ParseSMCFile(const char *file,
 | 
				
			|||||||
	fclose(fp);
 | 
						fclose(fp);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	errstr = GetSMCErrorString(result);
 | 
						errstr = GetSMCErrorString(result);
 | 
				
			||||||
	UTIL_Format(buffer, maxsize, "%s", errstr != NULL ? errstr : "Unknown error");
 | 
						smcore.Format(buffer, maxsize, "%s", errstr != NULL ? errstr : "Unknown error");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return result;
 | 
						return result;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -196,7 +194,7 @@ SMCError TextParsers::ParseSMCStream(const char *stream,
 | 
				
			|||||||
	result = ParseStream_SMC(&rs, RawStreamReader, smc_listener, states);
 | 
						result = ParseStream_SMC(&rs, RawStreamReader, smc_listener, states);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	const char *errstr = GetSMCErrorString(result);
 | 
						const char *errstr = GetSMCErrorString(result);
 | 
				
			||||||
	UTIL_Format(buffer, maxsize, "%s", errstr != NULL ? errstr : "Unknown error");
 | 
						smcore.Format(buffer, maxsize, "%s", errstr != NULL ? errstr : "Unknown error");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return result;
 | 
						return result;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -33,7 +33,7 @@
 | 
				
			|||||||
#define _INCLUDE_SOURCEMOD_TEXTPARSERS_H_
 | 
					#define _INCLUDE_SOURCEMOD_TEXTPARSERS_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <ITextParsers.h>
 | 
					#include <ITextParsers.h>
 | 
				
			||||||
#include "sm_globals.h"
 | 
					#include "common_logic.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
using namespace SourceMod;
 | 
					using namespace SourceMod;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,8 +1,8 @@
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * vim: set ts=4 :
 | 
					 * vim: set ts=4 sw=4 :
 | 
				
			||||||
 * =============================================================================
 | 
					 * =============================================================================
 | 
				
			||||||
 * SourceMod
 | 
					 * SourceMod
 | 
				
			||||||
 * Copyright (C) 2004-2008 AlliedModders LLC.  All rights reserved.
 | 
					 * Copyright (C) 2004-2009 AlliedModders LLC.  All rights reserved.
 | 
				
			||||||
 * =============================================================================
 | 
					 * =============================================================================
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * This program is free software; you can redistribute it and/or modify it under
 | 
					 * This program is free software; you can redistribute it and/or modify it under
 | 
				
			||||||
@ -28,10 +28,9 @@
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 * Version: $Id$
 | 
					 * Version: $Id$
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					#include <sm_platform.h>
 | 
				
			||||||
#include "ThreadSupport.h"
 | 
					#include "ThreadSupport.h"
 | 
				
			||||||
#include "sm_globals.h"
 | 
					#include "common_logic.h"
 | 
				
			||||||
#include "ShareSys.h"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined PLATFORM_POSIX
 | 
					#if defined PLATFORM_POSIX
 | 
				
			||||||
#include "thread/PosixThreads.h"
 | 
					#include "thread/PosixThreads.h"
 | 
				
			||||||
@ -47,6 +46,7 @@ class RegThreadStuff : public SMGlobalClass
 | 
				
			|||||||
public:
 | 
					public:
 | 
				
			||||||
	void OnSourceModAllInitialized()
 | 
						void OnSourceModAllInitialized()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		g_ShareSys.AddInterface(NULL, g_pThreader);
 | 
							sharesys->AddInterface(NULL, g_pThreader);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
} s_RegThreadStuff;
 | 
					} s_RegThreadStuff;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										116
									
								
								core/logic/common_logic.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								core/logic/common_logic.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,116 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * vim: set ts=4 sw=4 :
 | 
				
			||||||
 | 
					 * =============================================================================
 | 
				
			||||||
 | 
					 * SourceMod
 | 
				
			||||||
 | 
					 * Copyright (C) 2004-2008 AlliedModders LLC.  All rights reserved.
 | 
				
			||||||
 | 
					 * =============================================================================
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is free software; you can redistribute it and/or modify it under
 | 
				
			||||||
 | 
					 * the terms of the GNU General Public License, version 3.0, as published by the
 | 
				
			||||||
 | 
					 * Free Software Foundation.
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * This program is distributed in the hope that it will be useful, but WITHOUT
 | 
				
			||||||
 | 
					 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | 
				
			||||||
 | 
					 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | 
				
			||||||
 | 
					 * details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU General Public License along with
 | 
				
			||||||
 | 
					 * this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * As a special exception, AlliedModders LLC gives you permission to link the
 | 
				
			||||||
 | 
					 * code of this program (as well as its derivative works) to "Half-Life 2," the
 | 
				
			||||||
 | 
					 * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | 
				
			||||||
 | 
					 * by the Valve Corporation.  You must obey the GNU General Public License in
 | 
				
			||||||
 | 
					 * all respects for all other code used.  Additionally, AlliedModders LLC grants
 | 
				
			||||||
 | 
					 * this exception to all derivative works.  AlliedModders LLC defines further
 | 
				
			||||||
 | 
					 * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | 
				
			||||||
 | 
					 * or <http://www.sourcemod.net/license.php>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Version: $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#include <new>
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <sm_platform.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include "common_logic.h"
 | 
				
			||||||
 | 
					#include "ThreadSupport.h"
 | 
				
			||||||
 | 
					#include "TextParsers.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sm_core_t smcore;
 | 
				
			||||||
 | 
					IHandleSys *handlesys;
 | 
				
			||||||
 | 
					IdentityToken_t *g_pCoreIdent;
 | 
				
			||||||
 | 
					SMGlobalClass *SMGlobalClass::head = NULL;
 | 
				
			||||||
 | 
					ISourceMod *g_pSM;
 | 
				
			||||||
 | 
					ILibrarySys *libsys;
 | 
				
			||||||
 | 
					ITextParsers *textparser = &g_TextParser;
 | 
				
			||||||
 | 
					IVEngineServer *engine;
 | 
				
			||||||
 | 
					IShareSys *sharesys;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static sm_logic_t logic =
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						NULL,
 | 
				
			||||||
 | 
						g_pThreader
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void logic_init(const sm_core_t* core, sm_logic_t* _logic)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						logic.head = SMGlobalClass::head;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						memcpy(&smcore, core, sizeof(sm_core_t));
 | 
				
			||||||
 | 
						memcpy(_logic, &logic, sizeof(sm_logic_t));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						handlesys = core->handlesys;
 | 
				
			||||||
 | 
						libsys = core->libsys;
 | 
				
			||||||
 | 
						engine = core->engine;
 | 
				
			||||||
 | 
						g_pCoreIdent = core->core_ident;
 | 
				
			||||||
 | 
						g_pSM = core->sm;
 | 
				
			||||||
 | 
						sharesys = core->sharesys;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PLATFORM_EXTERN_C ITextParsers *get_textparsers()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return &g_TextParser;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PLATFORM_EXTERN_C LogicInitFunction logic_load(uint32_t magic)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if (magic != SM_LOGIC_MAGIC)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return NULL;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return logic_init;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CoreNativesToAdd::OnSourceModAllInitialized()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						smcore.AddNatives(m_NativeList);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Overload a few things to prevent libstdc++ linking */
 | 
				
			||||||
 | 
					#if defined __linux__ || defined __APPLE__
 | 
				
			||||||
 | 
					extern "C" void __cxa_pure_virtual(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void *operator new(size_t size)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return malloc(size);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void *operator new[](size_t size) 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return malloc(size);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void operator delete(void *ptr) 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						free(ptr);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void operator delete[](void * ptr)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						free(ptr);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										49
									
								
								core/logic/common_logic.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								core/logic/common_logic.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,49 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * vim: set ts=4 :
 | 
				
			||||||
 | 
					 * =============================================================================
 | 
				
			||||||
 | 
					 * SourceMod
 | 
				
			||||||
 | 
					 * Copyright (C) 2004-2009 AlliedModders LLC.  All rights reserved.
 | 
				
			||||||
 | 
					 * =============================================================================
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is free software; you can redistribute it and/or modify it under
 | 
				
			||||||
 | 
					 * the terms of the GNU General Public License, version 3.0, as published by the
 | 
				
			||||||
 | 
					 * Free Software Foundation.
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * This program is distributed in the hope that it will be useful, but WITHOUT
 | 
				
			||||||
 | 
					 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | 
				
			||||||
 | 
					 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | 
				
			||||||
 | 
					 * details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU General Public License along with
 | 
				
			||||||
 | 
					 * this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * As a special exception, AlliedModders LLC gives you permission to link the
 | 
				
			||||||
 | 
					 * code of this program (as well as its derivative works) to "Half-Life 2," the
 | 
				
			||||||
 | 
					 * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | 
				
			||||||
 | 
					 * by the Valve Corporation.  You must obey the GNU General Public License in
 | 
				
			||||||
 | 
					 * all respects for all other code used.  Additionally, AlliedModders LLC grants
 | 
				
			||||||
 | 
					 * this exception to all derivative works.  AlliedModders LLC defines further
 | 
				
			||||||
 | 
					 * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | 
				
			||||||
 | 
					 * or <http://www.sourcemod.net/license.php>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Version: $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _INCLUDE_SOURCEMOD_COMMON_LOGIC_H_
 | 
				
			||||||
 | 
					#define _INCLUDE_SOURCEMOD_COMMON_LOGIC_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <IHandleSys.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "../sm_globals.h"
 | 
				
			||||||
 | 
					#include "intercom.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern sm_core_t smcore;
 | 
				
			||||||
 | 
					extern IHandleSys *handlesys;
 | 
				
			||||||
 | 
					extern ISourceMod *g_pSM;
 | 
				
			||||||
 | 
					extern ILibrarySys *libsys;
 | 
				
			||||||
 | 
					extern ITextParsers *textparser;
 | 
				
			||||||
 | 
					extern IVEngineServer *engine;
 | 
				
			||||||
 | 
					extern IShareSys *sharesys;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _INCLUDE_SOURCEMOD_COMMON_LOGIC_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										98
									
								
								core/logic/intercom.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								core/logic/intercom.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,98 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * vim: set ts=4 :
 | 
				
			||||||
 | 
					 * =============================================================================
 | 
				
			||||||
 | 
					 * SourceMod
 | 
				
			||||||
 | 
					 * Copyright (C) 2004-2009 AlliedModders LLC.  All rights reserved.
 | 
				
			||||||
 | 
					 * =============================================================================
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is free software; you can redistribute it and/or modify it under
 | 
				
			||||||
 | 
					 * the terms of the GNU General Public License, version 3.0, as published by the
 | 
				
			||||||
 | 
					 * Free Software Foundation.
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * This program is distributed in the hope that it will be useful, but WITHOUT
 | 
				
			||||||
 | 
					 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | 
				
			||||||
 | 
					 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | 
				
			||||||
 | 
					 * details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU General Public License along with
 | 
				
			||||||
 | 
					 * this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * As a special exception, AlliedModders LLC gives you permission to link the
 | 
				
			||||||
 | 
					 * code of this program (as well as its derivative works) to "Half-Life 2," the
 | 
				
			||||||
 | 
					 * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | 
				
			||||||
 | 
					 * by the Valve Corporation.  You must obey the GNU General Public License in
 | 
				
			||||||
 | 
					 * all respects for all other code used.  Additionally, AlliedModders LLC grants
 | 
				
			||||||
 | 
					 * this exception to all derivative works.  AlliedModders LLC defines further
 | 
				
			||||||
 | 
					 * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | 
				
			||||||
 | 
					 * or <http://www.sourcemod.net/license.php>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Version: $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sp_vm_api.h>
 | 
				
			||||||
 | 
					#include <IHandleSys.h>
 | 
				
			||||||
 | 
					#include <IShareSys.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _INCLUDE_SOURCEMOD_INTERCOM_H_
 | 
				
			||||||
 | 
					#define _INCLUDE_SOURCEMOD_INTERCOM_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					using namespace SourceMod;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Add 1 to the RHS of this expression to bump the intercom file
 | 
				
			||||||
 | 
					 * This is to prevent mismatching core/logic binaries
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define SM_LOGIC_MAGIC		(0x0F47C0DE - 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined SM_LOGIC
 | 
				
			||||||
 | 
					class IVEngineServer
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					class IVEngineServer_Logic
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						virtual bool IsMapValid(const char *map) = 0;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace SourceMod
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						class ISourceMod;
 | 
				
			||||||
 | 
						class ILibrarySys;
 | 
				
			||||||
 | 
						class ITextParsers;
 | 
				
			||||||
 | 
						class IThreader;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class IVEngineServer;
 | 
				
			||||||
 | 
					class ConVar;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct sm_core_t
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						/* Objects */
 | 
				
			||||||
 | 
						IHandleSys 		*handlesys;
 | 
				
			||||||
 | 
						IdentityToken_t *core_ident;
 | 
				
			||||||
 | 
						ISourceMod		*sm;
 | 
				
			||||||
 | 
						ILibrarySys		*libsys;
 | 
				
			||||||
 | 
						IVEngineServer	*engine;
 | 
				
			||||||
 | 
						IShareSys		*sharesys;
 | 
				
			||||||
 | 
						/* Functions */
 | 
				
			||||||
 | 
						void			(*AddNatives)(sp_nativeinfo_t* nlist);
 | 
				
			||||||
 | 
						ConVar *		(*FindConVar)(const char*);
 | 
				
			||||||
 | 
						unsigned int	(*strncopy)(char*, const char*, size_t);
 | 
				
			||||||
 | 
						char *			(*TrimWhitespace)(char *, size_t &);
 | 
				
			||||||
 | 
						void			(*LogError)(const char*, ...);
 | 
				
			||||||
 | 
						const char *	(*GetCvarString)(ConVar*);
 | 
				
			||||||
 | 
						size_t			(*Format)(char*, size_t, const char*, ...);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct sm_logic_t
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						SMGlobalClass	*head;
 | 
				
			||||||
 | 
						IThreader		*threader;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef void (*LogicInitFunction)(const sm_core_t *core, sm_logic_t *logic);
 | 
				
			||||||
 | 
					typedef LogicInitFunction (*LogicLoadFunction)(uint32_t magic);
 | 
				
			||||||
 | 
					typedef ITextParsers *(*GetITextParsers)();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _INCLUDE_SOURCEMOD_INTERCOM_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										20
									
								
								core/logic/msvc9/logic.sln
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										20
									
								
								core/logic/msvc9/logic.sln
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					Microsoft Visual Studio Solution File, Format Version 10.00
 | 
				
			||||||
 | 
					# Visual Studio 2008
 | 
				
			||||||
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "logic", "logic.vcproj", "{6EF06E6E-0ED5-4E2D-A8F3-01DD1EC25BA7}"
 | 
				
			||||||
 | 
					EndProject
 | 
				
			||||||
 | 
					Global
 | 
				
			||||||
 | 
						GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
				
			||||||
 | 
							Debug|Win32 = Debug|Win32
 | 
				
			||||||
 | 
							Release|Win32 = Release|Win32
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
						GlobalSection(ProjectConfigurationPlatforms) = postSolution
 | 
				
			||||||
 | 
							{6EF06E6E-0ED5-4E2D-A8F3-01DD1EC25BA7}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
				
			||||||
 | 
							{6EF06E6E-0ED5-4E2D-A8F3-01DD1EC25BA7}.Debug|Win32.Build.0 = Debug|Win32
 | 
				
			||||||
 | 
							{6EF06E6E-0ED5-4E2D-A8F3-01DD1EC25BA7}.Release|Win32.ActiveCfg = Release|Win32
 | 
				
			||||||
 | 
							{6EF06E6E-0ED5-4E2D-A8F3-01DD1EC25BA7}.Release|Win32.Build.0 = Release|Win32
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
						GlobalSection(SolutionProperties) = preSolution
 | 
				
			||||||
 | 
							HideSolutionNode = FALSE
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
					EndGlobal
 | 
				
			||||||
							
								
								
									
										307
									
								
								core/logic/msvc9/logic.vcproj
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										307
									
								
								core/logic/msvc9/logic.vcproj
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,307 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="Windows-1252"?>
 | 
				
			||||||
 | 
					<VisualStudioProject
 | 
				
			||||||
 | 
						ProjectType="Visual C++"
 | 
				
			||||||
 | 
						Version="9.00"
 | 
				
			||||||
 | 
						Name="logic"
 | 
				
			||||||
 | 
						ProjectGUID="{6EF06E6E-0ED5-4E2D-A8F3-01DD1EC25BA7}"
 | 
				
			||||||
 | 
						RootNamespace="jitx86"
 | 
				
			||||||
 | 
						Keyword="Win32Proj"
 | 
				
			||||||
 | 
						TargetFrameworkVersion="131072"
 | 
				
			||||||
 | 
						>
 | 
				
			||||||
 | 
						<Platforms>
 | 
				
			||||||
 | 
							<Platform
 | 
				
			||||||
 | 
								Name="Win32"
 | 
				
			||||||
 | 
							/>
 | 
				
			||||||
 | 
						</Platforms>
 | 
				
			||||||
 | 
						<ToolFiles>
 | 
				
			||||||
 | 
						</ToolFiles>
 | 
				
			||||||
 | 
						<Configurations>
 | 
				
			||||||
 | 
							<Configuration
 | 
				
			||||||
 | 
								Name="Debug|Win32"
 | 
				
			||||||
 | 
								OutputDirectory="$(SolutionDir)$(ConfigurationName)"
 | 
				
			||||||
 | 
								IntermediateDirectory="$(ConfigurationName)"
 | 
				
			||||||
 | 
								ConfigurationType="2"
 | 
				
			||||||
 | 
								CharacterSet="2"
 | 
				
			||||||
 | 
								>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCPreBuildEventTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCCustomBuildTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCXMLDataGeneratorTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCWebServiceProxyGeneratorTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCMIDLTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCCLCompilerTool"
 | 
				
			||||||
 | 
									Optimization="0"
 | 
				
			||||||
 | 
									AdditionalIncludeDirectories="..;"$(MMSOURCE17)\core\sourcehook";..\..\..\public;..\..\..\public\sourcepawn"
 | 
				
			||||||
 | 
									PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;JITX86_EXPORTS;_CRT_SECURE_NO_DEPRECATE;SM_DEFAULT_THREADER"
 | 
				
			||||||
 | 
									MinimalRebuild="true"
 | 
				
			||||||
 | 
									BasicRuntimeChecks="3"
 | 
				
			||||||
 | 
									RuntimeLibrary="1"
 | 
				
			||||||
 | 
									EnableEnhancedInstructionSet="0"
 | 
				
			||||||
 | 
									RuntimeTypeInfo="false"
 | 
				
			||||||
 | 
									UsePrecompiledHeader="0"
 | 
				
			||||||
 | 
									WarningLevel="3"
 | 
				
			||||||
 | 
									Detect64BitPortabilityProblems="false"
 | 
				
			||||||
 | 
									DebugInformationFormat="4"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCManagedResourceCompilerTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCResourceCompilerTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCPreLinkEventTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCLinkerTool"
 | 
				
			||||||
 | 
									OutputFile="$(OutDir)\sourcepawn.jit.x86.dll"
 | 
				
			||||||
 | 
									LinkIncremental="2"
 | 
				
			||||||
 | 
									IgnoreDefaultLibraryNames="LIBC;LIBCD;LIBCMT"
 | 
				
			||||||
 | 
									GenerateDebugInformation="true"
 | 
				
			||||||
 | 
									SubSystem="2"
 | 
				
			||||||
 | 
									RandomizedBaseAddress="1"
 | 
				
			||||||
 | 
									DataExecutionPrevention="0"
 | 
				
			||||||
 | 
									TargetMachine="1"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCALinkTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCManifestTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCXDCMakeTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCBscMakeTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCFxCopTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCAppVerifierTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCPostBuildEventTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
							</Configuration>
 | 
				
			||||||
 | 
							<Configuration
 | 
				
			||||||
 | 
								Name="Release|Win32"
 | 
				
			||||||
 | 
								OutputDirectory="$(SolutionDir)$(ConfigurationName)"
 | 
				
			||||||
 | 
								IntermediateDirectory="$(ConfigurationName)"
 | 
				
			||||||
 | 
								ConfigurationType="2"
 | 
				
			||||||
 | 
								CharacterSet="2"
 | 
				
			||||||
 | 
								WholeProgramOptimization="1"
 | 
				
			||||||
 | 
								>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCPreBuildEventTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCCustomBuildTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCXMLDataGeneratorTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCWebServiceProxyGeneratorTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCMIDLTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCCLCompilerTool"
 | 
				
			||||||
 | 
									FavorSizeOrSpeed="1"
 | 
				
			||||||
 | 
									AdditionalIncludeDirectories="..;"$(MMSOURCE17)\core\sourcehook";..\..\..\public;..\..\..\public\sourcepawn"
 | 
				
			||||||
 | 
									PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;JITX86_EXPORTS;_CRT_SECURE_NO_DEPRECATE;SM_LOGIC;SM_DEFAULT_THREADER"
 | 
				
			||||||
 | 
									RuntimeLibrary="0"
 | 
				
			||||||
 | 
									EnableEnhancedInstructionSet="0"
 | 
				
			||||||
 | 
									RuntimeTypeInfo="false"
 | 
				
			||||||
 | 
									UsePrecompiledHeader="0"
 | 
				
			||||||
 | 
									WarningLevel="3"
 | 
				
			||||||
 | 
									Detect64BitPortabilityProblems="false"
 | 
				
			||||||
 | 
									DebugInformationFormat="3"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCManagedResourceCompilerTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCResourceCompilerTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCPreLinkEventTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCLinkerTool"
 | 
				
			||||||
 | 
									OutputFile="$(OutDir)\sourcemod.logic.dll"
 | 
				
			||||||
 | 
									LinkIncremental="1"
 | 
				
			||||||
 | 
									IgnoreDefaultLibraryNames="LIBC;LIBCD;LIBCMTD"
 | 
				
			||||||
 | 
									GenerateDebugInformation="true"
 | 
				
			||||||
 | 
									SubSystem="2"
 | 
				
			||||||
 | 
									OptimizeReferences="2"
 | 
				
			||||||
 | 
									EnableCOMDATFolding="2"
 | 
				
			||||||
 | 
									RandomizedBaseAddress="1"
 | 
				
			||||||
 | 
									DataExecutionPrevention="0"
 | 
				
			||||||
 | 
									TargetMachine="1"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCALinkTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCManifestTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCXDCMakeTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCBscMakeTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCFxCopTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCAppVerifierTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								<Tool
 | 
				
			||||||
 | 
									Name="VCPostBuildEventTool"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
							</Configuration>
 | 
				
			||||||
 | 
						</Configurations>
 | 
				
			||||||
 | 
						<References>
 | 
				
			||||||
 | 
						</References>
 | 
				
			||||||
 | 
						<Files>
 | 
				
			||||||
 | 
							<Filter
 | 
				
			||||||
 | 
								Name="Source Files"
 | 
				
			||||||
 | 
								Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
 | 
				
			||||||
 | 
								UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
 | 
				
			||||||
 | 
								>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\common_logic.cpp"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\smn_adt_array.cpp"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\smn_adt_stack.cpp"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\smn_float.cpp"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\smn_maplists.cpp"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\smn_sorting.cpp"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\smn_textparse.cpp"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\TextParsers.cpp"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\ThreadSupport.cpp"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
 | 
							</Filter>
 | 
				
			||||||
 | 
							<Filter
 | 
				
			||||||
 | 
								Name="Header Files"
 | 
				
			||||||
 | 
								Filter="h;hpp;hxx;hm;inl;inc;xsd"
 | 
				
			||||||
 | 
								UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 | 
				
			||||||
 | 
								>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\CellArray.h"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\common_logic.h"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\intercom.h"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\svn_version.h"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\TextParsers.h"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\ThreadSupport.h"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
 | 
							</Filter>
 | 
				
			||||||
 | 
							<Filter
 | 
				
			||||||
 | 
								Name="Resource Files"
 | 
				
			||||||
 | 
								Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
 | 
				
			||||||
 | 
								UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
 | 
				
			||||||
 | 
								>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\svn_version.tpl"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\version.rc"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
 | 
							</Filter>
 | 
				
			||||||
 | 
							<Filter
 | 
				
			||||||
 | 
								Name="Threads"
 | 
				
			||||||
 | 
								>
 | 
				
			||||||
 | 
								<Filter
 | 
				
			||||||
 | 
									Name="Header Files"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
									<File
 | 
				
			||||||
 | 
										RelativePath="..\thread\BaseWorker.h"
 | 
				
			||||||
 | 
										>
 | 
				
			||||||
 | 
									</File>
 | 
				
			||||||
 | 
									<File
 | 
				
			||||||
 | 
										RelativePath="..\thread\ThreadWorker.h"
 | 
				
			||||||
 | 
										>
 | 
				
			||||||
 | 
									</File>
 | 
				
			||||||
 | 
									<File
 | 
				
			||||||
 | 
										RelativePath="..\thread\WinThreads.h"
 | 
				
			||||||
 | 
										>
 | 
				
			||||||
 | 
									</File>
 | 
				
			||||||
 | 
								</Filter>
 | 
				
			||||||
 | 
								<Filter
 | 
				
			||||||
 | 
									Name="Source Files"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
									<File
 | 
				
			||||||
 | 
										RelativePath="..\thread\BaseWorker.cpp"
 | 
				
			||||||
 | 
										>
 | 
				
			||||||
 | 
									</File>
 | 
				
			||||||
 | 
									<File
 | 
				
			||||||
 | 
										RelativePath="..\thread\ThreadWorker.cpp"
 | 
				
			||||||
 | 
										>
 | 
				
			||||||
 | 
									</File>
 | 
				
			||||||
 | 
									<File
 | 
				
			||||||
 | 
										RelativePath="..\thread\WinThreads.cpp"
 | 
				
			||||||
 | 
										>
 | 
				
			||||||
 | 
									</File>
 | 
				
			||||||
 | 
								</Filter>
 | 
				
			||||||
 | 
							</Filter>
 | 
				
			||||||
 | 
						</Files>
 | 
				
			||||||
 | 
						<Globals>
 | 
				
			||||||
 | 
						</Globals>
 | 
				
			||||||
 | 
					</VisualStudioProject>
 | 
				
			||||||
@ -30,10 +30,8 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include "sm_globals.h"
 | 
					#include "common_logic.h"
 | 
				
			||||||
#include "sm_stringutil.h"
 | 
					 | 
				
			||||||
#include "CellArray.h"
 | 
					#include "CellArray.h"
 | 
				
			||||||
#include "HandleSys.h"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
HandleType_t htCellArray;
 | 
					HandleType_t htCellArray;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -44,11 +42,11 @@ class CellArrayHelpers :
 | 
				
			|||||||
public: //SMGlobalClass
 | 
					public: //SMGlobalClass
 | 
				
			||||||
	void OnSourceModAllInitialized()
 | 
						void OnSourceModAllInitialized()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		htCellArray = g_HandleSys.CreateType("CellArray", this, 0, NULL, NULL, g_pCoreIdent, NULL);
 | 
							htCellArray = handlesys->CreateType("CellArray", this, 0, NULL, NULL, g_pCoreIdent, NULL);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	void OnSourceModShutdown()
 | 
						void OnSourceModShutdown()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		g_HandleSys.RemoveType(htCellArray, g_pCoreIdent);
 | 
							handlesys->RemoveType(htCellArray, g_pCoreIdent);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
public: //IHandleTypeDispatch
 | 
					public: //IHandleTypeDispatch
 | 
				
			||||||
	void OnHandleDestroy(HandleType_t type, void *object)
 | 
						void OnHandleDestroy(HandleType_t type, void *object)
 | 
				
			||||||
@ -78,7 +76,7 @@ static cell_t CreateArray(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
		array->resize(params[2]);
 | 
							array->resize(params[2]);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	Handle_t hndl = g_HandleSys.CreateHandle(htCellArray, array, pContext->GetIdentity(), g_pCoreIdent, NULL);
 | 
						Handle_t hndl = handlesys->CreateHandle(htCellArray, array, pContext->GetIdentity(), g_pCoreIdent, NULL);
 | 
				
			||||||
	if (!hndl)
 | 
						if (!hndl)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		delete array;
 | 
							delete array;
 | 
				
			||||||
@ -93,7 +91,7 @@ static cell_t ClearArray(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -110,7 +108,7 @@ static cell_t ResizeArray(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -130,7 +128,7 @@ static cell_t GetArraySize(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -145,7 +143,7 @@ static cell_t PushArrayCell(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -168,7 +166,7 @@ static cell_t PushArrayString(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -183,7 +181,7 @@ static cell_t PushArrayString(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	char *str;
 | 
						char *str;
 | 
				
			||||||
	pContext->LocalToString(params[2], &str);
 | 
						pContext->LocalToString(params[2], &str);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	strncopy((char *)blk, str, array->blocksize() * sizeof(cell_t));
 | 
						smcore.strncopy((char *)blk, str, array->blocksize() * sizeof(cell_t));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return (cell_t)(array->size() - 1);
 | 
						return (cell_t)(array->size() - 1);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -194,7 +192,7 @@ static cell_t PushArrayArray(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -226,7 +224,7 @@ static cell_t GetArrayCell(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -265,7 +263,7 @@ static cell_t GetArrayString(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -291,7 +289,7 @@ static cell_t GetArrayArray(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -324,7 +322,7 @@ static cell_t SetArrayCell(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -363,7 +361,7 @@ static cell_t SetArrayString(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -380,7 +378,7 @@ static cell_t SetArrayString(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	char *str;
 | 
						char *str;
 | 
				
			||||||
	pContext->LocalToString(params[3], &str);
 | 
						pContext->LocalToString(params[3], &str);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return strncopy((char *)blk, str, array->blocksize() * sizeof(cell_t));
 | 
						return smcore.strncopy((char *)blk, str, array->blocksize() * sizeof(cell_t));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static cell_t SetArrayArray(IPluginContext *pContext, const cell_t *params)
 | 
					static cell_t SetArrayArray(IPluginContext *pContext, const cell_t *params)
 | 
				
			||||||
@ -389,7 +387,7 @@ static cell_t SetArrayArray(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -422,7 +420,7 @@ static cell_t ShiftArrayUp(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -445,7 +443,7 @@ static cell_t RemoveFromArray(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -468,7 +466,7 @@ static cell_t SwapArrayItems(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -496,7 +494,7 @@ static cell_t CloneArray(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&oldArray)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&oldArray)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -504,7 +502,7 @@ static cell_t CloneArray(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	CellArray *array = oldArray->clone();
 | 
						CellArray *array = oldArray->clone();
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	Handle_t hndl = g_HandleSys.CreateHandle(htCellArray, array, pContext->GetIdentity(), g_pCoreIdent, NULL);
 | 
						Handle_t hndl = handlesys->CreateHandle(htCellArray, array, pContext->GetIdentity(), g_pCoreIdent, NULL);
 | 
				
			||||||
	if (!hndl)
 | 
						if (!hndl)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		delete array;
 | 
							delete array;
 | 
				
			||||||
@ -519,7 +517,7 @@ static cell_t FindStringInArray(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -546,7 +544,7 @@ static cell_t FindValueInArray(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -30,10 +30,8 @@
 | 
				
			|||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include "sm_globals.h"
 | 
					#include "common_logic.h"
 | 
				
			||||||
#include "sm_stringutil.h"
 | 
					 | 
				
			||||||
#include "CellArray.h"
 | 
					#include "CellArray.h"
 | 
				
			||||||
#include "HandleSys.h"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
HandleType_t htCellStack;
 | 
					HandleType_t htCellStack;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -44,11 +42,11 @@ class CellStackHelpers :
 | 
				
			|||||||
public: //SMGlobalClass
 | 
					public: //SMGlobalClass
 | 
				
			||||||
	void OnSourceModAllInitialized()
 | 
						void OnSourceModAllInitialized()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		htCellStack = g_HandleSys.CreateType("CellStack", this, 0, NULL, NULL, g_pCoreIdent, NULL);
 | 
							htCellStack = handlesys->CreateType("CellStack", this, 0, NULL, NULL, g_pCoreIdent, NULL);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	void OnSourceModShutdown()
 | 
						void OnSourceModShutdown()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		g_HandleSys.RemoveType(htCellStack, g_pCoreIdent);
 | 
							handlesys->RemoveType(htCellStack, g_pCoreIdent);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
public: //IHandleTypeDispatch
 | 
					public: //IHandleTypeDispatch
 | 
				
			||||||
	void OnHandleDestroy(HandleType_t type, void *object)
 | 
						void OnHandleDestroy(HandleType_t type, void *object)
 | 
				
			||||||
@ -73,7 +71,7 @@ static cell_t CreateStack(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	CellArray *array = new CellArray(params[1]);
 | 
						CellArray *array = new CellArray(params[1]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Handle_t hndl = g_HandleSys.CreateHandle(htCellStack, array, pContext->GetIdentity(), g_pCoreIdent, NULL);
 | 
						Handle_t hndl = handlesys->CreateHandle(htCellStack, array, pContext->GetIdentity(), g_pCoreIdent, NULL);
 | 
				
			||||||
	if (!hndl)
 | 
						if (!hndl)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		delete array;
 | 
							delete array;
 | 
				
			||||||
@ -88,7 +86,7 @@ static cell_t PushStackCell(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellStack, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellStack, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -111,7 +109,7 @@ static cell_t PushStackString(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellStack, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellStack, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -126,7 +124,7 @@ static cell_t PushStackString(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	char *str;
 | 
						char *str;
 | 
				
			||||||
	pContext->LocalToString(params[2], &str);
 | 
						pContext->LocalToString(params[2], &str);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	strncopy((char *)blk, str, array->blocksize() * sizeof(cell_t));
 | 
						smcore.strncopy((char *)blk, str, array->blocksize() * sizeof(cell_t));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return 1;
 | 
						return 1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -137,7 +135,7 @@ static cell_t PushStackArray(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellStack, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellStack, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -171,7 +169,7 @@ static cell_t PopStackCell(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	cell_t *blk, *buffer;
 | 
						cell_t *blk, *buffer;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellStack, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellStack, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -217,7 +215,7 @@ static cell_t PopStackString(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	cell_t *blk, *pWritten;
 | 
						cell_t *blk, *pWritten;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellStack, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellStack, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -248,7 +246,7 @@ static cell_t PopStackArray(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	CellArray *array;
 | 
						CellArray *array;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellStack, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellStack, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -281,7 +279,7 @@ static cell_t IsStackEmpty(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	CellArray *array;
 | 
						CellArray *array;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellStack, &sec, (void **)&array)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellStack, &sec, (void **)&array)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -32,7 +32,7 @@
 | 
				
			|||||||
#include <math.h>
 | 
					#include <math.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include "sm_globals.h"
 | 
					#include "common_logic.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/****************************************
 | 
					/****************************************
 | 
				
			||||||
*                                       *
 | 
					*                                       *
 | 
				
			||||||
@ -30,17 +30,12 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <sh_list.h>
 | 
					#include <sh_list.h>
 | 
				
			||||||
#include "sm_globals.h"
 | 
					#include <sm_trie_tpl.h>
 | 
				
			||||||
#include "sm_trie_tpl.h"
 | 
					#include "common_logic.h"
 | 
				
			||||||
#include "CellArray.h"
 | 
					#include "CellArray.h"
 | 
				
			||||||
#include "convar.h"
 | 
					#include <ILibrarySys.h>
 | 
				
			||||||
#include "sourcemm_api.h"
 | 
					#include <ITextParsers.h>
 | 
				
			||||||
#include "LibrarySys.h"
 | 
					#include <ISourceMod.h>
 | 
				
			||||||
#include "TextParsers.h"
 | 
					 | 
				
			||||||
#include "sm_stringutil.h"
 | 
					 | 
				
			||||||
#include "sourcemod.h"
 | 
					 | 
				
			||||||
#include "Logger.h"
 | 
					 | 
				
			||||||
#include "HandleSys.h"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
using namespace SourceHook;
 | 
					using namespace SourceHook;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -77,7 +72,7 @@ public:
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	void OnSourceModAllInitialized()
 | 
						void OnSourceModAllInitialized()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		g_SourceMod.BuildPath(Path_SM, m_ConfigFile, sizeof(m_ConfigFile), "configs/maplists.cfg");
 | 
							g_pSM->BuildPath(Path_SM, m_ConfigFile, sizeof(m_ConfigFile), "configs/maplists.cfg");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	void OnSourceModShutdown()
 | 
						void OnSourceModShutdown()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
@ -94,13 +89,9 @@ public:
 | 
				
			|||||||
			pMapList->bIsCompat = true;
 | 
								pMapList->bIsCompat = true;
 | 
				
			||||||
			pMapList->bIsPath = true;
 | 
								pMapList->bIsPath = true;
 | 
				
			||||||
			pMapList->last_modified_time = 0;
 | 
								pMapList->last_modified_time = 0;
 | 
				
			||||||
			strncopy(pMapList->name, name, sizeof(pMapList->name));
 | 
								smcore.strncopy(pMapList->name, name, sizeof(pMapList->name));
 | 
				
			||||||
			pMapList->pArray = NULL;
 | 
								pMapList->pArray = NULL;
 | 
				
			||||||
			g_SourceMod.BuildPath(Path_Game, 
 | 
								g_pSM->BuildPath(Path_Game, pMapList->path, sizeof(pMapList->path), "%s", file);
 | 
				
			||||||
				pMapList->path,
 | 
					 | 
				
			||||||
				sizeof(pMapList->path),
 | 
					 | 
				
			||||||
				"%s",
 | 
					 | 
				
			||||||
				file);
 | 
					 | 
				
			||||||
			pMapList->serial = 0;
 | 
								pMapList->serial = 0;
 | 
				
			||||||
			m_ListLookup.insert(name, pMapList);
 | 
								m_ListLookup.insert(name, pMapList);
 | 
				
			||||||
			m_MapLists.push_back(pMapList);
 | 
								m_MapLists.push_back(pMapList);
 | 
				
			||||||
@ -115,11 +106,7 @@ public:
 | 
				
			|||||||
			return;
 | 
								return;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		g_SourceMod.BuildPath(Path_Game,
 | 
							g_pSM->BuildPath(Path_Game, path, sizeof(path), "%s", file);
 | 
				
			||||||
			path,
 | 
					 | 
				
			||||||
			sizeof(path),
 | 
					 | 
				
			||||||
			"%s",
 | 
					 | 
				
			||||||
			file);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* If the path matches, don't reset the serial/time */
 | 
							/* If the path matches, don't reset the serial/time */
 | 
				
			||||||
		if (strcmp(path, pMapList->path) == 0)
 | 
							if (strcmp(path, pMapList->path) == 0)
 | 
				
			||||||
@ -127,7 +114,7 @@ public:
 | 
				
			|||||||
			return;
 | 
								return;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		strncopy(pMapList->path, path, sizeof(pMapList->path));
 | 
							smcore.strncopy(pMapList->path, path, sizeof(pMapList->path));
 | 
				
			||||||
		pMapList->bIsPath = true;
 | 
							pMapList->bIsPath = true;
 | 
				
			||||||
		pMapList->last_modified_time = 0;
 | 
							pMapList->last_modified_time = 0;
 | 
				
			||||||
		pMapList->serial = 0;
 | 
							pMapList->serial = 0;
 | 
				
			||||||
@ -139,7 +126,7 @@ public:
 | 
				
			|||||||
		time_t fileTime;
 | 
							time_t fileTime;
 | 
				
			||||||
		SMCStates states = {0, 0};
 | 
							SMCStates states = {0, 0};
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		fileFound = g_LibSys.FileTime(m_ConfigFile, FileTime_LastChange, &fileTime);
 | 
							fileFound = libsys->FileTime(m_ConfigFile, FileTime_LastChange, &fileTime);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* If the file is found and hasn't changed, bail out now. */
 | 
							/* If the file is found and hasn't changed, bail out now. */
 | 
				
			||||||
		if (fileFound && fileTime == m_ConfigLastChanged)
 | 
							if (fileFound && fileTime == m_ConfigLastChanged)
 | 
				
			||||||
@ -156,7 +143,7 @@ public:
 | 
				
			|||||||
			return;
 | 
								return;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		m_pMapCycleFile = icvar->FindVar("mapcyclefile");
 | 
							m_pMapCycleFile = smcore.FindConVar("mapcyclefile");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* Dump everything we know about. */
 | 
							/* Dump everything we know about. */
 | 
				
			||||||
		List<maplist_info_t *> compat;
 | 
							List<maplist_info_t *> compat;
 | 
				
			||||||
@ -166,12 +153,12 @@ public:
 | 
				
			|||||||
		maplist_info_t *pDefList = new maplist_info_t;
 | 
							maplist_info_t *pDefList = new maplist_info_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		pDefList->bIsPath = true;
 | 
							pDefList->bIsPath = true;
 | 
				
			||||||
		strncopy(pDefList->name, "mapcyclefile", sizeof(pDefList->name));
 | 
							smcore.strncopy(pDefList->name, "mapcyclefile", sizeof(pDefList->name));
 | 
				
			||||||
		g_SourceMod.BuildPath(Path_Game,
 | 
							g_pSM->BuildPath(Path_Game,
 | 
				
			||||||
			pDefList->path, 
 | 
								pDefList->path, 
 | 
				
			||||||
			sizeof(pDefList->path),
 | 
								sizeof(pDefList->path),
 | 
				
			||||||
			"%s",
 | 
								"%s",
 | 
				
			||||||
			m_pMapCycleFile ? m_pMapCycleFile->GetString() : "mapcycle.txt");
 | 
								m_pMapCycleFile ? smcore.GetCvarString(m_pMapCycleFile) : "mapcycle.txt");
 | 
				
			||||||
		pDefList->last_modified_time = 0;
 | 
							pDefList->last_modified_time = 0;
 | 
				
			||||||
		pDefList->pArray = NULL;
 | 
							pDefList->pArray = NULL;
 | 
				
			||||||
		pDefList->serial = 0;
 | 
							pDefList->serial = 0;
 | 
				
			||||||
@ -182,19 +169,16 @@ public:
 | 
				
			|||||||
		/* Now parse the config file even if we don't know about it.
 | 
							/* Now parse the config file even if we don't know about it.
 | 
				
			||||||
		 * This will give us a nice error message.
 | 
							 * This will give us a nice error message.
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
		if ((error = g_TextParser.ParseFile_SMC(m_ConfigFile, this, &states))
 | 
							if ((error = textparser->ParseFile_SMC(m_ConfigFile, this, &states))
 | 
				
			||||||
			!= SMCError_Okay)
 | 
								!= SMCError_Okay)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			const char *errmsg = g_TextParser.GetSMCErrorString(error);
 | 
								const char *errmsg = textparser->GetSMCErrorString(error);
 | 
				
			||||||
			if (errmsg == NULL)
 | 
								if (errmsg == NULL)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				errmsg = "Unknown error";
 | 
									errmsg = "Unknown error";
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			g_Logger.LogError("[SM] Could not parse file \"%s\"", m_ConfigFile);
 | 
								smcore.LogError("[SM] Could not parse file \"%s\"", m_ConfigFile);
 | 
				
			||||||
			g_Logger.LogError("[SM] Error on line %d (col %d): %s",
 | 
								smcore.LogError("[SM] Error on line %d (col %d): %s", states.line, states.col, errmsg);
 | 
				
			||||||
				states.line,
 | 
					 | 
				
			||||||
				states.col,
 | 
					 | 
				
			||||||
				errmsg);
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
@ -249,7 +233,7 @@ public:
 | 
				
			|||||||
			m_pCurMapList = new maplist_info_t;
 | 
								m_pCurMapList = new maplist_info_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			memset(m_pCurMapList, 0, sizeof(maplist_info_t));
 | 
								memset(m_pCurMapList, 0, sizeof(maplist_info_t));
 | 
				
			||||||
			strncopy(m_pCurMapList->name, name, sizeof(m_pCurMapList->name));
 | 
								smcore.strncopy(m_pCurMapList->name, name, sizeof(m_pCurMapList->name));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			m_CurState = MPS_MAPLIST;
 | 
								m_CurState = MPS_MAPLIST;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@ -269,7 +253,7 @@ public:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		if (strcmp(key, "file") == 0)
 | 
							if (strcmp(key, "file") == 0)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			g_SourceMod.BuildPath(Path_Game, 
 | 
								g_pSM->BuildPath(Path_Game, 
 | 
				
			||||||
				m_pCurMapList->path,
 | 
									m_pCurMapList->path,
 | 
				
			||||||
				sizeof(m_pCurMapList->path),
 | 
									sizeof(m_pCurMapList->path),
 | 
				
			||||||
				"%s",
 | 
									"%s",
 | 
				
			||||||
@ -278,7 +262,7 @@ public:
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		else if (strcmp(key, "target") == 0)
 | 
							else if (strcmp(key, "target") == 0)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			strncopy(m_pCurMapList->path, value, sizeof(m_pCurMapList->path));
 | 
								smcore.strncopy(m_pCurMapList->path, value, sizeof(m_pCurMapList->path));
 | 
				
			||||||
			m_pCurMapList->bIsPath = false;
 | 
								m_pCurMapList->bIsPath = false;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -369,9 +353,9 @@ public:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			pNewArray = new CellArray(64);
 | 
								pNewArray = new CellArray(64);
 | 
				
			||||||
			free_new_array = true;
 | 
								free_new_array = true;
 | 
				
			||||||
			g_SourceMod.BuildPath(Path_Game, path, sizeof(path), "maps");
 | 
								g_pSM->BuildPath(Path_Game, path, sizeof(path), "maps");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if ((pDir = g_LibSys.OpenDirectory(path)) != NULL)
 | 
								if ((pDir = libsys->OpenDirectory(path)) != NULL)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				char *ptr;
 | 
									char *ptr;
 | 
				
			||||||
				cell_t *blk;
 | 
									cell_t *blk;
 | 
				
			||||||
@ -386,7 +370,7 @@ public:
 | 
				
			|||||||
						pDir->NextEntry();
 | 
											pDir->NextEntry();
 | 
				
			||||||
						continue;
 | 
											continue;
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
					strncopy(buffer, pDir->GetEntryName(), sizeof(buffer));
 | 
										smcore.strncopy(buffer, pDir->GetEntryName(), sizeof(buffer));
 | 
				
			||||||
					if ((ptr = strstr(buffer, ".bsp")) == NULL || ptr[4] != '\0')
 | 
										if ((ptr = strstr(buffer, ".bsp")) == NULL || ptr[4] != '\0')
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						pDir->NextEntry();
 | 
											pDir->NextEntry();
 | 
				
			||||||
@ -403,10 +387,10 @@ public:
 | 
				
			|||||||
						pDir->NextEntry();
 | 
											pDir->NextEntry();
 | 
				
			||||||
						continue;
 | 
											continue;
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
					strncopy((char *)blk, buffer, 255);
 | 
										smcore.strncopy((char *)blk, buffer, 255);
 | 
				
			||||||
					pDir->NextEntry();
 | 
										pDir->NextEntry();
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				g_LibSys.CloseDirectory(pDir);
 | 
									libsys->CloseDirectory(pDir);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			/* Remove the array if there were no items. */
 | 
								/* Remove the array if there were no items. */
 | 
				
			||||||
@ -461,7 +445,7 @@ public:
 | 
				
			|||||||
		{
 | 
							{
 | 
				
			||||||
			blk_dst = pUseArray->push();
 | 
								blk_dst = pUseArray->push();
 | 
				
			||||||
			blk_src = pNewArray->at(i);
 | 
								blk_src = pNewArray->at(i);
 | 
				
			||||||
			strncopy((char *)blk_dst, (char *)blk_src, pUseArray->blocksize() * sizeof(cell_t));
 | 
								smcore.strncopy((char *)blk_dst, (char *)blk_src, pUseArray->blocksize() * sizeof(cell_t));
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* Free resources if necessary. */
 | 
							/* Free resources if necessary. */
 | 
				
			||||||
@ -501,20 +485,20 @@ private:
 | 
				
			|||||||
		if (m_pMapCycleFile != NULL && strcmp(name, "mapcyclefile") == 0)
 | 
							if (m_pMapCycleFile != NULL && strcmp(name, "mapcyclefile") == 0)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			char path[PLATFORM_MAX_PATH];
 | 
								char path[PLATFORM_MAX_PATH];
 | 
				
			||||||
			g_SourceMod.BuildPath(Path_Game,
 | 
								g_pSM->BuildPath(Path_Game,
 | 
				
			||||||
				path, 
 | 
									path, 
 | 
				
			||||||
				sizeof(path),
 | 
									sizeof(path),
 | 
				
			||||||
				"%s",
 | 
									"%s",
 | 
				
			||||||
				m_pMapCycleFile ? m_pMapCycleFile->GetString() : "mapcycle.txt");
 | 
									m_pMapCycleFile ? smcore.GetCvarString(m_pMapCycleFile) : "mapcycle.txt");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if (strcmp(path, pMapList->path) != 0)
 | 
								if (strcmp(path, pMapList->path) != 0)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				strncopy(pMapList->path, path, sizeof(pMapList->path));
 | 
									smcore.strncopy(pMapList->path, path, sizeof(pMapList->path));
 | 
				
			||||||
				pMapList->last_modified_time = 0;
 | 
									pMapList->last_modified_time = 0;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (!g_LibSys.FileTime(pMapList->path, FileTime_LastChange, &last_time)
 | 
							if (!libsys->FileTime(pMapList->path, FileTime_LastChange, &last_time)
 | 
				
			||||||
			|| last_time > pMapList->last_modified_time)
 | 
								|| last_time > pMapList->last_modified_time)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			/* Reparse */
 | 
								/* Reparse */
 | 
				
			||||||
@ -533,7 +517,7 @@ private:
 | 
				
			|||||||
			while (!feof(fp) && fgets(buffer, sizeof(buffer), fp) != NULL)
 | 
								while (!feof(fp) && fgets(buffer, sizeof(buffer), fp) != NULL)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				size_t len = strlen(buffer);
 | 
									size_t len = strlen(buffer);
 | 
				
			||||||
				char *ptr = UTIL_TrimWhitespace(buffer, len);
 | 
									char *ptr = smcore.TrimWhitespace(buffer, len);
 | 
				
			||||||
				if (*ptr == '\0'
 | 
									if (*ptr == '\0'
 | 
				
			||||||
					|| *ptr == ';'
 | 
										|| *ptr == ';'
 | 
				
			||||||
					|| strncmp(ptr, "//", 2) == 0)
 | 
										|| strncmp(ptr, "//", 2) == 0)
 | 
				
			||||||
@ -546,7 +530,7 @@ private:
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
				if ((blk = pMapList->pArray->push()) != NULL)
 | 
									if ((blk = pMapList->pArray->push()) != NULL)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					strncopy((char *)blk, ptr, 255);
 | 
										smcore.strncopy((char *)blk, ptr, 255);
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -616,7 +600,7 @@ static cell_t LoadMapList(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
		HandleError err;
 | 
							HandleError err;
 | 
				
			||||||
		HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
							HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if ((err = g_HandleSys.ReadHandle(hndl, htCellArray, &sec, (void **)&pArray))
 | 
							if ((err = handlesys->ReadHandle(hndl, htCellArray, &sec, (void **)&pArray))
 | 
				
			||||||
			!= HandleError_None)
 | 
								!= HandleError_None)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			return pContext->ThrowNativeError("Invalid Handle %x (error %d)", hndl, err);
 | 
								return pContext->ThrowNativeError("Invalid Handle %x (error %d)", hndl, err);
 | 
				
			||||||
@ -635,7 +619,7 @@ static cell_t LoadMapList(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	/* If the user wanted a new array, create it now. */
 | 
						/* If the user wanted a new array, create it now. */
 | 
				
			||||||
	if (hndl == BAD_HANDLE)
 | 
						if (hndl == BAD_HANDLE)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		if ((hndl = g_HandleSys.CreateHandle(htCellArray, pNewArray, pContext->GetIdentity(), g_pCoreIdent, NULL))
 | 
							if ((hndl = handlesys->CreateHandle(htCellArray, pNewArray, pContext->GetIdentity(), g_pCoreIdent, NULL))
 | 
				
			||||||
			== BAD_HANDLE)
 | 
								== BAD_HANDLE)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			*addr = -1;
 | 
								*addr = -1;
 | 
				
			||||||
@ -29,11 +29,10 @@
 | 
				
			|||||||
 * Version: $Id$
 | 
					 * Version: $Id$
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "sm_globals.h"
 | 
					 | 
				
			||||||
#include <IHandleSys.h>
 | 
					 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
#include "HandleSys.h"
 | 
					#include <time.h>
 | 
				
			||||||
 | 
					#include "common_logic.h"
 | 
				
			||||||
#include "CellArray.h"
 | 
					#include "CellArray.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/***********************************
 | 
					/***********************************
 | 
				
			||||||
@ -448,7 +447,7 @@ static cell_t sm_SortADTArray(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&cArray)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&cArray)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -535,7 +534,7 @@ static cell_t sm_SortADTArrayCustom(IPluginContext *pContext, const cell_t *para
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
						HandleSecurity sec(pContext->GetIdentity(), g_pCoreIdent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = g_HandleSys.ReadHandle(params[1], htCellArray, &sec, (void **)&cArray)) 
 | 
						if ((err = handlesys->ReadHandle(params[1], htCellArray, &sec, (void **)&cArray)) 
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
							return pContext->ThrowNativeError("Invalid Handle %x (error: %d)", params[1], err);
 | 
				
			||||||
@ -29,9 +29,9 @@
 | 
				
			|||||||
 * Version: $Id$
 | 
					 * Version: $Id$
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "sm_globals.h"
 | 
					#include "common_logic.h"
 | 
				
			||||||
#include <ITextParsers.h>
 | 
					#include <ITextParsers.h>
 | 
				
			||||||
#include "HandleSys.h"
 | 
					#include <ISourceMod.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
HandleType_t g_TypeSMC = 0;
 | 
					HandleType_t g_TypeSMC = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -152,16 +152,16 @@ public:
 | 
				
			|||||||
		/* These cannot be cloned, because they are locked to a specific plugin.
 | 
							/* These cannot be cloned, because they are locked to a specific plugin.
 | 
				
			||||||
		 * However, we let anyone read them because we don't care.
 | 
							 * However, we let anyone read them because we don't care.
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
		g_HandleSys.InitAccessDefaults(NULL, &sec);
 | 
							handlesys->InitAccessDefaults(NULL, &sec);
 | 
				
			||||||
		sec.access[HandleAccess_Clone] = HANDLE_RESTRICT_IDENTITY;
 | 
							sec.access[HandleAccess_Clone] = HANDLE_RESTRICT_IDENTITY;
 | 
				
			||||||
		sec.access[HandleAccess_Read] = 0;
 | 
							sec.access[HandleAccess_Read] = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		g_TypeSMC = g_HandleSys.CreateType("SMCParser", this, 0, NULL, &sec, g_pCoreIdent, NULL);
 | 
							g_TypeSMC = handlesys->CreateType("SMCParser", this, 0, NULL, &sec, g_pCoreIdent, NULL);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	void OnSourceModShutdown()
 | 
						void OnSourceModShutdown()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		g_HandleSys.RemoveType(g_TypeSMC, g_pCoreIdent);
 | 
							handlesys->RemoveType(g_TypeSMC, g_pCoreIdent);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	void OnHandleDestroy(HandleType_t type, void *object)
 | 
						void OnHandleDestroy(HandleType_t type, void *object)
 | 
				
			||||||
@ -183,7 +183,7 @@ static cell_t SMC_CreateParser(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	ParseInfo *pInfo = new ParseInfo();
 | 
						ParseInfo *pInfo = new ParseInfo();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Handle_t hndl = g_HandleSys.CreateHandle(g_TypeSMC, pInfo, pContext->GetIdentity(), g_pCoreIdent, NULL);
 | 
						Handle_t hndl = handlesys->CreateHandle(g_TypeSMC, pInfo, pContext->GetIdentity(), g_pCoreIdent, NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Should never happen */
 | 
						/* Should never happen */
 | 
				
			||||||
	if (!hndl)
 | 
						if (!hndl)
 | 
				
			||||||
@ -203,7 +203,7 @@ static cell_t SMC_SetParseStart(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	ParseInfo *parse;
 | 
						ParseInfo *parse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err=g_HandleSys.ReadHandle(hndl, g_TypeSMC, NULL, (void **)&parse))
 | 
						if ((err=handlesys->ReadHandle(hndl, g_TypeSMC, NULL, (void **)&parse))
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid SMC Parse Handle %x (error %d)", hndl, err);
 | 
							return pContext->ThrowNativeError("Invalid SMC Parse Handle %x (error %d)", hndl, err);
 | 
				
			||||||
@ -220,7 +220,7 @@ static cell_t SMC_SetParseEnd(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	ParseInfo *parse;
 | 
						ParseInfo *parse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err=g_HandleSys.ReadHandle(hndl, g_TypeSMC, NULL, (void **)&parse))
 | 
						if ((err=handlesys->ReadHandle(hndl, g_TypeSMC, NULL, (void **)&parse))
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid SMC Parse Handle %x (error %d)", hndl, err);
 | 
							return pContext->ThrowNativeError("Invalid SMC Parse Handle %x (error %d)", hndl, err);
 | 
				
			||||||
@ -237,7 +237,7 @@ static cell_t SMC_SetReaders(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	ParseInfo *parse;
 | 
						ParseInfo *parse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err=g_HandleSys.ReadHandle(hndl, g_TypeSMC, NULL, (void **)&parse))
 | 
						if ((err=handlesys->ReadHandle(hndl, g_TypeSMC, NULL, (void **)&parse))
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid SMC Parse Handle %x (error %d)", hndl, err);
 | 
							return pContext->ThrowNativeError("Invalid SMC Parse Handle %x (error %d)", hndl, err);
 | 
				
			||||||
@ -256,7 +256,7 @@ static cell_t SMC_SetRawLine(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	ParseInfo *parse;
 | 
						ParseInfo *parse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err=g_HandleSys.ReadHandle(hndl, g_TypeSMC, NULL, (void **)&parse))
 | 
						if ((err=handlesys->ReadHandle(hndl, g_TypeSMC, NULL, (void **)&parse))
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid SMC Parse Handle %x (error %d)", hndl, err);
 | 
							return pContext->ThrowNativeError("Invalid SMC Parse Handle %x (error %d)", hndl, err);
 | 
				
			||||||
@ -273,7 +273,7 @@ static cell_t SMC_ParseFile(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	HandleError err;
 | 
						HandleError err;
 | 
				
			||||||
	ParseInfo *parse;
 | 
						ParseInfo *parse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err=g_HandleSys.ReadHandle(hndl, g_TypeSMC, NULL, (void **)&parse))
 | 
						if ((err=handlesys->ReadHandle(hndl, g_TypeSMC, NULL, (void **)&parse))
 | 
				
			||||||
		!= HandleError_None)
 | 
							!= HandleError_None)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return pContext->ThrowNativeError("Invalid SMC Parse Handle %x (error %d)", hndl, err);
 | 
							return pContext->ThrowNativeError("Invalid SMC Parse Handle %x (error %d)", hndl, err);
 | 
				
			||||||
@ -283,7 +283,7 @@ static cell_t SMC_ParseFile(IPluginContext *pContext, const cell_t *params)
 | 
				
			|||||||
	pContext->LocalToString(params[2], &file);
 | 
						pContext->LocalToString(params[2], &file);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	char path[PLATFORM_MAX_PATH];
 | 
						char path[PLATFORM_MAX_PATH];
 | 
				
			||||||
	g_SourceMod.BuildPath(Path_Game, path, sizeof(path), "%s", file);
 | 
						g_pSM->BuildPath(Path_Game, path, sizeof(path), "%s", file);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	SMCStates states;
 | 
						SMCStates states;
 | 
				
			||||||
	SMCError p_err = textparsers->ParseFile_SMC(path, parse, &states);
 | 
						SMCError p_err = textparsers->ParseFile_SMC(path, parse, &states);
 | 
				
			||||||
							
								
								
									
										44
									
								
								core/logic/svn_version.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										44
									
								
								core/logic/svn_version.h
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,44 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * vim: set ts=4 :
 | 
				
			||||||
 | 
					 * =============================================================================
 | 
				
			||||||
 | 
					 * SourceMod GeoIP Extension
 | 
				
			||||||
 | 
					 * Copyright (C) 2004-2008 AlliedModders LLC.  All rights reserved.
 | 
				
			||||||
 | 
					 * =============================================================================
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is free software; you can redistribute it and/or modify it under
 | 
				
			||||||
 | 
					 * the terms of the GNU General Public License, version 3.0, as published by the
 | 
				
			||||||
 | 
					 * Free Software Foundation.
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * This program is distributed in the hope that it will be useful, but WITHOUT
 | 
				
			||||||
 | 
					 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | 
				
			||||||
 | 
					 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | 
				
			||||||
 | 
					 * details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU General Public License along with
 | 
				
			||||||
 | 
					 * this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * As a special exception, AlliedModders LLC gives you permission to link the
 | 
				
			||||||
 | 
					 * code of this program (as well as its derivative works) to "Half-Life 2," the
 | 
				
			||||||
 | 
					 * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | 
				
			||||||
 | 
					 * by the Valve Corporation.  You must obey the GNU General Public License in
 | 
				
			||||||
 | 
					 * all respects for all other code used.  Additionally, AlliedModders LLC grants
 | 
				
			||||||
 | 
					 * this exception to all derivative works.  AlliedModders LLC defines further
 | 
				
			||||||
 | 
					 * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | 
				
			||||||
 | 
					 * or <http://www.sourcemod.net/license.php>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Version: $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Autogenerated by build scripts
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _INCLUDE_GEOIP_VERSION_H_
 | 
				
			||||||
 | 
					#define _INCLUDE_GEOIP_VERSION_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SM_BUILD_STRING		"-dev"
 | 
				
			||||||
 | 
					#define SM_BUILD_UNIQUEID	"2650:5d34bc3edbfa" SM_BUILD_STRING
 | 
				
			||||||
 | 
					#define SVN_FULL_VERSION	"1.3.0" SM_BUILD_STRING
 | 
				
			||||||
 | 
					#define SVN_FILE_VERSION	1,3,0,0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif //_INCLUDE_GEOIP_VERSION_H_
 | 
				
			||||||
							
								
								
									
										44
									
								
								core/logic/svn_version.tpl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										44
									
								
								core/logic/svn_version.tpl
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,44 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * vim: set ts=4 :
 | 
				
			||||||
 | 
					 * =============================================================================
 | 
				
			||||||
 | 
					 * SourceMod GeoIP Extension
 | 
				
			||||||
 | 
					 * Copyright (C) 2004-2008 AlliedModders LLC.  All rights reserved.
 | 
				
			||||||
 | 
					 * =============================================================================
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is free software; you can redistribute it and/or modify it under
 | 
				
			||||||
 | 
					 * the terms of the GNU General Public License, version 3.0, as published by the
 | 
				
			||||||
 | 
					 * Free Software Foundation.
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * This program is distributed in the hope that it will be useful, but WITHOUT
 | 
				
			||||||
 | 
					 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | 
				
			||||||
 | 
					 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | 
				
			||||||
 | 
					 * details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU General Public License along with
 | 
				
			||||||
 | 
					 * this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * As a special exception, AlliedModders LLC gives you permission to link the
 | 
				
			||||||
 | 
					 * code of this program (as well as its derivative works) to "Half-Life 2," the
 | 
				
			||||||
 | 
					 * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | 
				
			||||||
 | 
					 * by the Valve Corporation.  You must obey the GNU General Public License in
 | 
				
			||||||
 | 
					 * all respects for all other code used.  Additionally, AlliedModders LLC grants
 | 
				
			||||||
 | 
					 * this exception to all derivative works.  AlliedModders LLC defines further
 | 
				
			||||||
 | 
					 * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | 
				
			||||||
 | 
					 * or <http://www.sourcemod.net/license.php>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Version: $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Autogenerated by build scripts
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _INCLUDE_LOGIC_VERSION_H_
 | 
				
			||||||
 | 
					#define _INCLUDE_LOGIC_VERSION_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SM_BUILD_STRING		"$BUILD_STRING$"
 | 
				
			||||||
 | 
					#define SM_BUILD_UNIQUEID	"$BUILD_ID$" SM_BUILD_STRING
 | 
				
			||||||
 | 
					#define SVN_FULL_VERSION	"$PMAJOR$.$PMINOR$.$PREVISION$" SM_BUILD_STRING
 | 
				
			||||||
 | 
					#define SVN_FILE_VERSION	$PMAJOR$,$PMINOR$,$PREVISION$,0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif //_INCLUDE_LOGIC_VERSION_H_
 | 
				
			||||||
							
								
								
									
										104
									
								
								core/logic/version.rc
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										104
									
								
								core/logic/version.rc
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,104 @@
 | 
				
			|||||||
 | 
					// Microsoft Visual C++ generated resource script.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//#include "resource.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define APSTUDIO_READONLY_SYMBOLS
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Generated from the TEXTINCLUDE 2 resource.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					#include "winres.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "svn_version.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					#undef APSTUDIO_READONLY_SYMBOLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					// English (U.S.) resources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
 | 
				
			||||||
 | 
					#ifdef _WIN32
 | 
				
			||||||
 | 
					LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 | 
				
			||||||
 | 
					#pragma code_page(1252)
 | 
				
			||||||
 | 
					#endif //_WIN32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Version
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					VS_VERSION_INFO VERSIONINFO
 | 
				
			||||||
 | 
					 FILEVERSION  SVN_FILE_VERSION
 | 
				
			||||||
 | 
					 PRODUCTVERSION SVN_FILE_VERSION
 | 
				
			||||||
 | 
					 FILEFLAGSMASK 0x17L
 | 
				
			||||||
 | 
					#ifdef _DEBUG
 | 
				
			||||||
 | 
					 FILEFLAGS 0x1L
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					 FILEFLAGS 0x0L
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					 FILEOS 0x4L
 | 
				
			||||||
 | 
					 FILETYPE 0x2L
 | 
				
			||||||
 | 
					 FILESUBTYPE 0x0L
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					    BLOCK "StringFileInfo"
 | 
				
			||||||
 | 
					    BEGIN
 | 
				
			||||||
 | 
					        BLOCK "000004b0"
 | 
				
			||||||
 | 
					        BEGIN
 | 
				
			||||||
 | 
					            VALUE "Comments", "SourceMod"
 | 
				
			||||||
 | 
					            VALUE "FileDescription", "SourceMod Core Logic"
 | 
				
			||||||
 | 
					            VALUE "FileVersion", SVN_FULL_VERSION
 | 
				
			||||||
 | 
					            VALUE "InternalName", "sourcemod"
 | 
				
			||||||
 | 
					            VALUE "LegalCopyright", "Copyright (c) 2004-2009, AlliedModders LLC"
 | 
				
			||||||
 | 
					            VALUE "OriginalFilename", "sourcemod.logic.dll"
 | 
				
			||||||
 | 
					            VALUE "ProductName", "SourceMod"
 | 
				
			||||||
 | 
					            VALUE "ProductVersion", SVN_FULL_VERSION
 | 
				
			||||||
 | 
					        END
 | 
				
			||||||
 | 
					    END
 | 
				
			||||||
 | 
					    BLOCK "VarFileInfo"
 | 
				
			||||||
 | 
					    BEGIN
 | 
				
			||||||
 | 
					        VALUE "Translation", 0x0, 1200
 | 
				
			||||||
 | 
					    END
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef APSTUDIO_INVOKED
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// TEXTINCLUDE
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1 TEXTINCLUDE 
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					    "resource.h\0"
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2 TEXTINCLUDE 
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					    "#include ""winres.h""\r\n"
 | 
				
			||||||
 | 
					    "\0"
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					3 TEXTINCLUDE 
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					    "\r\n"
 | 
				
			||||||
 | 
					    "\0"
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif    // APSTUDIO_INVOKED
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif    // English (U.S.) resources
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef APSTUDIO_INVOKED
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Generated from the TEXTINCLUDE 3 resource.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					#endif    // not APSTUDIO_INVOKED
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										169
									
								
								core/logic_bridge.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										169
									
								
								core/logic_bridge.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,169 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * vim: set ts=4 sw=4 :
 | 
				
			||||||
 | 
					 * =============================================================================
 | 
				
			||||||
 | 
					 * SourceMod
 | 
				
			||||||
 | 
					 * Copyright (C) 2004-2009 AlliedModders LLC.  All rights reserved.
 | 
				
			||||||
 | 
					 * =============================================================================
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is free software; you can redistribute it and/or modify it under
 | 
				
			||||||
 | 
					 * the terms of the GNU General Public License, version 3.0, as published by the
 | 
				
			||||||
 | 
					 * Free Software Foundation.
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * This program is distributed in the hope that it will be useful, but WITHOUT
 | 
				
			||||||
 | 
					 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | 
				
			||||||
 | 
					 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | 
				
			||||||
 | 
					 * details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU General Public License along with
 | 
				
			||||||
 | 
					 * this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * As a special exception, AlliedModders LLC gives you permission to link the
 | 
				
			||||||
 | 
					 * code of this program (as well as its derivative works) to "Half-Life 2," the
 | 
				
			||||||
 | 
					 * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | 
				
			||||||
 | 
					 * by the Valve Corporation.  You must obey the GNU General Public License in
 | 
				
			||||||
 | 
					 * all respects for all other code used.  Additionally, AlliedModders LLC grants
 | 
				
			||||||
 | 
					 * this exception to all derivative works.  AlliedModders LLC defines further
 | 
				
			||||||
 | 
					 * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | 
				
			||||||
 | 
					 * or <http://www.sourcemod.net/license.php>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Version: $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <assert.h>
 | 
				
			||||||
 | 
					#include "sourcemod.h"
 | 
				
			||||||
 | 
					#include "sourcemm_api.h"
 | 
				
			||||||
 | 
					#include "sm_globals.h"
 | 
				
			||||||
 | 
					#include "NativeOwner.h"
 | 
				
			||||||
 | 
					#include "sm_autonatives.h"
 | 
				
			||||||
 | 
					#include "logic/intercom.h"
 | 
				
			||||||
 | 
					#include "LibrarySys.h"
 | 
				
			||||||
 | 
					#include "HandleSys.h"
 | 
				
			||||||
 | 
					#include "sm_stringutil.h"
 | 
				
			||||||
 | 
					#include "Logger.h"
 | 
				
			||||||
 | 
					#include "ShareSys.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static ILibrary *g_pLogic = NULL;
 | 
				
			||||||
 | 
					static LogicInitFunction logic_init_fn;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					IThreader *g_pThreader;
 | 
				
			||||||
 | 
					ITextParsers *textparsers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class VEngineServer_Logic : public IVEngineServer_Logic
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						virtual bool IsMapValid(const char *map)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return engine->IsMapValid(map);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static VEngineServer_Logic logic_engine;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void add_natives(sp_nativeinfo_t *natives)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						g_pCoreNatives->AddNatives(natives);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static ConVar *find_convar(const char *name)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return icvar->FindVar(name);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void log_error(const char *fmt, ...)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						va_list ap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						va_start(ap, fmt);
 | 
				
			||||||
 | 
						g_Logger.LogErrorEx(fmt, ap);
 | 
				
			||||||
 | 
						va_end(ap);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static const char *get_cvar_string(ConVar* cvar)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return cvar->GetString();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static sm_core_t core_bridge =
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						/* Objects */
 | 
				
			||||||
 | 
						&g_HandleSys,
 | 
				
			||||||
 | 
						NULL,
 | 
				
			||||||
 | 
						&g_SourceMod,
 | 
				
			||||||
 | 
						&g_LibSys,
 | 
				
			||||||
 | 
						reinterpret_cast<IVEngineServer*>(&logic_engine),
 | 
				
			||||||
 | 
						&g_ShareSys,
 | 
				
			||||||
 | 
						/* Functions */
 | 
				
			||||||
 | 
						add_natives,
 | 
				
			||||||
 | 
						find_convar,
 | 
				
			||||||
 | 
						strncopy,
 | 
				
			||||||
 | 
						UTIL_TrimWhitespace,
 | 
				
			||||||
 | 
						log_error,
 | 
				
			||||||
 | 
						get_cvar_string,
 | 
				
			||||||
 | 
						UTIL_Format
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void InitLogicBridge()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						sm_logic_t logic;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						core_bridge.core_ident = g_pCoreIdent;
 | 
				
			||||||
 | 
						logic_init_fn(&core_bridge, &logic);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Add SMGlobalClass instances */
 | 
				
			||||||
 | 
						SMGlobalClass* glob = SMGlobalClass::head;
 | 
				
			||||||
 | 
						while (glob->m_pGlobalClassNext != NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							glob = glob->m_pGlobalClassNext;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						assert(glob->m_pGlobalClassNext == NULL);
 | 
				
			||||||
 | 
						glob->m_pGlobalClassNext = logic.head;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						g_pThreader = logic.threader;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool StartLogicBridge(char *error, size_t maxlength)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						char file[PLATFORM_MAX_PATH];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Now it's time to load the logic binary */
 | 
				
			||||||
 | 
						g_SMAPI->PathFormat(file,
 | 
				
			||||||
 | 
							sizeof(file),
 | 
				
			||||||
 | 
							"%s/bin/sourcemod.logic." PLATFORM_LIB_EXT,
 | 
				
			||||||
 | 
							g_SourceMod.GetSourceModPath());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						char myerror[255];
 | 
				
			||||||
 | 
						g_pLogic = g_LibSys.OpenLibrary(file, myerror, sizeof(myerror));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (!g_pLogic)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							if (error && maxlength)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								UTIL_Format(error, maxlength, "failed to load %s: %s", file, myerror);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return false;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						LogicLoadFunction llf = (LogicLoadFunction)g_pLogic->GetSymbolAddress("logic_load");
 | 
				
			||||||
 | 
						if (llf == NULL)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							g_pLogic->CloseLibrary();
 | 
				
			||||||
 | 
							if (error && maxlength)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								UTIL_Format(error, maxlength, "could not find logic_load function");
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return false;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						GetITextParsers getitxt = (GetITextParsers)g_pLogic->GetSymbolAddress("get_textparsers");
 | 
				
			||||||
 | 
						textparsers = getitxt();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						logic_init_fn = llf(SM_LOGIC_MAGIC);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ShutdownLogicBridge()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						g_pLogic->CloseLibrary();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										39
									
								
								core/logic_bridge.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								core/logic_bridge.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * vim: set ts=4 sw=4 :
 | 
				
			||||||
 | 
					 * =============================================================================
 | 
				
			||||||
 | 
					 * SourceMod
 | 
				
			||||||
 | 
					 * Copyright (C) 2004-2009 AlliedModders LLC.  All rights reserved.
 | 
				
			||||||
 | 
					 * =============================================================================
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is free software; you can redistribute it and/or modify it under
 | 
				
			||||||
 | 
					 * the terms of the GNU General Public License, version 3.0, as published by the
 | 
				
			||||||
 | 
					 * Free Software Foundation.
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * This program is distributed in the hope that it will be useful, but WITHOUT
 | 
				
			||||||
 | 
					 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | 
				
			||||||
 | 
					 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | 
				
			||||||
 | 
					 * details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU General Public License along with
 | 
				
			||||||
 | 
					 * this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * As a special exception, AlliedModders LLC gives you permission to link the
 | 
				
			||||||
 | 
					 * code of this program (as well as its derivative works) to "Half-Life 2," the
 | 
				
			||||||
 | 
					 * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | 
				
			||||||
 | 
					 * by the Valve Corporation.  You must obey the GNU General Public License in
 | 
				
			||||||
 | 
					 * all respects for all other code used.  Additionally, AlliedModders LLC grants
 | 
				
			||||||
 | 
					 * this exception to all derivative works.  AlliedModders LLC defines further
 | 
				
			||||||
 | 
					 * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | 
				
			||||||
 | 
					 * or <http://www.sourcemod.net/license.php>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Version: $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifndef _INCLUDE_SOURCEMOD_LOGIC_BRIDGE_H_
 | 
				
			||||||
 | 
					#define _INCLUDE_SOURCEMOD_LOGIC_BRIDGE_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void InitLogicBridge();
 | 
				
			||||||
 | 
					bool StartLogicBridge(char *error, size_t maxlength);
 | 
				
			||||||
 | 
					void ShutdownLogicBridge();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _INCLUDE_SOURCEMOD_LOGIC_BRIDGE_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1420,6 +1420,10 @@
 | 
				
			|||||||
				RelativePath="..\Logger.cpp"
 | 
									RelativePath="..\Logger.cpp"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
			</File>
 | 
								</File>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\logic_bridge.cpp"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
			<File
 | 
								<File
 | 
				
			||||||
				RelativePath="..\MemoryUtils.cpp"
 | 
									RelativePath="..\MemoryUtils.cpp"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
@ -1512,14 +1516,6 @@
 | 
				
			|||||||
				RelativePath="..\sourcemod.cpp"
 | 
									RelativePath="..\sourcemod.cpp"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
			</File>
 | 
								</File>
 | 
				
			||||||
			<File
 | 
					 | 
				
			||||||
				RelativePath="..\TextParsers.cpp"
 | 
					 | 
				
			||||||
				>
 | 
					 | 
				
			||||||
			</File>
 | 
					 | 
				
			||||||
			<File
 | 
					 | 
				
			||||||
				RelativePath="..\ThreadSupport.cpp"
 | 
					 | 
				
			||||||
				>
 | 
					 | 
				
			||||||
			</File>
 | 
					 | 
				
			||||||
			<File
 | 
								<File
 | 
				
			||||||
				RelativePath="..\TimerSys.cpp"
 | 
									RelativePath="..\TimerSys.cpp"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
@ -1626,6 +1622,10 @@
 | 
				
			|||||||
				RelativePath="..\Logger.h"
 | 
									RelativePath="..\Logger.h"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
			</File>
 | 
								</File>
 | 
				
			||||||
 | 
								<File
 | 
				
			||||||
 | 
									RelativePath="..\logic_bridge.h"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</File>
 | 
				
			||||||
			<File
 | 
								<File
 | 
				
			||||||
				RelativePath="..\MemoryUtils.h"
 | 
									RelativePath="..\MemoryUtils.h"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
@ -1750,14 +1750,6 @@
 | 
				
			|||||||
				RelativePath="..\sourcemod.h"
 | 
									RelativePath="..\sourcemod.h"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
			</File>
 | 
								</File>
 | 
				
			||||||
			<File
 | 
					 | 
				
			||||||
				RelativePath="..\TextParsers.h"
 | 
					 | 
				
			||||||
				>
 | 
					 | 
				
			||||||
			</File>
 | 
					 | 
				
			||||||
			<File
 | 
					 | 
				
			||||||
				RelativePath="..\ThreadSupport.h"
 | 
					 | 
				
			||||||
				>
 | 
					 | 
				
			||||||
			</File>
 | 
					 | 
				
			||||||
			<File
 | 
								<File
 | 
				
			||||||
				RelativePath="..\TimerSys.h"
 | 
									RelativePath="..\TimerSys.h"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
@ -1906,14 +1898,6 @@
 | 
				
			|||||||
				RelativePath="..\smn_admin.cpp"
 | 
									RelativePath="..\smn_admin.cpp"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
			</File>
 | 
								</File>
 | 
				
			||||||
			<File
 | 
					 | 
				
			||||||
				RelativePath="..\smn_adt_array.cpp"
 | 
					 | 
				
			||||||
				>
 | 
					 | 
				
			||||||
			</File>
 | 
					 | 
				
			||||||
			<File
 | 
					 | 
				
			||||||
				RelativePath="..\smn_adt_stack.cpp"
 | 
					 | 
				
			||||||
				>
 | 
					 | 
				
			||||||
			</File>
 | 
					 | 
				
			||||||
			<File
 | 
								<File
 | 
				
			||||||
				RelativePath="..\smn_adt_trie.cpp"
 | 
									RelativePath="..\smn_adt_trie.cpp"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
@ -1958,10 +1942,6 @@
 | 
				
			|||||||
				RelativePath="..\smn_filesystem.cpp"
 | 
									RelativePath="..\smn_filesystem.cpp"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
			</File>
 | 
								</File>
 | 
				
			||||||
			<File
 | 
					 | 
				
			||||||
				RelativePath="..\smn_float.cpp"
 | 
					 | 
				
			||||||
				>
 | 
					 | 
				
			||||||
			</File>
 | 
					 | 
				
			||||||
			<File
 | 
								<File
 | 
				
			||||||
				RelativePath="..\smn_functions.cpp"
 | 
									RelativePath="..\smn_functions.cpp"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
@ -1990,10 +1970,6 @@
 | 
				
			|||||||
				RelativePath="..\smn_lang.cpp"
 | 
									RelativePath="..\smn_lang.cpp"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
			</File>
 | 
								</File>
 | 
				
			||||||
			<File
 | 
					 | 
				
			||||||
				RelativePath="..\smn_maplists.cpp"
 | 
					 | 
				
			||||||
				>
 | 
					 | 
				
			||||||
			</File>
 | 
					 | 
				
			||||||
			<File
 | 
								<File
 | 
				
			||||||
				RelativePath="..\smn_menus.cpp"
 | 
									RelativePath="..\smn_menus.cpp"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
@ -2010,18 +1986,10 @@
 | 
				
			|||||||
				RelativePath="..\smn_profiler.cpp"
 | 
									RelativePath="..\smn_profiler.cpp"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
			</File>
 | 
								</File>
 | 
				
			||||||
			<File
 | 
					 | 
				
			||||||
				RelativePath="..\smn_sorting.cpp"
 | 
					 | 
				
			||||||
				>
 | 
					 | 
				
			||||||
			</File>
 | 
					 | 
				
			||||||
			<File
 | 
								<File
 | 
				
			||||||
				RelativePath="..\smn_string.cpp"
 | 
									RelativePath="..\smn_string.cpp"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
			</File>
 | 
								</File>
 | 
				
			||||||
			<File
 | 
					 | 
				
			||||||
				RelativePath="..\smn_textparse.cpp"
 | 
					 | 
				
			||||||
				>
 | 
					 | 
				
			||||||
			</File>
 | 
					 | 
				
			||||||
			<File
 | 
								<File
 | 
				
			||||||
				RelativePath="..\smn_timers.cpp"
 | 
									RelativePath="..\smn_timers.cpp"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
@ -2045,42 +2013,6 @@
 | 
				
			|||||||
				>
 | 
									>
 | 
				
			||||||
			</File>
 | 
								</File>
 | 
				
			||||||
		</Filter>
 | 
							</Filter>
 | 
				
			||||||
		<Filter
 | 
					 | 
				
			||||||
			Name="Threader"
 | 
					 | 
				
			||||||
			>
 | 
					 | 
				
			||||||
			<Filter
 | 
					 | 
				
			||||||
				Name="Header Files"
 | 
					 | 
				
			||||||
				>
 | 
					 | 
				
			||||||
				<File
 | 
					 | 
				
			||||||
					RelativePath="..\thread\BaseWorker.h"
 | 
					 | 
				
			||||||
					>
 | 
					 | 
				
			||||||
				</File>
 | 
					 | 
				
			||||||
				<File
 | 
					 | 
				
			||||||
					RelativePath="..\thread\ThreadWorker.h"
 | 
					 | 
				
			||||||
					>
 | 
					 | 
				
			||||||
				</File>
 | 
					 | 
				
			||||||
				<File
 | 
					 | 
				
			||||||
					RelativePath="..\thread\WinThreads.h"
 | 
					 | 
				
			||||||
					>
 | 
					 | 
				
			||||||
				</File>
 | 
					 | 
				
			||||||
			</Filter>
 | 
					 | 
				
			||||||
			<Filter
 | 
					 | 
				
			||||||
				Name="Source Files"
 | 
					 | 
				
			||||||
				>
 | 
					 | 
				
			||||||
				<File
 | 
					 | 
				
			||||||
					RelativePath="..\thread\BaseWorker.cpp"
 | 
					 | 
				
			||||||
					>
 | 
					 | 
				
			||||||
				</File>
 | 
					 | 
				
			||||||
				<File
 | 
					 | 
				
			||||||
					RelativePath="..\thread\ThreadWorker.cpp"
 | 
					 | 
				
			||||||
					>
 | 
					 | 
				
			||||||
				</File>
 | 
					 | 
				
			||||||
				<File
 | 
					 | 
				
			||||||
					RelativePath="..\thread\WinThreads.cpp"
 | 
					 | 
				
			||||||
					>
 | 
					 | 
				
			||||||
				</File>
 | 
					 | 
				
			||||||
			</Filter>
 | 
					 | 
				
			||||||
		</Filter>
 | 
					 | 
				
			||||||
	</Files>
 | 
						</Files>
 | 
				
			||||||
	<Globals>
 | 
						<Globals>
 | 
				
			||||||
	</Globals>
 | 
						</Globals>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,8 +1,8 @@
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * vim: set ts=4 :
 | 
					 * vim: set ts=4 sw=4 :
 | 
				
			||||||
 * =============================================================================
 | 
					 * =============================================================================
 | 
				
			||||||
 * SourceMod
 | 
					 * SourceMod
 | 
				
			||||||
 * Copyright (C) 2004-2008 AlliedModders LLC.  All rights reserved.
 | 
					 * Copyright (C) 2004-2009 AlliedModders LLC.  All rights reserved.
 | 
				
			||||||
 * =============================================================================
 | 
					 * =============================================================================
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * This program is free software; you can redistribute it and/or modify it under
 | 
					 * This program is free software; you can redistribute it and/or modify it under
 | 
				
			||||||
@ -76,7 +76,11 @@ class SMGlobalClass
 | 
				
			|||||||
	friend class CExtensionManager;
 | 
						friend class CExtensionManager;
 | 
				
			||||||
	friend class PlayerManager;
 | 
						friend class PlayerManager;
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
	SMGlobalClass();
 | 
						SMGlobalClass()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							m_pGlobalClassNext = SMGlobalClass::head;
 | 
				
			||||||
 | 
							SMGlobalClass::head = this;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * @brief Called when SourceMod is initially loading
 | 
						 * @brief Called when SourceMod is initially loading
 | 
				
			||||||
@ -184,7 +188,7 @@ public:
 | 
				
			|||||||
	virtual void OnSourceModMaxPlayersChanged(int newvalue)
 | 
						virtual void OnSourceModMaxPlayersChanged(int newvalue)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
private:
 | 
					public:
 | 
				
			||||||
	SMGlobalClass *m_pGlobalClassNext;
 | 
						SMGlobalClass *m_pGlobalClassNext;
 | 
				
			||||||
	static SMGlobalClass *head;
 | 
						static SMGlobalClass *head;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@ -193,6 +197,16 @@ extern ISourcePawnEngine *g_pSourcePawn;
 | 
				
			|||||||
extern ISourcePawnEngine2 *g_pSourcePawn2;
 | 
					extern ISourcePawnEngine2 *g_pSourcePawn2;
 | 
				
			||||||
extern IdentityToken_t *g_pCoreIdent;
 | 
					extern IdentityToken_t *g_pCoreIdent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace SourceMod
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						class IThreader;
 | 
				
			||||||
 | 
						class ITextParsers;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern IThreader *g_pThreader;
 | 
				
			||||||
 | 
					extern ITextParsers *textparsers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "sm_autonatives.h"
 | 
					#include "sm_autonatives.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif //_INCLUDE_SOURCEMOD_GLOBALS_H_
 | 
					#endif //_INCLUDE_SOURCEMOD_GLOBALS_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,8 +1,8 @@
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * vim: set ts=4 :
 | 
					 * vim: set ts=4 sw=4 :
 | 
				
			||||||
 * =============================================================================
 | 
					 * =============================================================================
 | 
				
			||||||
 * SourceMod
 | 
					 * SourceMod
 | 
				
			||||||
 * Copyright (C) 2004-2008 AlliedModders LLC.  All rights reserved.
 | 
					 * Copyright (C) 2004-2009 AlliedModders LLC.  All rights reserved.
 | 
				
			||||||
 * =============================================================================
 | 
					 * =============================================================================
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * This program is free software; you can redistribute it and/or modify it under
 | 
					 * This program is free software; you can redistribute it and/or modify it under
 | 
				
			||||||
@ -49,6 +49,7 @@
 | 
				
			|||||||
#include "DebugReporter.h"
 | 
					#include "DebugReporter.h"
 | 
				
			||||||
#include "Profiler.h"
 | 
					#include "Profiler.h"
 | 
				
			||||||
#include "frame_hooks.h"
 | 
					#include "frame_hooks.h"
 | 
				
			||||||
 | 
					#include "logic_bridge.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SH_DECL_HOOK6(IServerGameDLL, LevelInit, SH_NOATTRIB, false, bool, const char *, const char *, const char *, const char *, bool, bool);
 | 
					SH_DECL_HOOK6(IServerGameDLL, LevelInit, SH_NOATTRIB, false, bool, const char *, const char *, const char *, const char *, bool, bool);
 | 
				
			||||||
SH_DECL_HOOK0_void(IServerGameDLL, LevelShutdown, SH_NOATTRIB, false);
 | 
					SH_DECL_HOOK0_void(IServerGameDLL, LevelShutdown, SH_NOATTRIB, false);
 | 
				
			||||||
@ -166,6 +167,11 @@ bool SourceModBase::InitializeSourceMod(char *error, size_t maxlength, bool late
 | 
				
			|||||||
	g_LibSys.PathFormat(m_SMBaseDir, sizeof(m_SMBaseDir), "%s/%s", g_BaseDir.c_str(), basepath);
 | 
						g_LibSys.PathFormat(m_SMBaseDir, sizeof(m_SMBaseDir), "%s/%s", g_BaseDir.c_str(), basepath);
 | 
				
			||||||
	g_LibSys.PathFormat(m_SMRelDir, sizeof(m_SMRelDir), "%s", basepath);
 | 
						g_LibSys.PathFormat(m_SMRelDir, sizeof(m_SMRelDir), "%s", basepath);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (!StartLogicBridge(error, maxlength))
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return false;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Initialize CoreConfig to get the SourceMod base path properly - this parses core.cfg */
 | 
						/* Initialize CoreConfig to get the SourceMod base path properly - this parses core.cfg */
 | 
				
			||||||
	g_CoreConfig.Initialize();
 | 
						g_CoreConfig.Initialize();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -185,7 +191,7 @@ bool SourceModBase::InitializeSourceMod(char *error, size_t maxlength, bool late
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
		if (error && maxlength)
 | 
							if (error && maxlength)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			snprintf(error, maxlength, "%s (failed to load bin/sourcepawn.jit.x86.%s)", 
 | 
								UTIL_Format(error, maxlength, "%s (failed to load bin/sourcepawn.jit.x86.%s)", 
 | 
				
			||||||
				myerror,
 | 
									myerror,
 | 
				
			||||||
				PLATFORM_LIB_EXT);
 | 
									PLATFORM_LIB_EXT);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@ -265,6 +271,8 @@ void SourceModBase::StartSourceMod(bool late)
 | 
				
			|||||||
	/* Make the global core identity */
 | 
						/* Make the global core identity */
 | 
				
			||||||
	g_pCoreIdent = g_ShareSys.CreateCoreIdentity();
 | 
						g_pCoreIdent = g_ShareSys.CreateCoreIdentity();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						InitLogicBridge();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Notify! */
 | 
						/* Notify! */
 | 
				
			||||||
	SMGlobalClass *pBase = SMGlobalClass::head;
 | 
						SMGlobalClass *pBase = SMGlobalClass::head;
 | 
				
			||||||
	while (pBase)
 | 
						while (pBase)
 | 
				
			||||||
@ -535,6 +543,7 @@ void SourceModBase::CloseSourceMod()
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Rest In Peace */
 | 
						/* Rest In Peace */
 | 
				
			||||||
 | 
						ShutdownLogicBridge();
 | 
				
			||||||
	ShutdownJIT();
 | 
						ShutdownJIT();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -731,8 +740,3 @@ int SourceModBase::GetPluginId()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
SMGlobalClass *SMGlobalClass::head = NULL;
 | 
					SMGlobalClass *SMGlobalClass::head = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SMGlobalClass::SMGlobalClass()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	m_pGlobalClassNext = SMGlobalClass::head;
 | 
					 | 
				
			||||||
	SMGlobalClass::head = this;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -152,6 +152,13 @@ namespace builder
 | 
				
			|||||||
			lib.has_platform_ext = true;
 | 
								lib.has_platform_ext = true;
 | 
				
			||||||
			libraries.Add(lib);
 | 
								libraries.Add(lib);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            lib = new Library();
 | 
				
			||||||
 | 
					            lib.package_path = "addons/sourcemod/bin";
 | 
				
			||||||
 | 
					            lib.source_path = "core/logic";
 | 
				
			||||||
 | 
					            lib.binary_name = "sourcemod.logic";
 | 
				
			||||||
 | 
					            lib.vcproj_name = "logic";
 | 
				
			||||||
 | 
					            libraries.Add(lib);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			lib = new Library();
 | 
								lib = new Library();
 | 
				
			||||||
			lib.package_path = "addons/sourcemod/bin";
 | 
								lib.package_path = "addons/sourcemod/bin";
 | 
				
			||||||
			lib.source_path = "core";
 | 
								lib.source_path = "core";
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user