* Add ReHLDS API files and its dependencies Note: This has been stolen from ReAPI AMXX module and modified/adjusted to match AMXX existing includes and to provide as less dependencies as possible as well * Add the necessary files to get ReHLDS interface * Split SV_DropClient into pre/post code * Init ReHLDS API and add SV_DropClient hook * Add Cvar_DirectSet hook and adjust code with helpers Note: we don't need to split code here. This is pretty much the naive and straight way, but fairly enough for our case. If it happens we got a lot more hooks, we may consider to use some class to manage better the things. * Move platform and interface stuff in their own files in public directory * Make sure to init cvar stuff after ReHLDS * Add ReGameDLL API files and its dependencies in cstrike module * Init ReHLDS in cstrike module and adjust code Note: About cs_uset_set_model(). ReHLDS API doesn't offer a way to know directly the precached models, so instead of looping through all the ressources, the models list is saved one time at map change into a hashmap. * Init ReGameDLL and adjust code * Fix linux compilation * Init ReGameDLL in fakemeta module and adjust code * Rename /reapi directory to /resdk to avoid confusion * Retrieve gamerules pointer through InstallGameRules in fakemeta module * Retrieve gamerules pointer through InstallGameRules in cstrike module Note: actually gamerules is not used if regamedll is enabled, but it could be used in future natives. * Fix a typo when ReGameDLL is not enabled * Fix missing interface check for ReHLDS. I'm pretty sure I was checking at the very first since I worked first on vanilla version of engine, looks like change has been lost.
107 lines
2.3 KiB
Python
107 lines
2.3 KiB
Python
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
|
import os.path
|
|
|
|
binary = AMXX.MetaPlugin(builder, 'amxmodx')
|
|
|
|
binary.compiler.defines += [
|
|
'JIT',
|
|
'ASM32',
|
|
'HAVE_STDINT_H',
|
|
]
|
|
|
|
if builder.target_platform == 'mac':
|
|
jit_objects = [
|
|
binary.Dep('JIT/amxexecn-darwin.o'),
|
|
binary.Dep('JIT/amxjitsn-darwin.o'),
|
|
binary.Dep('JIT/natives-darwin-x86.o'),
|
|
binary.Dep('JIT/helpers-darwin-x86.o'),
|
|
]
|
|
elif builder.target_platform == 'linux':
|
|
jit_objects = [
|
|
binary.Dep('JIT/amxexecn.o'),
|
|
binary.Dep('JIT/amxjitsn.o'),
|
|
binary.Dep('JIT/natives-x86.o'),
|
|
binary.Dep('JIT/helpers-x86.o'),
|
|
]
|
|
elif builder.target_platform == 'windows':
|
|
jit_objects = [
|
|
binary.Dep('JIT/amxexecn.obj'),
|
|
binary.Dep('JIT/amxjitsn.obj'),
|
|
binary.Dep('JIT/helpers-x86.obj'),
|
|
binary.Dep('JIT/natives-x86.obj'),
|
|
]
|
|
|
|
binary.compiler.linkflags += jit_objects
|
|
binary.compiler.linkflags += [AMXX.zlib.binary, AMXX.hashing.binary]
|
|
|
|
if builder.target_platform == 'mac':
|
|
binary.compiler.postlink += [
|
|
'-Wl,-read_only_relocs,suppress'
|
|
]
|
|
|
|
binary.sources = [
|
|
'meta_api.cpp',
|
|
'CVault.cpp',
|
|
'vault.cpp',
|
|
'float.cpp',
|
|
'file.cpp',
|
|
'modules.cpp',
|
|
'CMisc.cpp',
|
|
'CTask.cpp',
|
|
'string.cpp',
|
|
'amxmodx.cpp',
|
|
'CEvent.cpp',
|
|
'CCmd.cpp',
|
|
'CLogEvent.cpp',
|
|
'srvcmd.cpp',
|
|
'strptime.cpp',
|
|
'amxcore.cpp',
|
|
'amxtime.cpp',
|
|
'power.cpp',
|
|
'amxxlog.cpp',
|
|
'fakemeta.cpp',
|
|
'amxxfile.cpp',
|
|
'CLang.cpp',
|
|
'emsg.cpp',
|
|
'CForward.cpp',
|
|
'CPlugin.cpp',
|
|
'CModule.cpp',
|
|
'CMenu.cpp',
|
|
'util.cpp',
|
|
'amx.cpp',
|
|
'amxdbg.cpp',
|
|
'natives.cpp',
|
|
'newmenus.cpp',
|
|
'debugger.cpp',
|
|
'optimizer.cpp',
|
|
'format.cpp',
|
|
'messages.cpp',
|
|
'libraries.cpp',
|
|
'vector.cpp',
|
|
'sorting.cpp',
|
|
'nongpl_matches.cpp',
|
|
'CFlagManager.cpp',
|
|
'datastructs.cpp',
|
|
'trie_natives.cpp',
|
|
'CDataPack.cpp',
|
|
'datapacks.cpp',
|
|
'stackstructs.cpp',
|
|
'CTextParsers.cpp',
|
|
'textparse.cpp',
|
|
'CvarManager.cpp',
|
|
'cvars.cpp',
|
|
'../public/memtools/MemoryUtils.cpp',
|
|
'../public/memtools/CDetour/detours.cpp',
|
|
'../public/memtools/CDetour/asm/asm.c',
|
|
'../public/resdk/mod_rehlds_api.cpp',
|
|
'CLibrarySys.cpp',
|
|
'CGameConfigs.cpp',
|
|
'gameconfigs.cpp',
|
|
'CoreConfig.cpp',
|
|
]
|
|
|
|
if builder.target_platform == 'windows':
|
|
binary.sources += ['version.rc']
|
|
|
|
AMXX.binaries += [builder.Add(binary)]
|