30768 lines
		
	
	
		
			1.3 MiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			30768 lines
		
	
	
		
			1.3 MiB
		
	
	
	
	
	
	
	
| diff --git a/amxmodx/CCmd.cpp b/amxmodx/CCmd.cpp
 | |
| --- a/amxmodx/CCmd.cpp
 | |
| +++ b/amxmodx/CCmd.cpp
 | |
| @@ -148,17 +148,17 @@ void CmdMngr::setCmdLink(CmdLink** a, Co
 | |
|  	if (np == 0) return;
 | |
|  
 | |
|  	if (sorted)
 | |
|  	{
 | |
|  		while (*a)
 | |
|  		{
 | |
|  			int i = strcmp(c->getCommand(), (*a)->cmd->getCommand());
 | |
|  
 | |
| -			if ((i < 0) || (i == 0) && (strcmp(c->getArgument(), (*a)->cmd->getArgument()) < 0))
 | |
| +			if ((i < 0) || ((i == 0) && (strcmp(c->getArgument(), (*a)->cmd->getArgument()) < 0)))
 | |
|  				break;
 | |
|  			
 | |
|  			a = &(*a)->next;
 | |
|  		}
 | |
|  
 | |
|  		np->next = *a;
 | |
|  		*a = np;
 | |
|  	} else {
 | |
| diff --git a/amxmodx/CForward.h b/amxmodx/CForward.h
 | |
| --- a/amxmodx/CForward.h
 | |
| +++ b/amxmodx/CForward.h
 | |
| @@ -139,17 +139,16 @@ public:
 | |
|  		return m_ParamTypes[paramId];
 | |
|  	}
 | |
|  };
 | |
|  
 | |
|  // Single plugin forward
 | |
|  class CSPForward
 | |
|  {
 | |
|  	friend class CForwardMngr;
 | |
| -	const char *m_FuncName;
 | |
|  	int m_NumParams;
 | |
|  	
 | |
|  	ForwardParam m_ParamTypes[FORWARD_MAX_PARAMS];
 | |
|  	AMX *m_Amx;
 | |
|  	
 | |
|  	int m_Func;
 | |
|  	bool m_HasFunc;
 | |
|  	String m_Name;
 | |
| diff --git a/amxmodx/CLang.cpp b/amxmodx/CLang.cpp
 | |
| --- a/amxmodx/CLang.cpp
 | |
| +++ b/amxmodx/CLang.cpp
 | |
| @@ -30,17 +30,17 @@
 | |
|  */
 | |
|  
 | |
|  #include <stdarg.h>
 | |
|  #include "amxmodx.h"
 | |
|  #include "CLang.h"
 | |
|  #include "format.h"
 | |
|  #include "amxmod_compat.h"
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  #define _snprintf snprintf
 | |
|  #endif
 | |
|  
 | |
|  #define LITIDX_NONE			0
 | |
|  #define LITIDX_BRACKET		1
 | |
|  #define LITIDX_DEFINITION	2
 | |
|  
 | |
|  #define INSERT_NUMBER		1
 | |
| @@ -103,17 +103,17 @@ int Compare<int>(const int &k1, const in
 | |
|  // return the number of written characters (including the terimating zero char)
 | |
|  size_t CLangMngr::strip(char *str, char *newstr, bool makelower)
 | |
|  {
 | |
|  	size_t i = 0;
 | |
|  	size_t pos = 0;
 | |
|  	int flag = 0;
 | |
|  	size_t strln = strlen(str);
 | |
|  
 | |
| -	for (i = strln - 1; i >= 0; i--)
 | |
| +	for (i = strln - 1; i < strln; i--)
 | |
|  	{
 | |
|  		if (str[i] == '\n' || str[i] == ' ' || str[i] == '\t')
 | |
|  		{
 | |
|  			str[i] = 0;
 | |
|  		} else {
 | |
|  			break;
 | |
|  		}
 | |
|  	}
 | |
| diff --git a/amxmodx/CLogEvent.cpp b/amxmodx/CLogEvent.cpp
 | |
| --- a/amxmodx/CLogEvent.cpp
 | |
| +++ b/amxmodx/CLogEvent.cpp
 | |
| @@ -106,34 +106,34 @@ void LogEventsMngr::CLogEvent::registerF
 | |
|  	LogCondEle* aa = new LogCondEle(cmp, 0);
 | |
|  	
 | |
|  	if (aa == 0)
 | |
|  		return;
 | |
|  
 | |
|  	filters = new LogCond(cmp->pos, aa, filters);
 | |
|  }
 | |
|  
 | |
| -void LogEventsMngr::setLogString(char* frmt, va_list& vaptr)
 | |
| +void LogEventsMngr::setLogString(const char* frmt, va_list& vaptr)
 | |
|  {
 | |
|  	++logCounter;
 | |
|  	int len = vsnprintf(logString, 255, frmt, vaptr);
 | |
|  	
 | |
|  	if (len == - 1)
 | |
|  	{
 | |
|  		len = 255;
 | |
|  		logString[len] = 0;
 | |
|  	}
 | |
|  	
 | |
|  	if (len)
 | |
|  		logString[--len] = 0;
 | |
|  	
 | |
|  	logArgc = 0;
 | |
|  }
 | |
|  
 | |
| -void LogEventsMngr::setLogString(char* frmt, ...)
 | |
| +void LogEventsMngr::setLogString(const char* frmt, ...)
 | |
|  {
 | |
|  	++logCounter;
 | |
|  	va_list logArgPtr;
 | |
|  	va_start(logArgPtr, frmt);
 | |
|  	int len = vsnprintf(logString, 255, frmt, logArgPtr);
 | |
|  	
 | |
|  	if (len == - 1)
 | |
|  	{
 | |
| diff --git a/amxmodx/CLogEvent.h b/amxmodx/CLogEvent.h
 | |
| --- a/amxmodx/CLogEvent.h
 | |
| +++ b/amxmodx/CLogEvent.h
 | |
| @@ -136,18 +136,18 @@ private:
 | |
|  public:
 | |
|  	LogEventsMngr();
 | |
|  	~LogEventsMngr();
 | |
|  
 | |
|  	// Interface
 | |
|  	CLogEvent* registerLogEvent(CPluginMngr::CPlugin* plugin, int func, int pos);
 | |
|  	inline bool logEventsExist() { return arelogevents; } 
 | |
|  	
 | |
| -	void setLogString(char* frmt, va_list& vaptr);
 | |
| -	void setLogString(char* frmt, ...);
 | |
| +	void setLogString(const char* frmt, va_list& vaptr);
 | |
| +	void setLogString(const char* frmt, ...);
 | |
|  	void parseLogString();
 | |
|  	void executeLogEvents();
 | |
|  	
 | |
|  	inline const char* getLogString() { return logString; }
 | |
|  	inline int getLogArgNum() { return logArgc; }
 | |
|  	inline const char* getLogArg(int i) { return (i < 0 || i >= logArgc) ? "" : logArgs[i]; }
 | |
|  	void clearLogEvents();
 | |
|  
 | |
| diff --git a/amxmodx/CMisc.h b/amxmodx/CMisc.h
 | |
| --- a/amxmodx/CMisc.h
 | |
| +++ b/amxmodx/CMisc.h
 | |
| @@ -337,17 +337,17 @@ public:
 | |
|  		while (i<sizeof(m_AuthData)-1)
 | |
|  		{
 | |
|  			if ((m_AuthData[i++]=*Input++)==0)
 | |
|  			{
 | |
|  				return;
 | |
|  			}
 | |
|  		}
 | |
|  
 | |
| -		m_AuthData[sizeof(m_AuthData)-1]=0;
 | |
| +		m_AuthData[arraysize(m_AuthData)-1]=0;
 | |
|  
 | |
|  	};
 | |
|  	const cell *GetAuthID(void) const
 | |
|  	{
 | |
|  		return &m_AuthData[0];
 | |
|  	};
 | |
|  
 | |
|  	void SetPass(const cell *Input)
 | |
| @@ -356,17 +356,17 @@ public:
 | |
|  		while (i<sizeof(m_Password)-1)
 | |
|  		{
 | |
|  			if ((m_Password[i++]=*Input++)==0)
 | |
|  			{
 | |
|  				return;
 | |
|  			}
 | |
|  		}
 | |
|  
 | |
| -		m_Password[sizeof(m_Password)-1]=0;
 | |
| +		m_Password[arraysize(m_Password)-1]=0;
 | |
|  
 | |
|  	};
 | |
|  	const cell *GetPass(void) const
 | |
|  	{
 | |
|  		return &m_Password[0];
 | |
|  	};
 | |
|  
 | |
|  	CAdminData & operator = (const CAdminData &src)
 | |
| diff --git a/amxmodx/CModule.cpp b/amxmodx/CModule.cpp
 | |
| --- a/amxmodx/CModule.cpp
 | |
| +++ b/amxmodx/CModule.cpp
 | |
| @@ -215,17 +215,17 @@ bool CModule::attachModule()
 | |
|  bool CModule::queryModule()
 | |
|  {
 | |
|  	if (m_Status != MODULE_NONE)				// don't check if already queried
 | |
|  		return false;
 | |
|  
 | |
|  	m_Handle = DLLOAD(m_Filename.c_str());		// load file
 | |
|  	if (!m_Handle)
 | |
|  	{
 | |
| -#if defined __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  		AMXXLOG_Log("[AMXX] Module \"%s\" failed to load (%s)", m_Filename.c_str(), dlerror());
 | |
|  #endif
 | |
|  		m_Status = MODULE_BADLOAD;
 | |
|  		return false;
 | |
|  	}
 | |
|  
 | |
|  	// Check whether the module uses metamod (for auto attach)
 | |
|  	if (DLPROC(m_Handle, "Meta_Attach"))
 | |
| diff --git a/amxmodx/CString.h b/amxmodx/CString.h
 | |
| --- a/amxmodx/CString.h
 | |
| +++ b/amxmodx/CString.h
 | |
| @@ -239,17 +239,17 @@ public:
 | |
|  
 | |
|  		if (len < 1)
 | |
|  		{
 | |
|  			return;
 | |
|  		}
 | |
|  
 | |
|  		if (is_space(v[len-1]))
 | |
|  		{
 | |
| -			for (i=len-1; i>=0; i--)
 | |
| +			for (i=len-1; i<len; i--)
 | |
|  			{
 | |
|  				if (!is_space(v[i])
 | |
|  					|| (is_space(v[i]) && i==0))
 | |
|  				{
 | |
|  					erase(i+1, j);
 | |
|  					break;
 | |
|  				}
 | |
|  				j++;
 | |
| diff --git a/amxmodx/JIT/amxexecn-darwin.o b/amxmodx/JIT/amxexecn-darwin.o
 | |
| new file mode 100644
 | |
| index 0000000000000000000000000000000000000000..6821de60c581597547010060e33328f0cfabf85d
 | |
| GIT binary patch
 | |
| literal 16356
 | |
| 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
 | |
| MfsSyHW=ul)Uv^;sV*mgE
 | |
| 
 | |
| diff --git a/amxmodx/JIT/amxexecn.o b/amxmodx/JIT/amxexecn.o
 | |
| index 4528160d4d3b96ff3b697575be150cfd439be4b4..566b4ec526cc711ca6973757980692545973fc75
 | |
| GIT binary patch
 | |
| literal 12896
 | |
| zc$}S@e{@vUwa4#d?)*rIov3*dG`1+StTc#3B7)G$Bs2MelT4VIK!T8Al8huW`QgkY
 | |
| z!Ye+hgOzcN_yeEVQhzPAwo27itM+Mauz*Ol3l$ciz9pip@=G5)R44`K?Q{0tbI%R-
 | |
| zpO>}veD~*^bI(2Z+;h*}`@(HLf33x0(fH4zSv7++Z8m9@{JmUrLjC{e&q8J=UI}0=
 | |
| zHtI`A9n_A`a_>2s)>UA%(@D=!+HeOmN1adnjRjK<*JeYz=5sa8CJwP+f8yLf7}ejs
 | |
| zmp~uN__)6xf)y(59=k%!3ie|mb%IrnYPTKQt=6%=Kxr4sdfm=!*j=1m=q}0n-KF#A
 | |
| zwWN;}=LW{-2Fh~-Wx>$g+(0QbD7A#$W!YvuJK)SNE6&!JWLrzKn&qFl%d)k4dW$ow
 | |
| zJHVYM-O{l}snsYwKX+Mri#`)h=t^HY2IkA_))USdTV1!80?7`r(q^hWQ3REJI@Cii
 | |
| z6Z8$IbMR-J)qG;}xlMKFD|KATY}MUdWGxkLpKvqYA8UC(toYuGm2%;W>k5mZ&w;^$
 | |
| zCx*Vwb^9!!j1FhT$}3EjKfvpPKGJ6_gSOS8UHXikvfn5Vkv~|UopfbJzfz@Ag(^&S
 | |
| z6|!zvzdb+IuN11Y`I|zT>bcn_{e!)5jAeTpHoV8wa3wc{j-Wd{0GfZWx6QIWciErB
 | |
| z3aXGNtvq1HLp+-F8Ew!G3#?RJm}OAUoD@!hEYpQ+9W2VmVco&$<+VeTt-`Sl+Opz~
 | |
| zWR6zIqq#dcG((4qwi~gnBlDMx?iNcChML)q@}`vg5xlO`>4Q4@Ve<J_N^BhbCSMXa
 | |
| zHOR()tesVKu~7tFW_4G3Be|vMX0}<I^x>Y78F9DnTH}HzZKfZlcug62xa?p-!%7g-
 | |
| z4^8qd_rv}pXQa1W7Ti4^4uIC>ZZY(Q@|>A}W{TaGzvhp5(Sc3GnX^^mcV^06>bm{U
 | |
| zP!3+1EBy!XGUalH&Th6Y-|QZ4mYw7p_D_V%818dshxGil4)^JqEmk<nn2;g(u@2#*
 | |
| zR5+5d;l+v4!jZufl4fjAeM!#XesU5YlQZ-IIk#*hC%KWF6|a)xy60JV;u+RFqQLNd
 | |
| z40AK@!4$#b%)18+_hg&8d<}n};vZ1_Lv8YI22UJXkh|>u%+AU;A717v{KB>BNxQgz
 | |
| z`iV1eeSi-Fo;U*qh3}`VmP7S))IK;WvvcD6qDg{|_!^2fXSQSEBBKz*f=hNH$cfzs
 | |
| zUxHGIQi*b6_qdVS<e@;hmG`thIQbU~q%S%gL3y7S?pykm;$2{11>(lNWzcTp$ue;F
 | |
| zN%vHlJaoqPS49ig+7S~zXvX`^_@8Ec$czt|alIKIG2^3V{1xELT77uPX$-4!Wad0k
 | |
| z!ehkAspf0U8GB<+uaI>)+SKrF&B<368!d~mWqOjs!tbP;b#-&>)a6bN<!!pUr(X}0
 | |
| z*=+688)wEv?MzV{m$mP@Zofj*?lfvIHr2X-XaUZjH(ccyo;7yv#)AdNpK42gYCZmB
 | |
| zd!&uWvfrwXWtWx5@~%}K%b%_0u{>{8&-OUb#LbqSSoeUb?hdPIBx8qXIVwkvKb^9T
 | |
| z8%giZ$$`+0y#I8{i|3weI(H3FBX>T{)cNJX+=VuPW6^aXdR&<zN;V#xv4%qyP
 | |
| zGd{ToW_;mHOKYZaJcK1W?0}iZvdp5=Y`ff~<%=QXD^VIQ@*ga-@+)=50oR@H709(N
 | |
| z9u8f!6I-a??aqYV<45<JIbN|4`dd_zc{6hWYTUyM-Q|{lw9K17Hxz8nwK&t8N+Rux
 | |
| z@NE9{NzHY~bI?1yxXNK09}oSAgX9L=PUmutK9?@f<tv2~grV&z=p4HKAic>cdiMF%
 | |
| z&I6)zbH@iCvxrTj*w}9+NH4QR>|Jo-oAqp?mL1d!-%b^$H#-|<`n190z%aoF7sK(e
 | |
| zvx`~KT^V?16O_6#`8T$8l3RVV$)7!5m%iKYa;A^yd&=FdMp^1R%DmrE)@3gH2+CBx
 | |
| zNz3g2<(^x$tWRs6@_8^DhUWXM8}}7BcdUHJ3X5S+uO`~VVRyWrDmYxSdt|pw#LOQ-
 | |
| z5AU5kY~OQQcncO~Cb{=aaxdZ&JH-(n9{gnQFCTGvZDnG^sI!#|skW8kHi(NNeQU8c
 | |
| zSOBvq*Ad(&@n#k`s-+C>U4E%$4lIV1P@LYR!!1g|D)mR<t{r?5x&kMhZE3|Gv75Ji
 | |
| zevxY&yhGD8Q>lo`4<}4TBJe*PF%^kC<gnjVBvOXMGfYJy=sIjZsR-&1pKmG}BZ_bk
 | |
| zgC#KJ_O=@qw70jXHx(~xkKFJVP5sLW%aNax-gTrhzX(8QHK0vkZD3tse*}9AY$w=f
 | |
| zVEtfgz>b0aLmUSO7K4oin*eqt*i5iT!8U-s2KF{s9oQ1EU0|m~TX+a6z-EBegUttf
 | |
| z8tiXiJHb8%+Xwa~*eS4Ln8%C2CWCpv#JtW2TL$(t*xO)7!M+dECbr`1z`S5$8W(_x
 | |
| zO+5}a2=*UfcY@su_AuBJV9$fS4)!+K4zN$a4uO3GRseVBdteuWxxprYHG{Q*#le0C
 | |
| zwi;{=*gCLB!JY=&0QL&l8(^Ek-UZtOwioR0VBdh*U?G)&T?F<cuo+<WVDrIl1RDff
 | |
| z1@-{g6JRfbZ3O!p*bcA{!S;h41v?4$Etn1q%msEK*aWcW!KTC7$$-5Nb^vT2*l%IE
 | |
| zJ`eU1*y~_hz_x)M0{b7Z(_n>=$Xo<A7yON2XTTp1Rs~iMwh(LpY$e#vBF+3aITc%$
 | |
| z(k6FBQ&DYlvOAedq@o?*E$>AoPQ>EWQh2iUcmAp04s`8UPOUS4SrA;Hea}>KELS>;
 | |
| zFVu{jU+@GC^JZp9tF>Z<#dnGlg=fHTslq>j-!g^8vsA8dJ^YSWxDkHc3I{dJ_nE~r
 | |
| zI7#77_?@M2FZ}uyPQh=p!Yko7tgzUwS{1$veithIAp9;?_%RLl0On`mw_D+tHTCaU
 | |
| zZe$d1(aiJvu4a6r5&V&c-(;8%Xy*ABdrXnSr!@2Z5DP%PAG*bSKgL+h_v1W^`F@PE
 | |
| znD57>7W4h6u$b@1G>iFuTn9WwVV{M+Wg#~MPggi%TB65taf`a9kL8wI)bB~ha;q)s
 | |
| zccWvuhb`v$e8z&`nwbB~VxHf>TFmqNvBf;UM=a`hq+_`=7V~@;!(hfJd{KdU{wEfg
 | |
| z=YKlzxeC_-pQo_c<Ih*PyTE+EhJgP~;Z?vFD12W5esg1fqQHEAe-AuP;WvRVR9M7}
 | |
| z7b*N{fqA}<7MSPPVl~g#c~<lFy2Z_zZE%&~l?Jz4@qLPa7VRc0zFV1xtoWW~US(CE
 | |
| zH;Z<^72mha>w)i5c!L$+#muh&|61X#R(yXm@37*#oO!Pm-|Ng@TJasveA<fddFDbL
 | |
| z-}%fJ==lC;zEsCpfO)cxaRKwSI>rdhwK~QN%wZj42j&hP;|6B&{_artRvlvsX7NtH
 | |
| zP2qLGYZQJO_!kPlsAHVMEWUGXP*}tQuPMAs$5@7WzmD+?^B2HhEBvjFu@18n9@g&{
 | |
| z7(C8~aS*eJEh-eQv|)V2{1Y3-O3c^WFmB4vA8@zA3xRJ|xC?lN!XkFbDx3mdtMCfo
 | |
| zM-*OV!x)WuSj0C9KL|Xc@UMX1QTQnv#&^sw+A!8*{*w*kK4uX!?Nj(Y8^(jo|82wA
 | |
| zkomCK46O!#ZNs>cIcLKdlG$O$c#`>CJI0pG<#voSnSW@<n3H*m9pg{t>2{1onP=NE
 | |
| zE@iH>V~oliuw%T+EMmSZ6z;TR9Lv1ajxjBB(vI;h^G|_W6#ls#V_)WBJI2AxYwZ{l
 | |
| zGq1N}e9Zim9b;wY4R(y1nP0YJ49)z89ph={t#*v9ncuTxoXz}^9b<0h&+Qn0Gat5N
 | |
| zEYAGDc8trJPuVd>XLdL+US}?KVC>F(i38(!=E)9>>6xcFFt%r|c3`~EJO}t%h35e`
 | |
| zDZJQ$c>!~`19JrC0SD#_%qtw2J20mmm`5<*<-nYR`9TNf7tHG&m}@XU;lR9u`8N*C
 | |
| zL6~1~U_Qe9iUV^K=8X=_Q<%3oFlS-j;lTWbd9MR=8RjDn%xjpxa$t_b{H+7?9p)k@
 | |
| z=0409I57`mE_Y&1#5}=?`4Mx46LTfztDKlOF<<M%9E#cF#C(c*juUe$=AaYvEan@W
 | |
| zm~%0AIx+uZ?ssA?#{5$!=4H%3cVdple4i8ZHRg3r%-xtDcVZsL{97mHbj*KnVt&Uw
 | |
| z;>28!`7I~reazdPm;*BJabiBm{Hge-3x$sZhZMF!aCo!AV}aKwJh2dSOXf=8w-l}c
 | |
| z{zTyxkv}TD1bCd&;N`$m6~3(y^H%0Nfp1XwVc;Q!p9Q{C;g<_B=Vg8a_#uVgEyR47
 | |
| zc~>Fk#mt`-Vy?`5tPt~H<}-zuL+9tK2=i&?bBZvx&d*;F=Gn}b6k$%yTv3EMIP*0{
 | |
| zn2$4ifOjd}4E%S6+lw%FXYMJ&Jf3;52y=SopA}(#&pb@IKJ!}2^_d^1yr21Z^bLUd
 | |
| zHToXFyp_HUFz=x61k9g_`BC^3_?r~I0FsYw3jb(~`i%kRXAFLiV4e+JJjUQ=@M{%r
 | |
| zAA{ex^78|JOyLCh%M@NA{^eTX4ET>I{1EsrD*Ocan-u;X_`4MTBlw3D-e@FOn#e@9
 | |
| zjZyQ90<A{*PXi_5dPebwV~qT%1lsQd9<T7RQLIIKm&KOFI{PL^lf42WNiEV5O~$l{
 | |
| z_~??1Ezu&K(RjQg+PM^pVjY8`pl3jf+?eRqBHghl{KRk3BFWTJ@gpkY(IwEyU^13S
 | |
| z<vsZYClX5}`V(4YAexBwcJ>eUrNB@0Xpv|fyhJP+OJP6g%FdI^lj8i5E*xAW+4Ju)
 | |
| z;X-AX7^~z+Z*)mdC!D$`9*Ydc63L$aKIjz=$U`@et1EUR9@E+1B`;Fc;dS8nyYc!4
 | |
| z20P+Cop3;3G}SW{11H|ok%%UGgbS5J(F8bng?-W9SSs2PS4M^d^E9?be8FI(DbVE0
 | |
| zgRiwAoCi-R<O>=Y3VUj<2Pa=p9cXFthVt0xYxLCA_(DcWL({y5rcgL&?!q6KpD(EQ
 | |
| zd74$O@%a7K(8d^@C)_a47@xOcUW3=bkl*KPRtFFWw&k%l5Nz}q!=L91h8hA*%5{fp
 | |
| z#RVv%_4-<kGx@4p>XbTVURq#Uyq>VfR2!M2v}pDOJ&ndZcms`|2II_iz9wJL<Ck3P
 | |
| z_tYupl2{XHZ1&WIje_d7urJVDV-z$6YU+J8*N2oQ!NB~G&)}fXAE=S*QanNt@dQOo
 | |
| z6ljk410HXrIoOc*J^pas51DF0rn&}g^5of-S5J<1b;0A1jPx(XDsMGaT{F5W=&Q~5
 | |
| zCw%Tr_#snG{!BFiSUOyVKs6q(H^>#zr}9uZkS~|MS{^dhgiLjE&{Hc%4H_0MUC-31
 | |
| zYE?3o=!o?7rz$&^r(#G|(iO)j7aCG7G-SHakm*AG4c=C9ma5SM5EYSXSv7T371W3;
 | |
| zS6pZ)ro-P**OZ?d34E5CaL}*CJ5z~xq>}V1(y63Xq*s$plY^B9CaFP^8YGPdje&VS
 | |
| zKBe^OjIA~GbwZn4LiJoPeX5r}-mrneWOpRq-#?HquVF7=5|W-U>PlWA-9)ivfFrgO
 | |
| zSr-h*4uZZgNt0Yfu)DBwH*;DV<soz6iIKX%7u0SV>>Yspb7`zk7Bwx9;+u;^>K9ub
 | |
| zI#^H_3<uGnf>6Fmh}(qnjY8BaRPRTT#Ua*uf21bAUL^3v)(6#^pi<M=f?dHbnJ)uh
 | |
| zOLp}P!3(IX3*G|KU((+%udIcRXc4VQm8VR0&{9p3uV|7L0XfcA6xd9q_~adjeP6sd
 | |
| zuoJwMVr=Na{04aV(x+~PpD&ZM7E;!7NLk7_Z*&`YifMv*dU<lWnr}dU{(1U+bB)=Q
 | |
| zKAohYDPJsHqm)ZR?8r7=U%t6;sX4e@5@Ls+laSmgr_E5GY`J$%Ijf}dtdgrn?FTiD
 | |
| z&Dh^HRcE!m`mB;^XO);X?9SeSWToh}wgH|OS%20jr<+Cz!A%?@qiEN1`4oz)?}oq$
 | |
| zc1b8r4MpRkn8F1y_ieBP&ZUKcKHp{}FP+_o+hCIq>l&*AxWI#+raCSQd+PW(&i69E
 | |
| zAzV|h^$$dnxAdesX=^bs*4KsGK*$%a#vbQ;l%qY(>K?@#ZBsyQ6t(aQ3`gj}L7=Ax
 | |
| zfu0)#dU_DT0mBc<(8G+AJNpxfSZ8W<adK(TK;&Q4b@lhfjItWs%c_Gu&-Gdd+>oU*
 | |
| zLdMt_xvxLk(Vs}sV+yYbuLhy7Y$ly#N`%vSFW!HPgx*+hw6ha#x1<gTkh{=@kaB<<
 | |
| z!Pe5#6%#RXYB15K#rwNDB2k#@C6R<UAkr6$!iq@&W56o{lKue*c4P4#D2|NcQGdS|
 | |
| zSqS75uNI*mBt1%cf|UP6E@3Iae<KrmIq4+QDWp}T(@AHM&L;Je)|2{4n@Pi@t)vS{
 | |
| z7n638c9X_Q2S`(-%Scy{t|VPWx|;NE(tAnQlCC3NPx=_?lcdj(K1ccj=}V-qlD<wl
 | |
| zLb{1`E9pC=+evqj?k4@1bT8@Wqz6ckkRB!diu5GuX;RICs*^fNi%CmJOG(Q}%Sp$R
 | |
| zx=Al5okTi?w2E{(=`7OOq+Zf`Qa@=kX_&N?bRp?t(k{|&(m3e=X^M0i=?c=7q^n3*
 | |
| zlip2wFX>v+b)@S_A0vH|^cm9UNM9g*iS$*{*GWf6H<4~7eTQ^A=?>D}q#u*+CH<WA
 | |
| z0O=9ZqoiMvo+Ld@Dn0?o`%mg5Eha4?EhQ}@EhimM>L$IMbQ0+l(kjyFq_aq8lX^+(
 | |
| UN&TeFq+!xl(uJgpN%`;p0C3oGl>h($
 | |
| 
 | |
| diff --git a/amxmodx/JIT/amxexecn.obj b/amxmodx/JIT/amxexecn.obj
 | |
| index 70edf84ae043da56d677b8adaf47ae82f99bb890..059c2c833f384e96409edfd6902f17edd206ecf8
 | |
| GIT binary patch
 | |
| literal 12621
 | |
| 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
 | |
| SJW^wWsi8!27|B>!`u_k-)kQA=
 | |
| 
 | |
| diff --git a/amxmodx/JIT/amxjitsn-darwin.o b/amxmodx/JIT/amxjitsn-darwin.o
 | |
| new file mode 100644
 | |
| index 0000000000000000000000000000000000000000..0b21d6d5ec31a489100b53dde3c3e6097b2da816
 | |
| GIT binary patch
 | |
| literal 24434
 | |
| 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
 | |
| GDE|%fW>kCt
 | |
| 
 | |
| diff --git a/amxmodx/JIT/amxjitsn.o b/amxmodx/JIT/amxjitsn.o
 | |
| index 4b48453124d28e161a199b2a8e920c6d8f682a03..5f4b0e404c62d025d4b8752936943172735656a6
 | |
| GIT binary patch
 | |
| literal 25728
 | |
| zc$}S_3wV^p+5X?%Y?4i~2}wvG98?gfL=XWHK~M?Fk_2+z1PFpl4hsZxVt0dBX+`5{
 | |
| zT~hIY+G5oTZT&n{Y|*0FZ8QkBYCkF-z=|SL1pyTi2?*x@%slt(&L+E;|Lf!G?EU_p
 | |
| zxo6(fyz|b?8+)_8XqL%jGSokl5o3hNFlIm}$=}h2mGb{D|4c}6;57s{o)^kbg~r1d
 | |
| z+{*=qvBeznS)j?fhyHaAH;ie$_9y-gq@)!$j0-8zeq%{?n7F=F-c9(KU1Jzy`uDBx
 | |
| zB1#FGZF~h?qhzkfgyXYPn$XMF>ZEuq=bJTOm1Evqf8NLpf91$5|H6?&H;SOYz~-Nk
 | |
| z>igfAWI-{p;@9+v?>tdxqo{3XtPS=0-s~CfzeE_?cgD1Tadw{nauN0yXN)OMJ+a9z
 | |
| z%UqZJvCos5{f}wMqL^o>-;(HGooH!))!M$(;y1FpefeiO&wVha$>z@;YC1&WJ!5ih
 | |
| zzTBbyn}%h7@1HX=`}7jOCo$n4-b}w`TF5}#r?QXVaAd34?{&^=7j^k_EgR1f1b(2O
 | |
| zm&6_SO>6J6p4c=^-td0yb9(6C2>+d{=1xi%=8Ngd1xA}9o6l$SL&`i)n5&|gkN+sm
 | |
| z?aF+cFy9)*yq(SW3v=L)!ju4$C1iR`ntC#aiK}Xfr%L^n+r_2Ycu3U!u_%_(x9(-(
 | |
| z#YU+E%A}hg=x^5cr4_pDNA0@EeQmT0e{K|i%#Yfo$rvd7ZNl$~;@^EvyE<I|?}dM3
 | |
| z6#vF^p$mli-xdDd!XMk$?~(qk>RiPG73hiL&6nPnm3OT0j-j8I;`@4sgzAkk3HJiw
 | |
| zu8!h9b~adZOqy`}g!|5z$c^Cd((Mbj#TSKnOBC~cY!0@?&xHBYC}tO%gKaUD9>qY4
 | |
| zC9-)6o4GAsW{KPu`=8}THBw|*#QkXRHnoio)LA0mzt4UM`R}p}Z11*svjgjdIkB(#
 | |
| zMa{f~Y7e{=rPhugdLPBcBjVH!NAWL`e*bgg)O?mpg?|V&h`^xO$o@-oe}?qW5&ps`
 | |
| z{&Q!f|7orMn}q+yDE_x~f5xSO-wB_s@74aj^mSNn4L-$p=USe4UsU~WY~-ijEsMOm
 | |
| zKi#w|SSVnk+x=2Z-}>#Ueo^fuaiaalMSfO>gsR;t`tvb#ii<>ng;5H8d0G^>T%2LB
 | |
| zz^_Dsj=0Fp?<HB_mT%Ek+q;dn3j;6f2d<gdO0z#FL$to(flr0a9HIS7o3FdQ+f0?k
 | |
| z$49R08dOI6jA<Jc7#AP;0JGTEkm|ROq;}jkA~0V#Eq$F|b<5p;lTAC0rNdhjANlZh
 | |
| zNT1*2yXr}D1pXKw`BFaCt@mksF1w?gi-&hD&c#BuGf`|s($+C)ia5Ygf#KH3r#y;l
 | |
| z>++dQKgg_}5rJZ>b~0L9I(<rdcLkcG81}H?wZJ{XVCrl5t2Epfc+RR_2QB|0ncuPU
 | |
| ztS>IGJBr5>^b8PBp(#Q1|JKNlO1|`#za%cKto6X@YEfvaC^RV{@}rxscCa%}^{NfR
 | |
| zUoZSgef<Z%habJkI8kDQDDhyF5}Si1xPKTI=uC)wvUf<QKdxh?C2%l`r<Oef$RqZg
 | |
| zLEUa3m404I?Yrm6((C*7mK|cp*=Kq(M~e=GiWQ4u`B94XoRqsLx7?Cr5e0iP$5K47
 | |
| zQrMIG9?`Co>in{O<9ri*C$gsoo`~Yz#8sb9M^FFr4Kn@E75G=8)>t*~D(USRHANir
 | |
| zB{n{CpXK6?{6t^g#g=wCV6_I4lOnf<sV9RsRs;@-pTLz#+C9?tWeYd=><ZtZN#Efw
 | |
| zlOjLXZ+s`}IE+@r6?EifS^xiQxI@+uzH5tK@U$ps?OU)|7EI{ucbn1YVue+3r7dy=
 | |
| zHdVpxKT*L=Q7U-zgs5QZuAe-DSE5vKx2oW$j^JFB3JO&PxBf&0S0_iVz^W>^<0mS(
 | |
| zIZ6dPzeNRi{zL_xQ7X7YRnYzu6_`>YS728ato?}!W=5&NqAK{+PgKwzrGl>GsNkNT
 | |
| zs9<}P3T{;ubjSzxNJ`|+;aX`c_x*eK{^~$#zsRP^LDQk?z~xa)X+cwWwHP+llP^%)
 | |
| zFY<f#;5QgH3Fohbb8Qso%j`TLom++T#VF2o>^vl$2ZVEf6z39lewiLHr)nb=?PT(#
 | |
| zqvF(;3j(83BcJc^Z+NUdU0mMTsoI1`GoAffzPjORjk34*zvjIiSP-~BHS&n}FVf<B
 | |
| zFZ-RI%<&XCbuti0)jDj=dKX(?_wCZmM^YmXKCYE!)2@ImEwbTCX~^CcxFjv|!4Hy#
 | |
| zQ+ue6vM6<Y|CO)|-xXL9#qgdqB<u>@7saqe8Yb)t{3R{&>-_$&_$UT-&Io)ErIHqS
 | |
| z0^LyzC2ZIw-s~5q(+wM*9{B|`N*ZI;K&MQ2i_;@Nh^LRqo7>PS+zSHU^vL^uN7}MG
 | |
| z1M8z0o@c{5Vuzh#hk^9Sv&Fllai^R%8{BPdJT3}+9i_lLF3_$D1hV=^Zt~-f@l%`i
 | |
| zYIj!Pswk!eHXX=%^-NZvw!gMZ&2;c6_fB$Us^0^h0e=+ZwlL%R&cK!^#{0sI_jLyL
 | |
| zMKLyn86WHn#AQS_&ImI;)ET%mig93=@&3-h{3yn+j_AfmIs>;vF}@yVe6%z0R21VQ
 | |
| zVaCTg1G}RbJz>V*c8W$3n@RWDlBta_wMH>h7Pv~zQ*o0-ndzd;l+4H@^pqpqhHp6|
 | |
| ziiz7=n;CgZbMQ;yoDsM+O8$14KU3`S8L`KwG9ypK9+AGD;1bbZVg4YBxrNQLod?cl
 | |
| zMxOf5W|Jj8aQ=YE$2M9z3IbP0$+yb<+2U}PktMKXK;*;Oe^~D69(C;Nh57y{=D)Dn
 | |
| zFOPlefXK)GD>m8W^5H>I-GKp-?{59!&=jvHa|Xra3@>XSl^HNFa+&dAW%5*+B2i{`
 | |
| zlrm=z>17I38NVp=OHpQE-!gB=GVM3o3~!vj!RE6Ya*E$GY7#oLzlqYX42;|c@0O+i
 | |
| z#yc!RiLXV8ucDNge<-+&(34pv`o9wcqx65$DTZOwIu^!QgU`PV3$HCW{zHhoy7Sl<
 | |
| zeViZ4P{5xRx!2z&vwMbh<j0-b)4o5(_v+?#C!X?63+&6nF`n4u_gLtJ+ILv|DLEJ^
 | |
| z#y#zyB?gQ1+rGo<TTSD|*R4+%wteoC`C{C%kgrY0!Y&)_KWR|pamO^dfB!f+(LC#m
 | |
| z^BoFIj$%y>w+`@qDK7nTat9jpBHE?j_j&MU#bk>@;{p!|tI@aiKYxyEzws4O<F-MO
 | |
| zZ>C?`w(-rZRQW2m>2r1cEh@A?h5|{0BTuxa$?UzeEPG0<?ME$phmM>dxFU+TU(mZU
 | |
| z=&g(5{p`QWJ1gkDCyMv4LGO~FciZ5|{k&g#|3kMO#)HCG($`okjmr(+e>d#?h2ggw
 | |
| zW#bQ4_~%;N55&BBz-)bY&08__<n3)TL`AbKx4+{xA4%QQxhJ-fivNdd{&)A0xV>k^
 | |
| z)`CU8u_O169l0n_K7@8QyzkCV9^^ByQcWKo{$&4#NBiZ)){CtC*kwXy#x5q=D%$gP
 | |
| z&gw;7^X67L^lxweqLIVekJ@@#hxW8)RXECfS~L7*7XLD<f0fPOn(CjQ;Wtb_n0_>^
 | |
| z9%<#J2j8bX?}hatB6!5?d#k+M-;nA%o_*R^JgnMZXz>+i`SuFR@YySURr9N}Z?v{=
 | |
| zA9?Mf>zrL%MJIdY&8=c&e`Nc#71o=->)I;Dct`#!;0v+n*)()&gJt#MuB~F6c;vBZ
 | |
| zIabei({e2C_>Qqtrk->k>Y7$=^&FU1E+bb`<ozz+dlO#!^{V)UW8PJ#&UKNjICU=J
 | |
| z9dC^3%Yv?T>*T5qJ<YyB@>!zO`iibc$E5g<=>yAOJ#0Sl`|9>jV@_<M;}hY59n<3{
 | |
| zbe{NwH+E2G`<@;VC8O{??d)prHde<@J#@3FOD;AaKKEl!5ABaoJUfTKA}pUvXOaD*
 | |
| zuY9PlZJ2+B#Xrc`mgQTN(NUe{D68tJqKjd>u9_<9cl+PT?$62cmk;%e6{kKWO`@bd
 | |
| zqpD|j`*v$JWw!sKh>G1MilI!`qH=$+(b4#}_4a>w6Q|j`y|L}btOvfYj%hmE^WUwa
 | |
| zp>`RO|MiH}gKhdZd8lC&P)eh8KBYaBKA;A;igW>`wUjnedWq6@N?%YKP7Sh((%kd7
 | |
| z4pA4rA7A69vhNC}z&J|RQaVa$D0Rz4lvY!^i+D4oXJ~s5B?~o>iIf&o>Y(&8r7tMG
 | |
| zMpye=N*7Y2sGyWV+tVrCO54v;Iv~C`Q#&0`sfN=1l%AnhHjWxsDWz6Q>nLrZw1-l1
 | |
| zf?-@msfE(-D7{YUFr{JC1<a$=PU$&H?@}5<x7JRnol++y6Lq{ZDYaADPAQhUm|2wW
 | |
| zr1S=*1e!z6rsSve7Nz5q2GGoT8YLH{d&Df7(r1+7Xc{?&QaL3rrN=0}Md=u&6q;2{
 | |
| zpj1K0L+JrZTPf|ObcWK;XmU|SX(gqHD7``HG^O)tpq@*qk<$A9;u|boLrSSMl$}bc
 | |
| zmXe>+7E1dlrP0VOmr@<2c1oKm?W5E~=>i(>Ttlgm(yu9Pqx3bU5%fl%M`=B!)0B2n
 | |
| z%Az;urIcn;s;1OPse{sIl#WswNUxZgl-ekXx6%$udnp~IltsO29;H@Fk5GD@(!?RX
 | |
| z8tgc)Yn9g+S6}0;F~)h8dAx3KO)YKR*u)BUyBgsXThblzpZ>QW7UOu2o)`X?A%e|D
 | |
| zN?7E0Pev~uY=r)1L+}WL|L#HYCG>04SPZ{XHJ(bp85&<rzgZgR((h1>#prLC#>MnI
 | |
| zQsW9k{1r=xtLb;F#&z^NUE?PDEz;OazhxS)q2Ef4#e(R3jqj%4g&MD?-^Cg~PQUdU
 | |
| zKTW^OH2y37HfsDD{kCfSwxRz!-t$2(-e-hg|AR*8Z*T;EYw+LPC>A$dzdu&G<%t@n
 | |
| znZoba08{w=8e$5+Ul*Ff?^m`d{C<r$h2O8KrtteU(-eNcicR77YcBD4jTf5K-zqUL
 | |
| zC7z=3%CIJUyr<oyxB25e>rDFJ3mxxy%%uNa(D9zlrts_ecN70Dk>Y=w!msZEQ~32g
 | |
| zVG6&#F=qYmgy{J(hhOgz#7P=YG>2dR8RqcoUrL;&@pZ)M8aEU7*Z5|0`2Ff2&eV7V
 | |
| z@c@mVH1pq7DHhWS{r>)wc#y_>i3e+Zh<J#`-RAJ?9Ul{ZeY0Z1uUB?V`1wu~H)lqO
 | |
| z=LlXC;uXYsLBGkknYc~kdx-DQcmwgh8b3|^g2n;je`@@X7=E8CevkMEjrYg!yI%28
 | |
| z;?WwPis5m9;#fNQDvi@EJVsDFOuXMUzQn@g1;tko|54)^79L9|o=yC*#tz~yG<I5e
 | |
| zJfiq|;{N6kue9)3Me(h~xf*v^cpRg61F=WrCoMe2QT!tDMvc2HJnm7vi+H!jA6a-z
 | |
| zq*(mXNsq=SEj(UQY@&yAjK;QD9!n|CBCghWL@bZ96kkewr^Z*t@)%6<EaEL1m&fw>
 | |
| zEO<SMKh?M~md9?2e@>iY3Gtm6$0@#-_%e-u6U$>f#hZxhG~P_ysBwUJoyPwp{*A`(
 | |
| z#bUu7{AnzYD-|CjKCE$fERQ)Ai}B^4*bw)N<MF8C^N0&IzBrD@s*0x&->9)Yj>oTx
 | |
| zi-~`yab+BjZ53Zf{I14J<9OVw*iCGT3-RhW9uq6}(e@aP*JHe__zBuxsPUgLmR7ut
 | |
| zwmUT5iE*~#U9|nO#vju5-!wiz+n;KDl(s+9_&eH;j}P&W#EBZmiSfL~skA*w<1E^q
 | |
| zuknSny-?$eX?u;vqU^02Pp9oaYCJ2R=MaiZX?wTE)wKP-#x=BkM&s*g`<%ue+8%BV
 | |
| z@h^xk()e!7R}?=;T&(f$;(0Ek_*vp+jm50GRpU<Ldo<n|&vPKf;#{87_~Uq<A1VG)
 | |
| zoUg_w<9Y6+IEJ=+G)|@M*n|)d#XL*#&xj{!e5sY^V2Y>r;ymJdjptZ-zNUC?FJ4Ui
 | |
| zpvDbWp4%y2*^6%>?$p?C<$0ju2Z;}A{J53ph>HJ*I5jcE&s%x^s91cw%GbD)xLo76
 | |
| ztUT9L{4ViIjsIiid8pz8#7}5^$jWn6#orMBOXE{kp1&#<_bNFl#Bp>k12j%e;JL2i
 | |
| z!NgZ;JR*VT!HUNa|5D?L2|Pzud}RX9mle+>KCN*fvB?(VGO<66=O*wxTk#^|n>4OV
 | |
| z;5oSB>xo~{*qy-hbHz6ipVPQKf#>du{lr&md|v|3>lKSXrn*_<jR`#GSNya%Uyc8q
 | |
| z!0Q2uUlHe<5@ONT5;XpoIA4w5PvCU~#rwtiYAo8KU*m7Z`D%P7f!7}to2V@u(KtSl
 | |
| z*CrIF5R1Q9P%Qq0Yk<Z>i7(f9L?W+gC>~E-tMT+iUhhy`NW50#szhE3QCv&>qQ=dM
 | |
| zyiTI{CgS}X-<im3D2nePHm8R8!9-qPQT!<JD2;!g$ZIc(pC_KJ@hgeEE~9umajV8}
 | |
| zCi0q%;@!meYy4p%ujeTKT>eR1h>s`oT94vxaep-aF_G7S6vxuDV@nHhQWCEbDHhN2
 | |
| zB^nP);`JlN7ZI0fd`S|oEh)Z?c!kDOl6c)o@ioNvX)OAJ2Q)4s{)@&HNxWXAxSIF_
 | |
| zjh#unmZi9XxLad)60dV9zKM8vdWc0|^D~V*h>JCTFp1a46hA@i)%e*YUOQ7PK7Xv&
 | |
| zczY7Bt0{hqIH2+FBwlk<ypQ;6jXzJ~^*F`f5@+=f@wp^kt5cjnebZGMXV`chPw`;l
 | |
| zT8%HT@fx4vpAq{t9&6+EKgE-Xw`e@g#%qI$MPIv5;{qG68!9d%j>`z~JR7emD!z{R
 | |
| zQjP0vyxyp|iFm%oZ8lzuRQwC#TQt7S#_N=dJBXjsc)g9+Fctrnc(=xzY`ngycr&pj
 | |
| zGsN3$y!NShC-D@G-?8z!sN#L%cs2gQ#%rdEza_p^<FhtiPgNX4?}Dc^PDtjpR>kSW
 | |
| zA80%{nb%<zk03s)@t9;@qg6ba`1}DO7XPi*1scyGzFOm|WM11<ypVW_#<j`3?yLBE
 | |
| z;`=rBB=efE;?=}kHNGvG*NYXeB|f0>{mHzRtat<QfPo=?BAM5j6+cBhTjS@Gc@0{z
 | |
| z_|*4Hjm5k8ZjE>K;t!K~{aW!s;#V|2mdxwgicb@NrLl$HohLL-PT{q1#Y0kfO<eJa
 | |
| z6kZ=!JSK(L$`xOp!t3UWuSwxGbj5STHwBI7rttc@;>E<<G;So`r*T^fuf;1~lfvur
 | |
| ziq{e+4GQr?DZFN{cq8#-jsKLw>-mabCT`I9^%P#~S1iUN4`}>OFaB5@zs84C_#1)Z
 | |
| z6Dj<?K=IiW{&t`^fyM$!gF~FzkH0G@zL59|jmP!lZw`vZSf)<n{C@mBLUE<|cBAp)
 | |
| ze*CRMaU=0Ijc@43-!T;5L3~i-2Z;L*3Gq|JBQ$=UI9uaA{q%1lCgZ=v<r*I+c56J4
 | |
| z#tyG(Jev4l8qXwtPh&?afA3R#Epg1y5W9#IHFl@+w?f73!~-?HCzZb=Di&j*OErF$
 | |
| zc(TTw#Q7TUNagR5iuV#%Yy3$nf0tA&#!kyLK1JN7u_=weWhzci<8PXZ2c_}%O~s>#
 | |
| zU(|R^8h`s#d_@|62UTn*{+GsLthGmDC-FXwm#6VJRK=@^2b`x}zcl{78oYjK{H;~-
 | |
| zGim(YRq@NjbsGPJxJlzvp~Z4Tu0*Hn>(6E*C0$>CHX8%d_4RkNF)UqQk2V|G#KSb6
 | |
| zlCFQxFdO;l`u7a8F)v;Jo?$kYr0d@^%tl+f{yoENtV!3uXP6CNy8gY&Y}}WwEr%0t
 | |
| zNY~fD&Bi9;0*#+d*S~L>jjieW_bs#0m9Br^G8?<n_3v9|<HL0Q`<B_bsK5T-YnzP)
 | |
| z+J97?DxQ~Ke3qWi)k8v@kQ&Z=#CP8FLi|N9{%?Bdds-^(@0;|{_cFoaV@IpT{d=)d
 | |
| z)3j=NgV)nMuEx_O!09oZwKX1>;S?W9J+7sOv#zGGv9_k}dJ4H}+eDzD)o?CxHyO@l
 | |
| zt{VDjyuomKyw{5#k<nPQlqzZSxZK|0mi*%Cbh+IvZo}DH<F09{YiVot(zd(7aMm=^
 | |
| zmfPiVdAT0ml$CpK^oadC>qWG&rOxST_&FV1T}!=-H{~%0H>pg$I0be!)hunOqa$i)
 | |
| zbU9bL+@6M(X4)AQ2*NUTxb?0j!J6f{i#$F(KCNYZ+O2K1jSY2Fpt;7|u+l{vjSaQ#
 | |
| z8h3-(q|B8yZrb1zZ?0)_d24DLwIkyL%PF4kv{zI(OG-=ZL9ov+tPDbq!(p!op`$V<
 | |
| zcMfd?12apjO7a{*EVdWt<mTEPp-5rL+`<w^Wkq-uMWyqCfdYF@na;U6MMX2o6FRz_
 | |
| z%EGy!<I5|YTbLI@N0HrLrXN6QMRgEol~xqzgbshMy~0sgTB4nI<t%Xm+R^6O=ZE%W
 | |
| zpIMc!<!RTYiY`lDPGwG5u5-5LD9fqHDGptSywc*F!qA@c?Ire#oFd7yigNO`eM!tM
 | |
| zEiTK+tqcWbR#)0f%W^}3lG5A)d+r>EW~nHh=dg#k!d_IGYtZxLbhkB&Lvw1|vf(au
 | |
| zH9PBDnq3ArX&Gy5X=ycXa5s2e+|czr&5QQOb`Hth(lTdJX-=NAtfJ6ZPPx?B#G|Fc
 | |
| zIYpH!EFLx$cIbXjSP6$-#uHX5SOV_6nF!U_Qb=t$sY4Oj74}(bFK*Y8;66kcdk|q&
 | |
| zzX&^YzbCAOLoX9Ns@zg)>L^s#((Li7GMvFhI0Gee^71NBpr*dwt^6{~b{U4-QCX_o
 | |
| z9&by~EyL`VVcqS}{hqKA4!w*gtW>ZB+!Zqsa*GQ(q1KRF%`M&uwKsZQp`3}xnG_zL
 | |
| zR4c0q-2snw2OOb0;L+}YL%#!_ush(;?|>)l4ipvU%@?<&p?;M@=S&2g@+c@Gt}ewW
 | |
| zBrdKNlvae<ol{hpU!rbMW5d$s;2n|~xJ5EU9YJnoMUmKJo!8yy9B;5r2u3C#GBFsL
 | |
| zh{$EZ$YqF33PvU&a(OUvIU<vTk;(GfVD}zW?Fm+-wmiX#)D|n9LyKEJz{RC=?KtPA
 | |
| zmX$7b$}-GnEW<eA`MCx86k1icY^lJqDn|hdx3+nfslqbMg=H9pWw=83bE^i(-bLAR
 | |
| zRkSX+;dC|Et9%4io|fZusGujf5zH5f_ukSPJXm>yD-jGn7~-WQ+O!yhP(Zx6i0Ose
 | |
| z3Xww;SwTgqJX$yPpM({5QJ3501(Yx~%dUZ5ccNDiC0U%VDJnxgbuuQ8Yj#z!*yHlH
 | |
| zCV5q6Qx7k7fnBuc<v(}H#yq=ZfuQD}OR$#<aIN4Rre<J~cvBNMx;!2P%9%MozoJrB
 | |
| zywvUGn)5k-De@hv0#C382deO>IvlDJPp}pTs_~#6M}cgy%NiLfBuJ|Rq_CjKnX9^l
 | |
| zWsP+IRgWMu&>_eSb<+wev=VN;M1@wut(7RQl1J0j#)m`04T1FyD;26z6jFt%xKJAk
 | |
| zRdJy<6sigpYSRi)kHh`Dthh?_J)X8&fZ9o0ZO~pK?c8ij#bs%c7iGTOUd2Eo8UpH=
 | |
| zCD_G-+3b?fB@M*HNRIlqW*T*>1CS3D9fGq?ox6;Pv*!>stx{Y+YF;hs^2snCq7360
 | |
| zMHr!=%b`57fjC0_sYmNh9iiUTqjjdTop2-Jri+$~cBfh$w>h*pv^Uk-xUH#{hJwNN
 | |
| zisq_Xt7@#lwu+{zTB^M~*qU4`LXAm=`RHXBM_*W?%ni*!uL!bL1Vc^^D2D_29u-iv
 | |
| z$U5@us^WTAuwoJ9ibW6=Q;-A7;XuAe1yn7ni+6DMF7tDX%LLXnwMv{-D7z|}#>iG)
 | |
| zz<XOJcEv&s&$+UuvCXBJhhCT@EO*w@T&te1do{hp%ek%HNU!h}vQy_xEnl1@@7T_-
 | |
| z^AbDf7SAj#;-NrJNxoh6jkqYHe+)LPd4-j^1+o|QU~o(OxuL;Zw~RYkhrMzpS2Zt3
 | |
| zRp7ayMynu4y$obndvReLAzmnIAW>3UCZE4n?IiL-Cs~i9uguAp7pB6VGe@2vjb|&J
 | |
| z+=(oqA+6Vmo`f^FJK+rUDV)Jw2xp)p;SBChI0KyuXH=F3<KC7~xI#{YRE}HRr*Ilq
 | |
| z*Wz}&>b$+8p6eUvtrsy%O$T@fx$@1$`E~sIq8^DxQF(Ia>{>-laCw85r^P{{mt>o}
 | |
| znT}Mx1nKqGI}mDdPGr#=o8Qm~7&O_(J3F}5*m8s6%q^HxoKulsSb{gZ$Q3W~UYYVO
 | |
| zFY=mPO*M6OqTdkn$ii9G;`UQ_;&j!lGFH;hggzPdBBP!%XvXDKFBAFRSkh2mPxEoP
 | |
| zy|ksJSvln30Ne6m#I}4A#d8>}OFoR)#semf5|5ZT0iGz!E?MNzt{UoH!9$U4Go0ui
 | |
| zH+vhJ+j^O(0jvGU_Np@Z$)W)gKTiB`g;0)Cmb$#fHLG%I^5~GO8oihXVRB|k)6u5Z
 | |
| zhDH|%%M_SbHn%kyaw;d@ee~{XSaKsZb~mnj2<d9qExX>?RO4RS(9Cx{#B!7-kS~LL
 | |
| zLs1J;jRc##Az$`lL-vDWL-v4TL-u`Q1J_yFxz`G9(qk?yZdc9q9OnLJDKGMfhP{*@
 | |
| z5_+H2xLqEvd<I%t#mP4|(CjeyB=m~eOR$J2mP<`B{Qs9IbQJUw=tSrg=q#uMS_5r?
 | |
| z`k{M-nhj$g^lQXpP0WeVp(gAHd<C=+aVNMQx)O08cmw!<pf5tVA-@y)4&wWv-ynVx
 | |
| z8gJ(KFf;Qg=oN^UfvccP5nlto9r_UBo53$YcOw1~_*3W!#H}&R$<Pa8I6fIX4O)zN
 | |
| zJ-7jS6XN%RAA~-McmUi5eGl;?;BTO23&%4p%ol+#huRUJ2X;Z-h~Eaj54r*IXTjT`
 | |
| zI}m>px)1U1!9PHgV>$k_SmrU%s}P?Hz82bqcsqDK_z%$M5q}Z-2IBvLeunr-ur&_H
 | |
| z0lgrO<5R&`L(33f4sL<og7_ogKY_cz?|~14e*lZW`xGqxzEkj(;39A>*bBZ5?1OGV
 | |
| z`~~n%@JHaUz~b*41!r2BF9qj-%fPkZ72tO8z2J@D7r;BgAAvuGo<KY;fq4LQbOOh7
 | |
| zz_Xz95%+*sLGMQV3Gf#14)7lEG4QugOCraILPsWYJR3R<aR+oh;>*Fefgc2K2EPX0
 | |
| z1$`fS82UAQrX=h?iFq72AG!d#82N7SUC>9MPauB__%-Nz(ElL+7&ykpIsiJ<hW&%{
 | |
| zp!1-MklzBn9r`fzQRHt1?||-weuDht;P_<L!O&sJoIep<0KFDkgM1Iz2Ym$k1oF3l
 | |
| z{|Vg({S5gh!AU8s=R-%PaQ<X)5!4BFA^!$&2lR31ACSKl{5JR#@V8(~Kjwk`(9Xcu
 | |
| zfb*bp5pMuDL)RdFKlowjQ;7c!{2KIK#1DeM2gj!}4@zae2s#$=tHH(43dHNdZQwh>
 | |
| zzlJ`J_@BW$pl>7o3HU3p7;p&gm&QCCJQ17+c7R=AFZd4ddhj2?FM;0#e+WJb{t+CL
 | |
| z&YGFd@r%KiLURzG3tk4k0qg^B06z}>GvaT7{|)^N@iSmsf94DNGfx2Lf#-soz&C>*
 | |
| z1V0J>JNVz=L*O&uv<&7E8O&FLi@<f@Ht<^Tqu>|7JHelVKZkZBo|(x!7&<l+=L4P#
 | |
| zt_QCK-w9p|eH8I6;Fq9pBK|S>8?g9~*aW8!U>*jZ2+jo;Ko=n13T}hmiTH28&w&39
 | |
| z-VS{q@h_n#5buU24&?ax(2EA*dO)v6yaIYH;)|hf#P5av8u3S=n-TAVzKQrQ=mEq}
 | |
| zLeC&>%VHh@oeV98E`~N`p}m101^*TN0rV5-G357vvj#C=JcxM~cn)+C;w!;-fgc9{
 | |
| z7Wy3GuR-62?uQ<OuLnG6F!Pwf%y#fR@CtA{__yHaz&pTuzypV{UN(f|cJN~8QfM=D
 | |
| z80I%4p`)Q=q2r;Gpi`jJp);U)&;n=?v<zAaoey0IZH0QFtDvi)YoND5?}Dy{u7f@R
 | |
| zeHi)(^l|7W=#$WApqrsvpj)A@Ks%w^p>IIng6@L83sv*RkD&XZ2cd_cN1@+9zk_x|
 | |
| z&q58%?<`O&)CNt3W<ay_c`4~I=t$^j=ve4@=p^VA=yd1|XdbixS_CbFRzl}P7eW{J
 | |
| zn*T0?HbPsWUg#?5YUmp1ZP2@*YoY6)4?rJ=J_3Clx(WIu^cm=8=oaW!=qtVE-`k;Y
 | |
| zK;MGyg1!sg1N{iPA9@ga2znH%=JDS_yP;>H;!lF){fAniHfSm|1DXXL3RUX?BcY?A
 | |
| zW1-`rlb}<e)1fn<dC&rA5mc=!R6^%N7eW_9>!Hh_jnG!87rF|%8miVOZiC(hT?<_Y
 | |
| ZeE|9}^bzRe&`r=Mq0d0oI*0oA{{YwJoOJ*I
 | |
| 
 | |
| diff --git a/amxmodx/JIT/amxjitsn.obj b/amxmodx/JIT/amxjitsn.obj
 | |
| index 24682e0009dcb7981401fd089f48988f6f5bdd99..4981755744847fb0e5389254cde73c5001a0fe62
 | |
| GIT binary patch
 | |
| literal 26143
 | |
| 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
 | |
| 
 | |
| diff --git a/amxmodx/JIT/helpers-darwin-x86.o b/amxmodx/JIT/helpers-darwin-x86.o
 | |
| new file mode 100644
 | |
| index 0000000000000000000000000000000000000000..384475097d776857738e7e7993025b7fbbc87ab6
 | |
| GIT binary patch
 | |
| literal 365
 | |
| zc$_=;>+L^w1_lOZAZ7$&CLo@|00AI=4Fh)I0K^-hG&>YCLgnJ)OHwOJ5NhM&LtG<5
 | |
| zu<J(wEC?pZ9TGtN0V=EjG~5?Rhju;<-T_j;zo_{KV~zF>Mlf5o0qB5(FW8%Zu$G87
 | |
| z|6nN*I{1pe`4MCDFNP9!u$tFQh6kc!4=Vwgd_cZ6khXxbZGp5P$QVY1zhP{K#N3LC
 | |
| ec;|xB;L?JE{Gt+uctQetX^ELRn4+n9DGUJRIzk@+
 | |
| 
 | |
| diff --git a/amxmodx/JIT/helpers-x86.o b/amxmodx/JIT/helpers-x86.o
 | |
| index 1727aba55a4d0134eb1f0e5ce91cfe50d45d4300..1d7e9590dfd2a57fb6712cff0ae3340c9fdf2561
 | |
| GIT binary patch
 | |
| literal 592
 | |
| zc$}+u^>JflWMqH=Mh0dE1doBi0ZN;INeu>81||k_03#H$LHPoV2(!U_D9sMU%t+z^
 | |
| zKy`{}=74}85F@*!0Vq)bq*;KN6-tB5lteS{15jNo7V}^rwDW234iJNXQS%SR8tom7
 | |
| zV76)l&|wE(us8o;EfH`2!BQf0@D+daBgW=m3?=MfHLsZr4@AcvX3#51ttes8E6yk`
 | |
| zDJn@!0<tP|AvA<fL^#0!3&Y3%$a0{VF#^)oNUA-6q%9I(5J|lNkgtfwXUIs+DM&3U
 | |
| t)~&EG(@QMQWk}4esEBtiC=D(xD9A4=VTdOrpqG}InS&{snwJ8y0{~9^O(*~W
 | |
| 
 | |
| diff --git a/amxmodx/JIT/helpers-x86.obj b/amxmodx/JIT/helpers-x86.obj
 | |
| index d9268b7f526d8d3a53c2d1682129c26f5fef3af6..752205846eeb665bcb804a126bb7cc6eabd15a86
 | |
| GIT binary patch
 | |
| literal 384
 | |
| zc%1WLWMo+KTOhE8fq{XG0Rr?&QY%Ur5WoS5ZGgB2NlbwuAR)B#Y48pZhksG?55^kp
 | |
| z9gJYMY6Ck1!@(Eq%|BR6#G8Mxln5Ps#ozphvH2H62|HNLYbL`3(Xog1(lT>Wq2~Sj
 | |
| z&%lt*n30-OkXlr%TVY|Qmsp&O<`$4vW=01FbfA}*RGgnv3Rd<XXbv-2lm$r_6PP7}
 | |
| zA)*Sz)-aR7A|ReET*M(QHL*m`z<?2MasZH(m|Ia1?_5wCTv||&UsS>nPe?#7Eip3(
 | |
| KQ#3U%g#iFvQ&CL-
 | |
| 
 | |
| diff --git a/amxmodx/JIT/natives-darwin-x86.o b/amxmodx/JIT/natives-darwin-x86.o
 | |
| new file mode 100644
 | |
| index 0000000000000000000000000000000000000000..9ad779d29ebf8ac2a2b709718302802ccbd40bbd
 | |
| GIT binary patch
 | |
| literal 708
 | |
| zc$_=;>+L^w1_lOZAZ7$&CLq4S00AKW0S4?K8Hm3?X?7@Pg386mm!wvdAk@akhqy+B
 | |
| zpz4o@>IZ=cMu`0kEXaCN5=#=1`7Vwjj;Q)U%7YnkI1uU{2_P;2s^NhO905|Holm=6
 | |
| zITnMA*a6ZWdl)DZ9@bsUvCkUF-6;hm{(N2n<ToE@>2~GmWRHtSDBMvIW+L>zl;?jb
 | |
| zN5FqkkRi=Scpx%TU^QU7eIVAcNJGMr1sXmqwLqE=C;+l(B9v_hq?bY2p&&<r*h~;V
 | |
| zW&trjRNNEF2I=L8vOz!x$`%5JC6an;B=w9)>gABsGbH9#RK&Yf<|TUOWtK3+qjKRq
 | |
| z-^A=xBuOwA&T}ixOGc6ebKyMa{FKz<%qnEvScE`&f=d#MkX_)LUzX~hmR6ivf~L?l
 | |
| TFNML~$KT1(C*IvL#FYU6FY|?U
 | |
| 
 | |
| diff --git a/amxmodx/JIT/natives-x86.o b/amxmodx/JIT/natives-x86.o
 | |
| index 45cc2aeda2e8fc664a4559c3ae387899da7bbb62..b8f58393cb700a956067ffb864952febbaa976fe
 | |
| GIT binary patch
 | |
| literal 1040
 | |
| zc$}+u^>JflWMqH=Mh0dE1doBi0ZN;INeu>epgcK%5sKNM`~)B;9!XvRO0z@N!E8AI
 | |
| z<gg&AgRyy$)PTSRpgKb|`#?Y(h?$V>VS-4q0x1rtc_6#x(aaM7a;{)8PaTLkk;Fd$
 | |
| z)k#3jVT95gNb;ebPrF??7K4~OK=QGNfg<5y-L)M1tbyE}Qb6L*=OsXX^Kq7LSDsGx
 | |
| zxOjxZ9Tj0FLjOy7{+DtD{1*io(tLymA|nM>!+-(wN>VFI81zySOA;CMiZhB!ib@ib
 | |
| zfUL?~2o2>IrRG3X5&+0)fra7Ye`Gn-lmg;2F=PN~Yb4z@K++D0KM@orNc<BhCNMDw
 | |
| zBJl)(^73eWJs>TF#J54?dn4Ho;zy$K7bDpZ;%`OcGvp<fWR|5C>sDBp=_MBDG9>0!
 | |
| zRK&Yf<|TUOWtK3+qjKRq-^A=xBuOwA&T}ixOGc8!!VNA-EJ8NiH@_^^KP{~|wFFI}
 | |
| wYhDV%T<83h)Z)x4WQ*ZK?mqrbjz013jv=lnAq>u6z%(ljqJeqA2g-*509r1PT>t<8
 | |
| 
 | |
| diff --git a/amxmodx/JIT/natives-x86.obj b/amxmodx/JIT/natives-x86.obj
 | |
| index 67b0b0bb6c8ab4c27eb8f96b6aafcce70e33c677..60855c6ab7206c8235be58de78974fbd33623d17
 | |
| GIT binary patch
 | |
| literal 788
 | |
| zc%1WLWMbI*TOjZ$0|SEy0|e-mq*jzLAV542rvUL`D4!XK6&L~%^imQ_5|Pxg0P#a0
 | |
| zeu^aKz+iA7wDW1VE5~9GcLyVoh&>Dx2@mV8<=AHp<nELL5`R7~0rH!Vvvj-ibh5|A
 | |
| zBNXna2s07-U&`~plq2B3D9DiJBRmipDX<!LsMTx?(m;|4%<_SYfjyL#nUe~2(7*o-
 | |
| z4C#z{i6xn3sl~b#7G`>h#kpvn2HDNb7!UO-0w8;s39N>N0UhWiCKc!Bl!A@={~u-o
 | |
| zOdTUsCj)~JhKM3m6d|IIAz}x_)+i!A7$VU~A`sj2p*j&FEkGQKA~Fq01Y*t#43XW)
 | |
| zerIq<OHC}%GcaI;`}8=Fm6%&m5${r&m*|<7S;7#H%7ycM6SGs1B*9!b&#g2s8A%cg
 | |
| zH@GCR2-$Go{IXR4w6x;X5;TRbc_|2Uo%2&ti!-Z`ErtuZ`}jLK`oz0ChPW~S03E%Q
 | |
| A`~Uy|
 | |
| 
 | |
| diff --git a/amxmodx/Makefile b/amxmodx/Makefile
 | |
| --- a/amxmodx/Makefile
 | |
| +++ b/amxmodx/Makefile
 | |
| @@ -1,120 +1,147 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../metamod/metamod
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -OPT_FLAGS = -O2 -fno-strict-aliasing -funroll-loops -s -fomit-frame-pointer -pipe -DNDEBUG
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -NAME = amxmodx
 | |
| -
 | |
| -BIN_SUFFIX_32 = mm_i386.so
 | |
| -BIN_SUFFIX_64 = mm_amd64.so
 | |
| +PROJECT = amxmodx
 | |
|  
 | |
|  OBJECTS = meta_api.cpp CFile.cpp CVault.cpp vault.cpp float.cpp file.cpp modules.cpp \
 | |
| -	CMisc.cpp CTask.cpp string.cpp amxmodx.cpp CEvent.cpp CCmd.cpp CLogEvent.cpp \
 | |
| -	srvcmd.cpp strptime.cpp amxcore.cpp amxtime.cpp power.cpp amxxlog.cpp fakemeta.cpp \
 | |
| -	amxxfile.cpp CLang.cpp md5.cpp emsg.cpp CForward.cpp CPlugin.cpp CModule.cpp \
 | |
| -	CMenu.cpp util.cpp amx.cpp amxdbg.cpp natives.cpp newmenus.cpp debugger.cpp \
 | |
| -	optimizer.cpp format.cpp messages.cpp libraries.cpp vector.cpp sorting.cpp \
 | |
| -	amxmod_compat.cpp nongpl_matches.cpp CFlagManager.cpp datastructs.cpp \
 | |
| -	trie_natives.cpp
 | |
| +	  CMisc.cpp CTask.cpp string.cpp amxmodx.cpp CEvent.cpp CCmd.cpp CLogEvent.cpp \
 | |
| +	  srvcmd.cpp strptime.cpp amxcore.cpp amxtime.cpp power.cpp amxxlog.cpp fakemeta.cpp \
 | |
| +	  amxxfile.cpp CLang.cpp md5.cpp emsg.cpp CForward.cpp CPlugin.cpp CModule.cpp \
 | |
| +	  CMenu.cpp util.cpp amx.cpp amxdbg.cpp natives.cpp newmenus.cpp debugger.cpp \
 | |
| +	  optimizer.cpp format.cpp messages.cpp libraries.cpp vector.cpp sorting.cpp \
 | |
| +	  amxmod_compat.cpp nongpl_matches.cpp CFlagManager.cpp datastructs.cpp \
 | |
| +	  trie_natives.cpp
 | |
|  
 | |
| -LINK = -lgcc -static-libgcc
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -Lzlib -I$(HLSDK)/common
 | |
| +C_OPT_FLAGS = -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +LINK = -Lzlib
 | |
|  
 | |
| -ifeq "$(GCC_VERSION)" "4"
 | |
| -	OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +	  -I$(MM_ROOT)
 | |
| +
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
| +
 | |
| +OS := $(shell uname -s)
 | |
| +
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	OBJECTS += JIT/amxexecn-darwin.o JIT/amxjitsn-darwin.o JIT/natives-darwin-x86.o \
 | |
| +		   JIT/helpers-darwin-x86.o
 | |
| +
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _mm
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 -Wl,-read_only_relocs,suppress -lz-darwin
 | |
| +else
 | |
| +	OBJECTS += JIT/amxexecn.o JIT/amxjitsn.o JIT/natives-x86.o JIT/helpers-x86.o
 | |
| +
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _mm_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared -lz
 | |
|  endif
 | |
|  
 | |
| +LINK += -m32 -lm -ldl
 | |
| +
 | |
| +CFLAGS += -DAMX_NOPROPLIST -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing \
 | |
| +	  -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
| +
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
|  ifeq "$(BINLOG)" "true"
 | |
| -	NAME := $(NAME)_bl
 | |
| +	LIB_SUFFIX := _bl$(LIB_SUFFIX)
 | |
|  	BIN_DIR := $(BIN_DIR)BinLog
 | |
|  	OBJECTS += binlog.cpp
 | |
|  	CFLAGS += -DBINLOG_ENABLED
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -DLINUX -DAMX_NOPROPLIST -Wall -Werror -DHAVE_STDINT_H -static-libgcc -fno-rtti -fno-exceptions
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -ifeq "$(AMD64)" "true"
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_64)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -DAMD64 -m64
 | |
| -	LINK += -lz64
 | |
| -	OBJECTS += JIT/natives-amd64.o
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
|  else
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_32)
 | |
| -	OBJECTS += JIT/amxexecn.o JIT/amxjitsn.o JIT/natives-x86.o
 | |
| -	OBJECTS += JIT/helpers-x86.o
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -	LINK += -lz
 | |
| -	OPT_FLAGS += -march=i586
 | |
| -	CFLAGS += -m32
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
|  endif
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
|  	mkdir -p $(BIN_DIR)
 | |
| -	$(MAKE) amxmodx
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -amd64:
 | |
| -	rm -f zlib/libz.a
 | |
| -	$(MAKE) all AMD64=true
 | |
| +binlog:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all BINLOG=true
 | |
|  
 | |
| -amd64_debug:
 | |
| -	rm -f zlib/libz.a
 | |
| -	$(MAKE) all AMD64=true DEBUG=true
 | |
| +binlog_debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all BINLOG=true DEBUG=true
 | |
|  
 | |
| -amd64_binlog:
 | |
| -	rm -f zlib/libz.a
 | |
| -	$(MAKE) all AMD64=true BINLOG=true
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -amd64_binlog_debug:
 | |
| -	rm -f zlib/libz.a
 | |
| -	$(MAKE) all AMD64=true BINLOG=true DEBUG=true
 | |
| -	
 | |
| -binlog:
 | |
| -	$(MAKE) all BINLOG=true
 | |
| -	
 | |
| -binlog_debug:
 | |
| -	$(MAKE) all BINLOG=true DEBUG=true
 | |
| -
 | |
| -amxmodx: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| -
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_64)
 | |
| -	rm -rf ReleaseBinLog/*.o
 | |
| -	rm -rf ReleaseBinLog/$(NAME)_bl_$(BIN_SUFFIX_32)
 | |
| -	rm -rf ReleaseBinLog/$(NAME)_bl_$(BIN_SUFFIX_64)
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64)
 | |
| -	rm -rf DebugBinLog/*.o
 | |
| -	rm -rf DebugBinLog/$(NAME)_bl_$(BIN_SUFFIX_32)
 | |
| -	rm -rf DebugBinLog/$(NAME)_bl_$(BIN_SUFFIX_64)
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
| +
 | |
| diff --git a/amxmodx/amx.cpp b/amxmodx/amx.cpp
 | |
| --- a/amxmodx/amx.cpp
 | |
| +++ b/amxmodx/amx.cpp
 | |
| @@ -43,17 +43,17 @@
 | |
|  #include <limits.h>
 | |
|  #include <stdarg.h>
 | |
|  #include <stddef.h>     /* for wchar_t */
 | |
|  #include <string.h>
 | |
|  #include <stdio.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <math.h>
 | |
|  #include "osdefs.h"
 | |
| -#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|    #include <sclinux.h>
 | |
|    #include <unistd.h>
 | |
|    #include <errno.h>
 | |
|    #if !defined AMX_NODYNALOAD
 | |
|      #include <dlfcn.h>
 | |
|    #endif
 | |
|    #if defined JIT
 | |
|      #include <sys/types.h>
 | |
| @@ -431,17 +431,17 @@ int AMXAPI amx_Callback(AMX *amx, cell i
 | |
|  {
 | |
|    AMX_HEADER *hdr;
 | |
|    AMX_FUNCSTUB *func;
 | |
|    AMX_NATIVE f;
 | |
|  
 | |
|    hdr=(AMX_HEADER *)amx->base;
 | |
|    assert(hdr->natives<=hdr->libraries);
 | |
|  #if defined AMX_NATIVETABLE
 | |
| -  if (index<NULL) {
 | |
| +  if (index<0) {
 | |
|      assert(-(index+1)<(sizeof(AMX_NATIVETABLE)/sizeof(AMX_NATIVETABLE)[0]));
 | |
|      f=(AMX_NATIVETABLE)[-(index+1)];
 | |
|    } else {
 | |
|  #endif
 | |
|      assert(index>=0 && index<(cell)NUMENTRIES(hdr,natives,libraries));
 | |
|      func=GETENTRY(hdr,natives,index);
 | |
|      f=(AMX_NATIVE)func->address;
 | |
|  #if defined AMX_NATIVETABLE
 | |
| @@ -927,17 +927,17 @@ int AMXAPI amx_Init(AMX *amx, void *prog
 | |
|          p = PAGE_EXECUTE_READWRITE;
 | |
|        else
 | |
|          p |= PAGE_EXECUTE_READ;
 | |
|        return !VirtualProtect(addr, len, p, &prev);
 | |
|      }
 | |
|  
 | |
|      #define ALIGN(addr) (addr)
 | |
|  
 | |
| -  #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +  #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|  
 | |
|      /* Linux already has mprotect() */
 | |
|      /* But wants the address aligned! */
 | |
|      #define ALIGN(addr) (char *)(((long)addr + sysconf(_SC_PAGESIZE)-1) & ~(sysconf(_SC_PAGESIZE)-1))
 | |
|  
 | |
|    #else
 | |
|  
 | |
|      // TODO: Add cases for Linux, Unix, OS/2, ...
 | |
| @@ -1009,50 +1009,50 @@ int AMXAPI amx_InitJIT(AMX *amx,void *co
 | |
|  
 | |
|  #endif  /* #if defined JIT */
 | |
|  
 | |
|  #endif  /* AMX_INIT */
 | |
|  
 | |
|  #if defined AMX_CLEANUP
 | |
|  int AMXAPI amx_Cleanup(AMX *amx)
 | |
|  {
 | |
| -  #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__) && !defined AMX_NODYNALOAD
 | |
| +  #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__) && !defined AMX_NODYNALOAD
 | |
|      #if defined _Windows
 | |
|        typedef int (FAR WINAPI *AMX_ENTRY)(AMX FAR *amx);
 | |
| -    #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +    #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|        typedef int (*AMX_ENTRY)(AMX *amx);
 | |
|      #endif
 | |
|      AMX_HEADER *hdr;
 | |
|      int numlibraries,i;
 | |
|      AMX_FUNCSTUB *lib;
 | |
|      AMX_ENTRY libcleanup;
 | |
|    #endif
 | |
|  
 | |
|    /* unload all extension modules */
 | |
| -  #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__) && !defined AMX_NODYNALOAD
 | |
| +  #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__) && !defined AMX_NODYNALOAD
 | |
|      hdr=(AMX_HEADER *)amx->base;
 | |
|      assert(hdr->magic==AMX_MAGIC);
 | |
|      numlibraries=NUMENTRIES(hdr,libraries,pubvars);
 | |
|      for (i=0; i<numlibraries; i++) {
 | |
|        lib=GETENTRY(hdr,libraries,i);
 | |
|        if (lib->address!=0) {
 | |
|          char funcname[sNAMEMAX+12]; /* +1 for '\0', +4 for 'amx_', +7 for 'Cleanup' */
 | |
|          strcpy(funcname,"amx_");
 | |
|          strcat(funcname,GETENTRYNAME(hdr,lib));
 | |
|          strcat(funcname,"Cleanup");
 | |
|          #if defined _Windows
 | |
|            libcleanup=(AMX_ENTRY)GetProcAddress((HINSTANCE)lib->address,funcname);
 | |
| -        #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +        #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|            libcleanup=(AMX_ENTRY)dlsym((void*)lib->address,funcname);
 | |
|          #endif
 | |
|          if (libcleanup!=NULL)
 | |
|            libcleanup(amx);
 | |
|          #if defined _Windows
 | |
|            FreeLibrary((HINSTANCE)lib->address);
 | |
| -        #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +        #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|            dlclose((void*)lib->address);
 | |
|          #endif
 | |
|        } /* if */
 | |
|      } /* for */
 | |
|    #else
 | |
|      (void)amx;
 | |
|    #endif
 | |
|    return AMX_ERR_NONE;
 | |
| @@ -3690,17 +3690,17 @@ int AMXAPI amx_GetAddr(AMX *amx,cell amx
 | |
|  
 | |
|    assert(amx!=NULL);
 | |
|    hdr=(AMX_HEADER *)amx->base;
 | |
|    assert(hdr!=NULL);
 | |
|    assert(hdr->magic==AMX_MAGIC);
 | |
|    data=(amx->data!=NULL) ? amx->data : amx->base+(int)hdr->dat;
 | |
|  
 | |
|    assert(phys_addr!=NULL);
 | |
| -  if (amx_addr>=amx->hea && amx_addr<amx->stk || amx_addr<0 || amx_addr>=amx->stp) {
 | |
| +  if ((amx_addr>=amx->hea && amx_addr<amx->stk) || amx_addr<0 || amx_addr>=amx->stp) {
 | |
|      *phys_addr=NULL;
 | |
|      return AMX_ERR_MEMACCESS;
 | |
|    } /* if */
 | |
|  
 | |
|    *phys_addr=(cell *)(data + (int)amx_addr);
 | |
|    return AMX_ERR_NONE;
 | |
|  }
 | |
|  #endif /* AMX_GETADDR */
 | |
| @@ -4089,17 +4089,17 @@ int AMXAPI amx_UTF8Len(const cell *cstr,
 | |
|  int AMXAPI amx_GetLibraries(AMX *amx)
 | |
|  {
 | |
|  	AMX_HEADER *hdr = (AMX_HEADER *)amx->base;
 | |
|  	int numLibraries = NUMENTRIES(hdr, libraries, pubvars);
 | |
|  
 | |
|  	return numLibraries;
 | |
|  }
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  #define _snprintf snprintf
 | |
|  #endif
 | |
|  
 | |
|  const char *AMXAPI amx_GetLibrary(AMX *amx, int index, char *buffer, int len)
 | |
|  {
 | |
|  	AMX_HEADER *hdr = (AMX_HEADER *)amx->base;
 | |
|  	AMX_FUNCSTUB *lib;
 | |
|  
 | |
| diff --git a/amxmodx/amx.h b/amxmodx/amx.h
 | |
| --- a/amxmodx/amx.h
 | |
| +++ b/amxmodx/amx.h
 | |
| @@ -19,27 +19,27 @@
 | |
|   *  3.  This notice may not be removed or altered from any source distribution.
 | |
|   *
 | |
|   *  Version: $Id: amx.h 3006 2006-08-28 11:08:18Z dvander $
 | |
|   */
 | |
|  
 | |
|  #if defined FREEBSD && !defined __FreeBSD__
 | |
|    #define __FreeBSD__
 | |
|  #endif
 | |
| -#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|    #include <sclinux.h>
 | |
|  #endif
 | |
|  
 | |
|  #ifndef AMX_H_INCLUDED
 | |
|  #define AMX_H_INCLUDED
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -185,17 +185,17 @@ typedef int (AMXAPI *AMX_NATIVE_FILTER)(
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -437,17 +437,17 @@ int AMXAPI amx_GetStringOld(char *dest,c
 | |
|  #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 LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|      #pragma options align=reset
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
| diff --git a/amxmodx/amxcore.cpp b/amxmodx/amxcore.cpp
 | |
| --- a/amxmodx/amxcore.cpp
 | |
| +++ b/amxmodx/amxcore.cpp
 | |
| @@ -175,17 +175,17 @@ static cell AMX_NATIVE_CALL setarg(AMX *
 | |
|  
 | |
|    hdr=(AMX_HEADER *)amx->base;
 | |
|    data=amx->data ? amx->data : amx->base+(int)hdr->dat;
 | |
|    /* get the base value */
 | |
|    value= * (cell *)(data+(int)amx->frm+((int)params[1]+3)*sizeof(cell));
 | |
|    /* adjust the address in "value" in case of an array access */
 | |
|    value+=params[2]*sizeof(cell);
 | |
|    /* verify the address */
 | |
| -  if (value<0 || value>=amx->hea && value<amx->stk)
 | |
| +  if (value<0 || (value>=amx->hea && value<amx->stk))
 | |
|      return 0;
 | |
|    /* set the value indirectly */
 | |
|    * (cell *)(data+(int)value) = params[3];
 | |
|    return 1;
 | |
|  }
 | |
|  
 | |
|  static cell AMX_NATIVE_CALL heapspace(AMX *amx,cell *params)
 | |
|  {
 | |
| diff --git a/amxmodx/amxdbg.cpp b/amxmodx/amxdbg.cpp
 | |
| --- a/amxmodx/amxdbg.cpp
 | |
| +++ b/amxmodx/amxdbg.cpp
 | |
| @@ -457,18 +457,18 @@ int AMXAPI dbg_GetVariable(AMX_DBG *amxd
 | |
|      while (index < amxdbg->hdr->symbols
 | |
|             && (amxdbg->symboltbl[index]->ident == iFUNCTN || strcmp(amxdbg->symboltbl[index]->name, symname) != 0)
 | |
|             && (amxdbg->symboltbl[index]->codestart > scopeaddr || amxdbg->symboltbl[index]->codeend < scopeaddr))
 | |
|        index++;
 | |
|      if (index >= amxdbg->hdr->symbols)
 | |
|        break;
 | |
|      /* check the range, keep a pointer to the symbol with the smallest range */
 | |
|      if (strcmp(amxdbg->symboltbl[index]->name, symname) == 0
 | |
| -        && (codestart == 0 && codeend == 0
 | |
| -            || amxdbg->symboltbl[index]->codestart >= codestart && amxdbg->symboltbl[index]->codeend <= codeend))
 | |
| +        && ((codestart == 0 && codeend == 0)
 | |
| +            || (amxdbg->symboltbl[index]->codestart >= codestart && amxdbg->symboltbl[index]->codeend <= codeend)))
 | |
|      {
 | |
|        *sym = amxdbg->symboltbl[index];
 | |
|        codestart = amxdbg->symboltbl[index]->codestart;
 | |
|        codeend = amxdbg->symboltbl[index]->codeend;
 | |
|      } /* if */
 | |
|      index++;
 | |
|    } /* for */
 | |
|  
 | |
| diff --git a/amxmodx/amxdbg.h b/amxmodx/amxdbg.h
 | |
| --- a/amxmodx/amxdbg.h
 | |
| +++ b/amxmodx/amxdbg.h
 | |
| @@ -44,17 +44,17 @@ extern  "C" {
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -151,17 +151,17 @@ int AMXAPI dbg_GetLineAddress(AMX_DBG *a
 | |
|  int AMXAPI dbg_GetAutomatonName(AMX_DBG *amxdbg, int automaton, const char **name);
 | |
|  int AMXAPI dbg_GetStateName(AMX_DBG *amxdbg, int state, const char **name);
 | |
|  int AMXAPI dbg_GetTagName(AMX_DBG *amxdbg, int tag, const char **name);
 | |
|  int AMXAPI dbg_GetVariable(AMX_DBG *amxdbg, const char *symname, ucell scopeaddr, const AMX_DBG_SYMBOL **sym);
 | |
|  int AMXAPI dbg_GetArrayDim(AMX_DBG *amxdbg, const AMX_DBG_SYMBOL *sym, const AMX_DBG_SYMDIM **symdim);
 | |
|  
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|      #pragma options align=reset
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
| diff --git a/amxmodx/amxjitsn.asm b/amxmodx/amxjitsn.asm
 | |
| --- a/amxmodx/amxjitsn.asm
 | |
| +++ b/amxmodx/amxjitsn.asm
 | |
| @@ -298,24 +298,16 @@
 | |
|  %endmacro
 | |
|  
 | |
|  %macro _DROPARGS 1              ; (TR) remove function arguments from the stack
 | |
|      %ifndef STDECL               ; (for __cdecl calling convention only)
 | |
|          add     esp,%1
 | |
|      %endif
 | |
|  %endmacro
 | |
|  
 | |
| -
 | |
| -%ifdef WIN32
 | |
| -section .data exec
 | |
| -%else
 | |
| -section .text
 | |
| -%endif
 | |
| -
 | |
| -
 | |
|  global  asm_runJIT, _asm_runJIT
 | |
|  global  amx_exec_jit, _amx_exec_jit
 | |
|  global  getMaxCodeSize, _getMaxCodeSize
 | |
|  
 | |
|  
 | |
|  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | |
|  ;                                                                             ;
 | |
|  ; void   asm_runJIT( AMX_HEADER *amxh, JumpAddressArray *jumps, void *dest )  ;
 | |
| @@ -431,25 +423,16 @@ reloc_code_done:
 | |
|  reloc_done:
 | |
|          mov     eax,0
 | |
|          pop     esi
 | |
|          pop     edi
 | |
|          pop     ebx
 | |
|          pop     ebp
 | |
|          ret
 | |
|  
 | |
| -; GWMV:
 | |
| -; The code below modifies itself to store the arguments to the Pawn opcodes
 | |
| -; in the compiled code. This is fine, but the .text section in an ELF executable
 | |
| -; is usually marked read-only, that's why this code is in the .data section.
 | |
| -
 | |
| -%ifndef WIN32
 | |
| -section .data exec
 | |
| -%endif
 | |
| -
 | |
|  OP_LOAD_PRI:
 | |
|  ;nop;
 | |
|          putval  j_load_pri+2
 | |
|          GO_ON   j_load_pri, OP_LOAD_ALT, 8
 | |
|  
 | |
|          j_load_pri:
 | |
|          mov     eax,[edi+12345678h]
 | |
|  	CHECKCODESIZE j_load_pri
 | |
| @@ -1047,17 +1030,17 @@ OP_RETN:
 | |
|  OP_CALL:
 | |
|  ;nop;
 | |
|          RELOC   j_call_e8-j_call+1
 | |
|          GO_ON   j_call, OP_CALL_I, 8
 | |
|  
 | |
|          j_call:
 | |
|          ;call   12345678h ; tasm chokes on this out of a sudden
 | |
|          _PUSH	0
 | |
| -        j_call_e8
 | |
| +        j_call_e8:
 | |
|          db      0e8h, 0, 0, 0, 0
 | |
|  	CHECKCODESIZE j_call
 | |
|  
 | |
|  OP_CALL_I:
 | |
|  ;nop;
 | |
|          GO_ON   j_call_i, OP_JUMP
 | |
|  
 | |
|          j_call_i:
 | |
| @@ -2586,9 +2569,9 @@ amx_opcodelist_jit:
 | |
|          DD      OP_FLOAT_MUL	; DA
 | |
|          DD      OP_FLOAT_DIV	; DA
 | |
|          DD      OP_FLOAT_ADD	; DA
 | |
|          DD      OP_FLOAT_SUB	; DA
 | |
|          DD      OP_FLOAT_TO		; DA
 | |
|          DD      OP_FLOAT_ROUND	; DA
 | |
|          DD      OP_FLOAT_CMP	; DA
 | |
|  
 | |
| -END
 | |
| +END:
 | |
| diff --git a/amxmodx/amxmodx.cpp b/amxmodx/amxmodx.cpp
 | |
| --- a/amxmodx/amxmodx.cpp
 | |
| +++ b/amxmodx/amxmodx.cpp
 | |
| @@ -141,17 +141,17 @@ static cell AMX_NATIVE_CALL server_print
 | |
|  	message[len] = 0;
 | |
|  	SERVER_PRINT(message);
 | |
|  	
 | |
|  	return len;
 | |
|  }
 | |
|  
 | |
|  static cell AMX_NATIVE_CALL engclient_print(AMX *amx, cell *params) /* 3 param */
 | |
|  {
 | |
| -	int len;
 | |
| +	int len = 0;
 | |
|  	char *msg;
 | |
|  	
 | |
|  	if (params[1] == 0)
 | |
|  	{
 | |
|  		for (int i = 1; i <= gpGlobals->maxClients; ++i)
 | |
|  		{
 | |
|  			CPlayer* pPlayer = GET_PLAYER_POINTER_I(i);
 | |
|  			
 | |
| @@ -492,16 +492,25 @@ static cell AMX_NATIVE_CALL is_amd64_ser
 | |
|  {
 | |
|  #if PAWN_CELL_SIZE==64
 | |
|  	return 1;
 | |
|  #else
 | |
|  	return 0;
 | |
|  #endif
 | |
|  }
 | |
|  
 | |
| +static cell AMX_NATIVE_CALL is_mac_server(AMX *amx, cell *params)
 | |
| +{
 | |
| +#ifdef __APPLE__
 | |
| +	return 1;
 | |
| +#else
 | |
| +	return 0;
 | |
| +#endif
 | |
| +}
 | |
| +
 | |
|  static cell AMX_NATIVE_CALL is_jit_enabled(AMX *amx, cell *params)		// PM: Useless ;P
 | |
|  {
 | |
|  #ifdef JIT
 | |
|  	return 1;
 | |
|  #else
 | |
|  	return 0;
 | |
|  #endif
 | |
|  }
 | |
| @@ -1000,17 +1009,17 @@ static cell AMX_NATIVE_CALL get_user_tea
 | |
|  	{
 | |
|  		// SidLuke, DoD fix
 | |
|  		if (g_bmod_dod)
 | |
|  		{
 | |
|  			int iTeam = pPlayer->pEdict->v.team;
 | |
|  			
 | |
|  			if (params[3])
 | |
|  			{
 | |
| -				char *szTeam = "";
 | |
| +				const char *szTeam = "";
 | |
|  				
 | |
|  				switch (iTeam)
 | |
|  				{
 | |
|  					case 1:
 | |
|  						szTeam = "Allies";
 | |
|  						break;
 | |
|  					case 2:
 | |
|  						szTeam = "Axis";
 | |
| @@ -3838,17 +3847,17 @@ cell AMX_NATIVE_CALL require_module(AMX 
 | |
|  }
 | |
|  
 | |
|  static cell AMX_NATIVE_CALL amx_mkdir(AMX *amx, cell *params)
 | |
|  {
 | |
|  	int len = 0;
 | |
|  	char *path = get_amxstring(amx, params[1], 0, len);
 | |
|  	char *realpath = build_pathname("%s", path);
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  	return mkdir(realpath, 0700);
 | |
|  #else
 | |
|  	return mkdir(realpath);
 | |
|  #endif
 | |
|  }
 | |
|  
 | |
|  static cell AMX_NATIVE_CALL find_plugin_byfile(AMX *amx, cell *params)
 | |
|  {
 | |
| @@ -4701,16 +4710,17 @@ AMX_NATIVE_INFO amxmodx_Natives[] =
 | |
|  	{"get_xvar_float",			get_xvar_num},
 | |
|  	{"get_xvar_id",				get_xvar_id},
 | |
|  	{"get_xvar_num",			get_xvar_num},
 | |
|  	{"int3",					int3},
 | |
|  	{"is_amd64_server",			is_amd64_server},
 | |
|  	{"is_dedicated_server",		is_dedicated_server},
 | |
|  	{"is_jit_enabled",			is_jit_enabled},
 | |
|  	{"is_linux_server",			is_linux_server},
 | |
| +	{"is_mac_server",			is_mac_server},
 | |
|  	{"is_map_valid",			is_map_valid},
 | |
|  	{"is_module_loaded",		is_module_loaded},
 | |
|  	{"is_plugin_loaded",		is_plugin_loaded},
 | |
|  	{"is_user_alive",			is_user_alive},
 | |
|  	{"is_user_authorized",		is_user_authorized},
 | |
|  	{"is_user_bot",				is_user_bot},
 | |
|  	{"is_user_connected",		is_user_connected},
 | |
|  	{"is_user_connecting",		is_user_connecting},
 | |
| diff --git a/amxmodx/amxmodx.h b/amxmodx/amxmodx.h
 | |
| --- a/amxmodx/amxmodx.h
 | |
| +++ b/amxmodx/amxmodx.h
 | |
| @@ -27,17 +27,17 @@
 | |
|  *  to your version of the file, but you are not obligated to do so. If
 | |
|  *  you do not wish to do so, delete this exception statement from your
 | |
|  *  version.
 | |
|  */
 | |
|  
 | |
|  #ifndef AMXMODX_H
 | |
|  #define AMXMODX_H
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  #include <unistd.h>
 | |
|  #include <stdlib.h>
 | |
|  #include "sclinux.h"
 | |
|  #endif
 | |
|  #include <ctype.h>				//tolower, etc
 | |
|  #include "string.h"
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
| @@ -81,17 +81,17 @@ extern AMX_NATIVE_INFO file_Natives[];
 | |
|  extern AMX_NATIVE_INFO float_Natives[];
 | |
|  extern AMX_NATIVE_INFO string_Natives[];
 | |
|  extern AMX_NATIVE_INFO vault_Natives[];
 | |
|  extern AMX_NATIVE_INFO msg_Natives[];
 | |
|  extern AMX_NATIVE_INFO vector_Natives[];
 | |
|  extern AMX_NATIVE_INFO g_SortNatives[];
 | |
|  extern AMX_NATIVE_INFO g_DataStructNatives[];
 | |
|  
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLOAD(path) (DLHANDLE)LoadLibrary(path)
 | |
|  #define DLPROC(m, func) GetProcAddress(m, func)
 | |
|  #define DLFREE(m) FreeLibrary(m)
 | |
|  #else
 | |
|  #define DLLOAD(path) (DLHANDLE)dlopen(path, RTLD_NOW)
 | |
|  #define DLPROC(m, func) dlsym(m, func)
 | |
|  #define DLFREE(m) dlclose(m)
 | |
|  #endif
 | |
| @@ -102,24 +102,24 @@ extern AMX_NATIVE_INFO g_DataStructNativ
 | |
|  #else
 | |
|  	#if defined AMD64
 | |
|  		typedef __int64 _INT_PTR;
 | |
|  	#else
 | |
|  		typedef __int32 _INT_PTR;
 | |
|  	#endif
 | |
|  #endif
 | |
|  
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  	typedef HINSTANCE DLHANDLE;
 | |
|  #else
 | |
|  	typedef void* DLHANDLE;
 | |
|  	#define INFINITE 0xFFFFFFFF
 | |
|  #endif
 | |
|  
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  	#define PATH_SEP_CHAR		'\\'
 | |
|  	#define ALT_SEP_CHAR		'/'
 | |
|  #else
 | |
|  	#define PATH_SEP_CHAR		'/'
 | |
|  	#define ALT_SEP_CHAR		'\\'
 | |
|  #endif
 | |
|  
 | |
|  #ifndef GETPLAYERAUTHID
 | |
| @@ -134,17 +134,17 @@ extern AMX_NATIVE_INFO g_DataStructNativ
 | |
|  #define SETCLIENTMAXSPEED   (*g_engfuncs.pfnSetClientMaxspeed)
 | |
|  
 | |
|  char* UTIL_SplitHudMessage(register const char *src);
 | |
|  int UTIL_ReadFlags(const char* c);
 | |
|  
 | |
|  void UTIL_ClientPrint(edict_t *pEntity, int msg_dest, char *msg);
 | |
|  void UTIL_FakeClientCommand(edict_t *pEdict, const char *cmd, const char *arg1 = NULL, const char *arg2 = NULL);
 | |
|  void UTIL_GetFlags(char* flags, int flag);
 | |
| -void UTIL_HudMessage(edict_t *pEntity, const hudtextparms_t &textparms, char *pMessage);
 | |
| +void UTIL_HudMessage(edict_t *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  void UTIL_IntToString(int value, char *output);
 | |
|  void UTIL_ShowMOTD(edict_t *client, char *motd, int mlen, const char *name);
 | |
|  void UTIL_ShowMenu(edict_t* pEntity, int slots, int time, char *menu, int mlen);
 | |
|  
 | |
|  char *UTIL_VarArgs(const char *fmt, ...);
 | |
|  
 | |
|  
 | |
|  #define GET_PLAYER_POINTER(e)   (&g_players[ENTINDEX(e)])
 | |
| @@ -271,34 +271,34 @@ enum CountModulesMode
 | |
|  };
 | |
|  
 | |
|  int countModules(CountModulesMode mode);
 | |
|  void modules_callPluginsLoaded();
 | |
|  void modules_callPluginsUnloaded();
 | |
|  void modules_callPluginsUnloading();
 | |
|  
 | |
|  cell* get_amxaddr(AMX *amx, cell amx_addr);
 | |
| -char* build_pathname(char *fmt, ...);
 | |
| -char* build_pathname_r(char *buffer, size_t maxlen, char *fmt, ...);
 | |
| +char* build_pathname(const char *fmt, ...);
 | |
| +char* build_pathname_r(char *buffer, size_t maxlen, const char *fmt, ...);
 | |
|  char* format_amxstring(AMX *amx, cell *params, int parm, int& len);
 | |
|  AMX* get_amxscript(int, void**, const char**);
 | |
|  const char* get_amxscriptname(AMX* amx);
 | |
|  char* get_amxstring(AMX *amx, cell amx_addr, int id, int& len);
 | |
|  extern "C" size_t get_amxstring_r(AMX *amx, cell amx_addr, char *destination, int maxlen);
 | |
|  
 | |
|  int amxstring_len(cell* cstr);
 | |
|  int load_amxscript(AMX* amx, void** program, const char* path, char error[64], int debug);
 | |
|  int set_amxnatives(AMX* amx, char error[64]);
 | |
|  int set_amxstring(AMX *amx, cell amx_addr, const char *source, int max);
 | |
|  int unload_amxscript(AMX* amx, void** program);
 | |
|  
 | |
|  void copy_amxmemory(cell* dest, cell* src, int len);
 | |
|  void get_modname(char*);
 | |
| -void print_srvconsole(char *fmt, ...);
 | |
| -void report_error(int code, char* fmt, ...);
 | |
| +void print_srvconsole(const char *fmt, ...);
 | |
| +void report_error(int code, const char* fmt, ...);
 | |
|  void* alloc_amxmemory(void**, int size);
 | |
|  void free_amxmemory(void **ptr);
 | |
|  // get_localinfo
 | |
|  const char* get_localinfo(const char* name, const char* def);
 | |
|  cell AMX_NATIVE_CALL require_module(AMX *amx, cell *params);
 | |
|  extern "C" void LogError(AMX *amx, int err, const char *fmt, ...);
 | |
|  
 | |
|  enum ModuleCallReason
 | |
| diff --git a/amxmodx/amxxfile.cpp b/amxmodx/amxxfile.cpp
 | |
| --- a/amxmodx/amxxfile.cpp
 | |
| +++ b/amxmodx/amxxfile.cpp
 | |
| @@ -37,17 +37,17 @@
 | |
|   **********************/
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|  	#define PACKED		__attribute__((packed))
 | |
|  #else
 | |
|  	#define PACKED
 | |
|  #endif
 | |
|  
 | |
| -#if defined __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  	#pragma pack(1)				/* structures must be packed (byte-aligned) */
 | |
|  #else
 | |
|  	#pragma pack(1)				/* structures must be packed (byte-aligned) */
 | |
|  	#if defined __TURBOC__
 | |
|  		#pragma option -a-		/* "pack" pragma for older Borland compilers */
 | |
|  	#endif
 | |
|  #endif
 | |
|  
 | |
| @@ -122,27 +122,27 @@ CAmxxReader::CAmxxReader(const char *fil
 | |
|  		DATAREAD(&m_Bh.numPlugins, sizeof(mint8_t), 1);
 | |
|  		m_Bh.plugins = new PluginEntry[m_Bh.numPlugins];
 | |
|  		PluginEntry *pe;
 | |
|  		m_SectionHdrOffset = 0;
 | |
|  		m_Entry = -1;
 | |
|  		
 | |
|  		for (mint8_t i = 0; i < m_Bh.numPlugins; i++)
 | |
|  		{
 | |
| -			pe = &(m_Bh.plugins[i]);
 | |
| +			pe = &(m_Bh.plugins[(unsigned)i]);
 | |
|  			DATAREAD(&pe->cellsize, sizeof(mint8_t), 1);
 | |
|  			DATAREAD(&pe->disksize, sizeof(int32_t), 1);
 | |
|  			DATAREAD(&pe->imagesize, sizeof(int32_t), 1);
 | |
|  			DATAREAD(&pe->memsize, sizeof(int32_t), 1);
 | |
|  			DATAREAD(&pe->offs, sizeof(int32_t), 1);
 | |
|  		}
 | |
|  		
 | |
|  		for (mint8_t i = 0; i < m_Bh.numPlugins; i++)
 | |
|  		{
 | |
| -			pe = &(m_Bh.plugins[i]);
 | |
| +			pe = &(m_Bh.plugins[(unsigned)i]);
 | |
|  			
 | |
|  			if (pe->cellsize == m_CellSize)
 | |
|  			{
 | |
|  				m_Entry = i;
 | |
|  				break;
 | |
|  			}
 | |
|  		}
 | |
|  		
 | |
| diff --git a/amxmodx/amxxlog.cpp b/amxmodx/amxxlog.cpp
 | |
| --- a/amxmodx/amxxlog.cpp
 | |
| +++ b/amxmodx/amxxlog.cpp
 | |
| @@ -30,22 +30,22 @@
 | |
|  
 | |
|  // amxx_logging localinfo:
 | |
|  //  0 = no logging
 | |
|  //  1 = one logfile / day
 | |
|  //  2 = one logfile / map
 | |
|  //  3 = HL Logs
 | |
|  
 | |
|  #include <time.h>
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  	#include <io.h>
 | |
|  #endif
 | |
|  #include "amxmodx.h"
 | |
|  
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  	#define	vsnprintf	_vsnprintf
 | |
|  #endif
 | |
|  
 | |
|  #include "svn_version.h"
 | |
|  
 | |
|  CLog::CLog()
 | |
|  {
 | |
|  	m_LogType = 0;
 | |
| @@ -132,17 +132,17 @@ void CLog::UseFile(const String &fileNam
 | |
|  	static char file[256];
 | |
|  	m_LogFile.assign(build_pathname_r(file, sizeof(file)-1, "%s/%s", g_log_dir.c_str(), fileName.c_str()));
 | |
|  }
 | |
|  
 | |
|  void CLog::MapChange()
 | |
|  {
 | |
|  	// create dir if not existing
 | |
|  	char file[256];
 | |
| -#ifdef __linux
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  	mkdir(build_pathname_r(file, sizeof(file)-1, "%s", g_log_dir.c_str()), 0700);
 | |
|  #else
 | |
|  	mkdir(build_pathname_r(file, sizeof(file)-1, "%s", g_log_dir.c_str()));
 | |
|  #endif
 | |
|  
 | |
|  	m_LogType = atoi(get_localinfo("amxx_logging", "1"));
 | |
|  	
 | |
|  	if (m_LogType < 0 || m_LogType > 3)
 | |
| diff --git a/amxmodx/binlog.cpp b/amxmodx/binlog.cpp
 | |
| --- a/amxmodx/binlog.cpp
 | |
| +++ b/amxmodx/binlog.cpp
 | |
| @@ -41,17 +41,17 @@ bool BinLog::Open()
 | |
|  {
 | |
|  	const char *data = get_localinfo("amxmodx_datadir", "addons/amxmodx/data");
 | |
|  	char path[255];
 | |
|  	build_pathname_r(path, sizeof(path)-1, "%s/binlogs", data);
 | |
|  	
 | |
|  	if (!DirExists(path))
 | |
|  	{
 | |
|  		mkdir(path
 | |
| -#if defined __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  			, 0755
 | |
|  #endif
 | |
|  			);
 | |
|  		if (!DirExists(path))
 | |
|  			return false;
 | |
|  	}
 | |
|  
 | |
|  	char file[255];
 | |
| diff --git a/amxmodx/datastructs.h b/amxmodx/datastructs.h
 | |
| --- a/amxmodx/datastructs.h
 | |
| +++ b/amxmodx/datastructs.h
 | |
| @@ -210,18 +210,17 @@ public:
 | |
|  			return NULL;
 | |
|  		}
 | |
|  		return data + (which * cellcount);
 | |
|  	};
 | |
|  	// Shifts all items from this item, and including this item up 1.
 | |
|  	int ShiftUpFrom(size_t which)
 | |
|  	{
 | |
|  		// No point shifting this.
 | |
| -		if (this->count < 0 ||
 | |
| -			which > this->count)
 | |
| +		if (which > this->count)
 | |
|  		{
 | |
|  
 | |
|  			return 0;
 | |
|  		}
 | |
|  		// First make a new item.
 | |
|  		this->Push();
 | |
|  
 | |
|  		// If we got an InsertAfter(lastitem), then which will equal this->count - 1
 | |
| @@ -249,18 +248,17 @@ public:
 | |
|  		return 1;
 | |
|  
 | |
|  	};
 | |
|  	// Shifts all items from this item, and including this item down 1.
 | |
|  	// This deletes the item specified.
 | |
|  	int Delete(size_t which)
 | |
|  	{
 | |
|  		// No point shifting this.
 | |
| -		if (this->count < 0 ||
 | |
| -			which >= this->count)
 | |
| +		if (which >= this->count)
 | |
|  		{
 | |
|  			return 0;
 | |
|  		}
 | |
|  
 | |
|  
 | |
|  		for (size_t i=which; i<this->count - 1; i++)
 | |
|  		{
 | |
|  			memcpy(GetCellPointer(i), GetCellPointer(i + 1), sizeof(cell) * cellcount);
 | |
| diff --git a/amxmodx/debugger.cpp b/amxmodx/debugger.cpp
 | |
| --- a/amxmodx/debugger.cpp
 | |
| +++ b/amxmodx/debugger.cpp
 | |
| @@ -609,19 +609,19 @@ void Debugger::FmtGenericMsg(AMX *amx, i
 | |
|  {
 | |
|  	const char *filename = "";
 | |
|  	char native[sNAMEMAX+1];
 | |
|  
 | |
|  	CList<CScript,AMX*>::iterator a = g_loadedscripts.find(amx);
 | |
|  	if (a)
 | |
|  		filename = (*a).getName();
 | |
|  	size_t len = strlen(filename);
 | |
| -	for (size_t i=len-1; i>=0; i--)
 | |
| +	for (size_t i=len-1; i<len; i--)
 | |
|  	{
 | |
| -		if (filename[i] == '/' || filename[i] == '\\' && i != len - 1)
 | |
| +		if ((filename[i] == '/' || filename[i] == '\\') && i != len - 1)
 | |
|  		{
 | |
|  			filename = &(filename[i+1]);
 | |
|  			break;
 | |
|  		}
 | |
|  	}
 | |
|  
 | |
|  	if (error == AMX_ERR_EXIT)
 | |
|  	{
 | |
| diff --git a/amxmodx/file.cpp b/amxmodx/file.cpp
 | |
| --- a/amxmodx/file.cpp
 | |
| +++ b/amxmodx/file.cpp
 | |
| @@ -38,17 +38,17 @@
 | |
|  #ifdef __GNUC__
 | |
|  #include <stdio.h>
 | |
|  #include <sys/types.h>
 | |
|  #include <sys/stat.h>
 | |
|  #include <dirent.h>
 | |
|  #endif
 | |
|  
 | |
|  // header file for unlink()
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  #include <unistd.h>
 | |
|  #else
 | |
|  #define WINDOWS_LEAN_AND_MEAN
 | |
|  #include <windows.h>
 | |
|  #include <io.h>
 | |
|  #endif
 | |
|  
 | |
|  #include "amxmodx.h"
 | |
| @@ -779,17 +779,17 @@ static cell AMX_NATIVE_CALL amx_ungetc(A
 | |
|  	FILE *fp = (FILE *)params[1];
 | |
|  
 | |
|  	if (!fp)
 | |
|  		return 0;
 | |
|  
 | |
|  	return ungetc(static_cast<int>(params[2]), fp);
 | |
|  }
 | |
|  
 | |
| -#if defined __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  #define _rmdir rmdir
 | |
|  #endif
 | |
|  
 | |
|  static cell AMX_NATIVE_CALL amx_rmdir(AMX *amx, cell *params)
 | |
|  {
 | |
|  	int len;
 | |
|  	char* sFile = build_pathname("%s", get_amxstring(amx, params[1], 0, len));
 | |
|  
 | |
| @@ -812,17 +812,17 @@ static cell AMX_NATIVE_CALL amx_rename(A
 | |
|  	{
 | |
|  		build_pathname_r(f_old_r, sizeof(f_old_r)-1, "%s", fold);
 | |
|  		build_pathname_r(f_new_r, sizeof(f_new_r)-1, "%s", fnew);
 | |
|  	} else {
 | |
|  		snprintf(f_old_r, sizeof(f_old_r)-1, "%s", fold);
 | |
|  		snprintf(f_new_r, sizeof(f_new_r)-1, "%s", fnew);
 | |
|  	}
 | |
|  
 | |
| -#if defined __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  	return (rename(f_old_r, f_new_r) == 0);
 | |
|  #elif defined WIN32
 | |
|  	return MoveFileA(f_old_r, f_new_r);
 | |
|  #endif
 | |
|  }
 | |
|  
 | |
|  static cell LoadFileForMe(AMX *amx, cell *params)
 | |
|  {
 | |
| diff --git a/amxmodx/format.cpp b/amxmodx/format.cpp
 | |
| --- a/amxmodx/format.cpp
 | |
| +++ b/amxmodx/format.cpp
 | |
| @@ -24,16 +24,21 @@
 | |
|  #define is_digit(c)		((unsigned)to_digit(c) <= 9)
 | |
|  #define to_char(n)		((n) + '0')
 | |
|  #define CHECK_ARGS(n) \
 | |
|  	if ((arg+n) > args) { \
 | |
|  		LogError(amx, AMX_ERR_PARAMS, "String formatted incorrectly - parameter %d (total %d)", arg, args); \
 | |
|  		return 0; \
 | |
|  	}
 | |
|  
 | |
| +template size_t atcprintf<cell, cell>(cell *, size_t, const cell *, AMX *, cell *, int *);
 | |
| +template size_t atcprintf<char, cell>(char *, size_t, const cell *, AMX *, cell *, int *);
 | |
| +template size_t atcprintf<cell, char>(cell *, size_t, const char *, AMX *, cell *, int *);
 | |
| +template size_t atcprintf<char, char>(char *, size_t, const char *, AMX *, cell *, int *);
 | |
| +
 | |
|  THash<String, lang_err> BadLang_Table;
 | |
|  
 | |
|  static cvar_t *amx_mldebug = NULL;
 | |
|  static cvar_t *amx_cl_langs = NULL;
 | |
|  
 | |
|  const char *translate(AMX *amx, cell amxaddr, const char *key)
 | |
|  {
 | |
|  	const char *pLangName = NULL;
 | |
| diff --git a/amxmodx/format.h b/amxmodx/format.h
 | |
| --- a/amxmodx/format.h
 | |
| +++ b/amxmodx/format.h
 | |
| @@ -1,11 +1,14 @@
 | |
|  #ifndef _INCLUDE_FORMATTING_H
 | |
|  #define _INCLUDE_FORMATTING_H
 | |
|  
 | |
|  //Amx Templatized Cell Printf
 | |
|  template <typename D, typename S>
 | |
|  size_t atcprintf(D *buffer, size_t maxlen, const S *format, AMX *amx, cell *params, int *param);
 | |
|  
 | |
| +//extern template
 | |
| +//size_t atcprintf<cell, cell>(cell *buffer, size_t maxlen, const cell *format, AMX *amx, cell *params, int *param);
 | |
| +
 | |
|  const char *translate(AMX *amx, cell amxaddr, const char *key);
 | |
|  bool translate_bcompat(AMX *amx, cell *source, const char **_key, const char **_def);
 | |
|  
 | |
|  #endif //_INCLUDE_FORMATTING_H
 | |
| diff --git a/amxmodx/helpers-x86.asm b/amxmodx/helpers-x86.asm
 | |
| --- a/amxmodx/helpers-x86.asm
 | |
| +++ b/amxmodx/helpers-x86.asm
 | |
| @@ -38,14 +38,14 @@ amxx_CpuSupport:
 | |
|  	je		.fail
 | |
|  	
 | |
|  	mov		eax, 1
 | |
|  	jmp		.end
 | |
|  
 | |
|  .fail:
 | |
|  	xor		eax, eax
 | |
|  	
 | |
| -.end
 | |
| +.end:
 | |
|  	
 | |
|  	pop		ebx
 | |
|  
 | |
|  	pop		ebp
 | |
|  	ret
 | |
| diff --git a/amxmodx/md5.cpp b/amxmodx/md5.cpp
 | |
| --- a/amxmodx/md5.cpp
 | |
| +++ b/amxmodx/md5.cpp
 | |
| @@ -180,17 +180,17 @@ unsigned char *MD5::raw_digest(){
 | |
|    }
 | |
|  
 | |
|    memcpy(s, digest, 16);
 | |
|    return s;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -char *MD5::hex_digest(){
 | |
| +const char *MD5::hex_digest(){
 | |
|  
 | |
|    int i;
 | |
|    char *s= new char[33];
 | |
|  
 | |
|    if (!finalized){
 | |
|  /*    cerr << "MD5::hex_digest:  Can't get digest if you haven't "<<
 | |
|        "finalized the digest!" <<endl;*/
 | |
|      return "";
 | |
| @@ -200,17 +200,17 @@ char *MD5::hex_digest(){
 | |
|      sprintf(s+i*2, "%02x", digest[i]);
 | |
|  
 | |
|    s[32]='\0';
 | |
|  
 | |
|    return s;
 | |
|  }
 | |
|  
 | |
|  
 | |
| -char *MD5::hex_digest(char buffer[33]){
 | |
| +const char *MD5::hex_digest(char buffer[33]){
 | |
|  
 | |
|    int i;
 | |
|  
 | |
|    if (!finalized)
 | |
|    {
 | |
|  	 /* cerr << "MD5::hex_digest:  Can't get digest if you haven't "<<
 | |
|        "finalized the digest!" <<endl;*/
 | |
|      return "";
 | |
| diff --git a/amxmodx/md5.h b/amxmodx/md5.h
 | |
| --- a/amxmodx/md5.h
 | |
| +++ b/amxmodx/md5.h
 | |
| @@ -54,18 +54,18 @@ public:
 | |
|  
 | |
|  // constructors for special circumstances.  All these constructors finalize
 | |
|  // the MD5 context.
 | |
|    MD5              (unsigned char *string); // digest string, finalize
 | |
|    MD5              (FILE *file);            // digest file, close, finalize
 | |
|  
 | |
|  // methods to acquire finalized result
 | |
|    unsigned char    *raw_digest ();  // digest as a 16-byte binary array
 | |
| -  char *            hex_digest ();  // digest as a 33-byte ascii-hex string
 | |
| -  char *			hex_digest (char buffer[33]); //same as above, passing buffer
 | |
| +  const char       *hex_digest ();  // digest as a 33-byte ascii-hex string
 | |
| +  const char       *hex_digest (char buffer[33]); //same as above, passing buffer
 | |
|  
 | |
|  
 | |
|  
 | |
|  private:
 | |
|  
 | |
|  // first, some types:
 | |
|    typedef unsigned       int uint4; // assumes integer is 4 words long
 | |
|    typedef unsigned short int uint2; // assumes short integer is 2 words long
 | |
| diff --git a/amxmodx/meta_api.cpp b/amxmodx/meta_api.cpp
 | |
| --- a/amxmodx/meta_api.cpp
 | |
| +++ b/amxmodx/meta_api.cpp
 | |
| @@ -193,17 +193,17 @@ void BuildPluginFileList(const char *ini
 | |
|  	}
 | |
|  
 | |
|  	while (!_findnext(handle, &fd))
 | |
|  	{
 | |
|  		ParseAndOrAdd(files, fd.name);
 | |
|  	}
 | |
|  
 | |
|  	_findclose(handle);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	build_pathname_r(path, sizeof(path)-1, "%s/", initialdir);
 | |
|  	struct dirent *ep;
 | |
|  	DIR *dp;
 | |
|  
 | |
|  	if ((dp = opendir(path)) == NULL)
 | |
|  	{
 | |
|  		return;
 | |
|  	}
 | |
| @@ -249,32 +249,32 @@ void LoadExtraPluginsFromDir(const char 
 | |
|  		g_plugins.loadPluginsFromFile(path);
 | |
|  		delete pString;
 | |
|  		files.pop();
 | |
|  	}
 | |
|  }
 | |
|  
 | |
|  // Precache	stuff from force consistency calls
 | |
|  // or check	for	pointed	files won't	be done
 | |
| -int	C_PrecacheModel(char *s)
 | |
| +int	C_PrecacheModel(const char *s)
 | |
|  {
 | |
|  	if (!g_forcedmodules)
 | |
|  	{
 | |
|  		g_forcedmodules	= true;
 | |
|  		for (CList<ForceObject>::iterator a = g_forcemodels.begin(); a; ++a)
 | |
|  		{
 | |
|  			PRECACHE_MODEL((char*)(*a).getFilename());
 | |
|  			ENGINE_FORCE_UNMODIFIED((*a).getForceType(), (*a).getMin(), (*a).getMax(), (*a).getFilename());
 | |
|  		}
 | |
|  	}
 | |
|  
 | |
|  	RETURN_META_VALUE(MRES_IGNORED, 0);
 | |
|  }
 | |
|  
 | |
| -int	C_PrecacheSound(char *s)
 | |
| +int	C_PrecacheSound(const char *s)
 | |
|  {
 | |
|  	if (!g_forcedsounds)
 | |
|  	{
 | |
|  		g_forcedsounds = true;
 | |
|  		for (CList<ForceObject>::iterator a = g_forcesounds.begin(); a; ++a)
 | |
|  		{
 | |
|  			PRECACHE_SOUND((char*)(*a).getFilename());
 | |
|  			ENGINE_FORCE_UNMODIFIED((*a).getForceType(), (*a).getMin(), (*a).getMax(), (*a).getFilename());
 | |
| @@ -726,26 +726,26 @@ void C_ServerDeactivate_Post()
 | |
|  	{
 | |
|  		if (g_memreport_count == 0)
 | |
|  		{
 | |
|  			// make new directory
 | |
|  			time_t td;
 | |
|  			time(&td);
 | |
|  			tm *curTime = localtime(&td);
 | |
|  			int i = 0;
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  			mkdir(build_pathname("%s/memreports", get_localinfo("amxx_basedir", "addons/amxmodx")), 0700);
 | |
|  #else
 | |
|  			mkdir(build_pathname("%s/memreports", get_localinfo("amxx_basedir", "addons/amxmodx")));
 | |
|  #endif
 | |
|  			while (true)
 | |
|  			{
 | |
|  				char buffer[256];
 | |
|  				sprintf(buffer, "%s/memreports/D%02d%02d%03d", get_localinfo("amxx_basedir", "addons/amxmodx"), curTime->tm_mon + 1, curTime->tm_mday, i);
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  				mkdir(build_pathname("%s", g_log_dir.c_str()), 0700);
 | |
|  				if (mkdir(build_pathname(buffer), 0700) < 0)
 | |
|  #else
 | |
|  				mkdir(build_pathname("%s", g_log_dir.c_str()));
 | |
|  				if (mkdir(build_pathname(buffer)) < 0)
 | |
|  #endif
 | |
|  				{
 | |
|  					if (errno == EEXIST)
 | |
| @@ -1078,26 +1078,26 @@ void C_StartFrame_Post(void)
 | |
|  		if (g_memreport_count == 0)
 | |
|  		{
 | |
|  			// make new directory
 | |
|  			time_t td;
 | |
|  			time(&td);
 | |
|  			tm *curTime = localtime(&td);
 | |
|  			
 | |
|  			int i = 0;
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  			mkdir(build_pathname("%s/memreports", get_localinfo("amxx_basedir", "addons/amxmodx")), 0700);
 | |
|  #else
 | |
|  			mkdir(build_pathname("%s/memreports", get_localinfo("amxx_basedir", "addons/amxmodx")));
 | |
|  #endif
 | |
|  			while (true)
 | |
|  			{
 | |
|  				char buffer[256];
 | |
|  				sprintf(buffer, "%s/memreports/D%02d%02d%03d", get_localinfo("amxx_basedir", "addons/amxmodx"), curTime->tm_mon + 1, curTime->tm_mday, i);
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  				mkdir(build_pathname("%s", g_log_dir.c_str()), 0700);
 | |
|  				if (mkdir(build_pathname(buffer), 0700) < 0)
 | |
|  #else
 | |
|  				mkdir(build_pathname("%s", g_log_dir.c_str()));
 | |
|  				if (mkdir(build_pathname(buffer)) < 0)
 | |
|  #endif
 | |
|  				{
 | |
|  					if (errno == EEXIST)
 | |
| @@ -1280,17 +1280,17 @@ void C_TraceLine_Post(const float *v1, c
 | |
|  			pPlayer->aiming = ptr->iHitgroup;
 | |
|  			
 | |
|  		pPlayer->lastTrace = ptr->vecEndPos;
 | |
|  	}
 | |
|  
 | |
|  	RETURN_META(MRES_IGNORED);
 | |
|  }
 | |
|  
 | |
| -void C_AlertMessage(ALERT_TYPE atype, char *szFmt, ...)
 | |
| +void C_AlertMessage(ALERT_TYPE atype, const char *szFmt, ...)
 | |
|  {
 | |
|  	if (atype != at_logged)
 | |
|  	{
 | |
|  		RETURN_META(MRES_IGNORED);
 | |
|  	}
 | |
|  
 | |
|  	/* There are also more messages but we want only logs
 | |
|  	at_notice,
 | |
| @@ -1324,17 +1324,17 @@ void C_AlertMessage(ALERT_TYPE atype, ch
 | |
|  	if (retVal)
 | |
|  	{
 | |
|  		RETURN_META(MRES_SUPERCEDE);
 | |
|  	}
 | |
|  
 | |
|      RETURN_META(MRES_IGNORED);
 | |
|  }
 | |
|  
 | |
| -void C_ChangeLevel(char *map, char *what)
 | |
| +void C_ChangeLevel(const char *map, const char *what)
 | |
|  {
 | |
|  	int ret = executeForwards(FF_ChangeLevel,  map);
 | |
|  	if (ret)
 | |
|  		RETURN_META(MRES_SUPERCEDE);
 | |
|  	RETURN_META(MRES_IGNORED);
 | |
|  }
 | |
|  
 | |
|  void C_CvarValue2(const edict_t *pEdict, int requestId, const char *cvar, const char *value)
 | |
| @@ -1366,17 +1366,17 @@ void C_CvarValue2(const edict_t *pEdict,
 | |
|  
 | |
|  			break;
 | |
|  		}
 | |
|  	}
 | |
|  
 | |
|  	RETURN_META(MRES_HANDLED);
 | |
|  }
 | |
|  
 | |
| -C_DLLEXPORT	int	Meta_Query(char	*ifvers, plugin_info_t **pPlugInfo,	mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT	int	Meta_Query(const char	*ifvers, plugin_info_t **pPlugInfo,	mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	gpMetaUtilFuncs = pMetaUtilFuncs;
 | |
|  	*pPlugInfo = &Plugin_info;
 | |
|  
 | |
|  	int	mmajor = 0, mminor = 0,	pmajor = 0, pminor = 0;
 | |
|  		
 | |
|  	sscanf(ifvers, "%d:%d",	&mmajor, &mminor);
 | |
|  	sscanf(Plugin_info.ifvers, "%d:%d",	&pmajor, &pminor);
 | |
| @@ -1530,17 +1530,17 @@ C_DLLEXPORT	int	Meta_Detach(PLUG_LOADTIM
 | |
|  	Module_UncacheFunctions();
 | |
|  
 | |
|  	ClearLibraries(LibSource_Plugin);
 | |
|  	ClearLibraries(LibSource_Module);
 | |
|  
 | |
|  	return (TRUE);
 | |
|  }
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll(enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals)
 | |
|  {
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll(enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals)
 | |
|  {
 | |
| diff --git a/amxmodx/modules.cpp b/amxmodx/modules.cpp
 | |
| --- a/amxmodx/modules.cpp
 | |
| +++ b/amxmodx/modules.cpp
 | |
| @@ -24,18 +24,21 @@
 | |
|  *  L.L.C ("Valve"). You must obey the GNU General Public License in all
 | |
|  *  respects for all of the code used other than the HL Engine and MODs
 | |
|  *  from Valve. If you modify this file, you may extend this exception
 | |
|  *  to your version of the file, but you are not obligated to do so. If
 | |
|  *  you do not wish to do so, delete this exception statement from your
 | |
|  *  version.
 | |
|  */
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
| +#if defined(__linux__)
 | |
|  #include <malloc.h>
 | |
| +#endif
 | |
| +
 | |
|  #include <stdlib.h>
 | |
|  #include <sys/mman.h>
 | |
|  #include "sclinux.h"
 | |
|  #endif
 | |
|  
 | |
|  #include "amxmodx.h"
 | |
|  #include "osdep.h"			// sleep, etc
 | |
|  #include "CFile.h"
 | |
| @@ -81,17 +84,17 @@ bool DirExists(const char *dir)
 | |
|  	
 | |
|  	if (S_ISDIR(s.st_mode))
 | |
|  		return true;
 | |
|  #endif
 | |
|  
 | |
|  	return false;
 | |
|  }
 | |
|  
 | |
| -void report_error(int code, char* fmt, ...)
 | |
| +void report_error(int code, const char* fmt, ...)
 | |
|  {
 | |
|  	va_list argptr;
 | |
|  	char string[256];
 | |
|  	*string = 0;
 | |
|  	va_start(argptr, fmt);
 | |
|  	vsnprintf(string, 255, fmt, argptr);
 | |
|  	string[255] = 0;
 | |
|  	va_end(argptr);
 | |
| @@ -101,17 +104,17 @@ void report_error(int code, char* fmt, .
 | |
|  		AMXXLOG_Log("Error:");
 | |
|  		AMXXLOG_Log(string);
 | |
|  	} else {
 | |
|  		AMXXLOG_Log("!!! There was an unexpected module error.");
 | |
|  		AMXXLOG_Log("The server may not work correctly.");
 | |
|  	}
 | |
|  }
 | |
|  
 | |
| -void print_srvconsole(char *fmt, ...)
 | |
| +void print_srvconsole(const char *fmt, ...)
 | |
|  {
 | |
|  	va_list argptr;
 | |
|  	static char string[384];
 | |
|  	va_start(argptr, fmt);
 | |
|  	vsnprintf(string, sizeof(string) - 1, fmt, argptr);
 | |
|  	string[sizeof(string) - 1] = '\0';
 | |
|  	va_end(argptr);
 | |
|  	
 | |
| @@ -335,21 +338,24 @@ int load_amxscript(AMX *amx, void **prog
 | |
|  			strcpy(error, "Failed to initialize JIT'd plugin");
 | |
|  			
 | |
|  			return (amx->error = AMX_ERR_INIT);
 | |
|  		}
 | |
|  	
 | |
|  		if ((err = amx_InitJIT(amx, (void *)rt, (void *)np)) == AMX_ERR_NONE) 
 | |
|  		{
 | |
|  			//amx->base = (unsigned char FAR *)realloc(np, amx->code_size);
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  			amx->base = (unsigned char *)VirtualAlloc(NULL, amx->code_size, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
 | |
| -#else
 | |
| -			//posix_memalign((void **)&(amx->base), sysconf(_SC_PAGESIZE), amx->code_size);
 | |
| +#elif defined(__GNUC__)
 | |
| +# if defined(__APPLE__)
 | |
| +			amx->base = (unsigned char *)valloc(amx->code_size);
 | |
| +# else
 | |
|  			amx->base = (unsigned char *)memalign(sysconf(_SC_PAGESIZE), amx->code_size);
 | |
| +# endif
 | |
|  			mprotect((void *)amx->base, amx->code_size, PROT_READ|PROT_WRITE|PROT_EXEC);
 | |
|  #endif
 | |
|  			if (amx->base)
 | |
|  				memcpy(amx->base, np, amx->code_size);
 | |
|  			
 | |
|  			delete [] np;
 | |
|  			delete [] rt;
 | |
|  			
 | |
| @@ -636,17 +642,17 @@ int unload_amxscript(AMX* amx, void** pr
 | |
|  		a.remove();
 | |
|  	
 | |
|  	char *prg = (char *)*program;
 | |
|  	
 | |
|  	if (!prg)
 | |
|  		return AMX_ERR_NONE;
 | |
|  
 | |
|  #if defined JIT
 | |
| -#if defined __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  	if ((flags & AMX_FLAG_JITC) != AMX_FLAG_JITC)
 | |
|  	{
 | |
|  		delete [] prg;
 | |
|  	} else {
 | |
|  #ifdef free
 | |
|  #undef free
 | |
|  		free(prg);
 | |
|  #define free(ptr)	m_deallocator(__FILE__, __LINE__, __FUNCTION__, m_alloc_free, ptr)
 | |
| @@ -715,17 +721,17 @@ const char* get_amxscriptname(AMX* amx)
 | |
|  	return a ? (*a).getName() : "";
 | |
|  }
 | |
|  
 | |
|  void get_modname(char* buffer)
 | |
|  {
 | |
|  	strcpy(buffer, g_mod_name.c_str());
 | |
|  }
 | |
|  
 | |
| -char* build_pathname(char *fmt, ...)
 | |
| +char* build_pathname(const char *fmt, ...)
 | |
|  {
 | |
|  	static char string[256];
 | |
|  	int b;
 | |
|  	int a = b = snprintf(string, 255, "%s%c", g_mod_name.c_str(), PATH_SEP_CHAR);
 | |
|  
 | |
|  	va_list argptr;
 | |
|  	va_start(argptr, fmt);
 | |
|  	a += vsnprintf (&string[a], 255 - a, fmt, argptr);
 | |
| @@ -741,17 +747,17 @@ char* build_pathname(char *fmt, ...)
 | |
|  			*path = PATH_SEP_CHAR;
 | |
|  		}
 | |
|  		++path;
 | |
|  	}
 | |
|  
 | |
|  	return string;
 | |
|  }
 | |
|  
 | |
| -char *build_pathname_r(char *buffer, size_t maxlen, char *fmt, ...)
 | |
| +char *build_pathname_r(char *buffer, size_t maxlen, const char *fmt, ...)
 | |
|  {
 | |
|  	snprintf(buffer, maxlen, "%s%c", g_mod_name.c_str(), PATH_SEP_CHAR);
 | |
|  
 | |
|  	size_t len = strlen(buffer);
 | |
|  	char *ptr = buffer + len;
 | |
|  
 | |
|  	va_list argptr;
 | |
|  	va_start(argptr, fmt);
 | |
| @@ -766,17 +772,17 @@ char *build_pathname_r(char *buffer, siz
 | |
|  		}
 | |
|  		++ptr;
 | |
|  	}
 | |
|  
 | |
|  	return buffer;
 | |
|  }
 | |
|  
 | |
|  // build pathname based on addons dir
 | |
| -char* build_pathname_addons(char *fmt, ...)
 | |
| +char* build_pathname_addons(const char *fmt, ...)
 | |
|  {
 | |
|  	static char string[256];
 | |
|  
 | |
|  	va_list argptr;
 | |
|  	va_start(argptr, fmt);
 | |
|  	vsnprintf (string, 255, fmt, argptr);
 | |
|  	va_end(argptr);
 | |
|  
 | |
| @@ -870,29 +876,31 @@ bool ConvertModuleName(const char *pathS
 | |
|  	} else {
 | |
|  		*ptr = '\0';
 | |
|  	}
 | |
|  
 | |
|  	path.assign(orig_path);
 | |
|  	path.append(PATH_SEP_CHAR);
 | |
|  	path.append(tmpname);
 | |
|  	path.append("_amxx");
 | |
| -#if defined __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|   #if defined AMD64 || PAWN_CELL_SIZE==64
 | |
|  	path.append("_amd64");
 | |
|   #else
 | |
|  	path.append("_i");
 | |
|  	path.append(iDigit);
 | |
|  	path.append("86");
 | |
|   #endif
 | |
|  #endif
 | |
|  #if defined WIN32
 | |
|  	path.append(".dll");
 | |
|  #elif defined __linux__
 | |
|  	path.append(".so");
 | |
| +#elif defined __APPLE__
 | |
| +	path.append(".dylib");
 | |
|  #endif
 | |
|  
 | |
|  	return true;
 | |
|  }
 | |
|  
 | |
|  bool LoadModule(const char *shortname, PLUG_LOADTIME now, bool simplify, bool noFileBail)
 | |
|  {
 | |
|  	char pathString[512];
 | |
| @@ -1174,30 +1182,26 @@ void modules_callPluginsUnloading()
 | |
|  		(*iter).CallPluginsUnloading();
 | |
|  		++iter;
 | |
|  	}
 | |
|  }
 | |
|  
 | |
|  // new functions
 | |
|  int MNF_AddNatives(AMX_NATIVE_INFO* natives)
 | |
|  {
 | |
| -	CList<CModule, const char *>::iterator a = g_modules.begin();
 | |
| -
 | |
|  	if (!g_CurrentlyCalledModule || g_ModuleCallReason != ModuleCall_Attach)
 | |
|  		return FALSE;				// may only be called from attach
 | |
|  
 | |
|  	g_CurrentlyCalledModule->m_Natives.push_back(natives);
 | |
|  	
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  int MNF_AddNewNatives(AMX_NATIVE_INFO *natives)
 | |
|  {
 | |
| -	CList<CModule, const char *>::iterator a = g_modules.begin();
 | |
| -
 | |
|  	if (!g_CurrentlyCalledModule || g_ModuleCallReason != ModuleCall_Attach)
 | |
|  		return FALSE;				// may only be called from attach
 | |
|  
 | |
|  	g_CurrentlyCalledModule->m_NewNatives.push_back(natives);
 | |
|  
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
| diff --git a/amxmodx/modules.h b/amxmodx/modules.h
 | |
| --- a/amxmodx/modules.h
 | |
| +++ b/amxmodx/modules.h
 | |
| @@ -30,17 +30,17 @@
 | |
|  */
 | |
|  
 | |
|  #ifndef __MODULES_H__
 | |
|  #define __MODULES_H__
 | |
|  
 | |
|  #include "amx.h"
 | |
|  
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  	#define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  	#define DLLEXPORT __attribute__((visibility("default")))
 | |
|  	#define WINAPI
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
| diff --git a/amxmodx/natives.cpp b/amxmodx/natives.cpp
 | |
| --- a/amxmodx/natives.cpp
 | |
| +++ b/amxmodx/natives.cpp
 | |
| @@ -30,18 +30,21 @@
 | |
|  
 | |
|  #include "amxmodx.h"
 | |
|  #include "sh_stack.h"
 | |
|  #include "natives.h"
 | |
|  #include "debugger.h"
 | |
|  #include "libraries.h"
 | |
|  #include "format.h"
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
| +#if defined(__linux__)
 | |
|  #include <malloc.h>
 | |
| +#endif
 | |
| +
 | |
|  #include <stdlib.h>
 | |
|  #include <sys/mman.h>
 | |
|  #include "sclinux.h"
 | |
|  #endif
 | |
|  
 | |
|  //Written by David "BAILOPAN" Anderson
 | |
|  //With the exception for param_convert, which was written by
 | |
|  // Julien "dJeyL" Laurent
 | |
| @@ -474,22 +477,26 @@ static cell AMX_NATIVE_CALL register_nat
 | |
|  
 | |
|  	regnative *pNative = new regnative;
 | |
|  	pNative->amx = amx;
 | |
|  	pNative->func = idx;
 | |
|  	
 | |
|  	//we'll apply a safety buffer too
 | |
|  	//make our function
 | |
|  	int size = amxx_DynaCodesize();
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  	DWORD temp;
 | |
|  	pNative->pfn = new char[size + 10];
 | |
|  	VirtualProtect(pNative->pfn, size+10, PAGE_EXECUTE_READWRITE, &temp);
 | |
| -#else
 | |
| +#elif defined(__GNUC__)
 | |
| +# if defined(__APPLE__)
 | |
| +	pNative->pfn = (char *)valloc(size+10);
 | |
| +# else
 | |
|  	pNative->pfn = (char *)memalign(sysconf(_SC_PAGESIZE), size+10);
 | |
| +# endif
 | |
|  	mprotect((void *)pNative->pfn, size+10, PROT_READ|PROT_WRITE|PROT_EXEC);
 | |
|  #endif
 | |
|  
 | |
|  	int id = (int)g_RegNatives.size();
 | |
|  	
 | |
|  	amxx_DynaMake(pNative->pfn, id);
 | |
|  	pNative->func = idx;
 | |
|  	pNative->style = params[3];
 | |
| diff --git a/amxmodx/osdefs.h b/amxmodx/osdefs.h
 | |
| --- a/amxmodx/osdefs.h
 | |
| +++ b/amxmodx/osdefs.h
 | |
| @@ -34,16 +34,20 @@
 | |
|  #    define __32BIT__   1
 | |
|  #  endif
 | |
|  #endif
 | |
|  
 | |
|  #if defined __linux__
 | |
|    #include <endian.h>
 | |
|  #endif
 | |
|  
 | |
| +#if defined __APPLE__
 | |
| +  #include <sys/types.h>
 | |
| +#endif
 | |
| +
 | |
|  /* Linux NOW has these */
 | |
|  #if !defined BIG_ENDIAN
 | |
|    #define BIG_ENDIAN    4321
 | |
|  #endif
 | |
|  #if !defined LITTLE_ENDIAN
 | |
|    #define LITTLE_ENDIAN 1234
 | |
|  #endif
 | |
|  
 | |
| diff --git a/amxmodx/sclinux.h b/amxmodx/sclinux.h
 | |
| --- a/amxmodx/sclinux.h
 | |
| +++ b/amxmodx/sclinux.h
 | |
| @@ -15,36 +15,40 @@
 | |
|   *
 | |
|   * So we stick to getchar at the moment... (one needs to key ctrl-d to terminate input if getch is called with a controlling
 | |
|   * terminal driven by a tty having -raw)
 | |
|   */
 | |
|  #define getch           getchar
 | |
|  #define	stricmp(a,b)    strcasecmp(a,b)
 | |
|  #define	strnicmp(a,b,c) strncasecmp(a,b,c)
 | |
|  
 | |
| -#if defined __linux__  && !defined _snprintf 
 | |
| +#if ( defined(__linux__) || defined(__APPLE__) )  && !defined _snprintf 
 | |
|  #define _snprintf snprintf
 | |
|  #endif 
 | |
| -#if defined __linux__  && !defined _vsnprintf
 | |
| +#if ( defined(__linux__) || defined(__APPLE__) )  && !defined _vsnprintf
 | |
|  //#define _vsnprintf vsnprintf
 | |
|  #endif
 | |
|  
 | |
|  /*
 | |
|   * WinWorld wants '\'. Unices do not.
 | |
|   */
 | |
|  #define	DIRECTORY_SEP_CHAR      '/'
 | |
|  #define	DIRECTORY_SEP_STR       "/"
 | |
|  
 | |
|  /*
 | |
|   * SC assumes that a computer is Little Endian unless told otherwise. It uses
 | |
|   * (and defines) the macros BYTE_ORDER and BIG_ENDIAN.
 | |
|   * For Linux, we must overrule these settings with those defined in glibc.
 | |
|   */
 | |
|  #if !defined __BYTE_ORDER
 | |
|  # include <stdlib.h>
 | |
| +# if defined __APPLE__
 | |
| +#  include <sys/types.h>
 | |
| +#  define __BYTE_ORDER BYTE_ORDER
 | |
| +# endif
 | |
|  #endif
 | |
|  
 | |
|  #if defined __OpenBSD__
 | |
|  # define __BYTE_ORDER    BYTE_ORDER
 | |
|  # define __LITTLE_ENDIAN LITTLE_ENDIAN
 | |
|  # define __BIG_ENDIAN    BIG_ENDIAN
 | |
|  #endif
 | |
|  
 | |
| diff --git a/amxmodx/sdk/amxxmodule.cpp b/amxmodx/sdk/amxxmodule.cpp
 | |
| --- a/amxmodx/sdk/amxxmodule.cpp
 | |
| +++ b/amxmodx/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/amxmodx/sdk/amxxmodule.h b/amxmodx/sdk/amxxmodule.h
 | |
| --- a/amxmodx/sdk/amxxmodule.h
 | |
| +++ b/amxmodx/sdk/amxxmodule.h
 | |
| @@ -15,21 +15,26 @@
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -61,17 +66,17 @@ struct amxx_module_info_s
 | |
|  
 | |
|  // *** Small stuff ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -390,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2111,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2170,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/amxmodx/sh_list.h b/amxmodx/sh_list.h
 | |
| --- a/amxmodx/sh_list.h
 | |
| +++ b/amxmodx/sh_list.h
 | |
| @@ -14,17 +14,17 @@
 | |
|  // MSVC8 fix for offsetof macro redefition warnings
 | |
|  #ifdef _MSC_VER 
 | |
|  	#if _MSC_VER >= 1400
 | |
|  		#undef offsetof
 | |
|  	#endif
 | |
|  #endif
 | |
|  
 | |
|  #include <new>
 | |
| -#include <malloc.h>
 | |
| +#include <stdlib.h>
 | |
|  
 | |
|  //namespace SourceHook
 | |
|  //{
 | |
|  	//This class is from CSDM for AMX Mod X
 | |
|  	/*
 | |
|  		A circular, doubly-linked list with one sentinel node
 | |
|  
 | |
|  		Empty:
 | |
| diff --git a/amxmodx/sh_tinyhash.h b/amxmodx/sh_tinyhash.h
 | |
| --- a/amxmodx/sh_tinyhash.h
 | |
| +++ b/amxmodx/sh_tinyhash.h
 | |
| @@ -49,22 +49,22 @@
 | |
|  				val = other.val;
 | |
|  			}
 | |
|  			K key;
 | |
|  			V val;
 | |
|  		};
 | |
|  		typedef List<THashNode *> *	NodePtr;
 | |
|  	public:
 | |
|  		class const_iterator;
 | |
| -		THash() : m_Buckets(NULL), m_numBuckets(0), m_percentUsed(0.0f), m_items(0)
 | |
| +		THash() : m_Buckets(NULL), m_numBuckets(0), m_percentUsed(0.0f)
 | |
|  		{
 | |
|  			_Refactor();
 | |
|  		}
 | |
|  		THash(const THash &other) : m_Buckets(new NodePtr[other.m_numBuckets]),
 | |
| -			m_numBuckets(other.m_numBuckets), m_percentUsed(other.m_percentUsed), m_items(0)
 | |
| +			m_numBuckets(other.m_numBuckets), m_percentUsed(other.m_percentUsed)
 | |
|  		{
 | |
|  			for (size_t i=0; i<m_numBuckets; i++)
 | |
|  					m_Buckets[i] = NULL;
 | |
|  			for (const_iterator iter = other.begin(); iter != other.end(); ++iter)
 | |
|  				_FindOrInsert(iter->key)->val = iter->val;
 | |
|  		}
 | |
|  		void operator=(const THash &other)
 | |
|  		{
 | |
| @@ -77,20 +77,16 @@
 | |
|  		{
 | |
|  			_Clear();
 | |
|  		}
 | |
|  		void clear()
 | |
|  		{
 | |
|  			_Clear();
 | |
|  			_Refactor();
 | |
|  		}
 | |
| -		size_t size()
 | |
| -		{
 | |
| -			return m_items;
 | |
| -		}
 | |
|  		size_t GetBuckets()
 | |
|  		{
 | |
|  			return m_numBuckets;
 | |
|  		}
 | |
|  		float PercentUsed()
 | |
|  		{
 | |
|  			return m_percentUsed;
 | |
|  		}
 | |
| @@ -117,17 +113,16 @@
 | |
|  					delete m_Buckets[i];
 | |
|  					m_Buckets[i] = NULL;
 | |
|  				}
 | |
|  			}
 | |
|  			if (m_Buckets)
 | |
|  				delete [] m_Buckets;
 | |
|  			m_Buckets = NULL;
 | |
|  			m_numBuckets = 0;
 | |
| -			m_items = 0;
 | |
|  		}
 | |
|  	public:
 | |
|  		template <typename U>
 | |
|  		V & AltFindOrInsert(const U & ukey)
 | |
|  		{
 | |
|  			size_t place = HashAlt(ukey) % m_numBuckets;
 | |
|  			THashNode *pNode = NULL;
 | |
|  			if (!m_Buckets[place])
 | |
| @@ -224,18 +219,16 @@
 | |
|  					}
 | |
|  				}
 | |
|  				//reassign bucket table
 | |
|  				delete [] m_Buckets;
 | |
|  				m_Buckets = temp;
 | |
|  			}
 | |
|  		}
 | |
|  	public:
 | |
| -		friend class iterator;
 | |
| -		friend class const_iterator;
 | |
|  		class iterator
 | |
|  		{
 | |
|  			friend class THash;
 | |
|  		public:
 | |
|  			iterator() : curbucket(-1), hash(NULL), end(true)
 | |
|  			{
 | |
|  			};
 | |
|  			iterator(THash *h) : curbucket(-1), hash(h), end(false)
 | |
| @@ -299,18 +292,16 @@
 | |
|  				// Remove this element and move to the next one
 | |
|  				iterator tmp = *this;
 | |
|  				++tmp;
 | |
|  				delete (*iter);
 | |
|  				hash->m_Buckets[curbucket]->erase(iter);
 | |
|  				*this = tmp;
 | |
|  
 | |
|  				// :TODO: Maybe refactor to a lower size if required
 | |
| -
 | |
| -				m_items--;
 | |
|  			}
 | |
|  		private:
 | |
|  			void _Inc()
 | |
|  			{
 | |
|  				if (end || !hash || curbucket >= static_cast<int>(hash->m_numBuckets))
 | |
|  					return;
 | |
|  				if (curbucket < 0)
 | |
|  				{
 | |
| @@ -449,16 +440,18 @@
 | |
|  				}
 | |
|  			}
 | |
|  		private:
 | |
|  			int curbucket;
 | |
|  			typename List<THashNode *>::iterator iter;
 | |
|  			const THash *hash;
 | |
|  			bool end;
 | |
|  		};
 | |
| +		friend class iterator;
 | |
| +		friend class const_iterator;
 | |
|  	public:
 | |
|  		iterator begin()
 | |
|  		{
 | |
|  			return iterator(this);
 | |
|  		}
 | |
|  		iterator end()
 | |
|  		{
 | |
|  			iterator iter;
 | |
| diff --git a/amxmodx/sm_trie_tpl.h b/amxmodx/sm_trie_tpl.h
 | |
| --- a/amxmodx/sm_trie_tpl.h
 | |
| +++ b/amxmodx/sm_trie_tpl.h
 | |
| @@ -29,17 +29,17 @@
 | |
|   * Version: $Id$
 | |
|   */
 | |
|  
 | |
|  #ifndef _INCLUDE_SOURCEMOD_TEMPLATED_TRIE_H_
 | |
|  #define _INCLUDE_SOURCEMOD_TEMPLATED_TRIE_H_
 | |
|  
 | |
|  #include <new>
 | |
|  #include <string.h>
 | |
| -#include <malloc.h>
 | |
| +#include <stdlib.h>
 | |
|  #include <assert.h>
 | |
|  
 | |
|  enum NodeType
 | |
|  {
 | |
|  	Node_Unused = 0,		/* Node is not being used (sparse) */
 | |
|  	Node_Arc,				/* Node is part of an arc and does not terminate */
 | |
|  	Node_Term,				/* Node is a terminator */
 | |
|  };
 | |
| diff --git a/amxmodx/strptime.cpp b/amxmodx/strptime.cpp
 | |
| --- a/amxmodx/strptime.cpp
 | |
| +++ b/amxmodx/strptime.cpp
 | |
| @@ -5,17 +5,17 @@
 | |
|  
 | |
|       Localized strptime().
 | |
|   *-----------------------------------------------------------------------*/
 | |
|  //#include "config.h"
 | |
|  #include <time.h>
 | |
|  #include <ctype.h>
 | |
|  #include <string.h>
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  #define strnicmp strncasecmp
 | |
|  #endif
 | |
|  
 | |
|  #if _MSC_VER
 | |
|  	#if _MSC_VER >= 1400
 | |
|  		// MSVC8 - Replace POSIX stricmp with ISO C++ conformant one as it is deprecated
 | |
|  		#define stricmp _stricmp
 | |
|  
 | |
| @@ -331,18 +331,20 @@ char *strptime(const char *buf, const ch
 | |
|                 ti.qZ =     /* 0 = STD, 1 = DST */
 | |
|                 ti.qU =     /* week in year (0...53) */
 | |
|                 ti.qV = -1; /* week in year mode: 0=U, 1=W, 2=V */
 | |
|  
 | |
|   if (0 > time_int(&ti, (const unsigned char **)&buf, fmt, addthem)) buf = NULL;
 | |
|   if (0 <= ti.qS) (*defoper) ( &tm->tm_sec ,  ti.qS );
 | |
|   if (0 <= ti.qM) (*defoper) ( &tm->tm_min ,  ti.qM ); //tm->tm_min  = ti.qM;
 | |
|   if (0 <= ti.qI)
 | |
| + {
 | |
|     if (0 <= ti.qp) ti.qH = ti.qI % 12 + ti.qp * 12;
 | |
| -   else (*defoper) ( &tm->tm_hour ,  ti.qI ); //tm->tm_hour = ti.qI;
 | |
| +   else (*defoper) ( &tm->tm_hour ,  ti.qI );  //tm->tm_hour = ti.qI;
 | |
| + }
 | |
|   if (0 <= ti.qH) (*defoper) ( &tm->tm_hour ,  ti.qH ); //tm->tm_hour = ti.qH;
 | |
|   if (0 <= ti.qZ) (*defoper) ( &tm->tm_isdst ,  ti.qZ - 1 ); //tm->tm_isdst = ti.qZ - 1;
 | |
|   if (0 <= ti.qy) ti.qY = ti.qy;
 | |
|   if (0 <= ti.qY) (*defoper) ( &tm->tm_year ,
 | |
|   						ti.qY +=
 | |
|                                (ti.qY > 99? -1900:
 | |
|                                (ti.qY < 70? 100: 0)) );
 | |
|   					/*tm->tm_year = ti.qY +=
 | |
| diff --git a/amxmodx/util.cpp b/amxmodx/util.cpp
 | |
| --- a/amxmodx/util.cpp
 | |
| +++ b/amxmodx/util.cpp
 | |
| @@ -27,17 +27,17 @@
 | |
|  *  to your version of the file, but you are not obligated to do so. If
 | |
|  *  you do not wish to do so, delete this exception statement from your
 | |
|  *  version.
 | |
|  */
 | |
|  
 | |
|  #include <time.h>
 | |
|  #include "amxmodx.h"
 | |
|  
 | |
| -#if defined __linux__ && !defined _vsnprintf
 | |
| +#if ( defined(__linux__) || defined(__APPLE__) ) && !defined _vsnprintf
 | |
|  	#define _vsnprintf vsnprintf
 | |
|  #endif
 | |
|  
 | |
|  char *UTIL_VarArgs(const char *fmt, ...)
 | |
|  {
 | |
|  	va_list ap;
 | |
|  	static char string[4096];
 | |
|  
 | |
| @@ -152,38 +152,38 @@ void UTIL_IntToString(int value, char *o
 | |
|  	
 | |
|  	*output = 0;
 | |
|  	if (value < 0) value = -value;
 | |
|  	int tho = value / 1000;
 | |
|  	int aaa = 0;
 | |
|  	
 | |
|  	if (tho)
 | |
|  	{
 | |
| -		aaa += sprintf(&output[aaa], words[tho]);
 | |
| -		aaa += sprintf(&output[aaa], words[29]);
 | |
| +		aaa += sprintf(&output[aaa], "%s", words[tho]);
 | |
| +		aaa += sprintf(&output[aaa], "%s", words[29]);
 | |
|  		value = value % 1000;
 | |
|  	}
 | |
|  
 | |
|  	int hun = value / 100;
 | |
|  	
 | |
|  	if (hun)
 | |
|  	{
 | |
| -		aaa += sprintf(&output[aaa], words[hun]);
 | |
| -		aaa += sprintf(&output[aaa], words[28]);
 | |
| +		aaa += sprintf(&output[aaa], "%s", words[hun]);
 | |
| +		aaa += sprintf(&output[aaa], "%s", words[28]);
 | |
|  		value = value % 100;
 | |
|  	}
 | |
|  
 | |
|  	int ten = value / 10;
 | |
|  	int unit = value % 10;
 | |
|  	
 | |
|  	if (ten)
 | |
| -		aaa += sprintf(&output[aaa], words[(ten > 1) ? (ten + 18) : (unit + 10)]);
 | |
| +		aaa += sprintf(&output[aaa], "%s", words[(ten > 1) ? (ten + 18) : (unit + 10)]);
 | |
|  	
 | |
|  	if (ten != 1 && (unit || (!value && !hun && !tho))) 
 | |
| -		sprintf(&output[aaa], words[unit]);
 | |
| +		sprintf(&output[aaa], "%s", words[unit]);
 | |
|  }
 | |
|  
 | |
|  char* UTIL_SplitHudMessage(const char *src)
 | |
|  {
 | |
|  	static char message[512];
 | |
|  	short b = 0, d = 0, e = 0, c = -1;
 | |
|  
 | |
|  	while (src[d] && e < 480)
 | |
| @@ -237,17 +237,17 @@ short FixedSigned16(float value, float s
 | |
|  	if (output > 32767)
 | |
|  		output = 32767;
 | |
|  	else if (output < -32768)
 | |
|  		output = -32768;
 | |
|  
 | |
|  	return (short)output;
 | |
|  }
 | |
|  
 | |
| -void UTIL_HudMessage(edict_t *pEntity, const hudtextparms_t &textparms, char *pMessage)
 | |
| +void UTIL_HudMessage(edict_t *pEntity, const hudtextparms_t &textparms, const char *pMessage)
 | |
|  {
 | |
|  	if (pEntity)
 | |
|  		MESSAGE_BEGIN(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, NULL, pEntity);
 | |
|  	else
 | |
|  		MESSAGE_BEGIN(MSG_BROADCAST, SVC_TEMPENTITY);
 | |
|  
 | |
|  	WRITE_BYTE(29);
 | |
|  	WRITE_BYTE(textparms.channel & 0xFF);
 | |
| diff --git a/compiler/amxxpc/Makefile b/compiler/amxxpc/Makefile
 | |
| --- a/compiler/amxxpc/Makefile
 | |
| +++ b/compiler/amxxpc/Makefile
 | |
| @@ -1,46 +1,107 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -BINARY = amxxpc
 | |
| -
 | |
| +PROJECT = amxxpc
 | |
|  OBJECTS = amx.cpp amxxpc.cpp Binary.cpp
 | |
|  
 | |
| -LINK = -lz /lib32/libstdc++.a
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
|  
 | |
| -INCLUDE = -I.  -L.
 | |
| +C_OPT_FLAGS = -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
| +
 | |
| +LINK =
 | |
| +
 | |
| +INCLUDE = -I.
 | |
| +
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
| +
 | |
| +OS := $(shell uname -s)
 | |
| +
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_SUFFIX = _osx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -lstdc++ -mmacosx-version-min=10.5 -lz-darwin
 | |
| +else
 | |
| +	LIB_SUFFIX =
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -lz /lib32/libstdc++.a
 | |
| +endif
 | |
| +
 | |
| +LINK += -m32 -lm -ldl -L.
 | |
| +
 | |
| +CFLAGS += -DAMX_ANSIONLY -DHAVE_STDINT_H -fno-strict-aliasing \
 | |
| +	  -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fexceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX)
 | |
|  
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -DLINUX -DNDEBUG -Wno-deprecated -fexceptions -DHAVE_STDINT_H -DAMX_ANSIONLY -fno-rtti -static-libgcc
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
| +else
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
| +endif
 | |
| +
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -m32 -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
|  	mkdir -p $(BIN_DIR)
 | |
| -	$(MAKE) amxxpc
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -amxxpc: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -m32 $(OBJ_LINUX) $(LINK) -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(BINARY)
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/$(BINARY)
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| diff --git a/compiler/amxxpc/amx.cpp b/compiler/amxxpc/amx.cpp
 | |
| --- a/compiler/amxxpc/amx.cpp
 | |
| +++ b/compiler/amxxpc/amx.cpp
 | |
| @@ -37,17 +37,17 @@
 | |
|  #endif
 | |
|  
 | |
|  #include <assert.h>
 | |
|  #include <limits.h>
 | |
|  #include <stdarg.h>
 | |
|  #include <stddef.h>     /* for wchar_t */
 | |
|  #include <string.h>
 | |
|  #include "osdefs.h"
 | |
| -#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|    #include <sclinux.h>
 | |
|    #if !defined AMX_NODYNALOAD
 | |
|      #include <dlfcn.h>
 | |
|    #endif
 | |
|    #if defined JIT
 | |
|      #include <sys/types.h>
 | |
|      #include <sys/mman.h>
 | |
|    #endif
 | |
| @@ -810,22 +810,22 @@ static void expand(unsigned char *code, 
 | |
|    /* when all bytes have been expanded, the complete memory block should be done */
 | |
|    assert(memsize==0);
 | |
|  }
 | |
|  #endif /* defined AMX_INIT */
 | |
|  
 | |
|  int AMXAPI amx_Init(AMX *amx,void *program)
 | |
|  {
 | |
|    AMX_HEADER *hdr;
 | |
| -  #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__) && !defined AMX_NODYNALOAD
 | |
| +  #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__) && !defined AMX_NODYNALOAD
 | |
|      char libname[sNAMEMAX+8];  /* +1 for '\0', +3 for 'amx' prefix, +4 for extension */
 | |
|      #if defined _Windows
 | |
|        typedef int (FAR WINAPI *AMX_ENTRY)(AMX _FAR *amx);
 | |
|        HINSTANCE hlib;
 | |
| -    #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +    #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|        typedef int (*AMX_ENTRY)(AMX *amx);
 | |
|        void *hlib;
 | |
|      #endif
 | |
|      int numlibraries,i;
 | |
|      AMX_FUNCSTUB *lib;
 | |
|      AMX_ENTRY libinit;
 | |
|    #endif
 | |
|  
 | |
| @@ -960,47 +960,47 @@ int AMXAPI amx_Init(AMX *amx,void *progr
 | |
|      } /* for */
 | |
|    } /* local */
 | |
|    #endif
 | |
|  
 | |
|    /* relocate call and jump instructions */
 | |
|    amx_BrowseRelocate(amx);
 | |
|  
 | |
|    /* load any extension modules that the AMX refers to */
 | |
| -  #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__) && !defined AMX_NODYNALOAD
 | |
| +  #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__) && !defined AMX_NODYNALOAD
 | |
|      hdr=(AMX_HEADER *)amx->base;
 | |
|      numlibraries=NUMENTRIES(hdr,libraries,pubvars);
 | |
|      for (i=0; i<numlibraries; i++) {
 | |
|        lib=GETENTRY(hdr,libraries,i);
 | |
|        strcpy(libname,"amx");
 | |
|        strcat(libname,GETENTRYNAME(hdr,lib));
 | |
|        #if defined _Windows
 | |
|          strcat(libname,".dll");
 | |
|          #if defined __WIN32__
 | |
|            hlib=LoadLibraryA(libname);
 | |
|          #else
 | |
|            hlib=LoadLibrary(libname);
 | |
|            if (hlib<=HINSTANCE_ERROR)
 | |
|              hlib=NULL;
 | |
|          #endif
 | |
| -      #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +      #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|          strcat(libname,".so");
 | |
|          hlib=dlopen(libname,RTLD_NOW);
 | |
|        #endif
 | |
|        if (hlib!=NULL) {
 | |
|          /* a library that cannot be loaded or that does not have the required
 | |
|           * initialization function is simply ignored
 | |
|           */
 | |
|          char funcname[sNAMEMAX+9]; /* +1 for '\0', +4 for 'amx_', +4 for 'Init' */
 | |
|          strcpy(funcname,"amx_");
 | |
|          strcat(funcname,GETENTRYNAME(hdr,lib));
 | |
|          strcat(funcname,"Init");
 | |
|          #if defined _Windows
 | |
|            libinit=(AMX_ENTRY)GetProcAddress(hlib,funcname);
 | |
| -        #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +        #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|            libinit=(AMX_ENTRY)dlsym(hlib,funcname);
 | |
|          #endif
 | |
|          if (libinit!=NULL)
 | |
|            libinit(amx);
 | |
|        } /* if */
 | |
|        lib->address=(ucell)hlib;
 | |
|      } /* for */
 | |
|    #endif
 | |
| @@ -1024,17 +1024,17 @@ int AMXAPI amx_Init(AMX *amx,void *progr
 | |
|        DWORD prev, p = 0;
 | |
|        if ((prot & PROT_WRITE)!=0)
 | |
|          p = PAGE_EXECUTE_READWRITE;
 | |
|        else
 | |
|          p |= PAGE_EXECUTE_READ;
 | |
|        return !VirtualProtect(addr, len, p, &prev);
 | |
|      }
 | |
|  
 | |
| -  #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +  #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|  
 | |
|      /* Linux already has mprotect() */
 | |
|  
 | |
|    #else
 | |
|  
 | |
|      // TODO: Add cases for Linux, Unix, OS/2, ...
 | |
|  
 | |
|      /* DOS32 has no imposed limits on its segments */
 | |
| @@ -1099,50 +1099,50 @@ int AMXAPI amx_InitJIT(AMX *amx,void *co
 | |
|  
 | |
|  #endif  /* #if defined JIT */
 | |
|  
 | |
|  #endif  /* AMX_INIT */
 | |
|  
 | |
|  #if defined AMX_CLEANUP
 | |
|  int AMXAPI amx_Cleanup(AMX *amx)
 | |
|  {
 | |
| -  #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__) && !defined AMX_NODYNALOAD
 | |
| +  #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__) && !defined AMX_NODYNALOAD
 | |
|      #if defined _Windows
 | |
|        typedef int (FAR WINAPI *AMX_ENTRY)(AMX FAR *amx);
 | |
| -    #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +    #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|        typedef int (*AMX_ENTRY)(AMX *amx);
 | |
|      #endif
 | |
|      AMX_HEADER *hdr;
 | |
|      int numlibraries,i;
 | |
|      AMX_FUNCSTUB *lib;
 | |
|      AMX_ENTRY libcleanup;
 | |
|    #endif
 | |
|  
 | |
|    /* unload all extension modules */
 | |
| -  #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__) && !defined AMX_NODYNALOAD
 | |
| +  #if (defined _Windows || defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__) && !defined AMX_NODYNALOAD
 | |
|      hdr=(AMX_HEADER *)amx->base;
 | |
|      assert(hdr->magic==AMX_MAGIC);
 | |
|      numlibraries=NUMENTRIES(hdr,libraries,pubvars);
 | |
|      for (i=0; i<numlibraries; i++) {
 | |
|        lib=GETENTRY(hdr,libraries,i);
 | |
|        if (lib->address!=0) {
 | |
|          char funcname[sNAMEMAX+12]; /* +1 for '\0', +4 for 'amx_', +7 for 'Cleanup' */
 | |
|          strcpy(funcname,"amx_");
 | |
|          strcat(funcname,GETENTRYNAME(hdr,lib));
 | |
|          strcat(funcname,"Cleanup");
 | |
|          #if defined _Windows
 | |
|            libcleanup=(AMX_ENTRY)GetProcAddress((HINSTANCE)lib->address,funcname);
 | |
| -        #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +        #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|            libcleanup=(AMX_ENTRY)dlsym((void*)lib->address,funcname);
 | |
|          #endif
 | |
|          if (libcleanup!=NULL)
 | |
|            libcleanup(amx);
 | |
|          #if defined _Windows
 | |
|            FreeLibrary((HINSTANCE)lib->address);
 | |
| -        #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +        #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|            dlclose((void*)lib->address);
 | |
|          #endif
 | |
|        } /* if */
 | |
|      } /* for */
 | |
|    #else
 | |
|      (void)amx;
 | |
|    #endif
 | |
|    return AMX_ERR_NONE;
 | |
| @@ -1661,17 +1661,17 @@ int AMXAPI amx_PushString(AMX *amx, cell
 | |
|  #define CHKSTACK()      if (stk>amx->stp) return AMX_ERR_STACKLOW
 | |
|  #define CHKHEAP()       if (hea<amx->hlw) return AMX_ERR_HEAPLOW
 | |
|  
 | |
|  #if defined __GNUC__ && !(defined ASM32 || defined JIT)
 | |
|      /* GNU C version uses the "labels as values" extension to create
 | |
|       * fast "indirect threaded" interpreter.
 | |
|       */
 | |
|  
 | |
| -#define NEXT(cip)       goto **cip++
 | |
| +#define NEXT(cip)       goto *(const void *)*cip++
 | |
|  
 | |
|  int AMXAPI amx_Exec(AMX *amx, cell *retval, int index)
 | |
|  {
 | |
|  static const void * const amx_opcodelist[] = {
 | |
|          &&op_none,      &&op_load_pri,  &&op_load_alt,  &&op_load_s_pri,
 | |
|          &&op_load_s_alt,&&op_lref_pri,  &&op_lref_alt,  &&op_lref_s_pri,
 | |
|          &&op_lref_s_alt,&&op_load_i,    &&op_lodb_i,    &&op_const_pri,
 | |
|          &&op_const_alt, &&op_addr_pri,  &&op_addr_alt,  &&op_stor_pri,
 | |
| @@ -1841,24 +1841,24 @@ static const void * const amx_opcodelist
 | |
|      NEXT(cip);
 | |
|    op_lref_s_alt:
 | |
|      GETPARAM(offs);
 | |
|      offs= * (cell *)(data+(int)frm+(int)offs);
 | |
|      alt= * (cell *)(data+(int)offs);
 | |
|      NEXT(cip);
 | |
|    op_load_i:
 | |
|      /* verify address */
 | |
| -    if (pri>=hea && pri<stk || (ucell)pri>=(ucell)amx->stp)
 | |
| +    if ((pri>=hea && pri<stk) || (ucell)pri>=(ucell)amx->stp)
 | |
|        ABORT(amx,AMX_ERR_MEMACCESS);
 | |
|      pri= * (cell *)(data+(int)pri);
 | |
|      NEXT(cip);
 | |
|    op_lodb_i:
 | |
|      GETPARAM(offs);
 | |
|      /* verify address */
 | |
| -    if (pri>=hea && pri<stk || (ucell)pri>=(ucell)amx->stp)
 | |
| +    if ((pri>=hea && pri<stk) || (ucell)pri>=(ucell)amx->stp)
 | |
|        ABORT(amx,AMX_ERR_MEMACCESS);
 | |
|      switch (offs) {
 | |
|      case 1:
 | |
|        pri= * (data+(int)pri);
 | |
|        break;
 | |
|      case 2:
 | |
|        pri= * (uint16_t *)(data+(int)pri);
 | |
|        break;
 | |
| @@ -1914,49 +1914,49 @@ static const void * const amx_opcodelist
 | |
|      NEXT(cip);
 | |
|    op_sref_s_alt:
 | |
|      GETPARAM(offs);
 | |
|      offs= * (cell *)(data+(int)frm+(int)offs);
 | |
|      *(cell *)(data+(int)offs)=alt;
 | |
|      NEXT(cip);
 | |
|    op_stor_i:
 | |
|      /* verify address */
 | |
| -    if (alt>=hea && alt<stk || (ucell)alt>=(ucell)amx->stp)
 | |
| +    if ((alt>=hea && alt<stk) || (ucell)alt>=(ucell)amx->stp)
 | |
|        ABORT(amx,AMX_ERR_MEMACCESS);
 | |
|      *(cell *)(data+(int)alt)=pri;
 | |
|      NEXT(cip);
 | |
|    op_strb_i:
 | |
|      GETPARAM(offs);
 | |
|      /* verify address */
 | |
| -    if (alt>=hea && alt<stk || (ucell)alt>=(ucell)amx->stp)
 | |
| +    if ((alt>=hea && alt<stk) || (ucell)alt>=(ucell)amx->stp)
 | |
|        ABORT(amx,AMX_ERR_MEMACCESS);
 | |
|      switch (offs) {
 | |
|      case 1:
 | |
|        *(data+(int)alt)=(unsigned char)pri;
 | |
|        break;
 | |
|      case 2:
 | |
|        *(uint16_t *)(data+(int)alt)=(uint16_t)pri;
 | |
|        break;
 | |
|      case 4:
 | |
|        *(uint32_t *)(data+(int)alt)=(uint32_t)pri;
 | |
|        break;
 | |
|      } /* switch */
 | |
|      NEXT(cip);
 | |
|    op_lidx:
 | |
|      offs=pri*sizeof(cell)+alt;
 | |
|      /* verify address */
 | |
| -    if (offs>=hea && offs<stk || (ucell)offs>=(ucell)amx->stp)
 | |
| +    if ((offs>=hea && offs<stk) || (ucell)offs>=(ucell)amx->stp)
 | |
|        ABORT(amx,AMX_ERR_MEMACCESS);
 | |
|      pri= * (cell *)(data+(int)offs);
 | |
|      NEXT(cip);
 | |
|    op_lidx_b:
 | |
|      GETPARAM(offs);
 | |
|      offs=(pri << (int)offs)+alt;
 | |
|      /* verify address */
 | |
| -    if (offs>=hea && offs<stk || (ucell)offs>=(ucell)amx->stp)
 | |
| +    if ((offs>=hea && offs<stk) || (ucell)offs>=(ucell)amx->stp)
 | |
|        ABORT(amx,AMX_ERR_MEMACCESS);
 | |
|      pri= * (cell *)(data+(int)offs);
 | |
|      NEXT(cip);
 | |
|    op_idxaddr:
 | |
|      pri=pri*sizeof(cell)+alt;
 | |
|      NEXT(cip);
 | |
|    op_idxaddr_b:
 | |
|      GETPARAM(offs);
 | |
| @@ -2383,47 +2383,47 @@ static const void * const amx_opcodelist
 | |
|    op_dec_i:
 | |
|      *(cell *)(data+(int)pri) -= 1;
 | |
|      NEXT(cip);
 | |
|    op_movs:
 | |
|      GETPARAM(offs);
 | |
|      /* verify top & bottom memory addresses, for both source and destination
 | |
|       * addresses
 | |
|       */
 | |
| -    if (pri>=hea && pri<stk || (ucell)pri>=(ucell)amx->stp)
 | |
| +    if ((pri>=hea && pri<stk) || (ucell)pri>=(ucell)amx->stp)
 | |
|        ABORT(amx,AMX_ERR_MEMACCESS);
 | |
| -    if ((pri+offs)>hea && (pri+offs)<stk || (ucell)(pri+offs)>(ucell)amx->stp)
 | |
| +    if (((pri+offs)>hea && (pri+offs)<stk) || (ucell)(pri+offs)>(ucell)amx->stp)
 | |
|        ABORT(amx,AMX_ERR_MEMACCESS);
 | |
| -    if (alt>=hea && alt<stk || (ucell)alt>=(ucell)amx->stp)
 | |
| +    if ((alt>=hea && alt<stk) || (ucell)alt>=(ucell)amx->stp)
 | |
|        ABORT(amx,AMX_ERR_MEMACCESS);
 | |
| -    if ((alt+offs)>hea && (alt+offs)<stk || (ucell)(alt+offs)>(ucell)amx->stp)
 | |
| +    if (((alt+offs)>hea && (alt+offs)<stk) || (ucell)(alt+offs)>(ucell)amx->stp)
 | |
|        ABORT(amx,AMX_ERR_MEMACCESS);
 | |
|      memcpy(data+(int)alt, data+(int)pri, (int)offs);
 | |
|      NEXT(cip);
 | |
|    op_cmps:
 | |
|      GETPARAM(offs);
 | |
|      /* verify top & bottom memory addresses, for both source and destination
 | |
|       * addresses
 | |
|       */
 | |
| -    if (pri>=hea && pri<stk || (ucell)pri>=(ucell)amx->stp)
 | |
| +    if ((pri>=hea && pri<stk) || (ucell)pri>=(ucell)amx->stp)
 | |
|        ABORT(amx,AMX_ERR_MEMACCESS);
 | |
| -    if ((pri+offs)>hea && (pri+offs)<stk || (ucell)(pri+offs)>(ucell)amx->stp)
 | |
| +    if (((pri+offs)>hea && (pri+offs)<stk) || (ucell)(pri+offs)>(ucell)amx->stp)
 | |
|        ABORT(amx,AMX_ERR_MEMACCESS);
 | |
| -    if (alt>=hea && alt<stk || (ucell)alt>=(ucell)amx->stp)
 | |
| +    if ((alt>=hea && alt<stk) || (ucell)alt>=(ucell)amx->stp)
 | |
|        ABORT(amx,AMX_ERR_MEMACCESS);
 | |
| -    if ((alt+offs)>hea && (alt+offs)<stk || (ucell)(alt+offs)>(ucell)amx->stp)
 | |
| +    if (((alt+offs)>hea && (alt+offs)<stk) || (ucell)(alt+offs)>(ucell)amx->stp)
 | |
|        ABORT(amx,AMX_ERR_MEMACCESS);
 | |
|      pri=memcmp(data+(int)alt, data+(int)pri, (int)offs);
 | |
|      NEXT(cip);
 | |
|    op_fill:
 | |
|      GETPARAM(offs);
 | |
|      /* verify top & bottom memory addresses */
 | |
| -    if (alt>=hea && alt<stk || (ucell)alt>=(ucell)amx->stp)
 | |
| +    if ((alt>=hea && alt<stk) || (ucell)alt>=(ucell)amx->stp)
 | |
|        ABORT(amx,AMX_ERR_MEMACCESS);
 | |
| -    if ((alt+offs)>hea && (alt+offs)<stk || (ucell)(alt+offs)>(ucell)amx->stp)
 | |
| +    if (((alt+offs)>hea && (alt+offs)<stk) || (ucell)(alt+offs)>(ucell)amx->stp)
 | |
|        ABORT(amx,AMX_ERR_MEMACCESS);
 | |
|      for (i=(int)alt; offs>=(int)sizeof(cell); i+=sizeof(cell), offs-=sizeof(cell))
 | |
|        *(cell *)(data+i) = pri;
 | |
|      NEXT(cip);
 | |
|    op_halt:
 | |
|      GETPARAM(offs);
 | |
|      if (retval!=NULL)
 | |
|        *retval=pri;
 | |
| @@ -3587,17 +3587,17 @@ int AMXAPI amx_GetAddr(AMX *amx,cell amx
 | |
|  
 | |
|    assert(amx!=NULL);
 | |
|    hdr=(AMX_HEADER *)amx->base;
 | |
|    assert(hdr!=NULL);
 | |
|    assert(hdr->magic==AMX_MAGIC);
 | |
|    data=(amx->data!=NULL) ? amx->data : amx->base+(int)hdr->dat;
 | |
|  
 | |
|    assert(phys_addr!=NULL);
 | |
| -  if (amx_addr>=amx->hea && amx_addr<amx->stk || amx_addr<0 || amx_addr>=amx->stp) {
 | |
| +  if ((amx_addr>=amx->hea && amx_addr<amx->stk) || amx_addr<0 || amx_addr>=amx->stp) {
 | |
|      *phys_addr=NULL;
 | |
|      return AMX_ERR_MEMACCESS;
 | |
|    } /* if */
 | |
|  
 | |
|    *phys_addr=(cell *)(data + (int)amx_addr);
 | |
|    return AMX_ERR_NONE;
 | |
|  }
 | |
|  #endif /* AMX_GETADDR */
 | |
| diff --git a/compiler/amxxpc/amx.h b/compiler/amxxpc/amx.h
 | |
| --- a/compiler/amxxpc/amx.h
 | |
| +++ b/compiler/amxxpc/amx.h
 | |
| @@ -19,27 +19,27 @@
 | |
|   *  3.  This notice may not be removed or altered from any source distribution.
 | |
|   *
 | |
|   *  Version: $Id: amx.h 3736 2008-08-16 20:13:12Z damagedsoul $
 | |
|   */
 | |
|  
 | |
|  #if defined FREEBSD && !defined __FreeBSD__
 | |
|    #define __FreeBSD__
 | |
|  #endif
 | |
| -#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|    #include <sclinux.h>
 | |
|  #endif
 | |
|  
 | |
|  #ifndef AMX_H_INCLUDED
 | |
|  #define AMX_H_INCLUDED
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -183,17 +183,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -411,17 +411,17 @@ int AMXAPI amx_UTF8Put(char *string, cha
 | |
|  #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 LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|      #pragma options align=reset
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
| diff --git a/compiler/amxxpc/amxdbg.h b/compiler/amxxpc/amxdbg.h
 | |
| --- a/compiler/amxxpc/amxdbg.h
 | |
| +++ b/compiler/amxxpc/amxdbg.h
 | |
| @@ -44,17 +44,17 @@ extern  "C" {
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -151,17 +151,17 @@ int AMXAPI dbg_GetLineAddress(AMX_DBG *a
 | |
|  int AMXAPI dbg_GetAutomatonName(AMX_DBG *amxdbg, int automaton, const char **name);
 | |
|  int AMXAPI dbg_GetStateName(AMX_DBG *amxdbg, int state, const char **name);
 | |
|  int AMXAPI dbg_GetTagName(AMX_DBG *amxdbg, int tag, const char **name);
 | |
|  int AMXAPI dbg_GetVariable(AMX_DBG *amxdbg, const char *symname, ucell scopeaddr, const AMX_DBG_SYMBOL **sym);
 | |
|  int AMXAPI dbg_GetArrayDim(AMX_DBG *amxdbg, const AMX_DBG_SYMBOL *sym, const AMX_DBG_SYMDIM **symdim);
 | |
|  
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|      #pragma options align=reset
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
| diff --git a/compiler/amxxpc/amxxpc.cpp b/compiler/amxxpc/amxxpc.cpp
 | |
| --- a/compiler/amxxpc/amxxpc.cpp
 | |
| +++ b/compiler/amxxpc/amxxpc.cpp
 | |
| @@ -1,10 +1,10 @@
 | |
|  #include <stdio.h>
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) | defined (__APPLE__)
 | |
|  #include <unistd.h>
 | |
|  #else
 | |
|  #include <fcntl.h>
 | |
|  #include <io.h>
 | |
|  #endif
 | |
|  #include <stdlib.h>
 | |
|  #include "zlib.h"
 | |
|  #include "amx.h"
 | |
| @@ -24,57 +24,58 @@ static PRINTF pc_printf = NULL;
 | |
|  void ReadFileIntoPl(abl *pl, FILE *fp);
 | |
|  bool CompressPl(abl *pl);
 | |
|  void Pl2Bh(abl *pl, BinPlugin *bh);
 | |
|  void WriteBh(BinaryWriter *bw, BinPlugin *bh);
 | |
|  
 | |
|  int main(int argc, char **argv)
 | |
|  {
 | |
|  	struct abl pl32;
 | |
| -	struct abl pl64;
 | |
|  
 | |
|  #ifdef _DEBUG
 | |
|  	printf("debug clamp\n");
 | |
|  	getchar();
 | |
|  #endif
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__)
 | |
|  	HINSTANCE lib = NULL;
 | |
|  	if (FileExists("./amxxpc32.so"))
 | |
|  		lib = dlmount("./amxxpc32.so");
 | |
|  	else
 | |
|  		lib = dlmount("amxxpc32.so");
 | |
| +#elif defined(__APPLE__)
 | |
| +	HINSTANCE lib = dlmount("amxxpc32.dylib");
 | |
|  #else
 | |
|  	HINSTANCE lib = dlmount("amxxpc32.dll");
 | |
|  #endif
 | |
|  	if (!lib)
 | |
|  	{
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  		printf("compiler failed to instantiate: %s\n", dlerror());
 | |
|  #else
 | |
|  		printf("compiler failed to instantiate: %d\n", GetLastError());
 | |
|  #endif
 | |
|  		exit(0);
 | |
|  	}
 | |
|  
 | |
|  	COMPILER sc32 = (COMPILER)dlsym(lib, "Compile32");
 | |
|  	pc_printf = (PRINTF)dlsym(lib, "pc_printf");
 | |
|  
 | |
|  	if (!sc32 || !pc_printf)
 | |
|  	{
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  		printf("compiler failed to link: %p.\n",sc32);
 | |
|  #else
 | |
|  		printf("compiler failed to link: %d.\n", GetLastError());
 | |
|  #endif
 | |
|  		exit(0);
 | |
|  	}
 | |
|  
 | |
|  	pc_printf("Welcome to the AMX Mod X %s Compiler.\n", VERSION_STRING);
 | |
| -	pc_printf("Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team\n\n");
 | |
| +	pc_printf("Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team\n\n");
 | |
|  	
 | |
|  	if (argc < 2)
 | |
|  	{
 | |
|  		pc_printf("Usage: <file.sma> [options]\n");
 | |
|  		pc_printf("Use -? or --help to see full options\n\n");
 | |
|  		getchar();
 | |
|  		exit(0);
 | |
|  	}
 | |
| @@ -238,17 +239,17 @@ void ReadFileIntoPl(abl *pl, FILE *fp)
 | |
|  //we get the full name of the file here
 | |
|  //our job is to a] switch the .sma extension to .amx
 | |
|  // and to b] strip everything but the trailing name
 | |
|  char *swiext(const char *file, const char *ext, int isO)
 | |
|  {
 | |
|  	int i = 0, pos = -1, j = 0;
 | |
|  	int fileLen = strlen(file);
 | |
|  	int extLen = strlen(ext);
 | |
| -	int max = 0, odirFlag = -1;
 | |
| +	int odirFlag = -1;
 | |
|  
 | |
|  	for (i=fileLen-1; i>=0; i--)
 | |
|  	{
 | |
|  		if (file[i] == '.' && pos == -1)
 | |
|  		{
 | |
|  			pos = i+1;
 | |
|  		}
 | |
|  		if ((file[i] == '/' || file[i] == '\\') && !isO)
 | |
| @@ -334,17 +335,17 @@ void show_help()
 | |
|  	printf("\t-H<hwnd> window handle to send a notification message on finish\n");
 | |
|  	printf("\t-i<name> path for include files\n");
 | |
|  	printf("\t-l       create list file (preprocess only)\n");
 | |
|  	printf("\t-o<name> set base name of output file\n");
 | |
|  	printf("\t-p<name> set name of \"prefix\" file\n");
 | |
|  	printf("\t-r[name] write cross reference report to console or to specified file\n");
 | |
|  }
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  bool FileExists(const char *file)
 | |
|  {
 | |
|  	FILE *fp = fopen(file, "rb");
 | |
|  	if (!fp)
 | |
|  		return false;
 | |
|  	fclose(fp);
 | |
|  	return true;
 | |
|  }
 | |
| diff --git a/compiler/amxxpc/amxxpc.h b/compiler/amxxpc/amxxpc.h
 | |
| --- a/compiler/amxxpc/amxxpc.h
 | |
| +++ b/compiler/amxxpc/amxxpc.h
 | |
| @@ -1,24 +1,24 @@
 | |
|  #ifndef _AMXXSC_INCLUDE_H
 | |
|  #define _AMXXSC_INCLUDE_H
 | |
|  
 | |
|  #define VERSION_STRING		"1.8.1-300"
 | |
|  #define MAGIC_HEADER2		0x414D5858
 | |
|  #define	MAGIC_VERSION		0x0300
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  # include <dlfcn.h>
 | |
|  #else
 | |
|  # include <windows.h>
 | |
|  #endif
 | |
|  
 | |
|  #include <string.h>
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  # define dlmount(x)		dlopen(x, RTLD_NOW|RTLD_GLOBAL)
 | |
|    typedef void*			HINSTANCE;
 | |
|  #else
 | |
|  # define dlsym(x, s)	GetProcAddress(x, s)
 | |
|  # define dlmount(x)		LoadLibrary(x)
 | |
|  # define dlclose(x)		FreeLibrary(x)
 | |
|  #endif
 | |
|  
 | |
| @@ -60,13 +60,13 @@ struct BinPlugin
 | |
|  {
 | |
|  	int8_t cellsize;	//cell size
 | |
|  	int32_t imagesize;	//uncompressed image size
 | |
|  	int32_t disksize;	//compressed image size
 | |
|  	int32_t memsize;	//memory image size
 | |
|  	int32_t offs;		//file offset
 | |
|  };
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  bool FileExists(const char *file);
 | |
|  #endif
 | |
|  
 | |
|  #endif //_AMXXSC_INCLUDE_H
 | |
| diff --git a/compiler/amxxpc/libz-darwin.a b/compiler/amxxpc/libz-darwin.a
 | |
| new file mode 100644
 | |
| index 0000000000000000000000000000000000000000..03964e8e745100720d199fbdcfabe399f3aafdaa
 | |
| GIT binary patch
 | |
| literal 87176
 | |
| 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
 | |
| 
 | |
| diff --git a/compiler/amxxpc/osdefs.h b/compiler/amxxpc/osdefs.h
 | |
| --- a/compiler/amxxpc/osdefs.h
 | |
| +++ b/compiler/amxxpc/osdefs.h
 | |
| @@ -34,16 +34,20 @@
 | |
|  #    define __32BIT__   1
 | |
|  #  endif
 | |
|  #endif
 | |
|  
 | |
|  #if defined __linux__
 | |
|    #include <endian.h>
 | |
|  #endif
 | |
|  
 | |
| +#if defined __APPLE__
 | |
| +  #include <sys/types.h>
 | |
| +#endif
 | |
| +
 | |
|  /* Linux NOW has these */
 | |
|  #if !defined BIG_ENDIAN
 | |
|    #define BIG_ENDIAN    4321
 | |
|  #endif
 | |
|  #if !defined LITTLE_ENDIAN
 | |
|    #define LITTLE_ENDIAN 1234
 | |
|  #endif
 | |
|  
 | |
| diff --git a/compiler/amxxpc/sclinux.h b/compiler/amxxpc/sclinux.h
 | |
| --- a/compiler/amxxpc/sclinux.h
 | |
| +++ b/compiler/amxxpc/sclinux.h
 | |
| @@ -27,16 +27,20 @@
 | |
|  
 | |
|  /*
 | |
|   * SC assumes that a computer is Little Endian unless told otherwise. It uses
 | |
|   * (and defines) the macros BYTE_ORDER and BIG_ENDIAN.
 | |
|   * For Linux, we must overrule these settings with those defined in glibc.
 | |
|   */
 | |
|  #if !defined __BYTE_ORDER
 | |
|  # include <stdlib.h>
 | |
| +# if defined __APPLE__
 | |
| +#  include <sys/types.h>
 | |
| +#  define __BYTE_ORDER BYTE_ORDER
 | |
| +# endif
 | |
|  #endif
 | |
|  
 | |
|  #if defined __OpenBSD__ || defined __FreeBSD__
 | |
|  # define __BYTE_ORDER    BYTE_ORDER
 | |
|  # define __LITTLE_ENDIAN LITTLE_ENDIAN
 | |
|  # define __BIG_ENDIAN    BIG_ENDIAN
 | |
|  #endif
 | |
|  
 | |
| diff --git a/compiler/libpc300/Makefile b/compiler/libpc300/Makefile
 | |
| --- a/compiler/libpc300/Makefile
 | |
| +++ b/compiler/libpc300/Makefile
 | |
| @@ -1,46 +1,108 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing -fvisibility=hidden
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -NAME = amxxpc32
 | |
| +PROJECT = amxxpc32
 | |
| +OBJECTS = sc1.c sc2.c sc3.c sc4.c sc5.c sc6.c sc7.c scvars.c scmemfil.c scstate.c sclist.c sci18n.c \
 | |
| +	  scexpand.c pawncc.c libpawnc.c prefix.c memfile.c
 | |
|  
 | |
| -OBJECTS = sc1.c sc2.c sc3.c sc4.c sc5.c sc6.c sc7.c scvars.c scmemfil.c \
 | |
| -	scstate.c sclist.c sci18n.c scexpand.c pawncc.c libpawnc.c prefix.c \
 | |
| -	memfile.c
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
| +
 | |
| +C_OPT_FLAGS = -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
|  LINK = -lpthread
 | |
|  
 | |
| -INCLUDE = -I. 
 | |
| +INCLUDE = -I.
 | |
|  
 | |
| -BINARY = $(NAME).so
 | |
| -BIN_DIR = Release
 | |
| -CFLAGS += -DPAWN_CELL_SIZE=32 
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
|  
 | |
| -CFLAGS += -DLINUX -DNDEBUG -DHAVE_STDINT_H -DENABLE_BINRELOC -DNO_MAIN -DPAWNC_DLL -static-libgcc
 | |
| +OS := $(shell uname -s)
 | |
|  
 | |
| -CFLAGS += $(OPT_FLAGS)
 | |
| -OBJ_LINUX := $(OBJECTS:%.c=$(BIN_DIR)/%.o)
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -mmacosx-version-min=10.5
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared
 | |
| +endif
 | |
| +
 | |
| +LINK += -m32 -lm -ldl
 | |
| +
 | |
| +CFLAGS += -DENABLE_BINRELOC -DNO_MAIN -DPAWNC_DLL -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall \
 | |
| +	  -Werror
 | |
| +CPPFLAGS += -fexceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT).$(LIB_EXT)
 | |
| +
 | |
| +ifeq "$(DEBUG)" "true"
 | |
| +	BIN_DIR = Debug
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
| +else
 | |
| +	BIN_DIR = Release
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
| +
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
| +else
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
| +endif
 | |
| +
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.c=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.c
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -m32 -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
| -	mkdir -p Release
 | |
| -	$(MAKE) pawn_make
 | |
| +	mkdir -p $(BIN_DIR)
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -pawn_make: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -m32 $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| -
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(BINARY)
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| diff --git a/compiler/libpc300/amx.h b/compiler/libpc300/amx.h
 | |
| --- a/compiler/libpc300/amx.h
 | |
| +++ b/compiler/libpc300/amx.h
 | |
| @@ -28,27 +28,27 @@
 | |
|  		#define chdir _chdir
 | |
|  		#define stricmp _stricmp
 | |
|  	#endif
 | |
|  #endif
 | |
|  
 | |
|  #if defined FREEBSD && !defined __FreeBSD__
 | |
|    #define __FreeBSD__
 | |
|  #endif
 | |
| -#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|    #include <sclinux.h>
 | |
|  #endif
 | |
|  
 | |
|  #ifndef AMX_H_INCLUDED
 | |
|  #define AMX_H_INCLUDED
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -192,17 +192,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -420,17 +420,17 @@ int AMXAPI amx_UTF8Put(char *string, cha
 | |
|  #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 LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|      #pragma options align=reset
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
| diff --git a/compiler/libpc300/amxdbg.h b/compiler/libpc300/amxdbg.h
 | |
| --- a/compiler/libpc300/amxdbg.h
 | |
| +++ b/compiler/libpc300/amxdbg.h
 | |
| @@ -44,17 +44,17 @@ extern  "C" {
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -151,17 +151,17 @@ int AMXAPI dbg_GetLineAddress(AMX_DBG *a
 | |
|  int AMXAPI dbg_GetAutomatonName(AMX_DBG *amxdbg, int automaton, const char **name);
 | |
|  int AMXAPI dbg_GetStateName(AMX_DBG *amxdbg, int state, const char **name);
 | |
|  int AMXAPI dbg_GetTagName(AMX_DBG *amxdbg, int tag, const char **name);
 | |
|  int AMXAPI dbg_GetVariable(AMX_DBG *amxdbg, const char *symname, ucell scopeaddr, const AMX_DBG_SYMBOL **sym);
 | |
|  int AMXAPI dbg_GetArrayDim(AMX_DBG *amxdbg, const AMX_DBG_SYMBOL *sym, const AMX_DBG_SYMDIM **symdim);
 | |
|  
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|      #pragma options align=reset
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
| diff --git a/compiler/libpc300/libpawnc.c b/compiler/libpc300/libpawnc.c
 | |
| --- a/compiler/libpc300/libpawnc.c
 | |
| +++ b/compiler/libpc300/libpawnc.c
 | |
| @@ -25,28 +25,25 @@
 | |
|  #include <assert.h>
 | |
|  #include <stdio.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <string.h>
 | |
|  #include "sc.h"
 | |
|  
 | |
|  #if defined PAWNC_DLL
 | |
|  
 | |
| -#ifndef __linux__
 | |
| +#if !defined(__linux__) && !defined(__APPLE__)
 | |
|  #include "dllmain.c"
 | |
|  #endif
 | |
|  
 | |
|  # define MAX_ARGS   100
 | |
|  # if !defined UNUSED_PARAM
 | |
|  #   define UNUSED_PARAM(p) ((void)(p))
 | |
|  # endif
 | |
|  
 | |
| -  static char *argv[MAX_ARGS];
 | |
| -  static int  argc;
 | |
| -
 | |
|  #if PAWN_CELL_SIZE==32
 | |
|  #define EXCOMPILER	Compile32
 | |
|  #else
 | |
|  #define EXCOMPILER	Compile64
 | |
|  #endif
 | |
|  
 | |
|  # if defined __WIN32__ || defined _WIN32 || defined WIN32 || defined __NT__
 | |
|    __declspec (dllexport)
 | |
| diff --git a/compiler/libpc300/memfile.c b/compiler/libpc300/memfile.c
 | |
| --- a/compiler/libpc300/memfile.c
 | |
| +++ b/compiler/libpc300/memfile.c
 | |
| @@ -5,16 +5,17 @@
 | |
|  memfile_t *memfile_creat(const char *name, size_t init)
 | |
|  {
 | |
|  	memfile_t mf;
 | |
|  	memfile_t *pmf;
 | |
|  
 | |
|  	mf.size = init;
 | |
|  	mf.base = (char *)malloc(init);
 | |
|  	mf.usedoffs = 0;
 | |
| +	mf.name = NULL;
 | |
|  	if (!mf.base)
 | |
|  	{
 | |
|  		return NULL;
 | |
|  	}
 | |
|  
 | |
|  	mf.offs = 0;
 | |
|  	mf._static = 0;
 | |
|  
 | |
| diff --git a/compiler/libpc300/memfile.h b/compiler/libpc300/memfile.h
 | |
| --- a/compiler/libpc300/memfile.h
 | |
| +++ b/compiler/libpc300/memfile.h
 | |
| @@ -4,17 +4,17 @@
 | |
|  #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 <stdlib.h>
 | |
|  
 | |
|  typedef struct memfile_s
 | |
|  {
 | |
|  	char *name;
 | |
|  	char *base;
 | |
|  	long offs;
 | |
|  	long usedoffs;
 | |
|  	size_t size;
 | |
| diff --git a/compiler/libpc300/osdefs.h b/compiler/libpc300/osdefs.h
 | |
| --- a/compiler/libpc300/osdefs.h
 | |
| +++ b/compiler/libpc300/osdefs.h
 | |
| @@ -36,16 +36,20 @@
 | |
|  #endif
 | |
|  
 | |
|  #if defined __FreeBSD__
 | |
|     #include <sys/endian.h>
 | |
|  #elif defined LINUX
 | |
|     #include <endian.h>
 | |
|  #endif
 | |
|  
 | |
| +#if defined __APPLE__
 | |
| +  #include <sys/types.h>
 | |
| +#endif
 | |
| +
 | |
|  /* Linux NOW has these */
 | |
|  #if !defined BIG_ENDIAN
 | |
|    #define BIG_ENDIAN    4321
 | |
|  #endif
 | |
|  #if !defined LITTLE_ENDIAN
 | |
|    #define LITTLE_ENDIAN 1234
 | |
|  #endif
 | |
|  
 | |
| diff --git a/compiler/libpc300/sc.h b/compiler/libpc300/sc.h
 | |
| --- a/compiler/libpc300/sc.h
 | |
| +++ b/compiler/libpc300/sc.h
 | |
| @@ -58,17 +58,17 @@
 | |
|  #define sDIMEN_MAX     3    /* maximum number of array dimensions */
 | |
|  #define sLINEMAX     511    /* input line length (in characters) */
 | |
|  #define sCOMP_STACK   32    /* maximum nesting of #if .. #endif sections */
 | |
|  #define sDEF_LITMAX  500    /* initial size of the literal pool, in "cells" */
 | |
|  #define sDEF_AMXSTACK 4096  /* default stack size for AMX files */
 | |
|  #define PREPROC_TERM  '\x7f'/* termination character for preprocessor expressions (the "DEL" code) */
 | |
|  #define sDEF_PREFIX   "default.inc" /* default prefix filename */
 | |
|  
 | |
| -#if defined WIN32
 | |
| +#if defined WIN32 || defined __clang__
 | |
|  #define INVISIBLE
 | |
|  #else
 | |
|  #define INVISIBLE __attribute__((visibility("protected")))
 | |
|  #endif
 | |
|  
 | |
|  typedef union {
 | |
|    void *pv;                 /* e.g. a name */
 | |
|    int i;
 | |
| diff --git a/compiler/libpc300/sc1.c b/compiler/libpc300/sc1.c
 | |
| --- a/compiler/libpc300/sc1.c
 | |
| +++ b/compiler/libpc300/sc1.c
 | |
| @@ -30,19 +30,20 @@
 | |
|  #include <stdlib.h>
 | |
|  #include <string.h>
 | |
|  
 | |
|  #if defined	__WIN32__ || defined _WIN32 || defined __MSDOS__
 | |
|    #include <conio.h>
 | |
|    #include <io.h>
 | |
|  #endif
 | |
|  
 | |
| -#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|    #include <sclinux.h>
 | |
|    #include <prefix.h> /* from BinReloc, see www.autopackage.org */
 | |
| +  #include <unistd.h>
 | |
|  #endif
 | |
|  
 | |
|  #if defined FORTIFY
 | |
|    #include "fortify.h"
 | |
|  #endif
 | |
|  
 | |
|  #if defined __BORLANDC__ || defined __WATCOMC__
 | |
|    #include <dos.h>
 | |
| @@ -416,17 +417,17 @@ int pc_compile(int argc, char *argv[])
 | |
|    int retcode;
 | |
|    char incfname[_MAX_PATH];
 | |
|    char reportname[_MAX_PATH];
 | |
|    char codepage[MAXCODEPAGE+1];
 | |
|    FILE *binf;
 | |
|    void *inpfmark;
 | |
|    int lcl_packstr,lcl_needsemicolon,lcl_tabsize;
 | |
|    #if !defined SC_LIGHT
 | |
| -    int hdrsize;
 | |
| +    int hdrsize=0;
 | |
|    #endif
 | |
|  
 | |
|    /* set global variables to their initial value */
 | |
|    binf=NULL;
 | |
|    initglobals();
 | |
|    errorset(sRESET);
 | |
|    errorset(sEXPRRELEASE);
 | |
|    lexinit();
 | |
| @@ -1243,19 +1244,19 @@ static void setconfig(char *root)
 | |
|    #else
 | |
|      char path[_MAX_PATH];
 | |
|      char *ptr,*base;
 | |
|      int len;
 | |
|  
 | |
|      /* add the default "include" directory */
 | |
|      #if defined __WIN32__ || defined _WIN32
 | |
|        GetModuleFileName(NULL,path,_MAX_PATH);
 | |
| -    #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +    #elif defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|        /* see www.autopackage.org for the BinReloc module */
 | |
| -      ptr = SELFPATH;
 | |
| +      ptr = (char *)SELFPATH;
 | |
|        if (!ptr)
 | |
|          ptr = root;
 | |
|        strncpy(path,ptr,sizeof path);
 | |
|      #else
 | |
|        if (root!=NULL)
 | |
|          strncpy(path,root,sizeof path); /* path + filename (hopefully) */
 | |
|      #endif
 | |
|      #if defined __MSDOS__
 | |
| @@ -1917,17 +1918,17 @@ static int declloc(int fstatic)
 | |
|    constvalue *enumroot;
 | |
|    cell val,size;
 | |
|    char *str;
 | |
|    value lval = {0};
 | |
|    int cur_lit=0;
 | |
|    int dim[sDIMEN_MAX];
 | |
|    int numdim;
 | |
|    int fconst;
 | |
| -  int staging_start;
 | |
| +  int staging_start=0;
 | |
|  
 | |
|    fconst=matchtoken(tCONST);
 | |
|    do {
 | |
|      ident=iVARIABLE;
 | |
|      size=1;
 | |
|      numdim=0;                           /* no dimensions */
 | |
|      tag=pc_addtag(NULL);
 | |
|      if (lex(&val,&str)!=tSYMBOL)        /* read in (new) token */
 | |
| @@ -1943,17 +1944,17 @@ static int declloc(int fstatic)
 | |
|       */
 | |
|      if ((sym=findloc(name))!=NULL && sym->compound==nestlevel)
 | |
|        error(21,name);                   /* symbol already defined */
 | |
|      /* Although valid, a local variable whose name is equal to that
 | |
|       * of a global variable or to that of a local variable at a lower
 | |
|       * level might indicate a bug.
 | |
|  	 * NOTE - don't bother with the error if there's no valid function!
 | |
|       */
 | |
| -    if ((sym=findloc(name))!=NULL && sym->compound!=nestlevel || findglb(name)!=NULL)
 | |
| +    if (((sym=findloc(name))!=NULL && sym->compound!=nestlevel) || findglb(name)!=NULL)
 | |
|  	  if (curfunc!=NULL && (curfunc->usage & uNATIVE))
 | |
|          error(219,name);                  /* variable shadows another symbol */
 | |
|      while (matchtoken('[')){
 | |
|        ident=iARRAY;
 | |
|        if (numdim == sDIMEN_MAX) {
 | |
|          error(53);                      /* exceeding maximum number of dimensions */
 | |
|          return ident;
 | |
|        } /* if */
 | |
| @@ -2858,17 +2859,17 @@ static int operatoradjust(int opertok,sy
 | |
|      if (count!=1 && count!=2)
 | |
|        error(62);      /* number or placement of the operands does not fit the operator */
 | |
|      break;
 | |
|    default:
 | |
|      if (count!=2)
 | |
|        error(62);      /* number or placement of the operands does not fit the operator */
 | |
|    } /* switch */
 | |
|  
 | |
| -  if (tags[0]==0 && (opertok!='=' && tags[1]==0 || opertok=='=' && resulttag==0))
 | |
| +  if (tags[0]==0 && ((opertok!='=' && tags[1]==0) || (opertok=='=' && resulttag==0)))
 | |
|      error(64);        /* cannot change predefined operators */
 | |
|  
 | |
|    /* change the operator name */
 | |
|    assert(strlen(opername)>0);
 | |
|    operator_symname(tmpname,opername,tags[0],tags[1],count,resulttag);
 | |
|    if ((oldsym=findglb(tmpname))!=NULL) {
 | |
|      int i;
 | |
|      if ((oldsym->usage & uDEFINE)!=0) {
 | |
| @@ -3040,17 +3041,17 @@ static void funcstub(int native)
 | |
|        if (size > INT_MAX)
 | |
|          error(105);             /* overflow, exceeding capacity */
 | |
|      #endif
 | |
|      dim[numdim++]=(int)size;
 | |
|    } /* while */
 | |
|  
 | |
|    tok=lex(&val,&str);
 | |
|    if (native) {
 | |
| -    if (tok==tPUBLIC || tok==tSTOCK || tok==tSTATIC || tok==tSYMBOL && *str==PUBLIC_CHAR)
 | |
| +    if (tok==tPUBLIC || tok==tSTOCK || tok==tSTATIC || (tok==tSYMBOL && *str==PUBLIC_CHAR))
 | |
|        error(42);                /* invalid combination of class specifiers */
 | |
|    } else {
 | |
|      if (tok==tPUBLIC || tok==tSTOCK || tok==tSTATIC)
 | |
|        tok=lex(&val,&str);
 | |
|    } /* if */
 | |
|  
 | |
|    if (tok==tOPERATOR) {
 | |
|      opertok=operatorname(symbolname);
 | |
| @@ -3161,17 +3162,17 @@ static int newfunc(char *firstname,int f
 | |
|    if (firstname!=NULL) {
 | |
|      assert(strlen(firstname)<=sNAMEMAX);
 | |
|      strcpy(symbolname,firstname);       /* save symbol name */
 | |
|      tag=firsttag;
 | |
|    } else {
 | |
|      tag= (firsttag>=0) ? firsttag : pc_addtag(NULL);
 | |
|      tok=lex(&val,&str);
 | |
|      assert(!fpublic);
 | |
| -    if (tok==tNATIVE || tok==tPUBLIC && stock)
 | |
| +    if (tok==tNATIVE || (tok==tPUBLIC && stock))
 | |
|        error(42);                /* invalid combination of class specifiers */
 | |
|      if (tok==tOPERATOR) {
 | |
|        opertok=operatorname(symbolname);
 | |
|        if (opertok==0)
 | |
|          return TRUE;            /* error message already given */
 | |
|        check_operatortag(opertok,tag,symbolname);
 | |
|      } else {
 | |
|        if (tok!=tSYMBOL && freading) {
 | |
| @@ -3507,17 +3508,17 @@ static int declargs(symbol *sym)
 | |
|              error(25);          /* function definition does not match prototype */
 | |
|          } /* if */
 | |
|          argcnt++;
 | |
|          break;
 | |
|        default:
 | |
|          error(10);                      /* illegal function or declaration */
 | |
|        } /* switch */
 | |
|      } while (tok=='&' || tok==tLABEL || tok==tCONST
 | |
| -             || tok!=tELLIPS && matchtoken(',')); /* more? */
 | |
| +             || (tok!=tELLIPS && matchtoken(','))); /* more? */
 | |
|      /* if the next token is not ",", it should be ")" */
 | |
|      needtoken(')');
 | |
|    } /* if */
 | |
|    /* resolve any "sizeof" arguments (now that all arguments are known) */
 | |
|    assert(sym->dim.arglist!=NULL);
 | |
|    arglist=sym->dim.arglist;
 | |
|    for (idx=0; idx<argcnt && arglist[idx].ident!=0; idx++) {
 | |
|      if ((arglist[idx].hasdefault & uSIZEOF)!=0 || (arglist[idx].hasdefault & uTAGOF)!=0) {
 | |
| @@ -3868,27 +3869,27 @@ static void make_report(symbol *root,FIL
 | |
|      if (sym->parent!=NULL)
 | |
|        continue;                 /* hierarchical data type */
 | |
|      assert(sym->ident==iCONSTEXPR || sym->ident==iVARIABLE
 | |
|             || sym->ident==iARRAY || sym->ident==iFUNCTN);
 | |
|      if (sym->ident!=iCONSTEXPR || (sym->usage & uENUMROOT)==0)
 | |
|        continue;
 | |
|      if ((sym->usage & uREAD)==0)
 | |
|        continue;
 | |
| -    fprintf(log,"\t\t<member name=\"T:%s\" value=\"%ld\">\n",funcdisplayname(symname,sym->name),sym->addr);
 | |
| +    fprintf(log,"\t\t<member name=\"T:%s\" value=\"%ld\">\n",funcdisplayname(symname,sym->name),(long)sym->addr);
 | |
|      if (sym->tag!=0) {
 | |
|        tagsym=find_tag_byval(sym->tag);
 | |
|        assert(tagsym!=NULL);
 | |
|        fprintf(log,"\t\t\t<tagname value=\"%s\"/>\n",tagsym->name);
 | |
|      } /* if */
 | |
|      /* browse through all fields */
 | |
|      if ((enumroot=sym->dim.enumlist)!=NULL) {
 | |
|        enumroot=enumroot->next;  /* skip root */
 | |
|        while (enumroot!=NULL) {
 | |
| -        fprintf(log,"\t\t\t<member name=\"C:%s\" value=\"%ld\">\n",funcdisplayname(symname,enumroot->name),enumroot->value);
 | |
| +        fprintf(log,"\t\t\t<member name=\"C:%s\" value=\"%ld\">\n",funcdisplayname(symname,enumroot->name),(long)enumroot->value);
 | |
|          /* find the constant with this name and get the tag */
 | |
|          ref=findglb(enumroot->name);
 | |
|          if (ref!=NULL) {
 | |
|            if (ref->x.idxtag!=0) {
 | |
|              tagsym=find_tag_byval(ref->x.idxtag);
 | |
|              assert(tagsym!=NULL);
 | |
|              fprintf(log,"\t\t\t\t<tagname value=\"%s\"/>\n",tagsym->name);
 | |
|            } /* if */
 | |
| @@ -3914,17 +3915,17 @@ static void make_report(symbol *root,FIL
 | |
|      if (sym->parent!=NULL)
 | |
|        continue;                 /* hierarchical data type */
 | |
|      assert(sym->ident==iCONSTEXPR || sym->ident==iVARIABLE
 | |
|             || sym->ident==iARRAY || sym->ident==iFUNCTN);
 | |
|      if (sym->ident!=iCONSTEXPR)
 | |
|        continue;
 | |
|      if ((sym->usage & uREAD)==0 || (sym->usage & (uENUMFIELD | uENUMROOT))!=0)
 | |
|        continue;
 | |
| -    fprintf(log,"\t\t<member name=\"C:%s\" value=\"%ld\">\n",funcdisplayname(symname,sym->name),sym->addr);
 | |
| +    fprintf(log,"\t\t<member name=\"C:%s\" value=\"%ld\">\n",funcdisplayname(symname,sym->name),(long)sym->addr);
 | |
|      if (sym->tag!=0) {
 | |
|        tagsym=find_tag_byval(sym->tag);
 | |
|        assert(tagsym!=NULL);
 | |
|        fprintf(log,"\t\t\t<tagname value=\"%s\"/>\n",tagsym->name);
 | |
|      } /* if */
 | |
|      assert(sym->refer!=NULL);
 | |
|      for (i=0; i<sym->numrefers; i++) {
 | |
|        if ((ref=sym->refer[i])!=NULL)
 | |
| @@ -4034,17 +4035,17 @@ static void make_report(symbol *root,FIL
 | |
|          if (ref->refer[i]==sym)
 | |
|            fprintf(log,"\t\t\t<dependency name=\"%s\"/>\n",xmlencode(symname,funcdisplayname(symname,ref->name)));
 | |
|      } /* for */
 | |
|      /* print parameter list, with tag & const information, plus descriptions */
 | |
|      assert(sym->dim.arglist!=NULL);
 | |
|      for (arg=0; sym->dim.arglist[arg].ident!=0; arg++) {
 | |
|        int dim,paraminfo;
 | |
|        char *outer_start,*inner_start;
 | |
| -      int outer_length,inner_length;
 | |
| +      int outer_length=0,inner_length=0;
 | |
|        if (sym->dim.arglist[arg].ident==iVARARGS)
 | |
|          fprintf(log,"\t\t\t<param name=\"...\">\n");
 | |
|        else
 | |
|          fprintf(log,"\t\t\t<param name=\"%s\">\n",sym->dim.arglist[arg].name);
 | |
|        /* print the tag name(s) for each parameter */
 | |
|        assert(sym->dim.arglist[arg].numtags>0);
 | |
|        assert(sym->dim.arglist[arg].tags!=NULL);
 | |
|        paraminfo=(sym->dim.arglist[arg].numtags>1 || sym->dim.arglist[arg].tags[0]!=0)
 | |
| @@ -5243,26 +5244,26 @@ static void doreturn(void)
 | |
|      ident=doexpr(TRUE,FALSE,TRUE,TRUE,&tag,&sym,TRUE);
 | |
|      needtoken(tTERM);
 | |
|      /* see if this function already has a sub type (an array attached) */
 | |
|      sub=finddepend(curfunc);
 | |
|      assert(sub==NULL || sub->ident==iREFARRAY);
 | |
|      if ((rettype & uRETVALUE)!=0) {
 | |
|        int retarray=(ident==iARRAY || ident==iREFARRAY);
 | |
|        /* there was an earlier "return" statement in this function */
 | |
| -      if (sub==NULL && retarray || sub!=NULL && !retarray)
 | |
| +      if ((sub==NULL && retarray) || (sub!=NULL && !retarray))
 | |
|          error(79);                      /* mixing "return array;" and "return value;" */
 | |
|      } /* if */
 | |
|      rettype|=uRETVALUE;                 /* function returns a value */
 | |
|      /* check tagname with function tagname */
 | |
|      assert(curfunc!=NULL);
 | |
|      if (!matchtag(curfunc->tag,tag,TRUE))
 | |
|        error(213);                       /* tagname mismatch */
 | |
|      if (ident==iARRAY || ident==iREFARRAY) {
 | |
| -      int dim[sDIMEN_MAX],numdim;
 | |
| +      int dim[sDIMEN_MAX],numdim=0;
 | |
|        cell arraysize;
 | |
|        assert(sym!=NULL);
 | |
|        if (sub!=NULL) {
 | |
|          assert(sub->ident==iREFARRAY);
 | |
|          /* this function has an array attached already; check that the current
 | |
|           * "return" statement returns exactly the same array
 | |
|           */
 | |
|          level=sym->dim.array.level;
 | |
| diff --git a/compiler/libpc300/sc2.c b/compiler/libpc300/sc2.c
 | |
| --- a/compiler/libpc300/sc2.c
 | |
| +++ b/compiler/libpc300/sc2.c
 | |
| @@ -22,17 +22,17 @@
 | |
|   */
 | |
|  #include <assert.h>
 | |
|  #include <stdio.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <string.h>
 | |
|  #include <ctype.h>
 | |
|  #include <math.h>
 | |
|  #include "sc.h"
 | |
| -#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|    #include <sclinux.h>
 | |
|  #endif
 | |
|  
 | |
|  #if defined FORTIFY
 | |
|    #include "fortify.h"
 | |
|  #endif
 | |
|  
 | |
|  /* flags for litchar() */
 | |
| @@ -193,17 +193,17 @@ SC_FUNC int plungefile(char *name,int tr
 | |
|  
 | |
|    if (try_includepaths && name[0]!=DIRSEP_CHAR) {
 | |
|      int i;
 | |
|      char *ptr;
 | |
|      for (i=0; !result && (ptr=get_path(i))!=NULL; i++) {
 | |
|        char path[_MAX_PATH];
 | |
|        strncpy(path,ptr,sizeof path);
 | |
|        path[sizeof path - 1]='\0';       /* force '\0' termination */
 | |
| -      strncat(path,name,sizeof(path)-strlen(path));
 | |
| +      strncat(path,name,sizeof(path) - strlen(path) - 1);
 | |
|        path[sizeof path - 1]='\0';
 | |
|        result=plungequalifiedfile(path);
 | |
|      } /* while */
 | |
|    } /* if */
 | |
|    return result;
 | |
|  }
 | |
|  
 | |
|  static void check_empty(const unsigned char *lptr)
 | |
| @@ -403,17 +403,17 @@ static void stripcom(unsigned char *line
 | |
|          *(line+1)=' ';
 | |
|          line+=2;
 | |
|        } else {
 | |
|          if (*line=='/' && *(line+1)=='*')
 | |
|            error(216);   /* nested comment */
 | |
|          #if !defined SC_LIGHT
 | |
|            /* collect the comment characters in a string */
 | |
|            if (icomment==2) {
 | |
| -            if (skipstar && (*line!='\0' && *line<=' ' || *line=='*')) {
 | |
| +            if (skipstar && ((*line!='\0' && *line<=' ') || *line=='*')) {
 | |
|                /* ignore leading whitespace and '*' characters */
 | |
|              } else if (commentidx<COMMENT_LIMIT+COMMENT_MARGIN-1) {
 | |
|                comment[commentidx++]=(char)((*line!='\n') ? *line : ' ');
 | |
|                if (commentidx>COMMENT_LIMIT && *line!='\0' && *line<=' ') {
 | |
|                  comment[commentidx]='\0';
 | |
|                  insert_docstring(comment);
 | |
|                  commentidx=0;
 | |
|                } /* if */
 | |
| @@ -580,32 +580,19 @@ static int htoi(cell *val,const unsigned
 | |
|    } /* if */
 | |
|    if (alphanum(*ptr))
 | |
|      return 0;
 | |
|    else
 | |
|      return (int)(ptr-curptr);
 | |
|  }
 | |
|  
 | |
|  #if defined __GNUC__
 | |
| -static double pow10(int value)
 | |
| +static double pow10(double d)
 | |
|  {
 | |
| -  double res=1.0;
 | |
| -  while (value>=4) {
 | |
| -    res*=10000.0;
 | |
| -    value-=5;
 | |
| -  } /* while */
 | |
| -  while (value>=2) {
 | |
| -    res*=100.0;
 | |
| -    value-=2;
 | |
| -  } /* while */
 | |
| -  while (value>=1) {
 | |
| -    res*=10.0;
 | |
| -    value-=1;
 | |
| -  } /* while */
 | |
| -  return res;
 | |
| +	return pow(10, d);
 | |
|  }
 | |
|  #endif
 | |
|  
 | |
|  /*  ftoi
 | |
|   *
 | |
|   *  Attempts to interpret a numeric symbol as a rational number, either as
 | |
|   *  IEEE 754 single/double precision floating point or as a fixed point integer.
 | |
|   *  On success it returns the number of characters processed and the value is
 | |
| @@ -1205,17 +1192,17 @@ static int command(void)
 | |
|        case tRATIONAL:
 | |
|          outval(val,FALSE);
 | |
|          code_idx+=opargs(1);
 | |
|          break;
 | |
|        case tSYMBOL:
 | |
|          sym=findloc(str);
 | |
|          if (sym==NULL)
 | |
|            sym=findglb(str);
 | |
| -        if (sym==NULL || sym->ident!=iFUNCTN && sym->ident!=iREFFUNC && (sym->usage & uDEFINE)==0) {
 | |
| +        if (sym==NULL || (sym->ident!=iFUNCTN && sym->ident!=iREFFUNC && (sym->usage & uDEFINE)==0)) {
 | |
|            error(17,str);        /* undefined symbol */
 | |
|          } else {
 | |
|            outval(sym->addr,FALSE);
 | |
|            /* mark symbol as "used", unknown whether for read or write */
 | |
|            markusage(sym,uREAD | uWRITTEN);
 | |
|            code_idx+=opargs(1);
 | |
|          } /* if */
 | |
|          break;
 | |
| @@ -1639,17 +1626,17 @@ static void substallpatterns(unsigned ch
 | |
|        start++;          /* skip non-alphapetic character (or closing quote of a string) */
 | |
|      } /* while */
 | |
|      if (*start=='\0')
 | |
|        break;            /* abort loop on error */
 | |
|      /* if matching the operator "defined", skip it plus the symbol behind it */
 | |
|      if (strncmp((char*)start,"defined",7)==0 && !isalpha((char)*(start+7))) {
 | |
|        start+=7;         /* skip "defined" */
 | |
|        /* skip white space & parantheses */
 | |
| -      while (*start<=' ' && *start!='\0' || *start=='(')
 | |
| +      while ((*start<=' ' && *start!='\0') || *start=='(')
 | |
|          start++;
 | |
|        /* skip the symbol behind it */
 | |
|        while (isalpha(*start) || isdigit(*start) || *start=='_')
 | |
|          start++;
 | |
|        /* drop back into the main loop */
 | |
|        continue;
 | |
|      } /* if */
 | |
|      /* get the prefix (length), look for a matching definition */
 | |
| @@ -1941,32 +1928,32 @@ SC_FUNC int lex(cell *lexvalue,char **le
 | |
|        } else if (find_constval(&tagname_tab,_lexstr,0)!=NULL) {
 | |
|          /* this looks like a tag override (because a tag with this name
 | |
|           * exists), but tags are not allowed right now, so it is probably an
 | |
|           * error
 | |
|           */
 | |
|          error(220);
 | |
|        } /* if */
 | |
|      } /* if */
 | |
| -  } else if (*lptr=='\"' || *lptr==sc_ctrlchar && *(lptr+1)=='\"')
 | |
| +  } else if (*lptr=='\"' || (*lptr==sc_ctrlchar && *(lptr+1)=='\"'))
 | |
|    {                                     /* unpacked string literal */
 | |
|      _lextok=tSTRING;
 | |
|      stringflags= (*lptr==sc_ctrlchar) ? RAWMODE : 0;
 | |
|      *lexvalue=_lexval=litidx;
 | |
|      lptr+=1;            /* skip double quote */
 | |
|      if ((stringflags & RAWMODE)!=0)
 | |
|        lptr+=1;          /* skip "escape" character too */
 | |
|      lptr=sc_packstr ? packedstring(lptr,stringflags) : unpackedstring(lptr,stringflags);
 | |
|      if (*lptr=='\"')
 | |
|        lptr+=1;          /* skip final quote */
 | |
|      else
 | |
|        error(37);        /* invalid (non-terminated) string */
 | |
| -  } else if (*lptr=='!' && *(lptr+1)=='\"'
 | |
| -             || *lptr=='!' && *(lptr+1)==sc_ctrlchar && *(lptr+2)=='\"'
 | |
| -             || *lptr==sc_ctrlchar && *(lptr+1)=='!' && *(lptr+2)=='\"')
 | |
| +  } else if ((*lptr=='!' && *(lptr+1)=='\"')
 | |
| +             || (*lptr=='!' && *(lptr+1)==sc_ctrlchar && *(lptr+2)=='\"')
 | |
| +             || (*lptr==sc_ctrlchar && *(lptr+1)=='!' && *(lptr+2)=='\"'))
 | |
|    {                                     /* packed string literal */
 | |
|      _lextok=tSTRING;
 | |
|      stringflags= (*lptr==sc_ctrlchar || *(lptr+1)==sc_ctrlchar) ? RAWMODE : 0;
 | |
|      *lexvalue=_lexval=litidx;
 | |
|      lptr+=2;            /* skip exclamation point and double quote */
 | |
|      if ((stringflags & RAWMODE)!=0)
 | |
|        lptr+=1;          /* skip "escape" character too */
 | |
|      lptr=sc_packstr ? unpackedstring(lptr,stringflags) : packedstring(lptr,stringflags);
 | |
| @@ -2048,17 +2035,17 @@ SC_FUNC void lexclr(int clreol)
 | |
|   */
 | |
|  SC_FUNC int matchtoken(int token)
 | |
|  {
 | |
|    cell val;
 | |
|    char *str;
 | |
|    int tok;
 | |
|  
 | |
|    tok=lex(&val,&str);
 | |
| -  if (tok==token || token==tTERM && (tok==';' || tok==tENDEXPR)) {
 | |
| +  if (tok==token || (token==tTERM && (tok==';' || tok==tENDEXPR))) {
 | |
|      return 1;
 | |
|    } else if (!sc_needsemicolon && token==tTERM && (_lexnewline || !freading)) {
 | |
|      /* Push "tok" back, because it is the token following the implicit statement
 | |
|       * termination (newline) token.
 | |
|       */
 | |
|      lexpush();
 | |
|      return 2;
 | |
|    } else {
 | |
| @@ -2413,17 +2400,17 @@ SC_FUNC void delete_symbol(symbol *root,
 | |
|    root->next=sym->next;
 | |
|    free_symbol(sym);
 | |
|  }
 | |
|  
 | |
|  SC_FUNC void delete_symbols(symbol *root,int level,int delete_labels,int delete_functions)
 | |
|  {
 | |
|    symbol *sym,*parent_sym;
 | |
|    constvalue *stateptr;
 | |
| -  int mustdelete;
 | |
| +  int mustdelete=0;
 | |
|  
 | |
|    /* erase only the symbols with a deeper nesting level than the
 | |
|     * specified nesting level */
 | |
|    while (root->next!=NULL) {
 | |
|      sym=root->next;
 | |
|      if (sym->compound<level)
 | |
|        break;
 | |
|      switch (sym->ident) {
 | |
| diff --git a/compiler/libpc300/sc3.c b/compiler/libpc300/sc3.c
 | |
| --- a/compiler/libpc300/sc3.c
 | |
| +++ b/compiler/libpc300/sc3.c
 | |
| @@ -924,17 +924,17 @@ static int hier14(value *lval1)
 | |
|        if (val<0) {
 | |
|          val=-val;
 | |
|          if (lval3.sym->x.idxtag==0)
 | |
|            exactmatch=FALSE;
 | |
|        } /* if */
 | |
|      } /* if */
 | |
|      if (lval3.sym->dim.array.level!=level)
 | |
|        return error(48); /* array dimensions must match */
 | |
| -    else if (ltlength<val || exactmatch && ltlength>val || val==0)
 | |
| +    else if (ltlength<val || (exactmatch && ltlength>val) || val==0)
 | |
|        return error(47); /* array sizes must match */
 | |
|      else if (lval3.ident!=iARRAYCELL && !matchtag(lval3.sym->x.idxtag,idxtag,TRUE))
 | |
|        error(229,(lval2.sym!=NULL) ? lval2.sym->name : lval3.sym->name); /* index tag mismatch */
 | |
|      if (level>0) {
 | |
|        /* check the sizes of all sublevels too */
 | |
|        symbol *sym1 = lval3.sym;
 | |
|        symbol *sym2 = lval2.sym;
 | |
|        int i;
 | |
| @@ -1119,17 +1119,17 @@ static int hier3(value *lval)
 | |
|  }
 | |
|  
 | |
|  static int hier2(value *lval)
 | |
|  {
 | |
|    int lvalue,tok;
 | |
|    int tag,paranthese;
 | |
|    cell val;
 | |
|    char *st;
 | |
| -  symbol *sym;
 | |
| +  symbol *sym=NULL;
 | |
|    int saveresult;
 | |
|  
 | |
|    tok=lex(&val,&st);
 | |
|    switch (tok) {
 | |
|    case tINC:                    /* ++lval */
 | |
|      if (!hier2(lval))
 | |
|        return error(22);         /* must be lvalue */
 | |
|      assert(lval->sym!=NULL);
 | |
| @@ -1242,17 +1242,17 @@ static int hier2(value *lval)
 | |
|        error(72);                /* "function" symbol has no size */
 | |
|      else if ((sym->usage & uDEFINE)==0)
 | |
|        return error(17,st);      /* undefined symbol (symbol is in the table, but it is "used" only) */
 | |
|      clear_value(lval);
 | |
|      lval->ident=iCONSTEXPR;
 | |
|      lval->constval=1;           /* preset */
 | |
|      if (sym->ident==iARRAY || sym->ident==iREFARRAY) {
 | |
|        int level;
 | |
| -      symbol *idxsym;
 | |
| +      symbol *idxsym=NULL;
 | |
|        for (level=0; matchtoken('['); level++) {
 | |
|          idxsym=NULL;
 | |
|          if (level==sym->dim.array.level && matchtoken(tSYMBOL)) {
 | |
|            char *idxname;
 | |
|            tokeninfo(&val,&idxname);
 | |
|            if ((idxsym=findconst(idxname))==NULL)
 | |
|              error(80,idxname);  /* unknown symbol, or non-constant */
 | |
|          } /* if */
 | |
| @@ -1288,17 +1288,17 @@ static int hier2(value *lval)
 | |
|        if (sym==NULL)
 | |
|          return error(17,st);      /* undefined symbol */
 | |
|        if ((sym->usage & uDEFINE)==0)
 | |
|          return error(17,st);      /* undefined symbol (symbol is in the table, but it is "used" only) */
 | |
|        tag=sym->tag;
 | |
|      } /* if */
 | |
|      if (sym->ident==iARRAY || sym->ident==iREFARRAY) {
 | |
|        int level;
 | |
| -      symbol *idxsym;
 | |
| +      symbol *idxsym=NULL;
 | |
|        for (level=0; matchtoken('['); level++) {
 | |
|          idxsym=NULL;
 | |
|          if (level==sym->dim.array.level && matchtoken(tSYMBOL)) {
 | |
|            char *idxname;
 | |
|            tokeninfo(&val,&idxname);
 | |
|            if ((idxsym=findconst(idxname))==NULL)
 | |
|              error(80,idxname);  /* unknown symbol, or non-constant */
 | |
|          } /* if */
 | |
| @@ -1457,35 +1457,35 @@ restart:
 | |
|        if (lval2.ident==iCONSTEXPR) {    /* constant expression */
 | |
|          stgdel(index,cidx);             /* scratch generated code */
 | |
|          if (lval1->arrayidx!=NULL) {    /* keep constant index, for checking */
 | |
|            assert(sym->dim.array.level>=0 && sym->dim.array.level<sDIMEN_MAX);
 | |
|            lval1->arrayidx[sym->dim.array.level]=lval2.constval;
 | |
|          } /* if */
 | |
|          if (close==']') {
 | |
|            /* normal array index */
 | |
| -          if (lval2.constval<0 || sym->dim.array.length!=0 && sym->dim.array.length<=lval2.constval)
 | |
| +          if (lval2.constval<0 || (sym->dim.array.length!=0 && sym->dim.array.length<=lval2.constval))
 | |
|              error(32,sym->name);        /* array index out of bounds */
 | |
|            if (lval2.constval!=0) {
 | |
|              /* don't add offsets for zero subscripts */
 | |
|              #if PAWN_CELL_SIZE==16
 | |
|                ldconst(lval2.constval<<1,sALT);
 | |
|              #elif PAWN_CELL_SIZE==32
 | |
|                ldconst(lval2.constval<<2,sALT);
 | |
|              #elif PAWN_CELL_SIZE==64
 | |
|                ldconst(lval2.constval<<3,sALT);
 | |
|              #else
 | |
|                #error Unsupported cell size
 | |
|              #endif
 | |
|              ob_add();
 | |
|            } /* if */
 | |
|          } else {
 | |
|            /* character index */
 | |
| -          if (lval2.constval<0 || sym->dim.array.length!=0
 | |
| -              && sym->dim.array.length*((8*sizeof(cell))/sCHARBITS)<=(ucell)lval2.constval)
 | |
| +          if (lval2.constval<0 || (sym->dim.array.length!=0
 | |
| +              && sym->dim.array.length*((8*sizeof(cell))/sCHARBITS)<=(ucell)lval2.constval))
 | |
|              error(32,sym->name);        /* array index out of bounds */
 | |
|            if (lval2.constval!=0) {
 | |
|              /* don't add offsets for zero subscripts */
 | |
|              #if sCHARBITS==16
 | |
|                ldconst(lval2.constval<<1,sALT);/* 16-bit character */
 | |
|              #else
 | |
|                ldconst(lval2.constval,sALT);   /* 8-bit character */
 | |
|              #endif
 | |
| @@ -2030,18 +2030,18 @@ static int nesting=0;
 | |
|                if (lval.ident==iARRAYCELL) {
 | |
|                  error(47);        /* array sizes must match */
 | |
|                } else {
 | |
|                  assert(lval.constval!=0); /* literal array must have a size */
 | |
|                  /* A literal array must have exactly the same size as the
 | |
|                   * function argument; a literal string may be smaller than
 | |
|                   * the function argument.
 | |
|                   */
 | |
| -                if (lval.constval>0 && arg[argidx].dim[0]!=lval.constval
 | |
| -                    || lval.constval<0 && arg[argidx].dim[0] < -lval.constval)
 | |
| +                if ((lval.constval>0 && arg[argidx].dim[0]!=lval.constval)
 | |
| +                    || (lval.constval<0 && arg[argidx].dim[0] < -lval.constval))
 | |
|                    error(47);      /* array sizes must match */
 | |
|                } /* if */
 | |
|              } /* if */
 | |
|              if (lval.ident!=iARRAYCELL) {
 | |
|                /* save array size, for default values with uSIZEOF flag */
 | |
|                cell array_sz=lval.constval;
 | |
|                assert(array_sz!=0);/* literal array must have a size */
 | |
|                if (array_sz<0)
 | |
| diff --git a/compiler/libpc300/sc4.c b/compiler/libpc300/sc4.c
 | |
| --- a/compiler/libpc300/sc4.c
 | |
| +++ b/compiler/libpc300/sc4.c
 | |
| @@ -230,17 +230,17 @@ SC_FUNC void begdseg(void)
 | |
|      stgwrite("DATA\t; ");
 | |
|      outval(glb_declared-litidx,TRUE);
 | |
|      curseg=sIN_DSEG;
 | |
|    } /* if */
 | |
|  }
 | |
|  
 | |
|  SC_FUNC void setline(int chkbounds)
 | |
|  {
 | |
| -  if ((sc_debug & sSYMBOLIC)!=0 || chkbounds && (sc_debug & sCHKBOUNDS)!=0) {
 | |
| +  if ((sc_debug & sSYMBOLIC)!=0 || (chkbounds && (sc_debug & sCHKBOUNDS)!=0)) {
 | |
|      /* generate a "break" (start statement) opcode rather than a "line" opcode
 | |
|       * because earlier versions of Small/Pawn have an incompatible version of the
 | |
|       * line opcode
 | |
|       */
 | |
|      stgwrite("\tbreak\t; ");
 | |
|      outval(code_idx,TRUE);
 | |
|      code_idx+=opcodes(1);
 | |
|    } /* if */
 | |
| @@ -714,17 +714,17 @@ SC_FUNC void ffcall(symbol *sym,const ch
 | |
|      stgwrite("\tcall ");
 | |
|      if (label!=NULL) {
 | |
|        stgwrite("l.");
 | |
|        stgwrite(label);
 | |
|      } else {
 | |
|        stgwrite(sym->name);
 | |
|      } /* if */
 | |
|      if (sc_asmfile
 | |
| -        && (label!=NULL || !isalpha(sym->name[0]) && sym->name[0]!='_'  && sym->name[0]!=sc_ctrlchar))
 | |
| +        && (label!=NULL || (!isalpha(sym->name[0]) && sym->name[0]!='_'  && sym->name[0]!=sc_ctrlchar)))
 | |
|      {
 | |
|        stgwrite("\t; ");
 | |
|        stgwrite(symname);
 | |
|      } /* if */
 | |
|      stgwrite("\n");
 | |
|      code_idx+=opcodes(1)+opargs(1);
 | |
|    } /* if */
 | |
|  }
 | |
| diff --git a/compiler/libpc300/sc5.c b/compiler/libpc300/sc5.c
 | |
| --- a/compiler/libpc300/sc5.c
 | |
| +++ b/compiler/libpc300/sc5.c
 | |
| @@ -20,17 +20,17 @@
 | |
|   *  3.  This notice may not be removed or altered from any source distribution.
 | |
|   *
 | |
|   *  Version: $Id: sc5.c 1724 2005-07-24 20:00:55Z dvander $
 | |
|   */
 | |
|  #include <assert.h>
 | |
|  #if defined	__WIN32__ || defined _WIN32 || defined __MSDOS__
 | |
|    #include <io.h>
 | |
|  #endif
 | |
| -#if defined LINUX || defined __GNUC__
 | |
| +#if defined LINUX || defined __APPLE__ || defined __GNUC__
 | |
|    #include <unistd.h>
 | |
|  #endif
 | |
|  #include <stdio.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <stdarg.h>     /* ANSI standardized variable argument list functions */
 | |
|  #include <string.h>
 | |
|  #if defined FORTIFY
 | |
|    #include "fortify.h"
 | |
| @@ -127,17 +127,17 @@ static short lastfile;
 | |
|        else
 | |
|          fprintf(fp,"%s(%d) : %s %03d: ",inpfname,fline,pre,number);
 | |
|        vfprintf(fp,string,argptr);
 | |
|        fclose(fp);
 | |
|      } /* if */
 | |
|    } /* if */
 | |
|    va_end(argptr);
 | |
|  
 | |
| -  if (number>=100 && number<200 || errnum>25){
 | |
| +  if ((number>=100 && number<200) || errnum>25){
 | |
|      if (strlen(errfname)==0) {
 | |
|        va_start(argptr,number);
 | |
|        pc_error(0,"\nCompilation aborted.",NULL,0,0,argptr);
 | |
|        va_end(argptr);
 | |
|      } /* if */
 | |
|      if (outf!=NULL) {
 | |
|        pc_closeasm(outf,TRUE);
 | |
|        outf=NULL;
 | |
| diff --git a/compiler/libpc300/sc6.c b/compiler/libpc300/sc6.c
 | |
| --- a/compiler/libpc300/sc6.c
 | |
| +++ b/compiler/libpc300/sc6.c
 | |
| @@ -25,17 +25,17 @@
 | |
|  #include <stdlib.h>     /* for macro max() */
 | |
|  #include <string.h>
 | |
|  #include <ctype.h>
 | |
|  #if defined FORTIFY
 | |
|    #include "fortify.h"
 | |
|  #endif
 | |
|  #include "sc.h"
 | |
|  #include "amxdbg.h"
 | |
| -#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|    #include <sclinux.h>
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  static void append_dbginfo(FILE *fout);
 | |
|  
 | |
|  
 | |
|  typedef cell (*OPCODE_PROC)(FILE *fbin,char *params,cell opcode);
 | |
| @@ -890,17 +890,17 @@ SC_FUNC int assemble(FILE *fout,FILE *fi
 | |
|    bytes_out=0;
 | |
|    for (pass=sIN_CSEG; pass<=sIN_DSEG; pass++) {
 | |
|      pc_resetasm(fin);
 | |
|      while (pc_readasm(fin,line,sizeof line)!=NULL) {
 | |
|        stripcomment(line);
 | |
|        instr=skipwhitespace(line);
 | |
|        /* ignore empty lines and labels (labels have a special syntax, so these
 | |
|         * must be parsed separately) */
 | |
| -      if (*instr=='\0' || tolower(*instr)=='l' && *(instr+1)=='.')
 | |
| +      if (*instr=='\0' || (tolower(*instr)=='l' && *(instr+1)=='.'))
 | |
|          continue;
 | |
|        /* get to the end of the instruction (make use of the '\n' that fgets()
 | |
|         * added at the end of the line; this way we will *always* drop on a
 | |
|         * whitespace character) */
 | |
|        for (params=instr; *params!='\0' && !isspace(*params); params++)
 | |
|          /* nothing */;
 | |
|        assert(params>instr);
 | |
|        i=findopcode(instr,(int)(params-instr));
 | |
| diff --git a/compiler/libpc300/sc7.c b/compiler/libpc300/sc7.c
 | |
| --- a/compiler/libpc300/sc7.c
 | |
| +++ b/compiler/libpc300/sc7.c
 | |
| @@ -452,28 +452,28 @@ static int matchsequence(char *start,cha
 | |
|          start++;
 | |
|          ptr++;
 | |
|        } /* while */
 | |
|        pattern--;  /* there is an increment following at the end of the loop */
 | |
|        break;
 | |
|      case ' ':
 | |
|        if (*start!='\t' && *start!=' ')
 | |
|          return FALSE;
 | |
| -      while (start<end && *start=='\t' || *start==' ')
 | |
| +      while ((start<end && *start=='\t') || *start==' ')
 | |
|          start++;
 | |
|        break;
 | |
|      case '!':
 | |
| -      while (start<end && *start=='\t' || *start==' ')
 | |
| +      while ((start<end && *start=='\t') || *start==' ')
 | |
|          start++;                /* skip trailing white space */
 | |
|        if (*start!='\n')
 | |
|          return FALSE;
 | |
|        assert(*(start+1)=='\0');
 | |
|        start+=2;                 /* skip '\n' and '\0' */
 | |
|        if (*(pattern+1)!='\0')
 | |
| -        while (start<end && *start=='\t' || *start==' ')
 | |
| +        while ((start<end && *start=='\t') || *start==' ')
 | |
|            start++;              /* skip leading white space of next instruction */
 | |
|        break;
 | |
|      default:
 | |
|        if (tolower(*start) != tolower(*pattern))
 | |
|          return FALSE;
 | |
|        start++;
 | |
|      } /* switch */
 | |
|      pattern++;
 | |
| diff --git a/compiler/libpc300/sci18n.c b/compiler/libpc300/sci18n.c
 | |
| --- a/compiler/libpc300/sci18n.c
 | |
| +++ b/compiler/libpc300/sci18n.c
 | |
| @@ -42,17 +42,17 @@
 | |
|  #if !defined TRUE
 | |
|    #define FALSE         0
 | |
|    #define TRUE          1
 | |
|  #endif
 | |
|  #if !defined _MAX_PATH
 | |
|    #define _MAX_PATH     250
 | |
|  #endif
 | |
|  #if !defined DIRSEP_CHAR
 | |
| -  #if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE___
 | |
|      #define DIRSEP_CHAR '/'
 | |
|    #elif defined macintosh
 | |
|      #define DIRSEP_CHAR ':'
 | |
|    #else
 | |
|      #define DIRSEP_CHAR '\\'
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
| @@ -334,17 +334,17 @@ SC_FUNC cell get_utf8_char(const unsigne
 | |
|           * the chance of heuristic dectection of non-UTF-8 text
 | |
|           * (JAVA writes zero bytes as a 2-byte code UTF-8, which is invalid)
 | |
|           */
 | |
|          if (result<lowmark)
 | |
|            return -1;
 | |
|          /* the code positions 0xd800--0xdfff and 0xfffe & 0xffff do not
 | |
|           * exist in UCS-4 (and hence, they do not exist in Unicode)
 | |
|           */
 | |
| -        if (result>=0xd800 && result<=0xdfff || result==0xfffe || result==0xffff)
 | |
| +        if ((result>=0xd800 && result<=0xdfff) || result==0xfffe || result==0xffff)
 | |
|            return -1;
 | |
|        } /* if */
 | |
|        break;
 | |
|      } else if (follow==0 && (ch & 0x80)==0x80) {
 | |
|        /* UTF-8 leader code */
 | |
|        if ((ch & 0xe0)==0xc0) {
 | |
|          /* 110xxxxx 10xxxxxx */
 | |
|          follow=1;
 | |
| diff --git a/compiler/libpc300/sclinux.h b/compiler/libpc300/sclinux.h
 | |
| --- a/compiler/libpc300/sclinux.h
 | |
| +++ b/compiler/libpc300/sclinux.h
 | |
| @@ -27,16 +27,20 @@
 | |
|  
 | |
|  /*
 | |
|   * SC assumes that a computer is Little Endian unless told otherwise. It uses
 | |
|   * (and defines) the macros BYTE_ORDER and BIG_ENDIAN.
 | |
|   * For Linux, we must overrule these settings with those defined in glibc.
 | |
|   */
 | |
|  #if !defined __BYTE_ORDER
 | |
|  # include <stdlib.h>
 | |
| +# if defined __APPLE__
 | |
| +#  include <sys/types.h>
 | |
| +#  define __BYTE_ORDER BYTE_ORDER
 | |
| +# endif
 | |
|  #endif
 | |
|  
 | |
|  #if defined __OpenBSD__ || defined __FreeBSD__
 | |
|  # define __BYTE_ORDER    BYTE_ORDER
 | |
|  # define __LITTLE_ENDIAN LITTLE_ENDIAN
 | |
|  # define __BIG_ENDIAN    BIG_ENDIAN
 | |
|  #endif
 | |
|  
 | |
| diff --git a/compiler/libpc300/sclist.c b/compiler/libpc300/sclist.c
 | |
| --- a/compiler/libpc300/sclist.c
 | |
| +++ b/compiler/libpc300/sclist.c
 | |
| @@ -233,17 +233,17 @@ SC_FUNC void delete_aliastable(void)
 | |
|  
 | |
|  /* ----- include paths list -------------------------------------- */
 | |
|  static stringlist includepaths = {NULL, NULL};  /* directory list for include files */
 | |
|  
 | |
|  SC_FUNC stringlist *insert_path(char *path)
 | |
|  {
 | |
|    char *extra_path = malloc(strlen(path) + 16);
 | |
|    strcpy(extra_path, path);
 | |
| -#if defined __linux__
 | |
| +#if defined __linux__ || defined __APPLE__
 | |
|    strcat(extra_path, "/amxmod_compat/");
 | |
|  #elif defined WIN32 || defined _WIN32
 | |
|    strcat(extra_path, "\\amxmod_compat\\");
 | |
|  #endif
 | |
|    insert_string(&includepaths, extra_path);
 | |
|    free(extra_path);
 | |
|    return insert_string(&includepaths,path);
 | |
|  }
 | |
| @@ -439,20 +439,20 @@ SC_FUNC stringlist *insert_dbgsymbol(sym
 | |
|        int count=0;
 | |
|      #endif
 | |
|  
 | |
|  
 | |
|      funcdisplayname(symname,sym->name);
 | |
|      /* address tag:name codestart codeend ident vclass [tag:dim ...] */
 | |
|  #if PAWN_CELL_SIZE==32
 | |
|      if (sym->ident==iFUNCTN)
 | |
| -      sprintf(string,"S:%08lx %x:%s %08lx %08lx %x %x",sym->addr,sym->tag,
 | |
| +      sprintf(string,"S:%08x %x:%s %08x %08x %x %x",sym->addr,sym->tag,
 | |
|                symname,sym->addr,sym->codeaddr,sym->ident,sym->vclass);
 | |
|      else
 | |
| -      sprintf(string,"S:%08lx %x:%s %08lx %08lx %x %x",sym->addr,sym->tag,
 | |
| +      sprintf(string,"S:%08x %x:%s %08x %08x %x %x",sym->addr,sym->tag,
 | |
|                symname,sym->codeaddr,code_idx,sym->ident,sym->vclass);
 | |
|  #elif PAWN_CELL_SIZE==64
 | |
|      if (sym->ident==iFUNCTN)
 | |
|        sprintf(string,"S:%08Lx %x:%s %08Lx %08Lx %x %x",(LONGCAST)sym->addr,sym->tag,
 | |
|                symname,sym->addr,sym->codeaddr,sym->ident,sym->vclass);
 | |
|      else
 | |
|        sprintf(string,"S:%08Lx %x:%s %08Lx %08Lx %x %x",(LONGCAST)sym->addr,sym->tag,
 | |
|                symname,sym->codeaddr,code_idx,sym->ident,sym->vclass);
 | |
| diff --git a/compiler/libpc300/scstate.c b/compiler/libpc300/scstate.c
 | |
| --- a/compiler/libpc300/scstate.c
 | |
| +++ b/compiler/libpc300/scstate.c
 | |
| @@ -46,17 +46,17 @@
 | |
|   *  Version: $Id: scstate.c 1724 2005-07-24 20:00:55Z dvander $
 | |
|   */
 | |
|  #include <assert.h>
 | |
|  #include <limits.h>
 | |
|  #include <stdio.h>
 | |
|  #include <stdlib.h>
 | |
|  #include <string.h>
 | |
|  #include "sc.h"
 | |
| -#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__
 | |
| +#if defined LINUX || defined __FreeBSD__ || defined __OpenBSD__ || defined __APPLE__
 | |
|    #include <sclinux.h>
 | |
|  #endif
 | |
|  
 | |
|  #if defined FORTIFY
 | |
|    #include "fortify.h"
 | |
|  #endif
 | |
|  
 | |
|  typedef struct s_statelist {
 | |
| diff --git a/configs/hamdata.ini b/configs/hamdata.ini
 | |
| --- a/configs/hamdata.ini
 | |
| +++ b/configs/hamdata.ini
 | |
| @@ -256,16 +256,126 @@
 | |
|  	weapon_shouldweaponidle 92
 | |
|  	weapon_usedecrement 93
 | |
|  	
 | |
|  	cstrike_restart 2
 | |
|  	cstrike_roundrespawn 84
 | |
|  	cstrike_item_candrop 63
 | |
|  	cstrike_item_getmaxspeed 78
 | |
|  @end
 | |
| +
 | |
| +@section cstrike mac
 | |
| +	pev 4
 | |
| +	base 0x0
 | |
| +	
 | |
| +	spawn 0
 | |
| +	precache 1
 | |
| +	keyvalue 3
 | |
| +	objectcaps 6
 | |
| +	activate 7
 | |
| +	setobjectcollisionbox 8
 | |
| +	classify 9
 | |
| +	deathnotice 10
 | |
| +	traceattack 11
 | |
| +	takedamage 12
 | |
| +	takehealth 13
 | |
| +	killed 14
 | |
| +	bloodcolor 15
 | |
| +	tracebleed 16
 | |
| +	istriggered 17
 | |
| +	mymonsterpointer 18
 | |
| +	mysquadmonsterpointer 19
 | |
| +	gettogglestate 20
 | |
| +	addpoints 21
 | |
| +	addpointstoteam 22
 | |
| +	addplayeritem 23
 | |
| +	removeplayeritem 24
 | |
| +	giveammo 25
 | |
| +	getdelay 26
 | |
| +	ismoving 27
 | |
| +	overridereset 28
 | |
| +	damagedecal 29
 | |
| +	settogglestate 30
 | |
| +	startsneaking 31
 | |
| +	stopsneaking 32
 | |
| +	oncontrols 33
 | |
| +	issneaking 34
 | |
| +	isalive 35
 | |
| +	isbspmodel 36
 | |
| +	reflectgauss 37
 | |
| +	hastarget 38
 | |
| +	isinworld 39
 | |
| +	isplayer 40
 | |
| +	isnetclient 41
 | |
| +	teamid 42
 | |
| +	getnexttarget 43
 | |
| +	think 44
 | |
| +	touch 45
 | |
| +	use 46
 | |
| +	blocked 47
 | |
| +	respawn 48
 | |
| +	updateowner 49
 | |
| +	fbecomeprone 50
 | |
| +	center 51
 | |
| +	eyeposition 52
 | |
| +	earposition 53
 | |
| +	bodytarget 54
 | |
| +	illumination 55
 | |
| +	fvisible 56
 | |
| +	fvecvisible 57
 | |
| +	
 | |
| +	player_jump 76
 | |
| +	player_duck 77
 | |
| +	player_prethink 78
 | |
| +	player_postthink 79
 | |
| +	player_getgunposition 80
 | |
| +	player_shouldfadeondeath 66
 | |
| +	player_impulsecommands 83
 | |
| +	player_updateclientdata 82
 | |
| +	
 | |
| +	item_addtoplayer 59
 | |
| +	item_addduplicate 60
 | |
| +	item_getiteminfo 61
 | |
| +	item_candeploy 62
 | |
| +	item_deploy 64
 | |
| +	item_canholster 66
 | |
| +	item_holster 67
 | |
| +	item_updateiteminfo 68
 | |
| +	item_preframe 69
 | |
| +	item_postframe 70
 | |
| +	item_drop 71
 | |
| +	item_kill 72
 | |
| +	item_attachtoplayer 73
 | |
| +	item_primaryammoindex 74
 | |
| +	item_secondaryammoindex 75
 | |
| +	item_updateclientdata 76
 | |
| +	item_getweaponptr 77
 | |
| +	item_itemslot 79
 | |
| +	
 | |
| +	weapon_extractammo 80
 | |
| +	weapon_extractclipammo 81
 | |
| +	weapon_addweapon 82
 | |
| +	weapon_playemptysound 83
 | |
| +	weapon_resetemptysound 84
 | |
| +	weapon_sendweaponanim 85
 | |
| +	weapon_isusable 86
 | |
| +	weapon_primaryattack 87
 | |
| +	weapon_secondaryattack 88
 | |
| +	weapon_reload 89
 | |
| +	weapon_weaponidle 90
 | |
| +	weapon_retireweapon 91
 | |
| +	weapon_shouldweaponidle 92
 | |
| +	weapon_usedecrement 93
 | |
| +	
 | |
| +	cstrike_restart 2
 | |
| +	cstrike_roundrespawn 84
 | |
| +	cstrike_item_candrop 63
 | |
| +	cstrike_item_getmaxspeed 78
 | |
| +@end	
 | |
| +
 | |
|  @section dod linux
 | |
|  	pev 0
 | |
|  	base 0x154
 | |
|  	
 | |
|  	spawn 5
 | |
|  	precache 6
 | |
|  	keyvalue 7
 | |
|  	objectcaps 10
 | |
| @@ -1742,18 +1852,122 @@
 | |
|  	weapon_isusable 82
 | |
|  	weapon_primaryattack 83
 | |
|  	weapon_secondaryattack 84
 | |
|  	weapon_reload 85
 | |
|  	weapon_weaponidle 86
 | |
|  	weapon_retireweapon 87
 | |
|  	weapon_shouldweaponidle 88
 | |
|  	weapon_usedecrement 89
 | |
| +@end
 | |
| +
 | |
| +@section valve mac
 | |
| +	pev 4
 | |
| +	base 0x0
 | |
|  	
 | |
| +	spawn 0
 | |
| +	precache 1
 | |
| +	keyvalue 2
 | |
| +	objectcaps 5
 | |
| +	activate 6
 | |
| +	setobjectcollisionbox 7
 | |
| +	classify 8
 | |
| +	deathnotice 9
 | |
| +	traceattack 10
 | |
| +	takedamage 11
 | |
| +	takehealth 12
 | |
| +	killed 13
 | |
| +	bloodcolor 14
 | |
| +	tracebleed 15
 | |
| +	istriggered 16
 | |
| +	mymonsterpointer 17
 | |
| +	mysquadmonsterpointer 18
 | |
| +	gettogglestate 19
 | |
| +	addpoints 20
 | |
| +	addpointstoteam 21
 | |
| +	addplayeritem 22
 | |
| +	removeplayeritem 23
 | |
| +	giveammo 24
 | |
| +	getdelay 25
 | |
| +	ismoving 26
 | |
| +	overridereset 27
 | |
| +	damagedecal 28
 | |
| +	settogglestate 29
 | |
| +	startsneaking 30
 | |
| +	stopsneaking 31
 | |
| +	oncontrols 32
 | |
| +	issneaking 33
 | |
| +	isalive 34
 | |
| +	isbspmodel 35
 | |
| +	reflectgauss 36
 | |
| +	hastarget 37
 | |
| +	isinworld 38
 | |
| +	isplayer 39
 | |
| +	isnetclient 40
 | |
| +	teamid 41
 | |
| +	getnexttarget 42
 | |
| +	think 43
 | |
| +	touch 44
 | |
| +	use 45
 | |
| +	blocked 46
 | |
| +	respawn 47
 | |
| +	updateowner 48
 | |
| +	fbecomeprone 49
 | |
| +	center 50
 | |
| +	eyeposition 51
 | |
| +	earposition 52
 | |
| +	bodytarget 53
 | |
| +	illumination 54
 | |
| +	fvisible 55
 | |
| +	fvecvisible 56
 | |
| +	
 | |
| +	player_jump 125
 | |
| +	player_duck 126
 | |
| +	player_prethink 127
 | |
| +	player_postthink 128
 | |
| +	player_getgunposition 119
 | |
| +	player_shouldfadeondeath 60
 | |
| +	player_impulsecommands 130
 | |
| +	player_updateclientdata  129
 | |
| +	
 | |
| +	item_addtoplayer 58
 | |
| +	item_addduplicate 59
 | |
| +	item_getiteminfo 60
 | |
| +	item_candeploy 61
 | |
| +	item_deploy 62
 | |
| +	item_canholster 63
 | |
| +	item_holster 64
 | |
| +	item_updateiteminfo 65
 | |
| +	item_preframe 66
 | |
| +	item_postframe 67
 | |
| +	item_drop 68
 | |
| +	item_kill 69
 | |
| +	item_attachtoplayer 70
 | |
| +	item_primaryammoindex 71
 | |
| +	item_secondaryammoindex 72
 | |
| +	item_updateclientdata 73
 | |
| +	item_getweaponptr 74
 | |
| +	item_itemslot 75
 | |
| +	
 | |
| +	weapon_extractammo 76
 | |
| +	weapon_extractclipammo 77
 | |
| +	weapon_addweapon 78
 | |
| +	weapon_playemptysound 79
 | |
| +	weapon_resetemptysound 80
 | |
| +	weapon_sendweaponanim 81
 | |
| +	weapon_isusable 82
 | |
| +	weapon_primaryattack 83
 | |
| +	weapon_secondaryattack 84
 | |
| +	weapon_reload 85
 | |
| +	weapon_weaponidle 86
 | |
| +	weapon_retireweapon 87
 | |
| +	weapon_shouldweaponidle 88
 | |
| +	weapon_usedecrement 89
 | |
|  @end
 | |
| +
 | |
|  ; Sven-Coop has no linux binaries.  This makes disassembly much harder.
 | |
|  ; These offsets were contributed by ts2do
 | |
|  @section SvenCoop windows
 | |
|  	pev 4
 | |
|  	base 0x0
 | |
|  	
 | |
|  	spawn 0
 | |
|  	precache 1
 | |
| diff --git a/dlls/cstrike/cstrike/CstrikeHacks.cpp b/dlls/cstrike/cstrike/CstrikeHacks.cpp
 | |
| --- a/dlls/cstrike/cstrike/CstrikeHacks.cpp
 | |
| +++ b/dlls/cstrike/cstrike/CstrikeHacks.cpp
 | |
| @@ -1,15 +1,19 @@
 | |
|  #include <assert.h>
 | |
| -#include <malloc.h>
 | |
| +#include <stdlib.h>
 | |
|  #include "cstrike.h"
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  #include <sys/mman.h>
 | |
|  #define	PAGE_EXECUTE_READWRITE	PROT_READ|PROT_WRITE|PROT_EXEC
 | |
| +
 | |
| +#if defined(__linux)
 | |
| +#include <malloc.h>
 | |
| +#endif
 | |
|  #endif
 | |
|  
 | |
|  /* Utils */
 | |
|  unsigned char *UTIL_CodeAlloc(size_t size);
 | |
|  void UTIL_CodeFree(unsigned char *addr);
 | |
|  void UTIL_MemProtect(void *addr, int length, int prot);
 | |
|  bool UTIL_GetLibraryOfAddress(void *memInBase, char *buffer, size_t maxlength);
 | |
|  
 | |
| @@ -60,17 +64,17 @@ void CtrlDetour_ClientCommand(bool set)
 | |
|  	const unsigned int DetourJmpBytes = 5;
 | |
|  	static unsigned char *FullDetour = NULL;
 | |
|  
 | |
|  	void *target = (void *)MDLL_ClientCommand;
 | |
|  	unsigned char *paddr;
 | |
|  
 | |
|  	if (!g_UseBotArgs)
 | |
|  	{
 | |
| -#if defined __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  		/* Find the DLL */
 | |
|  		char dll[256];
 | |
|  		if (!UTIL_GetLibraryOfAddress(target, dll, sizeof(dll)))
 | |
|  		{
 | |
|  			return;
 | |
|  		}
 | |
|  		void *handle = dlopen(dll, RTLD_NOW);
 | |
|  		if (!handle)
 | |
| @@ -97,17 +101,17 @@ void CtrlDetour_ClientCommand(bool set)
 | |
|  		/* Copy the main trampoline function */
 | |
|  		memcpy(FullDetour, DetourOps, DetourBytes);
 | |
|  	
 | |
|  		/* Copy our detour call into the trampoline */
 | |
|  		paddr = &FullDetour[DetourCallPos];
 | |
|  		*(unsigned long *)paddr = (unsigned long)Detour_ClientCommand - (unsigned long)(paddr + 4);
 | |
|  	
 | |
|  		/* Copy original bytes onto the end of the function */
 | |
| -	    memcpy(&FullDetour[DetourBytes], target, CS_DETOURCOPYBYTES_CLIENTCOMMAND);
 | |
| +	    	memcpy(&FullDetour[DetourBytes], target, CS_DETOURCOPYBYTES_CLIENTCOMMAND);
 | |
|  		
 | |
|  		/* Patch and copy the final jmp */
 | |
|  		paddr = &FullDetour[DetourJmpPos];
 | |
|  		*paddr++ = DetourJmp;
 | |
|  		*(unsigned long *)paddr = ((unsigned long)target + CS_DETOURCOPYBYTES_CLIENTCOMMAND)
 | |
|  									- (unsigned long)(paddr + 4);
 | |
|  	
 | |
|  		/* Now overwrite the target function with our trampoline */
 | |
| @@ -137,47 +141,51 @@ int Detour_ClientCommand(edict_t *pEdict
 | |
|  	}
 | |
|  	return 0;
 | |
|  }
 | |
|  
 | |
|  unsigned char *UTIL_CodeAlloc(size_t size)
 | |
|  {
 | |
|  #if defined WIN32
 | |
|  	return (unsigned char *)VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
 | |
| +#elif defined __GNUC__
 | |
| +#if defined __APPLE__
 | |
| +	unsigned char *addr = (unsigned char *)valloc(size);
 | |
|  #else
 | |
|  	unsigned char *addr = (unsigned char *)memalign(sysconf(_SC_PAGESIZE), size);
 | |
| +#endif
 | |
|  	mprotect(addr, size, PROT_READ|PROT_WRITE|PROT_EXEC);
 | |
|  	return addr;
 | |
|  #endif
 | |
|  }
 | |
|  
 | |
|  void UTIL_CodeFree(unsigned char *addr)
 | |
|  {
 | |
|  #if defined WIN32
 | |
|  	VirtualFree(addr, 0, MEM_RELEASE);
 | |
|  #else
 | |
|  	free(addr);
 | |
|  #endif
 | |
|  }
 | |
|  
 | |
|  void UTIL_MemProtect(void *addr, int length, int prot)
 | |
|  {
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  #define ALIGN(ar) ((long)ar & ~(sysconf(_SC_PAGESIZE)-1))
 | |
|  	void *addr2 = (void *)ALIGN(addr);
 | |
|  	mprotect(addr2, sysconf(_SC_PAGESIZE), prot);
 | |
|  #else
 | |
|  	DWORD old_prot;
 | |
|  	VirtualProtect(addr, length, prot, &old_prot);
 | |
|  #endif
 | |
|  }
 | |
|  
 | |
|  bool UTIL_GetLibraryOfAddress(void *memInBase, char *buffer, size_t maxlength)
 | |
|  {
 | |
| -#if defined __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  	Dl_info info;
 | |
|  	if (!dladdr(memInBase, &info))
 | |
|  	{
 | |
|  		return false;
 | |
|  	}
 | |
|  	if (!info.dli_fbase || !info.dli_fname)
 | |
|  	{
 | |
|  		return false;
 | |
| diff --git a/dlls/cstrike/cstrike/Makefile b/dlls/cstrike/cstrike/Makefile
 | |
| --- a/dlls/cstrike/cstrike/Makefile
 | |
| +++ b/dlls/cstrike/cstrike/Makefile
 | |
| @@ -1,78 +1,123 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../../../metamod/metamod
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -OPT_FLAGS = -O2 -funroll-loops -s -pipe -fomit-frame-pointer -fno-strict-aliasing
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -NAME = cstrike
 | |
| -
 | |
| -BIN_SUFFIX_32 = amxx_i386.so
 | |
| -BIN_SUFFIX_64 = amxx_amd64.so
 | |
| +PROJECT = cstrike
 | |
|  
 | |
|  OBJECTS = sdk/amxxmodule.cpp CstrikePlayer.cpp cstrike.cpp CstrikeHacks.cpp
 | |
|  
 | |
| -LINK = 
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -I$(HLSDK)/common -Isdk
 | |
| +C_OPT_FLAGS = -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +LINK =
 | |
|  
 | |
| -ifeq "$(GCC_VERSION)" "4"
 | |
| -        OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +	  -I$(MM_ROOT) -Isdk
 | |
| +
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
| +
 | |
| +OS := $(shell uname -s)
 | |
| +
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _amxx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _amxx_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared
 | |
|  endif
 | |
|  
 | |
| +LINK += -m32 -lm -ldl
 | |
| +
 | |
| +CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
| +
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -fno-rtti -static-libgcc -m32
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -ifeq "$(AMD64)" "true"
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_64)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
|  else
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_32)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -	OPT_FLAGS += -march=i586
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
|  endif
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
|  	mkdir -p $(BIN_DIR)
 | |
|  	mkdir -p $(BIN_DIR)/sdk
 | |
| -	$(MAKE) cstrike
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -amd64:
 | |
| -	$(MAKE) all AMD64=true
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -cstrike: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| -
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/sdk/*.o
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_64)
 | |
| -	rm -rf Debug/sdk/*.o
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64)
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -rf $(BIN_DIR)/sdk/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
| +
 | |
| diff --git a/dlls/cstrike/cstrike/cstrike.cpp b/dlls/cstrike/cstrike/cstrike.cpp
 | |
| --- a/dlls/cstrike/cstrike/cstrike.cpp
 | |
| +++ b/dlls/cstrike/cstrike/cstrike.cpp
 | |
| @@ -44,17 +44,17 @@ bool UTIL_IsPlayer(AMX* amx, edict_t* pP
 | |
|  	bool player = false;
 | |
|  
 | |
|  	if (strcmp(STRING(pPlayer->v.classname), "player") == 0)
 | |
|  		player = true;
 | |
|  
 | |
|  	return player;
 | |
|  }
 | |
|  
 | |
| -void UTIL_TextMsg_Generic(edict_t* pPlayer, char* message)
 | |
| +void UTIL_TextMsg_Generic(edict_t* pPlayer, const char* message)
 | |
|  {
 | |
|  	MESSAGE_BEGIN(MSG_ONE, GET_USER_MSG_ID(PLID, "TextMsg", NULL), NULL, pPlayer);
 | |
|  	WRITE_BYTE(HUD_PRINTCENTER); // 1 = console, 2 = console, 3 = chat, 4 = center
 | |
|  	WRITE_STRING(message);
 | |
|  	MESSAGE_END();
 | |
|  	/*
 | |
|  	The byte above seems to use these:
 | |
|  	#define HUD_PRINTNOTIFY		1
 | |
| @@ -741,17 +741,17 @@ static cell AMX_NATIVE_CALL cs_set_user_
 | |
|  			if (params[i + 3] != -1)
 | |
|  			{
 | |
|  				colour[i] = params[i + 3];
 | |
|  			}
 | |
|  		}
 | |
|  
 | |
|  		pPlayer->v.body = 1;
 | |
|  
 | |
| -		char* icon;
 | |
| +		const char* icon;
 | |
|  		if (params[6] != -1)
 | |
|  		{
 | |
|  			int len;
 | |
|  			icon = MF_GetAmxString(amx, params[6], 1, &len);
 | |
|  		} else {
 | |
|  			icon = "defuser";
 | |
|  		}
 | |
|  
 | |
| diff --git a/dlls/cstrike/cstrike/cstrike.h b/dlls/cstrike/cstrike/cstrike.h
 | |
| --- a/dlls/cstrike/cstrike/cstrike.h
 | |
| +++ b/dlls/cstrike/cstrike/cstrike.h
 | |
| @@ -39,25 +39,25 @@
 | |
|  #include <meta_api.h>
 | |
|  #include "CstrikePlayer.h"
 | |
|  
 | |
|  #define GETINFOKEYBUFFER				(*g_engfuncs.pfnGetInfoKeyBuffer)
 | |
|  #define	SETCLIENTKEYVALUE				(*g_engfuncs.pfnSetClientKeyValue)
 | |
|  #define GETCLIENTKEYVALUE				(*g_engfuncs.pfnInfoKeyValue)
 | |
|  #define CREATENAMEDENTITY				(*g_engfuncs.pfnCreateNamedEntity)
 | |
|  
 | |
| -#if defined __linux__
 | |
| +#if defined(__linux__) || defined (__APPLE__)
 | |
|  	#define EXTRAOFFSET					5 // offsets 5 higher in Linux builds
 | |
|  	#define EXTRAOFFSET_WEAPONS			4 // weapon offsets are obviously only 4 steps higher on Linux!
 | |
|  	#define ACTUAL_EXTRA_OFFSET			20 // actual, byte-addressable offset
 | |
|  #else
 | |
|  	#define EXTRAOFFSET					0 // no change in Windows builds
 | |
|  	#define EXTRAOFFSET_WEAPONS			0
 | |
|  	#define ACTUAL_EXTRA_OFFSET			0
 | |
| -#endif // defined __linux__
 | |
| +#endif // defined(__linux__) || defined(__APPLE__)
 | |
|  /*
 | |
|  	Offset history:
 | |
|  	041029:
 | |
|  	Confirmed (pretty much) ALL offsets for 32 bit Windows, 32 bit Linux and amd64 (yes that's all of them).
 | |
|  	Found out that weapon offsets are only +4 higher on Linux.
 | |
|  	Also backpack ammo offsets were all obviously 5 steps too high since unknown time...
 | |
|  
 | |
|  */
 | |
| @@ -153,16 +153,18 @@
 | |
|  	#define OFFSET_SILENCER_FIREMODE	88 + EXTRAOFFSET // +14
 | |
|  	// "hostage_entity" entities
 | |
|  	#define OFFSET_HOSTAGEFOLLOW		51 + EXTRAOFFSET // +21, long=51, int=107! (must use the long* offset because pointers on amd64 are stored the size of longs, 8 bytes, instead of the usual int 4 bytes.)
 | |
|  	#define OFFSET_HOSTAGEID			516 + EXTRAOFFSET // +29
 | |
|  #endif
 | |
|  
 | |
|  #if defined __linux__
 | |
|  #define CS_DETOURCOPYBYTES_CLIENTCOMMAND		6
 | |
| +#elif defined __APPLE__
 | |
| +#define CS_DETOURCOPYBYTES_CLIENTCOMMAND		5
 | |
|  #else
 | |
|  #define CS_DETOURCOPYBYTES_CLIENTCOMMAND		6
 | |
|  #define CS_CLICMD_OFFS_USEBOTARGS				2
 | |
|  #define CS_CLICMD_OFFS_BOTARGS					22
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // Ids of weapons in CS
 | |
| diff --git a/dlls/cstrike/cstrike/sdk/amxxmodule.cpp b/dlls/cstrike/cstrike/sdk/amxxmodule.cpp
 | |
| --- a/dlls/cstrike/cstrike/sdk/amxxmodule.cpp
 | |
| +++ b/dlls/cstrike/cstrike/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/dlls/cstrike/cstrike/sdk/amxxmodule.h b/dlls/cstrike/cstrike/sdk/amxxmodule.h
 | |
| --- a/dlls/cstrike/cstrike/sdk/amxxmodule.h
 | |
| +++ b/dlls/cstrike/cstrike/sdk/amxxmodule.h
 | |
| @@ -15,21 +15,26 @@
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -61,17 +66,17 @@ struct amxx_module_info_s
 | |
|  
 | |
|  // *** Small stuff ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -390,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2111,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2170,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/dlls/cstrike/csx/Makefile b/dlls/cstrike/csx/Makefile
 | |
| --- a/dlls/cstrike/csx/Makefile
 | |
| +++ b/dlls/cstrike/csx/Makefile
 | |
| @@ -1,78 +1,123 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../../../metamod/metamod
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -OPT_FLAGS = -O3 -funroll-loops -s -pipe -fomit-frame-pointer -fno-strict-aliasing
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -NAME = csx
 | |
| -
 | |
| -BIN_SUFFIX_32 = amxx_i386.so
 | |
| -BIN_SUFFIX_64 = amxx_amd64.so
 | |
| +PROJECT = csx
 | |
|  
 | |
|  OBJECTS = sdk/amxxmodule.cpp CRank.cpp CMisc.cpp meta_api.cpp rank.cpp usermsg.cpp
 | |
|  
 | |
| -LINK = 
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -I$(HLSDK)/common -Isdk
 | |
| +C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +LINK =
 | |
|  
 | |
| -ifeq "$(GCC_VERSION)" "4"
 | |
| -        OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +	  -I$(MM_ROOT) -Isdk
 | |
| +
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
| +
 | |
| +OS := $(shell uname -s)
 | |
| +
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _amxx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _amxx_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared
 | |
|  endif
 | |
|  
 | |
| +LINK += -m32 -lm -ldl
 | |
| +
 | |
| +CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
| +
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -ifeq "$(AMD64)" "true"
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_64)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
|  else
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_32)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -	OPT_FLAGS += -march=i586
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
|  endif
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
|  	mkdir -p $(BIN_DIR)
 | |
|  	mkdir -p $(BIN_DIR)/sdk
 | |
| -	$(MAKE) csx
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -amd64:
 | |
| -	$(MAKE) all AMD64=true
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -csx: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| -
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/sdk/*.o
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_64)
 | |
| -	rm -rf Debug/sdk/*.o
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64)
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -rf $(BIN_DIR)/sdk/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
| +
 | |
| diff --git a/dlls/cstrike/csx/sdk/amxxmodule.cpp b/dlls/cstrike/csx/sdk/amxxmodule.cpp
 | |
| --- a/dlls/cstrike/csx/sdk/amxxmodule.cpp
 | |
| +++ b/dlls/cstrike/csx/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/dlls/cstrike/csx/sdk/amxxmodule.h b/dlls/cstrike/csx/sdk/amxxmodule.h
 | |
| --- a/dlls/cstrike/csx/sdk/amxxmodule.h
 | |
| +++ b/dlls/cstrike/csx/sdk/amxxmodule.h
 | |
| @@ -15,21 +15,26 @@
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -61,17 +66,17 @@ struct amxx_module_info_s
 | |
|  
 | |
|  // *** Small stuff ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -390,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2111,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2170,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/dlls/dod/dodfun/CMisc.cpp b/dlls/dod/dodfun/CMisc.cpp
 | |
| --- a/dlls/dod/dodfun/CMisc.cpp
 | |
| +++ b/dlls/dod/dodfun/CMisc.cpp
 | |
| @@ -62,17 +62,17 @@ void CPlayer::Init( int pi, edict_t* pe 
 | |
|  void CPlayer::killPlayer(){
 | |
|  	pEdict->v.dmg_inflictor = NULL;
 | |
|  	pEdict->v.health = 0;
 | |
|  	pEdict->v.deadflag = DEAD_RESPAWNABLE;
 | |
|  	pEdict->v.weaponmodel = 0;
 | |
|  	pEdict->v.weapons = 0;
 | |
|  }
 | |
|  
 | |
| -void CPlayer::setTeamName( char *szName ){
 | |
| +void CPlayer::setTeamName( const char *szName ){
 | |
|  	
 | |
|  	for (int i=0;i<16;i++){
 | |
|  		*( (char*)pEdict->pvPrivateData + STEAM_PDOFFSET_TEAMNAME + i ) = szName[i];
 | |
|  	}
 | |
|  }
 | |
|  
 | |
|  void CPlayer::getTeamName(char * szName ){
 | |
|  	for (int i=0;i<16;i++){
 | |
| diff --git a/dlls/dod/dodfun/CMisc.h b/dlls/dod/dodfun/CMisc.h
 | |
| --- a/dlls/dod/dodfun/CMisc.h
 | |
| +++ b/dlls/dod/dodfun/CMisc.h
 | |
| @@ -27,17 +27,17 @@
 | |
|   *    you do not wish to do so, delete this exception statement from your
 | |
|   *    version.
 | |
|   *
 | |
|   */
 | |
|  
 | |
|  #ifndef CMISC_H
 | |
|  #define CMISC_H
 | |
|  
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define LINUXOFFSET		0
 | |
|  #else
 | |
|  #define LINUXOFFSET		5
 | |
|  #endif
 | |
|  
 | |
|  #define DODFUN_VERSION "1.0.2"
 | |
|  
 | |
|  // DoD Player
 | |
| @@ -48,17 +48,17 @@
 | |
|  #define STEAM_PDOFFSET_RCLASS		367  + LINUXOFFSET // random class  
 | |
|  
 | |
|  #define STEAM_PDOFFSET_SCORE		475  + LINUXOFFSET // score
 | |
|  #define STEAM_PDOFFSET_DEATHS		476  + LINUXOFFSET // deaths
 | |
|  
 | |
|  // DoD Control Point
 | |
|  struct pd_dcp {
 | |
|  	int iunk_0;
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  	int iunk_1; // windows only
 | |
|  #endif
 | |
|  	int iunk_2;	// pointer edict_t*
 | |
|  	int iunk_3;
 | |
|  
 | |
|  	float origin_x;
 | |
|  	float origin_y;
 | |
|  	float origin_z; // 6
 | |
| @@ -77,17 +77,17 @@ struct pd_dcp {
 | |
|  
 | |
|  	// 19 - spawnflags ?
 | |
|  	// 20-int , always 1
 | |
|  	int unknown_block1[19];
 | |
|  	int iunk_35; // pointer entvars_t*
 | |
|  	int iunk_36; // pointer entvars_t*
 | |
|  	int unknown_block2[52];
 | |
|  	int iunk_89; // pointer entvars_t*
 | |
| -#ifdef __linux__
 | |
| +#if defined (__linux__) || defined (__APPLE__)
 | |
|  	int iunk_extra1;
 | |
|  	int iunk_extra2;
 | |
|  	int iunk_extra3;
 | |
|  	int iunk_extra4;
 | |
|  #endif
 | |
|  	int owner; // 90
 | |
|  	int iunk_91;
 | |
|  	int iunk_92;
 | |
| @@ -124,17 +124,17 @@ struct pd_dcp {
 | |
|  
 | |
|  #define GET_CP_PD( x ) (*(pd_dcp*)x->pvPrivateData)
 | |
|  
 | |
|  // DoD Capture Area
 | |
|  struct pd_dca {
 | |
|  	int iunk_0;
 | |
|  	int iunk_1;
 | |
|  	int iunk_2;
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  	int iunk_3; // if def windows
 | |
|  #endif
 | |
|  
 | |
|  	float origin_x;
 | |
|  	float origin_y;
 | |
|  	float origin_z; // 6
 | |
|  
 | |
|  	float mins_x;
 | |
| @@ -145,17 +145,17 @@ struct pd_dca {
 | |
|  	float maxs_y;
 | |
|  	float maxs_z;
 | |
|  	
 | |
|  	float angles_x;
 | |
|  	float angles_y;
 | |
|  	float angles_z; // 15
 | |
|  	
 | |
|  	// 16-135
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  	int unknown_block_16[111];
 | |
|  #else
 | |
|  	int unknown_block_16[116]; // linux +5 more
 | |
|  #endif
 | |
|  
 | |
|  	int time_to_cap; // 127
 | |
|  	int iunk_128;
 | |
|  	int allies_numcap; // 129
 | |
| @@ -258,17 +258,17 @@ public:
 | |
|  	bool ingame;
 | |
|  	bool bot;
 | |
|  
 | |
|  	void Init(  int pi, edict_t* pe );
 | |
|  	void Connect();
 | |
|  	void PutInServer();
 | |
|  	void Disconnect();
 | |
|  	void killPlayer();
 | |
| -	void setTeamName( char *szName );
 | |
| +	void setTeamName( const char *szName );
 | |
|  	void getTeamName( char *szName );
 | |
|  
 | |
|  	inline bool IsBot(){
 | |
|  		const char* auth= (*g_engfuncs.pfnGetPlayerAuthId)(pEdict);
 | |
|  		return ( auth && !strcmp( auth , "BOT" ) );
 | |
|  	}
 | |
|  	inline bool IsAlive(){
 | |
|  		return ((pEdict->v.deadflag==DEAD_NO)&&(pEdict->v.health>0));
 | |
| diff --git a/dlls/dod/dodfun/Makefile b/dlls/dod/dodfun/Makefile
 | |
| --- a/dlls/dod/dodfun/Makefile
 | |
| +++ b/dlls/dod/dodfun/Makefile
 | |
| @@ -1,67 +1,123 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../../../metamod/metamod
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -NAME = dodfun
 | |
| -
 | |
| -BIN_SUFFIX = amxx_i386.so
 | |
| +PROJECT = dodfun
 | |
|  
 | |
|  OBJECTS = sdk/amxxmodule.cpp NBase.cpp CMisc.cpp NPD.cpp Utils.cpp usermsg.cpp moduleconfig.cpp
 | |
|  
 | |
| -LINK = 
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -I$(HLSDK)/common -Isdk
 | |
| +C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +LINK =
 | |
|  
 | |
| -ifeq "$(GCC_VERSION)" "4"
 | |
| -        OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +	  -I$(MM_ROOT) -Isdk
 | |
| +
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
| +
 | |
| +OS := $(shell uname -s)
 | |
| +
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _amxx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _amxx_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared
 | |
|  endif
 | |
|  
 | |
| +LINK += -m32 -lm -ldl
 | |
| +
 | |
| +CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
| +
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -BINARY = $(NAME)_$(BIN_SUFFIX)
 | |
| -CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -OPT_FLAGS += -march=i586
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
| +else
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
| +endif
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
|  	mkdir -p $(BIN_DIR)
 | |
|  	mkdir -p $(BIN_DIR)/sdk
 | |
| -	$(MAKE) dodfun
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -dodfun: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/sdk/*.o
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX)
 | |
| -	rm -rf Debug/sdk/*.o
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX)
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -rf $(BIN_DIR)/sdk/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
| +
 | |
| diff --git a/dlls/dod/dodfun/sdk/amxxmodule.cpp b/dlls/dod/dodfun/sdk/amxxmodule.cpp
 | |
| --- a/dlls/dod/dodfun/sdk/amxxmodule.cpp
 | |
| +++ b/dlls/dod/dodfun/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/dlls/dod/dodfun/sdk/amxxmodule.h b/dlls/dod/dodfun/sdk/amxxmodule.h
 | |
| --- a/dlls/dod/dodfun/sdk/amxxmodule.h
 | |
| +++ b/dlls/dod/dodfun/sdk/amxxmodule.h
 | |
| @@ -15,21 +15,26 @@
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -61,17 +66,17 @@ struct amxx_module_info_s
 | |
|  
 | |
|  // *** Small stuff ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -390,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2111,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2170,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/dlls/dod/dodx/CMisc.h b/dlls/dod/dodx/CMisc.h
 | |
| --- a/dlls/dod/dodx/CMisc.h
 | |
| +++ b/dlls/dod/dodx/CMisc.h
 | |
| @@ -32,17 +32,17 @@
 | |
|  #ifndef CMISC_H
 | |
|  #define CMISC_H
 | |
|  
 | |
|  #include "CRank.h"
 | |
|  
 | |
|  #define DODMAX_CUSTOMWPNS	5	// custom weapons
 | |
|  #define DODMAX_WEAPONS		42 + DODMAX_CUSTOMWPNS
 | |
|  
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define LINUXOFFSET	0
 | |
|  #else
 | |
|  #define LINUXOFFSET	5
 | |
|  #endif
 | |
|  
 | |
|  #define DOD_VERSION "0.1"
 | |
|  
 | |
|  #define MAX_TRACE	6
 | |
| diff --git a/dlls/dod/dodx/Makefile b/dlls/dod/dodx/Makefile
 | |
| --- a/dlls/dod/dodx/Makefile
 | |
| +++ b/dlls/dod/dodx/Makefile
 | |
| @@ -1,67 +1,123 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../../../metamod/metamod
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -NAME = dodx
 | |
| -
 | |
| -BIN_SUFFIX = amxx_i386.so
 | |
| +PROJECT = dodx
 | |
|  
 | |
|  OBJECTS = sdk/amxxmodule.cpp CRank.cpp CMisc.cpp NBase.cpp NRank.cpp usermsg.cpp Utils.cpp moduleconfig.cpp
 | |
|  
 | |
| -LINK = 
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -I$(HLSDK)/common -Isdk
 | |
| +C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +LINK =
 | |
|  
 | |
| -ifeq "$(GCC_VERSION)" "4"
 | |
| -        OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +	  -I$(MM_ROOT) -Isdk
 | |
| +
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
| +
 | |
| +OS := $(shell uname -s)
 | |
| +
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _amxx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _amxx_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared
 | |
|  endif
 | |
|  
 | |
| +LINK += -m32 -lm -ldl
 | |
| +
 | |
| +CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
| +
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -BINARY = $(NAME)_$(BIN_SUFFIX)
 | |
| -CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -OPT_FLAGS += -march=i586
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
| +else
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
| +endif
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
|  	mkdir -p $(BIN_DIR)
 | |
|  	mkdir -p $(BIN_DIR)/sdk
 | |
| -	$(MAKE) dodx
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -dodx: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/sdk/*.o
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX)
 | |
| -	rm -rf Debug/sdk/*.o
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX)
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -rf $(BIN_DIR)/sdk/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
| +
 | |
| diff --git a/dlls/dod/dodx/NBase.cpp b/dlls/dod/dodx/NBase.cpp
 | |
| --- a/dlls/dod/dodx/NBase.cpp
 | |
| +++ b/dlls/dod/dodx/NBase.cpp
 | |
| @@ -485,17 +485,17 @@ static cell AMX_NATIVE_CALL get_user_tea
 | |
|  	int index = params[1];
 | |
|  	CHECK_PLAYER(index);
 | |
|  
 | |
|  	CPlayer* pPlayer = GET_PLAYER_POINTER_I(index);
 | |
|  	int iTeam = pPlayer->pEdict->v.team; 
 | |
|  
 | |
|  	if ( params[3] )
 | |
|  	{ 
 | |
| -		char *szTeam = ""; 
 | |
| +		const char *szTeam = ""; 
 | |
|  		switch(iTeam)
 | |
|  		{
 | |
|  		case 1: 
 | |
|  			szTeam = "Allies"; 
 | |
|  			break; 
 | |
|  
 | |
|  		case 2: 
 | |
|  			szTeam = "Axis"; 
 | |
| diff --git a/dlls/dod/dodx/moduleconfig.cpp b/dlls/dod/dodx/moduleconfig.cpp
 | |
| --- a/dlls/dod/dodx/moduleconfig.cpp
 | |
| +++ b/dlls/dod/dodx/moduleconfig.cpp
 | |
| @@ -425,17 +425,17 @@ void DispatchKeyValue_Post( edict_t *pen
 | |
|  				}
 | |
|  			}
 | |
|  			else if ( pkvd->szKeyName[12]=='p' ) g_map.detect_axis_paras=atoi(pkvd->szValue);
 | |
|  		}
 | |
|  	}
 | |
|  	RETURN_META(MRES_IGNORED);
 | |
|  }
 | |
|  
 | |
| -void SetClientKeyValue(int id, char *protocol, char *type, char *var)
 | |
| +void SetClientKeyValue(int id, char *protocol, const char *type, const char *var)
 | |
|  {
 | |
|  	// ID: Number
 | |
|  	// protocol: \name\Sgt.MEOW\topcolor\1\bottomcolor\1\cl_lw\1\team\axis\model\axis-inf 
 | |
|  	// type: model
 | |
|  	// var: axis-inf
 | |
|  
 | |
|  	// Check to see if its a player and we are setting a model
 | |
|  	if(strcmp(type, "model") == 0 && 
 | |
| diff --git a/dlls/dod/dodx/sdk/amxxmodule.cpp b/dlls/dod/dodx/sdk/amxxmodule.cpp
 | |
| --- a/dlls/dod/dodx/sdk/amxxmodule.cpp
 | |
| +++ b/dlls/dod/dodx/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/dlls/dod/dodx/sdk/amxxmodule.h b/dlls/dod/dodx/sdk/amxxmodule.h
 | |
| --- a/dlls/dod/dodx/sdk/amxxmodule.h
 | |
| +++ b/dlls/dod/dodx/sdk/amxxmodule.h
 | |
| @@ -15,21 +15,26 @@
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -61,17 +66,17 @@ struct amxx_module_info_s
 | |
|  
 | |
|  // *** Small stuff ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -390,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2111,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2170,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/dlls/engine/Makefile b/dlls/engine/Makefile
 | |
| --- a/dlls/engine/Makefile
 | |
| +++ b/dlls/engine/Makefile
 | |
| @@ -1,79 +1,124 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../../metamod/metamod
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -OPT_FLAGS = -O2 -funroll-loops -s -pipe -fomit-frame-pointer -fno-strict-aliasing
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -NAME = engine
 | |
| -
 | |
| -BIN_SUFFIX_32 = amxx_i386.so
 | |
| -BIN_SUFFIX_64 = amxx_amd64.so
 | |
| +PROJECT = engine
 | |
|  
 | |
|  OBJECTS = sdk/amxxmodule.cpp amxxapi.cpp engine.cpp entity.cpp globals.cpp forwards.cpp \
 | |
| -	amxmod_compat.cpp
 | |
| +          amxmod_compat.cpp
 | |
|  
 | |
| -LINK = 
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -I$(HLSDK)/common -Isdk
 | |
| +C_OPT_FLAGS = -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +LINK =
 | |
|  
 | |
| -ifeq "$(GCC_VERSION)" "4"
 | |
| -	OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +	  -I$(MM_ROOT) -Isdk
 | |
| +
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
| +
 | |
| +OS := $(shell uname -s)
 | |
| +
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _amxx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _amxx_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared
 | |
|  endif
 | |
|  
 | |
| +LINK += -m32 -lm -ldl
 | |
| +
 | |
| +CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
| +
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -fno-rtti -static-libgcc -m32
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -ifeq "$(AMD64)" "true"
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_64)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
|  else
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_32)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -	OPT_FLAGS += -march=i586
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
|  endif
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
|  	mkdir -p $(BIN_DIR)
 | |
|  	mkdir -p $(BIN_DIR)/sdk
 | |
| -	$(MAKE) engine
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -amd64:
 | |
| -	$(MAKE) all AMD64=true
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -engine: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| -
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/sdk/*.o
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_64)
 | |
| -	rm -rf Debug/sdk/*.o
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64)
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -rf $(BIN_DIR)/sdk/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
| +
 | |
| diff --git a/dlls/engine/amxmod_compat.cpp b/dlls/engine/amxmod_compat.cpp
 | |
| --- a/dlls/engine/amxmod_compat.cpp
 | |
| +++ b/dlls/engine/amxmod_compat.cpp
 | |
| @@ -11,18 +11,18 @@ static int gmsgDamage = 0;
 | |
|  static int gmsgDeathMsg = 0;
 | |
|  static int gmsgScoreInfo = 0;
 | |
|  
 | |
|  //From VexdUM (AMX Mod 2006.2)
 | |
|  //This is not exposed, and is only provided as a compatibility helper.
 | |
|  BOOL is_breakable(edict_t* pBreak)
 | |
|  {
 | |
|  	if (FStrEq("func_breakable", STRING(pBreak->v.classname))
 | |
| -		|| FStrEq("func_pushable", STRING(pBreak->v.classname))
 | |
| -		&& pBreak->v.spawnflags & SF_PUSH_BREAKABLE)
 | |
| +		|| (FStrEq("func_pushable", STRING(pBreak->v.classname))
 | |
| +		&& pBreak->v.spawnflags & SF_PUSH_BREAKABLE))
 | |
|  	{
 | |
|  		return true;
 | |
|  	}
 | |
|  
 | |
|  	return false;
 | |
|  }
 | |
|  
 | |
|  //From VexdUM (AMX Mod 2006.2)
 | |
| diff --git a/dlls/engine/entity.cpp b/dlls/engine/entity.cpp
 | |
| --- a/dlls/engine/entity.cpp
 | |
| +++ b/dlls/engine/entity.cpp
 | |
| @@ -1465,17 +1465,17 @@ static cell AMX_NATIVE_CALL find_ent_by_
 | |
|  	int oEnt = params[3];
 | |
|  	// Check index to start searching at, 0 must be possible for iEnt.
 | |
|  	CHECK_ENTITY(oEnt);
 | |
|  
 | |
|  	edict_t *pEnt = INDEXENT2(iEnt);
 | |
|  	edict_t *entOwner = INDEXENT2(oEnt);
 | |
|  
 | |
|  	//optional fourth parameter is for jghg2 compatibility
 | |
| -	char* sCategory = NULL; 
 | |
| +	const char* sCategory = NULL; 
 | |
|  	switch(params[4]){ 
 | |
|  		case 1: sCategory = "target"; break; 
 | |
|  		case 2: sCategory = "targetname"; break; 
 | |
|  		default: sCategory = "classname"; 
 | |
|  	}
 | |
|  
 | |
|  	// No need to check if there is a real ent where entOwner points at since we don't access it anyway.
 | |
|  
 | |
| diff --git a/dlls/engine/sdk/CString.h b/dlls/engine/sdk/CString.h
 | |
| --- a/dlls/engine/sdk/CString.h
 | |
| +++ b/dlls/engine/sdk/CString.h
 | |
| @@ -215,17 +215,17 @@ public:
 | |
|  
 | |
|  		if (len < 1)
 | |
|  		{
 | |
|  			return;
 | |
|  		}
 | |
|  
 | |
|  		if (is_space(v[len-1]))
 | |
|  		{
 | |
| -			for (i=len-1; i>=0; i--)
 | |
| +			for (i=len-1; i<len; i--)
 | |
|  			{
 | |
|  				if (!is_space(v[i])
 | |
|  					|| (is_space(v[i]) && i==0))
 | |
|  				{
 | |
|  					erase(i+1, j);
 | |
|  					break;
 | |
|  				}
 | |
|  				j++;
 | |
| diff --git a/dlls/engine/sdk/amxxmodule.cpp b/dlls/engine/sdk/amxxmodule.cpp
 | |
| --- a/dlls/engine/sdk/amxxmodule.cpp
 | |
| +++ b/dlls/engine/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/dlls/engine/sdk/amxxmodule.h b/dlls/engine/sdk/amxxmodule.h
 | |
| --- a/dlls/engine/sdk/amxxmodule.h
 | |
| +++ b/dlls/engine/sdk/amxxmodule.h
 | |
| @@ -15,21 +15,26 @@
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -61,17 +66,17 @@ struct amxx_module_info_s
 | |
|  
 | |
|  // *** Small stuff ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -390,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2111,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2170,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/dlls/fakemeta/Makefile b/dlls/fakemeta/Makefile
 | |
| --- a/dlls/fakemeta/Makefile
 | |
| +++ b/dlls/fakemeta/Makefile
 | |
| @@ -1,81 +1,125 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../../metamod/metamod
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing -fomit-frame-pointer
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -NAME = fakemeta
 | |
| -
 | |
| -BIN_SUFFIX_32 = amxx_i386.so
 | |
| -BIN_SUFFIX_64 = amxx_amd64.so
 | |
| +PROJECT = fakemeta
 | |
|  
 | |
|  OBJECTS = sdk/amxxmodule.cpp dllfunc.cpp engfunc.cpp fakemeta_amxx.cpp pdata.cpp forward.cpp \
 | |
| -	fm_tr.cpp pev.cpp glb.cpp fm_tr2.cpp misc.cpp
 | |
| +          fm_tr.cpp pev.cpp glb.cpp fm_tr2.cpp misc.cpp
 | |
| +
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
| +
 | |
| +C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
|  LINK =
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -I$(HLSDK)/common -I$(HLSDK)/pm_shared -Isdk
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +          -I$(HLSDK)/pm_shared -I$(MM_ROOT) -Isdk
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
|  
 | |
| -ifeq "$(GCC_VERSION)" "4"
 | |
| -        OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| +OS := $(shell uname -s)
 | |
| +
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _amxx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _amxx_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared
 | |
|  endif
 | |
|  
 | |
| +LINK += -m32 -lm -ldl
 | |
| +
 | |
| +CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror \
 | |
| +          -Wno-invalid-offsetof
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
|  
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -Wno-invalid-offsetof -m32
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -ifeq "$(AMD64)" "true"
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_64)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
|  else
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_32)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -	OPT_FLAGS += -march=i586
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
|  endif
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
|  	mkdir -p $(BIN_DIR)
 | |
|  	mkdir -p $(BIN_DIR)/sdk
 | |
| -	$(MAKE) fakemeta
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -amd64:
 | |
| -	$(MAKE) all AMD64=true
 | |
| -
 | |
| -fakemeta: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
|  debug:
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/sdk/*.o
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_64)
 | |
| -	rm -rf Debug/sdk/*.o
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64)
 | |
| -	
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -rf $(BIN_DIR)/sdk/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
| +
 | |
| diff --git a/dlls/fakemeta/dllfunc.cpp b/dlls/fakemeta/dllfunc.cpp
 | |
| --- a/dlls/fakemeta/dllfunc.cpp
 | |
| +++ b/dlls/fakemeta/dllfunc.cpp
 | |
| @@ -2,19 +2,19 @@
 | |
|  
 | |
|  //by mahnsawce from his NS module
 | |
|  static cell AMX_NATIVE_CALL dllfunc(AMX *amx,cell *params)
 | |
|  {
 | |
|  	int type;
 | |
|  	int index;
 | |
|  	int indexb;
 | |
|  	unsigned char *pset;
 | |
| -	char *temp = "";
 | |
| -	char *temp2 = "";
 | |
| -	char *temp3 = "";
 | |
| +	const char *temp = "";
 | |
| +	const char *temp2 = "";
 | |
| +	const char *temp3 = "";
 | |
|  	vec3_t Vec1;
 | |
|  	vec3_t Vec2;
 | |
|  	int iparam1;
 | |
|  	int iparam2;
 | |
|  	int iparam3;
 | |
|  	entity_state_t *es;
 | |
|  	int len;
 | |
|  	cell *cRet;
 | |
| @@ -100,17 +100,17 @@ static cell AMX_NATIVE_CALL dllfunc(AMX 
 | |
|  	case	DLLFunc_ClientConnect:		// bool)		( edict_t *pEntity, const char *pszName, const char *pszAddress, char szRejectReason[ 128 ] );
 | |
|  		// index,szName,szAddress,szRetRejectReason,size
 | |
|  		cRet = MF_GetAmxAddr(amx,params[2]);
 | |
|  		index=cRet[0];
 | |
|  		CHECK_ENTITY(index);
 | |
|  		temp = MF_GetAmxString(amx,params[3],0,&len);
 | |
|  		temp2 = MF_GetAmxString(amx,params[4],1,&len);
 | |
|  		//temp3 = GET_AMXSTRING(amx,params[5],2,len);
 | |
| -		iparam1 = MDLL_ClientConnect(INDEXENT2(index),STRING(ALLOC_STRING(temp)),STRING(ALLOC_STRING(temp2)),temp3);
 | |
| +		iparam1 = MDLL_ClientConnect(INDEXENT2(index),STRING(ALLOC_STRING(temp)),STRING(ALLOC_STRING(temp2)),(char *)temp3);
 | |
|  		cRet = MF_GetAmxAddr(amx,params[6]);
 | |
|  		MF_SetAmxString(amx,params[5],temp3,cRet[0]);
 | |
|  		return iparam1;
 | |
|  	
 | |
|  	case	DLLFunc_ClientDisconnect:	// void )	( edict_t *pEntity );
 | |
|  		cRet = MF_GetAmxAddr(amx,params[2]);
 | |
|  		index=cRet[0];
 | |
|  		CHECK_ENTITY(index);
 | |
| diff --git a/dlls/fakemeta/engfunc.cpp b/dlls/fakemeta/engfunc.cpp
 | |
| --- a/dlls/fakemeta/engfunc.cpp
 | |
| +++ b/dlls/fakemeta/engfunc.cpp
 | |
| @@ -29,25 +29,25 @@ static cell AMX_NATIVE_CALL engfunc(AMX 
 | |
|  //	float fTemp[3];
 | |
|  	int index;
 | |
|  	unsigned char *pset;
 | |
|  	edict_t *pRet=NULL;
 | |
|  	// Now start calling.. :/
 | |
|  	switch (type)
 | |
|  	{
 | |
|  		// pfnPrecacheModel
 | |
| -	case 	EngFunc_PrecacheModel:	// int  )			(char* s);
 | |
| +	case 	EngFunc_PrecacheModel:	// int  )			(const char* s);
 | |
|  		temp = MF_GetAmxString(amx,params[2],0,&len);
 | |
|  		if (temp[0]==0)
 | |
|  			return 0;
 | |
| -		return (*g_engfuncs.pfnPrecacheModel)((char*)STRING(ALLOC_STRING(temp)));
 | |
| +		return (*g_engfuncs.pfnPrecacheModel)((char *)STRING(ALLOC_STRING(temp)));
 | |
|  
 | |
|  
 | |
|  		// pfnPrecacheSound
 | |
| -	case	EngFunc_PrecacheSound:	// int  )			(char* s);
 | |
| +	case	EngFunc_PrecacheSound:	// int  )			(const char* s);
 | |
|  		temp = MF_GetAmxString(amx,params[2],0,&len);
 | |
|  		if (temp[0]==0)
 | |
|  			return 0;
 | |
|  		return (*g_engfuncs.pfnPrecacheSound)((char*)STRING(ALLOC_STRING(temp)));
 | |
|  
 | |
|  
 | |
|  		// pfnSetModel
 | |
|  	case	EngFunc_SetModel:		// void )				(edict_t *e, const char *m);
 | |
| diff --git a/dlls/fakemeta/forward.cpp b/dlls/fakemeta/forward.cpp
 | |
| --- a/dlls/fakemeta/forward.cpp
 | |
| +++ b/dlls/fakemeta/forward.cpp
 | |
| @@ -78,20 +78,20 @@ static cell AMX_NATIVE_CALL fm_return(AM
 | |
|  
 | |
|  	return 1;
 | |
|  }
 | |
|  /*
 | |
|   * Begining of Game DLL->Engine hooks
 | |
|   */
 | |
|  
 | |
|  // pfnPrecacheModel
 | |
| -SIMPLE_INT_HOOK_STRING(PrecacheModel);
 | |
| +SIMPLE_INT_HOOK_CONSTSTRING(PrecacheModel);
 | |
|  
 | |
|  // pfnPrecacheSound
 | |
| -SIMPLE_INT_HOOK_STRING(PrecacheSound);
 | |
| +SIMPLE_INT_HOOK_CONSTSTRING(PrecacheSound);
 | |
|  
 | |
|  void ClientUserInfoChanged(edict_t *e, char *infobuffer)
 | |
|  {
 | |
|  	FM_ENG_HANDLE(FM_ClientUserInfoChanged, (Engine[FM_ClientUserInfoChanged].at(i), (cell)ENTINDEX(e), (cell)infobuffer));
 | |
|  	RETURN_META(mswi(lastFmRes));
 | |
|  }
 | |
|  
 | |
|  void ClientUserInfoChanged_post(edict_t *e, char *infobuffer)
 | |
| @@ -256,28 +256,28 @@ void KeyValue(edict_t* entity, KeyValueD
 | |
|  
 | |
|  void KeyValue_post(edict_t* entity, KeyValueData* data)
 | |
|  {
 | |
|  	g_kvd_hook.kvd = data;
 | |
|  	FM_ENG_HANDLE_POST(FM_KeyValue, (EnginePost[FM_KeyValue].at(i), (cell)ENTINDEX(entity), (cell)(&g_kvd_hook)));
 | |
|  	RETURN_META(MRES_IGNORED);
 | |
|  }
 | |
|  
 | |
| -void AlertMessage(ALERT_TYPE atype, char *szFmt, ...)
 | |
| +void AlertMessage(ALERT_TYPE atype, const char *szFmt, ...)
 | |
|  {
 | |
|  	static char buf[2048];
 | |
|  	va_list ap;
 | |
|  	va_start(ap, szFmt);
 | |
|  	vsprintf(buf, szFmt, ap);
 | |
|  	va_end(ap);
 | |
|  	FM_ENG_HANDLE(FM_AlertMessage, (Engine[FM_AlertMessage].at(i), (cell)atype, buf));
 | |
|  	RETURN_META(mswi(lastFmRes));
 | |
|  }
 | |
|  
 | |
| -void AlertMessage_post(ALERT_TYPE atype, char *szFmt, ...)
 | |
| +void AlertMessage_post(ALERT_TYPE atype, const char *szFmt, ...)
 | |
|  {
 | |
|  	static char buf[2048];
 | |
|  	va_list ap;
 | |
|  	va_start(ap, szFmt);
 | |
|  	vsprintf(buf, szFmt, ap);
 | |
|  	va_end(ap);
 | |
|  	FM_ENG_HANDLE_POST(FM_AlertMessage, (EnginePost[FM_AlertMessage].at(i), (cell)atype, buf));
 | |
|  	RETURN_META(MRES_IGNORED);
 | |
| @@ -288,17 +288,17 @@ SIMPLE_INT_HOOK_CONSTSTRING(ModelIndex);
 | |
|  
 | |
|  // pfnModelFrames
 | |
|  SIMPLE_INT_HOOK_INT(ModelFrames);
 | |
|  
 | |
|  // pfnSetSize
 | |
|  SIMPLE_VOID_HOOK_EDICT_CONSTVECT_CONSTVECT(SetSize);
 | |
|  
 | |
|  // pfnChangeLevel
 | |
| -SIMPLE_VOID_HOOK_STRING_STRING(ChangeLevel);
 | |
| +SIMPLE_VOID_HOOK_CONSTSTRING_CONSTSTRING(ChangeLevel);
 | |
|  
 | |
|  // pfnVecToYaw
 | |
|  SIMPLE_FLOAT_HOOK_CONSTVECT(VecToYaw);
 | |
|  
 | |
|  void VecToAngles(const float *rgflVectorIn, float *rgflVectorOut)
 | |
|  {
 | |
|  	PREPARE_VECTOR(rgflVectorIn);
 | |
|  	PREPARE_VECTOR(rgflVectorOut);
 | |
| @@ -502,17 +502,17 @@ SIMPLE_FLOAT_HOOK_VOID(Time);
 | |
|  SIMPLE_VOID_HOOK_CONSTEDICT_FLOAT_FLOAT(CrosshairAngle);
 | |
|  
 | |
|  SIMPLE_VOID_HOOK_CONSTEDICT_INT_INT_INT_INT(FadeClientVolume);
 | |
|  
 | |
|  // pfnSetClientMaxspeed
 | |
|  SIMPLE_VOID_HOOK_CONSTEDICT_FLOAT(SetClientMaxspeed);
 | |
|  
 | |
|  // pfnPrecacheGeneric
 | |
| -SIMPLE_INT_HOOK_STRING(PrecacheGeneric);
 | |
| +SIMPLE_INT_HOOK_CONSTSTRING(PrecacheGeneric);
 | |
|  
 | |
|  // pfnPrecacheEvent
 | |
|  SIMPLE_USHORT_HOOK_INT_CONSTSTRING(PrecacheEvent);
 | |
|  
 | |
|  // pfnGetPhysicsKeyValue
 | |
|  SIMPLE_CONSTSTRING_HOOK_CONSTEDICT_CONSTSTRING(GetPhysicsKeyValue);
 | |
|  
 | |
|  // pfnSetPhysicsKeyValue
 | |
| @@ -595,27 +595,27 @@ SIMPLE_INT_HOOK_CONSTEDICT(CanSkipPlayer
 | |
|  SIMPLE_VOID_HOOK_INT_INT(SetGroupMask);
 | |
|  
 | |
|  // pfnVoice_GetClientListening
 | |
|  SIMPLE_BOOL_HOOK_INT_INT(Voice_GetClientListening);
 | |
|  
 | |
|  // pfnVoice_SetClientListening
 | |
|  SIMPLE_BOOL_HOOK_INT_INT_BOOL(Voice_SetClientListening);
 | |
|  
 | |
| -SIMPLE_STRING_HOOK_STRING_STRING(InfoKeyValue);
 | |
| +SIMPLE_STRING_HOOK_STRING_CONSTSTRING(InfoKeyValue);
 | |
|  
 | |
| -SIMPLE_VOID_HOOK_STRING_STRING_STRING(SetKeyValue);
 | |
| +SIMPLE_VOID_HOOK_STRING_CONSTSTRING_CONSTSTRING(SetKeyValue);
 | |
|  
 | |
| -SIMPLE_VOID_HOOK_INT_STRING_STRING_STRING(SetClientKeyValue);
 | |
| +SIMPLE_VOID_HOOK_INT_STRING_CONSTSTRING_CONSTSTRING(SetClientKeyValue);
 | |
|  
 | |
|  SIMPLE_CONSTSTRING_HOOK_EDICT(GetPlayerAuthId);
 | |
|  
 | |
|  SIMPLE_UINT_HOOK_EDICT(GetPlayerWONId);
 | |
|  
 | |
| -SIMPLE_INT_HOOK_STRING(IsMapValid);
 | |
| +SIMPLE_INT_HOOK_CONSTSTRING(IsMapValid);
 | |
|  
 | |
|  int CreateInstancedBaseline(int classname, struct entity_state_s *baseline)
 | |
|  {
 | |
|  	g_es_hook = baseline;
 | |
|  	FM_ENG_HANDLE(FM_CreateInstancedBaseline, (Engine[FM_CreateInstancedBaseline].at(i), (cell)classname, (cell)baseline));
 | |
|  	RETURN_META_VALUE(mswi(lastFmRes), (int)mlCellResult);
 | |
|  }
 | |
|  
 | |
| @@ -720,17 +720,17 @@ SIMPLE_VOID_HOOK_EDICT(SpectatorDisconne
 | |
|  
 | |
|  // pfnSpectatorThink
 | |
|  SIMPLE_VOID_HOOK_EDICT(SpectatorThink);
 | |
|  
 | |
|  // pfnSys_Error
 | |
|  SIMPLE_VOID_HOOK_CONSTSTRING(Sys_Error);
 | |
|  
 | |
|  // pfnPM_FindTextureType
 | |
| -SIMPLE_CHAR_HOOK_STRING(PM_FindTextureType);
 | |
| +SIMPLE_CHAR_HOOK_CONSTSTRING(PM_FindTextureType);
 | |
|  
 | |
|  // pfnRegisterEncoders
 | |
|  SIMPLE_VOID_HOOK_VOID(RegisterEncoders);
 | |
|  
 | |
|  // pfnCreateInstancedBaselines
 | |
|  SIMPLE_VOID_HOOK_VOID(CreateInstancedBaselines);
 | |
|  
 | |
|  // pfnAllowLagCompensation
 | |
| diff --git a/dlls/fakemeta/forwardmacros.h b/dlls/fakemeta/forwardmacros.h
 | |
| --- a/dlls/fakemeta/forwardmacros.h
 | |
| +++ b/dlls/fakemeta/forwardmacros.h
 | |
| @@ -70,40 +70,77 @@
 | |
|  		RETURN_META(mswi(lastFmRes)); \
 | |
|  	} \
 | |
|  	void call##_post (int v, char *c, char *cb, char *cc) \
 | |
|  	{ \
 | |
|  		FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i),(cell)v,c,cb,cc)); \
 | |
|  		RETURN_META(MRES_IGNORED); \
 | |
|  	}
 | |
|  
 | |
| +#define SIMPLE_VOID_HOOK_INT_STRING_CONSTSTRING_CONSTSTRING(call) \
 | |
| +        void call (int v,char *c, const char *cb, const char *cc) \
 | |
| +        { \
 | |
| +                FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i),(cell)v,c,cb,cc)); \
 | |
| +                RETURN_META(mswi(lastFmRes)); \
 | |
| +        } \
 | |
| +        void call##_post (int v, char *c, const char *cb, const char *cc) \
 | |
| +        { \
 | |
| +                FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i),(cell)v,c,cb,cc)); \
 | |
| +                RETURN_META(MRES_IGNORED); \
 | |
| +        }
 | |
| +
 | |
| +
 | |
|  #define SIMPLE_VOID_HOOK_STRING_STRING_STRING(call) \
 | |
|  	void call (char *c, char *cb, char *cc) \
 | |
|  	{ \
 | |
|  		FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i),c,cb,cc)); \
 | |
|  		RETURN_META(mswi(lastFmRes)); \
 | |
|  	} \
 | |
|  	void call##_post (char *c, char *cb, char *cc) \
 | |
|  	{ \
 | |
|  		FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i),c,cb,cc)); \
 | |
|  		RETURN_META(MRES_IGNORED); \
 | |
|  	}
 | |
|  
 | |
| +#define SIMPLE_VOID_HOOK_STRING_CONSTSTRING_CONSTSTRING(call) \
 | |
| +        void call (char *c, const char *cb, const char *cc) \
 | |
| +        { \
 | |
| +                FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i),c,cb,cc)); \
 | |
| +                RETURN_META(mswi(lastFmRes)); \
 | |
| +        } \
 | |
| +        void call##_post (char *c, const char *cb, const char *cc) \
 | |
| +        { \
 | |
| +                FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i),c,cb,cc)); \
 | |
| +                RETURN_META(MRES_IGNORED); \
 | |
| +        }
 | |
| +
 | |
|  #define SIMPLE_STRING_HOOK_STRING_STRING(call) \
 | |
|  	char* call (char *c, char *cb) \
 | |
|  	{ \
 | |
|  		FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i),c,cb)); \
 | |
|  		RETURN_META_VALUE(mswi(lastFmRes), (char*)mlStringResult); \
 | |
|  	} \
 | |
|  	char* call##_post (char *c, char *cb) \
 | |
|  	{ \
 | |
|  		origStringRet = META_RESULT_ORIG_RET(char *); \
 | |
|  		FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i),c,cb)); \
 | |
|  		RETURN_META_VALUE(MRES_IGNORED, (char*)mlStringResult); \
 | |
|  	}
 | |
| +#define SIMPLE_STRING_HOOK_STRING_CONSTSTRING(call) \
 | |
| +        char* call (char *c, const char *cb) \
 | |
| +        { \
 | |
| +                FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i),c,cb)); \
 | |
| +                RETURN_META_VALUE(mswi(lastFmRes), (char*)mlStringResult); \
 | |
| +        } \
 | |
| +        char* call##_post (char *c, const char *cb) \
 | |
| +        { \
 | |
| +                origStringRet = META_RESULT_ORIG_RET(char *); \
 | |
| +                FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i),c,cb)); \
 | |
| +                RETURN_META_VALUE(MRES_IGNORED, (char*)mlStringResult); \
 | |
| +        }
 | |
|  #define SIMPLE_CONSTSTRING_HOOK_EDICT(call) \
 | |
|  	const char* call (edict_t *e) \
 | |
|  	{ \
 | |
|  		FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i),(cell)ENTINDEX(e))); \
 | |
|  		RETURN_META_VALUE(mswi(lastFmRes), mlStringResult); \
 | |
|  	} \
 | |
|  	const char* call##_post (edict_t *e) \
 | |
|  	{ \
 | |
| @@ -170,16 +207,29 @@
 | |
|  		RETURN_META_VALUE(mswi(lastFmRes), (char)mlCellResult); \
 | |
|  	} \
 | |
|  	char call##_post (char *s) \
 | |
|  	{ \
 | |
|  		origCellRet = META_RESULT_ORIG_RET(char); \
 | |
|  		FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i), s)); \
 | |
|  		RETURN_META_VALUE(MRES_IGNORED, (char)mlCellResult); \
 | |
|  	}
 | |
| +#define SIMPLE_CHAR_HOOK_CONSTSTRING(call) \
 | |
| +        char call (const char *s) \
 | |
| +        { \
 | |
| +                FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i), s)); \
 | |
| +                RETURN_META_VALUE(mswi(lastFmRes), (char)mlCellResult); \
 | |
| +        } \
 | |
| +        char call##_post (const char *s) \
 | |
| +        { \
 | |
| +                origCellRet = META_RESULT_ORIG_RET(char); \
 | |
| +                FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i), s)); \
 | |
| +                RETURN_META_VALUE(MRES_IGNORED, (char)mlCellResult); \
 | |
| +        }
 | |
| +
 | |
|  #define SIMPLE_VOID_HOOK_CONSTSTRING(call) \
 | |
|  	void call (const char *s) \
 | |
|  	{ \
 | |
|  		FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i), s)); \
 | |
|  		RETURN_META(mswi(lastFmRes)); \
 | |
|  	} \
 | |
|  	void call##_post (const char *s) \
 | |
|  	{ \
 | |
| diff --git a/dlls/fakemeta/pdata.cpp b/dlls/fakemeta/pdata.cpp
 | |
| --- a/dlls/fakemeta/pdata.cpp
 | |
| +++ b/dlls/fakemeta/pdata.cpp
 | |
| @@ -1,10 +1,22 @@
 | |
|  #include "fakemeta_amxx.h"
 | |
|  
 | |
| +#if defined PAWN_CELL_SIZE
 | |
| +# if PAWN_CELL_SIZE == 16
 | |
| +#  define CELL_MIN SHRT_MIN
 | |
| +# elif PAWN_CELL_SIZE == 32
 | |
| +#  define CELL_MIN INT_MIN
 | |
| +# elif PAWN_CELL_SIZE == 64
 | |
| +#  define CELL_MIN _I64_MIN
 | |
| +# endif
 | |
| +#else
 | |
| +#  define CELL_MIN _I32_MIN
 | |
| +#endif
 | |
| +
 | |
|  #if defined WIN32
 | |
|  #define WINDOWS_LEAN_AND_MEAN
 | |
|  #include <windows.h>
 | |
|  #else
 | |
|  //implement these with setjmp later.
 | |
|  bool IsBadReadPtr(void *l, size_t size)
 | |
|  {
 | |
|  	return false;
 | |
| @@ -19,71 +31,104 @@ static cell AMX_NATIVE_CALL set_pdata_in
 | |
|  {
 | |
|  	int index=params[1];
 | |
|  	CHECK_ENTITY(index);
 | |
|  	int iOffset=params[2];
 | |
|  	if (iOffset <0)
 | |
|  		return 1;
 | |
|  #ifdef __linux__
 | |
|  	iOffset += params[4];
 | |
| +#elif defined __APPLE__
 | |
| +	// Use Linux offset in older plugins
 | |
| +	if (params[0] / sizeof(cell) == 4)
 | |
| +		iOffset += params[4];
 | |
| +	else
 | |
| +		iOffset += params[5];
 | |
|  #endif
 | |
|  	int iValue=params[3];
 | |
|  	*((int *)INDEXENT2(index)->pvPrivateData + iOffset) = iValue;
 | |
|  	return 1;
 | |
|  }
 | |
|  static cell AMX_NATIVE_CALL get_pdata_int(AMX *amx, cell *params)
 | |
|  {
 | |
|  	int index=params[1];
 | |
|  	CHECK_ENTITY(index);
 | |
|  	int iOffset=params[2];
 | |
|  	if (iOffset <0)
 | |
|  		return 0;
 | |
|  #ifdef __linux__
 | |
|  	iOffset += params[3];
 | |
| +#elif defined __APPLE__
 | |
| +	// Use Linux offset in older plugins
 | |
| +	if (params[0] / sizeof(cell) == 3)
 | |
| +		iOffset += params[3];
 | |
| +	else
 | |
| +		iOffset += params[4];
 | |
|  #endif
 | |
| +
 | |
|  	return *((int *)INDEXENT2(index)->pvPrivateData + iOffset);
 | |
|  }
 | |
|  // Float
 | |
|  static cell AMX_NATIVE_CALL set_pdata_float(AMX *amx, cell *params)
 | |
|  {
 | |
|  	int index=params[1];
 | |
|  	CHECK_ENTITY(index);
 | |
|  	int iOffset=params[2];
 | |
|  	if (iOffset <0)
 | |
|  		return 1;
 | |
|  #ifdef __linux__
 | |
|  	iOffset += params[4];
 | |
| +#elif defined __APPLE__
 | |
| +	// Use Linux offset in older plugins
 | |
| +	if (params[0] / sizeof(cell) == 4)
 | |
| +		iOffset += params[4];
 | |
| +	else
 | |
| +		iOffset += params[5];
 | |
|  #endif
 | |
| +
 | |
|  	float fValue=amx_ctof(params[3]);
 | |
|  	*((float *)INDEXENT2(index)->pvPrivateData + iOffset) = fValue;
 | |
|  	return 1;
 | |
|  }
 | |
|  static cell AMX_NATIVE_CALL get_pdata_float(AMX *amx, cell *params)
 | |
|  {
 | |
|  	int index=params[1];
 | |
|  	CHECK_ENTITY(index);
 | |
|  	int iOffset=params[2];
 | |
|  	if (iOffset <0)
 | |
|  		return 1;
 | |
|  #ifdef __linux__
 | |
|  	iOffset += params[3];
 | |
| +#elif defined __APPLE__
 | |
| +	// Use Linux offset in older plugins
 | |
| +	if (params[0] / sizeof(cell) == 3)
 | |
| +		iOffset += params[3];
 | |
| +	else
 | |
| +		iOffset += params[4];
 | |
|  #endif
 | |
| +
 | |
|  	return amx_ftoc(*((float *)INDEXENT2(index)->pvPrivateData + iOffset));
 | |
|  }
 | |
|  
 | |
|  static cell AMX_NATIVE_CALL get_pdata_string(AMX *amx, cell *params)
 | |
|  {
 | |
|  	int index=params[1];
 | |
|  	CHECK_ENTITY(index);
 | |
|  
 | |
|  	int iOffset=params[2];
 | |
|  	if (iOffset <0)
 | |
|  		return 1;
 | |
|  #ifdef __linux__
 | |
|  	iOffset += params[6];
 | |
| +#elif defined __APPLE__
 | |
| +	// Use Linux offset in older plugins
 | |
| +	if (params[0] / sizeof(cell) == 6 || params[7] == CELL_MIN)
 | |
| +		iOffset += params[6];
 | |
| +	else
 | |
| +		iOffset += params[7];
 | |
|  #endif
 | |
|  
 | |
|  	edict_t *pEdict = INDEXENT2(index);
 | |
|  
 | |
|  	char *szData;
 | |
|  	if (params[5])
 | |
|  	{
 | |
|  		szData = *((char **)pEdict->pvPrivateData + iOffset);
 | |
| @@ -106,16 +151,22 @@ static cell AMX_NATIVE_CALL set_pdata_st
 | |
|  	int index=params[1];
 | |
|  	CHECK_ENTITY(index);
 | |
|  
 | |
|  	int iOffset=params[2];
 | |
|  	if (iOffset <0)
 | |
|  		return 1;
 | |
|  #ifdef __linux__
 | |
|  	iOffset += params[5];
 | |
| +#elif defined __APPLE__
 | |
| +	// Use Linux offset in older plugins
 | |
| +	if (params[0] / sizeof(cell) == 5 || params[6] == CELL_MIN)
 | |
| +		iOffset += params[5];
 | |
| +	else
 | |
| +		iOffset += params[6];
 | |
|  #endif
 | |
|  
 | |
|  	edict_t *pEdict = INDEXENT2(index);
 | |
|  
 | |
|  	char *szData;
 | |
|  	int len;
 | |
|  	char *data = MF_GetAmxString(amx, params[3], 0, &len);
 | |
|  	if (params[4] == -1)
 | |
| @@ -147,16 +198,22 @@ static cell AMX_NATIVE_CALL get_pdata_en
 | |
|  {
 | |
|  	int index=params[1];
 | |
|  	int iOffset=params[2];
 | |
|  
 | |
|  	CHECK_ENTITY(index);
 | |
|  
 | |
|  #ifdef __linux__
 | |
|  	iOffset += params[3];
 | |
| +#elif defined __APPLE__
 | |
| +	// Use Linux offset in older plugins
 | |
| +	if (params[0] / sizeof(cell) == 3)
 | |
| +		iOffset += params[3];
 | |
| +	else
 | |
| +		iOffset += params[4];
 | |
|  #endif
 | |
|  
 | |
|  	edict_t *pEdict = *(edict_t **)((char *)(INDEXENT2(index)->pvPrivateData) + iOffset);
 | |
|  
 | |
|  	if (pEdict == NULL)
 | |
|  	{
 | |
|  		return -1;
 | |
|  	}
 | |
| diff --git a/dlls/fakemeta/sdk/CString.h b/dlls/fakemeta/sdk/CString.h
 | |
| --- a/dlls/fakemeta/sdk/CString.h
 | |
| +++ b/dlls/fakemeta/sdk/CString.h
 | |
| @@ -239,17 +239,17 @@ public:
 | |
|  
 | |
|  		if (len < 1)
 | |
|  		{
 | |
|  			return;
 | |
|  		}
 | |
|  
 | |
|  		if (is_space(v[len-1]))
 | |
|  		{
 | |
| -			for (i=len-1; i>=0; i--)
 | |
| +			for (i=len-1; i<len; i--)
 | |
|  			{
 | |
|  				if (!is_space(v[i])
 | |
|  					|| (is_space(v[i]) && i==0))
 | |
|  				{
 | |
|  					erase(i+1, j);
 | |
|  					break;
 | |
|  				}
 | |
|  				j++;
 | |
| diff --git a/dlls/fakemeta/sdk/amxxmodule.cpp b/dlls/fakemeta/sdk/amxxmodule.cpp
 | |
| --- a/dlls/fakemeta/sdk/amxxmodule.cpp
 | |
| +++ b/dlls/fakemeta/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/dlls/fakemeta/sdk/amxxmodule.h b/dlls/fakemeta/sdk/amxxmodule.h
 | |
| --- a/dlls/fakemeta/sdk/amxxmodule.h
 | |
| +++ b/dlls/fakemeta/sdk/amxxmodule.h
 | |
| @@ -15,21 +15,26 @@
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -61,17 +66,17 @@ struct amxx_module_info_s
 | |
|  
 | |
|  // *** Small stuff ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -390,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2111,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2170,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/dlls/fun/Makefile b/dlls/fun/Makefile
 | |
| --- a/dlls/fun/Makefile
 | |
| +++ b/dlls/fun/Makefile
 | |
| @@ -1,78 +1,123 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../../metamod/metamod
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -OPT_FLAGS = -O2 -funroll-loops -s -pipe -fomit-frame-pointer -fno-strict-aliasing
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -NAME = fun
 | |
| -
 | |
| -BIN_SUFFIX_32 = amxx_i386.so
 | |
| -BIN_SUFFIX_64 = amxx_amd64.so
 | |
| +PROJECT = fun
 | |
|  
 | |
|  OBJECTS = sdk/amxxmodule.cpp fun.cpp
 | |
|  
 | |
| -LINK = 
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -I$(HLSDK)/common -Isdk
 | |
| +C_OPT_FLAGS = -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +LINK =
 | |
|  
 | |
| -ifeq "$(GCC_VERSION)" "4"
 | |
| -        OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +          -I$(MM_ROOT) -Isdk
 | |
| +
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
| +
 | |
| +OS := $(shell uname -s)
 | |
| +
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _amxx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _amxx_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared
 | |
|  endif
 | |
|  
 | |
| +LINK += -m32 -lm -ldl
 | |
| +
 | |
| +CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
| +
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -fno-rtti -static-libgcc -m32
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -ifeq "$(AMD64)" "true"
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_64)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
|  else
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_32)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -	OPT_FLAGS += -march=i586
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
|  endif
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
|  	mkdir -p $(BIN_DIR)
 | |
|  	mkdir -p $(BIN_DIR)/sdk
 | |
| -	$(MAKE) fun
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -amd64:
 | |
| -	$(MAKE) all AMD64=true
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -fun: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| -
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/sdk/*.o
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_64)
 | |
| -	rm -rf Debug/sdk/*.o
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64)
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -rf $(BIN_DIR)/sdk/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
| +
 | |
| diff --git a/dlls/fun/sdk/amxxmodule.cpp b/dlls/fun/sdk/amxxmodule.cpp
 | |
| --- a/dlls/fun/sdk/amxxmodule.cpp
 | |
| +++ b/dlls/fun/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/dlls/fun/sdk/amxxmodule.h b/dlls/fun/sdk/amxxmodule.h
 | |
| --- a/dlls/fun/sdk/amxxmodule.h
 | |
| +++ b/dlls/fun/sdk/amxxmodule.h
 | |
| @@ -15,21 +15,26 @@
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -61,17 +66,17 @@ struct amxx_module_info_s
 | |
|  
 | |
|  // *** Small stuff ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -390,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2111,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2170,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/dlls/geoip/Makefile b/dlls/geoip/Makefile
 | |
| --- a/dlls/geoip/Makefile
 | |
| +++ b/dlls/geoip/Makefile
 | |
| @@ -1,86 +1,127 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../../metamod/metamod
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing -fomit-frame-pointer
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -NAME = geoip
 | |
| -
 | |
| -BIN_SUFFIX_32 = amxx_i386.so
 | |
| -BIN_SUFFIX_64 = amxx_amd64.so
 | |
| +PROJECT = geoip
 | |
|  
 | |
|  OBJECTS = sdk/amxxmodule.cpp GeoIP.c geoip_amxx.cpp
 | |
|  
 | |
| -LINK = 
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -I$(HLSDK)/common -Isdk
 | |
| +C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +LINK =
 | |
|  
 | |
| -ifeq "$(GCC_VERSION)" "4"
 | |
| -        OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +          -I$(MM_ROOT) -Isdk
 | |
| +
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
| +
 | |
| +OS := $(shell uname -s)
 | |
| +
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _amxx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _amxx_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared
 | |
|  endif
 | |
|  
 | |
| +LINK += -m32 -lm -ldl
 | |
| +
 | |
| +CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
| +
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -DNDEBUG -Wall -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -# Strip C++ options for compiling *.c files
 | |
| -C_CFLAGS := $(shell echo $(CFLAGS) | sed -e 's/-fvisibility-inlines-hidden//' | sed -e 's/-fno-rtti//')
 | |
| -
 | |
| -ifeq "$(AMD64)" "true"
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_64)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
|  else
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_32)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -	OPT_FLAGS += -march=i586
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
|  endif
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| -OBJ_LINUX := $(OBJ_LINUX:%.c=$(BIN_DIR)/%.o)
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +OBJ_BIN := $(OBJ_BIN:%.c=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.c
 | |
| -	$(CPP) $(INCLUDE) $(C_CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
|  	mkdir -p $(BIN_DIR)
 | |
|  	mkdir -p $(BIN_DIR)/sdk
 | |
| -	$(MAKE) geoip
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -amd64:
 | |
| -	$(MAKE) all AMD64=true
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -geoip: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| -
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/sdk/*.o
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_64)
 | |
| -	rm -rf Debug/sdk/*.o
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64)
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -rf $(BIN_DIR)/sdk/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| diff --git a/dlls/geoip/sdk/amxxmodule.cpp b/dlls/geoip/sdk/amxxmodule.cpp
 | |
| --- a/dlls/geoip/sdk/amxxmodule.cpp
 | |
| +++ b/dlls/geoip/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/dlls/geoip/sdk/amxxmodule.h b/dlls/geoip/sdk/amxxmodule.h
 | |
| --- a/dlls/geoip/sdk/amxxmodule.h
 | |
| +++ b/dlls/geoip/sdk/amxxmodule.h
 | |
| @@ -15,21 +15,26 @@
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -61,17 +66,17 @@ struct amxx_module_info_s
 | |
|  
 | |
|  // *** Small stuff ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -390,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2111,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2170,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/dlls/hamsandwich/Makefile b/dlls/hamsandwich/Makefile
 | |
| --- a/dlls/hamsandwich/Makefile
 | |
| +++ b/dlls/hamsandwich/Makefile
 | |
| @@ -1,74 +1,124 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../../metamod/metamod
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| +PROJECT = hamsandwich
 | |
|  
 | |
| -OPT_FLAGS = -O3 -funroll-loops -s -pipe -fomit-frame-pointer -fno-strict-aliasing -DNDEBUG
 | |
| +OBJECTS = sdk/amxxmodule.cpp amxx_api.cpp config_parser.cpp hook_callbacks.cpp hook_native.cpp \
 | |
| +          srvcmd.cpp call_funcs.cpp hook_create.cpp DataHandler.cpp pdata.cpp
 | |
|  
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -#CPP = gcc-2.95
 | |
| -NAME = hamsandwich
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
|  
 | |
| -BIN_SUFFIX = amxx_i386.so
 | |
| +C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
| -OBJECTS = sdk/amxxmodule.cpp amxx_api.cpp    config_parser.cpp  \
 | |
| -hook_callbacks.cpp  hook_native.cpp srvcmd.cpp \
 | |
| -call_funcs.cpp  hook_create.cpp DataHandler.cpp pdata.cpp
 | |
| +LINK =
 | |
|  
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +          -I$(HLSDK)/pm_shared -I$(MM_ROOT) -Isdk
 | |
|  
 | |
| -LINK = 
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -I$(HLSDK)/common -I$(HLSDK)/pm_shared -I./tableentries -Isdk
 | |
| +OS := $(shell uname -s)
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _amxx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _amxx_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared
 | |
| +endif
 | |
| +
 | |
| +LINK += -m32 -lm -ldl
 | |
| +
 | |
| +CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
|  
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -
 | |
| -	ifeq "$(GCC_VERSION)" "4"
 | |
| -		OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| -	endif
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -Wall -Wno-non-virtual-dtor -fno-exceptions -DHAVE_STDINT_H -fno-rtti -Werror -m32
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -BINARY = $(NAME)_$(BIN_SUFFIX)
 | |
| -CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -OPT_FLAGS += -march=i586
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
| +else
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
| +endif
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
|  	mkdir -p $(BIN_DIR)
 | |
|  	mkdir -p $(BIN_DIR)/sdk
 | |
| -	$(MAKE) hamsandwich
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -hamsandwich: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/sdk/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX)
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/sdk/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX)
 | |
| -	
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -rf $(BIN_DIR)/sdk/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
| +
 | |
| diff --git a/dlls/hamsandwich/Trampolines.h b/dlls/hamsandwich/Trampolines.h
 | |
| --- a/dlls/hamsandwich/Trampolines.h
 | |
| +++ b/dlls/hamsandwich/Trampolines.h
 | |
| @@ -41,20 +41,22 @@
 | |
|  #define WIN32_LEAN_AND_MEAN
 | |
|  #endif // WIN32_LEAN_AND_MEAN
 | |
|  #if _MSC_VER >= 1400
 | |
|  #ifdef offsetof
 | |
|  #undef offsetof
 | |
|  #endif // offsetof
 | |
|  #endif // _MSC_VER >= 1400
 | |
|  #include <windows.h>
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  #include <sys/mman.h>
 | |
| +#if defined (__linux__)
 | |
|  #include <malloc.h>
 | |
|  #endif
 | |
| +#endif
 | |
|  #include <stddef.h> // size_t
 | |
|  #include <string.h> // memcpy
 | |
|  #include <stdlib.h> // memalign
 | |
|  #include <stdio.h>
 | |
|  
 | |
|  
 | |
|  namespace Trampolines
 | |
|  {
 | |
| @@ -108,24 +110,24 @@ namespace Trampolines
 | |
|  		const unsigned int codePushParamReplace = 2;
 | |
|  
 | |
|  
 | |
|  		/**
 | |
|  		 * Takes the "this" pointer from the trampoline and
 | |
|  		 * pushes it onto the target's stack.
 | |
|  		 */
 | |
|  		const unsigned char codePushThis[] = {
 | |
| -		#if defined _WIN32
 | |
| +		#if defined(_WIN32)
 | |
|  			0x51						// push ecx
 | |
| -		#elif defined __linux__
 | |
| +		#elif defined(__linux__) || defined(__APPLE__)
 | |
|  			0xFF, 0x75, 0x04			// pushl [ebp+0x08h]
 | |
|  		#endif
 | |
|  		};
 | |
|  
 | |
| -#if defined __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  		const int codePushThisReplace = 2;
 | |
|  #endif
 | |
|  
 | |
|  		/**
 | |
|  		 * Pushes a raw number onto the target's stack
 | |
|  		 */
 | |
|  		const unsigned char codePushID[] = {
 | |
|  			0x68, 0xDE, 0xFA, 0xAD, 0xDE	// push	DEADFADEh
 | |
| @@ -405,34 +407,34 @@ namespace Trampolines
 | |
|  				return;
 | |
|  			}
 | |
|  
 | |
|  			unsigned char code[sizeof(::Trampolines::Bytecode::codePushThis)];
 | |
|  
 | |
|  			memcpy(&code[0],&::Trampolines::Bytecode::codePushThis[0],sizeof(::Trampolines::Bytecode::codePushThis));
 | |
|  
 | |
|  
 | |
| -#if defined __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  			unsigned char *c=&code[0];
 | |
|  
 | |
|  			union 
 | |
|  			{
 | |
|  				int		i;
 | |
|  				unsigned char	b[4];
 | |
|  			} bi;
 | |
|  
 | |
|  			bi.i=m_paramstart+8;
 | |
|  
 | |
|  			c+=::Trampolines::Bytecode::codePushThisReplace;
 | |
|  			*c++=bi.b[0];
 | |
|  #endif
 | |
|  
 | |
|  			Append(&code[0],sizeof(::Trampolines::Bytecode::codePushThis));
 | |
|  
 | |
| -#if defined __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  			m_mystack+=4;
 | |
|  #endif
 | |
|  			m_calledstack+=4;
 | |
|  		};
 | |
|  
 | |
|  		/**
 | |
|  		 * Frees what is estimated as the stack usage of the trampoline.
 | |
|  		 */
 | |
| @@ -526,17 +528,17 @@ namespace Trampolines
 | |
|  
 | |
|  		/**
 | |
|  		 * Takes a parameter passed on the trampoline's stack and inserts it into the callee's stack.
 | |
|  		 *
 | |
|  		 * @param which			The parameter number to push. 1-based.  "thiscall" trampolines automatically compensate for the off-number on GCC.
 | |
|  		 */
 | |
|  		void PushParam(int which)
 | |
|  		{
 | |
| -#if defined __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  			if (m_thiscall)
 | |
|  			{
 | |
|  				which++;
 | |
|  			}
 | |
|  #endif
 | |
|  			which=which*4;
 | |
|  			which+=m_paramstart+4;
 | |
|  
 | |
| @@ -603,20 +605,24 @@ namespace Trampolines
 | |
|  			//void *ret=(void *)m_buffer;
 | |
|  
 | |
|  			if (size)
 | |
|  			{
 | |
|  				*size=m_size;
 | |
|  			}
 | |
|  
 | |
|  			// Reallocate with proper flags
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  			void *ret=VirtualAlloc(NULL, m_size, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__GNUC__)
 | |
| +# if defined(__APPLE__)
 | |
| +			void *ret = valloc(m_size);
 | |
| +# else
 | |
|  			void *ret=memalign(sysconf(_SC_PAGESIZE), m_size);
 | |
| +# endif
 | |
|  			mprotect(ret,m_size,PROT_READ|PROT_WRITE|PROT_EXEC);
 | |
|  #endif
 | |
|  			memcpy(ret, m_buffer, m_size);
 | |
|  
 | |
|  
 | |
|  			m_size=0;
 | |
|  
 | |
|  			free(m_buffer);
 | |
| @@ -670,27 +676,27 @@ inline void *CreateGenericTrampoline(boo
 | |
|  	{
 | |
|  		tramp.PushThis();
 | |
|  	}
 | |
|  	tramp.PushNum(reinterpret_cast<int>(extraptr));
 | |
|  	tramp.Call(callee);
 | |
|  	tramp.FreeTargetStack();
 | |
|  	if (voidcall)
 | |
|  	{
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  		tramp.VoidEpilogueAndFree();
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  		tramp.VoidEpilogue();
 | |
|  #endif
 | |
|  	}
 | |
|  	else
 | |
|  	{
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  		tramp.ReturnEpilogueAndFree();
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  		tramp.ReturnEpilogue();
 | |
|  #endif
 | |
|  	}
 | |
|  	return tramp.Finish(NULL);
 | |
|  
 | |
|  };
 | |
|  
 | |
|  
 | |
| diff --git a/dlls/hamsandwich/amxx_api.cpp b/dlls/hamsandwich/amxx_api.cpp
 | |
| --- a/dlls/hamsandwich/amxx_api.cpp
 | |
| +++ b/dlls/hamsandwich/amxx_api.cpp
 | |
| @@ -74,18 +74,20 @@ void OnAmxxAttach(void)
 | |
|  			MF_AddNatives(RegisterNatives);
 | |
|  			MF_AddNatives(ReturnNatives);
 | |
|  			MF_AddNatives(pdata_natives);
 | |
|  		}
 | |
|  		else
 | |
|  		{
 | |
|  #ifdef _WIN32
 | |
|  			MF_Log("Error: pev and base not set for section \"%s windows\", cannot register natives.", MF_GetModname());
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__)
 | |
|  			MF_Log("Error: pev and base not set for section \"%s linux\", cannot register natives.", MF_GetModname());
 | |
| +#elif defined(__APPLE__)
 | |
| +			MF_Log("Error: pev and base not set for section \"%s mac\", cannot register natives.", MF_GetModname());
 | |
|  #endif
 | |
|  		}
 | |
|  	}
 | |
|  	else
 | |
|  	{
 | |
|  		MF_Log("Error: Cannot read config file, natives not registered!");
 | |
|  	}
 | |
|  }
 | |
| diff --git a/dlls/hamsandwich/call_funcs.cpp b/dlls/hamsandwich/call_funcs.cpp
 | |
| --- a/dlls/hamsandwich/call_funcs.cpp
 | |
| +++ b/dlls/hamsandwich/call_funcs.cpp
 | |
| @@ -109,181 +109,181 @@ inline void *_GetFunction(void *pthis, i
 | |
|  		gDoForwards=true;				\
 | |
|  	}
 | |
|  
 | |
|  
 | |
|  cell Call_Void_Void(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(0);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall *)(void*, int)>(__func)(pv, 0);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void *)>(__func)(pv);
 | |
|  #endif
 | |
|  	return 1;
 | |
|  }
 | |
|  
 | |
|  cell Call_Int_Void(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(0);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	return reinterpret_cast<int (__fastcall *)(void*, int)>(__func)(pv, 0);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	return reinterpret_cast<int (*)(void *)>(__func)(pv);
 | |
|  #endif
 | |
|  }
 | |
|  
 | |
|  cell Call_Void_Entvar(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(1);
 | |
|  
 | |
|  	int id3=*MF_GetAmxAddr(amx, params[3]);
 | |
|  
 | |
|  	CHECK_ENTITY(id3);
 | |
|  
 | |
|  	entvars_t *ev1=&(INDEXENT_NEW(id3)->v);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall *)(void*, int, entvars_t *)>(__func)(pv, 0, ev1);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void *, entvars_t *)>(__func)(pv, ev1);
 | |
|  #endif
 | |
|  	return 1;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  cell Call_Void_Cbase(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(1);
 | |
|  
 | |
|  	int id3=*MF_GetAmxAddr(amx, params[3]);
 | |
|  
 | |
|  	CHECK_ENTITY(id3);
 | |
|  
 | |
|  	void *pv1=(INDEXENT_NEW(id3)->pvPrivateData);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall *)(void*, int, void *)>(__func)(pv, 0, pv1);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void *, void *)>(__func)(pv, pv1);
 | |
|  #endif
 | |
|  	return 1;
 | |
|  }
 | |
|  
 | |
|  cell Call_Int_Float_Int(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(2);
 | |
|  
 | |
|  	float f3=amx_ftoc2(*MF_GetAmxAddr(amx, params[3]));
 | |
|  	int i4=*MF_GetAmxAddr(amx, params[4]);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	return reinterpret_cast<int (__fastcall *)(void*, int, float, int)>(__func)(pv, 0, f3, i4);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	return reinterpret_cast<int (*)(void *, float, int)>(__func)(pv, f3, i4);
 | |
|  #endif
 | |
|  }
 | |
|  
 | |
|  	
 | |
|  cell Call_Void_Entvar_Int(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(2);
 | |
|  
 | |
|  	int id3=*MF_GetAmxAddr(amx, params[3]);
 | |
|  	int i4=*MF_GetAmxAddr(amx, params[4]);
 | |
|  
 | |
|  	CHECK_ENTITY(id3);
 | |
|  
 | |
|  	entvars_t *ev3=&(INDEXENT_NEW(id3)->v);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall *)(void*, int, entvars_t *, int)>(__func)(pv, 0, ev3, i4);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void *, entvars_t *, int)>(__func)(pv, ev3, i4);
 | |
|  #endif
 | |
|  	return 1;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  cell Call_Int_Cbase(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(1);
 | |
|  
 | |
|  	int id3=*MF_GetAmxAddr(amx, params[3]);
 | |
|  
 | |
|  	CHECK_ENTITY(id3);
 | |
|  
 | |
|  	void *pv1=(INDEXENT_NEW(id3)->pvPrivateData);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	return reinterpret_cast<int (__fastcall *)(void*, int, void *)>(__func)(pv, 0, pv1);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	return reinterpret_cast<int (*)(void *, void *)>(__func)(pv, pv1);
 | |
|  #endif
 | |
|  }
 | |
|  
 | |
|  cell Call_Void_Int_Int(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(2);
 | |
|  
 | |
|  	int i3=*MF_GetAmxAddr(amx, params[3]);
 | |
|  	int i4=*MF_GetAmxAddr(amx, params[4]);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall *)(void*, int, int, int)>(__func)(pv, 0, i3, i4);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void *, int, int)>(__func)(pv, i3, i4);
 | |
|  #endif
 | |
|  	return 1;
 | |
|  }
 | |
|  
 | |
|  cell Call_Int_Int_Str_Int(AMX *amx, cell *params)
 | |
|  {
 | |
|  	
 | |
|  	SETUP(3);
 | |
|  
 | |
|  	int i3=*MF_GetAmxAddr(amx, params[3]);
 | |
|  	char *sz4=MF_GetAmxString(amx, params[4], 0, NULL);
 | |
|  	int i5=*MF_GetAmxAddr(amx, params[5]);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	return reinterpret_cast<int (__fastcall *)(void*, int, int, const char *, int)>(__func)(pv, 0, i3, sz4, i5);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	return reinterpret_cast<int (*)(void *, int, const char *, int)>(__func)(pv, i3, sz4, i5);
 | |
|  #endif
 | |
|  }
 | |
|  
 | |
|  cell Call_Int_Int(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(1);
 | |
|  
 | |
|  	int i3=*MF_GetAmxAddr(amx, params[3]);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	return reinterpret_cast<int (__fastcall *)(void*, int, int)>(__func)(pv, 0, i3);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	return reinterpret_cast<int (*)(void *, int)>(__func)(pv, i3);
 | |
|  #endif
 | |
|  }
 | |
|  
 | |
|  cell Call_Int_Entvar(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(1);
 | |
|  
 | |
|  	int id3=*MF_GetAmxAddr(amx, params[3]);
 | |
|  
 | |
|  	CHECK_ENTITY(id3);
 | |
|  
 | |
|  	entvars_t *ev3=&(INDEXENT_NEW(id3)->v);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	return reinterpret_cast<int (__fastcall *)(void *, int, entvars_t *)>(__func)(pv, 0, ev3);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	return reinterpret_cast<int (*)(void *, entvars_t *)>(__func)(pv, ev3);
 | |
|  #endif
 | |
|  }
 | |
|  
 | |
|  cell Call_Int_Entvar_Entvar_Float_Int(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(4);
 | |
|  
 | |
| @@ -293,19 +293,19 @@ cell Call_Int_Entvar_Entvar_Float_Int(AM
 | |
|  	int i6=*MF_GetAmxAddr(amx, params[6]);
 | |
|  
 | |
|  	CHECK_ENTITY(id3);
 | |
|  	CHECK_ENTITY(id4);
 | |
|  
 | |
|  	entvars_t *ev3=&(INDEXENT_NEW(id3)->v);
 | |
|  	entvars_t *ev4=&(INDEXENT_NEW(id4)->v);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	return reinterpret_cast<int (__fastcall *)(void *, int, entvars_t *, entvars_t *, float, int)>(__func)(pv, 0, ev3, ev4, f5, i6);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	return reinterpret_cast<int (*)(void *, entvars_t *, entvars_t *, float, int)>(__func)(pv, ev3, ev4, f5, i6);
 | |
|  #endif
 | |
|  }
 | |
|  
 | |
|  cell Call_Int_Entvar_Entvar_Float_Float_Int(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(5);
 | |
|  
 | |
| @@ -316,32 +316,32 @@ cell Call_Int_Entvar_Entvar_Float_Float_
 | |
|  	int i7=*MF_GetAmxAddr(amx, params[7]);
 | |
|  
 | |
|  	CHECK_ENTITY(id3);
 | |
|  	CHECK_ENTITY(id4);
 | |
|  
 | |
|  	entvars_t *ev3=&(INDEXENT_NEW(id3)->v);
 | |
|  	entvars_t *ev4=&(INDEXENT_NEW(id4)->v);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	return reinterpret_cast<int (__fastcall *)(void *, int, entvars_t *, entvars_t *, float, float, int)>(__func)(pv, 0, ev3, ev4, f5, f6, i7);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	return reinterpret_cast<int (*)(void *, entvars_t *, entvars_t *, float, float, int)>(__func)(pv, ev3, ev4, f5, f6, i7);
 | |
|  #endif
 | |
|  }
 | |
|  
 | |
|  cell Call_Void_Int(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(1);
 | |
|  
 | |
|  	int i3=*MF_GetAmxAddr(amx, params[3]);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall *)(void *, int, int)>(__func)(pv, 0, i3);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void *, int)>(__func)(pv, i3);
 | |
|  #endif
 | |
|  
 | |
|  	return 1;
 | |
|  }
 | |
|  
 | |
|  cell Call_Void_Cbase_Cbase_Int_Float(AMX *amx, cell *params)
 | |
|  {
 | |
| @@ -353,19 +353,19 @@ cell Call_Void_Cbase_Cbase_Int_Float(AMX
 | |
|  	float f6=amx_ctof(*MF_GetAmxAddr(amx, params[6]));
 | |
|  
 | |
|  	CHECK_ENTITY(id3);
 | |
|  	CHECK_ENTITY(id4);
 | |
|  
 | |
|  	void *p3=IndexToPrivate(id3);
 | |
|  	void *p4=IndexToPrivate(id4);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall *)(void *, int, void *, void *, int, float)>(__func)(pv, 0, p3, p4, i5, f6);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void *, void *, void *, int, float)>(__func)(pv, p3, p4, i5, f6);
 | |
|  #endif
 | |
|  
 | |
|  	return 1;
 | |
|  }
 | |
|  
 | |
|  cell Call_Void_Entvar_Float_Vector_Trace_Int(AMX *amx, cell *params)
 | |
|  {
 | |
| @@ -387,19 +387,19 @@ cell Call_Void_Entvar_Float_Vector_Trace
 | |
|  		MF_LogError(amx, AMX_ERR_NATIVE, "Null traceresult provided.");
 | |
|  
 | |
|  		return 0;
 | |
|  	}
 | |
|  
 | |
|  	CHECK_ENTITY(id3);
 | |
|  
 | |
|  	entvars_t *ev3=&(INDEXENT_NEW(id3)->v);
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall *)(void *, int, entvars_t *, float, Vector, TraceResult *, int)>(__func)(pv, 0, ev3, f4, v5, tr6, i7);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void *, entvars_t *, float, Vector, TraceResult *, int)>(__func)(pv, ev3, f4, v5, tr6, i7);
 | |
|  #endif
 | |
|  
 | |
|  	return 1;
 | |
|  }
 | |
|  
 | |
|  cell Call_Void_Float_Vector_Trace_Int(AMX *amx, cell *params)
 | |
|  {
 | |
| @@ -417,55 +417,55 @@ cell Call_Void_Float_Vector_Trace_Int(AM
 | |
|  
 | |
|  	if (tr5==NULL)
 | |
|  	{
 | |
|  		MF_LogError(amx, AMX_ERR_NATIVE, "Null traceresult provided.");
 | |
|  
 | |
|  		return 0;
 | |
|  	}
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall *)(void *, int, float, Vector, TraceResult *, int)>(__func)(pv, 0, f3, v4, tr5, i6);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void *, float, Vector, TraceResult *, int)>(__func)(pv, f3, v4, tr5, i6);
 | |
|  #endif
 | |
|  
 | |
|  	return 1;
 | |
|  }
 | |
|  
 | |
|  cell Call_Str_Void(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(2);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	char *v=reinterpret_cast<char *(__fastcall *)(void *, int)>(__func)(pv, 0);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	char *v=reinterpret_cast<char *(*)(void *)>(__func)(pv);
 | |
|  #endif
 | |
|  	return MF_SetAmxString(amx, params[3], v == NULL ? "" : v, *MF_GetAmxAddr(amx, params[4]));
 | |
|  
 | |
|  }
 | |
|  
 | |
|  cell Call_Cbase_Void(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(0);
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	void *ret=reinterpret_cast<void *(__fastcall *)(void *, int)>(__func)(pv, 0);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	void *ret=reinterpret_cast<void *(*)(void *)>(__func)(pv);
 | |
|  #endif
 | |
|  	return PrivateToIndex(ret);
 | |
|  }
 | |
|  
 | |
|  cell Call_Vector_Void(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(1);
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	Vector ret=reinterpret_cast<Vector (__fastcall *)(void *, int)>(__func)(pv, 0);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	Vector ret=reinterpret_cast<Vector (*)(void *)>(__func)(pv);
 | |
|  #endif
 | |
|  	float *out=(float *)MF_GetAmxAddr(amx, params[3]);
 | |
|  	out[0]=ret.x;
 | |
|  	out[1]=ret.y;
 | |
|  	out[2]=ret.z;
 | |
|  
 | |
|  	return 1;
 | |
| @@ -476,19 +476,19 @@ cell Call_Vector_pVector(AMX *amx, cell 
 | |
|  	SETUP(2);
 | |
|  
 | |
|  	Vector v3;
 | |
|  	float *fl3=(float *)MF_GetAmxAddr(amx, params[3]);
 | |
|  	v3.x=fl3[0];
 | |
|  	v3.y=fl3[1];
 | |
|  	v3.z=fl3[2];
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	Vector ret=reinterpret_cast<Vector (__fastcall *)(void *, int, Vector*)>(__func)(pv, 0, &v3);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	Vector ret=reinterpret_cast<Vector (*)(void *, Vector*)>(__func)(pv, &v3);
 | |
|  #endif
 | |
|  	float *out=(float *)MF_GetAmxAddr(amx, params[4]);
 | |
|  	out[0]=ret.x;
 | |
|  	out[1]=ret.y;
 | |
|  	out[2]=ret.z;
 | |
|  
 | |
|  	fl3[0]=v3.x;
 | |
| @@ -503,19 +503,19 @@ cell Call_Int_pVector(AMX *amx, cell *pa
 | |
|  	SETUP(1);
 | |
|  
 | |
|  	Vector v3;
 | |
|  	float *fl3=(float *)MF_GetAmxAddr(amx, params[3]);
 | |
|  	v3.x=fl3[0];
 | |
|  	v3.y=fl3[1];
 | |
|  	v3.z=fl3[2];
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	int ret=reinterpret_cast<int (__fastcall *)(void *, int, Vector*)>(__func)(pv, 0, &v3);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	int ret=reinterpret_cast<int (*)(void *, Vector*)>(__func)(pv, &v3);
 | |
|  #endif
 | |
|  
 | |
|  	fl3[0]=v3.x;
 | |
|  	fl3[1]=v3.y;
 | |
|  	fl3[2]=v3.z;
 | |
|  
 | |
|  	return ret;
 | |
| @@ -528,114 +528,114 @@ cell Call_Void_Entvar_Float_Float(AMX *a
 | |
|  	int id3=*MF_GetAmxAddr(amx, params[3]);
 | |
|  	float f4=amx_ctof2(*MF_GetAmxAddr(amx, params[4]));
 | |
|  	float f5=amx_ctof2(*MF_GetAmxAddr(amx, params[5]));
 | |
|  
 | |
|  	CHECK_ENTITY(id3);
 | |
|  
 | |
|  	entvars_t *ev3=&(INDEXENT_NEW(id3)->v);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall *)(void *, int, entvars_t *, float, float)>(__func)(pv, 0, ev3, f4, f5);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void *, entvars_t *, float, float)>(__func)(pv, ev3, f4, f5);
 | |
|  #endif
 | |
|  
 | |
|  	return 1;
 | |
|  }
 | |
|  
 | |
|  cell Call_Int_pFloat_pFloat(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(2);
 | |
|  
 | |
|  	float f3=amx_ctof2(*MF_GetAmxAddr(amx, params[3]));
 | |
|  	float f4=amx_ctof2(*MF_GetAmxAddr(amx, params[4]));
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	return reinterpret_cast<int (__fastcall *)(void *, int, float*, float*)>(__func)(pv, 0, &f3, &f4);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	return reinterpret_cast<int (*)(void *, float*, float*)>(__func)(pv, &f3, &f4);
 | |
|  #endif
 | |
|  
 | |
|  }
 | |
|  
 | |
|  cell Call_Void_Entvar_Float(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(2);
 | |
|  
 | |
|  	int id3=*MF_GetAmxAddr(amx, params[3]);
 | |
|  	float f4=amx_ctof2(*MF_GetAmxAddr(amx, params[4]));
 | |
|  
 | |
|  	CHECK_ENTITY(id3);
 | |
|  
 | |
|  	entvars_t *ev3=&(INDEXENT_NEW(id3)->v);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	return reinterpret_cast<int (__fastcall *)(void *, int, entvars_t*, float)>(__func)(pv, 0, ev3, f4);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	return reinterpret_cast<int (*)(void *, entvars_t*, float)>(__func)(pv, ev3, f4);
 | |
|  #endif
 | |
|  }
 | |
|  
 | |
|  cell Call_Void_Int_Int_Int(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(2);
 | |
|  
 | |
|  	int i3=*MF_GetAmxAddr(amx, params[3]);
 | |
|  	int i4=*MF_GetAmxAddr(amx, params[4]);
 | |
|  	int i5=*MF_GetAmxAddr(amx, params[5]);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall *)(void*, int, int, int, int)>(__func)(pv, 0, i3, i4, i5);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void *, int, int, int)>(__func)(pv, i3, i4, i5);
 | |
|  #endif
 | |
|  	return 1;
 | |
|  }
 | |
|  
 | |
|  cell Call_Void_ItemInfo(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(1);
 | |
|  
 | |
|  	void *ptr=reinterpret_cast<void *>(*MF_GetAmxAddr(amx, params[3]));
 | |
|  
 | |
|  	if (ptr==0)
 | |
|  	{
 | |
|  		MF_LogError(amx, AMX_ERR_NATIVE, "Null ItemInfo handle!");
 | |
|  		return 0;
 | |
|  	}
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall *)(void*, int, void *)>(__func)(pv, 0, ptr);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void *, void *)>(__func)(pv, ptr);
 | |
|  #endif
 | |
|  	return 1;
 | |
|  }
 | |
|  
 | |
|  cell Call_Float_Void(AMX *amx, cell *params)
 | |
|  {
 | |
|  	SETUP(1);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	float ret=reinterpret_cast<float (__fastcall *)(void*, int)>(__func)(pv, 0);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	float ret=reinterpret_cast<float (*)(void *)>(__func)(pv);
 | |
|  #endif
 | |
|  	*MF_GetAmxAddr(amx, params[3])=amx_ftoc2(ret);
 | |
|  
 | |
|  	return 1;
 | |
|  	
 | |
|  }
 | |
|  cell Call_Void_Float_Int(AMX* amx, cell* params)
 | |
|  {
 | |
|  	SETUP(2);
 | |
|  
 | |
| -#ifdef _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall *)(void*, int, float, char)>(__func)(pv, 0, amx_ctof2(params[3]), static_cast<char>(params[4]));
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void*, float, char)>(__func)(pv, amx_ctof2(params[3]), static_cast<char>(params[4]));
 | |
|  #endif
 | |
|  	return 1;
 | |
|  }
 | |
|  cell Call_Deprecated(AMX *amx, cell *params)
 | |
|  {
 | |
|  	MF_LogError(amx, AMX_ERR_NATIVE, "Ham function is deprecated.");
 | |
|  
 | |
| diff --git a/dlls/hamsandwich/config/hamdata.ini b/dlls/hamsandwich/config/hamdata.ini
 | |
| --- a/dlls/hamsandwich/config/hamdata.ini
 | |
| +++ b/dlls/hamsandwich/config/hamdata.ini
 | |
| @@ -32,17 +32,17 @@
 | |
|  ;       eg: If they work on non-Steam CS 1.6 this is coincidental, if they do 
 | |
|  ;           not work on non-Steam CS 1.6 this will not be officially fixed.
 | |
|  ;
 | |
|  ; Mirrors: These take the name of one mod, and copy all of its data to another
 | |
|  ;          name. An example of a use for this would be cstrike and czero: they
 | |
|  ;          use the same binary so all of its vtable offsets are guaranteed to
 | |
|  ;          be identical. Mirrors should always come first in the file!
 | |
|  ;
 | |
| -; Version: $Id$
 | |
| +; Version: $Id: hamdata.ini 3687 2008-03-04 18:51:35Z sawce $
 | |
|  
 | |
|  
 | |
|  @mirror cstrike czero
 | |
|  @mirror ns nsp
 | |
|  
 | |
|  ; TODO: check these - all are estimates
 | |
|  @section cstrike linux
 | |
|  	pev 4
 | |
| @@ -256,16 +256,126 @@
 | |
|  	weapon_shouldweaponidle 92
 | |
|  	weapon_usedecrement 93
 | |
|  	
 | |
|  	cstrike_restart 2
 | |
|  	cstrike_roundrespawn 84
 | |
|  	cstrike_item_candrop 63
 | |
|  	cstrike_item_getmaxspeed 78
 | |
|  @end
 | |
| +
 | |
| +@section cstrike mac
 | |
| +	pev 4
 | |
| +	base 0x0
 | |
| +	
 | |
| +	spawn 0
 | |
| +	precache 1
 | |
| +	keyvalue 3
 | |
| +	objectcaps 6
 | |
| +	activate 7
 | |
| +	setobjectcollisionbox 8
 | |
| +	classify 9
 | |
| +	deathnotice 10
 | |
| +	traceattack 11
 | |
| +	takedamage 12
 | |
| +	takehealth 13
 | |
| +	killed 14
 | |
| +	bloodcolor 15
 | |
| +	tracebleed 16
 | |
| +	istriggered 17
 | |
| +	mymonsterpointer 18
 | |
| +	mysquadmonsterpointer 19
 | |
| +	gettogglestate 20
 | |
| +	addpoints 21
 | |
| +	addpointstoteam 22
 | |
| +	addplayeritem 23
 | |
| +	removeplayeritem 24
 | |
| +	giveammo 25
 | |
| +	getdelay 26
 | |
| +	ismoving 27
 | |
| +	overridereset 28
 | |
| +	damagedecal 29
 | |
| +	settogglestate 30
 | |
| +	startsneaking 31
 | |
| +	stopsneaking 32
 | |
| +	oncontrols 33
 | |
| +	issneaking 34
 | |
| +	isalive 35
 | |
| +	isbspmodel 36
 | |
| +	reflectgauss 37
 | |
| +	hastarget 38
 | |
| +	isinworld 39
 | |
| +	isplayer 40
 | |
| +	isnetclient 41
 | |
| +	teamid 42
 | |
| +	getnexttarget 43
 | |
| +	think 44
 | |
| +	touch 45
 | |
| +	use 46
 | |
| +	blocked 47
 | |
| +	respawn 48
 | |
| +	updateowner 49
 | |
| +	fbecomeprone 50
 | |
| +	center 51
 | |
| +	eyeposition 52
 | |
| +	earposition 53
 | |
| +	bodytarget 54
 | |
| +	illumination 55
 | |
| +	fvisible 56
 | |
| +	fvecvisible 57
 | |
| +	
 | |
| +	player_jump 76
 | |
| +	player_duck 77
 | |
| +	player_prethink 78
 | |
| +	player_postthink 79
 | |
| +	player_getgunposition 80
 | |
| +	player_shouldfadeondeath 66
 | |
| +	player_impulsecommands 83
 | |
| +	player_updateclientdata 82
 | |
| +	
 | |
| +	item_addtoplayer 59
 | |
| +	item_addduplicate 60
 | |
| +	item_getiteminfo 61
 | |
| +	item_candeploy 62
 | |
| +	item_deploy 64
 | |
| +	item_canholster 66
 | |
| +	item_holster 67
 | |
| +	item_updateiteminfo 68
 | |
| +	item_preframe 69
 | |
| +	item_postframe 70
 | |
| +	item_drop 71
 | |
| +	item_kill 72
 | |
| +	item_attachtoplayer 73
 | |
| +	item_primaryammoindex 74
 | |
| +	item_secondaryammoindex 75
 | |
| +	item_updateclientdata 76
 | |
| +	item_getweaponptr 77
 | |
| +	item_itemslot 79
 | |
| +	
 | |
| +	weapon_extractammo 80
 | |
| +	weapon_extractclipammo 81
 | |
| +	weapon_addweapon 82
 | |
| +	weapon_playemptysound 83
 | |
| +	weapon_resetemptysound 84
 | |
| +	weapon_sendweaponanim 85
 | |
| +	weapon_isusable 86
 | |
| +	weapon_primaryattack 87
 | |
| +	weapon_secondaryattack 88
 | |
| +	weapon_reload 89
 | |
| +	weapon_weaponidle 90
 | |
| +	weapon_retireweapon 91
 | |
| +	weapon_shouldweaponidle 92
 | |
| +	weapon_usedecrement 93
 | |
| +	
 | |
| +	cstrike_restart 2
 | |
| +	cstrike_roundrespawn 84
 | |
| +	cstrike_item_candrop 63
 | |
| +	cstrike_item_getmaxspeed 78
 | |
| +@end	
 | |
| +
 | |
|  @section dod linux
 | |
|  	pev 0
 | |
|  	base 0x154
 | |
|  	
 | |
|  	spawn 5
 | |
|  	precache 6
 | |
|  	keyvalue 7
 | |
|  	objectcaps 10
 | |
| @@ -1742,18 +1852,122 @@
 | |
|  	weapon_isusable 82
 | |
|  	weapon_primaryattack 83
 | |
|  	weapon_secondaryattack 84
 | |
|  	weapon_reload 85
 | |
|  	weapon_weaponidle 86
 | |
|  	weapon_retireweapon 87
 | |
|  	weapon_shouldweaponidle 88
 | |
|  	weapon_usedecrement 89
 | |
| +@end
 | |
| +
 | |
| +@section valve mac
 | |
| +	pev 4
 | |
| +	base 0x0
 | |
|  	
 | |
| +	spawn 0
 | |
| +	precache 1
 | |
| +	keyvalue 2
 | |
| +	objectcaps 5
 | |
| +	activate 6
 | |
| +	setobjectcollisionbox 7
 | |
| +	classify 8
 | |
| +	deathnotice 9
 | |
| +	traceattack 10
 | |
| +	takedamage 11
 | |
| +	takehealth 12
 | |
| +	killed 13
 | |
| +	bloodcolor 14
 | |
| +	tracebleed 15
 | |
| +	istriggered 16
 | |
| +	mymonsterpointer 17
 | |
| +	mysquadmonsterpointer 18
 | |
| +	gettogglestate 19
 | |
| +	addpoints 20
 | |
| +	addpointstoteam 21
 | |
| +	addplayeritem 22
 | |
| +	removeplayeritem 23
 | |
| +	giveammo 24
 | |
| +	getdelay 25
 | |
| +	ismoving 26
 | |
| +	overridereset 27
 | |
| +	damagedecal 28
 | |
| +	settogglestate 29
 | |
| +	startsneaking 30
 | |
| +	stopsneaking 31
 | |
| +	oncontrols 32
 | |
| +	issneaking 33
 | |
| +	isalive 34
 | |
| +	isbspmodel 35
 | |
| +	reflectgauss 36
 | |
| +	hastarget 37
 | |
| +	isinworld 38
 | |
| +	isplayer 39
 | |
| +	isnetclient 40
 | |
| +	teamid 41
 | |
| +	getnexttarget 42
 | |
| +	think 43
 | |
| +	touch 44
 | |
| +	use 45
 | |
| +	blocked 46
 | |
| +	respawn 47
 | |
| +	updateowner 48
 | |
| +	fbecomeprone 49
 | |
| +	center 50
 | |
| +	eyeposition 51
 | |
| +	earposition 52
 | |
| +	bodytarget 53
 | |
| +	illumination 54
 | |
| +	fvisible 55
 | |
| +	fvecvisible 56
 | |
| +	
 | |
| +	player_jump 125
 | |
| +	player_duck 126
 | |
| +	player_prethink 127
 | |
| +	player_postthink 128
 | |
| +	player_getgunposition 119
 | |
| +	player_shouldfadeondeath 60
 | |
| +	player_impulsecommands 130
 | |
| +	player_updateclientdata  129
 | |
| +	
 | |
| +	item_addtoplayer 58
 | |
| +	item_addduplicate 59
 | |
| +	item_getiteminfo 60
 | |
| +	item_candeploy 61
 | |
| +	item_deploy 62
 | |
| +	item_canholster 63
 | |
| +	item_holster 64
 | |
| +	item_updateiteminfo 65
 | |
| +	item_preframe 66
 | |
| +	item_postframe 67
 | |
| +	item_drop 68
 | |
| +	item_kill 69
 | |
| +	item_attachtoplayer 70
 | |
| +	item_primaryammoindex 71
 | |
| +	item_secondaryammoindex 72
 | |
| +	item_updateclientdata 73
 | |
| +	item_getweaponptr 74
 | |
| +	item_itemslot 75
 | |
| +	
 | |
| +	weapon_extractammo 76
 | |
| +	weapon_extractclipammo 77
 | |
| +	weapon_addweapon 78
 | |
| +	weapon_playemptysound 79
 | |
| +	weapon_resetemptysound 80
 | |
| +	weapon_sendweaponanim 81
 | |
| +	weapon_isusable 82
 | |
| +	weapon_primaryattack 83
 | |
| +	weapon_secondaryattack 84
 | |
| +	weapon_reload 85
 | |
| +	weapon_weaponidle 86
 | |
| +	weapon_retireweapon 87
 | |
| +	weapon_shouldweaponidle 88
 | |
| +	weapon_usedecrement 89
 | |
|  @end
 | |
| +
 | |
|  ; Sven-Coop has no linux binaries.  This makes disassembly much harder.
 | |
|  ; These offsets were contributed by ts2do
 | |
|  @section SvenCoop windows
 | |
|  	pev 4
 | |
|  	base 0x0
 | |
|  	
 | |
|  	spawn 0
 | |
|  	precache 1
 | |
| diff --git a/dlls/hamsandwich/config_parser.cpp b/dlls/hamsandwich/config_parser.cpp
 | |
| --- a/dlls/hamsandwich/config_parser.cpp
 | |
| +++ b/dlls/hamsandwich/config_parser.cpp
 | |
| @@ -235,18 +235,20 @@ int read_start_section(char *data)
 | |
|  {
 | |
|  	if (strncmp(data, CurrentModName, strlen(CurrentModName))==0)
 | |
|  	{
 | |
|  		data+=strlen(CurrentModName)+1;
 | |
|  		trim_line(data);
 | |
|  
 | |
|  #ifdef _WIN32
 | |
|  		if (strcmp(data, "windows")==0)
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__)
 | |
|  		if (strcmp(data, "linux")==0)
 | |
| +#elif defined(__APPLE__)
 | |
| +		if (strcmp(data, "mac")==0)
 | |
|  #endif
 | |
|  		{
 | |
|  			return 1;
 | |
|  		}
 | |
|  	}
 | |
|  	return 0;
 | |
|  }
 | |
|  int read_number(char *input)
 | |
| diff --git a/dlls/hamsandwich/hook.h b/dlls/hamsandwich/hook.h
 | |
| --- a/dlls/hamsandwich/hook.h
 | |
| +++ b/dlls/hamsandwich/hook.h
 | |
| @@ -59,48 +59,48 @@ public:
 | |
|  			int **ivtable=(int **)vtable;
 | |
|  			func=(void *)ivtable[entry];
 | |
|  
 | |
|  			// now install a trampoline
 | |
|  			// (int thiscall, int voidcall, int paramcount, void *extraptr)
 | |
|  			tramp=CreateGenericTrampoline(true, voidcall, paramcount, (void*)this, target);
 | |
|  
 | |
|  			// Insert into vtable
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  			DWORD OldFlags;
 | |
|  			VirtualProtect(&ivtable[entry],sizeof(int*),PAGE_READWRITE,&OldFlags);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  			void *addr = (void *)ALIGN(&ivtable[entry]);
 | |
|  			mprotect(addr,sysconf(_SC_PAGESIZE),PROT_READ|PROT_WRITE);
 | |
|  #endif
 | |
|  			ivtable[entry]=(int*)tramp;
 | |
|  
 | |
|  			size_t len=strlen(name);
 | |
|  			ent=new char[len+1];
 | |
|  
 | |
|  			snprintf(ent,len+1,"%s",name);
 | |
|  		};
 | |
|  
 | |
|  	~Hook()
 | |
|  	{
 | |
|  		// Insert the original function back into the vtable
 | |
|  		int **ivtable=(int **)vtable;
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  		DWORD OldFlags;
 | |
|  		VirtualProtect(&ivtable[entry],sizeof(int*),PAGE_READWRITE,&OldFlags);
 | |
| -#elif defined __linux_
 | |
| +#elif defined(__linux_) || defined(__APPLE__)
 | |
|  		void *addr = (void *)ALIGN(&ivtable[entry]);
 | |
|  		mprotect(addr,sysconf(_SC_PAGESIZE),PROT_READ|PROT_WRITE);
 | |
|  #endif
 | |
|  
 | |
|  		ivtable[entry]=(int *)func;
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  		VirtualFree(tramp, 0, MEM_RELEASE);
 | |
| -#elif __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  		free(tramp);
 | |
|  #endif
 | |
|  
 | |
|  		delete[] ent;
 | |
|  
 | |
|  		CVector<Forward *>::iterator end=pre.end();
 | |
|  
 | |
|  		for (CVector<Forward *>::iterator i=pre.begin();
 | |
| diff --git a/dlls/hamsandwich/hook_callbacks.cpp b/dlls/hamsandwich/hook_callbacks.cpp
 | |
| --- a/dlls/hamsandwich/hook_callbacks.cpp
 | |
| +++ b/dlls/hamsandwich/hook_callbacks.cpp
 | |
| @@ -161,19 +161,19 @@ void Hook_Void_Void(Hook *hook, void *pt
 | |
|  {
 | |
|  	PUSH_VOID()
 | |
|  
 | |
|  	MAKE_VECTOR()
 | |
|  	
 | |
|  	PRE_START()
 | |
|  	PRE_END()
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall*)(void*,int)>(hook->func)(pthis,0);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void*)>(hook->func)(pthis);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
|  	POP()
 | |
| @@ -187,19 +187,19 @@ int Hook_Int_Void(Hook *hook, void *pthi
 | |
|  
 | |
|  	MAKE_VECTOR()
 | |
|  	
 | |
|  
 | |
|  	PRE_START()
 | |
|  	PRE_END()
 | |
|  	
 | |
|  	
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	origret=reinterpret_cast<int (__fastcall*)(void*,int)>(hook->func)(pthis,0);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	origret=reinterpret_cast<int (*)(void*)>(hook->func)(pthis);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
|  	POP()
 | |
| @@ -217,19 +217,19 @@ void Hook_Void_Entvar(Hook *hook, void *
 | |
|  	MAKE_VECTOR()
 | |
|  	
 | |
|  	P_ENTVAR(entvar, iOther)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		, iOther
 | |
|  	PRE_END()
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall*)(void*, int, entvars_t *)>(hook->func)(pthis, 0, entvar);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void*, entvars_t *)>(hook->func)(pthis, entvar);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		, iOther
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -245,19 +245,19 @@ void Hook_Void_Cbase(Hook *hook, void *p
 | |
|  	MAKE_VECTOR()
 | |
|  	
 | |
|  	P_CBASE(other, iOther)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		, iOther
 | |
|  	PRE_END()
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall*)(void*, int, void *)>(hook->func)(pthis, 0, other);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void*, void *)>(hook->func)(pthis, other);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		, iOther
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -274,19 +274,19 @@ int Hook_Int_Float_Int(Hook *hook, void 
 | |
|  	
 | |
|  	P_FLOAT(f1)
 | |
|  	P_INT(i1)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		, f1, i1
 | |
|  	PRE_END()
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	origret=reinterpret_cast<int (__fastcall*)(void*, int, float, int)>(hook->func)(pthis, 0, f1, i1);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	origret=reinterpret_cast<int (*)(void*, float, int)>(hook->func)(pthis, f1, i1);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		, f1, i1
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -304,19 +304,19 @@ void Hook_Void_Entvar_Int(Hook *hook, vo
 | |
|  	
 | |
|  	P_ENTVAR(ev1, iOther)
 | |
|  	P_INT(i1)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		, iOther, i1
 | |
|  	PRE_END()
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall*)(void*, int, entvars_t *, int)>(hook->func)(pthis, 0, ev1, i1);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void*, entvars_t *, int)>(hook->func)(pthis, ev1, i1);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		, iOther, i1
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -334,19 +334,19 @@ int Hook_Int_Cbase(Hook *hook, void *pth
 | |
|  
 | |
|  	MAKE_VECTOR()
 | |
|  	
 | |
|  	P_CBASE(cb1, iOther)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		, iOther
 | |
|  	PRE_END()
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	origret=reinterpret_cast<int (__fastcall*)(void*, int, void *)>(hook->func)(pthis, 0, cb1);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	origret=reinterpret_cast<int (*)(void*, void *)>(hook->func)(pthis, cb1);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		, iOther
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -362,19 +362,19 @@ void Hook_Void_Int_Int(Hook *hook, void 
 | |
|  	MAKE_VECTOR()
 | |
|  	
 | |
|  	P_INT(i1)
 | |
|  	P_INT(i2)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		,i1, i2
 | |
|  	PRE_END()
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall*)(void*, int, int, int)>(hook->func)(pthis, 0, i1, i2);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void*, int, int)>(hook->func)(pthis, i1, i2);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		,i1, i2
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -393,19 +393,19 @@ int Hook_Int_Int_Str_Int(Hook *hook, voi
 | |
|  	
 | |
|  	P_INT(i1)
 | |
|  	P_STR(a)
 | |
|  	P_INT(i2)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		,i1, a.c_str(), i2
 | |
|  	PRE_END()
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	origret=reinterpret_cast<int (__fastcall*)(void*, int, int, const char *, int)>(hook->func)(pthis, 0, i1, a.c_str(), i2);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	origret=reinterpret_cast<int (*)(void*, int, const char *, int)>(hook->func)(pthis, i1, a.c_str(), i2);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		,i1, a.c_str(), i2
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -424,19 +424,19 @@ int Hook_Int_Int(Hook *hook, void *pthis
 | |
|  	MAKE_VECTOR()
 | |
|  	
 | |
|  	P_INT(i1)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		,i1
 | |
|  	PRE_END()
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	origret=reinterpret_cast<int (__fastcall*)(void*, int, int)>(hook->func)(pthis, 0, i1);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	origret=reinterpret_cast<int (*)(void*, int)>(hook->func)(pthis, i1);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		,i1
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -455,19 +455,19 @@ int Hook_Int_Entvar(Hook *hook, void *pt
 | |
|  
 | |
|  	MAKE_VECTOR()
 | |
|  	P_ENTVAR(ev1, iOther)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		,iOther
 | |
|  	PRE_END()
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	origret=reinterpret_cast<int (__fastcall*)(void*, int, entvars_t *)>(hook->func)(pthis, 0, ev1);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	origret=reinterpret_cast<int (*)(void*, entvars_t *)>(hook->func)(pthis, ev1);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		, iOther
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -492,19 +492,19 @@ int Hook_Int_Entvar_Entvar_Float_Int(Hoo
 | |
|  	P_FLOAT(damage)
 | |
|  	P_INT(damagebits)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		,iInflictor, iAttacker, damage, damagebits
 | |
|  	PRE_END()
 | |
|  	
 | |
|  	
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	origret=reinterpret_cast<int (__fastcall*)(void*, int, entvars_t *, entvars_t *, float, int)>(hook->func)(pthis, 0, inflictor, attacker, damage, damagebits);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	origret=reinterpret_cast<int (*)(void*, entvars_t *, entvars_t *, float, int)>(hook->func)(pthis, inflictor, attacker, damage, damagebits);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		,iInflictor, iAttacker, damage, damagebits
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -527,19 +527,19 @@ int Hook_Int_Entvar_Entvar_Float_Float_I
 | |
|  	P_FLOAT(unknown)
 | |
|  	P_INT(damagebits)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		,iInflictor, iAttacker, damage, unknown, damagebits
 | |
|  	PRE_END()
 | |
|  	
 | |
|  	
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	origret=reinterpret_cast<int (__fastcall*)(void*, int, entvars_t *, entvars_t *, float, float, int)>(hook->func)(pthis, 0, inflictor, attacker, damage, unknown, damagebits);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	origret=reinterpret_cast<int (*)(void*, entvars_t *, entvars_t *, float, float, int)>(hook->func)(pthis, inflictor, attacker, damage, unknown, damagebits);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		,iInflictor, iAttacker, damage, unknown, damagebits
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -554,19 +554,19 @@ void Hook_Void_Int(Hook *hook, void *pth
 | |
|  
 | |
|  	MAKE_VECTOR()
 | |
|  	P_INT(i1)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		, i1
 | |
|  	PRE_END()
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall*)(void*, int, int)>(hook->func)(pthis, 0, i1);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void*, int)>(hook->func)(pthis, i1);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		,i1
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -585,19 +585,19 @@ void Hook_Void_Cbase_Cbase_Int_Float(Hoo
 | |
|  	P_INT(i1)
 | |
|  	P_FLOAT(f1)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		,iCaller, iActivator, i1, f1
 | |
|  	PRE_END()
 | |
|  	
 | |
|  	
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall*)(void*, int, void *, void *, int, float)>(hook->func)(pthis, 0, cb1, cb2, i1, f1);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void*, void *, void *, int, float)>(hook->func)(pthis, cb1, cb2, i1, f1);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		,iCaller, iActivator, i1, f1
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -615,19 +615,19 @@ void Hook_Void_Entvar_Float_Vector_Trace
 | |
|  	P_VECTOR(v1)
 | |
|  	P_TRACE(tr1)
 | |
|  	P_INT(i1)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		,iev1, f1, MF_PrepareCellArrayA(reinterpret_cast<cell *>(&v1), 3, false), tr1, i1
 | |
|  	PRE_END()
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall*)(void*, int, entvars_t *, float, Vector, TraceResult *, int)>(hook->func)(pthis, 0, ev1, f1, v1, tr1, i1);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void*, entvars_t *, float, Vector, TraceResult *, int)>(hook->func)(pthis, ev1, f1, v1, tr1, i1);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		, iev1, f1, MF_PrepareCellArrayA(reinterpret_cast<cell *>(&v1), 3, false), tr1, i1
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -643,19 +643,19 @@ void Hook_Void_Float_Vector_Trace_Int(Ho
 | |
|  	P_VECTOR(v1)
 | |
|  	P_TRACE(tr1)
 | |
|  	P_INT(i1)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		, f1, MF_PrepareCellArrayA(reinterpret_cast<cell *>(&v1), 3, false), tr1, i1
 | |
|  	PRE_END()
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall*)(void*, int, float, Vector, TraceResult *, int)>(hook->func)(pthis, 0, f1, v1, tr1, i1);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void*, float, Vector, TraceResult *, int)>(hook->func)(pthis, f1, v1, tr1, i1);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		, f1, MF_PrepareCellArrayA(reinterpret_cast<cell *>(&v1), 3, false), tr1, i1
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -667,19 +667,19 @@ const char *Hook_Str_Void(Hook *hook, vo
 | |
|  	String origret;
 | |
|  
 | |
|  	MAKE_VECTOR()
 | |
|  
 | |
|  	PUSH_STRING()
 | |
|  	PRE_START()
 | |
|  	PRE_END()
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	origret.assign(reinterpret_cast<const char *(__fastcall*)(void*, int)>(hook->func)(pthis, 0));
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	origret.assign(reinterpret_cast<const char *(*)(void*)>(hook->func)(pthis));
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
|  	POP()
 | |
| @@ -694,69 +694,69 @@ void *Hook_Cbase_Void(Hook *hook, void *
 | |
|  	void *origret=NULL;
 | |
|  	PUSH_CBASE()
 | |
|  
 | |
|  	MAKE_VECTOR()
 | |
|  
 | |
|  	PRE_START()
 | |
|  	PRE_END()
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	origret=reinterpret_cast<void *(__fastcall*)(void*, int)>(hook->func)(pthis, 0);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	origret=reinterpret_cast<void *(*)(void*)>(hook->func)(pthis);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
|  	POP()
 | |
|  	CHECK_RETURN()
 | |
|  	return ret;
 | |
|  
 | |
|  }
 | |
|  
 | |
|  #ifdef _WIN32
 | |
|  void Hook_Vector_Void(Hook *hook, void *pthis, Vector *out)
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  void Hook_Vector_Void(Hook *hook, Vector *out, void *pthis)
 | |
|  #endif
 | |
|  {
 | |
|  	Vector ret;
 | |
|  	Vector origret;
 | |
|  
 | |
|  	PUSH_VECTOR()
 | |
|  
 | |
|  	MAKE_VECTOR()
 | |
|  
 | |
|  	memset(&ret, 0x0, sizeof(Vector));
 | |
|  	memset(&origret, 0x0, sizeof(Vector));
 | |
|  
 | |
|  	PRE_START()
 | |
|  	PRE_END()
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall*)(void*, int, Vector *)>(hook->func)(pthis, 0, &origret);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	origret=reinterpret_cast<Vector (*)(void *)>(hook->func)(pthis);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
|  	POP()
 | |
|  	CHECK_RETURN_VEC()
 | |
|  	memcpy(out, &ret, sizeof(Vector));
 | |
|  
 | |
|  }
 | |
|  #ifdef _WIN32
 | |
|  void Hook_Vector_pVector(Hook *hook, void *pthis, Vector *out, Vector *v1)
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  void Hook_Vector_pVector(Hook *hook, Vector *out, void *pthis, Vector *v1)
 | |
|  #endif
 | |
|  {
 | |
|  	Vector ret;
 | |
|  	Vector origret;
 | |
|  
 | |
|  	PUSH_VECTOR()
 | |
|  
 | |
| @@ -765,19 +765,19 @@ void Hook_Vector_pVector(Hook *hook, Vec
 | |
|  
 | |
|  	memset(&ret, 0x0, sizeof(Vector));
 | |
|  	memset(&origret, 0x0, sizeof(Vector));
 | |
|  
 | |
|  	PRE_START()
 | |
|  		, MF_PrepareCellArrayA(reinterpret_cast<cell *>(v1), 3, false)
 | |
|  	PRE_END()
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall*)(void*, int, Vector *, Vector *)>(hook->func)(pthis, 0, &origret, v1);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	origret=reinterpret_cast<Vector (*)(void*, Vector *)>(hook->func)(pthis, v1);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		, MF_PrepareCellArrayA(reinterpret_cast<cell *>(v1), 3, false)
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -795,19 +795,19 @@ int Hook_Int_pVector(Hook *hook, void *p
 | |
|  
 | |
|  	MAKE_VECTOR()
 | |
|  	P_PTRVECTOR(v1)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		, MF_PrepareCellArrayA(reinterpret_cast<cell *>(v1), 3, false)
 | |
|  	PRE_END()
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	origret=reinterpret_cast<int (__fastcall*)(void*, int, Vector *)>(hook->func)(pthis, 0, v1);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	origret=reinterpret_cast<int (*)(void*, Vector *)>(hook->func)(pthis, v1);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		, MF_PrepareCellArrayA(reinterpret_cast<cell *>(v1), 3, false)
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -826,19 +826,19 @@ void Hook_Void_Entvar_Float_Float(Hook *
 | |
|  	P_ENTVAR(ev1, cev1)
 | |
|  	P_FLOAT(f1)
 | |
|  	P_FLOAT(f2)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		, cev1, f1, f2
 | |
|  	PRE_END()
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall*)(void *, int, entvars_t *, float, float)>(hook->func)(pthis, 0, ev1, f1, f2);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void *, entvars_t *, float, float)>(hook->func)(pthis, ev1, f1, f2);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		, cev1, f1, f2
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -855,19 +855,19 @@ int Hook_Int_pFloat_pFloat(Hook *hook, v
 | |
|  	MAKE_VECTOR()
 | |
|  	P_PTRFLOAT(f1)
 | |
|  	P_PTRFLOAT(f2)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		, f1 != NULL ? *f1 : 0, f2 != NULL ? *f2 : 0
 | |
|  	PRE_END()
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	origret=reinterpret_cast<int (__fastcall*)(void *, int, float *, float *)>(hook->func)(pthis, 0, f1, f2);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	origret=reinterpret_cast<int (*)(void *, float *, float *)>(hook->func)(pthis, f1, f2);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		, f1 != NULL ? *f1 : 0, f2 != NULL ? *f2 : 0
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -884,19 +884,19 @@ void Hook_Void_Entvar_Float(Hook *hook, 
 | |
|  	MAKE_VECTOR()
 | |
|  	P_ENTVAR(ev1, cev1)
 | |
|  	P_FLOAT(f1)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		, cev1, f1
 | |
|  	PRE_END()
 | |
|  
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall*)(void *, int, entvars_t *, float)>(hook->func)(pthis, 0, ev1, f1);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void *, entvars_t *, float)>(hook->func)(pthis, ev1, f1);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		, cev1, f1
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -911,19 +911,19 @@ void Hook_Void_Int_Int_Int(Hook *hook, v
 | |
|  	
 | |
|  	P_INT(i1)
 | |
|  	P_INT(i2)
 | |
|  	P_INT(i3)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		,i1, i2, i3
 | |
|  	PRE_END()
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall*)(void*, int, int, int, int)>(hook->func)(pthis, 0, i1, i2, i3);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void*, int, int, int)>(hook->func)(pthis, i1, i2, i3);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		,i1, i2, i3
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -935,19 +935,19 @@ void Hook_Void_ItemInfo(Hook *hook, void
 | |
|  
 | |
|  	MAKE_VECTOR()
 | |
|  	
 | |
|  	P_ITEMINFO(iteminfo)
 | |
|  
 | |
|  	PRE_START()
 | |
|  		,iteminfo
 | |
|  	PRE_END()
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall*)(void*, int, void *)>(hook->func)(pthis, 0, iteminfo);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void*, void *)>(hook->func)(pthis, iteminfo);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		,iteminfo
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| @@ -959,19 +959,19 @@ float Hook_Float_Void(Hook *hook, void *
 | |
|  	float ret=0.0;
 | |
|  	float origret=0.0;
 | |
|  	PUSH_FLOAT()
 | |
|  
 | |
|  	MAKE_VECTOR()
 | |
|  	
 | |
|  	PRE_START()
 | |
|  	PRE_END()
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	origret=reinterpret_cast<float (__fastcall*)(void*, int)>(hook->func)(pthis, 0);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	origret=reinterpret_cast<float (*)(void*)>(hook->func)(pthis);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
|  	POP()
 | |
| @@ -985,19 +985,19 @@ void Hook_Void_Float_Int(Hook* hook, voi
 | |
|  
 | |
|  	MAKE_VECTOR()
 | |
|  	P_FLOAT(f1)
 | |
|  	P_INT(i1)
 | |
|  	
 | |
|  	PRE_START()
 | |
|  		, f1, i1
 | |
|  	PRE_END()
 | |
| -#if defined _WIN32
 | |
| +#if defined(_WIN32)
 | |
|  	reinterpret_cast<void (__fastcall*)(void*, int, float, int)>(hook->func)(pthis, 0, f1, i1);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  	reinterpret_cast<void (*)(void*, float, int)>(hook->func)(pthis, f1, i1);
 | |
|  #endif
 | |
|  
 | |
|  	POST_START()
 | |
|  		, f1, i1
 | |
|  	POST_END()
 | |
|  
 | |
|  	KILL_VECTOR()
 | |
| diff --git a/dlls/hamsandwich/hook_callbacks.h b/dlls/hamsandwich/hook_callbacks.h
 | |
| --- a/dlls/hamsandwich/hook_callbacks.h
 | |
| +++ b/dlls/hamsandwich/hook_callbacks.h
 | |
| @@ -125,25 +125,25 @@ const int PC_Cbase_Void = 0;
 | |
|  void *Hook_Cbase_Void(Hook *hook, void *pthis);
 | |
|  
 | |
|  // HACK: I'm too lazy to fix up trampoline generator to deal with
 | |
|  //       special return values.  this is so much easier.
 | |
|  const bool RT_Vector_Void = true;
 | |
|  const int PC_Vector_Void = 1;
 | |
|  #ifdef _WIN32
 | |
|  void Hook_Vector_Void(Hook *hook, void *pthis, Vector *out);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  void Hook_Vector_Void(Hook *hook, Vector *out, void *pthis);
 | |
|  #endif
 | |
|  
 | |
|  const bool RT_Vector_pVector = true;
 | |
|  const int PC_Vector_pVector = 2;
 | |
|  #ifdef _WIN32
 | |
|  void Hook_Vector_pVector(Hook *hook, void *pthis, Vector *out, Vector *v1);
 | |
| -#elif defined __linux__
 | |
| +#elif defined(__linux__) || defined(__APPLE__)
 | |
|  void Hook_Vector_pVector(Hook *hook, Vector *out, void *pthis, Vector *v1);
 | |
|  #endif
 | |
|  
 | |
|  const bool RT_Int_pVector = false;
 | |
|  const int PC_Int_pVector = 1;
 | |
|  int Hook_Int_pVector(Hook *hook, void *pthis, Vector *v1);
 | |
|  
 | |
|  const bool RT_Void_Entvar_Float_Float = true;
 | |
| diff --git a/dlls/hamsandwich/pdata.cpp b/dlls/hamsandwich/pdata.cpp
 | |
| --- a/dlls/hamsandwich/pdata.cpp
 | |
| +++ b/dlls/hamsandwich/pdata.cpp
 | |
| @@ -52,16 +52,22 @@
 | |
|  // Return -1 on null, -2 on invalid, and the the index of any other.
 | |
|  static cell AMX_NATIVE_CALL get_pdata_cbase_safe(AMX *amx, cell *params)
 | |
|  {
 | |
|  	int index=params[1];
 | |
|  	FM_CHECK_ENTITY(index);
 | |
|  	int iOffset=params[2];
 | |
|  #ifdef __linux__
 | |
|  	iOffset += params[3];
 | |
| +#elif defined __APPLE__
 | |
| +	// Use Linux offset in older plugins
 | |
| +	if (params[0] / sizeof(cell) == 3)
 | |
| +		iOffset += params[3];
 | |
| +	else
 | |
| +		iOffset += params[4];
 | |
|  #endif
 | |
|  	if (iOffset <0)
 | |
|  	{
 | |
|  		MF_LogError(amx, AMX_ERR_NATIVE, "Invalid offset provided. (got: %d)", iOffset);
 | |
|  		return 0;
 | |
|  	}
 | |
|  	void *ptr=*((void **)((int *)INDEXENT_NEW(index)->pvPrivateData + iOffset));
 | |
|  
 | |
| @@ -82,17 +88,24 @@ static cell AMX_NATIVE_CALL get_pdata_cb
 | |
|  }
 | |
|  static cell AMX_NATIVE_CALL get_pdata_cbase(AMX *amx, cell *params)
 | |
|  {
 | |
|  	int index=params[1];
 | |
|  	FM_CHECK_ENTITY(index);
 | |
|  	int iOffset=params[2];
 | |
|  #ifdef __linux__
 | |
|  	iOffset += params[3];
 | |
| +#elif defined __APPLE__
 | |
| +	// Use Linux offset in older plugins
 | |
| +	if (params[0] / sizeof(cell) == 3)
 | |
| +		iOffset += params[3];
 | |
| +	else
 | |
| +		iOffset += params[4];
 | |
|  #endif
 | |
| +
 | |
|  	if (iOffset <0)
 | |
|  	{
 | |
|  		MF_LogError(amx, AMX_ERR_NATIVE, "Invalid offset provided. (got: %d)", iOffset);
 | |
|  		return 0;
 | |
|  	}
 | |
|  	void *ptr=*((void **)((int *)INDEXENT_NEW(index)->pvPrivateData + iOffset));
 | |
|  
 | |
|  	return PrivateToIndex(ptr);
 | |
| @@ -105,16 +118,22 @@ static cell AMX_NATIVE_CALL set_pdata_cb
 | |
|  
 | |
|  	if (target != -1)
 | |
|  	{
 | |
|  		FM_CHECK_ENTITY(target);
 | |
|  	}
 | |
|  	int iOffset=params[2];
 | |
|  #ifdef __linux__
 | |
|  	iOffset += params[4];
 | |
| +#elif defined __APPLE__
 | |
| +	// Use Linux offset in older plugins
 | |
| +	if (params[0] / sizeof(cell) == 4)
 | |
| +		iOffset += params[4];
 | |
| +	else
 | |
| +		iOffset += params[5];
 | |
|  #endif
 | |
|  	if (iOffset <0)
 | |
|  	{
 | |
|  		MF_LogError(amx, AMX_ERR_NATIVE, "Invalid offset provided. (got: %d)", iOffset);
 | |
|  		return 0;
 | |
|  	}
 | |
|  
 | |
|  	if (target == -1)
 | |
| diff --git a/dlls/hamsandwich/sdk/CString.h b/dlls/hamsandwich/sdk/CString.h
 | |
| --- a/dlls/hamsandwich/sdk/CString.h
 | |
| +++ b/dlls/hamsandwich/sdk/CString.h
 | |
| @@ -239,17 +239,17 @@ public:
 | |
|  
 | |
|  		if (len < 1)
 | |
|  		{
 | |
|  			return;
 | |
|  		}
 | |
|  
 | |
|  		if (is_space(v[len-1]))
 | |
|  		{
 | |
| -			for (i=len-1; i>=0; i--)
 | |
| +			for (i=len-1; i<len; i--)
 | |
|  			{
 | |
|  				if (!is_space(v[i])
 | |
|  					|| (is_space(v[i]) && i==0))
 | |
|  				{
 | |
|  					erase(i+1, j);
 | |
|  					break;
 | |
|  				}
 | |
|  				j++;
 | |
| diff --git a/dlls/hamsandwich/sdk/amxxmodule.cpp b/dlls/hamsandwich/sdk/amxxmodule.cpp
 | |
| --- a/dlls/hamsandwich/sdk/amxxmodule.cpp
 | |
| +++ b/dlls/hamsandwich/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/dlls/hamsandwich/sdk/amxxmodule.h b/dlls/hamsandwich/sdk/amxxmodule.h
 | |
| --- a/dlls/hamsandwich/sdk/amxxmodule.h
 | |
| +++ b/dlls/hamsandwich/sdk/amxxmodule.h
 | |
| @@ -15,21 +15,26 @@
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -61,17 +66,17 @@ struct amxx_module_info_s
 | |
|  
 | |
|  // *** Small stuff ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -390,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2111,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2170,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/dlls/hamsandwich/srvcmd.cpp b/dlls/hamsandwich/srvcmd.cpp
 | |
| --- a/dlls/hamsandwich/srvcmd.cpp
 | |
| +++ b/dlls/hamsandwich/srvcmd.cpp
 | |
| @@ -38,17 +38,17 @@
 | |
|  #include "offsets.h"
 | |
|  #include "forward.h"
 | |
|  #include "hook.h"
 | |
|  
 | |
|  
 | |
|  extern hook_t hooklist[];
 | |
|  extern CVector<Hook *> hooks[HAM_LAST_ENTRY_DONT_USE_ME_LOL];
 | |
|  
 | |
| -void print_srvconsole(char *fmt, ...)
 | |
| +void print_srvconsole(const char *fmt, ...)
 | |
|  {
 | |
|  	va_list argptr;
 | |
|  	static char string[384];
 | |
|  	va_start(argptr, fmt);
 | |
|  	vsnprintf(string, sizeof(string) - 1, fmt, argptr);
 | |
|  	string[sizeof(string) - 1] = '\0';
 | |
|  	va_end(argptr);
 | |
|  	
 | |
| diff --git a/dlls/mysqlx/Makefile b/dlls/mysqlx/Makefile
 | |
| --- a/dlls/mysqlx/Makefile
 | |
| +++ b/dlls/mysqlx/Makefile
 | |
| @@ -1,92 +1,131 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../../metamod/metamod
 | |
| -
 | |
| -### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| -
 | |
| -OPT_FLAGS = -O2 -funroll-loops -s -pipe -fomit-frame-pointer -fno-strict-aliasing
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -NAME = mysql
 | |
| -#MYSQL_DIR = ../../../mysql-5.0.22
 | |
|  MYSQL_DIR = ../../../mysql-5.0
 | |
|  
 | |
| -BIN_SUFFIX_32 = amxx_i386.so
 | |
| -BIN_SUFFIX_64 = amxx_amd64.so
 | |
| +#####################################
 | |
| +### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -OBJECTS = basic_sql.cpp handles.cpp module.cpp threading.cpp sdk/amxxmodule.cpp oldcompat_sql.cpp
 | |
| -OBJECTS += thread/BaseWorker.cpp thread/ThreadWorker.cpp thread/PosixThreads.cpp
 | |
| -OBJECTS += mysql/MysqlQuery.cpp mysql/MysqlResultSet.cpp mysql/MysqlDatabase.cpp mysql/MysqlDriver.cpp 
 | |
| +PROJECT = mysql
 | |
|  
 | |
| -LINK = -lgcc -static-libgcc $(MYSQL_DIR)/lib/libmysqlclient_r.a -lz -lpthread
 | |
| +OBJECTS = basic_sql.cpp handles.cpp module.cpp threading.cpp sdk/amxxmodule.cpp oldcompat_sql.cpp \
 | |
| +          thread/BaseWorker.cpp thread/ThreadWorker.cpp thread/PosixThreads.cpp \
 | |
| +	  mysql/MysqlQuery.cpp mysql/MysqlResultSet.cpp mysql/MysqlDatabase.cpp mysql/MysqlDriver.cpp
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -I$(HLSDK)/common -I$(MYSQL_DIR)/include -L$(MYSQL_DIR)/lib -Ithread \
 | |
| -	-Imysql -Isdk
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +C_OPT_FLAGS = -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
| -ifeq "$(GCC_VERSION)" "4"
 | |
| -        OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| +LINK = $(MYSQL_DIR)/lib/libmysqlclient_r.a -lz -lpthread -L$(MYSQL_DIR)/lib
 | |
| +
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +          -I$(MM_ROOT) -I$(MYSQL_DIR)/include -Ithread -Imysql -Isdk
 | |
| +
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
| +
 | |
| +OS := $(shell uname -s)
 | |
| +
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _amxx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _amxx_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared
 | |
|  endif
 | |
|  
 | |
| +LINK += -m32 -lm -ldl
 | |
| +
 | |
| +CFLAGS += -DSM_DEFAULT_THREADER -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H \
 | |
| +	  -Dstricmp=strcasecmp -fno-strict-aliasing -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
| +
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -Dstricmp=strcasecmp -fno-rtti -static-libgcc
 | |
| -CFLAGS += -DSM_DEFAULT_THREADER -m32
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -ifeq "$(AMD64)" "true"
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_64)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 
 | |
| -	INCLUDE += -Lextra/lib_linux64
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
|  else
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_32)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -	OPT_FLAGS += -march=i686
 | |
| -	INCLUDE += -Lextra/lib_linux
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
|  endif
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
| +	mkdir -p $(BIN_DIR)
 | |
| +	mkdir -p $(BIN_DIR)/mysql
 | |
|  	mkdir -p $(BIN_DIR)/thread
 | |
| -	mkdir -p $(BIN_DIR)/mysql
 | |
|  	mkdir -p $(BIN_DIR)/sdk
 | |
| -	mkdir -p $(BIN_DIR)
 | |
| -	$(MAKE) mysql
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -amd64:
 | |
| -	$(MAKE) all AMD64=true
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -mysql: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| -
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/thread/*.o
 | |
| -	rm -rf Release/mysql/*.o
 | |
| -	rm -rf Release/sdk/*.o
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_64)
 | |
| -	rm -rf Debug/thread/*.o
 | |
| -	rm -rf Debug/mysql/*.o
 | |
| -	rm -rf Debug/sdk/*.o
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64)
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -rf $(BIN_DIR)/mysql/*.o
 | |
| +	rm -rf $(BIN_DIR)/thread/*.o
 | |
| +	rm -rf $(BIN_DIR)/sdk/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
| +
 | |
| diff --git a/dlls/mysqlx/mysql/MysqlDriver.cpp b/dlls/mysqlx/mysql/MysqlDriver.cpp
 | |
| --- a/dlls/mysqlx/mysql/MysqlDriver.cpp
 | |
| +++ b/dlls/mysqlx/mysql/MysqlDriver.cpp
 | |
| @@ -37,17 +37,17 @@ IDatabase *MysqlDriver::_Connect(Databas
 | |
|  	if (!mysql)
 | |
|  	{
 | |
|  		if (errcode)
 | |
|  			*errcode = -1;
 | |
|  		if (error && maxlength)
 | |
|  		{
 | |
|  			snprintf(error, maxlength, "Initialization failed");
 | |
|  		}
 | |
| -		return false;
 | |
| +		return NULL;
 | |
|  	}
 | |
|  
 | |
|  	if (do_timeout && info->max_timeout)
 | |
|  	{
 | |
|  		mysql_options(mysql, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&(info->max_timeout));
 | |
|  	}
 | |
|  
 | |
|  	if (mysql_real_connect(mysql, 
 | |
| @@ -62,17 +62,17 @@ IDatabase *MysqlDriver::_Connect(Databas
 | |
|  		if (errcode)
 | |
|  		{
 | |
|  			*errcode = mysql_errno(mysql);
 | |
|  		}
 | |
|  		if (error && maxlength)
 | |
|  		{
 | |
|  			snprintf(error, maxlength, "%s", mysql_error(mysql));
 | |
|  		}
 | |
| -		return false;
 | |
| +		return NULL;
 | |
|  	}
 | |
|  
 | |
|  	MysqlDatabase *pMysql = new MysqlDatabase(mysql, this);
 | |
|  
 | |
|  	return static_cast<IDatabase *>(pMysql);
 | |
|  }
 | |
|  
 | |
|  int MysqlDriver::QuoteString(const char *str, char buffer[], size_t maxlen, size_t *newsize)
 | |
| diff --git a/dlls/mysqlx/sdk/amxxmodule.cpp b/dlls/mysqlx/sdk/amxxmodule.cpp
 | |
| --- a/dlls/mysqlx/sdk/amxxmodule.cpp
 | |
| +++ b/dlls/mysqlx/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/dlls/mysqlx/sdk/amxxmodule.h b/dlls/mysqlx/sdk/amxxmodule.h
 | |
| --- a/dlls/mysqlx/sdk/amxxmodule.h
 | |
| +++ b/dlls/mysqlx/sdk/amxxmodule.h
 | |
| @@ -15,21 +15,26 @@
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -61,17 +66,17 @@ struct amxx_module_info_s
 | |
|  
 | |
|  // *** Small stuff ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -390,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2111,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2170,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/dlls/mysqlx/sdk/sh_list.h b/dlls/mysqlx/sdk/sh_list.h
 | |
| --- a/dlls/mysqlx/sdk/sh_list.h
 | |
| +++ b/dlls/mysqlx/sdk/sh_list.h
 | |
| @@ -14,17 +14,17 @@
 | |
|  // MSVC8 fix for offsetof macro redefition warnings
 | |
|  #ifdef _MSC_VER 
 | |
|  	#if _MSC_VER >= 1400
 | |
|  		#undef offsetof
 | |
|  	#endif
 | |
|  #endif
 | |
|  
 | |
|  #include <new>
 | |
| -#include <malloc.h>
 | |
| +#include <stdlib.h>
 | |
|  
 | |
|  namespace SourceHook
 | |
|  {
 | |
|  
 | |
|  	//This class is from CSDM for AMX Mod X
 | |
|  	/*
 | |
|  		A circular, doubly-linked list with one sentinel node
 | |
|  
 | |
| diff --git a/dlls/mysqlx/sdk/sh_string.h b/dlls/mysqlx/sdk/sh_string.h
 | |
| --- a/dlls/mysqlx/sdk/sh_string.h
 | |
| +++ b/dlls/mysqlx/sdk/sh_string.h
 | |
| @@ -191,17 +191,17 @@ public:
 | |
|  
 | |
|  		if (len < 1)
 | |
|  		{
 | |
|  			return;
 | |
|  		}
 | |
|  
 | |
|  		if (is_space(v[len-1]))
 | |
|  		{
 | |
| -			for (i=len-1; i>=0; i--)
 | |
| +			for (i=len-1; i<len; i--)
 | |
|  			{
 | |
|  				if (!is_space(v[i])
 | |
|  					|| (is_space(v[i]) && i==0))
 | |
|  				{
 | |
|  					erase(i+1, j);
 | |
|  					break;
 | |
|  				}
 | |
|  				j++;
 | |
| diff --git a/dlls/mysqlx/thread/ThreadSupport.h b/dlls/mysqlx/thread/ThreadSupport.h
 | |
| --- a/dlls/mysqlx/thread/ThreadSupport.h
 | |
| +++ b/dlls/mysqlx/thread/ThreadSupport.h
 | |
| @@ -1,10 +1,10 @@
 | |
|  #ifndef _INCLUDE_SOURCEMOD_THREAD_SUPPORT_H
 | |
|  #define _INCLUDE_SOURCEMOD_THREAD_SUPPORT_H
 | |
|  
 | |
| -#if defined __linux__
 | |
| +#if defined __linux__ || defined __APPLE__
 | |
|  #include "PosixThreads.h"
 | |
|  #elif defined WIN32
 | |
|  #include "WinThreads.h"
 | |
|  #endif
 | |
|  
 | |
|  #endif //_INCLUDE_SOURCEMOD_THREAD_SUPPORT_H
 | |
| diff --git a/dlls/mysqlx/threading.cpp b/dlls/mysqlx/threading.cpp
 | |
| --- a/dlls/mysqlx/threading.cpp
 | |
| +++ b/dlls/mysqlx/threading.cpp
 | |
| @@ -129,17 +129,17 @@ void MysqlThread::SetForward(int forward
 | |
|  }
 | |
|  
 | |
|  void MysqlThread::SetInfo(const char *host, const char *user, const char *pass, const char *db, int port, unsigned int max_timeout)
 | |
|  {
 | |
|  	m_host.assign(host);
 | |
|  	m_user.assign(user);
 | |
|  	m_pass.assign(pass);
 | |
|  	m_db.assign(db);
 | |
| -	m_max_timeout = m_max_timeout;
 | |
| +	m_max_timeout = max_timeout;
 | |
|  	m_port = port;
 | |
|  	m_qrInfo.queue_time = gpGlobals->time;
 | |
|  }
 | |
|  
 | |
|  void MysqlThread::SetQuery(const char *query)
 | |
|  {
 | |
|  	m_query.assign(query);
 | |
|  }
 | |
| diff --git a/dlls/ns/CString.h b/dlls/ns/CString.h
 | |
| --- a/dlls/ns/CString.h
 | |
| +++ b/dlls/ns/CString.h
 | |
| @@ -240,17 +240,17 @@ public:
 | |
|  
 | |
|  		if (len < 1)
 | |
|  		{
 | |
|  			return;
 | |
|  		}
 | |
|  
 | |
|  		if (is_space(v[len-1]))
 | |
|  		{
 | |
| -			for (i=len-1; i>=0; i--)
 | |
| +			for (i=len-1; i<len; i--)
 | |
|  			{
 | |
|  				if (!is_space(v[i])
 | |
|  					|| (is_space(v[i]) && i==0))
 | |
|  				{
 | |
|  					erase(i+1, j);
 | |
|  					break;
 | |
|  				}
 | |
|  				j++;
 | |
| diff --git a/dlls/ns/CVector.h b/dlls/ns/CVector.h
 | |
| --- a/dlls/ns/CVector.h
 | |
| +++ b/dlls/ns/CVector.h
 | |
| @@ -348,19 +348,18 @@ public:
 | |
|  
 | |
|  		m_Data[m_CurrentUsedSize++] = elem;
 | |
|  
 | |
|  		return true;
 | |
|  	}
 | |
|  
 | |
|  	void pop_back()
 | |
|  	{
 | |
| -		--m_CurrentUsedSize;
 | |
| -		if (m_CurrentUsedSize < 0)
 | |
| -			m_CurrentUsedSize = 0;
 | |
| +		if (m_CurrentUsedSize > 0)
 | |
| +			--m_CurrentUsedSize;
 | |
|  
 | |
|  		FreeMemIfPossible();
 | |
|  	}
 | |
|  
 | |
|  	bool resize(size_t newSize)
 | |
|  	{
 | |
|  		if (!ChangeSize(newSize))
 | |
|  			return false;
 | |
| diff --git a/dlls/ns/Makefile b/dlls/ns/Makefile
 | |
| --- a/dlls/ns/Makefile
 | |
| +++ b/dlls/ns/Makefile
 | |
| @@ -1,98 +1,128 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../../metamod/metamod
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| +PROJECT = ns
 | |
|  
 | |
| -CRAZY_OPT_FLAGS = -DCRAZY_OPTS -O3 -funroll-loops -ffast-math -s -pipe -fomit-frame-pointer -fno-strict-aliasing -DNDEBUG -fmerge-all-constants -fmodulo-sched -fgcse-sm -fgcse-las -fgcse-after-reload -floop-optimize2 -funsafe-loop-optimizations -ftree-loop-linear -ftree-loop-im -ftree-loop-ivcanon -fivopts -ftree-vectorize -fvariable-expansion-in-unroller -funsafe-math-optimizations -ffinite-math-only  -fpeel-loops -funswitch-loops -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wno-unknown-pragmas -Wno-deprecated -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -Wpointer-arith -Wcast-qual -Wcast-align -Wconversion -Wsign-compare -Wmissing-noreturn -Winline -Wlong-long -Wunsafe-loop-optimizations -Wctor-dtor-privacy -Wno-non-virtual-dtor -Wreorder -Woverloaded-virtual -Wsign-promo -Wsynth -shared 
 | |
| +OBJECTS = sdk/amxxmodule.cpp dllapi.cpp utils.cpp amxxapi.cpp engineapi.cpp TitleManager.cpp \
 | |
| +          ParticleManager.cpp MessageHandler.cpp GameManager.cpp natives/general.cpp \
 | |
| +	  natives/player.cpp natives/player_memory.cpp natives/structure.cpp natives/weapons.cpp \
 | |
| +	  natives/particles.cpp natives/memberfuncs.cpp
 | |
|  
 | |
| -CRAZY_LINK_FLAGS = 
 | |
| -#-fwhole-program
 | |
| -#-fwhole-program -combine
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
|  
 | |
| -SANE_OPT_FLAGS = -O3 -funroll-loops -s -pipe -fomit-frame-pointer -fno-strict-aliasing -DNDEBUG
 | |
| +C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
| -OPT_FLAGS =
 | |
| +LINK =
 | |
|  
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -NAME = ns
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +          -I$(HLSDK)/pm_shared -I$(MM_ROOT) -Isdk
 | |
|  
 | |
| -BIN_SUFFIX = amxx_i386.so
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
|  
 | |
| -OBJECTS = sdk/amxxmodule.cpp dllapi.cpp utils.cpp amxxapi.cpp engineapi.cpp \
 | |
| -TitleManager.cpp ParticleManager.cpp MessageHandler.cpp GameManager.cpp \
 | |
| -natives/general.cpp natives/player.cpp natives/player_memory.cpp \
 | |
| -natives/structure.cpp natives/weapons.cpp natives/particles.cpp \
 | |
| -natives/memberfuncs.cpp
 | |
| +OS := $(shell uname -s)
 | |
|  
 | |
| -LINK = 
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _amxx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _amxx_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared
 | |
| +endif
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -I$(HLSDK)/common -I$(HLSDK)/pm_shared
 | |
| +LINK += -m32 -lm -ldl
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
|  
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
| -	ifeq "$(CRAZY)" "true"
 | |
| -		BIN_DIR = Optimized
 | |
| -		OPT_FLAGS = $(CRAZY_OPT_FLAGS)
 | |
| -		LINK = $(CRAZY_LINK_FLAGS)
 | |
| -	else
 | |
| -		BIN_DIR = Release
 | |
| -		OPT_FLAGS = $(SANE_OPT_FLAGS)
 | |
| -	endif
 | |
| -	ifeq "$(GCC_VERSION)" "4"
 | |
| -		OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| -	endif
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	BIN_DIR = Release
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -BINARY = $(NAME)_$(BIN_SUFFIX)
 | |
| -CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -OPT_FLAGS += -march=i586
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
| +else
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
| +endif
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
|  	mkdir -p $(BIN_DIR)
 | |
|  	mkdir -p $(BIN_DIR)/sdk
 | |
|  	mkdir -p $(BIN_DIR)/natives
 | |
| -	$(MAKE) ns
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -ns: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
| -crazy:
 | |
| -	$(MAKE) all CRAZY=true
 | |
| +clean:
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -rf $(BIN_DIR)/sdk/*.o
 | |
| +	rm -rf $(BIN_DIR)/natives/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -clean:
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/sdk/*.o
 | |
| -	rm -rf Release/natives/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX)
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/sdk/*.o
 | |
| -	rm -rf Debug/natives/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX)
 | |
| -	rm -rf Optimized/*.o
 | |
| -	rm -rf Optimized/sdk/*.o
 | |
| -	rm -rf Optimized/natives/*.o
 | |
| -	rm -rf Optimized/$(NAME)_$(BIN_SUFFIX)
 | |
| -	
 | |
| diff --git a/dlls/ns/engineapi.cpp b/dlls/ns/engineapi.cpp
 | |
| --- a/dlls/ns/engineapi.cpp
 | |
| +++ b/dlls/ns/engineapi.cpp
 | |
| @@ -44,17 +44,17 @@
 | |
|  #include "GameManager.h"
 | |
|  #include "ParticleManager.h"
 | |
|  #include "CPlayer.h"
 | |
|  
 | |
|  
 | |
|  // Parse log messages here for any desired information (structure_built, etc.)
 | |
|  // The following logs are needed:
 | |
|  // "sawce<1><STEAM_0:1:4560311><alien1team>" triggered "structure_built" (type "defensechamber")`
 | |
| -void AlertMessage_Post(ALERT_TYPE atype, char *szFmt, ...)
 | |
| +void AlertMessage_Post(ALERT_TYPE atype, const char *szFmt, ...)
 | |
|  {
 | |
|  	if (atype != at_logged)
 | |
|  	{
 | |
|  		RETURN_META(MRES_IGNORED);
 | |
|  	}
 | |
|  
 | |
|  	char *MessageStart; // original pointer to start of the message
 | |
|  	char *TypePointer;  // pointer to the structure type
 | |
| diff --git a/dlls/ns/natives/particles.cpp b/dlls/ns/natives/particles.cpp
 | |
| --- a/dlls/ns/natives/particles.cpp
 | |
| +++ b/dlls/ns/natives/particles.cpp
 | |
| @@ -53,17 +53,17 @@ typedef enum partsystype_e
 | |
|  	PSYS_TYPE_STRING
 | |
|  }partsystype;
 | |
|  typedef struct partsyskey_s
 | |
|  {
 | |
|  	const char	*Name;
 | |
|  	partsystype	 type;
 | |
|  }partsyskey;
 | |
|  
 | |
| -cell PSKeyValueI(char *name, AMX *amx, cell *params)
 | |
| +cell PSKeyValueI(const char *name, AMX *amx, cell *params)
 | |
|  {
 | |
|  	if (params[1]==0)
 | |
|  	{
 | |
|  		MF_LogError(amx,AMX_ERR_NATIVE,"Invalid particle system handle provided!");
 | |
|  		return 0;
 | |
|  	}
 | |
|  	KeyValueData kvd;
 | |
|  
 | |
| @@ -76,17 +76,17 @@ cell PSKeyValueI(char *name, AMX *amx, c
 | |
|  	kvd.szValue=&StrData[0];
 | |
|  	kvd.fHandled=0;
 | |
|  	//printf("\"%s\" \"%s\"\n",kvd.szKeyName,kvd.szValue);
 | |
|  
 | |
|  	MDLL_KeyValue(reinterpret_cast<edict_t *>(params[1]),&kvd);
 | |
|  
 | |
|  	return 1;
 | |
|  }
 | |
| -cell PSKeyValueF(char *name, AMX *amx, cell *params)
 | |
| +cell PSKeyValueF(const char *name, AMX *amx, cell *params)
 | |
|  {
 | |
|  	if (params[1]==0)
 | |
|  	{
 | |
|  		MF_LogError(amx,AMX_ERR_NATIVE,"Invalid particle system handle provided!");
 | |
|  		return 0;
 | |
|  	}
 | |
|  	KeyValueData kvd;
 | |
|  
 | |
| @@ -101,17 +101,17 @@ cell PSKeyValueF(char *name, AMX *amx, c
 | |
|  
 | |
|  	//printf("\"%s\" \"%s\"\n",kvd.szKeyName,kvd.szValue);
 | |
|  
 | |
|  	MDLL_KeyValue(reinterpret_cast<edict_t *>(params[1]),&kvd);
 | |
|  
 | |
|  	return 1;
 | |
|  
 | |
|  }
 | |
| -cell PSKeyValueS(char *name, AMX *amx, cell *params)
 | |
| +cell PSKeyValueS(const char *name, AMX *amx, cell *params)
 | |
|  {
 | |
|  	if (params[1]==0)
 | |
|  	{
 | |
|  		MF_LogError(amx,AMX_ERR_NATIVE,"Invalid particle system handle provided!");
 | |
|  		return 0;
 | |
|  	}
 | |
|  	KeyValueData kvd;
 | |
|  
 | |
| diff --git a/dlls/ns/ns.h b/dlls/ns/ns.h
 | |
| --- a/dlls/ns/ns.h
 | |
| +++ b/dlls/ns/ns.h
 | |
| @@ -58,17 +58,17 @@ extern edict_t *player_edicts[33]; // St
 | |
|  
 | |
|  
 | |
|  void PlayerPreThink(edict_t *pEntity);
 | |
|  void PlayerPreThink_Post(edict_t *pEntity);
 | |
|  void PlayerPostThink_Post(edict_t *pEntity);
 | |
|  void UpdateClientData( const struct edict_s *ent, int sendweapons, struct clientdata_s *cd );
 | |
|  void StartFrame(void);
 | |
|  edict_t* CreateNamedEntity_Post(int className);
 | |
| -void AlertMessage_Post(ALERT_TYPE atype, char *szFmt, ...);
 | |
| +void AlertMessage_Post(ALERT_TYPE atype, const char *szFmt, ...);
 | |
|  
 | |
|  
 | |
|  typedef struct tagAMX_HEADER {
 | |
|    int32_t size          PACKED; /* size of the "file" */
 | |
|    uint16_t magic        PACKED; /* signature */
 | |
|    char    file_version;         /* file format version */
 | |
|    char    amx_version;          /* required version of the AMX */
 | |
|    int16_t flags         PACKED;
 | |
| diff --git a/dlls/ns/sdk/amxxmodule.cpp b/dlls/ns/sdk/amxxmodule.cpp
 | |
| --- a/dlls/ns/sdk/amxxmodule.cpp
 | |
| +++ b/dlls/ns/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/dlls/ns/sdk/amxxmodule.h b/dlls/ns/sdk/amxxmodule.h
 | |
| --- a/dlls/ns/sdk/amxxmodule.h
 | |
| +++ b/dlls/ns/sdk/amxxmodule.h
 | |
| @@ -15,21 +15,26 @@
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -61,17 +66,17 @@ struct amxx_module_info_s
 | |
|  
 | |
|  // *** Small stuff ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -390,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2111,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2170,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/dlls/ns/sh_list.h b/dlls/ns/sh_list.h
 | |
| --- a/dlls/ns/sh_list.h
 | |
| +++ b/dlls/ns/sh_list.h
 | |
| @@ -14,17 +14,17 @@
 | |
|  // MSVC8 fix for offsetof macro redefition warnings
 | |
|  #ifdef _MSC_VER 
 | |
|  	#if _MSC_VER >= 1400
 | |
|  		#undef offsetof
 | |
|  	#endif
 | |
|  #endif
 | |
|  
 | |
|  #include <new>
 | |
| -#include <malloc.h>
 | |
| +#include <stdlib.h>
 | |
|  
 | |
|  //namespace SourceHook
 | |
|  //{
 | |
|  	//This class is from CSDM for AMX Mod X
 | |
|  	/*
 | |
|  		A circular, doubly-linked list with one sentinel node
 | |
|  
 | |
|  		Empty:
 | |
| diff --git a/dlls/ns/utilfunctions.h b/dlls/ns/utilfunctions.h
 | |
| --- a/dlls/ns/utilfunctions.h
 | |
| +++ b/dlls/ns/utilfunctions.h
 | |
| @@ -119,17 +119,17 @@ int UTIL_FindBuildingHive(void);
 | |
|  BOOL UTIL_CheckForPublic(const char *publicname);
 | |
|  BOOL UTIL_CheckForNative(const char *NativeName);
 | |
|  
 | |
|  class CPlayer;
 | |
|  
 | |
|  CPlayer *UTIL_PlayerByCID(int CID);
 | |
|  
 | |
|  // Converts something such as RESOURCES into OFFSET_WIN_RESOURCES or OFFSET_LIN_RESOURCES
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  #define MAKE_OFFSET(Offset) OFFSET_LIN_##Offset
 | |
|  #define MAKE_MEMBER_OFFSET(Offs) (Offs - OFFSET_LIN_MEMBERFUNCSTART)
 | |
|  #else
 | |
|  #define MAKE_OFFSET(Offset) OFFSET_WIN_##Offset
 | |
|  #define MAKE_MEMBER_OFFSET(Offs) (Offs - OFFSET_WIN_MEMBERFUNCSTART)
 | |
|  #endif // __linux__
 | |
|  
 | |
|  template <typename Output>
 | |
| diff --git a/dlls/nvault/Journal.cpp b/dlls/nvault/Journal.cpp
 | |
| --- a/dlls/nvault/Journal.cpp
 | |
| +++ b/dlls/nvault/Journal.cpp
 | |
| @@ -1,11 +1,11 @@
 | |
|  #include <stdio.h>
 | |
|  #include <stdarg.h>
 | |
| -#if defined __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  #include <unistd.h>
 | |
|  #endif
 | |
|  #include "Journal.h"
 | |
|  
 | |
|  Journal::Journal(const char *file)
 | |
|  {
 | |
|  	m_File.assign(file);
 | |
|  }
 | |
| diff --git a/dlls/nvault/Makefile b/dlls/nvault/Makefile
 | |
| --- a/dlls/nvault/Makefile
 | |
| +++ b/dlls/nvault/Makefile
 | |
| @@ -1,79 +1,123 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../../metamod/metamod
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing -fomit-frame-pointer 
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -NAME = nvault
 | |
| -
 | |
| -BIN_SUFFIX_32 = amxx_i386.so
 | |
| -BIN_SUFFIX_64 = amxx_amd64.so
 | |
| +PROJECT = nvault
 | |
|  
 | |
|  OBJECTS = sdk/amxxmodule.cpp amxxapi.cpp Binary.cpp Journal.cpp NVault.cpp
 | |
|  
 | |
| -#LINK = /lib/libgcc_eh.a /lib/libstdc++-3.4.a
 | |
| -LINK = 
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -I$(HLSDK)/common -Isdk
 | |
| +C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +LINK =
 | |
|  
 | |
| -ifeq "$(GCC_VERSION)" "4"
 | |
| -        OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +          -I$(MM_ROOT) -Isdk
 | |
| +
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
| +
 | |
| +OS := $(shell uname -s)
 | |
| +
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _amxx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _amxx_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared
 | |
|  endif
 | |
|  
 | |
| +LINK += -m32 -lm -ldl
 | |
| +
 | |
| +CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
| +
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -DNDEBUG -Wall -Werror -DHAVE_STDINT_H -fno-rtti -static-libgcc -fno-exceptions -m32
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -ifeq "$(AMD64)" "true"
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_64)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
|  else
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_32)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -	OPT_FLAGS += -march=i586
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
|  endif
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
|  	mkdir -p $(BIN_DIR)
 | |
|  	mkdir -p $(BIN_DIR)/sdk
 | |
| -	$(MAKE) nvault
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -amd64:
 | |
| -	$(MAKE) all AMD64=true
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -nvault: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| -
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/sdk/*.o
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_64)
 | |
| -	rm -rf Debug/sdk/*.o
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64)
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -rf $(BIN_DIR)/sdk/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
| +
 | |
| diff --git a/dlls/nvault/NVault.cpp b/dlls/nvault/NVault.cpp
 | |
| --- a/dlls/nvault/NVault.cpp
 | |
| +++ b/dlls/nvault/NVault.cpp
 | |
| @@ -1,15 +1,15 @@
 | |
|  #include <stdio.h>
 | |
|  #include "amxxmodule.h"
 | |
|  #include "NVault.h"
 | |
|  #include "Binary.h"
 | |
|  #include "CString.h"
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  #define _snprintf snprintf
 | |
|  #endif
 | |
|  
 | |
|  /** 
 | |
|   * :TODO: This beast calls strcpy()/new() way too much by creating new strings on the stack.
 | |
|   *		  That's easily remedied and it should be fixed?
 | |
|   *         ---bail
 | |
|   */
 | |
| diff --git a/dlls/nvault/amxxapi.cpp b/dlls/nvault/amxxapi.cpp
 | |
| --- a/dlls/nvault/amxxapi.cpp
 | |
| +++ b/dlls/nvault/amxxapi.cpp
 | |
| @@ -4,17 +4,17 @@
 | |
|  #include "CQueue.h"
 | |
|  
 | |
|  #ifdef WIN32
 | |
|  #define MKDIR(p) mkdir(p)
 | |
|  #else
 | |
|  #define MKDIR(p) mkdir(p, 0755)
 | |
|  #endif
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  #include <unistd.h>
 | |
|  #include <sys/stat.h>
 | |
|  #include <sys/types.h>
 | |
|  #else
 | |
|  #include <direct.h>
 | |
|  #endif
 | |
|  
 | |
|  CVector<NVault *> g_Vaults;
 | |
| diff --git a/dlls/nvault/sdk/CString.h b/dlls/nvault/sdk/CString.h
 | |
| --- a/dlls/nvault/sdk/CString.h
 | |
| +++ b/dlls/nvault/sdk/CString.h
 | |
| @@ -215,17 +215,17 @@ public:
 | |
|  
 | |
|  		if (len < 1)
 | |
|  		{
 | |
|  			return;
 | |
|  		}
 | |
|  
 | |
|  		if (is_space(v[len-1]))
 | |
|  		{
 | |
| -			for (i=len-1; i>=0; i--)
 | |
| +			for (i=len-1; i<len; i--)
 | |
|  			{
 | |
|  				if (!is_space(v[i])
 | |
|  					|| (is_space(v[i]) && i==0))
 | |
|  				{
 | |
|  					erase(i+1, j);
 | |
|  					break;
 | |
|  				}
 | |
|  				j++;
 | |
| diff --git a/dlls/nvault/sdk/amxxmodule.cpp b/dlls/nvault/sdk/amxxmodule.cpp
 | |
| --- a/dlls/nvault/sdk/amxxmodule.cpp
 | |
| +++ b/dlls/nvault/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/dlls/nvault/sdk/amxxmodule.h b/dlls/nvault/sdk/amxxmodule.h
 | |
| --- a/dlls/nvault/sdk/amxxmodule.h
 | |
| +++ b/dlls/nvault/sdk/amxxmodule.h
 | |
| @@ -15,21 +15,26 @@
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -61,17 +66,17 @@ struct amxx_module_info_s
 | |
|  
 | |
|  // *** Small stuff ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -390,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2111,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2170,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/dlls/nvault/sdk/sh_list.h b/dlls/nvault/sdk/sh_list.h
 | |
| --- a/dlls/nvault/sdk/sh_list.h
 | |
| +++ b/dlls/nvault/sdk/sh_list.h
 | |
| @@ -14,17 +14,17 @@
 | |
|  // MSVC8 fix for offsetof macro redefition warnings
 | |
|  #ifdef _MSC_VER 
 | |
|  	#if _MSC_VER >= 1400
 | |
|  		#undef offsetof
 | |
|  	#endif
 | |
|  #endif
 | |
|  
 | |
|  #include <new>
 | |
| -#include <malloc.h>
 | |
| +#include <stdlib.h>
 | |
|  
 | |
|  //namespace SourceHook
 | |
|  //{
 | |
|  //This class is from CSDM for AMX Mod X
 | |
|  /*
 | |
|  	A circular, doubly-linked list with one sentinel node
 | |
|  
 | |
|  	Empty:
 | |
| diff --git a/dlls/nvault/sdk/sh_tinyhash.h b/dlls/nvault/sdk/sh_tinyhash.h
 | |
| --- a/dlls/nvault/sdk/sh_tinyhash.h
 | |
| +++ b/dlls/nvault/sdk/sh_tinyhash.h
 | |
| @@ -427,17 +427,17 @@ public:
 | |
|  		{
 | |
|  			iterator old(*this);
 | |
|  			_Inc();
 | |
|  			return old;
 | |
|  		}
 | |
|  		void erase()
 | |
|  		{
 | |
|  			if (end || !hash || curbucket < 0 || curbucket >= static_cast<int>(hash->m_numBuckets))
 | |
| -				return true;
 | |
| +				return;
 | |
|  
 | |
|  			iterator tmp = *this;
 | |
|  			++tmp;
 | |
|  			delete (*iter);
 | |
|  			hash->m_Items--;
 | |
|  			hash->m_Buckets[curbucket]->erase(iter);
 | |
|  			*this = tmp;
 | |
|  		}
 | |
| diff --git a/dlls/regex/Makefile b/dlls/regex/Makefile
 | |
| --- a/dlls/regex/Makefile
 | |
| +++ b/dlls/regex/Makefile
 | |
| @@ -1,80 +1,124 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../../metamod/metamod
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -OPT_FLAGS = -O3 -funroll-loops -s -pipe -fomit-frame-pointer -fno-strict-aliasing
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -NAME = regex
 | |
| -
 | |
| -BIN_SUFFIX_32 = amxx_i386.so
 | |
| -BIN_SUFFIX_64 = amxx_amd64.so
 | |
| +PROJECT = regex
 | |
|  
 | |
|  OBJECTS = sdk/amxxmodule.cpp module.cpp CRegEx.cpp
 | |
|  
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
| +
 | |
| +C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
| +
 | |
|  LINK = -lpcre
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -I$(HLSDK)/common -Isdk
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +          -I$(MM_ROOT) -Isdk
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
|  
 | |
| -ifeq "$(GCC_VERSION)" "4"
 | |
| -        OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| +OS := $(shell uname -s)
 | |
| +
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _amxx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5 -Llib_darwin
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _amxx_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared -Llib_linux
 | |
|  endif
 | |
|  
 | |
| +LINK += -m32 -lm -ldl
 | |
| +
 | |
| +CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
| +
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -DNDEBUG -Wall -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -ifeq "$(AMD64)" "true"
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_64)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 
 | |
| -	INCLUDE += -Llib_linux64
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
|  else
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_32)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -	OPT_FLAGS += -march=i586
 | |
| -	INCLUDE += -Llib_linux
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
|  endif
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
| +
 | |
|  
 | |
|  all:
 | |
|  	mkdir -p $(BIN_DIR)
 | |
|  	mkdir -p $(BIN_DIR)/sdk
 | |
| -	$(MAKE) regex
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -amd64:
 | |
| -	$(MAKE) all AMD64=true
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -regex: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| -
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/sdk/*.o
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_64)
 | |
| -	rm -rf Debug/sdk/*.o
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64)
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -rf $(BIN_DIR)/sdk/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
| +
 | |
| diff --git a/dlls/regex/sdk/amxxmodule.cpp b/dlls/regex/sdk/amxxmodule.cpp
 | |
| --- a/dlls/regex/sdk/amxxmodule.cpp
 | |
| +++ b/dlls/regex/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/dlls/regex/sdk/amxxmodule.h b/dlls/regex/sdk/amxxmodule.h
 | |
| --- a/dlls/regex/sdk/amxxmodule.h
 | |
| +++ b/dlls/regex/sdk/amxxmodule.h
 | |
| @@ -15,21 +15,26 @@
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -61,17 +66,17 @@ struct amxx_module_info_s
 | |
|  
 | |
|  // *** Small stuff ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -390,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2111,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2170,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/dlls/sockets/Makefile b/dlls/sockets/Makefile
 | |
| --- a/dlls/sockets/Makefile
 | |
| +++ b/dlls/sockets/Makefile
 | |
| @@ -1,78 +1,124 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../../metamod/metamod
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -OPT_FLAGS = -O2 -funroll-loops -s -pipe -fno-strict-aliasing -fomit-frame-pointer
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -NAME = sockets
 | |
| -
 | |
| -BIN_SUFFIX_32 = amxx_i386.so
 | |
| -BIN_SUFFIX_64 = amxx_amd64.so
 | |
| +PROJECT = sockets
 | |
|  
 | |
|  OBJECTS = sdk/amxxmodule.cpp sockets.cpp
 | |
|  
 | |
| -LINK = 
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -I$(HLSDK)/common -Isdk
 | |
| +C_OPT_FLAGS = -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +LINK =
 | |
|  
 | |
| -ifeq "$(GCC_VERSION)" "4"
 | |
| -        OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +          -I$(MM_ROOT) -Isdk
 | |
| +
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
| +
 | |
| +OS := $(shell uname -s)
 | |
| +
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _amxx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _amxx_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared
 | |
|  endif
 | |
|  
 | |
| +LINK += -m32 -lm -ldl
 | |
| +
 | |
| +CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
| +
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -DNDEBUG -Wall -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -ifeq "$(AMD64)" "true"
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_64)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64 
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
|  else
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_32)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -	OPT_FLAGS += -march=i586
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
|  endif
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
| +
 | |
|  
 | |
|  all:
 | |
|  	mkdir -p $(BIN_DIR)
 | |
|  	mkdir -p $(BIN_DIR)/sdk
 | |
| -	$(MAKE) sockets
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -amd64:
 | |
| -	$(MAKE) all AMD64=true
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -sockets: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| -
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/sdk/*.o
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_64)
 | |
| -	rm -rf Debug/sdk/*.o
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64)
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -rf $(BIN_DIR)/sdk/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
| +
 | |
| diff --git a/dlls/sockets/sdk/amxxmodule.cpp b/dlls/sockets/sdk/amxxmodule.cpp
 | |
| --- a/dlls/sockets/sdk/amxxmodule.cpp
 | |
| +++ b/dlls/sockets/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/dlls/sockets/sdk/amxxmodule.h b/dlls/sockets/sdk/amxxmodule.h
 | |
| --- a/dlls/sockets/sdk/amxxmodule.h
 | |
| +++ b/dlls/sockets/sdk/amxxmodule.h
 | |
| @@ -15,21 +15,26 @@
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -61,17 +66,17 @@ struct amxx_module_info_s
 | |
|  
 | |
|  // *** Small stuff ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -390,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2111,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2170,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/dlls/sockets/sockets.cpp b/dlls/sockets/sockets.cpp
 | |
| --- a/dlls/sockets/sockets.cpp
 | |
| +++ b/dlls/sockets/sockets.cpp
 | |
| @@ -13,17 +13,17 @@
 | |
|   * - code structure renewed
 | |
|   * v0.2
 | |
|   * - added socket_send2 to send data containing null bytes (FALUCO)(AMXX v1.65)
 | |
|   */
 | |
|  
 | |
|  #include <stdlib.h>
 | |
|  #include <fcntl.h>
 | |
|  #include <errno.h>
 | |
| -#include <string>
 | |
| +#include <string.h>
 | |
|  
 | |
|  #ifdef _WIN32
 | |
|  /* Windows */
 | |
|  #include <winsock.h>
 | |
|  #include <io.h>
 | |
|  #define socklen_t int
 | |
|  #else
 | |
|  /* Unix/Linux */
 | |
| diff --git a/dlls/sqlite/Makefile b/dlls/sqlite/Makefile
 | |
| --- a/dlls/sqlite/Makefile
 | |
| +++ b/dlls/sqlite/Makefile
 | |
| @@ -1,112 +1,146 @@
 | |
| -#(C)2004-2006 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../../metamod/metamod
 | |
| -
 | |
| -### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| -
 | |
| -OPT_FLAGS = -O3 -funroll-loops -s -pipe -fomit-frame-pointer -fno-strict-aliasing
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -CC = gcc-4.1
 | |
| -NAME = sqlite
 | |
|  SQL = sqlite-source
 | |
|  
 | |
| -BIN_SUFFIX_32 = amxx_i386.so
 | |
| -BIN_SUFFIX_64 = amxx_amd64.so
 | |
| +#####################################
 | |
| +### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -CPP_OBJECTS = basic_sql.cpp handles.cpp module.cpp threading.cpp sdk/amxxmodule.cpp oldcompat_sql.cpp
 | |
| -CPP_OBJECTS += thread/BaseWorker.cpp thread/ThreadWorker.cpp thread/PosixThreads.cpp
 | |
| -CPP_OBJECTS += sqlitepp/SqliteQuery.cpp sqlitepp/SqliteResultSet.cpp sqlitepp/SqliteDatabase.cpp sqlitepp/SqliteDriver.cpp
 | |
| +PROJECT = sqlite
 | |
|  
 | |
| -C_OBJECTS = $(SQL)/alter.c $(SQL)/analyze.c $(SQL)/attach.c $(SQL)/auth.c $(SQL)/btree.c $(SQL)/build.c \
 | |
| -			$(SQL)/callback.c $(SQL)/complete.c $(SQL)/date.c $(SQL)/delete.c $(SQL)/expr.c $(SQL)/func.c \
 | |
| -			$(SQL)/hash.c $(SQL)/insert.c $(SQL)/legacy.c $(SQL)/loadext.c $(SQL)/main.c $(SQL)/opcodes.c \
 | |
| -			$(SQL)/os.c $(SQL)/os_unix.c $(SQL)/pager.c $(SQL)/parse.c $(SQL)/pragma.c $(SQL)/prepare.c \
 | |
| -			$(SQL)/printf.c $(SQL)/random.c $(SQL)/select.c $(SQL)/table.c $(SQL)/tokenize.c $(SQL)/trigger.c \
 | |
| -			$(SQL)/update.c $(SQL)/utf.c $(SQL)/util.c $(SQL)/vacuum.c $(SQL)/vdbe.c $(SQL)/vdbeapi.c \
 | |
| -			$(SQL)/vdbeaux.c $(SQL)/vdbefifo.c $(SQL)/vdbemem.c $(SQL)/vtab.c $(SQL)/where.c \
 | |
| +OBJECTS = basic_sql.cpp handles.cpp module.cpp threading.cpp sdk/amxxmodule.cpp oldcompat_sql.cpp \
 | |
| +          thread/BaseWorker.cpp thread/ThreadWorker.cpp thread/PosixThreads.cpp \
 | |
| +	  sqlitepp/SqliteQuery.cpp sqlitepp/SqliteResultSet.cpp sqlitepp/SqliteDatabase.cpp \
 | |
| +	  sqlitepp/SqliteDriver.cpp
 | |
| +OBJECTS += $(SQL)/alter.c $(SQL)/analyze.c $(SQL)/attach.c $(SQL)/auth.c $(SQL)/btree.c \
 | |
| +           $(SQL)/build.c $(SQL)/callback.c $(SQL)/complete.c $(SQL)/date.c $(SQL)/delete.c \
 | |
| +	   $(SQL)/expr.c $(SQL)/func.c $(SQL)/hash.c $(SQL)/insert.c $(SQL)/legacy.c \
 | |
| +	   $(SQL)/loadext.c $(SQL)/main.c $(SQL)/opcodes.c $(SQL)/os.c $(SQL)/os_unix.c \
 | |
| +	   $(SQL)/pager.c $(SQL)/parse.c $(SQL)/pragma.c $(SQL)/prepare.c $(SQL)/printf.c \
 | |
| +	   $(SQL)/random.c $(SQL)/select.c $(SQL)/table.c $(SQL)/tokenize.c $(SQL)/trigger.c \
 | |
| +           $(SQL)/update.c $(SQL)/utf.c $(SQL)/util.c $(SQL)/vacuum.c $(SQL)/vdbe.c $(SQL)/vdbeapi.c \
 | |
| +	   $(SQL)/vdbeaux.c $(SQL)/vdbefifo.c $(SQL)/vdbemem.c $(SQL)/vtab.c $(SQL)/where.c
 | |
|  
 | |
| -CFLAGS = -Wall -Werror -m32
 | |
| -CPPFLAGS = -Wall -Wno-non-virtual-dtor -Werror -m32
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
|  
 | |
| -LINK = -lgcc -static-libgcc -lpthread 
 | |
| +C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -I$(HLSDK)/common -I$(SQL) -I./sqlitepp -I./sdk -I./thread
 | |
| +LINK =
 | |
| +
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +          -I$(MM_ROOT) -I$(SQL) -Isqlitepp -Ithread -Isdk
 | |
| +
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
| +
 | |
| +OS := $(shell uname -s)
 | |
| +
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _amxx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _amxx_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared
 | |
| +endif
 | |
| +
 | |
| +LINK += -m32 -lm -ldl -lpthread
 | |
| +
 | |
| +CFLAGS += -DSM_DEFAULT_THREADER -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H \
 | |
| +	  -Dstricmp=strcasecmp -fno-strict-aliasing -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
|  
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS += $(DEBUG_FLAGS)
 | |
| -	CPPFLAGS += $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -	CFLAGS += $(OPT_FLAGS)
 | |
| -	CPPFLAGS += $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -ifeq "$(GCC_VERSION)" "4"
 | |
| -	CFLAGS += -fvisibility=hidden
 | |
| -	CPPFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
| +else
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
|  endif
 | |
|  
 | |
| -CPPFLAGS += -DNDEBUG -Wno-deprecated -fno-exceptions -DHAVE_STDINT_H -fno-rtti
 | |
| -CPPFLAGS += -DSM_DEFAULT_THREADER -Dstricmp=strcasecmp
 | |
| -CFLAGS += -DNDEBUG -DHAVE_STDINT_H -DSM_DEFAULT_THREADER -Dstricmp=strcasecmp
 | |
| -
 | |
| -ifeq "$(AMD64)" "true"
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_64)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64
 | |
| -	CPPFLAGS += -DPAWN_CELL_SIZE=64 -DHAVE_I64 -m64
 | |
| -else
 | |
| -	BINARY = $(NAME)_$(BIN_SUFFIX_32)
 | |
| -	CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -	CPPFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -	OPT_FLAGS += -march=i586
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
|  endif
 | |
|  
 | |
| -OBJ_LINUX_CPP := $(CPP_OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +OBJ_BIN := $(OBJ_BIN:%.c=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CPPFLAGS) -o $@ -c $<
 | |
| -
 | |
| -OBJ_LINUX_C := $(C_OBJECTS:%.c=$(BIN_DIR)/%.o)
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.c
 | |
| -	$(CC) $(INCLUDE) $(CFLAGS) -c -o $@ $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
| +	mkdir -p $(BIN_DIR)
 | |
| +	mkdir -p $(BIN_DIR)/sdk
 | |
|  	mkdir -p $(BIN_DIR)/thread
 | |
|  	mkdir -p $(BIN_DIR)/sqlitepp
 | |
| -	mkdir -p $(BIN_DIR)/sdk
 | |
| -	mkdir -p $(BIN_DIR)
 | |
|  	mkdir -p $(BIN_DIR)/$(SQL)
 | |
| -	$(MAKE) sqlite
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -amd64:
 | |
| -	$(MAKE) all AMD64=true
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -sqlite: $(OBJ_LINUX_C) $(OBJ_LINUX_CPP)
 | |
| -	$(CPP) $(INCLUDE) $(CPPFLAGS) $(OBJ_LINUX_C) $(OBJ_LINUX_CPP) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| -
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/$(SQL)/*.o
 | |
| -	rm -rf Release/sdk/*.o
 | |
| -	rm -rf Release/sqlitepp/*.o
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX_64)
 | |
| -	rm -rf Debug/$(SQL)/*.o
 | |
| -	rm -rf Debug/sdk/*.o
 | |
| -	rm -rf Debug/sqlitepp/*.o
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_32)
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX_64)
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -rf $(BIN_DIR)/sdk/*.o
 | |
| +	rm -rf $(BIN_DIR)/thread/*.o
 | |
| +	rm -rf $(BIN_DIR)/sqlitepp/*.o
 | |
| +	rm -rf $(BIN_DIR)/$(SQL)/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
| +
 | |
| diff --git a/dlls/sqlite/module.cpp b/dlls/sqlite/module.cpp
 | |
| --- a/dlls/sqlite/module.cpp
 | |
| +++ b/dlls/sqlite/module.cpp
 | |
| @@ -55,17 +55,17 @@ void OnAmxxAttach()
 | |
|  	MF_AddNatives(g_OldCompatNatives);
 | |
|  	MF_OverrideNatives(g_OldCompatNatives, MODULE_NAME);
 | |
|  
 | |
|  	char path[255];
 | |
|  	MF_BuildPathnameR(path, sizeof(path)-1, "%s/sqlite3", MF_GetLocalInfo("amxx_datadir", "addons/amxmodx/data"));
 | |
|  	if (!DirExists(path))
 | |
|  	{
 | |
|  		mkdir(path
 | |
| -#if defined __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  			, 0775
 | |
|  #endif
 | |
|  			);
 | |
|  	}
 | |
|  }
 | |
|  
 | |
|  void OnAmxxDetach()
 | |
|  {
 | |
| diff --git a/dlls/sqlite/sdk/amxxmodule.cpp b/dlls/sqlite/sdk/amxxmodule.cpp
 | |
| --- a/dlls/sqlite/sdk/amxxmodule.cpp
 | |
| +++ b/dlls/sqlite/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/dlls/sqlite/sdk/amxxmodule.h b/dlls/sqlite/sdk/amxxmodule.h
 | |
| --- a/dlls/sqlite/sdk/amxxmodule.h
 | |
| +++ b/dlls/sqlite/sdk/amxxmodule.h
 | |
| @@ -15,21 +15,26 @@
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -61,17 +66,17 @@ struct amxx_module_info_s
 | |
|  
 | |
|  // *** Small stuff ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -390,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2111,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2170,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/dlls/sqlite/sdk/sh_list.h b/dlls/sqlite/sdk/sh_list.h
 | |
| --- a/dlls/sqlite/sdk/sh_list.h
 | |
| +++ b/dlls/sqlite/sdk/sh_list.h
 | |
| @@ -14,17 +14,17 @@
 | |
|  // MSVC8 fix for offsetof macro redefition warnings
 | |
|  #ifdef _MSC_VER 
 | |
|  	#if _MSC_VER >= 1400
 | |
|  		#undef offsetof
 | |
|  	#endif
 | |
|  #endif
 | |
|  
 | |
|  #include <new>
 | |
| -#include <malloc.h>
 | |
| +#include <stdlib.h>
 | |
|  
 | |
|  namespace SourceHook
 | |
|  {
 | |
|  
 | |
|  	//This class is from CSDM for AMX Mod X
 | |
|  	/*
 | |
|  		A circular, doubly-linked list with one sentinel node
 | |
|  
 | |
| diff --git a/dlls/sqlite/sdk/sh_string.h b/dlls/sqlite/sdk/sh_string.h
 | |
| --- a/dlls/sqlite/sdk/sh_string.h
 | |
| +++ b/dlls/sqlite/sdk/sh_string.h
 | |
| @@ -191,17 +191,17 @@ public:
 | |
|  
 | |
|  		if (len < 1)
 | |
|  		{
 | |
|  			return;
 | |
|  		}
 | |
|  
 | |
|  		if (is_space(v[len-1]))
 | |
|  		{
 | |
| -			for (i=len-1; i>=0; i--)
 | |
| +			for (i=len-1; i<len; i--)
 | |
|  			{
 | |
|  				if (!is_space(v[i])
 | |
|  					|| (is_space(v[i]) && i==0))
 | |
|  				{
 | |
|  					erase(i+1, j);
 | |
|  					break;
 | |
|  				}
 | |
|  				j++;
 | |
| diff --git a/dlls/sqlite/sqlite-source/expr.c b/dlls/sqlite/sqlite-source/expr.c
 | |
| --- a/dlls/sqlite/sqlite-source/expr.c
 | |
| +++ b/dlls/sqlite/sqlite-source/expr.c
 | |
| @@ -232,22 +232,22 @@ Expr *sqlite3Expr(int op, Expr *pLeft, E
 | |
|    pNew->pRight = pRight;
 | |
|    pNew->iAgg = -1;
 | |
|    if( pToken ){
 | |
|      assert( pToken->dyn==0 );
 | |
|      pNew->span = pNew->token = *pToken;
 | |
|    }else if( pLeft ){
 | |
|      if( pRight ){
 | |
|        sqlite3ExprSpan(pNew, &pLeft->span, &pRight->span);
 | |
| -      if( pRight->flags && EP_ExpCollate ){
 | |
| +      if( pRight->flags & EP_ExpCollate ){
 | |
|          pNew->flags |= EP_ExpCollate;
 | |
|          pNew->pColl = pRight->pColl;
 | |
|        }
 | |
|      }
 | |
| -    if( pLeft->flags && EP_ExpCollate ){
 | |
| +    if( pLeft->flags & EP_ExpCollate ){
 | |
|        pNew->flags |= EP_ExpCollate;
 | |
|        pNew->pColl = pLeft->pColl;
 | |
|      }
 | |
|    }
 | |
|    return pNew;
 | |
|  }
 | |
|  
 | |
|  /*
 | |
| diff --git a/dlls/sqlite/sqlitepp/SqliteDriver.cpp b/dlls/sqlite/sqlitepp/SqliteDriver.cpp
 | |
| --- a/dlls/sqlite/sqlitepp/SqliteDriver.cpp
 | |
| +++ b/dlls/sqlite/sqlitepp/SqliteDriver.cpp
 | |
| @@ -22,17 +22,17 @@ bool SqliteDriver::IsCompatDriver(const 
 | |
|  
 | |
|  const char *SqliteDriver::NameString()
 | |
|  {
 | |
|  	return "sqlite";
 | |
|  }
 | |
|  
 | |
|  int busy_handler(void *unused1, int unused2)
 | |
|  {
 | |
| -#if defined __linux__
 | |
| +#if defined __linux__ || defined __APPLE__
 | |
|  	usleep(100000);
 | |
|  #else
 | |
|  	Sleep(100);
 | |
|  #endif
 | |
|  
 | |
|  	return 1;
 | |
|  }
 | |
|  IDatabase *SqliteDriver::Connect2(DatabaseInfo *info, int *errcode, char *error, size_t maxlength)
 | |
| diff --git a/dlls/sqlite/thread/ThreadSupport.h b/dlls/sqlite/thread/ThreadSupport.h
 | |
| --- a/dlls/sqlite/thread/ThreadSupport.h
 | |
| +++ b/dlls/sqlite/thread/ThreadSupport.h
 | |
| @@ -1,10 +1,10 @@
 | |
|  #ifndef _INCLUDE_SOURCEMOD_THREAD_SUPPORT_H
 | |
|  #define _INCLUDE_SOURCEMOD_THREAD_SUPPORT_H
 | |
|  
 | |
| -#if defined __linux__
 | |
| +#if defined __linux__ || defined __APPLE__
 | |
|  #include "PosixThreads.h"
 | |
|  #elif defined WIN32
 | |
|  #include "WinThreads.h"
 | |
|  #endif
 | |
|  
 | |
|  #endif //_INCLUDE_SOURCEMOD_THREAD_SUPPORT_H
 | |
| diff --git a/dlls/tfcx/CMisc.h b/dlls/tfcx/CMisc.h
 | |
| --- a/dlls/tfcx/CMisc.h
 | |
| +++ b/dlls/tfcx/CMisc.h
 | |
| @@ -1,17 +1,17 @@
 | |
|  
 | |
|  
 | |
|  #ifndef CMISC_H
 | |
|  #define CMISC_H
 | |
|  
 | |
|  #include "amxxmodule.h"
 | |
|  #include "CRank.h"
 | |
|  
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  	#define LINUXOFFSET 0
 | |
|  	#define CLIP_LINUXOFFSET 0
 | |
|  #else
 | |
|  	#define LINUXOFFSET 3
 | |
|  	#define CLIP_LINUXOFFSET 4
 | |
|  #endif
 | |
|  
 | |
|  #define TFCMAX_CUSTOMWPNS	5
 | |
| @@ -100,24 +100,24 @@ enum {
 | |
|  	TFC_PC_HWGUY,
 | |
|  	TFC_PC_PYRO,
 | |
|  	TFC_PC_SPY,
 | |
|  	TFC_PC_ENGENEER,
 | |
|  	TFC_PC_CIVILIAN,
 | |
|  };
 | |
|  
 | |
|  struct weaponsVault {
 | |
| -  char* name;
 | |
| -  char* logName;
 | |
| +  char name[32];
 | |
| +  char logName[32];
 | |
|    short int ammoSlot;
 | |
|    bool melee;
 | |
|  };
 | |
|  
 | |
|  struct traceVault {
 | |
| -	char * szName;
 | |
| +	const char* szName;
 | |
|  	char szTag[6];
 | |
|  	int iId;
 | |
|  	int iAction;
 | |
|  	float fDel;
 | |
|  	int start;
 | |
|  	int stop;
 | |
|  };
 | |
|  
 | |
| diff --git a/dlls/tfcx/Makefile b/dlls/tfcx/Makefile
 | |
| --- a/dlls/tfcx/Makefile
 | |
| +++ b/dlls/tfcx/Makefile
 | |
| @@ -1,67 +1,124 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../../metamod/metamod
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing -fomit-frame-pointer
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -NAME = tfcx
 | |
| +PROJECT = tfcx
 | |
|  
 | |
| -BIN_SUFFIX = amxx_i386.so
 | |
| +OBJECTS = sdk/amxxmodule.cpp CRank.cpp CMisc.cpp NBase.cpp NRank.cpp usermsg.cpp Utils.cpp \
 | |
| +	  moduleconfig.cpp
 | |
|  
 | |
| -OBJECTS = sdk/amxxmodule.cpp CRank.cpp CMisc.cpp NBase.cpp NRank.cpp usermsg.cpp Utils.cpp moduleconfig.cpp
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
|  
 | |
| -LINK = 
 | |
| +C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -I$(HLSDK)/common -Isdk
 | |
| +LINK =
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +          -I$(MM_ROOT) -Isdk
 | |
|  
 | |
| -ifeq "$(GCC_VERSION)" "4"
 | |
| -        OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
| +
 | |
| +OS := $(shell uname -s)
 | |
| +
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _amxx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _amxx_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared
 | |
|  endif
 | |
|  
 | |
| +LINK += -m32 -lm -ldl
 | |
| +
 | |
| +CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
| +
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -m32
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -BINARY = $(NAME)_$(BIN_SUFFIX)
 | |
| -CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -OPT_FLAGS += -march=i586
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
| +else
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
| +endif
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
|  	mkdir -p $(BIN_DIR)
 | |
|  	mkdir -p $(BIN_DIR)/sdk
 | |
| -	$(MAKE) tfcx
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -tfcx: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/sdk/*.o
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX)
 | |
| -	rm -rf Debug/sdk/*.o
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX)
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -rf $(BIN_DIR)/sdk/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
| +
 | |
| diff --git a/dlls/tfcx/sdk/amxxmodule.cpp b/dlls/tfcx/sdk/amxxmodule.cpp
 | |
| --- a/dlls/tfcx/sdk/amxxmodule.cpp
 | |
| +++ b/dlls/tfcx/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/dlls/tfcx/sdk/amxxmodule.h b/dlls/tfcx/sdk/amxxmodule.h
 | |
| --- a/dlls/tfcx/sdk/amxxmodule.h
 | |
| +++ b/dlls/tfcx/sdk/amxxmodule.h
 | |
| @@ -15,21 +15,26 @@
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -61,17 +66,17 @@ struct amxx_module_info_s
 | |
|  
 | |
|  // *** Small stuff ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -390,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2111,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2170,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/dlls/tfcx/tfcx.h b/dlls/tfcx/tfcx.h
 | |
| --- a/dlls/tfcx/tfcx.h
 | |
| +++ b/dlls/tfcx/tfcx.h
 | |
| @@ -44,17 +44,17 @@
 | |
|  #ifndef GETPLAYERAUTHID
 | |
|  #define GETPLAYERAUTHID   (*g_engfuncs.pfnGetPlayerAuthId)
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  extern AMX_NATIVE_INFO stats_Natives[];
 | |
|  extern AMX_NATIVE_INFO base_Natives[];
 | |
|  
 | |
| -extern weaponsVault weaponData[MAX_WEAPONS];
 | |
| +extern weaponsVault weaponData[TFCMAX_WEAPONS];
 | |
|  extern traceVault traceData[MAX_TRACE];
 | |
|  
 | |
|  typedef void (*funEventCall)(void*);
 | |
|  extern funEventCall modMsgsEnd[MAX_REG_MSGS];
 | |
|  extern funEventCall modMsgs[MAX_REG_MSGS];
 | |
|  extern void (*function)(void*);
 | |
|  extern void (*endfunction)(void*);
 | |
|  
 | |
| diff --git a/dlls/ts/tsfun/Makefile b/dlls/ts/tsfun/Makefile
 | |
| --- a/dlls/ts/tsfun/Makefile
 | |
| +++ b/dlls/ts/tsfun/Makefile
 | |
| @@ -1,67 +1,123 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../../../metamod/metamod
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -OPT_FLAGS = -O3 -funroll-loops -s -pipe -fno-strict-aliasing -fomit-frame-pointer
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -NAME = tsfun
 | |
| -
 | |
| -BIN_SUFFIX = amxx_i386.so
 | |
| +PROJECT = tsfun
 | |
|  
 | |
|  OBJECTS = sdk/amxxmodule.cpp 
 | |
|  
 | |
| -LINK = 
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -I$(HLSDK)/common -Isdk
 | |
| +C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +LINK =
 | |
|  
 | |
| -ifeq "$(GCC_VERSION)" "4"
 | |
| -        OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +	  -I$(MM_ROOT) -Isdk
 | |
| +
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
| +
 | |
| +OS := $(shell uname -s)
 | |
| +
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _amxx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _amxx_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared
 | |
|  endif
 | |
|  
 | |
| +LINK += -m32 -lm -ldl
 | |
| +
 | |
| +CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
| +
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -DNDEBUG -Wall -Werror -fno-exceptions -DHAVE_STDINT_H  -static-libgcc -fno-rtti -m32
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -BINARY = $(NAME)_$(BIN_SUFFIX)
 | |
| -CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -OPT_FLAGS += -march=i586
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
| +else
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
| +endif
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
|  	mkdir -p $(BIN_DIR)
 | |
|  	mkdir -p $(BIN_DIR)/sdk
 | |
| -	$(MAKE) tsfun
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -tsfun: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/sdk/*.o
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX)
 | |
| -	rm -rf Debug/sdk/*.o
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX)
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -rf $(BIN_DIR)/sdk/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
| +
 | |
| diff --git a/dlls/ts/tsfun/sdk/amxxmodule.cpp b/dlls/ts/tsfun/sdk/amxxmodule.cpp
 | |
| --- a/dlls/ts/tsfun/sdk/amxxmodule.cpp
 | |
| +++ b/dlls/ts/tsfun/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -2543,16 +2543,24 @@ C_DLLEXPORT int AMXX_Query(int *interfac
 | |
|  	return AMXX_OK;
 | |
|  }
 | |
|  
 | |
|  // request function
 | |
|  #define REQFUNC(name, fptr, type) if ((fptr = (type)reqFnptrFunc(name)) == 0) return AMXX_FUNC_NOT_PRESENT
 | |
|  // request optional function
 | |
|  #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)
 | |
|  {
 | |
|  	// Check pointer
 | |
|  	if (!reqFnptrFunc)
 | |
|  		return AMXX_PARAM;
 | |
|  
 | |
|  	g_fn_RequestFunction = reqFnptrFunc;
 | |
|  
 | |
| @@ -3037,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/dlls/ts/tsfun/sdk/amxxmodule.h b/dlls/ts/tsfun/sdk/amxxmodule.h
 | |
| --- a/dlls/ts/tsfun/sdk/amxxmodule.h
 | |
| +++ b/dlls/ts/tsfun/sdk/amxxmodule.h
 | |
| @@ -5,30 +5,36 @@
 | |
|  
 | |
|  // prevent double include
 | |
|  #ifndef __AMXXMODULE_H__
 | |
|  #define __AMXXMODULE_H__
 | |
|  
 | |
|  // config
 | |
|  #include "moduleconfig.h"
 | |
|  
 | |
| +#include <stddef.h> // size_t
 | |
|  // metamod include files
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -50,24 +56,27 @@ struct amxx_module_info_s
 | |
|  };
 | |
|  
 | |
|  // return values from functions called by amxx
 | |
|  #define AMXX_OK					0			/* no error */
 | |
|  #define AMXX_IFVERS				1			/* interface version */
 | |
|  #define AMXX_PARAM				2			/* Invalid parameter */
 | |
|  #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 ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -299,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -386,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -824,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -848,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1252,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1405,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1429,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1833,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2018,16 +2027,20 @@ int FN_ShouldCollide_Post(edict_t *pentT
 | |
|  
 | |
|  #endif // USE_METAMOD
 | |
|  
 | |
|  
 | |
|  #ifdef FN_AMXX_QUERY
 | |
|  void FN_AMXX_QUERY(void);
 | |
|  #endif // FN_AMXX_QUERY
 | |
|  
 | |
| +#ifdef FN_AMXX_CHECKGAME
 | |
| +int FN_AMXX_CHECKGAME(const char *);
 | |
| +#endif // FN_AMXX_CHECKGAME
 | |
| +
 | |
|  #ifdef FN_AMXX_ATTACH
 | |
|  void FN_AMXX_ATTACH(void);
 | |
|  #endif // FN_AMXX_ATTACH
 | |
|  
 | |
|  #ifdef FN_AMXX_DETACH
 | |
|  void FN_AMXX_DETACH(void);
 | |
|  #endif // FN_AMXX_DETACH
 | |
|  
 | |
| @@ -2103,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2162,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/dlls/ts/tsx/CMisc.h b/dlls/ts/tsx/CMisc.h
 | |
| --- a/dlls/ts/tsx/CMisc.h
 | |
| +++ b/dlls/ts/tsx/CMisc.h
 | |
| @@ -34,30 +34,30 @@
 | |
|  
 | |
|  #include "amxxmodule.h"
 | |
|  #include "CRank.h"
 | |
|  
 | |
|  #define TSMAX_CUSTOMWPNS		5
 | |
|  #define TSMAX_WEAPONS			39 + TSMAX_CUSTOMWPNS
 | |
|  
 | |
|  
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define TSKNIFE_OFFSET			31 // owner offset in knife entity
 | |
|  #else
 | |
|  #define TSKNIFE_OFFSET			35
 | |
|  #endif
 | |
|  
 | |
|  #define TSPWUP_SLOWMO			1
 | |
|  #define TSPWUP_INFAMMO			2
 | |
|  #define TSPWUP_KUNGFU			4
 | |
|  #define TSPWUP_SLOWPAUSE		8
 | |
|  #define TSPWUP_DFIRERATE		16
 | |
|  #define TSPWUP_SJUMP			256
 | |
|  
 | |
| -#if defined __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  #define EXTRAOFFSET	5
 | |
|  #else
 | |
|  #define EXTRAOFFSET 0
 | |
|  #endif
 | |
|  
 | |
|  #define TSX_SDUCK_OFFSET		(27+EXTRAOFFSET)
 | |
|  #define TSX_SPEED1_OFFSET		(85+EXTRAOFFSET)
 | |
|  #define TSX_PHYSICS_OFFSET		(86+EXTRAOFFSET)
 | |
| diff --git a/dlls/ts/tsx/Makefile b/dlls/ts/tsx/Makefile
 | |
| --- a/dlls/ts/tsx/Makefile
 | |
| +++ b/dlls/ts/tsx/Makefile
 | |
| @@ -1,68 +1,124 @@
 | |
| -#(C)2004-2005 AMX Mod X Development Team
 | |
| +# (C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
| -HLSDK = ../../../../hlsdk
 | |
| +###########################################
 | |
| +### EDIT THESE PATHS FOR YOUR OWN SETUP ###
 | |
| +###########################################
 | |
| +
 | |
| +HLSDK = ../../../../hlsdk/multiplayer
 | |
|  MM_ROOT = ../../../../metamod/metamod
 | |
|  
 | |
| +#####################################
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
| +#####################################
 | |
|  
 | |
| -OPT_FLAGS = -O2 -funroll-loops -s -pipe -fno-strict-aliasing -fomit-frame-pointer
 | |
| -DEBUG_FLAGS = -g -ggdb3
 | |
| -CPP = gcc-4.1
 | |
| -NAME = tsx
 | |
| +PROJECT = tsx
 | |
|  
 | |
| -BIN_SUFFIX = amxx_i386.so
 | |
| +OBJECTS = sdk/amxxmodule.cpp CMisc.cpp CRank.cpp NBase.cpp  NRank.cpp Utils.cpp moduleconfig.cpp \
 | |
| +	  usermsg.cpp
 | |
|  
 | |
| -OBJECTS = sdk/amxxmodule.cpp CMisc.cpp CRank.cpp NBase.cpp \
 | |
| -		  NRank.cpp Utils.cpp moduleconfig.cpp usermsg.cpp \
 | |
| +##############################################
 | |
| +### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
 | |
| +##############################################
 | |
|  
 | |
| -LINK = 
 | |
| +C_OPT_FLAGS = -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe
 | |
| +C_DEBUG_FLAGS = -D_DEBUG -DDEBUG -g -ggdb3
 | |
| +C_GCC4_FLAGS = -fvisibility=hidden
 | |
| +CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
 | |
| +CPP = gcc
 | |
| +CPP_OSX = clang
 | |
|  
 | |
| -INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared -I$(HLSDK)/game_shared \
 | |
| -	-I$(MM_ROOT) -I$(HLSDK)/common -Isdk
 | |
| +LINK =
 | |
|  
 | |
| -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +INCLUDE = -I. -I$(HLSDK) -I$(HLSDK)/common -I$(HLSDK)/dlls -I$(HLSDK)/engine -I$(HLSDK)/game_shared \
 | |
| +	  -I$(MM_ROOT) -Isdk
 | |
|  
 | |
| -ifeq "$(GCC_VERSION)" "4"
 | |
| -        OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
 | |
| +################################################
 | |
| +### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
 | |
| +################################################
 | |
| +
 | |
| +OS := $(shell uname -s)
 | |
| +
 | |
| +ifeq "$(OS)" "Darwin"
 | |
| +	CPP = $(CPP_OSX)
 | |
| +	LIB_EXT = dylib
 | |
| +	LIB_SUFFIX = _amxx
 | |
| +	CFLAGS += -DOSX
 | |
| +	LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
 | |
| +else
 | |
| +	LIB_EXT = so
 | |
| +	LIB_SUFFIX = _amxx_i386
 | |
| +	CFLAGS += -DLINUX
 | |
| +	LINK += -shared
 | |
|  endif
 | |
|  
 | |
| +LINK += -m32 -lm -ldl
 | |
| +
 | |
| +CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror
 | |
| +CPPFLAGS += -fno-exceptions -fno-rtti
 | |
| +
 | |
| +BINARY = $(PROJECT)$(LIB_SUFFIX).$(LIB_EXT)
 | |
| +
 | |
|  ifeq "$(DEBUG)" "true"
 | |
|  	BIN_DIR = Debug
 | |
| -	CFLAGS = $(DEBUG_FLAGS)
 | |
| +	CFLAGS += $(C_DEBUG_FLAGS)
 | |
|  else
 | |
|  	BIN_DIR = Release
 | |
| -	CFLAGS = $(OPT_FLAGS)
 | |
| +	CFLAGS += $(C_OPT_FLAGS)
 | |
| +	LINK += -s
 | |
|  endif
 | |
|  
 | |
| -CFLAGS += -DNDEBUG -Wall -Wno-non-virtual-dtor -Werror -fno-exceptions -DHAVE_STDINT_H -static-libgcc -fno-rtti -m32
 | |
| +IS_CLANG := $(shell $(CPP) --version | head -1 | grep clang > /dev/null && echo "1" || echo "0")
 | |
|  
 | |
| -BINARY = $(NAME)_$(BIN_SUFFIX)
 | |
| -CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
 | |
| -OPT_FLAGS += -march=i586
 | |
| +ifeq "$(IS_CLANG)" "1"
 | |
| +	CPP_MAJOR := $(shell $(CPP) --version | grep clang | sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
 | |
| +	CPP_MINOR := $(shell $(CPP) --version | grep clang | sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
 | |
| +else
 | |
| +	CPP_MAJOR := $(shell $(CPP) -dumpversion >&1 | cut -b1)
 | |
| +	CPP_MINOR := $(shell $(CPP) -dumpversion >&1 | cut -b3)
 | |
| +endif
 | |
|  
 | |
| -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +# Clang || GCC >= 4
 | |
| +ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
 | |
| +	CFLAGS += $(C_GCC4_FLAGS)
 | |
| +	CPPFLAGS += $(CPP_GCC4_FLAGS)
 | |
| +endif
 | |
| +
 | |
| +# Clang >= 3 || GCC >= 4.7
 | |
| +ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
 | |
| +	CFLAGS += -Wno-delete-non-virtual-dtor
 | |
| +endif
 | |
| +
 | |
| +# OS is Linux and not using clang
 | |
| +ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
 | |
| +	LINK += -static-libgcc
 | |
| +endif
 | |
| +
 | |
| +OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
 | |
| +
 | |
| +# This will break if we include other Makefiles, but is fine for now. It allows
 | |
| +#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
 | |
| +#  or other changes without mucking up the original.
 | |
| +MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 | |
|  
 | |
|  $(BIN_DIR)/%.o: %.cpp
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $<
 | |
| +	$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
 | |
|  
 | |
|  all:
 | |
|  	mkdir -p $(BIN_DIR)
 | |
|  	mkdir -p $(BIN_DIR)/sdk
 | |
| -	$(MAKE) tsx
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) $(PROJECT)
 | |
|  
 | |
| -tsx: $(OBJ_LINUX)
 | |
| -	$(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY)
 | |
| +$(PROJECT): $(OBJ_BIN)
 | |
| +	$(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
 | |
|  
 | |
| -debug:	
 | |
| -	$(MAKE) all DEBUG=true
 | |
| +debug:
 | |
| +	$(MAKE) -f $(MAKEFILE_NAME) all DEBUG=true
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  clean:
 | |
| -	rm -rf Release/sdk/*.o
 | |
| -	rm -rf Release/*.o
 | |
| -	rm -rf Release/$(NAME)_$(BIN_SUFFIX)
 | |
| -	rm -rf Debug/sdk/*.o
 | |
| -	rm -rf Debug/*.o
 | |
| -	rm -rf Debug/$(NAME)_$(BIN_SUFFIX)
 | |
| +	rm -rf $(BIN_DIR)/*.o
 | |
| +	rm -rf $(BIN_DIR)/sdk/*.o
 | |
| +	rm -f $(BIN_DIR)/$(BINARY)
 | |
| +
 | |
| diff --git a/dlls/ts/tsx/sdk/amxxmodule.cpp b/dlls/ts/tsx/sdk/amxxmodule.cpp
 | |
| --- a/dlls/ts/tsx/sdk/amxxmodule.cpp
 | |
| +++ b/dlls/ts/tsx/sdk/amxxmodule.cpp
 | |
| @@ -2235,17 +2235,17 @@ static META_FUNCTIONS g_MetaFunctions_Ta
 | |
|  	GetEntityAPI2,
 | |
|  	GetEntityAPI2_Post,
 | |
|  	GetNewDLLFunctions,
 | |
|  	GetNewDLLFunctions_Post,
 | |
|  	GetEngineFunctions,
 | |
|  	GetEngineFunctions_Post
 | |
|  };
 | |
|  
 | |
| -C_DLLEXPORT int Meta_Query(char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
| +C_DLLEXPORT int Meta_Query(const char *ifvers, plugin_info_t **pPlugInfo, mutil_funcs_t *pMetaUtilFuncs)
 | |
|  {
 | |
|  	if ((int) CVAR_GET_FLOAT("developer") != 0)
 | |
|  		UTIL_LogPrintf("[%s] dev: called: Meta_Query; version=%s, ours=%s\n", 
 | |
|  				Plugin_info.logtag, ifvers, Plugin_info.ifvers);
 | |
|  
 | |
|  	// Check for valid pMetaUtilFuncs before we continue.
 | |
|  	if(!pMetaUtilFuncs) {
 | |
|  		UTIL_LogPrintf("[%s] ERROR: Meta_Query called with null pMetaUtilFuncs\n", Plugin_info.logtag);
 | |
| @@ -2329,17 +2329,17 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIM
 | |
|  #ifdef FN_META_DETACH
 | |
|  	FN_META_DETACH();
 | |
|  #endif	// FN_META_DETACH
 | |
|  	return TRUE;
 | |
|  }
 | |
|  
 | |
|  
 | |
|  
 | |
| -#ifdef __linux__
 | |
| +#if defined(__linux__) || defined(__APPLE__)
 | |
|  // linux prototype
 | |
|  C_DLLEXPORT void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals ) {
 | |
|  
 | |
|  #else
 | |
|  #ifdef _MSC_VER
 | |
|  // MSVC: Simulate __stdcall calling convention
 | |
|  C_DLLEXPORT __declspec(naked) void GiveFnptrsToDll( enginefuncs_t* pengfuncsFromEngine, globalvars_t *pGlobals )
 | |
|  {
 | |
| @@ -3045,17 +3045,17 @@ char* UTIL_VarArgs( char *format, ... )
 | |
|  	return string;
 | |
|  }
 | |
|  	
 | |
|  
 | |
|  //=========================================================
 | |
|  // UTIL_LogPrintf - Prints a logged message to console.
 | |
|  // Preceded by LOG: ( timestamp ) < message >
 | |
|  //=========================================================
 | |
| -void UTIL_LogPrintf( char *fmt, ... )
 | |
| +void UTIL_LogPrintf( const char *fmt, ... )
 | |
|  {
 | |
|  	va_list			argptr;
 | |
|  	static char		string[1024];
 | |
|  	
 | |
|  	va_start ( argptr, fmt );
 | |
|  	vsnprintf ( string, sizeof(string), fmt, argptr );
 | |
|  	va_end   ( argptr );
 | |
|  
 | |
| diff --git a/dlls/ts/tsx/sdk/amxxmodule.h b/dlls/ts/tsx/sdk/amxxmodule.h
 | |
| --- a/dlls/ts/tsx/sdk/amxxmodule.h
 | |
| +++ b/dlls/ts/tsx/sdk/amxxmodule.h
 | |
| @@ -15,21 +15,26 @@
 | |
|  #ifdef USE_METAMOD
 | |
|  #include <extdll.h>
 | |
|  #include <meta_api.h>
 | |
|  #include "osdep.h"
 | |
|  #endif // #ifdef USE_METAMOD
 | |
|  
 | |
|  // DLL Export
 | |
|  #undef DLLEXPORT
 | |
| -#ifndef __linux__
 | |
| +#if defined(WIN32) || defined(_WIN32)
 | |
|  #define DLLEXPORT __declspec(dllexport)
 | |
|  #else
 | |
|  #define DLLEXPORT __attribute__((visibility("default")))
 | |
| +#endif
 | |
| +
 | |
| +#if defined(__linux__) && !defined(LINUX)
 | |
|  #define LINUX
 | |
| +#elif defined(__APPLE__) && !defined(OSX)
 | |
| +#define OSX
 | |
|  #endif
 | |
|  
 | |
|  #undef C_DLLEXPORT
 | |
|  #define C_DLLEXPORT extern "C" DLLEXPORT
 | |
|  
 | |
|  // ***** AMXX stuff *****
 | |
|  
 | |
|  // module interface version was 1
 | |
| @@ -61,17 +66,17 @@ struct amxx_module_info_s
 | |
|  
 | |
|  // *** Small stuff ***
 | |
|  // The next section is copied from the amx.h file
 | |
|  // Copyright (c) ITB CompuPhase, 1997-2005
 | |
|  
 | |
|  #if defined HAVE_STDINT_H
 | |
|    #include <stdint.h>
 | |
|  #else
 | |
| -  #if defined __LCC__ || defined __DMC__ || defined LINUX
 | |
| +  #if defined __LCC__ || defined __DMC__ || defined LINUX || defined __APPLE__
 | |
|      #if defined HAVE_INTTYPES_H
 | |
|        #include <inttypes.h>
 | |
|      #else
 | |
|        #include <stdint.h>
 | |
|      #endif
 | |
|    #elif !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 | |
|      /* The ISO C99 defines the int16_t and int_32t types. If the compiler got
 | |
|       * here, these types are probably undefined.
 | |
| @@ -303,17 +308,17 @@ typedef int (AMXAPI *AMX_DEBUG)(struct t
 | |
|  
 | |
|  #if defined __GNUC__
 | |
|    #define PACKED        __attribute__((packed))
 | |
|  #else
 | |
|    #define PACKED
 | |
|  #endif
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined LINUX || defined __FreeBSD__
 | |
| +  #if defined LINUX || defined __FreeBSD__ || defined __APPLE__
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|    #elif defined MACOS && defined __MWERKS__
 | |
|  	#pragma options align=mac68k
 | |
|    #else
 | |
|      #pragma pack(push)
 | |
|      #pragma pack(1)         /* structures must be packed (byte-aligned) */
 | |
|      #if defined __TURBOC__
 | |
|        #pragma option -a-    /* "pack" pragma for older Borland compilers */
 | |
| @@ -390,28 +395,28 @@ enum {
 | |
|    AMX_ERR_INIT,         /* AMX not initialized (or doubly initialized) */
 | |
|    AMX_ERR_USERDATA,     /* unable to set user data field (table full) */
 | |
|    AMX_ERR_INIT_JIT,     /* cannot initialize the JIT */
 | |
|    AMX_ERR_PARAMS,       /* parameter error */
 | |
|    AMX_ERR_DOMAIN,       /* domain error, expression result does not fit in range */
 | |
|  };
 | |
|  
 | |
|  #if !defined AMX_NO_ALIGN
 | |
| -  #if defined __linux__
 | |
| +  #if defined(__linux__) || defined(__APPLE__)
 | |
|      #pragma pack()    /* reset default packing */
 | |
|    #else
 | |
|      #pragma pack(pop) /* reset previous packing */
 | |
|    #endif
 | |
|  #endif
 | |
|  
 | |
|  
 | |
|  // ***** declare functions *****
 | |
|  
 | |
|  #ifdef USE_METAMOD
 | |
| -void UTIL_LogPrintf( char *fmt, ... );
 | |
| +void UTIL_LogPrintf( const char *fmt, ... );
 | |
|  void UTIL_HudMessage(CBaseEntity *pEntity, const hudtextparms_t &textparms, const char *pMessage);
 | |
|  short FixedSigned16( float value, float scale );
 | |
|  unsigned short FixedUnsigned16( float value, float scale );
 | |
|  
 | |
|  #ifdef FN_META_QUERY
 | |
|  void FN_META_QUERY(void);
 | |
|  #endif // FN_META_QUERY
 | |
|  
 | |
| @@ -828,21 +833,21 @@ int FN_InconsistentFile_Post(const edict
 | |
|  
 | |
|  #ifdef FN_AllowLagCompensation_Post
 | |
|  int FN_AllowLagCompensation_Post(void);
 | |
|  #endif // FN_AllowLagCompensation_Post
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel
 | |
| -int FN_PrecacheModel(char *s);
 | |
| +int FN_PrecacheModel(const char *s);
 | |
|  #endif // FN_PrecacheModel
 | |
|  
 | |
|  #ifdef FN_PrecacheSound
 | |
| -int FN_PrecacheSound(char *s);
 | |
| +int FN_PrecacheSound(const char *s);
 | |
|  #endif // FN_PrecacheSound
 | |
|  
 | |
|  #ifdef FN_SetModel
 | |
|  void FN_SetModel(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel
 | |
|  
 | |
|  #ifdef FN_ModelIndex
 | |
|  int FN_ModelIndex(const char *m);
 | |
| @@ -852,17 +857,17 @@ int FN_ModelIndex(const char *m);
 | |
|  int FN_ModelFrames(int modelIndex);
 | |
|  #endif // FN_ModelFrames
 | |
|  
 | |
|  #ifdef FN_SetSize
 | |
|  void FN_SetSize(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize
 | |
|  
 | |
|  #ifdef FN_ChangeLevel
 | |
| -void FN_ChangeLevel(char *s1, char *s2);
 | |
| +void FN_ChangeLevel(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms
 | |
|  void FN_GetSpawnParms(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms
 | |
|  void FN_SaveSpawnParms(edict_t *ent);
 | |
| @@ -1256,37 +1261,37 @@ void FN_RunPlayerMove(edict_t *fakeclien
 | |
|  int FN_NumberOfEntities(void);
 | |
|  #endif // FN_NumberOfEntities
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer
 | |
|  char *FN_GetInfoKeyBuffer(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue
 | |
| -char *FN_InfoKeyValue(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue
 | |
|  
 | |
|  #ifdef FN_SetKeyValue
 | |
| -void FN_SetKeyValue(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue
 | |
| -void FN_SetClientKeyValue(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue
 | |
|  
 | |
|  #ifdef FN_IsMapValid
 | |
| -int FN_IsMapValid(char *filename);
 | |
| +int FN_IsMapValid(const char *filename);
 | |
|  #endif // FN_IsMapValid
 | |
|  
 | |
|  #ifdef FN_StaticDecal
 | |
|  void FN_StaticDecal(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric
 | |
| -int FN_PrecacheGeneric(char *s);
 | |
| +int FN_PrecacheGeneric(const char *s);
 | |
|  #endif // FN_PrecacheGeneric
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId
 | |
|  int FN_GetPlayerUserId(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg
 | |
|  void FN_BuildSoundMsg(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -1409,21 +1414,21 @@ const char *FN_GetPlayerAuthId(edict_t *
 | |
|  #endif // FN_GetPlayerAuthId
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  #ifdef FN_PrecacheModel_Post
 | |
| -int FN_PrecacheModel_Post(char *s);
 | |
| +int FN_PrecacheModel_Post(const char *s);
 | |
|  #endif // FN_PrecacheModel_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheSound_Post
 | |
| -int FN_PrecacheSound_Post(char *s);
 | |
| +int FN_PrecacheSound_Post(const char *s);
 | |
|  #endif // FN_PrecacheSound_Post
 | |
|  
 | |
|  #ifdef FN_SetModel_Post
 | |
|  void FN_SetModel_Post(edict_t *e, const char *m);
 | |
|  #endif // FN_SetModel_Post
 | |
|  
 | |
|  #ifdef FN_ModelIndex_Post
 | |
|  int FN_ModelIndex_Post(const char *m);
 | |
| @@ -1433,17 +1438,17 @@ int FN_ModelIndex_Post(const char *m);
 | |
|  int FN_ModelFrames_Post(int modelIndex);
 | |
|  #endif // FN_ModelFrames_Post
 | |
|  
 | |
|  #ifdef FN_SetSize_Post
 | |
|  void FN_SetSize_Post(edict_t *e, const float *rgflMin, const float *rgflMax);
 | |
|  #endif // FN_SetSize_Post
 | |
|  
 | |
|  #ifdef FN_ChangeLevel_Post
 | |
| -void FN_ChangeLevel_Post(char *s1, char *s2);
 | |
| +void FN_ChangeLevel_Post(const char *s1, const char *s2);
 | |
|  #endif // FN_ChangeLevel_Post
 | |
|  
 | |
|  #ifdef FN_GetSpawnParms_Post
 | |
|  void FN_GetSpawnParms_Post(edict_t *ent);
 | |
|  #endif // FN_GetSpawnParms_Post
 | |
|  
 | |
|  #ifdef FN_SaveSpawnParms_Post
 | |
|  void FN_SaveSpawnParms_Post(edict_t *ent);
 | |
| @@ -1837,37 +1842,37 @@ void FN_RunPlayerMove_Post(edict_t *fake
 | |
|  int FN_NumberOfEntities_Post(void);
 | |
|  #endif // FN_NumberOfEntities_Post
 | |
|  
 | |
|  #ifdef FN_GetInfoKeyBuffer_Post
 | |
|  char *FN_GetInfoKeyBuffer_Post(edict_t *e);
 | |
|  #endif // FN_GetInfoKeyBuffer_Post
 | |
|  
 | |
|  #ifdef FN_InfoKeyValue_Post
 | |
| -char *FN_InfoKeyValue_Post(char *infobuffer, char *key);
 | |
| +char *FN_InfoKeyValue_Post(char *infobuffer, const char *key);
 | |
|  #endif // FN_InfoKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetKeyValue_Post
 | |
| -void FN_SetKeyValue_Post(char *infobuffer, char *key, char *value);
 | |
| +void FN_SetKeyValue_Post(char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_SetClientKeyValue_Post
 | |
| -void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, char *key, char *value);
 | |
| +void FN_SetClientKeyValue_Post(int clientIndex, char *infobuffer, const char *key, const char *value);
 | |
|  #endif // FN_SetClientKeyValue_Post
 | |
|  
 | |
|  #ifdef FN_IsMapValid_Post
 | |
| -int FN_IsMapValid_Post(char *filename);
 | |
| +int FN_IsMapValid_Post(const char *filename);
 | |
|  #endif // FN_IsMapValid_Post
 | |
|  
 | |
|  #ifdef FN_StaticDecal_Post
 | |
|  void FN_StaticDecal_Post(const float *origin, int decalIndex, int entityIndex, int modelIndex);
 | |
|  #endif // FN_StaticDecal_Post
 | |
|  
 | |
|  #ifdef FN_PrecacheGeneric_Post
 | |
| -int FN_PrecacheGeneric_Post(char *s);
 | |
| +int FN_PrecacheGeneric_Post(const char *s);
 | |
|  #endif // FN_PrecacheGeneric_Post
 | |
|  
 | |
|  #ifdef FN_GetPlayerUserId_Post
 | |
|  int FN_GetPlayerUserId_Post(edict_t *e );
 | |
|  #endif // FN_GetPlayerUserId_Post
 | |
|  
 | |
|  #ifdef FN_BuildSoundMsg_Post
 | |
|  void FN_BuildSoundMsg_Post(edict_t *entity, int channel, const char *sample, /*int*/float volume, float attenuation, int fFlags, int pitch, int msg_dest, int msg_type, const float *pOrigin, edict_t *ed);
 | |
| @@ -2111,17 +2116,17 @@ enum LibType
 | |
|  
 | |
|  typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
 | |
|  
 | |
|  typedef int				(*PFN_ADD_NATIVES)				(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef int				(*PFN_ADD_NEW_NATIVES)			(const AMX_NATIVE_INFO * /*list*/);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME)			(const char * /*format*/, ...);
 | |
|  typedef char *			(*PFN_BUILD_PATHNAME_R)			(char * /*buffer*/, size_t /* maxlen */, const char * /* format */, ...);
 | |
|  typedef cell *			(*PFN_GET_AMXADDR)				(AMX * /*amx*/, cell /*offset*/);
 | |
| -typedef void			(*PFN_PRINT_SRVCONSOLE)			(char * /*format*/, ...);
 | |
| +typedef void			(*PFN_PRINT_SRVCONSOLE)			(const char * /*format*/, ...);
 | |
|  typedef const char *	(*PFN_GET_MODNAME)				(void);
 | |
|  typedef const char *	(*PFN_GET_AMXSCRIPTNAME)		(int /*id*/);
 | |
|  typedef AMX *			(*PFN_GET_AMXSCRIPT)			(int /*id*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYAMX)		(const AMX * /*amx*/);
 | |
|  typedef int				(*PFN_FIND_AMXSCRIPT_BYNAME)	(const char * /*name*/);
 | |
|  typedef int				(*PFN_SET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, const char * /* source */, int /* max */);
 | |
|  typedef char *			(*PFN_GET_AMXSTRING)			(AMX * /*amx*/, cell /*amx_addr*/, int /*bufferId*/, int * /*pLen*/);
 | |
|  typedef int				(*PFN_GET_AMXSTRINGLEN)			(const cell *ptr);
 | |
| @@ -2170,18 +2175,18 @@ typedef void *			(*PFN_ALLOCATOR)				(co
 | |
|  typedef void *			(*PFN_REALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const size_t /*size*/, void* /*addr*/ );
 | |
|  typedef void			(*PFN_DEALLOCATOR)				(const char* /*filename*/, const unsigned int /*line*/, const char* /*func*/,
 | |
|  														 const unsigned int /*type*/, const void* /*addr*/ );
 | |
|  #endif
 | |
|  typedef int				(*PFN_AMX_EXEC)					(AMX* /*amx*/, cell* /*return val*/, int /*index*/);
 | |
|  typedef int				(*PFN_AMX_EXECV)				(AMX* /*amx*/, cell* /*return val*/, int /*index*/, int /*numparams*/, cell[] /*params*/);
 | |
|  typedef int				(*PFN_AMX_ALLOT)				(AMX* /*amx*/, int /*length*/, cell* /*amx_addr*/, cell** /*phys_addr*/);
 | |
| -typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| -typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDPUBLIC)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
| +typedef int				(*PFN_AMX_FINDNATIVE)			(AMX* /*amx*/, const char* /*func name*/, int* /*index*/);
 | |
|  typedef int				(*PFN_LOAD_AMXSCRIPT)			(AMX* /*amx*/, void** /*code*/, const char* /*path*/, char[64] /*error info*/, int /* debug */);
 | |
|  typedef int				(*PFN_UNLOAD_AMXSCRIPT)			(AMX* /*amx*/,void** /*code*/);
 | |
|  typedef cell			(*PFN_REAL_TO_CELL)				(REAL /*x*/);
 | |
|  typedef REAL			(*PFN_CELL_TO_REAL)				(cell /*x*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD)		(AMX * /*amx*/, int /*func*/, ... /*params*/);
 | |
|  typedef int				(*PFN_REGISTER_SPFORWARD_BYNAME)	(AMX * /*amx*/, const char * /*funcName*/, ... /*params*/);
 | |
|  typedef void			(*PFN_UNREGISTER_SPFORWARD)		(int /*id*/);
 | |
|  typedef	void			(*PFN_MERGEDEFINITION_FILE)		(const char * /*filename*/);
 | |
| diff --git a/installer/amxmodx-installer.nsi b/installer/amxmodx-installer.nsi
 | |
| --- a/installer/amxmodx-installer.nsi
 | |
| +++ b/installer/amxmodx-installer.nsi
 | |
| @@ -1,13 +1,13 @@
 | |
|  ;(C)2004 AMX Mod X Development Team
 | |
|  ; Licensed under the GNU General Public License
 | |
|  ; Originally written by -=HaXoMaTiC=-
 | |
|  !define PRODUCT_NAME "AMX Mod X Installer"
 | |
| -!define PRODUCT_VERSION "1.8.1"
 | |
| +!define PRODUCT_VERSION "1.8.2"
 | |
|  !define PRODUCT_PUBLISHER "AMX Mod X Dev Team"
 | |
|  !define PRODUCT_WEB_SITE "http://www.amxmodx.org/"
 | |
|  !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Installer.exe"
 | |
|  !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
 | |
|  !define PRODUCT_UNINST_ROOT_KEY "HKLM"
 | |
|  !define PRODUCT_STARTMENU_REGVAL "NSIS:StartMenuDir"
 | |
|  
 | |
|  !include "MUI.nsh"
 | |
| @@ -144,39 +144,51 @@ Section "MainSection" SEC01
 | |
|    File "installer\files\base\addons\amxmodx\data\lang\statscfg.txt"
 | |
|    File "installer\files\base\addons\amxmodx\data\lang\statsx.txt"
 | |
|    File "installer\files\base\addons\amxmodx\data\lang\stats_dod.txt"
 | |
|    File "installer\files\base\addons\amxmodx\data\lang\telemenu.txt"
 | |
|    File "installer\files\base\addons\amxmodx\data\lang\time.txt"
 | |
|    File "installer\files\base\addons\amxmodx\data\lang\timeleft.txt"
 | |
|    SetOutPath "$INSTDIR\files\base\dlls"
 | |
|    File "installer\files\base\addons\amxmodx\dlls\amxmodx_mm.dll"
 | |
| +  File "installer\files\base\addons\amxmodx\dlls\amxmodx_mm.dylib"
 | |
|    File "installer\files\base\addons\amxmodx\dlls\amxmodx_mm_i386.so"
 | |
|    File "installer\files\base\addons\amxmodx\dlls\metamod.dll"
 | |
| +  File "installer\files\base\addons\amxmodx\dlls\metamod.dylib"
 | |
|    File "installer\files\base\addons\amxmodx\dlls\metamod_i386.so"
 | |
|    SetOutPath "$INSTDIR\files\base\modules"
 | |
|    File "installer\files\base\addons\amxmodx\modules\nvault_amxx.dll"
 | |
| +  File "installer\files\base\addons\amxmodx\modules\nvault_amxx.dylib"
 | |
|    File "installer\files\base\addons\amxmodx\modules\nvault_amxx_i386.so"
 | |
|    File "installer\files\base\addons\amxmodx\modules\engine_amxx.dll"
 | |
| +  File "installer\files\base\addons\amxmodx\modules\engine_amxx.dylib"
 | |
|    File "installer\files\base\addons\amxmodx\modules\engine_amxx_i386.so"
 | |
|    File "installer\files\base\addons\amxmodx\modules\fakemeta_amxx.dll"
 | |
| +  File "installer\files\base\addons\amxmodx\modules\fakemeta_amxx.dylib"
 | |
|    File "installer\files\base\addons\amxmodx\modules\fakemeta_amxx_i386.so"
 | |
|    File "installer\files\base\addons\amxmodx\modules\fun_amxx.dll"
 | |
| +  File "installer\files\base\addons\amxmodx\modules\fun_amxx.dylib"
 | |
|    File "installer\files\base\addons\amxmodx\modules\fun_amxx_i386.so"
 | |
|    File "installer\files\base\addons\amxmodx\modules\geoip_amxx.dll"
 | |
| +  File "installer\files\base\addons\amxmodx\modules\geoip_amxx.dylib"
 | |
|    File "installer\files\base\addons\amxmodx\modules\geoip_amxx_i386.so"
 | |
|    File "installer\files\base\addons\amxmodx\modules\sqlite_amxx.dll"
 | |
| +  File "installer\files\base\addons\amxmodx\modules\sqlite_amxx.dylib"
 | |
|    File "installer\files\base\addons\amxmodx\modules\sqlite_amxx_i386.so"
 | |
|    File "installer\files\base\addons\amxmodx\modules\mysql_amxx.dll"
 | |
| +  File "installer\files\base\addons\amxmodx\modules\mysql_amxx.dylib"
 | |
|    File "installer\files\base\addons\amxmodx\modules\mysql_amxx_i386.so"
 | |
|    File "installer\files\base\addons\amxmodx\modules\regex_amxx.dll"
 | |
| +  File "installer\files\base\addons\amxmodx\modules\regex_amxx.dylib"
 | |
|    File "installer\files\base\addons\amxmodx\modules\regex_amxx_i386.so"
 | |
|    File "installer\files\base\addons\amxmodx\modules\sockets_amxx.dll"
 | |
| +  File "installer\files\base\addons\amxmodx\modules\sockets_amxx.dylib"
 | |
|    File "installer\files\base\addons\amxmodx\modules\sockets_amxx_i386.so"
 | |
|    File "installer\files\base\addons\amxmodx\modules\hamsandwich_amxx.dll"
 | |
| +  File "installer\files\base\addons\amxmodx\modules\hamsandwich_amxx.dylib"
 | |
|    File "installer\files\base\addons\amxmodx\modules\hamsandwich_amxx_i386.so"
 | |
|    SetOutPath "$INSTDIR\files\base\plugins"
 | |
|    File "installer\files\base\addons\amxmodx\plugins\admin.amxx"
 | |
|    File "installer\files\base\addons\amxmodx\plugins\adminchat.amxx"
 | |
|    File "installer\files\base\addons\amxmodx\plugins\admincmd.amxx"
 | |
|    File "installer\files\base\addons\amxmodx\plugins\adminhelp.amxx"
 | |
|    File "installer\files\base\addons\amxmodx\plugins\adminslots.amxx"
 | |
|    File "installer\files\base\addons\amxmodx\plugins\adminvote.amxx"
 | |
| @@ -202,17 +214,19 @@ Section "MainSection" SEC01
 | |
|    File "installer\files\base\addons\amxmodx\scripting\adminchat.sma"
 | |
|    File "installer\files\base\addons\amxmodx\scripting\admincmd.sma"
 | |
|    File "installer\files\base\addons\amxmodx\scripting\adminhelp.sma"
 | |
|    File "installer\files\base\addons\amxmodx\scripting\adminslots.sma"
 | |
|    File "installer\files\base\addons\amxmodx\scripting\adminvote.sma"
 | |
|    File "installer\files\base\addons\amxmodx\scripting\amxxpc"
 | |
|    File "installer\files\base\addons\amxmodx\scripting\amxxpc.exe"
 | |
|    File "installer\files\base\addons\amxmodx\scripting\amxxpc32.dll"
 | |
| +  File "installer\files\base\addons\amxmodx\scripting\amxxpc32.dylib"
 | |
|    File "installer\files\base\addons\amxmodx\scripting\amxxpc32.so"
 | |
| +  File "installer\files\base\addons\amxmodx\scripting\amxxpc_osx"
 | |
|    File "installer\files\base\addons\amxmodx\scripting\antiflood.sma"
 | |
|    File "installer\files\base\addons\amxmodx\scripting\cmdmenu.sma"
 | |
|    File "installer\files\base\addons\amxmodx\scripting\compile.exe"
 | |
|    File "installer\files\base\addons\amxmodx\scripting\compile.sh"
 | |
|    File "installer\files\base\addons\amxmodx\scripting\dlsym"
 | |
|    File "installer\files\base\addons\amxmodx\scripting\dlsym64"
 | |
|    File "installer\files\base\addons\amxmodx\scripting\imessage.sma"
 | |
|    SetOutPath "$INSTDIR\files\base\scripting\include"
 | |
| @@ -327,18 +341,20 @@ Section "MainSection" SEC01
 | |
|    File "installer\files\cstrike\addons\amxmodx\configs\modules.ini"
 | |
|    File "installer\files\cstrike\addons\amxmodx\configs\plugins.ini"
 | |
|    File "installer\files\cstrike\addons\amxmodx\configs\stats.ini"
 | |
|    SetOutPath "$INSTDIR\files\cstrike\data"
 | |
|    File "installer\files\cstrike\addons\amxmodx\data\csstats.amxx"
 | |
|    File "installer\files\cstrike\addons\amxmodx\data\WinCSX.exe"
 | |
|    SetOutPath "$INSTDIR\files\cstrike\modules"
 | |
|    File "installer\files\cstrike\addons\amxmodx\modules\cstrike_amxx.dll"
 | |
| +  File "installer\files\cstrike\addons\amxmodx\modules\cstrike_amxx.dylib"
 | |
|    File "installer\files\cstrike\addons\amxmodx\modules\cstrike_amxx_i386.so"
 | |
|    File "installer\files\cstrike\addons\amxmodx\modules\csx_amxx.dll"
 | |
| +  File "installer\files\cstrike\addons\amxmodx\modules\csx_amxx.dylib"
 | |
|    File "installer\files\cstrike\addons\amxmodx\modules\csx_amxx_i386.so"
 | |
|    SetOutPath "$INSTDIR\files\cstrike\plugins"
 | |
|    File "installer\files\cstrike\addons\amxmodx\plugins\miscstats.amxx"
 | |
|    File "installer\files\cstrike\addons\amxmodx\plugins\restmenu.amxx"
 | |
|    File "installer\files\cstrike\addons\amxmodx\plugins\statsx.amxx"
 | |
|    File "installer\files\cstrike\addons\amxmodx\plugins\stats_logging.amxx"
 | |
|    SetOutPath "$INSTDIR\files\cstrike\scripting"
 | |
|    File "installer\files\cstrike\addons\amxmodx\scripting\csstats.sma"
 | |
| @@ -351,18 +367,20 @@ Section "MainSection" SEC01
 | |
|    File "installer\files\dod\addons\amxmodx\configs\cvars.ini"
 | |
|    File "installer\files\dod\addons\amxmodx\configs\maps.ini"
 | |
|    File "installer\files\dod\addons\amxmodx\configs\modules.ini"
 | |
|    File "installer\files\dod\addons\amxmodx\configs\plugins.ini"
 | |
|    SetOutPath "$INSTDIR\files\dod\data"
 | |
|    File "installer\files\dod\addons\amxmodx\data\dodstats.amxx"
 | |
|    SetOutPath "$INSTDIR\files\dod\modules"
 | |
|    File "installer\files\dod\addons\amxmodx\modules\dodfun_amxx.dll"
 | |
| +  File "installer\files\dod\addons\amxmodx\modules\dodfun_amxx.dylib"
 | |
|    File "installer\files\dod\addons\amxmodx\modules\dodfun_amxx_i386.so"
 | |
|    File "installer\files\dod\addons\amxmodx\modules\dodx_amxx.dll"
 | |
| +  File "installer\files\dod\addons\amxmodx\modules\dodx_amxx.dylib"
 | |
|    File "installer\files\dod\addons\amxmodx\modules\dodx_amxx_i386.so"
 | |
|    SetOutPath "$INSTDIR\files\dod\plugins"
 | |
|    File "installer\files\dod\addons\amxmodx\plugins\plmenu.amxx"
 | |
|    File "installer\files\dod\addons\amxmodx\plugins\stats.amxx"
 | |
|    File "installer\files\dod\addons\amxmodx\plugins\statssounds.amxx"
 | |
|    File "installer\files\dod\addons\amxmodx\plugins\stats_logging.amxx"
 | |
|    SetOutPath "$INSTDIR\files\dod\scripting"
 | |
|    File "installer\files\dod\addons\amxmodx\scripting\dodstats.sma"
 | |
| @@ -410,16 +428,17 @@ Section "MainSection" SEC01
 | |
|    File "installer\files\tfc\addons\amxmodx\configs\cvars.ini"
 | |
|    File "installer\files\tfc\addons\amxmodx\configs\maps.ini"
 | |
|    File "installer\files\tfc\addons\amxmodx\configs\modules.ini"
 | |
|    File "installer\files\tfc\addons\amxmodx\configs\plugins.ini"
 | |
|    SetOutPath "$INSTDIR\files\tfc\data"
 | |
|    File "installer\files\tfc\addons\amxmodx\data\tfcstats.amxx"
 | |
|    SetOutPath "$INSTDIR\files\tfc\modules"
 | |
|    File "installer\files\tfc\addons\amxmodx\modules\tfcx_amxx.dll"
 | |
| +  File "installer\files\tfc\addons\amxmodx\modules\tfcx_amxx.dylib"
 | |
|    File "installer\files\tfc\addons\amxmodx\modules\tfcx_amxx_i386.so"
 | |
|    SetOutPath "$INSTDIR\files\tfc\plugins"
 | |
|    File "installer\files\tfc\addons\amxmodx\plugins\plmenu.amxx"
 | |
|    File "installer\files\tfc\addons\amxmodx\plugins\stats.amxx"
 | |
|    File "installer\files\tfc\addons\amxmodx\plugins\statssounds.amxx"
 | |
|    File "installer\files\tfc\addons\amxmodx\plugins\stats_logging.amxx"
 | |
|    SetOutPath "$INSTDIR\files\tfc\scripting"
 | |
|    File "installer\files\tfc\addons\amxmodx\scripting\plmenu.sma"
 | |
| @@ -522,16 +541,17 @@ Section Uninstall
 | |
|    Delete "$INSTDIR\files\tfc\scripting\statssounds.sma"
 | |
|    Delete "$INSTDIR\files\tfc\scripting\stats.sma"
 | |
|    Delete "$INSTDIR\files\tfc\scripting\plmenu.sma"
 | |
|    Delete "$INSTDIR\files\tfc\plugins\stats_logging.amxx"
 | |
|    Delete "$INSTDIR\files\tfc\plugins\statssounds.amxx"
 | |
|    Delete "$INSTDIR\files\tfc\plugins\stats.amxx"
 | |
|    Delete "$INSTDIR\files\tfc\plugins\plmenu.amxx"
 | |
|    Delete "$INSTDIR\files\tfc\modules\tfcx_amxx_i386.so"
 | |
| +  Delete "$INSTDIR\files\tfc\modules\tfcx_amxx.dylib"
 | |
|    Delete "$INSTDIR\files\tfc\modules\tfcx_amxx.dll"
 | |
|    Delete "$INSTDIR\files\tfc\data\tfcstats.amxx"
 | |
|    Delete "$INSTDIR\files\tfc\configs\plugins.ini"
 | |
|    Delete "$INSTDIR\files\tfc\configs\modules.ini"
 | |
|    Delete "$INSTDIR\files\tfc\configs\maps.ini"
 | |
|    Delete "$INSTDIR\files\tfc\configs\cvars.ini"
 | |
|    Delete "$INSTDIR\files\tfc\configs\core.ini"
 | |
|    Delete "$INSTDIR\files\ns\scripting\unstuck.sma"
 | |
| @@ -562,18 +582,20 @@ Section Uninstall
 | |
|    Delete "$INSTDIR\files\dod\scripting\stats.sma"
 | |
|    Delete "$INSTDIR\files\dod\scripting\plmenu.sma"
 | |
|    Delete "$INSTDIR\files\dod\scripting\dodstats.sma"
 | |
|    Delete "$INSTDIR\files\dod\plugins\stats_logging.amxx"
 | |
|    Delete "$INSTDIR\files\dod\plugins\statssounds.amxx"
 | |
|    Delete "$INSTDIR\files\dod\plugins\stats.amxx"
 | |
|    Delete "$INSTDIR\files\dod\plugins\plmenu.amxx"
 | |
|    Delete "$INSTDIR\files\dod\modules\dodx_amxx_i386.so"
 | |
| +  Delete "$INSTDIR\files\dod\modules\dodx_amxx.dylib"
 | |
|    Delete "$INSTDIR\files\dod\modules\dodx_amxx.dll"
 | |
|    Delete "$INSTDIR\files\dod\modules\dodfun_amxx_i386.so"
 | |
| +  Delete "$INSTDIR\files\dod\modules\dodfun_amxx.dylib"
 | |
|    Delete "$INSTDIR\files\dod\modules\dodfun_amxx.dll"
 | |
|    Delete "$INSTDIR\files\dod\data\dodstats.amxx"
 | |
|    Delete "$INSTDIR\files\dod\configs\plugins.ini"
 | |
|    Delete "$INSTDIR\files\dod\configs\modules.ini"
 | |
|    Delete "$INSTDIR\files\dod\configs\maps.ini"
 | |
|    Delete "$INSTDIR\files\dod\configs\cvars.ini"
 | |
|    Delete "$INSTDIR\files\dod\configs\core.ini"
 | |
|    Delete "$INSTDIR\files\cstrike\scripting\stats_logging.sma"
 | |
| @@ -581,21 +603,23 @@ Section Uninstall
 | |
|    Delete "$INSTDIR\files\cstrike\scripting\restmenu.sma"
 | |
|    Delete "$INSTDIR\files\cstrike\scripting\miscstats.sma"
 | |
|    Delete "$INSTDIR\files\cstrike\scripting\csstats.sma"
 | |
|    Delete "$INSTDIR\files\cstrike\plugins\stats_logging.amxx"
 | |
|    Delete "$INSTDIR\files\cstrike\plugins\statsx.amxx"
 | |
|    Delete "$INSTDIR\files\cstrike\plugins\restmenu.amxx"
 | |
|    Delete "$INSTDIR\files\cstrike\plugins\miscstats.amxx"
 | |
|    Delete "$INSTDIR\files\cstrike\modules\csx_amxx_i386.so"
 | |
| +  Delete "$INSTDIR\files\cstrike\modules\csx_amxx.dylib"
 | |
|    Delete "$INSTDIR\files\cstrike\modules\csx_amxx.dll"
 | |
|    Delete "$INSTDIR\files\cstrike\modules\cstrike_amxx_i386.so"
 | |
| +  Delete "$INSTDIR\files\cstrike\modules\cstrike_amxx.dylib"
 | |
|    Delete "$INSTDIR\files\cstrike\modules\cstrike_amxx.dll"
 | |
|    Delete "$INSTDIR\files\cstrike\data\csstats.amxx"
 | |
| -  Delete "$INSTDIR\files\cstrike\data\WinCSX.amxx"
 | |
| +  Delete "$INSTDIR\files\cstrike\data\WinCSX.exe"
 | |
|    Delete "$INSTDIR\files\cstrike\configs\stats.ini"
 | |
|    Delete "$INSTDIR\files\cstrike\configs\plugins.ini"
 | |
|    Delete "$INSTDIR\files\cstrike\configs\modules.ini"
 | |
|    Delete "$INSTDIR\files\cstrike\configs\maps.ini"
 | |
|    Delete "$INSTDIR\files\cstrike\configs\cvars.ini"
 | |
|    Delete "$INSTDIR\files\cstrike\configs\core.ini"
 | |
|    Delete "$INSTDIR\files\cstrike\configs\cmds.ini"
 | |
|    Delete "$INSTDIR\files\cstrike\configs\amxx.cfg"
 | |
| @@ -734,38 +758,50 @@ Section Uninstall
 | |
|    Delete "$INSTDIR\files\base\plugins\admin_sql.amxx"
 | |
|    Delete "$INSTDIR\files\base\plugins\adminvote.amxx"
 | |
|    Delete "$INSTDIR\files\base\plugins\adminslots.amxx"
 | |
|    Delete "$INSTDIR\files\base\plugins\adminhelp.amxx"
 | |
|    Delete "$INSTDIR\files\base\plugins\admincmd.amxx"
 | |
|    Delete "$INSTDIR\files\base\plugins\adminchat.amxx"
 | |
|    Delete "$INSTDIR\files\base\plugins\admin.amxx"
 | |
|    Delete "$INSTDIR\files\base\modules\nvault_amxx_i386.so"
 | |
| +  Delete "$INSTDIR\files\base\modules\nvault_amxx.dylib"
 | |
|    Delete "$INSTDIR\files\base\modules\nvault_amxx.dll"
 | |
|    Delete "$INSTDIR\files\base\modules\sockets_amxx_i386.so"
 | |
| +  Delete "$INSTDIR\files\base\modules\sockets_amxx.dylib"
 | |
|    Delete "$INSTDIR\files\base\modules\sockets_amxx.dll"
 | |
|    Delete "$INSTDIR\files\base\modules\regex_amxx_i386.so"
 | |
| +  Delete "$INSTDIR\files\base\modules\regex_amxx.dylib"
 | |
|    Delete "$INSTDIR\files\base\modules\regex_amxx.dll"
 | |
|    Delete "$INSTDIR\files\base\modules\sqlite_amxx_i386.so"
 | |
| +  Delete "$INSTDIR\files\base\modules\sqlite_amxx.dylib"
 | |
|    Delete "$INSTDIR\files\base\modules\sqlite_amxx.dll"
 | |
|    Delete "$INSTDIR\files\base\modules\mysql_amxx_i386.so"
 | |
| +  Delete "$INSTDIR\files\base\modules\mysql_amxx.dylib"
 | |
|    Delete "$INSTDIR\files\base\modules\mysql_amxx.dll"
 | |
|    Delete "$INSTDIR\files\base\modules\geoip_amxx_i386.so"
 | |
| +  Delete "$INSTDIR\files\base\modules\geoip_amxx.dylib"
 | |
|    Delete "$INSTDIR\files\base\modules\geoip_amxx.dll"
 | |
|    Delete "$INSTDIR\files\base\modules\fun_amxx_i386.so"
 | |
| +  Delete "$INSTDIR\files\base\modules\fun_amxx.dylib"
 | |
|    Delete "$INSTDIR\files\base\modules\fun_amxx.dll"
 | |
|    Delete "$INSTDIR\files\base\modules\fakemeta_amxx_i386.so"
 | |
| +  Delete "$INSTDIR\files\base\modules\fakemeta_amxx.dylib"
 | |
|    Delete "$INSTDIR\files\base\modules\fakemeta_amxx.dll"
 | |
|    Delete "$INSTDIR\files\base\modules\engine_amxx_i386.so"
 | |
| +  Delete "$INSTDIR\files\base\modules\engine_amxx.dylib"
 | |
|    Delete "$INSTDIR\files\base\modules\engine_amxx.dll"
 | |
|    Delete "$INSTDIR\files\base\modules\hamsandwich_amxx_i386.so"
 | |
| +  Delete "$INSTDIR\files\base\modules\hamsandwich_amxx.dylib"
 | |
|    Delete "$INSTDIR\files\base\modules\hamsandwich_amxx.dll"
 | |
|    Delete "$INSTDIR\files\base\dlls\metamod_i386.so"
 | |
| +  Delete "$INSTDIR\files\base\dlls\metamod.dylib"
 | |
|    Delete "$INSTDIR\files\base\dlls\metamod.dll"
 | |
|    Delete "$INSTDIR\files\base\dlls\amxmodx_mm_i386.so"
 | |
| +  Delete "$INSTDIR\files\base\dlls\amxmodx_mm.dylib"
 | |
|    Delete "$INSTDIR\files\base\dlls\amxmodx_mm.dll"
 | |
|    Delete "$INSTDIR\files\base\data\lang\timeleft.txt"
 | |
|    Delete "$INSTDIR\files\base\data\lang\time.txt"
 | |
|    Delete "$INSTDIR\files\base\data\lang\telemenu.txt"
 | |
|    Delete "$INSTDIR\files\base\data\lang\stats_dod.txt"
 | |
|    Delete "$INSTDIR\files\base\data\lang\statsx.txt"
 | |
|    Delete "$INSTDIR\files\base\data\lang\statscfg.txt"
 | |
|    Delete "$INSTDIR\files\base\data\lang\scrollmsg.txt"
 | |
| diff --git a/installer/builder/Build.cs b/installer/builder/Build.cs
 | |
| --- a/installer/builder/Build.cs
 | |
| +++ b/installer/builder/Build.cs
 | |
| @@ -12,31 +12,35 @@ namespace AMXXRelease
 | |
|  
 | |
|  		public Build(Config cfg)
 | |
|  		{
 | |
|  			m_Mods = new ArrayList();
 | |
|  			m_Cfg = cfg;
 | |
|  
 | |
|  			CoreMod core = new CoreMod();
 | |
|  			ModCstrike cstrike = new ModCstrike();
 | |
| +			ModDoD dod = new ModDoD();
 | |
| +			ModTFC tfc = new ModTFC();
 | |
|  
 | |
|  			m_Mods.Add(core);
 | |
|  			m_Mods.Add(cstrike);
 | |
| +			m_Mods.Add(dod);
 | |
| +			m_Mods.Add(tfc);
 | |
|  
 | |
| -			ModDoD dod = new ModDoD();
 | |
| -			ModEsf esf = new ModEsf();
 | |
| -			ModNs ns = new ModNs();
 | |
| -			ModTFC tfc = new ModTFC();
 | |
| -			ModTs ts = new ModTs();
 | |
| +			// These mods don't have OS X builds
 | |
| +			if (!Releaser.IsOSX)
 | |
| +			{
 | |
| +				ModEsf esf = new ModEsf();
 | |
| +				ModNs ns = new ModNs();
 | |
| +				ModTs ts = new ModTs();
 | |
|  
 | |
| -			m_Mods.Add(dod);
 | |
| -			m_Mods.Add(esf);
 | |
| -			m_Mods.Add(ns);
 | |
| -			m_Mods.Add(tfc);
 | |
| -			m_Mods.Add(ts);
 | |
| +				m_Mods.Add(esf);
 | |
| +				m_Mods.Add(ns);
 | |
| +				m_Mods.Add(ts);
 | |
| +			}
 | |
|  		}
 | |
|  
 | |
|  		public virtual int GetMods()
 | |
|  		{
 | |
|  			return m_Mods.Count;
 | |
|  		}
 | |
|  
 | |
|  		public virtual AMod GetMod(int i)
 | |
| diff --git a/installer/builder/CoreMod.cs b/installer/builder/CoreMod.cs
 | |
| --- a/installer/builder/CoreMod.cs
 | |
| +++ b/installer/builder/CoreMod.cs
 | |
| @@ -26,24 +26,27 @@ namespace AMXXRelease
 | |
|  		{
 | |
|  			return null;
 | |
|  		}
 | |
|  
 | |
|  		//annoyingly complicated file exclusion filter
 | |
|  		public override sealed bool ExcludeCopy(string file)
 | |
|  		{
 | |
|  			if ( ((file.IndexOf(".so")!=-1) || (ABuilder.GetFileName(file).CompareTo("amxxpc")==0))
 | |
| -				&& (Releaser.IsWindows) )
 | |
| +				&& (Releaser.IsWindows || Releaser.IsOSX) )
 | |
| +				return true;
 | |
| +			if ( ((file.IndexOf(".dylib")!=-1) || (ABuilder.GetFileName(file).CompareTo("amxxpc_osx")==0))
 | |
| +				&& (!Releaser.IsOSX) )
 | |
|  				return true;
 | |
|  			if ( (file.IndexOf(".sh")!=-1) && Releaser.IsWindows )
 | |
|  				return true;
 | |
|  			if ( ((file.IndexOf(".exe")!=-1) || (file.IndexOf(".dll")!=-1))
 | |
|  				&& (!Releaser.IsWindows) )
 | |
|  				return true;
 | |
| -			if ( (file.IndexOf("dlsym")!=-1) && Releaser.IsWindows )
 | |
| +			if ( (file.IndexOf("dlsym")!=-1) && (Releaser.IsWindows || Releaser.IsOSX) )
 | |
|  				return true;
 | |
|  			if (ABuilder.GetFileName(file).CompareTo("svn_version.tpl") == 0)
 | |
|  			{
 | |
|  				return true;
 | |
|  			}
 | |
|  
 | |
|  			return base.ExcludeCopy(file);
 | |
|  		}
 | |
| diff --git a/installer/builder/LinuxBuilder.cs b/installer/builder/LinuxBuilder.cs
 | |
| --- a/installer/builder/LinuxBuilder.cs
 | |
| +++ b/installer/builder/LinuxBuilder.cs
 | |
| @@ -34,17 +34,17 @@ namespace AMXXRelease
 | |
|  			chmod.WorkingDirectory = dir;
 | |
|  			chmod.Arguments = "-R 755 " + file_list;
 | |
|  			chmod.UseShellExecute = false;
 | |
|  			Process c = Process.Start(chmod);
 | |
|  			c.WaitForExit();
 | |
|  			c.Close();
 | |
|  
 | |
|  
 | |
| -			info.Arguments = "zcvf \"" + target + ".tar.gz\" " + file_list;
 | |
| +			info.Arguments = "zcvf \"" + target + "-linux.tar.gz\" " + file_list;
 | |
|  			info.UseShellExecute = false;
 | |
|  
 | |
|  			Process p = Process.Start(info);
 | |
|  			p.WaitForExit();
 | |
|  			p.Close();
 | |
|  		}
 | |
|  
 | |
|  		public override void AmxxPc(string inpath, string args)
 | |
| diff --git a/installer/builder/MacBuilder.cs b/installer/builder/MacBuilder.cs
 | |
| new file mode 100644
 | |
| --- /dev/null
 | |
| +++ b/installer/builder/MacBuilder.cs
 | |
| @@ -0,0 +1,111 @@
 | |
| +using System;
 | |
| +using System.Diagnostics;
 | |
| +using System.IO;
 | |
| +
 | |
| +namespace AMXXRelease
 | |
| +{
 | |
| +	//Build process for Mac OS X
 | |
| +	public class MacBuilder : ABuilder
 | |
| +	{
 | |
| +		private string m_AmxxPc;
 | |
| +
 | |
| +		public override void OnBuild()
 | |
| +		{
 | |
| +			m_AmxxPc = PropSlashes(m_Cfg.GetSourceTree() + "/plugins/amxxpc_osx");
 | |
| +		}
 | |
| +
 | |
| +		public override void CompressDir(string target, string dir)
 | |
| +		{
 | |
| +			ProcessStartInfo info = new ProcessStartInfo();
 | |
| +
 | |
| +			info.FileName = m_Cfg.CompressPath();
 | |
| +			info.WorkingDirectory = dir;
 | |
| +
 | |
| +			string [] files = Directory.GetFiles(dir);
 | |
| +			string file_list = "";
 | |
| +			for (int i=0; i<files.Length; i++)
 | |
| +				file_list += GetFileName(files[i]) + " ";
 | |
| +			files = Directory.GetDirectories(dir);
 | |
| +			for (int i=0; i<files.Length; i++)
 | |
| +				file_list += GetFileName(files[i]) + " ";
 | |
| +
 | |
| +			ProcessStartInfo chmod = new ProcessStartInfo();
 | |
| +			chmod.FileName = "/bin/chmod";
 | |
| +			chmod.WorkingDirectory = dir;
 | |
| +			chmod.Arguments = "-R 755 " + file_list;
 | |
| +			chmod.UseShellExecute = false;
 | |
| +			Process c = Process.Start(chmod);
 | |
| +			c.WaitForExit();
 | |
| +			c.Close();
 | |
| +
 | |
| +			info.Arguments = "-r \"" + target + "-mac.zip\" " + ".";
 | |
| +			info.UseShellExecute = false;
 | |
| +
 | |
| +			Process p = Process.Start(info);
 | |
| +			p.WaitForExit();
 | |
| +			p.Close();
 | |
| +		}
 | |
| +
 | |
| +		public override void AmxxPc(string inpath, string args)
 | |
| +		{
 | |
| +			ProcessStartInfo info = new ProcessStartInfo();
 | |
| +
 | |
| +			info.WorkingDirectory = PropSlashes(m_Cfg.GetSourceTree() + "\\plugins");
 | |
| +			info.FileName = (string)m_AmxxPc.Clone();
 | |
| +			info.Arguments = inpath + ".sma";
 | |
| +			if (args != null)
 | |
| +				info.Arguments += " " + args;
 | |
| +			info.UseShellExecute = false;
 | |
| +
 | |
| +			Process p = Process.Start(info);
 | |
| +			p.WaitForExit();
 | |
| +			p.Close();
 | |
| +		}
 | |
| +
 | |
| +		public override string GetLibExt()
 | |
| +		{
 | |
| +			return ".dylib";
 | |
| +		}
 | |
| +
 | |
| +		public override string BuildModule(Module module)
 | |
| +		{
 | |
| +			ProcessStartInfo info = new ProcessStartInfo();
 | |
| +
 | |
| +			string dir = m_Cfg.GetSourceTree() + "\\" + module.sourcedir;
 | |
| +			string file = dir;
 | |
| +			file += "\\" + "Release" + "\\" + module.projname + GetLibExt();
 | |
| +			file = PropSlashes(file);
 | |
| +
 | |
| +			if (File.Exists(file))
 | |
| +				File.Delete(file);
 | |
| +
 | |
| +			Console.WriteLine(PropSlashes(dir));
 | |
| +			info.WorkingDirectory = PropSlashes(dir);
 | |
| +			info.FileName = m_Cfg.DevenvPath();
 | |
| +			info.Arguments = "clean";
 | |
| +			info.UseShellExecute = false;
 | |
| +
 | |
| +			Process p = Process.Start(info);
 | |
| +			p.WaitForExit();
 | |
| +			p.Close();
 | |
| +
 | |
| +			info.WorkingDirectory = PropSlashes(dir);
 | |
| +			info.FileName = m_Cfg.DevenvPath();
 | |
| +			info.Arguments = m_Cfg.MakeOpts();
 | |
| +			info.UseShellExecute = false;
 | |
| +
 | |
| +			p = Process.Start(info);
 | |
| +			p.WaitForExit();
 | |
| +			p.Close();
 | |
| +
 | |
| +			if (!File.Exists(file))
 | |
| +			{
 | |
| +				Console.WriteLine("Output file failed: " + file);
 | |
| +				return null;
 | |
| +			}
 | |
| +
 | |
| +			return file;
 | |
| +		}
 | |
| +	}
 | |
| +}
 | |
| +
 | |
| diff --git a/installer/builder/Main.cs b/installer/builder/Main.cs
 | |
| --- a/installer/builder/Main.cs
 | |
| +++ b/installer/builder/Main.cs
 | |
| @@ -1,23 +1,25 @@
 | |
|  using System;
 | |
|  using System.Diagnostics;
 | |
|  using System.IO;
 | |
| +using System.Runtime.InteropServices;
 | |
|  
 | |
|  namespace AMXXRelease
 | |
|  {
 | |
|  	//Entry point for application.
 | |
|  	//1. Reads config file
 | |
|  	//2. Instantiates correct build process (ABuilder)
 | |
|  	//3. Instantiates the build (Build)
 | |
|  	//4. Passes configuration and build to the Builder
 | |
|  	public class Releaser
 | |
|  	{
 | |
|  		private Config m_Cfg;
 | |
|  		public static bool IsWindows;
 | |
| +		public static bool IsOSX;
 | |
|  
 | |
|  		[STAThread]
 | |
|  		static void Main(string[] args)
 | |
|  		{
 | |
|  			string file;
 | |
|  			if (args.GetLength(0) < 1)
 | |
|  				file = "release.info";
 | |
|  			else
 | |
| @@ -42,23 +44,31 @@ namespace AMXXRelease
 | |
|  
 | |
|  			if (!ValidateConfigPaths())
 | |
|  			{
 | |
|  				Console.WriteLine("Build failed!");
 | |
|  				return;
 | |
|  			}
 | |
|  
 | |
|  			ABuilder builder = null;
 | |
| -			if (System.Environment.OSVersion.Platform == System.PlatformID.Unix)
 | |
| +			if (IsMacOSX())
 | |
| +			{
 | |
| +				builder = new MacBuilder();
 | |
| +				Releaser.IsWindows = false;
 | |
| +				Releaser.IsOSX = true;
 | |
| +			}
 | |
| +			else if (System.Environment.OSVersion.Platform == System.PlatformID.Unix)
 | |
|  			{
 | |
|  				builder = new LinuxBuilder();
 | |
|  				Releaser.IsWindows = false;
 | |
| +				Releaser.IsOSX = false;
 | |
|  			} else {
 | |
|  				builder = new Win32Builder();
 | |
|  				Releaser.IsWindows = true;
 | |
| +				Releaser.IsOSX = false;
 | |
|  			}
 | |
|  
 | |
|  			Build build = new Build(m_Cfg);
 | |
|  
 | |
|  			if (!builder.Build(m_Cfg, build))
 | |
|  			{
 | |
|  				throw new Exception("Build failed!");
 | |
|  			} 
 | |
| @@ -91,11 +101,45 @@ namespace AMXXRelease
 | |
|  			if ( !File.Exists( ABuilder.PropSlashes(m_Cfg.DevenvPath()) ) )
 | |
|  			{
 | |
|  				Console.WriteLine("Failed to find compilation program! Check 'devenv' option in config.");
 | |
|  				return false;
 | |
|  			}
 | |
|  
 | |
|  			return true;
 | |
|  		}
 | |
| +
 | |
| +		[DllImport("libc")]
 | |
| +		static extern int uname(IntPtr buf);
 | |
| +		
 | |
| +		// Environment.OSVersion.Platform returns PlatformID.Unix under Mono on OS X
 | |
| +		// Code adapted from Mono: mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUI.cs
 | |
| +		private bool IsMacOSX()
 | |
| +		{
 | |
| +			IntPtr buf = IntPtr.Zero;
 | |
| +
 | |
| +			try
 | |
| +			{
 | |
| +				// The size of the utsname struct varies from system to system, but this _seems_ more than enough
 | |
| +				buf = Marshal.AllocHGlobal(4096);
 | |
| +
 | |
| +				if (uname(buf) == 0)
 | |
| +				{
 | |
| +					string sys = Marshal.PtrToStringAnsi(buf);
 | |
| +					if (sys == "Darwin")
 | |
| +						return true;
 | |
| +				}
 | |
| +			}
 | |
| +			catch
 | |
| +			{
 | |
| +				// Do nothing
 | |
| +			}
 | |
| +			finally
 | |
| +			{
 | |
| +				if (buf != IntPtr.Zero)
 | |
| +					Marshal.FreeHGlobal(buf);
 | |
| +			}
 | |
| +
 | |
| +			return false;
 | |
| +		}
 | |
|  	}
 | |
|  }
 | |
|  
 | |
| diff --git a/installer/builder/Makefile b/installer/builder/Makefile
 | |
| --- a/installer/builder/Makefile
 | |
| +++ b/installer/builder/Makefile
 | |
| @@ -1,20 +1,20 @@
 | |
| -#(C)2004-2008 AMX Mod X Development Team
 | |
| +#(C)2004-2013 AMX Mod X Development Team
 | |
|  # Makefile written by David "BAILOPAN" Anderson
 | |
|  
 | |
|  ### EDIT BELOW FOR OTHER PROJECTS ###
 | |
|  
 | |
|  CS = gmcs
 | |
|  NAME = builder
 | |
|  BINARY = $(NAME).exe
 | |
|  
 | |
|  OBJECTS = Main.cs Config.cs ABuilder.cs AMod.cs Build.cs Win32Builder.cs LinuxBuilder.cs \
 | |
|  	CoreMod.cs ModDoD.cs ModEsf.cs ModCstrike.cs ModTFC.cs \
 | |
| -	ModTs.cs ModNs.cs
 | |
| +	ModTs.cs ModNs.cs MacBuilder.cs
 | |
|  
 | |
|  default: all
 | |
|  
 | |
|  all:	$(OBJECTS)
 | |
|  	$(CS) $(OBJECTS) -out:$(BINARY)
 | |
|  
 | |
|  clean:
 | |
|  	rm -rf $(BINARY)
 | |
| diff --git a/installer/builder/Win32Builder.cs b/installer/builder/Win32Builder.cs
 | |
| --- a/installer/builder/Win32Builder.cs
 | |
| +++ b/installer/builder/Win32Builder.cs
 | |
| @@ -15,17 +15,17 @@ namespace AMXXRelease
 | |
|  		}
 | |
|  
 | |
|  		public override void CompressDir(string target, string dir)
 | |
|  		{
 | |
|  			ProcessStartInfo info = new ProcessStartInfo();
 | |
|  
 | |
|  			info.FileName = m_Cfg.CompressPath();
 | |
|  			info.WorkingDirectory = dir;
 | |
| -			info.Arguments = "-r \"" + target + ".zip\" " + "*.*";
 | |
| +			info.Arguments = "-r \"" + target + "-windows.zip\" " + "*.*";
 | |
|  			info.UseShellExecute = false;
 | |
|  
 | |
|  			Process p = Process.Start(info);
 | |
|  			p.WaitForExit();
 | |
|  		}
 | |
|  
 | |
|  		public override void AmxxPc(string inpath, string args)
 | |
|  		{
 | |
| diff --git a/installer/builder/builder.csproj b/installer/builder/builder.csproj
 | |
| --- a/installer/builder/builder.csproj
 | |
| +++ b/installer/builder/builder.csproj
 | |
| @@ -43,26 +43,28 @@
 | |
|    <ItemGroup>
 | |
|      <Compile Include="ABuilder.cs" />
 | |
|      <Compile Include="AMod.cs" />
 | |
|      <Compile Include="Build.cs" />
 | |
|      <Compile Include="Config.cs" />
 | |
|      <Compile Include="CoreMod.cs" />
 | |
|      <Compile Include="LinuxBuilder.cs" />
 | |
|      <Compile Include="Main.cs" />
 | |
| +    <Compile Include="MacBuilder.cs" />
 | |
|      <Compile Include="ModCstrike.cs" />
 | |
|      <Compile Include="ModDoD.cs" />
 | |
|      <Compile Include="ModEsf.cs" />
 | |
|      <Compile Include="ModNs.cs" />
 | |
|      <Compile Include="ModTFC.cs" />
 | |
|      <Compile Include="ModTs.cs" />
 | |
|      <Compile Include="Properties\AssemblyInfo.cs" />
 | |
|      <Compile Include="Win32Builder.cs" />
 | |
| +    <Compile Include="Util.cs" />
 | |
|    </ItemGroup>
 | |
|    <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
 | |
|    <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
 | |
|         Other similar extension points exist, see Microsoft.Common.targets.
 | |
|    <Target Name="BeforeBuild">
 | |
|    </Target>
 | |
|    <Target Name="AfterBuild">
 | |
|    </Target>
 | |
|    -->
 | |
| -</Project>
 | |
| \ No newline at end of file
 | |
| +</Project>
 | |
| diff --git a/installer/builder/builder.exe b/installer/builder/builder.exe
 | |
| index 1dc67f9a7586e5ebd936faf88868984f37439f25..f9a44acd1c8e5fe1a5da4fc8feae9f05af6a1193
 | |
| GIT binary patch
 | |
| literal 19968
 | |
| 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
 | |
| FzX7h9Y19A!
 | |
| 
 | |
| diff --git a/installer/builder/mac.info b/installer/builder/mac.info
 | |
| new file mode 100644
 | |
| --- /dev/null
 | |
| +++ b/installer/builder/mac.info
 | |
| @@ -0,0 +1,6 @@
 | |
| +compress = /usr/bin/zip
 | |
| +source = /Users/Scott/Code/hl/amxmodx-central
 | |
| +makeopts = 
 | |
| +output = /Users/Scott/Code/hl/amxmodx-bin
 | |
| +devenv = /usr/bin/make
 | |
| +release = amxmodx-1.8.2
 | |
| diff --git a/plugins/amxxpc b/plugins/amxxpc
 | |
| index 58ac0e05fb44e4d53a5f48da59912dda2021e3ac..5f060f06c09d685b7bbbb49046e556191cfa3d1c
 | |
| GIT binary patch
 | |
| literal 150762
 | |
| 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
 | |
| Ee>7`PtpET3
 | |
| 
 | |
| diff --git a/plugins/amxxpc.exe b/plugins/amxxpc.exe
 | |
| index 51f9ed04ed81aa3f988f6af481b3b7d2eec65ab3..760fe2d0e31c39b979c33bdebd6cbc89ac31e17e
 | |
| GIT binary patch
 | |
| literal 101376
 | |
| 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
 | |
| aasRk~+&}Ig_mBI>{p0>||G59l?*9Ws9lLD+
 | |
| 
 | |
| diff --git a/plugins/amxxpc32.dll b/plugins/amxxpc32.dll
 | |
| index 7dd0a44f0b2aad822f896eac29031e2ede6e32a9..969e69d08011f50cd04b6ecc9993faee55283086
 | |
| GIT binary patch
 | |
| literal 261120
 | |
| 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ºIb5k#?{{;$f))wxqn2fa!W0_TDx+)
 | |
| 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
 | |
| DdclS6
 | |
| 
 | |
| diff --git a/plugins/amxxpc32.dylib b/plugins/amxxpc32.dylib
 | |
| new file mode 100644
 | |
| index 0000000000000000000000000000000000000000..d8281c57cb9e478bef0651fa5ff8d7026df0c2a6
 | |
| GIT binary patch
 | |
| literal 173104
 | |
| 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⋙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
 | |
| N!JW}}_GVDv^Pej-a(Dm$
 | |
| 
 | |
| diff --git a/plugins/amxxpc32.so b/plugins/amxxpc32.so
 | |
| index 844212940d5cfac2ed2b59a1370261f8b4fe8046..c6aa6b74db6f865995b363f9675ec4e645d51d44
 | |
| GIT binary patch
 | |
| literal 207368
 | |
| zc$}o&4}8t#|M>rNwu6=FEDgib)TyTC&lp)o!>}?@Ml17w8#4dT{2iuqhSM>TRg_9m
 | |
| zc}FFr`9C&)Q~8&K3Q=c`lDwCYeXr|!KF*9!zwht!yZu&Y_t*9MbG@$XdR_lsuk%_>
 | |
| z@08TpYPDMYKY{8W9cnhqVu{f!ehe_{V=NICn<diHz*66GV{iFM+Ztd#RdgW4BHIfC
 | |
| zDn1dl6}>E$s%+OWhN|`c&q)>5AHChCK2M!>rdj^w$G^R!`aI3LC)KB>`oybGH+`)7
 | |
| z+|NGs*{6g0M5|9*!VdMRS1I1k_@MecUTOVZx*XJ}k@_@MpH}MANqv$k?bBR++N)0w
 | |
| z^?9t)`mXqdMar=a;kaA!)B^9Vv@RSIZ`rrI`Xs1N1NC`8ePY$8vHCQz{Qvu@{=e9#
 | |
| zhWdo5Pw2mFyR*`A?SI*R58jP;{L4Od)aO2yANrT=wJ<_`?CKL$X<Iw>X~=T0`aG&W
 | |
| zj}Welt<@)z<u3Rzsw!z|`7h`6|LmJ723mrQx@}1Kc4OKL0feO_b1K5Y#sORX;Tm#a
 | |
| zp+77o5mXVjOL{88A(H29{;-sO#1VhEmgOpqQP&mS4&EZXk8l>@0>W>Sry*7euV(vD
 | |
| zwhtschHx*!I|+ZO!WXint=Clfzk}_q*!~3ZcO?7*+Z}{E6P`eL1>sV{I|xUUzUh)x
 | |
| z({6NlD%-EIeJ|%bO87ChKg#~P1pU{qrn-JlvHxNA4`csl+5cO%-^KQ-Y|mqRYr@YE
 | |
| zev+{6mvlS$;g;}kgqslG48q^EmvAxXJ4JlqY!4y4mGDy>f06w=6MmfXnMs(cY59cX
 | |
| zml5`tf0pIu{MtEwHsSjSPbGYv{r@C<neZ=!7X;j>k0F*n%3E=KZ_?9{^oIvXcrM3(
 | |
| z$adXd_}foS)qWbWe`n(Vp8fZ-|0{&o6JDtU;{#0F*7fo1E!Ri)$rtJbShfVJaNz9~
 | |
| zed{`l^tmtIQvbgt{CObdM>vM<b8gA+E7qIKqZ9G_+uPfE2&@%YvHyOy_h$P#!b=Hn
 | |
| zA>4v+GvdFO@aO*aO#aWXe=y<xmYdUCO4#4t{e7PPiO}m=_P2NIE!$HnE$i);{{4rH
 | |
| z7&Ws0IOo8z&i?%^{fCVl=Ct(BP^e9VCl1t$12czBPPg=bVtoIn(}xTj=S&~lF>~O!
 | |
| zap~hM>0`%^8f(cIo1ShN=NvnD#AwTifti`32Ak06NtSV=#||6m%+OIeCyh?;Kd8Un
 | |
| z*k7G)taDVRI+=<~MXz_yOdn~E8tBxF9Xxcb2`Vy2jU4j4ihA_m{zRuXjMUL*j2f+u
 | |
| z${3fPKHQSwOwY`;j7T3bF5Rh9G%(GQF*tM7IFmBxD7C|cvBR9{mW<I^&T;1VV2MX3
 | |
| zI(@{5QRCCqnFbHcbPgL~j>#|!Dk761wTnJue-*n<%h+^tz`((S)5ndoIMYXr9yxG?
 | |
| zIx1~cmMXsfV+T&q2dKpRbFQ*GYC`(h{uItgozKyuCRoO2+{n}5f#cG3a{52sy}wCc
 | |
| z#*lQK%5j4Sj?A!RWMpQI8*0f&AC+M?j2<=4I8GOU33VJbV)U@g^cKx6gZ)<_O<f@=
 | |
| z@3bscg3h73VET_5IXJx{praU_K6qHhu)!7U#{J8>;pvn54^~Ug^qW?trDvu)O@XO@
 | |
| zEt$gxv9ZaxQB9iZ@Cd!sN-w2l>c!@Iaj>kEDyE{GsB2w%+Cb+(wQkV3aZ(}Gs*!1y
 | |
| zE=iAf=-9uxip{?i-K0gua`PK&E0$VV{{1Jw%!l<qHZ|f|D?)*4E?P~ECNf(Nyy>5S
 | |
| ze+dV$)>>hpichqvm;x)sB)_YebI5ubP4pJ4Wk7(84Z1ys3>&5<6hW3{^to1bR2JI@
 | |
| zsL!~2hTUdSv470Enr8p1mJNjOG~p_iV#0Tsu+8!nVTnJmQv6m+54Kq<wg*&f51MT;
 | |
| zGo%o#gZJQr*aTZ)JM4truotFc8fM}+%*I^I!&h(#et@fRBW}mNxF5g4xEIAK_yKOh
 | |
| zuf5`LSa*&XJePc98yth<F$eQ;5q6m;PQZin#nZTYfp`F~=8H34AwBr(tKy{B#Fcmk
 | |
| zuj9Q7#rqeDkKpTAfUhhTYrQG1!EJaM&%R9<ZA+*h7><$H0^49u?2p570=n=ed;>qg
 | |
| zHMkYOz$5rQp2xrNI@Wkc3`GYv!#GUDp4bP+;$(ao-@*@Z9d5^(OT~*AwM^`Q@8jd|
 | |
| zQ6Bgn{_GFG&;B2Xhwumd74KaxHpW;Sg_Ch6zJe?9Pb|kl{}JE8BK#JYe<<$2^Vn?#
 | |
| z?Hgah)%Xow#z8B^*Kjjl!rMP0KlmJu!1=fdzsDy&7H8pF{0XBz5ud?#vFa-72R@4)
 | |
| zJcWs$Qa|tw`~nkJQ*W{Q8rlV>;v`&+7qIqPaWqcC9r*NTVm^M2BiC`A@hm>{xtNU8
 | |
| zaVbtJ5Z}b}>%}e`I1e7gtJq>A^%D<clTE~rNANl}-%P#7Wmt$8u;v!AFXrM~m{2Tc
 | |
| z;Z!WgMLS3zev13B;ZE8c&fg^-z`J%6FTRVXvF#qp6(``RFT~(|qWd82{|NOM2jO&l
 | |
| z5f|WF_#fPkU*Zuwg}>wN--@-c0XD)%@M-Le88`-~<LmeyevIpJ7oNuRSccZ4q8%T?
 | |
| zme>v-$7gUXPQ{rxAK%6exC6h!@9-B4_)e^WwXq>K!>-sH`{VOC3G?x7T#jpSJARKo
 | |
| z`~$Dy?Z?FXu^Gl<0`|m_I0;|CJY0;QV-bFZ*Zs$R&-KM~*y0EAQ5=pF(1nN5hqZsC
 | |
| zzF{;zf*CjlJ@^v-h%?WKUUZ%#zv%i+oQ?bN05-lz{rXevg?;gxOXAYY;?}FI$KNpI
 | |
| z8ub&$;(R=g|NJ9{Ul$+5`Q_9P3{~@QbA9o7d>!}T39I-gwhIsk;T!lR9>QPoFB}pm
 | |
| zzGD*$a8DI+Y*jI`n%EQ*F$sI&7@UFk1c?vf<M=$jfEl-m*KqLd;zB%zLDj_?m>w(^
 | |
| z<A*iG&oCfFT!lqwy;Hmm!>}O^!^!Buh4=xk!yR}OOYm>3R#U8n_hB?XhP^Qr-^P`A
 | |
| z2!F&g_!|b?CDz3VY>P?Q3kTo}=m_Py)e^_y+xP*l!h?7MTh|slp$A{WS#`v>@SZSn
 | |
| z1D2z$u6QTLU~e3YFX1w*Q%~%V<8c*!hTHKh-cw&3jni;3zKi?tJNy%`V}o$92d3lO
 | |
| zcT+#{JG_9;G$3C%3ol^tJzRfm6d|_4S=gYV*d70IP_OSNU0C%&@{30riJv?qKKrmZ
 | |
| z5?e%xjhhh0=W#54fL)q$KJ1I5aRSc8d|ZmF(b-IVFq(AX0Gy3J{2l*`t(uGP<Mb9{
 | |
| z9v;E>VyGXu5qIEzbhH$kVOt!JGx2rYfd}zB{2l*`SMY;Y)c;4g&e#L@;y+lWwb%sX
 | |
| zaTq$$g$r>h{s;e#6<0heUc?S<#55d^S#8A}^x^`11K-7uumB733p|9!@ihL57x4-P
 | |
| zv=eW~nphVbVk3;kRv3o~n1oN^GuRgg<MTKMC*pL>MK6AWU*Pxn3;u=H$7sLU922oO
 | |
| zj=_99f%bT@KHi6ouq}4R6da7t<3yZ}^Kl`r$E{e5U*NB3YtMDTd$12qMGwA$@8Cyx
 | |
| z9514!gBXH!@B!?Iy>SqZ#@F$EEWmQC+L7|bRd^OJ;av&h{TPGoup>T+LvSp5@S#pz
 | |
| zXY7T2a3BuB#dsF0b{0pX7hlH}xEi<MUObGypuG$A2%F)PI11<Cr}#Bqz|ch69d^Uv
 | |
| z_#(cF@8B9dgg@d%{0HxRoOEI|w!;KW!e_8ArsD`4ixV&hXQCJL@eN##JMmjQi{~-;
 | |
| z3EBhRgPm|Fj>QQ$6<zoWzJc%I8r+Rv;vp=>I$dcm*a`>Ya{L50U?~PB5f9#t4`El#
 | |
| z#K|}vbJ2@$;&NP#Td^1q<8l1ipN?*v2fx6x_zyOCl6H#Su`iCni8u=j@JDRjo%(|Z
 | |
| z@g&~agYv*;*b6_x-FN`M!_(-)^H}vM>JQ$F58})CA#TIHnDn&xJdVPaJ*g+j;!*th
 | |
| zS+Ul0v@?vt)|iC7aT2<44$kVsb;K&Elv97M2lmE!_#a%2j}IXIxB!>o2Hc9@;BmZy
 | |
| z)dq^4@kyMCbMR%{hPJ_6|1@ztzJ_mN{dCF;Tj5X~hkxS9q2j4wqB~RUH$r@SH1%~1
 | |
| z`NtX9VXW8#`{4-8MlZgO%W*62!y|YCPvdWR39n$4apGOr5S!v;EWn@9o+U2E5AkDM
 | |
| zk2~-e`~#!Li(PRzzKAPuHEzbQ@gEGDz;(k1ur;>BoQYyCzKpM75uU|ztTBo9i(&Wx
 | |
| zw#R`u8W-a!oIII!IYsP<J#aq0hD&fc7ULca$rkHkL!63l;CuK9J~CD8hSPBo{(^sF
 | |
| z#5CGFK7&K?Bwod;)5Yp|A3lyla12hx7qA$=#|v0DM|9wexEK%Mc`V2FGsMm~1!v%A
 | |
| zxB<_h?FH&7Hpd}20^i0J_&M&yBlrtOx~QKx3m4)$_&wg{7CYfAT!3%lQv3{eVZB_=
 | |
| zi;0+w!*Mn)!jJI~p2Bl@3GFk*doc!Mu{RFFA-Ee);4gR{|H3<G(Y~<_K8^3-D%^^H
 | |
| zV8CpyBX+~_xDZ$187#*MFN$+;9e#<eykburi?i@`T#Ebg44%ga=ZH_?YCMVIdF+R+
 | |
| z@d@mW88{ttaUQ;n8}Kmxj#cN19WV(8;26xsw{Q&}#ow^%OJXRt!EQJjv+;FYitDiu
 | |
| zzd|3DVa<7BU2KW%F%5@dE-uEExEue#t9bi-&V$Xc4L*Y};H$U-_u(<LzARS5_SgeE
 | |
| zEZ}<LXq=3%;Cr|eOEEZ~dV^8e4*TE~bmIbi3%|p281af2he_B62jft5;~ab$m*D%j
 | |
| z5;tKX9>nwbCkDSty~2Aj5@XPf3-De16btcd`~m;Mpx4AOd;nvx1NOjvI02{PEPNYR
 | |
| z;#YV9?F+>w*bOsr9)5;L@FbqWE4cA>uE!hVNK9WWevcQi`kP`cY=G^tFHXW&@KgK}
 | |
| zORx-WZ_z%nB|e5v;WIc0v+z^=95>@${1LC?-EUJ*u@6qhMOc78V*7W*g}4$|V*zf*
 | |
| zy?79h;#vG1?eEfl@KNl7gE0$d;XGV{2e1Uou>DeT08YoNXk8}WhM`ywU&D2H0MB8y
 | |
| z_h@I>78CI~yx`yOeX$KDVo!V)GjJ|0!2<jW594t>g^fQDTVN;bhWYq9F2PT+0Kdnd
 | |
| z@CsI6PJS>Nhu{gc|3~!T0$h&gvD$}X2;PTjI2qUAbv(6F^x>T!iD7sTK7fre2HW85
 | |
| zkHvSf6dj+iKaN5dzKR`Ji7A+YSvVKhVCbi$ceVH+_C?zou{rj@wOE9Q@C=q=)wSZ2
 | |
| zSnV@$DSm<*vFkc<2ELB(;;(oS%Q5(Ku>n4f{csfK;Cy@+*I+SzgFoY67*rtE#fPvB
 | |
| zCShN^Z$0f14{Z|nZx&DEZ+Hc(ZV_u@Lu`z(*a@G)zBmlCa0ce#A}q$+3#sS$DmLE6
 | |
| zdK`mqVc>T0Gu({laZr&s3*RlKedB+3(2jPC_4kPPV^i#lrTfUwmt04D8^8KW{QYaO
 | |
| z%YKf>?YIlS!yoY~1|1Ni@o7xKE(gi~A@LbZ!-o%xdya_Jzok85kE7zX@5F#(wEq*V
 | |
| z$By4q?&!t!KZpnLB>sZuvHOqWK-_pzJcT_^i7W6BwmvNm#(j7aKmSP_epXzFSAV7+
 | |
| z{6ag$yM5xB-)OHF$QMq>m00Z(*9AwEiGTkkj=e0th~MCO4ES5Djd3^#hvOgE@`{*>
 | |
| znK%ZgVj+Ho7tnfDY=qI+0|#Ob&c{`_4Zp|V@h|LrjrxN#@l{-hzhKpW#Jli5Y=UjD
 | |
| z3--kRn1gfhBV3QgcnHs8mFr?1d;~jSckGL=;W{kBL-+%h;x!B^7elcnw#U9W44vr0
 | |
| zSMW33g}>lMEXNv_0OJD~jh*o+%)l`?6X)amxEeR(5j>6Ov8q+9iFacw?10@c1IOYt
 | |
| z^x*rr8aLw+JcVUw4G?Q%Lu`fZu{RFH@%RGf;rqB6H{%gJjpwmypm--ffYI0)pT@p8
 | |
| z9%taI_zrHx<5-5ZZJY<Au`@n}88`-K;s>|}x8QO73-75Sw!uC)9LJ*z-^Q(Y9LunF
 | |
| zRjvzm!tOW<XX5*~4!7YCSb~3`y_)zSHpkAGf#Y!oF2Oap1^41N_%l`w5+kq$w!<f|
 | |
| z7iQoXd=IzbA^ZV<$17;Njq<}*_#}?R$@m6-fIIOZ{(vP|^>*qFj==@^0UpQyqNTc6
 | |
| z9UEW_cEw(piMjX^zJc%ID%^u-@prt6RfB2o7=vvv5qn}k9EMZy4P1sF<67K`NAXAe
 | |
| z3#~P%4;X`wVQ-v>Gx1&g2oK{gSmzGn#TM8Rdtn-8<19Rcx7kS#K8Hgv3s>WB7#Jen
 | |
| zg()}zU&MvD6xZM({0T2%?487edH5cFhCA>m)~`vu!hSdoXW#;S3s>M5_%mL@DtC$X
 | |
| zuqC#~uGj<9aRO%JQv3ur;D51BsMs9aVOM+x2jU2vj-j=v54a0`s0Ki3kJteZVB<Q}
 | |
| zBW#Ub@LAl1-{DVKj`xRA4mc5~q6_EaI^2U_<4L@uF4q?y!~{&newc>ia0<SF3vdy>
 | |
| zjql@myoi^vT0P1c@5QFr3KOv#rr;nPgV{I_-@>)H8N=(-t}zLF<3xM~-^1_1xn6gR
 | |
| z+p$Fh+8Jiy6#N`F<7K>#kKQB3V>Z5kJ8>W079rZP8}`Kc_!=I@V;I&@Y=Ega2;au{
 | |
| z@C^Qn7qAR%_YxoW!1)ewFV?+Z9EPnQq+VjRNZJuTj;WZ2$1tvu_ym58#b|j*ybIgl
 | |
| z$G91HVCuu-s3@^k6Y+Iij&qudGn$FpqQzZ!3d=CRx%e)Ail5^l{2edht1UPVm*WXM
 | |
| zjeleH7|IzR#Fy|Jw6qk1(TVeM6Yj&uT2VeY3m4;m@Fy(6yC0!l#F8KU6Q@5aUd0F6
 | |
| zh&i|dAB+><XiIy*&~~ErF|IS##e1<Cw#JUw8wcQ6oQ*567?0tPcnxdDi!s=vgZLbd
 | |
| z$JzJ}uE1S*3@_m|?AMWciC%mMKgaF(JyuDeT(B-iU=%)v&tWFMh%e*oxD?mp4s70u
 | |
| zc7{)P7T0zmzg;;FKT4v$VOBTs1)PnGumJbsQTz$7V9h7RdiWs5VJGa4&tWDy@nw7;
 | |
| zzrsK9QV-haQ{n*(e47096fa_VviNf^@h_~=TWo|sJVX3=@HsKM5A_#&rHX^lg|Fay
 | |
| z_!;iNZ?RQB@`pR|XRO+vc8TxcI^2ri;z=yQi+B}n1IRCiVl;k@KjD)D#ax^?i1gw`
 | |
| z3>_@C!)@3*O?)0FVJ<Gg^|%jz#ItBg7i;1D*b-mH57C=Jdq&3)F$NQ`&oJs6UdR5=
 | |
| zixY4vzJPOaA%2cqa0l+gLwF2tA1=1VC-FJVz!B)gDfj};$IoyhZo`S0v~T<Yf5KiP
 | |
| z#Fy}E>@ZUN2v_47EXC+iVjFCaU2qT%8zbI5R&0ikU>AH22jWvs@{jqr*1tYW^x*LE
 | |
| z;%q#OzvA!MeFE15f5bD`V4}DI%dyQQF&;bNw8>m|EX51>U;p+g;wij{wrtUk4otxA
 | |
| z*dLuZ7vIHC@fe=PCQ~^c1Ez_0U?Y4SpTwTH9=Bi-J}_N;7RO)?=HgrEp2zjUIXDmV
 | |
| zaUm|oCAbWi<4RnGYq0<~VIdadZrq3a@h~366L=EOpbyXC1-yip@fup@bDc2=gE0g{
 | |
| zF$}{o0v#BMQP>P)ur<bEJSJcwCSeau#uQA&0hoqEF%w6l6DMLe=AavA;~boa`M3}l
 | |
| z;}Tqk%W);H!nIg{o3PNI?tIdXqtS^IF&lHxjk9qM&cl3Mh>LLvF2m)x5?A3`EWk}z
 | |
| zh{d=Y_u+m#j7RYVp2Rcg!*h56FX3gphL%^Tw-|)M7=ob~hT#~24vfSoY=$w|8sjh?
 | |
| z6EG2zum>h%3Z~)!Ov9m=iKEep6EPce(2cWk4$i}TT!@Qt2`<CsxDr?4S}ed#Sct{A
 | |
| z8~5RUJd8*21fIk*=)-e(0WaZYyoQ!nx&9c0!5D&}7>3~(fewtsC~Sr?=*HPN2j^iv
 | |
| zF2u#S1ef7*T#2i&5Q}j)?!*0f7?0u!Jc(z}hv)DDUc$?G4K1%xo*0C|7=k(I#@RRr
 | |
| z=V3lB#KpJ-m*H|;iK}oe7T_i<#Q67Vf0&3#*aMR>1ygYVrr}V`#L?))iI|N!=*HPN
 | |
| z2j^ivF2u#S1ef7*T#2i2Ef(M=EW~2mjr(vv9>$}10#D)@^x-+YfS2$xUPH?V)E5lG
 | |
| zU<|=f48w4YKnF%*6gI;cY>jakj|rHFN!SCEF$Gg`0H)zk%*4^?#EF=VIq1gOI0xrp
 | |
| zJ}$(?xCEEsa$Je4a4i<#CM?8a+>QJ2B%VPZp2G`x2`}R{v@GZPVh{#n2!>)9hGPUe
 | |
| zFcPD%8OC61jKg?Lz(h>K9+-?Nn2H1N+zRrE*U+|-{9q`CqXVNb2IDXRlQ0=mF%2`(
 | |
| ziP`AJIhc=&aT%_}wYUk3aUUMW6L<#C;U&C=wvWg^hGIB6FbZQZ4ihj5lQ9+3FcY1a
 | |
| zjc%NS`M4OD;YwVKo3I%7;bA<1XYd?e!fR;znEYcXhNA<cFb3l=0h2HpQ!x!Q(TUmU
 | |
| z#yOaei*XsQ#I?8yi*X+w#uIo3&*3G!hPF@0KZasBIxq@jFb)$i36n7u(=ZdAn2m0n
 | |
| zgZa1^m*GlWi<__*_u*kYfoJd>Uczf=TSfjc6vNShQ5b`9n1D%`jH#H0ndro9bmJV%
 | |
| z$Hlk|SK?aSgvGcI590|ugXi!PUPIfb<R3#Z932>iF&Kvln1sogifNdMPRvF(&cS?K
 | |
| zjLUE(uEkAQjQj8~p1?DB4lm&~w5=xp7>eQOz$lEtI84AKOvY49!%TEyHo9>R=Hp^q
 | |
| zhAVL`Zo*>RhllY5p22f?39q4T4f)4V3`Yk>VGPD$0w!THreYdqq7$>xjdL&`7vnNq
 | |
| ziED8a7UMoVj3@96p2JIc4Q*@5KZasBIxq@jFb)$i36n7u(=ZdAn2k9FlmpJedAJZ4
 | |
| z<1$>1t8guD!b04Q`|vOx#gljj&*25UjMvb%UJSwz48?Gaz(|b37;KI4n1D&x15+>+
 | |
| z({Lz`Mki)t4$j6on2!r_2`<BxxC#q!6Bgrc+>eLx1fE16p2JIc8TEe{-jpi_V+e*}
 | |
| zI65#An_&#bVLT>c5+-8`4!|_b#L+krv(b&SaUSO5VqAjDaV4(B0xZO0+=u(|D4xJG
 | |
| z=)((m39q4LBlQ%6F%-iv0v#BI&9F7bVFD&%4@|~X9DqYH6P-8_bI^@*a2_ti#kdTY
 | |
| z<0@Q>o3Idf<32o$NAV<{!E<;4FXJ_|ZK7N;1Vb?#BQO%9Fa}#=JSJcg_P`WO#WWm>
 | |
| zqtS`kn1i!%4(8)RT!PDRC9c8(+=Rur8~5X3Jb@?Chv)DTUPjAi$`yk#1j8^K9T<tt
 | |
| zFb3l=9uqMMlQ9JcU>auPXq<@I=*HPN5A$&`F2Uuv64zn@7Gg2(!~J*^Pv9B!;RU>e
 | |
| z*U++sdV>Qn4KEc^Pq$I77>@~<h)LK3lQ9KTaR8>_P|U>9=){SbjXCJX**FL1VLmRz
 | |
| z#kd5Q;c{Gwt8gtA;3h1@V%&}Ua6cZ#qj&;O;u-YeIlO?E@G@RQ%XZoW24OIUU?_%R
 | |
| zI7XlYBQXk_VGOp$IE=>xOvEJYfytPHsW<@Ba42TtXxur^VhKpFSiW2+MlZq@Vtbrg
 | |
| zDsK5hoP1S`xYuf|*Is-Wf5DlZ#XFP4RRhHAf#P+nF-WY1?XV9{!9}<QXAc(_;&Lp&
 | |
| z-FOszcp0l_iVd*MNb&G^F*R3w)gvy&SC)$TO#+NnV#LhH#20WW?#J4l#rL|3<-Npe
 | |
| zy~X+|;(h(ZrZ@>*_-ubM4M$?NfnrUphi|8gT{6VpH~@z~FRmCaK0HdiZ35|?D6Yl7
 | |
| zapGigcDDG=G%<d<_~;C=6F!ag=d1b?YOx$xEM7e&#-A34q6fF&G5j0DeiC#3E8f@J
 | |
| zYW%sM*wrKUL+3#;_K5)FqMl;?WU+CEXv<geHLzHoz}$smj}OH~IA)vp>shh!IWhiE
 | |
| zu}VX$#1ktn=pcTIEqaUh_YqqS6rUU^&YC6eo-HOV75hd77>`AZjpN0f4&nhk+);e1
 | |
| zleqH<@pO_n{~7UpJTXwLIY>-N7r(=!BgK9b#OR6Q9h1bo$($F*P7$Z(;0*C29Hq<m
 | |
| zDb<g@CVsq7+`UK~{+9U4GO=X2m{BO6+$P$0h|P|RUB4F(o)K%D6+gc$-g`xS9xYeJ
 | |
| zm+<?4L|3rY_-DA7a<}-Od&Hj}5<{DdU$+t)J}S29DE3ScCwCUV?Iu3nN1QoMEXIqN
 | |
| zo+YmHiq#j0&JV>RZ1K6+YQ1>=H}P6%fU!?4aS^`RSUiJobP#{T@4AW$lf<P1#a}Ta
 | |
| zUHm<h<41`1jumUXqRKBxoeu+E#n;4z_yso6?L;{O3m+G|c}44o;v-n=t^lKBuvjHc
 | |
| zT!epPO@03E`g?To{9^IG_rzWOt;U7}#6yF{%jsg9A>#C5V#gdYWQN%1CGp_vV!<5&
 | |
| z#@E8dAMY1me?T1299xKobh?_TdhnXK`(3fsQt`|(aqN5I5)54~4#Lj=5l6;YjUUtw
 | |
| zFs64A`z4A&N#b;j*X=FJVi}L?Fl>?dA@0Y>0x@HQ=!>u#2Q?ID;VJwb`*ak4ND#~L
 | |
| zweI4lxaK)=Pny_yl=w8(8!bM9EwjWICWw=!id#J5+Ly&wOT>sq0mi^6@ji@cEGA>y
 | |
| zrea@g-b{QN>qLu>;ISC-)t2JGR^p{c#7A3;Kcl6Mn2Sr=ig$J5c>EUcP9hz+1hbzM
 | |
| zXX3{=t~=WYiifaUx;PT|Wr%w+#kwQJX&5k4+%ZNxj~yq7J*SXf+%;A7>3Y;k&4*qW
 | |
| zzt#0XS!aQGA1=}9RbI^$&x{b0#){$k_(#<^uuQD|zPNq4czUJSMb|Io&IB>HyBLur
 | |
| z?wKa`*W;D)Ma-Kd7EBde==0s7#)Wsqwguvt_2P%R-&PJ8AugLBMo$(uOclSuuuJ0L
 | |
| z2Lp_ITZ^~Fij8nZoH(b4_|NlV(@e4ZRPjUn=WUgq#%dl|H^BH|eeqR?c-s=Sy^ZQ8
 | |
| zu^~3bBuv3H9F5sH8}o4quEYW?#{Kv+Uc_qeh<9TnY>Dl$8)l*xU&E#N32ww)*f-v4
 | |
| z9EV<9h9~gh4q`@Ean6(C^WDX>m^VJa_#H0R^`eWKhb$Gpd{6B5zL<l1vFiuo4E#*j
 | |
| zPvzv1;uxpcJ4+nDRNSEJi;h1|tg7dmiE7-@=~T|B7hnv1N~}FxtTsZ-#0!`*Qgl1T
 | |
| zWmt^AW{VH&^E{~TH?gMPu56*h_0{}-T!1lChdZm|O2xjvi+jGb8Yk)bgECj|7oo~g
 | |
| z8>`xdPQUV!PQNngDe<{6Vne4GkB6s<zvFrxPgm97;(!(6bbJ?gpbx9B6c=l|sr~~y
 | |
| zd?XIW*Kr5_jGI3e2Yez9S|z@W%RUtk<L=dB=o&Er({Ur-vsQfbGw~=+SSS95eLojx
 | |
| z<C_~q+eYyd{2m|KB(B7dHj8a^c`LseCmzw|P)ommA@=-Od=0N+%TL6eSbLQihkszo
 | |
| zr{XkBSuJ|j;9Bt;9Q2v^<~niR=VHGN;t!a*Q9Qj#threnh_mnz{*B-0dZrv%U%Wg)
 | |
| ze0Gv}+Z1ugH1RupZMrx~m&-${-&!ZG#*oj&HCX}1M7_Sb>R&z=GdGFV^tchN|2yOX
 | |
| z#tAw<4K0?rdVZt)9zPx>E|?(p(d|cBx0`tVSut{pIzCd}=V<Rz<AU}c)sNsh-5y)2
 | |
| z@%4AHQ;O9X|C~5g-w!I|o)iDc5vS<=TdVs{eLt!^pC%Uj#6>zi%3Tx0*;B-~v1X3=
 | |
| z25!T(?bPv)t9T;=jKTW3(7md?b`$&QcCK{m@jF~??<9V#t*z!Ks(-fLr`D_fSNjG=
 | |
| z>-qVe>ON?UI2-@KdSk`papIGD9v`BPn;|}r@8J*F@CET%oR3-Wi%EL^u5BTn>MZ7V
 | |
| z5es#HUPGmOxw4+ca!%L32h==dyto3->HhsOHQ$RA6CPG}RQ-qU$Ai^8JyTquZLh|Q
 | |
| zsp2)=ZtJLeuj`#%wcDwpTZf-e^;g@-V!3~+cuI%E)Oew<TfFKg@YF<c-DL3_wchGb
 | |
| z_Z^eOpC^k6)5NtnWx5!x+fSUT?^DH$>EezV;%$07xnIrqwAIyo0-I@@s(u)gwawK0
 | |
| zMH{2$$vVD=RXZ&VuvBfQ@~eGP&6l?+d#HA&tX5a`t6H@^Osm%S@|<;@3-UdyAN8Km
 | |
| zzaG14wd^Ufl&{hM|LpRm=9#Wp3f50U^<v4%a`m%R{~xV~>dhtlO*mAC^~#b$6|_|P
 | |
| zQRnFCI%o6g<vuftcB`qIcfmEaQ|>`$72kHXkkV&Q(Y%Tuy}xgc+IdFN8){#5XwJrP
 | |
| z)u&jpT6-5<lH=-oU8=TQJT`}Kj9OD#-BoDwxFU2)4|<K>klce=B|BaENNY-;zD1t0
 | |
| zyiE`K)8mUW@wbuqy{=##ZK1Q4cfn;jLG?VdPMx6q;IryzZ@9ys#OOWI2cru;HEe-_
 | |
| zmgqg6T0M>gSfURuP1dN@DO$C9-*K~g|8ZG;__(Y-DyvVh`XsB*$Z8*}gHFimkP~Kg
 | |
| zsHQN(QzOi*&+yc$XEtOk4L>0VL@3u=b&=F^$T5-rW9IFs*pznKY>MHaOtr;R%c4R{
 | |
| zZR%H1-a1`A_H{k1d5PAXD{Y-YIaeNa26}cE<s}B_-)4JJX^nZ6e|p6pc&2wxyZbk_
 | |
| zEiZ1i=NoUeMqh5xC(P?r?mAs9_P4z5Hcye=y;H4HMLWTD#p)dFx)R{*>ADi=DRZ`W
 | |
| zU9mZ%U013&8@jGko#zbkK4aUW{|D)L-Gl6(Y_}G9V>`RH+3cU}Qj2%W;{V6BvA;RH
 | |
| zdhc}Y4DwFWQRamPdY@HWioDMTTeqv7y^}(;DjZ5UjBvPXTZCC<!YVJ}0a>4Uj`r!-
 | |
| zzi(0WaTcUt{PjzfhU=UocaJB*5#~vDgnE)3Az8P16C80%Q&r{gCOJZ*52_6jkH@Ml
 | |
| zcK7$Xx+XY6yqS)$yzE>{-UOS+=?M4sx8)wU&;3Ggt&@9jS{H9ieR%Zoyx`CDdFJJ<
 | |
| zeL$-Y3-9dhq-~w3(rEp)qjkTxmPJ+1Z6^afwmVfJc<aO-n|{P&BJifFxT`;I|Kxy9
 | |
| zgV*T@aqSF<bvi<)J>#vW5*MCZ=)H4V*F+s(beS%#@JO{B(#e0m1V{V^-R3*1ofA|X
 | |
| zHm}ZPxI^VP$gA_5<OueZ_%2;9FIOf1$n>w&$_Q7n!xWX;H$lhXz1`a^ch9s@dF{(L
 | |
| z=(^%<<vLl-^|#g8SGB`<*JZ0S#&tO$&-sAG8R@zl=!|e(wmHLGm#fTk+Fh5cI;(kG
 | |
| zZ3r;Ob*TKW`otb^*7Y`VZ4Zh);LWml8+Ze~k+RSt>lbgG=<}XTM?~&H`&_HagSW9M
 | |
| z(>;0NADK(2&Zkn>x_zfWmFAm@v7W2Q=I!n9%6gTHM3vu&@&Iogb;`Zd_jpW9B`Z~~
 | |
| zDJbeg@1EY#skvqLxj*RSCZ^<dE{{I0GHbH!inY3qm&abTyEp3AQK%Y*%KFnP>&{Lp
 | |
| z+a~`pI_nRrtUK$eoX>LxyC&JJCiCi0SKNFZLx=yZu@{}mdO5Fy)f_!TEd^981y(HC
 | |
| zDwe8LELE*os>YH=74*fdmAWO+Ac}6ze=pCMszrE;R7YE&tBrR`Yfq>nx7<12J1%us
 | |
| z$JVA!O-aZtoAz*YS>AYyw_}Rewn`O6ZEw#6RgX5AzIkF|?B!`T&n{0{=h$(n(~p&P
 | |
| zY!%|X&)YFE`e4q)2#fQsivHbIIG}@Gl~oqo%aUEkYjapH(?GZC-_M$Q=;>uKTS_l@
 | |
| zb+OlK)5DQ<dugaTe{2tjv#MU1_1}5A{EKeMk7s+&8K+g6rhAGCEUE|fZIr>ITAw1b
 | |
| z{|wz?bIc~su|B0sda4E&lzV(yBUPEyIyEc>mEP^Gsd~aX-X|QM-S_LbVvDlQ&Df(4
 | |
| z^gQ9{Q&c&<@0|QLz|wYrs$AoPT)vQ{I#{Gn<j?Q9;7YqxQ@gl|gNt_A9ASDuZ|AY9
 | |
| zzP|LF%2>tzajJW1rW$^{C)*L@%~p+AHFed*6FsSpsJv81q&iqvPT%~`td_h4heH~-
 | |
| z&DU_1)uOiPs^_aR+p32s-PSW5K`JJjC&u9`R})m#I2^iL@D!=W5~;`NJ)fB4^x1uF
 | |
| zRh+J?LC%NO3iB27Vii$tnX~Gys(QPs7gcvvGfU^4)pm6<QwX(dph?dxof(z#W-11+
 | |
| zPP|I6J-<+QRj%SVDSy|wD3w2l-b>{tLZvKH@2XRG>TBJ`JVnlqIa68&Wi@IuB}$Dy
 | |
| zA!>J<I)yHN-yJG7o}*qJfjU?n80jjGD$;vIA6NV6d5G^<m5kD3I>OOJnDvR;JFY+%
 | |
| z+6J8|)ibtMB^IiRAxI@6#1s=nv~sViLq+fCu~^ly1vy<?1(oLAbUnlU<^Rr1tL}~>
 | |
| z)o@|PZe6mb%!5?q!MZCl<*Z7$nyN(R^seIYTk5MBjzUz9BD_^qH4X8G=>yCJOf}c6
 | |
| z3)eh<tyfb_Rj_}qa21EB)^YQA#_<WJG#vJ=PF0>^xyPN2{HN(@GpUFp(!#8&8L{Ic
 | |
| zows@G=N?zpF6##ss~ITe`pEbgrg9K6kN!5qMA*-ailL=d^?}Yr?{Hi0`K&+HmAcK@
 | |
| z)xNG{%Q&mEN?hQ)tdqL!XC3oSvE`QQ`1gB``d+(Y&b%XMaI3%d;aS@%`U7=kLUWH#
 | |
| zU+5|hGcDh~rDLn*&9Yw48y>X2irRi{Yt9R*ss8ro`_7r`bsgNAOW5untLK16eX%BX
 | |
| zd+vA@G-pUwNp7B7mSr#Lp?kDes(W{L)=MLGnt%6>OwBz%&FAf%(x#r>eL@#fr}F4>
 | |
| z)#>LwVRJe?d%MKe%X{2rcW={IOm+AJb%+17?(oN3^ysJOL#n^O*Yx*y+}MA<?tdym
 | |
| zu1X>2q>80c6-((AOMUXXSYv&5_fsm7v2{Ir^V-{-U1GyL+w&4_&UT)?YOll~XUo`>
 | |
| zAhj(q*!gg5O0ZrEaW;%i3DHZT&N{Ivp?WFIS;MtU?H8L8mX{cw_1-SsA6Uv&buYQ7
 | |
| zM!)|{`y04Vnv2~%Q+IU}Ti%wHY2OmxYI#If{PLiz`<Gkw^}OBNv4^UtT|86b{-q_B
 | |
| zwV4v<Jfd1iUEM<ZyR8;|K}(Bi#HN8h?qB<%9#72V+S4<t^y8bG@qKEq(l@;|%-p+h
 | |
| z<88V$vmGJP<to`hru8PNYMrfGu1b2@PSXty&^r~Gitg!{xHCS&vP=KJDb;O{F4>Cy
 | |
| zM@_NRxgtDYslGANzBN;2U$q_ogiyt!?>}fRsyj-$7F}rCpy$WjvOiZi?Yd2=w5oB^
 | |
| z?3Cdd9;pf<Och6_BUE)R%{&i#8hE-oOsm%OITgFwWJ*ZIK19c!;8NLp-&3aMAG)(p
 | |
| z^E}-W>|2u@Vdm!Owo<!EuV=eAKsBAqp8a~F>iI*p!c<3apME7R)R|TJG1{pnyWXoC
 | |
| zMv>{%lBD0!sWZRqTY6gax>~)KvV<PiAm{C>wRv`{fo!}*FMZcX-#$ox;X0S3@|K_y
 | |
| zl&lIRQ6;^HI$?ayG^-_Ruzg+CxVBkcRRc>=15cE1x^7g-jx<k^3byi%R>2J~=~U=W
 | |
| z)u}Fx^gMd%DHr9k%4ED($FJgc6(<$NO>;KBsXudNI|f+Q6fxP6YEBU@r$~`gl)k~a
 | |
| zTloUjhV}FH$(&@^oG93wsPvV275RzN<EA=qf*w~HOU>9SC9|%&eaivQPAM9jJ-0~L
 | |
| z{lEL$-5bn8yxsk&T5#{NyZ>WWG`8pJTO}1~Wb~emR$0`QF-)B!GB4ZFz*|)!HD#T3
 | |
| zzg~4?eD65h-bEj)c2WDWle1)JHC4&i>pOH+!Sx7Y#&k0($yIdxrOH9w2IQ8h8aXv@
 | |
| zv~A-emG``4M*|94k7PDalw9=Ekl0dZaOE`~pB{~Mvo|9%Lvr+<0)0-E#7Hv;CNNhB
 | |
| zmxH1Yw$Vw=-)?S{RQo6i)0aan`0~qCXRC77*0bFimDkm_@jp5_lWitNx~69T&s3F6
 | |
| zC^rY)W6An5Z=7xGtNM@xRXR`T_7q|=oJ0!zha~7~UTMCi#@}}m)$Op_DNN-gf~pp(
 | |
| zx}@7&ZS^p0b=Fr|)kA8i+96C0xh1=Hs+kh^M=j&kL@c*#`tj(p=;Nieb6Q)Sce}1y
 | |
| zRdZ3(<<91$)*{`fJY8(nQ-B|G%kA#R)OA+FrD~6M_cfUZg?hUT$SqX!eSbsCOAV`%
 | |
| z*VF3n6;#);)9zkwcDB32RRrb$ySr3ZnFN__m@9+U3%e|Fqnozd8E><AyASXL%j#WS
 | |
| zbgyP9Z6Kv!%9A7fleVKpHzsh4i>xw<>ZWrRm($MT+~?mvW0$R2gr#)TI|;f73Y|gz
 | |
| zq<dN>$gOAPQY-RDIY~!Z?%d;<Fu+q*`kjAub8{x=9(A6q;^^c0NRJE!x+R3@a(_(i
 | |
| zva_nCq`x``C$+oRUN=u}D$1;6>Gg`O&IA8%B~x;jKJ2FXSV0qAE>4qpT_1F-(V1|l
 | |
| z#vZ2o-O6#AvUzAjQ+-JCjb2h+=vuKqIPc7vQr^^AT}^Hu+!<)@H}%Ni)p0sa)<R8B
 | |
| zohj8yAE>vPb$XkuFS@zDMzxJn7hexGUOm$2!RHXekBXZ)wCdKH$w<A+YJTe(wW@3}
 | |
| zDrBGgfm&`Gtry*@AGWk@u6|LU?e4xhP|?3cm#Y>SnwMn8GMlbM^{%KRqRhcMMfR7b
 | |
| z>)7tL%Kfz6{iD8^J3dosXp(z=p0k&?dhQ-)cS*q3hjf(3W%4iMk(x-(&Sn<=KSnoC
 | |
| znTgn*o29E~CyN<-hw1Vym#(tRxl^^e4P?foq`5g@vh?%Kytn77u6Aj~xeN7py348$
 | |
| zF0HNS3wNnovwCdX6{y#{)!a|duuIyQ6RA6n(w}9E+P|b!)h=%*UAG$fkCJqi?lSXR
 | |
| zJ?pOR-%{0V_*f$OR`^x*cg=Q5R^C#PNn%PCT<2sZ&*`dKcGL5vDE$ycSN2!*wY}Ti
 | |
| zSss^>M2|kv<)!twex3{Z4s&bluBic@U1n<iKwd|icbvJU^Y?-?e%52Ws-p)~A$u;!
 | |
| zQ>_VBhW4ozZ&+Ev6sy%)b;egJ%6K(L&|_kzLr?vKb$it}!Y`{4q|)I@j(Am5BF)ID
 | |
| zx~xlosY}t-T$Lm}-mG1t3ZzW6_dK0o^T4q5B|Tp_7w)>;&J20F7KeGha>h*?<GMV}
 | |
| zInmUQsrTG`f1_tL=GI5gkaXi{T*Ino)qxYvn*CMkHmhO4SFDONw#d1^V7m<IHa!-p
 | |
| zjgRTtS!c4<L}czRO)Rd<4V}fV%W+w6mu^-SVo||vJ(j5WN{eoNzN4RQIPL2K+=b3b
 | |
| zc}~Z@o<B-M<Jvj9#XaCmnQd)vU)RCfL2Y{=E-uTr%lbg3v(3)-Hj92XDO<9BuH2s0
 | |
| zNMcgQ2<a+znujXtz#$a}mab62fg?s|>}qdoqgGTYeVr3;n`e>}X4<H_v+{RA<I8lJ
 | |
| zw3~jX%2M{A*?~JdTJ_AVPtm-#c5_W$RHvRcxNWEjY}U=DmNa|2`%4`PvC=;6?k_Br
 | |
| z`vcXDsZ!Lp?7jmNO{CF<eN^#1JT1|6xv^@GFS{-`&HAp?OR=@pm&ZA>qCQXWsIG0+
 | |
| z`iijW%QJQb#<ktqF+kGjy8MtmFHsl9<%VjgGz<4<&6H9rX)60SH2ZtXO755N!w(a#
 | |
| zCE>Padr373HEwJ|e_uDDcCt;k<aw@h!8vUU16A+jtW^-mP^xkmp;q|^#nCeZDwe-^
 | |
| z;l}dvO6xE9mtAeMRqL>-RpGM&EOqy|P6fEOJ*=CBf7b!CZXC9<((<`V%Q3TWEITVL
 | |
| z7gt)gcy265Ra#D~w7jI!@_zrax7KWxM4ibO1I(!9-y`)!_IPKG>@ZL7kiZV!8j;(~
 | |
| z+M{}Hr3^)SE1kU3^5RO%`@I$AlSBE~=BV;H=sF$X+Wv4wDqL-&w#numdUK)c<aJkJ
 | |
| z<BBxsSm)e`^=PH#kh~kq11c@A@-LT!s|()Kb4Y&&R^=BxRky@F>}(R(*!iexueGIq
 | |
| z`AYxMtuRQnLi5;7b+h?}Dr{eORIi%1Q69TgY>z(f4@iCQ<@rYS*fY*Wg_x=omZ%CU
 | |
| z)IL|YuC1n@&sV?V)Lp<`Dpb(cKX(hSm`%7Hks-QKKBEWuosE8QUBAb3!Tyq-@aegl
 | |
| zeqd*&)g0lK{ny{F+h#&cq$T>G>SomxUj0^c-}uUtlIT5VZeMXbVDoJ`S6<#FR?V=S
 | |
| z6TGRLE%tSRaq51gubvW(vwGG_Qr2~}Mn%STpO9c*S6J@I)&JE!{jFGmK4rx$|AM)K
 | |
| zAD_K37js>Xx4-mB71eoEz8~x2dr@uFr_3^s!DbZek}^YxJRh3lNK`BGI$FK?js&&j
 | |
| zUF%2+F(<OAZSi_B)M37ZP-Bv>v6@MgJgV;#?@^I&xyL`FO*WnVZhb)?a_Y{0v!y_9
 | |
| zEGf{lMYYG4t9Er3U6{@rg&AEKy=TKQ)xu}H9rwvegG>Rc?LYlj9jL6o%{-+G&1tPJ
 | |
| z(gK^AYRQPS{`(h9YYFm?fveOZ-j@3ALO(Ie*As`eCU<HUZO?V9@Qrz6MFp_CSE$J1
 | |
| zsRybMBBc=Yab`~@p5Db~m7MvT%4b$lwNhs;xlf<qb~6#lTWq2+H&FVn=z=Z+pXJPr
 | |
| ztEI};?6KXx&Z_Ew`(u@}xQFfTAvT#19Z}6<V}QSSRpxq*wOUFF|KWjvr^s``x9TSq
 | |
| zPYc;=n|+JA1MX}MvgiJ+x>e8Jy6-5N_m92_TrY{zlL?+~+SJiwf4Y&HrMmwq8T5}o
 | |
| z1AC&6n;Iq=R8wSMLgl>^^>;BbI)xUU2c5eh-@Q6D`BHA7jvKw0tTNw`?tG!#t`l2B
 | |
| zU!$By)kV22&{A>hGk=|x=U3mU1J^f|>RxGzZ_n+eYm=01$x~{%z#`3FwFlq3r_Dvu
 | |
| zb=cqB%=y=vRXb;zQ<qHBQIl#_7QW2WX5JclQ<7D6+nFQ#KdDyehbQ*jTvg683BLQ<
 | |
| zah?C0W72io*Wk3Nv=uR_ncR1?^BoWBDiy6}7J09hU%!6+uOkgFdiLL+qkf#e8K-k{
 | |
| zbpKOdU&cbuZr9PkMn_d%=N`VQZ?<g@Hg(><Gr<<wRQ+nCbLOk7W^*O$uHKycWv5K;
 | |
| z<8RHqG~t~yBsV$gsP(~?irkMpWiC+Ct=G(LR_%-rwv=?c>MwxRD)VL{>1lac7eEWO
 | |
| zMV<MfQ_{6Z+ug70>CH=Oie-swX3w3WwySz{_e5Q{s;a=wDx=k6zmh9g{L85&zg^L#
 | |
| z6kWLScIldfrDroWYX8Zbd$+kwRU}LGSX%P=6+Nu#kzb`?;ooYtUM^X3<wku!E_o!j
 | |
| zVBZUsVp|?)&poa7UFz0HJ#Qk*k;uC0$n<haPZOEvf((%sd;WG`lfO+p%rCO9`_t1>
 | |
| zuP$kP<^Q2uS!1cxtw54_3}f>@8z^a}GZd^EL&?v7>+Wz%MaRPP$?q?yz4oeY+k7Fe
 | |
| zZ2=|6bO%sSrdE#m$Ml~Ew^S6Ilgtvir>LY%Melo2@139;3)jwEjtMGCd2PXe|1d&T
 | |
| zs)2vsXkL%2DB_yWb3Po`!k)WMZP=hEp`Kdi@YXuDW&T7K=wt6!tIULMsoA6U-*TI;
 | |
| z?x#FEdv2WgVSssbtL|7->(Ya?!+ck*?qW;_C(mxf)%u9aclvgBP=LNCE--yuw!;=(
 | |
| z7Ja_*a9p8IN~R37yZpCSm15dqcOSA^<SR9sDJgEv%=g6pI-<@{vB4j+o|RcEJx;c}
 | |
| z-_q^iG`BfYs8RkCIpaOHHCxR_mD;>%RysG&b$`8hWxK0<@U*_}gKGZ!i(G9z|IN@n
 | |
| z;P07MT}LAH6FU8El)5z!Hv@5!nS|)Jp<3xNolIZgUzKvNZt>Kup&r%ELk$&qfycJ7
 | |
| zB9W><{GBYxT%?k@!E8>}n*(m%Y<KJLV$?3{%`QoLm%v+h=_$JuoF)@_6KuEc(oA-#
 | |
| zl#VL5?ovZ`sg#zgx9;+*s=FocU6+fjr@VS&@o-h=e)`8;AM-$djas3f7u3CeW8K?&
 | |
| zCp}KwxS#5^`I0)*GiGk6?k&HVac+}TfEYbIZiuolYOAZawW+kM)_OYapVX=w*qHUL
 | |
| zEKCF{hEu29r_c58m293A$vr#|6e~ZN^?awUL112@RX<WHXgxRJMod&C@7?B!+Ht#k
 | |
| zw#CeOVz%C8@%O*#`foN1x&q!|F+*rImnlGbey%D^OhF9`qeG@Cw)!q}7IsK=#CU7z
 | |
| zQ~2i>W^K0091)wLUme!SW$JQpMZUIH|JQV=U0eT;B-Fh*2?@6(p|!V7Zh2Pil1?|C
 | |
| zhj|~<k6ZO)GxLVdysY1Hrnd~r^4Yg^X|+7Ud2)Gx^F-b=LEZ^bc}b4v{r%k$b$el+
 | |
| z&guDfl=;G<AZ>2td#NsQdj61X*N<@%b*=hXm76y*_k7l~B}?^UM|D4KRrk|%b;37J
 | |
| za?uZ`-sn(OtBf(-#g-cWB1$&ddRcZRTO%yF=k4z9D$cxQ$MfF4j=U^gz`BflO;kG9
 | |
| z&z@^aJ=k<b@>Wkw#gkmsWi498_vmxI@d-Mq1M~x(pMH?ar}ogV<LMmsb5+WrnU$OB
 | |
| zq?5R@woDy^=w7zzT{Hbj%vL4;h@K-~x0o*vo-e&!zGc;KnR%bI<?hM)J!hIK_7eM+
 | |
| z-mP4x2f3~UWPP9aWRQ1c)W%g(Tg_L}{eCu`PcVJ>O<D1FHbq`d7jD1Q+~d;{qK|t=
 | |
| zrg#(H)DQEbU4>HLRV-mTmhGO)KKpM{Z#FEEnxu=q;>)LwvHen~Z}D~>ppLHVKiS3&
 | |
| zE~>Eqtg42Z8P4X4_9=C5LFLL>qPrcr|4|L0Ko^$j5&U1E=v!ThIN0CnTYDSm)_8}N
 | |
| z5(|;rEd9vO?!K&-%s1-4^If_vE->q-ym2y+t31Y>C2PO`OV+#{O;P2jn>YRKyFIsS
 | |
| z6<s4!a|@?E6<v1I{hW8WD#6cgEx{vaD8Vn!{a;GZyxX(I+tHMusY|*RZJ-ua-01wT
 | |
| zO3>sxH^^V-YFG3LOkQ-4<gQ%jXzi+W<Fmp`n){!3sk6oFXU6J0>L$Iu)go)2&~@;q
 | |
| zoXIV3%lh8FWpXRmFZa62Bb*0Z+k^5lO}mdXxl_I6F@0z9tH<X%P%15?;L=<<v6&Fu
 | |
| zoU?fEbBQ@qBGi0aKT%&lKu;9Q&8>TK=>yky+ub=fQqUn$e}~#7uipSw3zBoPo9To8
 | |
| zvgogarafS~0zD_$X!Q>msV2`2+?Bh6R5iP~=<S+l-D_XhAtEk7UNM;VTAa=9Ua#g#
 | |
| zan<K#y=?lMz>4xqtth`JcctF4WC(rg#u}A(-CC*pZI)ZPchy&=8nY&z#kR|>bU|hm
 | |
| z>w!<+8r0D?bO%&qq@u@@f-o;0nEu@Kel~yaCtXXk%E?q+OFVt;7b;IWC_T45ceV;I
 | |
| zS9QBrpm~@aXI>96Z--p_^L=~neSzj-bIgXjD+br(igUDdS8j|6j`*_pRuOjho*;8f
 | |
| zym_S|t9og7Pg#a*Vq|$%b^V5!sb5*Y*|)}<*Q5@<X*I7jKdQ``XtU(?uw_-*Fj~c|
 | |
| zhrKP?{`@;{ylo>@F*SG3w63b}GFeOU+7?!Be5wLId&)FEpRY#=^MfTWy2zMHZCu6G
 | |
| zG4{FC>7VOYAk8Z|O=DHso%eaCq^dd<t{S>-4?R=#q&PNswcUMBRg1;6*<Z~|HwR2s
 | |
| zhbQJt)m3r6D!vV-{+6j^_b@Z*3*JeI*2_5)BdXioyQ?y7*y|3c=+`O+`UF!m6IIQ0
 | |
| zO^&qM=MJxGzS)rRt-$V|6HC20c~e79HYb{_PNa%j9r{@nIn>P2H&pZiGBjSer4NYr
 | |
| z_Dobonb15^-{O9)_P*tPXK!Y6haMt2`YwLUJW9o+M?Bk&q<ecL>L_B5+UL$O-|SA?
 | |
| zt*;?(epGzvuFJ&xRAT80eNi?vu<#VZ|6D`uet52#n9{^vRJU@zDeAPF`^#`?W2CJ-
 | |
| ztd%@>MWzBb-7xDjwNLaWH%rj(zHT>nzB=)yP}chkrK5jN<*wY5N+XL+ZI&>7U&*Yi
 | |
| z{}Q`X?a?{0WcXFH9CzbAD&26-t6fUAUz4i0wLwLvlwHv&-JHvuYxMCAZk@&Iw;Ern
 | |
| zoHD0wy`5W?bW$PTpd)hJ#{T{xH`G59k%;Z;_q;^=+_iz`PB+H%O)Ac*+-6p;1NL<Z
 | |
| z%}s~6NOyy(I~-s$U$p0b9!UTD+yFhW4prqBI5ttGKFRKmu$h{cRB?-z;7HgUXE9&S
 | |
| zR(_<bZuXk#8}@abta*K{?m}n1xQOYsJKEO;x(l-|-TeL1HPa1we%N|Pt}f23Pt^Eb
 | |
| zC2w4nxCr~)92H4iyR5~YKd-IVo!-_^-GTm~_VTE`Y<WFxD&CqZ{@@Ps{get%yW}|(
 | |
| z*Vdk!R<56lbg<?<rxOsYb`0_-Ansnfd$NxDLA!fwfO+LRL1j6Km%J+;&FfC|Zs}7K
 | |
| z?CWf8ROBIX?NnU%I)l`)xmI(EK>f7vPF;%aoI$sqN?oRuTfWaraHMRBW6-$qXic3s
 | |
| z(e551S5A+7iS5-TOR=x(Tv2}I>PY?ej>&4)d7_PLnzhnwNzhv??!ws#juy^vbwHR|
 | |
| zovl~baUYzWtX5aaxe_tWr(#c$&R>_g>HIUK9jIM9sFI%+6xYt4`?SfPicKY;j#}Y9
 | |
| z7+~ImBhG3n5hZ%{Mkzv_=#)lB8~tXcKXr3uz{m@4;_t{Ro{RYJ!Q{=B_!~X6I?xQP
 | |
| z8-xAjlWO|E`)(RoovO1{eNf)W0jk>d@J>w3$$lh4e*=ES-<D;5m3`~{%0H;6L2k>9
 | |
| z`IYnL`IUc=EBUF++_t(4J%6g|qHc8Mn%do?)v_w13nfF;LSEOPt*^NmZB(=P@)%=L
 | |
| z@oDZjZ|%NT{H>xYnXQiXCOW)z^(-z;r~GMYlcv$ChM7C$noJ@#RQ;Fn_|MASy1rq1
 | |
| z{F-!I8}F!?N~cy#rOPW%ib@*jU7vG!A6B<XxwHQ^&BSyC*=kvL1<t>vLyaz1op;H>
 | |
| zt5Rf}YgeQrvmza9D$ff_9`HYvN+>z2j*4q%zF)m?O=tKJ3Dn=hNpEbcJe)m|Xx;5i
 | |
| zNzi{1GTwCFrEN?f8SpRj;Q!HkdoFY|5yYk>*ylcCI`D;2st#=S7yjleQeG7eu5@>F
 | |
| zVRTu^Q|c<{8eI}+E=R(ap3Fu}<<n=R&Xm;FuaAw=@4Y^*2A1w>7P3g4;1M+o*|LQC
 | |
| zm6xFA#VY>2M|Bm@A>Y=M459L%uF|bk|J3R0&HGHMqUyrk;J@Fk)RUS~Gx%RdO;b@T
 | |
| z#*-&5sKKGrey);#<W!N|G&s!Ed)>32^i+%-1^sWjhduPi|M>fkEuB^C>pA1xGQDoG
 | |
| zV~NE);J)?YUr?UYF+fkZigZOYUp-aCx}I;Tf;T=Ty@GyLAL0M%#ykWJ@@G(H(y3}c
 | |
| z-{}vmmVzJ)-@wRBC|z&Zqc+SaUS?*`Me@E#wtk^i-R@_qVxQ>$3UJ_&idQo9<Tm<v
 | |
| zbeZq&mrZ<O>Lw;r-9}C{MWrrsOTF(CX5YQ4&iVd3Uw^&mh?fb~7B0Y0mA*9n1+ad&
 | |
| z74WNmOkmG_PVJwg=BBC(x~3m-mPMaeyG+qD!{fdYznb$ob&gB^Bjd6D64X~*B1b35
 | |
| z9hZLXHB41iryhjlN(Y+)4Bl^shwaWjo{0&$WonlJo(}P<j*iaQ)gehm{=CgIInmi5
 | |
| z=ZRMF@&^klHYabn>6m=S4x5&j=DKXPyZ^D65oWaB$^OYU`zPDgS)Be?cAH9~%xxAE
 | |
| z2VZ>>TGx8xo1$k<sA`g=N-$ZKpgh3#?DG9_m@;&Rs`F*4okRWA;MHf$gVju(yQCW}
 | |
| zf2i80j}+}_-)f(n{MdE<&8>=hfV!BYE51Td7c}B4^JuZJPC{tOjk27`k!#J7(FgN%
 | |
| zIaWH(_ob@ZugPObU2@j!8(EH%V{`Qb3ErnM*<R~2@wd^-VLtQs8Z}h|b9%B8J$<8e
 | |
| zSHJp*{^C5_+`;*FyrgE*`p>_@%sV!rdHNmMD0vAfS-u<awf{<HM^0N#VylQ-UX$Lb
 | |
| z1{SNH4#^)Yc>elxMagIKcvZiO<;(v?r!#AUz63h#HepYhyxO8FU7<Q<n*X*?r|;rE
 | |
| z)z9_US0Yc}2Uq%1D!0s@>-b07@0??19v4<}*FUD$&y>2Z#_F;DE&J6m>L&fTy5d9q
 | |
| zvs%5w{Cy^QjdU(@RdPzou9+28bo$QxEa`K8uiBliEECOP*)k94z0X|#iFwbJ=js=-
 | |
| zCr(?ZN-fQE)OE62?(w{y<$1xaruA06V<-Lh1FiJm4>aNL2kz5<KTu!){lH!3?+0$@
 | |
| z4+iskUbpUfqVm7$llQz;b=fsszXs)vwQf5Vlv_6aPmfgEw37Jp8&9hLn{2g|OjlJz
 | |
| ze_NtonQ-JD+@+(nIIHqrAr-H>%2@P4{r0D;*x}i){~#>M5w5ChgsF0TC6o1qX><{}
 | |
| zg%ex*j~u9r<hawW)`#oAsM7b)^Rn(x<q+YI%2VczPxJ)pRi&lsxZBLN^*xhp-kORi
 | |
| zT|3WpE?iabda7@#XH~!In_KE3?^xweW5)acKFD*#yyzaG`eXfW^4I#y9TlJMZG4ZP
 | |
| zHGhkDcUNbEyqKsHWc~`lX}<C>Zz7t@9qxY`qOaMzd(CT}k-6p0uXa^4uLtV)#kQ+x
 | |
| zbu7NsJ*_f7SgQXxxOAC{EnGkOsrRaC8jJn!lbiRqf=YuczGQgCVtGgYn%HapUf8;O
 | |
| z+sS~x{>(j?b;4B~)aTZ}$90`cRf$ScRa)Pa^e|ssWjm5pKc3<{dHu#ay=%XfZ-RHK
 | |
| z(n>Hj|LOfVx~F7Eg1>vxv;DuGw(1+31aDjYx5#=-P>m_Vf1Bg)X5KlYuY8`qbx$_m
 | |
| zbVVOG5qtKSeLCy1oqERfukohfVx+TMB;~FDE-l!+-K%Ezx^Kvqvi(1#{ds&;<@pB;
 | |
| z&zVd}fP@nzASxi>sEG#62#JYFY#;%m1jG^+1rZBUK<dUBL<ulBGn(UJAXc<m(TY^7
 | |
| zEv?#O%4SH2B!ISMaY0aIaXG_)vPgggGSBtB?)%J~Aiwv0KA-0g!kl|wukF4TGm{rq
 | |
| zXcOPNlks>tQ@J!R8r69JM-v;2UKknm@)^d=!!!rcsC7<{{P_a?$wJ^mURD|^+h<9X
 | |
| z1glQ7?2v$$9R;sf!FYoXyw(XKH={QV-t9SxD^E+&vpqe)jap1)sXN1LJtzQZFQG}$
 | |
| z9jowzOe=A62h_A0*d*}BJU%z>JhR~-Y)z_ZvBv8s@Zt}RbhGF@8*VibTcO0;`vbQ}
 | |
| z-SzbLwBV+n)4UrkfSquNWl<I2TAx!`#N~!a{e6L8-TqB{F$-U!Pc~oYN4-XUd*+sc
 | |
| zp=IjQ#}uyL69jo*g~gIbxyY`}j|(Q1&6oO8%1<Sr7lu6VaO6)aTX>8%$Zd=*HM|a8
 | |
| z*z)A9iHTqcD?;t$Wx3qD1r*`YZ$7}i^}s5<BaSW4qUa!xwkNGv@De39)Jpd#x^~Gl
 | |
| zrxXHV*)Vybx!;Dj%FJy*Fi7!#RLIE4x&kYHAFB^Y@LA^9`NT3T+%IZto1p%m*^*DS
 | |
| z=hso4OHt?Oor;4MlVzLA=XwrWu-YcDK${mH+9u2x^z)gU!=H=s<7AqDr~2W`1eYbw
 | |
| z6))(+ZOqKL!E*3#I+fx7iF)jr!Ha%*tl`H+@*yNoqU6X<YjOG<uqNbbHgG|=XPUqd
 | |
| zF1;;t9~8;4_lu|`&8d$zFQ3Nm?G|2&T|13UtA5V5_o%%EMHU_mFBkIF@dU;582{ls
 | |
| zn(w!8Y96gqn$1YY+<HKq?#Z@!e=ssO{yW>^Xz{gJa%8c&;u(jdI((_fzEr|bb6&hA
 | |
| zxNx>7_B4+ckM%uqU*)Ya`|f9fZmGDg^*=a6rA2%P4ZP|*al~$;!RH@SmsBbYhD!bQ
 | |
| z&H@PbL$5l-Ri}xKqLqS-vm8b#fP}DBWP#*Fwmc{k7Vd+k?R!rGOKgh?jgU!E%bG|b
 | |
| z7$J1c!4V9#wrKu0e6GutRwE%;x8M>Q%u-l}tBYY5MEFS`01RW?qTsfa(zO)N<}jwM
 | |
| zFv^QuJUB6Nmmwx^akFNhR(_z<8_a8;;rWeXo5~ahwkd+XIkHuZFgCv6WC6nY+Kt>N
 | |
| zu41{EN5)WIw&2#dSvwZM(iy<zEqs{>oA=}S)<yY<P$~8=e1m9yAQIoD#PAi-*an-g
 | |
| zApvNq9eiGNWU&AdSr&-SFjfi9iZ)iF8_FJNzV<Z(xhwpY?yLkg(CTs!=d;)$-woIv
 | |
| zk8+5ve}Yi3e}fxL5q*7;L~C8{E+aaU4!R&IcjCIkX6Kx~+8toJ;^f~vQR;jQt>QAb
 | |
| zPt14(0sTt%U7n~~llakdPAKG|Q9A#3Q||p$rS5VMAo0Ca>VauZrS2KbC_P9}<Ark|
 | |
| zEN`d2jpba44yrkvYGvzt%+(ttnY*MDUhu|8^>6$?Bw3)UIppBCcD#Q=oPkU1kHTJ3
 | |
| zo9T}_wekLFf;QA2byaHv{86~lh<4CaSvxeT&HNw~<4%T~Z`(g!v41SFe=M?pXz>qo
 | |
| zI{hB5Jz#y_ZOa;A`#s3^JID4r)AqZU?e`_N---0wA4&GU5(<dT*lBEVzb&@ChY=9V
 | |
| zhld4?V3Nj)taBj`V7jM*nY;{fF|%lkE2Umd7?wNIqAS^azm;W|*|eZbDic`=3eB=~
 | |
| zn%e#*v&k6ZIQ<1}1Ma}1PQFr_KEhFwFZNFjT&jruxYo)0K_`nh#wkoOXj7_%egy4|
 | |
| zHjOrh=>5Uinm$J9tLK=Lq!U|Ey8ID!=^Gt{zWw4R8cK<k|6wfuza0Q2eq+ykK9>0>
 | |
| z&KzLRoDs{+<;+R;%wNe&;*XZz#o7Js*<E9G`*CKQ%a(adEOP{B9;d&t6$wHw8Dzx`
 | |
| zR4O!!2|06aJ@J<V__>X`tbFxctgTlQthUa&(AL!*Vu}_L9)w0KM(GP&cnTL@Mum@Y
 | |
| z;b|T4MmySR<>$uoYdJq#<R@799b@_DIDbzf=ew+YA{1qQBj>*@@)NE6mty(LIKLLU
 | |
| z%%eM4+10V^DV!ZjgguhKAt`oRzGbRF%=|e07Bdgiu+&gEj`oI{&kQ55_yw16YwFVb
 | |
| zTycLdYG}dvSV_jk=G`bg{XDCZvJ|TP14rntb94>zjJwYPY}B|M7N7#mF^8>T@D6VR
 | |
| zPTiC_cbM60EEtq>5g7ECE@03x34{Cs25Aoi0NsnT&i+aOg|vYHLjCBZSGR*gH|aKr
 | |
| z($D_U&Hj;W|7fkUef${zFb`I>gF?G(SxvUz>utZ^wf$ac`~3&oZ^QO`VU>hJ{3M!(
 | |
| zS-%Py?oNmjY4HGPB>XqQ-Fmj#QRDG{)3N^@%5P<wH?+(RSisU}Q#;Q4#mZAKA(YGx
 | |
| zu8Y1~AmP8#!Kh|6yPJVHu0AW(qKbeNGr!SqwV^tL4xUa2F@7F{kFdaklFMH>7xv<#
 | |
| zl0GWwBg3B4%7SN6JN(~swqh&rQBF6u{MB<|jbG*Hqk=w;G2|3?Io#N4EA~g0F4G4c
 | |
| z^YA0BwmL)YIiJ`YP^APtw3v~sT+xtF!%XpPWnRIQZ-rvNYG`F&1GQtC^F9z~S$Brt
 | |
| zJj1HNZ#$$SWiqgUwIhOF$}&bc%rnQiL${s~e${^M(n{$ft#7fVw3SfGVtdLFq#U!S
 | |
| z>_JMsJ!K10s_iK?NV%>hMhOiy|6C&Jqht2eB`DXi)s|9;lw0g6Gm(;LPZ^Jt=j|y&
 | |
| zkuuqyGSKSp27796lsg+AfdDAUNWJW=tz7e9N~yJ{d^=dScb7f&zbLoUp0WWcEA1(N
 | |
| zMamd^%1cPO)}Hb-QvM=RAmcH;l)&&MJh0Wau9Hyi%d@tWa-<Biul=n^>1I#KK*|(*
 | |
| zN_V7W+f!WD{MOrB|8WqN)9oo=A?5s;IH&V55{90$tja;pdiMH{q)7N(&<nR$4J~#-
 | |
| z|MMp5q!7G^BcIb3>^E}YbBf(mxs3GNV0Lp7eEFZRVH@nL0#1jS@wnnBV79Xoa*JF)
 | |
| zrKMAvXe0EnYr)G#DmSyUgt-(~Cd>P6O?)>;kwb|$v13lGiE+v561;D&a0oYd(DCh=
 | |
| zruTG*COOT^ZSA~zk#=-jJ1IoZUc8+IbB8<L&X|j|GsxCXn!03D+eO=PnYyi=)Qhxp
 | |
| z)*EjpU0w3z#oI|V2ie-$?EPgs@7vnxp)R@k;_Y-W&t4sGXZ}UnnPF?Er@G|u`HQxb
 | |
| zWWH}}C+8yV^tH9qM_uy9#oI|XXV}^~s{OK^FSU3(Zgt5$7jLJd+1J+2n-^*4Ia@m!
 | |
| z>XJ)=WqNT#bqswAyM`upf`DLmzj#9vFVaw1yrD7F&{m+HB5r6eo4ifxY@}QUk?T@h
 | |
| zLtQV@P;_>@p)7R?YnF(M!Eeu@NhyZw5?qa;wuZLN{$)cowuZ9RCAXZr=n|!xZGGeI
 | |
| zJav(F9<sGFP+js<>qVBR3zp~uTSNI5Y3LeTLwV|ww_0N}lS`z^na#2_bnG$y%?*6}
 | |
| znANDdSZl>gO$rkdg8yDFFeckWfaf;fG^0^<V<H?+>OvhPOT4-+cEf-X0?eHXlQLPM
 | |
| zN_Pc~q7d#8V){WDaFU{fL4z=wCRh<*k!7PAXrp?~Lvs~12yV(p`NfveL!OpQEElB2
 | |
| zcqG6}n7Qgdf;c(^3N^q41JPBWgUtJdl67A2s2<=^slk1Mp1?;_>?ut%e=8e-69UO#
 | |
| zT8;GlLFgX`qp?QTI+!=KH&W`JYxa|kyet~2vNiI>_d=mGxHr}a{u-;=H8RUxX@32Q
 | |
| zXyid59nL{*y#VjG%PrE52%!q8PQZ?fW>R+evo@(8Y|Di&J+mCS9i#DQ>RBxOkL70}
 | |
| z|3+JWB|GAY<)<Kjbkr`-VUjDbk&>3Vs~s`TyMZ+6m+(oatos`4?cg$FF&Ao*&j%3j
 | |
| zuenu$#Uhf4Kd->EgJ!*`AAynx#z=&3-6DA=f=CS?r$0<Av&aSRq>723VjnETU^lP~
 | |
| znlcJavp==pAD&EEeyZ?FV<ST1bV4(dI@a*C4`&N8mvwmGJ4$Dt@`-o9AENYf(2&cy
 | |
| z8VjE?8-jZmJZzr2jxhDSsOPA-@z$zz=}pN)l$Yxd_f)p~_p6!PS-opnse3pb<lzo)
 | |
| z$6#~~?w&Vs4Xz#5YUaamccT8OflFu|1A8^qe1X~zz+ak{aA)Kd&)#6OE-q(aI;PVf
 | |
| zFF*C)IrWFKj3Rif@{P<@^aT)f=LPFD7k#GDIbXw9kw24ZA6DaYD}NT#oZfTr`&ttF
 | |
| z{990gx2G;^VPTCGO;7`Wil1{Oald%RV5wl<HX+dMa4!CkvwEA5&xU^ubOAFpTA5S~
 | |
| z+06eg8Z}*~h56S?Y>O`Cx8Q%pZNxPUFKy$u)<8}h+)ND3eY=Ai%tRS>%EdazdM^x)
 | |
| zmb@_Btxaebe#o{~{W(1c1;Z6|kht_(DGJSowsv?2jSO1M4%UR$;Ww*-lGnkC6v@K8
 | |
| zzk-rWDS0K(RS~8gTFqd^QwLqZP`Nxev#6Zr?g_Cnd{+&`+XbARrt=F@Y1|Q_*|8Fq
 | |
| z+TqD8))erxP+_2vt=5+1HrFR>{f*)>c3kQ9H0ztF-8_rGkJ65+HBVsx{!Nnub>1H%
 | |
| z9T=wP)rVdF0}Az6YDv#u-y#{Ef!Lj|ol?COFEf}a{A<x2&12&g_dqcORyO}Fos1&9
 | |
| z9O(_(0Cj02q*rIImHr);CE#mb%>T<1odt;cj}!8YFcy<9jG%8dpd^_1nLBgoTp#sz
 | |
| z@iYsCq}A?^9K!KT^WfZMHE?eyemBU=C(yAFesi*+&}NJ&3-!Fc{!pT?vTL8t+#0)f
 | |
| z3s7rOp%2A#E#1QR7>+9k!a}B*=2ECGF@ZAXLf?3wc*iRA*G;CZ3Pz|9;a{j<I1$Qu
 | |
| zC1ruSxt-OTy0?pIg5qUsJa6;7a`<u#Jr?zUpP+Bx#p8$hn14ex(8VcF8mmrC7H2Dq
 | |
| zrj?}zu8`udAoj0K(T4lmoZ2=1hRGK;vQ^<Qmk!5=bq*FE!-ZHOl~5uqJg~~GQ20z_
 | |
| z`8Q9#cmbcS08Jpj0>gOTVVT)qyb`p2;F6efLK71wx68Xpyp3?)^3*zqlxA4jY2xir
 | |
| zWasozF33KPiPLagi#Gejx(>{To6g{DX<|kjdI>gk<v_NFqoJ2WjW2(eyIkvK2y8Uo
 | |
| z-!vKOl6blHEr9ak5b;2k?HiGsYysaz1K9F@;G&Oky%<+Y6{Tb)rrFfkNjf7^14?H`
 | |
| zOMF<b83;e5*Frx8#@vfqMd|<WZ&AFSe|P8KbI!-#NUq;3pdrK~bRQ<1m#U!~2alQ-
 | |
| ztXq&+P*OU7kZ)cemm0WAXl>Gg8$<_A)m2s*#i0wn42AZ^e7>mRZ!A<9qB(_4Kn|gw
 | |
| z4nODSTuO}mU1F)rX%_3cJ@0gEd?@IQ*#b66pP?hD=voQxio<QKjNAq;P?r{TVy^)V
 | |
| z43@cFiZH0Q(6Da<C(&hSPIZV|d{ke>7nm<Ife{zuTY`O4#k0O;wBp(6*;=*Cy$XG9
 | |
| zU>rj<A)lJ%EQzrQx04M5jQpyTfFFdym#B<zP|AOX5RfN@2bayHT>u1-8TvX38*vng
 | |
| zijsO@F%uyHca{=w{RM8_`+k$uMF=*?7j~M?I_O5f2R)-=>bOj)5)_{<XoSo6Ht+Hs
 | |
| zO0HV&#+{X(pxgQ1sA4d9z6*`AHOUY{JpId%fNyg;Hg9sN!POlR1~u%|zc~43NGv99
 | |
| z`^YEc({|_hvRA}Oxj%VW?W>fKbQju!RSa;0OFQ!g%x)e8u=%{OA<3g#G*DgovC9Sq
 | |
| z#}Vk9L!eXHMG&petzueLrS8#c@J@)JYlio|bumv%4c>-|4`vjINvpvdq0fF)U2-EX
 | |
| z>1=msMAX>8GxHxvGP)OBrUp}75})KBRs+yy!DA+rso<wu^PhDJdGEdcvk3&|&bqXG
 | |
| z|JlT9?OOlY4qCb~)KxIdh4+l$M+p)G8!0aqr2Ih*{)-X@8?F}%T=el4f5@Dd?Kz9>
 | |
| zIScJMkKrT#u;#TA?q|L57hMJAf1te>jjz%dlM71!kW7$6<fTwviW<B{<fTzw8W9^J
 | |
| zFP-wz)!>yPuLtGzP=l!=uP5d8RD)4qy-msahrNa|yR=|6A4N52IvLzA!IcY*j2fe}
 | |
| zX!!~RnXCr4Sr{1}zK6>dd{3;P8VK<Zr#1%*cpojGSkDq#MJ)@9*v%N8U9ed44-1^u
 | |
| zDpo$9Rj^^1=mF*jgN<2~vP!0m<&;uN3CNUEPAR99#WLk)PO-Ps=NIh&$qmN1flAut
 | |
| z{LHxH`E2Sy4DApjjOPbZ`!8_<bApx6=TY;^Iia3e!{-aBjn_HhJ<&!nwIQC3{v_Hc
 | |
| zr8dOME)i{%Q5&l`VZI`E;Dj3d9oUnRa3zk_-ryFUOjK;Eogr8I9c#74!F5(^k72nd
 | |
| z;JlXdd6i53APvqf1_w_(VyR1M4gom_Xog}L^Js`7CE^gv7@y~t4zY}RG*OY#<Ph5t
 | |
| zZ|8$wv;${!@XY>ryS74NuL~(b469OXL@~9EHS<19&6ZNLSTFBysKqjB5o_fgL-oq3
 | |
| z9*&x~jOvV{I$#F81yrYk>VQ%3-YA^6>uSyDGEd#D0*1pQ-IbEXL5NSYmB4Ix>=_^~
 | |
| z6btOsh7#j4ny}k7omg+HAh1)d8rli)W)m<QW189JbVuIf_UhG|dMcJ~luRrLFlJ!?
 | |
| z6b%HfW7OV@)QMUn02oy43kW;H+Hnl9q<~8n@dTofsV_o2M}g%Cpq7R2J0t8PLIZEF
 | |
| z|2{EP%Ls_@qA|EEW|&2M0m1W<GBq%`Bg52e{g||{G)9+Mo<WI^BMQ>0L!j2P)wr*$
 | |
| zv2;M6&YrylavMv#m%&C`FYi!JpZdh^6ZMnEon`v0E*X>@DijEWNG{7!u$%o34yKLh
 | |
| z00p1GXUTXtOEM}txb?H`(a5h8;%Fp%{%1l!M;G*7vxpFVEo1w*@hW5c`)*JitWA9%
 | |
| zzMk8_I1mnoK?a$Zd?=6){Gt#i3<e-1DcTgb?3Wpqys4~`z&SnLp?ekc#dqQL;2-+e
 | |
| zO;T?qXM@0})0DW5*83ayH}~D`g1%o6<w3>&vTyFRVG1LEPNLOziyntq9e%W4ba=`U
 | |
| z@37d`;h#C*+uiEWy}{D=Wkni6SrOU7Y>)KPGinM;gYpFNW4`|n?lSbC)9Un2*{RRg
 | |
| z>BsBio!%rmO|v?Em%p_NLhS=Zcd~6(wK?z`KD>F778q=Gmtb|be;qg1&FX40HRnH1
 | |
| zc<FlaDs?Lohf`uW=LC)d@WX=M8*v;y<l|5ov-#lTFe+2A<|kM%n&c;ck3y1#y$=6$
 | |
| zJSOYtMh9)}JZfY8LqX}>VPd?Yq)e%*3bU*5n&Uj0{>V8>fHl1OlrWPB_53waAEEWJ
 | |
| z%Qh%}*=F%&8$y>YQz%Yk>w9YDWt&mP>SFs?20PI`RXI$ouFdo_n{TBtz04Yy@}os<
 | |
| zhR?Ug6;5AY%j-85R#?U1KF!i2Rq!Z8Me5Se>HdUUkMTPz=I;-?^qc*gTy*r|2rP^+
 | |
| zM1~-8WfDqUPbI=0YU_QaYB7UE>JC(r=~*kz^ec%D$G?1%hP|K3;)pV=Nt!)$7K8f9
 | |
| zIwOXt6+DoLXY*<`FcR47KH=@ge<;afaHmkY{5E30Kz8mGKGOZIiZ;vN>eTM>w<c(1
 | |
| z{#IADmg8?t)UNiocF-=7Rhf-6uU^X|MZ!?CyZxi1{o~vk+s9A#kArK3o*Iwlvo&Hg
 | |
| zE8x<-G1*G4jaM-LY5V<_?e`yTzn9p4KV|zp$M$<BcjbLKoMZEh61>)W@2iJ^aJ3+v
 | |
| z1?U@$0#m6#*e`0Z)O7T<!oSL@pP8Kzv~*zOS>9u2OR{VhW<WM55~!QIUy1>iQF3G#
 | |
| zZws9u&0VH0-2>CrwLe}s05*C!bPb*{sWXB#E&<ofg}-BXa2<TxYkiFz1c?eZYnMs(
 | |
| zNy=&WGW??IhTxDwtC)fjB85tptAf%pVgi(6s2Q_WPS%I8cM2`HnoDQD*5%R_wzQ4X
 | |
| zXVBsnb7U2HNGA$Y_tIdLZ7ZDAW*J2GzLT_8Wx2`W$LUA=L9#G7O5h;;BVB(paZ-#`
 | |
| zqxpjKB0wW=4i9!Yvu(nl+_i>H@S&2}e>bFRkp9*G;Ec;Z2qH0Y!0v_(mUQZy#M5Ue
 | |
| zh2KN{XOre!^0rG$HEyE|>2Gx5Zssv+Ja_WV_mo<Y0=#5ZVke2+1c^h#VlHvDoBif2
 | |
| zmNHRw$$2r#w___URyi~pQL5;osY^cPlG+o9Q1yVnMe;YJ{4EJuF@jWO`&)=!yvpCw
 | |
| zK~rgSK>RYRt-jl6Y+$Bz5Q0Z7vwm(eR$D*+{};&rc)>WCLuFZNy?QZ|(^PEPVx|eH
 | |
| z?uNy$%N|!R{&Ot%?N}~W!e5_E1t^D-@;_eq4lVW?F<~rFzWAD-B$MF*jis}n5u~(E
 | |
| zmcRuiI0LQyK>r<!U(LfvIAKfp5($5AjwfvC$L0dr#*ngb*V95SbSdQ<qel^Mgh8l5
 | |
| zC%$J_5S55Q2r4oB86g&n4h`-HmU*z;*kIk>nB6?U>84ZM-n3YQ@59C6OQ(bq0nOoG
 | |
| z#is9H0`%V1!ngE2#y)gl8DFKu4GheeSmuvp;YwH>?U;WZ!c3=Di>97C8-M9XxbEuk
 | |
| z!n1sboZ(l_aW5G{!s52*4ywHS9$x(nN$NcDAo~#%S3s-qH2Ye8)9Aor9@+qbpo2T8
 | |
| z+2rNC6yeQhS+8ZaBW7h&JWUthX4b#rLXhfzGV1v>vR>{4!9%lvMj3g<7XME8BSph(
 | |
| zGJw~$K5F2U!WMvAb)l@L3z<vI8wsDQGYjytaf7EhQW|Xb-U%6(c9lFUw_^bR>!V!g
 | |
| zFTppj%;7CIyk()D3-vP)R-8nO+HdtXf19!(FSI}*cH#zy_wSUfXxn9T4C8&&9O`Rz
 | |
| zGL-@EOmy-O|2+71n1#h&phyYWAY>0m_9{=*Bm8U7a=MGuKn}!sOCha9LSHrDmOuNe
 | |
| z!D9Le=Sp+Hj@*VelKLo?j&5+TH%qp`LQ??)CFNO+!h5b#Z2piDLj;<{h7f`oLQ-HE
 | |
| z8xsx8qNj3(+$jKvk>y07(f=jC6^~!q?ajq_4CO03bfQ`_HaB@pZm@1aUk~1gjFHl|
 | |
| zHpQ}IJA5znFDFf0_^m`wz7tM|sXa(5<BdgTvV1pveLwX+Bm*;AK)7H;u4~aptE_Wx
 | |
| zIa_fr3d0dJ@y(B42d&m16c^b&GSSz;J0OZ3?KYfxU^P}KoDUiy>QsXtq8J=)6H%9I
 | |
| zJ+SRvE=<`inb+TX6STNG$}d560yYPmP;nKvFLl2sx+@7ViH8`yQQu%m?5e~afP(;Y
 | |
| z#k;%_{q)_2C`c?_r6GzMqNvc2YmobjP+d`Trl__Rr`@xYgOX8qvvgSRRk$BvlfHeT
 | |
| z8z$hky(`E*2$@5bY^pk!_Y&HzG{Kg!QZYCyZo6p_?`{7Ob#GVV?L8^mJ0eaCFH+4|
 | |
| zM$j6!3xl-67%>bJn5wH4ei<)=n^*^n?%6_@#rHI9a2qG@Q=rrSh%wg<*fvYTE_g<J
 | |
| z>0Twq&dlNwX^+u2&a*jDj<5@;Qrqk>sy<`+MPHK!Uu7{0%7Zndk8h|?y#Wqv@@Yg`
 | |
| zx;%iR(NRNBV(B-QWbk?p7i)4G;~R7CKX?kW=ulq)lTbtBWoIwFIHYUtL9<li5sa*t
 | |
| zEuKR-t&NA7Vc8`kv5}Y*M|ek@7}N0k&~I@@<Y^Iair}68KWQ;y^g;kmNjLQXl?_WK
 | |
| zBWJsK>|{FnhARnvT*qM=>o`^>#7J*B;tb*Se-|tEd-^Egs#*_@2^x1l06<`#NabK?
 | |
| z<!~qCF5_s4y%4CAoeZ-Tv+$IRGt;;q%z@tEO%9cvr+YW&F$f9}&cx`3I=Cb=#2P}w
 | |
| z+?;l$;%Gla;iQ@EcZ-8j@3bZvG;QJ)T(U=SD{T+rkBy4Q@_26;%p$X77|S(AFy`&C
 | |
| zFR~TtB&>;EnJx5DdCMthkMQO;7XBZ#NKdQPmK0h*pY@(O#<O*tXXjW?bhPKFz&aj0
 | |
| z-3|2A@vD9%ZDzR+%V%-*aMtEhOL&4Y>;A?hHw<se*q4eTfB;A!LgULFG4+Iy0M_Qd
 | |
| z*QBdWTHnp4?+<aUgn(5%W^>)|3g(ts)uqrK^J+rZtem)k3dyxEzMt=lYLw*_q$0{I
 | |
| zF>o^L(fh?gIEx!OKChsc$UaP;E12@H(>k#qsNfMt97#w1Dr)r-bOKY<0iibX`bWIh
 | |
| ztQ->HS?WT=#jKH)7P#z{KrEUMUaS&;gt<sodZ1k;kd|id#VP?{n&q-mIaS)2;D~Fb
 | |
| zoa~_hT;<^jSKtg0NfGfnCQJPQ+|cy+J0CMT>#1Hi+GgoP+I3A{M;7ePWg_DT1BtH+
 | |
| z8@Pd<X6wA=(G_^1AwXC5U8g<%zzSCTfTIBLIIMsm)q*TefUQ9Cq{oV4qR@D{IJAe&
 | |
| zB_A_o^}0h$x(|(=s1h|Wm>LW0^<Jhohle@irwsOJ58lJT3knsertB_AM5hb)O64C|
 | |
| z#0ht>74Du!H&!TEF7TMfpstvMTg(zl1Ip+1-#cT5(X^JIOyJ{LXz*#mgSLJT*1VL}
 | |
| zJnqPaPV+#31HT|(@)TjXAebl~*fKH0eVL8<pF{0RUA$Ddpurn;u^Iw063Sxi4rZ1+
 | |
| z%NY1vDE&FM%LUmE$>^5T+m+pVga1&HHrE*J8bnN3exs0QLn<*9Qi%#kB})CR(D!dm
 | |
| z)ZG47==&S@h|>Gi;LBK#nd0+DH3%7etS#@tSV6BAE99LKFEA-INGX82PQ5m|;4xR|
 | |
| z9+!9cpn}=1(9C4--~z8JROSrblj6MvNo5J4nQ7iEPNkCR-oBig7@FC`+nrN8gzo9-
 | |
| z?d;#whclA2H}cEzQvQ}$nqtpUqZjrHkWAUlF<;&0(hiC|Q|#i3HY4+R{Q;*%*ZWfA
 | |
| zcs2bm;tq^&jqAu%Q(E|wbFm|4^g`fgc}^@prZ^ILY|2PSLTS*sO#LCJJjJK?>LM1M
 | |
| z@SiNT2;RC|Za!;41TMiOQc+RfB%D7Q=;<%ni}v&+*1y6K=(L^Q2R!htQ*o?74Wk=i
 | |
| zRdN2{QZ@7poE{7=4KK8Gdd%O|vyW*G6CHk)rc#?AhAr(tp?k8GE+*RtuvSg2Jo|Z(
 | |
| zgA#g$|9MWjUapk^HS!{j&@c#PA$*O4UE&DoMT*;;*V(f7q(-vBLolROtY~J5{oZ*q
 | |
| zE?X8a0q~EQLbnX1WPomJ(Q-l<!%W9c^CLkaQGL>LeL5i_AfActH2Otoh{$#{LL|jp
 | |
| zMF;6qD*d3&a>w)z^!M0x>MR_A)D%VPZc1NFT;g;hBi%C0r{MND!u?e-^A+g9QgMVo
 | |
| zXI7wi{w*;ptQgEaSRZMYyU_PQZfp2O@lnh=8#J}daHwa<A*Y9vI;0cZB^L{8<nXlf
 | |
| zajd=VSCrKYbPDij_*3DRyO~|`EVmYxhxd8{f!@6~tKI0Ol<;uW?w{CyL^xALaGvC8
 | |
| z{<-B2<B_rj`542aaJRC@+`|G)eUsM7NbuLW)OQ>8gy7BvH|odLceknU9@mc%fN{}a
 | |
| zlM$&lxKsO4IFM+cPE6+KOurHRpnoQ8_F-$B4egp+XkrCp^VFq~%d(AYk4P_pUkVen
 | |
| zD}}FE_>RqgC{JCCCj_--XilNxJ%Gpo!iV4s!q-kZlVj2efU%%Z7tuG^h4rYV!UxFP
 | |
| zcQb3&q`f8S@jxxL;9HQBpayn1975+dPk6P1*8}t4iV_Q?wzm_Lfrxr+K72mD*bNGw
 | |
| z3l4(&jDk~Sp}LsY)cpj0q;{Tmi8!({XDE@_&BNegG7U81Fm}V62v(-p&9e_Wh2CwC
 | |
| zV6ztUC9&P1I4(4TFH~$a9ZxCP9~+JlA2YkONvGmLaBQKmmfJ)`L^BVh(dp<MZ67~R
 | |
| z_^&X!F)&JF2&0#{%-|i=LrJnZpZ`x;RD_tt+v(rz8;#B!z*tW<M!WP;E@ODIUPixD
 | |
| z^ie7PIuY=g9bJfC*8V}fSHyghPoPmm*2m*NbNo$cw!nD-oyw2LNpHouzPULLugZbN
 | |
| zGGP7#Hy+iYVvA^p`)V^aO@<zel`yy6E+ixClsL>N=g>+imIGt#^R8dVU~pL}aWCC~
 | |
| zzx7dhktG+24?of9FFBDcW*k__I(U>-1OwkdR<W^LPXf8M)-%qS@yy<4Ow)6a4xa(9
 | |
| zD8j;$DCkik&0QYp$?<0h{8_$ztUaDidkn?fP^o*o1u!ad<NMw&hI7HEF;+)!FpFMi
 | |
| zX89f1s6n|Fvf0q=^B|I*=C}3MWHo?zm2k*`b63a@`81iW+BA?BV9Cax<k#B0Hb1nn
 | |
| z^B9u8-&POB-nk(Eo~9RJj(9VoR(izvsggJ#ZN3#Jd7=<lXw(Z0eA5YsBk~dr&U#q5
 | |
| z<aO4;Q=b_pIO#Hf9St@;F5_k{=gKY|ky;JHKXnL^n+a%ND@Owp%8Be1VEi<lcf?x1
 | |
| zp9d=7waQ@=_-6q_5gX0?glK~BAi*@@JqSBwKJzCQ9q=}VA8U)jW?>4Lc`H-a+2JIS
 | |
| z!|}?}f6o-~sQm3}V3i<|>EN-LhC|c}mD9@DM*AF8>8E!D4w=WS8H79z5nR(9o-W!(
 | |
| zFfTJBmF2U%H-)W)pr1pi60m>agE2zgI<KCc<MgJnp1RSVX8(~{as%{kqv&+ABO7z(
 | |
| zb8%h*4o^D0CI+$7A>F}@H=F)##U}8HJ5<gG+hU1!zbb0HZq=A*z94I8Q>gSPrYWq_
 | |
| zf92BJ94<N8e9$V1u%{JPp`a*KVsS4yDL62*EYQa`Wqng5cC!-Fz_~89zMS->H%HzP
 | |
| zM2iJqAa9{lGSzbO)KeFnyBc^~k#P{U-W+pKyNsg{YH7@Zdb`mfn(oUh_TEe#ARM5%
 | |
| zf+(FutvBGd2fES>7qv34+QsOWCRzR?3KOU3FpJ|##5^Bcr;EsYGxJq0m0`KCdg5to
 | |
| zwL7u*L#?}7Q<m#HknG!fO;uU0(QOMr&!|#;w>fE-z;GQ5z9AXtNZ&)}TQ|*}VfJU_
 | |
| z@=eKY<50QxA7MW{z4XH!Th!oDu_ZrXCSP=l#XqI)dIC^fsl*AkGp`8R_+wFpX=80U
 | |
| z$Q-?S0T_@BoRW2tIP6J-C}#?;2kRSVv9xrSE##|&xGP3d`SC7KH130rV2nj27fBM5
 | |
| zu^*vO^U^Vn*bxx>bg9^<&LUc5@DZGStTr5lN#SbIGXR6(G2-_88nZdv5%z>)4_Kgg
 | |
| zIZscU8!DAY1C-S~_T#m0FiX&;Th=fO#w#M~oV7H+qq^qXRLb)9!rH0Npo<abc{sGc
 | |
| z)t1-TTZOJEZ<D!m331y$pJ$hDM+v%2wOl}gK<MU+ipa^Mv%>m?{x#?xbHLql5qez>
 | |
| zya;+~G|^KbMUvw^B10rS)lm)LX*?j+A_yv{0V;DGbwzlVf7_{LTk;+bF?k34!{nFb
 | |
| zRSsfr^U2<|#ws@xwnw#n%_X@`@9xlO3v%I9m@gzNT-CezLVwGp2*@}q=FfxUzI$Kh
 | |
| z?uV*@I&}YQ5oGl34(v}8kv`$i`!VT(aow+JF&~IZdl|KMbguv4lsmM0)Y=DgPj5ze
 | |
| zVy&O0?9jviT|fVMry9(WmFJ^!27R0h%}$Pc1V8zf_p`{hP)R%5VF$5U;d3}d^Wg5W
 | |
| zw}nx^42n?34sEd%kn)t@Kyirpq!)fG{n;cDzC4^2<@iJs-95t1ZR|=_(mkJ`*c7W+
 | |
| zVmtbr_LrYVA?^&;Njgkp61RsMc!}n@VmjRhU*0^e6V{`QetBC$qZGBKSZUi*c-7-Q
 | |
| z+QI+9YE7rMt-iBY%{iri=GnXGXkFI?ypQ*C6O2-q3<D7|B5D*NK$rhOlCKE)bY?zb
 | |
| zkCLI;3W4c+l>CSqfF?C$sgPPhg><g}tW$5+egl2Hk<iDxmG$wifj-_PzV+M=^m%4b
 | |
| zOG8U!f*Kgq{`2zopU0i;KDW02T+#mX3I5EFXbWOV84xZFSBCo5%7g+WOj3Mn>&5qv
 | |
| zG>a17+D+oCNqjYkuh+%bN3wPCwOM>+i?2rURf1)kt%UAQ%8z)T(sQtw(L_*;>_93b
 | |
| za!nB|3AD1J-uQ1&e18QMddv*axPaYQk?0REGL<&aC}PYJ)p`f_F8FK(aCA|BARp*O
 | |
| zA3(|eiJ+FPdOuOUMMWrvQrfM8XkEkL(tjcvjkiEJ?K&Yy?f;b!hxEui1%o7lkuRTs
 | |
| z+bACVR<0|l8)Af(2yfv%c+>{VPnl+pgJm4)m1xp@>`sRx%0(=nM{vxt1t;HimEQL9
 | |
| z>1gKX%1LVp`LPKFJ`e>cTR)SzJv1;O{FcmFctO?h!!l$1g&Acs!*gLqUzySA!i<*l
 | |
| zB4ay%wCfh`oz6|>cBRoeI>F7d%!jrzG{T-8!vByt3q_887R~NZ{u_Q+W{kTqW0=gi
 | |
| z>B5YwWJc138K=*QjBn0eknum6@$U;W{vtD$UYM~^W@N$Q;f!2_@YUzUdmZaph?i=k
 | |
| z7tWt9G(Y*-4sX=@7y2rphC!%iu@Yy2>%f;tZx2$rUwR~MT*x*^MAcnkq_WRJLZ&-L
 | |
| zD%R05-#i8KLAy&BZfLh7%<|j;1&O#w+6_kk3^oSz_T|8(!MX+DBA}gXW;qpyonJM&
 | |
| zp^Dy}uwD)-EoyZ$LB^4Amq0alQR_{day{EWsY^dqkjBsaY%ldY_-|Rd(}mP)xTL28
 | |
| ze&fCXemw{UevZYqeuTo*dk)@g%zxe*6IKxm7V}|jMJRBskt8zDH|M*!STX;3D$om8
 | |
| zQ!heGkztEkujG!e<yUTgyKS8(W~l~VgRA+a4GCC(g11-rTMN|SgBCudMzI-Yy27F<
 | |
| z-bJy0hS)tr?41b5(NN8HA<J!q+?Br<#ND$NaAH0$B_!0c`H59B&g~3UrhXfr(DdJP
 | |
| zH_I)KsFsx{Dg_1B`8XTO@G}h^f>m?C+6WM}|7cvw_3e+8pMymS19uCVoORHejuC74
 | |
| z>Y~=Gn9e&VM&E_Wdh<$RLc@@jENUIVi}+7o#4zu2Hm3x6Z#`l^gV_Qm1fJ?3pUu}_
 | |
| zk4bbzs8imRF#FkU)`i5?n&io9u}&bE<RipJ$$z_GR%)$NrC`Ucc@-XtuT$}J4oi+3
 | |
| zkBvtJhWQgKCLkS`NB43SXo{KtAu@d(&adFuIQp2n^jkjGc!8=Wnjirmy{+>c9EA{m
 | |
| zZ+c_h>J4U7HCv8m+wsE`MDm&KVhK;?F)1)#a)d@Q8lD}^L-cbkTGdmz=Rcj7)J$ww
 | |
| zJTz=3a$?Rq87XaBDi-P?7E~5+p1Q2g?01^z-McZkmoB5GGvZB`BJre3i38$^fRu|`
 | |
| z`|<{E;tjl-cmGicqj_l${F&}RIEl-#en_APmt#|~AUwv0#G(>;EnXX~m;_0;#LuJ@
 | |
| z3~!bpkUyEjOwwiYWs$PJmT=8{|2%IKA9H?tA4TWan4YCK;GEAsX339);GWL<{=*K3
 | |
| zZ+NbvGl~x1%LZwe^GF}%<9P*-^iPPQ`15T0hIL>1%MJVIVd||w;P1@y5_f-1T^Pet
 | |
| z(A&)sI?8BKp5h-{(cSgj-84QU{kgmB_zMU0i>_QE&o!-GbK-caDdR(hmc`W?0oX#~
 | |
| z<a&1Uu@{G36B-KEVZU>~eG+#qkq@a@^7LG*c^3@C?{&d5Q-VD8g1qRDvi?+2M)HZq
 | |
| zh(gRQcd3*xxcK=>efm*cUM!1er};9%;^gqkfA7S7+7gC*mR4pBX1tPDV}DCD+MI~c
 | |
| zk;L>IgA4S3=2*`UJ87_PT!(Iqs_5`vTc*Sm3hp?}Vqx?5KgNN<oDemBd8~0i0=sOw
 | |
| zgx3F>`1(K8Vja|sx9Q~H*AnCUKV&_YHx~2h%fsUL5bgu`R6V;`Y{)ieT<4@iNX);V
 | |
| z5_>r(0R6h$0(QntOk?&yR*{s)+HJi|*cDp(i^c<8li7n}F&6joTdcUamnK7UIX%Pb
 | |
| zcBw4=H>)E}bksC}(F=Dp(5Bb7R~r`+>aP60HY%4JZX#MbNy_<M#v^WQ(W%2$uuP-G
 | |
| zjq~y62+tNlXUsE$98zxXgoBCilHv=0-VoMw!M$@+_~DJ(I(x(_PFwp1w)Tr+#qlBQ
 | |
| zv-an$ICO?t@!}72nBNaGZ(W8Vet0B~qc1tia+q={DmE`UEJDYcyPH`SUxv;;`9T!I
 | |
| zn0-fpKOZ5yA-btN!{VAOPu)gFDRuiOOWghYDa%Z|lpqHnnoKMgZiiUUqv9+9(}FWG
 | |
| zm?f2pEjfmFPRxJ*lL{}s#7*e}=eW$SXJf0h9;A!8^V!%@JajsSXyq+7H9D!GKs%_Y
 | |
| z^if#M%T6;>YzUvB{h<$IFw=78nIeQD?_3psM*WY@oXi@lRw}ft8_%%@_64UF2Wf#P
 | |
| z22%Opzz>)$Fp)qP9dEXrI)d6FB<&JjO!CZ!O)RiWARm?)f33^+N&+sPI)I87>+qPg
 | |
| zC{bK0Ljb=!8GoFHzuG4dj^n6Z0p@Nq2CCHH6;x5cq_i+9ONeDwz|Y92EFzNW6#e@<
 | |
| z2Ru4B!}Dy9Z%>^Dy}|K~DQP5<9;T%5p9v5!SY$9@6ptcwlV+qvocbnsYxSN{H_n8F
 | |
| zsMyFyMCU(nMCUL1wp<X=+1o*c?1k?%N1gx61W$A3j?mphBb{k4hw}0%4LGsu3Z%L!
 | |
| zR@r;dW*SQubH_OjBM-|fy4&mD2|6A2cWN$pbZ!COi7oxO7LSN?_7q*Pb@f3R2C%SQ
 | |
| zIF67j$x`{UR&@XmLz_t@J<VcxXPO*+rab&mQ?YC63~feJaq`0t74<_<Xbd~SK5Xq8
 | |
| zUtT7$@!k%;xr#%ZVyuqo{oo|+lR;0cAx~>^<@JkMoYBWkw{_xA_)DYtAl4A(W8Ow{
 | |
| zfIkCu@%c8P#>vNSeXEcjExZ+D@II&S3(w%V0^kQY?wr7l>c&as>c%I_^S@DpSqbb`
 | |
| zu__zU(OZe+xKr^TN`O9w&WZ{@;o3e_M$|V1C<Qai_+1YnV9oKTU{K~*&_`YcEZw&^
 | |
| z3fL-A%+K)I$Z&}cHJn~pLtx<_v^ho@lgf1A`J~_;Tk9=9v!BNWeQZ?t)9qV-oLiSI
 | |
| z3jZ9?BN<x8sw9EsJmSH&Hs7K)3o6~&)Tq?JqFdl;-)KK>lvdgrY8Yx%v;@{TR*80J
 | |
| z*xDUQ?dE^eZXx#eZ`bN4{duS~E@Q0KlE1;JFB6U3Wot~a8j~oIHgrk*#ummKqq(k<
 | |
| zjU`w!9%5^3^-0-Sd=Uq=Z|r7n%un-m$qE1eSilEPUSt7}WwmSYK$bPS61ZT{zgB~_
 | |
| zbV}Dtc8pnvq9cq)4_n$~{ijBwl9umBTtXPA%Qw&E2$i_JiEG{nvif4Nr5R778HZY5
 | |
| zoS>pF3v86(C!*@8>ADFzoZ-wf?B0h_I$J7^Mfty={1?#1VC9ogC6fjIO(M3~JCDRP
 | |
| z!giqa6DYl=Md<x6r2oT-!q^}ixf4!+Ko4IlKoZ@rOQ=g2;Hbf*GZH?kfph4rM{uuK
 | |
| z4Ijr(j*9xjX*jhi;pmGMS#*;(d%rivu_~atad-yyXnqz$o&R~Fp$A=-y&V>=6ahWn
 | |
| zI?aXy;wsO>TVRz3-k|PO^ftP+8UF7R=w8CORG5StC2%HQtS)VFG8RM{jPNgYN{hXM
 | |
| zS?&y#Js$w+Y*B<0k%@33aw9cE*H9P!bBx)gh$E#g{lUp-m7Q>H6^7`10gc&Z`9JBa
 | |
| zSH-$rMcr1Q@G?$=NesLe54mVTcBT?92y^WrJhmW5KJJBG<Iqb+iST1{g}%wNRr;+N
 | |
| zBplZq52c6LS_z@D>ZF|z9Nu%RIvqh^W@9;f81o8+-B60O!A;|1unE*?5!3&T`dk-t
 | |
| zd2y}^8VJ^b84uQJbXmx&<e%1;t&YuPb@75uxV5`8!A}^AIR~p$?~oOo7q9S_3oCqW
 | |
| zRY<sag*g{iXu<F{yTpEe0&T|OSmwoInX!4RWYq#uH6RwdPF;F4Fi6)ZlM439ih!Qx
 | |
| zgW#I~C%paIvm1piOF6Qk$0z}fm0d3sjr$`TVor2jm%)!)UEBVz#-hZsgkAq<WBZZ4
 | |
| zUIxmU&5c!um;awbdmqJrkbReOaiVWdfr2<1e)~Kd>e;Jp=F4V2iE0_LmsBz2PUmC(
 | |
| zH9d9X*n#_4&(6^vX+GfD8$z({S?+YtQKQnGe(vPoi1veKaK5D!R>WEygXsJWk)GVC
 | |
| z_y{88D&2R%ZTlGZq>;yRq}v-y3C>C8%Urk6VQE<i86A5cPqFKNJ+mVo;=rKd=F``S
 | |
| z=OsXzmak%gKFo)ZIpaFX-1NcgC->-<zJf!`h2ev=LV9;5QSn052d8vJEYAv@VfRh*
 | |
| zwacu4mdtjR90i{MktX73VC^p1@35kc1pg}39ud3%k;%+c*E%fYJtkq|K{}*U;!pQ7
 | |
| z<1~<XwBDiNF7~{}r@(j+jH0=EuXy|O9z>83boa(LOq3&-nmOkI1oVx2D;BXwf-Avn
 | |
| z&Ab-Sv#1&pltMQLVEJthR&|=5ibSv!(!bsiCKbV0&^q2cMd%2_kg*8U8SExljAHo>
 | |
| z3%i92g_^K2%$>hm4ZVixv>3Mrqu!(X=N#UGpnLQhq~hJYUMle&GYh8k-dzS3=vVUv
 | |
| z)&I03uKs_6Ov8&JbjK{tc;$RSB1EpXR7Wyk2Q*FZCTC_ow~y6e>dY-B^Mf4yXTz6t
 | |
| zx}j#Jf1cl<27eQcS<CQYn;&789J2}!72bCC5)b5aIIM>hrn9g84PQDW7YL`)>XPja
 | |
| z#tirvlrLN>>*7;ge3OXpFmOn4r}kv~_}zou`CBS44KH#Cc_7wr%lt`l?T(AJlOw_s
 | |
| zZgBr{3C~Pph`~J<wC{Q82W_#Qz0dRe{=mp8ntQ$XE&001^9~Y!A6ce<!TARf=z@b0
 | |
| zQufWro<`Z>tAtvQn<(suOh~bDc5pH>zUJ-XZAqz=i$3~?_@WQn9hacG!`0^)i(`CZ
 | |
| zK;f?dZMg67Zv{t&h{NWwF!fq4hJklu^BYQt1TLcAl@&tBDDhNQ1QDG1?QY^k7hdhK
 | |
| zz=+;pJ~}TRLhZ9Bg`@;jfSEBFKJfVE*3zUK#RfS`zhFfxmVlIe6_-5x!S;J^HzjV-
 | |
| z!YQ|RWB%F)p-~b2MoWob#rwWn_6^Abr7c3aZlVrDuzZ<cZ-XwU(iP^i?(H2{%DTUs
 | |
| zB9__|vE*TgWPbHI4><#ctM}sm+y}A`Ym)!P{ND;0++MRAg7@-NGY{7vbOL4!{`}(4
 | |
| zie~;d7JL#5+@GHnOXDE;pitvB`wRdGw7)3o&C*gQ#j`gS^>|%e9%=J|(C~2_hBrMy
 | |
| z8;@|dIsy!40Q#E)c5^<j;9rnm&uSJ>?!g|qo)G>hytn<oe&f08<9Lf>(Bes!fQxrw
 | |
| z^IxA3S#aR|h4Clpu=NOmZT8a&n!WonR)s%}J@VX75DzUZxr)wZ43LK9P1qCfdE6ex
 | |
| z2I-dMYMclTW?uD~NJoRaz68FyH~t#&&$-a2>0v2mTJbPP1NiZSwprZ=U|dYL!E}Bh
 | |
| z#bH~;lLlmw=GTw2?#zq=uCd^k?{$^mJKDY1nFW2o)!1I9Rq-;-mSYcnDuD2{U&4PQ
 | |
| z?b5x6gxzB|N*F(3QbRRzljR5N7t?*!cZpX_#_4X)R@ygK`X{W!4sZGCL=B8{vG|MK
 | |
| zSHkR`(B-}u!ern#&;nl_9v4CIgdT)=!t`z6s>N_bsRrCaLM|I)>|Q_F()0NXo)l|F
 | |
| z<*K!tpvm%5f~8Zb2H`iHfE9o{lt4$o&sXjIT>lT9IPAzM`qoX>Q85?&oeh$?i^Cij
 | |
| z2;TC{mIeldX{^n14k~+yaQrR&f$d!Y1{3L~3nHlzxlYSsXli2&+rCihzR6cfe5l@_
 | |
| zrO{rcSejAWiDPUYlB=kJ&KU6!=DdzN#l!D+5+8e^CK@=6cq=1D8J7?m=pKH<6$|@e
 | |
| zTnc>t9HzDLv5fqa-XD!Sc;bIY4fgk`Kj!wgM!h*wW~*gUPmwON{xtvGjHvf=19F#>
 | |
| zq4|~waty|o{cRlRP4x;i4rgI8pR#{*NuRQLo~U`^3v9xe+^QYEtxDC1T!Ct|4!&&(
 | |
| zRbz4q+p@oaX11a&=Jn7n1=h#-u}k9A61`MT<1^A|qMd2}k=rmsEl=HeM@Ig~1RstO
 | |
| zbOSO8-QyB=3^A(9iXKasZ|vu>Tj1q`{=jaB@L)uR*4`9{!662k4yiv_pCIh}8BF#9
 | |
| zTvThv<m%#~<e)3KSMLVNq;`E=zr+}x6<2GLjs%m<Yd@3J-F}O5b!*aYl)5l~xKaX}
 | |
| zAHTsX35!03bum8=Vx4<aIoqYp5SO-Z`xn8hcHzBb2cIIB8hin58??+Tc-x0$gV3Bn
 | |
| zqz-%LMXP^w#@=8UMbz5hDa$#`lrPzUMH1+iRy5wjoc#fvq<+1giZ$_iU@FG^vw&K{
 | |
| z%Pf0^UCCo;7VqE)MhS(qIr3ecOHa_Zb7Jh!u|3=R1LCG8oR35IA088n=ZBl)9ehgk
 | |
| zeQFgV$b^I&i;#GA2VDhBRx^pH{Y-uqQv*{Jsc0(fiY*n=zHt@O)D>ycD()u-3meyn
 | |
| zCUKKFXki+Jv6jUnEzH31;8qdeRi9sBgD1iFAhI4)h%^0Wt3<mi%kd`gVk@hi`L?Cu
 | |
| zHpC!O;2}zntTp=kHnTfsR;1u+VxRWLyegE(RWl#I!Eup=Wc>tUf<Lu36N>#<wvWV9
 | |
| z7?fx~6!>btc(Drq6(Q+1@O15O8@KGo2?-asNyvwIoEw9z$EOCbpaF-KRu(P@7a(e2
 | |
| zLtCr|vxWE=wo(+Hm(`68>oWY3;HY4YTs9VYej+t96;H8G81(BXt*r2(>^W)<!?`~3
 | |
| zDjs^+Jm+?C7WSa|SI|6+Zlu_4_<tA?F)b9{#vbcoi3M6JZ3nO#dsGfzLpgLyXp4qp
 | |
| z=nNQHgI4%3*1Pe^MJ&Prl<#{Ww=Mi=YaAbJf%2#MzXurOK!6<>a6X=U!t_q1Iox<Q
 | |
| zE`ARXx1~2qf2Z;-Zzv#9>qPNwN$Wn|=aBI)##q;_0_p!kdTC4CkE(n`7&3~$=KN7I
 | |
| zt}k)w;cw5zU5U)6T9N(i=-jgJ;P|Hc#~j@h?qZt|+f@I|8tC5Nu=PqA?~RCVN~`Lf
 | |
| zATN-Jp(d<?ON+$Kfen;-^=0wr(k~v4(?(a`;E1`lzG&ppa(5Z^cLm;^VxgN$-IEFb
 | |
| zTn&Fa1T?SI&*~=-m6p#v!LVo8DT?<!;6ntgrfivo+kuj%_BvgorFyezbmw@-@gnB!
 | |
| z!lg>^p=eBFm?-GcU&qJ%+w1XkCyrV)ev-4PNH{MlF8T%histSUs&w}ZK^eOpKgcRw
 | |
| zgvFkqNv4M&!;m^!{qBh^DQwagKHxtyAM)36NLmWwjpG~F`p?W$1Fecf_;WH+xxKC0
 | |
| zTXN{;A8pLbKQgTz>6|l=-|KzGBHp>a(A5qka3|0llY972htyvQK?y1Z?xTh7%o-5m
 | |
| z`f&!LJ0=NNG?{|=%>Y8@u)YZ7OH?`CIzoH2)`U|}y+-HXVF^Oa=KosqCU%2S#Hu8L
 | |
| zQ~+YuxeBO?<z_f|1yh6O>?($j;q@qgGZ$J%_50(1A=LOYCzxL_|CY|U6TzgY?{!hz
 | |
| zlh@=^Vx#B6J;r|oNXq5?B}OXzn>Myrk@NJ#=NZ0N%yUp1J3Y(*>4=EQEbjrm0IybV
 | |
| z42zLSaE9>M;il>>Ymj6)l6qY>bcU{c<bzNt7jaRCYi^dM%=xm&XDIS}PhGWX5dRo%
 | |
| zWX{Fhh`{3O1hBh>_m@Ck_?`21eRPK4<2+HgXz=V^bYxaGm3#4yXml+cjWX+0bcRlX
 | |
| zP?pL$M?Zx{Mz1nfm(^1>;e5W^5ss3)@)-Rm98mR#(%pxSG!}%>PpIBOgQGT?>;Jr0
 | |
| z)UTBFeJpHR$-eCC^!`=&|EOM+@|CCw&V(qmURhs>YS~|jYK32MwQo;|YNcO^YBJ17
 | |
| z4!p6{P6mhCOYpjSszY{IO#iQhHn!fMO)`p#scvK9Ba}R;G0}075PD-`9kql1y5e0h
 | |
| zhb`q&%fOZND*fCUqx-zO`4X`zzzq6rreDeleW<o{(<}fzEOUvK2Q^m6G=hk$JR}E3
 | |
| zqG!a7>tb}nG6NCb3kve6(XEszO6_V<##0AO&o7mw(mzrTEErd!7>uT<Xiv{p#L@5<
 | |
| zVOt#P3-wlb*u$`#%0VhbfXirGeMLM;HTVp6T-ayo%iYtn0SvHy=nZa+J<&)9HZZ90
 | |
| z&CBWN{kgd$w~zP76<nmw+bMD-@#mOQSG@mte{L#<D?|tL0!Qg~?<V|)M$O-j5P|OI
 | |
| z-j;u6!9R>E^(LD2DyyC3$mJKb;)t~p8mACNf<}r%1JjIDJ{)_4TNm^*x-o%h8oh9E
 | |
| z1Qu4dE8lqbhSJyM?@(WB5b8rtZ>pb9qoOWZnkudlZ4_+u1@7Q>C}q`B@ifk<D`Y%|
 | |
| zPbd+Dg2i?kMd*z(jw}@})+}8bf15*H{C*d#>Pv9Q%B_k~t&mlw61}N>rZk1L4;?X2
 | |
| z;2>4YQK8qjyzp9<1)G0=B|n9AF;bCZ86pwofiLM|h=bx-X9@{s&o&$&L5utFJ8Is2
 | |
| zmBVIwI5F-$1f<}szLH$DWF)LCE(vP(Y;;Fop+OAu^xk(eY{5k`FBQLE$L|i}_kR3t
 | |
| z8A-#qhR9I!k>2!Y0zqjr7k_s2R2<dj$N1TS{;a@#YB%=nJz<J|L|%nEQ(`BTZE?LB
 | |
| z{uX5oNWle(Yev>Ot-)fTcRVe3lS?l82tZB5hpzJ%o#P9!tS-EfqwTo|cIG>x2H7Dc
 | |
| z0}!D3r*4Mx0lraCRFb-$tB5bxH-~46P#l15l8|Bmqy`>MfhHV4qSWw{x!4#rkW0B{
 | |
| z=6S(=JWbnNZQjsRNbRbYxhG^Zvk;*F)=zz4+Wl1l_XO%-t#_7o<C+-{O>wjbN_0gh
 | |
| z^kLENefTfno<jeLILjP=V4{0M?M)5|BP?dt#@M3ZFe3XJi<Owe^-y6#Q_>^%KmJhD
 | |
| zFxQP!rv0{YSh8ci^d<;jp%dbjy`GR9A4U^e#)Ap1=2>u;y9qF@!+<&3Yu9N^;bU?H
 | |
| z26(Cgw=bLdBDBIT1U7IZYq`>_nEn#lHwR3LBj#s%D7=Da_@XeZBnWlFQV3r6-(b7b
 | |
| zfac79jfqCr<JX6~gylIO=!5c{#BIN4#WQ?VB?cQ?l4F}=Tp{1t%^UNCF3nh0!PA_2
 | |
| zLoK5_nlMpx6RcN$K8dld7#LIFA!c$bHQQJMH^NqWD5XP_Lc2YyX^_i1^?}&kZY*_8
 | |
| zxQYHubXafTq7|*9uiz#%FuoH9uAhL6%laseHM?n=jR~<Xr(}sWD}jz+O*bGpxmiZ)
 | |
| z&n(9EG28^2t?Kru(5EfbXK@^pQnXO-7A<^}6ek$ZcNb~>sMYmTmNDwJ2^9FqA&?}k
 | |
| z(aswc_9ED1ZsAH$4P4^jXD{>f8!Z*aiPZSo1JcGE=<07!WDxw$1bn|j-y)Wew8ejx
 | |
| z5+Z%q`5Z#FYn|}tWjz%6?M>o@Uv(32)2<=-*x8@QW8P|wMp&#-aj2aVdr?LV=LsRo
 | |
| zj`;(VT7(R1Ig=)KIS+m%hzFs9DL^M%ky@wk1yQDy%XG(4VxlS-C1l^94=}On1xXI!
 | |
| z%pz~ytRR-sBfQk&7z+k`mOF)?NRzFnMux&Kjo=ukuv@kql?eY5R)NPyu#_Q%We>^R
 | |
| zg3E*3WKuWg?PaKLImAe@yy18tOFxPN8D%VAB}@SiZVQDj3HWa+a1sTQP+;fUKH?6!
 | |
| zWKfJ0?&35Gd_Rm^&?v1L=R=4gFgyV2EtCt|+{dg<Y>r$#83q0_j3=0E;Vd{8X_MCp
 | |
| zZ$T*IA13CA8A3D9a>a5vGN%m_fimp#g9sdXcktL)ZL+i-KJ1I!EUvlMkswc3c}!#a
 | |
| zdSs^#W2of8?*pSjJ%Gj#5kNkN`bk^D%5w*t4lPmN;Xk0T{$mAiPrRWVRQ_lvPmv`X
 | |
| zma`c#J4UD<42PONDDL3i1w&~0Ec$%~j@{ZQZC))%)R-$H+S}){5S9y~Z{m0SUq?&w
 | |
| zxdEM%7B&jNDO9(MSaF(V7QwxG5sGPZ1w>ejGa{Y^j(QW<;y@TV02u3#5p4D*u0xty
 | |
| zTf`s*D1sJwUEWfjNSX{*md?-B5_br!YFTi1A_g*cmqu&_`ox@I5LEoRK*f(!5q)!{
 | |
| zFZA7w8wjp6!mD%+<Y3W66oN=Q06`Zh6i>6+eV7%xjFpyI{Ajy1OvgOcgBlvqji`?`
 | |
| zvx(SPStOj(z!{NR(+dEQZhNWDz;Pv3qN*2WC>Rk7z|H>zv>nE)v+W-P3uZ|`mEUv&
 | |
| zsCwp;w)zBalMh{~82d_=5eWl}06X{)7=10&cFt`qpmU+`JNcIPNnzI$^KgfCbY;S!
 | |
| zc$=JN?blC9cjQ_e<JA-4748V%rTtR`D4OYzY~x#>Kw<0@kPYG?IBa(!uUewSaM`KY
 | |
| zh|uG&uN4w|#P5`dT3)fKSc%bSa#EWlxp->UO1}i-VrH6xTeZ8f5NRygK+kIMT7IC=
 | |
| ztU$r$U*Q5|k6zDvY0jF=?xeYf8vGxXwdlk&Ps}Z$UW7D*nNu(|D^Acb_$Wlp&O>1L
 | |
| z5_k7g$#*<P%~p1&E{AocQ}EA6Ssw68fj9?hO`<#l#T>AW&%qnw1mHC2MfP*x-G&L_
 | |
| z9N2(AABJ9h7-;?aWzspvSy+h;H%}%=_r-dueXUkC;sWq>po3p~nc}bxjv9mooM~j>
 | |
| z{2!$g+jk?*H&ZS=S!*mW*9)=5E5dJlD$+in@r9o~9upPvmc5R|rDx*OzNJW*A$<7G
 | |
| zLc#(hq=^!B7AqS*)f{W*cPKR;rQSYGXAw{Sc9*BZcTG=N4pp6w({D{(6v^ONJ`=dz
 | |
| zzd~7YWS@dmFi2|XHz$NA_T%(_cntknKkR9C-^JvjRLSA(Z(uDbi)_37T1B|l%~ON_
 | |
| zq9)fPRqpu%=>F}kQeD#Mc1$uCGvaJ8Ur;sJbds33|C7NOA7e03I{Zf}ycT5hhaj5i
 | |
| zHcg<tzpt^>J;f3J@Mn&wCpKuRM3JT&W7u_Cyz}zx-86+-NiN5RdVUKP+kQH}MMsdZ
 | |
| zmbx={j^g-N=YEc5vVXjfQQ*mw{}(V(gMS4qIT}|mlES8c(bj}t6U&%l!2oK1Fddq8
 | |
| zpj|;rR<zsNChZ~S9W27NXNRT)CR|Gd;oAC3(lvbdDHhLi#Js5|5dBc{;^R(m*VC<q
 | |
| z_0)w+Pl)B&O&n(!?>CJJH+lAkyHgV}{{$=g>}FRrE@DVJ>sy+jB@o@@BA}c>8D%Ru
 | |
| z+x3*L=vydNZyv4Jt2K_oe%cj<*J<4g`)WhgT88Ut&G!5~TG|9pUBd)k93k&iYX&Ky
 | |
| zyA-MrrV8H`_Vs?P)(oa^by<Dkb;LzZNQUd|1}=9u%2BfRA+@H~vLq>gllO0GO^Fiu
 | |
| zq}uWiM36ic<ARD+x5@aibK1(^;QzX5dTRD=M#Z~<b@n(N4ej*}#0wB|<@-#xS#kmN
 | |
| zOAOFd4j+B5n2rKs{Iq9P+q1F@JI?7|wZj*_-*+}~PKxjFAWxmIB~g8`u0hP!djADz
 | |
| z?N%_#<?R$nCw!Yf%B6K+*~=;Jui=96jOKSg160!<bE9BLoD&-KJq(g2MBcr?pTvq!
 | |
| z;ev0JqIbiOhH6N^;n}ZT-=XiS54-g3{zIz&fLd=R69Khf1%TMa#L|xX!#(PMOsS8g
 | |
| z`M+1|!|7Cx&+m4WKJ22hLF=6{ja`-qS$R)2_>)k!>#+{+PT*Fq0m|9A-a(6`R_(^D
 | |
| zUCTh9CHc>ERF}-4T-Uhu3gy0mB6p}&B9f;X7^TQ?MuvmK8R^acS3D!vGHMI{FqY<^
 | |
| zx$LThk~>7Ay7cm2q?G(3<+@*_bpAyOOcL6s?24tR`k%#}^?y{n2D6wjslhd_Dk1b(
 | |
| z)Nrj14Oh7Q8xAgy6K<5QK4(vJ4yKedzexG{7b(Ynk#gi0DQ3Hr&^?NN!hbkPt(pjG
 | |
| zP>!AW`zXfVZiGuXbzHj<T50hSwoCc>7b(Ynk#gi0DW)xj##iMG-yLN_Abnk;*!<wO
 | |
| z^DNI#<9K$E)2%(v9AOH-`+@FYC0b}SImJN>{^2~g;bNiyZ9EMik7F1b+Y)}_JZ2m}
 | |
| zXyM<V=K&>@gb&7kHO78rv{}DWV!w{XazBmzT7v+qNkB{2;8mdg{Tr({j@Cc+A8`?#
 | |
| z5lPUSOVpaqRa@YAWX{jNv;DM72?k#SMC0E?_+j@wbZn?d0>QPb0(IJzcX+nuZ(HE1
 | |
| za&;LblU;#2?-6}V#ObMPbaim}3i^3B+*1Od#teVpuW*xElPvmpJXNi^Lm4bPJQ>)^
 | |
| z78QUeX4g$nXG&?fV7&e#J%d|W-KP<{>iTEQ<5jxTwLYOIlOs-jpV6DB$F5RoA|B#m
 | |
| z;dd69BgG^G)-v*Kh`H&pLgjSVyXw8!>0BCZZweHaiTm&2|EOn!M68~@rdChuwMWF0
 | |
| zr8%*SdCl!M?wjaub*M{JDBO%2Z(N`MqZ;@l_P2!CIsg77ZG6FFE~e4cz*7!>deVmY
 | |
| z&p5SP{bv#oZ#c_;#-;W3pGnlZ`_FW!);bkDmdtdaHg-_Kz-P5l{Pzz2TgrcL<G*>K
 | |
| zK}vpuc3Z)~r?jjB?J1XbE&WZ_`q1AL?F#yvrlr&0bgc{h?V%-y%95y_cMF4iE8IB5
 | |
| z4pW@A;XYu@6vIW%-{gQtVZbFcV1jo8G2ZJi-Ya;#DaK$iURvS>gN&?agGaSFgACWR
 | |
| z^!<?ho+iI1$?vf|cD-JkY-Bw}-$O%XipVJpl{v+)n?q#@;#Wqf%q4#H4wWT}U+JN;
 | |
| z4&qlQnise3{i{Ck*>;no4GE=O8FGEiEDpa9C&#EweUqmSlpj9>($3vCF`tl_x`bn^
 | |
| z%yK7-ASJ`bXMP<TgAgV8;U?Eh%&`PIC_+nt!!@=j+N1s!r#8vo!uwf<P$fD3mPD<e
 | |
| zzlGMPi*e_8aG@`|c$KKdQ2OPAnq1Y6|L<QI6Mt)SM2h?jRa~x6Lj23w?kl0)m#f`Z
 | |
| zV!N*n?Y@%y^~sbF>(%=#t(pO*>PtaRj+;nJPP-5WkEjMJ@c=q*yk{%Fm3p>vJfU%I
 | |
| z?cTouE~yDu^5ERJJ7|4<PY!f=ue98EUusd@;ov#xFXKY^K$kIj1;p+7>;`&%BKxXL
 | |
| z#M|Xcmcon28h#kDZallI>#X-e8W&&p?Q>2mFep2<eELJW?fWGBLU<CP@&xBwMmKIM
 | |
| z<*8zRAP2~@>qi3KX*4B3ESvOKZ@`<K)<>=Bpzl#@%6mua5BAv6TE9O{A?WDpU4I~1
 | |
| z*%WeJVt2vH^Nq)2kkJ@qAa@y(!Ls6xMP_itAs)o3U-Qnn`@nBBJ45VY4?By|AvA!D
 | |
| zrlX%Vma#+HDtLf{Rp}_UttgdFFRCisBlwZNSSW;5xTmvfSA~#LYV5AJ%m|1GCKKI{
 | |
| z=;CF6d{wD?qzLp->Yhalf&b@vMHoT-uweANwlH?Bv|>qIERF=-FBr=Se+mZ?FX}%Q
 | |
| zU-apEmXI_@*0-lm1-veVwg?@y3b=G6*ga8)*KN&>P}K<Ho~0x9^hEbm+TrO`W|rSf
 | |
| zAi$?1(gF0nC%XH{x%8M*MCG!C_hlGaR&q>xH&sMY_$3@qjU$TkC>^>b<?e~n=W7_A
 | |
| zOQ7r^{MEutX|lrF**!(r8#pY7uD~pJ#z<;6OZ_+WThl=h5yylmhW_sr7OKsP`<}$1
 | |
| z{z8x$eT>X$`uOtU`t&mO-x0lm+UQ|OtCV6F1Hn<H{z`XGg_+~PK}oiJ?|^cMr2lEU
 | |
| zLMB+wtC9|dYjh19jHtH~h^AP)-~@Jnq&LDwz(`p$O@F9dA6dp>C0y(DNiKb8sTTsc
 | |
| zJOZOwD1i(Aeb^9QSJTl?=st`n4WZ{CJcOQW%nvW|_-D?E>A|b9;d*(RKC@gOjED}@
 | |
| z#mo9*E`2b%sBq``o1FTte5lcQqw2qZRD(APWuQFE>#kU5jrB30myv}4lUQRcFjE;7
 | |
| zF)KJ;+4<*~#Oq^>bxqT!m+PZMw@<kA@vhLlQC?<!Zs|sVcC4&Z4X&eIjyxNSzo7qT
 | |
| zoc@KN8F2T^y{+t?xzXD>@+;^c;W<6GV0MQ0)GtUF??Gd<E4Wij=E-l>b_I{l?QE1(
 | |
| z1ncIy@;7@wA|N4SN5u6<N3X>_BcN#UWoh!MhS;-51X$Rlb@0v2N!I$S8&g@odXFVO
 | |
| z;wPOutWv4OAwHRtOg!%C-F-I^pwzcdXfRk!X05!;F773KSu~~=FY>LHQ37p;Pqj(-
 | |
| zJ-Q11iFtx*?JmR7Tslf|c`x_1-lwHgf33yTop3iS+N0khHjad{fcI)GSiIfld(?=a
 | |
| ztn0KSIX*$s(E&>zk7nu*clIAt^z9ASesKMoWTO}KJ_1|4DG_+*R7!{xO)b8)bG3Gy
 | |
| zs(I=rGz52g({wH+X$l&XTAP4FF<0!)=K|?*naDTRc#ov4faC!_Xe@lg96!q=R%Y!M
 | |
| zD8uG2xu?OxfPz%yF?Fl4uTA*e?4jL+dlj0Y2ziF?dKM(A-k-%98izWH5v#nu!L8oP
 | |
| zbr6=WDRxMSXB_KoCY+2tDnfPru+a-`hEhJ{ft*d!_svN=y%~VQTV}1-IsJ?Ju=C`b
 | |
| zG1)y4Nn*fye;!dU3_CnFD)%?!>c~2DE_k|iM4mDRgvPiKJI?C}&2~lJTYKWU_Wq-<
 | |
| zq-_n)j9U6#;7^D<QEQ5G3Oj0^!el{(8Y9QYG#-XdwrdGk81`;39CV+?mZ>#^`{=uf
 | |
| zE$J00t8Uw(-DnJV`x_=(^%1L^Sefe!UEYHn-D<xvy4(^aR!4SHep#Sy?qLo~Sgmb}
 | |
| z?58$k(J_azQvL6wUU+W;Fvg@&F&W+%`qMlVe!&^7ih5`Jqh2gDXE;0B&L5~JDxd?P
 | |
| z%q)UTy&>}qIHbN_{)2gyPpUPeb9^lwAHP|x*%WmLr!S+;FM-6XQ+4D~qu2$%3{aM#
 | |
| z`FoE6bHw36FzT(Ks@fc1i=qaep%h<Bf*M$WH7%jJcsoW?n~GU1D|Ggu*`qxu*edU$
 | |
| z7%5G#5&{sgFpN-)uKI5Mq~2ZMXWkBgx1GAph&+eRsmrfeGw5><E%xwSwYL6k#jE<Z
 | |
| z`l^QK(pc0W01@2UhM$0%huD<ibgg$7+0CV62_E=-XYUj7cYJ4y)xbld{Aqn(b$BY4
 | |
| zxCD{e5gNx6jr_g6z9f9q5CD%P%XlZ73}^lp?-@hUo%)vWt1-jX`2B-VaYOhl?_sVw
 | |
| zC276TK#qf`AJ5!vFr_Fc$z%mF9bEqUm@8nY_Az-GWeQYJ?_i)oO<YRRei~s3jc)XR
 | |
| z>0bBHzlfb(qV|f#br}##(<Jt>G&aDPVtlyk+~fu0Px0&|7?CDKh5$RlFApU4U8TgH
 | |
| zmD~i_@gK=*-h|K!8Tw`&mZEg*s5>_yr!V2^)Z0a^8DNPn8@2J%{6%?)Z=xkOZ*qD)
 | |
| zA=t9Yhr2~^S%>dN{az70peG;VN<qTFc{?5R3O0UaMXF=53X%VW=7GBELHn+#H9PV@
 | |
| zCz7+X8dwB{$eL1j=d6B(V;}FN)*OqvKd4?NMZ!ckyF25Ej8u}fkzCHx49Vu>{X@f@
 | |
| za=**bXr;SzD7{9lxjdwe+phnwYNETdFOuzR?HIaUne&y8vJ2DzqS0YE;Ub~)d8Gr+
 | |
| zcg<(tm&tHxK$J;slAvaLu+w2ABwGnCk)VGbcM?n4S6bQM$%GUu;ZvE=$x3LD38_}X
 | |
| zKV?EkD`AC9=xilaBVm}r5BxnMY5MW{1Fn#kzg;dUMy}R$Rcp7=77@YT$!uXi(%K-o
 | |
| zgq7}2Mp|>}lS;Bz2FN~9f6!$(jDc&E6QRf6iPXRy2hU%0&A+c`V;{Pm3e=!VKT9|<
 | |
| z5rOB9;0UD&l~DLdkJ`jE;O*$2T9f8$>8F(jc521GmLzSmewa<>9-+%v6h*~`#~%%)
 | |
| zAWnp1*P)Kz1e>+7sON7?@PD5mYI`?{{q?scXg7dFnsP$O+E`?B0Vd=-6$wcHil}A|
 | |
| zq~ekP!Ff&8%)sy0DCY*`{PA7FQ;RHo2WvF{k#zsZxa?^mjj7T!IfI*N1~*~`ztZ>U
 | |
| z$ISQ62`sStI1fdZ^6s(ogI52mWf}iR>4c~-z_iGl1g6J$jtYsA&I`r&POaTd98*%H
 | |
| zJLJbTC-V1s`?8j9=q`AU0X0Y^FY&eX^&X%-N$TtUp2&~86}1*B>XdamU8%GAZQ3<N
 | |
| z)btGzpAd1;z%SDe>u1b!tpbPRjMQw)|F8Eu8x_g%+BS21O6EERW0c{W52**7z{eDN
 | |
| z)S594gAUrZ=F;H=uRSq*=4-i68xYv31`zW|H>*wKdnT41AA%}Y1#P!zbEcCacA0U-
 | |
| zxwU-Fe%u&+PMC#&P@yVGp%F=H?WX3^66)qbUrUBo-nPxxa@Cw6`hUdx23l=V|D7_g
 | |
| zd2@=lBlWKafqaKVzGZtF(|j3cH_xGO)}BQaf+0qaFe9Lr4Db3uw2)QXSv2`m{P!F)
 | |
| za)6*Hv3HR~IKUYMHbJeqj5b64w`;cExafNaU25+k%yu8YPGq^w70u#x0a~=isAK|_
 | |
| zlh5hj=!o%D=F*RW*;$L5fAVi)%HsWoj;&ggo-dnj{wT$pNUeGk2GRJ_^I7dD<jQ2_
 | |
| zl<~UoN<h0@s0+SxJkhcN!pm!gQzN$Vu5kuv6#t@>!fVvPpQwex0&lACNyQPmM-g!p
 | |
| z>4X8ly!*4z0)$D1XQwpsH@`f~M}(Rlkbg`KyyBET$qR*9MV$1a@2MAjPru-M)&<{>
 | |
| zT=1=3@ICi}@5*-HBA(F&Nr4NKXr$n3hl-dz*?iK1gU`43fFP~(Yeq(I?V<({AB}c`
 | |
| zrksTRSD*Qj5@_egi*@KKj@*yoFHnvZ)rl?ZD_3#GN%7te#;-c^CRY<XQ?*T0JmNcB
 | |
| z0CtLYikT@y5t2>?2IH_)y30a$D3*<W%^iwy3nMu-;1@Oo<3od;{xCdIRmebbu(elf
 | |
| z5<q+qtQdW(Qw=05>?S_oz>aqkuHlJG>U4<Ve^2_kR9IP63C^I8-ry^6XlqL%gef)m
 | |
| zXaZG9zjxYHk?XW?)!It;=vu^$BuFzFr>;~}7e0!Q4B=GU(_8{FFM)`K_wim>N+m|-
 | |
| zH+uWtNsa5x+RY`L>HR(!U3gG>B|ymAh@S@Z&_V9zGx~Y51yVAq<NdD@pJKQN4P;nk
 | |
| zH9DM7i_p7THGa>lg|AZYQ<0~DipE1>1J5gmVOlXpJj+xVrK>07bhBtHex$}DGFxb*
 | |
| z5~JTL-4#$5*f3cQ1O+@|Q4tejOiczR+shgi8zwipZg$8~G9XRP+olG7VDLu^e~6a_
 | |
| zkDPQA<9BvEvj?@XXb*1@=WAdXj)3Ks_-=K0)79E1SqCxwxQw$b&PTDQna(D$EhFeO
 | |
| z&_|@xP<<CIETt3_UK1Lvcz-e&EDu)<EF59@G9r@ph^KaqD8$9D)BoFO9SFS(_ic@l
 | |
| zT1!Eh=A4CNmKo9Obu)82#3PxTLM~6{?)*)&q3${ykm2FCY3R*#h)QU3;eJ#x|4V(F
 | |
| z`V7KzX6^_*s)QzXi~FCm+AfDem4cJWe%XGETwU0Y=nCygy+uF9;-I1CX9S7#Z+MEd
 | |
| zVN|T}8t<2E+I1fxvvG={Kv0mZed0e15mBB|x@<D*c$8~vF{dV{HIH(d!7(%VGk@e6
 | |
| z6PHc4C~2DTYx<t>XrQnSVpGnTN50_`_$2*&^i2GA)awnIJM?3N%)+19qLCAKXPyaZ
 | |
| z9TcLp!oOzLgs7o(AeXrcp0vGPj3NdNQ8mz^P5R|44F5lreR*J0RrY_9rVEhziWEgH
 | |
| zS~N<lMX6Gt(n_IesZbVWmEF-nR7O!>0F@<}1p15tba2N7nQ@#E$8p5UP8TTPGO{QF
 | |
| zRmA;03dka%bj$C2&b=>5S!TY!Kia%^?|pYY_uO;NJxikq8Zk!McsctU`c2^6t}rTs
 | |
| zFTt2u_<}IW0Hz~Nv1aqz;EtQYT$}QRES5;_fozhA>#gv0!4gU-4LtKXBSaVu<f4u>
 | |
| zZ?iPd4CKS=Cm($tB~3DSTP$m#LAaV3hKAF!>#bM_p-3lFG(kDmSmr_hgB3gN!goxP
 | |
| zenn^KX_%F3HTqZ@6mtjS!fdwS45IN#k3?_O0QjHUtftl;)mSZ!BA_fh3)e2SLATX?
 | |
| zD+<1ag4?B<aJ1kS#TOI>AF>J)vDW-yw>(q7|7fiBgo?LhHUpx)KIJGpld*0FIQY^0
 | |
| z8V^PY6I{Zt-B?kBD$3>892R&{P1kcxrqlGaqe7?H{u>rW8VMjUr}A-pCpJ~e4oQm+
 | |
| zp()1NnFTM=w^OtnG%;lb%1v2;`t|pYvn|O9(XXrCgw`286Vi2J8&}M#66$7gM2$>Y
 | |
| zfi4q)7Y#3sz91eI&zbNT6Ens0E#hW-4}oA!0=~?y5a(suds#2==p!y^*&m}->TUb)
 | |
| z5nmYNVt}{cF9f`)e8v9}f1MRo_Tu<z7W3;N__~Nn7va21jkGl)ru4rfrN@RvTiApG
 | |
| ze&!!`q_9B&{KC+7O-~W`@7pcxgC`?JsBgRnEZg@c5itr;a@a+Bh$uCOaJVzWvX=Gt
 | |
| zV-zi=bBTRrK4&{rZiQ3NCG6C5N0+J#IQ6tttPLx)S@*?d?#ui{>K#U_+g|nzSB8Yf
 | |
| zCaJ9l3;_6f;8)RiXrs^HjB#mtWa&O{l7c+{wU}4dp%X?PXBl=N7HsBT1gM^F71-}s
 | |
| zKDwkVJlrA#55e(L&Db>kNWBGjL#6=}k|%+|*<ygOkv-WmPSb@WmzevN`G@n`M=e!}
 | |
| z5P=)-e8?QsDuDZEHmRMwDa;0DrsZ1-Hd7!hsOCw$X_qMeeF;(9xRgHe(5V!}U6&S)
 | |
| zQ?OSa=eGUeKJ5XK;;kpF+rJGPm%xgg_K(oBtlei8LvnB>8_E+T$_=$%W-sM*`uH>P
 | |
| z@f58iHlMyM^7&`t^KItm*joA=k*#c6${F<i=E(QJ9`pmnE`8)asNrI@L}i;rEh~U<
 | |
| z#O#Y`?AX<rvPluao<_W0j96ndp|{<~MryLEl_HlGjuD&w44fcGEW}y}su(peS_lZm
 | |
| zWT_^MrXFe$lYc0Yb#RFbxw7R`PvccHZ_-W*v<d2sS)x$x0rj$oP)b~F7DODzZeWo{
 | |
| zE4vh}O7Z<1FK)^)+}u5icRiCi>B>SVA!^4?@38KG(!t1q$b7-f3|fTR!EI1GxW!u^
 | |
| zr)EIuptH9=eu>)NTc4mN45WfHr}F<l@c;4re-!^8#{UNf`-gLDw5rGYd3vYM%;U74
 | |
| zo>?vF!C@^kyLo0c(?j!2r)O3ZJv7a{!ZWLp9vWv}?3vX-4-GThcxIiUhch$EJ-3cm
 | |
| ze8&i?!|{Nr<xc48g``C+UKqNwj}Tdb01lc6rlFK45P3GR^?f9rDu63Y3ZZgK-t~fC
 | |
| z%)2Q#5yzDc9#ryCf(ZK8DWfJKT|2-vxi?31zJvu^c`{lRYX3RdZIa!XnZ6dma-=+L
 | |
| zcYk6i!cybrxVWuYhwCcec1=X>R&Vy4xkm9l#Xeu+0j^UBCKh!i1~TO7yO-T^UrsOU
 | |
| zSjHp1iRiz-#_n*C6mjAGid8syUw8-}>^B29MD54(Zc+#5U9EP=>l&PEg}y`^tx-E*
 | |
| zz-T)-%BpP4kphsqcB22j?P>?aK!QZ0(S2Mgr$s%c8c-oSVEhC%gYsf4RfUN}NVL40
 | |
| z-2YrBC3dk!QqVKXMvvcp4WUDAH%VVTjWr2vwF5PY!o`GVu9X+UKa*ajcpGS{17Lr{
 | |
| zQ#77>T8)~x^x#ArH4e{Yw3Al~_VY5O{F1Vr9H~iJFaT9GP>*f{=4?i24rTGp+}VVG
 | |
| zr{}d*ZDmzuOS5!JFY-3uJGUJ#u;Pb8Uv^kRkzo}bx}H1qi_pvks?&8kwhUN&vvgpJ
 | |
| z))`%+PSLQa&3GF_jc|>41Y=9rL^q99AVp0rc^|^?n2t((gIbvQ<%L|&KQ?8l&xrsm
 | |
| z#OikPtmj9I`y!c}sQ5eKlVpKdur2!K?$r2Iy-4fGWC&rHtQRd7^JC(|A*RTI^#{|M
 | |
| zrfpgxoTqPZ7AGT53w@&VC%%r5*stU_5L;>R0cWMODgIq^+k~EC_;f!kLj$N&IJy>%
 | |
| zw?}*IkQCo8^)gRG`n=SFXd2$_zFqFaEb{10iTc~WvkN*r`)l2ZR*$kY-wz2s)UK<q
 | |
| z%E(>%_50Yn9+MEna-JXni=m#^9}b5%32cyEtMMVIt>nT+t*{woD7==cGcGwpd=BBe
 | |
| zHeePi%6vTX=vcFl=r`(Y!m?B>-?7H?&d|hWK0b7Ld^Er_?!aciP8?N!9Ba<rbwB|P
 | |
| zq7#y}6SI%V6OKTIl^F<32($~eRRV<_Fcwm4HMYc>{!tBYf&MbLDrILHz)vy!8Qs7)
 | |
| zCFe<kcim}mr2Lig*7B(^;;d7_e~8AtF8QoIs#O`g&X|Un$r;~7?HMkE=RnC>xpQfx
 | |
| zS?zh6y0@2=6IjGo@-Dn$H7E`qk1*_CC8i!u+=J_RQG;TcO?vE`OBg2$thb8@D|SvR
 | |
| z;c5+IJh9e_4>&#O{{%wsdPQ0AoIrzDp^Kwlrbae3m~;MiBjcsG;6yO!Nwmg`exzb7
 | |
| z{bPnDLa3>6H7vM$hxeH~S!zBhzK4^TJQRl8U4OwnGY%Sqz0I(V@+LNdlu>%NoT3ga
 | |
| zqz;6g{=?7PWIy@pf;uawL0MQz1?s*b+F7imakFss!p!}1F9B`@-^xxxs2H6%pkge_
 | |
| zqOXZ6+t}_on`P}~&q*KiBcjgwM&a9^2@Y5(G+kNTo*MF1;6CyQ2gswj75IGaWpZve
 | |
| zK&@784aL6_GDkj}l=61ke#WCSI}~a%NebY8gYJ}#FytPZ)?V31>bfk+%XHgltL<9N
 | |
| zd-F<oKIF4-fH-|G&dX4Ir3s++-CyRVYoVE63TX4On<r{4K>v2K7J}lxisp-N9xo9l
 | |
| zt^=vaCU(c>evwtK7?><)m>ZnDS76QxDjO`J^`2h<ee#VvLREIf_Y$SfZ_Z`EBiFR$
 | |
| z+VW5l@SzFV1usaPvH=>w`pz#o)H=7ZtUfv)aWo$gP<QCBbrdNwBH(Y@Zh5KG0pg+k
 | |
| zfh28f$aR<14l($Rir*hECH8^tfz;P|SA^qH12<YGP)6V;LW%To$TcDIVX65c2YwA?
 | |
| z1YEDlFGZh-7c!8cu<&btY@6*{w;6X%n}>MXQ_yUyHuu`)hs3uBEP>RQ#An{-jIyOY
 | |
| z7`Gi&d>_L59(Un<Z9i{T5%YZ@S+vVl1l`s^qEg<TzZ(<zZh}3w&q24X)mWEiU1+S=
 | |
| zM!M{d3nT^XFN^O8kz<fNU;`T=23Y<~(^K-&l-#N*E0CltYQj;*#vcYS^%5Lw$#RP*
 | |
| z{-@8dQz#%TiN1Kl6Pk5iY_a5*(2_D`!%@t4E@f20*o_ZlW6&9KPDU#%Jj0<pdI${4
 | |
| zMWut`-R&b0N{R*ae}PJ8FNN*RnTUQ5s%tN+6Y;A4%pMk52_~_hmMkFDyhu6fX}DTh
 | |
| zTH$HPQ+#g`l>hr`A3Pnb<4ylc0()`}6E}>6fC=5&9;JL=ZlmHWPXGa^`2Lx|KBWb~
 | |
| z7MD2)G31D{7b)eHxm#5Sk%>w38(WCMo$;N&cAipqxfu@^x}M3w!mww(9bc!<JtEq{
 | |
| zL7JvBFy5SdTJb#}&x3~U`zBVReCp59EuVbKR2yhLoxh(Z5{fZT>P~vX85qm4KKvVB
 | |
| zo#Y_h*al;-Q0wnkosKTY`si{Hqwh+IEXR5~udAd;Qst4V|L`1)^-hZwzDQO{{PQR{
 | |
| z#ph+9qYeWUB8|PebqAYLGS$GRqvE^%^w}Ona5RniCMv7)C&n0`J&YzpA+vs^{4&8U
 | |
| zwvVj4NSN_k>tTKlgFzuse3;KO)U!Io^C3={tCYp#tt=G7TLFFklGq`U^I{Wlq+Ach
 | |
| zKl>y^l49eSMBMj>u+@_Bl~+ur^|A`Pt!#eZy%PQC4}C$z8doGpU8BcI(D_W;15uwK
 | |
| zP8NsUru64pd7$7!?vZDK{85C-p0XJ4Yzcb=(X%`hO}n{0+s`cu!TvNT=Dlng;~^^2
 | |
| z749Rxqr)GI{dJ8XC47|jX^pv^yz$VowV!WS`F1J(10v=Wr~v(i8k0JG=0D-EF@eC9
 | |
| ztyIim4o0u95o3yIUM*h|A$<&QOSI#;Ux~rYiLu!HV+vI}4bVC?a&ZC+K)1t$jp0;V
 | |
| z?n!xI`ygw{t~HP4h2Mt5W%fRWeR$Wpb>a?d>{nUlb_qJJ3J8ab%Eo@-z%3zHu{B9;
 | |
| z>v_E8TDQHXUyCKsiU63|K0*<+lSd$BX$P2S#HBMVjI_Pkp*kfyR3KoSd4M@Y^Upl&
 | |
| z54jI%HFdv)s%+|&4r>`7*v1pWy!CPnV$ountO@mC+HiD(Kkevjkp=IdbTEojSsZRc
 | |
| z-Ge$ye_KIat*6>n_Bz1MNUH~Fo4MZ~3J$co<8jSb6ElHZq7!)WVrVeu9uOl`J8Q?Y
 | |
| zcV+HV%I%kz*{|;(?9qYPD=~j{+O`^d24NOCcLCxbQ*WcgN%`1*SM&zCxK1~*Ny1)<
 | |
| z3Ht|z+4%@bjVPIR2n-VTFp*xVDH7}<KGmOC6vaxneJ!Otp#SLoz&Dmim>xPrn5Gji
 | |
| zl8*WEH)gE(<VuTR80M%>h&|(f`vmjR61}xI8LqfRuvk99C<~_pq10f1tG@D6Y$s-J
 | |
| zWyWo+Iq`fo%QOYXLsLH*Sf%;RE})gARc(mxFq(wqYJ*+uLADNhH5eg7jq9klAKq5B
 | |
| zjOz{FVO2JYCQQ1kpH<ur-$`5l9AeBYZ1gyTE*h_%i41*HKiYb0pwrVNY;bX5Mw<g>
 | |
| z`TF(0(AHXhJQ|a{O%Q=!PVvdlC&ManGDr_Z*SD1?|Ln{1;eS+F<h9DPg5z%^LI`Ws
 | |
| zu)Jm7L(0azn~ppu0{_zdB*id4O!MSStrD50qA>1%{m;M}n0Sq*P4FW_TMWHN*Wa|5
 | |
| z_zC!Ew>SW<l_;vNE@1Z;Y~Z6ONvwH9;$QbXXaNqrO!#mW=LeWURyN)Q3Z%=IB6Q<&
 | |
| zxo;&km3m8|w=v!QB_G&aDNRDo0RcSsAB!5R?+hRw*yv;E^uXs@b-K>Ng4B%mn09^j
 | |
| zPrNdC(>lZZoN@IrzU5;uC2+oUw=@!Y67kcs+T>Yh6ov|WTHX19RjmLOQ#F>FH6CkV
 | |
| z@d?&R1S7)+n@)$FMB>Js4Q80K!0;?&4yR0ZglaN`Cq5&_QkHf$wAwa*+hv;4PlEy}
 | |
| z2Q3#9xHcU%9MiAeCbj&G11%W;@YwOYFAuanKxTF`*X!^GkdB+iQ*i=K&7i_J5MaUp
 | |
| zUw`&TYAcDh1WubJOewKnpfYwIWE?$;hVJEt@S&Qj9oRGtfSxF4{Z)%_Ah-buoYe%T
 | |
| zgQyWO5FkqU!%c6Zj`bY$R(Y{Xd9I>2ZPs1ZbKy)`NXu?9`~GWiSt~+T-Z{5TjHQgB
 | |
| zjHiFB@ih=il_hiMv#Il&9%}_8zB_1IH_eWWNAVRP!6ypIG5HWLbyJ}AhtN@AGy6?T
 | |
| zpOaShKBxvZiGcMLW}+XVi=$we{X-ZbR~QVt!MlX<>JeZL-X<^Fqr2l$_7}fX+!Lwx
 | |
| zNC^3E?n{(%i^+8G-r%jWm8KkwmrOH}(0X2ELv&@cRaT>vchYKnwd!>OIadZUmGa#o
 | |
| z*GOx+dQq`SW?$*6b^pS}Ss<Zo?2b)1eTTSf+G36LwLCG>9jr6DBSb;`aa|41IZqtA
 | |
| zvFWd|D_@~JSJ``;xI5={Sd(Oy`^R}8#CHIGEDgCp8~*tm^u`F2w=M)5-PrZo@ZtH(
 | |
| zJ&Vc?L|1X`YEf=!v~$(H_bR^osoVzk(j#gx#x!H0QT3)Rk%j)<W&$ru?=o2Mc$xNz
 | |
| zz?K(B&JG)sbH}uuj1id|*_aCq)bR_(g#!cKM8U!4GCLR>s@am`+R?NrYiSf>uW#Y=
 | |
| z602@;4<~%XjxCMCI+JA2-c`0#ay=2`JvoBB1y7X1N2|deSA0Ly{|_h8k%;8F6@&sZ
 | |
| z{%o_{x|G{c{9kib@tH{TIoohrwS}eF`O~n`wjE+kJ9RVwW>Z_}_<%F|V^d3bd6u~3
 | |
| zbLLjNl|T;sdG=YwbEUSYom+&R+w7+)_8p3D6n6iqbwgoe+964ZAxHn=0Mik8F7ehU
 | |
| z&FDyVxKPI$KYI{<hO^|>$rK^D1&wG-77D=KP&$AXR|_9EeA=7|WaG;B1-|m#)8)hk
 | |
| zu6(sm3Bv#)EEV3`xXebZXNo1_r%^j@tqx?OqUX7yueuz%;N3B<jgJRY+j$!Z<1IA!
 | |
| zDBy_http%)dF6jT-+q$M>nn_r`JUg57{|^U|JvNb*d!BFQiww{35&9rGX1P{rZD`(
 | |
| z8IsL4o@wL=r;(#aUs-7$JU-qC5OHq$kK73Eoapite#<8$FCuHu8Sm+W-TZr!P@}!0
 | |
| zp(Sj*q@xx-l=hmnq(^aP^EWX^HyrR7_wfhpQT(9!fg-$Qu%qq)$d?Fw(=WWK&8>#b
 | |
| zU)_7Z;#WYW3aLP?xhZc_Hnzp$1wQ4Sc!P=HE^S4Ys2#+2bvuI(ST)|Pbss^N&zlS|
 | |
| z|LG^voT`^nKCq`!J~pRpTg#^oo2N0Ztbfm$37+i<WdnPjLs4Z$HYF-~TUO#;C!ND!
 | |
| zgX;&MqAj__(~zb3@BWq6<$l=%wlFdEYxsViqZ#JIK!BEjomqs{tmV`A8dHL;mV<1~
 | |
| zy44nOATob5z7zT%0^4yEuVm!mas%Jj#G|-nD|RdW@W%n+{irkCm*Ao^0Zwdp35@_;
 | |
| zjSx8=(H{uN6DA=qeJ1>SLH|pKLHb0iV1!}{%=iJdxoK^+6WK@RA3|OJU0OGUE>RXu
 | |
| zK>F!GH$cVw-;fs^8uosl=*h=(8yI9NzT}IT`h3z#fH~HhJD$=OAxJvzMsWY^J!4g8
 | |
| zdC%C?d%b7kKtHRcaP86CdnR6Wde0;*Q5DZRu21ouBBVc{F!E|?+v>Gl>(@WFe$8wB
 | |
| z+M)I9A+A~U&I3-z%$SOd;2^7KjZ7GxOj9+9-Ydm>H!4u*SyLt6;>BCFc>6Yq-!_Z4
 | |
| zkHp&+@fH+sHRA0vItFQuf_EjN5A!@)KBhR3TtL`q9n?!V;fdBn*_fHDE52Lc{n3ha
 | |
| z7o{6GGYSKa*O(D_7y-jdG-A{*Q8rq0>8QOgp4AF2F-y#`%Zvx&+47<!I46m+z122Z
 | |
| zBIY}h?cnUV*4g()vQs$Q-a7m4NOme`$G6U&7|HI$*$J()$3?Q!yw!;!3cNbQEQ6tC
 | |
| z<{nb~2|`nDoBsS(L9I<{XM(tKh_z@~<ESEfAFi+aCUOg_9*otRf$jv$?1e|M9PB0o
 | |
| z`af%mC?Rv7_PO`xM8)T^3gNUlyW`t|?AmJgHd{rg3U9Mbecam|r%v`Z+n1=t-sX6<
 | |
| zo3}YZO~q&C61wDPvMP+m_drbAji`Q$;_K7895*>3Ce5tx-t*M=piDEMN>ez$5#vBG
 | |
| z0cA1d<pe1Jioq6w6;Urj+EZ~#Eu?BhS{w(iNg@zIFaXg9f)r#Wa+ZU@BQ`4zS=Vz`
 | |
| z3V}v!mK|A8>j(@^C9sIiibqxl{;Cs!L~K?9vMv?yP%7XdW`g|Aurx{~C|JBjKtZr=
 | |
| z1PbECK|RfLTX)6xc~aD*Vmt=ln{OB<S(DT@o(3xLcw3NHmxNrSDd_<^#!pho5lVTS
 | |
| zQoe%|-52LgaytuSQq-e)lhmVuQs;=mpj``2>%Rl$=yjhe8|y(>uHP)W<fdVJ`rN4a
 | |
| z-e|{~t;ZDq(@AX7K0YwVBB(KOwE08Y2&YR~G>r-di^J=1!g~)UdRwg0tqD8`67Y_L
 | |
| z%FZCD?A!*GotwS&cF51JF<qOeZP!8I!d@_f_E-A_(=5R(`WfHN5=_PG#b>4VqvYKG
 | |
| zP`WyblDw5k!8B-iSSZc@U@&zHo`Y%qgIVm~Bj}o7`Ts~vv$+33ljKs$vqP?#G;R0M
 | |
| z;hP=WcXVIHzWClRU{hCxTmvYhS1bKdSbSXX)w}om=96KycBk@wwRf{Um{lI^G4((-
 | |
| zUoDBx+<T-IN8Pu3aarVBP80s^-f#E9nV_;UQ9oHFn5O_#2L`fGWCb6rq1O7Uu{>Z{
 | |
| ze!~}1XK@DJ#w*JLIDO|PGS;ZuQdn2TxTsCFSn}No5h$F~Ao0`@QKSFkXx<ZM-cFhK
 | |
| z>UqBVNaoFp=6TG#mu22P(LAr2H%I0Th~_OY^X`^;H$?L^L>&&*c$vmf{I_ykE~Ys0
 | |
| z3KU;6Ok5@@J~b&q*War6pT{cAvfdgTW|b~l@-eRk>bxmlj&eyL`xPCG8wLUWbeqcV
 | |
| z)|k|q2>W4^5MwSJ4*etk;Z6h}x8@!YzK%T&U5FPXni2^!IH9ZX7w7wt-})%Nu5Ey}
 | |
| zxqe>607ts_hZX;$%)>)G{Bnrc(*Xbh{L{FnhA$LFA*Irp<G|>o7!A?vZk6ZE*@2ks
 | |
| zi)6MVn!P_J`?m^_eI!1TeLN<6hs^#@H2dS2><?u2`_b(G#AH7wvzJ7(KWShKjPZfq
 | |
| z#w(3-)gP3_a_o^}A0WWW5oOVXxNmTErUT*S)6JP*TN{nBGN<sIoSS9N73bu%l{qIv
 | |
| zXXpG75;>oqle1RlEa9Adi)J8ar}YbCp3I3mC+EZ|kyC%_?3`a^&XH(Nq0IV5W?ghn
 | |
| zb<Hy8=X0w2Qs%5bC+A(6^XGGNo}!eEP*qun&10Hq5F-JtRsF>o#PhCbf+j&fE3pxb
 | |
| z!4w~~X7=gX+rJ&}oGk3@1a4FOmslASDt^$+MRh*}a$x$rx)f+^m*iGG>=5{BMrv9P
 | |
| zcm?eiqWpQI7Wj8D)2Jp04qUh(hdR}KQ@o`=S|d42PjA|ZC*mU4v%2o4?*6k0&e`V+
 | |
| z#L$A+SOwtucmw@Luiun9Cwm(Hc%V}8^#=5J%o0J_d<yi7yUX}os|YyvEpx&yEU=z`
 | |
| z1Y4sWx&eot4=NOa&PZ7US-WI|1Pi21uvi&!7*{t%_$|ze52W5V$pv(Z&`E)y!mB_3
 | |
| z?6c2K|5yu4jot9`Qdt*AJ$rxmxA7?T&1~mn>mGkCPqcp}8=0BieH~hQvb&3(r5DVS
 | |
| zM!);8F5QdhUph?;1f%*FDw{8j7rv`*{nq77r@!v|wj24vj%=FPVVMVtTYI5@xRGs}
 | |
| zril}uh=6ItkY_fq;`%f*)J3Ut8m~;|wi<gJOCaV|MkNu(4UMd>_y@(GiMa0Nqin&6
 | |
| zHh7%u?m1&s7Q6x`Fig{fpiy+}F=lN5Ns_r<V1N_25C$dU(?i_b5o;jE4Xlctb6yMW
 | |
| zN-Ljv#@~TZa_r1)A{%OrE0D&=<-rPqlcfz}Ph_1Go1At8ES!RQaYounkyQu3xVqf^
 | |
| z#t+9u>R(TYO=NzMmS{YGB8uKVTqk<{L4=7lV02_=FO}KPMYCUv$#$<3R<SbcA2C^D
 | |
| zMb>zk^<+#|Uy;>MW|hTcIYriWGHZTJRvVGk&OF~?YQ?i<Uhb}b1VC<=+WYsMp~YM$
 | |
| zbWdk3QT(%kOp0yn_-PD5#E81<;H{-IK?zZ!wUs~HgQcB!z%-F5SE6dEPBwy^1|!G`
 | |
| zw9Ivo%Rl-qccU5~A4Ed-S}{fW!ae60(4YwdPR9rO81_>U`CL^!04g!>>N1z}LA9e&
 | |
| zuIJVfs-RTQ<F>06|4e#X3*?h~fR1wL)%fDslfZ1}gU};^C1ju@d+?GQn7yWIBMDo1
 | |
| z8Io+vf0rQ*=QWxt9bM?~G@fXb9x7O;$oiG{$Y{{h#uech^fQkDe$Au^kQxu4M$fEQ
 | |
| z6TzVPcS6Uaa|AyM=Sl*mSHyy}K#XF*zcfhYUSrHDwjLwy;6ZEP){yIApx+6!gvJ2+
 | |
| z=jq#p=HaxM2SI=MA4O--lIV;;&7xH)MwG}{j69A5>#~G!1c=*<cHWD1J>)&oy$ubN
 | |
| zSc?wkCZ6#f<NP9;j=EnrU~jT2Dc|u+RaYjb^cOd<iYyP2+p<dXtgGV7Y>7Bq(65>f
 | |
| zwLwrjeRxr#w2}#$ogbzW)ge=>56;MpwKVW=_li*%!y6bgjSu7+yHCI$$XY(&W=Dg6
 | |
| zK$Kaov$)guxX{n|235aBRcj$*N(i-4VzGtYKLj2&XUI5BJE4e|!86CwP4O*bVYjqm
 | |
| zA4;sjob2tyV=3jkih`y6cf=l%?q8Mn_pPy5oCU*)OCS~@#`umfb`r2QgB5V}zS+(v
 | |
| z_HN%7pGQZ*fvSDmm5;|epO`ZLQ;TB?ozk=RO>@rrZnkqe{XRiRdb;xdX`|a2^je^6
 | |
| zuxG|!Pol5T(PhV_5&0U&Cmz9`Ez^VW!!L~lf2s?IbN8z0^Bar#s!U(;H$VXg6!zBl
 | |
| zabFtoztpLf|D}A;sj3l3W_{f4?yUhK=BuSDCjU)(f3I6DB^vH`>WtR*58lJ2G^PUT
 | |
| z&M+({EmR3kkdfjjs&PLwzY%xW^JXa<tJmS$Iyl>z6^U7ChT$-S*geKnG~aeBi=VZy
 | |
| zVf&iMWj9=n#Aw@cXonbmp5=eC2)88#aP$u&Z13jM>OiWHN}<`js0EtYq&v87%Kg*+
 | |
| zxVGCLAG&vS`omMwVR^|d!4{Lw_bFRlPG>hu-Lqo8%=_^1!VOBq*ZIR?;l%oEe}-qj
 | |
| z!+R{;T;x`&*9AHvltk`MH7$3C+KI4&!@tWNmt9d!-8xgLUwL|m_n@`fbY3m}U1_^t
 | |
| zKHV6!ccA~{v>nyL5ukJjx3vI*c1ulxgZ`4)zaIQQXkWl0GsO=pOoy@v0K&T<V8+Kl
 | |
| zp9Wik)5G3h;vgd*EsW0mh{flf?Q~ehEuqh0We0QYcF5aeRZG1sHuc(AU;Orfo0S?m
 | |
| z${KzGiONWY3%O*W(%1MR1@R70Y9r)Ft*cRAV`=;6vIMp&1gH+tc+?+K>#tm|u_@V$
 | |
| z{FVEGvm0fdm?uQ$;IrG~IKUG`X7{tdbl}SZk=X%~ChCgY>)o6pWq<S(waJY27m}YI
 | |
| zM`Ur^d<%ZCww@;(aqiQe#~pFJwba9{{r`yaH{~zEPe%SREB$oI-+`aY^HXf}(;>e*
 | |
| zejNG3=to&vp_E5lezSkeG(SSSq;f>hPTC%L6mVZgttP40uvPK#7<WeD??G2hy_dH5
 | |
| zkD?pG0yof~k;->tDdUq?{e!=?Dc)J7mcW>jxtE~OCoAYg{h8N$u0wgh+FA|QZF|R6
 | |
| zXV=!9S_1oK_+r{ky@7pm8pjZg*fw{5mMPBg9?z4GB&|kG;SKCWgnQv{h`kV%I@3)j
 | |
| zMV~E^n><pcH9nI5#>BQj@GP~Pw!6*|P6!m*Y2E0(Gur*Afp3BI?2uULoF0S?#*Ld;
 | |
| zJq`;R<9~1D>VqFzEz;>ELZqJ1GsW#<Uwl`sKgcz?+j=+WNw+Jy{ub+oY}LQR!*-&y
 | |
| z;GMGDoBP>Q8tmPBz(*mU(HZa~Dq<V_0w!#(gD5UgP{56S2ScN;GlU!*Kk@^h^eHR&
 | |
| zoq%<+++?psK0In=_n_>U@ZWC=vqKkqo9aZPo}zJ8`b(p@`s}biWE}BM=vVF*Rms#}
 | |
| z*1pc(n)$WHT_qHU7#;`#p<mJ<uJ(?~?RbTi9Z2+`Chuj!tk{8@wo+%0thhX@@<O%8
 | |
| zhy$1KLKRV<<yGP?1_w4=)1B?#t2@J-@Xauh%~!u}5OT3M1d>X{imezc+R2L(o*DA&
 | |
| zs=cPzkr?QR&SqESex)kf4jM!Dj?5im1i4!k-*QyZ8E@9T*|ou}L~XCgG+judoteUu
 | |
| zM8?{HpXK&(!C@x3(FMaFaGyn3Clfp-$U^Sgx^D<fsK{3+0-Znhhg&L@Zadt~Xv+Ai
 | |
| zMfkLflkdaj`^m}T9S#Symh9TfqgQErtt~rStU0mWqaoVaX$CyD3HxqrgQC&YBfsgC
 | |
| zz#bUI3Q9L2wW;~6)XON<JJ)W#tag6&e=LH-b5B9Y3@SO2y;(ATN7&kFY}JndyiU`v
 | |
| zwg?Ty`cFaJbx_?dc7~e@-&_F%1U{j66fQke{oA!_)xrHt1xTthaIDde&(QxM45NLo
 | |
| z0~C&^gW-HvYoO(z$tY$gn(lv3@#d$ocd~bs@`(;lU7V-UI&)cM&d*txfBun%!A|GY
 | |
| zH>4gfdtzEa4LIkAmo!<W0v+)MbL|%8`Ks*gbf9%Y{LC(&XrnMiCaMQ1)yWtfW^U1^
 | |
| zSw#441O|xdDeak81ch2)YVNNcNgY9aTWt&Aw9jz9Nl3vg|2A4UM3(*!C^tA#n7w^P
 | |
| zIa?F>%(gob=u3ahXbEe@N$?-!54*<zw6kls7TX2UmL+kEIYEl=J~k8?;*dLSA<paz
 | |
| zPn7>&C^Ev%zSxnJU5n@mTCqJKmfL9>`aT?pZ3~6k729d5l=7W4SH>6YAI!0ON23+{
 | |
| zHiaR<zS>t6aW;zMbnRrCb^R{{Tkuea^8fl!lwTuf+P->rRfHwrPq0w>Bl458&zms;
 | |
| zB3;zBN_l^wy65n29ux5=N~t}SjoU(%R<%c;j<B{;4~8o3?%Lo$5R7e2g7Gikw}hpL
 | |
| zjKgZH_t4Q+u7w=-vi?0qh1~4?!)$*o!o?GJ$%ftQg<9@<VbZ-!SkwuY&ws?-&%2(D
 | |
| z$*t<e0UrzC2s>oS{$*DLM0v>~24r2L0THCVI?!?Q3#@L8YHXS?A5(mYq~ux8FZ8yW
 | |
| z?-Xdx$MfFIAcl-h)K_r<YK1M`5m`_8LSl7y#LW=#GaOjp|9scN$mhC$NDm<CLS9tI
 | |
| zg80Ioz6z!67{F^|#XE%Cf2PMio$Vaz@)o!+2=Dj@c2qAaK0kbrpKpj09(duRX<i&}
 | |
| zmJEor5Mj+Pwxr_w)@Ct>XH|TkMBi+R@25DPoX^Cp;HUBz8=sn`t&P%-4;LC3f4@Tv
 | |
| zPAX>7;wFwZ&6VTS_H5&1>dyRW1$&oFSK9^(UDy}l0_hG}_z%!JrsHDl!8|PkG(|f)
 | |
| z^A!Jf8-|CWs_n%vWelP07FH|W!EiT}wq87o!gh%fup<KM-|cr%XMJ}_npfcCiuqxW
 | |
| zg{Zb0=7%R+qzhX0O3{d*17%AhEX8V$Jn!(^U*rHuSm5kXY(#YS(E|1(!{`R0JgoQ<
 | |
| zA&{#jq!$Ny3G@Nyho{Gx8h*YHIiVm<T8k^bw>SahCL4k)zGpcBgepe}6<5*JMItlT
 | |
| z#dE^LobV<R5;$R^Xaxz0oG_RZK&P%t;)Fa-0L8kl4JX{d37}p1=27uoE}A6@cU?P9
 | |
| zXd_yoX<Fyt1c-a64wOjdgkL#f2TEMT341sJ#PT|Y6SjyFR+|iEj(~ugi#>m5M7ETl
 | |
| zBX^I5uy+vRd){iQWY7GzCG2^!r$s3PX~o`2{l7Owf@BQ<G~P0a*7mz5dFn`HwvjE3
 | |
| zdJm<nTZMr)LvB|j{MN+u!%7K0MUJd^B9#`rZDng91|B+NzZpYCS5nb+(AT5#sjqon
 | |
| zw3)k{Iv3?&?XRW3$cj5OCXCIvCLA^JST%&|ncWoa!!<($y>SiotB-JdLF<QemtbcU
 | |
| z968nN^G?brvcj*}XJVgh6UYSqiygt0q926KBf+L<!e-P8yz-yFni6O`Rbjf3PdDCd
 | |
| zWCDw@jk~Mt;RZk<yWZ53hC~C9HWA5dK>RNgVv2n~IBIJ76^eb`7+DgY_ctd{B3#c9
 | |
| zYQ%i5gZljx!q;q#yIt{xn%OtLSb$=&01Llwj)u!b`1cXCr}o7x-l0;ewR2N+YVShZ
 | |
| zx67~x@CVK@SauVG5QNwH+0J1^@ANiL{60R2n?RgDVvY8{Bh>+tLjUH3pr}t%s%IXG
 | |
| zwY5fO1Mv|bEQQXZb_o6{r4O+=5C$6XGo`;Klg3!3eE`^Vj>4+zmG!)+YgyPjK~hu7
 | |
| zf`N?dM>{-+;^0Gg0pC^cVx$lpEKZCOOy4;I1CrR~=U}kLjCu~#GqZE67|;%@<QJ0y
 | |
| zlUSY;n8Q{iouo^wQ&eYoPfd{{(WGXz5Z<;HNvb9<;s@vFk#hKcNH1gJNzfRLV`7Y(
 | |
| zc^}hUfCk2Vya_G;(RQtJ_Yc@Q*`-l1${7Uv`WE)awO5}hXUT0dC;17Rl!1tOWG6^>
 | |
| zpt_Nf>V7~K?@<-{O9P_*^o>`M^7eqp3S1$2$DaM_zFZPWybuXyBVNn+vyg|w)njjF
 | |
| zY2n{%zA45y!$5OPJEU)c2ID03<wqQ2qo^-|qNKpc6s3G{GFB6)KTw2FoX$WIyVeUN
 | |
| zYDJd70J~OX$HGzR0S>K*7BNLDO3_BAlnqTTo8;iQ215~|!>Nr1bC|9r8e5yA_g%aQ
 | |
| za23lj3QDP)lI6H_z6`$^S?wY=ioE`am;i{V=eGc{Q^x~y?22y?rvUdWzT5dZg`Zvg
 | |
| ze2kHEKYkX7x<5bTBnXa7R(u8gigUnx?rx1f?}$l%(-wW6&d+^C8GgQvpVRqREEY}h
 | |
| zb2dMV<1$Bl8yD?T0Y6_WHX}k?X4mR{>15X?*o|({`J%~}3$FOv!3A6!ArEJ!P@(ch
 | |
| zLzD1#WgE`&=><#<5b$7H0YLkYv|8#1Z>MkWZjM&+2~LC+RBM|?;P2Tu{TmH8{d8%h
 | |
| z`d~ql+o&w9Qp)!mlf(-s_I=E-(#vZV={BQSJilI<-qyHPJimeT8^!Z7q{IJT*}mOj
 | |
| zt&sx&(Bp6P=n#*;(j&HJ=6Cc^Prb1=8pq)Q<^Asr1N&@0p_)l`9K3O#`9751Gq-B>
 | |
| zFQ0Ct<SO{n9GSg+boQ=M*`eV?6R}rXBI8u&)IiQbu<^A-UcD(W@fZ&8JD%^UCew^f
 | |
| zbKc9rs9kj8l{!n-SVVx~QW0s`<s7z}AEr4+Y~TmgnYEE0I-}-w{8;LoMxV^0($lHn
 | |
| zYz}d<%;~{8&P)O7{2XzC8&<#hPvS@V9l>an@&SBM%t+iiASJRxe5>Nv^aIXHgU^`m
 | |
| zEqR}e{W2WRw?iu8TTIDwC*&vcOBJdPDT~Jv>dB8c@wMVhrNb>hA^KjN6f57<YZtTI
 | |
| z(=5m>Fc58KN{rvrCHYpad=!xSqN`A~jT5%PY9@{z-5WLl^iBUe8yNO!OnC|F#Vo8@
 | |
| z5Vi?ccLgYss|2<4B2at93P{BQm*PSqFw~A&7hAs+sD)-cFd6|iM&LA|ZsA%<5X5|#
 | |
| z!7cq!ey|I(1OE}WXL~h~rB6g}jnR)1VYK$xCM!^%4g%smKCDJKhne^ml`@07;29wA
 | |
| zL-BlOrSTay-g&Qis2xdQ&ZCrSbum3n2yQYw_OhHpWopF{!%*<lrkoI>n3o2N@K~vF
 | |
| z%(}b$wQ75|DKz<ut}hDti}1lyy8=7|tw%D}qh^33F=jy!%gU_3dyx?1CDAB@1bSkm
 | |
| zrOv4syE)=@e7Vj;iKn5=NMIa0mFiK=!)&U{!f_vm8Ak<jxdf^I9s&8IXgV4;B)<(W
 | |
| z|864KmEa<pi4DNHMq4vphqpeT2z$!Shu$y2qyH6HzyJ#xKZ~$4BS0$MZsWO_3c$#>
 | |
| z$@Xs@;k;Mz-!BdaS9YimZjf1aITC615Bk_Y6cTB~;o)`2JO+ng<BGj4Hf3@DM7~ex
 | |
| zZgKC9#7*l3<-$z(1G|F#fjPYO3Ci=R!&*~}2r|V)aQwx5c-4G(&V0~<#a60Et5FvJ
 | |
| zm>{bc5eb6R6YG8;7?`C^N-?@N39>?nVge7dX<4|CP;1X7A@PC33YyzXF}I_DtE-JS
 | |
| zXjB_;C>WnK$@$xWv&L8_#9b}{kAb^N2+VpY3ku`KMBQuBRybCOIUWPl0v#JDOF{1g
 | |
| zG#>o3O6R{*yib-=r*-z&^;juH<$>X@HhUER=YqR-Wp57@gMW<|I+~k`OLK_;h@4N|
 | |
| z(dp%Pa;Fao|D+{e>cFC}Wk;uYA4dz@#8~|mtQ+KV-pd$ZVHHX}QbO(akOg}}ib>S0
 | |
| z(Jjmbiwkf7x{@lJ9K9TYkdb(2no8%-l1OWco?I!^A>-X9xucD2ddkPhH}K7czYCG?
 | |
| z#v?F5>1W19XF_S;9b$6OWTrhbX?}>G0)tAVTV-Qc3y*WM2;D?T$#i0a9sB%GqC3Ul
 | |
| z@Nh&*@4hr^J(Op50OM^}+w$AuDw~i^<MP`>)O)<zYmMXvgiv~v3-n-ruF`#lzcyG%
 | |
| z2f#b=7BgP`&&*$mUT09R7mbhOULzur3nMA<9>l#Gh&BDyr-jLMjsEP@98#puuo5s#
 | |
| zMFRZb`%(XT7zpcrxuqOZDNXS;3Y7|{=~$7V+-X(s!;ej6+dWsL+FM&y`$kN)o?)!W
 | |
| zk%scAk@9WvR2?WT=~Gyu_<F>Y9~M*oC(SIspPm9kO8S&={oCWB<<n((C`9FsfF$KZ
 | |
| zEYxkbXp!cjJdiZ$Y%pDaCQ|QHt?K<I=A&&xg<xfJr0l3xW!*7lm&vj{B4w}FV&~(c
 | |
| zn6lGFXVSeDaoA0`?NxkBtfGRGWo89NS<D3aZw|{K(aahRatT2@LrD4$@^%EsXSjLP
 | |
| zFm%L20uUEwN7gQ*R}(IXqO#m+!ezm3KJUS}kE4VQpkCQY!3NNx#sEBlm^Si7adtAa
 | |
| z62)!8bp;RV)gg=pemVoxh0+RK4<+h_az|W_*IrcmMzCNt>^f4PB0hQ_eqn%?Xa@}s
 | |
| ziSl5UX;<89ReUdDYWC{)AL7^%l;Xdpi64j2W2Yu@D&R~Y{7bEPE6i>E1M@#a%u_6*
 | |
| zK6ZZ6koogqvFDAZ27$f&yOhP#fgn~29aES7)Q{}u3A<Q&d$0V(hLzfW8%;r8y--E<
 | |
| zSI9C-*>_fnJ1clQGa;E_RLHBW$B2bv@;7o194K(1zkwkxka5Egit*Prvv^3lJK@Fb
 | |
| z4FN!Pv+3Ln{O>RqV~S!IIHFGSQx%^UCdFcjW(X6;H(wBhzWq*on%sO22vy<JQ%#JH
 | |
| zy8}0VAL1eRW~Q=+ka?mpvE_m_du7dkX*{Rqsi+y2fEO4~iTpIZ>74O&!>3727i=|I
 | |
| ze)`e5t)2jX{aWJ%7hu-`sVUuf&H{XlPj7A%yXo{^6Do$dAb3t@?|Upj#(M7nuoWj6
 | |
| z!)V>14}thh;67^SABJo)xYBt{P<m<X?~{Yb%q9dy6H81-DQ+j5sDU)V{xeP|)5UAr
 | |
| zi5~Yj`EE9txmC^#D@$mXIkQ+wPZc5hNp_gB&fp=WlqcW&0(&xS7GjKLPEhV;K4%B~
 | |
| zJmdV`BCT4%8fYt>pyQ|-IJ}-hwX~<-n*NT&t^HYcLNL%9Vf6xo^0a|TEKQ(=>g!|i
 | |
| zo69*u?Wx~MP#EmtXCX>8_Q~>IQTfR8w=#*`!^&5qR59*?MrhZITk7C!=Obt#9RHX7
 | |
| z>|>@N@L-Ag>A)H2|Jr$S(PBf~(RtS$#AA~<6yO<OA5<%r@ftfzVR0XhP&XyoY&x+^
 | |
| zox>z1(yx)_uCVh041;wRbn8>%;eB+jviKxrl<oIad6bP+7;Kdrh$-z6q9nG8Lu(S_
 | |
| z&;3FiF^1BDjv1BT$Je;h;K@GOA|iz;KEw~tYp3{r#ex5138dxmd~%h*Y3C7JEdK>E
 | |
| z6V?50iw<cPH{tF<?^$@S=Xcd9>?HlWR5;j&UX?yXc7_A$G5@8M7jYjjmwD}o{$}}i
 | |
| zuxRockFXoc(za@KU=ji<hpwFJJ?inSPla<?o7zDJGi%4e%oN{1P>kgR(zQnK*2y%0
 | |
| zslEy|Ij@~N>dzVNVXU}x@>QU{e+cl&+T>xo;yh9FT&&^4DrA*3A!UWI9U94D)b=kH
 | |
| zWB9BMB~8y``S`{b1i?Fk3(*h@q(AB%m2Kwswg`>%Y0<lz9D=tGY~lEK2%cn{RxhD>
 | |
| zf_#3#(rDif@K#Tz5wxQY`~MK;{Yn+sgz#n8V@!RPRDN#*dRWnm7pH_^rMIXzR;%n(
 | |
| zUi3z&BY}4B=&cYDtD`j$O(4{tZ-)AtH$zlcY2~lB)8C<rM|<!V8A0pmFo$-aCxBQ4
 | |
| z?^z}gM>jBo%qZhj`F2waxb@yb<si`U8|bLcCMt7dQBUiB&pd}+Sz75mm`>~uyM|QC
 | |
| zj|WR{wgx(40N$OD8{Tf+*{8&%ERGYHs1#$iev#P_d^GG2X*npUlwB(b!h+1b2xCUO
 | |
| zVe>7#ss-U>-m={M{LR2{%o)-E#$W(*iUpvXTcI<ZGXRf{BGNfHD#f1~6Q96@ao^Ws
 | |
| zdv+3%Dag@u%ieI9D56YC(tFGk{FQM<v;f;f4iX>wEP^rMz1~Y!_7IKYEd99b5MfW%
 | |
| z35KfF_yVG{5*J6CjP?ftYuO+0uU+YN9eZ$C=EPM$ARcaAtN?hmZ(cjKPjJp;?GV=+
 | |
| z<0wh-?TZ(?r%-F4?Ze(B+qw6*)+dU!&n|#R`#w!LY||dG5diR^0QtZX-ny=!eMaTM
 | |
| z_~7h#i)UVXyBUv3u*nYV*XEd_@>q?<t9rqkB32Y@Vk{BY9;|WmCGq@5Mq|{ELA6WV
 | |
| z-@sF=xhU_ugcYk%+YrSsqtnCA=Y4e6ERp;!!<O+M;Z+vX0tZA^OT>|@HiyWp8p!Nu
 | |
| zZl+B)abici*p_*A#WxO?SvJKN1adB<O&>_X#E4C`)QPw;fkCC%mMeR(T#O^h?2=j)
 | |
| zDC-Ceat5qSAPgTLz52K7frF8o724#@w?yV?d~}{p=a};Zr1)=}XMK+t46>A8jNjoc
 | |
| zm8OwCy4u29r-Yr~KV2xsVK@M%&&;O5s_^((zLZaGX4P%V!k6uQiH;=&aa98^pra6<
 | |
| zD+3ZSwQXoX7vlQjlK4s<AI2-b)I`Cs7x$UzVkE(Q_+^DS@R_Hdcf0XwltJSC(Ab}W
 | |
| z$`O2q@keo>umr3jlu6)xeHkGTfRs8Lj_hWY(%G#n8o~VJ$5{{n5EJ5l{~T&-#K*m{
 | |
| zdar-QC(|2eky;C>&AO+Ravygb`+hKvz&6Bn+C*$2h<NhiSUz_%9%;?5x1o0<i1pv4
 | |
| z`0o<pP9}e9SxX#h1vFnsk<07|48;<Uj|kX!K<^&l`#6*fjLrxQaO(GeC3gRT7*WB`
 | |
| z{Vc*58Z0wNh-6!2q7xJ!{4o~?1QiB<W}$-Ul3bmD^%aW=uX0vp!6R|(A1J2HQ(uZL
 | |
| z|CWufG(|lG*VH0=hcx2@=X(h}ikhO}A$)*Sogfy<c4Q^w*=Ba~G*F+eq;~ZU-58&i
 | |
| zO6ZK%+y*{`?1G%;ntyzXYCb9CcZ`Zp6!3k(UiK|Kyo)%kY-J;yeS^ct1PVvMhBz>2
 | |
| z7=1rE@K`CrZX+JG5K|}{UCzGH(C}ONP#h!0TG`monc29r?vmtA4m>u(sya)pd}ss;
 | |
| zU3BUwzANInhl>`139Z;DA;}Ra^=8ou9}`Q9E@Kz!jtvBl$8rl@!5P+hUmJHuZ^3yG
 | |
| z-DnWTeUw-%Q?EhlrAV!8h9f=qFtbvk2!yC+aH*)=uK%`LsPX>`CKc0Jh2*dBswoJE
 | |
| zgQ)7WzEstc(`PkMj?}|AvuI{$$P2P!m%&)c>SRh;--d`6Htm3Z$Id8+Gt7AB6uK7@
 | |
| z+e#=2umI%mmZ*SWXkW2c1CN!M$Gz~+g2Cv=*R_BF$uK(0h(JO;FTid_{&EvDpW`Ku
 | |
| zdTkb;*OTRGeF-57{cb8E)B$O~|I}OR555qyE4~0{I~a(2qPeel_#Y$vjWg%rx+ETW
 | |
| zK{}V}d#)tnNqpNC#ClOF5pUF)%NB^jR}nvHbPlns3}76)$!?2?#uZ;;vl%`JUk~a9
 | |
| z$wqTjO8B?v7L(z8sMNJ6bwBp^V-SXFedvSb2SFUM8IN@bCZ-T^za}G&dYYI~gm0f5
 | |
| zuz9QO!AHX0UlKXU8P(RyBUjQ3Lp$8sD?T^_gqRhs2fQr==WF?a4y~6gBFy9y-WK~3
 | |
| zb)2^)Ud{KmB&b)R1>q67zujAvWY)fK9>chkgP&gHt+8`VRa(=Ed3?ek*myek%KYMQ
 | |
| zX2#iHEV|Ga?hAb}KK6^Y<`<MvXlBq~E<uvwJKe~WlpeSl5O&SHu!tGok0(5Jp3Hod
 | |
| z_1fbjxenxp=9;-F$o+M$nairSdn37>SiTa;P4iZ!Bi0)VeMqTZ>Pr%ozj9R=I>H9R
 | |
| zxLdI08Qys=t6FNFiSc={=jP!vtX~3NTicyoQQ3G^_WsQM@<f!u=#xzS%BKlQ7;Evx
 | |
| z&@BIUb&Xk#nkuXCHdvHJxDL$Sss78{x=Z_r{ZywF8;^t|NQ<}6tUd@&KsD+uU0dOe
 | |
| zZD%B86SXozdS~J;r3qvh{+PNl6c}oc+)`X$MxR*H!T${vFq-AQcH|(o!x`}sCgMnc
 | |
| z`rI}ZA1GXH$LYPfl}ZrTsjRCh^!f8>7pczfL>TX4fkY>M$Nd>1_ht!BgTqJ8cDgk1
 | |
| z9@B{O8Nnh9tX2lr(9fbt_uWEUTHBksLt>(5y0UnWrkm?ghx)^60v2Dp)PF=xM2uo>
 | |
| z4lGDZ@v0ruAKZgT?*K$JP8|b#1D40TIgi**G}eiRS@*oOmm!|SU#tEdLSNRJwbs2B
 | |
| zYab!w4S^~Z#A#rqbC{KhjR=iO-HiV@9M12^S6g{})wv2+oi}pAUlMSTn*8qKEA6nN
 | |
| zh~B5JYTN2QHSj2`%CakHHX(_ShtpD)zi7`mImqIAXOo3BJT2mSB?BKm^@$)MX7epg
 | |
| zM~H5-g^Ck#7KC$cPqDjVR?a7|Jvl#&C?hB~Ma$vT&fpTy;&;G~>IWkvy;h@N&h5B=
 | |
| zF{KT!d=gbXI^ZX$fKCSFW7CCxKk>i8@y;FuU(_7y_phFAYX0|_vH~5Dlv{8;i>E|n
 | |
| zH@p7qBSPR1n1eBnL;bIB=eBW!`6S*KZ5LzCOk{@FDVPVYM231OeS|g0mR7-C?{`p~
 | |
| zobAjKey(@gqPi0yJ&q1I{h~*BEU*sLZ{98i(t<!{j`B*Gw#Ult^$?xzZMFw7)2av{
 | |
| zOjT&1)A;dL+;*p8%@seiOK}kR08E1|p?<i}p2>{iNJn<9yh47V8fVqs)Tr3vsjfmb
 | |
| zdu%rJ%dP{X&k=!4rKo96xX~3sklk>u3f)bXo^RVNW@%(cfdHm<uvl0|K=8%l0Rz|j
 | |
| zGTw20H^ny`Ahf83U*{^mlV<NhfBVNav+rH~2dOW=-V!s8_tBxEBr{l%E2dvWk_0A1
 | |
| z`UQoi?z@HMF>14SmiTZ8-WG7(><?>lV5B9~zh{zrbapL6b8rq&uc%iQ24aE1s2A#~
 | |
| zOt$UaC3=?Aj%Q2`RqxUr>RMvNtwj%fUv29N@D>@`F<~`T-$n61&?LrtqEW2<2!*|j
 | |
| z*75-#bSH73byJ5KQsN?X2HLa?#e+m={J3+|Z@d!A=AC1QVHC}Nk=<0UPhCrNY*7-c
 | |
| z&*Zb1!1ojsFQB8O_<s=!k4VQ>{&h_Yx}<H@CqTuJCZxtF6!Iu<{W!(<6;7S{Cy7T&
 | |
| z5PqsB+N1H3{CC?~@+<iK3PP%SuYa|$cWt7b2;lf$+!ULBHp3)J4{7x@iQ^4I{`;c-
 | |
| z2lU!ManPmcq-naIxQ!jgrU|T>9>dFj`vDD4Y`@v<cn>9sJp}O57yn6y`l5zEjF$Yo
 | |
| zo%FD(_+E9;BYPqCeTc_We*DtG;}!PE&(lON2hp|>)~Qr=3flK^3w16!2kll<Q4DH>
 | |
| z0K`P$J<Io_;LG>}!eG;9L`4}+;abVJGmaH%Ix(Y3c*`Nm@=_lgE5jPw#fXLRqMXRx
 | |
| z^~`6YJgp?YXWBCrp(I}%3mI}!G_=BuTNp=ZL&B^Oiu#Ou!hDNz!vqdX3m>_kv767)
 | |
| zIr27t;VbR=th`}@^1RD=%M|atQrg8K3n$(}(^Mx|hg;A>>MeYYNGrO3Gp%SM+@pl*
 | |
| zY)gvG<Kz~0+~of4{AjM@zapy>PUH)(9@c2M03e+YZ?>4bOsmn3F=Ws#T3Ii)!_$dU
 | |
| z?bMI!mB7fPKJ0;lD0v&Z{R<HmSr@?}s!;fhQILU_y8hdL#G>4ohz%a2x@qJzu{-PT
 | |
| z;-t>7M&+S$tz36SF>A)vLQG~6(s2Kk5Sx@Q<3rX|;CZ~AxOQDx&C7^mxV4(WOc$~@
 | |
| z2zOV$PZF4(L=DiaML?D!p`FF+<9h(|>j5Qb4H^gfUpq$cJ}&D*|NfF@E}Or55;QP)
 | |
| zF<-?kOOYc!J7o5KS{HFDxNeA6us5Cl-IK;ed9}7aK>KQ|R%9_g6j!sn!gomjN7eO0
 | |
| z$r@2NXi3^A{xg78HaWyWH8X`dCAt59#{RF5>KBeoG6r*`F~DIP7H_N&@n@hMudf8s
 | |
| ztug*4+LdSRi``A$E23}Q1(%2LrIYH%wgr}}BxGs)(88UfNxU(c_k@2T{pxOUFv2iE
 | |
| zZ<7XlnKaaF<ij$L5Z+oaX!+fx|06h7^SBc|R3NP(M*oAlVK@XoJBRt%O3C%HQ<+qW
 | |
| zx2&cNdwM!gX&ga2@&ft5GMT3dkI%6iy-)L1Gd5p^J-)2S5m|o!O&9T=2l%0H>3Ds#
 | |
| zgvPR{<3;Au`r9IPtV^4a6u7fQLYOwv-e;&w@%N{^fy$yj7g-{d(9#MiU-n%~srtyN
 | |
| zAjh3~YvA&Xmwh%PTxJXS>PxgAc%mfGzkmoxC<bb$nZWd5!@NR#HOIIHikZXro&c+6
 | |
| z5wYDr4W8q=Uy3<CJ<@LMsb_Q%r-dT;BCbN>i)R>7NVH*^#s2)Ri7)&+8ioIT<kF;G
 | |
| zF+=Q_{>j*M!*V<gZPXr~hPLWW#NS(&xHAHxCU$JxTMD#e{rbN$lVxrWaY~8S=?wB#
 | |
| zBE+jBDIf{;BD=K50Y7}DAi+Lm(M6bP74MIUCPlk#Q#gzeEi0Q@Ov5&I-bO3a>*_Rb
 | |
| zqfH&_ZH!Y(yp6=K=Xe|A)oZ+s3G74|-*3YCse3muTp?kAJ|p(!{@9oCu`feoU;5L_
 | |
| z0JBRuvP+l225oDSnS5pR1O4Kd=Y*K&hK<qZqcP7v#60hbdH!T0nsUEPo8`9<FS9kW
 | |
| z$X9NZi!9bJC|ATK?kz0;py@0thZP<y{(dEVBIp;NzYWV=%r)<-h9$kxkMLw@Ku@dU
 | |
| z8wL%@NqGb?X-fIf98;_E$2QEPrLleSTSWHg`rkLnm4%*8?6U4i6U+L0<9V0$_y+12
 | |
| zBrjhI@f+Jv(z>b-V@W5_lEQx=R#okZMRn4mE;(ye-`fzgLT|>t{5kezLF~)pu`km$
 | |
| z#H{KhddY23e1(mzR<$Jhfu0xh+&$*m8S~sJ=GhVRY>9dPeLb4uRlV#~IIR1K2RJ>!
 | |
| zPOoiGiLGwCmgT+o)r;3^Mcn7C`#p*<zq_6=#kEpcu*=Eich|QfO-mm&Eo=_+DO#A5
 | |
| zN4UEkJ;OFqS@3%z8!XW(OtSMnt=%A2lTL1|7Y9IKwcq#b7GXRDWqq7t$1fMl+p*!i
 | |
| z%X{&9u|+~>TJ2i(5v=YcT3xY!|NHuWzAk31Dq>$gjD2}K_T}Z+muJ?+tna*aqDydb
 | |
| z6tlilqaWzwW1fe_JiB6^d&fLy#XP6SJg2UU?AqLuxbN&J<+W9iT?<O104zv=GK^<W
 | |
| zvs>$QL9>Aeh=kduZJI8(Y5H`5{6~qH^yz{(*YD?Kgxdw_=b4p58$2CQQ$(v*kV8jb
 | |
| z;L$wIourfxjBH~Btz+)ZNIAwNEy#WlOzR&u;pJQOsURym%zP0<@EjVtll1z-JAP1}
 | |
| zHo>9|j;K-INQ8~C@i!q^y#;|?CP;I*>rQ|sIftPhWQ&r0*_{OG)aGj3*IxR+8R~;3
 | |
| zLp@VEHGTh>*efp*sbjo#jOP@T0gYe+B&M{z(97PPME8x<-<WvhB4Gap+fAkXj<SgG
 | |
| z!=@2YrE|D=CPuc?{z{b$gLRLP*b^1?{iTu|5!{pT`IPw`h>>@X3g_om7W{QL88GTg
 | |
| z)(~*(DgN#1Marg`rL@{CSh9a03DZa8m{$3nX_Z+QG32OShycpnG4t}^Xp{U-#{}-U
 | |
| zE~c#F-wp6ue{m~X#|3v%{Q-T8a!=vLkZGM8kt%4Nfh9BxMrVnG=BDG~K+ftT>4>kg
 | |
| z;B<s|*(wxpg(%#v-$BhAQw41Hkg$2=Px55(zkP<C_)E5gqo=^LT-tR^k9MRsJo9>5
 | |
| z6z!_x2r`98H5|-InqznTOT-+TP4|Aj7B{%`Q3;=4M130nmU4klu9BBY%u}alhfNag
 | |
| zcsZ-x%uzNCFU=j{OjlDm58Rvn$B$WBo?f@hR2ZlhrN1FYt9y)mQQrIcCo<%8mz?Q>
 | |
| zX=0e}_XFZ~n`#+mkvG=4)YrNfO#AaqgG!;Oo31RrCl2x_Uqu{WKBp65yy#-9&@iPT
 | |
| z2WN%#H>efwuZe5r)kV6MoeWirOAD|FaCzhnTUFH?wyAe}!*NU0!QQZ4z116zSG#({
 | |
| zgikwAcLgrJV<N{3pb9Xfg%f$i@-3&;Th~@^m$iCp*Xpf#f_Mv*Iy+%hTD5uy(tn;H
 | |
| zeENSYf4`EypUdAZ@^^#${Yd`4H-T>nI>F$q6BbFUra3Jvfsxt-JA`GApD}&)ubF28
 | |
| zNK{9|KlV(7nw3|AOq70f4HS!GBDT3YNPO%)%!v^8>WfjTzMgB~T~slvU0`&Hf0ue?
 | |
| z?vB})6Ie<fiMQL`*Dw(!3MxKa#L>PKOtM`FGX6uY==T#tV9df@7S4BXbzEhg4OU@Y
 | |
| zjzqQ!pQ}J=@K(ln*1k+!b$$<s80O4|c72-hXvnmZO?5Kn`x6>SLIW2|@c)#EE@RpW
 | |
| z2G1T6JnwrzB6WWw?i$>J#VVnCmguh%wl(aM$XJArd(`1pgSs@r>8$I(k{PGmCxv?6
 | |
| zs&HgOz4;+;kv}M#29)MjyT3BGPMJvGBFRyy-hnP-DF%*fwRHyFFLe-|?pI{8xp~-l
 | |
| zoiI$@e6&!ITdgeq4qM3o<SBMn>BJUzSUAXY1_t6rGtHPJQ5Q7QjMopvYM`>_@Vnq_
 | |
| z{{=>4K&$jWcQFMpcTx9^1x7f$w&Vr&u4b>>9~|$@%WYH>0yA-v@)DS$4M^bpVYQt&
 | |
| z)ED1rD(f00&8<-34^st%{*Bhg`1pieNTajCK7Yd8`R53G1}B-iEZna~px~!}j|O2p
 | |
| zgajRHR7*$Jcme*WE~CUEJ$g+>X^%`bkMfO7$d%CP-v(~{=7N(`C(+TZln=@&8|(-S
 | |
| z&!ZzQLh3F2;WXcQgv{t7FQWEef2BT%Fb}O{J6ns`i5PXS6x|zy?v?0FRHVlsdqC?=
 | |
| zlvh`Vdt&#cl7KO@0rM%8O`U@BYax>@L|zO|G9E(wXTA&Z*SfDfPqllm;xnZ9*9f%~
 | |
| zy>34I3X4*!-EW)o_YW#v_mZivHZptH=<JG7+1rQH);vtq4lbaA)0`Q6k4jLv`prhB
 | |
| zGCFDdu|yDc>!Uv+;CQKufTM;e<~1J)jv1N&5Qu!iGZdtPHHFF6x{11;#F~Mr#aah;
 | |
| zq*7=Ppr%1dd~Y_~u@+6>o>nVNVSC#=r?;|Qz#go4fjvNFX#4cd#6Ihjs3Os>t`~Bv
 | |
| z>Q(;G-2CM*ETfm_X^ikvq1O;YUAK_suNxmsriFYkBG~S;f=<%HB)Dx6@?q)(HBgL3
 | |
| ztEkcED+JJIaIe_^bX@>I@MtIIFRpHFZw-HOG=JI`!?U+z{%QlNvjDPO_Q#RRHks@f
 | |
| zPdlO2vp=y?r&GU#u!wd@t7b<(kFScEKf>_1n$51L>&^Uu@LJ~cSa=Fugo+h*Aw*02
 | |
| z$Xo0IM?1u|+`_e}f7JHE96+n4k{$dN!7<jk4mmyUk?`+b%5KF{;bsRIslmEUJI=<@
 | |
| zc0We0kE`I@>kK*l>_biQ!+bUzk9ydWHoG?J_Qss^J3G^yzX=+;<Wl%^kn;b-4x$%b
 | |
| z&J^LFWR2y3l~D@4+MTNp(pu_kT7(}PVQ+U<`F}Nt@@wP7v9kJ0e6m1(qJ>a?7nk48
 | |
| zo^j$O;#_kOA5!_vC_k!I`PlkX8fE=Svi|ibf87Pk7ntSS$nvXDKGb}n^3%=oZDskD
 | |
| zC|?s>Uiep`Pu2iHc@&B{iedF)6wlzRCGxBP<}VTc=1>=$)&WSCjTD51dIx~Z9q-+o
 | |
| zG_HCrhfW{iOu?IR*BvqU!PFmG(9JI*{?Q$xTc*7M<CA4!GfH0)cSV%{6y@8?@}|xZ
 | |
| zm!Ec4`AGjd5pU+mi&ux_C8&RZuH*>|G%0&n)hw#;4=+)L6?6(lDwAOY(_-tRp-|be
 | |
| zD7%!(*6q?Dhu(?K_=ZJd51QrnA${5~#+^Umd9rx^4bLOQa|51BV%s%^*eir8S{xed
 | |
| zDhem#`HEptr;3rnGo;-q3N#Gm!s&R1{jTU$2KS2l%l-Ots2u$Rl+p`jtA@r@94O4f
 | |
| zY+f1DiMPxzAPpOelqEx>mjL#_pe&FVhlP4Ew>~}6dYU;W*CTxlrPnQ`xBhq=h_}@d
 | |
| z|C#@{^?C|lrktn8)0)p&uP0FUry-H`nu_-?hn#o4n3~i-9ui%&cZWn5?TsPPMf>xR
 | |
| z^Q^;BLFr9L3y%(oE*jf!#VE|yG)32I;E?Eg-8SSx>*XAB_Ih1B<lNbRD5m`rgU?>C
 | |
| zgM-h7@4TkydQ}WQ|9ZVMICi~W863M_Vn3E4WB%ZnDK*`MiTp*#zx%@ZFCxF+h4WuS
 | |
| zewPd9uRy+4_@DU)o==sUWf=`b^-E&P?-c$>KEU&q|3mrZqWl^>KmUIy|A;7Gf#*N|
 | |
| z_ww6#{G$ABJm-jK29V6iw+{aHEdRa^6GW`yn|(a~LI1VApLqO(E;yfukpIDj^SO`D
 | |
| zUO4|Z9{+{&Pa*$~3+MCvWe*a&4bRv9_wk7J7v(K4WBddE59>dW%O|4zmj7Np8D*9a
 | |
| zykLJXMgIH?=XXZ_-2<cRGxEQ;$K|sxTwezA+n+C=@#lDFioaF`6L}K~>bJ*W3XqmC
 | |
| zRgFcGG4!RVzZX9HAoep8b2;kIcODn=_-}7LrkMWT!Q;Ph{v_o0yKw%Wkl*F3{;*(b
 | |
| zwg{T8qJZW0=mh^>Vpf(S2%i}LxR@U*HwWK*R&v(d+;F<p+!#-`roYdcU+!4h*>(IH
 | |
| zy5RiAw6EdY(h|@~vpUiHpYfg-+i!t`c?}^wh!RHBhBw+qT~!o*&g$Q*uVDQL#Nd5i
 | |
| z{|om|;#*$-0q_BJmcK{2e~|y|fb-C6hfkdYAEEeJTWl7q3U9Ulz=vbb_u+?Uec0-J
 | |
| z`H<KDe4ouew>>Jq7Uho@pMU>=CnV0L1C^^px$V(%AT5zpUM#$dMjg7Qo?<w=$_M|v
 | |
| z#e%=Y`T0yS!yE`)-Ba8OfKC2_vUf537oVs9>wiCA|7&^wU%3A%)c=kpYG!P9#QuuU
 | |
| z^52VEeQcg3-?mO>et`0RL3@=&=jmVCx&8ZJ?ek%zp3^>4QxneLK5yB6MHj+n!bLI~
 | |
| zO)61GGRXRCMZS8Yxsz>0CX}ZM>xH{dwuW+E4;)S?4g0NF`j2=O1h8#D-s)&x-E))}
 | |
| zPn)RjjaYot9^2|!*ZJW8#QEkc6&^?FyH5D-E|(?7-KvzQu4?@qmAwXKySYHNo*#eQ
 | |
| zhyo55&pEnyx>j!~JPQ*|I3YY2V1B<Z<f4pbz7o&9QN{K`bGS}{4bI)~4BpEN&yNoR
 | |
| z!ribvAYAz*vG4MFtJ>qyi{U_KZ~%Ff&hxRhKQ)OIu!Azy7*GhkRfeC{1I>I_G{0*!
 | |
| zpE`3VI-Oc5G$9;fAiOUvg%SezdsTc7sR-&Aew^h4G4nST^?cS})bmrZ;9J+z`|`aU
 | |
| zo5YPcKNC>sZ~YO^<R`w1G8Zh4>RZixtxNK?^QjcpdpXeEJ2tlii|pT}c6-OFW`f5=
 | |
| zRpU`VYHG!`mLH46qURZIg^#`YN#EEkHnpF*5S{w-n5XgjqrQV?eZpD;wPx->y%VWk
 | |
| z4gjbnqYl)47XKcp->T-C^{?*7^{c3VWj}N1t-v+@n3TG%Fzb!tYaZUqr}KSVIHHpO
 | |
| zDU0l4_O8l<w$nKx-JL^C%tI5mqlx6QEw-2gZkzl*b0?7Ri@!<F!!s;;9sK)^IwKX8
 | |
| z>Mo^PW}}w4ezKK<75GmrW$%i#wZHB;{bKeHUKg+5PI#epAKi7vIC;#&pE1s6RQaz0
 | |
| zs<NJ8LCug3tJ(s);FjrRSqpa7L=;?DAb@CILG&<qtRM!#MExPdQT@GKDM8_M0#Fq)
 | |
| zYFtz*8w-2BlP>LIgt3|8n<GGeF<R+T5OM!6csCDjIXiO)Yu!Dm*efX3(3dyBtjJ^r
 | |
| z?XR(+8^Obnqb8gY$lg0{B5<Pf5_1?8eZ`&hYWl7Fm)Pd-*c3lVpul5U{t)z^%l<@f
 | |
| z%XNTRVOGHkJQ!ocvG%_!P?y>l!dd24d7s@Y>mJ`XI;Uw=V3gT-VPAHQe+dTGt8a83
 | |
| zZ|ECysG`g81&eYL5+7XH5;iJYgbxaWmB!ns^RMy!lu|w@N!hqB&^_duXtlfF^PHKa
 | |
| zzH@6b!lb#&>R#vbV0iW}i4j;-EV1|kr~*EjV^<$#4tk=*u=?w_oy$Qt9Hy;ckK$Y*
 | |
| zLRdPG5pNZ~ntB^k6RD;$*tWwls~~8+k5R4wU4Ii)65ejU4PvsoC1>+{X>geqfMl2O
 | |
| zER1`&qxW$~?=U-hD*xP$-Vy1j)Eql@J6nYTX{R&NHm5nw=y*o@(=z+^7pk!CJ(fps
 | |
| z@0Q~IH7#_Gyyl*~1oeqLn>rwBT}eB`e>*0$hgGPhm?z=T{Bs33@7A?GwIf0g7GZQo
 | |
| zv!9s+zmnhj5EuRkSmN?~-g(3`L(i&Pl;4i7Y^L(Ybm5?v#T*~z3H_h(=coTc|FL$D
 | |
| zT~%qc(+P=;6a#!l43KG(hw>r^m;C<hMOlAH#_%y0Wn4+?J`Qw$##1oJT-wX?Ab+8A
 | |
| z<&uHaKleY)6|v<pyu42Dd+>gu55F&>_aE{81HUsrV=n3!FtmC=2+m{27qgy<?`cZS
 | |
| zOAvwWX{3eR8{o*(sN$JE=Psdcn5T}U#1;-X&zfFi3bJmeD(con@dx+52NK^lB~aJl
 | |
| z?Ij71NBR8kbB_Fu#d1xzo@d=h8~=?TE0LA~YP@%I$++r3=O)Ie>Tz1*VTAJ2*VtaQ
 | |
| znUD-|IU|?lu5WCnC9Yn6H%KG;Se&P#IzGymHwj#KGLVc9R)6oeMLbb@?iPfgs7j)q
 | |
| z2a(tjDQlRzkZ5ki-GcZU$)Qe4X}eC=3xra!gL<diZx#9>c&^Wlpv*u5(J>tjxYU>S
 | |
| zUVL|6X<@~sHd@GiG*r;jrs{#I!`T0$dVp%lqgq%MNPmy2(pTrRArhMvt``x#m?2w|
 | |
| zD=reT=TP|AuaRliT^xn&%`JR3W!H_PGSfk$jn9pu_F=j5$Y$eGXE>e>POqS;&(hW7
 | |
| z+|KnFPX?6>7TP^e+AZqG=)|RzP`Adrxm3h+f$DMKM*k6aJA!v3@F#??_`x$Lrw#VU
 | |
| zu}~3>?@*v<n7;z!J4ledX*jMMGp6)ceDFJ}f1O8L;4z;5Z}QmZWF&ADy5l|&oRG8z
 | |
| z?!20yp1H}7Ym);f-&U6fk}+Csa8_V8UnA<x*o0eA(LH%=V4N;|u)wq2e6%vcnPpzg
 | |
| zbM-~T0-dOZPIY6&`mlW`eQK@YiEt^K3Nxm7>%;C}g2U}WxSx@5g0Jgp10A4cG#uo^
 | |
| zrh#xqmocTE;=h6NrfltR?`|<YQev-W*Xjp)F~qU5L|~v3K-lM(aD<N8)JuAQ13%s?
 | |
| zx=?@X6#*#y-9GTPh7w(lvmzwzkSzVLznf+<Lg$*bF_s)-6)wO)$n7woKC&dxlMek^
 | |
| z%BJFs+^y~tfx*K9m(eh<!IDhzHiXp<fnujQLC5-VsD^R82H(QGGFa-&5{}nntxFtY
 | |
| zHgX9>-EY9TU2vjZO51-CWs`Iug1V>70qyBYh;KK0`V9`UM{F2Ip=o^|QJcmHP>cHw
 | |
| zDD$?C4@M1wxk;Xz1Lo#pc*ne=T40=x_4{p>>gB0$IMakjg10rS&7Uk@;s3irwN?`q
 | |
| zmyEKMf6jdxE=uWuapWUJ(p*<?NpIXhHKfnX)pk_YUsb7h4mwh_PrTnJW>zu<UfB@0
 | |
| z`ydoOolx}b?iYqxZb#Bn$Dr4^Z5%Z>PTMBgw$KjFPLE`E=O<3A+pC4<ALcL>!U27t
 | |
| z8+xg&;<y@S1chZzj=-^=LvPTgYa@wO)e$US=B>X+Sy*O;gJ$$!S+pDqDX(J;!Xj?3
 | |
| z979%|W>hxE(J++q=h1`A%H6;E8x%hjrUUlZ4*tz%+2EnwAC5m(%Ra6$)_ACbb(U)O
 | |
| ze+BQ{@OJ;DI8GyGMp<JK3AZ9H&SC}$QT*>vmCKvh-w)O%cZcGGe;ybzFaPO;O*qdV
 | |
| z!P<@j7T}+70&5xhAA`54iOal=_smH4<{zf6T&65KY>70Y_<lm|E)Kt^UM94W<f*V@
 | |
| z924vU@ta0v5YW(v;tV-Vo$3>x%7#Di`=o`Gk2_ut%he-VH+?@$Q#<|yzstMie7;^4
 | |
| z$VYK&N920*@!zK9qn^323VjghtanS)KTtp{S9V1}uA*4CfLP%9o3Yx}-j;jjjtkg7
 | |
| zN_m^`zRHu1k<xr*7z;Q$E@qD~P1!)R*SS^7;$ie6d%xHPdRz2;N+0gC;_n4}^IJI-
 | |
| z!bf>j_1Y(1l{aj%erQ5;28bEyrvKYDS1h%e_n;N#JPEBDHzM<LM=F%EzcROLF6V0&
 | |
| z5!i%<3LSY(X>nJVy=oJxB*JNak|`CDdcJ@T(_w^59_wbdk=Vjy(Q52pV<&7r1vn8J
 | |
| zf&+}y?9hf)uZml3)4Wsq#lW=dzmK&@hrQfMbZ+%>QQjeY2)jvi2+@nsIkV+InA8OT
 | |
| ziZP3D;subJ0}tmp$lMfXiJZO>fLgL-^eAo5aCpT|@|;OmZ}psMqvm9XJ!iV9_hs**
 | |
| z@zg2G#!9c=y-+D{SNVgzO;y>ptnPVjW*GE)cV7I=t2ldf-FGNJRk$~p53A}9)Av-Y
 | |
| z9~DdDV!enC4XHNmN`F|jo!&oA+c9xcb>SwV$KI}P5tZlgRoS)P!{~lp{E`Ct2@rq%
 | |
| zgAVuS)@pk8^u9sWQG=E^mUTR0>9g#Lv*HbD)kL9+6-=qKEh$ts#)Vw{t?BMlGOS%|
 | |
| zdV8ey)o5)iXr?Sbc;{4Q(L#<fJ)4dtnpc7j=tcLBm-gs^B1>6SrJm^dVP07^et(=-
 | |
| zR*B#5=ar3cUT5a{D$2$?yOz<aQfg+I%Xz)xzl0V3tKKP4{7ND$6gk?6;?HC^R+UJ<
 | |
| zk{*5AH*!1|e|t`^MtTC$YZd?R^hL<!ysm(C)fE3v^gcv8>HRTL@mbl+v#ZB-3=(t_
 | |
| z-oQ{pTgBm_4%`6j*D{i^7F;~<XwxyN7CSkmmd)4}rK2u7ClueuR#*nu6yG#{h*NxB
 | |
| z_`%Npg@94Ljq#>=NP^m5DIeeCIzDTNe7S)!B!Q#nQxDAnH@i?a3%B-dI=622?=;vU
 | |
| zN_lCI>xg=}!NiXyzV>YQ&?MfV7s(o`l=4s7B)6{NK2gJn9@hzzV>BvB49_Q?vJs*W
 | |
| zasOrL*NPhc``lHH5EangscsYBx`Ll<T*3dC2G58KPs3Zb|I0MoHsZq5Fc~#K&%X-;
 | |
| zLh1SXBC0`Oejgqg&8KJAbP1nn!mlUIO4@a?6G9)0Inh5Det{XSRTk~Wu|Bayc)Kni
 | |
| zk;bEnIfv!K=zki1fdNq+i@A<w5xc3pl<J5XO3b8W4v$Q0WvhjuItFnaP5)~szubA@
 | |
| zp|An=#K!+Ql(+7@@KA811}8TB&!J4b^TI>%a2;p<*HEsw;85oF^BzrtLgaVN!h5)c
 | |
| zc2!oRI_)N`@44gr&=KhD!2cXPd#ml42fQu$8mB3XXWG~=3Petwa_Q_+`wJxM-NJg}
 | |
| z)eTXHS|aWcweyf{rve{FI&9Y9-ss(&#Vj0q`C<I49ShC~duI2zZl2<gYYc}&F1xcp
 | |
| z@zulTsW_}vd4C{O2to#yY>UdRuoAXkH&3fk{9iV3@oTC0_6E?*RuR|I+h9|l@HR;M
 | |
| zr@Oojb~WGI5U+OeHY6-j{0K`jM7H=WSJ4AiETBg-`H5)q!!gPCM3cwFB$q~$`^6;Z
 | |
| zM3b*?5SDmsoKC}v4558=2niVRbaN`|&qO{x0w>VZTV%#}(Tp!SqgiIuL^IZLMw85V
 | |
| zFPiZdXEe%;rO^zHGa6*ZlhKUnoN-2E_~3lrm~bXK#ycV<{eKtq6B_~K{Xh2J1iZ;&
 | |
| zdl;Xj0ZOf=YEe|sw>9;)+LjhU>4rcHs23G4xPnXCrlpuRHF*O?5ku1e@il-@Z~-rJ
 | |
| zMR7r|dZFx4S}2Pm1+IV;WN}N0C<;Q^+W$Fc=1tzTdY9+>{hsgn{*Q&pndQ8*&zUo4
 | |
| zX3iMp9xL#qB+ZD;JzMF*()8&UQK1!mVoDky_Vf0Vh?1sAx-W3zqPlbtyiSvz^E$!(
 | |
| zL44!VgfC*EP}G0^H0cP+BZ02T{{yPYZjw`!OAYWLz07TxtUh!Y>)q#XIzy}SSnjva
 | |
| z|0(YOZ|uGT&u5ORpGorJ?ie#g_j>#265B=hV!P-jhDGN+-7da+{#|_8?cz&r7vBR9
 | |
| zp|)iA4?UELrZk_GZie&;=!Up5m^={QyYg=FS70J2!Ranv7Sv_oKMKB_<*mnWlnCRx
 | |
| z%TMPG*GY1nZy;)d>=XFjy|KqApJ5qRw0OUwUH*IW{A2YeYP0P*9iDCHX>GQ{_qW7;
 | |
| z@@4oiF5%Pp1nLGI&pV;~3)#tR&H`FZBYk+qrXdi;`@^*8EMQopZ&5lM*X`uR`Jo}N
 | |
| zM|V^v(A_EzBehJhzT4Q3t~3ny;GH`eb<6jId<=&?Jk0Y@|0`)+MW24$=VLr-urZsL
 | |
| z0jmR|ye8H80r1s%rfdC`rzk(eJ;&uQm7ds~O0*k@VZXrJT6rV!uPd@xXpfe!aO5rx
 | |
| zEUE#BQ8*im<;AzllHKQePPzi<WqR8vZ;R#?Ypdz9^+Mhmxz4Lbo6Mtyl3&IGU3|~#
 | |
| zGR{2L#~0n-yJds_249cJo#(y#f&Eu1zj<GemjHtTDNpV5JH20JoSC>w$fH^}d}mPp
 | |
| zs-le!qH%R%cr3exzip!CcRj9{NNE(mYls83$eV*J!{Dbic-g<F>lfNkrTGV$@Bvq$
 | |
| zVwUvd>AOgJO!`akN*T;1^z0i{W-`oT{Q_6CZZTHfhiv?H_}wffZrXNrerH@a;x=!i
 | |
| z`*6IwB_7u1sQ2aQ<>|-W=Pox^{R*xNK1bwABt`38m3nsaZD$u0#6ufHvwe&&Q5vh7
 | |
| zP&0LIq;H97hb~l|1^vVe$p%tNPC=rUm64`o->?`|beBvy@|2-(PwOULu1`^QY0m+|
 | |
| zg%PA553bL1O`h6GclaEJ!QP*h4EF|u@8!1E*48t7<IZ^-6I}2o`zIfD0e9f+yulyi
 | |
| z-k`_iSgrfZh@_u=^5r^wNQoq5OO;C*EoxB9dI^7+BRPGS(i1m1FSu*_ojK{<>)oGp
 | |
| z&bu>xSH`FK*lz8a{l57od`u{AoA=O4e5~>0`yWSs6gllh6F#k|T#7UN`ollBwN0xs
 | |
| z{guRwbegBgyT*jdINXQzo~=dRD$@dR$d|ac7*vOHDdKsyI<GV?Uqe3b9WnSB1?HKg
 | |
| zl{k*pL#;w&FPczJq~P;@YfQL2A?0q_n=sU8*a4o%G5fOpij_aPfv^2QLfG>mupR>q
 | |
| zKPf3FKnCy4;MSc``l7^Aw@t~xy=CzJ6ule4@+O6^qu68LL5*f84yrOO=2`3Ki(cie
 | |
| zHocFLzi9e9f@-QHK*47^X{`@!KNHVtt)bZZP5RSnjBch<O_Akp)~L`W;pBY6d;XBJ
 | |
| zhVqf#r1Zu9kIx@w;(M!`^`6sCWAiTT6SpCokMbGUq`qC9CyeXLZgYQox%=Yf&Tk<8
 | |
| z<<tyS^qKN_vhpI&{u+~ne0_2q#MlF$&!Za#(e!w*KjBWUxlK>k!!Q_EAHK&U)$YA<
 | |
| zDBWA7m?rWqho6VCpt1=y5x#>tfW##)X~KOI`{|6!d7cJf7of~xIXo!)6A#c%AEKvL
 | |
| z?jdx93)v37@>2C2UYzZQRpQy@GzM-}$Hx_(UGhz?XP_QV8P|=4dWd&ljCcB#LCK!l
 | |
| ziX#eYR*Q8bmUDl4ZTfNFQW~0S7MlM-G6ds#Udw}_h^u)+_TXwTwN)3rpVyf<l!52R
 | |
| zM3wkn<aLH2qv;}xfA)~j_u`Uj?GV1lO%*nu2l01qd4)Zx2{$f(k#aOJ3y2%m9u9&`
 | |
| zdTj)?r_tL1J>COscRd%Te|;+#NcL(II-*2G&DX2D^TuhHpXWL#f#d<fgRx>VdM@F9
 | |
| z622wf+=@)4Bht5q(=R#nGyv(crXvV3#;Ugf?VZj-Ki?}{Z*w9Jz2-gm+6N~y$BEEX
 | |
| zy^NZZ+5(rV?bX$@RlZw!#N=t3aMJg*VW{_{5&=sI-%O%vjd6ADsG6~A6u+*8G_5Hj
 | |
| z>7-A-lG8MZ$ywv;gYPl0<}|LhvQMynQ;51AH&*S(RQn=zP2Z|kB95OrY|7Kh<0f2O
 | |
| zy^m9b=mhD<p;eJ`sLi*88h0(VeXuL2y&#ZBLR9Jn)w~zrn$8NNr;MiW7xGAHR<I*L
 | |
| zzh0gfnjCQWQS+;*L7We1!i~$TDOZDvyxfAFfsdR4c=PErzAizdiRc9oiL06qu;8{b
 | |
| zrxl-aTA{=JJmb0{(1`MP?{t=r2Fb({qLCe`#mG&(I6x*eRKtHd_ur6<Ik_FkMP2T{
 | |
| zCKvg+{}H+9+pf@zZy#OW{26agDlaYol_4;5&YbY0+N=ri;q%mpkUGu)YW_q4M2QVw
 | |
| zs@qGK=Z0EVGrmJD`_Z5dL;T<%&9pD#w^I3eA)gzhZCNqI)n2LGhUHdUR#{3D!D>=)
 | |
| zyCy^}vhfjn=b&KzSKh#=6)*-hCP9R#7*T_$t>|^YrJ)?bI7!2^VgJM_F~>l=(8lTb
 | |
| zYKhS1#EI{l7-FpYF`6P7si(V~-B=T`d%#@Y<v%tk?7fW_328mOPB&4k^iiMkAkH4q
 | |
| z>%)G3H@p?>_uqRAB@w`$S2f9-c%`iSRAKJyX;x!Z8L%jPh@4SkRDQ^~uAYl?BZnGm
 | |
| zZm4Q<{)mroCjH_+c?wr58@@IuvymCaZO@iVVBTEqf1kAap?WxPi}H^jz^TkT48Q)y
 | |
| z=HUHvRo2$FN7o4pNBUd2V#Hnab|tQz?(%j+QOBDk30X?z#A<9F$U^tkez*JsdHG)v
 | |
| z<v+#C-`uhM=aooz_DU%K4Z8oT{3rR#LK_YnGG4(l^GEcQSFotcM_6oF)E)GP`emq(
 | |
| zwC!oe{TZO*Y54wLgwfLz_ZX<0DOltrKQN(q&~q$~{+6#HkoOolQtc{A--$F5jh?Tt
 | |
| zEB6#kyT=VKe!^RC^h8GlyKVaEwf%U{ep8)lfJnT4N03-TmnNRd8rsFZ;||i9hneS#
 | |
| z3fClEs?oC-74G8uy(%@39ZDHjvY^h-^G*HqqCtS>6ah&`H;!XS)Zd>5rI4C!;Q}vS
 | |
| zs5PMhlP!kus{TRQSfFbP$*X|oIDJarH+Th*E^_7Z#1)#6>*EO`H-`{+l6jmY1gtjU
 | |
| zBPsqT`v<A&DuY<EiF~2R7`4Dc5SJX|7B-IV<o-l81<u*7Iib8)hiI%yep+*a!a-3?
 | |
| zPE<*cqS%Rt6$qmoqNXyvP<JWlAkIOQ|FT4^!`sk0$)p~A!J@38JaPpWGjp^vAD+Gw
 | |
| z^3h{Z6#SM~AGQJ(#hept2B_QJTo(Ad&2a1Q6b1Es`a37$)DX$#*;OxGY-?Lx_>Nw^
 | |
| zVrRk3-FgH%O*w?%qN!fr{2J<~qwX{f)ng6Or|<Ib_y)D)F%o=YfA?m)o3A?`s#@qf
 | |
| z^RsCN!JgWTiq*w@K+mAih)_3s>$7RK>&LX0ABMDh{7h;c@TIFJs8*DiuSG?x>wo&0
 | |
| z9!lGbtANv=L;^`~0_#VSuoRweIz(#&FJEA$AIAj~ewp5eGve1^n^tW?^`@{K+r!r<
 | |
| ziF!V-UXg$m1`(%$hdjpBZ-^X`8~D~;s|UU%8T;R17}r@<{DTHL)zc>5h-<Si`BHW$
 | |
| zruC&tlianPbXA;7TuNU+!7-9tXe&&>?|{1VZVGsKEKAi`hG0H_BNiwV<gv`8&7;ZH
 | |
| zZy4p#xO@rKL9Ux4M-Il`hdu$+0Sz>`ul7T}-|Ol(LXH>`IAUBr-*gZwH<QzYG|`iC
 | |
| z-F13sK^&3?)%+-e@#SS1;Q#Pze(GCr?C802l)41yVe;kmyVA?EB&JJeRNzIC$<6~-
 | |
| zW@=UoBK+u(=3%t>CrZ^MkHEUYMx}~D3m!E3S<&H2|Mz%eb)~Pa@+U;-c*bd+|ABh0
 | |
| z3L~#J9Z};X4wCejBw^%pDDp4jj{Td+pYEbt8W#ECVB{}SkAujGg+cp&o%2rNIp@@G
 | |
| z#Z|<>h87`td_jFjhS(lSZ!*^GOh3&@MEY@PLhORP58WIe))f|0SD?OrMAO$#9S-&N
 | |
| z&GJ~7GoA>o<<NIs@OY}s7j$*~w6nyCu6={#344<&BuEzIsk&cqCub+mCXAl2ak7+;
 | |
| zlRqE9and{py9Z{1(@T2P#K%V#(N3AqfH|Q|03EI4dqlsR31h$DRCS)u4Czfio-XNg
 | |
| zjnj^{e08)zEqQ<O?>>a&X+14^s!Xvw=al1>hk_Ik>MB;vq0rV_W$KPd)wc`soNKJ{
 | |
| zb2=YT(%WDjq|{+mSt*6J6CPHiAv=`X$$QLy{~=ULu}<PS_(>Pa!R?1oH+z-oq{c7e
 | |
| zFj37k8n>qp@fQQcK<4MsE~qPGj+L|z`U}(&%tfd$IXKLDX!<T_3Hr7n>GNsTeF){4
 | |
| zf9+SKD5J{st0w7pRL`>-&)MV&WcZ@SbJACs@%g4UPN7>hLAi&5`FHgjWvuF{3r?P^
 | |
| zui%~GC!JVl&F49W0)j7Dp=-q77UTrlbq#e6mNl!bQ+<QGl>)WMy@v9|jMFFJ6O5-J
 | |
| z8NEKZ!dcZ><w(SY_6d&xR*?7=^z<Rn)!p@-d2i1+@qEM3=2(0d;TW#K5Xb-gL44A1
 | |
| z6f~Wz*L0{mztUm_8}WX`jvnQ$8fL&A0;CLsiHfy_DsF(k>sOkZd(1hbc@w^;*+qT&
 | |
| zYYfh~gTI6s_ryt3(o>t>wifx5Rc*XOkXji$%jC7v@yUM8=3^oCK9}H^x|1P~bNj%<
 | |
| zeq5aU6L*2+ScRT%f$F)m5eGY6iK&P6Xg5OGCF3rXLFq<;G5lO8={$*~80y3H8}!`B
 | |
| zPZ-~?T)L44ZQxJA?nypM-X#Xy5()Qp*GKzeuTk_c%`_^50Ks`km7<{-olrJLrq_-N
 | |
| zzfZidmKWh_H8xuEbVJ`a*EI3lJHho0fA4{G+NZcya0$zwB1k1QT|-kUUj*NQ?z(75
 | |
| z{+EG1!(I5~g=R_Vt$UNoREsOLU3xkM+Z|<p+p$fprtWn1VI?X@-i)op#EY4m2a#GM
 | |
| z-{3a);V!UB>8>+Yy{6-fDwKE7+en{~MbAb4?v@DeX<5dn$scyNbds~(EuCk|H*6k+
 | |
| zar1Tc%I*|%3{L=cb0g;lO^v#YSgu#T+~A#fd8B(obo%l1+Mu@;yz{vC{~~tAXj6A%
 | |
| z74EXoBc&5BH=s-n1Jm2w^^v}T(Ox+QRVYr30Y`T{c6K?$rS&wCXZLW=H1afsduEeo
 | |
| zTDa$(<e44rIg&i@Og}EN433fR4NoEpB2cb9ck^wJ?sr2gPd~$g?<x2untBATQSLUN
 | |
| zXb=@M4R$v~XIQbIcm`dWf_-Y`8`wT<qn?R#Jkj2h>Z2FdG!z4457O-pcBu$4Dh%nU
 | |
| z=vbA-(7>2d1re?aML4p3gx6t&^ttZSV1&5_o`#aw+t49O8lB!>lqu67YTbS%$~!0$
 | |
| zw^VMzl?Up}n7k3k2Q5&!mCk*To3`RsU<X9af6d>A9tsfS>p|K8jLl)gaRpOLDLtR*
 | |
| zb2B|EjHK}>k5Uy1^W9k>6c2b#dwU|X+}XV`cGTnb4H1l6R=Aex)pMmqNWQZEiDwQG
 | |
| zmq$ubdUiSA51lXP(FPW;qHjlrzHQsx))uG^KW_*0iYS=4fO`Wcaar9k+UKq!+Ty!g
 | |
| zH?4=B6Gnc&Vvx>%B~~Tj2KI;V_j2`$;?QtsZzItkC;`6)0r?w~MmxV=U@q%}`@?Ty
 | |
| zCgeT}C5+^*k;*kGm9pUK$DCan_=d6n6%=luukg^?si{a`PM`s^#pxX?D$i)7I}RgF
 | |
| zJ&bPD^N4#?;4{G0PuyBkCc@mRzN9Og2Ix-s9@b@`ZsyUZ0pmKmDs(z$6BmUToR<c#
 | |
| z@SPT)W=%9n;}S4d|Cv_WTb6=dZlp=_Sz~k=Kfx3wjc=lq03EkVNOxr=?zK+dc!7o9
 | |
| z>}ZJyE=o|5^tdi`I!6-YaCMuA)>xy@*2xcN>*cXkwG|JM2DI4VYrv8(PlsFmlIOT{
 | |
| zr>Ci+EAA59<Fy_#cur5c$~XE<i!#D+uM*)7MEZBpsSW3k!5xFgxkyPG9N6H#2zAt1
 | |
| zWFhbg{@xRKUoEw9$}J+f^jf7ajV_##hnez74`VVUn(P~0$~Jth2WNLB_EwxbmUN=M
 | |
| zqCA+-as7<?;2ZKxBk)H?=4uXjOq*}Q&T6dD;bV!f;VYPu_fuolOgx!g6IHc!+A!1Y
 | |
| z#;P~KnQ>_R!_9adz%|iyyJW1wM{@8!DHqD!Vq7PiZdW1|!@F6AkBy$?jI;2VDn2vG
 | |
| z(>K=Kt5f5g-U;J0PVtE-<M^aB=?!!w7^^M_{}kt|FdTp~a+UUL>GpzE@YDEyi|7Mq
 | |
| z_Mz>uC=?jRcsEt;nl{pO8-KZk57=fUEpX*bW6k}#+<|K70DPzhGY>As@L`r=uKX3R
 | |
| zVQ7NnX4D~-n{jAdCs$Ti`LwYnB3qJw%8qg#aM$Zy&**?Fzb1H)MvPAt`%+hy#NQJ+
 | |
| zjgbVt$FIA>e0y28<eVSkFFN8kaD3lb9X?~Rg7lCr;p+VP^S&_M4C88rdBOId+2!k#
 | |
| z>HaPPywWh46#3fhTjZ;Z>l(4EK65o!SLZ}7v?d~VT2=C1oLI2(%{so<Gn>(YFnP4Q
 | |
| zRWGOTIC^H^g7<wOniD8NxK%`x%A*mn<PHu?uol~(tH3n;E6gp(c^$fnWA0}iv(~`<
 | |
| z+7;#l@x?n#8~0$JLr0eoP8w@E!xvY<7gvZco~1A3XCOpi`ySW9h>11U4ABh+<f{Ss
 | |
| zN|E(@Ir2Ri7R1&IY`uGvK7>yNxSr$p#Lysq1me3lML;R0W)g2X?L`Wr*TkTWHhkB~
 | |
| zXYG8*H8FVv^Nma%0Rv1&BGA1oxE&IF#CJJZn#YLu2Xm<x$t}<iPld*(=gA91tn!j}
 | |
| z!}w2BkOo+9H5h9K(_5%RN#5oS;IqSl*lZYE59s(S$rxQ#t$cZQoYU_HcLeuv{)CV2
 | |
| zLR8s6Ke9s`&BiL)<jFJjYhYb@>~b~~s^1VEZ8@&mIu9Nqg5ogRhR#ug8;0nZ>p56L
 | |
| z8ykk`ySf`9ID+#KYCg;uX-YJ{sPK~miQZPIyu75wq#xZau+VbzQw@2rKs}MPk5;3}
 | |
| zm#A9?g7W9llFx9}I^5s_Bw53XK=zXkr8nVQ*pSaW_5GLNCa8E<p3CQnp`jCCeIt`-
 | |
| z0fKwMNMM^^J4X)^?NtY%XrJb5adVgxrsm6VBX<{#*Ic@AKtoh)VDpi>VZ)J5zLB~^
 | |
| zzP#8GYPvdn8QIawUxw8d%a;ce+GdC&&p0*qT<{FQjALgZ;h$Q>eGlJYAQPml5U4zm
 | |
| z1?Z#NMJOfP#}rC=G^DH^LQ?akYiPc!Rjq;Me_W(#DOou28BS+*dQ<b?anV}~oI@V;
 | |
| ziD9NY+w~34Hy1-|z|-64#$&(cYg<Jd)svWLPf~-n{+ma&hQ6u8Z%#Ll$Jb<VCWYw^
 | |
| z)<%a6Viq2R3Qm0wyE4A=#vU@xcoLtGDWBZ@a7&N?um3H6s|PVJ3SV^A>GtWi`R~F9
 | |
| z4ts`}tuX$Qu7}1bJ=gGawi0fBla}jCX`KpO`FtG7oL4)mn`Gy_qIZj~(N)pLocXSb
 | |
| z)+l-OU7Wvi^=Hlp!sdspONsHjTgf5L?`d6wA%l7Q^4!GG<&A+l|5bQ+j$$y@Tt9@0
 | |
| zFs+AfU@%g71&?Rq;Xotee|Jj754_D|R=Esp{Cd7;92)_Qrbz#O?b!u|SmV%9I^%SF
 | |
| zQPMRrqAkkkDZ)th`Kx|a+2RK16!*6Y^%Z_Aq}+T6&#Dg6`=7vUQ1XEVn)`mrfRH|-
 | |
| z=GAHZU}}gz#?z3Acp4I$Tze^zrPK0tPMv#WcVkW6nSF8fbh0m8e~Nma-$XZ+dW1Ma
 | |
| zv9sfCps8|p8^5fd(SQqTV|A^2V-I6ZZAX0`q%s#3oZ~u3#2W(x8YzPnGJ0RMXREWj
 | |
| z_XJ)tR8UC@qC+6Whwno|okpVM{-RF4)qPPf_f0<y-MMo{z4xo<uTX1!ZZF0HYv{ao
 | |
| zgX&j_e(xv`Me243KGoF+HVgenJ%ah*`AQTyk;JQ329ho&oBRt~iJ5JXOEWf)d#u3_
 | |
| z0qbJUK7=2XyaZ24Chbc);j7Sj+T@;GLANYkB!!4tH22@U`>2eV1x+~{^0M04dgNaN
 | |
| zuctS`0!1S)>9K0)6uSG?T~uNWy-XiV7u>sqME#J_-gL`M9D9vap1>=q1|Zk>1?hX%
 | |
| z&}itv#_D?a*E-&xF+Zfu2%ql6yo8V6=J$Jr^)Fm6u^6ssNWBEMr59hzQ2*?PdjTk%
 | |
| z^6ZkYHLf3&n6beb9f%>@7U0)9)7hvKu#}?qScuYn=v}z%?Ups%<m?i-EMvGy?ur+~
 | |
| z@xJsg;r-KFw{RH0igtC@@EE|3$rv6ZUxL^apYudGK8_dvW+*60-{7+dWq33tF3zi9
 | |
| z_+k=5@xVw3)Rgx@ya0>cCB{ElOxk#aODV^j4bzcrQidC{t~FL6`|le9%!&JO7y15y
 | |
| z89iPwR!wFkCz1!@)!f^;d?*p+Lp@PGbOp(WIwPw5DE*G4-+SrzPW%P@0p!XAs+4g;
 | |
| z&dTUfDW_(Pt~AJr@EZx?62NHrTKJ8TW8pVez6^f5%aOi2yTF&uhEdcZ9<LvjUi)}G
 | |
| z(GUM}oJEEk=xVQ_vR+H?QJ=GS2VUAkO-nkeBC!MG>>5a)Nw>gn##`VSC!D|dMi{6Q
 | |
| zBnJnBQOPxBb(yr!+l6*m_Taji>q%DiRrSCN-@aj{?zHrL5yv+4I<-CUavUWd!=-V-
 | |
| zJNs7!{zUvdq@2}xlHS{ya&o0F*Pvdt6+2!Bf$oQ{?O}S54xZ)qzai3U|DLS-hh)gp
 | |
| z02E}RCTM5RW|VOY{RA?QsLSZ8UZSxoU9eTk!v@IG*Qm0<dC*&@3>XeY|ECg3cs=B8
 | |
| z{7DSFn$iQWmg9waV-?<3_GjbG%}sczUFqkc)5P+8nvr3AaI}{Zts63^_e5vi8SSl?
 | |
| zuSN<>_x<Ur|Amup^M^g@feVxJK%{5aq(ZenKO5<3n{*dy$4@`K;d_0c^N<Wj<fMMe
 | |
| z0|w>K2E}kSEGL~m;Pp>b!#WaMWCN}J{IlxX+5q+WFT%!;cy!v7;f#F#O{_^&4}d~!
 | |
| zqh~Om7kVf+d+^Dp9!5_zmqdgr%(H_ON%KoJsL%$|93d#EKMoRX?$_3l-%xte5O0$I
 | |
| z<UOrisXz;N8zw|CS~g2Xb2e$zgz@%_RxZUbr0U3GoYJW;YzAU8;P*Ltjtvj=8LMs)
 | |
| zO`0_@TA2{zJd86#)+3S5z3%hCFmJ)orwz(gSr0JhMqe&o<pA2*MV>H7G0e@%o5P$R
 | |
| z;$8Q#c-Q?Qe1$9z-!n?b_l&Nm_l%+jDLv+9jRr)I`iapq9<s0c8$BiDQo}}th20Yt
 | |
| zb_cqE!#8pD!$B;1pMCUP1Go%E&o#t~&y9p{B8{F)cvv)qMH@XANz^kp2Et;Do}XGN
 | |
| zEEd9Ijh-VstUH8tH+pts)75nmX~@%>>u?%F%03YJ{>}Vt$>4oxxeWUp^tjMa^yV7m
 | |
| zB6nLC1*pW2-m~MbJY8pyFH@Y%-E8po##h>%2JhYr8=Cbe-y(h`g_=1xl2p=<z!@^q
 | |
| zdyAKv+50R`P^f)P9K})D+$NYd1669DP<=O%Z}3`UGafkM=SMx~VQ2-G&(z#!;54Ei
 | |
| zopGHAOG+6QYKd7l8>{f1h3B|&`abLhSHp;o&Falvz6aW17T$^K0;)d16^de5;ER2o
 | |
| zIMOuZbX?Tqn```mma}?!g8Qtv?={+e)&QO4Y$rL{eHPzm$yK6*pQan9pX?ahVe$&Y
 | |
| z+TIasRY$DF9kHr$r2Sc!u^q)yNRbr73}38|2Tz(1hCOMl?-6~N$0NQ+BEmfG^gUt-
 | |
| z^SIsjNT)E5n|zOS4)f^dd!$QPHfNxYbni|im`MkHJw7mqMnmq>XSl{^z1E<;L!ub*
 | |
| z+B9-2r1P>*Ca##<I^)$K>=#047x>C|kHH&-2fJ~j?COvRz}rQ>nVLJ1Zu!%5b={Ra
 | |
| zkQ)rVi^4tJTEfdo&1ISnC9frRx1VxL^D!jhA${@5kQ`q1>f;+mJY*t@CA|B+C;T7L
 | |
| z+p01#oAku}#$+UdK<jrClL|{(h#n_bzDL@a(b}fP<?~mv8mEu*;3kN9Pm36IF~q;2
 | |
| zh{A+l0KJ6x#bdgBI})eQ0k0rq=r7M86>*8E#)mR8faq|B$_56b(dz&3?&d0bkUHb$
 | |
| z3LQ3MzPsC?@1sBVF`$6_nrIbvFV9x_5$OE#UC{Ao%GuEK<uvT{Cg}7t<*T9BbAC;>
 | |
| z(L-WnEgVGPF%BN&;64uS<Y3^SjNS6>WW9}k)9CkR`Zdw-_4M1Fey^b4XqbsJc00E!
 | |
| z0}P{(1M2Wz0J5GdX5yRMTpyp(%>|BW8-PcR3K+qS=l#1VgAAFG&XdM<8@#ceHQN1C
 | |
| z`o03cM|m{hqq`j4bs_f{bbk_ZKZ)+YksGOxLFrk}buz@j@^}tCjXo4f&sO8~JCN86
 | |
| z#63u^@k+V%E?_)44ih*noXzx}l%GXLvk-N_+yiVT(VO1LYF-DdrqP4=+V5*|pq<qE
 | |
| zeAvNfeg~fyI`~uwAIPWhlgD^!Cl!L<ZK}sZTF2d5M~>E!rghw?bzFrGcXOn0JE!yc
 | |
| zzG|2EODMRB^9h%0&RxVjI_mLev{&s~iPh^o@bIX|>y_Koe9IfXC!3GAwv#stc?E8E
 | |
| z-0nFoU#DEJ3<;C`e8tH~lk?lnUGRg=LutEM2pfdHTx?+f$8ADOWJmp_*dhEc{eC#+
 | |
| z*Z=hIhhvBH-~apJ*rEODzZEW&PsAu`P`X6uj}ID@>w`NmLn42(sQbf;x_Kyn@MmbW
 | |
| zw&1G1R2)8#36c*0HQklI6^2YLde-W_mu>`0Sbj7JK(?Yih(JDDRG-gOpGMW^pQ_J3
 | |
| zWDKG`2PpPPcT1-8BTa#cpIq?@j<wD~E)(W@Ae^`(TTidn??vkG-HvO2Il;KDH}ERP
 | |
| zb^4?e?iS|E&3G#MBb{ujs#UI&J3~Dj_2Mzh-(11d7RtnsC=<Syzd-#Jf2|Fy4_i;-
 | |
| zc!vm#>tI?WS^{M15mLwaiyybJR=H?>3rpKv_};r;xfVF#n=<O1r<4d_;l06|O3H}H
 | |
| z;HIo#e;`tS=6NAYdIa@pK9XLGIx0iw<xy$?>>Cs^lzde4x2nFI4*E^Fe!<wF%yqwa
 | |
| z!$Pc6|0k_t4!RN+&028)9qFh=N>=+@`g_ClMXJ#b2s<#<5OkqbD3)|V;<^p;NBUcE
 | |
| z%NjN2(%q1t^dkj1&-vUn!~peoGuB_d5&@OjvKg08%zMIntLU)m#6E8su!Eaamk(Xr
 | |
| zHSIO|2YfPJY@T|>Bg#wZT{HRW^jh&4vci4%`|9=L__=&osWRbhe&2kq_p65qdMQo0
 | |
| zLvC$t6M^a*%XWx^-0SL$>+bDCPbL9FAvC(-a(PG^QZ>BLtUR7gLaYaq>6UHmIz2y}
 | |
| z1yguX6kjc3f3z=uGJV{g-d||qq4$QGbE&u7*+&_kyn>$cQPX>ozEhq~Lw1)EM75re
 | |
| zWUD6`0yF=sGnbon(kKa!b5pFjcdkrd$CV)|Bl2j=@n?+qzlc!n{iNUaxcayk<mnoW
 | |
| zVm3vwJ8u8KilS(<?lDHBpY(+aeT#UHb-3Imy_OUws%>~8eJgN13pT9i2l-CgCe$UN
 | |
| zsF@$+3e&;p-Op?IAzWgt;QCxA|8Qqa=y*X?dhO(m=n+ccI3AaaAw4qEioxsjLcOsX
 | |
| zH*QU~kN?aCzJ$T^PeK0T=!J0pV^_#c{7KyfmEVXJdH}_d=$PPWL#DL8{W9CTU$<{F
 | |
| z>t!yj*gU{cYAbwV^MJ?#TWR^`0nui;7bE7$Z@Ccqz`YSj*(maVym{D#@b&!z>Bk>>
 | |
| z(AzM=`zcHkSTGoQF`8k#S$>dCwQWMuw&Og1R(z<zzY(oNBk7dF&}d~S$_x7|_eFZP
 | |
| zIt_so?^nw8KqapR9)P|!n1UBw@m8ky25)~{Ir?dZ5Zs{}9I3rfLOa1^3+xU%uSSY^
 | |
| zxgPPDpxRu6iDo*W**B{T;H!}OuK86k(?~T{Rr5qzdILWYIH2ll4GJ+Z!u=Q>5!Hh#
 | |
| zQSBnG-K$@p`UoqQyu$cbzJA40cQ@8V`NrxLgYWP`J<Dlrqr)}M(MnD&xIJz1UyL=6
 | |
| z0by1y-3V^qSiP~vuG{c+<Xv6A@@$=ylHL?R{gmDf8J|9PjW6~RZ{r644Z6miEkzl9
 | |
| zHaq-ywB*x?-}?*)sVxm%iZarmz9*V`K+K&<Nn@g7Fg?m8J>|G16*xlgpT(j&GDK8$
 | |
| zu~Yq7f!9S9Terh{>$tcSWvsbuh^J|i(O9z+hA(ob?pl|8Bg`b#wN<t9$f~Us<p75P
 | |
| zywg~-)r0yx<XrFVfjg9Fll$l$8;*4Dy7SM@?=!YPpXhsuCAPIqK8H^tkGppAS*#BE
 | |
| zipgi&06I5?+L!bpl799r)M%JjD=JWr<??CF%g)J14&zjC7PBNj?A<;2YkdB8@_F=?
 | |
| zAM<`O`CDYcCtpNg;946K@UTS=`Z-6sk4CIUwrMS665ilwz6yuP(JreaxTlUhb>w*i
 | |
| z2`tvS7~S<~{sAR0M~!rHa4n1Eo_P5PbJR*X!i2bDJNHrD>P|dLhFnPVheY3?f6#u!
 | |
| z2#Ojdo#NEcjljKmH_?L<-B;oH))lo^MzEk(I>5L;8n=t&{;M#+gFCP$r-PJ(pneln
 | |
| z^xTg*F9|$?PO!?u)ve-4Ncl{ow|+z524I<l>K#lEnI+G0xhF*O@CwqXGR%~uYP&?F
 | |
| zukZ$4@MXR9)1-UOH<~L5MGbtA6aTvx>3nH@P8-z0ncc?f4UiDdkj+nU`C}en-oyCT
 | |
| zvVZjlFzjZvJ5M?+hUV-iV@N4@S66?iL_96CkcLXFd_$0r*-D2~FGYWEw=MAdCXSx;
 | |
| zUA{+k-q<-f(tLyT-X5=$?U@Ll-QXMB$#-{W-=ke%={flv-ODq0FxZ>DmO!6n1d=}>
 | |
| z5KY5X#Nd2~IJe0gF@sbGt9vnVr>alr*uWY<TEAg7e=0T<fJzBbZ$WzPdhF)w@MkUl
 | |
| zti&I0HsxX!+9}-I$MX$%5SlmH;|Duo14sP>W+~Qlf^zLSMY;C0P_8`}4idMWgC%p$
 | |
| zr5fY657(G*VuRYlb7bkK)uX*zy?sNq=OyBkemdA5!AYZ~P3|+fwbcmydFl*3E@&_1
 | |
| z_r0GXN0hPZX|PPo>ytM`^NsT}&*=v61H69F``6ycNWoN|dgWB?N<=h}E-mo?d0J!Z
 | |
| zmh9`tUn$lr1C2G8bFXoya4l=b4p&VjS&KBox73se_VvS&ZCOHgIwdtyu=}A6`|025
 | |
| z=)Mnr3Umht=G5K%P(6JWO}(X=@x_%WK=e3ZIGUqz6*|$Bw?b-wHlT*p>}hDXmetV|
 | |
| zY;cdURTE#W!QFDn_z%2i|5I+ryWM>-Vil&ic`!?rE98d31}2n*X%czwqBapd<l8tE
 | |
| zZ*Z=}46B2e@^|(>W#zov-1{R|W6DLF^#$b(gY;qd|EbG|<>98VJanc!pq_n5G98ng
 | |
| zOG)mD`{nnO+~VFBLDjpNmvw-Fb*#{J7jXGP4>rRzfv341zKEJ@pp&8gs8{hpzZN|Z
 | |
| zU4Huxn>&YEdrAWM<XmjShQF3HZDL<vh}}M;&RB_O!th+jR=jZJ;w*Ra3T6nMfra!p
 | |
| z$&V?V*wih=uj$Fz&wbIGh!;8AW!$xAHsNd{U!mOQd%%E#bSLgn^>8;BE_nBHQ991G
 | |
| zYBi={WO$&_n}QkPdCH=(Xmrbf;z40yqH%g>el$Lj2J{9x{MJu*0?%T){gHH%0LZ*?
 | |
| z`TZ?fyo(#B&<(ro-o3tiTinNEAg5`h^7I7CD(`~kJsN=`U9P|pPYmfAN!2rI!Wx7O
 | |
| zOH7eB(>uuEd$0xfiYN)I$%K10#^n=ExQ}<wS|d`j;Svmw;KTZDkFm<lxKl3=LKQ7S
 | |
| zcAuuJQwAD>abkRJ!)SM3jnnTwE(PPfPDjhZJ%HEG7mFn{!M6~D$P#?!K2F{ki*b2I
 | |
| z@XI6Y_rHW}CF+b-h=P%fH1+X4*J50L56gN{eEp`V4XUR;P$v&So+G`(4Za6X;F1fF
 | |
| zTLkjBXRv7QA8|jV50q{wU`F|#^8?BWNK3^UiNRi|Fv({>5v=G~h*kNE0U~x=O^LYS
 | |
| z1+907D8x8C$_wB4p7uBQ)$sbw&jEwv-2=@}-N5^+!tr&RioDO^j7gNtX=u(ohc|Wt
 | |
| zU;47yhQk<na`SB@7U%M6iDclo2Z<C5Rdw`1P317xUZI(;HXA+2t&r%LZ`DAy@q!2P
 | |
| zn4vvovDvwmUX<;wYw`8y?lWAOzANV>OcvuU5NV8%bt5%Wk3+|T|78tR(W_U()VKyb
 | |
| z&wd;*t?e+O9|0qJS%aHnx(QR&n)~^gHm;UZ!DH2pxNgE-E<CqF0{U^xHL-JBFRoOE
 | |
| z4hF;Oycq@R+`no_n}`610$G}~I9pN6i_@Ik7N*hrf%L5p@ip2+lE)`wO^SB|NMH9>
 | |
| zIm<V&&A5Jxu_iCtP~>iTeo_|JuW#gFnBpptk(>qrzJWSp%`BX3UYR!1U>E=&z*1=w
 | |
| zKcEOph1y*F^!ZI~29vv0H|d>eUG5zk_*+94224Di<OkjZ^8*~3!TrsNwx=)Lk1LnU
 | |
| zv6~A;4;!|&;*#VMpZP*)O+pe^?Rlh?obOZ*B}qgBRJ}EMFp~-qRz^LYA?iK~4-tjE
 | |
| z|3KQ^g6k!qLQr#j(H+zhhTn01y+is!enkQ*mCiOfgYRvubR8us%b!f5kK4azN#}3c
 | |
| z3%Jy0kudzhb^kgXXPn;)Z+@yNEWgdq?hkXfdrw)7;;sGSDdZ8M*J5H(P6*7-r6{$b
 | |
| z;@ok75AEemTp~`MHy@ytq*`CM90*UpUHxJH4<G56{}t%@+wV6aX~*oeEAAOwP@-x-
 | |
| zBxks&Hc&U<%^1zo9oHfK=24ql!}HUFZYKcIT}b@nFjA)-8J<`V&3k>xkR(dZB&eor
 | |
| zAQUEgp&UooL{mQ)PW`=GR^8wU+<)encMB?mKi4U#&eNnA=8T4Btr$+ay7Nd3#x?wN
 | |
| zwU4OETO~DlxcjGE%9uFzHCl6?b~Ifwz*Hx4nnCKd^MrzK9@j!OuD~a>A4T`{y8QqZ
 | |
| z{N{-xsHa~eKf!uKsfAi!9qT_CC@ac$8j$jOzd*W6#Gg(mX;_VV=LlC0?gcXWTJ>QP
 | |
| z!7kqb>~i2*>L2Q1HiH%gsbL3ND27diPLwK$oe}VE_U;?sEqHua<xN@wH8Z{b!1vUU
 | |
| zE3aA)i<1LT=c~u8BQ*xm?b|iIHsEO|KSl+1*F#FKEatq;l@m8Bcn2GDpx4Ni>i8M=
 | |
| zqRp%q146EmDzED$N~k%oNw?sV_Ic~P`~2^<;zeQRt(PlS^kU(s|GfL5wnhlV$*o*k
 | |
| z)xd*(!NaPztJ9sxn{#lx_UiC941HTiBKJl$i)sakNaStW!qLIC9o{-BTA+b?I*M#Z
 | |
| z<2!RbsGm>;Q{ApKKrOF+Zk>4FMXluEMa;mIj_;`x{l$v5pp>9}74W*n2g87ZyH_&2
 | |
| z6blpLM~JrXOrx$5&%=$nJ7c%ejeCi%ObDdw5iL5}pB#W&mbc=TC7z6%Dfhtr%FEp?
 | |
| zo#oDV1F~~0{T9;i<MjJ5{r&}iy{Dab`v$?>;jMEFgmj(R6n2}dqP3TAc&jtTRdEq4
 | |
| z7o8?o#Rafja9-!CI1iTd&MRCM=fHB#+0|8X7A$Awnxy^SeS`d~F7WoQLm6CmZ{w&A
 | |
| z)h~6Z{ykLrh+a3!+gRV>@pN^LqAO&soYX3e=F9e7RGtCRq_V&?-d@;BD``N)t=ETM
 | |
| z7}4l=NZ-}`NL#pkRh)ODmX+x#fLIUe6Y9=SBO<ekr=E}&&~ei2Ae}N{-{neyd=on{
 | |
| zZ-ehXo#y<!L_1s~wGv{V;T9p&Goi#)R*%8&YcOQ7-#X3<^a?YuicTPmq_bI`apClS
 | |
| zHHATLnjdQ;`TWWO6LCY43r%^Io;sq^-fk^N^enguhWfC8FI`BUqqXw^mz%2dF&iJe
 | |
| zX4rBhs0GwX8?TU<zoL`S^vdyhd_lq~_XrA*Df!S7j2*L-Ui)Utk+Am&x%_F#m87Ys
 | |
| z7J#SCSTz<p$;yiNf)7pnZJj=Ju*z748o`6-heJfl(}cZb+La{n=s|sBWSG=r_li%}
 | |
| z2~k4GbKS~bqH}6I-}P0Q7C}U7SHcIrYSTMc(jezz4vi=UmJb+YtaNe*eq(fx0mpiZ
 | |
| zwU22X9gv==b_FgG6x~V)VpPuF-4Zqao**R^o|89X-EcX55493Co(j#2c$-^pR#I?!
 | |
| z#EZ3%#kO66eZG;M*vd;V1AErjK}jwk*X{l>>g3zbmr;t}FyJ%`_-J&kpAF&bMj$oB
 | |
| zAr^cxV|3VbGi7FIJjK#{Q!A%&>DH~Pr2Y!Tx10^5{bAddl-_DgZ{;9$j!QrNTN7OP
 | |
| zcQZBTSMk6%jkD1-rn}=DHJy?4@-fU$n}3A54H0Lo>4tPFGe%BSr?u~J_hfUhu3Ly>
 | |
| zl=&$tOv+f(DIPz`)j2;?+uFN1@VWQ&itXxt9q~8o(t<SxwUyqc<#hs!SIy=VOLSnT
 | |
| z=6p>g@p{7}X*}`!3y~WBOr6gY#ruIU)yTb-2P2gs(HV8m-ImmtvG2LgQ18j!dgWf^
 | |
| zjj$3Tb=$NRr+Yk-HeJ+NuRgtrb{h7nZq0cu_58mSJpYe$63>ABIZ_!B<89Gx$!Hum
 | |
| zKzS<GXSmwe2Um>~m8Y~~)?9<JstO6{pJ_RX9ekMBq1&8Gm-@Yq80D!*JaEfZJw)oZ
 | |
| zhaF*aM0#6j=GUFb%8mBsMox<G=3=IzY0?kB10mz%e40CKkiPR}wf<nr-qPXxEVgbg
 | |
| z(0zPC4j6sqlF*TX&^_+a+BJ`6zbhN^jCa7&=$b(vFTQPrH_1W-a0p4o@c<;uAU^({
 | |
| z4emsDr_*V9rXKj7qB^mOcgi+<>rcLgr>ukNM^KCPK^=0)iMuyu*VFp9*8A-Ue^lqz
 | |
| zw#oI^+`%{CW}m=>cgcE1k4z+g1zQ<Re9IvNu0o?n@#X5w2fW`tIKuyFC;WVWe}<RN
 | |
| z+eq8IGT;Krn6GQkFaKz0Yg9U;DEZW=#~+(n&*Q*7HB_C&Moq4-hG_iXKr)Yv+FD;~
 | |
| zE-7P{GTA<Xr6p9b1PA^DkZCKo*v+!dp5RCXR}u?%CzD^k&1R*aO!h=3yRTd>v6VS8
 | |
| zqgZN1sg<RcvsAOAlu2DLje@T+Op?v{Rtw86v=vAWo6}xk$%#*J#P^S4QC+j+Qc|R1
 | |
| zOBtkMl~Pi`uWPn&_K)h?6)}1R-56MEDb2Uo9rQ8(+EV5$#Y|!@L=^CsEt`wW%%v7-
 | |
| zoZ0H+3HDNh93{_${H=v*Kz1)4xp3JnMHai=VwW%)Z3GF9P~ruUsBA8iMaru8IJ3P3
 | |
| z3mwdm$hU}VNTynTj$Y&}E70UWSz<StOUtvMNk%=!Qd3h|QoP8NS(fc3`A*p)Vxl$-
 | |
| z767tR@YHXWF40_OE1OVib2^fEG)~!83hi3fp>WxSmU2s3p{1-~LdURjv)x=Oydhih
 | |
| zzv0ab)-~u|QdVT^&!lIWL`7nw5(*z<Qg*LUU=$-e!|&<Cgw&fIqCqHxca&bCme1}5
 | |
| zT?t@(LTRsr!d?lF#Dn$D%!GR~6Gp_dC!WX~ICAh4Pk?3QUH70Rr3A_&mlTy)>?w>|
 | |
| zjHQU~k-}1(Wlxpa#+RkANz7`qm8-oKhe&^xE!)jyjuO$0?Zp<EipaDbnWb7G##D1@
 | |
| z1w;<jXD+s|8;eS;7KzDrr-c=ntquzteBTIGV6j^BOJoOGO3f7<!cZ(2W47}Eu%L&N
 | |
| zEP(OE6T{8p%b2-r0xPuSJB#7B$n3PrsU>9vY<xb8N+^^D+wC|)Q=`cBkl9{VQdZ2}
 | |
| zdA2eOzy}<VsZ2?d$|16X0x27_hvn}tjZ&@9ppQwT_>grx7KI!TlhnVIf!Q$3`b(18
 | |
| zT2fqA3e_o<lu7v$Wa#3yB1s-&kqXVSS#ns4DbQS2NS@RqqcriDg~jHS%bkGda6q$K
 | |
| zVPs&{wM#R1)GfVI9+M<Ir(rITVWa~R6iq6!+0_WBo)bl-<Rla%wTq)5n-^1U8S17I
 | |
| zd=JHe?vy22Qj1fi^xl1YQ>+h_loi^>JEUPiPs&o#qr&1UOyia^o8*{Kns2j~6iC>G
 | |
| zp`ozSk}<&UEK89~Ac=x878r|BVc(~7%P5iE$J%2j|6bJX^3j`Hikw!fM7=_bOLbp3
 | |
| z0m=z+P`prO;rY1rUwxn4;bY1cc8t=JXM)+$#Agw8?6An9dW$3r_DRt?PdiH>1X~fD
 | |
| zN#SKF5#N@Z<uTL((66n|LJNKB2*<SwOM%^D1`22`aj5NIZnu=%Z3Pww^u{vlgm!7z
 | |
| zH2KRnJ1oIWCJs-*evzc@Ozp~6{u^bBhvbS%D&l_&-#!Yl9+Sq~OCXB{b{k}gW)kSU
 | |
| z7O<7u?6M@=XyUM0sV9QVQEn+f`cx>Q48=D>j5``gy~bF~<q{Ei7=1`Q9Gbpg*uL*O
 | |
| z)Nh|EDTmrBgRxp<x0TYsEGg3#IP{Gyz8N`i5a1x)<mn}1f<TjC9Kv8Nw{e;XJvJ=)
 | |
| zP(0&AJmW0(d_<lgSuNu%)+{M4hq^<ul%7+DUCx>;_0Hi~mJWpp#W!BWS6Jde`Yf5%
 | |
| zIxCRIbAkudNCFZn2DUaY5395*-yvfGq*8Oi7^n_jGAnfJ5H-_&H(FSnkh4FH{u6ai
 | |
| zi=)6?ZV6R|qg|apuKnim|LmJALFeois2V$!%>v`kX2nUz24t^LvOtcp56BiGuk8t5
 | |
| zD6YhIap4SF1`Y1O#>WvUSPdxfI9mZH7~!!6;{rmI1AK&pO^mgr@;XvHgv3kZOJKwj
 | |
| zpCQEqh!4vLeoK~r`)wM27bUnz9$*$hrRE6|pO4H|>jbD2EDVe)?7ti%*qsHZX|>2Q
 | |
| zw!MgkS7Bm&W_%J3G;^5*wE`t_z#InNIq^xU(#SDpXnp9&p=caZJka|1WCS^BSTH21
 | |
| z;K)pim(18eKsT{|ArsIVFu!Ks0lY8vbq9Q&6Q7<6i0W*W6Mxr;`%?P#>zk319)CxF
 | |
| zYJ0*@amW*Z#*MK6X&D1FA}1baXJBnoD;(B%NuE#+{Do|(kb9w<z68#VPnZ*sJLaS*
 | |
| z!I9mIEXX8<f;%vsBa!LUGKPYC3q#8N4J7#cPtbmgJuP?U!%Rl}V~05Ip*S29%4Bl|
 | |
| z@==MDPRBUPpp%ZX@HlQPx0{Pgp<!ja6^E0QR*{g_yCO>U2R7j;3HWo>9U4a(Phjw9
 | |
| z;3pJP+3vKM3n5eJl_`2}LO*MvN)A{q%n)Ir?ZWej@A>`k5#f|OGb}tyV!-940=Yom
 | |
| zq{JZ!ZWQP$bZ;2^c1wYidKKl>;($pQhCrbd`YH$NU!4mQ)OcYWkF?3q)dd|us^Q2C
 | |
| z%h!x|7#sfP|BR{lowx=G|6BeK(>k@dqu*8S+<t*`K!ZC+*z*DY9ZYh&cs_hPWUtoP
 | |
| z3&EZ$+#kNhm<!Bb-s0|ffa@2rfBR<z1^`#Jd_4iA%YnTNI|JiHv5+M`JBp<sc?YHf
 | |
| zr{WZLBe+V6*v-A5+kuVKKEXP1V$EZK#Rkn=41?^z_b_!xFu}b+`uTP<EbyTRfE7W3
 | |
| z703fDa?FM3VW}t=fcrzH$bz1C*sV{%PXYWCfw7>=g08|R@B@b9jPW(M*~)^WjESMe
 | |
| zXqCX6WiSgCvV;P5a}Mj3!xD1XEjcVDhh=Byu>Sq~=dhb{*yA~DBK)7oZn}x(<ghpl
 | |
| z#Xxq;Ei5I4WoEK`VE3M41;DuB;tlw6SW}4^ixt`!uKyuZP!}-2p#grNkQLix8{?#d
 | |
| zm089I1sRN!B&ZJAX)j}#TU!xxSS^-vM)NEE0)j)fK^Yw|lN5}BauoyC_%YB%>_()q
 | |
| zcA4GCTM?QJmv{6FEq9{@TZNhtIV`d{3hX82XhoiwFAdp^h%0zqcB7Rd;`E8#2uu24
 | |
| zh!c3QB3Qwe$(Ca1KSXk2(W=&c(8FrZw^#uJhXZp?3QNVgguPmzWAR|z0!D&K)0pvK
 | |
| z7JzxFNXO1txKZs|zyCiQ8<f+fDeD5TfAnw4zM)<CF5&)Kz*7QtD%P>C6LoC)^Ex)w
 | |
| z#Z3Ur(n?6Pikm4O9lH`tBN&%k#|}eSx|`c;A$-sjJ=<TYXZh8*%_a?mpF22(F%8Iu
 | |
| zg_$aA>d$Uw3ICof1^<58qhn8fp<^)s5AM>j3IF8qx6CVhbYb7ljL@@kFay9yU>KN2
 | |
| zy`H@RrW{NRm^3iMQDLzT{290bHUd0>5KPeuJxiReXC^RznyvpYavuJtYiItGzX#{)
 | |
| z8SXAT3@~9f&j)VV{gz=6)(On@VB*1C4dz-fUB^BH0}?>lGw@qzDM&2=CaB!$7?WCV
 | |
| z4_eJu8LXwYaTZ~<+6wbiOT-r(5ymX{Dz}vjEVS`JD{zLX4s=Mu!L1Ihza!+2(K<MU
 | |
| zU!WtDErdKiv^jVP{Fd3u$q!gpOt#EYjK4OtR}_pvhoji?Gy%J8M`-0vU|dm1=NNBR
 | |
| zvkW}4T2h`;8DY{-g$=)@AIBK_6<~}Nf1UYi9EBK%qp)P0@Nkqmt=vBqvrF@eTIMnK
 | |
| zR4SCzo5ut$_(<bY!-)67YPQ*_GH5ZP)+o-KQeXUrY<;3wp|cdx$8wNw0}_lCHU=YS
 | |
| zU18!V!#H3%lJl*?hOyI3A&Dx{^Z?8^^c0)$BP%Z)&j*hd>dm3%QIrp@JkY9UO=J?Y
 | |
| zn`MHDm>{qg1g!;DiCI&DiO#}&<E)9cyn!PJBFw!nZ!p3%iA9YV`R5ULJvtb>oZVIc
 | |
| z(N2IK^fYEQsw*)V5|#^AIoMy#h0xD<MxY(kJi#nxRdX5ao*b7u2v_4zof$3UM^hfL
 | |
| z;8~D`ViX|b94?jHV5*A}wGC^-G{|yDT8(2jDl3E-wxo4Pm}QiqsH?*9c3W97Up7av
 | |
| zA~W*Cd=3^O1BTlgg;GiiWF$$-ghhgskalZfro;ony`pk8T$nlEW(PJrl`Su~6v*?|
 | |
| zKQ%4$Z`<;nl|{B0Q>I6;cc)8h7MA>EJuj~W$7iz_{&0Gkyom+O?-ZBKTQB+FpAf~)
 | |
| zEh(s8xMkLEzz8h<=EU*IS<+F5vvl4wURxAfx^|Z<5k{lgb9xDQyv~-syX2Ju>mdb#
 | |
| zY)*M*q3ca$6L=Q9VBNNG@dr@XvmBdP>onOuyWHlkOl&Q8zEx5ny{S0h(>>?qENP)z
 | |
| zavYXdN3r;I=Kb>L1xH<h8khBGC0KZfwC8*aE8XuY{}~acx?!mfzOee8v3uSpTbaAW
 | |
| z^Fqlp=2r{nE?!<>SveJQQ#EhbMz(M<upVC?WJ^E6^_mL`|B3X%EOX)P-762Wfc39V
 | |
| zD97ZKZ>r_j*;*|A%awtdKmAO$78ajB%ly>mOXBNfx6|_Z8k@7SwoYE&!rp};TX<||
 | |
| zQIU5lH70bC^{^h^$XXAqJ{AwW6Yf4hRjfW#Ag}nQx`i!0K6zWH_L_czX4rGSa$&)b
 | |
| zj(O(F8rQTbwR^1_*^H-N8votSSp}YP8`)a-D-{wZm~Wd=I5qLBlWc7Oyyl^;zR>ms
 | |
| zG}&UPh)OI#eL~^utR6DpDlKswSS@i6%TMxbth1%B*^ecb+unI=HWc(sseA6c*X-`%
 | |
| z*V%G;fdm;mGj)g6y^(!$;uGnIsjX0Bg-&3+3+B4w3yxYo$I6ouArXvm>6g}$@|lip
 | |
| z(D-W>LSBK;ENz<aHosb1U_CmO1YUc+n;0+k32Fv=b+M~x3G(BVY7{HC%~ZZGKU8Wt
 | |
| zGxgJkf|afptk^E|$Y&E<f3dWB_Pf{@sV=aWVaa!WQFw9Tfz{iVyz&~Pwsy_>i;mJ4
 | |
| zfVi#Q`SQ%kQz;CxVs*Q)q0HC`A>EDGTT&3?`}ZeI4HWIS&gPv2dNk(k*k=_brOs06
 | |
| z!iri%f+P>Do(C;*EPp}4M)q1&W$nB9w!+zmYoHaV!M#!J{Rxh3KNftyZ^IYWQy`mD
 | |
| zaftA)jQN~V<SucHnRk3gzU8c|>8BFw3elKql`eyh?torczoz`CW1f5%(s{R@hF`EP
 | |
| zAsWcg*VTnnv61&e=QuY9#^@}^{>sLWYtPO3n-qXP4C$_hnr+xU@7$bC6vt%iY>36-
 | |
| zF8;akW8VH0^OnW4ioDYbT=h%*YZL2Fvac}5`L-HK_*YK>e@Jub0_FP)D;f$)X6|rH
 | |
| zH<m9b{w#`-*V)f1#c&ZG4rh7!oXYX$sSBrV0KY}v6v)Jq0F5^+_aax~yC+%vF3YOV
 | |
| z&n;QAbVvM~%IBY89s@iFH|}<o&pq?qr%=I%Yb5^*<v-+GJO$JfqnNwgSqaU!{-SmA
 | |
| z$BE`58B)u4cw{Hii4V&fD<rRdiCe01!Ejna)CH<$(HB^r_*uAM`n-AyS-#8utJBgS
 | |
| zhM>D{=4;a`$qUBE7l~_cl3*0PKjC%W!9LlxWZ`1$`lm!e=1i@gQU+A*O=T*z%O1-n
 | |
| zw)kDD-uy2of4p9zDmFXUAJ}n<weI<%%C&o5(UNzeNhm%Hn7ozS_qe7@MN5Pav?+8K
 | |
| zY*HAXyGs;m!dd1iL_YRfEeFw!LV4GE?v%IN#(9f=9Dk6x9nPY?1trreOD&~yfG{sT
 | |
| z>afhWu5iC*cNV+~3IAH^h5pB}w^7F~FvEZ=kpY*+6VzELutVnJFLq3J;aG2arQBTX
 | |
| z`mDVC*xsKP!ju5B+|u&7V-B*T4)3c)<`V15OzA~v+7({=9I|~Yt�-%!R2TVG1_X
 | |
| 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
 | |
| YcdIZ;jL^`l%}@F_&>#@OwYL2~0Z*v`tpET3
 | |
| 
 | |
| diff --git a/plugins/amxxpc_osx b/plugins/amxxpc_osx
 | |
| new file mode 100644
 | |
| index 0000000000000000000000000000000000000000..d0cd8f805779a3a8b07c4480cce87b226b331637
 | |
| GIT binary patch
 | |
| literal 66960
 | |
| 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
 | |
| R!NUKDou3D~9X8xQ{~x^it0Vvb
 | |
| 
 | |
| diff --git a/plugins/compile.sh b/plugins/compile.sh
 | |
| --- a/plugins/compile.sh
 | |
| +++ b/plugins/compile.sh
 | |
| @@ -7,18 +7,25 @@
 | |
|  #
 | |
|  # This file is part of AMX Mod X.
 | |
|  
 | |
|  # new code contributed by \malex\
 | |
|  
 | |
|  test -e compiled || mkdir compiled
 | |
|  rm -f temp.txt
 | |
|  
 | |
| +# Choose compiler binary
 | |
| +if test `uname` = "Darwin"; then
 | |
| +	pc=./amxxpc_osx
 | |
| +else
 | |
| +	pc=./amxxpc
 | |
| +fi
 | |
| +
 | |
|  for sourcefile in *.sma
 | |
|  do
 | |
|          amxxfile="`echo $sourcefile | sed -e 's/\.sma$/.amxx/'`"
 | |
|          echo -n "Compiling $sourcefile ..."
 | |
| -        ./amxxpc $sourcefile -ocompiled/$amxxfile >> temp.txt
 | |
| +        $pc $sourcefile -ocompiled/$amxxfile >> temp.txt
 | |
|          echo "done"
 | |
|  done
 | |
|  
 | |
|  less temp.txt
 | |
|  rm temp.txt
 | |
| diff --git a/plugins/include/amxmodx.inc b/plugins/include/amxmodx.inc
 | |
| --- a/plugins/include/amxmodx.inc
 | |
| +++ b/plugins/include/amxmodx.inc
 | |
| @@ -197,16 +197,19 @@ native is_user_connecting(index);
 | |
|  native is_user_alive(index);
 | |
|  
 | |
|  /* Returns 1 or 0. */
 | |
|  native is_dedicated_server();
 | |
|  
 | |
|  /* Returns 1 or 0. */
 | |
|  native is_linux_server();
 | |
|  
 | |
| +/* Returns 1 or 0 */
 | |
| +native is_mac_server();
 | |
| +
 | |
|  /* Returns 1 or 0. */
 | |
|  native is_jit_enabled();
 | |
|  
 | |
|  /* Returns AMXX's version string of the current gameserver */
 | |
|  native get_amxx_verstring(buffer[], length);
 | |
|  
 | |
|  /* If player is not attacked function returns 0, in other
 | |
|   * case returns index of attacking player. On second and third
 | |
| diff --git a/plugins/include/fakemeta.inc b/plugins/include/fakemeta.inc
 | |
| --- a/plugins/include/fakemeta.inc
 | |
| +++ b/plugins/include/fakemeta.inc
 | |
| @@ -94,41 +94,42 @@ native pev_serial(entindex);
 | |
|   * Example:
 | |
|   * new model[128]
 | |
|   * new ptr = pev(id, pev_viewmodel)
 | |
|   * global_get(glb_pStringBase, ptr, model, 127)
 | |
|   */
 | |
|  native global_get(_value, any:...);
 | |
|  
 | |
|  /* Returns an integer from private data.  _linuxdiff is added into the _Offset if it's used on a linux server. */
 | |
| -native get_pdata_int(_index,_Offset,_linuxdiff=5);
 | |
| +native get_pdata_int(_index,_Offset,_linuxdiff=5,_macdiff=5);
 | |
|  
 | |
|  /* Sets an integer from private data.  _linuxdiff is added into the _Offset if it's used on a linux server. */
 | |
| -native set_pdata_int(_index,_Offset,_Value,_linuxdiff=5);
 | |
| +native set_pdata_int(_index,_Offset,_Value,_linuxdiff=5,_macdiff=5);
 | |
|  
 | |
|  /* Returns a float from private data.  _linuxdiff is added into the _Offset if it's used on a linux server. */
 | |
| -native Float:get_pdata_float(_index,_Offset,_linuxdiff=5);
 | |
| +native Float:get_pdata_float(_index,_Offset,_linuxdiff=5,_macdiff=5);
 | |
|  
 | |
|  /* Sets a float from private data.  _linuxdiff is added into the _Offset if it's used on a linux server. */
 | |
| -native set_pdata_float(_index,_Offset,Float:_Value,_linuxdiff=5);
 | |
| +native set_pdata_float(_index,_Offset,Float:_Value,_linuxdiff=5,_macdiff=5);
 | |
|  
 | |
|  /**
 | |
|   * Tries to retrieve an edict (entity encapsulation) pointer from an entity's private data.
 | |
|   *
 | |
|   * This function is byte-addressable.  Unlike get_pdata_int() which searches in byte increments of 4, 
 | |
|   * get_pdata_end searches in increments of 1.
 | |
|   *
 | |
|   * @param _index		Entity index.
 | |
|   * @param _offset		Offset to search.
 | |
| - * @param _linuxdiff	Linux difference.
 | |
| + * @param _linuxdiff		Linux difference.
 | |
| + * @param _macdiff		Mac OS X difference.
 | |
|   * @return				-2 if an invalid entity was found.
 | |
|   *						-1 if an empty entity was found.
 | |
|   * 						Otherwise, an entity index is returned.
 | |
|   */
 | |
| -native get_pdata_ent(_index, _offset, _linuxdiff=20);
 | |
| +native get_pdata_ent(_index, _offset, _linuxdiff=20, _macdiff=20);
 | |
|  
 | |
|  /* Registers a forward.
 | |
|   * Returns an id you can pass to unregister_forward
 | |
|   */
 | |
|  native register_forward(_forwardType,const _function[],_post=0);
 | |
|  
 | |
|  /* Unregisters a forward.
 | |
|   * The registerId must be from register_forward, and
 | |
| @@ -212,27 +213,29 @@ native set_es(es_handle, EntityState:mem
 | |
|  // Use 0 for uc_handle to specify the global usercmd handle
 | |
|  native get_uc(uc_handle, UserCmd:member, {Float,_}:...);
 | |
|  native set_uc(uc_handle, UserCmd:member, {Float,_}:...);
 | |
|  
 | |
|  //NOTE that for the string offsets below, on AMD64, a byref (char **) offset is NOT the same as an int offset
 | |
|  //In fact it's QWORD aligned rather than DWORD aligned, so the offset will be exactly half.
 | |
|  //Gets a string from a private offset.  If byref is false, the string is treated as static rather than dynamic.
 | |
|  //linux value is what to add to the offset for linux servers.
 | |
| +//mac value is what to add to the offset for os x servers.
 | |
|  //this cannot use a default value due to older version using an awkward default value.
 | |
| -native get_pdata_string(entity, offset, dest[], maxlength, byref=1, linux);
 | |
| +native get_pdata_string(entity, offset, dest[], maxlength, byref=1, linux, mac=cellmin);
 | |
|  
 | |
|  //Sets a string in a private offset.
 | |
|  //realloc = -1 - nonbyref copy (static
 | |
|  //realloc = 0 - copy byref, no realloc *(char **)
 | |
|  //realloc = 1 - reallocate new string with free+malloc
 | |
|  //realloc = 2 - reallocate new string with delete[]+new[]
 | |
|  //linux value is what to add to the offset for linux servers.
 | |
| +//mac value iswhat to add to the offset for os x servers.
 | |
|  //this cannot use a default value due to older version using an awkward default value.
 | |
| -native set_pdata_string(entity, offset, const source[], realloc=2, linux);
 | |
| +native set_pdata_string(entity, offset, const source[], realloc=2, linux, mac=cellmin);
 | |
|  
 | |
|  // Copies the given infoBuffer pointer into out[]
 | |
|  // An infoBuffer pointer is returned by EngFunc_GetInfoKeyBuffer
 | |
|  native copy_infokey_buffer(infoBuffer, out[], maxlen);
 | |
|  
 | |
|  
 | |
|  /**
 | |
|   * Looks up the sequence for the entity.
 | |
| diff --git a/plugins/include/hamsandwich.inc b/plugins/include/hamsandwich.inc
 | |
| --- a/plugins/include/hamsandwich.inc
 | |
| +++ b/plugins/include/hamsandwich.inc
 | |
| @@ -310,46 +310,49 @@ native bool:IsHamValid(Ham:function);
 | |
|   * This requires the mod to have the pev and base fields set in hamdata.ini.
 | |
|   * Note this dereferences memory! Improper use of this will crash the server.
 | |
|   * This will return an index of the corresponding cbase field in private data.
 | |
|   * Returns -1 on a null entry.
 | |
|   *
 | |
|   * @param id			The entity to examine the private data.
 | |
|   * @param offset		The windows offset of the data.
 | |
|   * @param linuxdiff		The linux difference of the data.
 | |
| + * @param macdiff		The mac os x difference of the data.
 | |
|   * @return				The index of the corresponding pdata field. -1 for none set.
 | |
|   */
 | |
| -native get_pdata_cbase(id, offset, linuxdiff=5);
 | |
| +native get_pdata_cbase(id, offset, linuxdiff=5, macdiff=5);
 | |
|  
 | |
|  /**
 | |
|   * This is used to compliment fakemeta's {get,set}_pdata_{int,float,string}.
 | |
|   * This requires the mod to have the pev and base fields set in hamdata.ini.
 | |
|   * This will set the corresponding cbase field in private data with the index.
 | |
|   * Pass -1 to null the entry.
 | |
|   *
 | |
|   * @param id			The entity to examine the private data.
 | |
|   * @param offset		The windows offset of the data.
 | |
|   * @param value			The index to store, -1 for invalid
 | |
|   * @param linuxdiff		The linux difference of the data.
 | |
| + * @param macdiff		The mac os x difference of the data.
 | |
|   */
 | |
| -native set_pdata_cbase(id, offset, value, linuxdiff=5);
 | |
| +native set_pdata_cbase(id, offset, value, linuxdiff=5, macdiff=5);
 | |
|  
 | |
|  /**
 | |
|   * This is similar to the get_pdata_cbase, however it does not dereference memory.
 | |
|   * This is many times slower than get_pdata_cbase, and this should only be used 
 | |
|   * for testing and finding of offsets, not actual release quality plugins.
 | |
|   * This will return an index of the corresponding cbase field in private data.
 | |
|   * Returns -1 on a null entry. -2 on an invalid entry.
 | |
|   *
 | |
|   * @param id			Entry to examine the private data.
 | |
|   * @param offset		The windows offset of the data.
 | |
|   * @param linuxdiff		The linux difference of the data.
 | |
| + * @param macdiff		The mac os x difference of the data.
 | |
|   * @return				The index of the corresponding pdata field, -1 for null, -2 for invalid.
 | |
|   */
 | |
| -native get_pdata_cbase_safe(id, offset, linuxdiff=5);
 | |
| +native get_pdata_cbase_safe(id, offset, linuxdiff=5, macdiff=5);
 | |
|  
 | |
|  
 | |
|  
 | |
|  
 | |
|  // This is the callback from the module, this handles any fatal errors.
 | |
|  // This will in turn call the "HamFilter(Ham:id, HamError:err, const reason[])" public, if it exists.
 | |
|  // Return PLUGIN_HANDLED from within the HamFilter to stop the plugin from failing.
 | |
|  // Any other return value will fail the plugin.
 |