Move dlls/ to modules/
This commit is contained in:
		
							
								
								
									
										14
									
								
								modules/fun/AMBuilder
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								modules/fun/AMBuilder
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
 | 
			
		||||
import os.path
 | 
			
		||||
 | 
			
		||||
binary = AMXX.MetaModule(builder, 'fun')
 | 
			
		||||
 
 | 
			
		||||
binary.sources = [
 | 
			
		||||
  '../../public/sdk/amxxmodule.cpp',
 | 
			
		||||
  'fun.cpp',
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
if builder.target_platform == 'windows':
 | 
			
		||||
  binary.sources += ['version.rc']
 | 
			
		||||
  
 | 
			
		||||
AMXX.modules += [builder.Add(binary)]
 | 
			
		||||
							
								
								
									
										124
									
								
								modules/fun/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								modules/fun/Makefile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,124 @@
 | 
			
		||||
# (C)2004-2013 AMX Mod X Development Team
 | 
			
		||||
# Makefile written by David "BAILOPAN" Anderson
 | 
			
		||||
 | 
			
		||||
###########################################
 | 
			
		||||
### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | 
			
		||||
###########################################
 | 
			
		||||
 | 
			
		||||
HLSDK = ../../../hlsdk
 | 
			
		||||
MM_ROOT = ../../../metamod/metamod
 | 
			
		||||
PUBLIC_ROOT = ../../public
 | 
			
		||||
 | 
			
		||||
#####################################
 | 
			
		||||
### EDIT BELOW FOR OTHER PROJECTS ###
 | 
			
		||||
#####################################
 | 
			
		||||
 | 
			
		||||
PROJECT = fun
 | 
			
		||||
 | 
			
		||||
OBJECTS = amxxmodule.cpp fun.cpp
 | 
			
		||||
 | 
			
		||||
##############################################
 | 
			
		||||
### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | 
			
		||||
##############################################
 | 
			
		||||
 | 
			
		||||
C_OPT_FLAGS = -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe
 | 
			
		||||
C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | 
			
		||||
C_GCC4_FLAGS = -fvisibility=hidden
 | 
			
		||||
CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | 
			
		||||
CPP = gcc
 | 
			
		||||
CPP_OSX = clang
 | 
			
		||||
 | 
			
		||||
LINK =
 | 
			
		||||
 | 
			
		||||
INCLUDE = -I. -I$(PUBLIC_ROOT) -I$(PUBLIC_ROOT)/sdk -I$(PUBLIC_ROOT)/amtl \
 | 
			
		||||
			  -I$(HLSDK) -I$(HLSDK)/public -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/pm_shared\
 | 
			
		||||
			  -I$(MM_ROOT)
 | 
			
		||||
 | 
			
		||||
################################################
 | 
			
		||||
### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | 
			
		||||
################################################
 | 
			
		||||
 | 
			
		||||
OS := $(shell uname -s)
 | 
			
		||||
 | 
			
		||||
ifeq "$(OS)" "Darwin"
 | 
			
		||||
	CPP = $(CPP_OSX)
 | 
			
		||||
	LIB_EXT = dylib
 | 
			
		||||
	LIB_SUFFIX = _amxx
 | 
			
		||||
	CFLAGS += -DOSX
 | 
			
		||||
	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
 | 
			
		||||
else
 | 
			
		||||
	LIB_EXT = so
 | 
			
		||||
	LIB_SUFFIX = _amxx_i386
 | 
			
		||||
	CFLAGS += -DLINUX
 | 
			
		||||
	LINK += -shared
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
LINK += -m32 -lm -ldl
 | 
			
		||||
 | 
			
		||||
CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror
 | 
			
		||||
CPPFLAGS += -fno-exceptions -fno-rtti
 | 
			
		||||
 | 
			
		||||
BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | 
			
		||||
 | 
			
		||||
ifeq "$(DEBUG)" "true"
 | 
			
		||||
	BIN_DIR = Debug
 | 
			
		||||
	CFLAGS += $(C_DEBUG_FLAGS)
 | 
			
		||||
else
 | 
			
		||||
	BIN_DIR = Release
 | 
			
		||||
	CFLAGS += $(C_OPT_FLAGS)
 | 
			
		||||
	LINK += -s
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | 
			
		||||
 | 
			
		||||
ifeq "$(IS_CLANG)" "1"
 | 
			
		||||
	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | 
			
		||||
	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | 
			
		||||
else
 | 
			
		||||
	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | 
			
		||||
	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# Clang || GCC >= 4
 | 
			
		||||
ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | 
			
		||||
	CFLAGS += $(C_GCC4_FLAGS)
 | 
			
		||||
	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# Clang >= 3 || GCC >= 4.7
 | 
			
		||||
ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | 
			
		||||
	CPPFLAGS += -Wno-delete-non-virtual-dtor
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# OS is Linux and not using clang
 | 
			
		||||
ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | 
			
		||||
	LINK += -static-libgcc
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | 
			
		||||
 | 
			
		||||
# This will break if we include other Makefiles, but is fine for now. It allows
 | 
			
		||||
#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | 
			
		||||
#  or other changes without mucking up the original.
 | 
			
		||||
MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | 
			
		||||
 | 
			
		||||
$(BIN_DIR)/%.o: %.cpp
 | 
			
		||||
	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | 
			
		||||
 | 
			
		||||
all:
 | 
			
		||||
	mkdir -p $(BIN_DIR)
 | 
			
		||||
	ln -sf $(PUBLIC_ROOT)/sdk/amxxmodule.cpp
 | 
			
		||||
	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | 
			
		||||
 | 
			
		||||
$(PROJECT): $(OBJ_BIN)
 | 
			
		||||
	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | 
			
		||||
 | 
			
		||||
debug:
 | 
			
		||||
	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | 
			
		||||
 | 
			
		||||
default: all
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	rm -rf $(BIN_DIR)/*.o
 | 
			
		||||
	rm -f $(BIN_DIR)/$(BINARY)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										643
									
								
								modules/fun/fun.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										643
									
								
								modules/fun/fun.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,643 @@
 | 
			
		||||
// vim: set ts=4 sw=4 tw=99 noet:
 | 
			
		||||
//
 | 
			
		||||
// AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
 | 
			
		||||
// Copyright (C) The AMX Mod X Development Team.
 | 
			
		||||
//
 | 
			
		||||
// This software is licensed under the GNU General Public License, version 3 or higher.
 | 
			
		||||
// Additional exceptions apply. For full license details, see LICENSE.txt or visit:
 | 
			
		||||
//     https://alliedmods.net/amxmodx-license
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Fun Module
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include "fun.h"
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
	JGHG says:
 | 
			
		||||
 | 
			
		||||
	Ok this is what I use below, it may probably not be right with all natives etc but I try to maintain this style to natives.
 | 
			
		||||
	Note that this is still very much subject to change, regarding return values etc!
 | 
			
		||||
	(Ok I haven't checked all natives that they comply with this yet, this is just a model I'm working on and which I might implement soon.)
 | 
			
		||||
 | 
			
		||||
	static cell AMX_NATIVE_CALL nativename(AMX *amx, cell *params) // nativename(argument1, argument2); = 2 params
 | 
			
		||||
	{
 | 
			
		||||
		// Description what this native does.					<--- Description what this native does
 | 
			
		||||
		// params[1] = argument1								<--- Description of each argument, so we don't have to allocate new variables and can
 | 
			
		||||
		// params[2] = argument2								<--- use the ones in params[n] directly, to save some time.
 | 
			
		||||
 | 
			
		||||
		// Check receiver and sender validity.					<--- Check ents, maybe need to do this better and more proper later?
 | 
			
		||||
		CHECK_PLAYER(params[1])
 | 
			
		||||
		CHECK_PLAYER(params[2])
 | 
			
		||||
 | 
			
		||||
		// Get * pointer.
 | 
			
		||||
		edict_t *pPlayer = MF_GetPlayerEdict(params[1]);		<--- Players require a different function than INDEXENT because of an HLSDK bug
 | 
			
		||||
 | 
			
		||||
		return 1												<--- If native succeeded, return 1, if the native isn't supposed to return a specific value.		
 | 
			
		||||
																Note: Should be able to do: if (thenative()) and it should return false when it fails, and true when succeeds... is -1 treated as false, or is 0 a must?
 | 
			
		||||
	}
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// ######## Utils:
 | 
			
		||||
void FUNUTIL_ResetPlayer(int index)
 | 
			
		||||
{
 | 
			
		||||
	//MF_PrintSrvConsole("Resetting player index %d! maxclients: %d\n", index, gpGlobals->maxClients);
 | 
			
		||||
	for (int i = 1; i <= gpGlobals->maxClients; i++) {
 | 
			
		||||
		g_bodyhits[index][i] = (char)((1<<HITGROUP_GENERIC) | 
 | 
			
		||||
						(1<<HITGROUP_HEAD) | 
 | 
			
		||||
						(1<<HITGROUP_CHEST) | 
 | 
			
		||||
						(1<<HITGROUP_STOMACH) | 
 | 
			
		||||
						(1<<HITGROUP_LEFTARM) | 
 | 
			
		||||
						(1<<HITGROUP_RIGHTARM)| 
 | 
			
		||||
						(1<<HITGROUP_LEFTLEG) | 
 | 
			
		||||
						(1<<HITGROUP_RIGHTLEG));
 | 
			
		||||
	}
 | 
			
		||||
	// Reset silent slippers
 | 
			
		||||
	g_silent[index] = false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ######## Natives:
 | 
			
		||||
static cell AMX_NATIVE_CALL get_client_listening(AMX *amx, cell *params) // get_client_listening(receiver, sender); = 2 params
 | 
			
		||||
{
 | 
			
		||||
	// Gets who can listen to who.
 | 
			
		||||
	// params[1] = receiver
 | 
			
		||||
	// params[2] = sender
 | 
			
		||||
 | 
			
		||||
	// Check receiver and sender validity.
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
	CHECK_PLAYER(params[2]);
 | 
			
		||||
 | 
			
		||||
	// GET- AND SETCLIENTLISTENING returns "qboolean", an int, probably 0 or 1...
 | 
			
		||||
	return GETCLIENTLISTENING(params[1], params[2]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL set_client_listening(AMX *amx, cell *params) // set_client_listening(receiver, sender, listen); = 3 params
 | 
			
		||||
{
 | 
			
		||||
	// Sets who can listen to who.
 | 
			
		||||
	// params[1] = receiver
 | 
			
		||||
	// params[2] = sender
 | 
			
		||||
	// params[3] = listen
 | 
			
		||||
 | 
			
		||||
	// Check receiver and sender validity.
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
	CHECK_PLAYER(params[2]);
 | 
			
		||||
 | 
			
		||||
	// Make a check on params[3] here later, and call run time error when it's wrong.
 | 
			
		||||
	// To do: find out the possible values to set (0, 1?)
 | 
			
		||||
 | 
			
		||||
	// GET- AND SETCLIENTLISTENING returns "qboolean", an int, probably 0 or 1...
 | 
			
		||||
	return SETCLIENTLISTENING(params[1], params[2], params[3]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL set_user_godmode(AMX *amx, cell *params) // set_user_godmode(index, godmode = 0); = 2 params
 | 
			
		||||
{
 | 
			
		||||
	/* Sets player godmode. If you want to disable godmode set only first parameter. */
 | 
			
		||||
	// params[1] = index
 | 
			
		||||
	// params[2] = godmode = 0
 | 
			
		||||
 | 
			
		||||
	// Check index.
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
 | 
			
		||||
	// Get player pointer.
 | 
			
		||||
	edict_t *pPlayer = MF_GetPlayerEdict(params[1]);
 | 
			
		||||
 | 
			
		||||
	if (params[2] == 1) {
 | 
			
		||||
		// Enable godmode
 | 
			
		||||
		pPlayer->v.takedamage = 0.0;	// 0.0, the player doesn't seem to be able to get hurt.
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		// Disable godmode
 | 
			
		||||
		pPlayer->v.takedamage = 2.0;	// 2.0 seems to be standard value?
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL get_user_godmode(AMX *amx, cell *params) // get_user_godmode(index); = 1 param
 | 
			
		||||
{
 | 
			
		||||
	/* Returns 1 if godmode is set. */
 | 
			
		||||
	// params[1] = index
 | 
			
		||||
 | 
			
		||||
	// Check index.
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
 | 
			
		||||
	// Get player pointer.
 | 
			
		||||
	edict_t *pPlayer = MF_GetPlayerEdict(params[1]);
 | 
			
		||||
 | 
			
		||||
	int godmode = 0;
 | 
			
		||||
 | 
			
		||||
	if (pPlayer->v.takedamage == 0.0) {
 | 
			
		||||
		// God mode is enabled
 | 
			
		||||
		godmode = 1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return godmode;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL give_item(AMX *amx, cell *params) // native give_item(index, const item[]); = 2 params
 | 
			
		||||
{
 | 
			
		||||
	/* Gives item to player, name of item can start
 | 
			
		||||
	* with weapon_, ammo_ and item_. This event
 | 
			
		||||
	* is announced with proper message to all players. */
 | 
			
		||||
	// params[1] = index
 | 
			
		||||
	// params[2] = item...
 | 
			
		||||
 | 
			
		||||
	// Check index.
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
 | 
			
		||||
	// Get player pointer.
 | 
			
		||||
	edict_t *pPlayer = MF_GetPlayerEdict(params[1]);
 | 
			
		||||
 | 
			
		||||
	// Create item entity pointer
 | 
			
		||||
	edict_t	*pItemEntity;
 | 
			
		||||
 | 
			
		||||
	// Make an "intstring" out of 2nd parameter
 | 
			
		||||
	int length;
 | 
			
		||||
	const char *szItem = MF_GetAmxString(amx, params[2], 1, &length);
 | 
			
		||||
 | 
			
		||||
	//check for valid item
 | 
			
		||||
	if (strncmp(szItem, "weapon_", 7) && 
 | 
			
		||||
		strncmp(szItem, "ammo_", 5) && 
 | 
			
		||||
		strncmp(szItem, "item_", 5) &&
 | 
			
		||||
		strncmp(szItem, "tf_weapon_", 10)
 | 
			
		||||
	) {
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//string_t item = MAKE_STRING(szItem);
 | 
			
		||||
	string_t item = ALLOC_STRING(szItem); // Using MAKE_STRING makes "item" contents get lost when we leave this scope! ALLOC_STRING seems to allocate properly...
 | 
			
		||||
	// Create the entity, returns to pointer
 | 
			
		||||
	pItemEntity = CREATE_NAMED_ENTITY(item);
 | 
			
		||||
 | 
			
		||||
	if (FNullEnt(pItemEntity)) {
 | 
			
		||||
		MF_LogError(amx, AMX_ERR_NATIVE, "Item \"%s\" failed to create", szItem);
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//VARS(pItemEntity)->origin = VARS(pPlayer)->origin; // nice to do VARS(ent)->origin instead of ent->v.origin? :-I
 | 
			
		||||
	//I'm not sure, normally I use macros too =P
 | 
			
		||||
	pItemEntity->v.origin = pPlayer->v.origin;
 | 
			
		||||
	pItemEntity->v.spawnflags |= SF_NORESPAWN;	//SF_NORESPAWN;
 | 
			
		||||
 | 
			
		||||
	MDLL_Spawn(pItemEntity);
 | 
			
		||||
 | 
			
		||||
	int save = pItemEntity->v.solid;
 | 
			
		||||
 | 
			
		||||
	MDLL_Touch(pItemEntity, ENT(pPlayer));
 | 
			
		||||
 | 
			
		||||
	//The problem with the original give_item was the
 | 
			
		||||
	// item was not removed.  I had tried this but it
 | 
			
		||||
	// did not work.  OLO's implementation is better.
 | 
			
		||||
	/*
 | 
			
		||||
	int iEnt = ENTINDEX(pItemEntity->v.owner);
 | 
			
		||||
	if (iEnt > 32 || iEnt <1 ) {
 | 
			
		||||
		MDLL_Think(pItemEntity);
 | 
			
		||||
	}*/
 | 
			
		||||
 | 
			
		||||
	if (pItemEntity->v.solid == save) {
 | 
			
		||||
		REMOVE_ENTITY(pItemEntity);
 | 
			
		||||
		//the function did not fail - we're just deleting the item
 | 
			
		||||
		return -1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return ENTINDEX(pItemEntity);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL spawn(AMX *amx, cell *params) // spawn(id) = 1 param
 | 
			
		||||
{
 | 
			
		||||
	// Spawns an entity, this can be a user/player -> spawns at spawnpoints, or created entities seems to need this as a final "kick" into the game? :-)
 | 
			
		||||
	// params[1] = entity to spawn
 | 
			
		||||
 | 
			
		||||
    CHECK_ENTITY(params[1]);
 | 
			
		||||
 | 
			
		||||
	edict_t *pEnt = GETEDICT(params[1]);
 | 
			
		||||
 | 
			
		||||
	MDLL_Spawn(pEnt);
 | 
			
		||||
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL set_user_health(AMX *amx, cell *params) // set_user_health(index, health); = 2 arguments
 | 
			
		||||
{
 | 
			
		||||
	// Sets user health. If health is 0 and below, also kill...
 | 
			
		||||
	// params[1] = index
 | 
			
		||||
	// params[2] = health
 | 
			
		||||
 | 
			
		||||
	// Check index
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
 | 
			
		||||
	// Fetch player pointer
 | 
			
		||||
	edict_t *pPlayer = MF_GetPlayerEdict(params[1]);
 | 
			
		||||
 | 
			
		||||
	// Kill if health too low.
 | 
			
		||||
	if (params[2] > 0)
 | 
			
		||||
		pPlayer->v.health = float(params[2]);
 | 
			
		||||
	else
 | 
			
		||||
		MDLL_ClientKill(pPlayer);
 | 
			
		||||
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL set_user_frags(AMX *amx, cell *params) // set_user_frags(index, frags); = 2 arguments
 | 
			
		||||
{
 | 
			
		||||
	// Sets user frags.
 | 
			
		||||
	// params[1] = index
 | 
			
		||||
	// params[2] = frags
 | 
			
		||||
 | 
			
		||||
	// Check index
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
 | 
			
		||||
	// Fetch player pointer
 | 
			
		||||
	edict_t *pPlayer = MF_GetPlayerEdict(params[1]);
 | 
			
		||||
 | 
			
		||||
	pPlayer->v.frags = params[2];
 | 
			
		||||
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL set_user_armor(AMX *amx, cell *params) // set_user_armor(index, armor); = 2 arguments
 | 
			
		||||
{
 | 
			
		||||
	// Sets user armor.
 | 
			
		||||
	// params[1] = index
 | 
			
		||||
	// params[2] = armor
 | 
			
		||||
 | 
			
		||||
	// Check index
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
 | 
			
		||||
	// Fetch player pointer
 | 
			
		||||
	edict_t *pPlayer = MF_GetPlayerEdict(params[1]);
 | 
			
		||||
 | 
			
		||||
	pPlayer->v.armorvalue = params[2];
 | 
			
		||||
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL set_user_origin(AMX *amx, cell *params) // set_user_origin(index, origin[3]); = 2 arguments
 | 
			
		||||
{
 | 
			
		||||
	// Sets user origin.
 | 
			
		||||
	// params[1] = index
 | 
			
		||||
	// params[2] = origin
 | 
			
		||||
 | 
			
		||||
	// Check index
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
 | 
			
		||||
	// Fetch player pointer
 | 
			
		||||
	edict_t *pPlayer = MF_GetPlayerEdict(params[1]);
 | 
			
		||||
 | 
			
		||||
	cell *newVectorCell = MF_GetAmxAddr(amx, params[2]);
 | 
			
		||||
 | 
			
		||||
	SET_SIZE(pPlayer, pPlayer->v.mins, pPlayer->v.maxs);
 | 
			
		||||
	SET_ORIGIN(pPlayer, Vector((float)newVectorCell[0], (float)newVectorCell[1], (float)newVectorCell[2]));
 | 
			
		||||
	
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL set_user_rendering(AMX *amx, cell *params) // set_user_rendering(index, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16); = 7 arguments
 | 
			
		||||
{
 | 
			
		||||
	// Sets user rendering.
 | 
			
		||||
	// params[1] = index
 | 
			
		||||
	// params[2] = fx
 | 
			
		||||
	// params[3] = r
 | 
			
		||||
	// params[4] = g
 | 
			
		||||
	// params[5] = b
 | 
			
		||||
	// params[6] = render
 | 
			
		||||
	// params[7] = amount
 | 
			
		||||
 | 
			
		||||
	// Check index
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
 | 
			
		||||
	// Fetch player pointer
 | 
			
		||||
	edict_t *pPlayer = MF_GetPlayerEdict(params[1]);
 | 
			
		||||
 | 
			
		||||
	pPlayer->v.renderfx = params[2];
 | 
			
		||||
	Vector newVector = Vector(float(params[3]), float(params[4]), float(params[5]));
 | 
			
		||||
	pPlayer->v.rendercolor = newVector;
 | 
			
		||||
	pPlayer->v.rendermode = params[6];
 | 
			
		||||
	pPlayer->v.renderamt = params[7];
 | 
			
		||||
	
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL set_user_maxspeed(AMX *amx, cell *params) // set_user_maxspeed(index, Float:speed = -1.0) = 2 arguments
 | 
			
		||||
{
 | 
			
		||||
	// Sets user maxspeed.
 | 
			
		||||
	// params[1] = index
 | 
			
		||||
	// params[2] = speed (should be -1.0 if not specified) (JGHG: unspecified parameters seems to always be -1.0!)
 | 
			
		||||
 | 
			
		||||
	REAL fNewSpeed = amx_ctof(params[2]);
 | 
			
		||||
 | 
			
		||||
	// Check index
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
 | 
			
		||||
	// Fetch player pointer
 | 
			
		||||
	edict_t *pPlayer = MF_GetPlayerEdict(params[1]);
 | 
			
		||||
 | 
			
		||||
	SETCLIENTMAXSPEED(pPlayer, fNewSpeed);
 | 
			
		||||
	pPlayer->v.maxspeed = fNewSpeed;
 | 
			
		||||
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL get_user_maxspeed(AMX *amx, cell *params) // Float:get_user_maxspeed(index) = 1 argument
 | 
			
		||||
{
 | 
			
		||||
	// Gets user maxspeed.
 | 
			
		||||
	// params[1] = index
 | 
			
		||||
 | 
			
		||||
	// Check index
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
 | 
			
		||||
	// Fetch player pointer
 | 
			
		||||
	edict_t *pPlayer = MF_GetPlayerEdict(params[1]);
 | 
			
		||||
 | 
			
		||||
	return amx_ftoc(pPlayer->v.maxspeed);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL set_user_gravity(AMX *amx, cell *params) // set_user_gravity(index, Float:gravity = 1.0) = 2 arguments
 | 
			
		||||
{
 | 
			
		||||
	// Sets user gravity.
 | 
			
		||||
	// params[1] = index
 | 
			
		||||
	// params[2] = gravity (=-1.0)
 | 
			
		||||
	// Check index
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
 | 
			
		||||
	// Fetch player pointer
 | 
			
		||||
	edict_t *pPlayer = MF_GetPlayerEdict(params[1]);
 | 
			
		||||
 | 
			
		||||
	pPlayer->v.gravity = amx_ctof(params[2]);
 | 
			
		||||
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL get_user_gravity(AMX *amx, cell *params) // Float:get_user_gravity(index) = 1 argument
 | 
			
		||||
{
 | 
			
		||||
	// Gets user gravity.
 | 
			
		||||
	// params[1] = index
 | 
			
		||||
 | 
			
		||||
	// Check index
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
 | 
			
		||||
	// Fetch player pointer
 | 
			
		||||
	edict_t *pPlayer = MF_GetPlayerEdict(params[1]);
 | 
			
		||||
 | 
			
		||||
	return amx_ftoc(pPlayer->v.gravity); 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL set_user_hitzones(AMX *amx, cell *params) // set_user_hitzones(index = 0, target = 0, body = 255); = 3 arguments
 | 
			
		||||
{
 | 
			
		||||
	// Sets user hitzones.
 | 
			
		||||
	// params[1] = the one(s) who shoot(s), shooter
 | 
			
		||||
	int shooter = params[1];
 | 
			
		||||
 | 
			
		||||
	// params[2] = the one getting hit
 | 
			
		||||
	int gettingHit = params[2];
 | 
			
		||||
 | 
			
		||||
	// params[3] = specified hit zones
 | 
			
		||||
	int hitzones = params[3];
 | 
			
		||||
 | 
			
		||||
	//set_user_hitzones(id, 0, 0) // Makes ID not able to shoot EVERYONE - id can shoot on 0 (all) at 0
 | 
			
		||||
	//set_user_hitzones(0, id, 0) // Makes EVERYONE not able to shoot ID - 0 (all) can shoot id at 0
 | 
			
		||||
	if (shooter == 0 && gettingHit == 0) {
 | 
			
		||||
		for (int i = 1; i <= gpGlobals->maxClients; i++) {
 | 
			
		||||
			for (int j = 1; j <= gpGlobals->maxClients; j++) {
 | 
			
		||||
				g_bodyhits[i][j] = hitzones;
 | 
			
		||||
			}
 | 
			
		||||
			//g_zones_toHit[i] = hitzones;
 | 
			
		||||
			//g_zones_getHit[i] = hitzones;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else if (shooter == 0 && gettingHit != 0) {
 | 
			
		||||
		// "All" shooters, target (gettingHit) should be existing player id
 | 
			
		||||
		CHECK_PLAYER(gettingHit);
 | 
			
		||||
		// Where can all hit gettingHit?
 | 
			
		||||
		for (int i = 1; i <= gpGlobals->maxClients; i++)
 | 
			
		||||
			g_bodyhits[i][gettingHit] = hitzones;
 | 
			
		||||
	}
 | 
			
		||||
	else if (shooter != 0 && gettingHit == 0) {
 | 
			
		||||
		// Shooter can hit all in bodyparts.
 | 
			
		||||
		CHECK_PLAYER(shooter);
 | 
			
		||||
		for (int i = 1; i <= gpGlobals->maxClients; i++)
 | 
			
		||||
			g_bodyhits[shooter][i] = hitzones;
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		// Specified, where can player A hit player B?
 | 
			
		||||
		CHECK_PLAYER(shooter);
 | 
			
		||||
		CHECK_PLAYER(gettingHit);
 | 
			
		||||
		g_bodyhits[shooter][gettingHit] = hitzones;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL get_user_hitzones(AMX *amx, cell *params) // get_user_hitzones(index, target); = 2 arguments
 | 
			
		||||
{
 | 
			
		||||
	int shooter = params[1];
 | 
			
		||||
	CHECK_PLAYER(shooter);
 | 
			
		||||
	int target = params[2];
 | 
			
		||||
	CHECK_PLAYER(target);
 | 
			
		||||
	return g_bodyhits[shooter][target];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL set_user_noclip(AMX *amx, cell *params) // set_user_noclip(index, noclip = 0); = 2 arguments
 | 
			
		||||
{
 | 
			
		||||
	// Sets user to no clipping mode.
 | 
			
		||||
	// params[1] = index
 | 
			
		||||
	// params[2] = no clip or not...
 | 
			
		||||
 | 
			
		||||
	// Check index
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
 | 
			
		||||
	// Fetch player pointer
 | 
			
		||||
	edict_t *pPlayer = MF_GetPlayerEdict(params[1]);
 | 
			
		||||
 | 
			
		||||
	if (params[2] == 1)
 | 
			
		||||
		pPlayer->v.movetype = MOVETYPE_NOCLIP;
 | 
			
		||||
	else
 | 
			
		||||
		pPlayer->v.movetype = MOVETYPE_WALK;
 | 
			
		||||
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL get_user_noclip(AMX *amx, cell *params) // get_user_noclip(index); = 1 argument
 | 
			
		||||
{
 | 
			
		||||
	// Gets user noclip.
 | 
			
		||||
	// params[1] = index
 | 
			
		||||
 | 
			
		||||
	// Check index
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
 | 
			
		||||
	// Fetch player pointer
 | 
			
		||||
	edict_t *pPlayer = MF_GetPlayerEdict(params[1]);
 | 
			
		||||
 | 
			
		||||
	return pPlayer->v.movetype == MOVETYPE_NOCLIP;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// JustinHoMi made this one originally
 | 
			
		||||
static cell AMX_NATIVE_CALL set_user_footsteps(AMX *amx, cell *params) // set_user_footsteps(id, set = 1); = 2 params
 | 
			
		||||
{
 | 
			
		||||
	// Gives player silent footsteps.
 | 
			
		||||
	// if set=0 it will return footsteps to normal
 | 
			
		||||
	// params[1] = index of player
 | 
			
		||||
	// params[2] = 0 = normal footstep sound, 1 = silent slippers
 | 
			
		||||
 | 
			
		||||
	// Check index
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
 | 
			
		||||
	// Fetch player pointer
 | 
			
		||||
	edict_t *pPlayer = MF_GetPlayerEdict(params[1]);
 | 
			
		||||
	
 | 
			
		||||
	if (params[2]) {                
 | 
			
		||||
		pPlayer->v.flTimeStepSound = 999;
 | 
			
		||||
		g_silent[params[1]] = true;
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		pPlayer->v.flTimeStepSound = STANDARDTIMESTEPSOUND;
 | 
			
		||||
		g_silent[params[1]] = false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static cell AMX_NATIVE_CALL get_user_footsteps(AMX *amx, cell *params)
 | 
			
		||||
{
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
 | 
			
		||||
	return g_silent[params[1]];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// SidLuke
 | 
			
		||||
static cell AMX_NATIVE_CALL strip_user_weapons(AMX *amx, cell *params) // index
 | 
			
		||||
{
 | 
			
		||||
	CHECK_PLAYER(params[1]);
 | 
			
		||||
 | 
			
		||||
	edict_t* pPlayer = MF_GetPlayerEdict(params[1]);
 | 
			
		||||
 | 
			
		||||
	string_t item = MAKE_STRING("player_weaponstrip");
 | 
			
		||||
	edict_t *pent = CREATE_NAMED_ENTITY(item);
 | 
			
		||||
	
 | 
			
		||||
	if (FNullEnt(pent)) 
 | 
			
		||||
	{
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	MDLL_Spawn(pent);
 | 
			
		||||
	MDLL_Use(pent, pPlayer);
 | 
			
		||||
	REMOVE_ENTITY(pent);
 | 
			
		||||
 | 
			
		||||
	*reinterpret_cast<int *>(MF_PlayerPropAddr(params[1], Player_CurrentWeapon)) = 0;
 | 
			
		||||
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
AMX_NATIVE_INFO fun_Exports[] = {
 | 
			
		||||
	{"get_client_listen",		get_client_listening},
 | 
			
		||||
	{"set_client_listen",		set_client_listening},
 | 
			
		||||
	{"set_user_godmode",		set_user_godmode},
 | 
			
		||||
	{"get_user_godmode",		get_user_godmode},
 | 
			
		||||
	{"set_user_health",			set_user_health},
 | 
			
		||||
	{"give_item",				give_item},
 | 
			
		||||
	{"spawn",					spawn},
 | 
			
		||||
	{"set_user_frags",			set_user_frags},
 | 
			
		||||
	{"set_user_armor",			set_user_armor},
 | 
			
		||||
	{"set_user_origin",			set_user_origin},
 | 
			
		||||
	{"set_user_rendering",		set_user_rendering},
 | 
			
		||||
	{"set_user_maxspeed",		set_user_maxspeed},
 | 
			
		||||
	{"get_user_maxspeed",		get_user_maxspeed},
 | 
			
		||||
	{"set_user_gravity",		set_user_gravity},
 | 
			
		||||
	{"get_user_gravity",		get_user_gravity},
 | 
			
		||||
	{"get_user_footsteps",		get_user_footsteps},
 | 
			
		||||
	{"set_user_hitzones",		set_user_hitzones},
 | 
			
		||||
	{"get_user_hitzones",		get_user_hitzones},
 | 
			
		||||
	{"set_user_noclip",			set_user_noclip},
 | 
			
		||||
	{"get_user_noclip",			get_user_noclip},
 | 
			
		||||
	{"set_user_footsteps",		set_user_footsteps},
 | 
			
		||||
	{"strip_user_weapons",		strip_user_weapons},
 | 
			
		||||
	  /////////////////// <--- 19 chars max in current small version
 | 
			
		||||
	{NULL,					NULL}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/******************************************************************************************/
 | 
			
		||||
void PlayerPreThink(edict_t *pEntity)
 | 
			
		||||
{
 | 
			
		||||
	if (g_silent[ENTINDEX(pEntity)]) {
 | 
			
		||||
		pEntity->v.flTimeStepSound = 999; 
 | 
			
		||||
		RETURN_META(MRES_HANDLED);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	RETURN_META(MRES_IGNORED);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int ClientConnect(edict_t *pPlayer, const char *pszName, const char *pszAddress, char szRejectReason[128])
 | 
			
		||||
{
 | 
			
		||||
	// Reset stuff:
 | 
			
		||||
	FUNUTIL_ResetPlayer(ENTINDEX(pPlayer));
 | 
			
		||||
 | 
			
		||||
	RETURN_META_VALUE(MRES_IGNORED, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TraceLine(const float *v1, const float *v2, int fNoMonsters, edict_t *shooter, TraceResult *ptr) {
 | 
			
		||||
	TRACE_LINE(v1, v2, fNoMonsters, shooter, ptr);
 | 
			
		||||
	if ( ptr->pHit && (ptr->pHit->v.flags& (FL_CLIENT | FL_FAKECLIENT))
 | 
			
		||||
	&& shooter && (shooter->v.flags & (FL_CLIENT | FL_FAKECLIENT)) ) {
 | 
			
		||||
		int shooterIndex = ENTINDEX(shooter);
 | 
			
		||||
		if ( !(g_bodyhits[shooterIndex][ENTINDEX(ptr->pHit)] & (1<<ptr->iHitgroup)) )
 | 
			
		||||
			ptr->flFraction = 1.0;
 | 
			
		||||
	}
 | 
			
		||||
	RETURN_META(MRES_SUPERCEDE);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//int g_hitIndex, g_canTargetGetHit, g_canShooterHitThere;
 | 
			
		||||
//void TraceLine(const float *v1, const float *v2, int fNoMonsters, edict_t *shooter, TraceResult *ptr) {
 | 
			
		||||
//	if (!pentToSkip || (pentToSkip->v.flags & (FL_CLIENT | FL_FAKECLIENT)) == false || pentToSkip->v.deadflag != DEAD_NO)
 | 
			
		||||
//		RETURN_META(MRES_IGNORED);
 | 
			
		||||
//
 | 
			
		||||
//	TRACE_LINE(v1, v2, fNoMonsters, shooter, ptr); // Filter shooter
 | 
			
		||||
//
 | 
			
		||||
//	if (!ptr->pHit || (ptr->pHit->v.flags & (FL_CLIENT | FL_FAKECLIENT)) == false )
 | 
			
		||||
//		RETURN_META(MRES_SUPERCEDE);
 | 
			
		||||
//
 | 
			
		||||
//	g_hitIndex = ENTINDEX(ptr->pHit);
 | 
			
		||||
//	//bool blocked = false;
 | 
			
		||||
//	g_canTargetGetHit = g_zones_getHit[g_hitIndex] & (1 << ptr->iHitgroup);
 | 
			
		||||
//	g_canShooterHitThere = g_zones_toHit[ENTINDEX(shooter)] & (1 << ptr->iHitgroup);
 | 
			
		||||
//
 | 
			
		||||
//	if (!g_canTargetGetHit || !g_canShooterHitThere) {
 | 
			
		||||
//		ptr->flFraction = 1.0;	// set to not hit anything (1.0 = shot doesn't hit anything)
 | 
			
		||||
//		//blocked = true;
 | 
			
		||||
//	}
 | 
			
		||||
//	/*
 | 
			
		||||
//	if (blocked) {
 | 
			
		||||
//		MF_PrintSrvConsole("%s was blocked from hitting %s: %d and %d\n", MF_GetPlayerName(ENTINDEX(pentToSkip)), MF_GetPlayerName(hitIndex), canTargetGetHit, canShooterHitThere);
 | 
			
		||||
//	}
 | 
			
		||||
//	else {
 | 
			
		||||
//		MF_PrintSrvConsole("%s was NOT blocked from hitting %s: %d and %d\n", MF_GetPlayerName(ENTINDEX(pentToSkip)), MF_GetPlayerName(hitIndex), canTargetGetHit, canShooterHitThere);
 | 
			
		||||
//	}
 | 
			
		||||
//	*/
 | 
			
		||||
//
 | 
			
		||||
//	RETURN_META(MRES_SUPERCEDE);
 | 
			
		||||
//}
 | 
			
		||||
 | 
			
		||||
void OnAmxxAttach()
 | 
			
		||||
{
 | 
			
		||||
	MF_AddNatives(fun_Exports);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// The content of OnPluginsLoaded() was moved from OnAmxxAttach with AMXx 1.5 because for some reason gpGlobals->maxClients wasn't
 | 
			
		||||
// initialized to its proper value until some time after OnAmxxAttach(). In OnAmxxAttach() it always showed 0. /JGHG
 | 
			
		||||
void OnPluginsLoaded() {
 | 
			
		||||
	// Reset stuff - hopefully this should
 | 
			
		||||
	for (int i = 1; i <= gpGlobals->maxClients; i++) {
 | 
			
		||||
		// Reset all hitzones
 | 
			
		||||
		FUNUTIL_ResetPlayer(i);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
/*
 | 
			
		||||
void ClientConnectFakeBot(int index)
 | 
			
		||||
{
 | 
			
		||||
	FUNUTIL_ResetPlayer(index);
 | 
			
		||||
	//MF_Log("A bot connects, forwarded to fun! The bot is %d!", index);
 | 
			
		||||
	//CPlayer* player;
 | 
			
		||||
}
 | 
			
		||||
*/
 | 
			
		||||
							
								
								
									
										73
									
								
								modules/fun/fun.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								modules/fun/fun.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,73 @@
 | 
			
		||||
// vim: set ts=4 sw=4 tw=99 noet:
 | 
			
		||||
//
 | 
			
		||||
// AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
 | 
			
		||||
// Copyright (C) The AMX Mod X Development Team.
 | 
			
		||||
//
 | 
			
		||||
// This software is licensed under the GNU General Public License, version 3 or higher.
 | 
			
		||||
// Additional exceptions apply. For full license details, see LICENSE.txt or visit:
 | 
			
		||||
//     https://alliedmods.net/amxmodx-license
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Fun Module
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#include "amxxmodule.h"
 | 
			
		||||
 | 
			
		||||
// Fun-specific defines below
 | 
			
		||||
#define GETCLIENTLISTENING		(*g_engfuncs.pfnVoice_GetClientListening)
 | 
			
		||||
#define SETCLIENTLISTENING		(*g_engfuncs.pfnVoice_SetClientListening)
 | 
			
		||||
#define SETCLIENTMAXSPEED		(*g_engfuncs.pfnSetClientMaxspeed)
 | 
			
		||||
#define GETPLAYERAUTHID			(*g_engfuncs.pfnGetPlayerAuthId)
 | 
			
		||||
#define	SF_NORESPAWN			(1 << 30)// !!!set this bit on guns and stuff that should never respawn.
 | 
			
		||||
#define STANDARDTIMESTEPSOUND	400
 | 
			
		||||
 | 
			
		||||
#define HITGROUP_GENERIC		0 // none
 | 
			
		||||
#define HITGROUP_HEAD			1 // 1 << 1 = 2
 | 
			
		||||
#define HITGROUP_CHEST			2 // 1 << 2 = 4
 | 
			
		||||
#define HITGROUP_STOMACH		3 // 8
 | 
			
		||||
#define HITGROUP_LEFTARM		4 // 16
 | 
			
		||||
#define HITGROUP_RIGHTARM		5 // 32
 | 
			
		||||
#define HITGROUP_LEFTLEG		6 // 64
 | 
			
		||||
#define HITGROUP_RIGHTLEG		7 // 128
 | 
			
		||||
// Fun-specific defines above
 | 
			
		||||
 | 
			
		||||
// The stuff below might end up in a class soon
 | 
			
		||||
char g_bodyhits[33][33];	// where can the guy in the first dimension hit the people in the 2nd dimension? :-)
 | 
			
		||||
bool g_silent[33];			// used for set_user_footsteps()
 | 
			
		||||
//int g_ResetHUD;
 | 
			
		||||
bool g_ResetHUDbool;
 | 
			
		||||
edict_t* g_edict;
 | 
			
		||||
//bool g_bot[33];				// is user bot? <--- removed, only needed with akimbot
 | 
			
		||||
// Globals above
 | 
			
		||||
 | 
			
		||||
#define CHECK_ENTITY(x) \
 | 
			
		||||
	if (x < 0 || x > gpGlobals->maxEntities) { \
 | 
			
		||||
		MF_LogError(amx, AMX_ERR_NATIVE, "Entity out of range (%d)", x); \
 | 
			
		||||
		return 0; \
 | 
			
		||||
	} else { \
 | 
			
		||||
		if (x <= gpGlobals->maxClients) { \
 | 
			
		||||
			if (!MF_IsPlayerIngame(x)) { \
 | 
			
		||||
				MF_LogError(amx, AMX_ERR_NATIVE, "Invalid player %d (not in-game)", x); \
 | 
			
		||||
				return 0; \
 | 
			
		||||
			} \
 | 
			
		||||
		} else { \
 | 
			
		||||
			if (x != 0 && FNullEnt(INDEXENT(x))) { \
 | 
			
		||||
				MF_LogError(amx, AMX_ERR_NATIVE, "Invalid entity %d", x); \
 | 
			
		||||
				return 0; \
 | 
			
		||||
			} \
 | 
			
		||||
		} \
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#define CHECK_PLAYER(x) \
 | 
			
		||||
	if (x < 1 || x > gpGlobals->maxClients) { \
 | 
			
		||||
		MF_LogError(amx, AMX_ERR_NATIVE, "Player out of range (%d)", x); \
 | 
			
		||||
		return 0; \
 | 
			
		||||
	} else { \
 | 
			
		||||
		if (!MF_IsPlayerIngame(x) || FNullEnt(MF_GetPlayerEdict(x))) { \
 | 
			
		||||
			MF_LogError(amx, AMX_ERR_NATIVE, "Invalid player %d", x); \
 | 
			
		||||
			return 0; \
 | 
			
		||||
		} \
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#define GETEDICT(n) \
 | 
			
		||||
	((n >= 1 && n <= gpGlobals->maxClients) ? MF_GetPlayerEdict(n) : INDEXENT(n))
 | 
			
		||||
							
								
								
									
										507
									
								
								modules/fun/moduleconfig.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										507
									
								
								modules/fun/moduleconfig.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,507 @@
 | 
			
		||||
// vim: set ts=4 sw=4 tw=99 noet:
 | 
			
		||||
//
 | 
			
		||||
// AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
 | 
			
		||||
// Copyright (C) The AMX Mod X Development Team.
 | 
			
		||||
//
 | 
			
		||||
// This software is licensed under the GNU General Public License, version 3 or higher.
 | 
			
		||||
// Additional exceptions apply. For full license details, see LICENSE.txt or visit:
 | 
			
		||||
//     https://alliedmods.net/amxmodx-license
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Module Config
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifndef __MODULECONFIG_H__
 | 
			
		||||
#define __MODULECONFIG_H__
 | 
			
		||||
 | 
			
		||||
#include <amxmodx_version.h>
 | 
			
		||||
 | 
			
		||||
// Module info
 | 
			
		||||
#define MODULE_NAME "Fun"
 | 
			
		||||
#define MODULE_VERSION AMXX_VERSION
 | 
			
		||||
#define MODULE_AUTHOR "AMX Mod X Dev Team"
 | 
			
		||||
#define MODULE_URL "http://www.amxmodx.org"
 | 
			
		||||
#define MODULE_LOGTAG "FUN"
 | 
			
		||||
#define MODULE_LIBRARY "fun"
 | 
			
		||||
#define MODULE_LIBCLASS ""
 | 
			
		||||
// If you want the module not to be reloaded on mapchange, remove / comment out the next line
 | 
			
		||||
#define MODULE_RELOAD_ON_MAPCHANGE
 | 
			
		||||
 | 
			
		||||
#ifdef __DATE__
 | 
			
		||||
#define MODULE_DATE __DATE__
 | 
			
		||||
#else // __DATE__
 | 
			
		||||
#define MODULE_DATE "Unknown"
 | 
			
		||||
#endif // __DATE__
 | 
			
		||||
 | 
			
		||||
// metamod plugin?
 | 
			
		||||
#define USE_METAMOD
 | 
			
		||||
 | 
			
		||||
// use memory manager/tester?
 | 
			
		||||
// note that if you use this, you cannot construct/allocate 
 | 
			
		||||
// anything before the module attached (OnAmxxAttach).
 | 
			
		||||
// be careful of default constructors using new/malloc!
 | 
			
		||||
// #define MEMORY_TEST
 | 
			
		||||
 | 
			
		||||
// Unless you use STL or exceptions, keep this commented.
 | 
			
		||||
// It allows you to compile without libstdc++.so as a dependency
 | 
			
		||||
// #define NO_ALLOC_OVERRIDES
 | 
			
		||||
 | 
			
		||||
// Uncomment this if you are using MSVC8 or greater and want to fix some of the compatibility issues yourself 
 | 
			
		||||
// #define NO_MSVC8_AUTO_COMPAT
 | 
			
		||||
 | 
			
		||||
/** 
 | 
			
		||||
 * AMXX Init functions
 | 
			
		||||
 * Also consider using FN_META_*
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/** AMXX query */
 | 
			
		||||
//#define FN_AMXX_QUERY OnAmxxQuery
 | 
			
		||||
 | 
			
		||||
/** AMXX attach
 | 
			
		||||
 * Do native functions init here (MF_AddNatives)
 | 
			
		||||
 */
 | 
			
		||||
#define FN_AMXX_ATTACH OnAmxxAttach
 | 
			
		||||
 | 
			
		||||
/** AMXX Detach (unload) */
 | 
			
		||||
//#define FN_AMXX_DETACH OnAmxxDetach
 | 
			
		||||
 | 
			
		||||
/** All plugins loaded
 | 
			
		||||
 * Do forward functions init here (MF_RegisterForward)
 | 
			
		||||
 */
 | 
			
		||||
#define FN_AMXX_PLUGINSLOADED OnPluginsLoaded
 | 
			
		||||
 | 
			
		||||
/** All plugins are about to be unloaded */
 | 
			
		||||
//#define FN_AMXX_PLUGINSUNLOADING OnPluginsUnloading
 | 
			
		||||
 | 
			
		||||
/** All plugins are now unloaded */
 | 
			
		||||
//#define FN_AMXX_PLUGINSUNLOADED OnPluginsUnloaded
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**** METAMOD ****/
 | 
			
		||||
// If your module doesn't use metamod, you may close the file now :)
 | 
			
		||||
#ifdef USE_METAMOD
 | 
			
		||||
// ----
 | 
			
		||||
// Hook Functions
 | 
			
		||||
// Uncomment these to be called
 | 
			
		||||
// You can also change the function name
 | 
			
		||||
 | 
			
		||||
// - Metamod init functions
 | 
			
		||||
// Also consider using FN_AMXX_*
 | 
			
		||||
// Meta query
 | 
			
		||||
//#define FN_META_QUERY OnMetaQuery
 | 
			
		||||
// Meta attach
 | 
			
		||||
//#define FN_META_ATTACH OnMetaAttach
 | 
			
		||||
// Meta dettach
 | 
			
		||||
//#define FN_META_DETACH OnMetaDetach
 | 
			
		||||
 | 
			
		||||
// (wd) are Will Day's notes
 | 
			
		||||
// - GetEntityAPI2 functions
 | 
			
		||||
// #define FN_GameDLLInit				GameDLLInit					/* pfnGameInit() */
 | 
			
		||||
// #define FN_DispatchSpawn				DispatchSpawn				/* pfnSpawn() */
 | 
			
		||||
// #define FN_DispatchThink				DispatchThink				/* pfnThink() */
 | 
			
		||||
// #define FN_DispatchUse				DispatchUse					/* pfnUse() */
 | 
			
		||||
// #define FN_DispatchTouch				DispatchTouch				/* pfnTouch() */
 | 
			
		||||
// #define FN_DispatchBlocked			DispatchBlocked				/* pfnBlocked() */
 | 
			
		||||
// #define FN_DispatchKeyValue			DispatchKeyValue			/* pfnKeyValue() */
 | 
			
		||||
// #define FN_DispatchSave				DispatchSave				/* pfnSave() */
 | 
			
		||||
// #define FN_DispatchRestore			DispatchRestore				/* pfnRestore() */
 | 
			
		||||
// #define FN_DispatchObjectCollsionBox	DispatchObjectCollsionBox	/* pfnSetAbsBox() */
 | 
			
		||||
// #define FN_SaveWriteFields			SaveWriteFields				/* pfnSaveWriteFields() */
 | 
			
		||||
// #define FN_SaveReadFields			SaveReadFields				/* pfnSaveReadFields() */
 | 
			
		||||
// #define FN_SaveGlobalState			SaveGlobalState				/* pfnSaveGlobalState() */
 | 
			
		||||
// #define FN_RestoreGlobalState		RestoreGlobalState			/* pfnRestoreGlobalState() */
 | 
			
		||||
// #define FN_ResetGlobalState			ResetGlobalState			/* pfnResetGlobalState() */
 | 
			
		||||
#define FN_ClientConnect				ClientConnect				/* pfnClientConnect()			(wd) Client has connected */
 | 
			
		||||
// #define FN_ClientDisconnect			ClientDisconnect			/* pfnClientDisconnect()		(wd) Player has left the game */
 | 
			
		||||
// #define FN_ClientKill				ClientKill					/* pfnClientKill()				(wd) Player has typed "kill" */
 | 
			
		||||
// #define FN_ClientPutInServer			ClientPutInServer			/* pfnClientPutInServer()		(wd) Client is entering the game */
 | 
			
		||||
// #define FN_ClientCommand				ClientCommand				/* pfnClientCommand()			(wd) Player has sent a command (typed or from a bind) */
 | 
			
		||||
// #define FN_ClientUserInfoChanged		ClientUserInfoChanged		/* pfnClientUserInfoChanged()	(wd) Client has updated their setinfo structure */
 | 
			
		||||
// #define FN_ServerActivate			ServerActivate				/* pfnServerActivate()			(wd) Server is starting a new map */
 | 
			
		||||
// #define FN_ServerDeactivate			ServerDeactivate			/* pfnServerDeactivate()		(wd) Server is leaving the map (shutdown or changelevel); SDK2 */
 | 
			
		||||
#define FN_PlayerPreThink			PlayerPreThink				/* pfnPlayerPreThink() */
 | 
			
		||||
// #define FN_PlayerPostThink			PlayerPostThink				/* pfnPlayerPostThink() */
 | 
			
		||||
// #define FN_StartFrame				StartFrame					/* pfnStartFrame() */
 | 
			
		||||
// #define FN_ParmsNewLevel				ParmsNewLevel				/* pfnParmsNewLevel() */
 | 
			
		||||
// #define FN_ParmsChangeLevel			ParmsChangeLevel			/* pfnParmsChangeLevel() */
 | 
			
		||||
// #define FN_GetGameDescription		GetGameDescription			/* pfnGetGameDescription()		Returns string describing current .dll.  E.g. "TeamFotrress 2" "Half-Life" */
 | 
			
		||||
// #define FN_PlayerCustomization		PlayerCustomization			/* pfnPlayerCustomization()	Notifies .dll of new customization for player. */
 | 
			
		||||
// #define FN_SpectatorConnect			SpectatorConnect			/* pfnSpectatorConnect()		Called when spectator joins server */
 | 
			
		||||
// #define FN_SpectatorDisconnect		SpectatorDisconnect			/* pfnSpectatorDisconnect()	Called when spectator leaves the server */
 | 
			
		||||
// #define FN_SpectatorThink			SpectatorThink				/* pfnSpectatorThink()			Called when spectator sends a command packet (usercmd_t) */
 | 
			
		||||
// #define FN_Sys_Error					Sys_Error					/* pfnSys_Error()				Notify game .dll that engine is going to shut down.  Allows mod authors to set a breakpoint.  SDK2 */
 | 
			
		||||
// #define FN_PM_Move					PM_Move						/* pfnPM_Move()				(wd) SDK2 */
 | 
			
		||||
// #define FN_PM_Init					PM_Init						/* pfnPM_Init()				Server version of player movement initialization; (wd) SDK2 */
 | 
			
		||||
// #define FN_PM_FindTextureType		PM_FindTextureType			/* pfnPM_FindTextureType()		(wd) SDK2 */
 | 
			
		||||
// #define FN_SetupVisibility			SetupVisibility				/* pfnSetupVisibility()		Set up PVS and PAS for networking for this client; (wd) SDK2 */
 | 
			
		||||
// #define FN_UpdateClientData			UpdateClientData			/* pfnUpdateClientData()		Set up data sent only to specific client; (wd) SDK2 */
 | 
			
		||||
// #define FN_AddToFullPack				AddToFullPack				/* pfnAddToFullPack()			(wd) SDK2 */
 | 
			
		||||
// #define FN_CreateBaseline			CreateBaseline				/* pfnCreateBaseline()			Tweak entity baseline for network encoding allows setup of player baselines too.; (wd) SDK2 */
 | 
			
		||||
// #define FN_RegisterEncoders			RegisterEncoders			/* pfnRegisterEncoders()		Callbacks for network encoding; (wd) SDK2 */
 | 
			
		||||
// #define FN_GetWeaponData				GetWeaponData				/* pfnGetWeaponData()			(wd) SDK2 */
 | 
			
		||||
// #define FN_CmdStart					CmdStart					/* pfnCmdStart()				(wd) SDK2 */
 | 
			
		||||
// #define FN_CmdEnd					CmdEnd						/* pfnCmdEnd()					(wd) SDK2 */
 | 
			
		||||
// #define FN_ConnectionlessPacket		ConnectionlessPacket		/* pfnConnectionlessPacket()	(wd) SDK2 */
 | 
			
		||||
// #define FN_GetHullBounds				GetHullBounds				/* pfnGetHullBounds()			(wd) SDK2 */
 | 
			
		||||
// #define FN_CreateInstancedBaselines	CreateInstancedBaselines	/* pfnCreateInstancedBaselines()	(wd) SDK2 */
 | 
			
		||||
// #define FN_InconsistentFile			InconsistentFile			/* pfnInconsistentFile()		(wd) SDK2 */
 | 
			
		||||
// #define FN_AllowLagCompensation		AllowLagCompensation		/* pfnAllowLagCompensation()	(wd) SDK2 */
 | 
			
		||||
 | 
			
		||||
// - GetEntityAPI2_Post functions
 | 
			
		||||
// #define FN_GameDLLInit_Post					GameDLLInit_Post
 | 
			
		||||
// #define FN_DispatchSpawn_Post				DispatchSpawn_Post
 | 
			
		||||
// #define FN_DispatchThink_Post				DispatchThink_Post
 | 
			
		||||
// #define FN_DispatchUse_Post					DispatchUse_Post
 | 
			
		||||
// #define FN_DispatchTouch_Post				DispatchTouch_Post
 | 
			
		||||
// #define FN_DispatchBlocked_Post				DispatchBlocked_Post
 | 
			
		||||
// #define FN_DispatchKeyValue_Post				DispatchKeyValue_Post
 | 
			
		||||
// #define FN_DispatchSave_Post					DispatchSave_Post
 | 
			
		||||
// #define FN_DispatchRestore_Post				DispatchRestore_Post
 | 
			
		||||
// #define FN_DispatchObjectCollsionBox_Post	DispatchObjectCollsionBox_Post
 | 
			
		||||
// #define FN_SaveWriteFields_Post				SaveWriteFields_Post
 | 
			
		||||
// #define FN_SaveReadFields_Post				SaveReadFields_Post
 | 
			
		||||
// #define FN_SaveGlobalState_Post				SaveGlobalState_Post
 | 
			
		||||
// #define FN_RestoreGlobalState_Post			RestoreGlobalState_Post
 | 
			
		||||
// #define FN_ResetGlobalState_Post				ResetGlobalState_Post
 | 
			
		||||
// #define FN_ClientConnect_Post				ClientConnect_Post
 | 
			
		||||
// #define FN_ClientDisconnect_Post				ClientDisconnect_Post
 | 
			
		||||
// #define FN_ClientKill_Post					ClientKill_Post
 | 
			
		||||
// #define FN_ClientPutInServer_Post			ClientPutInServer_Post
 | 
			
		||||
// #define FN_ClientCommand_Post				ClientCommand_Post
 | 
			
		||||
// #define FN_ClientUserInfoChanged_Post		ClientUserInfoChanged_Post
 | 
			
		||||
// #define FN_ServerActivate_Post				ServerActivate_Post
 | 
			
		||||
// #define FN_ServerDeactivate_Post				ServerDeactivate_Post
 | 
			
		||||
// #define FN_PlayerPreThink_Post				PlayerPreThink_Post
 | 
			
		||||
// #define FN_PlayerPostThink_Post				PlayerPostThink_Post
 | 
			
		||||
// #define FN_StartFrame_Post					StartFrame_Post
 | 
			
		||||
// #define FN_ParmsNewLevel_Post				ParmsNewLevel_Post
 | 
			
		||||
// #define FN_ParmsChangeLevel_Post				ParmsChangeLevel_Post
 | 
			
		||||
// #define FN_GetGameDescription_Post			GetGameDescription_Post
 | 
			
		||||
// #define FN_PlayerCustomization_Post			PlayerCustomization_Post
 | 
			
		||||
// #define FN_SpectatorConnect_Post				SpectatorConnect_Post
 | 
			
		||||
// #define FN_SpectatorDisconnect_Post			SpectatorDisconnect_Post
 | 
			
		||||
// #define FN_SpectatorThink_Post				SpectatorThink_Post
 | 
			
		||||
// #define FN_Sys_Error_Post					Sys_Error_Post
 | 
			
		||||
// #define FN_PM_Move_Post						PM_Move_Post
 | 
			
		||||
// #define FN_PM_Init_Post						PM_Init_Post
 | 
			
		||||
// #define FN_PM_FindTextureType_Post			PM_FindTextureType_Post
 | 
			
		||||
// #define FN_SetupVisibility_Post				SetupVisibility_Post
 | 
			
		||||
// #define FN_UpdateClientData_Post				UpdateClientData_Post
 | 
			
		||||
// #define FN_AddToFullPack_Post				AddToFullPack_Post
 | 
			
		||||
// #define FN_CreateBaseline_Post				CreateBaseline_Post
 | 
			
		||||
// #define FN_RegisterEncoders_Post				RegisterEncoders_Post
 | 
			
		||||
// #define FN_GetWeaponData_Post				GetWeaponData_Post
 | 
			
		||||
// #define FN_CmdStart_Post						CmdStart_Post
 | 
			
		||||
// #define FN_CmdEnd_Post						CmdEnd_Post
 | 
			
		||||
// #define FN_ConnectionlessPacket_Post			ConnectionlessPacket_Post
 | 
			
		||||
// #define FN_GetHullBounds_Post				GetHullBounds_Post
 | 
			
		||||
// #define FN_CreateInstancedBaselines_Post		CreateInstancedBaselines_Post
 | 
			
		||||
// #define FN_InconsistentFile_Post				InconsistentFile_Post
 | 
			
		||||
// #define FN_AllowLagCompensation_Post			AllowLagCompensation_Post
 | 
			
		||||
 | 
			
		||||
// - GetEngineAPI functions
 | 
			
		||||
// #define FN_PrecacheModel						PrecacheModel
 | 
			
		||||
// #define FN_PrecacheSound						PrecacheSound
 | 
			
		||||
// #define FN_SetModel							SetModel
 | 
			
		||||
// #define FN_ModelIndex						ModelIndex
 | 
			
		||||
// #define FN_ModelFrames						ModelFrames
 | 
			
		||||
// #define FN_SetSize							SetSize
 | 
			
		||||
// #define FN_ChangeLevel						ChangeLevel
 | 
			
		||||
// #define FN_GetSpawnParms						GetSpawnParms
 | 
			
		||||
// #define FN_SaveSpawnParms					SaveSpawnParms
 | 
			
		||||
// #define FN_VecToYaw							VecToYaw
 | 
			
		||||
// #define FN_VecToAngles						VecToAngles
 | 
			
		||||
// #define FN_MoveToOrigin						MoveToOrigin
 | 
			
		||||
// #define FN_ChangeYaw							ChangeYaw
 | 
			
		||||
// #define FN_ChangePitch						ChangePitch
 | 
			
		||||
// #define FN_FindEntityByString				FindEntityByString
 | 
			
		||||
// #define FN_GetEntityIllum					GetEntityIllum
 | 
			
		||||
// #define FN_FindEntityInSphere				FindEntityInSphere
 | 
			
		||||
// #define FN_FindClientInPVS					FindClientInPVS
 | 
			
		||||
// #define FN_EntitiesInPVS						EntitiesInPVS
 | 
			
		||||
// #define FN_MakeVectors						MakeVectors
 | 
			
		||||
// #define FN_AngleVectors						AngleVectors
 | 
			
		||||
// #define FN_CreateEntity						CreateEntity
 | 
			
		||||
// #define FN_RemoveEntity						RemoveEntity
 | 
			
		||||
// #define FN_CreateNamedEntity					CreateNamedEntity
 | 
			
		||||
// #define FN_MakeStatic						MakeStatic
 | 
			
		||||
// #define FN_EntIsOnFloor						EntIsOnFloor
 | 
			
		||||
// #define FN_DropToFloor						DropToFloor
 | 
			
		||||
// #define FN_WalkMove							WalkMove
 | 
			
		||||
// #define FN_SetOrigin							SetOrigin
 | 
			
		||||
// #define FN_EmitSound							EmitSound
 | 
			
		||||
// #define FN_EmitAmbientSound					EmitAmbientSound
 | 
			
		||||
#define FN_TraceLine							TraceLine
 | 
			
		||||
// #define FN_TraceToss							TraceToss
 | 
			
		||||
// #define FN_TraceMonsterHull					TraceMonsterHull
 | 
			
		||||
// #define FN_TraceHull							TraceHull
 | 
			
		||||
// #define FN_TraceModel						TraceModel
 | 
			
		||||
// #define FN_TraceTexture						TraceTexture
 | 
			
		||||
// #define FN_TraceSphere						TraceSphere
 | 
			
		||||
// #define FN_GetAimVector						GetAimVector
 | 
			
		||||
// #define FN_ServerCommand						ServerCommand
 | 
			
		||||
// #define FN_ServerExecute						ServerExecute
 | 
			
		||||
// #define FN_engClientCommand					engClientCommand
 | 
			
		||||
// #define FN_ParticleEffect					ParticleEffect
 | 
			
		||||
// #define FN_LightStyle						LightStyle
 | 
			
		||||
// #define FN_DecalIndex						DecalIndex
 | 
			
		||||
// #define FN_PointContents						PointContents
 | 
			
		||||
// #define FN_MessageBegin						MessageBegin
 | 
			
		||||
// #define FN_MessageEnd						MessageEnd
 | 
			
		||||
// #define FN_WriteByte							WriteByte
 | 
			
		||||
// #define FN_WriteChar							WriteChar
 | 
			
		||||
// #define FN_WriteShort						WriteShort
 | 
			
		||||
// #define FN_WriteLong							WriteLong
 | 
			
		||||
// #define FN_WriteAngle						WriteAngle
 | 
			
		||||
// #define FN_WriteCoord						WriteCoord
 | 
			
		||||
// #define FN_WriteString						WriteString
 | 
			
		||||
// #define FN_WriteEntity						WriteEntity
 | 
			
		||||
// #define FN_CVarRegister						CVarRegister
 | 
			
		||||
// #define FN_CVarGetFloat						CVarGetFloat
 | 
			
		||||
// #define FN_CVarGetString						CVarGetString
 | 
			
		||||
// #define FN_CVarSetFloat						CVarSetFloat
 | 
			
		||||
// #define FN_CVarSetString						CVarSetString
 | 
			
		||||
// #define FN_AlertMessage						AlertMessage
 | 
			
		||||
// #define FN_EngineFprintf						EngineFprintf
 | 
			
		||||
// #define FN_PvAllocEntPrivateData				PvAllocEntPrivateData
 | 
			
		||||
// #define FN_PvEntPrivateData					PvEntPrivateData
 | 
			
		||||
// #define FN_FreeEntPrivateData				FreeEntPrivateData
 | 
			
		||||
// #define FN_SzFromIndex						SzFromIndex
 | 
			
		||||
// #define FN_AllocString						AllocString
 | 
			
		||||
// #define FN_GetVarsOfEnt						GetVarsOfEnt
 | 
			
		||||
// #define FN_PEntityOfEntOffset				PEntityOfEntOffset
 | 
			
		||||
// #define FN_EntOffsetOfPEntity				EntOffsetOfPEntity
 | 
			
		||||
// #define FN_IndexOfEdict						IndexOfEdict
 | 
			
		||||
// #define FN_PEntityOfEntIndex					PEntityOfEntIndex
 | 
			
		||||
// #define FN_FindEntityByVars					FindEntityByVars
 | 
			
		||||
// #define FN_GetModelPtr						GetModelPtr
 | 
			
		||||
// #define FN_RegUserMsg						RegUserMsg
 | 
			
		||||
// #define FN_AnimationAutomove					AnimationAutomove
 | 
			
		||||
// #define FN_GetBonePosition					GetBonePosition
 | 
			
		||||
// #define FN_FunctionFromName					FunctionFromName
 | 
			
		||||
// #define FN_NameForFunction					NameForFunction
 | 
			
		||||
// #define FN_ClientPrintf						ClientPrintf
 | 
			
		||||
// #define FN_ServerPrint						ServerPrint
 | 
			
		||||
// #define FN_Cmd_Args							Cmd_Args
 | 
			
		||||
// #define FN_Cmd_Argv							Cmd_Argv
 | 
			
		||||
// #define FN_Cmd_Argc							Cmd_Argc
 | 
			
		||||
// #define FN_GetAttachment						GetAttachment
 | 
			
		||||
// #define FN_CRC32_Init						CRC32_Init
 | 
			
		||||
// #define FN_CRC32_ProcessBuffer				CRC32_ProcessBuffer
 | 
			
		||||
// #define FN_CRC32_ProcessByte					CRC32_ProcessByte
 | 
			
		||||
// #define FN_CRC32_Final						CRC32_Final
 | 
			
		||||
// #define FN_RandomLong						RandomLong
 | 
			
		||||
// #define FN_RandomFloat						RandomFloat
 | 
			
		||||
// #define FN_SetView							SetView
 | 
			
		||||
// #define FN_Time								Time
 | 
			
		||||
// #define FN_CrosshairAngle					CrosshairAngle
 | 
			
		||||
// #define FN_LoadFileForMe						LoadFileForMe
 | 
			
		||||
// #define FN_FreeFile							FreeFile
 | 
			
		||||
// #define FN_EndSection						EndSection
 | 
			
		||||
// #define FN_CompareFileTime					CompareFileTime
 | 
			
		||||
// #define FN_GetGameDir						GetGameDir
 | 
			
		||||
// #define FN_Cvar_RegisterVariable				Cvar_RegisterVariable
 | 
			
		||||
// #define FN_FadeClientVolume					FadeClientVolume
 | 
			
		||||
// #define FN_SetClientMaxspeed					SetClientMaxspeed
 | 
			
		||||
// #define FN_CreateFakeClient					CreateFakeClient
 | 
			
		||||
// #define FN_RunPlayerMove						RunPlayerMove
 | 
			
		||||
// #define FN_NumberOfEntities					NumberOfEntities
 | 
			
		||||
// #define FN_GetInfoKeyBuffer					GetInfoKeyBuffer
 | 
			
		||||
// #define FN_InfoKeyValue						InfoKeyValue
 | 
			
		||||
// #define FN_SetKeyValue						SetKeyValue
 | 
			
		||||
// #define FN_SetClientKeyValue					SetClientKeyValue
 | 
			
		||||
// #define FN_IsMapValid						IsMapValid
 | 
			
		||||
// #define FN_StaticDecal						StaticDecal
 | 
			
		||||
// #define FN_PrecacheGeneric					PrecacheGeneric
 | 
			
		||||
// #define FN_GetPlayerUserId					GetPlayerUserId
 | 
			
		||||
// #define FN_BuildSoundMsg						BuildSoundMsg
 | 
			
		||||
// #define FN_IsDedicatedServer					IsDedicatedServer
 | 
			
		||||
// #define FN_CVarGetPointer					CVarGetPointer
 | 
			
		||||
// #define FN_GetPlayerWONId					GetPlayerWONId
 | 
			
		||||
// #define FN_Info_RemoveKey					Info_RemoveKey
 | 
			
		||||
// #define FN_GetPhysicsKeyValue				GetPhysicsKeyValue
 | 
			
		||||
// #define FN_SetPhysicsKeyValue				SetPhysicsKeyValue
 | 
			
		||||
// #define FN_GetPhysicsInfoString				GetPhysicsInfoString
 | 
			
		||||
// #define FN_PrecacheEvent						PrecacheEvent
 | 
			
		||||
// #define FN_PlaybackEvent						PlaybackEvent
 | 
			
		||||
// #define FN_SetFatPVS							SetFatPVS
 | 
			
		||||
// #define FN_SetFatPAS							SetFatPAS
 | 
			
		||||
// #define FN_CheckVisibility					CheckVisibility
 | 
			
		||||
// #define FN_DeltaSetField						DeltaSetField
 | 
			
		||||
// #define FN_DeltaUnsetField					DeltaUnsetField
 | 
			
		||||
// #define FN_DeltaAddEncoder					DeltaAddEncoder
 | 
			
		||||
// #define FN_GetCurrentPlayer					GetCurrentPlayer
 | 
			
		||||
// #define FN_CanSkipPlayer						CanSkipPlayer
 | 
			
		||||
// #define FN_DeltaFindField					DeltaFindField
 | 
			
		||||
// #define FN_DeltaSetFieldByIndex				DeltaSetFieldByIndex
 | 
			
		||||
// #define FN_DeltaUnsetFieldByIndex			DeltaUnsetFieldByIndex
 | 
			
		||||
// #define FN_SetGroupMask						SetGroupMask
 | 
			
		||||
// #define FN_engCreateInstancedBaseline		engCreateInstancedBaseline
 | 
			
		||||
// #define FN_Cvar_DirectSet					Cvar_DirectSet
 | 
			
		||||
// #define FN_ForceUnmodified					ForceUnmodified
 | 
			
		||||
// #define FN_GetPlayerStats					GetPlayerStats
 | 
			
		||||
// #define FN_AddServerCommand					AddServerCommand
 | 
			
		||||
// #define FN_Voice_GetClientListening			Voice_GetClientListening
 | 
			
		||||
// #define FN_Voice_SetClientListening			Voice_SetClientListening
 | 
			
		||||
// #define FN_GetPlayerAuthId					GetPlayerAuthId
 | 
			
		||||
 | 
			
		||||
// - GetEngineAPI_Post functions
 | 
			
		||||
// #define FN_PrecacheModel_Post				PrecacheModel_Post
 | 
			
		||||
// #define FN_PrecacheSound_Post				PrecacheSound_Post
 | 
			
		||||
// #define FN_SetModel_Post						SetModel_Post
 | 
			
		||||
// #define FN_ModelIndex_Post					ModelIndex_Post
 | 
			
		||||
// #define FN_ModelFrames_Post					ModelFrames_Post
 | 
			
		||||
// #define FN_SetSize_Post						SetSize_Post
 | 
			
		||||
// #define FN_ChangeLevel_Post					ChangeLevel_Post
 | 
			
		||||
// #define FN_GetSpawnParms_Post				GetSpawnParms_Post
 | 
			
		||||
// #define FN_SaveSpawnParms_Post				SaveSpawnParms_Post
 | 
			
		||||
// #define FN_VecToYaw_Post						VecToYaw_Post
 | 
			
		||||
// #define FN_VecToAngles_Post					VecToAngles_Post
 | 
			
		||||
// #define FN_MoveToOrigin_Post					MoveToOrigin_Post
 | 
			
		||||
// #define FN_ChangeYaw_Post					ChangeYaw_Post
 | 
			
		||||
// #define FN_ChangePitch_Post					ChangePitch_Post
 | 
			
		||||
// #define FN_FindEntityByString_Post			FindEntityByString_Post
 | 
			
		||||
// #define FN_GetEntityIllum_Post				GetEntityIllum_Post
 | 
			
		||||
// #define FN_FindEntityInSphere_Post			FindEntityInSphere_Post
 | 
			
		||||
// #define FN_FindClientInPVS_Post				FindClientInPVS_Post
 | 
			
		||||
// #define FN_EntitiesInPVS_Post				EntitiesInPVS_Post
 | 
			
		||||
// #define FN_MakeVectors_Post					MakeVectors_Post
 | 
			
		||||
// #define FN_AngleVectors_Post					AngleVectors_Post
 | 
			
		||||
// #define FN_CreateEntity_Post					CreateEntity_Post
 | 
			
		||||
// #define FN_RemoveEntity_Post					RemoveEntity_Post
 | 
			
		||||
// #define FN_CreateNamedEntity_Post			CreateNamedEntity_Post
 | 
			
		||||
// #define FN_MakeStatic_Post					MakeStatic_Post
 | 
			
		||||
// #define FN_EntIsOnFloor_Post					EntIsOnFloor_Post
 | 
			
		||||
// #define FN_DropToFloor_Post					DropToFloor_Post
 | 
			
		||||
// #define FN_WalkMove_Post						WalkMove_Post
 | 
			
		||||
// #define FN_SetOrigin_Post					SetOrigin_Post
 | 
			
		||||
// #define FN_EmitSound_Post					EmitSound_Post
 | 
			
		||||
// #define FN_EmitAmbientSound_Post				EmitAmbientSound_Post
 | 
			
		||||
// #define FN_TraceLine_Post					TraceLine_Post
 | 
			
		||||
// #define FN_TraceToss_Post					TraceToss_Post
 | 
			
		||||
// #define FN_TraceMonsterHull_Post				TraceMonsterHull_Post
 | 
			
		||||
// #define FN_TraceHull_Post					TraceHull_Post
 | 
			
		||||
// #define FN_TraceModel_Post					TraceModel_Post
 | 
			
		||||
// #define FN_TraceTexture_Post					TraceTexture_Post
 | 
			
		||||
// #define FN_TraceSphere_Post					TraceSphere_Post
 | 
			
		||||
// #define FN_GetAimVector_Post					GetAimVector_Post
 | 
			
		||||
// #define FN_ServerCommand_Post				ServerCommand_Post
 | 
			
		||||
// #define FN_ServerExecute_Post				ServerExecute_Post
 | 
			
		||||
// #define FN_engClientCommand_Post				engClientCommand_Post
 | 
			
		||||
// #define FN_ParticleEffect_Post				ParticleEffect_Post
 | 
			
		||||
// #define FN_LightStyle_Post					LightStyle_Post
 | 
			
		||||
// #define FN_DecalIndex_Post					DecalIndex_Post
 | 
			
		||||
// #define FN_PointContents_Post				PointContents_Post
 | 
			
		||||
// #define FN_MessageBegin_Post					MessageBegin_Post
 | 
			
		||||
// #define FN_MessageEnd_Post					MessageEnd_Post
 | 
			
		||||
// #define FN_WriteByte_Post					WriteByte_Post
 | 
			
		||||
// #define FN_WriteChar_Post					WriteChar_Post
 | 
			
		||||
// #define FN_WriteShort_Post					WriteShort_Post
 | 
			
		||||
// #define FN_WriteLong_Post					WriteLong_Post
 | 
			
		||||
// #define FN_WriteAngle_Post					WriteAngle_Post
 | 
			
		||||
// #define FN_WriteCoord_Post					WriteCoord_Post
 | 
			
		||||
// #define FN_WriteString_Post					WriteString_Post
 | 
			
		||||
// #define FN_WriteEntity_Post					WriteEntity_Post
 | 
			
		||||
// #define FN_CVarRegister_Post					CVarRegister_Post
 | 
			
		||||
// #define FN_CVarGetFloat_Post					CVarGetFloat_Post
 | 
			
		||||
// #define FN_CVarGetString_Post				CVarGetString_Post
 | 
			
		||||
// #define FN_CVarSetFloat_Post					CVarSetFloat_Post
 | 
			
		||||
// #define FN_CVarSetString_Post				CVarSetString_Post
 | 
			
		||||
// #define FN_AlertMessage_Post					AlertMessage_Post
 | 
			
		||||
// #define FN_EngineFprintf_Post				EngineFprintf_Post
 | 
			
		||||
// #define FN_PvAllocEntPrivateData_Post		PvAllocEntPrivateData_Post
 | 
			
		||||
// #define FN_PvEntPrivateData_Post				PvEntPrivateData_Post
 | 
			
		||||
// #define FN_FreeEntPrivateData_Post			FreeEntPrivateData_Post
 | 
			
		||||
// #define FN_SzFromIndex_Post					SzFromIndex_Post
 | 
			
		||||
// #define FN_AllocString_Post					AllocString_Post
 | 
			
		||||
// #define FN_GetVarsOfEnt_Post					GetVarsOfEnt_Post
 | 
			
		||||
// #define FN_PEntityOfEntOffset_Post			PEntityOfEntOffset_Post
 | 
			
		||||
// #define FN_EntOffsetOfPEntity_Post			EntOffsetOfPEntity_Post
 | 
			
		||||
// #define FN_IndexOfEdict_Post					IndexOfEdict_Post
 | 
			
		||||
// #define FN_PEntityOfEntIndex_Post			PEntityOfEntIndex_Post
 | 
			
		||||
// #define FN_FindEntityByVars_Post				FindEntityByVars_Post
 | 
			
		||||
// #define FN_GetModelPtr_Post					GetModelPtr_Post
 | 
			
		||||
// #define FN_RegUserMsg_Post					RegUserMsg_Post
 | 
			
		||||
// #define FN_AnimationAutomove_Post			AnimationAutomove_Post
 | 
			
		||||
// #define FN_GetBonePosition_Post				GetBonePosition_Post
 | 
			
		||||
// #define FN_FunctionFromName_Post				FunctionFromName_Post
 | 
			
		||||
// #define FN_NameForFunction_Post				NameForFunction_Post
 | 
			
		||||
// #define FN_ClientPrintf_Post					ClientPrintf_Post
 | 
			
		||||
// #define FN_ServerPrint_Post					ServerPrint_Post
 | 
			
		||||
// #define FN_Cmd_Args_Post						Cmd_Args_Post
 | 
			
		||||
// #define FN_Cmd_Argv_Post						Cmd_Argv_Post
 | 
			
		||||
// #define FN_Cmd_Argc_Post						Cmd_Argc_Post
 | 
			
		||||
// #define FN_GetAttachment_Post				GetAttachment_Post
 | 
			
		||||
// #define FN_CRC32_Init_Post					CRC32_Init_Post
 | 
			
		||||
// #define FN_CRC32_ProcessBuffer_Post			CRC32_ProcessBuffer_Post
 | 
			
		||||
// #define FN_CRC32_ProcessByte_Post			CRC32_ProcessByte_Post
 | 
			
		||||
// #define FN_CRC32_Final_Post					CRC32_Final_Post
 | 
			
		||||
// #define FN_RandomLong_Post					RandomLong_Post
 | 
			
		||||
// #define FN_RandomFloat_Post					RandomFloat_Post
 | 
			
		||||
// #define FN_SetView_Post						SetView_Post
 | 
			
		||||
// #define FN_Time_Post							Time_Post
 | 
			
		||||
// #define FN_CrosshairAngle_Post				CrosshairAngle_Post
 | 
			
		||||
// #define FN_LoadFileForMe_Post				LoadFileForMe_Post
 | 
			
		||||
// #define FN_FreeFile_Post						FreeFile_Post
 | 
			
		||||
// #define FN_EndSection_Post					EndSection_Post
 | 
			
		||||
// #define FN_CompareFileTime_Post				CompareFileTime_Post
 | 
			
		||||
// #define FN_GetGameDir_Post					GetGameDir_Post
 | 
			
		||||
// #define FN_Cvar_RegisterVariable_Post		Cvar_RegisterVariable_Post
 | 
			
		||||
// #define FN_FadeClientVolume_Post				FadeClientVolume_Post
 | 
			
		||||
// #define FN_SetClientMaxspeed_Post			SetClientMaxspeed_Post
 | 
			
		||||
// #define FN_CreateFakeClient_Post				CreateFakeClient_Post
 | 
			
		||||
// #define FN_RunPlayerMove_Post				RunPlayerMove_Post
 | 
			
		||||
// #define FN_NumberOfEntities_Post				NumberOfEntities_Post
 | 
			
		||||
// #define FN_GetInfoKeyBuffer_Post				GetInfoKeyBuffer_Post
 | 
			
		||||
// #define FN_InfoKeyValue_Post					InfoKeyValue_Post
 | 
			
		||||
// #define FN_SetKeyValue_Post					SetKeyValue_Post
 | 
			
		||||
// #define FN_SetClientKeyValue_Post			SetClientKeyValue_Post
 | 
			
		||||
// #define FN_IsMapValid_Post					IsMapValid_Post
 | 
			
		||||
// #define FN_StaticDecal_Post					StaticDecal_Post
 | 
			
		||||
// #define FN_PrecacheGeneric_Post				PrecacheGeneric_Post
 | 
			
		||||
// #define FN_GetPlayerUserId_Post				GetPlayerUserId_Post
 | 
			
		||||
// #define FN_BuildSoundMsg_Post				BuildSoundMsg_Post
 | 
			
		||||
// #define FN_IsDedicatedServer_Post			IsDedicatedServer_Post
 | 
			
		||||
// #define FN_CVarGetPointer_Post				CVarGetPointer_Post
 | 
			
		||||
// #define FN_GetPlayerWONId_Post				GetPlayerWONId_Post
 | 
			
		||||
// #define FN_Info_RemoveKey_Post				Info_RemoveKey_Post
 | 
			
		||||
// #define FN_GetPhysicsKeyValue_Post			GetPhysicsKeyValue_Post
 | 
			
		||||
// #define FN_SetPhysicsKeyValue_Post			SetPhysicsKeyValue_Post
 | 
			
		||||
// #define FN_GetPhysicsInfoString_Post			GetPhysicsInfoString_Post
 | 
			
		||||
// #define FN_PrecacheEvent_Post				PrecacheEvent_Post
 | 
			
		||||
// #define FN_PlaybackEvent_Post				PlaybackEvent_Post
 | 
			
		||||
// #define FN_SetFatPVS_Post					SetFatPVS_Post
 | 
			
		||||
// #define FN_SetFatPAS_Post					SetFatPAS_Post
 | 
			
		||||
// #define FN_CheckVisibility_Post				CheckVisibility_Post
 | 
			
		||||
// #define FN_DeltaSetField_Post				DeltaSetField_Post
 | 
			
		||||
// #define FN_DeltaUnsetField_Post				DeltaUnsetField_Post
 | 
			
		||||
// #define FN_DeltaAddEncoder_Post				DeltaAddEncoder_Post
 | 
			
		||||
// #define FN_GetCurrentPlayer_Post				GetCurrentPlayer_Post
 | 
			
		||||
// #define FN_CanSkipPlayer_Post				CanSkipPlayer_Post
 | 
			
		||||
// #define FN_DeltaFindField_Post				DeltaFindField_Post
 | 
			
		||||
// #define FN_DeltaSetFieldByIndex_Post			DeltaSetFieldByIndex_Post
 | 
			
		||||
// #define FN_DeltaUnsetFieldByIndex_Post		DeltaUnsetFieldByIndex_Post
 | 
			
		||||
// #define FN_SetGroupMask_Post					SetGroupMask_Post
 | 
			
		||||
// #define FN_engCreateInstancedBaseline_Post	engCreateInstancedBaseline_Post
 | 
			
		||||
// #define FN_Cvar_DirectSet_Post				Cvar_DirectSet_Post
 | 
			
		||||
// #define FN_ForceUnmodified_Post				ForceUnmodified_Post
 | 
			
		||||
// #define FN_GetPlayerStats_Post				GetPlayerStats_Post
 | 
			
		||||
// #define FN_AddServerCommand_Post				AddServerCommand_Post
 | 
			
		||||
// #define FN_Voice_GetClientListening_Post		Voice_GetClientListening_Post
 | 
			
		||||
// #define FN_Voice_SetClientListening_Post		Voice_SetClientListening_Post
 | 
			
		||||
// #define FN_GetPlayerAuthId_Post				GetPlayerAuthId_Post
 | 
			
		||||
 | 
			
		||||
// #define FN_OnFreeEntPrivateData				OnFreeEntPrivateData				
 | 
			
		||||
// #define FN_GameShutdown						GameShutdown
 | 
			
		||||
// #define FN_ShouldCollide						ShouldCollide
 | 
			
		||||
 | 
			
		||||
// #define FN_OnFreeEntPrivateData_Post			OnFreeEntPrivateData_Post
 | 
			
		||||
// #define FN_GameShutdown_Post					GameShutdown_Post
 | 
			
		||||
// #define FN_ShouldCollide_Post				ShouldCollide_Post
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif // USE_METAMOD
 | 
			
		||||
 | 
			
		||||
#endif // __MODULECONFIG_H__
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										20
									
								
								modules/fun/msvc12/fun.sln
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								modules/fun/msvc12/fun.sln
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
 | 
			
		||||
Microsoft Visual Studio Solution File, Format Version 11.00
 | 
			
		||||
# Visual Studio 2010
 | 
			
		||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fun", "fun.vcxproj", "{43B95C78-8D1A-4D12-B668-2520B38E1DA3}"
 | 
			
		||||
EndProject
 | 
			
		||||
Global
 | 
			
		||||
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
			
		||||
		Debug|Win32 = Debug|Win32
 | 
			
		||||
		Release|Win32 = Release|Win32
 | 
			
		||||
	EndGlobalSection
 | 
			
		||||
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 | 
			
		||||
		{43B95C78-8D1A-4D12-B668-2520B38E1DA3}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
			
		||||
		{43B95C78-8D1A-4D12-B668-2520B38E1DA3}.Debug|Win32.Build.0 = Debug|Win32
 | 
			
		||||
		{43B95C78-8D1A-4D12-B668-2520B38E1DA3}.Release|Win32.ActiveCfg = Release|Win32
 | 
			
		||||
		{43B95C78-8D1A-4D12-B668-2520B38E1DA3}.Release|Win32.Build.0 = Release|Win32
 | 
			
		||||
	EndGlobalSection
 | 
			
		||||
	GlobalSection(SolutionProperties) = preSolution
 | 
			
		||||
		HideSolutionNode = FALSE
 | 
			
		||||
	EndGlobalSection
 | 
			
		||||
EndGlobal
 | 
			
		||||
							
								
								
									
										158
									
								
								modules/fun/msvc12/fun.vcxproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										158
									
								
								modules/fun/msvc12/fun.vcxproj
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,158 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <ItemGroup Label="ProjectConfigurations">
 | 
			
		||||
    <ProjectConfiguration Include="Debug|Win32">
 | 
			
		||||
      <Configuration>Debug</Configuration>
 | 
			
		||||
      <Platform>Win32</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
    <ProjectConfiguration Include="Release|Win32">
 | 
			
		||||
      <Configuration>Release</Configuration>
 | 
			
		||||
      <Platform>Win32</Platform>
 | 
			
		||||
    </ProjectConfiguration>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <PropertyGroup Label="Globals">
 | 
			
		||||
    <ProjectGuid>{43B95C78-8D1A-4D12-B668-2520B38E1DA3}</ProjectGuid>
 | 
			
		||||
    <RootNamespace>fun_amx</RootNamespace>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
    <PlatformToolset>v120_xp</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
			
		||||
    <ConfigurationType>DynamicLibrary</ConfigurationType>
 | 
			
		||||
    <UseOfMfc>false</UseOfMfc>
 | 
			
		||||
    <CharacterSet>MultiByte</CharacterSet>
 | 
			
		||||
    <PlatformToolset>v120_xp</PlatformToolset>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
			
		||||
  <ImportGroup Label="ExtensionSettings">
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
 | 
			
		||||
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
			
		||||
    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
  <PropertyGroup Label="UserMacros" />
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
 | 
			
		||||
    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
 | 
			
		||||
    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
 | 
			
		||||
    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
 | 
			
		||||
    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)_amxx</TargetName>
 | 
			
		||||
    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)_amxx</TargetName>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MkTypLibCompatible>true</MkTypLibCompatible>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <TargetEnvironment>Win32</TargetEnvironment>
 | 
			
		||||
      <TypeLibraryName>.\Release/fun.tlb</TypeLibraryName>
 | 
			
		||||
      <HeaderFileName>
 | 
			
		||||
      </HeaderFileName>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>MaxSpeed</Optimization>
 | 
			
		||||
      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\;..\..\..\public;..\..\..\public\sdk; ..\..\..\public\amtl\include;..\..\third_party;..\..\third_party\hashing;$(METAMOD)\metamod;$(HLSDK)\common;$(HLSDK)\engine;$(HLSDK)\dlls;$(HLSDK)\pm_shared;$(HLSDK)\public;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;FUN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <StringPooling>true</StringPooling>
 | 
			
		||||
      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
 | 
			
		||||
      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
			
		||||
      <RuntimeTypeInfo>false</RuntimeTypeInfo>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>.\Release/fun.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerListingLocation>.\Release/</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>.\Release/</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
 | 
			
		||||
      <BrowseInformation>true</BrowseInformation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <Culture>0x041d</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <ModuleDefinitionFile>
 | 
			
		||||
      </ModuleDefinitionFile>
 | 
			
		||||
      <ProgramDatabaseFile>.\Release/fun.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <ImportLibrary>.\Release/fun.lib</ImportLibrary>
 | 
			
		||||
      <TargetMachine>MachineX86</TargetMachine>
 | 
			
		||||
      <SubSystem>Windows</SubSystem>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
			
		||||
    <Midl>
 | 
			
		||||
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <MkTypLibCompatible>true</MkTypLibCompatible>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <TargetEnvironment>Win32</TargetEnvironment>
 | 
			
		||||
      <TypeLibraryName>.\Debug/fun.tlb</TypeLibraryName>
 | 
			
		||||
      <HeaderFileName>
 | 
			
		||||
      </HeaderFileName>
 | 
			
		||||
    </Midl>
 | 
			
		||||
    <ClCompile>
 | 
			
		||||
      <Optimization>Disabled</Optimization>
 | 
			
		||||
      <AdditionalIncludeDirectories>..\;..\..\..\public;..\..\..\public\sdk; ..\..\..\public\amtl\include;..\..\third_party;..\..\third_party\hashing;$(METAMOD)\metamod;$(HLSDK)\common;$(HLSDK)\engine;$(HLSDK)\dlls;$(HLSDK)\pm_shared;$(HLSDK)\public;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 | 
			
		||||
      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;FUN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
 | 
			
		||||
      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
 | 
			
		||||
      <RuntimeTypeInfo>false</RuntimeTypeInfo>
 | 
			
		||||
      <PrecompiledHeader>
 | 
			
		||||
      </PrecompiledHeader>
 | 
			
		||||
      <PrecompiledHeaderOutputFile>.\Debug/fun.pch</PrecompiledHeaderOutputFile>
 | 
			
		||||
      <AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
 | 
			
		||||
      <ObjectFileName>.\Debug/</ObjectFileName>
 | 
			
		||||
      <ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
 | 
			
		||||
      <BrowseInformation>true</BrowseInformation>
 | 
			
		||||
      <WarningLevel>Level3</WarningLevel>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ResourceCompile>
 | 
			
		||||
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
			
		||||
      <Culture>0x041d</Culture>
 | 
			
		||||
    </ResourceCompile>
 | 
			
		||||
    <Link>
 | 
			
		||||
      <SuppressStartupBanner>true</SuppressStartupBanner>
 | 
			
		||||
      <ModuleDefinitionFile>
 | 
			
		||||
      </ModuleDefinitionFile>
 | 
			
		||||
      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
			
		||||
      <ProgramDatabaseFile>.\Debug/fun_debug.pdb</ProgramDatabaseFile>
 | 
			
		||||
      <ImportLibrary>.\Debug/fun_debug.lib</ImportLibrary>
 | 
			
		||||
      <TargetMachine>MachineX86</TargetMachine>
 | 
			
		||||
      <SubSystem>Windows</SubSystem>
 | 
			
		||||
      <IgnoreSpecificDefaultLibraries>LIBCMT;</IgnoreSpecificDefaultLibraries>
 | 
			
		||||
      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
 | 
			
		||||
    </Link>
 | 
			
		||||
  </ItemDefinitionGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClCompile Include="..\fun.cpp" />
 | 
			
		||||
    <ClCompile Include="..\..\..\public\sdk\amxxmodule.cpp" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClInclude Include="..\fun.h" />
 | 
			
		||||
    <ClInclude Include="..\moduleconfig.h" />
 | 
			
		||||
    <ClInclude Include="..\..\..\public\sdk\amxxmodule.h" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <None Include="..\..\..\plugins\include\fun.inc" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
			
		||||
  <ImportGroup Label="ExtensionTargets">
 | 
			
		||||
  </ImportGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
							
								
								
									
										46
									
								
								modules/fun/msvc12/fun.vcxproj.filters
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								modules/fun/msvc12/fun.vcxproj.filters
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <Filter Include="Source Files">
 | 
			
		||||
      <UniqueIdentifier>{ba21369e-bcde-48fa-8359-0c0a99f70e47}</UniqueIdentifier>
 | 
			
		||||
      <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="Header Files">
 | 
			
		||||
      <UniqueIdentifier>{dd59ac12-189c-4c0d-91a0-0b8fc9bc98d6}</UniqueIdentifier>
 | 
			
		||||
      <Extensions>h;hpp;hxx;hm;inl</Extensions>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="Module SDK">
 | 
			
		||||
      <UniqueIdentifier>{0531e0fa-dd77-46b3-862f-246a8f9f4142}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="Module SDK\SDK Base">
 | 
			
		||||
      <UniqueIdentifier>{f90d9af9-d6c3-41b2-85e0-3302421924b1}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="Pawn Includes">
 | 
			
		||||
      <UniqueIdentifier>{2256d296-4d3f-4321-8afb-8ff5dff8053f}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClCompile Include="..\fun.cpp">
 | 
			
		||||
      <Filter>Source Files</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\..\..\public\sdk\amxxmodule.cpp">
 | 
			
		||||
      <Filter>Module SDK\SDK Base</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClInclude Include="..\fun.h">
 | 
			
		||||
      <Filter>Header Files</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\moduleconfig.h">
 | 
			
		||||
      <Filter>Module SDK</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\..\..\public\sdk\amxxmodule.h">
 | 
			
		||||
      <Filter>Module SDK\SDK Base</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <None Include="..\..\..\plugins\include\fun.inc">
 | 
			
		||||
      <Filter>Pawn Includes</Filter>
 | 
			
		||||
    </None>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
							
								
								
									
										101
									
								
								modules/fun/version.rc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								modules/fun/version.rc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,101 @@
 | 
			
		||||
// Microsoft Visual C++ generated resource script.
 | 
			
		||||
//
 | 
			
		||||
#define APSTUDIO_READONLY_SYMBOLS
 | 
			
		||||
/////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
//
 | 
			
		||||
// Generated from the TEXTINCLUDE 2 resource.
 | 
			
		||||
//
 | 
			
		||||
#include <winresrc.h>
 | 
			
		||||
#include <moduleconfig.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 AMXX_VERSION_FILE
 | 
			
		||||
 PRODUCTVERSION AMXX_VERSION_FILE
 | 
			
		||||
 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", "AMX Mod X"
 | 
			
		||||
            VALUE "FileDescription", "AMX Mod X"
 | 
			
		||||
            VALUE "FileVersion", AMXX_VERSION
 | 
			
		||||
            VALUE "InternalName", MODULE_LIBRARY
 | 
			
		||||
            VALUE "LegalCopyright", "Copyright (c) AMX Mod X Dev Team"
 | 
			
		||||
            VALUE "OriginalFilename", MODULE_LIBRARY "_amxx.dll"
 | 
			
		||||
            VALUE "ProductName", MODULE_NAME
 | 
			
		||||
            VALUE "ProductVersion", AMXX_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
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user