extensions/tf2/natives.cpp
changeset 3255 328938c6ca59
parent 3147 b6db3d09eb79
child 3272 796960a9ae16
     1.1 --- a/extensions/tf2/natives.cpp	Fri Apr 15 02:06:50 2011 -0400
     1.2 +++ b/extensions/tf2/natives.cpp	Fri Apr 15 12:11:32 2011 -0400
     1.3 @@ -147,7 +147,7 @@
     1.4  	if (!pWrapper)
     1.5  	{
     1.6  		REGISTER_NATIVE_ADDR("Disguise", 
     1.7 -			PassInfo pass[3]; \
     1.8 +			PassInfo pass[4]; \
     1.9  			pass[0].flags = PASSFLAG_BYVAL; \
    1.10  			pass[0].size = sizeof(int); \
    1.11  			pass[0].type = PassType_Basic; \
    1.12 @@ -157,7 +157,10 @@
    1.13  			pass[2].flags = PASSFLAG_BYVAL; \
    1.14  			pass[2].size = sizeof(CBaseEntity *); \
    1.15  			pass[2].type = PassType_Basic; \
    1.16 -			pWrapper = g_pBinTools->CreateCall(addr, CallConv_ThisCall, NULL, pass, 3))
    1.17 +			pass[3].flags = PASSFLAG_BYVAL; \
    1.18 +			pass[3].size = sizeof(bool); \
    1.19 +			pass[3].type = PassType_Basic; \
    1.20 +			pWrapper = g_pBinTools->CreateCall(addr, CallConv_ThisCall, NULL, pass, 4))
    1.21  	}
    1.22  
    1.23  	CBaseEntity *pEntity;
    1.24 @@ -175,7 +178,7 @@
    1.25  		return pContext->ThrowNativeError("Target client index %d is not valid", params[1]);
    1.26  	}
    1.27  
    1.28 -	unsigned char vstk[sizeof(void *) + 2*sizeof(int)];
    1.29 +	unsigned char vstk[sizeof(void *) + 2*sizeof(int) + sizeof(bool)];
    1.30  	unsigned char *vptr = vstk;
    1.31  
    1.32  
    1.33 @@ -186,7 +189,9 @@
    1.34  	*(int *)vptr = params[3];
    1.35  	vptr += sizeof(int);
    1.36  	*(CBaseEntity **)vptr = pTarget;
    1.37 -
    1.38 +	vptr += sizeof(CBaseEntity *);
    1.39 +	*(bool *)vptr = true;
    1.40 +	
    1.41  	pWrapper->Execute(vstk, NULL);
    1.42  
    1.43  	return 1;