Manifest updates and compilation fixes for css, tf2, dods, hl2dm (#2268)

* Initial attempt at compiling against tf2_sdk2013

* compilation fix for css

* Switch to AMTL platform arch defines

* Add CBasePlayer forward decl for dods and hl2dm as well

* Update hl2sdk-manifests

* Add dods to CI

* Actually include am-platform.h

---------

Co-authored-by: Kenzzer <kenzzer@users.noreply.github.com>
Co-authored-by: Nicholas Hastings <nshastings@gmail.com>
This commit is contained in:
Benoist 2025-02-20 01:51:38 +01:00 committed by GitHub
parent 3b9c74ce96
commit 2382453d50
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
27 changed files with 71 additions and 84 deletions

View File

@ -29,7 +29,7 @@ jobs:
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
name: ${{ matrix.os_short }}-${{ matrix.compiler_cc }} name: ${{ matrix.os_short }}-${{ matrix.compiler_cc }}
env: env:
SDKS: '["episode1","css","tf2","l4d2","csgo"]' SDKS: '["episode1","css","tf2","l4d2","csgo","dods"]'
ARCH: x86,x86_64 ARCH: x86,x86_64
DEPENDENCIES_FOLDER: dependencies DEPENDENCIES_FOLDER: dependencies
DEPENDENCIES_ROOT: ${{ github.workspace }}/dependencies DEPENDENCIES_ROOT: ${{ github.workspace }}/dependencies

View File

@ -245,6 +245,8 @@ class SMConfig(object):
'-Wno-unused', '-Wno-unused',
'-Wno-switch', '-Wno-switch',
'-Wno-array-bounds', '-Wno-array-bounds',
'-Wno-unknown-pragmas',
'-Wno-dangling-else',
'-fvisibility=hidden', '-fvisibility=hidden',
] ]
if cxx.target.arch in ['x86', 'x86_64']: if cxx.target.arch in ['x86', 'x86_64']:

View File

@ -234,9 +234,9 @@ void CHalfLife2::InitLogicalEntData()
return; return;
} }
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
g_EntList = *reinterpret_cast<void **>(addr + offset); g_EntList = *reinterpret_cast<void **>(addr + offset);
#elif defined PLATFORM_X64 #elif defined KE_ARCH_X64
int32_t varOffset = *reinterpret_cast<int32_t *>(addr + offset); int32_t varOffset = *reinterpret_cast<int32_t *>(addr + offset);
g_EntList = reinterpret_cast<void *>(addr + offset + sizeof(int32_t) + varOffset); g_EntList = reinterpret_cast<void *>(addr + offset + sizeof(int32_t) + varOffset);
#endif #endif

View File

@ -79,9 +79,9 @@ static const char *g_pParseEngine = NULL;
#define PSTATE_GAMEDEFS_ADDRESSES_ADDRESS 14 #define PSTATE_GAMEDEFS_ADDRESSES_ADDRESS 14
#define PSTATE_GAMEDEFS_ADDRESSES_ADDRESS_READ 15 #define PSTATE_GAMEDEFS_ADDRESSES_ADDRESS_READ 15
#if defined PLATFORM_X86 #if defined KE_ARCH_X86
#define PLATFORM_ARCH_SUFFIX "" #define PLATFORM_ARCH_SUFFIX ""
#elif defined PLATFORM_X64 #elif defined KE_ARCH_X64
#define PLATFORM_ARCH_SUFFIX "64" #define PLATFORM_ARCH_SUFFIX "64"
#endif #endif

View File

@ -123,7 +123,7 @@ void *MemoryUtils::ResolveSymbol(void *handle, const char *symbol)
#elif defined PLATFORM_LINUX #elif defined PLATFORM_LINUX
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
typedef Elf32_Ehdr ElfHeader; typedef Elf32_Ehdr ElfHeader;
typedef Elf32_Shdr ElfSHeader; typedef Elf32_Shdr ElfSHeader;
typedef Elf32_Sym ElfSymbol; typedef Elf32_Sym ElfSymbol;
@ -272,7 +272,7 @@ void *MemoryUtils::ResolveSymbol(void *handle, const char *symbol)
#elif defined PLATFORM_APPLE #elif defined PLATFORM_APPLE
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
typedef struct mach_header MachHeader; typedef struct mach_header MachHeader;
typedef struct segment_command MachSegment; typedef struct segment_command MachSegment;
typedef struct nlist MachSymbol; typedef struct nlist MachSymbol;
@ -451,7 +451,7 @@ const DynLibInfo *MemoryUtils::GetLibraryInfo(const void *libPtr)
#ifdef PLATFORM_WINDOWS #ifdef PLATFORM_WINDOWS
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
const WORD PE_FILE_MACHINE = IMAGE_FILE_MACHINE_I386; const WORD PE_FILE_MACHINE = IMAGE_FILE_MACHINE_I386;
const WORD PE_NT_OPTIONAL_HDR_MAGIC = IMAGE_NT_OPTIONAL_HDR32_MAGIC; const WORD PE_NT_OPTIONAL_HDR_MAGIC = IMAGE_NT_OPTIONAL_HDR32_MAGIC;
#else #else
@ -501,7 +501,7 @@ const DynLibInfo *MemoryUtils::GetLibraryInfo(const void *libPtr)
#elif defined PLATFORM_LINUX #elif defined PLATFORM_LINUX
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
typedef Elf32_Ehdr ElfHeader; typedef Elf32_Ehdr ElfHeader;
typedef Elf32_Phdr ElfPHeader; typedef Elf32_Phdr ElfPHeader;
const unsigned char ELF_CLASS = ELFCLASS32; const unsigned char ELF_CLASS = ELFCLASS32;
@ -586,7 +586,7 @@ const DynLibInfo *MemoryUtils::GetLibraryInfo(const void *libPtr)
#elif defined PLATFORM_APPLE #elif defined PLATFORM_APPLE
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
typedef struct mach_header MachHeader; typedef struct mach_header MachHeader;
typedef struct segment_command MachSegment; typedef struct segment_command MachSegment;
const uint32_t MACH_MAGIC = MH_MAGIC; const uint32_t MACH_MAGIC = MH_MAGIC;

View File

@ -44,7 +44,7 @@ PseudoAddressManager::PseudoAddressManager() : m_NumEntries(0)
// lower 26 bits. The table consists of memory allocation base addresses. // lower 26 bits. The table consists of memory allocation base addresses.
void *PseudoAddressManager::FromPseudoAddress(uint32_t paddr) void *PseudoAddressManager::FromPseudoAddress(uint32_t paddr)
{ {
#ifdef PLATFORM_X64 #ifdef KE_ARCH_X64
uint8_t index = paddr >> PSEUDO_OFFSET_BITS; uint8_t index = paddr >> PSEUDO_OFFSET_BITS;
uint32_t offset = paddr & ((1 << PSEUDO_OFFSET_BITS) - 1); uint32_t offset = paddr & ((1 << PSEUDO_OFFSET_BITS) - 1);
@ -59,7 +59,7 @@ void *PseudoAddressManager::FromPseudoAddress(uint32_t paddr)
uint32_t PseudoAddressManager::ToPseudoAddress(void *addr) uint32_t PseudoAddressManager::ToPseudoAddress(void *addr)
{ {
#ifdef PLATFORM_X64 #ifdef KE_ARCH_X64
uint8_t index = 0; uint8_t index = 0;
uint32_t offset = 0; uint32_t offset = 0;
bool hasEntry = false; bool hasEntry = false;
@ -108,13 +108,13 @@ void *PseudoAddressManager::GetAllocationBase(void *ptr)
#elif defined PLATFORM_APPLE #elif defined PLATFORM_APPLE
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
typedef vm_region_info_t mach_vm_region_info_t; typedef vm_region_info_t mach_vm_region_info_t;
typedef vm_region_basic_info_data_t mach_vm_region_basic_info_data_t; typedef vm_region_basic_info_data_t mach_vm_region_basic_info_data_t;
const vm_region_flavor_t MACH_VM_REGION_BASIC_INFO = VM_REGION_BASIC_INFO; const vm_region_flavor_t MACH_VM_REGION_BASIC_INFO = VM_REGION_BASIC_INFO;
const mach_msg_type_number_t MACH_VM_REGION_BASIC_INFO_COUNT = VM_REGION_BASIC_INFO_COUNT; const mach_msg_type_number_t MACH_VM_REGION_BASIC_INFO_COUNT = VM_REGION_BASIC_INFO_COUNT;
#define mach_vm_region vm_region #define mach_vm_region vm_region
#elif defined PLATFORM_X64 #elif defined KE_ARCH_X64
typedef vm_region_info_64_t mach_vm_region_info_t ; typedef vm_region_info_64_t mach_vm_region_info_t ;
typedef vm_region_basic_info_data_64_t mach_vm_region_basic_info_data_t; typedef vm_region_basic_info_data_64_t mach_vm_region_basic_info_data_t;
const vm_region_flavor_t MACH_VM_REGION_BASIC_INFO = VM_REGION_BASIC_INFO_64; const vm_region_flavor_t MACH_VM_REGION_BASIC_INFO = VM_REGION_BASIC_INFO_64;

View File

@ -86,7 +86,7 @@ IScriptManager *scripts = &g_PluginSys;
IExtensionSys *extsys = &g_Extensions; IExtensionSys *extsys = &g_Extensions;
ILogger *logger = &g_Logger; ILogger *logger = &g_Logger;
CNativeOwner g_CoreNatives; CNativeOwner g_CoreNatives;
#ifdef PLATFORM_X64 #ifdef KE_ARCH_X64
PseudoAddressManager pseudoAddr; PseudoAddressManager pseudoAddr;
#endif #endif
@ -122,7 +122,7 @@ static void RegisterProfiler(IProfilingTool *tool)
static void *FromPseudoAddress(uint32_t paddr) static void *FromPseudoAddress(uint32_t paddr)
{ {
#ifdef PLATFORM_X64 #ifdef KE_ARCH_X64
return pseudoAddr.FromPseudoAddress(paddr); return pseudoAddr.FromPseudoAddress(paddr);
#else #else
return nullptr; return nullptr;
@ -131,7 +131,7 @@ static void *FromPseudoAddress(uint32_t paddr)
static uint32_t ToPseudoAddress(void *addr) static uint32_t ToPseudoAddress(void *addr)
{ {
#ifdef PLATFORM_X64 #ifdef KE_ARCH_X64
return pseudoAddr.ToPseudoAddress(addr); return pseudoAddr.ToPseudoAddress(addr);
#else #else
return 0; return 0;

View File

@ -33,7 +33,7 @@
#define _INCLUDE_SOURCEMOD_COMMON_LOGIC_H_ #define _INCLUDE_SOURCEMOD_COMMON_LOGIC_H_
#include "../sm_globals.h" #include "../sm_globals.h"
#ifdef PLATFORM_X64 #ifdef KE_ARCH_X64
#include "PseudoAddrManager.h" #include "PseudoAddrManager.h"
#endif #endif

View File

@ -863,7 +863,7 @@ enum NumberType
static cell_t LoadFromAddress(IPluginContext *pContext, const cell_t *params) static cell_t LoadFromAddress(IPluginContext *pContext, const cell_t *params)
{ {
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
void *addr = reinterpret_cast<void*>(params[1]); void *addr = reinterpret_cast<void*>(params[1]);
#else #else
void *addr = pseudoAddr.FromPseudoAddress(params[1]); void *addr = pseudoAddr.FromPseudoAddress(params[1]);
@ -895,7 +895,7 @@ static cell_t LoadFromAddress(IPluginContext *pContext, const cell_t *params)
static cell_t StoreToAddress(IPluginContext *pContext, const cell_t *params) static cell_t StoreToAddress(IPluginContext *pContext, const cell_t *params)
{ {
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
void *addr = reinterpret_cast<void*>(params[1]); void *addr = reinterpret_cast<void*>(params[1]);
#else #else
void *addr = pseudoAddr.FromPseudoAddress(params[1]); void *addr = pseudoAddr.FromPseudoAddress(params[1]);

View File

@ -155,7 +155,7 @@ static cell_t smn_GameConfGetAddress(IPluginContext *pCtx, const cell_t *params)
if (!gc->GetAddress(key, &val)) if (!gc->GetAddress(key, &val))
return 0; return 0;
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
return (cell_t)val; return (cell_t)val;
#else #else
return pseudoAddr.ToPseudoAddress(val); return pseudoAddr.ToPseudoAddress(val);
@ -187,7 +187,7 @@ static cell_t smn_GameConfGetMemSig(IPluginContext *pCtx, const cell_t *params)
return 0; return 0;
} }
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
return (cell_t)val; return (cell_t)val;
#else #else
return pseudoAddr.ToPseudoAddress(val); return pseudoAddr.ToPseudoAddress(val);

View File

@ -724,7 +724,7 @@ static cell_t GetEntDataEnt2(IPluginContext *pContext, const cell_t *params)
static cell_t LoadEntityFromHandleAddress(IPluginContext *pContext, const cell_t *params) static cell_t LoadEntityFromHandleAddress(IPluginContext *pContext, const cell_t *params)
{ {
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
void *addr = reinterpret_cast<void*>(params[1]); void *addr = reinterpret_cast<void*>(params[1]);
#else #else
void *addr = g_SourceMod.FromPseudoAddress(params[1]); void *addr = g_SourceMod.FromPseudoAddress(params[1]);
@ -835,7 +835,7 @@ static cell_t SetEntDataEnt2(IPluginContext *pContext, const cell_t *params)
static cell_t StoreEntityToHandleAddress(IPluginContext *pContext, const cell_t *params) static cell_t StoreEntityToHandleAddress(IPluginContext *pContext, const cell_t *params)
{ {
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
void *addr = reinterpret_cast<void*>(params[1]); void *addr = reinterpret_cast<void*>(params[1]);
#else #else
void *addr = g_SourceMod.FromPseudoAddress(params[1]); void *addr = g_SourceMod.FromPseudoAddress(params[1]);
@ -2772,7 +2772,7 @@ static cell_t GetEntityAddress(IPluginContext *pContext, const cell_t *params)
return pContext->ThrowNativeError("Entity %d (%d) is invalid", g_HL2.ReferenceToIndex(params[1]), params[1]); return pContext->ThrowNativeError("Entity %d (%d) is invalid", g_HL2.ReferenceToIndex(params[1]), params[1]);
} }
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
return reinterpret_cast<cell_t>(pEntity); return reinterpret_cast<cell_t>(pEntity);
#else #else
return g_SourceMod.ToPseudoAddress(pEntity); return g_SourceMod.ToPseudoAddress(pEntity);

View File

@ -213,7 +213,7 @@ bool SourceModBase::InitializeSourceMod(char *error, size_t maxlength, bool late
/* There will always be a path by this point, since it was force-set above. */ /* There will always be a path by this point, since it was force-set above. */
m_GotBasePath = true; m_GotBasePath = true;
#if defined PLATFORM_X86 #if defined KE_ARCH_X86
# define SOURCEPAWN_DLL "sourcepawn.jit.x86" # define SOURCEPAWN_DLL "sourcepawn.jit.x86"
#else #else
# define SOURCEPAWN_DLL "sourcepawn.vm" # define SOURCEPAWN_DLL "sourcepawn.vm"

View File

@ -104,7 +104,7 @@ ICallWrapper *CallMaker::CreateCall(void *address,
NULL, NULL, NULL, NULL); NULL, NULL, NULL, NULL);
} }
#if defined PLATFORM_X64 #if defined KE_ARCH_X64
return g_CallMaker2.CreateCall(address, &(*protoInfo), retInfo, paramInfo, fnFlags); return g_CallMaker2.CreateCall(address, &(*protoInfo), retInfo, paramInfo, fnFlags);
#else #else
return g_CallMaker2.CreateCall(address, &(*protoInfo)); return g_CallMaker2.CreateCall(address, &(*protoInfo));
@ -144,7 +144,7 @@ ICallWrapper *CallMaker::CreateVCall(unsigned int vtblIdx,
NULL, NULL, NULL, NULL); NULL, NULL, NULL, NULL);
} }
#if defined PLATFORM_X64 #if defined KE_ARCH_X64
return g_CallMaker2.CreateVirtualCall(&(*protoInfo), &info, retInfo, paramInfo, fnFlags); return g_CallMaker2.CreateVirtualCall(&(*protoInfo), &info, retInfo, paramInfo, fnFlags);
#else #else
return g_CallMaker2.CreateVirtualCall(&(*protoInfo), &info); return g_CallMaker2.CreateVirtualCall(&(*protoInfo), &info);
@ -153,7 +153,7 @@ ICallWrapper *CallMaker::CreateVCall(unsigned int vtblIdx,
ICallWrapper *CallMaker2::CreateCall(void *address, const SourceHook::ProtoInfo *protoInfo) ICallWrapper *CallMaker2::CreateCall(void *address, const SourceHook::ProtoInfo *protoInfo)
{ {
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
CallWrapper *pWrapper = new CallWrapper(protoInfo); CallWrapper *pWrapper = new CallWrapper(protoInfo);
pWrapper->SetCalleeAddr(address); pWrapper->SetCalleeAddr(address);
@ -169,7 +169,7 @@ ICallWrapper *CallMaker2::CreateCall(void *address, const SourceHook::ProtoInfo
ICallWrapper *CallMaker2::CreateVirtualCall(const SourceHook::ProtoInfo *protoInfo, ICallWrapper *CallMaker2::CreateVirtualCall(const SourceHook::ProtoInfo *protoInfo,
const SourceHook::MemFuncInfo *info) const SourceHook::MemFuncInfo *info)
{ {
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
CallWrapper *pWrapper = new CallWrapper(protoInfo); CallWrapper *pWrapper = new CallWrapper(protoInfo);
pWrapper->SetMemFuncInfo(info); pWrapper->SetMemFuncInfo(info);
@ -186,7 +186,7 @@ ICallWrapper *CallMaker2::CreateCall(void *address, const SourceHook::ProtoInfo
const PassInfo *retInfo, const PassInfo paramInfo[], const PassInfo *retInfo, const PassInfo paramInfo[],
unsigned int fnFlags) unsigned int fnFlags)
{ {
#ifdef PLATFORM_X64 #ifdef KE_ARCH_X64
CallWrapper *pWrapper = new CallWrapper(protoInfo, retInfo, paramInfo, fnFlags); CallWrapper *pWrapper = new CallWrapper(protoInfo, retInfo, paramInfo, fnFlags);
pWrapper->SetCalleeAddr(address); pWrapper->SetCalleeAddr(address);
@ -205,7 +205,7 @@ ICallWrapper *CallMaker2::CreateVirtualCall(const SourceHook::ProtoInfo *protoIn
const PassInfo paramInfo[], const PassInfo paramInfo[],
unsigned int fnFlags) unsigned int fnFlags)
{ {
#ifdef PLATFORM_X64 #ifdef KE_ARCH_X64
CallWrapper *pWrapper = new CallWrapper(protoInfo, retInfo, paramInfo, fnFlags); CallWrapper *pWrapper = new CallWrapper(protoInfo, retInfo, paramInfo, fnFlags);
pWrapper->SetMemFuncInfo(info); pWrapper->SetMemFuncInfo(info);

View File

@ -18,7 +18,7 @@ struct HashItemDef_Node
class CHashItemDef class CHashItemDef
{ {
public: public:
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
unsigned char padding[36]; unsigned char padding[36];
#else #else
unsigned char padding[56]; unsigned char padding[56];

View File

@ -162,7 +162,7 @@ CRegisters::CRegisters(std::vector<Register_t> registers)
m_xmm7 = CreateRegister(registers, XMM7, 16, 16); m_xmm7 = CreateRegister(registers, XMM7, 16, 16);
// 64-bit mode only // 64-bit mode only
#ifdef PLATFORM_X64 #ifdef KE_ARCH_X64
m_xmm8 = CreateRegister(registers, XMM8, 16); m_xmm8 = CreateRegister(registers, XMM8, 16);
m_xmm9 = CreateRegister(registers, XMM9, 16); m_xmm9 = CreateRegister(registers, XMM9, 16);
m_xmm10 = CreateRegister(registers, XMM10, 16); m_xmm10 = CreateRegister(registers, XMM10, 16);

View File

@ -62,7 +62,7 @@ size_t GetStackParamOffset(HookParamsStruct *paramStruct, unsigned int index)
continue; continue;
} }
#endif #endif
#ifdef PLATFORM_X64 #ifdef KE_ARCH_X64
offset += 8; offset += 8;
#else #else
offset += paramStruct->dg->params[i].size; offset += paramStruct->dg->params[i].size;

View File

@ -32,7 +32,7 @@
#include "vhook.h" #include "vhook.h"
#include "vfunc_call.h" #include "vfunc_call.h"
#include "util.h" #include "util.h"
#ifdef PLATFORM_X64 #ifdef KE_ARCH_X64
#include "sh_asm_x86_64.h" #include "sh_asm_x86_64.h"
#else #else
#include <macro-assembler-x86.h> #include <macro-assembler-x86.h>
@ -51,7 +51,7 @@ using namespace sp;
#define OBJECT_OFFSET (sizeof(void *)*2) #define OBJECT_OFFSET (sizeof(void *)*2)
#endif #endif
#ifdef PLATFORM_X64 #ifdef KE_ARCH_X64
using namespace SourceHook::Asm; using namespace SourceHook::Asm;
SourceHook::Asm::x64JitWriter* GenerateThunk(HookSetup* hook) SourceHook::Asm::x64JitWriter* GenerateThunk(HookSetup* hook)
@ -473,14 +473,14 @@ cell_t GetThisPtr(void *iface, ThisPointerType type)
return -1; return -1;
return gamehelpers->EntityToBCompatRef((CBaseEntity *)iface); return gamehelpers->EntityToBCompatRef((CBaseEntity *)iface);
} }
#ifdef PLATFORM_X64 #ifdef KE_ARCH_X64
return g_pSM->ToPseudoAddress(iface); return g_pSM->ToPseudoAddress(iface);
#else #else
return (cell_t)iface; return (cell_t)iface;
#endif #endif
} }
#if defined( WIN32 ) && !defined( PLATFORM_X64 ) #if defined( WIN32 ) && !defined( KE_ARCH_X64 )
void *Callback(DHooksCallback *dg, void **argStack, size_t *argsizep) void *Callback(DHooksCallback *dg, void **argStack, size_t *argsizep)
#else #else
void *Callback(DHooksCallback *dg, void **argStack) void *Callback(DHooksCallback *dg, void **argStack)
@ -491,7 +491,7 @@ void *Callback(DHooksCallback *dg, void **argStack)
Handle_t rHndl; Handle_t rHndl;
Handle_t pHndl; Handle_t pHndl;
#if defined( WIN32 ) && !defined( PLATFORM_X64 ) #if defined( WIN32 ) && !defined( KE_ARCH_X64 )
*argsizep = GetStackArgsSize(dg); *argsizep = GetStackArgsSize(dg);
#else #else
size_t argsize = GetStackArgsSize(dg); size_t argsize = GetStackArgsSize(dg);
@ -519,7 +519,7 @@ void *Callback(DHooksCallback *dg, void **argStack)
dg->plugin_callback->PushCell(rHndl); dg->plugin_callback->PushCell(rHndl);
} }
#if defined( WIN32 ) && !defined( PLATFORM_X64 ) #if defined( WIN32 ) && !defined( KE_ARCH_X64 )
if(*argsizep > 0) if(*argsizep > 0)
{ {
paramStruct = GetParamStruct(dg, argStack, *argsizep); paramStruct = GetParamStruct(dg, argStack, *argsizep);
@ -664,7 +664,7 @@ void *Callback(DHooksCallback *dg, void **argStack)
} }
return ret; return ret;
} }
#if defined( WIN32 ) && !defined( PLATFORM_X64 ) #if defined( WIN32 ) && !defined( KE_ARCH_X64 )
float Callback_float(DHooksCallback *dg, void **argStack, size_t *argsizep) float Callback_float(DHooksCallback *dg, void **argStack, size_t *argsizep)
#else #else
float Callback_float(DHooksCallback *dg, void **argStack) float Callback_float(DHooksCallback *dg, void **argStack)
@ -675,7 +675,7 @@ float Callback_float(DHooksCallback *dg, void **argStack)
Handle_t rHndl; Handle_t rHndl;
Handle_t pHndl; Handle_t pHndl;
#if defined( WIN32 ) && !defined( PLATFORM_X64 ) #if defined( WIN32 ) && !defined( KE_ARCH_X64 )
*argsizep = GetStackArgsSize(dg); *argsizep = GetStackArgsSize(dg);
#else #else
size_t argsize = GetStackArgsSize(dg); size_t argsize = GetStackArgsSize(dg);
@ -702,7 +702,7 @@ float Callback_float(DHooksCallback *dg, void **argStack)
} }
dg->plugin_callback->PushCell(rHndl); dg->plugin_callback->PushCell(rHndl);
#if defined( WIN32 ) && !defined( PLATFORM_X64 ) #if defined( WIN32 ) && !defined( KE_ARCH_X64 )
if(*argsizep > 0) if(*argsizep > 0)
{ {
paramStruct = GetParamStruct(dg, argStack, *argsizep); paramStruct = GetParamStruct(dg, argStack, *argsizep);
@ -819,7 +819,7 @@ float Callback_float(DHooksCallback *dg, void **argStack)
} }
return *(float *)ret; return *(float *)ret;
} }
#if defined( WIN32 ) && !defined( PLATFORM_X64 ) #if defined( WIN32 ) && !defined( KE_ARCH_X64 )
SDKVector *Callback_vector(DHooksCallback *dg, void **argStack, size_t *argsizep) SDKVector *Callback_vector(DHooksCallback *dg, void **argStack, size_t *argsizep)
#else #else
SDKVector *Callback_vector(DHooksCallback *dg, void **argStack) SDKVector *Callback_vector(DHooksCallback *dg, void **argStack)
@ -832,7 +832,7 @@ SDKVector *Callback_vector(DHooksCallback *dg, void **argStack)
Handle_t rHndl; Handle_t rHndl;
Handle_t pHndl; Handle_t pHndl;
#if defined( WIN32 ) && !defined( PLATFORM_X64 ) #if defined( WIN32 ) && !defined( KE_ARCH_X64 )
*argsizep = GetStackArgsSize(dg); *argsizep = GetStackArgsSize(dg);
#else #else
size_t argsize = GetStackArgsSize(dg); size_t argsize = GetStackArgsSize(dg);
@ -859,7 +859,7 @@ SDKVector *Callback_vector(DHooksCallback *dg, void **argStack)
} }
dg->plugin_callback->PushCell(rHndl); dg->plugin_callback->PushCell(rHndl);
#if defined( WIN32 ) && !defined( PLATFORM_X64 ) #if defined( WIN32 ) && !defined( KE_ARCH_X64 )
if(*argsizep > 0) if(*argsizep > 0)
{ {
paramStruct = GetParamStruct(dg, argStack, *argsizep); paramStruct = GetParamStruct(dg, argStack, *argsizep);

View File

@ -39,7 +39,7 @@
#include <registers.h> #include <registers.h>
#include <vector> #include <vector>
#ifdef PLATFORM_X64 #ifdef KE_ARCH_X64
#include "sh_asm_x86_64.h" #include "sh_asm_x86_64.h"
#endif #endif
@ -176,7 +176,7 @@ public:
virtual void DeleteThis() virtual void DeleteThis()
{ {
*(void ***)this = this->oldvtable; *(void ***)this = this->oldvtable;
#ifdef PLATFORM_X64 #ifdef KE_ARCH_X64
delete callThunk; delete callThunk;
#else #else
g_pSM->GetScriptingEngine()->FreePageMemory(this->newvtable[2]); g_pSM->GetScriptingEngine()->FreePageMemory(this->newvtable[2]);
@ -188,12 +188,12 @@ public:
public: public:
void **newvtable; void **newvtable;
void **oldvtable; void **oldvtable;
#ifdef PLATFORM_X64 #ifdef KE_ARCH_X64
SourceHook::Asm::x64JitWriter* callThunk; SourceHook::Asm::x64JitWriter* callThunk;
#endif #endif
}; };
#if defined( WIN32 ) && !defined( PLATFORM_X64 ) #if defined( WIN32 ) && !defined( KE_ARCH_X64 )
void *Callback(DHooksCallback *dg, void **stack, size_t *argsizep); void *Callback(DHooksCallback *dg, void **stack, size_t *argsizep);
float Callback_float(DHooksCallback *dg, void **stack, size_t *argsizep); float Callback_float(DHooksCallback *dg, void **stack, size_t *argsizep);
SDKVector *Callback_vector(DHooksCallback *dg, void **stack, size_t *argsizep); SDKVector *Callback_vector(DHooksCallback *dg, void **stack, size_t *argsizep);
@ -278,7 +278,7 @@ public:
HookMethod hookMethod; HookMethod hookMethod;
}; };
#ifdef PLATFORM_X64 #ifdef KE_ARCH_X64
SourceHook::Asm::x64JitWriter* GenerateThunk(HookSetup* type); SourceHook::Asm::x64JitWriter* GenerateThunk(HookSetup* type);
static DHooksCallback *MakeHandler(HookSetup* hook) static DHooksCallback *MakeHandler(HookSetup* hook)
{ {

View File

@ -82,7 +82,7 @@ CTakeDamageInfoHack::CTakeDamageInfoHack( CBaseEntity *pInflictor, CBaseEntity *
#endif #endif
#if SOURCE_ENGINE == SE_TF2 #if SOURCE_ENGINE == SE_TF2
m_eCritType = kCritType_None; m_eCritType = CRIT_NONE;
#endif #endif
#if SOURCE_ENGINE >= SE_ALIENSWARM #if SOURCE_ENGINE >= SE_ALIENSWARM

View File

@ -36,6 +36,9 @@
#include "vector.h" #include "vector.h"
#include "utlvector.h" #include "utlvector.h"
#include <shareddefs.h> #include <shareddefs.h>
#if SOURCE_ENGINE == SE_TF2 || SOURCE_ENGINE == SE_CSS || SOURCE_ENGINE == SE_DODS || SOURCE_ENGINE == SE_HL2DM
class CBasePlayer;
#endif
#include "usercmd.h" #include "usercmd.h"
#include "filesystem.h" #include "filesystem.h"

View File

@ -73,7 +73,7 @@ bool EntityOutputManager::IsEnabled()
return enabled; return enabled;
} }
#if defined PLATFORM_WINDOWS && defined PLATFORM_X86 #if defined PLATFORM_WINDOWS && defined KE_ARCH_X86
DETOUR_DECL_MEMBER8(FireOutput, void, int, what, int, the, int, hell, int, msvc, void *, variant_t, CBaseEntity *, pActivator, CBaseEntity *, pCaller, float, fDelay) DETOUR_DECL_MEMBER8(FireOutput, void, int, what, int, the, int, hell, int, msvc, void *, variant_t, CBaseEntity *, pActivator, CBaseEntity *, pCaller, float, fDelay)
{ {
bool fireOutput = g_OutputManager.FireEventDetour((void *)this, pActivator, pCaller, fDelay); bool fireOutput = g_OutputManager.FireEventDetour((void *)this, pActivator, pCaller, fDelay);

View File

@ -311,7 +311,7 @@ static cell_t FireEntityOutput(IPluginContext *pContext, const cell_t *params)
{ {
return pContext->ThrowNativeError("\"FireEntityOutput\" not supported by this mod"); return pContext->ThrowNativeError("\"FireEntityOutput\" not supported by this mod");
} }
#if defined PLATFORM_WINDOWS && defined PLATFORM_X86 #if defined PLATFORM_WINDOWS && defined KE_ARCH_X86
int iMaxParam = 8; int iMaxParam = 8;
//Instead of being one param, MSVC broke variant_t param into 5 params.. //Instead of being one param, MSVC broke variant_t param into 5 params..
PassInfo pass[8]; PassInfo pass[8];

View File

@ -360,7 +360,7 @@ void TempEntityManager::Initialize()
return; return;
} }
/* Store the head of the TE linked list */ /* Store the head of the TE linked list */
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
m_ListHead = **(void ***) ((unsigned char *) addr + offset); m_ListHead = **(void ***) ((unsigned char *) addr + offset);
#else #else
int32_t varOffset = *(int32_t *) ((unsigned char *) addr + offset); int32_t varOffset = *(int32_t *) ((unsigned char *) addr + offset);

View File

@ -172,7 +172,7 @@ static cell_t PrepSDKCall_SetSignature(IPluginContext *pContext, const cell_t *p
static cell_t PrepSDKCall_SetAddress(IPluginContext *pContext, const cell_t *params) static cell_t PrepSDKCall_SetAddress(IPluginContext *pContext, const cell_t *params)
{ {
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
s_call_addr = reinterpret_cast<void *>(params[1]); s_call_addr = reinterpret_cast<void *>(params[1]);
#else #else
s_call_addr = g_pSM->FromPseudoAddress(params[1]); s_call_addr = g_pSM->FromPseudoAddress(params[1]);

View File

@ -66,7 +66,7 @@ void InitializeValveGlobals()
{ {
return; return;
} }
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
g_ppGameRules = *reinterpret_cast<void ***>(addr + offset); g_ppGameRules = *reinterpret_cast<void ***>(addr + offset);
#else #else
int32_t varOffset = *(int32_t *) ((unsigned char *) addr + offset); int32_t varOffset = *(int32_t *) ((unsigned char *) addr + offset);
@ -209,7 +209,7 @@ bool UTIL_VerifySignature(const void *addr, const char *sig, size_t len)
return true; return true;
} }
#ifdef PLATFORM_X64 #ifdef KE_ARCH_X64
#define KEY_SUFFIX "64" #define KEY_SUFFIX "64"
#else #else
#define KEY_SUFFIX "" #define KEY_SUFFIX ""
@ -291,9 +291,9 @@ void GetIServer()
} }
/* Finally we have the interface we were looking for */ /* Finally we have the interface we were looking for */
#ifdef PLATFORM_X86 #ifdef KE_ARCH_X86
iserver = *reinterpret_cast<IServer **>(reinterpret_cast<unsigned char *>(vfunc) + offset); iserver = *reinterpret_cast<IServer **>(reinterpret_cast<unsigned char *>(vfunc) + offset);
#elif defined PLATFORM_X64 #elif defined KE_ARCH_X64
int32_t varOffset = *reinterpret_cast<int32_t *>(reinterpret_cast<unsigned char *>(vfunc) + offset); int32_t varOffset = *reinterpret_cast<int32_t *>(reinterpret_cast<unsigned char *>(vfunc) + offset);
iserver = reinterpret_cast<IServer *>(reinterpret_cast<unsigned char *>(vfunc) + offset + sizeof(int32_t) + varOffset); iserver = reinterpret_cast<IServer *>(reinterpret_cast<unsigned char *>(vfunc) + offset + sizeof(int32_t) + varOffset);
#endif #endif

@ -1 +1 @@
Subproject commit a57b3095a6fc31a98b13e2d73ebb668dac4f1300 Subproject commit 1134968fc13dcbc1f64dd35f50da00766d50ffa3

View File

@ -37,21 +37,13 @@
* @brief Contains platform-specific macros for abstraction. * @brief Contains platform-specific macros for abstraction.
*/ */
#include <am-platform.h>
#if defined WIN32 || defined WIN64 #if defined WIN32 || defined WIN64
#ifndef PLATFORM_WINDOWS #ifndef PLATFORM_WINDOWS
#define PLATFORM_WINDOWS 1 #define PLATFORM_WINDOWS 1
#endif #endif
#if defined WIN64 || defined _WIN64
#ifndef PLATFORM_X64
# define PLATFORM_X64 1
#endif
#else
#ifndef PLATFORM_X86
# define PLATFORM_X86 1
#endif
#endif // defined WIN64 || defined _WIN64
#if !defined WIN32_LEAN_AND_MEAN #if !defined WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN
#endif #endif
@ -83,16 +75,6 @@
# define PLATFORM_POSIX 1 # define PLATFORM_POSIX 1
#endif #endif
#if defined __x86_64__
#ifndef PLATFORM_X64
# define PLATFORM_X64 1
#endif
#else
#ifndef PLATFORM_X86
# define PLATFORM_X86 1
#endif
#endif // defined __x86_64__
#include <errno.h> #include <errno.h>
#include <unistd.h> #include <unistd.h>
#include <dirent.h> #include <dirent.h>
@ -116,7 +98,7 @@
#define SM_ARRAYSIZE(x) ((sizeof(x)/sizeof(0[x])) / ((size_t)(!(sizeof(x) % sizeof(0[x]))))) #define SM_ARRAYSIZE(x) ((sizeof(x)/sizeof(0[x])) / ((size_t)(!(sizeof(x) % sizeof(0[x])))))
#endif #endif
#if defined PLATFORM_X64 #if defined KE_ARCH_X64
#define PLATFORM_ARCH_FOLDER "x64" PLATFORM_SEP #define PLATFORM_ARCH_FOLDER "x64" PLATFORM_SEP
#ifdef PLATFORM_WINDOWS #ifdef PLATFORM_WINDOWS
#define PLATFORM_FOLDER "win64" PLATFORM_SEP #define PLATFORM_FOLDER "win64" PLATFORM_SEP
@ -134,7 +116,7 @@
#elif defined PLATFORM_APPLE #elif defined PLATFORM_APPLE
#define PLATFORM_FOLDER "osx32" PLATFORM_SEP #define PLATFORM_FOLDER "osx32" PLATFORM_SEP
#endif #endif
#endif // defined PLATFORM_X64 #endif // defined KE_ARCH_X64
#endif //_INCLUDE_SOURCEMOD_PLATFORM_H_ #endif //_INCLUDE_SOURCEMOD_PLATFORM_H_