Merge pull request #31 from xPaw/burn-baby-burn
Remove compatibility stuff from the core
This commit is contained in:
@ -87,7 +87,6 @@ binary.sources = [
|
||||
'libraries.cpp',
|
||||
'vector.cpp',
|
||||
'sorting.cpp',
|
||||
'amxmod_compat.cpp',
|
||||
'nongpl_matches.cpp',
|
||||
'CFlagManager.cpp',
|
||||
'datastructs.cpp',
|
||||
|
@ -33,7 +33,7 @@
|
||||
#include "debugger.h"
|
||||
#include "binlog.h"
|
||||
|
||||
CForward::CForward(const char *name, ForwardExecType et, int numParams, const ForwardParam *paramTypes, int fwd_type)
|
||||
CForward::CForward(const char *name, ForwardExecType et, int numParams, const ForwardParam *paramTypes)
|
||||
{
|
||||
m_FuncName = name;
|
||||
m_ExecType = et;
|
||||
@ -47,13 +47,6 @@ CForward::CForward(const char *name, ForwardExecType et, int numParams, const Fo
|
||||
|
||||
for (CPluginMngr::iterator iter = g_plugins.begin(); iter; ++iter)
|
||||
{
|
||||
if ((fwd_type != FORWARD_ALL) &&
|
||||
((fwd_type == FORWARD_ONLY_NEW && ((*iter).getAMX()->flags & AMX_FLAG_OLDFILE))
|
||||
|| (fwd_type == FORWARD_ONLY_OLD && !((*iter).getAMX()->flags & AMX_FLAG_OLDFILE))
|
||||
))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if ((*iter).isValid() && amx_FindPublic((*iter).getAMX(), name, &func) == AMX_ERR_NONE)
|
||||
{
|
||||
AMXForward tmp;
|
||||
@ -367,10 +360,10 @@ cell CSPForward::execute(cell *params, ForwardPreparedArray *preparedArrays)
|
||||
return retVal;
|
||||
}
|
||||
|
||||
int CForwardMngr::registerForward(const char *funcName, ForwardExecType et, int numParams, const ForwardParam * paramTypes, int fwd_type)
|
||||
int CForwardMngr::registerForward(const char *funcName, ForwardExecType et, int numParams, const ForwardParam * paramTypes)
|
||||
{
|
||||
int retVal = m_Forwards.size() << 1;
|
||||
CForward *tmp = new CForward(funcName, et, numParams, paramTypes, fwd_type);
|
||||
CForward *tmp = new CForward(funcName, et, numParams, paramTypes);
|
||||
|
||||
if (!tmp)
|
||||
{
|
||||
@ -590,7 +583,7 @@ int CForwardMngr::isSameSPForward(int id1, int id2)
|
||||
&& (fwd1->m_NumParams == fwd2->m_NumParams));
|
||||
}
|
||||
|
||||
int registerForwardC(const char *funcName, ForwardExecType et, cell *list, size_t num, int fwd_type)
|
||||
int registerForwardC(const char *funcName, ForwardExecType et, cell *list, size_t num)
|
||||
{
|
||||
ForwardParam params[FORWARD_MAX_PARAMS];
|
||||
|
||||
@ -599,7 +592,7 @@ int registerForwardC(const char *funcName, ForwardExecType et, cell *list, size_
|
||||
params[i] = static_cast<ForwardParam>(list[i]);
|
||||
}
|
||||
|
||||
return g_forwards.registerForward(funcName, et, num, params, fwd_type);
|
||||
return g_forwards.registerForward(funcName, et, num, params);
|
||||
}
|
||||
|
||||
int registerForward(const char *funcName, ForwardExecType et, ...)
|
||||
|
@ -51,10 +51,6 @@
|
||||
|
||||
const int FORWARD_MAX_PARAMS = 32;
|
||||
|
||||
#define FORWARD_ONLY_OLD 1
|
||||
#define FORWARD_ONLY_NEW 2
|
||||
#define FORWARD_ALL 3
|
||||
|
||||
enum ForwardExecType
|
||||
{
|
||||
ET_IGNORE = 0, // Ignore return vaue
|
||||
@ -111,7 +107,7 @@ class CForward
|
||||
ForwardParam m_ParamTypes[FORWARD_MAX_PARAMS];
|
||||
|
||||
public:
|
||||
CForward(const char *name, ForwardExecType et, int numParams, const ForwardParam * paramTypes, int fwd_type=FORWARD_ALL);
|
||||
CForward(const char *name, ForwardExecType et, int numParams, const ForwardParam * paramTypes);
|
||||
CForward() {} // leaves everything unitialized'
|
||||
|
||||
cell execute(cell *params, ForwardPreparedArray *preparedArrays);
|
||||
@ -209,7 +205,7 @@ public:
|
||||
|
||||
// Interface
|
||||
// Register normal forward
|
||||
int registerForward(const char *funcName, ForwardExecType et, int numParams, const ForwardParam *paramTypes, int fwd_type=FORWARD_ALL);
|
||||
int registerForward(const char *funcName, ForwardExecType et, int numParams, const ForwardParam *paramTypes);
|
||||
// Register single plugin forward
|
||||
int registerSPForward(const char *funcName, AMX *amx, int numParams, const ForwardParam * paramTypes);
|
||||
int registerSPForward(int func, AMX *amx, int numParams, const ForwardParam * paramTypes);
|
||||
@ -235,7 +231,7 @@ public:
|
||||
|
||||
// (un)register forward
|
||||
int registerForward(const char *funcName, ForwardExecType et, ...);
|
||||
int registerForwardC(const char *funcName, ForwardExecType et, cell *list, size_t num, int fwd_type=FORWARD_ALL);
|
||||
int registerForwardC(const char *funcName, ForwardExecType et, cell *list, size_t num);
|
||||
int registerSPForwardByName(AMX *amx, const char *funcName, ...);
|
||||
int registerSPForwardByNameC(AMX *amx, const char *funcName, cell *list, size_t num);
|
||||
int registerSPForward(AMX *amx, int func, ...);
|
||||
|
@ -33,7 +33,6 @@
|
||||
#include "amxmodx.h"
|
||||
#include "CLang.h"
|
||||
#include "format.h"
|
||||
#include "amxmod_compat.h"
|
||||
|
||||
#if defined(__linux__) || defined(__APPLE__)
|
||||
#define _snprintf snprintf
|
||||
@ -289,23 +288,7 @@ char * CLangMngr::FormatAmxString(AMX *amx, cell *params, int parm, int &len)
|
||||
static char outbuf[4096];
|
||||
cell *addr = get_amxaddr(amx, params[parm++]);
|
||||
|
||||
if (amx->flags & AMX_FLAG_OLDFILE)
|
||||
{
|
||||
if (*addr & BCOMPAT_TRANSLATE_BITS)
|
||||
{
|
||||
const char *key, *def;
|
||||
if (!translate_bcompat(amx, addr, &key, &def))
|
||||
{
|
||||
goto normal_string;
|
||||
}
|
||||
len = atcprintf(outbuf, sizeof(outbuf)-1, def, amx, params, &parm);
|
||||
} else {
|
||||
goto normal_string;
|
||||
}
|
||||
} else {
|
||||
normal_string:
|
||||
len = atcprintf(outbuf, sizeof(outbuf)-1, addr, amx, params, &parm);
|
||||
}
|
||||
len = atcprintf(outbuf, sizeof(outbuf)-1, addr, amx, params, &parm);
|
||||
|
||||
return outbuf;
|
||||
}
|
||||
|
@ -474,8 +474,7 @@ char *CPluginMngr::ReadIntoOrFromCache(const char *file, size_t &bufsize)
|
||||
|
||||
pl->file = new CAmxxReader(file, sizeof(cell));
|
||||
pl->buffer = NULL;
|
||||
if (pl->file->GetStatus() != CAmxxReader::Err_None ||
|
||||
pl->file->IsOldFile())
|
||||
if (pl->file->GetStatus() != CAmxxReader::Err_None)
|
||||
{
|
||||
delete pl->file;
|
||||
delete pl;
|
||||
|
@ -20,7 +20,7 @@ OBJECTS = meta_api.cpp CFile.cpp CVault.cpp vault.cpp float.cpp file.cpp modules
|
||||
amxxfile.cpp CLang.cpp md5.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 \
|
||||
amxmod_compat.cpp nongpl_matches.cpp CFlagManager.cpp datastructs.cpp \
|
||||
nongpl_matches.cpp CFlagManager.cpp datastructs.cpp \
|
||||
trie_natives.cpp CDataPack.cpp datapacks.cpp
|
||||
|
||||
##############################################
|
||||
|
@ -322,7 +322,7 @@ enum {
|
||||
#define AMX_FLAG_COMPACT 0x04 /* compact encoding */
|
||||
#define AMX_FLAG_BYTEOPC 0x08 /* opcode is a byte (not a cell) */
|
||||
#define AMX_FLAG_NOCHECKS 0x10 /* no array bounds checking; no STMT opcode */
|
||||
#define AMX_FLAG_OLDFILE 0x20 /* Old AMX Mod plugin */
|
||||
/* AMX_FLAG_OLDFILE 0x20 Old AMX Mod plugin */
|
||||
#define AMX_FLAG_PRENIT 0x100 /* pre-initialized, do not check natives */
|
||||
#define AMX_FLAG_NTVREG 0x1000 /* all native functions are registered */
|
||||
#define AMX_FLAG_JITC 0x2000 /* abstract machine is JIT compiled */
|
||||
|
@ -1,122 +0,0 @@
|
||||
#include "amxmodx.h"
|
||||
#include "amxmod_compat.h"
|
||||
#include "format.h"
|
||||
|
||||
bool GetTranslation(amxtrans_t trans, int &key, int &dest, int &lang)
|
||||
{
|
||||
key = (trans & BCOMPAT_TRANSLATE_KEYMASK);
|
||||
dest = (trans >> BCOMPAT_TRANSLATE_DESTRSH) & BCOMPAT_TRANSLATE_DESTMASK;
|
||||
lang = (trans >> BCOMPAT_TRANSLATE_LANGRSH) & BCOMPAT_TRANSLATE_LANGMASK;
|
||||
|
||||
if (dest == 0x3F)
|
||||
{
|
||||
dest = -1;
|
||||
}
|
||||
|
||||
if (lang == 0x1F)
|
||||
{
|
||||
lang = -1;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool translate_bcompat(AMX *amx, cell *source, const char **_key, const char **_def)
|
||||
{
|
||||
amxtrans_t trans = static_cast<amxtrans_t>(*source);
|
||||
int key, _dest, lang;
|
||||
if (!GetTranslation(trans, key, _dest, lang))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//not optimized but it works, eh
|
||||
//if someone cares they can make a translate() wrapper that takes the key # in directly
|
||||
const char *r_key = g_langMngr.GetKey(key);
|
||||
if (!r_key)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
cell amx_addr, *phys_addr;
|
||||
if (amx_Allot(amx, 3, &amx_addr, &phys_addr) != AMX_ERR_NONE)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (_dest == -1)
|
||||
{
|
||||
*phys_addr = LANG_PLAYER;
|
||||
} else if (_dest == 0) {
|
||||
*phys_addr = LANG_SERVER;
|
||||
} else if (lang >= 0 && lang < g_langMngr.GetLangsNum()) {
|
||||
const char *name = g_langMngr.GetLangName(lang);
|
||||
phys_addr[0] = static_cast<cell>(name[0]);
|
||||
phys_addr[1] = static_cast<cell>(name[1]);
|
||||
phys_addr[2] = static_cast<cell>('\0');
|
||||
} else {
|
||||
*phys_addr = LANG_SERVER;
|
||||
}
|
||||
|
||||
const char *def = translate(amx, amx_addr, r_key);
|
||||
if (!def)
|
||||
{
|
||||
def = r_key;
|
||||
}
|
||||
amx_Release(amx, amx_addr);
|
||||
|
||||
*_key = g_langMngr.GetKey(key);
|
||||
*_def = def;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static cell AMX_NATIVE_CALL amx_translate(AMX *amx, cell *params)
|
||||
{
|
||||
int len;
|
||||
char *key = get_amxstring(amx, params[1], 0, len);
|
||||
|
||||
amxtrans_t trans;
|
||||
|
||||
int suki = g_langMngr.GetKeyEntry(key);
|
||||
//Some AMX Mod plugins do not register everything they need. Prevent a crash.
|
||||
if (suki == -1)
|
||||
{
|
||||
suki = g_langMngr.AddKeyEntry(key);
|
||||
}
|
||||
|
||||
if (suki > BCOMPAT_TRANSLATE_KEYMASK)
|
||||
{
|
||||
LogError(amx, AMX_ERR_NATIVE, "Not enough translation space, aborting!");
|
||||
return 0;
|
||||
}
|
||||
|
||||
trans = suki & BCOMPAT_TRANSLATE_KEYMASK;
|
||||
int dest = static_cast<int>(params[2]);
|
||||
int lang = static_cast<int>(params[3]);
|
||||
if (dest == -1)
|
||||
{
|
||||
trans |= (0x3F << BCOMPAT_TRANSLATE_DESTRSH);
|
||||
} else {
|
||||
trans |= (dest & BCOMPAT_TRANSLATE_DESTMASK) << BCOMPAT_TRANSLATE_DESTRSH;
|
||||
}
|
||||
|
||||
if (lang == -1)
|
||||
{
|
||||
trans |= (0x1F << BCOMPAT_TRANSLATE_LANGRSH);
|
||||
} else {
|
||||
trans |= (lang & BCOMPAT_TRANSLATE_LANGMASK) << BCOMPAT_TRANSLATE_LANGRSH;
|
||||
}
|
||||
|
||||
trans |= BCOMPAT_TRANSLATE_BITS;
|
||||
|
||||
return static_cast<cell>(trans);
|
||||
}
|
||||
|
||||
AMX_NATIVE_INFO g_BcompatNatives[] =
|
||||
{
|
||||
{"translate", amx_translate},
|
||||
|
||||
{NULL, NULL},
|
||||
};
|
||||
|
@ -1,28 +0,0 @@
|
||||
#ifndef _INCLUDE_AMXMOD_CORE_COMPAT_H
|
||||
#define _INCLUDE_AMXMOD_CORE_COMPAT_H
|
||||
|
||||
/**
|
||||
* New format for translation:
|
||||
* Note that we only support:
|
||||
* 4k keys
|
||||
* 32 languages
|
||||
* 0000 0000 0000 0000 0000 0000 0000 0000
|
||||
* | key id |
|
||||
* | | <- dest id
|
||||
* | | <- lang id
|
||||
*/
|
||||
|
||||
#define BCOMPAT_TRANSLATE_BITS 0xFF000000
|
||||
#define BCOMPAT_TRANSLATE_KEYMASK 0xFFF
|
||||
#define BCOMPAT_TRANSLATE_DESTMASK 0x3F
|
||||
#define BCOMPAT_TRANSLATE_DESTRSH 12
|
||||
#define BCOMPAT_TRANSLATE_LANGMASK 0x1F
|
||||
#define BCOMPAT_TRANSLATE_LANGRSH 18
|
||||
|
||||
typedef unsigned int amxtrans_t;
|
||||
|
||||
bool GetTranslation(amxtrans_t trans, int &key, int &dest, int &lang);
|
||||
|
||||
extern AMX_NATIVE_INFO g_BcompatNatives[];
|
||||
|
||||
#endif //_INCLUDE_AMXMOD_CORE_COMPAT_H
|
@ -1864,18 +1864,6 @@ static cell AMX_NATIVE_CALL server_cmd(AMX *amx, cell *params) /* 1 param */
|
||||
g_langMngr.SetDefLang(LANG_SERVER);
|
||||
char* cmd = format_amxstring(amx, params, 1, len);
|
||||
|
||||
if (amx->flags & AMX_FLAG_OLDFILE)
|
||||
{
|
||||
if (strncmp("meta ",cmd,5)==0)
|
||||
{
|
||||
return len+1;
|
||||
}
|
||||
if (strncmp("quit", cmd,4)==0)
|
||||
{
|
||||
return len+1;
|
||||
}
|
||||
}
|
||||
|
||||
cmd[len++] = '\n';
|
||||
cmd[len] = 0;
|
||||
|
||||
@ -1934,19 +1922,6 @@ static cell AMX_NATIVE_CALL get_cvar_string(AMX *amx, cell *params) /* 3 param *
|
||||
int ilen;
|
||||
char* sptemp = get_amxstring(amx, params[1], 0, ilen);
|
||||
|
||||
if (amx->flags & AMX_FLAG_OLDFILE)
|
||||
{
|
||||
/* :HACKHACK: Pretend we're invisible to old plugins for backward compatibility */
|
||||
char *cvar = sptemp;
|
||||
for (unsigned int i=0; i<5; i++)
|
||||
{
|
||||
if (strcmp(cvar, invis_cvar_list[i]) == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const char *value = CVAR_GET_STRING(sptemp);
|
||||
return set_amxstring_utf8(amx, params[2], value, strlen(value), params[3] + 1); // + EOS
|
||||
}
|
||||
@ -1969,19 +1944,6 @@ static cell AMX_NATIVE_CALL get_cvar_float(AMX *amx, cell *params) /* 1 param */
|
||||
{
|
||||
int ilen;
|
||||
|
||||
if (amx->flags & AMX_FLAG_OLDFILE)
|
||||
{
|
||||
/* :HACKHACK: Pretend we're invisible to old plugins for backward compatibility */
|
||||
char *cvar = get_amxstring(amx, params[1], 0, ilen);
|
||||
for (unsigned int i=0; i<5; i++)
|
||||
{
|
||||
if (strcmp(cvar, invis_cvar_list[i]) == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
REAL pFloat = CVAR_GET_FLOAT(get_amxstring(amx, params[1], 0, ilen));
|
||||
|
||||
return amx_ftoc(pFloat);
|
||||
@ -2024,18 +1986,6 @@ static cell AMX_NATIVE_CALL get_pcvar_num(AMX *amx, cell *params)
|
||||
static cell AMX_NATIVE_CALL get_cvar_num(AMX *amx, cell *params) /* 1 param */
|
||||
{
|
||||
int ilen;
|
||||
if (amx->flags & AMX_FLAG_OLDFILE)
|
||||
{
|
||||
/* :HACKHACK: Pretend we're invisible to old plugins for backward compatibility */
|
||||
char *cvar = get_amxstring(amx, params[1], 0, ilen);
|
||||
for (unsigned int i=0; i<5; i++)
|
||||
{
|
||||
if (strcmp(cvar, invis_cvar_list[i]) == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return (int)CVAR_GET_FLOAT(get_amxstring(amx, params[1], 0, ilen));
|
||||
}
|
||||
|
||||
@ -2632,18 +2582,6 @@ static cell AMX_NATIVE_CALL task_exists(AMX *amx, cell *params) /* 1 param */
|
||||
static cell AMX_NATIVE_CALL cvar_exists(AMX *amx, cell *params) /* 1 param */
|
||||
{
|
||||
int ilen;
|
||||
if (amx->flags & AMX_FLAG_OLDFILE)
|
||||
{
|
||||
/* :HACKHACK: Pretend we're invisible to old plugins for backward compatibility */
|
||||
char *cvar = get_amxstring(amx, params[1], 0, ilen);
|
||||
for (unsigned int i=0; i<5; i++)
|
||||
{
|
||||
if (strcmp(cvar, invis_cvar_list[i]) == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return (CVAR_GET_POINTER(get_amxstring(amx, params[1], 0, ilen)) ? 1 : 0);
|
||||
}
|
||||
|
||||
@ -3181,19 +3119,6 @@ static cell AMX_NATIVE_CALL get_cvar_flags(AMX *amx, cell *params)
|
||||
int ilen;
|
||||
char* sCvar = get_amxstring(amx, params[1], 0, ilen);
|
||||
|
||||
if (amx->flags & AMX_FLAG_OLDFILE)
|
||||
{
|
||||
/* :HACKHACK: Pretend we're invisible to old plugins for backward compatibility */
|
||||
char *cvar = sCvar;
|
||||
for (unsigned int i=0; i<5; i++)
|
||||
{
|
||||
if (strcmp(cvar, invis_cvar_list[i]) == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cvar_t* pCvar = CVAR_GET_POINTER(sCvar);
|
||||
|
||||
return pCvar ? pCvar->flags : 0;
|
||||
@ -4405,21 +4330,6 @@ static cell AMX_NATIVE_CALL CreateMultiForward(AMX *amx, cell *params)
|
||||
return registerForwardC(funcname, static_cast<ForwardExecType>(params[2]), ps, count-2);
|
||||
}
|
||||
|
||||
static cell AMX_NATIVE_CALL CreateMultiForwardEx(AMX *amx, cell *params)
|
||||
{
|
||||
int len;
|
||||
char *funcname = get_amxstring(amx, params[1], 0, len);
|
||||
|
||||
cell ps[FORWARD_MAX_PARAMS];
|
||||
cell count = params[0] / sizeof(cell);
|
||||
for (cell i=4; i<=count; i++)
|
||||
{
|
||||
ps[i-4] = *get_amxaddr(amx, params[i]);
|
||||
}
|
||||
|
||||
return registerForwardC(funcname, static_cast<ForwardExecType>(params[2]), ps, count-3, params[3]);
|
||||
}
|
||||
|
||||
static cell AMX_NATIVE_CALL CreateOneForward(AMX *amx, cell *params)
|
||||
{
|
||||
CPluginMngr::CPlugin *p = g_plugins.findPlugin(params[1]);
|
||||
@ -5103,7 +5013,6 @@ AMX_NATIVE_INFO amxmodx_Natives[] =
|
||||
{"CreateHudSyncObj", CreateHudSyncObj},
|
||||
{"CreateLangKey", CreateLangKey},
|
||||
{"CreateMultiForward", CreateMultiForward},
|
||||
{"CreateMultiForwardEx", CreateMultiForwardEx},
|
||||
{"CreateOneForward", CreateOneForward},
|
||||
{"DestroyForward", DestroyForward},
|
||||
{"ExecuteForward", ExecuteForward},
|
||||
|
@ -1,7 +1,6 @@
|
||||
#include "amxmodx.h"
|
||||
#include "format.h"
|
||||
#include "datastructs.h"
|
||||
#include "amxmod_compat.h"
|
||||
|
||||
//Adapted from Quake3's vsprintf
|
||||
// thanks to cybermind for linking me to this :)
|
||||
@ -634,24 +633,6 @@ reswitch:
|
||||
}
|
||||
case 's':
|
||||
CHECK_ARGS(0);
|
||||
if (amx->flags & AMX_FLAG_OLDFILE)
|
||||
{
|
||||
cell *addr = get_amxaddr(amx, params[arg]);
|
||||
if (*addr & BCOMPAT_TRANSLATE_BITS)
|
||||
{
|
||||
const char *key, *def;
|
||||
if (!translate_bcompat(amx, addr, &key, &def))
|
||||
{
|
||||
goto break_to_normal_string;
|
||||
}
|
||||
arg++;
|
||||
size_t written = atcprintf(buf_p, llen, def, amx, params, &arg);
|
||||
buf_p += written;
|
||||
llen -= written;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break_to_normal_string:
|
||||
AddString(&buf_p, llen, get_amxaddr(amx, params[arg]), width, prec);
|
||||
arg++;
|
||||
break;
|
||||
|
@ -6,6 +6,5 @@ template <typename D, typename S>
|
||||
size_t atcprintf(D *buffer, size_t maxlen, const S *format, AMX *amx, cell *params, int *param);
|
||||
|
||||
const char *translate(AMX *amx, cell amxaddr, const char *key);
|
||||
bool translate_bcompat(AMX *amx, cell *source, const char **_key, const char **_def);
|
||||
|
||||
#endif //_INCLUDE_FORMATTING_H
|
||||
|
@ -46,7 +46,6 @@
|
||||
#include "optimizer.h"
|
||||
#include "libraries.h"
|
||||
#include "messages.h"
|
||||
#include "amxmod_compat.h"
|
||||
|
||||
#include "datastructs.h"
|
||||
#include "CFlagManager.h"
|
||||
|
@ -51,7 +51,6 @@
|
||||
#include "binlog.h"
|
||||
#include "libraries.h"
|
||||
#include "messages.h"
|
||||
#include "amxmod_compat.h"
|
||||
#include "trie_natives.h"
|
||||
#include "CDataPack.h"
|
||||
|
||||
@ -171,7 +170,6 @@ int load_amxscript(AMX *amx, void **program, const char *filename, char error[64
|
||||
*error = 0;
|
||||
size_t bufSize;
|
||||
*program = (void *)g_plugins.ReadIntoOrFromCache(filename, bufSize);
|
||||
bool oldfile = false;
|
||||
if (!*program)
|
||||
{
|
||||
CAmxxReader reader(filename, PAWN_CELL_SIZE / 8);
|
||||
@ -225,8 +223,6 @@ int load_amxscript(AMX *amx, void **program, const char *filename, char error[64
|
||||
strcpy(error, "Unknown error");
|
||||
return (amx->error = AMX_ERR_NOTFOUND);
|
||||
}
|
||||
|
||||
oldfile = reader.IsOldFile();
|
||||
} else {
|
||||
g_plugins.InvalidateFileInCache(filename, false);
|
||||
}
|
||||
@ -381,17 +377,6 @@ int load_amxscript(AMX *amx, void **program, const char *filename, char error[64
|
||||
}
|
||||
#endif
|
||||
|
||||
if (oldfile)
|
||||
{
|
||||
amx->flags |= AMX_FLAG_OLDFILE;
|
||||
} else {
|
||||
cell addr;
|
||||
if (amx_FindPubVar(amx, "__b_old_plugin", &addr) == AMX_ERR_NONE)
|
||||
{
|
||||
amx->flags |= AMX_FLAG_OLDFILE;
|
||||
}
|
||||
}
|
||||
|
||||
CScript* aa = new CScript(amx, *program, filename);
|
||||
|
||||
g_loadedscripts.put(aa);
|
||||
@ -568,8 +553,7 @@ int set_amxnatives(AMX* amx, char error[128])
|
||||
|
||||
for (size_t i = 0; i < cm->m_NewNatives.size(); i++)
|
||||
{
|
||||
if (!(amx->flags & AMX_FLAG_OLDFILE))
|
||||
amx_Register(amx, cm->m_NewNatives[i], -1);
|
||||
amx_Register(amx, cm->m_NewNatives[i], -1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -590,11 +574,6 @@ int set_amxnatives(AMX* amx, char error[128])
|
||||
amx_Register(amx, trie_Natives, -1);
|
||||
amx_Register(amx, g_DatapackNatives, -1);
|
||||
|
||||
if (amx->flags & AMX_FLAG_OLDFILE)
|
||||
{
|
||||
amx_Register(amx, g_BcompatNatives, -1);
|
||||
}
|
||||
|
||||
//we're not actually gonna check these here anymore
|
||||
amx->flags |= AMX_FLAG_PRENIT;
|
||||
|
||||
|
@ -285,7 +285,6 @@
|
||||
<ClCompile Include="..\amx.cpp" />
|
||||
<ClCompile Include="..\amxcore.cpp" />
|
||||
<ClCompile Include="..\amxdbg.cpp" />
|
||||
<ClCompile Include="..\amxmod_compat.cpp" />
|
||||
<ClCompile Include="..\amxmodx.cpp" />
|
||||
<ClCompile Include="..\amxtime.cpp" />
|
||||
<ClCompile Include="..\amxxfile.cpp" />
|
||||
@ -350,7 +349,6 @@
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\amx.h" />
|
||||
<ClInclude Include="..\amxdbg.h" />
|
||||
<ClInclude Include="..\amxmod_compat.h" />
|
||||
<ClInclude Include="..\amxmodx.h" />
|
||||
<ClInclude Include="..\amxxfile.h" />
|
||||
<ClInclude Include="..\amxxlog.h" />
|
||||
|
@ -36,9 +36,6 @@
|
||||
<ClCompile Include="..\amxdbg.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\amxmod_compat.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\amxmodx.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@ -185,9 +182,6 @@
|
||||
<ClInclude Include="..\amxdbg.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\amxmod_compat.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\amxmodx.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
|
@ -33,7 +33,6 @@
|
||||
#include "amxmodx.h"
|
||||
#include "format.h"
|
||||
#include "binlog.h"
|
||||
#include "amxmod_compat.h"
|
||||
|
||||
const char* stristr(const char* str, const char* substr)
|
||||
{
|
||||
@ -147,21 +146,8 @@ extern "C" size_t get_amxstring_r(AMX *amx, cell amx_addr, char *destination, in
|
||||
register char *dest = destination;
|
||||
char *start = dest;
|
||||
|
||||
if ( (amx->flags & AMX_FLAG_OLDFILE) &&
|
||||
(*source & BCOMPAT_TRANSLATE_BITS) )
|
||||
{
|
||||
const char *def, *key;
|
||||
if (!translate_bcompat(amx, source, &key, &def))
|
||||
{
|
||||
goto normal_string;
|
||||
}
|
||||
while (maxlen-- && *def)
|
||||
*dest++=(*source++);
|
||||
} else {
|
||||
normal_string:
|
||||
while (maxlen-- && *source)
|
||||
*dest++=(char)(*source++);
|
||||
}
|
||||
while (maxlen-- && *source)
|
||||
*dest++=(char)(*source++);
|
||||
|
||||
*dest = '\0';
|
||||
|
||||
@ -536,40 +522,16 @@ static cell AMX_NATIVE_CALL copy(AMX *amx, cell *params) /* 4 param */
|
||||
cell *src = get_amxaddr(amx, params[3]);
|
||||
int c = params[2];
|
||||
|
||||
if (amx->flags & AMX_FLAG_OLDFILE)
|
||||
cell *dest = get_amxaddr(amx, params[1]);
|
||||
cell *start = dest;
|
||||
|
||||
while (c-- && *src)
|
||||
{
|
||||
if (*src & BCOMPAT_TRANSLATE_BITS)
|
||||
{
|
||||
const char *key, *def;
|
||||
if (!translate_bcompat(amx, src, &key, &def))
|
||||
{
|
||||
goto normal_string;
|
||||
}
|
||||
cell *dest = get_amxaddr(amx, params[1]);
|
||||
cell *start = dest;
|
||||
while (c-- && *def)
|
||||
{
|
||||
*dest++ = static_cast<cell>(*def++);
|
||||
}
|
||||
*dest = '\0';
|
||||
|
||||
return dest-start;
|
||||
} else {
|
||||
goto normal_string;
|
||||
}
|
||||
} else {
|
||||
normal_string:
|
||||
cell *dest = get_amxaddr(amx, params[1]);
|
||||
cell *start = dest;
|
||||
|
||||
while (c-- && *src)
|
||||
{
|
||||
*dest++ = *src++;
|
||||
}
|
||||
*dest = '\0';
|
||||
|
||||
return (dest - start);
|
||||
*dest++ = *src++;
|
||||
}
|
||||
*dest = '\0';
|
||||
|
||||
return (dest - start);
|
||||
}
|
||||
|
||||
static cell AMX_NATIVE_CALL copyc(AMX *amx, cell *params) /* 4 param */
|
||||
@ -688,23 +650,7 @@ static cell AMX_NATIVE_CALL format(AMX *amx, cell *params) /* 3 param */
|
||||
int param = 4;
|
||||
size_t total = 0;
|
||||
|
||||
if (amx->flags & AMX_FLAG_OLDFILE)
|
||||
{
|
||||
if (*fmt & BCOMPAT_TRANSLATE_BITS)
|
||||
{
|
||||
const char *key, *def;
|
||||
if (!translate_bcompat(amx, fmt, &key, &def))
|
||||
{
|
||||
goto normal_string;
|
||||
}
|
||||
total = atcprintf(buf, maxlen, def, amx, params, ¶m);
|
||||
} else {
|
||||
goto normal_string;
|
||||
}
|
||||
} else {
|
||||
normal_string:
|
||||
total = atcprintf(buf, maxlen, fmt, amx, params, ¶m);
|
||||
}
|
||||
total = atcprintf(buf, maxlen, fmt, amx, params, ¶m);
|
||||
|
||||
if (copy)
|
||||
{
|
||||
|
Reference in New Issue
Block a user