diff --git a/amxmodx/amxmodx.cpp b/amxmodx/amxmodx.cpp index 30905ba0..eb521b9f 100755 --- a/amxmodx/amxmodx.cpp +++ b/amxmodx/amxmodx.cpp @@ -2639,6 +2639,13 @@ static cell register_dictionary(AMX *amx, cell *params) return result; } +static cell plugin_flags(AMX *amx, cell *params) +{ + AMX_HEADER *hdr; + hdr = (AMX_HEADER *)amx->base; + return hdr->flags; +} + // lang_exists(const name[]); static cell lang_exists(AMX *amx, cell *params) { @@ -2802,5 +2809,6 @@ AMX_NATIVE_INFO amxmod_Natives[] = { { "lang_exists", lang_exists }, { "md5", amx_md5 }, { "md5_file", amx_md5_file }, + { "plugin_flags", plugin_flags}, { NULL, NULL } }; diff --git a/plugins/include/amxconst.inc b/plugins/include/amxconst.inc index 94522f18..a3819fad 100755 --- a/plugins/include/amxconst.inc +++ b/plugins/include/amxconst.inc @@ -251,4 +251,12 @@ enum { module_noquery, module_noattach, module_old, -}; \ No newline at end of file +}; + +#define AMX_FLAG_DEBUG (1<<1) /* symbolic info. available */ +#define AMX_FLAG_COMPACT (1<<2) /* compact encoding */ +#define AMX_FLAG_BIGENDIAN (1<<3) /* big endian encoding */ +#define AMX_FLAG_NOCHECKS (1<<4) /* no array bounds checking */ +#define AMX_FLAG_LINEOPS (1<<5) /* line ops are parsed by the JIT [loadtime only flag] */ +#define AMX_FLAG_BROWSE (1<<14) /* browsing/relocating or executing */ +#define AMX_FLAG_RELOC (1<<15) /* jump/call addresses relocated */ \ No newline at end of file diff --git a/plugins/include/amxmodx.inc b/plugins/include/amxmodx.inc index 454d85a6..053a8053 100755 --- a/plugins/include/amxmodx.inc +++ b/plugins/include/amxmodx.inc @@ -644,4 +644,7 @@ native force_unmodified(force_type, mins[3] , maxs[3], const filename[]); native md5(const szString[], md5buffer[34]); /* Calculates the md5 keysum of a file */ -native md5_file(const file[], md5buffer[34]); \ No newline at end of file +native md5_file(const file[], md5buffer[34]); + +/* Returns the internal flags set on the called bytecode structure - Do not use */ +native plugin_flags(); \ No newline at end of file