plugins/testsuite/fakenative1.sp
author David Anderson <dvander@alliedmods.net>
Sun Oct 14 21:51:30 2007 +0000 (2007-10-14)
changeset 1559 bb3fd890699d
parent 601 fe5b368fcedc
permissions -rw-r--r--
fixed bug in build tool
dvander@601
     1
#include <sourcemod>
dvander@601
     2
dvander@601
     3
public Plugin:myinfo = 
dvander@601
     4
{
dvander@601
     5
	name = "FakeNative Testing Lab #1",
dvander@601
     6
	author = "AlliedModders LLC",
dvander@601
     7
	description = "Test suite #1 for dynamic natives",
dvander@601
     8
	version = "1.0.0.0",
dvander@601
     9
	url = "http://www.sourcemod.net/"
dvander@601
    10
};
dvander@601
    11
dvander@601
    12
public bool:AskPluginLoad(Handle:myself, bool:late, String:error[], err_max)
dvander@601
    13
{
dvander@601
    14
	CreateNative("TestNative1", __TestNative1);
dvander@601
    15
	CreateNative("TestNative2", __TestNative2);
dvander@601
    16
	CreateNative("TestNative3", __TestNative3);
dvander@601
    17
	CreateNative("TestNative4", __TestNative4);
dvander@601
    18
	CreateNative("TestNative5", __TestNative5);
dvander@601
    19
	return true;
dvander@601
    20
}
dvander@601
    21
dvander@601
    22
public __TestNative1(Handle:plugin, numParams)
dvander@601
    23
{
dvander@601
    24
	PrintToServer("TestNative1: Plugin: %x params: %d", plugin, numParams);
dvander@601
    25
	if (numParams == 4)
dvander@601
    26
	{
dvander@601
    27
		ThrowNativeError(SP_ERROR_NATIVE, "Four parameters ARE NOT ALLOWED lol");
dvander@601
    28
	}
dvander@601
    29
	return 5;
dvander@601
    30
}
dvander@601
    31
dvander@601
    32
public __TestNative2(Handle:plugin, numParams)
dvander@601
    33
{
dvander@601
    34
	new String:buffer[512];
dvander@601
    35
	new bytes;
dvander@601
    36
	
dvander@601
    37
	GetNativeString(1, buffer, sizeof(buffer), bytes);
dvander@601
    38
	
dvander@601
    39
	for (new i=0; i<bytes; i++)
dvander@601
    40
	{
dvander@601
    41
		buffer[i] = buffer[i] + 1;
dvander@601
    42
	}
dvander@601
    43
	
dvander@601
    44
	SetNativeString(1, buffer, bytes+1);
dvander@601
    45
}
dvander@601
    46
dvander@601
    47
public __TestNative3(Handle:plugin, numParams)
dvander@601
    48
{
dvander@601
    49
	new val1 = GetNativeCell(1);
dvander@601
    50
	new val2 = GetNativeCellRef(2);
dvander@601
    51
	
dvander@601
    52
	SetNativeCellRef(2, val1+val2);
dvander@601
    53
}
dvander@601
    54
dvander@601
    55
public __TestNative4(Handle:plugin, numParams)
dvander@601
    56
{
dvander@601
    57
	new size = GetNativeCell(3);
dvander@601
    58
	new local[size];
dvander@601
    59
	
dvander@601
    60
	GetNativeArray(1, local, size);
dvander@601
    61
	SetNativeArray(2, local, size);
dvander@601
    62
}
dvander@601
    63
dvander@601
    64
public __TestNative5(Handle:plugin, numParams)
dvander@601
    65
{
dvander@601
    66
	new local = GetNativeCell(1);
dvander@601
    67
	
dvander@601
    68
	if (local)
dvander@601
    69
	{
dvander@601
    70
		FormatNativeString(2, 4, 5, GetNativeCell(3));
dvander@601
    71
	} else {
dvander@601
    72
		new len = GetNativeCell(3);
dvander@601
    73
		new fmt_len;
dvander@601
    74
		new String:buffer[len];
dvander@601
    75
			
dvander@601
    76
		GetNativeStringLength(4, fmt_len);
dvander@601
    77
		
dvander@601
    78
		new String:format[fmt_len];
dvander@601
    79
		
dvander@601
    80
		GetNativeString(2, buffer, len);
dvander@601
    81
		GetNativeString(4, format, fmt_len);
dvander@601
    82
		
dvander@601
    83
		FormatNativeString(0, 0, 5, len, _, buffer, format);
dvander@601
    84
	}
dvander@601
    85
}