Stole the magical any: tag from sourcemod
This commit is contained in:
parent
8e1f54465d
commit
ea912f794c
|
@ -785,6 +785,8 @@ SC_VDECL short sc_is_utf8; /* is this source file in UTF-8 encoding */
|
|||
SC_VDECL constvalue sc_automaton_tab; /* automaton table */
|
||||
SC_VDECL constvalue sc_state_tab; /* state table */
|
||||
|
||||
SC_VDECL int pc_anytag;
|
||||
|
||||
SC_VDECL FILE *inpf; /* file read from (source or include) */
|
||||
SC_VDECL FILE *inpf_org; /* main source file */
|
||||
SC_VDECL FILE *outf; /* file written to */
|
||||
|
|
|
@ -67,6 +67,8 @@
|
|||
#define VERSION_STR "3.0.3367-amxx"
|
||||
#define VERSION_INT 0x300
|
||||
|
||||
int pc_anytag;
|
||||
|
||||
static void resetglobals(void);
|
||||
static void initglobals(void);
|
||||
static void setopt(int argc,char **argv,char *oname,char *ename,char *pname,
|
||||
|
@ -1403,6 +1405,8 @@ static void setconstants(void)
|
|||
|
||||
add_constant("__Pawn",VERSION_INT,sGLOBAL,0);
|
||||
|
||||
pc_anytag=pc_addtag("any");
|
||||
|
||||
debug=0;
|
||||
if ((sc_debug & (sCHKBOUNDS | sSYMBOLIC))==(sCHKBOUNDS | sSYMBOLIC))
|
||||
debug=2;
|
||||
|
|
|
@ -284,12 +284,13 @@ static void (*unopers[])(void) = { lneg, neg, user_inc, user_dec };
|
|||
|
||||
SC_FUNC int matchtag(int formaltag,int actualtag,int allowcoerce)
|
||||
{
|
||||
if (formaltag!=actualtag) {
|
||||
if (formaltag!=actualtag && formaltag!=pc_anytag) {
|
||||
/* if the formal tag is zero and the actual tag is not "fixed", the actual
|
||||
* tag is "coerced" to zero
|
||||
*/
|
||||
if (!allowcoerce || formaltag!=0 || (actualtag & FIXEDTAG)!=0)
|
||||
return FALSE;
|
||||
return FALSE;
|
||||
|
||||
} /* if */
|
||||
return TRUE;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user