Compare commits
81 Commits
amxmodx-1.
...
amxmodx-1.
Author | SHA1 | Date | |
---|---|---|---|
8bcb67b5a1 | |||
cdf3807955 | |||
10ff8c11fd | |||
81af863496 | |||
3e8c921b9f | |||
f201592ddb | |||
72bebf9af8 | |||
73ea754640 | |||
ce9728af93 | |||
6486c56a15 | |||
1d95fb3dcd | |||
c07d8f3d93 | |||
adaf207b58 | |||
0dc6a4a5dd | |||
626bfe5240 | |||
e4a3647b88 | |||
f942a857d0 | |||
633a81f864 | |||
1b5dc0d567 | |||
21b8f905ae | |||
36a15919ca | |||
24ff7c3a01 | |||
7beef260f2 | |||
36db059672 | |||
01f3d729de | |||
0a38ef831f | |||
55d18da46c | |||
a7d6352a22 | |||
240c92e20f | |||
f410ea743d | |||
9100ec753c | |||
1d7cbd4203 | |||
4049a0c3be | |||
86ea50dfdd | |||
6a4318f4d1 | |||
6d03b29963 | |||
44e078c7c0 | |||
e1dd514f15 | |||
c52943b03c | |||
b33d2f559b | |||
53ed817183 | |||
683f453b6f | |||
145ff45876 | |||
e3e64233ec | |||
313044fe89 | |||
074fd60f3c | |||
b608305c79 | |||
bbf7593e43 | |||
e373ee1165 | |||
375d6aa0da | |||
4c4fde8bf3 | |||
5e9e119c76 | |||
2a383feef6 | |||
a726b796db | |||
9348f9931e | |||
4c79232f17 | |||
16720a2f70 | |||
69a8a86ff6 | |||
b0286c9c4d | |||
660e97c764 | |||
df522ebe6f | |||
be35cc9912 | |||
9801c4166f | |||
80db0ed0b3 | |||
b9d98ede39 | |||
e6c8afa5de | |||
60b3f30ab3 | |||
cfd2011e80 | |||
5ed4c27732 | |||
afd1072583 | |||
64ad54aa51 | |||
3df060cad6 | |||
1497d58e41 | |||
fd028ca1e7 | |||
a1d812398b | |||
df96a81a75 | |||
656d30be83 | |||
6e8a164e67 | |||
521288dae0 | |||
4c464390ac | |||
408e69c41c |
@ -78,7 +78,7 @@ public:
|
|||||||
inline bool matchCommandLine(const char* cmd, const char* arg) { return (!stricmp(command.c_str() + prefix, cmd + prefix) && (argument.empty() || !stricmp(argument.c_str(), arg))); }
|
inline bool matchCommandLine(const char* cmd, const char* arg) { return (!stricmp(command.c_str() + prefix, cmd + prefix) && (argument.empty() || !stricmp(argument.c_str(), arg))); }
|
||||||
inline bool matchCommand(const char* cmd) { return (!strcmp(command.c_str(), cmd)); }
|
inline bool matchCommand(const char* cmd) { return (!strcmp(command.c_str(), cmd)); }
|
||||||
inline int getFunction() const { return function; }
|
inline int getFunction() const { return function; }
|
||||||
inline bool gotAccess(int f) const { return (!flags || ((flags & f) == flags)); }
|
inline bool gotAccess(int f) const { return (!flags || ((flags & f) != 0)); }
|
||||||
inline CPluginMngr::CPlugin* getPlugin() { return plugin; }
|
inline CPluginMngr::CPlugin* getPlugin() { return plugin; }
|
||||||
inline bool isViewable() const { return listable; }
|
inline bool isViewable() const { return listable; }
|
||||||
inline int getFlags() const { return flags; }
|
inline int getFlags() const { return flags; }
|
||||||
|
@ -295,6 +295,11 @@ void CFlagManager::WriteCommands(void)
|
|||||||
|
|
||||||
File=fopen(m_strConfigFile.c_str(),"a");
|
File=fopen(m_strConfigFile.c_str(),"a");
|
||||||
|
|
||||||
|
if (!File)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
iter=m_FlagList.begin();
|
iter=m_FlagList.begin();
|
||||||
end=m_FlagList.end();
|
end=m_FlagList.end();
|
||||||
|
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
// New
|
// New
|
||||||
typedef void* (*PFN_REQ_FNPTR)(const char * /*name*/);
|
typedef void* (*PFN_REQ_FNPTR)(const char * /*name*/);
|
||||||
typedef int (FAR *QUERYMOD_NEW)(int * /*ifvers*/, amxx_module_info_s * /*modInfo*/);
|
typedef int (FAR *QUERYMOD_NEW)(int * /*ifvers*/, amxx_module_info_s * /*modInfo*/);
|
||||||
|
typedef int (FAR *CHECKGAME_NEW)(const char *);
|
||||||
typedef int (FAR *ATTACHMOD_NEW)(PFN_REQ_FNPTR /*reqFnptrFunc*/);
|
typedef int (FAR *ATTACHMOD_NEW)(PFN_REQ_FNPTR /*reqFnptrFunc*/);
|
||||||
typedef int (FAR *DETACHMOD_NEW)(void);
|
typedef int (FAR *DETACHMOD_NEW)(void);
|
||||||
typedef void (FAR *PLUGINSLOADED_NEW)(void);
|
typedef void (FAR *PLUGINSLOADED_NEW)(void);
|
||||||
@ -219,6 +220,9 @@ bool CModule::queryModule()
|
|||||||
m_Handle = DLLOAD(m_Filename.c_str()); // load file
|
m_Handle = DLLOAD(m_Filename.c_str()); // load file
|
||||||
if (!m_Handle)
|
if (!m_Handle)
|
||||||
{
|
{
|
||||||
|
#if defined __linux__
|
||||||
|
AMXXLOG_Log("[AMXX] Module \"%s\" failed to load (%s)", m_Filename.c_str(), dlerror());
|
||||||
|
#endif
|
||||||
m_Status = MODULE_BADLOAD;
|
m_Status = MODULE_BADLOAD;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -293,6 +297,33 @@ bool CModule::queryModule()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Lastly, check to see if this module is able to load on this game mod
|
||||||
|
CHECKGAME_NEW checkGame_New = (CHECKGAME_NEW)DLPROC(m_Handle, "AMXX_CheckGame");
|
||||||
|
|
||||||
|
if (checkGame_New)
|
||||||
|
{
|
||||||
|
// This is an optional check; do not fail modules that do not have it
|
||||||
|
int ret = checkGame_New(g_mod_name.c_str());
|
||||||
|
|
||||||
|
if (ret != AMXX_GAME_OK)
|
||||||
|
{
|
||||||
|
switch (ret)
|
||||||
|
{
|
||||||
|
case AMXX_GAME_BAD:
|
||||||
|
AMXXLOG_Log("[AMXX] Module \"%s\" (version \"%s\") reported that it cannot load on game \"%s\"", m_Filename.c_str(), getVersion(), g_mod_name.c_str());
|
||||||
|
m_Status = MODULE_BADGAME;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
AMXXLOG_Log("[AMXX] Module \"%s\" (version \"%s\") returned an unknown CheckGame code (value: %d)", m_Filename.c_str(), getVersion(), ret);
|
||||||
|
m_Status = MODULE_BADLOAD;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
m_Status = MODULE_QUERY;
|
m_Status = MODULE_QUERY;
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
@ -400,6 +431,7 @@ const char* CModule::getStatus() const
|
|||||||
case MODULE_NEWER: return "newer";
|
case MODULE_NEWER: return "newer";
|
||||||
case MODULE_INTERROR: return "internal err";
|
case MODULE_INTERROR: return "internal err";
|
||||||
case MODULE_NOT64BIT: return "not 64bit";
|
case MODULE_NOT64BIT: return "not 64bit";
|
||||||
|
case MODULE_BADGAME: return "bad game";
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,7 +49,8 @@ enum MODULE_STATUS
|
|||||||
MODULE_NEWER, // newer interface
|
MODULE_NEWER, // newer interface
|
||||||
MODULE_INTERROR, // Internal error
|
MODULE_INTERROR, // Internal error
|
||||||
MODULE_FUNCNOTPRESENT, // Function not present
|
MODULE_FUNCNOTPRESENT, // Function not present
|
||||||
MODULE_NOT64BIT // Not 64 bit compatible
|
MODULE_NOT64BIT, // Not 64 bit compatible
|
||||||
|
MODULE_BADGAME, // Module cannot load on the current game mod
|
||||||
};
|
};
|
||||||
|
|
||||||
struct amxx_module_info_s
|
struct amxx_module_info_s
|
||||||
@ -68,6 +69,9 @@ struct amxx_module_info_s
|
|||||||
#define AMXX_PARAM 2 /* Invalid parameter */
|
#define AMXX_PARAM 2 /* Invalid parameter */
|
||||||
#define AMXX_FUNC_NOT_PRESENT 3 /* Function not present */
|
#define AMXX_FUNC_NOT_PRESENT 3 /* Function not present */
|
||||||
|
|
||||||
|
#define AMXX_GAME_OK 0 /* Module can load on this game. */
|
||||||
|
#define AMXX_GAME_BAD 1 /* Module cannot load on this game. */
|
||||||
|
|
||||||
#define AMXX_INTERFACE_VERSION 4
|
#define AMXX_INTERFACE_VERSION 4
|
||||||
|
|
||||||
class CModule
|
class CModule
|
||||||
|
@ -6,7 +6,7 @@ MM_ROOT = ../../metamod/metamod
|
|||||||
|
|
||||||
### EDIT BELOW FOR OTHER PROJECTS ###
|
### EDIT BELOW FOR OTHER PROJECTS ###
|
||||||
|
|
||||||
OPT_FLAGS = -O2 -fno-strict-aliasing -funroll-loops -s -fomit-frame-pointer -pipe
|
OPT_FLAGS = -O2 -fno-strict-aliasing -funroll-loops -s -fomit-frame-pointer -pipe -DNDEBUG
|
||||||
DEBUG_FLAGS = -g -ggdb3
|
DEBUG_FLAGS = -g -ggdb3
|
||||||
CPP = gcc-4.1
|
CPP = gcc-4.1
|
||||||
NAME = amxmodx
|
NAME = amxmodx
|
||||||
@ -20,7 +20,8 @@ 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 \
|
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 \
|
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 \
|
optimizer.cpp format.cpp messages.cpp libraries.cpp vector.cpp sorting.cpp \
|
||||||
amxmod_compat.cpp nongpl_matches.cpp CFlagManager.cpp datastructs.cpp
|
amxmod_compat.cpp nongpl_matches.cpp CFlagManager.cpp datastructs.cpp \
|
||||||
|
trie_natives.cpp
|
||||||
|
|
||||||
LINK = -lgcc -static-libgcc
|
LINK = -lgcc -static-libgcc
|
||||||
|
|
||||||
@ -48,7 +49,7 @@ ifeq "$(BINLOG)" "true"
|
|||||||
CFLAGS += -DBINLOG_ENABLED
|
CFLAGS += -DBINLOG_ENABLED
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CFLAGS += -DLINUX -DNDEBUG -DAMX_NOPROPLIST -fPIC -Wall -Werror -DHAVE_STDINT_H -static-libgcc -fno-rtti -fno-exceptions
|
CFLAGS += -DLINUX -DAMX_NOPROPLIST -Wall -Werror -DHAVE_STDINT_H -static-libgcc -fno-rtti -fno-exceptions
|
||||||
|
|
||||||
ifeq "$(AMD64)" "true"
|
ifeq "$(AMD64)" "true"
|
||||||
BINARY = $(NAME)_$(BIN_SUFFIX_64)
|
BINARY = $(NAME)_$(BIN_SUFFIX_64)
|
||||||
@ -62,6 +63,7 @@ else
|
|||||||
CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
|
CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
|
||||||
LINK += -lz
|
LINK += -lz
|
||||||
OPT_FLAGS += -march=i586
|
OPT_FLAGS += -march=i586
|
||||||
|
CFLAGS += -m32
|
||||||
endif
|
endif
|
||||||
|
|
||||||
OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
|
OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
|
||||||
|
@ -803,7 +803,7 @@ static void expand(unsigned char *code, long codesize, long memsize)
|
|||||||
do {
|
do {
|
||||||
codesize--;
|
codesize--;
|
||||||
/* no input byte should be shifted out completely */
|
/* no input byte should be shifted out completely */
|
||||||
assert(shift<8*sizeof(cell));
|
assert(shift<static_cast<int>(8*sizeof(cell)));
|
||||||
/* we work from the end of a sequence backwards; the final code in
|
/* we work from the end of a sequence backwards; the final code in
|
||||||
* a sequence may not have the continuation bit set */
|
* a sequence may not have the continuation bit set */
|
||||||
assert(shift>0 || (code[(size_t)codesize] & 0x80)==0);
|
assert(shift>0 || (code[(size_t)codesize] & 0x80)==0);
|
||||||
|
@ -4597,7 +4597,10 @@ static cell AMX_NATIVE_CALL LookupLangKey(AMX *amx, cell *params)
|
|||||||
set_amxstring(amx,params[1],def,params[2]);
|
set_amxstring(amx,params[1],def,params[2]);
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
static cell AMX_NATIVE_CALL is_rukia_a_hag(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
};
|
||||||
AMX_NATIVE_INFO amxmodx_Natives[] =
|
AMX_NATIVE_INFO amxmodx_Natives[] =
|
||||||
{
|
{
|
||||||
{"abort", amx_abort},
|
{"abort", amx_abort},
|
||||||
@ -4799,5 +4802,6 @@ AMX_NATIVE_INFO amxmodx_Natives[] =
|
|||||||
{"LookupLangKey", LookupLangKey},
|
{"LookupLangKey", LookupLangKey},
|
||||||
{"PrepareArray", PrepareArray},
|
{"PrepareArray", PrepareArray},
|
||||||
{"ShowSyncHudMsg", ShowSyncHudMsg},
|
{"ShowSyncHudMsg", ShowSyncHudMsg},
|
||||||
|
{"is_rukia_a_hag", is_rukia_a_hag},
|
||||||
{NULL, NULL}
|
{NULL, NULL}
|
||||||
};
|
};
|
||||||
|
@ -289,7 +289,7 @@ void Debugger::BeginExec()
|
|||||||
{
|
{
|
||||||
Tracer *pTracer = new Tracer();
|
Tracer *pTracer = new Tracer();
|
||||||
m_pCalls.push_back(pTracer);
|
m_pCalls.push_back(pTracer);
|
||||||
assert(m_Top == (m_pCalls.size() - 1));
|
assert(m_Top == static_cast<int>(m_pCalls.size() - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
m_pCalls[m_Top]->Reset();
|
m_pCalls[m_Top]->Reset();
|
||||||
|
@ -516,7 +516,7 @@ static cell AMX_NATIVE_CALL amx_fread_blocks(AMX *amx, cell *params)
|
|||||||
|
|
||||||
cell *addr = get_amxaddr(amx, params[2]);
|
cell *addr = get_amxaddr(amx, params[2]);
|
||||||
size_t blocks = params[3];
|
size_t blocks = params[3];
|
||||||
switch (params[3])
|
switch (params[4])
|
||||||
{
|
{
|
||||||
case 1: //char
|
case 1: //char
|
||||||
{
|
{
|
||||||
|
@ -160,71 +160,125 @@ void AddString(U **buf_p, size_t &maxlen, const cell *string, int width, int pre
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename U>
|
template <typename U>
|
||||||
void AddFloat(U **buf_p, size_t &maxlen, double fval, int width, int prec)
|
void AddFloat(U **buf_p, size_t &maxlen, double fval, int width, int prec, int flags)
|
||||||
{
|
{
|
||||||
U text[32];
|
int digits; // non-fraction part digits
|
||||||
int digits;
|
double tmp; // temporary
|
||||||
double signedVal;
|
U *buf = *buf_p; // output buffer pointer
|
||||||
U *buf;
|
int val; // temporary
|
||||||
int val;
|
int sign = 0; // 0: positive, 1: negative
|
||||||
|
int fieldlength; // for padding
|
||||||
|
int significant_digits = 0; // number of significant digits written
|
||||||
|
const int MAX_SIGNIFICANT_DIGITS = 16;
|
||||||
|
|
||||||
|
// default precision
|
||||||
|
if (prec < 0)
|
||||||
|
{
|
||||||
|
prec = 6;
|
||||||
|
}
|
||||||
|
|
||||||
// get the sign
|
// get the sign
|
||||||
signedVal = fval;
|
|
||||||
if (fval < 0)
|
if (fval < 0)
|
||||||
fval = -fval;
|
|
||||||
|
|
||||||
// write the float number
|
|
||||||
digits = 0;
|
|
||||||
val = (int)fval;
|
|
||||||
do {
|
|
||||||
text[digits++] = '0' + val % 10;
|
|
||||||
val /= 10;
|
|
||||||
} while (val);
|
|
||||||
|
|
||||||
if (signedVal < 0)
|
|
||||||
text[digits++] = '-';
|
|
||||||
|
|
||||||
buf = *buf_p;
|
|
||||||
|
|
||||||
while (digits < width && maxlen)
|
|
||||||
{
|
{
|
||||||
|
fval = -fval;
|
||||||
|
sign = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// compute whole-part digits count
|
||||||
|
digits = (int)log10(fval) + 1;
|
||||||
|
|
||||||
|
// Only print 0.something if 0 < fval < 1
|
||||||
|
if (digits < 1)
|
||||||
|
{
|
||||||
|
digits = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// compute the field length
|
||||||
|
fieldlength = digits + prec + ((prec > 0) ? 1 : 0) + sign;
|
||||||
|
|
||||||
|
// minus sign BEFORE left padding if padding with zeros
|
||||||
|
if (sign && maxlen && (flags & ZEROPAD))
|
||||||
|
{
|
||||||
|
*buf++ = '-';
|
||||||
|
maxlen--;
|
||||||
|
}
|
||||||
|
|
||||||
|
// right justify if required
|
||||||
|
if ((flags & LADJUST) == 0)
|
||||||
|
{
|
||||||
|
while ((fieldlength < width) && maxlen)
|
||||||
|
{
|
||||||
|
*buf++ = (flags & ZEROPAD) ? '0' : ' ';
|
||||||
|
width--;
|
||||||
|
maxlen--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// minus sign AFTER left padding if padding with spaces
|
||||||
|
if (sign && maxlen && !(flags & ZEROPAD))
|
||||||
|
{
|
||||||
|
*buf++ = '-';
|
||||||
|
maxlen--;
|
||||||
|
}
|
||||||
|
|
||||||
|
// write the whole part
|
||||||
|
tmp = pow(10.0, digits-1);
|
||||||
|
while ((digits--) && maxlen)
|
||||||
|
{
|
||||||
|
if (++significant_digits > MAX_SIGNIFICANT_DIGITS)
|
||||||
|
{
|
||||||
|
*buf++ = '0';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
val = (int)(fval / tmp);
|
||||||
|
*buf++ = '0' + val;
|
||||||
|
fval -= val * tmp;
|
||||||
|
tmp *= 0.1;
|
||||||
|
}
|
||||||
|
maxlen--;
|
||||||
|
}
|
||||||
|
|
||||||
|
// write the fraction part
|
||||||
|
if (maxlen)
|
||||||
|
{
|
||||||
|
*buf++ = '.';
|
||||||
|
maxlen--;
|
||||||
|
}
|
||||||
|
|
||||||
|
tmp = pow(10.0, prec);
|
||||||
|
|
||||||
|
fval *= tmp;
|
||||||
|
while (prec-- && maxlen)
|
||||||
|
{
|
||||||
|
if (++significant_digits > MAX_SIGNIFICANT_DIGITS)
|
||||||
|
{
|
||||||
|
*buf++ = '0';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tmp *= 0.1;
|
||||||
|
val = (int)(fval / tmp);
|
||||||
|
*buf++ = '0' + val;
|
||||||
|
fval -= val * tmp;
|
||||||
|
}
|
||||||
|
maxlen--;
|
||||||
|
}
|
||||||
|
|
||||||
|
// left justify if required
|
||||||
|
if (flags & LADJUST)
|
||||||
|
{
|
||||||
|
while ((fieldlength < width) && maxlen)
|
||||||
|
{
|
||||||
|
// right-padding only with spaces, ZEROPAD is ignored
|
||||||
*buf++ = ' ';
|
*buf++ = ' ';
|
||||||
width--;
|
width--;
|
||||||
maxlen--;
|
maxlen--;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (digits-- && maxlen)
|
|
||||||
{
|
|
||||||
*buf++ = text[digits];
|
|
||||||
maxlen--;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// update parent's buffer pointer
|
||||||
*buf_p = buf;
|
*buf_p = buf;
|
||||||
|
|
||||||
if (prec < 0)
|
|
||||||
prec = 6;
|
|
||||||
// write the fraction
|
|
||||||
digits = 0;
|
|
||||||
while (digits < prec)
|
|
||||||
{
|
|
||||||
fval -= (int) fval;
|
|
||||||
fval *= 10.0;
|
|
||||||
val = (int) fval;
|
|
||||||
text[digits++] = '0' + val % 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (digits > 0 && maxlen)
|
|
||||||
{
|
|
||||||
buf = *buf_p;
|
|
||||||
*buf++ = '.';
|
|
||||||
maxlen--;
|
|
||||||
for (prec = 0; maxlen && prec < digits; prec++)
|
|
||||||
{
|
|
||||||
*buf++ = text[prec];
|
|
||||||
maxlen--;
|
|
||||||
}
|
|
||||||
*buf_p = buf;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename U>
|
template <typename U>
|
||||||
@ -481,7 +535,7 @@ reswitch:
|
|||||||
break;
|
break;
|
||||||
case 'f':
|
case 'f':
|
||||||
CHECK_ARGS(0);
|
CHECK_ARGS(0);
|
||||||
AddFloat(&buf_p, llen, amx_ctof(*get_amxaddr(amx, params[arg])), width, prec);
|
AddFloat(&buf_p, llen, amx_ctof(*get_amxaddr(amx, params[arg])), width, prec, flags);
|
||||||
arg++;
|
arg++;
|
||||||
break;
|
break;
|
||||||
case 'X':
|
case 'X':
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
#include "messages.h"
|
#include "messages.h"
|
||||||
|
|
||||||
Message Msg;
|
Message Msg;
|
||||||
CVector<int> msgHooks[256];
|
//CVector<int> msgHooks[256];
|
||||||
|
RegisteredMessage msgHooks[256];
|
||||||
int msgBlocks[256] = {BLOCK_NOT};
|
int msgBlocks[256] = {BLOCK_NOT};
|
||||||
int msgDest;
|
int msgDest;
|
||||||
int msgType;
|
int msgType;
|
||||||
@ -16,7 +17,7 @@ void ClearMessages()
|
|||||||
{
|
{
|
||||||
for (size_t i=0; i<MAX_MESSAGES; i++)
|
for (size_t i=0; i<MAX_MESSAGES; i++)
|
||||||
{
|
{
|
||||||
msgHooks[i].clear();
|
msgHooks[i].Clear();
|
||||||
msgBlocks[i] = BLOCK_NOT;
|
msgBlocks[i] = BLOCK_NOT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -200,7 +201,7 @@ void C_MessageBegin(int msg_dest, int msg_type, const float *pOrigin, edict_t *e
|
|||||||
inblock = true;
|
inblock = true;
|
||||||
msgType = msg_type;
|
msgType = msg_type;
|
||||||
RETURN_META(MRES_SUPERCEDE);
|
RETURN_META(MRES_SUPERCEDE);
|
||||||
} else if (msgHooks[msg_type].size()) {
|
} else if (msgHooks[msg_type].Hooked()) {
|
||||||
inhook = true;
|
inhook = true;
|
||||||
msgDest = msg_dest;
|
msgDest = msg_dest;
|
||||||
msgType = msg_type;
|
msgType = msg_type;
|
||||||
@ -318,8 +319,8 @@ void C_WriteEntity(int iValue)
|
|||||||
|
|
||||||
void C_MessageEnd(void)
|
void C_MessageEnd(void)
|
||||||
{
|
{
|
||||||
int mres = 0, mresB = 0;
|
int mres = 0;
|
||||||
unsigned int i = 0;
|
|
||||||
if (inblock)
|
if (inblock)
|
||||||
{
|
{
|
||||||
inblock = false;
|
inblock = false;
|
||||||
@ -329,12 +330,17 @@ void C_MessageEnd(void)
|
|||||||
}
|
}
|
||||||
RETURN_META(MRES_SUPERCEDE);
|
RETURN_META(MRES_SUPERCEDE);
|
||||||
} else if (inhook) {
|
} else if (inhook) {
|
||||||
|
|
||||||
|
mres = msgHooks[msgType].Execute((cell)msgType, (cell)msgDest, (cell)ENTINDEX(msgpEntity));
|
||||||
|
|
||||||
|
/*
|
||||||
for (i=0; i<msgHooks[msgType].size(); i++)
|
for (i=0; i<msgHooks[msgType].size(); i++)
|
||||||
{
|
{
|
||||||
mresB = executeForwards(msgHooks[msgType].at(i), (cell)msgType, (cell)msgDest, (cell)ENTINDEX(msgpEntity));
|
mresB = executeForwards(msgHooks[msgType].at(i), (cell)msgType, (cell)msgDest, (cell)ENTINDEX(msgpEntity));
|
||||||
if (mresB > mres)
|
if (mresB > mres)
|
||||||
mres = mresB;
|
mres = mresB;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
inhook = false;
|
inhook = false;
|
||||||
if (mres & 1)
|
if (mres & 1)
|
||||||
{
|
{
|
||||||
@ -477,7 +483,7 @@ static cell AMX_NATIVE_CALL register_message(AMX *amx, cell *params)
|
|||||||
int id = registerSPForwardByName(amx, name, FP_CELL, FP_CELL, FP_CELL, FP_CELL, FP_DONE);
|
int id = registerSPForwardByName(amx, name, FP_CELL, FP_CELL, FP_CELL, FP_CELL, FP_DONE);
|
||||||
if (id != -1)
|
if (id != -1)
|
||||||
{
|
{
|
||||||
msgHooks[params[1]].push_back(id);
|
msgHooks[params[1]].AddHook(id);
|
||||||
return id;
|
return id;
|
||||||
} else {
|
} else {
|
||||||
LogError(amx, AMX_ERR_NOTFOUND, "Could not find function \"%s\"", name);
|
LogError(amx, AMX_ERR_NOTFOUND, "Could not find function \"%s\"", name);
|
||||||
@ -488,6 +494,29 @@ static cell AMX_NATIVE_CALL register_message(AMX *amx, cell *params)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// unregister_message(msgid, msghandle)
|
||||||
|
static cell AMX_NATIVE_CALL unregister_message(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
if (!Msg.Ready())
|
||||||
|
Msg.Init();
|
||||||
|
|
||||||
|
if (params[1]>0 && params[1] < 256)
|
||||||
|
{
|
||||||
|
int id = params[2];
|
||||||
|
if (id != -1)
|
||||||
|
{
|
||||||
|
msgHooks[params[1]].RemoveHook(id);
|
||||||
|
return id;
|
||||||
|
} else {
|
||||||
|
LogError(amx, AMX_ERR_NOTFOUND, "Invalid registered message handle");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static cell AMX_NATIVE_CALL set_msg_block(AMX *amx, cell *params)
|
static cell AMX_NATIVE_CALL set_msg_block(AMX *amx, cell *params)
|
||||||
{
|
{
|
||||||
int msgid = params[1];
|
int msgid = params[1];
|
||||||
@ -775,6 +804,7 @@ AMX_NATIVE_INFO msg_Natives[] =
|
|||||||
{"write_string", write_string},
|
{"write_string", write_string},
|
||||||
|
|
||||||
{"register_message", register_message},
|
{"register_message", register_message},
|
||||||
|
{"unregister_message", unregister_message},
|
||||||
|
|
||||||
{"set_msg_block", set_msg_block},
|
{"set_msg_block", set_msg_block},
|
||||||
{"get_msg_block", get_msg_block},
|
{"get_msg_block", get_msg_block},
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#include "amx.h"
|
#include "amx.h"
|
||||||
#include "CVector.h"
|
#include "CVector.h"
|
||||||
#include "CString.h"
|
#include "CString.h"
|
||||||
|
#include "sh_stack.h"
|
||||||
|
|
||||||
#define MAX_MESSAGES 255
|
#define MAX_MESSAGES 255
|
||||||
|
|
||||||
@ -15,6 +16,136 @@
|
|||||||
#define BLOCK_ONCE 1
|
#define BLOCK_ONCE 1
|
||||||
#define BLOCK_SET 2
|
#define BLOCK_SET 2
|
||||||
|
|
||||||
|
class RegisteredMessage
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
CVector<int> m_Forwards;
|
||||||
|
CStack<int> m_InExecution;
|
||||||
|
bool m_Cleanup;
|
||||||
|
|
||||||
|
public:
|
||||||
|
RegisteredMessage() : m_Cleanup(false) { }
|
||||||
|
~RegisteredMessage() { this->Clear(); }
|
||||||
|
|
||||||
|
void AddHook(int fwd)
|
||||||
|
{
|
||||||
|
m_Forwards.push_back(fwd);
|
||||||
|
}
|
||||||
|
bool RemoveHook(int fwd)
|
||||||
|
{
|
||||||
|
// Don't erase a forward if we're in the middle of execution; this
|
||||||
|
// could throw off the iterator that is going through the forwards
|
||||||
|
// and executing them. Instead, unregister the forward and set it
|
||||||
|
// to -1 from within the vector.
|
||||||
|
if (m_InExecution.size())
|
||||||
|
{
|
||||||
|
this->m_Cleanup = true;
|
||||||
|
|
||||||
|
CVector<int>::iterator iter = m_Forwards.begin();
|
||||||
|
CVector<int>::iterator end = m_Forwards.end();
|
||||||
|
while (iter != end)
|
||||||
|
{
|
||||||
|
if (*iter == fwd)
|
||||||
|
{
|
||||||
|
if (*iter != -1)
|
||||||
|
{
|
||||||
|
unregisterSPForward(*iter);
|
||||||
|
}
|
||||||
|
*iter = -1;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
iter++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CVector<int>::iterator iter = m_Forwards.begin();
|
||||||
|
CVector<int>::iterator end = m_Forwards.end();
|
||||||
|
while (iter != end)
|
||||||
|
{
|
||||||
|
if (*iter == fwd)
|
||||||
|
{
|
||||||
|
if (fwd != -1)
|
||||||
|
{
|
||||||
|
unregisterSPForward(fwd);
|
||||||
|
|
||||||
|
m_Forwards.erase(iter);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// -1 could be in here more than once
|
||||||
|
m_Forwards.erase(iter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
iter++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Clear()
|
||||||
|
{
|
||||||
|
while (m_InExecution.size())
|
||||||
|
{
|
||||||
|
m_InExecution.pop();
|
||||||
|
}
|
||||||
|
for (size_t i = 0; i < m_Forwards.size(); i++)
|
||||||
|
{
|
||||||
|
int fwd = m_Forwards[i];
|
||||||
|
|
||||||
|
if (fwd != -1)
|
||||||
|
{
|
||||||
|
unregisterSPForward(m_Forwards[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m_Forwards.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
cell Execute(cell type, cell dest, cell entity)
|
||||||
|
{
|
||||||
|
m_InExecution.push(1);
|
||||||
|
cell res = 0;
|
||||||
|
cell thisres = 0;
|
||||||
|
for (size_t i = 0; i < m_Forwards.size(); i++)
|
||||||
|
{
|
||||||
|
int fwd = m_Forwards[i];
|
||||||
|
|
||||||
|
if (fwd != -1)
|
||||||
|
{
|
||||||
|
thisres = executeForwards(fwd, type, dest, entity);
|
||||||
|
if (thisres > res)
|
||||||
|
{
|
||||||
|
res = thisres;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m_InExecution.pop();
|
||||||
|
|
||||||
|
if (m_InExecution.size() == 0 && m_Cleanup)
|
||||||
|
{
|
||||||
|
this->RemoveHook(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
bool Hooked() const
|
||||||
|
{
|
||||||
|
return m_Forwards.size() != 0;
|
||||||
|
}
|
||||||
|
};
|
||||||
enum msgtype
|
enum msgtype
|
||||||
{
|
{
|
||||||
arg_byte = 1,
|
arg_byte = 1,
|
||||||
@ -76,7 +207,7 @@ void C_WriteString(const char *sz);
|
|||||||
void C_WriteEntity(int iValue);
|
void C_WriteEntity(int iValue);
|
||||||
void C_MessageEnd(void);
|
void C_MessageEnd(void);
|
||||||
|
|
||||||
extern CVector<int> msgHooks[256];
|
extern RegisteredMessage msgHooks[256];
|
||||||
extern int msgBlocks[256];
|
extern int msgBlocks[256];
|
||||||
|
|
||||||
void ClearMessages();
|
void ClearMessages();
|
||||||
|
@ -51,7 +51,7 @@
|
|||||||
#include "datastructs.h"
|
#include "datastructs.h"
|
||||||
#include "CFlagManager.h"
|
#include "CFlagManager.h"
|
||||||
#include "svn_version.h"
|
#include "svn_version.h"
|
||||||
|
#include "trie_natives.h"
|
||||||
|
|
||||||
plugin_info_t Plugin_info =
|
plugin_info_t Plugin_info =
|
||||||
{
|
{
|
||||||
@ -412,6 +412,7 @@ int C_Spawn(edict_t *pent)
|
|||||||
};
|
};
|
||||||
VectorHolder.clear();
|
VectorHolder.clear();
|
||||||
|
|
||||||
|
g_TrieHandles.clear();
|
||||||
char map_pluginsfile_path[256];
|
char map_pluginsfile_path[256];
|
||||||
char prefixed_map_pluginsfile[256];
|
char prefixed_map_pluginsfile[256];
|
||||||
char configs_dir[256];
|
char configs_dir[256];
|
||||||
|
@ -49,6 +49,7 @@
|
|||||||
#include "libraries.h"
|
#include "libraries.h"
|
||||||
#include "messages.h"
|
#include "messages.h"
|
||||||
#include "amxmod_compat.h"
|
#include "amxmod_compat.h"
|
||||||
|
#include "trie_natives.h"
|
||||||
|
|
||||||
CList<CModule, const char*> g_modules;
|
CList<CModule, const char*> g_modules;
|
||||||
CList<CScript, AMX*> g_loadedscripts;
|
CList<CScript, AMX*> g_loadedscripts;
|
||||||
@ -579,6 +580,7 @@ int set_amxnatives(AMX* amx, char error[128])
|
|||||||
amx_Register(amx, vector_Natives, -1);
|
amx_Register(amx, vector_Natives, -1);
|
||||||
amx_Register(amx, g_SortNatives, -1);
|
amx_Register(amx, g_SortNatives, -1);
|
||||||
amx_Register(amx, g_DataStructNatives, -1);
|
amx_Register(amx, g_DataStructNatives, -1);
|
||||||
|
amx_Register(amx, trie_Natives, -1);
|
||||||
|
|
||||||
if (amx->flags & AMX_FLAG_OLDFILE)
|
if (amx->flags & AMX_FLAG_OLDFILE)
|
||||||
{
|
{
|
||||||
@ -956,6 +958,9 @@ bool LoadModule(const char *shortname, PLUG_LOADTIME now, bool simplify, bool no
|
|||||||
case MODULE_NOT64BIT:
|
case MODULE_NOT64BIT:
|
||||||
report_error(1, "[AMXX] Module \"%s\" is not 64 bit compatible.", path.c_str());
|
report_error(1, "[AMXX] Module \"%s\" is not 64 bit compatible.", path.c_str());
|
||||||
break;
|
break;
|
||||||
|
case MODULE_BADGAME:
|
||||||
|
report_error(1, "[AMXX] Module \"%s\" cannot load on game \"%s\"", path.c_str(), g_mod_name.c_str());
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
error = false;
|
error = false;
|
||||||
break;
|
break;
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "amxmodx", "amxmodx_mm.vcproj", "{2BF64D1A-AC89-41B0-9D02-FB8CB610F850}"
|
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfiguration) = preSolution
|
|
||||||
JITDebug = JITDebug
|
|
||||||
JITDebugBinLog = JITDebugBinLog
|
|
||||||
JITRelease = JITRelease
|
|
||||||
JITReleaseBinLog = JITReleaseBinLog
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfiguration) = postSolution
|
|
||||||
{2BF64D1A-AC89-41B0-9D02-FB8CB610F850}.JITDebug.ActiveCfg = JITDebug|Win32
|
|
||||||
{2BF64D1A-AC89-41B0-9D02-FB8CB610F850}.JITDebug.Build.0 = JITDebug|Win32
|
|
||||||
{2BF64D1A-AC89-41B0-9D02-FB8CB610F850}.JITDebugBinLog.ActiveCfg = JITDebugBinLog|Win32
|
|
||||||
{2BF64D1A-AC89-41B0-9D02-FB8CB610F850}.JITDebugBinLog.Build.0 = JITDebugBinLog|Win32
|
|
||||||
{2BF64D1A-AC89-41B0-9D02-FB8CB610F850}.JITRelease.ActiveCfg = JITRelease|Win32
|
|
||||||
{2BF64D1A-AC89-41B0-9D02-FB8CB610F850}.JITRelease.Build.0 = JITRelease|Win32
|
|
||||||
{2BF64D1A-AC89-41B0-9D02-FB8CB610F850}.JITReleaseBinLog.ActiveCfg = JITReleaseBinLog|Win32
|
|
||||||
{2BF64D1A-AC89-41B0-9D02-FB8CB610F850}.JITReleaseBinLog.Build.0 = JITReleaseBinLog|Win32
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
@ -1,789 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
|
||||||
<VisualStudioProject
|
|
||||||
ProjectType="Visual C++"
|
|
||||||
Version="7.10"
|
|
||||||
Name="amxmodx"
|
|
||||||
ProjectGUID="{2BF64D1A-AC89-41B0-9D02-FB8CB610F850}"
|
|
||||||
RootNamespace="amxmodx"
|
|
||||||
SccProjectName=""
|
|
||||||
SccLocalPath="">
|
|
||||||
<Platforms>
|
|
||||||
<Platform
|
|
||||||
Name="Win32"/>
|
|
||||||
</Platforms>
|
|
||||||
<Configurations>
|
|
||||||
<Configuration
|
|
||||||
Name="JITDebug|Win32"
|
|
||||||
OutputDirectory="JITDebug"
|
|
||||||
IntermediateDirectory="JITDebug"
|
|
||||||
ConfigurationType="2"
|
|
||||||
UseOfMFC="0"
|
|
||||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
|
||||||
CharacterSet="2">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;amxmodx_EXPORTS;PAWN_CELL_SIZE=32;ASM32;JIT"
|
|
||||||
BasicRuntimeChecks="3"
|
|
||||||
RuntimeLibrary="5"
|
|
||||||
StructMemberAlignment="3"
|
|
||||||
UsePrecompiledHeader="2"
|
|
||||||
PrecompiledHeaderThrough="amxmodx.h"
|
|
||||||
PrecompiledHeaderFile=".\jitdebug/amxmodx.pch"
|
|
||||||
AssemblerListingLocation=".\jitdebug/"
|
|
||||||
ObjectFile=".\jitdebug/"
|
|
||||||
ProgramDataBaseFileName=".\jitdebug/"
|
|
||||||
WarningLevel="3"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
DebugInformationFormat="4"
|
|
||||||
CompileAs="0"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
AdditionalOptions="/MACHINE:I386"
|
|
||||||
AdditionalDependencies="..\zlib\zlib.lib ..\JIT\amxjitsn.obj ..\JIT\amxexecn.obj ..\JIT\natives-x86.obj"
|
|
||||||
OutputFile="jitdebug/amxmodx_mm.dll"
|
|
||||||
Version="0.1"
|
|
||||||
LinkIncremental="2"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
AdditionalLibraryDirectories="..\extra\lib_win32"
|
|
||||||
IgnoreDefaultLibraryNames="MSVCRT;LIBC"
|
|
||||||
ModuleDefinitionFile=""
|
|
||||||
GenerateDebugInformation="TRUE"
|
|
||||||
ProgramDatabaseFile=".\jitdebug/amxmodx_mm.pdb"
|
|
||||||
ImportLibrary=".\jitdebug/amxmodx_mm.lib"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
MkTypLibCompatible="TRUE"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
TargetEnvironment="1"
|
|
||||||
TypeLibraryName=".\debug/amxmodx.tlb"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
Culture="1033"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
|
||||||
Name="JITRelease|Win32"
|
|
||||||
OutputDirectory="JITRelease"
|
|
||||||
IntermediateDirectory="JITRelease"
|
|
||||||
ConfigurationType="2"
|
|
||||||
UseOfMFC="0"
|
|
||||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
|
||||||
CharacterSet="2">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="2"
|
|
||||||
GlobalOptimizations="TRUE"
|
|
||||||
InlineFunctionExpansion="1"
|
|
||||||
EnableIntrinsicFunctions="TRUE"
|
|
||||||
FavorSizeOrSpeed="1"
|
|
||||||
OmitFramePointers="TRUE"
|
|
||||||
OptimizeForProcessor="0"
|
|
||||||
AdditionalIncludeDirectories="..\..\metamod\metamod,..\..\hlsdk\sourcecode\common,..\..\hlsdk\sourcecode\engine,..\..\hlsdk\sourcecode\dlls,..\..\hlsdk\sourcecode\pm_shared,..\extra\include"
|
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;amxmodx_EXPORTS;JIT;ASM32;PAWN_CELL_SIZE=32"
|
|
||||||
IgnoreStandardIncludePath="FALSE"
|
|
||||||
StringPooling="TRUE"
|
|
||||||
RuntimeLibrary="4"
|
|
||||||
EnableFunctionLevelLinking="TRUE"
|
|
||||||
UsePrecompiledHeader="2"
|
|
||||||
PrecompiledHeaderThrough="amxmodx.h"
|
|
||||||
PrecompiledHeaderFile=".\jitrelease/amxmodx.pch"
|
|
||||||
AssemblerListingLocation=".\jitrelease/"
|
|
||||||
ObjectFile=".\jitrelease/"
|
|
||||||
ProgramDataBaseFileName=".\jitrelease/"
|
|
||||||
WarningLevel="3"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
DebugInformationFormat="3"
|
|
||||||
CompileAs="0"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
AdditionalOptions="/MACHINE:I386"
|
|
||||||
AdditionalDependencies="..\zlib\zlib.lib ..\JIT\amxjitsn.obj ..\JIT\amxexecn.obj ..\JIT\natives-x86.obj"
|
|
||||||
OutputFile="jitrelease/amxmodx_mm.dll"
|
|
||||||
LinkIncremental="1"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
AdditionalLibraryDirectories="..\extra\lib_win32"
|
|
||||||
IgnoreDefaultLibraryNames="MSVCRT"
|
|
||||||
ModuleDefinitionFile=""
|
|
||||||
GenerateDebugInformation="TRUE"
|
|
||||||
ProgramDatabaseFile=".\jitrelease/amxmodx_mm.pdb"
|
|
||||||
GenerateMapFile="TRUE"
|
|
||||||
ImportLibrary=".\jitrelease/amxmodx_mm.lib"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
MkTypLibCompatible="TRUE"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
TargetEnvironment="1"
|
|
||||||
TypeLibraryName=".\release/amxmodx.tlb"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
Culture="1033"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
|
||||||
Name="JITDebugBinLog|Win32"
|
|
||||||
OutputDirectory="$(ConfigurationName)"
|
|
||||||
IntermediateDirectory="$(ConfigurationName)"
|
|
||||||
ConfigurationType="2"
|
|
||||||
UseOfMFC="0"
|
|
||||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
|
||||||
CharacterSet="2">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;amxmodx_EXPORTS;PAWN_CELL_SIZE=32;ASM32;JIT;BINLOG_ENABLED"
|
|
||||||
BasicRuntimeChecks="3"
|
|
||||||
RuntimeLibrary="5"
|
|
||||||
StructMemberAlignment="3"
|
|
||||||
UsePrecompiledHeader="2"
|
|
||||||
PrecompiledHeaderThrough="amxmodx.h"
|
|
||||||
PrecompiledHeaderFile=".\jitdebugbinlog/amxmodx.pch"
|
|
||||||
AssemblerListingLocation=".\jitdebugbinlog/"
|
|
||||||
ObjectFile=".\jitdebugbinlog/"
|
|
||||||
ProgramDataBaseFileName=".\jitdebugbinlog/"
|
|
||||||
WarningLevel="3"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
DebugInformationFormat="4"
|
|
||||||
CompileAs="0"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
AdditionalOptions="/MACHINE:I386"
|
|
||||||
AdditionalDependencies="..\zlib\zlib.lib ..\JIT\amxjitsn.obj ..\JIT\amxexecn.obj ..\JIT\natives-x86.obj"
|
|
||||||
OutputFile="jitdebugbinlog/amxmodx_bl_mm.dll"
|
|
||||||
Version="0.1"
|
|
||||||
LinkIncremental="2"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
AdditionalLibraryDirectories="..\extra\lib_win32"
|
|
||||||
IgnoreDefaultLibraryNames="MSVCRT;LIBC"
|
|
||||||
ModuleDefinitionFile=""
|
|
||||||
GenerateDebugInformation="TRUE"
|
|
||||||
ProgramDatabaseFile=".\jitdebugbinlog/amxmodx_bl_mm.pdb"
|
|
||||||
ImportLibrary=".\jitdebugbinlog/amxmodx_bl_mm.lib"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
MkTypLibCompatible="TRUE"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
TargetEnvironment="1"
|
|
||||||
TypeLibraryName=".\debug/amxmodx.tlb"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
Culture="1033"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
|
||||||
Name="JITReleaseBinLog|Win32"
|
|
||||||
OutputDirectory="$(ConfigurationName)"
|
|
||||||
IntermediateDirectory="$(ConfigurationName)"
|
|
||||||
ConfigurationType="2"
|
|
||||||
UseOfMFC="0"
|
|
||||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
|
||||||
CharacterSet="2">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="2"
|
|
||||||
GlobalOptimizations="TRUE"
|
|
||||||
InlineFunctionExpansion="1"
|
|
||||||
EnableIntrinsicFunctions="TRUE"
|
|
||||||
FavorSizeOrSpeed="1"
|
|
||||||
OmitFramePointers="TRUE"
|
|
||||||
OptimizeForProcessor="0"
|
|
||||||
AdditionalIncludeDirectories="..\..\metamod\metamod,..\..\hlsdk\sourcecode\common,..\..\hlsdk\sourcecode\engine,..\..\hlsdk\sourcecode\dlls,..\..\hlsdk\sourcecode\pm_shared,..\extra\include"
|
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;amxmodx_EXPORTS;JIT;ASM32;PAWN_CELL_SIZE=32;BINLOG_ENABLED"
|
|
||||||
IgnoreStandardIncludePath="FALSE"
|
|
||||||
StringPooling="TRUE"
|
|
||||||
RuntimeLibrary="4"
|
|
||||||
EnableFunctionLevelLinking="TRUE"
|
|
||||||
UsePrecompiledHeader="2"
|
|
||||||
PrecompiledHeaderThrough="amxmodx.h"
|
|
||||||
PrecompiledHeaderFile=".\jitreleasebinlog/amxmodx.pch"
|
|
||||||
AssemblerListingLocation=".\jitreleasebinlog/"
|
|
||||||
ObjectFile=".\jitreleasebinlog/"
|
|
||||||
ProgramDataBaseFileName=".\jitreleasebinlog/"
|
|
||||||
WarningLevel="3"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
DebugInformationFormat="3"
|
|
||||||
CompileAs="0"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
AdditionalOptions="/MACHINE:I386"
|
|
||||||
AdditionalDependencies="..\zlib\zlib.lib ..\JIT\amxjitsn.obj ..\JIT\amxexecn.obj ..\JIT\natives-x86.obj"
|
|
||||||
OutputFile="jitreleasebinlog/amxmodx_bl_mm.dll"
|
|
||||||
LinkIncremental="1"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
AdditionalLibraryDirectories="..\extra\lib_win32"
|
|
||||||
IgnoreDefaultLibraryNames="MSVCRT"
|
|
||||||
ModuleDefinitionFile=""
|
|
||||||
GenerateDebugInformation="TRUE"
|
|
||||||
ProgramDatabaseFile=".\jitreleasebinlog/amxmodx_bl_mm.pdb"
|
|
||||||
GenerateMapFile="TRUE"
|
|
||||||
ImportLibrary=".\jitreleasebinlog/amxmodx_bl_mm.lib"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
MkTypLibCompatible="TRUE"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
TargetEnvironment="1"
|
|
||||||
TypeLibraryName=".\release/amxmodx.tlb"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
Culture="1033"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
|
||||||
</Configurations>
|
|
||||||
<References>
|
|
||||||
</References>
|
|
||||||
<Files>
|
|
||||||
<Filter
|
|
||||||
Name="Source Files"
|
|
||||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
|
|
||||||
<File
|
|
||||||
RelativePath="..\amx.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\amxcore.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\amxdbg.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\amxmod_compat.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\amxmodx.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\amxtime.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\amxxfile.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\amxxlog.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\binlog.cpp">
|
|
||||||
<FileConfiguration
|
|
||||||
Name="JITDebug|Win32"
|
|
||||||
ExcludedFromBuild="TRUE">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="JITRelease|Win32"
|
|
||||||
ExcludedFromBuild="TRUE">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CCmd.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CEvent.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CFile.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CFlagManager.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CForward.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CLang.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CLogEvent.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CMenu.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CMisc.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CModule.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CPlugin.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CTask.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CVault.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\datastructs.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\debugger.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\emsg.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\fakemeta.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\file.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\float.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\format.cpp">
|
|
||||||
<FileConfiguration
|
|
||||||
Name="JITRelease|Win32">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AssemblerOutput="4"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="JITReleaseBinLog|Win32">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AssemblerOutput="4"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\libraries.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\md5.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\messages.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\meta_api.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\modules.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\natives.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\newmenus.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\nongpl_matches.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\optimizer.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\power.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\sorting.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\srvcmd.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\string.cpp">
|
|
||||||
<FileConfiguration
|
|
||||||
Name="JITRelease|Win32">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AssemblerOutput="2"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="JITReleaseBinLog|Win32">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AssemblerOutput="2"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\strptime.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\util.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\vault.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\vector.cpp">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Header Files"
|
|
||||||
Filter="h;hpp;hxx;hm;inl">
|
|
||||||
<File
|
|
||||||
RelativePath="..\amx.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\amxdbg.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\amxmod_compat.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\amxmodx.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\amxxfile.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\amxxlog.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\binlog.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CCmd.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CEvent.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CFile.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CFlagManager.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CForward.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CLang.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CList.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CLogEvent.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CMenu.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CMisc.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CModule.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CPlugin.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CQueue.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CString.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CTask.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CVault.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CVector.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\datastructs.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\debugger.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\fakemeta.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\format.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\libraries.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\md5.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\menus.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\messages.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\modules.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\natives.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\newmenus.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\nongpl_matches.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\optimizer.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\resource.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\sh_list.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\sh_stack.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\sh_tinyhash.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\svn_version.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\zlib\zconf.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\zlib\zlib.h">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Resource Files"
|
|
||||||
Filter="rc">
|
|
||||||
<File
|
|
||||||
RelativePath="..\version.rc">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Assembly"
|
|
||||||
Filter="">
|
|
||||||
<File
|
|
||||||
RelativePath="..\amxdefn.asm">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\amxexecn.asm">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\amxjitsn.asm">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\helpers-x86.asm">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\natives-amd64.asm">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\natives-x86.asm">
|
|
||||||
</File>
|
|
||||||
<Filter
|
|
||||||
Name="Builds"
|
|
||||||
Filter="">
|
|
||||||
<File
|
|
||||||
RelativePath="..\Jit\helpers-x86.obj">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="SDK"
|
|
||||||
Filter="">
|
|
||||||
<File
|
|
||||||
RelativePath="..\sdk\amxxmodule.cpp">
|
|
||||||
<FileConfiguration
|
|
||||||
Name="JITDebug|Win32"
|
|
||||||
ExcludedFromBuild="TRUE">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="JITRelease|Win32"
|
|
||||||
ExcludedFromBuild="TRUE">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="JITDebugBinLog|Win32"
|
|
||||||
ExcludedFromBuild="TRUE">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="JITReleaseBinLog|Win32"
|
|
||||||
ExcludedFromBuild="TRUE">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\sdk\amxxmodule.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\sdk\moduleconfig.h">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Pawn Includes"
|
|
||||||
Filter="">
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\amxconst.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\amxmisc.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\amxmodx.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\core.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\file.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\float.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\lang.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\message_const.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\message_stocks.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\messages.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\sorting.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\string.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\svn_version.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\time.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\vault.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\vector.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\xs.inc">
|
|
||||||
</File>
|
|
||||||
<Filter
|
|
||||||
Name="AMX Mod Compat"
|
|
||||||
Filter="">
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\amxmod_compat\amxmod.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\amxmod_compat\maths.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\amxmod_compat\mysql.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\amxmod_compat\translator.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\amxmod_compat\Vexd_Utilities.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\amxmod_compat\VexdUM.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\amxmod_compat\VexdUM_const.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\amxmod_compat\VexdUM_stock.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\plugins\include\amxmod_compat\xtrafun.inc">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
</Filter>
|
|
||||||
</Files>
|
|
||||||
<Globals>
|
|
||||||
</Globals>
|
|
||||||
</VisualStudioProject>
|
|
@ -47,7 +47,7 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories=""
|
AdditionalIncludeDirectories=""$(METAMOD)";"$(HLSDK)\common";"$(HLSDK)\engine";"$(HLSDK)\dlls";"$(HLSDK)\pm_shared""
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;amxmodx_EXPORTS;PAWN_CELL_SIZE=32;ASM32;JIT;_CRT_SECURE_NO_DEPRECATE"
|
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;amxmodx_EXPORTS;PAWN_CELL_SIZE=32;ASM32;JIT;_CRT_SECURE_NO_DEPRECATE"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
@ -85,7 +85,7 @@
|
|||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
AdditionalLibraryDirectories="..\extra\lib_win32"
|
AdditionalLibraryDirectories="..\extra\lib_win32"
|
||||||
IgnoreDefaultLibraryNames="MSVCRT;LIBC"
|
IgnoreDefaultLibraryNames="LIBC;LIBCD;LIBCMT"
|
||||||
ModuleDefinitionFile=""
|
ModuleDefinitionFile=""
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile=".\jitdebug/amxx_mm.pdb"
|
ProgramDatabaseFile=".\jitdebug/amxx_mm.pdb"
|
||||||
@ -153,7 +153,7 @@
|
|||||||
EnableIntrinsicFunctions="true"
|
EnableIntrinsicFunctions="true"
|
||||||
FavorSizeOrSpeed="1"
|
FavorSizeOrSpeed="1"
|
||||||
OmitFramePointers="true"
|
OmitFramePointers="true"
|
||||||
AdditionalIncludeDirectories="..\..\metamod\metamod,..\..\hlsdk\sourcecode\common,..\..\hlsdk\sourcecode\engine,..\..\hlsdk\sourcecode\dlls,..\..\hlsdk\sourcecode\pm_shared,..\extra\include"
|
AdditionalIncludeDirectories=""$(METAMOD)";"$(HLSDK)\common";"$(HLSDK)\engine";"$(HLSDK)\dlls";"$(HLSDK)\pm_shared""
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;amxmodx_EXPORTS;JIT;ASM32;PAWN_CELL_SIZE=32;_CRT_SECURE_NO_DEPRECATE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;amxmodx_EXPORTS;JIT;ASM32;PAWN_CELL_SIZE=32;_CRT_SECURE_NO_DEPRECATE"
|
||||||
IgnoreStandardIncludePath="false"
|
IgnoreStandardIncludePath="false"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
@ -192,7 +192,7 @@
|
|||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
AdditionalLibraryDirectories="..\extra\lib_win32"
|
AdditionalLibraryDirectories="..\extra\lib_win32"
|
||||||
IgnoreDefaultLibraryNames="MSVCRT;LIBC"
|
IgnoreDefaultLibraryNames="LIBC;LIBCD;LIBCMTD"
|
||||||
ModuleDefinitionFile=""
|
ModuleDefinitionFile=""
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile=".\jitrelease/amxmodx_mm.pdb"
|
ProgramDatabaseFile=".\jitrelease/amxmodx_mm.pdb"
|
||||||
@ -257,7 +257,7 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories=""
|
AdditionalIncludeDirectories=""$(METAMOD)";"$(HLSDK)\common";"$(HLSDK)\engine";"$(HLSDK)\dlls";"$(HLSDK)\pm_shared""
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;amxmodx_EXPORTS;PAWN_CELL_SIZE=32;ASM32;JIT;BINLOG_ENABLED;_CRT_SECURE_NO_DEPRECATE"
|
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;amxmodx_EXPORTS;PAWN_CELL_SIZE=32;ASM32;JIT;BINLOG_ENABLED;_CRT_SECURE_NO_DEPRECATE"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
@ -295,7 +295,7 @@
|
|||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
AdditionalLibraryDirectories="..\extra\lib_win32"
|
AdditionalLibraryDirectories="..\extra\lib_win32"
|
||||||
IgnoreDefaultLibraryNames="MSVCRT;LIBC"
|
IgnoreDefaultLibraryNames="LIBC;LIBCD;LIBCMT"
|
||||||
ModuleDefinitionFile=""
|
ModuleDefinitionFile=""
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile=".\jitdebugbinlog/amxmodx_bl_mm.pdb"
|
ProgramDatabaseFile=".\jitdebugbinlog/amxmodx_bl_mm.pdb"
|
||||||
@ -363,7 +363,7 @@
|
|||||||
EnableIntrinsicFunctions="true"
|
EnableIntrinsicFunctions="true"
|
||||||
FavorSizeOrSpeed="1"
|
FavorSizeOrSpeed="1"
|
||||||
OmitFramePointers="true"
|
OmitFramePointers="true"
|
||||||
AdditionalIncludeDirectories="..\..\metamod\metamod,..\..\hlsdk\sourcecode\common,..\..\hlsdk\sourcecode\engine,..\..\hlsdk\sourcecode\dlls,..\..\hlsdk\sourcecode\pm_shared,..\extra\include"
|
AdditionalIncludeDirectories=""$(METAMOD)";"$(HLSDK)\common";"$(HLSDK)\engine";"$(HLSDK)\dlls";"$(HLSDK)\pm_shared""
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;amxmodx_EXPORTS;JIT;ASM32;PAWN_CELL_SIZE=32;BINLOG_ENABLED;_CRT_SECURE_NO_DEPRECATE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;amxmodx_EXPORTS;JIT;ASM32;PAWN_CELL_SIZE=32;BINLOG_ENABLED;_CRT_SECURE_NO_DEPRECATE"
|
||||||
IgnoreStandardIncludePath="false"
|
IgnoreStandardIncludePath="false"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
@ -401,7 +401,7 @@
|
|||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
AdditionalLibraryDirectories="..\extra\lib_win32"
|
AdditionalLibraryDirectories="..\extra\lib_win32"
|
||||||
IgnoreDefaultLibraryNames="MSVCRT;LIBC"
|
IgnoreDefaultLibraryNames="LIBC;LIBCD;LIBCMTD"
|
||||||
ModuleDefinitionFile=""
|
ModuleDefinitionFile=""
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile=".\jitreleasebinlog/amxmodx_bl_mm.pdb"
|
ProgramDatabaseFile=".\jitreleasebinlog/amxmodx_bl_mm.pdb"
|
||||||
@ -657,6 +657,10 @@
|
|||||||
RelativePath="..\strptime.cpp"
|
RelativePath="..\strptime.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\trie_natives.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\util.cpp"
|
RelativePath="..\util.cpp"
|
||||||
>
|
>
|
||||||
@ -842,6 +846,10 @@
|
|||||||
RelativePath="..\svn_version.h"
|
RelativePath="..\svn_version.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\trie_natives.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\zlib\zconf.h"
|
RelativePath="..\zlib\zconf.h"
|
||||||
>
|
>
|
||||||
|
@ -61,7 +61,7 @@ void validate_menu_text(char *str)
|
|||||||
str++;
|
str++;
|
||||||
char c = tolower(*str);
|
char c = tolower(*str);
|
||||||
if (c == 'r' || c == 'w'
|
if (c == 'r' || c == 'w'
|
||||||
|| c== 'w' || c == 'd')
|
|| c== 'y' || c == 'd')
|
||||||
{
|
{
|
||||||
str++;
|
str++;
|
||||||
offs += 2;
|
offs += 2;
|
||||||
@ -183,7 +183,7 @@ int Menu::PagekeyToItem(page_t page, item_t key)
|
|||||||
{
|
{
|
||||||
for (size_t j=0; j<m_Items[i]->blanks.size(); j++)
|
for (size_t j=0; j<m_Items[i]->blanks.size(); j++)
|
||||||
{
|
{
|
||||||
if (m_Items[i]->blanks[j] == 1)
|
if (m_Items[i]->blanks[j].EatNumber())
|
||||||
{
|
{
|
||||||
if (!new_key)
|
if (!new_key)
|
||||||
{
|
{
|
||||||
@ -231,7 +231,7 @@ int Menu::PagekeyToItem(page_t page, item_t key)
|
|||||||
|
|
||||||
for (size_t j=0; j<m_Items[i]->blanks.size(); j++)
|
for (size_t j=0; j<m_Items[i]->blanks.size(); j++)
|
||||||
{
|
{
|
||||||
if (m_Items[i]->blanks[j] == 1)
|
if (m_Items[i]->blanks[j].EatNumber())
|
||||||
{
|
{
|
||||||
new_key--;
|
new_key--;
|
||||||
}
|
}
|
||||||
@ -265,7 +265,7 @@ int Menu::PagekeyToItem(page_t page, item_t key)
|
|||||||
{
|
{
|
||||||
for (size_t j=0; j<m_Items[i]->blanks.size(); j++)
|
for (size_t j=0; j<m_Items[i]->blanks.size(); j++)
|
||||||
{
|
{
|
||||||
if (m_Items[i]->blanks[j] == 1)
|
if (m_Items[i]->blanks[j].EatNumber())
|
||||||
{
|
{
|
||||||
if (!new_key)
|
if (!new_key)
|
||||||
{
|
{
|
||||||
@ -451,10 +451,11 @@ const char *Menu::GetTextString(int player, page_t page, int &keys)
|
|||||||
{
|
{
|
||||||
for (size_t j=0; j<pItem->blanks.size(); j++)
|
for (size_t j=0; j<pItem->blanks.size(); j++)
|
||||||
{
|
{
|
||||||
if (pItem->blanks[j] == 1)
|
if (pItem->blanks[j].EatNumber())
|
||||||
{
|
{
|
||||||
option++;
|
option++;
|
||||||
}
|
}
|
||||||
|
m_Text.append(pItem->blanks[j].GetDisplay());
|
||||||
m_Text.append("\n");
|
m_Text.append("\n");
|
||||||
slots++;
|
slots++;
|
||||||
}
|
}
|
||||||
@ -607,7 +608,6 @@ static cell AMX_NATIVE_CALL menu_create(AMX *amx, cell *params)
|
|||||||
|
|
||||||
return pMenu->thisId;
|
return pMenu->thisId;
|
||||||
}
|
}
|
||||||
|
|
||||||
static cell AMX_NATIVE_CALL menu_addblank(AMX *amx, cell *params)
|
static cell AMX_NATIVE_CALL menu_addblank(AMX *amx, cell *params)
|
||||||
{
|
{
|
||||||
GETMENU(params[1]);
|
GETMENU(params[1]);
|
||||||
@ -625,7 +625,51 @@ static cell AMX_NATIVE_CALL menu_addblank(AMX *amx, cell *params)
|
|||||||
}
|
}
|
||||||
|
|
||||||
menuitem *item = pMenu->m_Items[pMenu->m_Items.size() - 1];
|
menuitem *item = pMenu->m_Items[pMenu->m_Items.size() - 1];
|
||||||
item->blanks.push_back(params[2]);
|
|
||||||
|
BlankItem a;
|
||||||
|
|
||||||
|
a.SetBlank();
|
||||||
|
|
||||||
|
if (params[2] == 1)
|
||||||
|
a.SetEatNumber(true);
|
||||||
|
|
||||||
|
else
|
||||||
|
a.SetEatNumber(false);
|
||||||
|
|
||||||
|
item->blanks.push_back(a);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
static cell AMX_NATIVE_CALL menu_addtext(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
GETMENU(params[1]);
|
||||||
|
|
||||||
|
if (params[2] && (!pMenu->items_per_page && pMenu->GetItemCount() >= 10))
|
||||||
|
{
|
||||||
|
LogError(amx, AMX_ERR_NATIVE, "Non-paginated menus are limited to 10 items.");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!pMenu->m_Items.size())
|
||||||
|
{
|
||||||
|
LogError(amx, AMX_ERR_NATIVE, "Blanks can only be added after items.");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
menuitem *item = pMenu->m_Items[pMenu->m_Items.size() - 1];
|
||||||
|
|
||||||
|
BlankItem a;
|
||||||
|
|
||||||
|
int len;
|
||||||
|
a.SetText(get_amxstring(amx, params[2], 0, len));
|
||||||
|
|
||||||
|
if (params[3] == 1)
|
||||||
|
a.SetEatNumber(true);
|
||||||
|
|
||||||
|
else
|
||||||
|
a.SetEatNumber(false);
|
||||||
|
|
||||||
|
item->blanks.push_back(a);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -1034,6 +1078,7 @@ AMX_NATIVE_INFO g_NewMenuNatives[] =
|
|||||||
{"menu_create", menu_create},
|
{"menu_create", menu_create},
|
||||||
{"menu_additem", menu_additem},
|
{"menu_additem", menu_additem},
|
||||||
{"menu_addblank", menu_addblank},
|
{"menu_addblank", menu_addblank},
|
||||||
|
{"menu_addtext", menu_addtext},
|
||||||
{"menu_pages", menu_pages},
|
{"menu_pages", menu_pages},
|
||||||
{"menu_items", menu_items},
|
{"menu_items", menu_items},
|
||||||
{"menu_display", menu_display},
|
{"menu_display", menu_display},
|
||||||
|
@ -54,6 +54,46 @@
|
|||||||
|
|
||||||
typedef int (*MENUITEM_CALLBACK)(int, int, int);
|
typedef int (*MENUITEM_CALLBACK)(int, int, int);
|
||||||
|
|
||||||
|
class BlankItem
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
char *m_text;
|
||||||
|
bool m_num;
|
||||||
|
public:
|
||||||
|
BlankItem() : m_text(NULL), m_num(false) { }
|
||||||
|
BlankItem(BlankItem &src) { this->copyFrom(src); }
|
||||||
|
~BlankItem() { free(m_text); }
|
||||||
|
|
||||||
|
void copyFrom(BlankItem &src)
|
||||||
|
{
|
||||||
|
m_text = src.m_text;
|
||||||
|
m_num = src.m_num;
|
||||||
|
src.m_text = NULL; // stop the src from freeing the buffer
|
||||||
|
}
|
||||||
|
BlankItem &operator = (const BlankItem &src) { this->copyFrom(const_cast<BlankItem&>(src)); return *this; }
|
||||||
|
|
||||||
|
/* is this text instead of a blank */
|
||||||
|
bool IsText() { return m_text != NULL; }
|
||||||
|
|
||||||
|
/* is this a blank instead of text */
|
||||||
|
bool IsBlank() { return m_text == NULL; }
|
||||||
|
|
||||||
|
/* does this item take up a number */
|
||||||
|
bool EatNumber() { return m_num; }
|
||||||
|
|
||||||
|
/* the text this item is to display */
|
||||||
|
const char *GetDisplay() { return m_text == NULL ? "" : m_text; }
|
||||||
|
|
||||||
|
/* sets this item to use a blank */
|
||||||
|
void SetBlank() { free(m_text); m_text = NULL; }
|
||||||
|
|
||||||
|
/* sets this item to display text */
|
||||||
|
void SetText(const char *text) { free(m_text); m_text = strdup(text); }
|
||||||
|
|
||||||
|
/* sets whether or not this item takes up a line */
|
||||||
|
void SetEatNumber(bool val) { m_num = val; }
|
||||||
|
|
||||||
|
};
|
||||||
struct menuitem
|
struct menuitem
|
||||||
{
|
{
|
||||||
String name;
|
String name;
|
||||||
@ -65,7 +105,7 @@ struct menuitem
|
|||||||
MENUITEM_CALLBACK pfn;
|
MENUITEM_CALLBACK pfn;
|
||||||
size_t id;
|
size_t id;
|
||||||
|
|
||||||
CVector<int> blanks;
|
CVector<BlankItem> blanks;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef unsigned int menu_t;
|
typedef unsigned int menu_t;
|
||||||
|
@ -2548,6 +2548,14 @@ C_DLLEXPORT int AMXX_Query(int *interfaceVersion, amxx_module_info_s *moduleInfo
|
|||||||
// request optional function
|
// request optional function
|
||||||
#define REQFUNC_OPT(name, fptr, type) fptr = (type)reqFnptrFunc(name)
|
#define REQFUNC_OPT(name, fptr, type) fptr = (type)reqFnptrFunc(name)
|
||||||
|
|
||||||
|
C_DLLEXPORT int AMXX_CheckGame(const char *game)
|
||||||
|
{
|
||||||
|
#ifdef FN_AMXX_CHECKGAME
|
||||||
|
return FN_AMXX_CHECKGAME(game);
|
||||||
|
#else
|
||||||
|
return AMXX_GAME_OK;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
C_DLLEXPORT int AMXX_Attach(PFN_REQ_FNPTR reqFnptrFunc)
|
C_DLLEXPORT int AMXX_Attach(PFN_REQ_FNPTR reqFnptrFunc)
|
||||||
{
|
{
|
||||||
// Check pointer
|
// Check pointer
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
// config
|
// config
|
||||||
#include "moduleconfig.h"
|
#include "moduleconfig.h"
|
||||||
|
|
||||||
|
#include <stddef.h> // size_t
|
||||||
// metamod include files
|
// metamod include files
|
||||||
#ifdef USE_METAMOD
|
#ifdef USE_METAMOD
|
||||||
#include <extdll.h>
|
#include <extdll.h>
|
||||||
@ -55,6 +56,9 @@ struct amxx_module_info_s
|
|||||||
#define AMXX_PARAM 2 /* Invalid parameter */
|
#define AMXX_PARAM 2 /* Invalid parameter */
|
||||||
#define AMXX_FUNC_NOT_PRESENT 3 /* Function not present */
|
#define AMXX_FUNC_NOT_PRESENT 3 /* Function not present */
|
||||||
|
|
||||||
|
#define AMXX_GAME_OK 0 /* This module can load on the current game mod. */
|
||||||
|
#define AMXX_GAME_BAD 1 /* This module can not load on the current game mod. */
|
||||||
|
|
||||||
// *** Small stuff ***
|
// *** Small stuff ***
|
||||||
// The next section is copied from the amx.h file
|
// The next section is copied from the amx.h file
|
||||||
// Copyright (c) ITB CompuPhase, 1997-2005
|
// Copyright (c) ITB CompuPhase, 1997-2005
|
||||||
@ -2023,6 +2027,10 @@ int FN_ShouldCollide_Post(edict_t *pentTouched, edict_t *pentOther);
|
|||||||
void FN_AMXX_QUERY(void);
|
void FN_AMXX_QUERY(void);
|
||||||
#endif // FN_AMXX_QUERY
|
#endif // FN_AMXX_QUERY
|
||||||
|
|
||||||
|
#ifdef FN_AMXX_CHECKGAME
|
||||||
|
int FN_AMXX_CHECKGAME(const char *);
|
||||||
|
#endif // FN_AMXX_CHECKGAME
|
||||||
|
|
||||||
#ifdef FN_AMXX_ATTACH
|
#ifdef FN_AMXX_ATTACH
|
||||||
void FN_AMXX_ATTACH(void);
|
void FN_AMXX_ATTACH(void);
|
||||||
#endif // FN_AMXX_ATTACH
|
#endif // FN_AMXX_ATTACH
|
||||||
|
@ -54,6 +54,12 @@
|
|||||||
/** AMXX query */
|
/** AMXX query */
|
||||||
//#define FN_AMXX_QUERY OnAmxxQuery
|
//#define FN_AMXX_QUERY OnAmxxQuery
|
||||||
|
|
||||||
|
/** AMXX Check Game - module API is NOT available here.
|
||||||
|
* Return AMXX_GAME_OK if this module can load on the game, AMXX_GAME_BAD if it cannot.
|
||||||
|
* syntax: int AmxxCheckGame(const char *game)
|
||||||
|
*/
|
||||||
|
//#define FN_AMXX_CHECKGAME AmxxCheckGame
|
||||||
|
|
||||||
/** AMXX attach
|
/** AMXX attach
|
||||||
* Do native functions init here (MF_AddNatives)
|
* Do native functions init here (MF_AddNatives)
|
||||||
*/
|
*/
|
||||||
|
1102
amxmodx/sm_trie_tpl.h
Normal file
1102
amxmodx/sm_trie_tpl.h
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,8 @@
|
|||||||
#ifndef _INCLUDE_SVN_VERSION_H_
|
#ifndef _INCLUDE_SVN_VERSION_H_
|
||||||
#define _INCLUDE_SVN_VERSION_H_
|
#define _INCLUDE_SVN_VERSION_H_
|
||||||
|
|
||||||
#define SVN_VERSION_STRING "1.8.0.3660"
|
#define SVN_VERSION_STRING "1.8.1.3746"
|
||||||
#define SVN_VERSION_DWORD 1,8,0,3660
|
#define SVN_VERSION_DWORD 1,8,1,3746
|
||||||
#define SVN_VERSION_PRODUCT "1.8.0"
|
#define SVN_VERSION_PRODUCT "1.8.1"
|
||||||
|
|
||||||
#endif //_INCLUDE_SVN_VERSION_H_
|
#endif //_INCLUDE_SVN_VERSION_H_
|
||||||
|
316
amxmodx/trie_natives.cpp
Normal file
316
amxmodx/trie_natives.cpp
Normal file
@ -0,0 +1,316 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include "amxmodx.h"
|
||||||
|
#include "sm_trie_tpl.h"
|
||||||
|
#include "trie_natives.h"
|
||||||
|
|
||||||
|
#ifndef NDEBUG
|
||||||
|
size_t trie_free_count = 0;
|
||||||
|
size_t trie_malloc_count = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
TrieHandles g_TrieHandles;
|
||||||
|
typedef KTrie<TrieData> celltrie;
|
||||||
|
|
||||||
|
void triedata_dtor(TrieData *ptr)
|
||||||
|
{
|
||||||
|
ptr->freeCells();
|
||||||
|
}
|
||||||
|
// native Trie:TrieCreate();
|
||||||
|
static cell AMX_NATIVE_CALL TrieCreate(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
return static_cast<cell>(g_TrieHandles.create());
|
||||||
|
}
|
||||||
|
|
||||||
|
// native Trie::TrieClear(Trie:handle);
|
||||||
|
static cell AMX_NATIVE_CALL TrieClear(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
celltrie *t = g_TrieHandles.lookup(params[1]);
|
||||||
|
|
||||||
|
if (t == NULL)
|
||||||
|
{
|
||||||
|
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
t->run_destructor(triedata_dtor);
|
||||||
|
t->clear();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
// native TrieSetCell(Trie:handle, const key[], any:value);
|
||||||
|
static cell AMX_NATIVE_CALL TrieSetCell(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
celltrie *t = g_TrieHandles.lookup(params[1]);
|
||||||
|
|
||||||
|
if (t == NULL)
|
||||||
|
{
|
||||||
|
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
TrieData *td = NULL;
|
||||||
|
int len;
|
||||||
|
const char *key = get_amxstring(amx, params[2], 0, len);
|
||||||
|
|
||||||
|
if ((td = t->retrieve(key)) == NULL)
|
||||||
|
{
|
||||||
|
TrieData dummy;
|
||||||
|
t->insert(key, dummy);
|
||||||
|
|
||||||
|
td = t->retrieve(key);
|
||||||
|
|
||||||
|
// should never, ever happen
|
||||||
|
if (td == NULL)
|
||||||
|
{
|
||||||
|
LogError(amx, AMX_ERR_NATIVE, "Couldn't KTrie::retrieve(), handle: %d", params[1]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
td->setCell(params[3]);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
// native TrieSetString(Trie:handle, const key[], const data[]);
|
||||||
|
static cell AMX_NATIVE_CALL TrieSetString(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
celltrie *t = g_TrieHandles.lookup(params[1]);
|
||||||
|
|
||||||
|
if (t == NULL)
|
||||||
|
{
|
||||||
|
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
TrieData *td = NULL;
|
||||||
|
int len;
|
||||||
|
const char *key = get_amxstring(amx, params[2], 0, len);
|
||||||
|
|
||||||
|
if ((td = t->retrieve(key)) == NULL)
|
||||||
|
{
|
||||||
|
TrieData dummy;
|
||||||
|
t->insert(key, dummy);
|
||||||
|
td = t->retrieve(key);
|
||||||
|
|
||||||
|
// should never, ever happen
|
||||||
|
if (td == NULL)
|
||||||
|
{
|
||||||
|
LogError(amx, AMX_ERR_NATIVE, "Couldn't KTrie::retrieve(), handle: %d", params[1]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
td->setString(get_amxaddr(amx, params[3]));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
// native TrieSetArray(Trie:handle, const key[], const any:buffer[], buffsize)
|
||||||
|
static cell AMX_NATIVE_CALL TrieSetArray(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
celltrie *t = g_TrieHandles.lookup(params[2]);
|
||||||
|
|
||||||
|
if (t == NULL)
|
||||||
|
{
|
||||||
|
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
TrieData *td = NULL;
|
||||||
|
int len;
|
||||||
|
const char *key = get_amxstring(amx, params[2], 0, len);
|
||||||
|
|
||||||
|
if ((td = t->retrieve(key)) == NULL)
|
||||||
|
{
|
||||||
|
TrieData dummy;
|
||||||
|
t->insert(key, dummy);
|
||||||
|
td = t->retrieve(key);
|
||||||
|
|
||||||
|
// should never, ever happen
|
||||||
|
if (td == NULL)
|
||||||
|
{
|
||||||
|
LogError(amx, AMX_ERR_NATIVE, "Couldn't KTrie::retrieve(), handle: %d", params[1]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
td->setArray(get_amxaddr(amx, params[3]), params[4]);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
// native bool:TrieGetCell(Trie:handle, const key[], &any:value);
|
||||||
|
static cell AMX_NATIVE_CALL TrieGetCell(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
celltrie *t = g_TrieHandles.lookup(params[1]);
|
||||||
|
|
||||||
|
if (t == NULL)
|
||||||
|
{
|
||||||
|
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TrieData *td = NULL;
|
||||||
|
int len;
|
||||||
|
const char *key = get_amxstring(amx, params[2], 0, len);
|
||||||
|
|
||||||
|
if ((td = t->retrieve(key)) == NULL)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
cell *ptr = get_amxaddr(amx, params[3]);
|
||||||
|
if (!td->getCell(ptr))
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
// native bool:TrieGetString(Trie:handle, const key[], buff[], len);
|
||||||
|
static cell AMX_NATIVE_CALL TrieGetString(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
celltrie *t = g_TrieHandles.lookup(params[1]);
|
||||||
|
|
||||||
|
if (t == NULL)
|
||||||
|
{
|
||||||
|
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TrieData *td = NULL;
|
||||||
|
int len;
|
||||||
|
const char *key = get_amxstring(amx, params[2], 0, len);
|
||||||
|
|
||||||
|
if ((td = t->retrieve(key)) == NULL)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
cell *ptr = get_amxaddr(amx, params[3]);
|
||||||
|
if (!td->getString(ptr, params[4]))
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
// native bool:TrieGetArray(Trie:handle, const key[], any:buff[], len);
|
||||||
|
static cell AMX_NATIVE_CALL TrieGetArray(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
celltrie *t = g_TrieHandles.lookup(params[1]);
|
||||||
|
|
||||||
|
if (t == NULL)
|
||||||
|
{
|
||||||
|
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TrieData *td = NULL;
|
||||||
|
int len;
|
||||||
|
const char *key = get_amxstring(amx, params[2], 0, len);
|
||||||
|
|
||||||
|
if ((td = t->retrieve(key)) == NULL)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
cell *ptr = get_amxaddr(amx, params[3]);
|
||||||
|
if (!td->getArray(ptr, params[4]))
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
// native bool:TrieKeyExists(Trie:handle, const key[]);
|
||||||
|
static cell AMX_NATIVE_CALL TrieKeyExists(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
celltrie *t = g_TrieHandles.lookup(params[1]);
|
||||||
|
|
||||||
|
if (t == NULL)
|
||||||
|
{
|
||||||
|
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int len;
|
||||||
|
const char *key = get_amxstring(amx, params[2], 0, len);
|
||||||
|
return t->retrieve(key) != NULL ? 1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// native bool:TrieDeleteKey(Trie:handle, const key[]);
|
||||||
|
static cell AMX_NATIVE_CALL TrieDeleteKey(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
celltrie *t = g_TrieHandles.lookup(params[1]);
|
||||||
|
|
||||||
|
if (t == NULL)
|
||||||
|
{
|
||||||
|
LogError(amx, AMX_ERR_NATIVE, "Invalid trie handle provided (%d)", params[1]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int len;
|
||||||
|
const char *key = get_amxstring(amx, params[2], 0, len);
|
||||||
|
TrieData *td = t->retrieve(key);
|
||||||
|
|
||||||
|
if (td != NULL)
|
||||||
|
{
|
||||||
|
td->freeCells();
|
||||||
|
}
|
||||||
|
return t->remove(key) ? 1 : 0;
|
||||||
|
}
|
||||||
|
//native TrieDestroy(&Trie:handle)
|
||||||
|
static cell AMX_NATIVE_CALL TrieDestroy(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
cell *ptr = get_amxaddr(amx, params[1]);
|
||||||
|
|
||||||
|
celltrie *t = g_TrieHandles.lookup(*ptr);
|
||||||
|
|
||||||
|
if (t == NULL)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
t->run_destructor(triedata_dtor);
|
||||||
|
if (g_TrieHandles.destroy(*ptr))
|
||||||
|
{
|
||||||
|
*ptr = 0;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
#ifndef NDEBUG
|
||||||
|
static cell AMX_NATIVE_CALL TrieMallocCount(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
return trie_malloc_count;
|
||||||
|
}
|
||||||
|
static cell AMX_NATIVE_CALL TrieFreeCount(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
return trie_free_count;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
AMX_NATIVE_INFO trie_Natives[] =
|
||||||
|
{
|
||||||
|
{ "TrieCreate", TrieCreate },
|
||||||
|
{ "TrieClear", TrieClear },
|
||||||
|
|
||||||
|
{ "TrieSetCell", TrieSetCell },
|
||||||
|
{ "TrieSetString", TrieSetString },
|
||||||
|
{ "TrieSetArray", TrieSetArray },
|
||||||
|
|
||||||
|
{ "TrieGetCell", TrieGetCell },
|
||||||
|
{ "TrieGetString", TrieGetString },
|
||||||
|
{ "TrieGetArray", TrieGetArray },
|
||||||
|
|
||||||
|
{ "TrieDeleteKey", TrieDeleteKey },
|
||||||
|
{ "TrieKeyExists", TrieKeyExists },
|
||||||
|
{ "TrieDestroy", TrieDestroy },
|
||||||
|
|
||||||
|
#ifndef NDEBUG
|
||||||
|
{ "TrieMallocCount", TrieMallocCount },
|
||||||
|
{ "TrieFreeCount", TrieFreeCount },
|
||||||
|
#endif
|
||||||
|
|
||||||
|
{ NULL, NULL }
|
||||||
|
};
|
||||||
|
|
211
amxmodx/trie_natives.h
Normal file
211
amxmodx/trie_natives.h
Normal file
@ -0,0 +1,211 @@
|
|||||||
|
#ifndef _TRIE_NATIVES_H_
|
||||||
|
#define _TRIE_NATIVES_H_
|
||||||
|
|
||||||
|
#include "amxmodx.h"
|
||||||
|
#include "sm_trie_tpl.h"
|
||||||
|
#include "CVector.h"
|
||||||
|
|
||||||
|
#define TRIE_DATA_UNSET 0
|
||||||
|
#define TRIE_DATA_CELL 1
|
||||||
|
#define TRIE_DATA_STRING 2
|
||||||
|
#define TRIE_DATA_ARRAY 3
|
||||||
|
|
||||||
|
#ifndef NDEBUG
|
||||||
|
extern size_t trie_malloc_count;
|
||||||
|
extern size_t trie_free_count;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
class TrieData
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
cell *m_data;
|
||||||
|
cell m_cell;
|
||||||
|
cell m_cellcount;
|
||||||
|
int m_type;
|
||||||
|
|
||||||
|
void needCells(cell cellcount)
|
||||||
|
{
|
||||||
|
if (m_cellcount < cellcount)
|
||||||
|
{
|
||||||
|
if (m_data != NULL)
|
||||||
|
{
|
||||||
|
free(m_data);
|
||||||
|
#ifndef NDEBUG
|
||||||
|
trie_free_count++;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
size_t neededbytes = cellcount * sizeof(cell);
|
||||||
|
m_data = static_cast<cell *>(malloc(neededbytes));
|
||||||
|
|
||||||
|
#ifndef NDEBUG
|
||||||
|
trie_malloc_count++;
|
||||||
|
#endif
|
||||||
|
m_cellcount = cellcount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public:
|
||||||
|
void freeCells()
|
||||||
|
{
|
||||||
|
if (m_data)
|
||||||
|
{
|
||||||
|
#ifndef NDEBUG
|
||||||
|
trie_free_count++;
|
||||||
|
#endif
|
||||||
|
free(m_data);
|
||||||
|
m_data = NULL;
|
||||||
|
}
|
||||||
|
m_cellcount = 0;
|
||||||
|
}
|
||||||
|
TrieData() : m_data(NULL), m_cell(0), m_cellcount(0), m_type(TRIE_DATA_UNSET) { }
|
||||||
|
TrieData(const TrieData &src) : m_data(src.m_data),
|
||||||
|
m_cell(src.m_cell),
|
||||||
|
m_cellcount(src.m_cellcount),
|
||||||
|
m_type(src.m_type) { }
|
||||||
|
~TrieData() { }
|
||||||
|
|
||||||
|
int getType() { return m_type; }
|
||||||
|
|
||||||
|
void setCell(cell value)
|
||||||
|
{
|
||||||
|
freeCells();
|
||||||
|
|
||||||
|
m_cell = value;
|
||||||
|
m_type = TRIE_DATA_CELL;
|
||||||
|
}
|
||||||
|
void setString(cell *value)
|
||||||
|
{
|
||||||
|
cell len = 0;
|
||||||
|
|
||||||
|
cell *p = value;
|
||||||
|
|
||||||
|
while (*p++ != 0)
|
||||||
|
{
|
||||||
|
len++;
|
||||||
|
}
|
||||||
|
len += 1; // zero terminator
|
||||||
|
needCells(len);
|
||||||
|
memcpy(m_data, value, sizeof(cell) * len);
|
||||||
|
|
||||||
|
m_type = TRIE_DATA_STRING;
|
||||||
|
}
|
||||||
|
void setArray(cell *value, cell size)
|
||||||
|
{
|
||||||
|
if (size <= 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
needCells(size);
|
||||||
|
memcpy(m_data, value, sizeof(cell) * size);
|
||||||
|
|
||||||
|
m_type = TRIE_DATA_ARRAY;
|
||||||
|
}
|
||||||
|
bool getCell(cell *out)
|
||||||
|
{
|
||||||
|
if (m_type == TRIE_DATA_CELL)
|
||||||
|
{
|
||||||
|
*out = m_cell;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
bool getString(cell *out, cell max)
|
||||||
|
{
|
||||||
|
if (m_type == TRIE_DATA_STRING && max >= 0)
|
||||||
|
{
|
||||||
|
memcpy(out, m_data, (max > m_cellcount ? m_cellcount : max) * sizeof(cell));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
bool getArray(cell *out, cell max)
|
||||||
|
{
|
||||||
|
if (m_type == TRIE_DATA_ARRAY && max >= 0)
|
||||||
|
{
|
||||||
|
memcpy(out, m_data, (max > m_cellcount ? m_cellcount : max) * sizeof(cell));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
void clear()
|
||||||
|
{
|
||||||
|
freeCells();
|
||||||
|
m_type = TRIE_DATA_UNSET;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class TrieHandles
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
CVector< KTrie< TrieData > *> m_tries;
|
||||||
|
|
||||||
|
public:
|
||||||
|
TrieHandles() { }
|
||||||
|
~TrieHandles()
|
||||||
|
{
|
||||||
|
this->clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
void clear()
|
||||||
|
{
|
||||||
|
for (size_t i = 0; i < m_tries.size(); i++)
|
||||||
|
{
|
||||||
|
if (m_tries[i] != NULL)
|
||||||
|
{
|
||||||
|
delete m_tries[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m_tries.clear();
|
||||||
|
}
|
||||||
|
KTrie<TrieData> *lookup(int handle)
|
||||||
|
{
|
||||||
|
handle--;
|
||||||
|
|
||||||
|
if (handle < 0 || handle >= static_cast<int>(m_tries.size()))
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return m_tries[handle];
|
||||||
|
}
|
||||||
|
int create()
|
||||||
|
{
|
||||||
|
for (size_t i = 0; i < m_tries.size(); i++)
|
||||||
|
{
|
||||||
|
if (m_tries[i] == NULL)
|
||||||
|
{
|
||||||
|
// reuse handle
|
||||||
|
m_tries[i] = new KTrie<TrieData>;
|
||||||
|
|
||||||
|
return static_cast<int>(i) + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m_tries.push_back(new KTrie<TrieData>);
|
||||||
|
return m_tries.size();
|
||||||
|
}
|
||||||
|
bool destroy(int handle)
|
||||||
|
{
|
||||||
|
handle--;
|
||||||
|
|
||||||
|
if (handle < 0 || handle >= static_cast<int>(m_tries.size()))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_tries[handle] == NULL)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
delete m_tries[handle];
|
||||||
|
m_tries[handle] = NULL;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
extern TrieHandles g_TrieHandles;
|
||||||
|
extern AMX_NATIVE_INFO trie_Natives[];
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
/* zconf.h -- configuration of the zlib compression library
|
/* zconf.h -- configuration of the zlib compression library
|
||||||
* Copyright (C) 1995-2003 Jean-loup Gailly.
|
* Copyright (C) 1995-2005 Jean-loup Gailly.
|
||||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -23,15 +23,17 @@
|
|||||||
# define deflateSetDictionary z_deflateSetDictionary
|
# define deflateSetDictionary z_deflateSetDictionary
|
||||||
# define deflateCopy z_deflateCopy
|
# define deflateCopy z_deflateCopy
|
||||||
# define deflateReset z_deflateReset
|
# define deflateReset z_deflateReset
|
||||||
# define deflatePrime z_deflatePrime
|
|
||||||
# define deflateParams z_deflateParams
|
# define deflateParams z_deflateParams
|
||||||
# define deflateBound z_deflateBound
|
# define deflateBound z_deflateBound
|
||||||
|
# define deflatePrime z_deflatePrime
|
||||||
# define inflateInit2_ z_inflateInit2_
|
# define inflateInit2_ z_inflateInit2_
|
||||||
# define inflateSetDictionary z_inflateSetDictionary
|
# define inflateSetDictionary z_inflateSetDictionary
|
||||||
# define inflateSync z_inflateSync
|
# define inflateSync z_inflateSync
|
||||||
# define inflateSyncPoint z_inflateSyncPoint
|
# define inflateSyncPoint z_inflateSyncPoint
|
||||||
# define inflateCopy z_inflateCopy
|
# define inflateCopy z_inflateCopy
|
||||||
# define inflateReset z_inflateReset
|
# define inflateReset z_inflateReset
|
||||||
|
# define inflateBack z_inflateBack
|
||||||
|
# define inflateBackEnd z_inflateBackEnd
|
||||||
# define compress z_compress
|
# define compress z_compress
|
||||||
# define compress2 z_compress2
|
# define compress2 z_compress2
|
||||||
# define compressBound z_compressBound
|
# define compressBound z_compressBound
|
||||||
@ -39,7 +41,12 @@
|
|||||||
# define adler32 z_adler32
|
# define adler32 z_adler32
|
||||||
# define crc32 z_crc32
|
# define crc32 z_crc32
|
||||||
# define get_crc_table z_get_crc_table
|
# define get_crc_table z_get_crc_table
|
||||||
|
# define zError z_zError
|
||||||
|
|
||||||
|
# define alloc_func z_alloc_func
|
||||||
|
# define free_func z_free_func
|
||||||
|
# define in_func z_in_func
|
||||||
|
# define out_func z_out_func
|
||||||
# define Byte z_Byte
|
# define Byte z_Byte
|
||||||
# define uInt z_uInt
|
# define uInt z_uInt
|
||||||
# define uLong z_uLong
|
# define uLong z_uLong
|
||||||
@ -61,9 +68,11 @@
|
|||||||
#if defined(_WINDOWS) && !defined(WINDOWS)
|
#if defined(_WINDOWS) && !defined(WINDOWS)
|
||||||
# define WINDOWS
|
# define WINDOWS
|
||||||
#endif
|
#endif
|
||||||
#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
|
#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
|
||||||
|
# ifndef WIN32
|
||||||
# define WIN32
|
# define WIN32
|
||||||
# endif
|
# endif
|
||||||
|
#endif
|
||||||
#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
|
#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
|
||||||
# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
|
# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
|
||||||
# ifndef SYS16BIT
|
# ifndef SYS16BIT
|
||||||
|
Binary file not shown.
@ -10,7 +10,7 @@ BINARY = amxxpc
|
|||||||
|
|
||||||
OBJECTS = amx.cpp amxxpc.cpp Binary.cpp
|
OBJECTS = amx.cpp amxxpc.cpp Binary.cpp
|
||||||
|
|
||||||
LINK = -lz /lib/libstdc++.a
|
LINK = -lz /lib32/libstdc++.a
|
||||||
|
|
||||||
INCLUDE = -I. -L.
|
INCLUDE = -I. -L.
|
||||||
|
|
||||||
@ -27,14 +27,14 @@ CFLAGS += -DLINUX -DNDEBUG -Wno-deprecated -fexceptions -DHAVE_STDINT_H -DAMX_AN
|
|||||||
OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
|
OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
|
||||||
|
|
||||||
$(BIN_DIR)/%.o: %.cpp
|
$(BIN_DIR)/%.o: %.cpp
|
||||||
$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
|
$(CPP) $(INCLUDE) $(CFLAGS) -m32 -o $@ -c $<
|
||||||
|
|
||||||
all:
|
all:
|
||||||
mkdir -p $(BIN_DIR)
|
mkdir -p $(BIN_DIR)
|
||||||
$(MAKE) amxxpc
|
$(MAKE) amxxpc
|
||||||
|
|
||||||
amxxpc: $(OBJ_LINUX)
|
amxxpc: $(OBJ_LINUX)
|
||||||
$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -ldl -lm -o$(BIN_DIR)/$(BINARY)
|
$(CPP) $(INCLUDE) $(CFLAGS) -m32 $(OBJ_LINUX) $(LINK) -ldl -lm -o$(BIN_DIR)/$(BINARY)
|
||||||
|
|
||||||
default: all
|
default: all
|
||||||
|
|
||||||
|
@ -212,7 +212,7 @@ typedef struct tagAMX_NATIVE_INFO {
|
|||||||
|
|
||||||
typedef struct tagAMX_FUNCSTUB {
|
typedef struct tagAMX_FUNCSTUB {
|
||||||
ucell address PACKED;
|
ucell address PACKED;
|
||||||
char name[sEXPMAX+1] PACKED;
|
char name[sEXPMAX+1];
|
||||||
} PACKED AMX_FUNCSTUB;
|
} PACKED AMX_FUNCSTUB;
|
||||||
|
|
||||||
typedef struct tagFUNCSTUBNT {
|
typedef struct tagFUNCSTUBNT {
|
||||||
@ -260,8 +260,8 @@ typedef struct tagAMX {
|
|||||||
typedef struct tagAMX_HEADER {
|
typedef struct tagAMX_HEADER {
|
||||||
int32_t size PACKED; /* size of the "file" */
|
int32_t size PACKED; /* size of the "file" */
|
||||||
uint16_t magic PACKED; /* signature */
|
uint16_t magic PACKED; /* signature */
|
||||||
char file_version PACKED; /* file format version */
|
char file_version; /* file format version */
|
||||||
char amx_version PACKED; /* required version of the AMX */
|
char amx_version; /* required version of the AMX */
|
||||||
int16_t flags PACKED;
|
int16_t flags PACKED;
|
||||||
int16_t defsize PACKED; /* size of a definition record */
|
int16_t defsize PACKED; /* size of a definition record */
|
||||||
int32_t cod PACKED; /* initial value of COD - code block */
|
int32_t cod PACKED; /* initial value of COD - code block */
|
||||||
|
@ -65,8 +65,8 @@ extern "C" {
|
|||||||
typedef struct tagAMX_DBG_HDR {
|
typedef struct tagAMX_DBG_HDR {
|
||||||
int32_t size PACKED; /* size of the debug information chunk */
|
int32_t size PACKED; /* size of the debug information chunk */
|
||||||
uint16_t magic PACKED; /* signature, must be 0xf1ef */
|
uint16_t magic PACKED; /* signature, must be 0xf1ef */
|
||||||
char file_version PACKED; /* file format version */
|
char file_version; /* file format version */
|
||||||
char amx_version PACKED; /* required version of the AMX */
|
char amx_version; /* required version of the AMX */
|
||||||
int16_t flags PACKED; /* currently unused */
|
int16_t flags PACKED; /* currently unused */
|
||||||
int16_t files PACKED; /* number of entries in the "file" table */
|
int16_t files PACKED; /* number of entries in the "file" table */
|
||||||
int16_t lines PACKED; /* number of entries in the "line" table */
|
int16_t lines PACKED; /* number of entries in the "line" table */
|
||||||
@ -74,51 +74,51 @@ typedef struct tagAMX_DBG_HDR {
|
|||||||
int16_t tags PACKED; /* number of entries in the "tag" table */
|
int16_t tags PACKED; /* number of entries in the "tag" table */
|
||||||
int16_t automatons PACKED; /* number of entries in the "automaton" table */
|
int16_t automatons PACKED; /* number of entries in the "automaton" table */
|
||||||
int16_t states PACKED; /* number of entries in the "state" table */
|
int16_t states PACKED; /* number of entries in the "state" table */
|
||||||
} AMX_DBG_HDR PACKED;
|
} AMX_DBG_HDR;
|
||||||
#define AMX_DBG_MAGIC 0xf1ef
|
#define AMX_DBG_MAGIC 0xf1ef
|
||||||
|
|
||||||
typedef struct tagAMX_DBG_FILE {
|
typedef struct tagAMX_DBG_FILE {
|
||||||
ucell address PACKED; /* address in the code segment where generated code (for this file) starts */
|
ucell address PACKED; /* address in the code segment where generated code (for this file) starts */
|
||||||
const char name[1] PACKED; /* ASCII string, zero-terminated */
|
const char name[1]; /* ASCII string, zero-terminated */
|
||||||
} AMX_DBG_FILE PACKED;
|
} AMX_DBG_FILE;
|
||||||
|
|
||||||
typedef struct tagAMX_DBG_LINE {
|
typedef struct tagAMX_DBG_LINE {
|
||||||
ucell address PACKED; /* address in the code segment where generated code (for this line) starts */
|
ucell address PACKED; /* address in the code segment where generated code (for this line) starts */
|
||||||
int32_t line PACKED; /* line number */
|
int32_t line PACKED; /* line number */
|
||||||
} AMX_DBG_LINE PACKED;
|
} AMX_DBG_LINE;
|
||||||
|
|
||||||
typedef struct tagAMX_DBG_SYMBOL {
|
typedef struct tagAMX_DBG_SYMBOL {
|
||||||
ucell address PACKED; /* address in the data segment or relative to the frame */
|
ucell address PACKED; /* address in the data segment or relative to the frame */
|
||||||
int16_t tag PACKED; /* tag for the symbol */
|
int16_t tag PACKED; /* tag for the symbol */
|
||||||
ucell codestart PACKED; /* address in the code segment from which this symbol is valid (in scope) */
|
ucell codestart PACKED; /* address in the code segment from which this symbol is valid (in scope) */
|
||||||
ucell codeend PACKED; /* address in the code segment until which this symbol is valid (in scope) */
|
ucell codeend PACKED; /* address in the code segment until which this symbol is valid (in scope) */
|
||||||
char ident PACKED; /* kind of symbol (function/variable) */
|
char ident; /* kind of symbol (function/variable) */
|
||||||
char vclass PACKED; /* class of symbol (global/local) */
|
char vclass; /* class of symbol (global/local) */
|
||||||
int16_t dim PACKED; /* number of dimensions */
|
int16_t dim PACKED; /* number of dimensions */
|
||||||
const char name[1] PACKED; /* ASCII string, zero-terminated */
|
const char name[1]; /* ASCII string, zero-terminated */
|
||||||
} AMX_DBG_SYMBOL PACKED;
|
} AMX_DBG_SYMBOL;
|
||||||
|
|
||||||
typedef struct tagAMX_DBG_SYMDIM {
|
typedef struct tagAMX_DBG_SYMDIM {
|
||||||
int16_t tag PACKED; /* tag for the array dimension */
|
int16_t tag PACKED; /* tag for the array dimension */
|
||||||
ucell size PACKED; /* size of the array dimension */
|
ucell size PACKED; /* size of the array dimension */
|
||||||
} AMX_DBG_SYMDIM PACKED;
|
} AMX_DBG_SYMDIM;
|
||||||
|
|
||||||
typedef struct tagAMX_DBG_TAG {
|
typedef struct tagAMX_DBG_TAG {
|
||||||
int16_t tag PACKED; /* tag id */
|
int16_t tag PACKED; /* tag id */
|
||||||
const char name[1] PACKED; /* ASCII string, zero-terminated */
|
const char name[1]; /* ASCII string, zero-terminated */
|
||||||
} AMX_DBG_TAG PACKED;
|
} AMX_DBG_TAG;
|
||||||
|
|
||||||
typedef struct tagAMX_DBG_MACHINE {
|
typedef struct tagAMX_DBG_MACHINE {
|
||||||
int16_t automaton PACKED; /* automaton id */
|
int16_t automaton PACKED; /* automaton id */
|
||||||
ucell address PACKED; /* address of state variable */
|
ucell address PACKED; /* address of state variable */
|
||||||
const char name[1] PACKED; /* ASCII string, zero-terminated */
|
const char name[1]; /* ASCII string, zero-terminated */
|
||||||
} AMX_DBG_MACHINE PACKED;
|
} AMX_DBG_MACHINE;
|
||||||
|
|
||||||
typedef struct tagAMX_DBG_STATE {
|
typedef struct tagAMX_DBG_STATE {
|
||||||
int16_t state PACKED; /* state id */
|
int16_t state PACKED; /* state id */
|
||||||
int16_t automaton PACKED; /* automaton id */
|
int16_t automaton PACKED; /* automaton id */
|
||||||
const char name[1] PACKED; /* ASCII string, zero-terminated */
|
const char name[1]; /* ASCII string, zero-terminated */
|
||||||
} AMX_DBG_STATE PACKED;
|
} AMX_DBG_STATE;
|
||||||
|
|
||||||
typedef struct tagAMX_DBG {
|
typedef struct tagAMX_DBG {
|
||||||
AMX_DBG_HDR _FAR *hdr PACKED; /* points to the AMX_DBG header */
|
AMX_DBG_HDR _FAR *hdr PACKED; /* points to the AMX_DBG header */
|
||||||
@ -128,7 +128,7 @@ typedef struct tagAMX_DBG {
|
|||||||
AMX_DBG_TAG _FAR **tagtbl PACKED;
|
AMX_DBG_TAG _FAR **tagtbl PACKED;
|
||||||
AMX_DBG_MACHINE _FAR **automatontbl PACKED;
|
AMX_DBG_MACHINE _FAR **automatontbl PACKED;
|
||||||
AMX_DBG_STATE _FAR **statetbl PACKED;
|
AMX_DBG_STATE _FAR **statetbl PACKED;
|
||||||
} AMX_DBG PACKED;
|
} AMX_DBG;
|
||||||
|
|
||||||
#if !defined iVARIABLE
|
#if !defined iVARIABLE
|
||||||
#define iVARIABLE 1 /* cell that has an address and that can be fetched directly (lvalue) */
|
#define iVARIABLE 1 /* cell that has an address and that can be fetched directly (lvalue) */
|
||||||
|
@ -12,6 +12,13 @@
|
|||||||
#include "amxxpc.h"
|
#include "amxxpc.h"
|
||||||
#include "Binary.h"
|
#include "Binary.h"
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
// MSVC8 - replace POSIX functions with ISO C++ conformant ones as they are deprecated
|
||||||
|
#if _MSC_VER >= 1400
|
||||||
|
#define unlink _unlink
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
static PRINTF pc_printf = NULL;
|
static PRINTF pc_printf = NULL;
|
||||||
|
|
||||||
void ReadFileIntoPl(abl *pl, FILE *fp);
|
void ReadFileIntoPl(abl *pl, FILE *fp);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#ifndef _AMXXSC_INCLUDE_H
|
#ifndef _AMXXSC_INCLUDE_H
|
||||||
#define _AMXXSC_INCLUDE_H
|
#define _AMXXSC_INCLUDE_H
|
||||||
|
|
||||||
#define VERSION_STRING "1.76-300"
|
#define VERSION_STRING "1.8.1-300"
|
||||||
#define MAGIC_HEADER2 0x414D5858
|
#define MAGIC_HEADER2 0x414D5858
|
||||||
#define MAGIC_VERSION 0x0300
|
#define MAGIC_VERSION 0x0300
|
||||||
|
|
||||||
|
@ -1,21 +1,20 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||||
|
# Visual Studio 2005
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "amxxpc", "amxxpc.vcproj", "{39412290-D01C-472F-A439-AB5592A04C08}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "amxxpc", "amxxpc.vcproj", "{39412290-D01C-472F-A439-AB5592A04C08}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfiguration) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug = Debug
|
Debug|Win32 = Debug|Win32
|
||||||
Release = Release
|
Release|Win32 = Release|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfiguration) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{39412290-D01C-472F-A439-AB5592A04C08}.Debug.ActiveCfg = Debug|Win32
|
{39412290-D01C-472F-A439-AB5592A04C08}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{39412290-D01C-472F-A439-AB5592A04C08}.Debug.Build.0 = Debug|Win32
|
{39412290-D01C-472F-A439-AB5592A04C08}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{39412290-D01C-472F-A439-AB5592A04C08}.Release.ActiveCfg = Release|Win32
|
{39412290-D01C-472F-A439-AB5592A04C08}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{39412290-D01C-472F-A439-AB5592A04C08}.Release.Build.0 = Release|Win32
|
{39412290-D01C-472F-A439-AB5592A04C08}.Release|Win32.Build.0 = Release|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
EndGlobalSection
|
HideSolutionNode = FALSE
|
||||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
@ -1,111 +1,178 @@
|
|||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="7.10"
|
Version="8.00"
|
||||||
Name="amxxpc"
|
Name="amxxpc"
|
||||||
ProjectGUID="{39412290-D01C-472F-A439-AB5592A04C08}"
|
ProjectGUID="{39412290-D01C-472F-A439-AB5592A04C08}"
|
||||||
Keyword="Win32Proj">
|
RootNamespace="amxxpc"
|
||||||
|
Keyword="Win32Proj"
|
||||||
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
Name="Win32"/>
|
Name="Win32"
|
||||||
|
/>
|
||||||
</Platforms>
|
</Platforms>
|
||||||
|
<ToolFiles>
|
||||||
|
</ToolFiles>
|
||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|Win32"
|
Name="Debug|Win32"
|
||||||
OutputDirectory="Debug"
|
OutputDirectory="Debug"
|
||||||
IntermediateDirectory="Debug"
|
IntermediateDirectory="Debug"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
CharacterSet="2">
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||||
|
CharacterSet="2"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE"
|
||||||
MinimalRebuild="TRUE"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="5"
|
RuntimeLibrary="1"
|
||||||
|
RuntimeTypeInfo="false"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
Detect64BitPortabilityProblems="TRUE"
|
Detect64BitPortabilityProblems="true"
|
||||||
DebugInformationFormat="4"/>
|
DebugInformationFormat="4"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="zlib.lib"
|
AdditionalDependencies="zlib.lib"
|
||||||
OutputFile="$(OutDir)/amxxpc.exe"
|
OutputFile="$(OutDir)/amxxpc.exe"
|
||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
GenerateDebugInformation="TRUE"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)/amxxpc.pdb"
|
ProgramDatabaseFile="$(OutDir)/amxxpc.pdb"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
TargetMachine="1"/>
|
TargetMachine="1"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCWebDeploymentTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCPostBuildEventTool"
|
||||||
<Tool
|
/>
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="Release"
|
OutputDirectory="Release"
|
||||||
IntermediateDirectory="Release"
|
IntermediateDirectory="Release"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
CharacterSet="2">
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||||
|
CharacterSet="2"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE"
|
||||||
RuntimeLibrary="4"
|
RuntimeLibrary="0"
|
||||||
StructMemberAlignment="0"
|
StructMemberAlignment="0"
|
||||||
|
RuntimeTypeInfo="false"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
Detect64BitPortabilityProblems="FALSE"
|
Detect64BitPortabilityProblems="false"
|
||||||
DebugInformationFormat="3"/>
|
DebugInformationFormat="3"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="zlib.lib"
|
AdditionalDependencies="zlib.lib"
|
||||||
OutputFile="$(OutDir)/amxxpc.exe"
|
OutputFile="$(OutDir)/amxxpc.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
GenerateDebugInformation="TRUE"
|
GenerateDebugInformation="true"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
OptimizeReferences="2"
|
OptimizeReferences="2"
|
||||||
EnableCOMDATFolding="2"
|
EnableCOMDATFolding="2"
|
||||||
TargetMachine="1"/>
|
TargetMachine="1"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCWebDeploymentTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCPostBuildEventTool"
|
||||||
<Tool
|
/>
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
@ -114,58 +181,75 @@
|
|||||||
<Filter
|
<Filter
|
||||||
Name="Source Files"
|
Name="Source Files"
|
||||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
|
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||||
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx.cpp">
|
RelativePath=".\amx.cpp"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amxxpc.cpp">
|
RelativePath=".\amxxpc.cpp"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\Binary.cpp">
|
RelativePath=".\Binary.cpp"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Header Files"
|
Name="Header Files"
|
||||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
|
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||||
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx.h">
|
RelativePath=".\amx.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amxdbg.h">
|
RelativePath=".\amxdbg.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amxxpc.h">
|
RelativePath=".\amxxpc.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\Binary.h">
|
RelativePath=".\Binary.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\osdefs.h">
|
RelativePath=".\osdefs.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\resource.h">
|
RelativePath=".\resource.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\resource1.h">
|
RelativePath=".\resource1.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\sclinux.h">
|
RelativePath=".\sclinux.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\zconf.h">
|
RelativePath=".\zconf.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\zlib.h">
|
RelativePath=".\zlib.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Resource Files"
|
Name="Resource Files"
|
||||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
|
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||||
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amxxpc1.rc">
|
RelativePath=".\amxxpc1.rc"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Files>
|
</Files>
|
||||||
|
Binary file not shown.
@ -1,5 +1,5 @@
|
|||||||
/* zconf.h -- configuration of the zlib compression library
|
/* zconf.h -- configuration of the zlib compression library
|
||||||
* Copyright (C) 1995-2003 Jean-loup Gailly.
|
* Copyright (C) 1995-2005 Jean-loup Gailly.
|
||||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -23,15 +23,17 @@
|
|||||||
# define deflateSetDictionary z_deflateSetDictionary
|
# define deflateSetDictionary z_deflateSetDictionary
|
||||||
# define deflateCopy z_deflateCopy
|
# define deflateCopy z_deflateCopy
|
||||||
# define deflateReset z_deflateReset
|
# define deflateReset z_deflateReset
|
||||||
# define deflatePrime z_deflatePrime
|
|
||||||
# define deflateParams z_deflateParams
|
# define deflateParams z_deflateParams
|
||||||
# define deflateBound z_deflateBound
|
# define deflateBound z_deflateBound
|
||||||
|
# define deflatePrime z_deflatePrime
|
||||||
# define inflateInit2_ z_inflateInit2_
|
# define inflateInit2_ z_inflateInit2_
|
||||||
# define inflateSetDictionary z_inflateSetDictionary
|
# define inflateSetDictionary z_inflateSetDictionary
|
||||||
# define inflateSync z_inflateSync
|
# define inflateSync z_inflateSync
|
||||||
# define inflateSyncPoint z_inflateSyncPoint
|
# define inflateSyncPoint z_inflateSyncPoint
|
||||||
# define inflateCopy z_inflateCopy
|
# define inflateCopy z_inflateCopy
|
||||||
# define inflateReset z_inflateReset
|
# define inflateReset z_inflateReset
|
||||||
|
# define inflateBack z_inflateBack
|
||||||
|
# define inflateBackEnd z_inflateBackEnd
|
||||||
# define compress z_compress
|
# define compress z_compress
|
||||||
# define compress2 z_compress2
|
# define compress2 z_compress2
|
||||||
# define compressBound z_compressBound
|
# define compressBound z_compressBound
|
||||||
@ -39,7 +41,12 @@
|
|||||||
# define adler32 z_adler32
|
# define adler32 z_adler32
|
||||||
# define crc32 z_crc32
|
# define crc32 z_crc32
|
||||||
# define get_crc_table z_get_crc_table
|
# define get_crc_table z_get_crc_table
|
||||||
|
# define zError z_zError
|
||||||
|
|
||||||
|
# define alloc_func z_alloc_func
|
||||||
|
# define free_func z_free_func
|
||||||
|
# define in_func z_in_func
|
||||||
|
# define out_func z_out_func
|
||||||
# define Byte z_Byte
|
# define Byte z_Byte
|
||||||
# define uInt z_uInt
|
# define uInt z_uInt
|
||||||
# define uLong z_uLong
|
# define uLong z_uLong
|
||||||
@ -61,9 +68,11 @@
|
|||||||
#if defined(_WINDOWS) && !defined(WINDOWS)
|
#if defined(_WINDOWS) && !defined(WINDOWS)
|
||||||
# define WINDOWS
|
# define WINDOWS
|
||||||
#endif
|
#endif
|
||||||
#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
|
#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
|
||||||
|
# ifndef WIN32
|
||||||
# define WIN32
|
# define WIN32
|
||||||
# endif
|
# endif
|
||||||
|
#endif
|
||||||
#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
|
#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
|
||||||
# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
|
# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
|
||||||
# ifndef SYS16BIT
|
# ifndef SYS16BIT
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* zlib.h -- interface of the 'zlib' general purpose compression library
|
/* zlib.h -- interface of the 'zlib' general purpose compression library
|
||||||
version 1.2.1, November 17th, 2003
|
version 1.2.3, July 18th, 2005
|
||||||
|
|
||||||
Copyright (C) 1995-2003 Jean-loup Gailly and Mark Adler
|
Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
warranty. In no event will the authors be held liable for any damages
|
warranty. In no event will the authors be held liable for any damages
|
||||||
@ -37,8 +37,8 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define ZLIB_VERSION "1.2.1"
|
#define ZLIB_VERSION "1.2.3"
|
||||||
#define ZLIB_VERNUM 0x1210
|
#define ZLIB_VERNUM 0x1230
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The 'zlib' compression library provides in-memory compression and
|
The 'zlib' compression library provides in-memory compression and
|
||||||
@ -53,24 +53,22 @@ extern "C" {
|
|||||||
application must provide more input and/or consume the output
|
application must provide more input and/or consume the output
|
||||||
(providing more output space) before each call.
|
(providing more output space) before each call.
|
||||||
|
|
||||||
The compressed data format used by the in-memory functions is the zlib
|
The compressed data format used by default by the in-memory functions is
|
||||||
format, which is a zlib wrapper documented in RFC 1950, wrapped around a
|
the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped
|
||||||
deflate stream, which is itself documented in RFC 1951.
|
around a deflate stream, which is itself documented in RFC 1951.
|
||||||
|
|
||||||
The library also supports reading and writing files in gzip (.gz) format
|
The library also supports reading and writing files in gzip (.gz) format
|
||||||
with an interface similar to that of stdio using the functions that start
|
with an interface similar to that of stdio using the functions that start
|
||||||
with "gz". The gzip format is different from the zlib format. gzip is a
|
with "gz". The gzip format is different from the zlib format. gzip is a
|
||||||
gzip wrapper, documented in RFC 1952, wrapped around a deflate stream.
|
gzip wrapper, documented in RFC 1952, wrapped around a deflate stream.
|
||||||
|
|
||||||
|
This library can optionally read and write gzip streams in memory as well.
|
||||||
|
|
||||||
The zlib format was designed to be compact and fast for use in memory
|
The zlib format was designed to be compact and fast for use in memory
|
||||||
and on communications channels. The gzip format was designed for single-
|
and on communications channels. The gzip format was designed for single-
|
||||||
file compression on file systems, has a larger header than zlib to maintain
|
file compression on file systems, has a larger header than zlib to maintain
|
||||||
directory information, and uses a different, slower check method than zlib.
|
directory information, and uses a different, slower check method than zlib.
|
||||||
|
|
||||||
This library does not provide any functions to write gzip files in memory.
|
|
||||||
However such functions could be easily written using zlib's deflate function,
|
|
||||||
the documentation in the gzip RFC, and the examples in gzio.c.
|
|
||||||
|
|
||||||
The library does not install any signal handler. The decoder checks
|
The library does not install any signal handler. The decoder checks
|
||||||
the consistency of the compressed data, so the library should never
|
the consistency of the compressed data, so the library should never
|
||||||
crash even in case of corrupted input.
|
crash even in case of corrupted input.
|
||||||
@ -97,13 +95,36 @@ typedef struct z_stream_s {
|
|||||||
free_func zfree; /* used to free the internal state */
|
free_func zfree; /* used to free the internal state */
|
||||||
voidpf opaque; /* private data object passed to zalloc and zfree */
|
voidpf opaque; /* private data object passed to zalloc and zfree */
|
||||||
|
|
||||||
int data_type; /* best guess about the data type: ascii or binary */
|
int data_type; /* best guess about the data type: binary or text */
|
||||||
uLong adler; /* adler32 value of the uncompressed data */
|
uLong adler; /* adler32 value of the uncompressed data */
|
||||||
uLong reserved; /* reserved for future use */
|
uLong reserved; /* reserved for future use */
|
||||||
} z_stream;
|
} z_stream;
|
||||||
|
|
||||||
typedef z_stream FAR *z_streamp;
|
typedef z_stream FAR *z_streamp;
|
||||||
|
|
||||||
|
/*
|
||||||
|
gzip header information passed to and from zlib routines. See RFC 1952
|
||||||
|
for more details on the meanings of these fields.
|
||||||
|
*/
|
||||||
|
typedef struct gz_header_s {
|
||||||
|
int text; /* true if compressed data believed to be text */
|
||||||
|
uLong time; /* modification time */
|
||||||
|
int xflags; /* extra flags (not used when writing a gzip file) */
|
||||||
|
int os; /* operating system */
|
||||||
|
Bytef *extra; /* pointer to extra field or Z_NULL if none */
|
||||||
|
uInt extra_len; /* extra field length (valid if extra != Z_NULL) */
|
||||||
|
uInt extra_max; /* space at extra (only when reading header) */
|
||||||
|
Bytef *name; /* pointer to zero-terminated file name or Z_NULL */
|
||||||
|
uInt name_max; /* space at name (only when reading header) */
|
||||||
|
Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */
|
||||||
|
uInt comm_max; /* space at comment (only when reading header) */
|
||||||
|
int hcrc; /* true if there was or will be a header crc */
|
||||||
|
int done; /* true when done reading gzip header (not used
|
||||||
|
when writing a gzip file) */
|
||||||
|
} gz_header;
|
||||||
|
|
||||||
|
typedef gz_header FAR *gz_headerp;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The application must update next_in and avail_in when avail_in has
|
The application must update next_in and avail_in when avail_in has
|
||||||
dropped to zero. It must update next_out and avail_out when avail_out
|
dropped to zero. It must update next_out and avail_out when avail_out
|
||||||
@ -168,11 +189,13 @@ typedef z_stream FAR *z_streamp;
|
|||||||
#define Z_FILTERED 1
|
#define Z_FILTERED 1
|
||||||
#define Z_HUFFMAN_ONLY 2
|
#define Z_HUFFMAN_ONLY 2
|
||||||
#define Z_RLE 3
|
#define Z_RLE 3
|
||||||
|
#define Z_FIXED 4
|
||||||
#define Z_DEFAULT_STRATEGY 0
|
#define Z_DEFAULT_STRATEGY 0
|
||||||
/* compression strategy; see deflateInit2() below for details */
|
/* compression strategy; see deflateInit2() below for details */
|
||||||
|
|
||||||
#define Z_BINARY 0
|
#define Z_BINARY 0
|
||||||
#define Z_ASCII 1
|
#define Z_TEXT 1
|
||||||
|
#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */
|
||||||
#define Z_UNKNOWN 2
|
#define Z_UNKNOWN 2
|
||||||
/* Possible values of the data_type field (though see inflate()) */
|
/* Possible values of the data_type field (though see inflate()) */
|
||||||
|
|
||||||
@ -246,6 +269,10 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
|
|||||||
and with zero avail_out, it must be called again after making room in the
|
and with zero avail_out, it must be called again after making room in the
|
||||||
output buffer because there might be more output pending.
|
output buffer because there might be more output pending.
|
||||||
|
|
||||||
|
Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to
|
||||||
|
decide how much data to accumualte before producing output, in order to
|
||||||
|
maximize compression.
|
||||||
|
|
||||||
If the parameter flush is set to Z_SYNC_FLUSH, all pending output is
|
If the parameter flush is set to Z_SYNC_FLUSH, all pending output is
|
||||||
flushed to the output buffer and the output is aligned on a byte boundary, so
|
flushed to the output buffer and the output is aligned on a byte boundary, so
|
||||||
that the decompressor can get all input data available so far. (In particular
|
that the decompressor can get all input data available so far. (In particular
|
||||||
@ -257,7 +284,7 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
|
|||||||
Z_SYNC_FLUSH, and the compression state is reset so that decompression can
|
Z_SYNC_FLUSH, and the compression state is reset so that decompression can
|
||||||
restart from this point if previous compressed data has been damaged or if
|
restart from this point if previous compressed data has been damaged or if
|
||||||
random access is desired. Using Z_FULL_FLUSH too often can seriously degrade
|
random access is desired. Using Z_FULL_FLUSH too often can seriously degrade
|
||||||
the compression.
|
compression.
|
||||||
|
|
||||||
If deflate returns with avail_out == 0, this function must be called again
|
If deflate returns with avail_out == 0, this function must be called again
|
||||||
with the same value of the flush parameter and more output space (updated
|
with the same value of the flush parameter and more output space (updated
|
||||||
@ -282,8 +309,8 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
|
|||||||
deflate() sets strm->adler to the adler32 checksum of all input read
|
deflate() sets strm->adler to the adler32 checksum of all input read
|
||||||
so far (that is, total_in bytes).
|
so far (that is, total_in bytes).
|
||||||
|
|
||||||
deflate() may update data_type if it can make a good guess about
|
deflate() may update strm->data_type if it can make a good guess about
|
||||||
the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered
|
the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered
|
||||||
binary. This field is only for information purposes and does not affect
|
binary. This field is only for information purposes and does not affect
|
||||||
the compression algorithm in any manner.
|
the compression algorithm in any manner.
|
||||||
|
|
||||||
@ -365,11 +392,11 @@ ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
|
|||||||
The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH,
|
The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH,
|
||||||
Z_FINISH, or Z_BLOCK. Z_SYNC_FLUSH requests that inflate() flush as much
|
Z_FINISH, or Z_BLOCK. Z_SYNC_FLUSH requests that inflate() flush as much
|
||||||
output as possible to the output buffer. Z_BLOCK requests that inflate() stop
|
output as possible to the output buffer. Z_BLOCK requests that inflate() stop
|
||||||
if and when it get to the next deflate block boundary. When decoding the zlib
|
if and when it gets to the next deflate block boundary. When decoding the
|
||||||
or gzip format, this will cause inflate() to return immediately after the
|
zlib or gzip format, this will cause inflate() to return immediately after
|
||||||
header and before the first block. When doing a raw inflate, inflate() will
|
the header and before the first block. When doing a raw inflate, inflate()
|
||||||
go ahead and process the first block, and will return when it gets to the end
|
will go ahead and process the first block, and will return when it gets to
|
||||||
of that block, or when it runs out of data.
|
the end of that block, or when it runs out of data.
|
||||||
|
|
||||||
The Z_BLOCK option assists in appending to or combining deflate streams.
|
The Z_BLOCK option assists in appending to or combining deflate streams.
|
||||||
Also to assist in this, on return inflate() will set strm->data_type to the
|
Also to assist in this, on return inflate() will set strm->data_type to the
|
||||||
@ -401,7 +428,7 @@ ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
|
|||||||
because Z_BLOCK is used.
|
because Z_BLOCK is used.
|
||||||
|
|
||||||
If a preset dictionary is needed after this call (see inflateSetDictionary
|
If a preset dictionary is needed after this call (see inflateSetDictionary
|
||||||
below), inflate sets strm-adler to the adler32 checksum of the dictionary
|
below), inflate sets strm->adler to the adler32 checksum of the dictionary
|
||||||
chosen by the compressor and returns Z_NEED_DICT; otherwise it sets
|
chosen by the compressor and returns Z_NEED_DICT; otherwise it sets
|
||||||
strm->adler to the adler32 checksum of all output produced so far (that is,
|
strm->adler to the adler32 checksum of all output produced so far (that is,
|
||||||
total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described
|
total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described
|
||||||
@ -478,7 +505,8 @@ ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm,
|
|||||||
16 to windowBits to write a simple gzip header and trailer around the
|
16 to windowBits to write a simple gzip header and trailer around the
|
||||||
compressed data instead of a zlib wrapper. The gzip header will have no
|
compressed data instead of a zlib wrapper. The gzip header will have no
|
||||||
file name, no extra data, no comment, no modification time (set to zero),
|
file name, no extra data, no comment, no modification time (set to zero),
|
||||||
no header crc, and the operating system will be set to 255 (unknown).
|
no header crc, and the operating system will be set to 255 (unknown). If a
|
||||||
|
gzip stream is being written, strm->adler is a crc32 instead of an adler32.
|
||||||
|
|
||||||
The memLevel parameter specifies how much memory should be allocated
|
The memLevel parameter specifies how much memory should be allocated
|
||||||
for the internal compression state. memLevel=1 uses minimum memory but
|
for the internal compression state. memLevel=1 uses minimum memory but
|
||||||
@ -497,7 +525,9 @@ ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm,
|
|||||||
Z_DEFAULT and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as fast as
|
Z_DEFAULT and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as fast as
|
||||||
Z_HUFFMAN_ONLY, but give better compression for PNG image data. The strategy
|
Z_HUFFMAN_ONLY, but give better compression for PNG image data. The strategy
|
||||||
parameter only affects the compression ratio but not the correctness of the
|
parameter only affects the compression ratio but not the correctness of the
|
||||||
compressed output even if it is not set appropriately.
|
compressed output even if it is not set appropriately. Z_FIXED prevents the
|
||||||
|
use of dynamic Huffman codes, allowing for a simpler decoder for special
|
||||||
|
applications.
|
||||||
|
|
||||||
deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
|
deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
|
||||||
memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid
|
memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid
|
||||||
@ -526,7 +556,9 @@ ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm,
|
|||||||
deflateInit or deflateInit2, a part of the dictionary may in effect be
|
deflateInit or deflateInit2, a part of the dictionary may in effect be
|
||||||
discarded, for example if the dictionary is larger than the window size in
|
discarded, for example if the dictionary is larger than the window size in
|
||||||
deflate or deflate2. Thus the strings most likely to be useful should be
|
deflate or deflate2. Thus the strings most likely to be useful should be
|
||||||
put at the end of the dictionary, not at the front.
|
put at the end of the dictionary, not at the front. In addition, the
|
||||||
|
current implementation of deflate will use at most the window size minus
|
||||||
|
262 bytes of the provided dictionary.
|
||||||
|
|
||||||
Upon return of this function, strm->adler is set to the adler32 value
|
Upon return of this function, strm->adler is set to the adler32 value
|
||||||
of the dictionary; the decompressor may later use this value to determine
|
of the dictionary; the decompressor may later use this value to determine
|
||||||
@ -592,6 +624,23 @@ ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
|
|||||||
if strm->avail_out was zero.
|
if strm->avail_out was zero.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm,
|
||||||
|
int good_length,
|
||||||
|
int max_lazy,
|
||||||
|
int nice_length,
|
||||||
|
int max_chain));
|
||||||
|
/*
|
||||||
|
Fine tune deflate's internal compression parameters. This should only be
|
||||||
|
used by someone who understands the algorithm used by zlib's deflate for
|
||||||
|
searching for the best matching string, and even then only by the most
|
||||||
|
fanatic optimizer trying to squeeze out the last compressed bit for their
|
||||||
|
specific input data. Read the deflate.c source code for the meaning of the
|
||||||
|
max_lazy, good_length, nice_length, and max_chain parameters.
|
||||||
|
|
||||||
|
deflateTune() can be called after deflateInit() or deflateInit2(), and
|
||||||
|
returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream.
|
||||||
|
*/
|
||||||
|
|
||||||
ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm,
|
ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm,
|
||||||
uLong sourceLen));
|
uLong sourceLen));
|
||||||
/*
|
/*
|
||||||
@ -617,6 +666,30 @@ ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm,
|
|||||||
stream state was inconsistent.
|
stream state was inconsistent.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm,
|
||||||
|
gz_headerp head));
|
||||||
|
/*
|
||||||
|
deflateSetHeader() provides gzip header information for when a gzip
|
||||||
|
stream is requested by deflateInit2(). deflateSetHeader() may be called
|
||||||
|
after deflateInit2() or deflateReset() and before the first call of
|
||||||
|
deflate(). The text, time, os, extra field, name, and comment information
|
||||||
|
in the provided gz_header structure are written to the gzip header (xflag is
|
||||||
|
ignored -- the extra flags are set according to the compression level). The
|
||||||
|
caller must assure that, if not Z_NULL, name and comment are terminated with
|
||||||
|
a zero byte, and that if extra is not Z_NULL, that extra_len bytes are
|
||||||
|
available there. If hcrc is true, a gzip header crc is included. Note that
|
||||||
|
the current versions of the command-line version of gzip (up through version
|
||||||
|
1.3.x) do not support header crc's, and will report that it is a "multi-part
|
||||||
|
gzip file" and give up.
|
||||||
|
|
||||||
|
If deflateSetHeader is not used, the default gzip header has text false,
|
||||||
|
the time set to zero, and os set to 255, with no extra, name, or comment
|
||||||
|
fields. The gzip header is returned to the default state by deflateReset().
|
||||||
|
|
||||||
|
deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source
|
||||||
|
stream state was inconsistent.
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm,
|
ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm,
|
||||||
int windowBits));
|
int windowBits));
|
||||||
@ -649,14 +722,15 @@ ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm,
|
|||||||
windowBits can also be greater than 15 for optional gzip decoding. Add
|
windowBits can also be greater than 15 for optional gzip decoding. Add
|
||||||
32 to windowBits to enable zlib and gzip decoding with automatic header
|
32 to windowBits to enable zlib and gzip decoding with automatic header
|
||||||
detection, or add 16 to decode only the gzip format (the zlib format will
|
detection, or add 16 to decode only the gzip format (the zlib format will
|
||||||
return a Z_DATA_ERROR).
|
return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is
|
||||||
|
a crc32 instead of an adler32.
|
||||||
|
|
||||||
inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
|
inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
|
||||||
memory, Z_STREAM_ERROR if a parameter is invalid (such as a negative
|
memory, Z_STREAM_ERROR if a parameter is invalid (such as a null strm). msg
|
||||||
memLevel). msg is set to null if there is no error message. inflateInit2
|
is set to null if there is no error message. inflateInit2 does not perform
|
||||||
does not perform any decompression apart from reading the zlib header if
|
any decompression apart from reading the zlib header if present: this will
|
||||||
present: this will be done by inflate(). (So next_in and avail_in may be
|
be done by inflate(). (So next_in and avail_in may be modified, but next_out
|
||||||
modified, but next_out and avail_out are unchanged.)
|
and avail_out are unchanged.)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,
|
ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,
|
||||||
@ -664,11 +738,14 @@ ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,
|
|||||||
uInt dictLength));
|
uInt dictLength));
|
||||||
/*
|
/*
|
||||||
Initializes the decompression dictionary from the given uncompressed byte
|
Initializes the decompression dictionary from the given uncompressed byte
|
||||||
sequence. This function must be called immediately after a call of inflate
|
sequence. This function must be called immediately after a call of inflate,
|
||||||
if this call returned Z_NEED_DICT. The dictionary chosen by the compressor
|
if that call returned Z_NEED_DICT. The dictionary chosen by the compressor
|
||||||
can be determined from the adler32 value returned by this call of
|
can be determined from the adler32 value returned by that call of inflate.
|
||||||
inflate. The compressor and decompressor must use exactly the same
|
The compressor and decompressor must use exactly the same dictionary (see
|
||||||
dictionary (see deflateSetDictionary).
|
deflateSetDictionary). For raw inflate, this function can be called
|
||||||
|
immediately after inflateInit2() or inflateReset() and before any call of
|
||||||
|
inflate() to set the dictionary. The application must insure that the
|
||||||
|
dictionary that was used for compression is provided.
|
||||||
|
|
||||||
inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
|
inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
|
||||||
parameter is invalid (such as NULL dictionary) or the stream state is
|
parameter is invalid (such as NULL dictionary) or the stream state is
|
||||||
@ -719,8 +796,64 @@ ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm));
|
|||||||
stream state was inconsistent (such as zalloc or state being NULL).
|
stream state was inconsistent (such as zalloc or state being NULL).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm,
|
||||||
|
int bits,
|
||||||
|
int value));
|
||||||
/*
|
/*
|
||||||
ZEXTERN int ZEXPORT inflateBackInit OF((z_stream FAR *strm, int windowBits,
|
This function inserts bits in the inflate input stream. The intent is
|
||||||
|
that this function is used to start inflating at a bit position in the
|
||||||
|
middle of a byte. The provided bits will be used before any bytes are used
|
||||||
|
from next_in. This function should only be used with raw inflate, and
|
||||||
|
should be used before the first inflate() call after inflateInit2() or
|
||||||
|
inflateReset(). bits must be less than or equal to 16, and that many of the
|
||||||
|
least significant bits of value will be inserted in the input.
|
||||||
|
|
||||||
|
inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source
|
||||||
|
stream state was inconsistent.
|
||||||
|
*/
|
||||||
|
|
||||||
|
ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm,
|
||||||
|
gz_headerp head));
|
||||||
|
/*
|
||||||
|
inflateGetHeader() requests that gzip header information be stored in the
|
||||||
|
provided gz_header structure. inflateGetHeader() may be called after
|
||||||
|
inflateInit2() or inflateReset(), and before the first call of inflate().
|
||||||
|
As inflate() processes the gzip stream, head->done is zero until the header
|
||||||
|
is completed, at which time head->done is set to one. If a zlib stream is
|
||||||
|
being decoded, then head->done is set to -1 to indicate that there will be
|
||||||
|
no gzip header information forthcoming. Note that Z_BLOCK can be used to
|
||||||
|
force inflate() to return immediately after header processing is complete
|
||||||
|
and before any actual data is decompressed.
|
||||||
|
|
||||||
|
The text, time, xflags, and os fields are filled in with the gzip header
|
||||||
|
contents. hcrc is set to true if there is a header CRC. (The header CRC
|
||||||
|
was valid if done is set to one.) If extra is not Z_NULL, then extra_max
|
||||||
|
contains the maximum number of bytes to write to extra. Once done is true,
|
||||||
|
extra_len contains the actual extra field length, and extra contains the
|
||||||
|
extra field, or that field truncated if extra_max is less than extra_len.
|
||||||
|
If name is not Z_NULL, then up to name_max characters are written there,
|
||||||
|
terminated with a zero unless the length is greater than name_max. If
|
||||||
|
comment is not Z_NULL, then up to comm_max characters are written there,
|
||||||
|
terminated with a zero unless the length is greater than comm_max. When
|
||||||
|
any of extra, name, or comment are not Z_NULL and the respective field is
|
||||||
|
not present in the header, then that field is set to Z_NULL to signal its
|
||||||
|
absence. This allows the use of deflateSetHeader() with the returned
|
||||||
|
structure to duplicate the header. However if those fields are set to
|
||||||
|
allocated memory, then the application will need to save those pointers
|
||||||
|
elsewhere so that they can be eventually freed.
|
||||||
|
|
||||||
|
If inflateGetHeader is not used, then the header information is simply
|
||||||
|
discarded. The header is always checked for validity, including the header
|
||||||
|
CRC if present. inflateReset() will reset the process to discard the header
|
||||||
|
information. The application would need to call inflateGetHeader() again to
|
||||||
|
retrieve the header from the next gzip stream.
|
||||||
|
|
||||||
|
inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source
|
||||||
|
stream state was inconsistent.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits,
|
||||||
unsigned char FAR *window));
|
unsigned char FAR *window));
|
||||||
|
|
||||||
Initialize the internal stream state for decompression using inflateBack()
|
Initialize the internal stream state for decompression using inflateBack()
|
||||||
@ -744,7 +877,7 @@ ZEXTERN int ZEXPORT inflateBackInit OF((z_stream FAR *strm, int windowBits,
|
|||||||
typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *));
|
typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *));
|
||||||
typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned));
|
typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned));
|
||||||
|
|
||||||
ZEXTERN int ZEXPORT inflateBack OF((z_stream FAR *strm,
|
ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm,
|
||||||
in_func in, void FAR *in_desc,
|
in_func in, void FAR *in_desc,
|
||||||
out_func out, void FAR *out_desc));
|
out_func out, void FAR *out_desc));
|
||||||
/*
|
/*
|
||||||
@ -813,7 +946,7 @@ ZEXTERN int ZEXPORT inflateBack OF((z_stream FAR *strm,
|
|||||||
that inflateBack() cannot return Z_OK.
|
that inflateBack() cannot return Z_OK.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ZEXTERN int ZEXPORT inflateBackEnd OF((z_stream FAR *strm));
|
ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm));
|
||||||
/*
|
/*
|
||||||
All memory allocated by inflateBackInit() is freed.
|
All memory allocated by inflateBackInit() is freed.
|
||||||
|
|
||||||
@ -1087,6 +1220,12 @@ ZEXTERN int ZEXPORT gzeof OF((gzFile file));
|
|||||||
input stream, otherwise zero.
|
input stream, otherwise zero.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
ZEXTERN int ZEXPORT gzdirect OF((gzFile file));
|
||||||
|
/*
|
||||||
|
Returns 1 if file is being read directly without decompression, otherwise
|
||||||
|
zero.
|
||||||
|
*/
|
||||||
|
|
||||||
ZEXTERN int ZEXPORT gzclose OF((gzFile file));
|
ZEXTERN int ZEXPORT gzclose OF((gzFile file));
|
||||||
/*
|
/*
|
||||||
Flushes all pending output if necessary, closes the compressed file
|
Flushes all pending output if necessary, closes the compressed file
|
||||||
@ -1119,7 +1258,6 @@ ZEXTERN void ZEXPORT gzclearerr OF((gzFile file));
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
|
ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Update a running Adler-32 checksum with the bytes buf[0..len-1] and
|
Update a running Adler-32 checksum with the bytes buf[0..len-1] and
|
||||||
return the updated checksum. If buf is NULL, this function returns
|
return the updated checksum. If buf is NULL, this function returns
|
||||||
@ -1135,12 +1273,21 @@ ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
|
|||||||
if (adler != original_adler) error();
|
if (adler != original_adler) error();
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2,
|
||||||
|
z_off_t len2));
|
||||||
|
/*
|
||||||
|
Combine two Adler-32 checksums into one. For two sequences of bytes, seq1
|
||||||
|
and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for
|
||||||
|
each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of
|
||||||
|
seq1 and seq2 concatenated, requiring only adler1, adler2, and len2.
|
||||||
|
*/
|
||||||
|
|
||||||
ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len));
|
ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len));
|
||||||
/*
|
/*
|
||||||
Update a running crc with the bytes buf[0..len-1] and return the updated
|
Update a running CRC-32 with the bytes buf[0..len-1] and return the
|
||||||
crc. If buf is NULL, this function returns the required initial value
|
updated CRC-32. If buf is NULL, this function returns the required initial
|
||||||
for the crc. Pre- and post-conditioning (one's complement) is performed
|
value for the for the crc. Pre- and post-conditioning (one's complement) is
|
||||||
within this function so it shouldn't be done by the application.
|
performed within this function so it shouldn't be done by the application.
|
||||||
Usage example:
|
Usage example:
|
||||||
|
|
||||||
uLong crc = crc32(0L, Z_NULL, 0);
|
uLong crc = crc32(0L, Z_NULL, 0);
|
||||||
@ -1151,6 +1298,16 @@ ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len));
|
|||||||
if (crc != original_crc) error();
|
if (crc != original_crc) error();
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2));
|
||||||
|
|
||||||
|
/*
|
||||||
|
Combine two CRC-32 check values into one. For two sequences of bytes,
|
||||||
|
seq1 and seq2 with lengths len1 and len2, CRC-32 check values were
|
||||||
|
calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32
|
||||||
|
check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and
|
||||||
|
len2.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
/* various hacks, don't look :) */
|
/* various hacks, don't look :) */
|
||||||
|
|
||||||
@ -1167,7 +1324,7 @@ ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method,
|
|||||||
int stream_size));
|
int stream_size));
|
||||||
ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits,
|
ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits,
|
||||||
const char *version, int stream_size));
|
const char *version, int stream_size));
|
||||||
ZEXTERN int ZEXPORT inflateBackInit_ OF((z_stream FAR *strm, int windowBits,
|
ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits,
|
||||||
unsigned char FAR *window,
|
unsigned char FAR *window,
|
||||||
const char *version,
|
const char *version,
|
||||||
int stream_size));
|
int stream_size));
|
||||||
@ -1189,7 +1346,7 @@ ZEXTERN int ZEXPORT inflateBackInit_ OF((z_stream FAR *strm, int windowBits,
|
|||||||
struct internal_state {int dummy;}; /* hack for buggy compilers */
|
struct internal_state {int dummy;}; /* hack for buggy compilers */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ZEXTERN const char * ZEXPORT zError OF((int err));
|
ZEXTERN const char * ZEXPORT zError OF((int));
|
||||||
ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp z));
|
ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp z));
|
||||||
ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void));
|
ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void));
|
||||||
|
|
||||||
|
Binary file not shown.
@ -26,13 +26,13 @@ else
|
|||||||
CFLAGS += -DPAWN_CELL_SIZE=32
|
CFLAGS += -DPAWN_CELL_SIZE=32
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CFLAGS += -DLINUX -DNDEBUG -fPIC -DHAVE_STDINT_H -DENABLE_BINRELOC -DNO_MAIN -DPAWNC_DLL -static-libgcc
|
CFLAGS += -DLINUX -DNDEBUG -DHAVE_STDINT_H -DENABLE_BINRELOC -DNO_MAIN -DPAWNC_DLL -static-libgcc
|
||||||
|
|
||||||
CFLAGS += $(OPT_FLAGS)
|
CFLAGS += $(OPT_FLAGS)
|
||||||
OBJ_LINUX := $(OBJECTS:%.c=$(BIN_DIR)/%.o)
|
OBJ_LINUX := $(OBJECTS:%.c=$(BIN_DIR)/%.o)
|
||||||
|
|
||||||
$(BIN_DIR)/%.o: %.c
|
$(BIN_DIR)/%.o: %.c
|
||||||
$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
|
$(CPP) $(INCLUDE) $(CFLAGS) -m32 -o $@ -c $<
|
||||||
|
|
||||||
all:
|
all:
|
||||||
mkdir -p Release32
|
mkdir -p Release32
|
||||||
@ -41,7 +41,7 @@ all:
|
|||||||
$(MAKE) pawn_make PAWN64=true
|
$(MAKE) pawn_make PAWN64=true
|
||||||
|
|
||||||
pawn_make: $(OBJ_LINUX)
|
pawn_make: $(OBJ_LINUX)
|
||||||
$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
|
$(CPP) $(INCLUDE) $(CFLAGS) -m32 $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
|
||||||
|
|
||||||
debug:
|
debug:
|
||||||
$(MAKE) all DEBUG=true
|
$(MAKE) all DEBUG=true
|
||||||
|
@ -21,6 +21,15 @@
|
|||||||
* Version: $Id$
|
* Version: $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
// MSVC8 - replace POSIX functions with ISO C++ conformant ones as they are deprecated
|
||||||
|
#if _MSC_VER >= 1400
|
||||||
|
#define access _access
|
||||||
|
#define chdir _chdir
|
||||||
|
#define stricmp _stricmp
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined FREEBSD && !defined __FreeBSD__
|
#if defined FREEBSD && !defined __FreeBSD__
|
||||||
#define __FreeBSD__
|
#define __FreeBSD__
|
||||||
#endif
|
#endif
|
||||||
@ -212,7 +221,7 @@ typedef struct tagAMX_NATIVE_INFO {
|
|||||||
|
|
||||||
typedef struct tagAMX_FUNCSTUB {
|
typedef struct tagAMX_FUNCSTUB {
|
||||||
ucell address PACKED;
|
ucell address PACKED;
|
||||||
char name[sEXPMAX+1] PACKED;
|
char name[sEXPMAX+1];
|
||||||
} PACKED AMX_FUNCSTUB;
|
} PACKED AMX_FUNCSTUB;
|
||||||
|
|
||||||
typedef struct tagFUNCSTUBNT {
|
typedef struct tagFUNCSTUBNT {
|
||||||
@ -260,8 +269,8 @@ typedef struct tagAMX {
|
|||||||
typedef struct tagAMX_HEADER {
|
typedef struct tagAMX_HEADER {
|
||||||
int32_t size PACKED; /* size of the "file" */
|
int32_t size PACKED; /* size of the "file" */
|
||||||
uint16_t magic PACKED; /* signature */
|
uint16_t magic PACKED; /* signature */
|
||||||
char file_version PACKED; /* file format version */
|
char file_version; /* file format version */
|
||||||
char amx_version PACKED; /* required version of the AMX */
|
char amx_version; /* required version of the AMX */
|
||||||
int16_t flags PACKED;
|
int16_t flags PACKED;
|
||||||
int16_t defsize PACKED; /* size of a definition record */
|
int16_t defsize PACKED; /* size of a definition record */
|
||||||
int32_t cod PACKED; /* initial value of COD - code block */
|
int32_t cod PACKED; /* initial value of COD - code block */
|
||||||
|
@ -65,8 +65,8 @@ extern "C" {
|
|||||||
typedef struct tagAMX_DBG_HDR {
|
typedef struct tagAMX_DBG_HDR {
|
||||||
int32_t size PACKED; /* size of the debug information chunk */
|
int32_t size PACKED; /* size of the debug information chunk */
|
||||||
uint16_t magic PACKED; /* signature, must be 0xf1ef */
|
uint16_t magic PACKED; /* signature, must be 0xf1ef */
|
||||||
char file_version PACKED; /* file format version */
|
char file_version; /* file format version */
|
||||||
char amx_version PACKED; /* required version of the AMX */
|
char amx_version; /* required version of the AMX */
|
||||||
int16_t flags PACKED; /* currently unused */
|
int16_t flags PACKED; /* currently unused */
|
||||||
int16_t files PACKED; /* number of entries in the "file" table */
|
int16_t files PACKED; /* number of entries in the "file" table */
|
||||||
int16_t lines PACKED; /* number of entries in the "line" table */
|
int16_t lines PACKED; /* number of entries in the "line" table */
|
||||||
@ -74,51 +74,51 @@ typedef struct tagAMX_DBG_HDR {
|
|||||||
int16_t tags PACKED; /* number of entries in the "tag" table */
|
int16_t tags PACKED; /* number of entries in the "tag" table */
|
||||||
int16_t automatons PACKED; /* number of entries in the "automaton" table */
|
int16_t automatons PACKED; /* number of entries in the "automaton" table */
|
||||||
int16_t states PACKED; /* number of entries in the "state" table */
|
int16_t states PACKED; /* number of entries in the "state" table */
|
||||||
} AMX_DBG_HDR PACKED;
|
} AMX_DBG_HDR;
|
||||||
#define AMX_DBG_MAGIC 0xf1ef
|
#define AMX_DBG_MAGIC 0xf1ef
|
||||||
|
|
||||||
typedef struct tagAMX_DBG_FILE {
|
typedef struct tagAMX_DBG_FILE {
|
||||||
ucell address PACKED; /* address in the code segment where generated code (for this file) starts */
|
ucell address PACKED; /* address in the code segment where generated code (for this file) starts */
|
||||||
const char name[1] PACKED; /* ASCII string, zero-terminated */
|
const char name[1]; /* ASCII string, zero-terminated */
|
||||||
} AMX_DBG_FILE PACKED;
|
} AMX_DBG_FILE;
|
||||||
|
|
||||||
typedef struct tagAMX_DBG_LINE {
|
typedef struct tagAMX_DBG_LINE {
|
||||||
ucell address PACKED; /* address in the code segment where generated code (for this line) starts */
|
ucell address PACKED; /* address in the code segment where generated code (for this line) starts */
|
||||||
int32_t line PACKED; /* line number */
|
int32_t line PACKED; /* line number */
|
||||||
} AMX_DBG_LINE PACKED;
|
} AMX_DBG_LINE;
|
||||||
|
|
||||||
typedef struct tagAMX_DBG_SYMBOL {
|
typedef struct tagAMX_DBG_SYMBOL {
|
||||||
ucell address PACKED; /* address in the data segment or relative to the frame */
|
ucell address PACKED; /* address in the data segment or relative to the frame */
|
||||||
int16_t tag PACKED; /* tag for the symbol */
|
int16_t tag PACKED; /* tag for the symbol */
|
||||||
ucell codestart PACKED; /* address in the code segment from which this symbol is valid (in scope) */
|
ucell codestart PACKED; /* address in the code segment from which this symbol is valid (in scope) */
|
||||||
ucell codeend PACKED; /* address in the code segment until which this symbol is valid (in scope) */
|
ucell codeend PACKED; /* address in the code segment until which this symbol is valid (in scope) */
|
||||||
char ident PACKED; /* kind of symbol (function/variable) */
|
char ident; /* kind of symbol (function/variable) */
|
||||||
char vclass PACKED; /* class of symbol (global/local) */
|
char vclass; /* class of symbol (global/local) */
|
||||||
int16_t dim PACKED; /* number of dimensions */
|
int16_t dim PACKED; /* number of dimensions */
|
||||||
const char name[1] PACKED; /* ASCII string, zero-terminated */
|
const char name[1]; /* ASCII string, zero-terminated */
|
||||||
} AMX_DBG_SYMBOL PACKED;
|
} AMX_DBG_SYMBOL;
|
||||||
|
|
||||||
typedef struct tagAMX_DBG_SYMDIM {
|
typedef struct tagAMX_DBG_SYMDIM {
|
||||||
int16_t tag PACKED; /* tag for the array dimension */
|
int16_t tag PACKED; /* tag for the array dimension */
|
||||||
ucell size PACKED; /* size of the array dimension */
|
ucell size PACKED; /* size of the array dimension */
|
||||||
} AMX_DBG_SYMDIM PACKED;
|
} AMX_DBG_SYMDIM;
|
||||||
|
|
||||||
typedef struct tagAMX_DBG_TAG {
|
typedef struct tagAMX_DBG_TAG {
|
||||||
int16_t tag PACKED; /* tag id */
|
int16_t tag PACKED; /* tag id */
|
||||||
const char name[1] PACKED; /* ASCII string, zero-terminated */
|
const char name[1]; /* ASCII string, zero-terminated */
|
||||||
} AMX_DBG_TAG PACKED;
|
} AMX_DBG_TAG;
|
||||||
|
|
||||||
typedef struct tagAMX_DBG_MACHINE {
|
typedef struct tagAMX_DBG_MACHINE {
|
||||||
int16_t automaton PACKED; /* automaton id */
|
int16_t automaton PACKED; /* automaton id */
|
||||||
ucell address PACKED; /* address of state variable */
|
ucell address PACKED; /* address of state variable */
|
||||||
const char name[1] PACKED; /* ASCII string, zero-terminated */
|
const char name[1]; /* ASCII string, zero-terminated */
|
||||||
} AMX_DBG_MACHINE PACKED;
|
} AMX_DBG_MACHINE;
|
||||||
|
|
||||||
typedef struct tagAMX_DBG_STATE {
|
typedef struct tagAMX_DBG_STATE {
|
||||||
int16_t state PACKED; /* state id */
|
int16_t state PACKED; /* state id */
|
||||||
int16_t automaton PACKED; /* automaton id */
|
int16_t automaton PACKED; /* automaton id */
|
||||||
const char name[1] PACKED; /* ASCII string, zero-terminated */
|
const char name[1]; /* ASCII string, zero-terminated */
|
||||||
} AMX_DBG_STATE PACKED;
|
} AMX_DBG_STATE;
|
||||||
|
|
||||||
typedef struct tagAMX_DBG {
|
typedef struct tagAMX_DBG {
|
||||||
AMX_DBG_HDR _FAR *hdr PACKED; /* points to the AMX_DBG header */
|
AMX_DBG_HDR _FAR *hdr PACKED; /* points to the AMX_DBG header */
|
||||||
@ -128,7 +128,7 @@ typedef struct tagAMX_DBG {
|
|||||||
AMX_DBG_TAG _FAR **tagtbl PACKED;
|
AMX_DBG_TAG _FAR **tagtbl PACKED;
|
||||||
AMX_DBG_MACHINE _FAR **automatontbl PACKED;
|
AMX_DBG_MACHINE _FAR **automatontbl PACKED;
|
||||||
AMX_DBG_STATE _FAR **statetbl PACKED;
|
AMX_DBG_STATE _FAR **statetbl PACKED;
|
||||||
} AMX_DBG PACKED;
|
} AMX_DBG;
|
||||||
|
|
||||||
#if !defined iVARIABLE
|
#if !defined iVARIABLE
|
||||||
#define iVARIABLE 1 /* cell that has an address and that can be fetched directly (lvalue) */
|
#define iVARIABLE 1 /* cell that has an address and that can be fetched directly (lvalue) */
|
||||||
|
@ -1,33 +1,26 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||||
|
# Visual Studio 2005
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpc300", "libpc300.vcproj", "{19B72687-080B-437A-917A-12AEB0031635}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpc300", "libpc300.vcproj", "{19B72687-080B-437A-917A-12AEB0031635}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfiguration) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug = Debug
|
Debug32|Win32 = Debug32|Win32
|
||||||
Debug32 = Debug32
|
Debug64|Win32 = Debug64|Win32
|
||||||
Debug64 = Debug64
|
Release32|Win32 = Release32|Win32
|
||||||
Release = Release
|
Release64|Win32 = Release64|Win32
|
||||||
Release32 = Release32
|
|
||||||
Release64 = Release64
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfiguration) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{19B72687-080B-437A-917A-12AEB0031635}.Debug.ActiveCfg = Release|Win32
|
{19B72687-080B-437A-917A-12AEB0031635}.Debug32|Win32.ActiveCfg = Debug32|Win32
|
||||||
{19B72687-080B-437A-917A-12AEB0031635}.Debug.Build.0 = Release|Win32
|
{19B72687-080B-437A-917A-12AEB0031635}.Debug32|Win32.Build.0 = Debug32|Win32
|
||||||
{19B72687-080B-437A-917A-12AEB0031635}.Debug32.ActiveCfg = Debug32|Win32
|
{19B72687-080B-437A-917A-12AEB0031635}.Debug64|Win32.ActiveCfg = Debug64|Win32
|
||||||
{19B72687-080B-437A-917A-12AEB0031635}.Debug32.Build.0 = Debug32|Win32
|
{19B72687-080B-437A-917A-12AEB0031635}.Debug64|Win32.Build.0 = Debug64|Win32
|
||||||
{19B72687-080B-437A-917A-12AEB0031635}.Debug64.ActiveCfg = Debug64|Win32
|
{19B72687-080B-437A-917A-12AEB0031635}.Release32|Win32.ActiveCfg = Release32|Win32
|
||||||
{19B72687-080B-437A-917A-12AEB0031635}.Debug64.Build.0 = Debug64|Win32
|
{19B72687-080B-437A-917A-12AEB0031635}.Release32|Win32.Build.0 = Release32|Win32
|
||||||
{19B72687-080B-437A-917A-12AEB0031635}.Release.ActiveCfg = Release|Win32
|
{19B72687-080B-437A-917A-12AEB0031635}.Release64|Win32.ActiveCfg = Release64|Win32
|
||||||
{19B72687-080B-437A-917A-12AEB0031635}.Release.Build.0 = Release|Win32
|
{19B72687-080B-437A-917A-12AEB0031635}.Release64|Win32.Build.0 = Release64|Win32
|
||||||
{19B72687-080B-437A-917A-12AEB0031635}.Release32.ActiveCfg = Release32|Win32
|
|
||||||
{19B72687-080B-437A-917A-12AEB0031635}.Release32.Build.0 = Release32|Win32
|
|
||||||
{19B72687-080B-437A-917A-12AEB0031635}.Release64.ActiveCfg = Release64|Win32
|
|
||||||
{19B72687-080B-437A-917A-12AEB0031635}.Release64.Build.0 = Release64|Win32
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
EndGlobalSection
|
HideSolutionNode = FALSE
|
||||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
@ -1,303 +1,335 @@
|
|||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="7.10"
|
Version="8.00"
|
||||||
Name="libpc300"
|
Name="libpc300"
|
||||||
ProjectGUID="{19B72687-080B-437A-917A-12AEB0031635}"
|
ProjectGUID="{19B72687-080B-437A-917A-12AEB0031635}"
|
||||||
RootNamespace="libpc300"
|
RootNamespace="libpc300"
|
||||||
Keyword="Win32Proj">
|
Keyword="Win32Proj"
|
||||||
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
Name="Win32"/>
|
Name="Win32"
|
||||||
|
/>
|
||||||
</Platforms>
|
</Platforms>
|
||||||
|
<ToolFiles>
|
||||||
|
</ToolFiles>
|
||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
OutputDirectory="Debug"
|
|
||||||
IntermediateDirectory="Debug"
|
|
||||||
ConfigurationType="2"
|
|
||||||
CharacterSet="2">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBPC300_EXPORTS"
|
|
||||||
MinimalRebuild="TRUE"
|
|
||||||
BasicRuntimeChecks="3"
|
|
||||||
RuntimeLibrary="1"
|
|
||||||
UsePrecompiledHeader="0"
|
|
||||||
WarningLevel="3"
|
|
||||||
Detect64BitPortabilityProblems="TRUE"
|
|
||||||
DebugInformationFormat="4"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
OutputFile="$(OutDir)/libpc300.dll"
|
|
||||||
LinkIncremental="2"
|
|
||||||
GenerateDebugInformation="TRUE"
|
|
||||||
ProgramDatabaseFile="$(OutDir)/libpc300.pdb"
|
|
||||||
SubSystem="2"
|
|
||||||
ImportLibrary="$(OutDir)/libpc300.lib"
|
|
||||||
TargetMachine="1"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
|
||||||
Name="Release|Win32"
|
|
||||||
OutputDirectory="Release"
|
|
||||||
IntermediateDirectory="Release"
|
|
||||||
ConfigurationType="2"
|
|
||||||
CharacterSet="2">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBPC300_EXPORTS"
|
|
||||||
RuntimeLibrary="0"
|
|
||||||
UsePrecompiledHeader="0"
|
|
||||||
WarningLevel="3"
|
|
||||||
Detect64BitPortabilityProblems="TRUE"
|
|
||||||
DebugInformationFormat="3"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
OutputFile="$(OutDir)/libpc300.dll"
|
|
||||||
LinkIncremental="1"
|
|
||||||
GenerateDebugInformation="TRUE"
|
|
||||||
SubSystem="2"
|
|
||||||
OptimizeReferences="2"
|
|
||||||
EnableCOMDATFolding="2"
|
|
||||||
ImportLibrary="$(OutDir)/libpc300.lib"
|
|
||||||
TargetMachine="1"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release32|Win32"
|
Name="Release32|Win32"
|
||||||
OutputDirectory="$(ConfigurationName)"
|
OutputDirectory="$(ConfigurationName)"
|
||||||
IntermediateDirectory="$(ConfigurationName)"
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
CharacterSet="2">
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||||
|
CharacterSet="2"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBPC300_EXPORTS;PAWNC_DLL;PAWN_CELL_SIZE=32;NO_MAIN"
|
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBPC300_EXPORTS;PAWNC_DLL;PAWN_CELL_SIZE=32;NO_MAIN;_CRT_SECURE_NO_DEPRECATE"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
|
RuntimeTypeInfo="false"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
Detect64BitPortabilityProblems="FALSE"
|
Detect64BitPortabilityProblems="false"
|
||||||
DebugInformationFormat="3"/>
|
DebugInformationFormat="3"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)/amxxpc32.dll"
|
OutputFile="$(OutDir)/amxxpc32.dll"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
GenerateDebugInformation="TRUE"
|
GenerateDebugInformation="true"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
OptimizeReferences="2"
|
OptimizeReferences="2"
|
||||||
EnableCOMDATFolding="2"
|
EnableCOMDATFolding="2"
|
||||||
ImportLibrary="$(OutDir)/libpc300.lib"
|
ImportLibrary="$(OutDir)/libpc300.lib"
|
||||||
TargetMachine="1"/>
|
TargetMachine="1"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCWebDeploymentTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCPostBuildEventTool"
|
||||||
<Tool
|
/>
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release64|Win32"
|
Name="Release64|Win32"
|
||||||
OutputDirectory="$(ConfigurationName)"
|
OutputDirectory="$(ConfigurationName)"
|
||||||
IntermediateDirectory="$(ConfigurationName)"
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
CharacterSet="2">
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||||
|
CharacterSet="2"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBPC300_EXPORTS;PAWNC_DLL;PAWN_CELL_SIZE=64;NO_MAIN"
|
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBPC300_EXPORTS;PAWNC_DLL;PAWN_CELL_SIZE=64;NO_MAIN;_CRT_SECURE_NO_DEPRECATE"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
|
RuntimeTypeInfo="false"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
Detect64BitPortabilityProblems="FALSE"
|
Detect64BitPortabilityProblems="false"
|
||||||
DebugInformationFormat="3"/>
|
DebugInformationFormat="3"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)/amxxpc64.dll"
|
OutputFile="$(OutDir)/amxxpc64.dll"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
GenerateDebugInformation="TRUE"
|
GenerateDebugInformation="true"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
OptimizeReferences="2"
|
OptimizeReferences="2"
|
||||||
EnableCOMDATFolding="2"
|
EnableCOMDATFolding="2"
|
||||||
ImportLibrary="$(OutDir)/libpc300.lib"
|
ImportLibrary="$(OutDir)/libpc300.lib"
|
||||||
TargetMachine="1"/>
|
TargetMachine="1"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCWebDeploymentTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCPostBuildEventTool"
|
||||||
<Tool
|
/>
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug32|Win32"
|
Name="Debug32|Win32"
|
||||||
OutputDirectory="$(ConfigurationName)"
|
OutputDirectory="$(ConfigurationName)"
|
||||||
IntermediateDirectory="$(ConfigurationName)"
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
CharacterSet="2">
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||||
|
CharacterSet="2"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBPC300_EXPORTS;PAWNC_DLL;PAWN_CELL_SIZE=32;NO_MAIN"
|
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBPC300_EXPORTS;PAWNC_DLL;PAWN_CELL_SIZE=32;NO_MAIN;_CRT_SECURE_NO_DEPRECATE"
|
||||||
MinimalRebuild="TRUE"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="1"
|
BasicRuntimeChecks="1"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
|
RuntimeTypeInfo="false"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
Detect64BitPortabilityProblems="FALSE"
|
Detect64BitPortabilityProblems="false"
|
||||||
DebugInformationFormat="4"/>
|
DebugInformationFormat="4"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)/amxxpc32.dll"
|
OutputFile="$(OutDir)/amxxpc32.dll"
|
||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
GenerateDebugInformation="TRUE"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)/libpc300.pdb"
|
ProgramDatabaseFile="$(OutDir)/libpc300.pdb"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
ImportLibrary="$(OutDir)/libpc300.lib"
|
ImportLibrary="$(OutDir)/libpc300.lib"
|
||||||
TargetMachine="1"/>
|
TargetMachine="1"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCWebDeploymentTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCPostBuildEventTool"
|
||||||
<Tool
|
/>
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug64|Win32"
|
Name="Debug64|Win32"
|
||||||
OutputDirectory="$(ConfigurationName)"
|
OutputDirectory="$(ConfigurationName)"
|
||||||
IntermediateDirectory="$(ConfigurationName)"
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
CharacterSet="2">
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||||
|
CharacterSet="2"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBPC300_EXPORTS;PAWNC_DLL;PAWN_CELL_SIZE=64;NO_MAIN"
|
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBPC300_EXPORTS;PAWNC_DLL;PAWN_CELL_SIZE=64;NO_MAIN;_CRT_SECURE_NO_DEPRECATE"
|
||||||
MinimalRebuild="TRUE"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="1"
|
BasicRuntimeChecks="1"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
|
RuntimeTypeInfo="false"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
Detect64BitPortabilityProblems="FALSE"
|
Detect64BitPortabilityProblems="false"
|
||||||
DebugInformationFormat="4"/>
|
DebugInformationFormat="4"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)/amxxpc64.dll"
|
OutputFile="$(OutDir)/amxxpc64.dll"
|
||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
GenerateDebugInformation="TRUE"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)/libpc300.pdb"
|
ProgramDatabaseFile="$(OutDir)/libpc300.pdb"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
ImportLibrary="$(OutDir)/libpc300.lib"
|
ImportLibrary="$(OutDir)/libpc300.lib"
|
||||||
TargetMachine="1"/>
|
TargetMachine="1"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCWebDeploymentTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCPostBuildEventTool"
|
||||||
<Tool
|
/>
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
@ -306,79 +338,103 @@
|
|||||||
<Filter
|
<Filter
|
||||||
Name="Source Files"
|
Name="Source Files"
|
||||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
|
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||||
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\libpawnc.c">
|
RelativePath=".\libpawnc.c"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\memfile.c">
|
RelativePath=".\memfile.c"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\sc1.c">
|
RelativePath=".\sc1.c"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\sc2.c">
|
RelativePath=".\sc2.c"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\sc3.c">
|
RelativePath=".\sc3.c"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\sc4.c">
|
RelativePath=".\sc4.c"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\sc5.c">
|
RelativePath=".\sc5.c"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\sc6.c">
|
RelativePath=".\sc6.c"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\sc7.c">
|
RelativePath=".\sc7.c"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\scexpand.c">
|
RelativePath=".\scexpand.c"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\sci18n.c">
|
RelativePath=".\sci18n.c"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\sclist.c">
|
RelativePath=".\sclist.c"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\scmemfil.c">
|
RelativePath=".\scmemfil.c"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\scstate.c">
|
RelativePath=".\scstate.c"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\scvars.c">
|
RelativePath=".\scvars.c"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Header Files"
|
Name="Header Files"
|
||||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
|
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||||
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx.h">
|
RelativePath=".\amx.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\memfile.h">
|
RelativePath=".\memfile.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\sc.h">
|
RelativePath=".\sc.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Resource Files"
|
Name="Resource Files"
|
||||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
|
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||||
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\libpawnc.rc">
|
RelativePath=".\libpawnc.rc"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\sc5.scp">
|
RelativePath=".\sc5.scp"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\sc7.scp">
|
RelativePath=".\sc7.scp"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Files>
|
</Files>
|
||||||
|
@ -21,7 +21,11 @@ memfile_t *memfile_creat(const char *name, size_t init)
|
|||||||
pmf = (memfile_t *)malloc(sizeof(memfile_t));
|
pmf = (memfile_t *)malloc(sizeof(memfile_t));
|
||||||
memcpy(pmf, &mf, sizeof(memfile_t));
|
memcpy(pmf, &mf, sizeof(memfile_t));
|
||||||
|
|
||||||
|
#if defined _MSC_VER
|
||||||
|
pmf->name = _strdup(name);
|
||||||
|
#else
|
||||||
pmf->name = strdup(name);
|
pmf->name = strdup(name);
|
||||||
|
#endif
|
||||||
|
|
||||||
return pmf;
|
return pmf;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,14 @@
|
|||||||
#ifndef _INCLUDE_MEMFILE_H
|
#ifndef _INCLUDE_MEMFILE_H
|
||||||
#define _INCLUDE_MEMFILE_H
|
#define _INCLUDE_MEMFILE_H
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
// MSVC8 - replace POSIX functions with ISO C++ conformant ones as they are deprecated
|
||||||
|
#if _MSC_VER >= 1400
|
||||||
|
#define strdup _strdup
|
||||||
|
#pragma warning(disable : 4996)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
|
|
||||||
typedef struct memfile_s
|
typedef struct memfile_s
|
||||||
|
@ -240,7 +240,7 @@ SC_FUNC stringlist *insert_path(char *path)
|
|||||||
strcpy(extra_path, path);
|
strcpy(extra_path, path);
|
||||||
#if defined __linux__
|
#if defined __linux__
|
||||||
strcat(extra_path, "/amxmod_compat/");
|
strcat(extra_path, "/amxmod_compat/");
|
||||||
#else if defined WIN32 || defined _WIN32
|
#elif defined WIN32 || defined _WIN32
|
||||||
strcat(extra_path, "\\amxmod_compat\\");
|
strcat(extra_path, "\\amxmod_compat\\");
|
||||||
#endif
|
#endif
|
||||||
insert_string(&includepaths, extra_path);
|
insert_string(&includepaths, extra_path);
|
||||||
|
@ -2,12 +2,12 @@ CPPFILES = amxasm.cpp cexpr.cpp amx_symbol.cpp amx_proc.cpp \
|
|||||||
amx_parser.cpp amx_natives.cpp amx_macro.cpp amx_label.cpp \
|
amx_parser.cpp amx_natives.cpp amx_macro.cpp amx_label.cpp \
|
||||||
amx_error.cpp amx_define.cpp amx_data.cpp amx_compiler.cpp
|
amx_error.cpp amx_define.cpp amx_data.cpp amx_compiler.cpp
|
||||||
|
|
||||||
FLAGS = -march=i386
|
FLAGS = -march=i386 -m32
|
||||||
|
|
||||||
all: sasm
|
all: sasm
|
||||||
|
|
||||||
sasm:
|
sasm:
|
||||||
g++ $(FLAGS) -Wall $(CPPFILES) -o sasm -s
|
g++ $(FLAGS) -DHAVE_STDINT_H -Wall $(CPPFILES) -o sasm -s
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-rm *.o
|
-rm *.o
|
||||||
|
@ -21,7 +21,7 @@ $gccf = "gcc";
|
|||||||
my %OPTIONS, %OPT;
|
my %OPTIONS, %OPT;
|
||||||
|
|
||||||
$OPT{"debug"} = "-g -ggdb";
|
$OPT{"debug"} = "-g -ggdb";
|
||||||
$OPT{"opt"} = "-O2 -ffast-math -funroll-loops -fomit-frame-pointer -s -DNDEBUG -Wall -Wno-unknown-pragmas -DOPT_TYPE=\"optimized\"";
|
$OPT{"opt"} = "-O2 -ffast-math -funroll-loops -fomit-frame-pointer -s -DHAVE_STDINT_H -DNDEBUG -Wall -Wno-unknown-pragmas -DOPT_TYPE=\"optimized\"";
|
||||||
|
|
||||||
$OPTIONS{"include"} = "";
|
$OPTIONS{"include"} = "";
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ if ($OPTIONS{"debug"})
|
|||||||
{
|
{
|
||||||
$proc = 3;
|
$proc = 3;
|
||||||
}
|
}
|
||||||
$cflags = "-march=i".$proc."86 ".$OPT{"opt"};
|
$cflags = "-march=i".$proc."86 -m32 ".$OPT{"opt"};
|
||||||
} else {
|
} else {
|
||||||
$cflags = $OPT{"opt"};
|
$cflags = $OPT{"opt"};
|
||||||
}
|
}
|
||||||
@ -133,7 +133,7 @@ for ($i=0; $i<=$#CPP_SOURCE_FILES; $i++)
|
|||||||
$ofile = $file;
|
$ofile = $file;
|
||||||
$ofile =~ s/\.cpp/\.o/;
|
$ofile =~ s/\.cpp/\.o/;
|
||||||
$ofile = "$outdir/$ofile";
|
$ofile = "$outdir/$ofile";
|
||||||
$gcc = "$gccf $cflags -Dstrcmpi=strcasecmp -fPIC $inc -c $file -o $ofile";
|
$gcc = "$gccf $cflags -Dstrcmpi=strcasecmp $inc -c $file -o $ofile";
|
||||||
if (-e $ofile)
|
if (-e $ofile)
|
||||||
{
|
{
|
||||||
$file_time = (stat($file))[9];
|
$file_time = (stat($file))[9];
|
||||||
@ -155,7 +155,7 @@ for ($i=0; $i<=$#CPP_SOURCE_FILES; $i++)
|
|||||||
$ofile = $file;
|
$ofile = $file;
|
||||||
$ofile =~ s/\.c/\.o/;
|
$ofile =~ s/\.c/\.o/;
|
||||||
$ofile = "$outdir/$ofile";
|
$ofile = "$outdir/$ofile";
|
||||||
$gcc = "cc $cflags -Dstrcmpi=strcasecmp -fPIC $inc -c $file -o $ofile";
|
$gcc = "cc $cflags -Dstrcmpi=strcasecmp $inc -c $file -o $ofile";
|
||||||
if (-e $ofile)
|
if (-e $ofile)
|
||||||
{
|
{
|
||||||
$file_time = (stat($file))[9];
|
$file_time = (stat($file))[9];
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Abstract Machine for the Small compiler
|
/* Pawn Abstract Machine (for the Pawn language)
|
||||||
*
|
*
|
||||||
* Copyright (c) ITB CompuPhase, 1997-2004
|
* Copyright (c) ITB CompuPhase, 1997-2005
|
||||||
*
|
*
|
||||||
* This software is provided "as-is", without any express or implied warranty.
|
* This software is provided "as-is", without any express or implied warranty.
|
||||||
* In no event will the authors be held liable for any damages arising from
|
* In no event will the authors be held liable for any damages arising from
|
||||||
@ -21,20 +21,34 @@
|
|||||||
* Version: $Id$
|
* Version: $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined LINUX
|
#if defined FREEBSD && !defined __FreeBSD__
|
||||||
|
#define __FreeBSD__
|
||||||
|
#endif
|
||||||
|
#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
|
||||||
#include <sclinux.h>
|
#include <sclinux.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef AMX_H_INCLUDED
|
#ifndef AMX_H_INCLUDED
|
||||||
#define AMX_H_INCLUDED
|
#define AMX_H_INCLUDED
|
||||||
|
|
||||||
#if defined __LCC__ || defined __DMC__ || defined LINUX
|
#if defined HAVE_STDINT_H
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#else
|
||||||
|
#if defined __LCC__ || defined __DMC__ || defined LINUX
|
||||||
|
#if defined HAVE_INTTYPES_H
|
||||||
|
#include <inttypes.h>
|
||||||
|
#else
|
||||||
|
#include <stdint.h>
|
||||||
|
#endif
|
||||||
#elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
|
#elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
|
||||||
/* The ISO C99 defines the int16_t and int_32t types. If the compiler got
|
/* The ISO C99 defines the int16_t and int_32t types. If the compiler got
|
||||||
* here, these types are probably undefined.
|
* here, these types are probably undefined.
|
||||||
*/
|
*/
|
||||||
#if defined __FreeBSD__
|
#if defined __MACH__
|
||||||
|
#include <ppc/types.h>
|
||||||
|
typedef unsigned short int uint16_t;
|
||||||
|
typedef unsigned long int uint32_t;
|
||||||
|
#elif defined __FreeBSD__
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#else
|
#else
|
||||||
typedef short int int16_t;
|
typedef short int int16_t;
|
||||||
@ -57,17 +71,40 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
#define HAVE_STDINT_H
|
||||||
|
#endif
|
||||||
|
#if defined _LP64 || defined WIN64 || defined _WIN64
|
||||||
|
#if !defined __64BIT__
|
||||||
|
#define __64BIT__
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAVE_ALLOCA_H
|
||||||
|
#include <alloca.h>
|
||||||
|
#endif
|
||||||
#if defined __WIN32__ || defined _WIN32 || defined WIN32 /* || defined __MSDOS__ */
|
#if defined __WIN32__ || defined _WIN32 || defined WIN32 /* || defined __MSDOS__ */
|
||||||
#if !defined alloca
|
#if !defined alloca
|
||||||
#define alloca(n) _alloca(n)
|
#define alloca(n) _alloca(n)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !defined arraysize
|
||||||
|
#define arraysize(array) (sizeof(array) / sizeof((array)[0]))
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined PAWN_DLL
|
||||||
|
#if !defined AMX_NATIVE_CALL
|
||||||
|
#define AMX_NATIVE_CALL __stdcall
|
||||||
|
#endif
|
||||||
|
#if !defined AMXAPI
|
||||||
|
#define AMXAPI __stdcall
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/* calling convention for native functions */
|
/* calling convention for native functions */
|
||||||
#if !defined AMX_NATIVE_CALL
|
#if !defined AMX_NATIVE_CALL
|
||||||
#define AMX_NATIVE_CALL
|
#define AMX_NATIVE_CALL
|
||||||
@ -78,6 +115,8 @@ extern "C" {
|
|||||||
#define AMXAPI __stdcall
|
#define AMXAPI __stdcall
|
||||||
#elif defined CDECL
|
#elif defined CDECL
|
||||||
#define AMXAPI __cdecl
|
#define AMXAPI __cdecl
|
||||||
|
#elif defined GCC_HASCLASSVISIBILITY
|
||||||
|
#define AMXAPI __attribute__ ((visibility("default")))
|
||||||
#else
|
#else
|
||||||
#define AMXAPI
|
#define AMXAPI
|
||||||
#endif
|
#endif
|
||||||
@ -95,31 +134,30 @@ extern "C" {
|
|||||||
* 5 (tagnames table) 4
|
* 5 (tagnames table) 4
|
||||||
* 6 (reformatted header) 6
|
* 6 (reformatted header) 6
|
||||||
* 7 (name table, opcodes SYMTAG & SYSREQ.D) 7
|
* 7 (name table, opcodes SYMTAG & SYSREQ.D) 7
|
||||||
|
* 8 (opcode STMT, renewed debug interface) 8
|
||||||
*/
|
*/
|
||||||
#define CUR_FILE_VERSION 7 /* current file version; also the current AMX version */
|
#define CUR_FILE_VERSION 8 /* current file version; also the current AMX version */
|
||||||
#define MIN_FILE_VERSION 6 /* lowest supported file format version for the current AMX version */
|
#define MIN_FILE_VERSION 6 /* lowest supported file format version for the current AMX version */
|
||||||
#define MIN_AMX_VERSION 7 /* minimum AMX version needed to support the current file format */
|
#define MIN_AMX_VERSION 8 /* minimum AMX version needed to support the current file format */
|
||||||
|
|
||||||
#if defined BIT16
|
#if !defined PAWN_CELL_SIZE
|
||||||
#define SMALL_CELL_SIZE 16 /* for backward compatibility */
|
#define PAWN_CELL_SIZE 32 /* by default, use 32-bit cells */
|
||||||
#endif
|
#endif
|
||||||
#if !defined SMALL_CELL_SIZE
|
#if PAWN_CELL_SIZE==16
|
||||||
#define SMALL_CELL_SIZE 32 /* by default, use 32-bit cells */
|
|
||||||
#endif
|
|
||||||
#if SMALL_CELL_SIZE==16
|
|
||||||
typedef uint16_t ucell;
|
typedef uint16_t ucell;
|
||||||
typedef int16_t cell;
|
typedef int16_t cell;
|
||||||
#elif SMALL_CELL_SIZE==32
|
#elif PAWN_CELL_SIZE==32
|
||||||
typedef uint32_t ucell;
|
typedef uint32_t ucell;
|
||||||
typedef int32_t cell;
|
typedef int32_t cell;
|
||||||
#elif SMALL_CELL_SIZE==64
|
#elif PAWN_CELL_SIZE==64
|
||||||
typedef uint64_t ucell;
|
typedef uint64_t ucell;
|
||||||
typedef int64_t cell;
|
typedef int64_t cell;
|
||||||
#else
|
#else
|
||||||
#error Unsupported cell size (SMALL_CELL_SIZE)
|
#error Unsupported cell size (PAWN_CELL_SIZE)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define UNPACKEDMAX ((1 << (sizeof(cell)-1)*8) - 1)
|
#define UNPACKEDMAX ((1L << (sizeof(cell)-1)*8) - 1)
|
||||||
|
#define UNLIMITED (~1u >> 1)
|
||||||
|
|
||||||
struct tagAMX;
|
struct tagAMX;
|
||||||
typedef cell (AMX_NATIVE_CALL *AMX_NATIVE)(struct tagAMX *amx, cell *params);
|
typedef cell (AMX_NATIVE_CALL *AMX_NATIVE)(struct tagAMX *amx, cell *params);
|
||||||
@ -139,7 +177,7 @@ typedef int (AMXAPI *AMX_DEBUG)(struct tagAMX *amx);
|
|||||||
/* Some compilers do not support the #pragma align, which should be fine. Some
|
/* 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...
|
* compilers give a warning on unknown #pragmas, which is not so fine...
|
||||||
*/
|
*/
|
||||||
#if defined SN_TARGET_PS2 || defined __GNUC__
|
#if (defined SN_TARGET_PS2 || defined __GNUC__) && !defined AMX_NO_ALIGN
|
||||||
#define AMX_NO_ALIGN
|
#define AMX_NO_ALIGN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -150,8 +188,10 @@ typedef int (AMXAPI *AMX_DEBUG)(struct tagAMX *amx);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined AMX_NO_ALIGN
|
#if !defined AMX_NO_ALIGN
|
||||||
#if defined LINUX
|
#if defined LINUX || defined __FreeBSD__
|
||||||
#pragma pack(1) /* structures must be packed (byte-aligned) */
|
#pragma pack(1) /* structures must be packed (byte-aligned) */
|
||||||
|
#elif defined MACOS && defined __MWERKS__
|
||||||
|
#pragma options align=mac68k
|
||||||
#else
|
#else
|
||||||
#pragma pack(push)
|
#pragma pack(push)
|
||||||
#pragma pack(1) /* structures must be packed (byte-aligned) */
|
#pragma pack(1) /* structures must be packed (byte-aligned) */
|
||||||
@ -161,25 +201,30 @@ typedef int (AMXAPI *AMX_DEBUG)(struct tagAMX *amx);
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef struct {
|
typedef struct tagAMX_NATIVE_INFO {
|
||||||
const char _FAR *name PACKED;
|
const char _FAR *name PACKED;
|
||||||
AMX_NATIVE func PACKED;
|
AMX_NATIVE func PACKED;
|
||||||
} AMX_NATIVE_INFO PACKED;
|
} PACKED AMX_NATIVE_INFO;
|
||||||
|
|
||||||
#define AMX_USERNUM 4
|
#define AMX_USERNUM 4
|
||||||
#define sEXPMAX 19 /* maximum name length for file version <= 6 */
|
#define sEXPMAX 19 /* maximum name length for file version <= 6 */
|
||||||
#define sNAMEMAX 31 /* maximum name length of symbol name */
|
#define sNAMEMAX 31 /* maximum name length of symbol name */
|
||||||
|
|
||||||
typedef struct tagAMX_FUNCSTUB {
|
typedef struct tagAMX_FUNCSTUB {
|
||||||
uint32_t address PACKED;
|
ucell address PACKED;
|
||||||
char name[sEXPMAX+1] PACKED;
|
char name[sEXPMAX+1];
|
||||||
} AMX_FUNCSTUB PACKED;
|
} PACKED AMX_FUNCSTUB;
|
||||||
|
|
||||||
|
typedef struct tagFUNCSTUBNT {
|
||||||
|
ucell address PACKED;
|
||||||
|
ucell nameofs PACKED; //we need this for amxx to be backwards comaptible
|
||||||
|
} PACKED AMX_FUNCSTUBNT;
|
||||||
|
|
||||||
/* The AMX structure is the internal structure for many functions. Not all
|
/* 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.
|
* fields are valid at all times; many fields are cached in local variables.
|
||||||
*/
|
*/
|
||||||
typedef struct tagAMX {
|
typedef struct tagAMX {
|
||||||
unsigned char _FAR *base PACKED; /* points to the AMX header ("amxhdr") plus the code, optionally also the data */
|
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 */
|
unsigned char _FAR *data PACKED; /* points to separate data+stack+heap, may be NULL */
|
||||||
AMX_CALLBACK callback PACKED;
|
AMX_CALLBACK callback PACKED;
|
||||||
AMX_DEBUG debug PACKED; /* debug callback */
|
AMX_DEBUG debug PACKED; /* debug callback */
|
||||||
@ -191,30 +236,23 @@ typedef struct tagAMX {
|
|||||||
cell stk PACKED; /* stack pointer: 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 */
|
cell stp PACKED; /* top of the stack: relative to base + amxhdr->dat */
|
||||||
int flags PACKED; /* current status, see amx_Flags() */
|
int flags PACKED; /* current status, see amx_Flags() */
|
||||||
/* for assertions and debug hook */
|
|
||||||
cell curline PACKED;
|
|
||||||
cell curfile PACKED;
|
|
||||||
int dbgcode PACKED;
|
|
||||||
cell dbgaddr PACKED;
|
|
||||||
cell dbgparam PACKED;
|
|
||||||
char _FAR *dbgname PACKED;
|
|
||||||
/* user data */
|
/* user data */
|
||||||
long usertags[AMX_USERNUM] PACKED;
|
long usertags[AMX_USERNUM] PACKED;
|
||||||
void _FAR *userdata[AMX_USERNUM] PACKED;
|
void _FAR *userdata[AMX_USERNUM] PACKED;
|
||||||
/* native functions can raise an error */
|
/* native functions can raise an error */
|
||||||
int error PACKED;
|
int error PACKED;
|
||||||
|
/* passing parameters requires a "count" field */
|
||||||
|
int paramcount;
|
||||||
/* the sleep opcode needs to store the full AMX status */
|
/* the sleep opcode needs to store the full AMX status */
|
||||||
cell pri PACKED;
|
cell pri PACKED;
|
||||||
cell alt PACKED;
|
cell alt PACKED;
|
||||||
cell reset_stk PACKED;
|
cell reset_stk PACKED;
|
||||||
cell reset_hea PACKED;
|
cell reset_hea PACKED;
|
||||||
cell sysreq_d PACKED; /* relocated address/value for the SYSREQ.D opcode */
|
cell sysreq_d PACKED; /* relocated address/value for the SYSREQ.D opcode */
|
||||||
#if defined JIT
|
|
||||||
/* support variables for the JIT */
|
/* support variables for the JIT */
|
||||||
int reloc_size PACKED; /* required temporary buffer for relocations */
|
int reloc_size PACKED; /* required temporary buffer for relocations */
|
||||||
long code_size PACKED; /* estimated memory footprint of the native code */
|
long code_size PACKED; /* estimated memory footprint of the native code */
|
||||||
#endif
|
} PACKED AMX;
|
||||||
} AMX PACKED;
|
|
||||||
|
|
||||||
/* The AMX_HEADER structure is both the memory format as the file format. The
|
/* The AMX_HEADER structure is both the memory format as the file format. The
|
||||||
* structure is used internaly.
|
* structure is used internaly.
|
||||||
@ -222,8 +260,8 @@ typedef struct tagAMX {
|
|||||||
typedef struct tagAMX_HEADER {
|
typedef struct tagAMX_HEADER {
|
||||||
int32_t size PACKED; /* size of the "file" */
|
int32_t size PACKED; /* size of the "file" */
|
||||||
uint16_t magic PACKED; /* signature */
|
uint16_t magic PACKED; /* signature */
|
||||||
char file_version PACKED; /* file format version */
|
char file_version; /* file format version */
|
||||||
char amx_version PACKED; /* required version of the AMX */
|
char amx_version; /* required version of the AMX */
|
||||||
int16_t flags PACKED;
|
int16_t flags PACKED;
|
||||||
int16_t defsize PACKED; /* size of a definition record */
|
int16_t defsize PACKED; /* size of a definition record */
|
||||||
int32_t cod PACKED; /* initial value of COD - code block */
|
int32_t cod PACKED; /* initial value of COD - code block */
|
||||||
@ -236,8 +274,10 @@ typedef struct tagAMX_HEADER {
|
|||||||
int32_t libraries PACKED; /* offset to the table of libraries */
|
int32_t libraries PACKED; /* offset to the table of libraries */
|
||||||
int32_t pubvars PACKED; /* the "public variables" table */
|
int32_t pubvars PACKED; /* the "public variables" table */
|
||||||
int32_t tags PACKED; /* the "public tagnames" table */
|
int32_t tags PACKED; /* the "public tagnames" table */
|
||||||
int32_t nametable PACKED; /* name table, file version 7 only */
|
int32_t nametable PACKED; /* name table */
|
||||||
} AMX_HEADER PACKED;
|
} PACKED AMX_HEADER;
|
||||||
|
|
||||||
|
//This is always the same for us
|
||||||
#define AMX_MAGIC 0xf1e0
|
#define AMX_MAGIC 0xf1e0
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@ -255,6 +295,7 @@ enum {
|
|||||||
AMX_ERR_NATIVE, /* native function failed */
|
AMX_ERR_NATIVE, /* native function failed */
|
||||||
AMX_ERR_DIVIDE, /* divide by zero */
|
AMX_ERR_DIVIDE, /* divide by zero */
|
||||||
AMX_ERR_SLEEP, /* go into sleepmode - code can be restarted */
|
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_MEMORY = 16, /* out of memory */
|
||||||
AMX_ERR_FORMAT, /* invalid file format */
|
AMX_ERR_FORMAT, /* invalid file format */
|
||||||
@ -267,27 +308,17 @@ enum {
|
|||||||
AMX_ERR_INIT_JIT, /* cannot initialize the JIT */
|
AMX_ERR_INIT_JIT, /* cannot initialize the JIT */
|
||||||
AMX_ERR_PARAMS, /* parameter error */
|
AMX_ERR_PARAMS, /* parameter error */
|
||||||
AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */
|
AMX_ERR_DOMAIN, /* domain error, expression result does not fit in range */
|
||||||
};
|
AMX_ERR_GENERAL, /* general error (unknown or unspecific error) */
|
||||||
|
|
||||||
enum {
|
|
||||||
DBG_INIT, /* query/initialize */
|
|
||||||
DBG_FILE, /* file number in curfile, filename in name */
|
|
||||||
DBG_LINE, /* line number in curline, file number in curfile */
|
|
||||||
DBG_SYMBOL, /* address in dbgaddr, class/type in dbgparam */
|
|
||||||
DBG_CLRSYM, /* stack address below which locals should be removed. stack address in stk */
|
|
||||||
DBG_CALL, /* function call, address jumped to in dbgaddr */
|
|
||||||
DBG_RETURN, /* function returns */
|
|
||||||
DBG_TERMINATE, /* program ends, code address in dbgaddr, reason in dbgparam */
|
|
||||||
DBG_SRANGE, /* symbol size and dimensions (arrays); level in dbgaddr (!); length in dbgparam */
|
|
||||||
DBG_SYMTAG, /* tag of the most recent symbol (if non-zero), tag in dbgparam */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* AMX_FLAG_CHAR16 0x01 no longer used */
|
/* AMX_FLAG_CHAR16 0x01 no longer used */
|
||||||
#define AMX_FLAG_DEBUG 0x02 /* symbolic info. available */
|
#define AMX_FLAG_DEBUG 0x02 /* symbolic info. available */
|
||||||
#define AMX_FLAG_COMPACT 0x04 /* compact encoding */
|
#define AMX_FLAG_COMPACT 0x04 /* compact encoding */
|
||||||
#define AMX_FLAG_BIGENDIAN 0x08 /* big endian encoding */
|
#define AMX_FLAG_BYTEOPC 0x08 /* opcode is a byte (not a cell) */
|
||||||
#define AMX_FLAG_NOCHECKS 0x10 /* no array bounds checking */
|
#define AMX_FLAG_NOCHECKS 0x10 /* no array bounds checking; no STMT opcode */
|
||||||
#define AMX_FLAG_BROWSE 0x4000 /* browsing/relocating or executing */
|
#define AMX_FLAG_NTVREG 0x1000 /* all native functions are registered */
|
||||||
|
#define AMX_FLAG_JITC 0x2000 /* abstract machine is JIT compiled */
|
||||||
|
#define AMX_FLAG_BROWSE 0x4000 /* busy browsing */
|
||||||
#define AMX_FLAG_RELOC 0x8000 /* jump/call addresses relocated */
|
#define AMX_FLAG_RELOC 0x8000 /* jump/call addresses relocated */
|
||||||
|
|
||||||
#define AMX_EXEC_MAIN -1 /* start at program entry point */
|
#define AMX_EXEC_MAIN -1 /* start at program entry point */
|
||||||
@ -295,16 +326,18 @@ enum {
|
|||||||
|
|
||||||
#define AMX_USERTAG(a,b,c,d) ((a) | ((b)<<8) | ((long)(c)<<16) | ((long)(d)<<24))
|
#define AMX_USERTAG(a,b,c,d) ((a) | ((b)<<8) | ((long)(c)<<16) | ((long)(d)<<24))
|
||||||
|
|
||||||
#define AMX_EXPANDMARGIN 64
|
#if !defined AMX_COMPACTMARGIN
|
||||||
|
#define AMX_COMPACTMARGIN 64
|
||||||
|
#endif
|
||||||
|
|
||||||
/* for native functions that use floating point parameters, the following
|
/* for native functions that use floating point parameters, the following
|
||||||
* two macros are convenient for casting a "cell" into a "float" type _without_
|
* two macros are convenient for casting a "cell" into a "float" type _without_
|
||||||
* changing the bit pattern
|
* changing the bit pattern
|
||||||
*/
|
*/
|
||||||
#if SMALL_CELL_SIZE==32
|
#if PAWN_CELL_SIZE==32
|
||||||
#define amx_ftoc(f) ( * ((cell*)&f) ) /* float to cell */
|
#define amx_ftoc(f) ( * ((cell*)&f) ) /* float to cell */
|
||||||
#define amx_ctof(c) ( * ((float*)&c) ) /* cell to float */
|
#define amx_ctof(c) ( * ((float*)&c) ) /* cell to float */
|
||||||
#elif SMALL_CELL_SIZE==64
|
#elif PAWN_CELL_SIZE==64
|
||||||
#define amx_ftoc(f) ( * ((cell*)&f) ) /* float to cell */
|
#define amx_ftoc(f) ( * ((cell*)&f) ) /* float to cell */
|
||||||
#define amx_ctof(c) ( * ((double*)&c) ) /* cell to float */
|
#define amx_ctof(c) ( * ((double*)&c) ) /* cell to float */
|
||||||
#else
|
#else
|
||||||
@ -318,7 +351,7 @@ enum {
|
|||||||
amx_StrLen(amx_cstr_, &amx_length_); \
|
amx_StrLen(amx_cstr_, &amx_length_); \
|
||||||
if (amx_length_ > 0 && \
|
if (amx_length_ > 0 && \
|
||||||
((result) = (void*)alloca((amx_length_ + 1) * sizeof(*(result)))) != NULL) \
|
((result) = (void*)alloca((amx_length_ + 1) * sizeof(*(result)))) != NULL) \
|
||||||
amx_GetString((char*)(result), amx_cstr_, sizeof(*(result))>1); \
|
amx_GetString((char*)(result), amx_cstr_, sizeof(*(result))>1, amx_length_); \
|
||||||
else (result) = NULL; \
|
else (result) = NULL; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
@ -331,9 +364,7 @@ int AMXAPI amx_Allot(AMX *amx, int cells, cell *amx_addr, cell **phys_addr);
|
|||||||
int AMXAPI amx_Callback(AMX *amx, cell index, cell *result, cell *params);
|
int AMXAPI amx_Callback(AMX *amx, cell index, cell *result, cell *params);
|
||||||
int AMXAPI amx_Cleanup(AMX *amx);
|
int AMXAPI amx_Cleanup(AMX *amx);
|
||||||
int AMXAPI amx_Clone(AMX *amxClone, AMX *amxSource, void *data);
|
int AMXAPI amx_Clone(AMX *amxClone, AMX *amxSource, void *data);
|
||||||
int AMXAPI amx_Debug(AMX *amx); /* default debug procedure, does nothing */
|
int AMXAPI amx_Exec(AMX *amx, cell *retval, int index);
|
||||||
int AMXAPI amx_Exec(AMX *amx, cell *retval, int index, int numparams, ...);
|
|
||||||
int AMXAPI amx_Execv(AMX *amx, cell *retval, int index, int numparams, cell params[]);
|
|
||||||
int AMXAPI amx_FindNative(AMX *amx, const char *name, int *index);
|
int AMXAPI amx_FindNative(AMX *amx, const char *name, int *index);
|
||||||
int AMXAPI amx_FindPublic(AMX *amx, const char *funcname, int *index);
|
int AMXAPI amx_FindPublic(AMX *amx, const char *funcname, int *index);
|
||||||
int AMXAPI amx_FindPubVar(AMX *amx, const char *varname, cell *amx_addr);
|
int AMXAPI amx_FindPubVar(AMX *amx, const char *varname, cell *amx_addr);
|
||||||
@ -343,7 +374,7 @@ int AMXAPI amx_GetAddr(AMX *amx,cell amx_addr,cell **phys_addr);
|
|||||||
int AMXAPI amx_GetNative(AMX *amx, int index, char *funcname);
|
int AMXAPI amx_GetNative(AMX *amx, int index, char *funcname);
|
||||||
int AMXAPI amx_GetPublic(AMX *amx, int index, char *funcname);
|
int AMXAPI amx_GetPublic(AMX *amx, int index, char *funcname);
|
||||||
int AMXAPI amx_GetPubVar(AMX *amx, int index, char *varname, cell *amx_addr);
|
int AMXAPI amx_GetPubVar(AMX *amx, int index, char *varname, cell *amx_addr);
|
||||||
int AMXAPI amx_GetString(char *dest,const cell *source, int use_wchar);
|
int AMXAPI amx_GetString(char *dest,const cell *source, int use_wchar, size_t size);
|
||||||
int AMXAPI amx_GetTag(AMX *amx, int index, char *tagname, cell *tag_id);
|
int AMXAPI amx_GetTag(AMX *amx, int index, char *tagname, cell *tag_id);
|
||||||
int AMXAPI amx_GetUserData(AMX *amx, long tag, void **ptr);
|
int AMXAPI amx_GetUserData(AMX *amx, long tag, void **ptr);
|
||||||
int AMXAPI amx_Init(AMX *amx, void *program);
|
int AMXAPI amx_Init(AMX *amx, void *program);
|
||||||
@ -355,22 +386,40 @@ int AMXAPI amx_NumNatives(AMX *amx, int *number);
|
|||||||
int AMXAPI amx_NumPublics(AMX *amx, int *number);
|
int AMXAPI amx_NumPublics(AMX *amx, int *number);
|
||||||
int AMXAPI amx_NumPubVars(AMX *amx, int *number);
|
int AMXAPI amx_NumPubVars(AMX *amx, int *number);
|
||||||
int AMXAPI amx_NumTags(AMX *amx, int *number);
|
int AMXAPI amx_NumTags(AMX *amx, int *number);
|
||||||
|
int AMXAPI amx_Push(AMX *amx, cell value);
|
||||||
|
int AMXAPI amx_PushArray(AMX *amx, cell *amx_addr, cell **phys_addr, const cell array[], int numcells);
|
||||||
|
int AMXAPI amx_PushString(AMX *amx, cell *amx_addr, cell **phys_addr, const char *string, int pack, int use_wchar);
|
||||||
int AMXAPI amx_RaiseError(AMX *amx, int error);
|
int AMXAPI amx_RaiseError(AMX *amx, int error);
|
||||||
int AMXAPI amx_Register(AMX *amx, AMX_NATIVE_INFO *nativelist, int number);
|
int AMXAPI amx_Register(AMX *amx, const AMX_NATIVE_INFO *nativelist, int number);
|
||||||
int AMXAPI amx_Release(AMX *amx, cell amx_addr);
|
int AMXAPI amx_Release(AMX *amx, cell amx_addr);
|
||||||
int AMXAPI amx_SetCallback(AMX *amx, AMX_CALLBACK callback);
|
int AMXAPI amx_SetCallback(AMX *amx, AMX_CALLBACK callback);
|
||||||
int AMXAPI amx_SetDebugHook(AMX *amx, AMX_DEBUG debug);
|
int AMXAPI amx_SetDebugHook(AMX *amx, AMX_DEBUG debug);
|
||||||
int AMXAPI amx_SetString(cell *dest, const char *source, int pack, int use_wchar);
|
int AMXAPI amx_SetString(cell *dest, const char *source, int pack, int use_wchar, size_t size);
|
||||||
int AMXAPI amx_SetUserData(AMX *amx, long tag, void *ptr);
|
int AMXAPI amx_SetUserData(AMX *amx, long tag, void *ptr);
|
||||||
int AMXAPI amx_StrLen(cell *cstring, int *length);
|
int AMXAPI amx_StrLen(const cell *cstring, int *length);
|
||||||
|
int AMXAPI amx_UTF8Check(const char *string, int *length);
|
||||||
int AMXAPI amx_UTF8Get(const char *string, const char **endptr, cell *value);
|
int AMXAPI amx_UTF8Get(const char *string, const char **endptr, cell *value);
|
||||||
|
int AMXAPI amx_UTF8Len(const cell *cstr, int *length);
|
||||||
int AMXAPI amx_UTF8Put(char *string, char **endptr, int maxchars, cell value);
|
int AMXAPI amx_UTF8Put(char *string, char **endptr, int maxchars, cell value);
|
||||||
int AMXAPI amx_UTF8Check(const char *string);
|
|
||||||
|
|
||||||
|
#if PAWN_CELL_SIZE==16
|
||||||
|
#define amx_AlignCell(v) amx_Align16(v)
|
||||||
|
#elif PAWN_CELL_SIZE==32
|
||||||
|
#define amx_AlignCell(v) amx_Align32(v)
|
||||||
|
#elif PAWN_CELL_SIZE==64 && (defined _I64_MAX || defined HAVE_I64)
|
||||||
|
#define amx_AlignCell(v) amx_Align64(v)
|
||||||
|
#else
|
||||||
|
#error Unsupported cell size
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define amx_RegisterFunc(amx, name, func) \
|
||||||
|
amx_Register((amx), amx_NativeInfo((name),(func)), 1);
|
||||||
|
|
||||||
#if !defined AMX_NO_ALIGN
|
#if !defined AMX_NO_ALIGN
|
||||||
#if defined LINUX
|
#if defined LINUX || defined __FreeBSD__
|
||||||
#pragma pack() /* reset default packing */
|
#pragma pack() /* reset default packing */
|
||||||
|
#elif defined MACOS && defined __MWERKS__
|
||||||
|
#pragma options align=reset
|
||||||
#else
|
#else
|
||||||
#pragma pack(pop) /* reset previous packing */
|
#pragma pack(pop) /* reset previous packing */
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||||
# Visual Studio 2005
|
# Visual Studio 2005
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "svencoop", "svencoop.vcproj", "{AB148B92-4F47-42E6-8268-AB4E588EC6A2}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "assembler", "assembler.vcproj", "{FFFC86BE-94E7-458A-A61B-4D0F3B45658B}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
@ -9,10 +9,10 @@ Global
|
|||||||
Release|Win32 = Release|Win32
|
Release|Win32 = Release|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{AB148B92-4F47-42E6-8268-AB4E588EC6A2}.Debug|Win32.ActiveCfg = Debug|Win32
|
{FFFC86BE-94E7-458A-A61B-4D0F3B45658B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{AB148B92-4F47-42E6-8268-AB4E588EC6A2}.Debug|Win32.Build.0 = Debug|Win32
|
{FFFC86BE-94E7-458A-A61B-4D0F3B45658B}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{AB148B92-4F47-42E6-8268-AB4E588EC6A2}.Release|Win32.ActiveCfg = Release|Win32
|
{FFFC86BE-94E7-458A-A61B-4D0F3B45658B}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{AB148B92-4F47-42E6-8268-AB4E588EC6A2}.Release|Win32.Build.0 = Release|Win32
|
{FFFC86BE-94E7-458A-A61B-4D0F3B45658B}.Release|Win32.Build.0 = Release|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
@ -1,108 +1,175 @@
|
|||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="7.10"
|
Version="8.00"
|
||||||
Name="assembler"
|
Name="assembler"
|
||||||
ProjectGUID="{FFFC86BE-94E7-458A-A61B-4D0F3B45658B}"
|
ProjectGUID="{FFFC86BE-94E7-458A-A61B-4D0F3B45658B}"
|
||||||
Keyword="Win32Proj">
|
RootNamespace="assembler"
|
||||||
|
Keyword="Win32Proj"
|
||||||
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
Name="Win32"/>
|
Name="Win32"
|
||||||
|
/>
|
||||||
</Platforms>
|
</Platforms>
|
||||||
|
<ToolFiles>
|
||||||
|
</ToolFiles>
|
||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|Win32"
|
Name="Debug|Win32"
|
||||||
OutputDirectory="Debug"
|
OutputDirectory="Debug"
|
||||||
IntermediateDirectory="Debug"
|
IntermediateDirectory="Debug"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
CharacterSet="2">
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||||
|
CharacterSet="2"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE"
|
||||||
MinimalRebuild="TRUE"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="5"
|
RuntimeLibrary="1"
|
||||||
|
RuntimeTypeInfo="false"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
Detect64BitPortabilityProblems="TRUE"
|
Detect64BitPortabilityProblems="true"
|
||||||
DebugInformationFormat="4"/>
|
DebugInformationFormat="4"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)/sasm.exe"
|
OutputFile="$(OutDir)/sasm.exe"
|
||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
GenerateDebugInformation="TRUE"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)/assembler.pdb"
|
ProgramDatabaseFile="$(OutDir)/assembler.pdb"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
TargetMachine="1"/>
|
TargetMachine="1"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCWebDeploymentTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCPostBuildEventTool"
|
||||||
<Tool
|
/>
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="Release"
|
OutputDirectory="Release"
|
||||||
IntermediateDirectory="Release"
|
IntermediateDirectory="Release"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
CharacterSet="2">
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||||
|
CharacterSet="2"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE"
|
||||||
RuntimeLibrary="4"
|
RuntimeLibrary="0"
|
||||||
|
RuntimeTypeInfo="false"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
Detect64BitPortabilityProblems="TRUE"
|
Detect64BitPortabilityProblems="true"
|
||||||
DebugInformationFormat="3"/>
|
DebugInformationFormat="3"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"/>
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)/sasm.exe"
|
OutputFile="$(OutDir)/sasm.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
GenerateDebugInformation="TRUE"
|
GenerateDebugInformation="true"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
OptimizeReferences="2"
|
OptimizeReferences="2"
|
||||||
EnableCOMDATFolding="2"
|
EnableCOMDATFolding="2"
|
||||||
TargetMachine="1"/>
|
TargetMachine="1"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"/>
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"/>
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"/>
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"/>
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"/>
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
Name="VCWebDeploymentTool"
|
||||||
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebDeploymentTool"/>
|
Name="VCPostBuildEventTool"
|
||||||
<Tool
|
/>
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
@ -111,89 +178,117 @@
|
|||||||
<Filter
|
<Filter
|
||||||
Name="Source Files"
|
Name="Source Files"
|
||||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
|
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||||
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_compiler.cpp">
|
RelativePath=".\amx_compiler.cpp"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_data.cpp">
|
RelativePath=".\amx_data.cpp"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_define.cpp">
|
RelativePath=".\amx_define.cpp"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_error.cpp">
|
RelativePath=".\amx_error.cpp"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_label.cpp">
|
RelativePath=".\amx_label.cpp"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_macro.cpp">
|
RelativePath=".\amx_macro.cpp"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_natives.cpp">
|
RelativePath=".\amx_natives.cpp"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_parser.cpp">
|
RelativePath=".\amx_parser.cpp"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_proc.cpp">
|
RelativePath=".\amx_proc.cpp"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_symbol.cpp">
|
RelativePath=".\amx_symbol.cpp"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amxasm.cpp">
|
RelativePath=".\amxasm.cpp"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\cexpr.cpp">
|
RelativePath=".\cexpr.cpp"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Header Files"
|
Name="Header Files"
|
||||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
|
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||||
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx.h">
|
RelativePath=".\amx.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_compiler.h">
|
RelativePath=".\amx_compiler.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_data.h">
|
RelativePath=".\amx_data.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_define.h">
|
RelativePath=".\amx_define.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_error.h">
|
RelativePath=".\amx_error.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_label.h">
|
RelativePath=".\amx_label.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_macro.h">
|
RelativePath=".\amx_macro.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_nametable.h">
|
RelativePath=".\amx_nametable.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_natives.h">
|
RelativePath=".\amx_natives.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_parser.h">
|
RelativePath=".\amx_parser.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_proc.h">
|
RelativePath=".\amx_proc.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amx_symbol.h">
|
RelativePath=".\amx_symbol.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\amxasm.h">
|
RelativePath=".\amxasm.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\cexpr.h">
|
RelativePath=".\cexpr.h"
|
||||||
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Files>
|
</Files>
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -53,8 +53,8 @@ amx_plmenu_bantimes 0 5 10 15 30 45 60
|
|||||||
|
|
||||||
// Slap damage amounts for the main slap menu (amx_slapmenu)
|
// Slap damage amounts for the main slap menu (amx_slapmenu)
|
||||||
// Slay is automatically inserted as the first option.
|
// Slay is automatically inserted as the first option.
|
||||||
// Default values: 1 5
|
// Default values: 0 1 5
|
||||||
amx_plmenu_slapdmg 1 5
|
amx_plmenu_slapdmg 0 1 5
|
||||||
|
|
||||||
// Set in seconds how fast players can chat (chat-flood protection)
|
// Set in seconds how fast players can chat (chat-flood protection)
|
||||||
//
|
//
|
||||||
|
@ -46,6 +46,16 @@ amx_imessage "This server is using AMX Mod X\nVisit http://www.amxmodx.org" "000
|
|||||||
// Default value: 180
|
// Default value: 180
|
||||||
amx_freq_imessage 180
|
amx_freq_imessage 180
|
||||||
|
|
||||||
|
// Ban times for the main ban menu (amx_banmenu)
|
||||||
|
// Use 0 for permanent ban
|
||||||
|
// Default values: 0 5 10 15 30 45 60
|
||||||
|
amx_plmenu_bantimes 0 5 10 15 30 45 60
|
||||||
|
|
||||||
|
// Slap damage amounts for the main slap menu (amx_slapmenu)
|
||||||
|
// Slay is automaticall inserted as the first option
|
||||||
|
// Default values: 0 1 5
|
||||||
|
amx_plmenu_slapdmg 0 1 5
|
||||||
|
|
||||||
// Set in seconds how fast players can chat (chat-flood protection)
|
// Set in seconds how fast players can chat (chat-flood protection)
|
||||||
//
|
//
|
||||||
// Default value: 0.75
|
// Default value: 0.75
|
||||||
|
@ -7,8 +7,9 @@ amxx_plugins addons/amxmodx/configs/plugins.ini
|
|||||||
amxx_pluginsdir addons/amxmodx/plugins
|
amxx_pluginsdir addons/amxmodx/plugins
|
||||||
amxx_modulesdir addons/amxmodx/modules
|
amxx_modulesdir addons/amxmodx/modules
|
||||||
amxx_vault addons/amxmodx/data/vault.ini
|
amxx_vault addons/amxmodx/data/vault.ini
|
||||||
csstats_score addons/amxmodx/data/csstats.amxx
|
; It is important that "csstats" comes before "csstats_score"
|
||||||
csstats addons/amxmodx/data/csstats.dat
|
csstats addons/amxmodx/data/csstats.dat
|
||||||
|
csstats_score addons/amxmodx/data/csstats.amxx
|
||||||
|
|
||||||
; Logging mode
|
; Logging mode
|
||||||
; 0 - no logging
|
; 0 - no logging
|
||||||
|
@ -37,3 +37,4 @@ fun
|
|||||||
;nvault
|
;nvault
|
||||||
cstrike
|
cstrike
|
||||||
csx
|
csx
|
||||||
|
;hamsandwich
|
||||||
|
@ -16,6 +16,7 @@ cmdmenu.amxx ; command menu (speech, settings)
|
|||||||
plmenu.amxx ; players menu (kick, ban, client cmds.)
|
plmenu.amxx ; players menu (kick, ban, client cmds.)
|
||||||
;telemenu.amxx ; teleport menu (Fun Module required!)
|
;telemenu.amxx ; teleport menu (Fun Module required!)
|
||||||
mapsmenu.amxx ; maps menu (vote, changelevel)
|
mapsmenu.amxx ; maps menu (vote, changelevel)
|
||||||
|
pluginmenu.amxx ; Menus for commands/cvars organized by plugin
|
||||||
|
|
||||||
; Chat / Messages
|
; Chat / Messages
|
||||||
adminchat.amxx ; console chat commands
|
adminchat.amxx ; console chat commands
|
||||||
|
@ -15,8 +15,9 @@ amxx_vault addons/amxmodx/data/vault.ini
|
|||||||
; 3 - HL Logs
|
; 3 - HL Logs
|
||||||
amxx_logging 1
|
amxx_logging 1
|
||||||
|
|
||||||
dodstats_score addons/amxmodx/data/dodstats.amxx
|
; It is important that "dodstats" comes before "dodstats_score"
|
||||||
dodstats addons/amxmodx/data/dodstats.dat
|
dodstats addons/amxmodx/data/dodstats.dat
|
||||||
|
dodstats_score addons/amxmodx/data/dodstats.amxx
|
||||||
|
|
||||||
; Binary logging level
|
; Binary logging level
|
||||||
; add these up to get what you want
|
; add these up to get what you want
|
||||||
|
@ -37,3 +37,4 @@ fun
|
|||||||
;nvault
|
;nvault
|
||||||
dodfun
|
dodfun
|
||||||
dodx
|
dodx
|
||||||
|
;hamsandwich
|
||||||
|
@ -16,6 +16,7 @@ cmdmenu.amxx ; command menu (speech, settings)
|
|||||||
plmenu.amxx ; players menu (kick, ban, client cmds.)
|
plmenu.amxx ; players menu (kick, ban, client cmds.)
|
||||||
;telemenu.amxx ; teleport menu (Fun Module required!)
|
;telemenu.amxx ; teleport menu (Fun Module required!)
|
||||||
mapsmenu.amxx ; maps menu (vote, changelevel)
|
mapsmenu.amxx ; maps menu (vote, changelevel)
|
||||||
|
pluginmenu.amxx ; Menus for commands/cvars organized by plugin
|
||||||
|
|
||||||
; Chat / Messages
|
; Chat / Messages
|
||||||
adminchat.amxx ; console chat commands
|
adminchat.amxx ; console chat commands
|
||||||
|
@ -35,3 +35,4 @@ fakemeta
|
|||||||
;sockets
|
;sockets
|
||||||
;regex
|
;regex
|
||||||
;nvault
|
;nvault
|
||||||
|
;hamsandwich
|
||||||
|
@ -16,6 +16,7 @@ cmdmenu.amxx ; command menu (speech, settings)
|
|||||||
plmenu.amxx ; players menu (kick, ban, client cmds.)
|
plmenu.amxx ; players menu (kick, ban, client cmds.)
|
||||||
;telemenu.amxx ; teleport menu (Fun Module required!)
|
;telemenu.amxx ; teleport menu (Fun Module required!)
|
||||||
mapsmenu.amxx ; maps menu (vote, changelevel)
|
mapsmenu.amxx ; maps menu (vote, changelevel)
|
||||||
|
pluginmenu.amxx ; Menus for commands/cvars organized by plugin
|
||||||
|
|
||||||
; Chat / Messages
|
; Chat / Messages
|
||||||
adminchat.amxx ; console chat commands
|
adminchat.amxx ; console chat commands
|
||||||
|
@ -1147,14 +1147,6 @@
|
|||||||
ts_weapon_alternateattack 95
|
ts_weapon_alternateattack 95
|
||||||
@end
|
@end
|
||||||
|
|
||||||
; Sven-Coop has no linux binaries. This makes disassembly much harder.
|
|
||||||
@section svencoop windows
|
|
||||||
pev 4
|
|
||||||
base 0x0
|
|
||||||
|
|
||||||
takedamage 11
|
|
||||||
use 46
|
|
||||||
@end
|
|
||||||
|
|
||||||
@section esf windows
|
@section esf windows
|
||||||
pev 4
|
pev 4
|
||||||
@ -1759,7 +1751,7 @@
|
|||||||
@end
|
@end
|
||||||
; Sven-Coop has no linux binaries. This makes disassembly much harder.
|
; Sven-Coop has no linux binaries. This makes disassembly much harder.
|
||||||
; These offsets were contributed by ts2do
|
; These offsets were contributed by ts2do
|
||||||
@section svencoop windows
|
@section SvenCoop windows
|
||||||
pev 4
|
pev 4
|
||||||
base 0x0
|
base 0x0
|
||||||
|
|
||||||
|
@ -35,3 +35,4 @@
|
|||||||
;sockets
|
;sockets
|
||||||
;regex
|
;regex
|
||||||
;nvault
|
;nvault
|
||||||
|
;hamsandwich
|
||||||
|
@ -46,6 +46,16 @@ amx_imessage "This server is using AMX Mod X\nVisit http://www.amxmodx.org" "000
|
|||||||
// Default value: 180
|
// Default value: 180
|
||||||
amx_freq_imessage 180
|
amx_freq_imessage 180
|
||||||
|
|
||||||
|
// Ban times for the main ban menu (amx_banmenu)
|
||||||
|
// Use 0 for permanent ban.
|
||||||
|
// Default values: 0 5 10 15 30 45 60
|
||||||
|
amx_plmenu_bantimes 0 5 10 15 30 45 60
|
||||||
|
|
||||||
|
// Slap damage amounts for the main slap menu (amx_slapmenu)
|
||||||
|
// Slay is automatically inserted as the first option.
|
||||||
|
// Default values: 0 1 5
|
||||||
|
amx_plmenu_slapdamage 0 1 5
|
||||||
|
|
||||||
// Set in seconds how fast players can chat (chat-flood protection)
|
// Set in seconds how fast players can chat (chat-flood protection)
|
||||||
//
|
//
|
||||||
// Default value: 0.75
|
// Default value: 0.75
|
||||||
|
@ -36,3 +36,4 @@ fun
|
|||||||
;regex
|
;regex
|
||||||
;nvault
|
;nvault
|
||||||
ns
|
ns
|
||||||
|
;hamsandwich
|
||||||
|
@ -16,6 +16,7 @@ cmdmenu.amxx ; command menu (speech, settings)
|
|||||||
plmenu.amxx ; players menu (kick, ban, client cmds.)
|
plmenu.amxx ; players menu (kick, ban, client cmds.)
|
||||||
;telemenu.amxx ; teleport menu (Fun Module required!)
|
;telemenu.amxx ; teleport menu (Fun Module required!)
|
||||||
mapsmenu.amxx ; maps menu (vote, changelevel)
|
mapsmenu.amxx ; maps menu (vote, changelevel)
|
||||||
|
pluginmenu.amxx ; Menus for commands/cvars organized by plugin
|
||||||
|
|
||||||
; Chat / Messages
|
; Chat / Messages
|
||||||
adminchat.amxx ; console chat commands
|
adminchat.amxx ; console chat commands
|
||||||
|
@ -16,6 +16,7 @@ cmdmenu.amxx ; command menu (speech, settings)
|
|||||||
plmenu.amxx ; players menu (kick, ban, client cmds.)
|
plmenu.amxx ; players menu (kick, ban, client cmds.)
|
||||||
;telemenu.amxx ; teleport menu (Fun Module required!)
|
;telemenu.amxx ; teleport menu (Fun Module required!)
|
||||||
mapsmenu.amxx ; maps menu (vote, changelevel)
|
mapsmenu.amxx ; maps menu (vote, changelevel)
|
||||||
|
pluginmenu.amxx ; Menus for commands/cvars organized by plugin
|
||||||
|
|
||||||
; Chat / Messages
|
; Chat / Messages
|
||||||
adminchat.amxx ; console chat commands
|
adminchat.amxx ; console chat commands
|
||||||
|
@ -7,8 +7,9 @@ amxx_plugins addons/amxmodx/configs/plugins.ini
|
|||||||
amxx_pluginsdir addons/amxmodx/plugins
|
amxx_pluginsdir addons/amxmodx/plugins
|
||||||
amxx_modulesdir addons/amxmodx/modules
|
amxx_modulesdir addons/amxmodx/modules
|
||||||
amxx_vault addons/amxmodx/data/vault.ini
|
amxx_vault addons/amxmodx/data/vault.ini
|
||||||
tfcstats_score addons/amxmodx/data/tfcstats.amxx
|
; It is important that "tfcstats" comes before "tfcstats_score"
|
||||||
tfcstats addons/amxmodx/data/tfcstats.dat
|
tfcstats addons/amxmodx/data/tfcstats.dat
|
||||||
|
tfcstats_score addons/amxmodx/data/tfcstats.amxx
|
||||||
|
|
||||||
; Logging mode
|
; Logging mode
|
||||||
; 0 - no logging
|
; 0 - no logging
|
||||||
|
@ -36,3 +36,4 @@ fun
|
|||||||
;regex
|
;regex
|
||||||
;nvault
|
;nvault
|
||||||
tfcx
|
tfcx
|
||||||
|
;hamsandwich
|
||||||
|
@ -16,6 +16,7 @@ cmdmenu.amxx ; command menu (speech, settings)
|
|||||||
plmenu.amxx ; players menu (kick, ban, client cmds.)
|
plmenu.amxx ; players menu (kick, ban, client cmds.)
|
||||||
;telemenu.amxx ; teleport menu (Fun Module required!)
|
;telemenu.amxx ; teleport menu (Fun Module required!)
|
||||||
mapsmenu.amxx ; maps menu (vote, changelevel)
|
mapsmenu.amxx ; maps menu (vote, changelevel)
|
||||||
|
pluginmenu.amxx ; Menus for commands/cvars organized by plugin
|
||||||
|
|
||||||
; Chat / Messages
|
; Chat / Messages
|
||||||
adminchat.amxx ; console chat commands
|
adminchat.amxx ; console chat commands
|
||||||
|
@ -7,8 +7,9 @@ amxx_plugins addons/amxmodx/configs/plugins.ini
|
|||||||
amxx_pluginsdir addons/amxmodx/plugins
|
amxx_pluginsdir addons/amxmodx/plugins
|
||||||
amxx_modulesdir addons/amxmodx/modules
|
amxx_modulesdir addons/amxmodx/modules
|
||||||
amxx_vault addons/amxmodx/data/vault.ini
|
amxx_vault addons/amxmodx/data/vault.ini
|
||||||
tsstats_score addons/amxmodx/data/tsstats.amxx
|
; It is important that "tsstats" comes before "tsstats_score"
|
||||||
tsstats addons/amxmodx/data/tsstats.dat
|
tsstats addons/amxmodx/data/tsstats.dat
|
||||||
|
tsstats_score addons/amxmodx/data/tsstats.amxx
|
||||||
|
|
||||||
; Logging mode
|
; Logging mode
|
||||||
; 0 - no logging
|
; 0 - no logging
|
||||||
|
@ -37,3 +37,4 @@ fun
|
|||||||
;nvault
|
;nvault
|
||||||
tsx
|
tsx
|
||||||
tsfun
|
tsfun
|
||||||
|
;hamsandwich
|
||||||
|
@ -16,6 +16,7 @@ cmdmenu.amxx ; command menu (speech, settings)
|
|||||||
plmenu.amxx ; players menu (kick, ban, client cmds.)
|
plmenu.amxx ; players menu (kick, ban, client cmds.)
|
||||||
;telemenu.amxx ; teleport menu (Fun Module required!)
|
;telemenu.amxx ; teleport menu (Fun Module required!)
|
||||||
mapsmenu.amxx ; maps menu (vote, changelevel)
|
mapsmenu.amxx ; maps menu (vote, changelevel)
|
||||||
|
pluginmenu.amxx ; Menus for commands/cvars organized by plugin
|
||||||
|
|
||||||
; Chat / Messages
|
; Chat / Messages
|
||||||
adminchat.amxx ; console chat commands
|
adminchat.amxx ; console chat commands
|
||||||
|
@ -33,6 +33,9 @@
|
|||||||
; c - this is steamid/wonid
|
; c - this is steamid/wonid
|
||||||
; d - this is ip
|
; d - this is ip
|
||||||
; e - password is not checked (only name/ip/steamid needed)
|
; e - password is not checked (only name/ip/steamid needed)
|
||||||
|
; k - name or tag is case sensitive. eg: if you set it so the name "Ham"
|
||||||
|
; is protected and case sensitive (flags "k" only), then anybody
|
||||||
|
; can use the names "haM", "HAM", "ham", etc, but not "Ham"
|
||||||
|
|
||||||
; Password:
|
; Password:
|
||||||
; Add to your autoexec.cfg: setinfo _pw "<password>"
|
; Add to your autoexec.cfg: setinfo _pw "<password>"
|
||||||
|
@ -35,7 +35,7 @@ else
|
|||||||
CFLAGS = $(OPT_FLAGS)
|
CFLAGS = $(OPT_FLAGS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CFLAGS += -DNDEBUG -fPIC -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -fno-rtti -static-libgcc
|
CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -fno-rtti -static-libgcc -m32
|
||||||
|
|
||||||
ifeq "$(AMD64)" "true"
|
ifeq "$(AMD64)" "true"
|
||||||
BINARY = $(NAME)_$(BIN_SUFFIX_64)
|
BINARY = $(NAME)_$(BIN_SUFFIX_64)
|
||||||
|
@ -1905,6 +1905,15 @@ void PlayerPreThink(edict_t *pPlayer)
|
|||||||
RETURN_META(MRES_IGNORED);
|
RETURN_META(MRES_IGNORED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int AmxxCheckGame(const char *game)
|
||||||
|
{
|
||||||
|
if (strcasecmp(game, "cstrike") == 0 ||
|
||||||
|
strcasecmp(game, "czero") == 0)
|
||||||
|
{
|
||||||
|
return AMXX_GAME_OK;
|
||||||
|
}
|
||||||
|
return AMXX_GAME_BAD;
|
||||||
|
}
|
||||||
void OnAmxxAttach()
|
void OnAmxxAttach()
|
||||||
{
|
{
|
||||||
MF_AddNatives(cstrike_Exports);
|
MF_AddNatives(cstrike_Exports);
|
||||||
|
@ -34,9 +34,9 @@
|
|||||||
// cstrike MODULE TO DO HERE: http://www.amxmodx.org/forums/viewtopic.php?t=45
|
// cstrike MODULE TO DO HERE: http://www.amxmodx.org/forums/viewtopic.php?t=45
|
||||||
// This implementation uses Vexd's way (lightly modified) of setting models on players.
|
// This implementation uses Vexd's way (lightly modified) of setting models on players.
|
||||||
|
|
||||||
|
#include "amxxmodule.h"
|
||||||
#include <extdll.h>
|
#include <extdll.h>
|
||||||
#include <meta_api.h>
|
#include <meta_api.h>
|
||||||
#include "amxxmodule.h"
|
|
||||||
#include "CstrikePlayer.h"
|
#include "CstrikePlayer.h"
|
||||||
|
|
||||||
#define GETINFOKEYBUFFER (*g_engfuncs.pfnGetInfoKeyBuffer)
|
#define GETINFOKEYBUFFER (*g_engfuncs.pfnGetInfoKeyBuffer)
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cstrike", "cstrike.vcproj", "{AB148B92-4F47-42E6-8268-AB4E588EC6A2}"
|
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfiguration) = preSolution
|
|
||||||
Debug = Debug
|
|
||||||
Release = Release
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfiguration) = postSolution
|
|
||||||
{AB148B92-4F47-42E6-8268-AB4E588EC6A2}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{AB148B92-4F47-42E6-8268-AB4E588EC6A2}.Debug.Build.0 = Debug|Win32
|
|
||||||
{AB148B92-4F47-42E6-8268-AB4E588EC6A2}.Release.ActiveCfg = Release|Win32
|
|
||||||
{AB148B92-4F47-42E6-8268-AB4E588EC6A2}.Release.Build.0 = Release|Win32
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
@ -1,201 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
|
||||||
<VisualStudioProject
|
|
||||||
ProjectType="Visual C++"
|
|
||||||
Version="7.10"
|
|
||||||
Name="cstrike"
|
|
||||||
ProjectGUID="{AB148B92-4F47-42E6-8268-AB4E588EC6A2}"
|
|
||||||
SccProjectName=""
|
|
||||||
SccLocalPath="">
|
|
||||||
<Platforms>
|
|
||||||
<Platform
|
|
||||||
Name="Win32"/>
|
|
||||||
</Platforms>
|
|
||||||
<Configurations>
|
|
||||||
<Configuration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
OutputDirectory=".\Debug"
|
|
||||||
IntermediateDirectory=".\Debug"
|
|
||||||
ConfigurationType="2"
|
|
||||||
UseOfMFC="0"
|
|
||||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
|
||||||
CharacterSet="2">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
AdditionalIncludeDirectories="..\;..\sdk"
|
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;CSTRIKE_EXPORTS"
|
|
||||||
BasicRuntimeChecks="3"
|
|
||||||
RuntimeLibrary="5"
|
|
||||||
UsePrecompiledHeader="2"
|
|
||||||
PrecompiledHeaderFile=".\Debug/cstrike.pch"
|
|
||||||
AssemblerListingLocation=".\Debug/"
|
|
||||||
ObjectFile=".\Debug/"
|
|
||||||
ProgramDataBaseFileName=".\Debug/"
|
|
||||||
BrowseInformation="1"
|
|
||||||
WarningLevel="3"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
DebugInformationFormat="3"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
OutputFile="Debug/cstrike_amxx.dll"
|
|
||||||
LinkIncremental="1"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
ModuleDefinitionFile=""
|
|
||||||
GenerateDebugInformation="TRUE"
|
|
||||||
ProgramDatabaseFile=".\Debug/cstrike_amx_debug.pdb"
|
|
||||||
ImportLibrary=".\Debug/cstrike_amx_debug.lib"
|
|
||||||
TargetMachine="1"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
MkTypLibCompatible="TRUE"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
TargetEnvironment="1"
|
|
||||||
TypeLibraryName=".\Debug/cstrike.tlb"
|
|
||||||
HeaderFileName=""/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
Culture="1053"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
|
||||||
Name="Release|Win32"
|
|
||||||
OutputDirectory=".\Release"
|
|
||||||
IntermediateDirectory=".\Release"
|
|
||||||
ConfigurationType="2"
|
|
||||||
UseOfMFC="0"
|
|
||||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
|
||||||
CharacterSet="2">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="2"
|
|
||||||
InlineFunctionExpansion="1"
|
|
||||||
AdditionalIncludeDirectories="..\;..\sdk"
|
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;CSTRIKE_EXPORTS"
|
|
||||||
StringPooling="TRUE"
|
|
||||||
RuntimeLibrary="4"
|
|
||||||
EnableFunctionLevelLinking="TRUE"
|
|
||||||
UsePrecompiledHeader="2"
|
|
||||||
PrecompiledHeaderFile=".\Release/cstrike.pch"
|
|
||||||
AssemblerListingLocation=".\Release/"
|
|
||||||
ObjectFile=".\Release/"
|
|
||||||
ProgramDataBaseFileName=".\Release/"
|
|
||||||
BrowseInformation="1"
|
|
||||||
WarningLevel="3"
|
|
||||||
SuppressStartupBanner="TRUE"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
OutputFile="Release/cstrike_amxx.dll"
|
|
||||||
LinkIncremental="1"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
ModuleDefinitionFile=""
|
|
||||||
ProgramDatabaseFile=".\Release/cstrike_amx.pdb"
|
|
||||||
ImportLibrary=".\Release/cstrike_amx.lib"
|
|
||||||
TargetMachine="1"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
MkTypLibCompatible="TRUE"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
TargetEnvironment="1"
|
|
||||||
TypeLibraryName=".\Release/cstrike.tlb"
|
|
||||||
HeaderFileName=""/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
Culture="1053"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
|
||||||
</Configurations>
|
|
||||||
<References>
|
|
||||||
</References>
|
|
||||||
<Files>
|
|
||||||
<Filter
|
|
||||||
Name="Source Files"
|
|
||||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
|
|
||||||
<File
|
|
||||||
RelativePath="..\cstrike.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CstrikeHacks.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CstrikePlayer.cpp">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Header Files"
|
|
||||||
Filter="h;hpp;hxx;hm;inl">
|
|
||||||
<File
|
|
||||||
RelativePath="..\cstrike.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CstrikePlayer.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\svn_version.h">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Module SDK"
|
|
||||||
Filter="">
|
|
||||||
<File
|
|
||||||
RelativePath="..\sdk\moduleconfig.h">
|
|
||||||
</File>
|
|
||||||
<Filter
|
|
||||||
Name="SDK Base"
|
|
||||||
Filter="">
|
|
||||||
<File
|
|
||||||
RelativePath="..\sdk\amxxmodule.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\sdk\amxxmodule.h">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Pawn Includes"
|
|
||||||
Filter="">
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\..\..\plugins\include\cstrike.inc">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
</Files>
|
|
||||||
<Globals>
|
|
||||||
</Globals>
|
|
||||||
</VisualStudioProject>
|
|
@ -48,7 +48,7 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\;..\sdk"
|
AdditionalIncludeDirectories="..\;..\sdk;"$(METAMOD)";"$(HLSDK)\common";"$(HLSDK)\engine";"$(HLSDK)\dlls";"$(HLSDK)\pm_shared""
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;CSTRIKE_EXPORTS"
|
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;CSTRIKE_EXPORTS"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
@ -145,7 +145,7 @@
|
|||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="2"
|
Optimization="2"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\;..\sdk"
|
AdditionalIncludeDirectories="..\;..\sdk;"$(METAMOD)";"$(HLSDK)\common";"$(HLSDK)\engine";"$(HLSDK)\dlls";"$(HLSDK)\pm_shared""
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;CSTRIKE_EXPORTS"
|
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;CSTRIKE_EXPORTS"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
@ -218,6 +218,10 @@
|
|||||||
RelativePath="..\cstrike.cpp"
|
RelativePath="..\cstrike.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\CstrikeHacks.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\CstrikePlayer.cpp"
|
RelativePath="..\CstrikePlayer.cpp"
|
||||||
>
|
>
|
||||||
|
@ -2548,6 +2548,14 @@ C_DLLEXPORT int AMXX_Query(int *interfaceVersion, amxx_module_info_s *moduleInfo
|
|||||||
// request optional function
|
// request optional function
|
||||||
#define REQFUNC_OPT(name, fptr, type) fptr = (type)reqFnptrFunc(name)
|
#define REQFUNC_OPT(name, fptr, type) fptr = (type)reqFnptrFunc(name)
|
||||||
|
|
||||||
|
C_DLLEXPORT int AMXX_CheckGame(const char *game)
|
||||||
|
{
|
||||||
|
#ifdef FN_AMXX_CHECKGAME
|
||||||
|
return FN_AMXX_CHECKGAME(game);
|
||||||
|
#else
|
||||||
|
return AMXX_GAME_OK;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
C_DLLEXPORT int AMXX_Attach(PFN_REQ_FNPTR reqFnptrFunc)
|
C_DLLEXPORT int AMXX_Attach(PFN_REQ_FNPTR reqFnptrFunc)
|
||||||
{
|
{
|
||||||
// Check pointer
|
// Check pointer
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
// config
|
// config
|
||||||
#include "moduleconfig.h"
|
#include "moduleconfig.h"
|
||||||
|
|
||||||
|
#include <stddef.h> // size_t
|
||||||
// metamod include files
|
// metamod include files
|
||||||
#ifdef USE_METAMOD
|
#ifdef USE_METAMOD
|
||||||
#include <extdll.h>
|
#include <extdll.h>
|
||||||
@ -55,6 +56,9 @@ struct amxx_module_info_s
|
|||||||
#define AMXX_PARAM 2 /* Invalid parameter */
|
#define AMXX_PARAM 2 /* Invalid parameter */
|
||||||
#define AMXX_FUNC_NOT_PRESENT 3 /* Function not present */
|
#define AMXX_FUNC_NOT_PRESENT 3 /* Function not present */
|
||||||
|
|
||||||
|
#define AMXX_GAME_OK 0 /* This module can load on the current game mod. */
|
||||||
|
#define AMXX_GAME_BAD 1 /* This module can not load on the current game mod. */
|
||||||
|
|
||||||
// *** Small stuff ***
|
// *** Small stuff ***
|
||||||
// The next section is copied from the amx.h file
|
// The next section is copied from the amx.h file
|
||||||
// Copyright (c) ITB CompuPhase, 1997-2005
|
// Copyright (c) ITB CompuPhase, 1997-2005
|
||||||
@ -2023,6 +2027,10 @@ int FN_ShouldCollide_Post(edict_t *pentTouched, edict_t *pentOther);
|
|||||||
void FN_AMXX_QUERY(void);
|
void FN_AMXX_QUERY(void);
|
||||||
#endif // FN_AMXX_QUERY
|
#endif // FN_AMXX_QUERY
|
||||||
|
|
||||||
|
#ifdef FN_AMXX_CHECKGAME
|
||||||
|
int FN_AMXX_CHECKGAME(const char *);
|
||||||
|
#endif // FN_AMXX_CHECKGAME
|
||||||
|
|
||||||
#ifdef FN_AMXX_ATTACH
|
#ifdef FN_AMXX_ATTACH
|
||||||
void FN_AMXX_ATTACH(void);
|
void FN_AMXX_ATTACH(void);
|
||||||
#endif // FN_AMXX_ATTACH
|
#endif // FN_AMXX_ATTACH
|
||||||
|
@ -46,6 +46,12 @@
|
|||||||
/** AMXX query */
|
/** AMXX query */
|
||||||
//#define FN_AMXX_QUERY OnAmxxQuery
|
//#define FN_AMXX_QUERY OnAmxxQuery
|
||||||
|
|
||||||
|
/** AMXX Check Game - module API is NOT available here.
|
||||||
|
* Return AMXX_GAME_OK if this module can load on the game, AMXX_GAME_BAD if it cannot.
|
||||||
|
* syntax: int AmxxCheckGame(const char *game)
|
||||||
|
*/
|
||||||
|
#define FN_AMXX_CHECKGAME AmxxCheckGame
|
||||||
|
|
||||||
/** AMXX attach
|
/** AMXX attach
|
||||||
* Do native functions init here (MF_AddNatives)
|
* Do native functions init here (MF_AddNatives)
|
||||||
*/
|
*/
|
||||||
|
@ -4,6 +4,6 @@
|
|||||||
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
|
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
|
||||||
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
|
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
|
||||||
|
|
||||||
#define SVN_VERSION "1.8.0.3660"
|
#define SVN_VERSION "1.8.1.3746"
|
||||||
|
|
||||||
#endif //_INCLUDE_SVN_VERSION_H_
|
#endif //_INCLUDE_SVN_VERSION_H_
|
||||||
|
@ -131,7 +131,7 @@ void RankSystem::clear(){
|
|||||||
bool RankSystem::loadCalc(const char* filename, char* error)
|
bool RankSystem::loadCalc(const char* filename, char* error)
|
||||||
{
|
{
|
||||||
if ((MF_LoadAmxScript(&calc.amx,&calc.code,filename,error,0)!=AMX_ERR_NONE)||
|
if ((MF_LoadAmxScript(&calc.amx,&calc.code,filename,error,0)!=AMX_ERR_NONE)||
|
||||||
(MF_AmxAllot(&calc.amx, 8 , &calc.amxAddr1, &calc.physAddr1)!=AMX_ERR_NONE)||
|
(MF_AmxAllot(&calc.amx, 11 , &calc.amxAddr1, &calc.physAddr1)!=AMX_ERR_NONE)||
|
||||||
(MF_AmxAllot(&calc.amx, 8 , &calc.amxAddr2, &calc.physAddr2)!=AMX_ERR_NONE)||
|
(MF_AmxAllot(&calc.amx, 8 , &calc.amxAddr2, &calc.physAddr2)!=AMX_ERR_NONE)||
|
||||||
(MF_AmxFindPublic(&calc.amx,"get_score",&calc.func)!=AMX_ERR_NONE)){
|
(MF_AmxFindPublic(&calc.amx,"get_score",&calc.func)!=AMX_ERR_NONE)){
|
||||||
LOG_CONSOLE( PLID, "Couldn't load plugin (file \"%s\")",filename);
|
LOG_CONSOLE( PLID, "Couldn't load plugin (file \"%s\")",filename);
|
||||||
@ -179,6 +179,7 @@ RankSystem::RankStats* RankSystem::findEntryInRank(const char* unique, const cha
|
|||||||
// Any other case was a false match.
|
// Any other case was a false match.
|
||||||
|
|
||||||
}
|
}
|
||||||
|
a = a->prev;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else // No special case
|
else // No special case
|
||||||
|
@ -35,7 +35,7 @@ else
|
|||||||
CFLAGS = $(OPT_FLAGS)
|
CFLAGS = $(OPT_FLAGS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CFLAGS += -DNDEBUG -fPIC -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti
|
CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32
|
||||||
|
|
||||||
ifeq "$(AMD64)" "true"
|
ifeq "$(AMD64)" "true"
|
||||||
BINARY = $(NAME)_$(BIN_SUFFIX_64)
|
BINARY = $(NAME)_$(BIN_SUFFIX_64)
|
||||||
|
@ -1,189 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
|
||||||
<VisualStudioProject
|
|
||||||
ProjectType="Visual C++"
|
|
||||||
Version="7.10"
|
|
||||||
Name="WinCSX"
|
|
||||||
ProjectGUID="{39A1E5DD-81A1-441D-B99A-E50A01DB05D7}"
|
|
||||||
RootNamespace="WinCSX"
|
|
||||||
Keyword="Win32Proj">
|
|
||||||
<Platforms>
|
|
||||||
<Platform
|
|
||||||
Name="Win32"/>
|
|
||||||
</Platforms>
|
|
||||||
<Configurations>
|
|
||||||
<Configuration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
OutputDirectory="Debug"
|
|
||||||
IntermediateDirectory="Debug"
|
|
||||||
ConfigurationType="1"
|
|
||||||
CharacterSet="2">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
AdditionalIncludeDirectories="..\resources"
|
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
|
|
||||||
MinimalRebuild="TRUE"
|
|
||||||
BasicRuntimeChecks="3"
|
|
||||||
RuntimeLibrary="5"
|
|
||||||
UsePrecompiledHeader="3"
|
|
||||||
WarningLevel="3"
|
|
||||||
Detect64BitPortabilityProblems="TRUE"
|
|
||||||
DebugInformationFormat="4"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
AdditionalDependencies="comctl32.lib"
|
|
||||||
OutputFile="$(OutDir)/WinCSX.exe"
|
|
||||||
LinkIncremental="2"
|
|
||||||
GenerateDebugInformation="TRUE"
|
|
||||||
ProgramDatabaseFile="$(OutDir)/WinCSX.pdb"
|
|
||||||
SubSystem="2"
|
|
||||||
TargetMachine="1"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
|
||||||
Name="Release|Win32"
|
|
||||||
OutputDirectory="Release"
|
|
||||||
IntermediateDirectory="Release"
|
|
||||||
ConfigurationType="1"
|
|
||||||
CharacterSet="2">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AdditionalIncludeDirectories="..\resources"
|
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
|
|
||||||
RuntimeLibrary="4"
|
|
||||||
UsePrecompiledHeader="3"
|
|
||||||
WarningLevel="3"
|
|
||||||
Detect64BitPortabilityProblems="TRUE"
|
|
||||||
DebugInformationFormat="3"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
AdditionalDependencies="comctl32.lib"
|
|
||||||
OutputFile="$(OutDir)/WinCSX.exe"
|
|
||||||
LinkIncremental="1"
|
|
||||||
GenerateDebugInformation="TRUE"
|
|
||||||
SubSystem="2"
|
|
||||||
OptimizeReferences="2"
|
|
||||||
EnableCOMDATFolding="2"
|
|
||||||
TargetMachine="1"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
|
||||||
</Configurations>
|
|
||||||
<References>
|
|
||||||
</References>
|
|
||||||
<Files>
|
|
||||||
<Filter
|
|
||||||
Name="Source Files"
|
|
||||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
|
||||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
|
|
||||||
<File
|
|
||||||
RelativePath="..\stdafx.cpp">
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
UsePrecompiledHeader="1"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Release|Win32">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
UsePrecompiledHeader="1"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\WinCSX.cpp">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Header Files"
|
|
||||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
|
||||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
|
|
||||||
<File
|
|
||||||
RelativePath="..\resources\Resource.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\stdafx.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\WinCSX.h">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Resource Files"
|
|
||||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
|
||||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
|
|
||||||
<File
|
|
||||||
RelativePath="..\resources\small.ico">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\resources\WinCSX.exe.manifest">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\resources\WinCSX.ico">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\resources\WinCSX.rc">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Dependencies"
|
|
||||||
Filter="">
|
|
||||||
<File
|
|
||||||
RelativePath="..\amxxmodule.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CRank.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CRank.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\moduleconfig.h">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
</Files>
|
|
||||||
<Globals>
|
|
||||||
</Globals>
|
|
||||||
</VisualStudioProject>
|
|
@ -174,7 +174,15 @@ void ServerDeactivate() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
BOOL ClientConnect_Post( edict_t *pEntity, const char *pszName, const char *pszAddress, char szRejectReason[ 128 ] ){
|
BOOL ClientConnect_Post( edict_t *pEntity, const char *pszName, const char *pszAddress, char szRejectReason[ 128 ] ){
|
||||||
GET_PLAYER_POINTER(pEntity)->Connect(pszAddress);
|
CPlayer *pPlayer = GET_PLAYER_POINTER(pEntity);
|
||||||
|
|
||||||
|
if (pPlayer->pEdict == NULL)
|
||||||
|
{
|
||||||
|
pPlayer->Init(ENTINDEX(pEntity), pEntity);
|
||||||
|
}
|
||||||
|
|
||||||
|
pPlayer->Connect(pszAddress);
|
||||||
|
|
||||||
RETURN_META_VALUE(MRES_IGNORED, TRUE);
|
RETURN_META_VALUE(MRES_IGNORED, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -191,6 +199,12 @@ void ClientPutInServer_Post( edict_t *pEntity ) {
|
|||||||
|
|
||||||
void ClientUserInfoChanged_Post( edict_t *pEntity, char *infobuffer ) {
|
void ClientUserInfoChanged_Post( edict_t *pEntity, char *infobuffer ) {
|
||||||
CPlayer *pPlayer = GET_PLAYER_POINTER(pEntity);
|
CPlayer *pPlayer = GET_PLAYER_POINTER(pEntity);
|
||||||
|
|
||||||
|
if (pPlayer->pEdict == NULL)
|
||||||
|
{
|
||||||
|
pPlayer->Init(ENTINDEX(pEntity), pEntity);
|
||||||
|
}
|
||||||
|
|
||||||
const char* name = INFOKEY_VALUE(infobuffer,"name");
|
const char* name = INFOKEY_VALUE(infobuffer,"name");
|
||||||
const char* oldname = STRING(pEntity->v.netname);
|
const char* oldname = STRING(pEntity->v.netname);
|
||||||
|
|
||||||
@ -365,6 +379,15 @@ void OnMetaAttach() {
|
|||||||
csstats_pause = CVAR_GET_POINTER(init_csstats_pause.name);
|
csstats_pause = CVAR_GET_POINTER(init_csstats_pause.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int AmxxCheckGame(const char *game)
|
||||||
|
{
|
||||||
|
if (strcasecmp(game, "cstrike") == 0 ||
|
||||||
|
strcasecmp(game, "czero") == 0)
|
||||||
|
{
|
||||||
|
return AMXX_GAME_OK;
|
||||||
|
}
|
||||||
|
return AMXX_GAME_BAD;
|
||||||
|
}
|
||||||
void OnAmxxAttach(){
|
void OnAmxxAttach(){
|
||||||
MF_AddNatives(stats_Natives);
|
MF_AddNatives(stats_Natives);
|
||||||
const char* path = get_localinfo("csstats_score");
|
const char* path = get_localinfo("csstats_score");
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "csx", "csx.vcproj", "{1DC4A99A-F23F-4AAE-881C-79D157C91155}"
|
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinCSX", "..\WinCSX\msvc7\WinCSX.vcproj", "{39A1E5DD-81A1-441D-B99A-E50A01DB05D7}"
|
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfiguration) = preSolution
|
|
||||||
Debug = Debug
|
|
||||||
Release = Release
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfiguration) = postSolution
|
|
||||||
{1DC4A99A-F23F-4AAE-881C-79D157C91155}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{1DC4A99A-F23F-4AAE-881C-79D157C91155}.Debug.Build.0 = Debug|Win32
|
|
||||||
{1DC4A99A-F23F-4AAE-881C-79D157C91155}.Release.ActiveCfg = Release|Win32
|
|
||||||
{1DC4A99A-F23F-4AAE-881C-79D157C91155}.Release.Build.0 = Release|Win32
|
|
||||||
{39A1E5DD-81A1-441D-B99A-E50A01DB05D7}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{39A1E5DD-81A1-441D-B99A-E50A01DB05D7}.Debug.Build.0 = Debug|Win32
|
|
||||||
{39A1E5DD-81A1-441D-B99A-E50A01DB05D7}.Release.ActiveCfg = Release|Win32
|
|
||||||
{39A1E5DD-81A1-441D-B99A-E50A01DB05D7}.Release.Build.0 = Release|Win32
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
@ -1,214 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
|
||||||
<VisualStudioProject
|
|
||||||
ProjectType="Visual C++"
|
|
||||||
Version="7.10"
|
|
||||||
Name="csx"
|
|
||||||
ProjectGUID="{1DC4A99A-F23F-4AAE-881C-79D157C91155}"
|
|
||||||
SccProjectName=""
|
|
||||||
SccLocalPath="">
|
|
||||||
<Platforms>
|
|
||||||
<Platform
|
|
||||||
Name="Win32"/>
|
|
||||||
</Platforms>
|
|
||||||
<Configurations>
|
|
||||||
<Configuration
|
|
||||||
Name="Release|Win32"
|
|
||||||
OutputDirectory=".\Release"
|
|
||||||
IntermediateDirectory=".\Release"
|
|
||||||
ConfigurationType="2"
|
|
||||||
UseOfMFC="0"
|
|
||||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
|
||||||
CharacterSet="2">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="2"
|
|
||||||
InlineFunctionExpansion="1"
|
|
||||||
AdditionalIncludeDirectories="..\;..\sdk"
|
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;csx_EXPORTS;JIT"
|
|
||||||
StringPooling="TRUE"
|
|
||||||
RuntimeLibrary="4"
|
|
||||||
StructMemberAlignment="0"
|
|
||||||
EnableFunctionLevelLinking="FALSE"
|
|
||||||
UsePrecompiledHeader="2"
|
|
||||||
PrecompiledHeaderFile=".\Release/csx.pch"
|
|
||||||
AssemblerListingLocation=".\Release/"
|
|
||||||
ObjectFile=".\Release/"
|
|
||||||
ProgramDataBaseFileName=".\Release/"
|
|
||||||
BrowseInformation="1"
|
|
||||||
WarningLevel="3"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
CompileAs="0"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
OutputFile="Release/csx_amxx.dll"
|
|
||||||
LinkIncremental="1"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
ProgramDatabaseFile=".\Release/csx_amxx.pdb"
|
|
||||||
ImportLibrary=".\Release/csx_amxx.lib"
|
|
||||||
TargetMachine="1"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
MkTypLibCompatible="TRUE"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
TargetEnvironment="1"
|
|
||||||
TypeLibraryName=".\Release/csx.tlb"
|
|
||||||
HeaderFileName=""/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
Culture="1033"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
OutputDirectory=".\Debug"
|
|
||||||
IntermediateDirectory=".\Debug"
|
|
||||||
ConfigurationType="2"
|
|
||||||
UseOfMFC="0"
|
|
||||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
|
||||||
CharacterSet="2">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
AdditionalIncludeDirectories="..\;..\sdk"
|
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;csx_EXPORTS"
|
|
||||||
BasicRuntimeChecks="3"
|
|
||||||
RuntimeLibrary="5"
|
|
||||||
UsePrecompiledHeader="2"
|
|
||||||
PrecompiledHeaderFile=".\Debug/csx.pch"
|
|
||||||
AssemblerListingLocation=".\Debug/"
|
|
||||||
ObjectFile=".\Debug/"
|
|
||||||
ProgramDataBaseFileName=".\Debug/"
|
|
||||||
BrowseInformation="1"
|
|
||||||
WarningLevel="3"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
DebugInformationFormat="3"
|
|
||||||
CompileAs="0"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
OutputFile="Debug/csx_amxx.dll"
|
|
||||||
LinkIncremental="1"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
GenerateDebugInformation="TRUE"
|
|
||||||
ProgramDatabaseFile=".\Debug/csx_amxx.pdb"
|
|
||||||
ImportLibrary=".\Debug/csx_amxx.lib"
|
|
||||||
TargetMachine="1"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
MkTypLibCompatible="TRUE"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
TargetEnvironment="1"
|
|
||||||
TypeLibraryName=".\Debug/csx.tlb"
|
|
||||||
HeaderFileName=""/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
Culture="1033"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
|
||||||
</Configurations>
|
|
||||||
<References>
|
|
||||||
</References>
|
|
||||||
<Files>
|
|
||||||
<Filter
|
|
||||||
Name="Source Files"
|
|
||||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
|
|
||||||
<File
|
|
||||||
RelativePath="..\CMisc.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CRank.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\meta_api.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\rank.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\usermsg.cpp">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Header Files"
|
|
||||||
Filter="h;hpp;hxx;hm;inl">
|
|
||||||
<File
|
|
||||||
RelativePath="..\CMisc.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\CRank.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\rank.h">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\svn_version.h">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="SDK"
|
|
||||||
Filter="">
|
|
||||||
<File
|
|
||||||
RelativePath="..\sdk\moduleconfig.h">
|
|
||||||
</File>
|
|
||||||
<Filter
|
|
||||||
Name="SDK Base"
|
|
||||||
Filter="">
|
|
||||||
<File
|
|
||||||
RelativePath="..\sdk\amxxmodule.cpp">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\sdk\amxxmodule.h">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Pawn Includes"
|
|
||||||
Filter="">
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\..\plugins\include\csstats.inc">
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="..\..\..\plugins\include\csx.inc">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
</Files>
|
|
||||||
<Globals>
|
|
||||||
</Globals>
|
|
||||||
</VisualStudioProject>
|
|
@ -49,7 +49,7 @@
|
|||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="2"
|
Optimization="2"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\;..\sdk"
|
AdditionalIncludeDirectories="..\;..\sdk;"$(METAMOD)";"$(HLSDK)\common";"$(HLSDK)\engine";"$(HLSDK)\dlls";"$(HLSDK)\pm_shared""
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;csx_EXPORTS;JIT"
|
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;csx_EXPORTS;JIT"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
@ -145,7 +145,7 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="..\;..\sdk"
|
AdditionalIncludeDirectories="..\;..\sdk;"$(METAMOD)";"$(HLSDK)\common";"$(HLSDK)\engine";"$(HLSDK)\dlls";"$(HLSDK)\pm_shared""
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;csx_EXPORTS"
|
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;csx_EXPORTS"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
|
@ -2548,6 +2548,14 @@ C_DLLEXPORT int AMXX_Query(int *interfaceVersion, amxx_module_info_s *moduleInfo
|
|||||||
// request optional function
|
// request optional function
|
||||||
#define REQFUNC_OPT(name, fptr, type) fptr = (type)reqFnptrFunc(name)
|
#define REQFUNC_OPT(name, fptr, type) fptr = (type)reqFnptrFunc(name)
|
||||||
|
|
||||||
|
C_DLLEXPORT int AMXX_CheckGame(const char *game)
|
||||||
|
{
|
||||||
|
#ifdef FN_AMXX_CHECKGAME
|
||||||
|
return FN_AMXX_CHECKGAME(game);
|
||||||
|
#else
|
||||||
|
return AMXX_GAME_OK;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
C_DLLEXPORT int AMXX_Attach(PFN_REQ_FNPTR reqFnptrFunc)
|
C_DLLEXPORT int AMXX_Attach(PFN_REQ_FNPTR reqFnptrFunc)
|
||||||
{
|
{
|
||||||
// Check pointer
|
// Check pointer
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
// config
|
// config
|
||||||
#include "moduleconfig.h"
|
#include "moduleconfig.h"
|
||||||
|
|
||||||
|
#include <stddef.h> // size_t
|
||||||
// metamod include files
|
// metamod include files
|
||||||
#ifdef USE_METAMOD
|
#ifdef USE_METAMOD
|
||||||
#include <extdll.h>
|
#include <extdll.h>
|
||||||
@ -55,6 +56,9 @@ struct amxx_module_info_s
|
|||||||
#define AMXX_PARAM 2 /* Invalid parameter */
|
#define AMXX_PARAM 2 /* Invalid parameter */
|
||||||
#define AMXX_FUNC_NOT_PRESENT 3 /* Function not present */
|
#define AMXX_FUNC_NOT_PRESENT 3 /* Function not present */
|
||||||
|
|
||||||
|
#define AMXX_GAME_OK 0 /* This module can load on the current game mod. */
|
||||||
|
#define AMXX_GAME_BAD 1 /* This module can not load on the current game mod. */
|
||||||
|
|
||||||
// *** Small stuff ***
|
// *** Small stuff ***
|
||||||
// The next section is copied from the amx.h file
|
// The next section is copied from the amx.h file
|
||||||
// Copyright (c) ITB CompuPhase, 1997-2005
|
// Copyright (c) ITB CompuPhase, 1997-2005
|
||||||
@ -2023,6 +2027,10 @@ int FN_ShouldCollide_Post(edict_t *pentTouched, edict_t *pentOther);
|
|||||||
void FN_AMXX_QUERY(void);
|
void FN_AMXX_QUERY(void);
|
||||||
#endif // FN_AMXX_QUERY
|
#endif // FN_AMXX_QUERY
|
||||||
|
|
||||||
|
#ifdef FN_AMXX_CHECKGAME
|
||||||
|
int FN_AMXX_CHECKGAME(const char *);
|
||||||
|
#endif // FN_AMXX_CHECKGAME
|
||||||
|
|
||||||
#ifdef FN_AMXX_ATTACH
|
#ifdef FN_AMXX_ATTACH
|
||||||
void FN_AMXX_ATTACH(void);
|
void FN_AMXX_ATTACH(void);
|
||||||
#endif // FN_AMXX_ATTACH
|
#endif // FN_AMXX_ATTACH
|
||||||
|
@ -46,6 +46,12 @@
|
|||||||
/** AMXX query */
|
/** AMXX query */
|
||||||
//#define FN_AMXX_QUERY OnAmxxQuery
|
//#define FN_AMXX_QUERY OnAmxxQuery
|
||||||
|
|
||||||
|
/** AMXX Check Game - module API is NOT available here.
|
||||||
|
* Return AMXX_GAME_OK if this module can load on the game, AMXX_GAME_BAD if it cannot.
|
||||||
|
* syntax: int AmxxCheckGame(const char *game)
|
||||||
|
*/
|
||||||
|
#define FN_AMXX_CHECKGAME AmxxCheckGame
|
||||||
|
|
||||||
/** AMXX attach
|
/** AMXX attach
|
||||||
* Do native functions init here (MF_AddNatives)
|
* Do native functions init here (MF_AddNatives)
|
||||||
*/
|
*/
|
||||||
|
@ -4,6 +4,6 @@
|
|||||||
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
|
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
|
||||||
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
|
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
|
||||||
|
|
||||||
#define SVN_VERSION "1.8.0.3660"
|
#define SVN_VERSION "1.8.1.3746"
|
||||||
|
|
||||||
#endif //_INCLUDE_SVN_VERSION_H_
|
#endif //_INCLUDE_SVN_VERSION_H_
|
||||||
|
@ -34,7 +34,7 @@ else
|
|||||||
CFLAGS = $(OPT_FLAGS)
|
CFLAGS = $(OPT_FLAGS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CFLAGS += -DNDEBUG -fPIC -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti
|
CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32
|
||||||
|
|
||||||
BINARY = $(NAME)_$(BIN_SUFFIX)
|
BINARY = $(NAME)_$(BIN_SUFFIX)
|
||||||
CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
|
CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
|
||||||
|
@ -294,6 +294,13 @@ void SetModel_Post(edict_t *e, const char *m)
|
|||||||
RETURN_META(MRES_IGNORED);
|
RETURN_META(MRES_IGNORED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int AmxxCheckGame(const char *game)
|
||||||
|
{
|
||||||
|
if (strcasecmp(game, "dod") == 0)
|
||||||
|
return AMXX_GAME_OK;
|
||||||
|
|
||||||
|
return AMXX_GAME_BAD;
|
||||||
|
}
|
||||||
void OnAmxxAttach()
|
void OnAmxxAttach()
|
||||||
{
|
{
|
||||||
MF_AddNatives( base_Natives );
|
MF_AddNatives( base_Natives );
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user