diff --git a/dlls/arrayx/Array.dsp b/dlls/arrayx/Array.dsp deleted file mode 100644 index af9b5a01..00000000 --- a/dlls/arrayx/Array.dsp +++ /dev/null @@ -1,108 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Array" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=ARRAY - WIN32 RELEASE -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "Array.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "Array.mak" CFG="ARRAY - WIN32 RELEASE" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "Array - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 2 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ARRAY_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /vmg /vms /GX /ZI /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ARRAY_EXPORTS" /D "_WINDLL" /D "_AFXDLL" /U "DLLEXPORT" /FR /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 /nologo /dll /machine:I386 -# SUBTRACT LINK32 /incremental:yes -# Begin Target - -# Name "Array - Win32 Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\amxxmodule.cpp -# SUBTRACT CPP /Z -# End Source File -# Begin Source File - -SOURCE=.\array.cpp -# SUBTRACT CPP /Z /u -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\amxxmodule.h -# End Source File -# Begin Source File - -SOURCE=.\CArray.h -# End Source File -# Begin Source File - -SOURCE=.\CHashtable.h -# End Source File -# Begin Source File - -SOURCE=.\CKeytable.h -# End Source File -# Begin Source File - -SOURCE=.\element.h -# End Source File -# Begin Source File - -SOURCE=.\moduleconfig.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# Begin Source File - -SOURCE="..\module\Judy-1.0.1\src\Judy.lib" -# End Source File -# End Group -# End Target -# End Project diff --git a/dlls/arrayx/Array.ncb b/dlls/arrayx/Array.ncb deleted file mode 100644 index 6b281a3b..00000000 Binary files a/dlls/arrayx/Array.ncb and /dev/null differ diff --git a/dlls/arrayx/Array.sln b/dlls/arrayx/Array.sln deleted file mode 100644 index b132f8b1..00000000 --- a/dlls/arrayx/Array.sln +++ /dev/null @@ -1,18 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Array", "Array.vcproj", "{11B6F2E4-A603-4559-8E64-FFBF9541E238}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {11B6F2E4-A603-4559-8E64-FFBF9541E238}.Release.ActiveCfg = Release|Win32 - {11B6F2E4-A603-4559-8E64-FFBF9541E238}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/dlls/arrayx/Array.vcproj b/dlls/arrayx/Array.vcproj deleted file mode 100644 index f73a03b5..00000000 --- a/dlls/arrayx/Array.vcproj +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dlls/arrayx/CArray.h b/dlls/arrayx/CArray.h deleted file mode 100644 index f35ad395..00000000 --- a/dlls/arrayx/CArray.h +++ /dev/null @@ -1,734 +0,0 @@ -Pvoid_t MasterArray = (Pvoid_t) NULL; //Create the control array - -//Create an array that stores whether or not indices are used. -Pvoid_t MasterArray_Binary = (Pvoid_t) NULL; - -void DeleteMasterArray(void); - -Word_t NewArray(Word_t Index, Word_t reserve = 0); -PPvoid_t Find_Array(Word_t Index, Word_t disable_check = 1, AMX *amx = 0); -void DeleteArray(Word_t Index); -void ClearArray(Word_t Index); - -template -void Array_Set(PPvoid_t Array, char* Index, Type value); - -PPvoid_t Array_Get(AMX* amx, PPvoid_t Array, Word_t Index, int ignore_error = 0); -void DeleteCell(Pvoid_t* Array, Word_t Index); - -void Delete_MasterArray(void) -{ - Word_t - Index = 0, - success = 0; - J1F(success, MasterArray_Binary, Index); - while( success ) - { - DeleteArray( Index ); //Delete array. - J1F(success, MasterArray_Binary, Index); //Get next array - } -} - -Word_t NewArray(Word_t Index, Word_t reserve) -{ - Word_t success; //Dummy for macros. - J1T(success, MasterArray_Binary, Index); //Check if bit is already set. - - if (success && reserve) - return Index; //If the bit is set but it's 'reserved', return the index. - - //Only do this if the bit is not set. - J1FE(success, MasterArray_Binary, Index); - J1S(success, MasterArray_Binary, Index); - - PPvoid_t Array = JudyLIns(&MasterArray, Index, PJE0); - *Array = (PWord_t) NULL; - - return Index; -} - -PPvoid_t Find_Array(Word_t Index, Word_t disable_check, AMX *amx) -{ - Word_t success; - J1T(success, MasterArray_Binary, Index); - if (success || disable_check) - { //Bit is valid - if(!success) - NewArray(Index); - - return JudyLGet( MasterArray, Index, PJE0); - } - MF_LogError(amx,AMX_ERR_NATIVE,"Array %d is invalid", Index); - return NULL; -} - -void DeleteArray(Word_t Index) -{ - int success; - J1T(success, MasterArray_Binary, Index); - if (success) - { //If the bit is set, clear and delete array. - ClearArray(Index); - J1U(success, MasterArray_Binary, Index); - JudyLDel(&MasterArray, Index, PJE0); - } -} - -void ClearArray(Word_t Index) -{ - int success; - J1T(success, MasterArray_Binary, Index); - if (success) //dont bother with unset arrays. - { - PPvoid_t Array = Find_Array(Index); - Word_t index = 0; - PPvoid_t PValue = JudyLFirst(*Array, &index, PJE0); - while (PValue != NULL) - { - element elem_value = *reinterpret_cast(*PValue); - elem_value.delete_element(); - PValue = JudyLNext(*Array, &index, PJE0); - } - JudyLFreeArray(Array, PJE0); - } -} - -static cell AMX_NATIVE_CALL new_array(AMX *amx,cell *params) -{ - return NewArray(params[1], params[2]); -} - -template //This will support input char*, Vector*, int, and cell_real*. -void Array_Set(PPvoid_t Array, int Index, Type value) -{ - PPvoid_t PValue; // pointer to array element value - PValue = JudyLIns(Array, Index, PJE0); - *PValue = reinterpret_cast(value); -} - -PPvoid_t Array_Get(AMX* amx, PPvoid_t Array, int Index, int ignore_error = 0) -{ - PPvoid_t PValue = JudyLGet( *Array, Index, PJE0 ); - if (PValue == NULL && !ignore_error) - MF_LogError(amx, AMX_ERR_NATIVE, "Array index %d is invalid", Index); - return PValue; -} - -void DeleteCell(PPvoid_t Array, Word_t Index) -{ - JudyLDel(Array, Index, PJE0); -} - - -static cell AMX_NATIVE_CALL delete_array(AMX *amx,cell *params) -{ - DeleteArray( params[1] ); - - return 1; -} - -static cell AMX_NATIVE_CALL clear_array(AMX *amx,cell *params) -{ - ClearArray( params[1] ); - - return 1; -} - -static cell AMX_NATIVE_CALL Array_Save(AMX *amx, cell *params) -{ - PPvoid_t Array = Find_Array(params[1], params[3], amx); - if (Array == NULL) return 0; - - int filename_length; - char *file = MF_GetAmxString(amx, params[2], 0, &filename_length); - file = MF_BuildPathname("%s", file); - unlink(file); - FILE *ArrayDB = fopen(file,"w"); - if (!ArrayDB) - return 0; - Word_t Index = 0; - PPvoid_t PValue = JudyLFirst(*Array, &Index, PJE0); - element elem = NULL; - char elem_type = 0; - - int error; - - REAL vector_data[3] = { 0.0, 0.0, 0.0 }; - while (PValue) - { - elem = *reinterpret_cast(*PValue); - elem_type = elem.get_type(); - - if (elem_type < elem_type_int || elem_type > elem_type_vector) - continue; - - fwrite(&Index, sizeof(int), 1, ArrayDB); - fwrite(&elem_type, sizeof(char), 1, ArrayDB); - if (elem_type == elem_type_int) - { - int int_buffer = elem.get_int(error); - fwrite(&int_buffer, sizeof(int), 1, ArrayDB); - } - else if (elem_type == elem_type_real) - { - REAL flo_buffer = elem.get_flo(error); - fwrite(&flo_buffer, sizeof(REAL), 1, ArrayDB); - } - else if (elem_type == elem_type_char) - { - const char* str_buffer = elem.get_str(error); - short buf_len = strlen(str_buffer); - fwrite(&buf_len, sizeof(short), 1, ArrayDB); - fwrite(str_buffer, sizeof(char), buf_len, ArrayDB); - } - else if (elem_type == elem_type_vector) - { - const Vector* vec_buffer = elem.get_vec(error); - fwrite(vec_buffer, sizeof(Vector), 1, ArrayDB); - } - PValue = JudyLNext(*Array, &Index, PJE0); - } - fclose(ArrayDB); - return 1; -} - -static cell AMX_NATIVE_CALL Array_Load(AMX *amx, cell *params) -{ - //params[1]: file - int filename_length; - char *file = MF_GetAmxString(amx, params[1], 0, &filename_length); - file = MF_BuildPathname("%s", file); - FILE *ArrayDB = fopen(file, "a+"); - if (!ArrayDB) - return 0; - - //params[2]: array to create (optional index supplied) - int ArrayIndex = NewArray(params[2], params[3]); - ClearArray(ArrayIndex); //make sure the array is empty. - PPvoid_t Array = Find_Array(ArrayIndex); - while(!feof(ArrayDB)) - { - int index = 0; char type = 0; - element *elem_value = NULL; - fread(&index, sizeof(int), 1, ArrayDB); - if (feof(ArrayDB) || ferror(ArrayDB)) - break; - - fread(&type, sizeof(char), 1, ArrayDB); - - if (type < elem_type_int || type > elem_type_vector) - { - MF_LogError(amx, AMX_ERR_FORMAT, "Error loading array database \"%s\" into array %d. Bad file.", file, ArrayIndex); - return ArrayIndex; - } - else if (type == elem_type_int) - { - int value = 0; fread(&value, sizeof(int), 1, ArrayDB); - elem_value = new element(value); - } - else if (type == elem_type_real) - { - REAL value = 0; fread(&value, sizeof(REAL), 1, ArrayDB); - elem_value = new element(value); - } - else if (type == elem_type_char) - { - short length; fread(&length, sizeof(short), 1, ArrayDB); - char* value = new char[length+1]; fgets(value, length+1, ArrayDB); - elem_value = new element(value); - delete(value); - } - else if (type == elem_type_vector) - { - Vector *value = new Vector(); fread(value, sizeof(Vector), 1, ArrayDB); - elem_value = new element(value); - } - Array_Set(Array,index,elem_value); - } - fclose(ArrayDB); - return ArrayIndex; -} - -static cell AMX_NATIVE_CALL Array_Save_ASCII(AMX *amx, cell *params) -{ - //params[1]: file - int filename_length; - char *inputfile = MF_GetAmxString(amx, params[1], 0, &filename_length); - inputfile = MF_BuildPathname("%s", inputfile); - FILE *ArrayDB = fopen(inputfile, "a+"); - if (!ArrayDB) - return 0; - - char *outputfile = MF_GetAmxString(amx, params[2], 0, &filename_length); - outputfile = MF_BuildPathname("%s", outputfile); - FILE *ReadableDB = fopen(outputfile, "w"); - - char *buffer = "\0"; - char *buffer_two = "\0"; - - while(!feof(ArrayDB)) - { - Word_t index = 0; char type = 0; - fread(&index, sizeof(int), 1, ArrayDB); - if (feof(ArrayDB) || ferror(ArrayDB)) - break; - - fread(&type, sizeof(char), 1, ArrayDB); - - sprintf(buffer, "Index % 11d\tType %7s,", index, elem_types[type]); - if (type < elem_type_int || type > elem_type_vector) - { - MF_LogError(amx, AMX_ERR_FORMAT, "Error loading array database \"%s\" into readable format. Bad file.", inputfile); - return 0; - } - else if (type == elem_type_int) - { - int value = 0; fread(&value, sizeof(int), 1, ArrayDB); - sprintf(buffer, "%s\t\t\tValue: %d\n", buffer, value); - } - else if (type == elem_type_real) - { - REAL value = 0; fread(&value, sizeof(REAL), 1, ArrayDB); - sprintf(buffer, "%s\t\t\tValue: %f\n", buffer, value); - } - else if (type == elem_type_char) - { - short length; fread(&length, sizeof(short), 1, ArrayDB); - char* value = new char[length+1]; fgets(value, length+1, ArrayDB); - sprintf(buffer, "%s Length: %d\tValue: \"%s\"\n", buffer, length, value); - delete value; - } - else if (type == elem_type_vector) - { - Vector *value = new Vector(); fread(value, sizeof(Vector), 1, ArrayDB); - sprintf(buffer, "%s\t\t\tValue: {%f,%f,%f}\n", buffer, (*value).x, (*value).y, (*value).z); - delete value; - } - fwrite(buffer, sizeof(char), strlen(buffer), ReadableDB); - } - fclose(ArrayDB); - fclose(ReadableDB); - return 1; -} - -static cell AMX_NATIVE_CALL Array_SetVector(AMX *amx,cell *params) -{ - PPvoid_t Array = Find_Array(params[1], params[4], amx); - if (Array == NULL) return 0; - - cell *input_vec = MF_GetAmxAddr(amx, params[3]); - Vector *value = new Vector( - amx_ctof(input_vec[0]), - amx_ctof(input_vec[1]), - amx_ctof(input_vec[2]) - ); - int Index = params[2]; - - PPvoid_t PValue = Array_Get(amx, Array, Index, 1); - element *elem_value = NULL; - if ( PValue == NULL ) - elem_value = new element(value); - else - { - elem_value = reinterpret_cast(*PValue); - (*elem_value).set_vec(value); - } - Array_Set(Array,Index,elem_value); - return 1; -} - -static cell AMX_NATIVE_CALL Array_GetVector(AMX *amx, cell *params) -{ - PPvoid_t Array = Find_Array(params[1], params[4], amx); - if (Array == NULL) return 0; - - int Index = params[2]; - PPvoid_t PValue = Array_Get(amx, Array, Index, params[4]); - - cell *vAmx = MF_GetAmxAddr(amx, params[3]); - - if( PValue == NULL ) { - vAmx[0] = amx_ftoc(0); - vAmx[1] = amx_ftoc(0); - vAmx[2] = amx_ftoc(0); - return 0; - } - element elem_value = *reinterpret_cast(*PValue); - int error = 0; - const Vector retr_vec = *elem_value.get_vec(error); - if (error) - elem_value.issue_type_error(amx, params[1], Index); - vAmx[0] = amx_ftoc(retr_vec.x); - vAmx[1] = amx_ftoc(retr_vec.y); - vAmx[2] = amx_ftoc(retr_vec.z); - return 1; -} - -static cell AMX_NATIVE_CALL Array_SetString(AMX *amx,cell *params) -{ - //params[1]: array - PPvoid_t Array = Find_Array(params[1], params[4], amx); - if (Array == NULL) return 0; - - //params[2]: index - int Index = params[2]; - - //params[3]: value - int iLen = 0; - char *value = MF_GetAmxString(amx,params[3],1,&iLen); - - //element that is stored at index - PPvoid_t PValue = Array_Get(amx, Array, Index, 1); - element *elem_value = NULL; - if ( PValue == NULL ) - elem_value = new element(value); - else - { - elem_value = reinterpret_cast(*PValue); - (*elem_value).set_str(value); - } - Array_Set(Array,Index,elem_value); - return 1; -} - -static cell AMX_NATIVE_CALL Array_GetString(AMX *amx,cell *params) -{ - //params[1]: array - PPvoid_t Array = Find_Array(params[1], params[5], amx); - if (Array == NULL) return 0; - - //params[2]: index - int Index = params[2]; - - Pvoid_t * PValue = Array_Get(amx, Array, Index, params[5]); - - //params[3] and params[4] are the return string and length respectively. - - if( PValue == NULL ) return MF_SetAmxString( amx , params[3] , "dne", params[4] ); - - element elem_value = *reinterpret_cast(*PValue); - - int error = 0; - const char* str_out = elem_value.get_str(error); - if (error) - elem_value.issue_type_error(amx, params[1], Index); - return MF_SetAmxString( amx , params[3] , str_out, params[4] ); -} - -static cell AMX_NATIVE_CALL Array_SetFloat(AMX *amx,cell *params) -{ - //params[1]: array - PPvoid_t Array = Find_Array(params[1], params[4], amx); - if (Array == NULL) return 0; - - //params[2]: index - int Index = params[2]; - - //params[3]: value - PPvoid_t PValue = Array_Get(amx, Array, Index, 1); - element *elem_value = NULL; - if ( PValue == NULL ) - elem_value = new element(amx_ctof(params[3])); - else - { - elem_value = reinterpret_cast(*PValue); - (*elem_value).set_flo(amx_ctof(params[3])); - } - Array_Set(Array,Index,elem_value); - - return 1; -} - -static cell AMX_NATIVE_CALL Array_GetFloat(AMX *amx,cell *params) -{ - //params[1]: array - PPvoid_t Array = Find_Array(params[1], params[3], amx); - if (Array == NULL) return 0; - - //params[2]: index - int Index = params[2]; - - PPvoid_t PValue = Array_Get(amx, Array, Index, params[3]); - - if( PValue == NULL ) return amx_ftoc(0.0); - - element elem_value = *reinterpret_cast(*PValue); - - int error = 0; - cell retr_float = amx_ftoc(elem_value.get_flo(error)); - if (error) - elem_value.issue_type_error(amx, params[1], Index); - return retr_float; -} - -static cell AMX_NATIVE_CALL Array_SetInt(AMX *amx,cell *params) -{ - //params[1]: array - PPvoid_t Array = Find_Array(params[1], params[3], amx); - if (Array == NULL) return 0; - - //params[2]: index - int Index = params[2]; - - PPvoid_t PValue = Array_Get(amx, Array, Index, 1); - element *elem_value = NULL; - if ( PValue == NULL ) - elem_value = new element(params[3]); - else - { - elem_value = reinterpret_cast(*PValue); - (*elem_value).set_int(params[3]); - } - Array_Set(Array,Index,elem_value); - - return 1; -} - -static cell AMX_NATIVE_CALL Array_GetInt(AMX *amx,cell *params) -{ - //params[1]: array - PPvoid_t Array = Find_Array(params[1], params[3], amx); - if (Array == NULL) return 0; - - //params[2]: index - int Index = params[2]; - - Pvoid_t * PValue = Array_Get(amx, Array, Index, params[3]); - - if( PValue == NULL ) return 0; - - element elem_value = *reinterpret_cast(*PValue); - - int error = 0; - cell retr_int = elem_value.get_int(error); - if (error) - elem_value.issue_type_error(amx, params[1], Index); - return retr_int; -} - -static cell AMX_NATIVE_CALL array_size(AMX *amx,cell *params) -{ - Pvoid_t * Array = Find_Array(params[1],params[4],amx); - if (Array == NULL) return 0; - - return JudyLCount( *Array, params[2], params[3],PJE0); -} - -static cell AMX_NATIVE_CALL array_count(AMX *amx,cell *params) -{ - return JudyLCount( MasterArray, params[1], params[2],PJE0); -} - -static cell AMX_NATIVE_CALL array_memory(AMX *amx,cell *params) -{ - Pvoid_t * Array = Find_Array(params[1],params[2],amx); - if (Array == NULL) return 0; - - return JudyLMemUsed(*Array); -} - -static cell AMX_NATIVE_CALL delete_cell(AMX *amx,cell *params) -{ - Pvoid_t * Array = Find_Array(params[1]); - if (Array == NULL) return 0; - - DeleteCell( Array, params[2] ); - - return 1; -} - -static cell AMX_NATIVE_CALL array_next(AMX *amx,cell *params) -{ - PPvoid_t Array = Find_Array(params[1],params[4],amx); - if (Array == NULL) return 0; - - Word_t Index = Word_t(params[2]); - cell *success = MF_GetAmxAddr(amx, params[3]); - - PPvoid_t pointer; - pointer = JudyLNext(*Array, &Index, PJE0); - - *success = (pointer == NULL) ? 0 : 1; - return cell(Index); -} - -static cell AMX_NATIVE_CALL array_prev(AMX *amx,cell *params) -{ - PPvoid_t Array = Find_Array(params[1],params[4],amx); - if (Array == NULL) return 0; - - Word_t Index = Word_t(params[2]); - cell *success = MF_GetAmxAddr(amx, params[3]); - - PPvoid_t pointer; - pointer = JudyLPrev(*Array, &Index, PJE0); - - *success = (pointer == NULL) ? 0 : 1; - return cell(Index); -} - -static cell AMX_NATIVE_CALL array_first(AMX *amx,cell *params) -{ - PPvoid_t Array = Find_Array(params[1],params[4],amx); - if (Array == NULL) return 0; - - Word_t Index = Word_t(params[2]); - cell *success = MF_GetAmxAddr(amx, params[3]); - - PPvoid_t pointer; - pointer = JudyLFirst(*Array, &Index, PJE0); - - *success = (pointer == NULL) ? 0 : 1; - return cell(Index); -} - -static cell AMX_NATIVE_CALL array_last(AMX *amx,cell *params) -{ - PPvoid_t Array = Find_Array(params[1],params[4],amx); - if (Array == NULL) return 0; - - Word_t Index = Word_t(params[2]); - cell *success = MF_GetAmxAddr(amx, params[3]); - - PPvoid_t pointer; - pointer = JudyLLast(*Array, &Index, PJE0); - - *success = (pointer == NULL) ? 0 : 1; - return cell(Index); -} - -static cell AMX_NATIVE_CALL array_nextempty(AMX *amx,cell *params) -{ - PPvoid_t Array = Find_Array(params[1],params[4],amx); - if (Array == NULL) return 0; - - Word_t Index = (Word_t)params[2]; - - cell *success = MF_GetAmxAddr(amx, params[3]); - *success = JudyLNextEmpty(*Array, &Index, PJE0); - - return (cell)Index; -} - -static cell AMX_NATIVE_CALL array_prevempty(AMX *amx,cell *params) -{ - PPvoid_t Array = Find_Array(params[1],params[4],amx); - if (Array == NULL) return 0; - - Word_t Index = (Word_t)params[2]; - - cell *success = MF_GetAmxAddr(amx, params[3]); - *success = JudyLPrevEmpty(*Array, &Index, PJE0); - - return (cell)Index; -} - -static cell AMX_NATIVE_CALL array_firstempty(AMX *amx,cell *params) -{ - PPvoid_t Array = Find_Array(params[1],params[4],amx); - if (Array == NULL) return 0; - - Word_t Index = (Word_t)params[2]; - - cell *success = MF_GetAmxAddr(amx, params[3]); - *success = JudyLFirstEmpty(*Array, &Index, PJE0); - - return (cell)Index; -} - -static cell AMX_NATIVE_CALL array_lastempty(AMX *amx,cell *params) -{ - PPvoid_t Array = Find_Array(params[1],params[4],amx); - if (Array == NULL) return 0; - - Word_t Index = (Word_t)params[2]; - - cell *success = MF_GetAmxAddr(amx, params[3]); - *success = JudyLLastEmpty(*Array, &Index, PJE0); - - return (cell)Index; -} - -static cell AMX_NATIVE_CALL array_isempty(AMX *amx,cell *params) -{ - PPvoid_t Array = Find_Array(params[1],params[3],amx); - if (Array == NULL) return 0; - - PPvoid_t pointer; - pointer = JudyLGet(*Array, params[2], PJE0); - - return (pointer == NULL) ? 1 : 0; -} - -static cell AMX_NATIVE_CALL array_isfilled(AMX *amx,cell *params) -{ - //params[1]: array - PPvoid_t Array = Find_Array(params[1],params[3],amx); - if (Array == NULL) return 0; - - //params[2]: index - PPvoid_t pointer; - pointer = JudyLGet(*Array, params[2], PJE0); - - return (pointer != NULL) ? 1 : 0; -} - -static cell AMX_NATIVE_CALL Array_ByCount(AMX *amx,cell *params) -{ - PPvoid_t Array = Find_Array(params[1],params[4],amx); - if (Array == NULL) return 0; - - Word_t Index = Word_t(params[3]); - cell *success = MF_GetAmxAddr(amx, params[4]); - - PPvoid_t pointer; - pointer = JudyLByCount(*Array, params[2], &Index, PJE0); - - *success = (pointer == NULL) ? 0 : 1; - return cell(Index); -} - -AMX_NATIVE_INFO array_exports[] = { - { "array_set_string", Array_SetString }, - { "array_get_string", Array_GetString }, - - { "array_set_int", Array_SetInt }, - { "array_get_int", Array_GetInt }, - - { "array_set_float", Array_SetFloat }, - { "array_get_float", Array_GetFloat }, - - { "array_set_vector", Array_SetVector }, - { "array_get_vector", Array_GetVector }, - - { "array_isempty", array_isempty }, - { "array_isfilled", array_isfilled }, - - { "array_remove", delete_cell }, - - { "array_create", new_array }, - { "array_delete", delete_array }, - { "array_clear", clear_array }, - - { "array_size", array_size }, - { "array_count", array_count }, - { "array_memory", array_memory }, - - { "array_nextempty", array_nextempty }, - { "array_prevempty", array_prevempty }, - { "array_firstempty", array_firstempty }, - { "array_lastempty", array_lastempty }, - { "array_next", array_next }, - { "array_prev", array_prev }, - { "array_first", array_first }, - { "array_last", array_last }, - - { "array_save", Array_Save }, - { "array_load", Array_Load }, - - { "array_get_nth", Array_ByCount }, - - { "array_save_ascii", Array_Save_ASCII }, - - { NULL, NULL } -}; \ No newline at end of file diff --git a/dlls/arrayx/CHashtable.h b/dlls/arrayx/CHashtable.h deleted file mode 100644 index 61e477b0..00000000 --- a/dlls/arrayx/CHashtable.h +++ /dev/null @@ -1,375 +0,0 @@ -#if !defined _JUDYHS_ENABLED_ -#define _JUDYHS_ENABLED_ - -Pvoid_t MasterHashtable = (Pvoid_t) NULL; //Create the new array - -//Create an array that stores whether or not indices are used. -Pvoid_t MasterHashtable_Binary = (Pvoid_t) NULL; - -void Delete_MasterHashtable(void); - -Word_t New_Hashtable(Word_t Index, Word_t reserve = 0); -Pvoid_t* Find_Hashtable(Word_t Index, Word_t disable_check = 1, AMX *amx = 0); -void Delete_Hashtable(Word_t Index); -void Clear_Hashtable(Word_t Index); - -template -void Hashtable_Set(PPvoid_t Hashtable, char *Index, Word_t Length, Type value); - -PPvoid_t Hashtable_Get(AMX* amx, Pvoid_t Hashtable, char *Index, int ignore_error = 0); - -void Delete_MasterHashtable(void) -{ - Word_t - Index = 0, - success; - J1F(success, MasterHashtable_Binary, Index); - while( success ) - { - Delete_Hashtable(Index); - J1F(success, MasterHashtable_Binary, Index); - } -} - -Word_t New_Hashtable(Word_t Index, Word_t reserve) -{ - Word_t success; //Dummy for macros. - J1T(success, MasterHashtable_Binary, Index); - - if (success && reserve) - return Index; //If the bit is set but it's 'reserved', return the index. - - //Only do this if the bit is not set or not reserved. - J1FE(success, MasterHashtable_Binary, Index); - J1S(success, MasterHashtable_Binary, Index); - - PPvoid_t Hashtable = JudyLIns(&MasterHashtable, Index, PJE0); - *Hashtable = (PWord_t) NULL; - - return Index; -} - -PPvoid_t Find_Hashtable(Word_t Index, Word_t disable_check, AMX* amx) -{ - Word_t success; - J1T(success, MasterHashtable_Binary, Index); - if (success || disable_check) - { //Bit is valid - if(!success) - New_Hashtable(Index); - - return JudyLGet(MasterHashtable, Index, PJE0); - } - MF_LogError(amx,AMX_ERR_NATIVE,"Hashtable %d is invalid.", Index); - return NULL; -} - -void Delete_Hashtable(Word_t Index) -{ - int success; - J1T(success, MasterHashtable_Binary, Index); - if (success) - { //If the bit was set, clear, unset and delist hashtable. - Clear_Hashtable(Index); - J1U(success, MasterHashtable_Binary, Index); - JudyLDel(&MasterHashtable, Index, PJE0); - } -} - -void Clear_Hashtable(Word_t Index) -{ - int success; - J1T(success, MasterHashtable_Binary, Index); - if (success) //dont bother with unset hashtables. - { - PPvoid_t Hashtable = Find_Hashtable(Index); - JHSFA(success, *Hashtable); - } -} - -template //This will support input char*, Vector*, int, and cell_real*. -void Hashtable_Set(PPvoid_t Hashtable, char* Index, Type value) -{ - int Len = strlen(Index)+1; - PPvoid_t PValue = JudyHSIns(Hashtable, Index, Len, PJE0); - *PValue = reinterpret_cast(value); -} - -PPvoid_t Hashtable_Get(AMX* amx,PPvoid_t Hashtable, char *Index, int ignore_error = 0) -{ - PPvoid_t PValue = JudyHSGet(*Hashtable, Index, strlen(Index)+1); - if (PValue == NULL && !ignore_error) - MF_LogError(amx, AMX_ERR_NATIVE, "Hashtable get on index \"%s\" is invalid", Index); - return PValue; -} - -static cell AMX_NATIVE_CALL Hashtable_Create(AMX *amx, cell *params) -{ - return New_Hashtable(params[1],params[2]); -} - -static cell AMX_NATIVE_CALL Hashtable_Delete(AMX *amx, cell *params) -{ - Delete_Hashtable( params[1] ); - - return 1; -} - -static cell AMX_NATIVE_CALL Hashtable_Clear(AMX *amx, cell *params) -{ - Clear_Hashtable( params[1] ); - - return 1; -} - -static cell AMX_NATIVE_CALL Hashtable_SetVector(AMX *amx,cell *params) -{ - PPvoid_t Hashtable = Find_Hashtable(params[1], params[4], amx); - if (Hashtable == NULL) return 0; - - cell *input_vec = MF_GetAmxAddr(amx, params[3]); - Vector *value = new Vector( - amx_ctof(input_vec[0]), - amx_ctof(input_vec[1]), - amx_ctof(input_vec[2]) - ); - int strlen; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlen); - - PPvoid_t PValue = Hashtable_Get(amx, Hashtable, Index, 1); - element *elem_value = NULL; - if ( PValue == NULL ) - elem_value = new element(value); - else - { - elem_value = reinterpret_cast(*PValue); - (*elem_value).set_vec(value); - } - Hashtable_Set(Hashtable,Index,elem_value); - return 1; -} - - -static cell AMX_NATIVE_CALL Hashtable_GetVector(AMX *amx, cell *params) -{ - PPvoid_t Hashtable = Find_Hashtable(params[1], params[4], amx); - if (Hashtable == NULL) return 0; - - int strlen; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlen); - PPvoid_t PValue = Hashtable_Get(amx, Hashtable, Index, params[4]); - - cell *vAmx = MF_GetAmxAddr(amx, params[3]); - - if( PValue == NULL ) { - vAmx[0] = amx_ftoc(0); - vAmx[1] = amx_ftoc(0); - vAmx[2] = amx_ftoc(0); - return 0; - } - element elem_value = *reinterpret_cast(*PValue); - int error = 0; - const Vector retr_vec = *elem_value.get_vec(error); - if (error) - elem_value.issue_type_error(amx, params[1], Index); - vAmx[0] = amx_ftoc(retr_vec.x); - vAmx[1] = amx_ftoc(retr_vec.y); - vAmx[2] = amx_ftoc(retr_vec.z); - return 1; -} - -static cell AMX_NATIVE_CALL Hashtable_SetString(AMX *amx,cell *params) -{ - //params[1]: hashtable - PPvoid_t Hashtable = Find_Hashtable(params[1], params[4], amx); - if (Hashtable == NULL) return 0; - - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - - //params[3]: value - int iLen = 0; - char *value = MF_GetAmxString(amx,params[3],1,&iLen); - - PPvoid_t PValue = Hashtable_Get(amx, Hashtable, Index, 1); - element *elem_value = NULL; - if ( PValue == NULL ) - elem_value = new element(value); - else - { - elem_value = reinterpret_cast(*PValue); - (*elem_value).set_str(value); - } - Hashtable_Set(Hashtable,Index,elem_value); - - return 1; -} - -static cell AMX_NATIVE_CALL Hashtable_GetString(AMX *amx,cell *params) -{ - //params[1]: hashtable - PPvoid_t Hashtable = Find_Hashtable(params[1], params[5], amx); - if (Hashtable == NULL) return 0; - - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - - Pvoid_t * PValue = Hashtable_Get(amx, Hashtable, Index, params[5]); - - //params[3] and params[4] are the return string and length respectively. - - - if( PValue == NULL ) - return MF_SetAmxString(amx, params[3] , "dne", params[4] ); - - element elem_value = *reinterpret_cast(*PValue); - - int error = 0; - if (error) - elem_value.issue_type_error(amx, params[1], Index); - const char* str_out = elem_value.get_str(error); - return MF_SetAmxString( amx , params[3] , str_out, params[4] ); -} - -static cell AMX_NATIVE_CALL Hashtable_SetFloat(AMX *amx,cell *params) -{ - //params[1]: hashtable - PPvoid_t Hashtable = Find_Hashtable(params[1], params[4], amx); - if (Hashtable == NULL) return 0; - - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - //params[3]: value - PPvoid_t PValue = Hashtable_Get(amx, Hashtable, Index, 1); - element *elem_value = NULL; - if ( PValue == NULL ) - elem_value = new element(amx_ctof(params[3])); - else - { - elem_value = reinterpret_cast(*PValue); - (*elem_value).set_flo(amx_ctof(params[3])); - } - Hashtable_Set(Hashtable,Index,elem_value); - - return 1; -} - -static cell AMX_NATIVE_CALL Hashtable_GetFloat(AMX *amx,cell *params) -{ - //params[1]: hashtable - PPvoid_t Hashtable = Find_Hashtable(params[1], params[3], amx); - if (Hashtable == NULL) return 0; - - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - - PPvoid_t PValue = Hashtable_Get(amx, Hashtable, Index, params[3]); - - if( PValue == NULL ) return amx_ftoc(0.0); - - element elem_value = *reinterpret_cast(*PValue); - - int error = 0; - cell retr_float = amx_ftoc(elem_value.get_flo(error)); - if (error) - elem_value.issue_type_error(amx, params[1], Index); - return retr_float; -} - -static cell AMX_NATIVE_CALL Hashtable_SetInt(AMX *amx,cell *params) -{ - //params[1]: hashtable - PPvoid_t Hashtable = Find_Hashtable(params[1], params[4], amx); - if (Hashtable == NULL) return 0; - - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - - PPvoid_t PValue = Hashtable_Get(amx, Hashtable, Index, 1); - element *elem_value = NULL; - if ( PValue == NULL ) - elem_value = new element(params[3]); - else - { - elem_value = reinterpret_cast(*PValue); - (*elem_value).set_int(params[3]); - } - Hashtable_Set(Hashtable,Index,elem_value); - - return 1; -} - -static cell AMX_NATIVE_CALL Hashtable_GetInt(AMX *amx,cell *params) -{ - //params[1]: hashtable - PPvoid_t Hashtable = Find_Hashtable(params[1], params[3], amx); - if (Hashtable == NULL) return 0; - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - - Pvoid_t * PValue = Hashtable_Get(amx, Hashtable, Index, params[3]); - - if( PValue == NULL ) return 0; - - element elem_value = *reinterpret_cast(*PValue); - - int error = 0; - cell retr_int = elem_value.get_int(error); - if (error) - elem_value.issue_type_error(amx, params[1], Index); - return retr_int; -} - -static cell AMX_NATIVE_CALL Hashtable_Memory(AMX *amx,cell *params) -{ - Pvoid_t * Array = Find_Hashtable(params[1],params[2],amx); - if (Array == NULL) return 0; - - return JudyLMemUsed(*Array); -} - - -static cell AMX_NATIVE_CALL Hashtable_Remove(AMX *amx,cell *params) -{ - //params[1]: hashtable - PPvoid_t Hashtable = Find_Hashtable(params[1], 0, amx); - if (Hashtable == NULL) return 0; - - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - JudyHSDel(Hashtable, Index, strlength+1, PJE0 ); - - return 1; -} - -AMX_NATIVE_INFO hashtable_exports[] = { - { "hashtable_set_str", Hashtable_SetString }, - { "hashtable_get_str", Hashtable_GetString }, - - { "hashtable_set_vec", Hashtable_SetVector }, - { "hashtable_get_vec", Hashtable_GetVector }, - - { "hashtable_set_int", Hashtable_SetInt }, - { "hashtable_get_int", Hashtable_GetInt }, - - { "hashtable_set_float", Hashtable_SetFloat }, - { "hashtable_get_float", Hashtable_GetFloat }, - - { "hashtable_memory", Hashtable_Memory }, - - { "hashtable_remove", Hashtable_Remove }, - - { "hashtable_create", Hashtable_Create }, - { "hashtable_delete", Hashtable_Delete }, - { "hashtable_clear", Hashtable_Clear }, - { NULL, NULL } -}; - -#endif \ No newline at end of file diff --git a/dlls/arrayx/CKeytable.h b/dlls/arrayx/CKeytable.h deleted file mode 100644 index 43281968..00000000 --- a/dlls/arrayx/CKeytable.h +++ /dev/null @@ -1,703 +0,0 @@ -#if !defined _JUDYSL_ENABLED_ -#define _JUDYSL_ENABLED_ - -#define MAXLINELEN 1024 - -Pvoid_t MasterKeytable = (Pvoid_t) NULL; //Create the control array - -//Create an array that stores whether or not indices are used. -Pvoid_t MasterKeytable_Binary = (Pvoid_t) NULL; - -void Delete_MasterKeytable(void); - -Word_t New_Keytable(Word_t Index, Word_t reserve = 0); -PPvoid_t Find_Keytable(Word_t Index, Word_t disable_check = 1, AMX *amx = 0); -void Delete_Keytable(Word_t Index); -void Clear_Keytable(Word_t Index); - -template -void Keytable_Set(PPvoid_t Keytable, char *Index, Type value); - -PPvoid_t Keytable_Get(AMX* amx, Pvoid_t Keytable, char *Index, int ignore_error = 0); - - -void Delete_MasterKeytable(void) -{ - Word_t - Index = 0, - success; - J1F(success, MasterKeytable_Binary, Index); - while( success ) - { - Delete_Keytable(Index); - J1F(success, MasterKeytable_Binary, Index); - } -} - -Word_t New_Keytable(Word_t Index, Word_t reserve) -{ - Word_t success; //Dummy for macros. - J1T(success, MasterKeytable_Binary, Index); - - if (success && reserve) - return Index; //If the bit is set but it's 'reserved', return the index. - - //Only do this if the bit is not set or not reserved. - J1FE(success, MasterKeytable_Binary, Index); - J1S(success, MasterKeytable_Binary, Index); - - PPvoid_t Keytable = JudyLIns(&MasterKeytable, Index, PJE0); - *Keytable = (PWord_t) NULL; - - return Index; -} - -PPvoid_t Find_Keytable(Word_t Index, Word_t disable_check, AMX* amx) -{ - Word_t success; - J1T(success, MasterKeytable_Binary, Index); - if (success || disable_check) - { //Bit is valid - if(!success) - New_Keytable(Index); - - return JudyLGet(MasterKeytable, Index, PJE0); - } - MF_LogError(amx, AMX_ERR_NATIVE, "Keytable \"%s\" is invalid", Index); - return NULL; -} - -void Delete_Keytable(Word_t Index) -{ - int success; - J1T(success, MasterKeytable_Binary, Index); - if (success) - { //If the bit was set, clear and delete keytable. - Clear_Keytable(Index); - J1U(success, MasterKeytable_Binary, Index); - JudyLDel(&MasterKeytable, Index, PJE0); - } -} - -void Clear_Keytable(Word_t Index) -{ - int success; - J1T(success, MasterKeytable_Binary, Index); - if (success) //dont bother with unset Keytables. - { - PPvoid_t Keytable = Find_Keytable(Index); - char *Key = ""; - PPvoid_t PValue = JudySLFirst(*Keytable, Key, PJE0); - while (PValue != NULL) - { - element elem_value = *reinterpret_cast(*PValue); - elem_value.delete_element(); - PValue = JudySLNext(*Keytable, Key, PJE0); - } - JudySLFreeArray(Keytable, PJE0); - } -} - - -static cell AMX_NATIVE_CALL Keytable_Save(AMX *amx, cell *params) -{ - PPvoid_t Keytable = Find_Keytable(params[1], params[3], amx); - if (Keytable == NULL) return 0; - - int filename_length; - char *file = MF_GetAmxString(amx, params[2], 0, &filename_length); - file = MF_BuildPathname("%s", file); - unlink(file); - FILE *KeytableDB = fopen(file,"w"); - if (!KeytableDB) - return 0; - char* Key = new char[1024]; Key[0] = '\0'; - PPvoid_t PValue = JudySLFirst(*Keytable, reinterpret_cast(Key), PJE0); - element elem = NULL; - char elem_type = 0; - - int error; - - REAL vector_data[3] = { 0.0, 0.0, 0.0 }; - while (PValue) - { - elem = *reinterpret_cast(*PValue); - elem_type = elem.get_type(); - - if (elem_type < elem_type_int || elem_type > elem_type_vector) - continue; - - short key_len = strlen(Key); - fwrite(&key_len, sizeof(short), 1, KeytableDB); - fwrite(Key, sizeof(char), key_len, KeytableDB); - fwrite(&elem_type, sizeof(char), 1, KeytableDB); - if (elem_type == elem_type_int) - { - int int_buffer = elem.get_int(error); - fwrite(&int_buffer, sizeof(int), 1, KeytableDB); - } - else if (elem_type == elem_type_real) - { - REAL flo_buffer = elem.get_flo(error); - fwrite(&flo_buffer, sizeof(REAL), 1, KeytableDB); - } - else if (elem_type == elem_type_char) - { - const char* str_buffer = elem.get_str(error); - short buf_len = strlen(str_buffer); - fwrite(&buf_len, sizeof(short), 1, KeytableDB); - fwrite(str_buffer, sizeof(char), buf_len, KeytableDB); - } - else if (elem_type == elem_type_vector) - { - const Vector* vec_buffer = elem.get_vec(error); - fwrite(vec_buffer, sizeof(Vector), 1, KeytableDB); - } - PValue = JudySLNext(*Keytable, Key, PJE0); - } - fclose(KeytableDB); - return 1; -} - -static cell AMX_NATIVE_CALL Keytable_Load(AMX *amx, cell *params) -{ - //params[1]: file - int filename_length; - char *file = MF_GetAmxString(amx, params[1], 0, &filename_length); - file = MF_BuildPathname("%s", file); - FILE *KeytableDB = fopen(file, "a+"); - if (!KeytableDB) - return 0; - - //params[2]: keytable to create (optional index supplied) - int KeytableIndex = New_Keytable(params[2], params[3]); - Clear_Keytable(KeytableIndex); //make sure the keytable is empty. - PPvoid_t Keytable = Find_Keytable(KeytableIndex); - while(!feof(KeytableDB)) - { - char* index = ""; char type = 0; short index_len; - element *elem_value = NULL; - fread(&index_len, sizeof(short), 1, KeytableDB); - index = new char[index_len+1]; - fgets(index, index_len+1, KeytableDB); - if (feof(KeytableDB) || ferror(KeytableDB)) - break; - fread(&type, sizeof(char), 1, KeytableDB); - if (type < elem_type_int || type > elem_type_vector) - { - MF_LogError(amx, AMX_ERR_FORMAT, "Error loading keytable database \"%s\" into keytable %d. Bad file.", file, KeytableIndex); - return KeytableIndex; - } - else if (type == elem_type_int) - { - int value = 0; fread(&value, sizeof(int), 1, KeytableDB); - elem_value = new element(value); - } - else if (type == elem_type_real) - { - REAL value = 0; fread(&value, sizeof(REAL), 1, KeytableDB); - elem_value = new element(value); - } - else if (type == elem_type_char) - { - short length; fread(&length, sizeof(short), 1, KeytableDB); - char* value = new char[length+1]; fgets(value, length+1, KeytableDB); - elem_value = new element(value); - delete(value); - } - else if (type == elem_type_vector) - { - Vector *value = new Vector(); fread(value, sizeof(Vector), 1, KeytableDB); - elem_value = new element(value); - } - Keytable_Set(Keytable,index,elem_value); - delete (index); - } - fclose(KeytableDB); - return KeytableIndex; -} - -static cell AMX_NATIVE_CALL Keytable_Save_ASCII(AMX *amx, cell *params) -{ - //params[1]: file - int filename_length; - char *inputfile = MF_GetAmxString(amx, params[1], 0, &filename_length); - inputfile = MF_BuildPathname("%s", inputfile); - FILE *KeytableDB = fopen(inputfile, "a+"); - if (!KeytableDB) - return 0; - - char *outputfile = MF_GetAmxString(amx, params[2], 0, &filename_length); - outputfile = MF_BuildPathname("%s", outputfile); - FILE *ReadableDB = fopen(outputfile, "w"); - - char *buffer = "\0"; - - while(!feof(KeytableDB)) - { - char* key = NULL; char type = 0; short key_len; - fread(&key_len, sizeof(short), 1, KeytableDB); - key = new char[key_len+1]; - fgets(key, key_len+1, KeytableDB); - if (feof(KeytableDB) || ferror(KeytableDB)) - break; - fread(&type, sizeof(char), 1, KeytableDB); - - sprintf(buffer, "Key %-32s Length %3d, Type %7s", key, key_len, elem_types[type]); - if (type < elem_type_int || type > elem_type_vector) - { - MF_LogError(amx, AMX_ERR_FORMAT, "Error loading array database \"%s\" into readable format. Bad file.", inputfile); - return 0; - } - else if (type == elem_type_int) - { - int value = 0; fread(&value, sizeof(int), 1, KeytableDB); - fprintf(ReadableDB, "%s\t\t\t\tValue: %d\n", buffer, value); - } - else if (type == elem_type_real) - { - REAL value = 0; fread(&value, sizeof(REAL), 1, KeytableDB); - fprintf(ReadableDB, "%s\t\t\t\tValue: %f\n", buffer, value); - } - else if (type == elem_type_char) - { - short length; fread(&length, sizeof(short), 1, KeytableDB); - char* value = new char[length+1]; fgets(value, length+1, KeytableDB); - fprintf(ReadableDB, "%s Length %3d\tValue: \"%s\"\n", buffer, length, value); - delete value; - } - else if (type == elem_type_vector) - { - Vector *value = new Vector(); fread(value, sizeof(Vector), 1, KeytableDB); - fprintf(ReadableDB, "%s\t\t\t\tValue: {%f,%f,%f}\n", buffer, (*value).x, (*value).y, (*value).z); - delete value; - } - } - fclose(KeytableDB); - fclose(ReadableDB); - return 1; -} - -template //This will support input char*, Vector*, int, and cell_real*. -void Keytable_Set(PPvoid_t Keytable, char* Index, Type value) -{ - PPvoid_t PValue; // pointer to keytable element value - PValue = JudySLIns(Keytable, Index, PJE0); - *PValue = reinterpret_cast(value); -} - -PPvoid_t Keytable_Get(AMX* amx, PPvoid_t Keytable, char *Index, int ignore_error = 0) -{ - PPvoid_t PValue = JudySLGet( *Keytable, Index, PJE0 ); - if (PValue == NULL && !ignore_error) - MF_LogError(amx, AMX_ERR_NATIVE, "Keytable get on key \"%s\" is invalid", Index); - return PValue; -} - -static cell AMX_NATIVE_CALL Keytable_Create(AMX *amx, cell *params) -{ - return New_Keytable(params[1],params[2]); -} - -static cell AMX_NATIVE_CALL Keytable_Delete(AMX *amx, cell *params) -{ - Delete_Keytable( params[1] ); - - return 1; -} - -static cell AMX_NATIVE_CALL Keytable_Clear(AMX *amx, cell *params) -{ - Clear_Keytable( params[1] ); - - return 1; -} - -static cell AMX_NATIVE_CALL Keytable_SetVector(AMX *amx,cell *params) -{ - PPvoid_t Keytable = Find_Keytable(params[1], params[4], amx); - if (Keytable == NULL) return 0; - - cell *input_vec = MF_GetAmxAddr(amx, params[3]); - Vector *value = new Vector( - amx_ctof(input_vec[0]), - amx_ctof(input_vec[1]), - amx_ctof(input_vec[2]) - ); - int strlen; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlen); - - PPvoid_t PValue = Keytable_Get(amx, Keytable, Index, 1); - element *elem_value = NULL; - if ( PValue == NULL ) - elem_value = new element(value); - else - { - elem_value = reinterpret_cast(*PValue); - (*elem_value).set_vec(value); - } - Keytable_Set(Keytable,Index,elem_value); - return 1; -} - -static cell AMX_NATIVE_CALL Keytable_GetVector(AMX *amx, cell *params) -{ - PPvoid_t Keytable = Find_Keytable(params[1], params[4], amx); - if (Keytable == NULL) return 0; - - int strlen; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlen); - PPvoid_t PValue = Keytable_Get(amx, Keytable, Index, params[4]); - - cell *vAmx = MF_GetAmxAddr(amx, params[3]); - - if( PValue == NULL ) { - vAmx[0] = amx_ftoc(0); - vAmx[1] = amx_ftoc(0); - vAmx[2] = amx_ftoc(0); - return 0; - } - element elem_value = *reinterpret_cast(*PValue); - int error = 0; - const Vector retr_vec = *elem_value.get_vec(error); - if (error) - elem_value.issue_type_error(amx, params[1], Index); - vAmx[0] = amx_ftoc(retr_vec.x); - vAmx[1] = amx_ftoc(retr_vec.y); - vAmx[2] = amx_ftoc(retr_vec.z); - return 1; -} - -static cell AMX_NATIVE_CALL Keytable_SetString(AMX *amx,cell *params) -{ - //params[1]: keytable - PPvoid_t Keytable = Find_Keytable(params[1], params[4], amx); - if (Keytable == NULL) return 0; - - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - - //params[3]: value - int iLen = 0; - char *value = MF_GetAmxString(amx,params[3],1,&iLen); - - PPvoid_t PValue = Keytable_Get(amx, Keytable, Index, 1); - element *elem_value = NULL; - if ( PValue == NULL ) - elem_value = new element(value); - else - { - elem_value = reinterpret_cast(*PValue); - (*elem_value).set_str(value); - } - Keytable_Set(Keytable,Index,elem_value); - - return 1; -} - -static cell AMX_NATIVE_CALL Keytable_GetString(AMX *amx,cell *params) -{ - //params[1]: keytable - PPvoid_t Keytable = Find_Keytable(params[1], params[5], amx); - if (Keytable == NULL) return 0; - - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - - Pvoid_t * PValue = Keytable_Get(amx, Keytable, Index, params[5]); - - //params[3] and params[4] are the return string and length respectively. - - - if( PValue == NULL ) - return MF_SetAmxString(amx, params[3] , "dne", params[4] ); - - element elem_value = *reinterpret_cast(*PValue); - - int error = 0; - if (error) - elem_value.issue_type_error(amx, params[1], Index); - const char* str_out = elem_value.get_str(error); - return MF_SetAmxString( amx , params[3] , str_out, params[4] ); -} - -static cell AMX_NATIVE_CALL Keytable_SetFloat(AMX *amx,cell *params) -{ - //params[1]: keytable - PPvoid_t Keytable = Find_Keytable(params[1], params[4], amx); - if (Keytable == NULL) return 0; - - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - //params[3]: value - PPvoid_t PValue = Keytable_Get(amx, Keytable, Index, 1); - element *elem_value = NULL; - if ( PValue == NULL ) - elem_value = new element(amx_ctof(params[3])); - else - { - elem_value = reinterpret_cast(*PValue); - (*elem_value).set_flo(amx_ctof(params[3])); - } - Keytable_Set(Keytable,Index,elem_value); - - return 1; -} - -static cell AMX_NATIVE_CALL Keytable_GetFloat(AMX *amx,cell *params) -{ - //params[1]: keytable - PPvoid_t Keytable = Find_Keytable(params[1], params[3], amx); - if (Keytable == NULL) return 0; - - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - - PPvoid_t PValue = Keytable_Get(amx, Keytable, Index, params[3]); - - if( PValue == NULL ) return amx_ftoc(0.0); - - element elem_value = *reinterpret_cast(*PValue); - - int error = 0; - cell retr_float = amx_ftoc(elem_value.get_flo(error)); - if (error) - elem_value.issue_type_error(amx, params[1], Index); - return retr_float; -} - - -static cell AMX_NATIVE_CALL Keytable_SetInt(AMX *amx,cell *params) -{ - //params[1]: keytable - PPvoid_t Keytable = Find_Keytable(params[1], params[4], amx); - if (Keytable == NULL) return 0; - - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - - PPvoid_t PValue = Keytable_Get(amx, Keytable, Index, 1); - element *elem_value = NULL; - if ( PValue == NULL ) - elem_value = new element(params[3]); - else - { - elem_value = reinterpret_cast(*PValue); - (*elem_value).set_int(params[3]); - } - Keytable_Set(Keytable,Index,elem_value); - - return 1; -} - -static cell AMX_NATIVE_CALL Keytable_GetInt(AMX *amx,cell *params) -{ - //params[1]: keytable - PPvoid_t Keytable = Find_Keytable(params[1], params[3], amx); - if (Keytable == NULL) return 0; - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - - Pvoid_t * PValue = Keytable_Get(amx, Keytable, Index, params[3]); - - if( PValue == NULL ) return 0; - - element elem_value = *reinterpret_cast(*PValue); - - int error = 0; - cell retr_int = elem_value.get_int(error); - if (error) - elem_value.issue_type_error(amx, params[1], Index); - return retr_int; -} - -static cell AMX_NATIVE_CALL Keytable_Memory(AMX *amx,cell *params) -{ - Pvoid_t * Keytable = Find_Keytable(params[1],params[2],amx); - if (Keytable == NULL) return 0; - - return JudyLMemUsed(*Keytable); -} - -static cell AMX_NATIVE_CALL Keytable_Remove(AMX *amx,cell *params) -{ - //params[1]: keytable - PPvoid_t Keytable = Find_Keytable(params[1], 0, amx); - if (Keytable == NULL) return 0; - - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - //Have to delete the element - PPvoid_t PValue = JudySLGet(*Keytable, Index, PJE0); - if (PValue == NULL) return 1; - element elem_value = *reinterpret_cast(*PValue); - elem_value.delete_element(); - - JudySLDel(Keytable, Index, PJE0 ); - return 1; -} - -static cell AMX_NATIVE_CALL Keytable_Next(AMX *amx,cell *params) -{ - //params[1]: keytable - PPvoid_t Keytable = Find_Keytable(params[1], params[5], amx); - if (Keytable == NULL) return 0; - - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - //params[3], params[4]: return key and length - - PPvoid_t pointer; - pointer = JudySLNext(*Keytable, Index, PJE0); - - if (pointer == NULL) { - MF_SetAmxString(amx, params[3], "dne", 0); - return 0; - } - MF_SetAmxString(amx, params[3], Index, params[4]); - return 1; -} - -static cell AMX_NATIVE_CALL Keytable_Prev(AMX *amx,cell *params) -{ - //params[1]: keytable - PPvoid_t Keytable = Find_Keytable(params[1], params[5], amx); - if (Keytable == NULL) return 0; - - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - //params[3], params[4]: return key and length - - PPvoid_t pointer; - pointer = JudySLPrev(*Keytable, Index, PJE0); - - if (pointer == NULL) { - MF_SetAmxString(amx, params[3], "dne", 0); - return 0; - } - MF_SetAmxString(amx, params[3], Index, params[4]); - return 1; -} - - -static cell AMX_NATIVE_CALL Keytable_First(AMX *amx,cell *params) -{ - //params[1]: keytable - PPvoid_t Keytable = Find_Keytable(params[1], params[5], amx); - if (Keytable == NULL) return 0; - - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - //params[3], params[4]: return key and length - - PPvoid_t pointer; - pointer = JudySLFirst(*Keytable, Index, PJE0); - - if (pointer == NULL) { - MF_SetAmxString(amx, params[3], "dne", 0); - return 0; - } - MF_SetAmxString(amx, params[3], Index, params[4]); - return 1; -} - -static cell AMX_NATIVE_CALL Keytable_Last(AMX *amx,cell *params) -{ - //params[1]: keytable - PPvoid_t Keytable = Find_Keytable(params[1], params[5], amx); - if (Keytable == NULL) return 0; - - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - //params[3], params[4]: return key and length - - PPvoid_t pointer; - pointer = JudySLLast(*Keytable, Index, PJE0); - - if (pointer == NULL) { - MF_SetAmxString(amx, params[3], "dne", 0); - return 0; - } - MF_SetAmxString(amx, params[3], Index, params[4]); - return 1; -} - -static cell AMX_NATIVE_CALL Key_IsEmpty(AMX *amx, cell *params) -{ - //params[1]: keytable - PPvoid_t Keytable = Find_Keytable(params[1], params[3], amx); - if (Keytable == NULL) return 0; - - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - - PPvoid_t pointer = JudySLGet(*Keytable, Index, PJE0); - - return (pointer == NULL) ? 1 : 0; -} - -static cell AMX_NATIVE_CALL Key_IsFilled(AMX *amx, cell *params) -{ - //params[1]: keytable - PPvoid_t Keytable = Find_Keytable(params[1], params[3], amx); - if (Keytable == NULL) return 0; - - //params[2]: key - int strlength; - char *Index = MF_GetAmxString(amx, params[2], 0, &strlength); - - PPvoid_t pointer = JudySLGet(*Keytable, Index, PJE0); - - return (pointer != NULL) ? 1 : 0; -} - -AMX_NATIVE_INFO keytable_exports[] = { - { "keytable_set_string", Keytable_SetString }, - { "keytable_get_string", Keytable_GetString }, - - { "keytable_set_vector", Keytable_SetVector }, - { "keytable_get_vector", Keytable_GetVector }, - - { "keytable_set_int", Keytable_SetInt }, - { "keytable_get_int", Keytable_GetInt }, - - { "keytable_set_float", Keytable_SetFloat }, - { "keytable_get_float", Keytable_GetFloat }, - - { "keytable_isempty", Key_IsEmpty }, - { "keytable_isfilled", Key_IsFilled }, - - { "keytable_memory", Keytable_Memory }, - - { "keytable_remove", Keytable_Remove }, - - { "keytable_create", Keytable_Create }, - { "keytable_delete", Keytable_Delete }, - { "keytable_clear", Keytable_Clear }, - - { "keytable_next", Keytable_Next }, - { "keytable_prev", Keytable_Prev }, - { "keytable_first", Keytable_First }, - { "keytable_last", Keytable_Last }, - - { "keytable_save", Keytable_Save }, - { "keytable_load", Keytable_Load }, - - { "keytable_save_ascii", Keytable_Save_ASCII }, - - { NULL, NULL } -}; - -#endif \ No newline at end of file diff --git a/dlls/arrayx/amxxmodule.cpp b/dlls/arrayx/amxxmodule.cpp deleted file mode 100644 index e374e441..00000000 --- a/dlls/arrayx/amxxmodule.cpp +++ /dev/null @@ -1,3078 +0,0 @@ -/* AMX Mod X -* -* by the AMX Mod X Development Team -* originally developed by OLO -* -* Parts Copyright (C) 2001-2003 Will Day -* -* This program is free software; you can redistribute it and/or modify it -* under the terms of the GNU General Public License as published by the -* Free Software Foundation; either version 2 of the License, or (at -* your option) any later version. -* -* This program is distributed in the hope that it will be useful, but -* WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -* General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software Foundation, -* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -* -* In addition, as a special exception, the author gives permission to -* link the code of this program with the Half-Life Game Engine ("HL -* Engine") and Modified Game Libraries ("MODs") developed by Valve, -* L.L.C ("Valve"). You must obey the GNU General Public License in all -* respects for all of the code used other than the HL Engine and MODs -* from Valve. If you modify this file, you may extend this exception -* to your version of the file, but you are not obligated to do so. If -* you do not wish to do so, delete this exception statement from your -* version. -* -* Description: AMX Mod X Module Interface Functions -*/ - -#include -#include -#include -#include -#include -#include "amxxmodule.h" - -/************* METAMOD SUPPORT *************/ -#ifdef USE_METAMOD - -enginefuncs_t g_engfuncs; -globalvars_t *gpGlobals; - -DLL_FUNCTIONS *g_pFunctionTable; -DLL_FUNCTIONS *g_pFunctionTable_Post; -enginefuncs_t *g_pengfuncsTable; -enginefuncs_t *g_pengfuncsTable_Post; -NEW_DLL_FUNCTIONS *g_pNewFunctionsTable; -NEW_DLL_FUNCTIONS *g_pNewFunctionsTable_Post; - -// GetEntityAPI2 functions -static DLL_FUNCTIONS g_EntityAPI_Table = -{ -#ifdef FN_GameDLLInit - FN_GameDLLInit, -#else - NULL, -#endif -#ifdef FN_DispatchSpawn - FN_DispatchSpawn, -#else - NULL, -#endif -#ifdef FN_DispatchThink - FN_DispatchThink, -#else - NULL, -#endif -#ifdef FN_DispatchUse - FN_DispatchUse, -#else - NULL, -#endif -#ifdef FN_DispatchTouch - FN_DispatchTouch, -#else - NULL, -#endif -#ifdef FN_DispatchBlocked - FN_DispatchBlocked, -#else - NULL, -#endif -#ifdef FN_DispatchKeyValue - FN_DispatchKeyValue, -#else - NULL, -#endif -#ifdef FN_DispatchSave - FN_DispatchSave, -#else - NULL, -#endif -#ifdef FN_DispatchRestore - FN_DispatchRestore, -#else - NULL, -#endif -#ifdef FN_DispatchObjectCollsionBox - FN_DispatchObjectCollsionBox, -#else - NULL, -#endif -#ifdef FN_SaveWriteFields - FN_SaveWriteFields, -#else - NULL, -#endif -#ifdef FN_SaveReadFields - FN_SaveReadFields, -#else - NULL, -#endif -#ifdef FN_SaveGlobalState - FN_SaveGlobalState, -#else - NULL, -#endif -#ifdef FN_RestoreGlobalState - FN_RestoreGlobalState, -#else - NULL, -#endif -#ifdef FN_ResetGlobalState - FN_ResetGlobalState, -#else - NULL, -#endif -#ifdef FN_ClientConnect - FN_ClientConnect, -#else - NULL, -#endif -#ifdef FN_ClientDisconnect - FN_ClientDisconnect, -#else - NULL, -#endif -#ifdef FN_ClientKill - FN_ClientKill, -#else - NULL, -#endif -#ifdef FN_ClientPutInServer - FN_ClientPutInServer, -#else - NULL, -#endif -#ifdef FN_ClientCommand - FN_ClientCommand, -#else - NULL, -#endif -#ifdef FN_ClientUserInfoChanged - FN_ClientUserInfoChanged, -#else - NULL, -#endif -#ifdef FN_ServerActivate - FN_ServerActivate, -#else - NULL, -#endif -#ifdef FN_ServerDeactivate - FN_ServerDeactivate, -#else - NULL, -#endif -#ifdef FN_PlayerPreThink - FN_PlayerPreThink, -#else - NULL, -#endif -#ifdef FN_PlayerPostThink - FN_PlayerPostThink, -#else - NULL, -#endif -#ifdef FN_StartFrame - FN_StartFrame, -#else - NULL, -#endif -#ifdef FN_ParmsNewLevel - FN_ParmsNewLevel, -#else - NULL, -#endif -#ifdef FN_ParmsChangeLevel - FN_ParmsChangeLevel, -#else - NULL, -#endif -#ifdef FN_GetGameDescription - FN_GetGameDescription, -#else - NULL, -#endif -#ifdef FN_PlayerCustomization - FN_PlayerCustomization, -#else - NULL, -#endif -#ifdef FN_SpectatorConnect - FN_SpectatorConnect, -#else - NULL, -#endif -#ifdef FN_SpectatorDisconnect - FN_SpectatorDisconnect, -#else - NULL, -#endif -#ifdef FN_SpectatorThink - FN_SpectatorThink, -#else - NULL, -#endif -#ifdef FN_Sys_Error - FN_Sys_Error, -#else - NULL, -#endif -#ifdef FN_PM_Move - FN_PM_Move, -#else - NULL, -#endif -#ifdef FN_PM_Init - FN_PM_Init, -#else - NULL, -#endif -#ifdef FN_PM_FindTextureType - FN_PM_FindTextureType, -#else - NULL, -#endif -#ifdef FN_SetupVisibility - FN_SetupVisibility, -#else - NULL, -#endif -#ifdef FN_UpdateClientData - FN_UpdateClientData, -#else - NULL, -#endif -#ifdef FN_AddToFullPack - FN_AddToFullPack, -#else - NULL, -#endif -#ifdef FN_CreateBaseline - FN_CreateBaseline, -#else - NULL, -#endif -#ifdef FN_RegisterEncoders - FN_RegisterEncoders, -#else - NULL, -#endif -#ifdef FN_GetWeaponData - FN_GetWeaponData, -#else - NULL, -#endif -#ifdef FN_CmdStart - FN_CmdStart, -#else - NULL, -#endif -#ifdef FN_CmdEnd - FN_CmdEnd, -#else - NULL, -#endif -#ifdef FN_ConnectionlessPacket - FN_ConnectionlessPacket, -#else - NULL, -#endif -#ifdef FN_GetHullBounds - FN_GetHullBounds, -#else - NULL, -#endif -#ifdef FN_CreateInstancedBaselines - FN_CreateInstancedBaselines, -#else - NULL, -#endif -#ifdef FN_InconsistentFile - FN_InconsistentFile, -#else - NULL, -#endif -#ifdef FN_AllowLagCompensation - FN_AllowLagCompensation -#else - NULL -#endif -}; // g_EntityAPI2_Table - -// GetEntityAPI2_Post functions -static DLL_FUNCTIONS g_EntityAPI_Post_Table = -{ -#ifdef FN_GameDLLInit_Post - FN_GameDLLInit_Post, -#else - NULL, -#endif -#ifdef FN_DispatchSpawn_Post - FN_DispatchSpawn_Post, -#else - NULL, -#endif -#ifdef FN_DispatchThink_Post - FN_DispatchThink_Post, -#else - NULL, -#endif -#ifdef FN_DispatchUse_Post - FN_DispatchUse_Post, -#else - NULL, -#endif -#ifdef FN_DispatchTouch_Post - FN_DispatchTouch_Post, -#else - NULL, -#endif -#ifdef FN_DispatchBlocked_Post - FN_DispatchBlocked_Post, -#else - NULL, -#endif -#ifdef FN_DispatchKeyValue_Post - FN_DispatchKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_DispatchSave_Post - FN_DispatchSave_Post, -#else - NULL, -#endif -#ifdef FN_DispatchRestore_Post - FN_DispatchRestore_Post, -#else - NULL, -#endif -#ifdef FN_DispatchObjectCollsionBox_Post - FN_DispatchObjectCollsionBox_Post, -#else - NULL, -#endif -#ifdef FN_SaveWriteFields_Post - FN_SaveWriteFields_Post, -#else - NULL, -#endif -#ifdef FN_SaveReadFields_Post - FN_SaveReadFields_Post, -#else - NULL, -#endif -#ifdef FN_SaveGlobalState_Post - FN_SaveGlobalState_Post, -#else - NULL, -#endif -#ifdef FN_RestoreGlobalState_Post - FN_RestoreGlobalState_Post, -#else - NULL, -#endif -#ifdef FN_ResetGlobalState_Post - FN_ResetGlobalState_Post, -#else - NULL, -#endif -#ifdef FN_ClientConnect_Post - FN_ClientConnect_Post, -#else - NULL, -#endif -#ifdef FN_ClientDisconnect_Post - FN_ClientDisconnect_Post, -#else - NULL, -#endif -#ifdef FN_ClientKill_Post - FN_ClientKill_Post, -#else - NULL, -#endif -#ifdef FN_ClientPutInServer_Post - FN_ClientPutInServer_Post, -#else - NULL, -#endif -#ifdef FN_ClientCommand_Post - FN_ClientCommand_Post, -#else - NULL, -#endif -#ifdef FN_ClientUserInfoChanged_Post - FN_ClientUserInfoChanged_Post, -#else - NULL, -#endif -#ifdef FN_ServerActivate_Post - FN_ServerActivate_Post, -#else - NULL, -#endif -#ifdef FN_ServerDeactivate_Post - FN_ServerDeactivate_Post, -#else - NULL, -#endif -#ifdef FN_PlayerPreThink_Post - FN_PlayerPreThink_Post, -#else - NULL, -#endif -#ifdef FN_PlayerPostThink_Post - FN_PlayerPostThink_Post, -#else - NULL, -#endif -#ifdef FN_StartFrame_Post - FN_StartFrame_Post, -#else - NULL, -#endif -#ifdef FN_ParmsNewLevel_Post - FN_ParmsNewLevel_Post, -#else - NULL, -#endif -#ifdef FN_ParmsChangeLevel_Post - FN_ParmsChangeLevel_Post, -#else - NULL, -#endif -#ifdef FN_GetGameDescription_Post - FN_GetGameDescription_Post, -#else - NULL, -#endif -#ifdef FN_PlayerCustomization_Post - FN_PlayerCustomization_Post, -#else - NULL, -#endif -#ifdef FN_SpectatorConnect_Post - FN_SpectatorConnect_Post, -#else - NULL, -#endif -#ifdef FN_SpectatorDisconnect_Post - FN_SpectatorDisconnect_Post, -#else - NULL, -#endif -#ifdef FN_SpectatorThink_Post - FN_SpectatorThink_Post, -#else - NULL, -#endif -#ifdef FN_Sys_Error_Post - FN_Sys_Error_Post, -#else - NULL, -#endif -#ifdef FN_PM_Move_Post - FN_PM_Move_Post, -#else - NULL, -#endif -#ifdef FN_PM_Init_Post - FN_PM_Init_Post, -#else - NULL, -#endif -#ifdef FN_PM_FindTextureType_Post - FN_PM_FindTextureType_Post, -#else - NULL, -#endif -#ifdef FN_SetupVisibility_Post - FN_SetupVisibility_Post, -#else - NULL, -#endif -#ifdef FN_UpdateClientData_Post - FN_UpdateClientData_Post, -#else - NULL, -#endif -#ifdef FN_AddToFullPack_Post - FN_AddToFullPack_Post, -#else - NULL, -#endif -#ifdef FN_CreateBaseline_Post - FN_CreateBaseline_Post, -#else - NULL, -#endif -#ifdef FN_RegisterEncoders_Post - FN_RegisterEncoders_Post, -#else - NULL, -#endif -#ifdef FN_GetWeaponData_Post - FN_GetWeaponData_Post, -#else - NULL, -#endif -#ifdef FN_CmdStart_Post - FN_CmdStart_Post, -#else - NULL, -#endif -#ifdef FN_CmdEnd_Post - FN_CmdEnd_Post, -#else - NULL, -#endif -#ifdef FN_ConnectionlessPacket_Post - FN_ConnectionlessPacket_Post, -#else - NULL, -#endif -#ifdef FN_GetHullBounds_Post - FN_GetHullBounds_Post, -#else - NULL, -#endif -#ifdef FN_CreateInstancedBaselines_Post - FN_CreateInstancedBaselines_Post, -#else - NULL, -#endif -#ifdef FN_InconsistentFile_Post - FN_InconsistentFile_Post, -#else - NULL, -#endif -#ifdef FN_AllowLagCompensation - FN_AllowLagCompensation, -#else - NULL, -#endif -}; // g_EntityAPI2_Table - -static enginefuncs_t g_EngineFuncs_Table = -{ -#ifdef FN_PrecacheModel - FN_PrecacheModel, -#else - NULL, -#endif -#ifdef FN_PrecacheSound - FN_PrecacheSound, -#else - NULL, -#endif -#ifdef FN_SetModel - FN_SetModel, -#else - NULL, -#endif -#ifdef FN_ModelIndex - FN_ModelIndex, -#else - NULL, -#endif -#ifdef FN_ModelFrames - FN_ModelFrames, -#else - NULL, -#endif -#ifdef FN_SetSize - FN_SetSize, -#else - NULL, -#endif -#ifdef FN_ChangeLevel - FN_ChangeLevel, -#else - NULL, -#endif -#ifdef FN_GetSpawnParms - FN_GetSpawnParms, -#else - NULL, -#endif -#ifdef FN_SaveSpawnParms - FN_SaveSpawnParms, -#else - NULL, -#endif -#ifdef FN_VecToYaw - FN_VecToYaw, -#else - NULL, -#endif -#ifdef FN_VecToAngles - FN_VecToAngles, -#else - NULL, -#endif -#ifdef FN_MoveToOrigin - FN_MoveToOrigin, -#else - NULL, -#endif -#ifdef FN_ChangeYaw - FN_ChangeYaw, -#else - NULL, -#endif -#ifdef FN_ChangePitch - FN_ChangePitch, -#else - NULL, -#endif -#ifdef FN_FindEntityByString - FN_FindEntityByString, -#else - NULL, -#endif -#ifdef FN_GetEntityIllum - FN_GetEntityIllum, -#else - NULL, -#endif -#ifdef FN_FindEntityInSphere - FN_FindEntityInSphere, -#else - NULL, -#endif -#ifdef FN_FindClientInPVS - FN_FindClientInPVS, -#else - NULL, -#endif -#ifdef FN_EntitiesInPVS - FN_EntitiesInPVS, -#else - NULL, -#endif -#ifdef FN_MakeVectors - FN_MakeVectors, -#else - NULL, -#endif -#ifdef FN_AngleVectors - FN_AngleVectors, -#else - NULL, -#endif -#ifdef FN_CreateEntity - FN_CreateEntity, -#else - NULL, -#endif -#ifdef FN_RemoveEntity - FN_RemoveEntity, -#else - NULL, -#endif -#ifdef FN_CreateNamedEntity - FN_CreateNamedEntity, -#else - NULL, -#endif -#ifdef FN_MakeStatic - FN_MakeStatic, -#else - NULL, -#endif -#ifdef FN_EntIsOnFloor - FN_EntIsOnFloor, -#else - NULL, -#endif -#ifdef FN_DropToFloor - FN_DropToFloor, -#else - NULL, -#endif -#ifdef FN_WalkMove - FN_WalkMove, -#else - NULL, -#endif -#ifdef FN_SetOrigin - FN_SetOrigin, -#else - NULL, -#endif -#ifdef FN_EmitSound - FN_EmitSound, -#else - NULL, -#endif -#ifdef FN_EmitAmbientSound - FN_EmitAmbientSound, -#else - NULL, -#endif -#ifdef FN_TraceLine - FN_TraceLine, -#else - NULL, -#endif -#ifdef FN_TraceToss - FN_TraceToss, -#else - NULL, -#endif -#ifdef FN_TraceMonsterHull - FN_TraceMonsterHull, -#else - NULL, -#endif -#ifdef FN_TraceHull - FN_TraceHull, -#else - NULL, -#endif -#ifdef FN_TraceModel - FN_TraceModel, -#else - NULL, -#endif -#ifdef FN_TraceTexture - FN_TraceTexture, -#else - NULL, -#endif -#ifdef FN_TraceSphere - FN_TraceSphere, -#else - NULL, -#endif -#ifdef FN_GetAimVector - FN_GetAimVector, -#else - NULL, -#endif -#ifdef FN_ServerCommand - FN_ServerCommand, -#else - NULL, -#endif -#ifdef FN_ServerExecute - FN_ServerExecute, -#else - NULL, -#endif -#ifdef FN_engClientCommand - FN_engClientCommand, -#else - NULL, -#endif -#ifdef FN_ParticleEffect - FN_ParticleEffect, -#else - NULL, -#endif -#ifdef FN_LightStyle - FN_LightStyle, -#else - NULL, -#endif -#ifdef FN_DecalIndex - FN_DecalIndex, -#else - NULL, -#endif -#ifdef FN_PointContents - FN_PointContents, -#else - NULL, -#endif -#ifdef FN_MessageBegin - FN_MessageBegin, -#else - NULL, -#endif -#ifdef FN_MessageEnd - FN_MessageEnd, -#else - NULL, -#endif -#ifdef FN_WriteByte - FN_WriteByte, -#else - NULL, -#endif -#ifdef FN_WriteChar - FN_WriteChar, -#else - NULL, -#endif -#ifdef FN_WriteShort - FN_WriteShort, -#else - NULL, -#endif -#ifdef FN_WriteLong - FN_WriteLong, -#else - NULL, -#endif -#ifdef FN_WriteAngle - FN_WriteAngle, -#else - NULL, -#endif -#ifdef FN_WriteCoord - FN_WriteCoord, -#else - NULL, -#endif -#ifdef FN_WriteString - FN_WriteString, -#else - NULL, -#endif -#ifdef FN_WriteEntity - FN_WriteEntity, -#else - NULL, -#endif -#ifdef FN_CVarRegister - FN_CVarRegister, -#else - NULL, -#endif -#ifdef FN_CVarGetFloat - FN_CVarGetFloat, -#else - NULL, -#endif -#ifdef FN_CVarGetString - FN_CVarGetString, -#else - NULL, -#endif -#ifdef FN_CVarSetFloat - FN_CVarSetFloat, -#else - NULL, -#endif -#ifdef FN_CVarSetString - FN_CVarSetString, -#else - NULL, -#endif -#ifdef FN_AlertMessage - FN_AlertMessage, -#else - NULL, -#endif -#ifdef FN_EngineFprintf - FN_EngineFprintf, -#else - NULL, -#endif -#ifdef FN_PvAllocEntPrivateData - FN_PvAllocEntPrivateData, -#else - NULL, -#endif -#ifdef FN_PvEntPrivateData - FN_PvEntPrivateData, -#else - NULL, -#endif -#ifdef FN_FreeEntPrivateData - FN_FreeEntPrivateData, -#else - NULL, -#endif -#ifdef FN_SzFromIndex - FN_SzFromIndex, -#else - NULL, -#endif -#ifdef FN_AllocString - FN_AllocString, -#else - NULL, -#endif -#ifdef FN_GetVarsOfEnt - FN_GetVarsOfEnt, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntOffset - FN_PEntityOfEntOffset, -#else - NULL, -#endif -#ifdef FN_EntOffsetOfPEntity - FN_EntOffsetOfPEntity, -#else - NULL, -#endif -#ifdef FN_IndexOfEdict - FN_IndexOfEdict, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntIndex - FN_PEntityOfEntIndex, -#else - NULL, -#endif -#ifdef FN_FindEntityByVars - FN_FindEntityByVars, -#else - NULL, -#endif -#ifdef FN_GetModelPtr - FN_GetModelPtr, -#else - NULL, -#endif -#ifdef FN_RegUserMsg - FN_RegUserMsg, -#else - NULL, -#endif -#ifdef FN_AnimationAutomove - FN_AnimationAutomove, -#else - NULL, -#endif -#ifdef FN_GetBonePosition - FN_GetBonePosition, -#else - NULL, -#endif -#ifdef FN_FunctionFromName - FN_FunctionFromName, -#else - NULL, -#endif -#ifdef FN_NameForFunction - FN_NameForFunction, -#else - NULL, -#endif -#ifdef FN_ClientPrintf - FN_ClientPrintf, -#else - NULL, -#endif -#ifdef FN_ServerPrint - FN_ServerPrint, -#else - NULL, -#endif -#ifdef FN_Cmd_Args - FN_Cmd_Args, -#else - NULL, -#endif -#ifdef FN_Cmd_Argv - FN_Cmd_Argv, -#else - NULL, -#endif -#ifdef FN_Cmd_Argc - FN_Cmd_Argc, -#else - NULL, -#endif -#ifdef FN_GetAttachment - FN_GetAttachment, -#else - NULL, -#endif -#ifdef FN_CRC32_Init - FN_CRC32_Init, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessBuffer - FN_CRC32_ProcessBuffer, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessByte - FN_CRC32_ProcessByte, -#else - NULL, -#endif -#ifdef FN_CRC32_Final - FN_CRC32_Final, -#else - NULL, -#endif -#ifdef FN_RandomLong - FN_RandomLong, -#else - NULL, -#endif -#ifdef FN_RandomFloat - FN_RandomFloat, -#else - NULL, -#endif -#ifdef FN_SetView - FN_SetView, -#else - NULL, -#endif -#ifdef FN_Time - FN_Time, -#else - NULL, -#endif -#ifdef FN_CrosshairAngle - FN_CrosshairAngle, -#else - NULL, -#endif -#ifdef FN_LoadFileForMe - FN_LoadFileForMe, -#else - NULL, -#endif -#ifdef FN_FreeFile - FN_FreeFile, -#else - NULL, -#endif -#ifdef FN_EndSection - FN_EndSection, -#else - NULL, -#endif -#ifdef FN_CompareFileTime - FN_CompareFileTime, -#else - NULL, -#endif -#ifdef FN_GetGameDir - FN_GetGameDir, -#else - NULL, -#endif -#ifdef FN_Cvar_RegisterVariable - FN_Cvar_RegisterVariable, -#else - NULL, -#endif -#ifdef FN_FadeClientVolume - FN_FadeClientVolume, -#else - NULL, -#endif -#ifdef FN_SetClientMaxspeed - FN_SetClientMaxspeed, -#else - NULL, -#endif -#ifdef FN_CreateFakeClient - FN_CreateFakeClient, -#else - NULL, -#endif -#ifdef FN_RunPlayerMove - FN_RunPlayerMove, -#else - NULL, -#endif -#ifdef FN_NumberOfEntities - FN_NumberOfEntities, -#else - NULL, -#endif -#ifdef FN_GetInfoKeyBuffer - FN_GetInfoKeyBuffer, -#else - NULL, -#endif -#ifdef FN_InfoKeyValue - FN_InfoKeyValue, -#else - NULL, -#endif -#ifdef FN_SetKeyValue - FN_SetKeyValue, -#else - NULL, -#endif -#ifdef FN_SetClientKeyValue - FN_SetClientKeyValue, -#else - NULL, -#endif -#ifdef FN_IsMapValid - FN_IsMapValid, -#else - NULL, -#endif -#ifdef FN_StaticDecal - FN_StaticDecal, -#else - NULL, -#endif -#ifdef FN_PrecacheGeneric - FN_PrecacheGeneric, -#else - NULL, -#endif -#ifdef FN_GetPlayerUserId - FN_GetPlayerUserId, -#else - NULL, -#endif -#ifdef FN_BuildSoundMsg - FN_BuildSoundMsg, -#else - NULL, -#endif -#ifdef FN_IsDedicatedServer - FN_IsDedicatedServer, -#else - NULL, -#endif -#ifdef FN_CVarGetPointer - FN_CVarGetPointer, -#else - NULL, -#endif -#ifdef FN_GetPlayerWONId - FN_GetPlayerWONId, -#else - NULL, -#endif -#ifdef FN_Info_RemoveKey - FN_Info_RemoveKey, -#else - NULL, -#endif -#ifdef FN_GetPhysicsKeyValue - FN_GetPhysicsKeyValue, -#else - NULL, -#endif -#ifdef FN_SetPhysicsKeyValue - FN_SetPhysicsKeyValue, -#else - NULL, -#endif -#ifdef FN_GetPhysicsInfoString - FN_GetPhysicsInfoString, -#else - NULL, -#endif -#ifdef FN_PrecacheEvent - FN_PrecacheEvent, -#else - NULL, -#endif -#ifdef FN_PlaybackEvent - FN_PlaybackEvent, -#else - NULL, -#endif -#ifdef FN_SetFatPVS - FN_SetFatPVS, -#else - NULL, -#endif -#ifdef FN_SetFatPAS - FN_SetFatPAS, -#else - NULL, -#endif -#ifdef FN_CheckVisibility - FN_CheckVisibility, -#else - NULL, -#endif -#ifdef FN_DeltaSetField - FN_DeltaSetField, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetField - FN_DeltaUnsetField, -#else - NULL, -#endif -#ifdef FN_DeltaAddEncoder - FN_DeltaAddEncoder, -#else - NULL, -#endif -#ifdef FN_GetCurrentPlayer - FN_GetCurrentPlayer, -#else - NULL, -#endif -#ifdef FN_CanSkipPlayer - FN_CanSkipPlayer, -#else - NULL, -#endif -#ifdef FN_DeltaFindField - FN_DeltaFindField, -#else - NULL, -#endif -#ifdef FN_DeltaSetFieldByIndex - FN_DeltaSetFieldByIndex, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetFieldByIndex - FN_DeltaUnsetFieldByIndex, -#else - NULL, -#endif -#ifdef FN_SetGroupMask - FN_SetGroupMask, -#else - NULL, -#endif -#ifdef FN_engCreateInstancedBaseline - FN_engCreateInstancedBaseline, -#else - NULL, -#endif -#ifdef FN_Cvar_DirectSet - FN_Cvar_DirectSet, -#else - NULL, -#endif -#ifdef FN_ForceUnmodified - FN_ForceUnmodified, -#else - NULL, -#endif -#ifdef FN_GetPlayerStats - FN_GetPlayerStats, -#else - NULL, -#endif -#ifdef FN_AddServerCommand - FN_AddServerCommand, -#else - NULL, -#endif -#ifdef FN_Voice_GetClientListening - FN_Voice_GetClientListening, -#else - NULL, -#endif -#ifdef FN_Voice_SetClientListening - FN_Voice_SetClientListening, -#else - NULL, -#endif -#ifdef FN_GetPlayerAuthId - FN_GetPlayerAuthId -#else - NULL -#endif -}; // g_EngineFuncs_Table - - -static enginefuncs_t g_EngineFuncs_Post_Table = -{ -#ifdef FN_PrecacheModel_Post - FN_PrecacheModel_Post, -#else - NULL, -#endif -#ifdef FN_PrecacheSound_Post - FN_PrecacheSound_Post, -#else - NULL, -#endif -#ifdef FN_SetModel_Post - FN_SetModel_Post, -#else - NULL, -#endif -#ifdef FN_ModelIndex_Post - FN_ModelIndex_Post, -#else - NULL, -#endif -#ifdef FN_ModelFrames_Post - FN_ModelFrames_Post, -#else - NULL, -#endif -#ifdef FN_SetSize_Post - FN_SetSize_Post, -#else - NULL, -#endif -#ifdef FN_ChangeLevel_Post - FN_ChangeLevel_Post, -#else - NULL, -#endif -#ifdef FN_GetSpawnParms_Post - FN_GetSpawnParms_Post, -#else - NULL, -#endif -#ifdef FN_SaveSpawnParms_Post - FN_SaveSpawnParms_Post, -#else - NULL, -#endif -#ifdef FN_VecToYaw_Post - FN_VecToYaw_Post, -#else - NULL, -#endif -#ifdef FN_VecToAngles_Post - FN_VecToAngles_Post, -#else - NULL, -#endif -#ifdef FN_MoveToOrigin_Post - FN_MoveToOrigin_Post, -#else - NULL, -#endif -#ifdef FN_ChangeYaw_Post - FN_ChangeYaw_Post, -#else - NULL, -#endif -#ifdef FN_ChangePitch_Post - FN_ChangePitch_Post, -#else - NULL, -#endif -#ifdef FN_FindEntityByString_Post - FN_FindEntityByString_Post, -#else - NULL, -#endif -#ifdef FN_GetEntityIllum_Post - FN_GetEntityIllum_Post, -#else - NULL, -#endif -#ifdef FN_FindEntityInSphere_Post - FN_FindEntityInSphere_Post, -#else - NULL, -#endif -#ifdef FN_FindClientInPVS_Post - FN_FindClientInPVS_Post, -#else - NULL, -#endif -#ifdef FN_EntitiesInPVS_Post - FN_EntitiesInPVS_Post, -#else - NULL, -#endif -#ifdef FN_MakeVectors_Post - FN_MakeVectors_Post, -#else - NULL, -#endif -#ifdef FN_AngleVectors_Post - FN_AngleVectors_Post, -#else - NULL, -#endif -#ifdef FN_CreateEntity_Post - FN_CreateEntity_Post, -#else - NULL, -#endif -#ifdef FN_RemoveEntity_Post - FN_RemoveEntity_Post, -#else - NULL, -#endif -#ifdef FN_CreateNamedEntity_Post - FN_CreateNamedEntity_Post, -#else - NULL, -#endif -#ifdef FN_MakeStatic_Post - FN_MakeStatic_Post, -#else - NULL, -#endif -#ifdef FN_EntIsOnFloor_Post - FN_EntIsOnFloor_Post, -#else - NULL, -#endif -#ifdef FN_DropToFloor_Post - FN_DropToFloor_Post, -#else - NULL, -#endif -#ifdef FN_WalkMove_Post - FN_WalkMove_Post, -#else - NULL, -#endif -#ifdef FN_SetOrigin_Post - FN_SetOrigin_Post, -#else - NULL, -#endif -#ifdef FN_EmitSound_Post - FN_EmitSound_Post, -#else - NULL, -#endif -#ifdef FN_EmitAmbientSound_Post - FN_EmitAmbientSound_Post, -#else - NULL, -#endif -#ifdef FN_TraceLine_Post - FN_TraceLine_Post, -#else - NULL, -#endif -#ifdef FN_TraceToss_Post - FN_TraceToss_Post, -#else - NULL, -#endif -#ifdef FN_TraceMonsterHull_Post - FN_TraceMonsterHull_Post, -#else - NULL, -#endif -#ifdef FN_TraceHull_Post - FN_TraceHull_Post, -#else - NULL, -#endif -#ifdef FN_TraceModel_Post - FN_TraceModel_Post, -#else - NULL, -#endif -#ifdef FN_TraceTexture_Post - FN_TraceTexture_Post, -#else - NULL, -#endif -#ifdef FN_TraceSphere_Post - FN_TraceSphere_Post, -#else - NULL, -#endif -#ifdef FN_GetAimVector_Post - FN_GetAimVector_Post, -#else - NULL, -#endif -#ifdef FN_ServerCommand_Post - FN_ServerCommand_Post, -#else - NULL, -#endif -#ifdef FN_ServerExecute_Post - FN_ServerExecute_Post, -#else - NULL, -#endif -#ifdef FN_engClientCommand_Post - FN_engClientCommand_Post, -#else - NULL, -#endif -#ifdef FN_ParticleEffect_Post - FN_ParticleEffect_Post, -#else - NULL, -#endif -#ifdef FN_LightStyle_Post - FN_LightStyle_Post, -#else - NULL, -#endif -#ifdef FN_DecalIndex_Post - FN_DecalIndex_Post, -#else - NULL, -#endif -#ifdef FN_PointContents_Post - FN_PointContents_Post, -#else - NULL, -#endif -#ifdef FN_MessageBegin_Post - FN_MessageBegin_Post, -#else - NULL, -#endif -#ifdef FN_MessageEnd_Post - FN_MessageEnd_Post, -#else - NULL, -#endif -#ifdef FN_WriteByte_Post - FN_WriteByte_Post, -#else - NULL, -#endif -#ifdef FN_WriteChar_Post - FN_WriteChar_Post, -#else - NULL, -#endif -#ifdef FN_WriteShort_Post - FN_WriteShort_Post, -#else - NULL, -#endif -#ifdef FN_WriteLong_Post - FN_WriteLong_Post, -#else - NULL, -#endif -#ifdef FN_WriteAngle_Post - FN_WriteAngle_Post, -#else - NULL, -#endif -#ifdef FN_WriteCoord_Post - FN_WriteCoord_Post, -#else - NULL, -#endif -#ifdef FN_WriteString_Post - FN_WriteString_Post, -#else - NULL, -#endif -#ifdef FN_WriteEntity_Post - FN_WriteEntity_Post, -#else - NULL, -#endif -#ifdef FN_CVarRegister_Post - FN_CVarRegister_Post, -#else - NULL, -#endif -#ifdef FN_CVarGetFloat_Post - FN_CVarGetFloat_Post, -#else - NULL, -#endif -#ifdef FN_CVarGetString_Post - FN_CVarGetString_Post, -#else - NULL, -#endif -#ifdef FN_CVarSetFloat_Post - FN_CVarSetFloat_Post, -#else - NULL, -#endif -#ifdef FN_CVarSetString_Post - FN_CVarSetString_Post, -#else - NULL, -#endif -#ifdef FN_AlertMessage_Post - FN_AlertMessage_Post, -#else - NULL, -#endif -#ifdef FN_EngineFprintf_Post - FN_EngineFprintf_Post, -#else - NULL, -#endif -#ifdef FN_PvAllocEntPrivateData_Post - FN_PvAllocEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_PvEntPrivateData_Post - FN_PvEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_FreeEntPrivateData_Post - FN_FreeEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_SzFromIndex_Post - FN_SzFromIndex_Post, -#else - NULL, -#endif -#ifdef FN_AllocString_Post - FN_AllocString_Post, -#else - NULL, -#endif -#ifdef FN_GetVarsOfEnt_Post - FN_GetVarsOfEnt_Post, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntOffset_Post - FN_PEntityOfEntOffset_Post, -#else - NULL, -#endif -#ifdef FN_EntOffsetOfPEntity_Post - FN_EntOffsetOfPEntity_Post, -#else - NULL, -#endif -#ifdef FN_IndexOfEdict_Post - FN_IndexOfEdict_Post, -#else - NULL, -#endif -#ifdef FN_PEntityOfEntIndex_Post - FN_PEntityOfEntIndex_Post, -#else - NULL, -#endif -#ifdef FN_FindEntityByVars_Post - FN_FindEntityByVars_Post, -#else - NULL, -#endif -#ifdef FN_GetModelPtr_Post - FN_GetModelPtr_Post, -#else - NULL, -#endif -#ifdef FN_RegUserMsg_Post - FN_RegUserMsg_Post, -#else - NULL, -#endif -#ifdef FN_AnimationAutomove_Post - FN_AnimationAutomove_Post, -#else - NULL, -#endif -#ifdef FN_GetBonePosition_Post - FN_GetBonePosition_Post, -#else - NULL, -#endif -#ifdef FN_FunctionFromName_Post - FN_FunctionFromName_Post, -#else - NULL, -#endif -#ifdef FN_NameForFunction_Post - FN_NameForFunction_Post, -#else - NULL, -#endif -#ifdef FN_ClientPrintf_Post - FN_ClientPrintf_Post, -#else - NULL, -#endif -#ifdef FN_ServerPrint_Post - FN_ServerPrint_Post, -#else - NULL, -#endif -#ifdef FN_Cmd_Args_Post - FN_Cmd_Args_Post, -#else - NULL, -#endif -#ifdef FN_Cmd_Argv_Post - FN_Cmd_Argv_Post, -#else - NULL, -#endif -#ifdef FN_Cmd_Argc_Post - FN_Cmd_Argc_Post, -#else - NULL, -#endif -#ifdef FN_GetAttachment_Post - FN_GetAttachment_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_Init_Post - FN_CRC32_Init_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessBuffer_Post - FN_CRC32_ProcessBuffer_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_ProcessByte_Post - FN_CRC32_ProcessByte_Post, -#else - NULL, -#endif -#ifdef FN_CRC32_Final_Post - FN_CRC32_Final_Post, -#else - NULL, -#endif -#ifdef FN_RandomLong_Post - FN_RandomLong_Post, -#else - NULL, -#endif -#ifdef FN_RandomFloat_Post - FN_RandomFloat_Post, -#else - NULL, -#endif -#ifdef FN_SetView_Post - FN_SetView_Post, -#else - NULL, -#endif -#ifdef FN_Time_Post - FN_Time_Post, -#else - NULL, -#endif -#ifdef FN_CrosshairAngle_Post - FN_CrosshairAngle_Post, -#else - NULL, -#endif -#ifdef FN_LoadFileForMe_Post - FN_LoadFileForMe_Post, -#else - NULL, -#endif -#ifdef FN_FreeFile_Post - FN_FreeFile_Post, -#else - NULL, -#endif -#ifdef FN_EndSection_Post - FN_EndSection_Post, -#else - NULL, -#endif -#ifdef FN_CompareFileTime_Post - FN_CompareFileTime_Post, -#else - NULL, -#endif -#ifdef FN_GetGameDir_Post - FN_GetGameDir_Post, -#else - NULL, -#endif -#ifdef FN_Cvar_RegisterVariable_Post - FN_Cvar_RegisterVariable_Post, -#else - NULL, -#endif -#ifdef FN_FadeClientVolume_Post - FN_FadeClientVolume_Post, -#else - NULL, -#endif -#ifdef FN_SetClientMaxspeed_Post - FN_SetClientMaxspeed_Post, -#else - NULL, -#endif -#ifdef FN_CreateFakeClient_Post - FN_CreateFakeClient_Post, -#else - NULL, -#endif -#ifdef FN_RunPlayerMove_Post - FN_RunPlayerMove_Post, -#else - NULL, -#endif -#ifdef FN_NumberOfEntities_Post - FN_NumberOfEntities_Post, -#else - NULL, -#endif -#ifdef FN_GetInfoKeyBuffer_Post - FN_GetInfoKeyBuffer_Post, -#else - NULL, -#endif -#ifdef FN_InfoKeyValue_Post - FN_InfoKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_SetKeyValue_Post - FN_SetKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_SetClientKeyValue_Post - FN_SetClientKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_IsMapValid_Post - FN_IsMapValid_Post, -#else - NULL, -#endif -#ifdef FN_StaticDecal_Post - FN_StaticDecal_Post, -#else - NULL, -#endif -#ifdef FN_PrecacheGeneric_Post - FN_PrecacheGeneric_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerUserId_Post - FN_GetPlayerUserId_Post, -#else - NULL, -#endif -#ifdef FN_BuildSoundMsg_Post - FN_BuildSoundMsg_Post, -#else - NULL, -#endif -#ifdef FN_IsDedicatedServer_Post - FN_IsDedicatedServer_Post, -#else - NULL, -#endif -#ifdef FN_CVarGetPointer_Post - FN_CVarGetPointer_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerWONId_Post - FN_GetPlayerWONId_Post, -#else - NULL, -#endif -#ifdef FN_Info_RemoveKey_Post - FN_Info_RemoveKey_Post, -#else - NULL, -#endif -#ifdef FN_GetPhysicsKeyValue_Post - FN_GetPhysicsKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_SetPhysicsKeyValue_Post - FN_SetPhysicsKeyValue_Post, -#else - NULL, -#endif -#ifdef FN_GetPhysicsInfoString_Post - FN_GetPhysicsInfoString_Post, -#else - NULL, -#endif -#ifdef FN_PrecacheEvent_Post - FN_PrecacheEvent_Post, -#else - NULL, -#endif -#ifdef FN_PlaybackEvent_Post - FN_PlaybackEvent_Post, -#else - NULL, -#endif -#ifdef FN_SetFatPVS_Post - FN_SetFatPVS_Post, -#else - NULL, -#endif -#ifdef FN_SetFatPAS_Post - FN_SetFatPAS_Post, -#else - NULL, -#endif -#ifdef FN_CheckVisibility_Post - FN_CheckVisibility_Post, -#else - NULL, -#endif -#ifdef FN_DeltaSetField_Post - FN_DeltaSetField_Post, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetField_Post - FN_DeltaUnsetField_Post, -#else - NULL, -#endif -#ifdef FN_DeltaAddEncoder_Post - FN_DeltaAddEncoder_Post, -#else - NULL, -#endif -#ifdef FN_GetCurrentPlayer_Post - FN_GetCurrentPlayer_Post, -#else - NULL, -#endif -#ifdef FN_CanSkipPlayer_Post - FN_CanSkipPlayer_Post, -#else - NULL, -#endif -#ifdef FN_DeltaFindField_Post - FN_DeltaFindField_Post, -#else - NULL, -#endif -#ifdef FN_DeltaSetFieldByIndex_Post - FN_DeltaSetFieldByIndex_Post, -#else - NULL, -#endif -#ifdef FN_DeltaUnsetFieldByIndex_Post - FN_DeltaUnsetFieldByIndex_Post, -#else - NULL, -#endif -#ifdef FN_SetGroupMask_Post - FN_SetGroupMask_Post, -#else - NULL, -#endif -#ifdef FN_engCreateInstancedBaseline_Post - FN_engCreateInstancedBaseline_Post, -#else - NULL, -#endif -#ifdef FN_Cvar_DirectSet_Post - FN_Cvar_DirectSet_Post, -#else - NULL, -#endif -#ifdef FN_ForceUnmodified_Post - FN_ForceUnmodified_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerStats_Post - FN_GetPlayerStats_Post, -#else - NULL, -#endif -#ifdef FN_AddServerCommand_Post - FN_AddServerCommand_Post, -#else - NULL, -#endif -#ifdef FN_Voice_GetClientListening_Post - FN_Voice_GetClientListening_Post, -#else - NULL, -#endif -#ifdef FN_Voice_SetClientListening_Post - FN_Voice_SetClientListening_Post, -#else - NULL, -#endif -#ifdef FN_GetPlayerAuthId_Post - FN_GetPlayerAuthId_Post -#else - NULL -#endif -}; // g_EngineFuncs_Post_Table - - -static NEW_DLL_FUNCTIONS g_NewFuncs_Table = -{ -#ifdef FN_OnFreeEntPrivateData - FN_OnFreeEntPrivateData, -#else - NULL, -#endif -#ifdef FN_GameShutdown - FN_GameShutdown, -#else - NULL, -#endif -#ifdef FN_ShouldCollide - ShouldCollide, -#else - NULL, -#endif -}; - - -static NEW_DLL_FUNCTIONS g_NewFuncs_Post_Table = -{ -#ifdef FN_OnFreeEntPrivateData_Post - FN_OnFreeEntPrivateData_Post, -#else - NULL, -#endif -#ifdef FN_GameShutdown_Post - FN_GameShutdown_Post, -#else - NULL, -#endif -#ifdef FN_ShouldCollide_Post - ShouldCollide_Post, -#else - NULL, -#endif -}; - -// Global variables from metamod. These variable names are referenced by -// various macros. -meta_globals_t *gpMetaGlobals; // metamod globals -gamedll_funcs_t *gpGamedllFuncs; // gameDLL function tables -mutil_funcs_t *gpMetaUtilFuncs; // metamod utility functions - - -plugin_info_t Plugin_info = { - META_INTERFACE_VERSION, - MODULE_NAME, - MODULE_VERSION, - MODULE_DATE, - MODULE_AUTHOR, - MODULE_URL, - MODULE_LOGTAG, - PT_ANYTIME, - PT_ANYTIME -}; - -/* -C_DLLEXPORT int GetEntityAPI(DLL_FUNCTIONS *pFunctionTable, int interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI; version=%d", interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI called with null pFunctionTable"); - return(FALSE); - } - else if(interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEntityAPI version mismatch; requested=%d ours=%d", interfaceVersion, INTERFACE_VERSION); - return(FALSE); - } - memcpy(pFunctionTable, &g_EntityAPI_Table, sizeof( DLL_FUNCTIONS ) ); - - return (TRUE); -} - -C_DLLEXPORT int GetEntityAPI_Post(DLL_FUNCTIONS *pFunctionTable, int interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI_Post; version=%d", interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI_Post called with null pFunctionTable"); - return(FALSE); - } - else if(interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEntityAPI_Post version mismatch; requested=%d ours=%d", interfaceVersion, INTERFACE_VERSION); - return(FALSE); - } - memcpy(pFunctionTable, &g_EntityAPI_Post_Table, sizeof( DLL_FUNCTIONS ) ); - - return(TRUE); -} -*/ - -C_DLLEXPORT int GetEntityAPI2(DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI2; version=%d", *interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI2 called with null pFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, - "GetEntityAPI2 version mismatch; requested=%d ours=%d", - *interfaceVersion, INTERFACE_VERSION); - //! Tell engine what version we had, so it can figure out who is - //! out of date. - *interfaceVersion = INTERFACE_VERSION; - return(FALSE); - } - memcpy(pFunctionTable, &g_EntityAPI_Table, sizeof(DLL_FUNCTIONS)); - g_pFunctionTable=pFunctionTable; - return(TRUE); -} - -C_DLLEXPORT int GetEntityAPI2_Post(DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEntityAPI2_Post; version=%d", *interfaceVersion); - if(!pFunctionTable) { - LOG_ERROR(PLID, "GetEntityAPI2_Post called with null pFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEntityAPI2_Post version mismatch; requested=%d ours=%d", *interfaceVersion, INTERFACE_VERSION); - //! Tell engine what version we had, so it can figure out who is out of date. - *interfaceVersion = INTERFACE_VERSION; - return(FALSE); - } - memcpy( pFunctionTable, &g_EntityAPI_Post_Table, sizeof( DLL_FUNCTIONS ) ); - g_pFunctionTable_Post=pFunctionTable; - return(TRUE); -} - -C_DLLEXPORT int GetEngineFunctions(enginefuncs_t *pengfuncsFromEngine, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEngineFunctions; version=%d", - *interfaceVersion); - if(!pengfuncsFromEngine) { - LOG_ERROR(PLID, - "GetEngineFunctions called with null pengfuncsFromEngine"); - return(FALSE); - } - else if(*interfaceVersion != ENGINE_INTERFACE_VERSION) { - LOG_ERROR(PLID, - "GetEngineFunctions version mismatch; requested=%d ours=%d", - *interfaceVersion, ENGINE_INTERFACE_VERSION); - // Tell metamod what version we had, so it can figure out who is - // out of date. - *interfaceVersion = ENGINE_INTERFACE_VERSION; - return(FALSE); - } - memcpy(pengfuncsFromEngine, &g_EngineFuncs_Table, sizeof(enginefuncs_t)); - g_pengfuncsTable=pengfuncsFromEngine; - return TRUE; -} - -C_DLLEXPORT int GetEngineFunctions_Post(enginefuncs_t *pengfuncsFromEngine, int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetEngineFunctions_Post; version=%d", *interfaceVersion); - if(!pengfuncsFromEngine) { - LOG_ERROR(PLID, "GetEngineFunctions_Post called with null pengfuncsFromEngine"); - return(FALSE); - } - else if(*interfaceVersion != ENGINE_INTERFACE_VERSION) { - LOG_ERROR(PLID, "GetEngineFunctions_Post version mismatch; requested=%d ours=%d", *interfaceVersion, ENGINE_INTERFACE_VERSION); - // Tell metamod what version we had, so it can figure out who is out of date. - *interfaceVersion = ENGINE_INTERFACE_VERSION; - return(FALSE); - } - memcpy(pengfuncsFromEngine, &g_EngineFuncs_Post_Table, sizeof(enginefuncs_t)); - g_pengfuncsTable_Post=pengfuncsFromEngine; - return TRUE; - -} - -C_DLLEXPORT int GetNewDLLFunctions(NEW_DLL_FUNCTIONS *pNewFunctionTable, - int *interfaceVersion) -{ - LOG_DEVELOPER(PLID, "called: GetNewDLLFunctions; version=%d", - *interfaceVersion); - if(!pNewFunctionTable) { - LOG_ERROR(PLID, - "GetNewDLLFunctions called with null pNewFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != NEW_DLL_FUNCTIONS_VERSION) { - LOG_ERROR(PLID, - "GetNewDLLFunctions version mismatch; requested=%d ours=%d", - *interfaceVersion, NEW_DLL_FUNCTIONS_VERSION); - //! Tell engine what version we had, so it can figure out who is - //! out of date. - *interfaceVersion = NEW_DLL_FUNCTIONS_VERSION; - return(FALSE); - } - memcpy(pNewFunctionTable, &g_NewFuncs_Table, sizeof(NEW_DLL_FUNCTIONS)); - g_pNewFunctionsTable=pNewFunctionTable; - return TRUE; -} - -C_DLLEXPORT int GetNewDLLFunctions_Post( NEW_DLL_FUNCTIONS *pNewFunctionTable, int *interfaceVersion ) -{ - LOG_DEVELOPER(PLID, "called: GetNewDLLFunctions_Post; version=%d", *interfaceVersion); - if(!pNewFunctionTable) { - LOG_ERROR(PLID, "GetNewDLLFunctions_Post called with null pNewFunctionTable"); - return(FALSE); - } - else if(*interfaceVersion != NEW_DLL_FUNCTIONS_VERSION) { - LOG_ERROR(PLID, "GetNewDLLFunctions_Post version mismatch; requested=%d ours=%d", *interfaceVersion, NEW_DLL_FUNCTIONS_VERSION); - //! Tell engine what version we had, so it can figure out who is out of date. - *interfaceVersion = NEW_DLL_FUNCTIONS_VERSION; - return(FALSE); - } - memcpy(pNewFunctionTable, &g_NewFuncs_Post_Table, sizeof(NEW_DLL_FUNCTIONS)); - g_pNewFunctionsTable_Post=pNewFunctionTable; - return TRUE; -} - - -static META_FUNCTIONS g_MetaFunctions_Table = -{ - NULL, - NULL, - GetEntityAPI2, - GetEntityAPI2_Post, - GetNewDLLFunctions, - GetNewDLLFunctions_Post, - GetEngineFunctions, - GetEngineFunctions_Post -}; - -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs) -{ - if ((int) CVAR_GET_FLOAT("developer") != 0) - UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", - Plugin_info.logtag, ifvers, Plugin_info.ifvers); - - // Check for valid pMetaUtilFuncs before we continue. - if(!pMetaUtilFuncs) { - UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag); - return(FALSE); - } - - gpMetaUtilFuncs = pMetaUtilFuncs; - - *pPlugInfo = &Plugin_info; - - // Check for interface version compatibility. - if(!FStrEq(ifvers, Plugin_info.ifvers)) { - int mmajor=0, mminor=0, pmajor=0, pminor=0; - LOG_MESSAGE(PLID, "WARNING: meta-interface version mismatch; requested=%s ours=%s", - Plugin_info.logtag, ifvers); - // If plugin has later interface version, it's incompatible (update - // metamod). - sscanf(ifvers, "%d:%d", &mmajor, &mminor); - sscanf(META_INTERFACE_VERSION, "%d:%d", &pmajor, &pminor); - if(pmajor > mmajor || (pmajor==mmajor && pminor > mminor)) { - LOG_ERROR(PLID, "metamod version is too old for this module; update metamod"); - return(FALSE); - } - // If plugin has older major interface version, it's incompatible - // (update plugin). - else if(pmajor < mmajor) { - LOG_ERROR(PLID, "metamod version is incompatible with this module; please find a newer version of this module"); - return(FALSE); - } - // Minor interface is older, but this is guaranteed to be backwards - // compatible, so we warn, but we still accept it. - else if(pmajor==mmajor && pminor < mminor) - LOG_MESSAGE(PLID, "WARNING: metamod version is newer than expected; consider finding a newer version of this module"); - else - LOG_ERROR(PLID, "unexpected version comparison; metavers=%s, mmajor=%d, mminor=%d; plugvers=%s, pmajor=%d, pminor=%d", ifvers, mmajor, mminor, META_INTERFACE_VERSION, pmajor, pminor); - } - -#ifdef FN_META_QUERY - return FN_META_QUERY(); -#endif // FN_META_QUERY - - return 1; -} - - -C_DLLEXPORT int Meta_Attach(PLUG_LOADTIME now, META_FUNCTIONS *pFunctionTable, meta_globals_t *pMGlobals, gamedll_funcs_t *pGamedllFuncs) -{ - if(now > Plugin_info.loadable) { - LOG_ERROR(PLID, "Can't load module right now"); - return(FALSE); - } - if(!pMGlobals) { - LOG_ERROR(PLID, "Meta_Attach called with null pMGlobals"); - return(FALSE); - } - gpMetaGlobals=pMGlobals; - if(!pFunctionTable) { - LOG_ERROR(PLID, "Meta_Attach called with null pFunctionTable"); - return(FALSE); - } - - memcpy(pFunctionTable, &g_MetaFunctions_Table, sizeof(META_FUNCTIONS)); - gpGamedllFuncs=pGamedllFuncs; - - // Let's go. - -#ifdef FN_META_ATTACH - FN_META_ATTACH(); -#endif // FN_META_ATTACH - - return TRUE; -} - -C_DLLEXPORT int Meta_Detach(PLUG_LOADTIME now, PL_UNLOAD_REASON reason) -{ - if(now > Plugin_info.unloadable && reason != PNL_CMD_FORCED) { - LOG_ERROR(PLID, "Can't unload plugin right now"); - return(FALSE); - } - -#ifdef FN_META_DETACH - return FN_META_DETACH(); -#endif // FN_META_DETACH - return TRUE; -} - - - -#ifdef __linux__ -// linux prototype -C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) { - -#else -#ifdef _MSC_VER -// MSVC: Simulate __stdcall calling convention -C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) -{ - __asm // Prolog - { - // Save ebp - push ebp - // Set stack frame pointer - mov ebp, esp - // Allocate space for local variables - // The MSVC compiler gives us the needed size in __LOCAL_SIZE. - sub esp, __LOCAL_SIZE - // Push registers - push ebx - push esi - push edi - } -#else // _MSC_VER -#ifdef __GNUC__ -// GCC can also work with this -C_DLLEXPORT void __stdcall GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) -{ -#else // __GNUC__ -// compiler not known -#error There is no support (yet) for your compiler. Please use MSVC or GCC compilers or contact the AMX Mod X dev team. -#endif // __GNUC__ -#endif // _MSC_VER -#endif // __linux__ - - // ** Function core <-- - memcpy(&g_engfuncs, pengfuncsFromEngine, sizeof(enginefuncs_t)); - gpGlobals = pGlobals; - // NOTE! Have to call logging function _after_ copying into g_engfuncs, so - // that g_engfuncs.pfnAlertMessage() can be resolved properly, heh. :) - UTIL_LogPrintf("[%s] dev: called: GiveFnptrsToDll\n", Plugin_info.logtag); - // --> ** Function core - -#ifdef _MSC_VER - // Epilog - if (sizeof(int*) == 8) - { // 64 bit - __asm - { - // Pop registers - pop edi - pop esi - pop ebx - // Restore stack frame pointer - mov esp, ebp - // Restore ebp - pop ebp - // 2 * sizeof(int*) = 16 on 64 bit - ret 16 - } - } - else - { // 32 bit - __asm - { - // Pop registers - pop edi - pop esi - pop ebx - // Restore stack frame pointer - mov esp, ebp - // Restore ebp - pop ebp - // 2 * sizeof(int*) = 8 on 32 bit - ret 8 - } - } -#endif // #ifdef _MSC_VER -} - -#endif // #ifdef USE_METAMOD - -/************* AMXX Stuff *************/ - -// *** Globals *** -// Module info -static amxx_module_info_s g_ModuleInfo = -{ - MODULE_NAME, - MODULE_AUTHOR, - MODULE_VERSION, -#ifdef MODULE_RELOAD_ON_MAPCHANGE - 1, -#else // MODULE_RELOAD_ON_MAPCHANGE - 0, -#endif // MODULE_RELOAD_ON_MAPCHANGE - MODULE_LOGTAG -}; - -// Storage for the requested functions -PFN_ADD_NATIVES g_fn_AddNatives; -PFN_BUILD_PATHNAME g_fn_BuildPathname; -PFN_BUILD_PATHNAME_R g_fn_BuildPathnameR; -PFN_GET_AMXADDR g_fn_GetAmxAddr; -PFN_PRINT_SRVCONSOLE g_fn_PrintSrvConsole; -PFN_GET_MODNAME g_fn_GetModname; -PFN_GET_AMXSCRIPTNAME g_fn_GetAmxScriptName; -PFN_GET_AMXSCRIPT g_fn_GetAmxScript; -PFN_FIND_AMXSCRIPT_BYAMX g_fn_FindAmxScriptByAmx; -PFN_FIND_AMXSCRIPT_BYNAME g_fn_FindAmxScriptByName; -PFN_SET_AMXSTRING g_fn_SetAmxString; -PFN_GET_AMXSTRING g_fn_GetAmxString; -PFN_GET_AMXSTRINGLEN g_fn_GetAmxStringLen; -PFN_FORMAT_AMXSTRING g_fn_FormatAmxString; -PFN_COPY_AMXMEMORY g_fn_CopyAmxMemory; -PFN_LOG g_fn_Log; -PFN_LOG_ERROR g_fn_LogErrorFunc; -PFN_RAISE_AMXERROR g_fn_RaiseAmxError; -PFN_REGISTER_FORWARD g_fn_RegisterForward; -PFN_EXECUTE_FORWARD g_fn_ExecuteForward; -PFN_PREPARE_CELLARRAY g_fn_PrepareCellArray; -PFN_PREPARE_CHARARRAY g_fn_PrepareCharArray; -PFN_PREPARE_CELLARRAY_A g_fn_PrepareCellArrayA; -PFN_PREPARE_CHARARRAY_A g_fn_PrepareCharArrayA; -PFN_IS_PLAYER_VALID g_fn_IsPlayerValid; -PFN_GET_PLAYER_NAME g_fn_GetPlayerName; -PFN_GET_PLAYER_IP g_fn_GetPlayerIP; -PFN_IS_PLAYER_INGAME g_fn_IsPlayerIngame; -PFN_IS_PLAYER_BOT g_fn_IsPlayerBot; -PFN_IS_PLAYER_AUTHORIZED g_fn_IsPlayerAuthorized; -PFN_GET_PLAYER_TIME g_fn_GetPlayerTime; -PFN_GET_PLAYER_PLAYTIME g_fn_GetPlayerPlayTime; -PFN_GET_PLAYER_CURWEAPON g_fn_GetPlayerCurweapon; -PFN_GET_PLAYER_TEAM g_fn_GetPlayerTeam; -PFN_GET_PLAYER_TEAMID g_fn_GetPlayerTeamID; -PFN_GET_PLAYER_DEATHS g_fn_GetPlayerDeaths; -PFN_GET_PLAYER_MENU g_fn_GetPlayerMenu; -PFN_GET_PLAYER_KEYS g_fn_GetPlayerKeys; -PFN_IS_PLAYER_ALIVE g_fn_IsPlayerAlive; -PFN_GET_PLAYER_FRAGS g_fn_GetPlayerFrags; -PFN_IS_PLAYER_CONNECTING g_fn_IsPlayerConnecting; -PFN_IS_PLAYER_HLTV g_fn_IsPlayerHLTV; -PFN_GET_PLAYER_ARMOR g_fn_GetPlayerArmor; -PFN_GET_PLAYER_HEALTH g_fn_GetPlayerHealth; -#ifdef MEMORY_TEST -PFN_ALLOCATOR g_fn_Allocator; -PFN_REALLOCATOR g_fn_Reallocator; -PFN_DEALLOCATOR g_fn_Deallocator; -#endif -PFN_AMX_EXEC g_fn_AmxExec; -PFN_AMX_EXECV g_fn_AmxExecv; -PFN_AMX_ALLOT g_fn_AmxAllot; -PFN_AMX_FINDPUBLIC g_fn_AmxFindPublic; -PFN_LOAD_AMXSCRIPT g_fn_LoadAmxScript; -PFN_UNLOAD_AMXSCRIPT g_fn_UnloadAmxScript; -PFN_REAL_TO_CELL g_fn_RealToCell; -PFN_CELL_TO_REAL g_fn_CellToReal; -PFN_REGISTER_SPFORWARD g_fn_RegisterSPForward; -PFN_REGISTER_SPFORWARD_BYNAME g_fn_RegisterSPForwardByName; -PFN_UNREGISTER_SPFORWARD g_fn_UnregisterSPForward; -PFN_MERGEDEFINITION_FILE g_fn_MergeDefinition_File; -PFN_AMX_FINDNATIVE g_fn_AmxFindNative; -PFN_GETPLAYERFLAGS g_fn_GetPlayerFlags; -PFN_GET_PLAYER_EDICT g_fn_GetPlayerEdict; -PFN_FORMAT g_fn_Format; -PFN_REGISTERFUNCTION g_fn_RegisterFunction; -PFN_REQ_FNPTR g_fn_RequestFunction; -PFN_AMX_PUSH g_fn_AmxPush; - -// *** Exports *** -C_DLLEXPORT int AMXX_Query(int *interfaceVersion, amxx_module_info_s *moduleInfo) -{ - // check parameters - if (!interfaceVersion || !moduleInfo) - return AMXX_PARAM; - - // check interface version - if (*interfaceVersion != AMXX_INTERFACE_VERSION) - { - // Tell amxx core our interface version - *interfaceVersion = AMXX_INTERFACE_VERSION; - return AMXX_IFVERS; - } - - // copy module info - memcpy(moduleInfo, &g_ModuleInfo, sizeof(amxx_module_info_s)); - -#ifdef FN_AMXX_QUERY - FN_AMXX_QUERY(); -#endif // FN_AMXX_QUERY - // Everything ok :) - return AMXX_OK; -} - -// request function -#define REQFUNC(name, fptr, type) if ((fptr = (type)reqFnptrFunc(name)) == 0) return AMXX_FUNC_NOT_PRESENT -// request optional function -#define REQFUNC_OPT(name, fptr, type) fptr = (type)reqFnptrFunc(name) - -C_DLLEXPORT int AMXX_Attach(PFN_REQ_FNPTR reqFnptrFunc) -{ - // Check pointer - if (!reqFnptrFunc) - return AMXX_PARAM; - - g_fn_RequestFunction = reqFnptrFunc; - - // Req all known functions - // Misc - REQFUNC("BuildPathname", g_fn_BuildPathname, PFN_BUILD_PATHNAME); - REQFUNC("BuildPathnameR", g_fn_BuildPathnameR, PFN_BUILD_PATHNAME_R); - REQFUNC("PrintSrvConsole", g_fn_PrintSrvConsole, PFN_PRINT_SRVCONSOLE); - REQFUNC("GetModname", g_fn_GetModname, PFN_GET_MODNAME); - REQFUNC("Log", g_fn_Log, PFN_LOG); - REQFUNC("LogError", g_fn_LogErrorFunc, PFN_LOG_ERROR); - REQFUNC("MergeDefinitionFile", g_fn_MergeDefinition_File, PFN_MERGEDEFINITION_FILE); - REQFUNC("Format", g_fn_Format, PFN_FORMAT); - REQFUNC("RegisterFunction", g_fn_RegisterFunction, PFN_REGISTERFUNCTION); - - // Amx scripts - REQFUNC("GetAmxScript", g_fn_GetAmxScript, PFN_GET_AMXSCRIPT); - REQFUNC("FindAmxScriptByAmx", g_fn_FindAmxScriptByAmx, PFN_FIND_AMXSCRIPT_BYAMX); - REQFUNC("FindAmxScriptByName", g_fn_FindAmxScriptByName, PFN_FIND_AMXSCRIPT_BYNAME); - REQFUNC("LoadAmxScript", g_fn_LoadAmxScript, PFN_LOAD_AMXSCRIPT); - REQFUNC("UnloadAmxScript", g_fn_UnloadAmxScript, PFN_UNLOAD_AMXSCRIPT); - REQFUNC("GetAmxScriptName", g_fn_GetAmxScriptName, PFN_GET_AMXSCRIPTNAME); - - // String / mem in amx scripts support - REQFUNC("SetAmxString", g_fn_SetAmxString, PFN_SET_AMXSTRING); - REQFUNC("GetAmxString", g_fn_GetAmxString, PFN_GET_AMXSTRING); - REQFUNC("GetAmxStringLen", g_fn_GetAmxStringLen, PFN_GET_AMXSTRINGLEN); - REQFUNC("FormatAmxString", g_fn_FormatAmxString, PFN_FORMAT_AMXSTRING); - REQFUNC("CopyAmxMemory", g_fn_CopyAmxMemory, PFN_COPY_AMXMEMORY); - REQFUNC("GetAmxAddr", g_fn_GetAmxAddr, PFN_GET_AMXADDR); - - REQFUNC("amx_Exec", g_fn_AmxExec, PFN_AMX_EXEC); - REQFUNC("amx_Execv", g_fn_AmxExecv, PFN_AMX_EXECV); - REQFUNC("amx_FindPublic", g_fn_AmxFindPublic, PFN_AMX_FINDPUBLIC); - REQFUNC("amx_Allot", g_fn_AmxAllot, PFN_AMX_ALLOT); - REQFUNC("amx_FindNative", g_fn_AmxFindNative, PFN_AMX_FINDNATIVE); - - // Natives / Forwards - REQFUNC("AddNatives", g_fn_AddNatives, PFN_ADD_NATIVES); - REQFUNC("RaiseAmxError", g_fn_RaiseAmxError, PFN_RAISE_AMXERROR); - REQFUNC("RegisterForward", g_fn_RegisterForward, PFN_REGISTER_FORWARD); - REQFUNC("RegisterSPForward", g_fn_RegisterSPForward, PFN_REGISTER_SPFORWARD); - REQFUNC("RegisterSPForwardByName", g_fn_RegisterSPForwardByName, PFN_REGISTER_SPFORWARD_BYNAME); - REQFUNC("UnregisterSPForward", g_fn_UnregisterSPForward, PFN_UNREGISTER_SPFORWARD); - REQFUNC("ExecuteForward", g_fn_ExecuteForward, PFN_EXECUTE_FORWARD); - REQFUNC("PrepareCellArray", g_fn_PrepareCellArray, PFN_PREPARE_CELLARRAY); - REQFUNC("PrepareCharArray", g_fn_PrepareCharArray, PFN_PREPARE_CHARARRAY); - REQFUNC("PrepareCellArrayA", g_fn_PrepareCellArrayA, PFN_PREPARE_CELLARRAY_A); - REQFUNC("PrepareCharArrayA", g_fn_PrepareCharArrayA, PFN_PREPARE_CHARARRAY_A); - // Player - REQFUNC("IsPlayerValid", g_fn_IsPlayerValid, PFN_IS_PLAYER_VALID); - REQFUNC("GetPlayerName", g_fn_GetPlayerName, PFN_GET_PLAYER_NAME); - REQFUNC("GetPlayerIP", g_fn_GetPlayerIP, PFN_GET_PLAYER_IP); - REQFUNC("IsPlayerInGame", g_fn_IsPlayerIngame, PFN_IS_PLAYER_INGAME); - REQFUNC("IsPlayerBot", g_fn_IsPlayerBot, PFN_IS_PLAYER_BOT); - REQFUNC("IsPlayerAuthorized", g_fn_IsPlayerAuthorized, PFN_IS_PLAYER_AUTHORIZED); - REQFUNC("GetPlayerTime", g_fn_GetPlayerTime, PFN_GET_PLAYER_TIME); - REQFUNC("GetPlayerPlayTime", g_fn_GetPlayerPlayTime, PFN_GET_PLAYER_PLAYTIME); - REQFUNC("GetPlayerCurweapon", g_fn_GetPlayerCurweapon, PFN_GET_PLAYER_CURWEAPON); - REQFUNC("GetPlayerTeamID", g_fn_GetPlayerTeamID, PFN_GET_PLAYER_TEAMID); - REQFUNC("GetPlayerTeam",g_fn_GetPlayerTeam, PFN_GET_PLAYER_TEAM); - REQFUNC("GetPlayerDeaths", g_fn_GetPlayerDeaths, PFN_GET_PLAYER_DEATHS); - REQFUNC("GetPlayerMenu", g_fn_GetPlayerMenu, PFN_GET_PLAYER_MENU); - REQFUNC("GetPlayerKeys", g_fn_GetPlayerKeys, PFN_GET_PLAYER_KEYS); - REQFUNC("IsPlayerAlive", g_fn_IsPlayerAlive, PFN_IS_PLAYER_ALIVE); - REQFUNC("GetPlayerFrags", g_fn_GetPlayerFrags, PFN_GET_PLAYER_FRAGS); - REQFUNC("IsPlayerConnecting", g_fn_IsPlayerConnecting, PFN_IS_PLAYER_CONNECTING); - REQFUNC("IsPlayerHLTV", g_fn_IsPlayerHLTV, PFN_IS_PLAYER_HLTV); - REQFUNC("GetPlayerArmor", g_fn_GetPlayerArmor, PFN_GET_PLAYER_ARMOR); - REQFUNC("GetPlayerHealth", g_fn_GetPlayerHealth, PFN_GET_PLAYER_HEALTH); - REQFUNC("GetPlayerFlags", g_fn_GetPlayerFlags, PFN_GETPLAYERFLAGS); - REQFUNC("GetPlayerEdict", g_fn_GetPlayerEdict, PFN_GET_PLAYER_EDICT); - REQFUNC("amx_Push", g_fn_AmxPush, PFN_AMX_PUSH); - -#ifdef MEMORY_TEST - // Memory - REQFUNC_OPT("Allocator", g_fn_Allocator, PFN_ALLOCATOR); - REQFUNC_OPT("Reallocator", g_fn_Reallocator, PFN_REALLOCATOR); - REQFUNC_OPT("Deallocator", g_fn_Deallocator, PFN_DEALLOCATOR); -#endif - - REQFUNC("CellToReal", g_fn_CellToReal, PFN_CELL_TO_REAL); - REQFUNC("RealToCell", g_fn_RealToCell, PFN_REAL_TO_CELL); - -#ifdef FN_AMXX_ATTACH - FN_AMXX_ATTACH(); -#endif // FN_AMXX_ATACH - - return AMXX_OK; -} - -C_DLLEXPORT int AMXX_Detach() -{ -#ifdef FN_AMXX_DETACH - FN_AMXX_DETACH(); -#endif // FN_AMXX_DETACH - - return AMXX_OK; -} - -C_DLLEXPORT int AMXX_PluginsLoaded() -{ -#ifdef FN_AMXX_PLUGINSLOADED - FN_AMXX_PLUGINSLOADED(); -#endif // FN_AMXX_PLUGINSLOADED - return AMXX_OK; -} - -// Advanced MF functions -void MF_Log(const char *fmt, ...) -{ - // :TODO: Overflow possible here - char msg[3072]; - va_list arglst; - va_start(arglst, fmt); - vsprintf(msg, fmt, arglst); - va_end(arglst); - - g_fn_Log("[%s] %s", MODULE_LOGTAG, msg); -} - -void MF_LogError(AMX *amx, int err, const char *fmt, ...) -{ - // :TODO: Overflow possible here - char msg[3072]; - va_list arglst; - va_start(arglst, fmt); - vsprintf(msg, fmt, arglst); - va_end(arglst); - - g_fn_LogErrorFunc(amx, err, "[%s] %s", MODULE_LOGTAG, msg); -} - - -#ifdef _DEBUG -// validate macros -// Makes sure compiler reports errors when macros are invalid -void ValidateMacros_DontCallThis_Smiley() -{ - MF_BuildPathname("str", "str", 0); - MF_BuildPathnameR(NULL, 0, "%d", 0); - MF_FormatAmxString(NULL, 0, 0, NULL); - MF_GetAmxAddr(NULL, 0); - MF_PrintSrvConsole("str", "str", 0); - MF_GetModname(); - MF_GetScriptName(0); - MF_GetScriptAmx(0); - MF_FindScriptByAmx(NULL); - MF_FindScriptByName("str"); - MF_SetAmxString(NULL, 0, "str", 0); - MF_GetAmxString(NULL, 0, 0, 0); - MF_GetAmxStringLen(NULL); - MF_CopyAmxMemory(NULL, NULL, 0); - MF_Log("str", "str", 0); - MF_LogError(NULL, 0, NULL); - MF_RaiseAmxError(NULL, 0); - MF_RegisterForward("str", (ForwardExecType)0, 0, 0, 0); - MF_ExecuteForward(0, 0, 0); - MF_PrepareCellArray(NULL, 0); - MF_PrepareCharArray(NULL, 0); - MF_PrepareCellArrayA(NULL, 0, true); - MF_PrepareCharArrayA(NULL, 0, true); - MF_IsPlayerValid(0); - MF_GetPlayerName(0); - MF_GetPlayerIP(0); - MF_IsPlayerIngame(0); - MF_IsPlayerBot(0); - MF_IsPlayerAuthorized(0); - MF_GetPlayerTime(0); - MF_GetPlayerPlayTime(0); - MF_GetPlayerCurweapon(0); - MF_GetPlayerTeamID(0); - MF_GetPlayerTeam(0); - MF_GetPlayerDeaths(0); - MF_GetPlayerMenu(0); - MF_GetPlayerKeys(0); - MF_IsPlayerAlive(0); - MF_GetPlayerFrags(0); - MF_IsPlayerConnecting(0); - MF_IsPlayerHLTV(0); - MF_GetPlayerArmor(0); - MF_GetPlayerHealth(0); - MF_AmxExec(0, 0, 0); - MF_AmxExecv(0, 0, 0, 0, 0); - MF_AmxFindPublic(0, 0, 0); - MF_AmxAllot(0, 0, 0, 0); - MF_LoadAmxScript(0, 0, 0, 0, 0); - MF_UnloadAmxScript(0, 0); - MF_RegisterSPForward(0, 0, 0, 0, 0, 0); - MF_RegisterSPForwardByName(0, 0, 0, 0, 0, 0); - MF_UnregisterSPForward(0); - MF_GetPlayerFrags(0); - MF_GetPlayerEdict(0); - MF_Format("", 4, "str"); - MF_RegisterFunction(NULL, ""); -} -#endif - -#ifdef MEMORY_TEST - -/************* MEMORY *************/ -// undef all defined macros -#undef new -#undef delete -#undef malloc -#undef calloc -#undef realloc -#undef free - -const unsigned int m_alloc_unknown = 0; -const unsigned int m_alloc_new = 1; -const unsigned int m_alloc_new_array = 2; -const unsigned int m_alloc_malloc = 3; -const unsigned int m_alloc_calloc = 4; -const unsigned int m_alloc_realloc = 5; -const unsigned int m_alloc_delete = 6; -const unsigned int m_alloc_delete_array = 7; -const unsigned int m_alloc_free = 8; - -const char *g_Mem_CurrentFilename = "??"; -int g_Mem_CurrentLine = 0; -const char *g_Mem_CurrentFunc = "??"; - -const char *Mem_MakeSourceFile(const char *sourceFile) -{ - static char buffer[512]; - static size_t pos = 0; - if (!pos) - { - // init - buffer[0] = '['; - strcpy(buffer + 1, MODULE_NAME); - pos = strlen(MODULE_NAME) + 1; - buffer[pos++] = ']'; - } - - // convert from absolute path to [modulename]filename - const char *ptr = strrchr(sourceFile, '\\'); - if (ptr) - ptr++; - else - { - ptr = strrchr(sourceFile, '/'); - if (ptr) - ptr++; - else - ptr = sourceFile; - } - strcpy(buffer + pos, ptr); - return buffer; -} - -void Mem_SetOwner(const char *filename, int line, const char *function) -{ - g_Mem_CurrentFilename = filename; - g_Mem_CurrentLine = line; - g_Mem_CurrentFunc = function; -} - -void Mem_ResetGlobals() -{ - Mem_SetOwner("??", 0, "??"); -} - -// raw (re/de)allocators -void * Mem_Allocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int allocationType, const size_t reportedSize) -{ - if (g_fn_Allocator) - return g_fn_Allocator(Mem_MakeSourceFile(sourceFile), sourceLine, sourceFunc, allocationType, reportedSize); - else - return malloc(reportedSize); -} - -void * Mem_Reallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int reallocationType, const size_t reportedSize, void *reportedAddress) -{ - if (g_fn_Reallocator) - return g_fn_Reallocator(Mem_MakeSourceFile(sourceFile), sourceLine, sourceFunc, reallocationType, reportedSize, reportedAddress); - else - return realloc(reportedAddress, reportedSize); -} - -void Mem_Deallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int deallocationType, void *reportedAddress) -{ - // If you you get user breakpoint here, something failed :) - // - invalid pointer - // - alloc type mismatch ( for example - // char *a = new char[5]; delete char; - // ) - // - The allocation unit is damaged (for example - // char *a = new char[5]; a[6] = 8; - // ) - // - break on dealloc flag set (somehow) - - if (g_fn_Deallocator) - g_fn_Deallocator(Mem_MakeSourceFile(sourceFile), sourceLine, sourceFunc, deallocationType, reportedAddress); - else - free(reportedAddress); -} - -// new and delete operators -void *operator new(size_t reportedSize) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - return NULL; -} - -void *operator new[](size_t reportedSize) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new_array, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - return NULL; -} - -// Microsoft memory tracking operators -void *operator new(size_t reportedSize, const char *sourceFile, int sourceLine) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - return NULL; -} -void *operator new[](size_t reportedSize, const char *sourceFile, int sourceLine) -{ - if (reportedSize == 0) - reportedSize = 1; - void *ptr = Mem_Allocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_new_array, reportedSize); - // :TODO: Handler support ? - if (ptr) - return ptr; - - // allocation failed - return NULL; -} - -void operator delete(void *reportedAddress) -{ - if (!reportedAddress) - return; - - Mem_Deallocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_delete, reportedAddress); -} - -void operator delete[](void *reportedAddress) -{ - if (!reportedAddress) - return; - - Mem_Deallocator(g_Mem_CurrentFilename, g_Mem_CurrentLine, g_Mem_CurrentFunc, m_alloc_delete_array, reportedAddress); -} - -#else - -#if !defined NO_ALLOC_OVERRIDES && !defined MEMORY_TEST && !defined WIN32 -void * ::operator new(size_t size) { - return(calloc(1, size)); -} - -void * ::operator new[](size_t size) { - return(calloc(1, size)); -} - -void ::operator delete(void * ptr) { - if(ptr) - free(ptr); -} - -void ::operator delete[](void * ptr) { - if(ptr) - free(ptr); -} -#endif - -#endif //MEMORY_TEST - -/************* stuff from dlls/util.cpp *************/ -// must come here because cbase.h declares it's own operator new - -#ifdef USE_METAMOD - -// Selected portions of dlls/util.cpp from SDK 2.1. -// Functions copied from there as needed... -// And modified to avoid buffer overflows (argh). - -/*** -* -* Copyright (c) 1999, 2000 Valve LLC. All rights reserved. -* -* This product contains software technology licensed from Id -* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc. -* All Rights Reserved. -* -* Use, distribution, and modification of this source code and/or resulting -* object code is restricted to non-commercial enhancements to products from -* Valve LLC. All other use, distribution, or modification is prohibited -* without written permission from Valve LLC. -* -****/ -/* - -===== util.cpp ======================================================== - - Utility code. Really not optional after all. - -*/ - -#include -#include "sdk_util.h" -#include - -#include // for strncpy(), etc - -#include "osdep.h" // win32 vsnprintf, etc - -char* UTIL_VarArgs( char *format, ... ) -{ - va_list argptr; - static char string[1024]; - - va_start (argptr, format); - vsnprintf (string, sizeof(string), format, argptr); - va_end (argptr); - - return string; -} - - -//========================================================= -// UTIL_LogPrintf - Prints a logged message to console. -// Preceded by LOG: ( timestamp ) < message > -//========================================================= -void UTIL_LogPrintf( char *fmt, ... ) -{ - va_list argptr; - static char string[1024]; - - va_start ( argptr, fmt ); - vsnprintf ( string, sizeof(string), fmt, argptr ); - va_end ( argptr ); - - // Print to server console - ALERT( at_logged, "%s", string ); -} - - -void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, - const char *pMessage) -{ - if ( !pEntity ) - return; - - MESSAGE_BEGIN( MSG_ONE, SVC_TEMPENTITY, NULL, ENT(pEntity->pev) ); - WRITE_BYTE( TE_TEXTMESSAGE ); - WRITE_BYTE( textparms.channel & 0xFF ); - - WRITE_SHORT( FixedSigned16( textparms.x, 1<<13 ) ); - WRITE_SHORT( FixedSigned16( textparms.y, 1<<13 ) ); - WRITE_BYTE( textparms.effect ); - - WRITE_BYTE( textparms.r1 ); - WRITE_BYTE( textparms.g1 ); - WRITE_BYTE( textparms.b1 ); - WRITE_BYTE( textparms.a1 ); - - WRITE_BYTE( textparms.r2 ); - WRITE_BYTE( textparms.g2 ); - WRITE_BYTE( textparms.b2 ); - WRITE_BYTE( textparms.a2 ); - - WRITE_SHORT( FixedUnsigned16( textparms.fadeinTime, 1<<8 ) ); - WRITE_SHORT( FixedUnsigned16( textparms.fadeoutTime, 1<<8 ) ); - WRITE_SHORT( FixedUnsigned16( textparms.holdTime, 1<<8 ) ); - - if ( textparms.effect == 2 ) - WRITE_SHORT( FixedUnsigned16( textparms.fxTime, 1<<8 ) ); - - if ( strlen( pMessage ) < 512 ) - { - WRITE_STRING( pMessage ); - } - else - { - char tmp[512]; - strncpy( tmp, pMessage, 511 ); - tmp[511] = 0; - WRITE_STRING( tmp ); - } - MESSAGE_END(); -} - -short FixedSigned16( float value, float scale ) -{ - int output; - - output = (int) (value * scale); - - if ( output > 32767 ) - output = 32767; - - if ( output < -32768 ) - output = -32768; - - return (short)output; -} - -unsigned short FixedUnsigned16( float value, float scale ) -{ - int output; - - output = (int) (value * scale); - if ( output < 0 ) - output = 0; - if ( output > 0xFFFF ) - output = 0xFFFF; - - return (unsigned short)output; -} -#endif // USE_METAMOD diff --git a/dlls/arrayx/amxxmodule.h b/dlls/arrayx/amxxmodule.h deleted file mode 100644 index 0a000d20..00000000 --- a/dlls/arrayx/amxxmodule.h +++ /dev/null @@ -1,2241 +0,0 @@ -/* - * AMX Mod X Module Interface Functions - * This file may be freely used -*/ - -// prevent double include -#ifndef __AMXXMODULE_H__ -#define __AMXXMODULE_H__ - -// config -#include "moduleconfig.h" - -// metamod include files -#ifdef USE_METAMOD -#include -#include -#include "osdep.h" -#endif // #ifdef USE_METAMOD - -// DLL Export -#undef DLLEXPORT -#ifndef __linux__ -#define DLLEXPORT __declspec(dllexport) -#else -#define DLLEXPORT -#define LINUX -#endif - -#undef C_DLLEXPORT -#define C_DLLEXPORT extern "C" DLLEXPORT - -// ***** AMXX stuff ***** - -// module interface version was 1 -// 2 - added logtag to struct (amxx1.1-rc1) -// 3 - added new tagAMX structure (amxx1.5) -#define AMXX_INTERFACE_VERSION 3 - -// amxx module info -struct amxx_module_info_s -{ - const char *name; - const char *author; - const char *version; - int reload; // reload on mapchange when nonzero - const char *logtag; // added in version 2 -}; - -// return values from functions called by amxx -#define AMXX_OK 0 /* no error */ -#define AMXX_IFVERS 1 /* interface version */ -#define AMXX_PARAM 2 /* Invalid parameter */ -#define AMXX_FUNC_NOT_PRESENT 3 /* Function not present */ - -// *** Small stuff *** -// The next section is copied from the amx.h file -// Copyright (c) ITB CompuPhase, 1997-2005 - -#if defined HAVE_STDINT_H - #include -#else - #if defined __LCC__ || defined __DMC__ || defined LINUX - #if defined HAVE_INTTYPES_H - #include - #else - #include - #endif - #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L - /* The ISO C99 defines the int16_t and int_32t types. If the compiler got - * here, these types are probably undefined. - */ - #if defined __MACH__ - #include - typedef unsigned short int uint16_t; - typedef unsigned long int uint32_t; - #elif defined __FreeBSD__ - #include - #else - typedef short int int16_t; - typedef unsigned short int uint16_t; - #if defined SN_TARGET_PS2 - typedef int int32_t; - typedef unsigned int uint32_t; - #else - typedef long int int32_t; - typedef unsigned long int uint32_t; - #endif - #if defined __WIN32__ || defined _WIN32 || defined WIN32 - typedef __int64 int64_t; - typedef unsigned __int64 uint64_t; - #define HAVE_I64 - #elif defined __GNUC__ - typedef long long int64_t; - typedef unsigned long long uint64_t; - #define HAVE_I64 - #endif - #endif - #endif - #define HAVE_STDINT_H -#endif -#if defined _LP64 || defined WIN64 || defined _WIN64 - #if !defined __64BIT__ - #define __64BIT__ - #endif -#endif - -/* calling convention for native functions */ -#if !defined AMX_NATIVE_CALL - #define AMX_NATIVE_CALL -#endif -/* calling convention for all interface functions and callback functions */ -#if !defined AMXAPI - #if defined STDECL - #define AMXAPI __stdcall - #elif defined CDECL - #define AMXAPI __cdecl - #else - #define AMXAPI - #endif -#endif -#if !defined AMXEXPORT - #define AMXEXPORT -#endif - -#if !defined PAWN_CELL_SIZE - #define PAWN_CELL_SIZE 32 /* by default, use 32-bit cells */ -#endif -#if PAWN_CELL_SIZE==16 - typedef uint16_t ucell; - typedef int16_t cell; -#elif PAWN_CELL_SIZE==32 - typedef uint32_t ucell; - typedef int32_t cell; -#define REAL float -#elif PAWN_CELL_SIZE==64 - typedef uint64_t ucell; - typedef int64_t cell; -#define REAL double -#else - #error Unsupported cell size (PAWN_CELL_SIZE) -#endif - -#define UNPACKEDMAX ((1 << (sizeof(cell)-1)*8) - 1) -#define UNLIMITED (~1u >> 1) - -struct tagAMX; -typedef cell (AMX_NATIVE_CALL *AMX_NATIVE)(struct tagAMX *amx, cell *params); -typedef int (AMXAPI *AMX_CALLBACK)(struct tagAMX *amx, cell index, - cell *result, cell *params); -typedef int (AMXAPI *AMX_DEBUG)(struct tagAMX *amx); -#if !defined _FAR - #define _FAR -#endif - -#if defined _MSC_VER - #pragma warning(disable:4103) /* disable warning message 4103 that complains - * about pragma pack in a header file */ - #pragma warning(disable:4100) /* "'%$S' : unreferenced formal parameter" */ -#endif - - -/* Some compilers do not support the #pragma align, which should be fine. Some - * compilers give a warning on unknown #pragmas, which is not so fine... - */ -#if (defined SN_TARGET_PS2 || defined __GNUC__) && !defined AMX_NO_ALIGN - #define AMX_NO_ALIGN -#endif - -#if defined __GNUC__ - #define PACKED __attribute__((packed)) -#else - #define PACKED -#endif - -#if !defined AMX_NO_ALIGN - #if defined LINUX || defined __FreeBSD__ - #pragma pack(1) /* structures must be packed (byte-aligned) */ - #elif defined MACOS && defined __MWERKS__ - #pragma options align=mac68k - #else - #pragma pack(push) - #pragma pack(1) /* structures must be packed (byte-aligned) */ - #if defined __TURBOC__ - #pragma option -a- /* "pack" pragma for older Borland compilers */ - #endif - #endif -#endif - -typedef struct { - const char _FAR *name PACKED; - AMX_NATIVE func PACKED; -} AMX_NATIVE_INFO; - -#define AMX_USERNUM 4 - -/* The AMX structure is the internal structure for many functions. Not all - * fields are valid at all times; many fields are cached in local variables. - */ -typedef struct tagAMX { - unsigned char _FAR *base PACKED; /* points to the AMX header plus the code, optionally also the data */ - unsigned char _FAR *data PACKED; /* points to separate data+stack+heap, may be NULL */ - AMX_CALLBACK callback PACKED; - AMX_DEBUG debug PACKED; /* debug callback */ - /* for external functions a few registers must be accessible from the outside */ - cell cip PACKED; /* instruction pointer: relative to base + amxhdr->cod */ - cell frm PACKED; /* stack frame base: relative to base + amxhdr->dat */ - cell hea PACKED; /* top of the heap: relative to base + amxhdr->dat */ - cell hlw PACKED; /* bottom of the heap: relative to base + amxhdr->dat */ - cell stk PACKED; /* stack pointer: relative to base + amxhdr->dat */ - cell stp PACKED; /* top of the stack: relative to base + amxhdr->dat */ - int flags PACKED; /* current status, see amx_Flags() */ - /* user data */ - long usertags[AMX_USERNUM] PACKED; - //okay userdata[3] in AMX Mod X is for the CPlugin * pointer - //we're also gonna set userdata[2] to a special debug structure - void _FAR *userdata[AMX_USERNUM] PACKED; - /* native functions can raise an error */ - int error PACKED; - /* passing parameters requires a "count" field */ - int paramcount; - /* the sleep opcode needs to store the full AMX status */ - cell pri PACKED; - cell alt PACKED; - cell reset_stk PACKED; - cell reset_hea PACKED; - cell sysreq_d PACKED; /* relocated address/value for the SYSREQ.D opcode */ - /* support variables for the JIT */ - int reloc_size PACKED; /* required temporary buffer for relocations */ - long code_size PACKED; /* estimated memory footprint of the native code */ -} PACKED AMX; - -enum { - AMX_ERR_NONE, - /* reserve the first 15 error codes for exit codes of the abstract machine */ - AMX_ERR_EXIT, /* forced exit */ - AMX_ERR_ASSERT, /* assertion failed */ - AMX_ERR_STACKERR, /* stack/heap collision */ - AMX_ERR_BOUNDS, /* index out of bounds */ - AMX_ERR_MEMACCESS, /* invalid memory access */ - AMX_ERR_INVINSTR, /* invalid instruction */ - AMX_ERR_STACKLOW, /* stack underflow */ - AMX_ERR_HEAPLOW, /* heap underflow */ - AMX_ERR_CALLBACK, /* no callback, or invalid callback */ - AMX_ERR_NATIVE, /* native function failed */ - AMX_ERR_DIVIDE, /* divide by zero */ - AMX_ERR_SLEEP, /* go into sleepmode - code can be restarted */ - AMX_ERR_INVSTATE, /* invalid state for this access */ - - AMX_ERR_MEMORY = 16, /* out of memory */ - AMX_ERR_FORMAT, /* invalid file format */ - AMX_ERR_VERSION, /* file is for a newer version of the AMX */ - AMX_ERR_NOTFOUND, /* function not found */ - AMX_ERR_INDEX, /* invalid index parameter (bad entry point) */ - AMX_ERR_DEBUG, /* debugger cannot run */ - AMX_ERR_INIT, /* AMX not initialized (or doubly initialized) */ - AMX_ERR_USERDATA, /* unable to set user data field (table full) */ - AMX_ERR_INIT_JIT, /* cannot initialize the JIT */ - AMX_ERR_PARAMS, /* parameter error */ - AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */ -}; - -#if !defined AMX_NO_ALIGN - #if defined __linux__ - #pragma pack() /* reset default packing */ - #else - #pragma pack(pop) /* reset previous packing */ - #endif -#endif - - -// ***** declare functions ***** - -#ifdef USE_METAMOD -void UTIL_LogPrintf( char *fmt, ... ); -void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage); -short FixedSigned16( float value, float scale ); -unsigned short FixedUnsigned16( float value, float scale ); - -#ifdef FN_META_QUERY -void FN_META_QUERY(void); -#endif // FN_META_QUERY - -#ifdef FN_META_ATTACH -void FN_META_ATTACH(void); -#endif // FN_META_ATTACH - -#ifdef FN_META_DETACH -void FN_META_DETACH(void); -#endif // FN_META_DETACH - - - - - -#ifdef FN_GameDLLInit -void FN_GameDLLInit(void); -#endif // FN_GameDLLInit - -#ifdef FN_DispatchSpawn -int FN_DispatchSpawn(edict_t *pent); -#endif // FN_DispatchSpawn - -#ifdef FN_DispatchThink -void FN_DispatchThink(edict_t *pent); -#endif // FN_DispatchThink - -#ifdef FN_DispatchUse -void FN_DispatchUse(edict_t *pentUser, edict_t *pentOther); -#endif // FN_DispatchUse - -#ifdef FN_DispatchTouch -void FN_DispatchTouch(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_DispatchTouch - -#ifdef FN_DispatchBlocked -void FN_DispatchBlocked(edict_t *pentBlocked, edict_t *pentOther); -#endif // FN_DispatchBlocked - -#ifdef FN_DispatchKeyValue -void FN_DispatchKeyValue(edict_t *pentKeyvalue, KeyValueData *pkvd); -#endif // FN_DispatchKeyValue - -#ifdef FN_DispatchSave -void FN_DispatchSave(edict_t *pent, SAVERESTOREDATA *pSaveData); -#endif // FN_DispatchSave - -#ifdef FN_DispatchRestore -int FN_DispatchRestore(edict_t *pent, SAVERESTOREDATA *pSaveData, int globalEntity); -#endif // FN_DispatchRestore - -#ifdef FN_DispatchObjectCollsionBox -void FN_DispatchObjectCollsionBox(edict_t *pent); -#endif // FN_DispatchObjectCollsionBox - -#ifdef FN_SaveWriteFields -void FN_SaveWriteFields(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveWriteFields - -#ifdef FN_SaveReadFields -void FN_SaveReadFields(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveReadFields - -#ifdef FN_SaveGlobalState -void FN_SaveGlobalState(SAVERESTOREDATA *pSaveData); -#endif // FN_SaveGlobalState - -#ifdef FN_RestoreGlobalState -void FN_RestoreGlobalState(SAVERESTOREDATA *pSaveData); -#endif // FN_RestoreGlobalState - -#ifdef FN_ResetGlobalState -void FN_ResetGlobalState(void); -#endif // FN_ResetGlobalState - -#ifdef FN_ClientConnect -BOOL FN_ClientConnect(edict_t *pEntity, const char *pszName, const char *pszAddress, char szRejectReason[ 128 ]); -#endif // FN_ClientConnect - -#ifdef FN_ClientDisconnect -void FN_ClientDisconnect(edict_t *pEntity); -#endif // FN_ClientDisconnect - -#ifdef FN_ClientKill -void FN_ClientKill(edict_t *pEntity); -#endif // FN_ClientKill - -#ifdef FN_ClientPutInServer -void FN_ClientPutInServer(edict_t *pEntity); -#endif // FN_ClientPutInServer - -#ifdef FN_ClientCommand -void FN_ClientCommand(edict_t *pEntity); -#endif // FN_ClientCommand - -#ifdef FN_ClientUserInfoChanged -void FN_ClientUserInfoChanged(edict_t *pEntity, char *infobuffer); -#endif // FN_ClientUserInfoChanged - -#ifdef FN_ServerActivate -void FN_ServerActivate(edict_t *pEdictList, int edictCount, int clientMax); -#endif // FN_ServerActivate - -#ifdef FN_ServerDeactivate -void FN_ServerDeactivate(void); -#endif // FN_ServerDeactivate - -#ifdef FN_PlayerPreThink -void FN_PlayerPreThink(edict_t *pEntity); -#endif // FN_PlayerPreThink - -#ifdef FN_PlayerPostThink -void FN_PlayerPostThink(edict_t *pEntity); -#endif // FN_PlayerPostThink - -#ifdef FN_StartFrame -void FN_StartFrame(void); -#endif // FN_StartFrame - -#ifdef FN_ParmsNewLevel -void FN_ParmsNewLevel(void); -#endif // FN_ParmsNewLevel - -#ifdef FN_ParmsChangeLevel -void FN_ParmsChangeLevel(void); -#endif // FN_ParmsChangeLevel - -#ifdef FN_GetGameDescription -const char *FN_GetGameDescription(void); -#endif // FN_GetGameDescription - -#ifdef FN_PlayerCustomization -void FN_PlayerCustomization(edict_t *pEntity, customization_t *pCust); -#endif // FN_PlayerCustomization - -#ifdef FN_SpectatorConnect -void FN_SpectatorConnect(edict_t *pEntity); -#endif // FN_SpectatorConnect - -#ifdef FN_SpectatorDisconnect -void FN_SpectatorDisconnect(edict_t *pEntity); -#endif // FN_SpectatorDisconnect - -#ifdef FN_SpectatorThink -void FN_SpectatorThink(edict_t *pEntity); -#endif // FN_SpectatorThink - -#ifdef FN_Sys_Error -void FN_Sys_Error(const char *error_string); -#endif // FN_Sys_Error - -#ifdef FN_PM_Move -void FN_PM_Move(struct playermove_s *ppmove, int server); -#endif // FN_PM_Move - -#ifdef FN_PM_Init -void FN_PM_Init(struct playermove_s *ppmove); -#endif // FN_PM_Init - -#ifdef FN_PM_FindTextureType -char FN_PM_FindTextureType(char *name); -#endif // FN_PM_FindTextureType - -#ifdef FN_SetupVisibility -void FN_SetupVisibility(edict_t *pViewEntity, edict_t *pClient, unsigned char **pvs, unsigned char **pas); -#endif // FN_SetupVisibility - -#ifdef FN_UpdateClientData -void FN_UpdateClientData(const struct edict_s *ent, int sendweapons, struct clientdata_s *cd); -#endif // FN_UpdateClientData - -#ifdef FN_AddToFullPack -int FN_AddToFullPack(struct entity_state_s *state, int e, edict_t *ent, edict_t *host, int hostflags, int player, unsigned char *pSet); -#endif // FN_AddToFullPack - -#ifdef FN_CreateBaseline -void FN_CreateBaseline(int player, int eindex, struct entity_state_s *baseline, struct edict_s *entity, int playermodelindex, vec3_t player_mins, vec3_t player_maxs); -#endif // FN_CreateBaseline - -#ifdef FN_RegisterEncoders -void FN_RegisterEncoders(void); -#endif // FN_RegisterEncoders - -#ifdef FN_GetWeaponData -int FN_GetWeaponData(struct edict_s *player, struct weapon_data_s *info); -#endif // FN_GetWeaponData - -#ifdef FN_CmdStart -void FN_CmdStart(const edict_t *player, const struct usercmd_s *cmd, unsigned int random_seed); -#endif // FN_CmdStart - -#ifdef FN_CmdEnd -void FN_CmdEnd(const edict_t *player); -#endif // FN_CmdEnd - -#ifdef FN_ConnectionlessPacket -int FN_ConnectionlessPacket(const struct netadr_s *net_from, const char *args, char *response_buffer, int *response_buffer_size); -#endif // FN_ConnectionlessPacket - -#ifdef FN_GetHullBounds -int FN_GetHullBounds(int hullnumber, float *mins, float *maxs); -#endif // FN_GetHullBounds - -#ifdef FN_CreateInstancedBaselines -void FN_CreateInstancedBaselines(void); -#endif // FN_CreateInstancedBaselines - -#ifdef FN_InconsistentFile -int FN_InconsistentFile(const edict_t *player, const char *filename, char *disconnect_message); -#endif // FN_InconsistentFile - -#ifdef FN_AllowLagCompensation -int FN_AllowLagCompensation(void); -#endif // FN_AllowLagCompensation - - - - -#ifdef FN_GameDLLInit_Post -void FN_GameDLLInit_Post(void); -#endif // FN_GameDLLInit_Post - -#ifdef FN_DispatchSpawn_Post -int FN_DispatchSpawn_Post(edict_t *pent); -#endif // FN_DispatchSpawn_Post - -#ifdef FN_DispatchThink_Post -void FN_DispatchThink_Post(edict_t *pent); -#endif // FN_DispatchThink_Post - -#ifdef FN_DispatchUse_Post -void FN_DispatchUse_Post(edict_t *pentUser, edict_t *pentOther); -#endif // FN_DispatchUse_Post - -#ifdef FN_DispatchTouch_Post -void FN_DispatchTouch_Post(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_DispatchTouch_Post - -#ifdef FN_DispatchBlocked_Post -void FN_DispatchBlocked_Post(edict_t *pentBlocked, edict_t *pentOther); -#endif // FN_DispatchBlocked_Post - -#ifdef FN_DispatchKeyValue_Post -void FN_DispatchKeyValue_Post(edict_t *pentKeyvalue, KeyValueData *pkvd); -#endif // FN_DispatchKeyValue_Post - -#ifdef FN_DispatchSave_Post -void FN_DispatchSave_Post(edict_t *pent, SAVERESTOREDATA *pSaveData); -#endif // FN_DispatchSave_Post - -#ifdef FN_DispatchRestore_Post -int FN_DispatchRestore_Post(edict_t *pent, SAVERESTOREDATA *pSaveData, int globalEntity); -#endif // FN_DispatchRestore_Post - -#ifdef FN_DispatchObjectCollsionBox_Post -void FN_DispatchObjectCollsionBox_Post(edict_t *pent); -#endif // FN_DispatchObjectCollsionBox_Post - -#ifdef FN_SaveWriteFields_Post -void FN_SaveWriteFields_Post(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveWriteFields_Post - -#ifdef FN_SaveReadFields_Post -void FN_SaveReadFields_Post(SAVERESTOREDATA *pSaveData, const char *pname, void *pBaseData, TYPEDESCRIPTION *pFields, int fieldCount); -#endif // FN_SaveReadFields_Post - -#ifdef FN_SaveGlobalState_Post -void FN_SaveGlobalState_Post(SAVERESTOREDATA *pSaveData); -#endif // FN_SaveGlobalState_Post - -#ifdef FN_RestoreGlobalState_Post -void FN_RestoreGlobalState_Post(SAVERESTOREDATA *pSaveData); -#endif // FN_RestoreGlobalState_Post - -#ifdef FN_ResetGlobalState_Post -void FN_ResetGlobalState_Post(void); -#endif // FN_ResetGlobalState_Post - -#ifdef FN_ClientConnect_Post -BOOL FN_ClientConnect_Post(edict_t *pEntity, const char *pszName, const char *pszAddress, char szRejectReason[ 128 ]); -#endif // FN_ClientConnect_Post - -#ifdef FN_ClientDisconnect_Post -void FN_ClientDisconnect_Post(edict_t *pEntity); -#endif // FN_ClientDisconnect_Post - -#ifdef FN_ClientKill_Post -void FN_ClientKill_Post(edict_t *pEntity); -#endif // FN_ClientKill_Post - -#ifdef FN_ClientPutInServer_Post -void FN_ClientPutInServer_Post(edict_t *pEntity); -#endif // FN_ClientPutInServer_Post - -#ifdef FN_ClientCommand_Post -void FN_ClientCommand_Post(edict_t *pEntity); -#endif // FN_ClientCommand_Post - -#ifdef FN_ClientUserInfoChanged_Post -void FN_ClientUserInfoChanged_Post(edict_t *pEntity, char *infobuffer); -#endif // FN_ClientUserInfoChanged_Post - -#ifdef FN_ServerActivate_Post -void FN_ServerActivate_Post(edict_t *pEdictList, int edictCount, int clientMax); -#endif // FN_ServerActivate_Post - -#ifdef FN_ServerDeactivate_Post -void FN_ServerDeactivate_Post(void); -#endif // FN_ServerDeactivate_Post - -#ifdef FN_PlayerPreThink_Post -void FN_PlayerPreThink_Post(edict_t *pEntity); -#endif // FN_PlayerPreThink_Post - -#ifdef FN_PlayerPostThink_Post -void FN_PlayerPostThink_Post(edict_t *pEntity); -#endif // FN_PlayerPostThink_Post - -#ifdef FN_StartFrame_Post -void FN_StartFrame_Post(void); -#endif // FN_StartFrame_Post - -#ifdef FN_ParmsNewLevel_Post -void FN_ParmsNewLevel_Post(void); -#endif // FN_ParmsNewLevel_Post - -#ifdef FN_ParmsChangeLevel_Post -void FN_ParmsChangeLevel_Post(void); -#endif // FN_ParmsChangeLevel_Post - -#ifdef FN_GetGameDescription_Post -const char *FN_GetGameDescription_Post(void); -#endif // FN_GetGameDescription_Post - -#ifdef FN_PlayerCustomization_Post -void FN_PlayerCustomization_Post(edict_t *pEntity, customization_t *pCust); -#endif // FN_PlayerCustomization_Post - -#ifdef FN_SpectatorConnect_Post -void FN_SpectatorConnect_Post(edict_t *pEntity); -#endif // FN_SpectatorConnect_Post - -#ifdef FN_SpectatorDisconnect_Post -void FN_SpectatorDisconnect_Post(edict_t *pEntity); -#endif // FN_SpectatorDisconnect_Post - -#ifdef FN_SpectatorThink_Post -void FN_SpectatorThink_Post(edict_t *pEntity); -#endif // FN_SpectatorThink_Post - -#ifdef FN_Sys_Error_Post -void FN_Sys_Error_Post(const char *error_string); -#endif // FN_Sys_Error_Post - -#ifdef FN_PM_Move_Post -void FN_PM_Move_Post(struct playermove_s *ppmove, int server); -#endif // FN_PM_Move_Post - -#ifdef FN_PM_Init_Post -void FN_PM_Init_Post(struct playermove_s *ppmove); -#endif // FN_PM_Init_Post - -#ifdef FN_PM_FindTextureType_Post -char FN_PM_FindTextureType_Post(char *name); -#endif // FN_PM_FindTextureType_Post - -#ifdef FN_SetupVisibility_Post -void FN_SetupVisibility_Post(edict_t *pViewEntity, edict_t *pClient, unsigned char **pvs, unsigned char **pas); -#endif // FN_SetupVisibility_Post - -#ifdef FN_UpdateClientData_Post -void FN_UpdateClientData_Post(const struct edict_s *ent, int sendweapons, struct clientdata_s *cd); -#endif // FN_UpdateClientData_Post - -#ifdef FN_AddToFullPack_Post -int FN_AddToFullPack_Post(struct entity_state_s *state, int e, edict_t *ent, edict_t *host, int hostflags, int player, unsigned char *pSet); -#endif // FN_AddToFullPack_Post - -#ifdef FN_CreateBaseline_Post -void FN_CreateBaseline_Post(int player, int eindex, struct entity_state_s *baseline, struct edict_s *entity, int playermodelindex, vec3_t player_mins, vec3_t player_maxs); -#endif // FN_CreateBaseline_Post - -#ifdef FN_RegisterEncoders_Post -void FN_RegisterEncoders_Post(void); -#endif // FN_RegisterEncoders_Post - -#ifdef FN_GetWeaponData_Post -int FN_GetWeaponData_Post(struct edict_s *player, struct weapon_data_s *info); -#endif // FN_GetWeaponData_Post - -#ifdef FN_CmdStart_Post -void FN_CmdStart_Post(const edict_t *player, const struct usercmd_s *cmd, unsigned int random_seed); -#endif // FN_CmdStart_Post - -#ifdef FN_CmdEnd_Post -void FN_CmdEnd_Post(const edict_t *player); -#endif // FN_CmdEnd_Post - -#ifdef FN_ConnectionlessPacket_Post -int FN_ConnectionlessPacket_Post(const struct netadr_s *net_from, const char *args, char *response_buffer, int *response_buffer_size); -#endif // FN_ConnectionlessPacket_Post - -#ifdef FN_GetHullBounds_Post -int FN_GetHullBounds_Post(int hullnumber, float *mins, float *maxs); -#endif // FN_GetHullBounds_Post - -#ifdef FN_CreateInstancedBaselines_Post -void FN_CreateInstancedBaselines_Post(void); -#endif // FN_CreateInstancedBaselines_Post - -#ifdef FN_InconsistentFile_Post -int FN_InconsistentFile_Post(const edict_t *player, const char *filename, char *disconnect_message); -#endif // FN_InconsistentFile_Post - -#ifdef FN_AllowLagCompensation_Post -int FN_AllowLagCompensation_Post(void); -#endif // FN_AllowLagCompensation_Post - - - -#ifdef FN_PrecacheModel -int FN_PrecacheModel(char *s); -#endif // FN_PrecacheModel - -#ifdef FN_PrecacheSound -int FN_PrecacheSound(char *s); -#endif // FN_PrecacheSound - -#ifdef FN_SetModel -void FN_SetModel(edict_t *e, const char *m); -#endif // FN_SetModel - -#ifdef FN_ModelIndex -int FN_ModelIndex(const char *m); -#endif // FN_ModelIndex - -#ifdef FN_ModelFrames -int FN_ModelFrames(int modelIndex); -#endif // FN_ModelFrames - -#ifdef FN_SetSize -void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax); -#endif // FN_SetSize - -#ifdef FN_ChangeLevel -void FN_ChangeLevel(char *s1, char *s2); -#endif // FN_ChangeLevel - -#ifdef FN_GetSpawnParms -void FN_GetSpawnParms(edict_t *ent); -#endif // FN_GetSpawnParms - -#ifdef FN_SaveSpawnParms -void FN_SaveSpawnParms(edict_t *ent); -#endif // FN_SaveSpawnParms - -#ifdef FN_VecToYaw -float FN_VecToYaw(const float *rgflVector); -#endif // FN_VecToYaw - -#ifdef FN_VecToAngles -void FN_VecToAngles(const float *rgflVectorIn, float *rgflVectorOut); -#endif // FN_VecToAngles - -#ifdef FN_MoveToOrigin -void FN_MoveToOrigin(edict_t *ent, const float *pflGoal, float dist, int iMoveType); -#endif // FN_MoveToOrigin - -#ifdef FN_ChangeYaw -void FN_ChangeYaw(edict_t *ent); -#endif // FN_ChangeYaw - -#ifdef FN_ChangePitch -void FN_ChangePitch(edict_t *ent); -#endif // FN_ChangePitch - -#ifdef FN_FindEntityByString -edict_t *FN_FindEntityByString(edict_t *pEdictStartSearchAfter, const char *pszField, const char *pszValue); -#endif // FN_FindEntityByString - -#ifdef FN_GetEntityIllum -int FN_GetEntityIllum(edict_t *pEnt); -#endif // FN_GetEntityIllum - -#ifdef FN_FindEntityInSphere -edict_t *FN_FindEntityInSphere(edict_t *pEdictStartSearchAfter, const float *org, float rad); -#endif // FN_FindEntityInSphere - -#ifdef FN_FindClientInPVS -edict_t *FN_FindClientInPVS(edict_t *pEdict); -#endif // FN_FindClientInPVS - -#ifdef FN_EntitiesInPVS -edict_t *FN_EntitiesInPVS(edict_t *pplayer); -#endif // FN_EntitiesInPVS - -#ifdef FN_MakeVectors -void FN_MakeVectors(const float *rgflVector); -#endif // FN_MakeVectors - -#ifdef FN_AngleVectors -void FN_AngleVectors(const float *rgflVector, float *forward, float *right, float *up); -#endif // FN_AngleVectors - -#ifdef FN_CreateEntity -edict_t *FN_CreateEntity(void); -#endif // FN_CreateEntity - -#ifdef FN_RemoveEntity -void FN_RemoveEntity(edict_t *e); -#endif // FN_RemoveEntity - -#ifdef FN_CreateNamedEntity -edict_t *FN_CreateNamedEntity(int className); -#endif // FN_CreateNamedEntity - -#ifdef FN_MakeStatic -void FN_MakeStatic(edict_t *ent); -#endif // FN_MakeStatic - -#ifdef FN_EntIsOnFloor -int FN_EntIsOnFloor(edict_t *ent); -#endif // FN_EntIsOnFloor - -#ifdef FN_DropToFloor -int FN_DropToFloor(edict_t *ent); -#endif // FN_DropToFloor - -#ifdef FN_WalkMove -int FN_WalkMove(edict_t *ent, float yaw, float dist, int iMode); -#endif // FN_WalkMove - -#ifdef FN_SetOrigin -void FN_SetOrigin(edict_t *e, const float *rgflOrigin); -#endif // FN_SetOrigin - -#ifdef FN_EmitSound -void FN_EmitSound(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch); -#endif // FN_EmitSound - -#ifdef FN_EmitAmbientSound -void FN_EmitAmbientSound(edict_t *entity, float *pos, const char *samp, float vol, float attenuation, int fFlags, int pitch); -#endif // FN_EmitAmbientSound - -#ifdef FN_TraceLine -void FN_TraceLine(const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceLine - -#ifdef FN_TraceToss -void FN_TraceToss(edict_t *pent, edict_t *pentToIgnore, TraceResult *ptr); -#endif // FN_TraceToss - -#ifdef FN_TraceMonsterHull -int FN_TraceMonsterHull(edict_t *pEdict, const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceMonsterHull - -#ifdef FN_TraceHull -void FN_TraceHull(const float *v1, const float *v2, int fNoMonsters, int hullNumber, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceHull - -#ifdef FN_TraceModel -void FN_TraceModel(const float *v1, const float *v2, int hullNumber, edict_t *pent, TraceResult *ptr); -#endif // FN_TraceModel - -#ifdef FN_TraceTexture -const char *FN_TraceTexture(edict_t *pTextureEntity, const float *v1, const float *v2 ); -#endif // FN_TraceTexture - -#ifdef FN_TraceSphere -void FN_TraceSphere(const float *v1, const float *v2, int fNoMonsters, float radius, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceSphere - -#ifdef FN_GetAimVector -void FN_GetAimVector(edict_t *ent, float speed, float *rgflReturn); -#endif // FN_GetAimVector - -#ifdef FN_ServerCommand -void FN_ServerCommand(char *str); -#endif // FN_ServerCommand - -#ifdef FN_ServerExecute -void FN_ServerExecute(void); -#endif // FN_ServerExecute - -#ifdef FN_engClientCommand -void FN_engClientCommand(edict_t *pEdict, char *szFmt, ...); -#endif // FN_engClientCommand - -#ifdef FN_ParticleEffect -void FN_ParticleEffect(const float *org, const float *dir, float color, float count); -#endif // FN_ParticleEffect - -#ifdef FN_LightStyle -void FN_LightStyle(int style, char *val); -#endif // FN_LightStyle - -#ifdef FN_DecalIndex -int FN_DecalIndex(const char *name); -#endif // FN_DecalIndex - -#ifdef FN_PointContents -int FN_PointContents(const float *rgflVector); -#endif // FN_PointContents - -#ifdef FN_MessageBegin -void FN_MessageBegin(int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_MessageBegin - -#ifdef FN_MessageEnd -void FN_MessageEnd(void); -#endif // FN_MessageEnd - -#ifdef FN_WriteByte -void FN_WriteByte(int iValue); -#endif // FN_WriteByte - -#ifdef FN_WriteChar -void FN_WriteChar(int iValue); -#endif // FN_WriteChar - -#ifdef FN_WriteShort -void FN_WriteShort(int iValue); -#endif // FN_WriteShort - -#ifdef FN_WriteLong -void FN_WriteLong(int iValue); -#endif // FN_WriteLong - -#ifdef FN_WriteAngle -void FN_WriteAngle(float flValue); -#endif // FN_WriteAngle - -#ifdef FN_WriteCoord -void FN_WriteCoord(float flValue); -#endif // FN_WriteCoord - -#ifdef FN_WriteString -void FN_WriteString(const char *sz); -#endif // FN_WriteString - -#ifdef FN_WriteEntity -void FN_WriteEntity(int iValue); -#endif // FN_WriteEntity - -#ifdef FN_CVarRegister -void FN_CVarRegister(cvar_t *pCvar); -#endif // FN_CVarRegister - -#ifdef FN_CVarGetFloat -float FN_CVarGetFloat(const char *szVarName); -#endif // FN_CVarGetFloat - -#ifdef FN_CVarGetString -const char *FN_CVarGetString(const char *szVarName); -#endif // FN_CVarGetString - -#ifdef FN_CVarSetFloat -void FN_CVarSetFloat(const char *szVarName, float flValue); -#endif // FN_CVarSetFloat - -#ifdef FN_CVarSetString -void FN_CVarSetString(const char *szVarName, const char *szValue); -#endif // FN_CVarSetString - -#ifdef FN_AlertMessage -void FN_AlertMessage(ALERT_TYPE atype, char *szFmt, ...); -#endif // FN_AlertMessage - -#ifdef FN_EngineFprintf -void FN_EngineFprintf(FILE *pfile, char *szFmt, ...); -#endif // FN_EngineFprintf - -#ifdef FN_PvAllocEntPrivateData -void *FN_PvAllocEntPrivateData(edict_t *pEdict, int32 cb); -#endif // FN_PvAllocEntPrivateData - -#ifdef FN_PvEntPrivateData -void *FN_PvEntPrivateData(edict_t *pEdict); -#endif // FN_PvEntPrivateData - -#ifdef FN_FreeEntPrivateData -void FN_FreeEntPrivateData(edict_t *pEdict); -#endif // FN_FreeEntPrivateData - -#ifdef FN_SzFromIndex -const char *FN_SzFromIndex(int iString); -#endif // FN_SzFromIndex - -#ifdef FN_AllocString -int FN_AllocString(const char *szValue); -#endif // FN_AllocString - -#ifdef FN_GetVarsOfEnt -struct entvars_s *FN_GetVarsOfEnt(edict_t *pEdict); -#endif // FN_GetVarsOfEnt - -#ifdef FN_PEntityOfEntOffset -edict_t *FN_PEntityOfEntOffset(int iEntOffset); -#endif // FN_PEntityOfEntOffset - -#ifdef FN_EntOffsetOfPEntity -int FN_EntOffsetOfPEntity(const edict_t *pEdict); -#endif // FN_EntOffsetOfPEntity - -#ifdef FN_IndexOfEdict -int FN_IndexOfEdict(const edict_t *pEdict); -#endif // FN_IndexOfEdict - -#ifdef FN_PEntityOfEntIndex -edict_t *FN_PEntityOfEntIndex(int iEntIndex); -#endif // FN_PEntityOfEntIndex - -#ifdef FN_FindEntityByVars -edict_t *FN_FindEntityByVars(struct entvars_s *pvars); -#endif // FN_FindEntityByVars - -#ifdef FN_GetModelPtr -void *FN_GetModelPtr(edict_t *pEdict); -#endif // FN_GetModelPtr - -#ifdef FN_RegUserMsg -int FN_RegUserMsg(const char *pszName, int iSize); -#endif // FN_RegUserMsg - -#ifdef FN_AnimationAutomove -void FN_AnimationAutomove(const edict_t *pEdict, float flTime); -#endif // FN_AnimationAutomove - -#ifdef FN_GetBonePosition -void FN_GetBonePosition(const edict_t *pEdict, int iBone, float *rgflOrigin, float *rgflAngles); -#endif // FN_GetBonePosition - -#ifdef FN_FunctionFromName -unsigned long FN_FunctionFromName(const char *pName); -#endif // FN_FunctionFromName - -#ifdef FN_NameForFunction -const char *FN_NameForFunction(unsigned long function); -#endif // FN_NameForFunction - -#ifdef FN_ClientPrintf -void FN_ClientPrintf(edict_t *pEdict, PRINT_TYPE ptype, const char *szMsg); -#endif // FN_ClientPrintf - -#ifdef FN_ServerPrint -void FN_ServerPrint(const char *szMsg); -#endif // FN_ServerPrint - -#ifdef FN_Cmd_Args -const char *FN_Cmd_Args(void); -#endif // FN_Cmd_Args - -#ifdef FN_Cmd_Argv -const char *FN_Cmd_Argv(int argc); -#endif // FN_Cmd_Argv - -#ifdef FN_Cmd_Argc -int FN_Cmd_Argc(void); -#endif // FN_Cmd_Argc - -#ifdef FN_GetAttachment -void FN_GetAttachment(const edict_t *pEdict, int iAttachment, float *rgflOrigin, float *rgflAngles ); -#endif // FN_GetAttachment - -#ifdef FN_CRC32_Init -void FN_CRC32_Init(CRC32_t *pulCRC); -#endif // FN_CRC32_Init - -#ifdef FN_CRC32_ProcessBuffer -void FN_CRC32_ProcessBuffer(CRC32_t *pulCRC, void *p, int len); -#endif // FN_CRC32_ProcessBuffer - -#ifdef FN_CRC32_ProcessByte -void FN_CRC32_ProcessByte(CRC32_t *pulCRC, unsigned char ch); -#endif // FN_CRC32_ProcessByte - -#ifdef FN_CRC32_Final -CRC32_t FN_CRC32_Final(CRC32_t pulCRC); -#endif // FN_CRC32_Final - -#ifdef FN_RandomLong -long FN_RandomLong(long lLow, long lHigh); -#endif // FN_RandomLong - -#ifdef FN_RandomFloat -float FN_RandomFloat(float flLow, float flHigh); -#endif // FN_RandomFloat - -#ifdef FN_SetView -void FN_SetView(const edict_t *pClient, const edict_t *pViewent); -#endif // FN_SetView - -#ifdef FN_Time -float FN_Time(void); -#endif // FN_Time - -#ifdef FN_CrosshairAngle -void FN_CrosshairAngle(const edict_t *pClient, float pitch, float yaw); -#endif // FN_CrosshairAngle - -#ifdef FN_LoadFileForMe -byte *FN_LoadFileForMe(char *filename, int *pLength); -#endif // FN_LoadFileForMe - -#ifdef FN_FreeFile -void FN_FreeFile(void *buffer); -#endif // FN_FreeFile - -#ifdef FN_EndSection -void FN_EndSection(const char *pszSectionName); -#endif // FN_EndSection - -#ifdef FN_CompareFileTime -int FN_CompareFileTime(char *filename1, char *filename2, int *iCompare); -#endif // FN_CompareFileTime - -#ifdef FN_GetGameDir -void FN_GetGameDir(char *szGetGameDir); -#endif // FN_GetGameDir - -#ifdef FN_Cvar_RegisterVariable -void FN_Cvar_RegisterVariable(cvar_t *variable); -#endif // FN_Cvar_RegisterVariable - -#ifdef FN_FadeClientVolume -void FN_FadeClientVolume(const edict_t *pEdict, int fadePercent, int fadeOutSeconds, int holdTime, int fadeInSeconds); -#endif // FN_FadeClientVolume - -#ifdef FN_SetClientMaxspeed -void FN_SetClientMaxspeed(const edict_t *pEdict, float fNewMaxspeed); -#endif // FN_SetClientMaxspeed - -#ifdef FN_CreateFakeClient -edict_t *FN_CreateFakeClient(const char *netname); -#endif // FN_CreateFakeClient - -#ifdef FN_RunPlayerMove -void FN_RunPlayerMove(edict_t *fakeclient, const float *viewangles, float forwardmove, float sidemove, float upmove, unsigned short buttons, byte impulse, byte msec); -#endif // FN_RunPlayerMove - -#ifdef FN_NumberOfEntities -int FN_NumberOfEntities(void); -#endif // FN_NumberOfEntities - -#ifdef FN_GetInfoKeyBuffer -char *FN_GetInfoKeyBuffer(edict_t *e); -#endif // FN_GetInfoKeyBuffer - -#ifdef FN_InfoKeyValue -char *FN_InfoKeyValue(char *infobuffer, char *key); -#endif // FN_InfoKeyValue - -#ifdef FN_SetKeyValue -void FN_SetKeyValue(char *infobuffer, char *key, char *value); -#endif // FN_SetKeyValue - -#ifdef FN_SetClientKeyValue -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value); -#endif // FN_SetClientKeyValue - -#ifdef FN_IsMapValid -int FN_IsMapValid(char *filename); -#endif // FN_IsMapValid - -#ifdef FN_StaticDecal -void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex); -#endif // FN_StaticDecal - -#ifdef FN_PrecacheGeneric -int FN_PrecacheGeneric(char *s); -#endif // FN_PrecacheGeneric - -#ifdef FN_GetPlayerUserId -int FN_GetPlayerUserId(edict_t *e ); -#endif // FN_GetPlayerUserId - -#ifdef FN_BuildSoundMsg -void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_BuildSoundMsg - -#ifdef FN_IsDedicatedServer -int FN_IsDedicatedServer(void); -#endif // FN_IsDedicatedServer - -#ifdef FN_CVarGetPointer -cvar_t *FN_CVarGetPointer(const char *szVarName); -#endif // FN_CVarGetPointer - -#ifdef FN_GetPlayerWONId -unsigned int FN_GetPlayerWONId(edict_t *e); -#endif // FN_GetPlayerWONId - -#ifdef FN_Info_RemoveKey -void FN_Info_RemoveKey( char *s, const char *key); -#endif // FN_Info_RemoveKey - -#ifdef FN_GetPhysicsKeyValue -const char *FN_GetPhysicsKeyValue(const edict_t *pClient, const char *key); -#endif // FN_GetPhysicsKeyValue - -#ifdef FN_SetPhysicsKeyValue -void FN_SetPhysicsKeyValue(const edict_t *pClient, const char *key, const char *value); -#endif // FN_SetPhysicsKeyValue - -#ifdef FN_GetPhysicsInfoString -const char *FN_GetPhysicsInfoString( const edict_t *pClient); -#endif // FN_GetPhysicsInfoString - -#ifdef FN_PrecacheEvent -unsigned short FN_PrecacheEvent(int type, const char *psz); -#endif // FN_PrecacheEvent - -#ifdef FN_PlaybackEvent -void FN_PlaybackEvent(int flags, const edict_t *pInvoker, unsigned short eventindex, float delay, float *origin, float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2); -#endif // FN_PlaybackEvent - -#ifdef FN_SetFatPVS -unsigned char *FN_SetFatPVS(float *org); -#endif // FN_SetFatPVS - -#ifdef FN_SetFatPAS -unsigned char *FN_SetFatPAS(float *org); -#endif // FN_SetFatPAS - -#ifdef FN_CheckVisibility -int FN_CheckVisibility(const edict_t *entity, unsigned char *pset); -#endif // FN_CheckVisibility - -#ifdef FN_DeltaSetField -void FN_DeltaSetField(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaSetField - -#ifdef FN_DeltaUnsetField -void FN_DeltaUnsetField(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaUnsetField - -#ifdef FN_DeltaAddEncoder -void FN_DeltaAddEncoder(char *name, void (*conditionalencode)( struct delta_s *pFields, const unsigned char *from, const unsigned char *to ) ); -#endif // FN_DeltaAddEncoder - -#ifdef FN_GetCurrentPlayer -int FN_GetCurrentPlayer(void); -#endif // FN_GetCurrentPlayer - -#ifdef FN_CanSkipPlayer -int FN_CanSkipPlayer(const edict_t *player); -#endif // FN_CanSkipPlayer - -#ifdef FN_DeltaFindField -int FN_DeltaFindField(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaFindField - -#ifdef FN_DeltaSetFieldByIndex -void FN_DeltaSetFieldByIndex(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaSetFieldByIndex - -#ifdef FN_DeltaUnsetFieldByIndex -void FN_DeltaUnsetFieldByIndex(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaUnsetFieldByIndex - -#ifdef FN_SetGroupMask -void FN_SetGroupMask(int mask, int op); -#endif // FN_SetGroupMask - -#ifdef FN_engCreateInstancedBaseline -int FN_engCreateInstancedBaseline(int classname, struct entity_state_s *baseline); -#endif // FN_engCreateInstancedBaseline - -#ifdef FN_Cvar_DirectSet -void FN_Cvar_DirectSet(struct cvar_s *var, char *value); -#endif // FN_Cvar_DirectSet - -#ifdef FN_ForceUnmodified -void FN_ForceUnmodified(FORCE_TYPE type, float *mins, float *maxs, const char *filename); -#endif // FN_ForceUnmodified - -#ifdef FN_GetPlayerStats -void FN_GetPlayerStats(const edict_t *pClient, int *ping, int *packet_loss); -#endif // FN_GetPlayerStats - -#ifdef FN_AddServerCommand -void FN_AddServerCommand(char *cmd_name, void (*function) (void)); -#endif // FN_AddServerCommand - -#ifdef FN_Voice_GetClientListening -qboolean FN_Voice_GetClientListening(int iReceiver, int iSender); -#endif // FN_Voice_GetClientListening - -#ifdef FN_Voice_SetClientListening -qboolean FN_Voice_SetClientListening(int iReceiver, int iSender, qboolean bListen); -#endif // FN_Voice_SetClientListening - -#ifdef FN_GetPlayerAuthId -const char *FN_GetPlayerAuthId(edict_t *e); -#endif // FN_GetPlayerAuthId - - - - - - -#ifdef FN_PrecacheModel_Post -int FN_PrecacheModel_Post(char *s); -#endif // FN_PrecacheModel_Post - -#ifdef FN_PrecacheSound_Post -int FN_PrecacheSound_Post(char *s); -#endif // FN_PrecacheSound_Post - -#ifdef FN_SetModel_Post -void FN_SetModel_Post(edict_t *e, const char *m); -#endif // FN_SetModel_Post - -#ifdef FN_ModelIndex_Post -int FN_ModelIndex_Post(const char *m); -#endif // FN_ModelIndex_Post - -#ifdef FN_ModelFrames_Post -int FN_ModelFrames_Post(int modelIndex); -#endif // FN_ModelFrames_Post - -#ifdef FN_SetSize_Post -void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax); -#endif // FN_SetSize_Post - -#ifdef FN_ChangeLevel_Post -void FN_ChangeLevel_Post(char *s1, char *s2); -#endif // FN_ChangeLevel_Post - -#ifdef FN_GetSpawnParms_Post -void FN_GetSpawnParms_Post(edict_t *ent); -#endif // FN_GetSpawnParms_Post - -#ifdef FN_SaveSpawnParms_Post -void FN_SaveSpawnParms_Post(edict_t *ent); -#endif // FN_SaveSpawnParms_Post - -#ifdef FN_VecToYaw_Post -float FN_VecToYaw_Post(const float *rgflVector); -#endif // FN_VecToYaw_Post - -#ifdef FN_VecToAngles_Post -void FN_VecToAngles_Post(const float *rgflVectorIn, float *rgflVectorOut); -#endif // FN_VecToAngles_Post - -#ifdef FN_MoveToOrigin_Post -void FN_MoveToOrigin_Post(edict_t *ent, const float *pflGoal, float dist, int iMoveType); -#endif // FN_MoveToOrigin_Post - -#ifdef FN_ChangeYaw_Post -void FN_ChangeYaw_Post(edict_t *ent); -#endif // FN_ChangeYaw_Post - -#ifdef FN_ChangePitch_Post -void FN_ChangePitch_Post(edict_t *ent); -#endif // FN_ChangePitch_Post - -#ifdef FN_FindEntityByString_Post -edict_t *FN_FindEntityByString_Post(edict_t *pEdictStartSearchAfter, const char *pszField, const char *pszValue); -#endif // FN_FindEntityByString_Post - -#ifdef FN_GetEntityIllum_Post -int FN_GetEntityIllum_Post(edict_t *pEnt); -#endif // FN_GetEntityIllum_Post - -#ifdef FN_FindEntityInSphere_Post -edict_t *FN_FindEntityInSphere_Post(edict_t *pEdictStartSearchAfter, const float *org, float rad); -#endif // FN_FindEntityInSphere_Post - -#ifdef FN_FindClientInPVS_Post -edict_t *FN_FindClientInPVS_Post(edict_t *pEdict); -#endif // FN_FindClientInPVS_Post - -#ifdef FN_EntitiesInPVS_Post -edict_t *FN_EntitiesInPVS_Post(edict_t *pplayer); -#endif // FN_EntitiesInPVS_Post - -#ifdef FN_MakeVectors_Post -void FN_MakeVectors_Post(const float *rgflVector); -#endif // FN_MakeVectors_Post - -#ifdef FN_AngleVectors_Post -void FN_AngleVectors_Post(const float *rgflVector, float *forward, float *right, float *up); -#endif // FN_AngleVectors_Post - -#ifdef FN_CreateEntity_Post -edict_t *FN_CreateEntity_Post(void); -#endif // FN_CreateEntity_Post - -#ifdef FN_RemoveEntity_Post -void FN_RemoveEntity_Post(edict_t *e); -#endif // FN_RemoveEntity_Post - -#ifdef FN_CreateNamedEntity_Post -edict_t *FN_CreateNamedEntity_Post(int className); -#endif // FN_CreateNamedEntity_Post - -#ifdef FN_MakeStatic_Post -void FN_MakeStatic_Post(edict_t *ent); -#endif // FN_MakeStatic_Post - -#ifdef FN_EntIsOnFloor_Post -int FN_EntIsOnFloor_Post(edict_t *ent); -#endif // FN_EntIsOnFloor_Post - -#ifdef FN_DropToFloor_Post -int FN_DropToFloor_Post(edict_t *ent); -#endif // FN_DropToFloor_Post - -#ifdef FN_WalkMove_Post -int FN_WalkMove_Post(edict_t *ent, float yaw, float dist, int iMode); -#endif // FN_WalkMove_Post - -#ifdef FN_SetOrigin_Post -void FN_SetOrigin_Post(edict_t *e, const float *rgflOrigin); -#endif // FN_SetOrigin_Post - -#ifdef FN_EmitSound_Post -void FN_EmitSound_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch); -#endif // FN_EmitSound_Post - -#ifdef FN_EmitAmbientSound_Post -void FN_EmitAmbientSound_Post(edict_t *entity, float *pos, const char *samp, float vol, float attenuation, int fFlags, int pitch); -#endif // FN_EmitAmbientSound_Post - -#ifdef FN_TraceLine_Post -void FN_TraceLine_Post(const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceLine_Post - -#ifdef FN_TraceToss_Post -void FN_TraceToss_Post(edict_t *pent, edict_t *pentToIgnore, TraceResult *ptr); -#endif // FN_TraceToss_Post - -#ifdef FN_TraceMonsterHull_Post -int FN_TraceMonsterHull_Post(edict_t *pEdict, const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceMonsterHull_Post - -#ifdef FN_TraceHull_Post -void FN_TraceHull_Post(const float *v1, const float *v2, int fNoMonsters, int hullNumber, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceHull_Post - -#ifdef FN_TraceModel_Post -void FN_TraceModel_Post(const float *v1, const float *v2, int hullNumber, edict_t *pent, TraceResult *ptr); -#endif // FN_TraceModel_Post - -#ifdef FN_TraceTexture_Post -const char *FN_TraceTexture_Post(edict_t *pTextureEntity, const float *v1, const float *v2 ); -#endif // FN_TraceTexture_Post - -#ifdef FN_TraceSphere_Post -void FN_TraceSphere_Post(const float *v1, const float *v2, int fNoMonsters, float radius, edict_t *pentToSkip, TraceResult *ptr); -#endif // FN_TraceSphere_Post - -#ifdef FN_GetAimVector_Post -void FN_GetAimVector_Post(edict_t *ent, float speed, float *rgflReturn); -#endif // FN_GetAimVector_Post - -#ifdef FN_ServerCommand_Post -void FN_ServerCommand_Post(char *str); -#endif // FN_ServerCommand_Post - -#ifdef FN_ServerExecute_Post -void FN_ServerExecute_Post(void); -#endif // FN_ServerExecute_Post - -#ifdef FN_engClientCommand_Post -void FN_engClientCommand_Post(edict_t *pEdict, char *szFmt, ...); -#endif // FN_engClientCommand_Post - -#ifdef FN_ParticleEffect_Post -void FN_ParticleEffect_Post(const float *org, const float *dir, float color, float count); -#endif // FN_ParticleEffect_Post - -#ifdef FN_LightStyle_Post -void FN_LightStyle_Post(int style, char *val); -#endif // FN_LightStyle_Post - -#ifdef FN_DecalIndex_Post -int FN_DecalIndex_Post(const char *name); -#endif // FN_DecalIndex_Post - -#ifdef FN_PointContents_Post -int FN_PointContents_Post(const float *rgflVector); -#endif // FN_PointContents_Post - -#ifdef FN_MessageBegin_Post -void FN_MessageBegin_Post(int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_MessageBegin_Post - -#ifdef FN_MessageEnd_Post -void FN_MessageEnd_Post(void); -#endif // FN_MessageEnd_Post - -#ifdef FN_WriteByte_Post -void FN_WriteByte_Post(int iValue); -#endif // FN_WriteByte_Post - -#ifdef FN_WriteChar_Post -void FN_WriteChar_Post(int iValue); -#endif // FN_WriteChar_Post - -#ifdef FN_WriteShort_Post -void FN_WriteShort_Post(int iValue); -#endif // FN_WriteShort_Post - -#ifdef FN_WriteLong_Post -void FN_WriteLong_Post(int iValue); -#endif // FN_WriteLong_Post - -#ifdef FN_WriteAngle_Post -void FN_WriteAngle_Post(float flValue); -#endif // FN_WriteAngle_Post - -#ifdef FN_WriteCoord_Post -void FN_WriteCoord_Post(float flValue); -#endif // FN_WriteCoord_Post - -#ifdef FN_WriteString_Post -void FN_WriteString_Post(const char *sz); -#endif // FN_WriteString_Post - -#ifdef FN_WriteEntity_Post -void FN_WriteEntity_Post(int iValue); -#endif // FN_WriteEntity_Post - -#ifdef FN_CVarRegister_Post -void FN_CVarRegister_Post(cvar_t *pCvar); -#endif // FN_CVarRegister_Post - -#ifdef FN_CVarGetFloat_Post -float FN_CVarGetFloat_Post(const char *szVarName); -#endif // FN_CVarGetFloat_Post - -#ifdef FN_CVarGetString_Post -const char *FN_CVarGetString_Post(const char *szVarName); -#endif // FN_CVarGetString_Post - -#ifdef FN_CVarSetFloat_Post -void FN_CVarSetFloat_Post(const char *szVarName, float flValue); -#endif // FN_CVarSetFloat_Post - -#ifdef FN_CVarSetString_Post -void FN_CVarSetString_Post(const char *szVarName, const char *szValue); -#endif // FN_CVarSetString_Post - -#ifdef FN_AlertMessage_Post -void FN_AlertMessage_Post(ALERT_TYPE atype, char *szFmt, ...); -#endif // FN_AlertMessage_Post - -#ifdef FN_EngineFprintf_Post -void FN_EngineFprintf_Post(FILE *pfile, char *szFmt, ...); -#endif // FN_EngineFprintf_Post - -#ifdef FN_PvAllocEntPrivateData_Post -void *FN_PvAllocEntPrivateData_Post(edict_t *pEdict, long cb); -#endif // FN_PvAllocEntPrivateData_Post - -#ifdef FN_PvEntPrivateData_Post -void *FN_PvEntPrivateData_Post(edict_t *pEdict); -#endif // FN_PvEntPrivateData_Post - -#ifdef FN_FreeEntPrivateData_Post -void FN_FreeEntPrivateData_Post(edict_t *pEdict); -#endif // FN_FreeEntPrivateData_Post - -#ifdef FN_SzFromIndex_Post -const char *FN_SzFromIndex_Post(int iString); -#endif // FN_SzFromIndex_Post - -#ifdef FN_AllocString_Post -int FN_AllocString_Post(const char *szValue); -#endif // FN_AllocString_Post - -#ifdef FN_GetVarsOfEnt_Post -struct entvars_s *FN_GetVarsOfEnt_Post(edict_t *pEdict); -#endif // FN_GetVarsOfEnt_Post - -#ifdef FN_PEntityOfEntOffset_Post -edict_t *FN_PEntityOfEntOffset_Post(int iEntOffset); -#endif // FN_PEntityOfEntOffset_Post - -#ifdef FN_EntOffsetOfPEntity_Post -int FN_EntOffsetOfPEntity_Post(const edict_t *pEdict); -#endif // FN_EntOffsetOfPEntity_Post - -#ifdef FN_IndexOfEdict_Post -int FN_IndexOfEdict_Post(const edict_t *pEdict); -#endif // FN_IndexOfEdict_Post - -#ifdef FN_PEntityOfEntIndex_Post -edict_t *FN_PEntityOfEntIndex_Post(int iEntIndex); -#endif // FN_PEntityOfEntIndex_Post - -#ifdef FN_FindEntityByVars_Post -edict_t *FN_FindEntityByVars_Post(struct entvars_s *pvars); -#endif // FN_FindEntityByVars_Post - -#ifdef FN_GetModelPtr_Post -void *FN_GetModelPtr_Post(edict_t *pEdict); -#endif // FN_GetModelPtr_Post - -#ifdef FN_RegUserMsg_Post -int FN_RegUserMsg_Post(const char *pszName, int iSize); -#endif // FN_RegUserMsg_Post - -#ifdef FN_AnimationAutomove_Post -void FN_AnimationAutomove_Post(const edict_t *pEdict, float flTime); -#endif // FN_AnimationAutomove_Post - -#ifdef FN_GetBonePosition_Post -void FN_GetBonePosition_Post(const edict_t *pEdict, int iBone, float *rgflOrigin, float *rgflAngles); -#endif // FN_GetBonePosition_Post - -#ifdef FN_FunctionFromName_Post -unsigned long FN_FunctionFromName_Post(const char *pName); -#endif // FN_FunctionFromName_Post - -#ifdef FN_NameForFunction_Post -const char *FN_NameForFunction_Post(unsigned long function); -#endif // FN_NameForFunction_Post - -#ifdef FN_ClientPrintf_Post -void FN_ClientPrintf_Post(edict_t *pEdict, PRINT_TYPE ptype, const char *szMsg); -#endif // FN_ClientPrintf_Post - -#ifdef FN_ServerPrint_Post -void FN_ServerPrint_Post(const char *szMsg); -#endif // FN_ServerPrint_Post - -#ifdef FN_Cmd_Args_Post -const char *FN_Cmd_Args_Post(void); -#endif // FN_Cmd_Args_Post - -#ifdef FN_Cmd_Argv_Post -const char *FN_Cmd_Argv_Post(int argc); -#endif // FN_Cmd_Argv_Post - -#ifdef FN_Cmd_Argc_Post -int FN_Cmd_Argc_Post(void); -#endif // FN_Cmd_Argc_Post - -#ifdef FN_GetAttachment_Post -void FN_GetAttachment_Post(const edict_t *pEdict, int iAttachment, float *rgflOrigin, float *rgflAngles ); -#endif // FN_GetAttachment_Post - -#ifdef FN_CRC32_Init_Post -void FN_CRC32_Init_Post(CRC32_t *pulCRC); -#endif // FN_CRC32_Init_Post - -#ifdef FN_CRC32_ProcessBuffer_Post -void FN_CRC32_ProcessBuffer_Post(CRC32_t *pulCRC, void *p, int len); -#endif // FN_CRC32_ProcessBuffer_Post - -#ifdef FN_CRC32_ProcessByte_Post -void FN_CRC32_ProcessByte_Post(CRC32_t *pulCRC, unsigned char ch); -#endif // FN_CRC32_ProcessByte_Post - -#ifdef FN_CRC32_Final_Post -CRC32_t FN_CRC32_Final_Post(CRC32_t pulCRC); -#endif // FN_CRC32_Final_Post - -#ifdef FN_RandomLong_Post -long FN_RandomLong_Post(long lLow, long lHigh); -#endif // FN_RandomLong_Post - -#ifdef FN_RandomFloat_Post -float FN_RandomFloat_Post(float flLow, float flHigh); -#endif // FN_RandomFloat_Post - -#ifdef FN_SetView_Post -void FN_SetView_Post(const edict_t *pClient, const edict_t *pViewent); -#endif // FN_SetView_Post - -#ifdef FN_Time_Post -float FN_Time_Post(void); -#endif // FN_Time_Post - -#ifdef FN_CrosshairAngle_Post -void FN_CrosshairAngle_Post(const edict_t *pClient, float pitch, float yaw); -#endif // FN_CrosshairAngle_Post - -#ifdef FN_LoadFileForMe_Post -byte *FN_LoadFileForMe_Post(char *filename, int *pLength); -#endif // FN_LoadFileForMe_Post - -#ifdef FN_FreeFile_Post -void FN_FreeFile_Post(void *buffer); -#endif // FN_FreeFile_Post - -#ifdef FN_EndSection_Post -void FN_EndSection_Post(const char *pszSectionName); -#endif // FN_EndSection_Post - -#ifdef FN_CompareFileTime_Post -int FN_CompareFileTime_Post(char *filename1, char *filename2, int *iCompare); -#endif // FN_CompareFileTime_Post - -#ifdef FN_GetGameDir_Post -void FN_GetGameDir_Post(char *szGetGameDir); -#endif // FN_GetGameDir_Post - -#ifdef FN_Cvar_RegisterVariable_Post -void FN_Cvar_RegisterVariable_Post(cvar_t *variable); -#endif // FN_Cvar_RegisterVariable_Post - -#ifdef FN_FadeClientVolume_Post -void FN_FadeClientVolume_Post(const edict_t *pEdict, int fadePercent, int fadeOutSeconds, int holdTime, int fadeInSeconds); -#endif // FN_FadeClientVolume_Post - -#ifdef FN_SetClientMaxspeed_Post -void FN_SetClientMaxspeed_Post(const edict_t *pEdict, float fNewMaxspeed); -#endif // FN_SetClientMaxspeed_Post - -#ifdef FN_CreateFakeClient_Post -edict_t *FN_CreateFakeClient_Post(const char *netname); -#endif // FN_CreateFakeClient_Post - -#ifdef FN_RunPlayerMove_Post -void FN_RunPlayerMove_Post(edict_t *fakeclient, const float *viewangles, float forwardmove, float sidemove, float upmove, unsigned short buttons, byte impulse, byte msec); -#endif // FN_RunPlayerMove_Post - -#ifdef FN_NumberOfEntities_Post -int FN_NumberOfEntities_Post(void); -#endif // FN_NumberOfEntities_Post - -#ifdef FN_GetInfoKeyBuffer_Post -char *FN_GetInfoKeyBuffer_Post(edict_t *e); -#endif // FN_GetInfoKeyBuffer_Post - -#ifdef FN_InfoKeyValue_Post -char *FN_InfoKeyValue_Post(char *infobuffer, char *key); -#endif // FN_InfoKeyValue_Post - -#ifdef FN_SetKeyValue_Post -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value); -#endif // FN_SetKeyValue_Post - -#ifdef FN_SetClientKeyValue_Post -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value); -#endif // FN_SetClientKeyValue_Post - -#ifdef FN_IsMapValid_Post -int FN_IsMapValid_Post(char *filename); -#endif // FN_IsMapValid_Post - -#ifdef FN_StaticDecal_Post -void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex); -#endif // FN_StaticDecal_Post - -#ifdef FN_PrecacheGeneric_Post -int FN_PrecacheGeneric_Post(char *s); -#endif // FN_PrecacheGeneric_Post - -#ifdef FN_GetPlayerUserId_Post -int FN_GetPlayerUserId_Post(edict_t *e ); -#endif // FN_GetPlayerUserId_Post - -#ifdef FN_BuildSoundMsg_Post -void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed); -#endif // FN_BuildSoundMsg_Post - -#ifdef FN_IsDedicatedServer_Post -int FN_IsDedicatedServer_Post(void); -#endif // FN_IsDedicatedServer_Post - -#ifdef FN_CVarGetPointer_Post -cvar_t *FN_CVarGetPointer_Post(const char *szVarName); -#endif // FN_CVarGetPointer_Post - -#ifdef FN_GetPlayerWONId_Post -unsigned int FN_GetPlayerWONId_Post(edict_t *e); -#endif // FN_GetPlayerWONId_Post - -#ifdef FN_Info_RemoveKey_Post -void FN_Info_RemoveKey_Post( char *s, const char *key); -#endif // FN_Info_RemoveKey_Post - -#ifdef FN_GetPhysicsKeyValue_Post -const char *FN_GetPhysicsKeyValue_Post(const edict_t *pClient, const char *key); -#endif // FN_GetPhysicsKeyValue_Post - -#ifdef FN_SetPhysicsKeyValue_Post -void FN_SetPhysicsKeyValue_Post(const edict_t *pClient, const char *key, const char *value); -#endif // FN_SetPhysicsKeyValue_Post - -#ifdef FN_GetPhysicsInfoString_Post -const char *FN_GetPhysicsInfoString_Post( const edict_t *pClient); -#endif // FN_GetPhysicsInfoString_Post - -#ifdef FN_PrecacheEvent_Post -unsigned short FN_PrecacheEvent_Post(int type, const char *psz); -#endif // FN_PrecacheEvent_Post - -#ifdef FN_PlaybackEvent_Post -void FN_PlaybackEvent_Post(int flags, const edict_t *pInvoker, unsigned short eventindex, float delay, float *origin, float *angles, float fparam1, float fparam2, int iparam1, int iparam2, int bparam1, int bparam2); -#endif // FN_PlaybackEvent_Post - -#ifdef FN_SetFatPVS_Post -unsigned char *FN_SetFatPVS_Post(float *org); -#endif // FN_SetFatPVS_Post - -#ifdef FN_SetFatPAS_Post -unsigned char *FN_SetFatPAS_Post(float *org); -#endif // FN_SetFatPAS_Post - -#ifdef FN_CheckVisibility_Post -int FN_CheckVisibility_Post(const edict_t *entity, unsigned char *pset); -#endif // FN_CheckVisibility_Post - -#ifdef FN_DeltaSetField_Post -void FN_DeltaSetField_Post(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaSetField_Post - -#ifdef FN_DeltaUnsetField_Post -void FN_DeltaUnsetField_Post(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaUnsetField_Post - -#ifdef FN_DeltaAddEncoder_Post -void FN_DeltaAddEncoder_Post(char *name, void (*conditionalencode)( struct delta_s *pFields, const unsigned char *from, const unsigned char *to ) ); -#endif // FN_DeltaAddEncoder_Post - -#ifdef FN_GetCurrentPlayer_Post -int FN_GetCurrentPlayer_Post(void); -#endif // FN_GetCurrentPlayer_Post - -#ifdef FN_CanSkipPlayer_Post -int FN_CanSkipPlayer_Post(const edict_t *player); -#endif // FN_CanSkipPlayer_Post - -#ifdef FN_DeltaFindField_Post -int FN_DeltaFindField_Post(struct delta_s *pFields, const char *fieldname); -#endif // FN_DeltaFindField_Post - -#ifdef FN_DeltaSetFieldByIndex_Post -void FN_DeltaSetFieldByIndex_Post(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaSetFieldByIndex_Post - -#ifdef FN_DeltaUnsetFieldByIndex_Post -void FN_DeltaUnsetFieldByIndex_Post(struct delta_s *pFields, int fieldNumber); -#endif // FN_DeltaUnsetFieldByIndex_Post - -#ifdef FN_SetGroupMask_Post -void FN_SetGroupMask_Post(int mask, int op); -#endif // FN_SetGroupMask_Post - -#ifdef FN_engCreateInstancedBaseline_Post -int FN_engCreateInstancedBaseline_Post(int classname, struct entity_state_s *baseline); -#endif // FN_engCreateInstancedBaseline_Post - -#ifdef FN_Cvar_DirectSet_Post -void FN_Cvar_DirectSet_Post(struct cvar_s *var, char *value); -#endif // FN_Cvar_DirectSet_Post - -#ifdef FN_ForceUnmodified_Post -void FN_ForceUnmodified_Post(FORCE_TYPE type, float *mins, float *maxs, const char *filename); -#endif // FN_ForceUnmodified_Post - -#ifdef FN_GetPlayerStats_Post -void FN_GetPlayerStats_Post(const edict_t *pClient, int *ping, int *packet_loss); -#endif // FN_GetPlayerStats_Post - -#ifdef FN_AddServerCommand_Post -void FN_AddServerCommand_Post(char *cmd_name, void (*function)(void)); -#endif // FN_AddServerCommand_Post - -#ifdef FN_Voice_GetClientListening_Post -qboolean FN_Voice_GetClientListening_Post(int iReceiver, int iSender); -#endif // FN_Voice_GetClientListening_Post - -#ifdef FN_Voice_SetClientListening_Post -qboolean FN_Voice_SetClientListening_Post(int iReceiver, int iSender, qboolean bListen); -#endif // FN_Voice_SetClientListening_Post - -#ifdef FN_GetPlayerAuthId_Post -const char *FN_GetPlayerAuthId_Post(edict_t *e); -#endif // FN_GetPlayerAuthId - - - - -#ifdef FN_OnFreeEntPrivateData -void FN_OnFreeEntPrivateData(edict_t *pEnt); -#endif // FN_OnFreeEntPrivateData - -#ifdef FN_GameShutdown -void FN_GameShutdown(void); -#endif // FN_GameShutdown - -#ifdef FN_ShouldCollide -int FN_ShouldCollide(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_ShouldCollide - - - - - -#ifdef FN_OnFreeEntPrivateData_Post -void FN_OnFreeEntPrivateData_Post(edict_t *pEnt); -#endif // FN_OnFreeEntPrivateData_Post - -#ifdef FN_GameShutdown_Post -void FN_GameShutdown_Post(void); -#endif // FN_GameShutdown_Post - -#ifdef FN_ShouldCollide_Post -int FN_ShouldCollide_Post(edict_t *pentTouched, edict_t *pentOther); -#endif // FN_ShouldCollide_Post - -#endif // USE_METAMOD - - -#ifdef FN_AMXX_QUERY -void FN_AMXX_QUERY(void); -#endif // FN_AMXX_QUERY - -#ifdef FN_AMXX_ATTACH -void FN_AMXX_ATTACH(void); -#endif // FN_AMXX_ATTACH - -#ifdef FN_AMXX_DETACH -void FN_AMXX_DETACH(void); -#endif // FN_AMXX_DETACH - -#ifdef FN_AMXX_PLUGINSLOADED -void FN_AMXX_PLUGINSLOADED(void); -#endif // FN_AMXX_PLUGINSLOADED - -// *** Types *** -typedef void* (*PFN_REQ_FNPTR)(const char * /*name*/); - -// ***** Module funcs stuff ***** -enum ForwardExecType -{ - ET_IGNORE = 0, // Ignore return vaue - ET_STOP, // Stop on PLUGIN_HANDLED - ET_STOP2, // Stop on PLUGIN_HANDLED, continue on other values, return biggest return value - ET_CONTINUE, // Continue; return biggest return value -}; - -enum ForwardParam -{ - FP_DONE = -1, // specify this as the last argument - // only tells the function that there are no more arguments - FP_CELL, // normal cell - FP_FLOAT, // float; used as normal cell though - FP_STRING, // string - FP_STRINGEX, // string; will be updated to the last function's value - FP_ARRAY, // array; use the return value of prepareArray. -}; - - -typedef int (*PFN_ADD_NATIVES) (const AMX_NATIVE_INFO * /*list*/); -typedef char * (*PFN_BUILD_PATHNAME) (const char * /*format*/, ...); -typedef char * (*PFN_BUILD_PATHNAME_R) (char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...); -typedef cell * (*PFN_GET_AMXADDR) (AMX * /*amx*/, cell /*offset*/); -typedef void (*PFN_PRINT_SRVCONSOLE) (char * /*format*/, ...); -typedef const char * (*PFN_GET_MODNAME) (void); -typedef const char * (*PFN_GET_AMXSCRIPTNAME) (int /*id*/); -typedef AMX * (*PFN_GET_AMXSCRIPT) (int /*id*/); -typedef int (*PFN_FIND_AMXSCRIPT_BYAMX) (const AMX * /*amx*/); -typedef int (*PFN_FIND_AMXSCRIPT_BYNAME) (const char * /*name*/); -typedef int (*PFN_SET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */); -typedef char * (*PFN_GET_AMXSTRING) (AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/); -typedef int (*PFN_GET_AMXSTRINGLEN) (const cell *ptr); -typedef char * (*PFN_FORMAT_AMXSTRING) (AMX * /*amx*/, cell * /*params*/, int /*startParam*/, int * /*pLen*/); -typedef void (*PFN_COPY_AMXMEMORY) (cell * /*dest*/, const cell * /*src*/, int /*len*/); -typedef void (*PFN_LOG) (const char * /*fmt*/, ...); -typedef void (*PFN_LOG_ERROR) (AMX * /*amx*/, int /*err*/, const char * /*fmt*/, ...); -typedef int (*PFN_RAISE_AMXERROR) (AMX * /*amx*/, int /*error*/); -typedef int (*PFN_REGISTER_FORWARD) (const char * /*funcname*/, ForwardExecType /*exectype*/, ... /*paramtypes terminated by PF_DONE*/); -typedef int (*PFN_EXECUTE_FORWARD) (int /*id*/, ... /*params*/); -typedef cell (*PFN_PREPARE_CELLARRAY) (cell * /*ptr*/, unsigned int /*size*/); -typedef cell (*PFN_PREPARE_CHARARRAY) (char * /*ptr*/, unsigned int /*size*/); -typedef cell (*PFN_PREPARE_CELLARRAY_A) (cell * /*ptr*/, unsigned int /*size*/, bool /*copyBack*/); -typedef cell (*PFN_PREPARE_CHARARRAY_A) (char * /*ptr*/, unsigned int /*size*/, bool /*copyBack*/); -typedef int (*PFN_IS_PLAYER_VALID) (int /*id*/); -typedef const char * (*PFN_GET_PLAYER_NAME) (int /*id*/); -typedef const char * (*PFN_GET_PLAYER_IP) (int /*id*/); -typedef int (*PFN_IS_PLAYER_INGAME) (int /*id*/); -typedef int (*PFN_IS_PLAYER_BOT) (int /*id*/); -typedef int (*PFN_IS_PLAYER_AUTHORIZED) (int /*id*/); -typedef float (*PFN_GET_PLAYER_TIME) (int /*id*/); -typedef float (*PFN_GET_PLAYER_PLAYTIME) (int /*id*/); -typedef int (*PFN_GETPLAYERFLAGS) (int /* id*/); -typedef int (*PFN_GET_PLAYER_CURWEAPON) (int /*id*/); -typedef const char * (*PFN_GET_PLAYER_TEAM) (int /*id*/); -typedef int (*PFN_GET_PLAYER_TEAMID) (int /*id*/); -typedef int (*PFN_GET_PLAYER_DEATHS) (int /*id*/); -typedef int (*PFN_GET_PLAYER_MENU) (int /*id*/); -typedef int (*PFN_GET_PLAYER_KEYS) (int /*id*/); -typedef int (*PFN_IS_PLAYER_ALIVE) (int /*id*/); -typedef int (*PFN_GET_PLAYER_FRAGS) (int /*id*/); -typedef int (*PFN_IS_PLAYER_CONNECTING) (int /*id*/); -typedef int (*PFN_IS_PLAYER_HLTV) (int /*id*/); -typedef int (*PFN_GET_PLAYER_ARMOR) (int /*id*/); -typedef int (*PFN_GET_PLAYER_HEALTH) (int /*id*/); -#ifdef USE_METAMOD -typedef edict_t * (*PFN_GET_PLAYER_EDICT) (int /*id*/); -#else -typedef void * (*PFN_GET_PLAYER_EDICT) (int /*id*/); -#endif - -#ifdef MEMORY_TEST -typedef void * (*PFN_ALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, - const unsigned int /*type*/, const size_t /*size*/); -typedef void * (*PFN_REALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, - const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ ); -typedef void (*PFN_DEALLOCATOR) (const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/, - const unsigned int /*type*/, const void* /*addr*/ ); -#endif -typedef int (*PFN_AMX_EXEC) (AMX* /*amx*/, cell* /*return val*/, int /*index*/); -typedef int (*PFN_AMX_EXECV) (AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/); -typedef int (*PFN_AMX_ALLOT) (AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/); -typedef int (*PFN_AMX_FINDPUBLIC) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); -typedef int (*PFN_AMX_FINDNATIVE) (AMX* /*amx*/, char* /*func name*/, int* /*index*/); -typedef int (*PFN_LOAD_AMXSCRIPT) (AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */); -typedef int (*PFN_UNLOAD_AMXSCRIPT) (AMX* /*amx*/,void** /*code*/); -typedef cell (*PFN_REAL_TO_CELL) (REAL /*x*/); -typedef REAL (*PFN_CELL_TO_REAL) (cell /*x*/); -typedef int (*PFN_REGISTER_SPFORWARD) (AMX * /*amx*/, int /*func*/, ... /*params*/); -typedef int (*PFN_REGISTER_SPFORWARD_BYNAME) (AMX * /*amx*/, const char * /*funcName*/, ... /*params*/); -typedef void (*PFN_UNREGISTER_SPFORWARD) (int /*id*/); -typedef void (*PFN_MERGEDEFINITION_FILE) (const char * /*filename*/); -typedef const char * (*PFN_FORMAT) (const char * /*fmt*/, ... /*params*/); -typedef void (*PFN_REGISTERFUNCTION) (void * /*pfn*/, const char * /*desc*/); -typedef int (*PFN_AMX_PUSH) (AMX * /*amx*/, cell /*value*/); - -extern PFN_ADD_NATIVES g_fn_AddNatives; -extern PFN_BUILD_PATHNAME g_fn_BuildPathname; -extern PFN_BUILD_PATHNAME_R g_fn_BuildPathnameR; -extern PFN_GET_AMXADDR g_fn_GetAmxAddr; -extern PFN_PRINT_SRVCONSOLE g_fn_PrintSrvConsole; -extern PFN_GET_MODNAME g_fn_GetModname; -extern PFN_GET_AMXSCRIPTNAME g_fn_GetAmxScriptName; -extern PFN_GET_AMXSCRIPT g_fn_GetAmxScript; -extern PFN_FIND_AMXSCRIPT_BYAMX g_fn_FindAmxScriptByAmx; -extern PFN_FIND_AMXSCRIPT_BYNAME g_fn_FindAmxScriptByName; -extern PFN_SET_AMXSTRING g_fn_SetAmxString; -extern PFN_GET_AMXSTRING g_fn_GetAmxString; -extern PFN_GET_AMXSTRINGLEN g_fn_GetAmxStringLen; -extern PFN_FORMAT_AMXSTRING g_fn_FormatAmxString; -extern PFN_COPY_AMXMEMORY g_fn_CopyAmxMemory; -extern PFN_LOG g_fn_Log; -extern PFN_LOG_ERROR g_fn_LogErrorFunc; -extern PFN_RAISE_AMXERROR g_fn_RaiseAmxError; -extern PFN_REGISTER_FORWARD g_fn_RegisterForward; -extern PFN_EXECUTE_FORWARD g_fn_ExecuteForward; -extern PFN_PREPARE_CELLARRAY g_fn_PrepareCellArray; -extern PFN_PREPARE_CHARARRAY g_fn_PrepareCharArray; -extern PFN_PREPARE_CELLARRAY_A g_fn_PrepareCellArrayA; -extern PFN_PREPARE_CHARARRAY_A g_fn_PrepareCharArrayA; -extern PFN_IS_PLAYER_VALID g_fn_IsPlayerValid; -extern PFN_GET_PLAYER_NAME g_fn_GetPlayerName; -extern PFN_GET_PLAYER_IP g_fn_GetPlayerIP; -extern PFN_IS_PLAYER_INGAME g_fn_IsPlayerIngame; -extern PFN_IS_PLAYER_BOT g_fn_IsPlayerBot; -extern PFN_IS_PLAYER_AUTHORIZED g_fn_IsPlayerAuthorized; -extern PFN_GET_PLAYER_TIME g_fn_GetPlayerTime; -extern PFN_GET_PLAYER_PLAYTIME g_fn_GetPlayerPlayTime; -extern PFN_GET_PLAYER_CURWEAPON g_fn_GetPlayerCurweapon; -extern PFN_GET_PLAYER_TEAMID g_fn_GetPlayerTeamID; -extern PFN_GET_PLAYER_DEATHS g_fn_GetPlayerDeaths; -extern PFN_GET_PLAYER_MENU g_fn_GetPlayerMenu; -extern PFN_GET_PLAYER_KEYS g_fn_GetPlayerKeys; -extern PFN_IS_PLAYER_ALIVE g_fn_IsPlayerAlive; -extern PFN_GET_PLAYER_FRAGS g_fn_GetPlayerFrags; -extern PFN_IS_PLAYER_CONNECTING g_fn_IsPlayerConnecting; -extern PFN_IS_PLAYER_HLTV g_fn_IsPlayerHLTV; -extern PFN_GET_PLAYER_ARMOR g_fn_GetPlayerArmor; -extern PFN_GET_PLAYER_HEALTH g_fn_GetPlayerHealth; -extern PFN_AMX_EXEC g_fn_AmxExec; -extern PFN_AMX_ALLOT g_fn_AmxAllot; -extern PFN_AMX_FINDPUBLIC g_fn_AmxFindPublic; -extern PFN_LOAD_AMXSCRIPT g_fn_LoadAmxScript; -extern PFN_UNLOAD_AMXSCRIPT g_fn_UnloadAmxScript; -extern PFN_REAL_TO_CELL g_fn_RealToCell; -extern PFN_CELL_TO_REAL g_fn_CellToReal; -extern PFN_REGISTER_SPFORWARD g_fn_RegisterSPForward; -extern PFN_REGISTER_SPFORWARD_BYNAME g_fn_RegisterSPForwardByName; -extern PFN_UNREGISTER_SPFORWARD g_fn_UnregisterSPForward; -extern PFN_MERGEDEFINITION_FILE g_fn_MergeDefinition_File; -extern PFN_AMX_FINDNATIVE g_fn_AmxFindNative; -extern PFN_GETPLAYERFLAGS g_fn_GetPlayerFlags; -extern PFN_GET_PLAYER_EDICT g_fn_GetPlayerEdict; -extern PFN_FORMAT g_fn_Format; -extern PFN_GET_PLAYER_TEAM g_fn_GetPlayerTeam; -extern PFN_REGISTERFUNCTION g_fn_RegisterFunction; -extern PFN_REQ_FNPTR g_fn_RequestFunction; -extern PFN_AMX_PUSH g_fn_AmxPush; - -#ifdef MAY_NEVER_BE_DEFINED -// Function prototypes for intellisense and similar systems -// They understand #if 0 so we use #ifdef MAY_NEVER_BE_DEFINED -int MF_AddNatives (const AMX_NATIVE_INFO *list) { } -char * MF_BuildPathname (const char * format, ...) { } -char * MF_BuildPathnameR (char *buffer, size_t maxlen, const char *fmt, ...) { } -cell * MF_GetAmxAddr (AMX * amx, cell offset) { } -void MF_PrintSrvConsole (char * format, ...) { } -const char * MF_GetModname (void) { } -const char * MF_GetScriptName (int id) { } -AMX * MF_GetScriptAmx (int id) { } -int MF_FindScriptByAmx (const AMX * amx) { } -int MF_FindScriptByAmx (const char * name) { } -int MF_SetAmxString (AMX * amx, cell amx_addr, const char * source , int max ) { } -char * MF_GetAmxString (AMX * amx, cell amx_addr, int bufferId, int * pLen) { } -int MF_GetAmxStringLen (const cell *ptr) { } -char * MF_FormatAmxString (AMX * amx, cell * params, int startParam, int * pLen) { } -void MF_CopyAmxMemory (cell * dest, const cell * src, int len) { } -void MF_Log (const char * fmt, ...) { } -void MF_LogError (AMX * amx, int err, const char *fmt, ...) { } -int MF_RaiseAmxError (AMX * amx, int error) { } -int MF_RegisterForward (const char * funcname, ForwardExecType exectype, ...) { } -int MF_ExecuteForward (int id, ...) { } -cell MF_PrepareCellArray (cell * ptr, unsigned int size) { } -cell MF_PrepareCharArray (char * ptr, unsigned int size) { } -cell MF_PrepareCellArrayA (cell * ptr, unsigned int size, bool copyBack) { } -cell MF_PrepareCharArrayA (char * ptr, unsigned int size, bool copyBack) { } -int MF_IsPlayerValid (int id) { } -const char * MF_GetPlayerName (int id) { } -const char * MF_GetPlayerIP (int id) { } -int MF_IsPlayerIngame (int id) { } -int MF_IsPlayerBot (int id) { } -int MF_IsPlayerAuthorized (int id) { } -float MF_GetPlayerTime (int id) { } -float MF_GetPlayerPlayTime (int id) { } -int MF_GetPlayerCurweapon (int id) { } -const char * MF_GetPlayerTeam (int id) { } -int MF_GetPlayerTeamID (int id) { } -int MF_GetPlayerDeaths (int id) { } -int MF_GetPlayerMenu (int id) { } -int MF_GetPlayerKeys (int id) { } -int MF_IsPlayerAlive (int id) { } -int MF_GetPlayerFrags (int id) { } -int MF_IsPlayerConnecting (int id) { } -int MF_IsPlayerHLTV (int id) { } -int MF_GetPlayerArmor (int id) { } -int MF_GetPlayerHealth (int id) { } -REAL amx_ctof (cell x) { } -cell amx_ftoc (float x) { } -int MF_RegisterSPForwardByName (AMX * amx, const char *str, ...) { } -int MF_RegisterSPForward (AMX * amx, int func, ...) { } -void MF_UnregisterSPForward (int id) { } -int MF_GetPlayerFlags (int id) { } -edict_t* MF_GetPlayerEdict (int id) { } -const char * MF_Format (const char *fmt, ...) { } -void MF_RegisterFunction (void *pfn, const char *description) { } -void * MF_RequestFunction (const char *description) { } -int MF_AmxPush (AMX *amx, cell *params) { } -int MF_AmxExec (AMX *amx, cell *retval, int idx) { } -#endif // MAY_NEVER_BE_DEFINED - -#define MF_AddNatives g_fn_AddNatives -#define MF_BuildPathname g_fn_BuildPathname -#define MF_BuildPathnameR g_fn_BuildPathnameR -#define MF_FormatAmxString g_fn_FormatAmxString -#define MF_GetAmxAddr g_fn_GetAmxAddr -#define MF_PrintSrvConsole g_fn_PrintSrvConsole -#define MF_GetModname g_fn_GetModname -#define MF_GetScriptName g_fn_GetAmxScriptName -#define MF_GetScriptAmx g_fn_GetAmxScript -#define MF_FindScriptByAmx g_fn_FindAmxScriptByAmx -#define MF_FindScriptByName g_fn_FindAmxScriptByName -#define MF_SetAmxString g_fn_SetAmxString -#define MF_GetAmxString g_fn_GetAmxString -#define MF_GetAmxStringLen g_fn_GetAmxStringLen -#define MF_CopyAmxMemory g_fn_CopyAmxMemory -void MF_Log(const char *fmt, ...); -void MF_LogError(AMX *amx, int err, const char *fmt, ...); -#define MF_RaiseAmxError g_fn_RaiseAmxError -#define MF_RegisterForward g_fn_RegisterForward -#define MF_ExecuteForward g_fn_ExecuteForward -#define MF_PrepareCellArray g_fn_PrepareCellArray -#define MF_PrepareCharArray g_fn_PrepareCharArray -#define MF_PrepareCellArrayA g_fn_PrepareCellArrayA -#define MF_PrepareCharArrayA g_fn_PrepareCharArrayA -#define MF_IsPlayerValid g_fn_IsPlayerValid -#define MF_GetPlayerName g_fn_GetPlayerName -#define MF_GetPlayerIP g_fn_GetPlayerIP -#define MF_IsPlayerIngame g_fn_IsPlayerIngame -#define MF_IsPlayerBot g_fn_IsPlayerBot -#define MF_IsPlayerAuthorized g_fn_IsPlayerAuthorized -#define MF_GetPlayerTime g_fn_GetPlayerTime -#define MF_GetPlayerPlayTime g_fn_GetPlayerPlayTime -#define MF_GetPlayerCurweapon g_fn_GetPlayerCurweapon -#define MF_GetPlayerTeam g_fn_GetPlayerTeam -#define MF_GetPlayerTeamID g_fn_GetPlayerTeamID -#define MF_GetPlayerDeaths g_fn_GetPlayerDeaths -#define MF_GetPlayerMenu g_fn_GetPlayerMenu -#define MF_GetPlayerKeys g_fn_GetPlayerKeys -#define MF_IsPlayerAlive g_fn_IsPlayerAlive -#define MF_GetPlayerFrags g_fn_GetPlayerFrags -#define MF_IsPlayerConnecting g_fn_IsPlayerConnecting -#define MF_IsPlayerHLTV g_fn_IsPlayerHLTV -#define MF_GetPlayerArmor g_fn_GetPlayerArmor -#define MF_GetPlayerHealth g_fn_GetPlayerHealth -#define MF_AmxExec g_fn_AmxExec -#define MF_AmxExecv g_fn_AmxExecv -#define MF_AmxFindPublic g_fn_AmxFindPublic -#define MF_AmxAllot g_fn_AmxAllot -#define MF_AmxFindNative g_fn_AmxFindNative -#define MF_LoadAmxScript g_fn_LoadAmxScript -#define MF_UnloadAmxScript g_fn_UnloadAmxScript -#define MF_MergeDefinitionFile g_fn_MergeDefinition_File -#define amx_ctof g_fn_CellToReal -#define amx_ftoc g_fn_RealToCell -#define MF_RegisterSPForwardByName g_fn_RegisterSPForwardByName -#define MF_RegisterSPForward g_fn_RegisterSPForward -#define MF_UnregisterSPForward g_fn_UnregisterSPForward -#define MF_GetPlayerFlags g_fn_GetPlayerFlags -#define MF_GetPlayerEdict g_fn_GetPlayerEdict -#define MF_Format g_fn_Format -#define MF_RegisterFunction g_fn_RegisterFunction -#define MF_RequestFunction g_fn_RequestFunction; -#define MF_AmxPush g_fn_AmxPush - -#ifdef MEMORY_TEST -/*** Memory ***/ -void *operator new(size_t reportedSize); -void *operator new[](size_t reportedSize); -void *operator new(size_t reportedSize, const char *sourceFile, int sourceLine); -void *operator new[](size_t reportedSize, const char *sourceFile, int sourceLine); -void operator delete(void *reportedAddress); -void operator delete[](void *reportedAddress); - -// Allocation types -extern const unsigned int m_alloc_unknown; -extern const unsigned int m_alloc_new; -extern const unsigned int m_alloc_new_array; -extern const unsigned int m_alloc_malloc; -extern const unsigned int m_alloc_calloc; -extern const unsigned int m_alloc_realloc; -extern const unsigned int m_alloc_delete; -extern const unsigned int m_alloc_delete_array; -extern const unsigned int m_alloc_free; - -// To be called before new / delete -void Mem_SetOwner(const char *filename, int line, const char *function); -// Actual allocator -void * Mem_Allocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int allocationType, const size_t reportedSize); -void * Mem_Reallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int reallocationType, const size_t reportedSize, void *reportedAddress); -void Mem_Deallocator(const char *sourceFile, const unsigned int sourceLine, const char *sourceFunc, - const unsigned int deallocationType, void *reportedAddress); - -// memory macros -#ifndef __FUNCTION__ -#define __FUNCTION__ "??" -#endif - -// call Mem_SetOwner, followed by the actual new operator -#define new (Mem_SetOwner(__FILE__,__LINE__,__FUNCTION__),false) ? NULL : new -// call Mem_SetOwner, followed by the actual delete operator -#define delete (Mem_SetOwner(__FILE__,__LINE__,__FUNCTION__),false) ? Mem_SetOwner("",0,"") : delete -#define malloc(sz) Mem_Allocator (__FILE__,__LINE__,__FUNCTION__,m_alloc_malloc,sz) -#define calloc(sz) Mem_Allocator (__FILE__,__LINE__,__FUNCTION__,m_alloc_calloc,sz) -#define realloc(ptr,sz) Mem_Reallocator(__FILE__,__LINE__,__FUNCTION__,m_alloc_realloc,sz,ptr) -#define free(ptr) Mem_Deallocator(__FILE__,__LINE__,__FUNCTION__,m_alloc_free,ptr) - -#endif //MEMORY_TEST - -#endif // #ifndef __AMXXMODULE_H__ diff --git a/dlls/arrayx/array.cpp b/dlls/arrayx/array.cpp deleted file mode 100644 index 0547fb42..00000000 --- a/dlls/arrayx/array.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include "osdefs.h" -#include -#include -#include "amxxmodule.h" - -#ifdef __WIN32__ -#define JU_WIN -#endif - -#define JUDYERROR_NOTEST 1 -#include - -#include "element.h" - -#include "CKeytable.h" -#include "CArray.h" -#include "CHashtable.h" - -void OnAmxxAttach() -{ - MF_AddNatives(array_exports); - MF_AddNatives(keytable_exports); - MF_AddNatives(hashtable_exports); -} - -void OnAmxxDetach() -{ - Delete_MasterArray(); - Delete_MasterKeytable(); - Delete_MasterHashtable(); -} diff --git a/dlls/arrayx/element.h b/dlls/arrayx/element.h deleted file mode 100644 index a4e1a777..00000000 --- a/dlls/arrayx/element.h +++ /dev/null @@ -1,210 +0,0 @@ -/**************************************************************************** -* element.h -* This class acts as sort of an interface for storing values in the judy -* arrays. By storing an 'element' with error handling and type checking, -* crashes and errors are less likely. In addition, by storing the type of -* data it is also possible to save or load from a file. -****************************************************************************/ - -#if !defined(_CLASSDEF_ELEMENT_) -#define _CLASSDEF_ELEMENT_ - -const Vector* null_vec = new Vector(); - -enum { - elem_type_none, //only used on init. - elem_type_int, - elem_type_real, - elem_type_char, - elem_type_vector -}; - -const char* elem_types[] = -{ - "-NO VALUE-", - "INTEGER", - "FLOAT", - "STRING", - "VECTOR" -}; - -class element -{ -public: - void set_int(int Value); - void set_flo(REAL Value); - void set_str(char* Value); - void set_vec(Vector* Value); - - element (int Value) { set_int(Value); } - element (REAL Value) { set_flo(Value); } - element (char* Value) { set_str(Value); } - element (Vector* Value) { set_vec(Value); } - element(void); - - REAL get_flo(int &error); - int get_int(int &error); - const char* get_str(int &error); - const Vector* get_vec(int &error); - - int get_type(void); - Pvoid_t get_ptr(void); - - virtual ~element(); - - void delete_element(void) { clear(); element::~element(); } - - char* get_elem_as_string(void); - - //This is handy because it takes all the data needed and issues the error. - void issue_type_error(AMX *amx, int Keytable, char* Index); - void issue_type_error(AMX *amx, int Array, int Index); -private: - Pvoid_t element_ptr; //Contains a pointer to whatever data is actually stored. - void clear(void); - char element_type; -}; - -Pvoid_t element::get_ptr(void) -{ - return element_ptr; -} - -void element::issue_type_error(AMX *amx, int Keytable, char* Index) -{ - MF_LogError(amx, AMX_ERR_NATIVE, - "Function attempted to read NON-%s value at key \"%s\" in keytable %d, actual value: %s", - elem_types[element_type], Index, Keytable, get_elem_as_string()); -} - -void element::issue_type_error(AMX *amx, int Array, int Index) -{ - MF_LogError(amx, AMX_ERR_NATIVE, - "Function attempted to read NON-%s value at index %d in array %d, actual value: %s", - elem_types[element_type], Index, Array, get_elem_as_string()); -} - -char* element::get_elem_as_string(void) -{ - char* value = ""; - Vector vector_val; - int error; //Is not checked. - switch (element_type) - { - case elem_type_int: - sprintf(value, "%d", get_int(error)); - break; - case elem_type_real: - sprintf(value, "%f", get_int(error)); - break; - case elem_type_char: - sprintf(value, "\"%s\"", get_str(error)); - break; - case elem_type_vector: - vector_val = *get_vec(error); - sprintf(value, "{%f,%f,%f}", vector_val.x, vector_val.y, vector_val.z); - break; - default: - sprintf(value, "-NO VALUE-"); - } - return value; -} - -REAL element::get_flo(int &error) -{ - if (element_type == elem_type_real) - return *reinterpret_cast(element_ptr); - error = 1; - return 0; -} - -int element::get_int(int &error) -{ - if (element_type == elem_type_int) - return reinterpret_cast(element_ptr); - error = 1; - return 0; -} - -const char* element::get_str(int &error) -{ - if (element_type == elem_type_char) - return reinterpret_cast(element_ptr); - error = 1; - return ""; -} - -const Vector* element::get_vec(int &error) -{ - if (element_type == elem_type_vector) - return reinterpret_cast(element_ptr); - error = 1; - return null_vec; -} - -int element::get_type(void) -{ - return element_type; -} - -element::element() { } -void element::set_int(int Value) -{ - clear(); - element_type = elem_type_int; - element_ptr = reinterpret_cast(Value); - //Don't need to make it a pointer to an int here. -} -void element::set_flo(REAL Value) -{ - clear(); - element_type = elem_type_real; - element_ptr = new REAL(Value); -} -void element::set_str(char* Value) -{ - clear(); - element_type = elem_type_char; - char *string_val = new char[strlen(Value)+1]; - strcpy(string_val,Value); - element_ptr = reinterpret_cast(string_val); -} -void element::set_vec(Vector* Value) -{ - clear(); - element_type = elem_type_vector; - element_ptr = reinterpret_cast(Value); -} - -element::~element() -{ - //do nothing here or else data WILL be lost. -} - -void element::clear() -{ - //This function intelligently creates a pointer x, - //which will be of correct type and then deletes it. - - if (element_type == elem_type_real) - { - REAL *real_val = reinterpret_cast(element_ptr); - delete real_val; - //This is actually a pointer to the float/double. - } - else if (element_type == elem_type_char) - { - char *char_val = reinterpret_cast(element_ptr); - delete char_val; - //Again, cast a pointer. - } - else if (element_type == elem_type_vector) - { - Vector *vector_val = reinterpret_cast(element_ptr); - delete vector_val; - //And again. - } - element_ptr = NULL; //Null the address as well. (Used for ints too.) -} - -#endif // !defined(_CLASSDEF_ELEMENT_) diff --git a/dlls/arrayx/moduleconfig.h b/dlls/arrayx/moduleconfig.h deleted file mode 100644 index 5b49ee1b..00000000 --- a/dlls/arrayx/moduleconfig.h +++ /dev/null @@ -1,463 +0,0 @@ -// Configuration - -#ifndef __MODULECONFIG_H__ -#define __MODULECONFIG_H__ - -// Module info -#define MODULE_NAME "Array" -#define MODULE_VERSION "1.65" -#define MODULE_AUTHOR "Rukia and Anpheus" -#define MODULE_URL "www.alphapoint.org/rcr" -#define MODULE_LOGTAG "ARRAY" -// 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 - -// - 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 dettach -#define FN_AMXX_DETTACH OnAmxxDettach -// All plugins loaded -// Do forward functions init here (MF_RegisterForward) -// #define FN_AMXX_PLUGINSLOADED OnPluginsLoaded - -/**** 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_DETTACH OnMetaDettach - -// (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__ - diff --git a/dlls/arrayx/osdefs.h b/dlls/arrayx/osdefs.h deleted file mode 100644 index 60d61e68..00000000 --- a/dlls/arrayx/osdefs.h +++ /dev/null @@ -1,60 +0,0 @@ -/* __MSDOS__ set when compiling for DOS (not Windows) - * _Windows set when compiling for any version of Microsoft Windows - * __WIN32__ set when compiling for Windows95 or WindowsNT (32 bit mode) - * __32BIT__ set when compiling in 32-bit "flat" mode (DOS or Windows) - * - * Copyright 1998-2002, ITB CompuPhase, The Netherlands. - * info@compuphase.com. - */ - -#ifndef _OSDEFS_H -#define _OSDEFS_H - -/* Every compiler uses different "default" macros to indicate the mode - * it is in. Throughout the source, we use the Borland C++ macros, so - * the macros of Watcom C/C++ and Microsoft Visual C/C++ are mapped to - * those of Borland C++. - */ -#if defined(__WATCOMC__) -# if defined(__WINDOWS__) || defined(__NT__) -# define _Windows 1 -# endif -# ifdef __386__ -# define __32BIT__ 1 -# endif -# if defined(_Windows) && defined(__32BIT__) -# define __WIN32__ 1 -# endif -#elif defined(_MSC_VER) -# if defined(_WINDOWS) || defined(_WIN32) -# define _Windows 1 -# endif -# ifdef _WIN32 -# define __WIN32__ 1 -# define __32BIT__ 1 -# endif -#endif - -#if defined __linux__ - #include -#endif - -/* Linux NOW has these */ -#if !defined BIG_ENDIAN - #define BIG_ENDIAN 4321 -#endif -#if !defined LITTLE_ENDIAN - #define LITTLE_ENDIAN 1234 -#endif - -/* educated guess, BYTE_ORDER is undefined, i386 is common => little endian */ -#if !defined BYTE_ORDER - #if defined UCLINUX - #define BYTE_ORDER BIG_ENDIAN - #else - #define BYTE_ORDER LITTLE_ENDIAN - #endif -#endif - -#endif /* _OSDEFS_H */ -