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