Update large includes for transitional syntax #2 (#511)

This commit is contained in:
ErikMinekus 2016-05-21 15:16:49 +02:00 committed by Nicholas Hastings
parent f91d659c6f
commit 542bb59978
11 changed files with 414 additions and 497 deletions

View File

@ -1034,7 +1034,7 @@ native int SQL_AddQuery(Transaction txn, const char[] query, any data=0);
* @param prio Priority queue to use. * @param prio Priority queue to use.
* @error An invalid handle. * @error An invalid handle.
*/ */
native SQL_ExecuteTransaction( native void SQL_ExecuteTransaction(
Handle db, Handle db,
Transaction txn, Transaction txn,
SQLTxnSuccess onSuccess = INVALID_FUNCTION, SQLTxnSuccess onSuccess = INVALID_FUNCTION,

View File

@ -593,7 +593,7 @@ native bool SetFilePermissions(const char[] path, int mode);
* @param tmode Time mode. * @param tmode Time mode.
* @return Time value, or -1 on failure. * @return Time value, or -1 on failure.
*/ */
native GetFileTime(const char[] file, FileTimeMode tmode); native int GetFileTime(const char[] file, FileTimeMode tmode);
/** /**
* Same as LogToFile(), except uses an open file Handle. The file must * Same as LogToFile(), except uses an open file Handle. The file must

View File

@ -44,7 +44,7 @@
* @error Invalid client or entity, lack of mod support, or client not in * @error Invalid client or entity, lack of mod support, or client not in
* game. * game.
*/ */
native bool:RemovePlayerItem(client, item); native bool RemovePlayerItem(int client, int item);
/** /**
* Gives a named item to a player. * Gives a named item to a player.
@ -55,7 +55,7 @@ native bool:RemovePlayerItem(client, item);
* @return Entity index on success, or -1 on failure. * @return Entity index on success, or -1 on failure.
* @error Invalid client or client not in game, or lack of mod support. * @error Invalid client or client not in game, or lack of mod support.
*/ */
native GivePlayerItem(client, const String:item[], iSubType=0); native int GivePlayerItem(int client, const char[] item, int iSubType=0);
/** /**
* Returns the weapon in a player's slot. * Returns the weapon in a player's slot.
@ -65,7 +65,7 @@ native GivePlayerItem(client, const String:item[], iSubType=0);
* @return Entity index on success, -1 if no weapon existed. * @return Entity index on success, -1 if no weapon existed.
* @error Invalid client or client not in game, or lack of mod support. * @error Invalid client or client not in game, or lack of mod support.
*/ */
native GetPlayerWeaponSlot(client, slot); native int GetPlayerWeaponSlot(int client, int slot);
/** /**
* Ignites an entity on fire. * Ignites an entity on fire.
@ -75,19 +75,17 @@ native GetPlayerWeaponSlot(client, slot);
* @param npc True to only affect NPCs. * @param npc True to only affect NPCs.
* @param size Unknown. * @param size Unknown.
* @param level Unknown. * @param level Unknown.
* @noreturn
* @error Invalid entity or client not in game, or lack of mod support. * @error Invalid entity or client not in game, or lack of mod support.
*/ */
native IgniteEntity(entity, Float:time, bool:npc=false, Float:size=0.0, bool:level=false); native void IgniteEntity(int entity, float time, bool npc=false, float size=0.0, bool level=false);
/** /**
* Extinguishes an entity that is on fire. * Extinguishes an entity that is on fire.
* *
* @param entity Entity index. * @param entity Entity index.
* @noreturn
* @error Invalid entity or client not in game, or lack of mod support. * @error Invalid entity or client not in game, or lack of mod support.
*/ */
native ExtinguishEntity(entity); native void ExtinguishEntity(int entity);
/** /**
* Teleports an entity. * Teleports an entity.
@ -96,19 +94,17 @@ native ExtinguishEntity(entity);
* @param origin New origin, or NULL_VECTOR for no change. * @param origin New origin, or NULL_VECTOR for no change.
* @param angles New angles, or NULL_VECTOR for no change. * @param angles New angles, or NULL_VECTOR for no change.
* @param velocity New velocity, or NULL_VECTOR for no change. * @param velocity New velocity, or NULL_VECTOR for no change.
* @noreturn
* @error Invalid entity or client not in game, or lack of mod support. * @error Invalid entity or client not in game, or lack of mod support.
*/ */
native TeleportEntity(entity, const Float:origin[3], const Float:angles[3], const Float:velocity[3]); native void TeleportEntity(int entity, const float origin[3], const float angles[3], const float velocity[3]);
/** /**
* Forces a player to commit suicide. * Forces a player to commit suicide.
* *
* @param client Client index. * @param client Client index.
* @noreturn
* @error Invalid client or client not in game, or lack of mod support. * @error Invalid client or client not in game, or lack of mod support.
*/ */
native ForcePlayerSuicide(client); native void ForcePlayerSuicide(int client);
/** /**
* Slaps a player in a random direction. * Slaps a player in a random direction.
@ -116,10 +112,9 @@ native ForcePlayerSuicide(client);
* @param client Client index. * @param client Client index.
* @param health Health to subtract. * @param health Health to subtract.
* @param sound False to disable the sound effects. * @param sound False to disable the sound effects.
* @noreturn
* @error Invalid client or client not in game, or lack of mod support. * @error Invalid client or client not in game, or lack of mod support.
*/ */
native SlapPlayer(client, health=5, bool:sound=true); native void SlapPlayer(int client, int health=5, bool sound=true);
/** /**
* Searches for an entity by classname. * Searches for an entity by classname.
@ -130,7 +125,7 @@ native SlapPlayer(client, health=5, bool:sound=true);
* @return Entity index >= 0 if found, -1 otherwise. * @return Entity index >= 0 if found, -1 otherwise.
* @error Lack of mod support. * @error Lack of mod support.
*/ */
native FindEntityByClassname(startEnt, const String:classname[]); native int FindEntityByClassname(int startEnt, const char[] classname);
/** /**
* Returns the client's eye angles. * Returns the client's eye angles.
@ -140,7 +135,7 @@ native FindEntityByClassname(startEnt, const String:classname[]);
* @return True on success, false on failure. * @return True on success, false on failure.
* @error Invalid client index, client not in game, or no mod support. * @error Invalid client index, client not in game, or no mod support.
*/ */
native bool:GetClientEyeAngles(client, Float:ang[3]); native bool GetClientEyeAngles(int client, float ang[3]);
/** /**
* Creates an entity by string name, but does not spawn it (see DispatchSpawn). * Creates an entity by string name, but does not spawn it (see DispatchSpawn).
@ -152,7 +147,7 @@ native bool:GetClientEyeAngles(client, Float:ang[3]);
* @return Entity index on success, or -1 on failure. * @return Entity index on success, or -1 on failure.
* @error Invalid edict index, or no mod support. * @error Invalid edict index, or no mod support.
*/ */
native CreateEntityByName(const String:classname[], ForceEdictIndex=-1); native int CreateEntityByName(const char[] classname, int ForceEdictIndex=-1);
/** /**
* Spawns an entity into the game. * Spawns an entity into the game.
@ -161,7 +156,7 @@ native CreateEntityByName(const String:classname[], ForceEdictIndex=-1);
* @return True on success, false otherwise. * @return True on success, false otherwise.
* @error Invalid entity index, or no mod support. * @error Invalid entity index, or no mod support.
*/ */
native bool:DispatchSpawn(entity); native bool DispatchSpawn(int entity);
/** /**
* Dispatches a KeyValue into given entity using a string value. * Dispatches a KeyValue into given entity using a string value.
@ -172,7 +167,7 @@ native bool:DispatchSpawn(entity);
* @return True on success, false otherwise. * @return True on success, false otherwise.
* @error Invalid entity index, or no mod support. * @error Invalid entity index, or no mod support.
*/ */
native bool:DispatchKeyValue(entity, const String:keyName[], const String:value[]); native bool DispatchKeyValue(int entity, const char[] keyName, const char[] value);
/** /**
* Dispatches a KeyValue into given entity using a floating point value. * Dispatches a KeyValue into given entity using a floating point value.
@ -183,7 +178,7 @@ native bool:DispatchKeyValue(entity, const String:keyName[], const String:value[
* @return True on success, false otherwise. * @return True on success, false otherwise.
* @error Invalid entity index, or no mod support. * @error Invalid entity index, or no mod support.
*/ */
native bool:DispatchKeyValueFloat(entity, const String:keyName[], Float:value); native bool DispatchKeyValueFloat(int entity, const char[] keyName, float value);
/** /**
* Dispatches a KeyValue into given entity using a vector value. * Dispatches a KeyValue into given entity using a vector value.
@ -194,7 +189,7 @@ native bool:DispatchKeyValueFloat(entity, const String:keyName[], Float:value);
* @return True on success, false otherwise. * @return True on success, false otherwise.
* @error Invalid entity index, or no mod support. * @error Invalid entity index, or no mod support.
*/ */
native bool:DispatchKeyValueVector(entity, const String:keyName[], const Float:vec[3]); native bool DispatchKeyValueVector(int entity, const char[] keyName, const float vec[3]);
/** /**
* Returns the entity a client is aiming at. * Returns the entity a client is aiming at.
@ -206,7 +201,7 @@ native bool:DispatchKeyValueVector(entity, const String:keyName[], const Float:v
* -2 if the function is not supported. * -2 if the function is not supported.
* @error Invalid client index or client not in game. * @error Invalid client index or client not in game.
*/ */
native GetClientAimTarget(client, bool:only_clients=true); native int GetClientAimTarget(int client, bool only_clients=true);
/** /**
* Returns the total number of teams in a game. * Returns the total number of teams in a game.
@ -214,7 +209,7 @@ native GetClientAimTarget(client, bool:only_clients=true);
* *
* @return Total number of teams. * @return Total number of teams.
*/ */
native GetTeamCount(); native int GetTeamCount();
/** /**
* Retrieves the team name based on a team index. * Retrieves the team name based on a team index.
@ -223,10 +218,9 @@ native GetTeamCount();
* @param index Team index. * @param index Team index.
* @param name Buffer to store string in. * @param name Buffer to store string in.
* @param maxlength Maximum length of string buffer. * @param maxlength Maximum length of string buffer.
* @noreturn
* @error Invalid team index. * @error Invalid team index.
*/ */
native GetTeamName(index, String:name[], maxlength); native void GetTeamName(int index, char[] name, int maxlength);
/** /**
* Returns the score of a team based on a team index. * Returns the score of a team based on a team index.
@ -236,7 +230,7 @@ native GetTeamName(index, String:name[], maxlength);
* @return Score. * @return Score.
* @error Invalid team index. * @error Invalid team index.
*/ */
native GetTeamScore(index); native int GetTeamScore(int index);
/** /**
* Sets the score of a team based on a team index. * Sets the score of a team based on a team index.
@ -244,10 +238,9 @@ native GetTeamScore(index);
* *
* @param index Team index. * @param index Team index.
* @param value New score value. * @param value New score value.
* @return Score.
* @error Invalid team index. * @error Invalid team index.
*/ */
native SetTeamScore(index, value); native void SetTeamScore(int index, int value);
/** /**
* Retrieves the number of players in a certain team. * Retrieves the number of players in a certain team.
@ -257,7 +250,7 @@ native SetTeamScore(index, value);
* @return Number of players in the team. * @return Number of players in the team.
* @error Invalid team index. * @error Invalid team index.
*/ */
native GetTeamClientCount(index); native int GetTeamClientCount(int index);
/** /**
* Returns the entity index of a team. * Returns the entity index of a team.
@ -273,10 +266,9 @@ native int GetTeamEntity(int teamIndex);
* *
* @param entity Entity index. * @param entity Entity index.
* @param model Model name. * @param model Model name.
* @noreturn
* @error Invalid entity index, or no mod support. * @error Invalid entity index, or no mod support.
*/ */
native SetEntityModel(entity, const String:model[]); native void SetEntityModel(int entity, const char[] model);
/** /**
* Retrieves the decal file name associated with a given client. * Retrieves the decal file name associated with a given client.
@ -287,7 +279,7 @@ native SetEntityModel(entity, const String:model[]);
* @return True on success, otherwise false. * @return True on success, otherwise false.
* @error Invalid client or client not in game. * @error Invalid client or client not in game.
*/ */
native bool:GetPlayerDecalFile(client, String:hex[], maxlength); native bool GetPlayerDecalFile(int client, char[] hex, int maxlength);
/** /**
* Retrieves the jingle file name associated with a given client. * Retrieves the jingle file name associated with a given client.
@ -298,36 +290,33 @@ native bool:GetPlayerDecalFile(client, String:hex[], maxlength);
* @return True on success, otherwise false. * @return True on success, otherwise false.
* @error Invalid client or client not in game. * @error Invalid client or client not in game.
*/ */
native bool:GetPlayerJingleFile(client, String:hex[], maxlength); native bool GetPlayerJingleFile(int client, char[] hex, int maxlength);
/** /**
* Returns the average server network traffic in bytes/sec. * Returns the average server network traffic in bytes/sec.
* *
* @param in Buffer to store the input traffic velocity. * @param in Buffer to store the input traffic velocity.
* @param out Buffer to store the output traffic velocity. * @param out Buffer to store the output traffic velocity.
* @noreturn
*/ */
native GetServerNetStats(&Float:inAmount, &Float:outAmout); native void GetServerNetStats(float &inAmount, float &outAmout);
/** /**
* Equip's a player's weapon. * Equip's a player's weapon.
* *
* @param client Client index. * @param client Client index.
* @param weapon CBaseCombatWeapon entity index. * @param weapon CBaseCombatWeapon entity index.
* @noreturn
* @error Invalid client or entity, lack of mod support, or client not in * @error Invalid client or entity, lack of mod support, or client not in
* game. * game.
*/ */
native EquipPlayerWeapon(client, weapon); native void EquipPlayerWeapon(int client, int weapon);
/** /**
* Activates an entity (CBaseAnimating::Activate) * Activates an entity (CBaseAnimating::Activate)
* *
* @param entity Entity index. * @param entity Entity index.
* @noreturn
* @error Invalid entity or lack of mod support. * @error Invalid entity or lack of mod support.
*/ */
native ActivateEntity(entity); native void ActivateEntity(int entity);
/** /**
* Sets values to client info buffer keys and notifies the engine of the change. * Sets values to client info buffer keys and notifies the engine of the change.
@ -336,10 +325,9 @@ native ActivateEntity(entity);
* @param client Player's index. * @param client Player's index.
* @param key Key string. * @param key Key string.
* @param value Value string. * @param value Value string.
* @noreturn
* @error Invalid client index, or client not connected. * @error Invalid client index, or client not connected.
*/ */
native SetClientInfo(client, const String:key[], const String:value[]); native void SetClientInfo(int client, const char[] key, const char[] value);
/** /**
* Changes a client's name. * Changes a client's name.
@ -361,4 +349,4 @@ native void SetClientName(int client, const char[] name);
* *
* @return Amount of ammo actually given. * @return Amount of ammo actually given.
*/ */
native GivePlayerAmmo(client, amount, ammotype, bool:suppressSound=false); native int GivePlayerAmmo(int client, int amount, int ammotype, bool suppressSound=false);

View File

@ -125,9 +125,8 @@ enum
* Prefetches a sound. * Prefetches a sound.
* *
* @param name Sound file name relative to the "sounds" folder. * @param name Sound file name relative to the "sounds" folder.
* @noreturn
*/ */
native PrefetchSound(const String:name[]); native void PrefetchSound(const char[] name);
/** /**
* This function is not known to work, and may crash. You should * This function is not known to work, and may crash. You should
@ -137,7 +136,7 @@ native PrefetchSound(const String:name[]);
* @return Duration in seconds. * @return Duration in seconds.
*/ */
#pragma deprecated Does not work, may crash. #pragma deprecated Does not work, may crash.
native Float:GetSoundDuration(const String:name[]); native float GetSoundDuration(const char[] name);
/** /**
* Emits an ambient sound. * Emits an ambient sound.
@ -150,16 +149,15 @@ native Float:GetSoundDuration(const String:name[]);
* @param vol Volume (from 0.0 to 1.0). * @param vol Volume (from 0.0 to 1.0).
* @param pitch Pitch (from 0 to 255). * @param pitch Pitch (from 0 to 255).
* @param delay Play delay. * @param delay Play delay.
* @noreturn
*/ */
native EmitAmbientSound(const String:name[], native void EmitAmbientSound(const char[] name,
const Float:pos[3], const float pos[3],
entity = SOUND_FROM_WORLD, int entity = SOUND_FROM_WORLD,
level = SNDLEVEL_NORMAL, int level = SNDLEVEL_NORMAL,
flags = SND_NOFLAGS, int flags = SND_NOFLAGS,
Float:vol = SNDVOL_NORMAL, float vol = SNDVOL_NORMAL,
pitch = SNDPITCH_NORMAL, int pitch = SNDPITCH_NORMAL,
Float:delay = 0.0); float delay = 0.0);
/** /**
* Fades a client's volume level toward silence or a given percentage. * Fades a client's volume level toward silence or a given percentage.
@ -169,10 +167,9 @@ native EmitAmbientSound(const String:name[],
* @param outtime Fade out time, in seconds. * @param outtime Fade out time, in seconds.
* @param holdtime Hold time, in seconds. * @param holdtime Hold time, in seconds.
* @param intime Fade in time, in seconds. * @param intime Fade in time, in seconds.
* @noreturn
* @error Invalid client index or client not in game. * @error Invalid client index or client not in game.
*/ */
native FadeClientVolume(client, Float:percent, Float:outtime, Float:holdtime, Float:intime); native void FadeClientVolume(int client, float percent, float outtime, float holdtime, float intime);
/** /**
* Stops a sound. * Stops a sound.
@ -180,9 +177,8 @@ native FadeClientVolume(client, Float:percent, Float:outtime, Float:holdtime, Fl
* @param entity Entity index. * @param entity Entity index.
* @param channel Channel number. * @param channel Channel number.
* @param name Sound file name relative to the "sounds" folder. * @param name Sound file name relative to the "sounds" folder.
* @noreturn
*/ */
native StopSound(entity, channel, const String:name[]); native void StopSound(int entity, int channel, const char[] name);
/** /**
* Emits a sound to a list of clients. * Emits a sound to a list of clients.
@ -202,24 +198,23 @@ native StopSound(entity, channel, const String:name[]);
* @param updatePos Unknown (updates positions?) * @param updatePos Unknown (updates positions?)
* @param soundtime Alternate time to play sound for. * @param soundtime Alternate time to play sound for.
* @param ... Optional list of Float[3] arrays to specify additional origins. * @param ... Optional list of Float[3] arrays to specify additional origins.
* @noreturn
* @error Invalid client index. * @error Invalid client index.
*/ */
native EmitSound(const clients[], native void EmitSound(const int[] clients,
numClients, int numClients,
const String:sample[], const char[] sample,
entity = SOUND_FROM_PLAYER, int entity = SOUND_FROM_PLAYER,
channel = SNDCHAN_AUTO, int channel = SNDCHAN_AUTO,
level = SNDLEVEL_NORMAL, int level = SNDLEVEL_NORMAL,
flags = SND_NOFLAGS, int flags = SND_NOFLAGS,
Float:volume = SNDVOL_NORMAL, float volume = SNDVOL_NORMAL,
pitch = SNDPITCH_NORMAL, int pitch = SNDPITCH_NORMAL,
speakerentity = -1, int speakerentity = -1,
const Float:origin[3] = NULL_VECTOR, const float origin[3] = NULL_VECTOR,
const Float:dir[3] = NULL_VECTOR, const float dir[3] = NULL_VECTOR,
bool:updatePos = true, bool updatePos = true,
Float:soundtime = 0.0, float soundtime = 0.0,
any:...); any ...);
/** /**
* Emits a sound or game sound to a list of clients using the latest version of the engine sound interface. * Emits a sound or game sound to a list of clients using the latest version of the engine sound interface.
@ -242,26 +237,25 @@ native EmitSound(const clients[],
* @param updatePos Unknown (updates positions?) * @param updatePos Unknown (updates positions?)
* @param soundtime Alternate time to play sound for. * @param soundtime Alternate time to play sound for.
* @param ... Optional list of Float[3] arrays to specify additional origins. * @param ... Optional list of Float[3] arrays to specify additional origins.
* @noreturn
* @error Invalid client index. * @error Invalid client index.
*/ */
native EmitSoundEntry(const clients[], native void EmitSoundEntry(const int[] clients,
numClients, int numClients,
const String:soundEntry[], const char[] soundEntry,
const String:sample[], const char[] sample,
entity = SOUND_FROM_PLAYER, int entity = SOUND_FROM_PLAYER,
channel = SNDCHAN_AUTO, int channel = SNDCHAN_AUTO,
level = SNDLEVEL_NORMAL, int level = SNDLEVEL_NORMAL,
seed = 0, int seed = 0,
flags = SND_NOFLAGS, int flags = SND_NOFLAGS,
Float:volume = SNDVOL_NORMAL, float volume = SNDVOL_NORMAL,
pitch = SNDPITCH_NORMAL, int pitch = SNDPITCH_NORMAL,
speakerentity = -1, int speakerentity = -1,
const Float:origin[3] = NULL_VECTOR, const float origin[3] = NULL_VECTOR,
const Float:dir[3] = NULL_VECTOR, const float dir[3] = NULL_VECTOR,
bool:updatePos = true, bool updatePos = true,
Float:soundtime = 0.0, float soundtime = 0.0,
any:...); any ...);
/** /**
* Emits a sentence to a list of clients. * Emits a sentence to a list of clients.
@ -281,24 +275,23 @@ native EmitSoundEntry(const clients[],
* @param updatePos Unknown (updates positions?) * @param updatePos Unknown (updates positions?)
* @param soundtime Alternate time to play sound for. * @param soundtime Alternate time to play sound for.
* @param ... Optional list of Float[3] arrays to specify additional origins. * @param ... Optional list of Float[3] arrays to specify additional origins.
* @noreturn
* @error Invalid client index. * @error Invalid client index.
*/ */
native EmitSentence(const clients[], native void EmitSentence(const int[] clients,
numClients, int numClients,
sentence, int sentence,
entity, int entity,
channel = SNDCHAN_AUTO, int channel = SNDCHAN_AUTO,
level = SNDLEVEL_NORMAL, int level = SNDLEVEL_NORMAL,
flags = SND_NOFLAGS, int flags = SND_NOFLAGS,
Float:volume = SNDVOL_NORMAL, float volume = SNDVOL_NORMAL,
pitch = SNDPITCH_NORMAL, int pitch = SNDPITCH_NORMAL,
speakerentity = -1, int speakerentity = -1,
const Float:origin[3] = NULL_VECTOR, const float origin[3] = NULL_VECTOR,
const Float:dir[3] = NULL_VECTOR, const float dir[3] = NULL_VECTOR,
bool:updatePos = true, bool updatePos = true,
Float:soundtime = 0.0, float soundtime = 0.0,
any:...); any ...);
/** /**
* Calculates gain of sound on given distance with given sound level in decibel * Calculates gain of sound on given distance with given sound level in decibel
@ -307,7 +300,7 @@ native EmitSentence(const clients[],
* @param distance distance of sound to calculate, not meter or feet, but Source Engine`s normal Coordinate unit * @param distance distance of sound to calculate, not meter or feet, but Source Engine`s normal Coordinate unit
* @return gain of sound. you can multiply this with original sound`s volume to calculate volume on given distance * @return gain of sound. you can multiply this with original sound`s volume to calculate volume on given distance
*/ */
native Float:GetDistGainFromSoundLevel(soundlevel, Float:distance); native float GetDistGainFromSoundLevel(int soundlevel, float distance);
/** /**
* Called when an ambient sound is about to be emitted to one or more clients. * Called when an ambient sound is about to be emitted to one or more clients.
@ -372,37 +365,33 @@ typeset NormalSHook
* Hooks all played ambient sounds. * Hooks all played ambient sounds.
* *
* @param hook Function to use as a hook. * @param hook Function to use as a hook.
* @noreturn
* @error Invalid function hook. * @error Invalid function hook.
*/ */
native AddAmbientSoundHook(AmbientSHook:hook); native void AddAmbientSoundHook(AmbientSHook hook);
/** /**
* Hooks all played normal sounds. * Hooks all played normal sounds.
* *
* @param hook Function to use as a hook. * @param hook Function to use as a hook.
* @noreturn
* @error Invalid function hook. * @error Invalid function hook.
*/ */
native AddNormalSoundHook(NormalSHook:hook); native void AddNormalSoundHook(NormalSHook hook);
/** /**
* Unhooks all played ambient sounds. * Unhooks all played ambient sounds.
* *
* @param hook Function used for the hook. * @param hook Function used for the hook.
* @noreturn
* @error Invalid function hook. * @error Invalid function hook.
*/ */
native RemoveAmbientSoundHook(AmbientSHook:hook); native void RemoveAmbientSoundHook(AmbientSHook hook);
/** /**
* Unhooks all played normal sounds. * Unhooks all played normal sounds.
* *
* @param hook Function used for the hook. * @param hook Function used for the hook.
* @noreturn
* @error Invalid function hook. * @error Invalid function hook.
*/ */
native RemoveNormalSoundHook(NormalSHook:hook); native void RemoveNormalSoundHook(NormalSHook hook);
/** /**
* Wrapper to emit sound to one client. * Wrapper to emit sound to one client.
@ -420,24 +409,23 @@ native RemoveNormalSoundHook(NormalSHook:hook);
* @param dir Sound direction. * @param dir Sound direction.
* @param updatePos Unknown (updates positions?) * @param updatePos Unknown (updates positions?)
* @param soundtime Alternate time to play sound for. * @param soundtime Alternate time to play sound for.
* @noreturn
* @error Invalid client index. * @error Invalid client index.
*/ */
stock EmitSoundToClient(client, stock void EmitSoundToClient(int client,
const String:sample[], const char[] sample,
entity = SOUND_FROM_PLAYER, int entity = SOUND_FROM_PLAYER,
channel = SNDCHAN_AUTO, int channel = SNDCHAN_AUTO,
level = SNDLEVEL_NORMAL, int level = SNDLEVEL_NORMAL,
flags = SND_NOFLAGS, int flags = SND_NOFLAGS,
Float:volume = SNDVOL_NORMAL, float volume = SNDVOL_NORMAL,
pitch = SNDPITCH_NORMAL, int pitch = SNDPITCH_NORMAL,
speakerentity = -1, int speakerentity = -1,
const Float:origin[3] = NULL_VECTOR, const float origin[3] = NULL_VECTOR,
const Float:dir[3] = NULL_VECTOR, const float dir[3] = NULL_VECTOR,
bool:updatePos = true, bool updatePos = true,
Float:soundtime = 0.0) float soundtime = 0.0)
{ {
new clients[1]; int clients[1];
clients[0] = client; clients[0] = client;
/* Save some work for SDKTools and remove SOUND_FROM_PLAYER references */ /* Save some work for SDKTools and remove SOUND_FROM_PLAYER references */
entity = (entity == SOUND_FROM_PLAYER) ? client : entity; entity = (entity == SOUND_FROM_PLAYER) ? client : entity;
@ -461,26 +449,25 @@ stock EmitSoundToClient(client,
* @param dir Sound direction. * @param dir Sound direction.
* @param updatePos Unknown (updates positions?) * @param updatePos Unknown (updates positions?)
* @param soundtime Alternate time to play sound for. * @param soundtime Alternate time to play sound for.
* @noreturn
* @error Invalid client index. * @error Invalid client index.
*/ */
stock EmitSoundToAll(const String:sample[], stock void EmitSoundToAll(const char[] sample,
entity = SOUND_FROM_PLAYER, int entity = SOUND_FROM_PLAYER,
channel = SNDCHAN_AUTO, int channel = SNDCHAN_AUTO,
level = SNDLEVEL_NORMAL, int level = SNDLEVEL_NORMAL,
flags = SND_NOFLAGS, int flags = SND_NOFLAGS,
Float:volume = SNDVOL_NORMAL, float volume = SNDVOL_NORMAL,
pitch = SNDPITCH_NORMAL, int pitch = SNDPITCH_NORMAL,
speakerentity = -1, int speakerentity = -1,
const Float:origin[3] = NULL_VECTOR, const float origin[3] = NULL_VECTOR,
const Float:dir[3] = NULL_VECTOR, const float dir[3] = NULL_VECTOR,
bool:updatePos = true, bool updatePos = true,
Float:soundtime = 0.0) float soundtime = 0.0)
{ {
new clients[MaxClients]; int[] clients = new int[MaxClients];
new total = 0; int total = 0;
for (new i=1; i<=MaxClients; i++) for (int i=1; i<=MaxClients; i++)
{ {
if (IsClientInGame(i)) if (IsClientInGame(i))
{ {
@ -505,7 +492,7 @@ stock EmitSoundToAll(const String:sample[],
* @param attn Attenuation value. * @param attn Attenuation value.
* @return Integer sound level. * @return Integer sound level.
*/ */
stock ATTN_TO_SNDLEVEL(Float:attn) stock int ATTN_TO_SNDLEVEL(float attn)
{ {
if (attn > 0.0) if (attn > 0.0)
{ {
@ -534,14 +521,14 @@ stock ATTN_TO_SNDLEVEL(Float:attn)
* @return True if the sound was successfully retrieved, false if it * @return True if the sound was successfully retrieved, false if it
* was not found * was not found
*/ */
native bool:GetGameSoundParams(const String:gameSound[], native bool GetGameSoundParams(const char[] gameSound,
&channel, int &channel,
&soundLevel, int &soundLevel,
&Float:volume, float &volume,
&pitch, int &pitch,
String:sample[], char[] sample,
maxlength, int maxlength,
entity=SOUND_FROM_PLAYER); int entity=SOUND_FROM_PLAYER);
/** /**
* Emits a game sound to a list of clients. * Emits a game sound to a list of clients.
@ -565,22 +552,22 @@ native bool:GetGameSoundParams(const String:gameSound[],
* @return True if the sound was played successfully, false if it failed * @return True if the sound was played successfully, false if it failed
* @error Invalid client index. * @error Invalid client index.
*/ */
stock bool:EmitGameSound(const clients[], stock bool EmitGameSound(const int[] clients,
numClients, int numClients,
const String:gameSound[], const char[] gameSound,
entity = SOUND_FROM_PLAYER, int entity = SOUND_FROM_PLAYER,
flags = SND_NOFLAGS, int flags = SND_NOFLAGS,
speakerentity = -1, int speakerentity = -1,
const Float:origin[3] = NULL_VECTOR, const float origin[3] = NULL_VECTOR,
const Float:dir[3] = NULL_VECTOR, const float dir[3] = NULL_VECTOR,
bool:updatePos = true, bool updatePos = true,
Float:soundtime = 0.0) float soundtime = 0.0)
{ {
new channel; int channel;
new level; int level;
new Float:volume; float volume;
new pitch; int pitch;
new String:sample[PLATFORM_MAX_PATH]; char sample[PLATFORM_MAX_PATH];
if (GetGameSoundParams(gameSound, channel, level, volume, pitch, sample, sizeof(sample), entity)) if (GetGameSoundParams(gameSound, channel, level, volume, pitch, sample, sizeof(sample), entity))
{ {
@ -607,19 +594,18 @@ stock bool:EmitGameSound(const clients[],
* @param entity Entity index to associate sound with. * @param entity Entity index to associate sound with.
* @param flags Sound flags. * @param flags Sound flags.
* @param delay Play delay. * @param delay Play delay.
* @noreturn
*/ */
stock bool:EmitAmbientGameSound(const String:gameSound[], stock bool EmitAmbientGameSound(const char[] gameSound,
const Float:pos[3], const float pos[3],
entity = SOUND_FROM_WORLD, int entity = SOUND_FROM_WORLD,
flags = SND_NOFLAGS, int flags = SND_NOFLAGS,
Float:delay = 0.0) float delay = 0.0)
{ {
new channel; // This is never actually used for Ambients, but it's a mandatory field to GetGameSoundParams int channel; // This is never actually used for Ambients, but it's a mandatory field to GetGameSoundParams
new level; int level;
new Float:volume; float volume;
new pitch; int pitch;
new String:sample[PLATFORM_MAX_PATH]; char sample[PLATFORM_MAX_PATH];
if (GetGameSoundParams(gameSound, channel, level, volume, pitch, sample, sizeof(sample), entity)) if (GetGameSoundParams(gameSound, channel, level, volume, pitch, sample, sizeof(sample), entity))
{ {
@ -650,20 +636,19 @@ stock bool:EmitAmbientGameSound(const String:gameSound[],
* @param dir Sound direction. * @param dir Sound direction.
* @param updatePos Unknown (updates positions?) * @param updatePos Unknown (updates positions?)
* @param soundtime Alternate time to play sound for. * @param soundtime Alternate time to play sound for.
* @noreturn
* @error Invalid client index. * @error Invalid client index.
*/ */
stock bool:EmitGameSoundToClient(client, stock bool EmitGameSoundToClient(int client,
const String:gameSound[], const char[] gameSound,
entity = SOUND_FROM_PLAYER, int entity = SOUND_FROM_PLAYER,
flags = SND_NOFLAGS, int flags = SND_NOFLAGS,
speakerentity = -1, int speakerentity = -1,
const Float:origin[3] = NULL_VECTOR, const float origin[3] = NULL_VECTOR,
const Float:dir[3] = NULL_VECTOR, const float dir[3] = NULL_VECTOR,
bool:updatePos = true, bool updatePos = true,
Float:soundtime = 0.0) float soundtime = 0.0)
{ {
new clients[1]; int clients[1];
clients[0] = client; clients[0] = client;
/* Save some work for SDKTools and remove SOUND_FROM_PLAYER references */ /* Save some work for SDKTools and remove SOUND_FROM_PLAYER references */
entity = (entity == SOUND_FROM_PLAYER) ? client : entity; entity = (entity == SOUND_FROM_PLAYER) ? client : entity;
@ -688,22 +673,21 @@ stock bool:EmitGameSoundToClient(client,
* @param dir Sound direction. * @param dir Sound direction.
* @param updatePos Unknown (updates positions?) * @param updatePos Unknown (updates positions?)
* @param soundtime Alternate time to play sound for. * @param soundtime Alternate time to play sound for.
* @noreturn
* @error Invalid client index. * @error Invalid client index.
*/ */
stock bool:EmitGameSoundToAll(const String:gameSound[], stock bool EmitGameSoundToAll(const char[] gameSound,
entity = SOUND_FROM_PLAYER, int entity = SOUND_FROM_PLAYER,
flags = SND_NOFLAGS, int flags = SND_NOFLAGS,
speakerentity = -1, int speakerentity = -1,
const Float:origin[3] = NULL_VECTOR, const float origin[3] = NULL_VECTOR,
const Float:dir[3] = NULL_VECTOR, const float dir[3] = NULL_VECTOR,
bool:updatePos = true, bool updatePos = true,
Float:soundtime = 0.0) float soundtime = 0.0)
{ {
new clients[MaxClients]; int[] clients = new int[MaxClients];
new total = 0; int total = 0;
for (new i=1; i<=MaxClients; i++) for (int i=1; i<=MaxClients; i++)
{ {
if (IsClientInGame(i)) if (IsClientInGame(i))
{ {
@ -738,4 +722,4 @@ stock bool:EmitGameSoundToAll(const String:gameSound[],
* @return True if the game sound was found, false if sound did not exist * @return True if the game sound was found, false if sound did not exist
* or had no files * or had no files
*/ */
native bool:PrecacheScriptSound(const String:soundname[]); native bool PrecacheScriptSound(const char[] soundname);

View File

@ -51,29 +51,26 @@ typedef TEHook = function Action (const char[] te_name, const int[] Players, int
* *
* @param te_name TE name to hook. * @param te_name TE name to hook.
* @param hook Function to use as a hook. * @param hook Function to use as a hook.
* @noreturn
* @error Temp Entity name not available or invalid function hook. * @error Temp Entity name not available or invalid function hook.
*/ */
native AddTempEntHook(const String:te_name[], TEHook:hook); native void AddTempEntHook(const char[] te_name, TEHook hook);
/** /**
* Removes a temp entity hook. * Removes a temp entity hook.
* *
* @param te_name TE name to unhook. * @param te_name TE name to unhook.
* @param hook Function used for the hook. * @param hook Function used for the hook.
* @noreturn
* @error Temp Entity name not available or invalid function hook. * @error Temp Entity name not available or invalid function hook.
*/ */
native RemoveTempEntHook(const String:te_name[], TEHook:hook); native void RemoveTempEntHook(const char[] te_name, TEHook hook);
/** /**
* Starts a temp entity transmission. * Starts a temp entity transmission.
* *
* @param te_name TE name. * @param te_name TE name.
* @noreturn
* @error Temp Entity name not available. * @error Temp Entity name not available.
*/ */
native TE_Start(const String:te_name[]); native void TE_Start(const char[] te_name);
/** /**
* Checks if a certain TE property exists. * Checks if a certain TE property exists.
@ -81,17 +78,16 @@ native TE_Start(const String:te_name[]);
* @param prop Property to use. * @param prop Property to use.
* @return True if the property exists, otherwise false. * @return True if the property exists, otherwise false.
*/ */
native bool:TE_IsValidProp(const String:prop[]); native bool TE_IsValidProp(const char[] prop);
/** /**
* Sets an integer value in the current temp entity. * Sets an integer value in the current temp entity.
* *
* @param prop Property to use. * @param prop Property to use.
* @param value Integer value to set. * @param value Integer value to set.
* @noreturn
* @error Property not found. * @error Property not found.
*/ */
native TE_WriteNum(const String:prop[], value); native void TE_WriteNum(const char[] prop, int value);
/** /**
* Reads an integer value in the current temp entity. * Reads an integer value in the current temp entity.
@ -100,56 +96,52 @@ native TE_WriteNum(const String:prop[], value);
* @return Property value. * @return Property value.
* @error Property not found. * @error Property not found.
*/ */
native TE_ReadNum(const String:prop[]); native int TE_ReadNum(const char[] prop);
/** /**
* Sets a floating point number in the current temp entity. * Sets a floating point number in the current temp entity.
* *
* @param prop Property to use. * @param prop Property to use.
* @param value Floating point number to set. * @param value Floating point number to set.
* @noreturn
* @error Property not found. * @error Property not found.
*/ */
native TE_WriteFloat(const String:prop[], Float:value); native void TE_WriteFloat(const char[] prop, float value);
/** /**
* Reads a floating point number in the current temp entity. * Reads a floating point number in the current temp entity.
* *
* @param prop Property to use. * @param prop Property to use.
* @noreturn Property value. * @return Property value.
* @error Property not found. * @error Property not found.
*/ */
native Float:TE_ReadFloat(const String:prop[]); native float TE_ReadFloat(const char[] prop);
/** /**
* Sets a vector in the current temp entity. * Sets a vector in the current temp entity.
* *
* @param prop Property to use. * @param prop Property to use.
* @param vector Vector to set. * @param vector Vector to set.
* @noreturn
* @error Property not found. * @error Property not found.
*/ */
native TE_WriteVector(const String:prop[], const Float:vector[3]); native void TE_WriteVector(const char[] prop, const float vector[3]);
/** /**
* Reads a vector in the current temp entity. * Reads a vector in the current temp entity.
* *
* @param prop Property to use. * @param prop Property to use.
* @param vector Vector to read. * @param vector Vector to read.
* @noreturn
* @error Property not found. * @error Property not found.
*/ */
native TE_ReadVector(const String:prop[], Float:vector[3]); native void TE_ReadVector(const char[] prop, float vector[3]);
/** /**
* Sets a QAngle in the current temp entity. * Sets a QAngle in the current temp entity.
* *
* @param prop Property to use. * @param prop Property to use.
* @param angles Angles to set. * @param angles Angles to set.
* @return True on success, otherwise false.
* @error Property not found. * @error Property not found.
*/ */
native TE_WriteAngles(const String:prop[], const Float:angles[3]); native void TE_WriteAngles(const char[] prop, const float angles[3]);
/** /**
* Sets an array of floats in the current temp entity. * Sets an array of floats in the current temp entity.
@ -157,10 +149,9 @@ native TE_WriteAngles(const String:prop[], const Float:angles[3]);
* @param prop Property to use. * @param prop Property to use.
* @param array Array of values to copy. * @param array Array of values to copy.
* @param arraySize Number of values to copy. * @param arraySize Number of values to copy.
* @return True on success, otherwise false.
* @error Property not found. * @error Property not found.
*/ */
native TE_WriteFloatArray(const String:prop[], const Float:array[], arraySize); native void TE_WriteFloatArray(const char[] prop, const float[] array, int arraySize);
/** /**
* Sends the current temp entity to one or more clients. * Sends the current temp entity to one or more clients.
@ -168,10 +159,9 @@ native TE_WriteFloatArray(const String:prop[], const Float:array[], arraySize);
* @param clients Array containing player indexes to broadcast to. * @param clients Array containing player indexes to broadcast to.
* @param numClients Number of players in the array. * @param numClients Number of players in the array.
* @param delay Delay in seconds to send the TE. * @param delay Delay in seconds to send the TE.
* @noreturn
* @error Invalid client index or client not in game. * @error Invalid client index or client not in game.
*/ */
native TE_Send(const clients[], numClients, Float:delay=0.0); native void TE_Send(const int[] clients, int numClients, float delay=0.0);
/** /**
* Sets an encoded entity index in the current temp entity. * Sets an encoded entity index in the current temp entity.
@ -179,12 +169,11 @@ native TE_Send(const clients[], numClients, Float:delay=0.0);
* *
* @param prop Property to use. * @param prop Property to use.
* @param value Value to set. * @param value Value to set.
* @noreturn
* @error Property not found. * @error Property not found.
*/ */
stock TE_WriteEncodedEnt(const String:prop[], value) stock void TE_WriteEncodedEnt(const char[] prop, int value)
{ {
new encvalue = (value & 0x0FFF) | ((1 & 0xF)<<12); int encvalue = (value & 0x0FFF) | ((1 & 0xF)<<12);
return TE_WriteNum(prop, encvalue); return TE_WriteNum(prop, encvalue);
} }
@ -193,13 +182,12 @@ stock TE_WriteEncodedEnt(const String:prop[], value)
* @note See TE_Start(). * @note See TE_Start().
* *
* @param delay Delay in seconds to send the TE. * @param delay Delay in seconds to send the TE.
* @noreturn
*/ */
stock TE_SendToAll(Float:delay=0.0) stock void TE_SendToAll(float delay=0.0)
{ {
new total = 0; int total = 0;
new clients[MaxClients]; int[] clients = new int[MaxClients];
for (new i=1; i<=MaxClients; i++) for (int i=1; i<=MaxClients; i++)
{ {
if (IsClientInGame(i)) if (IsClientInGame(i))
{ {
@ -215,12 +203,11 @@ stock TE_SendToAll(Float:delay=0.0)
* *
* @param client Client to send to. * @param client Client to send to.
* @param delay Delay in seconds to send the TE. * @param delay Delay in seconds to send the TE.
* @noreturn
* @error Invalid client index or client not in game. * @error Invalid client index or client not in game.
*/ */
stock TE_SendToClient(client, Float:delay=0.0) stock void TE_SendToClient(int client, float delay=0.0)
{ {
new players[1]; int players[1];
players[0] = client; players[0] = client;
@ -236,9 +223,8 @@ stock TE_SendToClient(client, Float:delay=0.0)
* @param origin Coordinates from which to test range. * @param origin Coordinates from which to test range.
* @param rangeType Range type to use for filtering clients. * @param rangeType Range type to use for filtering clients.
* @param delay Delay in seconds to send the TE. * @param delay Delay in seconds to send the TE.
* @noreturn
*/ */
stock TE_SendToAllInRange(float origin[3], ClientRangeType rangeType, float delay=0.0) stock void TE_SendToAllInRange(float origin[3], ClientRangeType rangeType, float delay=0.0)
{ {
int[] clients = new int[MaxClients]; int[] clients = new int[MaxClients];
int total = GetClientsInRange(origin, rangeType, clients, MaxClients); int total = GetClientsInRange(origin, rangeType, clients, MaxClients);

View File

@ -139,7 +139,7 @@ typeset TraceEntityFilter
* @param entindex Entity index found at the given position (by reference). * @param entindex Entity index found at the given position (by reference).
* @return Contents mask. * @return Contents mask.
*/ */
native TR_GetPointContents(const Float:pos[3], &entindex=-1); native int TR_GetPointContents(const float pos[3], int &entindex=-1);
/** /**
* Get the point contents testing only the given entity index. * Get the point contents testing only the given entity index.
@ -148,7 +148,7 @@ native TR_GetPointContents(const Float:pos[3], &entindex=-1);
* @param pos World position. * @param pos World position.
* @return Contents mask. * @return Contents mask.
*/ */
native TR_GetPointContentsEnt(entindex, const Float:pos[3]); native int TR_GetPointContentsEnt(int entindex, const float pos[3]);
/** /**
* Starts up a new trace ray using a global trace result. * Starts up a new trace ray using a global trace result.
@ -158,12 +158,11 @@ native TR_GetPointContentsEnt(entindex, const Float:pos[3]);
* ending point, or the direction angle. * ending point, or the direction angle.
* @param flags Trace flags. * @param flags Trace flags.
* @param rtype Method to calculate the ray direction. * @param rtype Method to calculate the ray direction.
* @noreturn
*/ */
native TR_TraceRay(const Float:pos[3], native void TR_TraceRay(const float pos[3],
const Float:vec[3], const float vec[3],
flags, int flags,
RayType:rtype); RayType rtype);
/** /**
* Starts up a new trace hull using a global trace result. * Starts up a new trace hull using a global trace result.
@ -173,13 +172,12 @@ native TR_TraceRay(const Float:pos[3],
* @param mins Hull minimum size. * @param mins Hull minimum size.
* @param maxs Hull maximum size. * @param maxs Hull maximum size.
* @param flags Trace flags. * @param flags Trace flags.
* @noreturn
*/ */
native TR_TraceHull(const Float:pos[3], native void TR_TraceHull(const float pos[3],
const Float:vec[3], const float vec[3],
const Float:mins[3], const float mins[3],
const Float:maxs[3], const float maxs[3],
flags); int flags);
/** /**
* Starts up a new trace ray using a global trace result and a customized * Starts up a new trace ray using a global trace result and a customized
@ -196,14 +194,13 @@ native TR_TraceHull(const Float:pos[3],
* @param filter Function to use as a filter. * @param filter Function to use as a filter.
* @param data Arbitrary data value to pass through to the filter * @param data Arbitrary data value to pass through to the filter
* function. * function.
* @noreturn
*/ */
native TR_TraceRayFilter(const Float:pos[3], native void TR_TraceRayFilter(const float pos[3],
const Float:vec[3], const float vec[3],
flags, int flags,
RayType:rtype, RayType rtype,
TraceEntityFilter:filter, TraceEntityFilter filter,
any:data=0); any data=0);
/** /**
* Starts up a new trace hull using a global trace result and a customized * Starts up a new trace hull using a global trace result and a customized
@ -221,15 +218,14 @@ native TR_TraceRayFilter(const Float:pos[3],
* @param filter Function to use as a filter. * @param filter Function to use as a filter.
* @param data Arbitrary data value to pass through to the filter * @param data Arbitrary data value to pass through to the filter
* function. * function.
* @noreturn
*/ */
native TR_TraceHullFilter(const Float:pos[3], native void TR_TraceHullFilter(const float pos[3],
const Float:vec[3], const float vec[3],
const Float:mins[3], const float mins[3],
const Float:maxs[3], const float maxs[3],
flags, int flags,
TraceEntityFilter:filter, TraceEntityFilter filter,
any:data=0); any data=0);
/** /**
* Starts up a new trace ray using a new trace result. * Starts up a new trace ray using a new trace result.
@ -241,10 +237,10 @@ native TR_TraceHullFilter(const Float:pos[3],
* @param rtype Method to calculate the ray direction. * @param rtype Method to calculate the ray direction.
* @return Ray trace handle, which must be closed via CloseHandle(). * @return Ray trace handle, which must be closed via CloseHandle().
*/ */
native Handle:TR_TraceRayEx(const Float:pos[3], native Handle TR_TraceRayEx(const float pos[3],
const Float:vec[3], const float vec[3],
flags, int flags,
RayType:rtype); RayType rtype);
/** /**
* Starts up a new trace hull using a new trace result. * Starts up a new trace hull using a new trace result.
@ -256,11 +252,11 @@ native Handle:TR_TraceRayEx(const Float:pos[3],
* @param flags Trace flags. * @param flags Trace flags.
* @return Ray trace handle, which must be closed via CloseHandle(). * @return Ray trace handle, which must be closed via CloseHandle().
*/ */
native Handle:TR_TraceHullEx(const Float:pos[3], native Handle TR_TraceHullEx(const float pos[3],
const Float:vec[3], const float vec[3],
const Float:mins[3], const float mins[3],
const Float:maxs[3], const float maxs[3],
flags); int flags);
/** /**
* Starts up a new trace ray using a new trace result and a customized * Starts up a new trace ray using a new trace result and a customized
@ -278,12 +274,12 @@ native Handle:TR_TraceHullEx(const Float:pos[3],
* @param data Arbitrary data value to pass through to the filter function. * @param data Arbitrary data value to pass through to the filter function.
* @return Ray trace handle, which must be closed via CloseHandle(). * @return Ray trace handle, which must be closed via CloseHandle().
*/ */
native Handle:TR_TraceRayFilterEx(const Float:pos[3], native Handle TR_TraceRayFilterEx(const float pos[3],
const Float:vec[3], const float vec[3],
flags, int flags,
RayType:rtype, RayType rtype,
TraceEntityFilter:filter, TraceEntityFilter filter,
any:data=0); any data=0);
/** /**
* Starts up a new trace hull using a new trace result and a customized * Starts up a new trace hull using a new trace result and a customized
@ -301,13 +297,13 @@ native Handle:TR_TraceRayFilterEx(const Float:pos[3],
* @param data Arbitrary data value to pass through to the filter function. * @param data Arbitrary data value to pass through to the filter function.
* @return Ray trace handle, which must be closed via CloseHandle(). * @return Ray trace handle, which must be closed via CloseHandle().
*/ */
native Handle:TR_TraceHullFilterEx(const Float:pos[3], native Handle TR_TraceHullFilterEx(const float pos[3],
const Float:vec[3], const float vec[3],
const Float:mins[3], const float mins[3],
const Float:maxs[3], const float maxs[3],
flags, int flags,
TraceEntityFilter:filter, TraceEntityFilter filter,
any:data=0); any data=0);
/** /**
* Returns the time fraction from a trace result (1.0 means no collision). * Returns the time fraction from a trace result (1.0 means no collision).
@ -316,17 +312,16 @@ native Handle:TR_TraceHullFilterEx(const Float:pos[3],
* @return Time fraction value of the trace. * @return Time fraction value of the trace.
* @error Invalid Handle. * @error Invalid Handle.
*/ */
native Float:TR_GetFraction(Handle:hndl=INVALID_HANDLE); native float TR_GetFraction(Handle hndl=INVALID_HANDLE);
/** /**
* Returns the collision position of a trace result. * Returns the collision position of a trace result.
* *
* @param pos Vector buffer to store data in. * @param pos Vector buffer to store data in.
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result. * @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
* @noreturn
* @error Invalid Handle. * @error Invalid Handle.
*/ */
native TR_GetEndPosition(Float:pos[3], Handle:hndl=INVALID_HANDLE); native void TR_GetEndPosition(float pos[3], Handle hndl=INVALID_HANDLE);
/** /**
* Returns the entity index that collided with the trace. * Returns the entity index that collided with the trace.
@ -335,7 +330,7 @@ native TR_GetEndPosition(Float:pos[3], Handle:hndl=INVALID_HANDLE);
* @return Entity index or -1 for no collision. * @return Entity index or -1 for no collision.
* @error Invalid Handle. * @error Invalid Handle.
*/ */
native TR_GetEntityIndex(Handle:hndl=INVALID_HANDLE); native int TR_GetEntityIndex(Handle hndl=INVALID_HANDLE);
/** /**
* Returns if there was any kind of collision along the trace ray. * Returns if there was any kind of collision along the trace ray.
@ -344,7 +339,7 @@ native TR_GetEntityIndex(Handle:hndl=INVALID_HANDLE);
* @return True if any collision found, otherwise false. * @return True if any collision found, otherwise false.
* @error Invalid Handle. * @error Invalid Handle.
*/ */
native bool:TR_DidHit(Handle:hndl=INVALID_HANDLE); native bool TR_DidHit(Handle hndl=INVALID_HANDLE);
/** /**
* Returns in which body hit group the trace collided if any. * Returns in which body hit group the trace collided if any.
@ -353,17 +348,16 @@ native bool:TR_DidHit(Handle:hndl=INVALID_HANDLE);
* @return Body hit group. * @return Body hit group.
* @error Invalid Handle. * @error Invalid Handle.
*/ */
native TR_GetHitGroup(Handle:hndl=INVALID_HANDLE); native int TR_GetHitGroup(Handle hndl=INVALID_HANDLE);
/** /**
* Find the normal vector to the collision plane of a trace. * Find the normal vector to the collision plane of a trace.
* *
* @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result. * @param hndl A trace Handle, or INVALID_HANDLE to use a global trace result.
* @param normal Vector buffer to store the vector normal to the collision plane * @param normal Vector buffer to store the vector normal to the collision plane
* @noreturn
* @error Invalid Handle * @error Invalid Handle
*/ */
native TR_GetPlaneNormal(Handle:hndl, Float:normal[3]); native void TR_GetPlaneNormal(Handle hndl, float normal[3]);
/** /**
* Tests a point to see if it's outside any playable area * Tests a point to see if it's outside any playable area
@ -371,4 +365,4 @@ native TR_GetPlaneNormal(Handle:hndl, Float:normal[3]);
* @param pos Vector buffer to store data in. * @param pos Vector buffer to store data in.
* @return True if outside world, otherwise false. * @return True if outside world, otherwise false.
*/ */
native TR_PointOutsideWorld(Float:pos[3]); native bool TR_PointOutsideWorld(float pos[3]);

View File

@ -91,8 +91,6 @@ enum APLRes
* *
* If any run-time error is thrown during this callback, the plugin will be marked * If any run-time error is thrown during this callback, the plugin will be marked
* as failed. * as failed.
*
* @noreturn
*/ */
forward void OnPluginStart(); forward void OnPluginStart();
@ -102,7 +100,7 @@ forward void OnPluginStart();
* not be called, but old plugins with only AskPluginLoad() will work. * not be called, but old plugins with only AskPluginLoad() will work.
*/ */
#pragma deprecated Use AskPluginLoad2() instead #pragma deprecated Use AskPluginLoad2() instead
forward bool:AskPluginLoad(Handle:myself, bool:late, String:error[], err_max); forward bool AskPluginLoad(Handle myself, bool late, char[] error, int err_max);
/** /**
* Called before OnPluginStart, in case the plugin wants to check for load failure. * Called before OnPluginStart, in case the plugin wants to check for load failure.
@ -123,7 +121,7 @@ forward bool:AskPluginLoad(Handle:myself, bool:late, String:error[], err_max);
* @param err_max Maximum number of characters for error message buffer. * @param err_max Maximum number of characters for error message buffer.
* @return APLRes_Success for load success, APLRes_Failure or APLRes_SilentFailure otherwise * @return APLRes_Success for load success, APLRes_Failure or APLRes_SilentFailure otherwise
*/ */
forward APLRes:AskPluginLoad2(Handle:myself, bool:late, String:error[], err_max); forward APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max);
/** /**
* Called when the plugin is about to be unloaded. * Called when the plugin is about to be unloaded.
@ -131,8 +129,6 @@ forward APLRes:AskPluginLoad2(Handle:myself, bool:late, String:error[], err_max)
* It is not necessary to close any handles or remove hooks in this function. * It is not necessary to close any handles or remove hooks in this function.
* SourceMod guarantees that plugin shutdown automatically and correctly releases * SourceMod guarantees that plugin shutdown automatically and correctly releases
* all resources. * all resources.
*
* @noreturn
*/ */
forward void OnPluginEnd(); forward void OnPluginEnd();
@ -140,9 +136,8 @@ forward void OnPluginEnd();
* Called when the plugin's pause status is changing. * Called when the plugin's pause status is changing.
* *
* @param pause True if the plugin is being paused, false otherwise. * @param pause True if the plugin is being paused, false otherwise.
* @noreturn
*/ */
forward void OnPluginPauseChange(bool:pause); forward void OnPluginPauseChange(bool pause);
/** /**
* Called before every server frame. Note that you should avoid * Called before every server frame. Note that you should avoid
@ -170,8 +165,6 @@ forward void OnMapEnd();
* *
* @note This will always be called once and only once per map. It will be * @note This will always be called once and only once per map. It will be
* called after OnMapStart(). * called after OnMapStart().
*
* @noreturn
*/ */
forward void OnConfigsExecuted(); forward void OnConfigsExecuted();
@ -187,8 +180,6 @@ forward void OnConfigsExecuted();
* *
* Unlike OnMapStart() and OnConfigsExecuted(), this is not called on * Unlike OnMapStart() and OnConfigsExecuted(), this is not called on
* late loads that occur after OnMapStart(). * late loads that occur after OnMapStart().
*
* @noreturn
*/ */
forward void OnAutoConfigsBuffered(); forward void OnAutoConfigsBuffered();
@ -210,7 +201,7 @@ forward void OnAllPluginsLoaded();
* *
* @return Handle of the calling plugin. * @return Handle of the calling plugin.
*/ */
native Handle:GetMyHandle(); native Handle GetMyHandle();
/** /**
* Returns an iterator that can be used to search through plugins. * Returns an iterator that can be used to search through plugins.
@ -219,7 +210,7 @@ native Handle:GetMyHandle();
* CloseHandle(). * CloseHandle().
* @error Invalid Handle. * @error Invalid Handle.
*/ */
native Handle:GetPluginIterator(); native Handle GetPluginIterator();
/** /**
* Returns whether there are more plugins available in the iterator. * Returns whether there are more plugins available in the iterator.
@ -228,7 +219,7 @@ native Handle:GetPluginIterator();
* @return True on more plugins, false otherwise. * @return True on more plugins, false otherwise.
* @error Invalid Handle. * @error Invalid Handle.
*/ */
native bool:MorePlugins(Handle:iter); native bool MorePlugins(Handle iter);
/** /**
* Returns the current plugin in the iterator and advances the iterator. * Returns the current plugin in the iterator and advances the iterator.
@ -238,7 +229,7 @@ native bool:MorePlugins(Handle:iter);
* the iterator is advanced. * the iterator is advanced.
* @error Invalid Handle. * @error Invalid Handle.
*/ */
native Handle:ReadPlugin(Handle:iter); native Handle ReadPlugin(Handle iter);
/** /**
* Returns a plugin's status. * Returns a plugin's status.
@ -247,7 +238,7 @@ native Handle:ReadPlugin(Handle:iter);
* @return Status code for the plugin. * @return Status code for the plugin.
* @error Invalid Handle. * @error Invalid Handle.
*/ */
native PluginStatus:GetPluginStatus(Handle:plugin); native PluginStatus GetPluginStatus(Handle plugin);
/** /**
* Retrieves a plugin's file name relative to the plugins folder. * Retrieves a plugin's file name relative to the plugins folder.
@ -255,10 +246,9 @@ native PluginStatus:GetPluginStatus(Handle:plugin);
* @param plugin Plugin Handle (INVALID_HANDLE uses the calling plugin). * @param plugin Plugin Handle (INVALID_HANDLE uses the calling plugin).
* @param buffer Buffer to the store the file name. * @param buffer Buffer to the store the file name.
* @param maxlength Maximum length of the name buffer. * @param maxlength Maximum length of the name buffer.
* @noreturn
* @error Invalid Handle. * @error Invalid Handle.
*/ */
native GetPluginFilename(Handle:plugin, String:buffer[], maxlength); native void GetPluginFilename(Handle plugin, char[] buffer, int maxlength);
/** /**
* Retrieves whether or not a plugin is being debugged. * Retrieves whether or not a plugin is being debugged.
@ -267,7 +257,7 @@ native GetPluginFilename(Handle:plugin, String:buffer[], maxlength);
* @return True if being debugged, false otherwise. * @return True if being debugged, false otherwise.
* @error Invalid Handle. * @error Invalid Handle.
*/ */
native bool:IsPluginDebugging(Handle:plugin); native bool IsPluginDebugging(Handle plugin);
/** /**
* Retrieves a plugin's public info. * Retrieves a plugin's public info.
@ -279,7 +269,7 @@ native bool:IsPluginDebugging(Handle:plugin);
* @return True on success, false if property is not available. * @return True on success, false if property is not available.
* @error Invalid Handle. * @error Invalid Handle.
*/ */
native bool:GetPluginInfo(Handle:plugin, PluginInfo:info, String:buffer[], maxlength); native bool GetPluginInfo(Handle plugin, PluginInfo info, char[] buffer, int maxlength);
/** /**
* Finds a plugin by its order in the list from the "plugins list" server * Finds a plugin by its order in the list from the "plugins list" server
@ -291,7 +281,7 @@ native bool:GetPluginInfo(Handle:plugin, PluginInfo:info, String:buffer[], maxle
* @return Plugin Handle on success, INVALID_HANDLE if no plugin * @return Plugin Handle on success, INVALID_HANDLE if no plugin
* matches the given number. * matches the given number.
*/ */
native Handle:FindPluginByNumber(order_num); native Handle FindPluginByNumber(int order_num);
/** /**
* Causes the plugin to enter a failed state. An error will be thrown and * Causes the plugin to enter a failed state. An error will be thrown and
@ -308,10 +298,9 @@ native Handle:FindPluginByNumber(order_num);
* *
* @param string Format specifier string. * @param string Format specifier string.
* @param ... Formatting arguments. * @param ... Formatting arguments.
* @noreturn
* @error Always throws SP_ERROR_ABORT. * @error Always throws SP_ERROR_ABORT.
*/ */
native SetFailState(const String:string[], any:...); native void SetFailState(const char[] string, any ...);
/** /**
* Aborts the current callback and throws an error. This function * Aborts the current callback and throws an error. This function
@ -319,10 +308,9 @@ native SetFailState(const String:string[], any:...);
* *
* @param fmt String format. * @param fmt String format.
* @param ... Format arguments. * @param ... Format arguments.
* @noreturn
* @error Always! * @error Always!
*/ */
native ThrowError(const String:fmt[], any:...); native void ThrowError(const char[] fmt, any ...);
/** /**
* Gets the system time as a unix timestamp. * Gets the system time as a unix timestamp.
@ -330,7 +318,7 @@ native ThrowError(const String:fmt[], any:...);
* @param bigStamp Optional array to store the 64bit timestamp in. * @param bigStamp Optional array to store the 64bit timestamp in.
* @return 32bit timestamp (number of seconds since unix epoch). * @return 32bit timestamp (number of seconds since unix epoch).
*/ */
native GetTime(bigStamp[2]={0,0}); native int GetTime(int bigStamp[2]={0,0});
/** /**
* Produces a date and/or time string value for a timestamp. * Produces a date and/or time string value for a timestamp.
@ -342,10 +330,9 @@ native GetTime(bigStamp[2]={0,0});
* @param maxlength Maximum length of output string buffer. * @param maxlength Maximum length of output string buffer.
* @param format Formatting rules (passing NULL_STRING will use the rules defined in sm_datetime_format). * @param format Formatting rules (passing NULL_STRING will use the rules defined in sm_datetime_format).
* @param stamp Optional time stamp. * @param stamp Optional time stamp.
* @noreturn
* @error Buffer too small or invalid time format. * @error Buffer too small or invalid time format.
*/ */
native FormatTime(String:buffer[], maxlength, const String:format[], stamp=-1); native void FormatTime(char[] buffer, int maxlength, const char[] format, int stamp=-1);
/** /**
* Loads a game config file. * Loads a game config file.
@ -354,7 +341,7 @@ native FormatTime(String:buffer[], maxlength, const String:format[], stamp=-1);
* and the extension should be omitted. * and the extension should be omitted.
* @return A handle to the game config file or INVALID_HANDLE in failure. * @return A handle to the game config file or INVALID_HANDLE in failure.
*/ */
native Handle:LoadGameConfigFile(const String:file[]); native Handle LoadGameConfigFile(const char[] file);
/** /**
* Returns an offset value. * Returns an offset value.
@ -363,7 +350,7 @@ native Handle:LoadGameConfigFile(const String:file[]);
* @param key Key to retrieve from the offset section. * @param key Key to retrieve from the offset section.
* @return An offset, or -1 on failure. * @return An offset, or -1 on failure.
*/ */
native GameConfGetOffset(Handle:gc, const String:key[]); native int GameConfGetOffset(Handle gc, const char[] key);
/** /**
* Gets the value of a key from the "Keys" section. * Gets the value of a key from the "Keys" section.
@ -374,7 +361,7 @@ native GameConfGetOffset(Handle:gc, const String:key[]);
* @param maxlen Maximum length of output string buffer. * @param maxlen Maximum length of output string buffer.
* @return True if key existed, false otherwise. * @return True if key existed, false otherwise.
*/ */
native bool:GameConfGetKeyValue(Handle:gc, const String:key[], String:buffer[], maxlen); native bool GameConfGetKeyValue(Handle gc, const char[] key, char[] buffer, int maxlen);
/** /**
* Finds an address calculation in a GameConfig file, * Finds an address calculation in a GameConfig file,
@ -384,7 +371,7 @@ native bool:GameConfGetKeyValue(Handle:gc, const String:key[], String:buffer[],
* @param name Name of the property to find. * @param name Name of the property to find.
* @return An address calculated on success, or 0 on failure. * @return An address calculated on success, or 0 on failure.
*/ */
native Address:GameConfGetAddress(Handle:gameconf, const String:name[]); native Address GameConfGetAddress(Handle gameconf, const char[] name);
/** /**
* Returns the operating system's "tick count," which is a number of * Returns the operating system's "tick count," which is a number of
@ -393,7 +380,7 @@ native Address:GameConfGetAddress(Handle:gameconf, const String:name[]);
* *
* @return Tick count in milliseconds. * @return Tick count in milliseconds.
*/ */
native GetSysTickCount(); native int GetSysTickCount();
/** /**
* Specifies that the given config file should be executed after plugin load. * Specifies that the given config file should be executed after plugin load.
@ -406,18 +393,16 @@ native GetSysTickCount();
* @param name Name of the config file, excluding the .cfg extension. * @param name Name of the config file, excluding the .cfg extension.
* If empty, <plugin.filename.cfg> is assumed. * If empty, <plugin.filename.cfg> is assumed.
* @param folder Folder under cfg/ to use. By default this is "sourcemod." * @param folder Folder under cfg/ to use. By default this is "sourcemod."
* @noreturn
*/ */
native AutoExecConfig(bool:autoCreate=true, const String:name[]="", const String:folder[]="sourcemod"); native void AutoExecConfig(bool autoCreate=true, const char[] name="", const char[] folder="sourcemod");
/** /**
* Registers a library name for identifying as a dependency to * Registers a library name for identifying as a dependency to
* other plugins. * other plugins.
* *
* @param name Library name. * @param name Library name.
* @noreturn
*/ */
native RegPluginLibrary(const String:name[]); native void RegPluginLibrary(const char[] name);
/** /**
* Returns whether a library exists. This function should be considered * Returns whether a library exists. This function should be considered
@ -428,7 +413,7 @@ native RegPluginLibrary(const String:name[]);
* @param name Library name of a plugin or extension. * @param name Library name of a plugin or extension.
* @return True if exists, false otherwise. * @return True if exists, false otherwise.
*/ */
native bool:LibraryExists(const String:name[]); native bool LibraryExists(const char[] name);
/** /**
* Returns the status of an extension, by filename. * Returns the status of an extension, by filename.
@ -441,7 +426,7 @@ native bool:LibraryExists(const String:name[]);
* 0 if the extension loaded but reported an error. * 0 if the extension loaded but reported an error.
* 1 if the extension is running without error. * 1 if the extension is running without error.
*/ */
native GetExtensionFileStatus(const String:name[], String:error[]="", maxlength=0); native int GetExtensionFileStatus(const char[] name, char[] error="", int maxlength=0);
/** /**
* Called after a library is added that the current plugin references * Called after a library is added that the current plugin references
@ -450,7 +435,7 @@ native GetExtensionFileStatus(const String:name[], String:error[]="", maxlength=
* *
* @param name Library name. * @param name Library name.
*/ */
forward void OnLibraryAdded(const String:name[]); forward void OnLibraryAdded(const char[] name);
/** /**
* Called right before a library is removed that the current plugin references * Called right before a library is removed that the current plugin references
@ -459,7 +444,7 @@ forward void OnLibraryAdded(const String:name[]);
* *
* @param name Library name. * @param name Library name.
*/ */
forward void OnLibraryRemoved(const String:name[]); forward void OnLibraryRemoved(const char[] name);
#define MAPLIST_FLAG_MAPSFOLDER (1<<0) /**< On failure, use all maps in the maps folder. */ #define MAPLIST_FLAG_MAPSFOLDER (1<<0) /**< On failure, use all maps in the maps folder. */
#define MAPLIST_FLAG_CLEARARRAY (1<<1) /**< If an input array is specified, clear it before adding. */ #define MAPLIST_FLAG_CLEARARRAY (1<<1) /**< If an input array is specified, clear it before adding. */
@ -513,10 +498,10 @@ forward void OnLibraryRemoved(const String:name[]);
* least one item. The serial number is updated to a positive number. * least one item. The serial number is updated to a positive number.
* @error Invalid array Handle that is not INVALID_HANDLE. * @error Invalid array Handle that is not INVALID_HANDLE.
*/ */
native Handle:ReadMapList(Handle:array=INVALID_HANDLE, native Handle ReadMapList(Handle array=INVALID_HANDLE,
&serial=-1, int &serial=-1,
const String:str[]="default", const char[] str="default",
flags=MAPLIST_FLAG_CLEARARRAY); int flags=MAPLIST_FLAG_CLEARARRAY);
/** /**
* Makes a compatibility binding for map lists. For example, if a function previously used * Makes a compatibility binding for map lists. For example, if a function previously used
@ -525,9 +510,8 @@ native Handle:ReadMapList(Handle:array=INVALID_HANDLE,
* *
* @param name Configuration name that would be used with ReadMapList(). * @param name Configuration name that would be used with ReadMapList().
* @param file Default file to use. * @param file Default file to use.
* @noreturn
*/ */
native SetMapListCompatBind(const String:name[], const String:file[]); native void SetMapListCompatBind(const char[] name, const char[] file);
/** /**
* Called when a client has sent chat text. This must return either true or * Called when a client has sent chat text. This must return either true or
@ -539,7 +523,7 @@ native SetMapListCompatBind(const String:name[], const String:file[]);
* @param client Client index. The server (0) will never be passed. * @param client Client index. The server (0) will never be passed.
* @return True if client is spamming the server, false otherwise. * @return True if client is spamming the server, false otherwise.
*/ */
forward bool:OnClientFloodCheck(client); forward bool OnClientFloodCheck(int client);
/** /**
* Called after a client's flood check has been computed. This can be used * Called after a client's flood check has been computed. This can be used
@ -551,9 +535,8 @@ forward bool:OnClientFloodCheck(client);
* *
* @param client Client index. The server (0) will never be passed. * @param client Client index. The server (0) will never be passed.
* @param blocked True if client flooded last "say", false otherwise. * @param blocked True if client flooded last "say", false otherwise.
* @noreturn
*/ */
forward void OnClientFloodResult(client, bool:blocked); forward void OnClientFloodResult(int client, bool blocked);
/** /**
* Feature types. * Feature types.
@ -603,7 +586,7 @@ enum FeatureStatus
* *
* @return True if GetFeatureStatus will work, false otherwise. * @return True if GetFeatureStatus will work, false otherwise.
*/ */
stock bool:CanTestFeatures() stock bool CanTestFeatures()
{ {
return LibraryExists("__CanTestFeatures__"); return LibraryExists("__CanTestFeatures__");
} }
@ -615,7 +598,7 @@ stock bool:CanTestFeatures()
* @param name Feature name. * @param name Feature name.
* @return Feature status. * @return Feature status.
*/ */
native FeatureStatus:GetFeatureStatus(FeatureType:type, const String:name[]); native FeatureStatus GetFeatureStatus(FeatureType type, const char[] name);
/** /**
* Requires that a given feature is available. If it is not, SetFailState() * Requires that a given feature is available. If it is not, SetFailState()
@ -625,10 +608,9 @@ native FeatureStatus:GetFeatureStatus(FeatureType:type, const String:name[]);
* @param name Feature name. * @param name Feature name.
* @param fmt Message format string, or empty to use default. * @param fmt Message format string, or empty to use default.
* @param ... Message format parameters, if any. * @param ... Message format parameters, if any.
* @noreturn
*/ */
native RequireFeature(FeatureType:type, const String:name[], native void RequireFeature(FeatureType type, const char[] name,
const String:fmt[]="", any:...); const char[] fmt="", any ...);
/** /**
* Represents how many bytes we can read from an address with one load * Represents how many bytes we can read from an address with one load
@ -652,7 +634,7 @@ enum Address
* @param size How many bytes should be read. * @param size How many bytes should be read.
* @return The value that is stored at that address. * @return The value that is stored at that address.
*/ */
native LoadFromAddress(Address:addr, NumberType:size); native int LoadFromAddress(Address addr, NumberType size);
/** /**
* Store up to 4 bytes to a memory address. * Store up to 4 bytes to a memory address.
@ -660,11 +642,9 @@ native LoadFromAddress(Address:addr, NumberType:size);
* @param addr Address to a memory location. * @param addr Address to a memory location.
* @param data Value to store at the address. * @param data Value to store at the address.
* @param size How many bytes should be written. * @param size How many bytes should be written.
* @noreturn
*/ */
native StoreToAddress(Address:addr, data, NumberType:size); native void StoreToAddress(Address addr, int data, NumberType size);
#include <helpers> #include <helpers>
#include <entity> #include <entity>
#include <entity_prop_stocks> #include <entity_prop_stocks>

View File

@ -48,7 +48,7 @@
* @param str String to check. * @param str String to check.
* @return Number of valid character bytes in the string. * @return Number of valid character bytes in the string.
*/ */
native strlen(const String:str[]); native int strlen(const char[] str);
/** /**
* Tests whether a string is found inside another string. * Tests whether a string is found inside another string.
@ -60,7 +60,7 @@ native strlen(const String:str[]);
* @return -1 on failure (no match found). Any other value * @return -1 on failure (no match found). Any other value
* indicates a position in the string where the match starts. * indicates a position in the string where the match starts.
*/ */
native StrContains(const String:str[], const String:substr[], bool:caseSensitive=true); native int StrContains(const char[] str, const char[] substr, bool caseSensitive=true);
/** /**
* Compares two strings lexographically. * Compares two strings lexographically.
@ -73,7 +73,7 @@ native StrContains(const String:str[], const String:substr[], bool:caseSensitive
* 0 if str1 == str2 * 0 if str1 == str2
* 1 if str1 > str2 * 1 if str1 > str2
*/ */
native strcmp(const String:str1[], const String:str2[], bool:caseSensitive=true); native int strcmp(const char[] str1, const char[] str2, bool caseSensitive=true);
/** /**
* Compares two strings parts lexographically. * Compares two strings parts lexographically.
@ -87,14 +87,14 @@ native strcmp(const String:str1[], const String:str2[], bool:caseSensitive=true)
* 0 if str1 == str2 * 0 if str1 == str2
* 1 if str1 > str2 * 1 if str1 > str2
*/ */
native strncmp(const String:str1[], const String:str2[], num, bool:caseSensitive=true); native int strncmp(const char[] str1, const char[] str2, int num, bool caseSensitive=true);
/** /**
* Backwards compatible stock - StrCompare is now strcmp * Backwards compatible stock - StrCompare is now strcmp
* @deprecated Renamed to strcmp * @deprecated Renamed to strcmp
*/ */
#pragma deprecated Use strcmp() instead #pragma deprecated Use strcmp() instead
stock StrCompare(const String:str1[], const String:str2[], bool:caseSensitive=true) stock int StrCompare(const char[] str1, const char[] str2, bool caseSensitive=true)
{ {
return strcmp(str1, str2, caseSensitive); return strcmp(str1, str2, caseSensitive);
} }
@ -108,7 +108,7 @@ stock StrCompare(const String:str1[], const String:str2[], bool:caseSensitive=tr
* If false, comparison is case insensitive. * If false, comparison is case insensitive.
* @return True if equal, false otherwise. * @return True if equal, false otherwise.
*/ */
stock bool:StrEqual(const String:str1[], const String:str2[], bool:caseSensitive=true) stock bool StrEqual(const char[] str1, const char[] str2, bool caseSensitive=true)
{ {
return (strcmp(str1, str2, caseSensitive) == 0); return (strcmp(str1, str2, caseSensitive) == 0);
} }
@ -123,14 +123,14 @@ stock bool:StrEqual(const String:str1[], const String:str2[], bool:caseSensitive
* @param source Source string buffer to copy from. * @param source Source string buffer to copy from.
* @return Number of cells written. * @return Number of cells written.
*/ */
native strcopy(String:dest[], destLen, const String:source[]); native int strcopy(char[] dest, int destLen, const char[] source);
/** /**
* Backwards compatibility stock - use strcopy * Backwards compatibility stock - use strcopy
* @deprecated Renamed to strcopy * @deprecated Renamed to strcopy
*/ */
#pragma deprecated Use strcopy() instead #pragma deprecated Use strcopy() instead
stock StrCopy(String:dest[], destLen, const String:source[]) stock int StrCopy(char[] dest, int destLen, const char[] source)
{ {
return strcopy(dest, destLen, source); return strcopy(dest, destLen, source);
} }
@ -144,7 +144,7 @@ stock StrCopy(String:dest[], destLen, const String:source[])
* @param ... Variable number of format parameters. * @param ... Variable number of format parameters.
* @return Number of cells written. * @return Number of cells written.
*/ */
native Format(String:buffer[], maxlength, const String:format[], any:...); native int Format(char[] buffer, int maxlength, const char[] format, any ...);
/** /**
* Formats a string according to the SourceMod format rules (see documentation). * Formats a string according to the SourceMod format rules (see documentation).
@ -158,7 +158,7 @@ native Format(String:buffer[], maxlength, const String:format[], any:...);
* @param ... Variable number of format parameters. * @param ... Variable number of format parameters.
* @return Number of cells written. * @return Number of cells written.
*/ */
native FormatEx(String:buffer[], maxlength, const String:format[], any:...); native int FormatEx(char[] buffer, int maxlength, const char[] format, any ...);
/** /**
* Formats a string according to the SourceMod format rules (see documentation). * Formats a string according to the SourceMod format rules (see documentation).
@ -173,7 +173,7 @@ native FormatEx(String:buffer[], maxlength, const String:format[], any:...);
* Note: Arguments start at 1. * Note: Arguments start at 1.
* @return Number of bytes written. * @return Number of bytes written.
*/ */
native VFormat(String:buffer[], maxlength, const String:format[], varpos); native int VFormat(char[] buffer, int maxlength, const char[] format, int varpos);
/** /**
* Converts a string to an integer. * Converts a string to an integer.
@ -182,7 +182,7 @@ native VFormat(String:buffer[], maxlength, const String:format[], varpos);
* @param nBase Numerical base to use. 10 is default. * @param nBase Numerical base to use. 10 is default.
* @return Integer conversion of string, or 0 on failure. * @return Integer conversion of string, or 0 on failure.
*/ */
native StringToInt(const String:str[], nBase=10); native int StringToInt(const char[] str, int nBase=10);
/** /**
* Converts a string to an integer with some more options. * Converts a string to an integer with some more options.
@ -192,7 +192,7 @@ native StringToInt(const String:str[], nBase=10);
* @param nBase Numerical base to use. 10 is default. * @param nBase Numerical base to use. 10 is default.
* @return Number of characters consumed. * @return Number of characters consumed.
*/ */
native StringToIntEx(const String:str[], &result, nBase=10); native int StringToIntEx(const char[] str, int &result, int nBase=10);
/** /**
* Converts an integer to a string. * Converts an integer to a string.
@ -202,7 +202,7 @@ native StringToIntEx(const String:str[], &result, nBase=10);
* @param maxlength Maximum length of string buffer. * @param maxlength Maximum length of string buffer.
* @return Number of cells written to buffer. * @return Number of cells written to buffer.
*/ */
native IntToString(num, String:str[], maxlength); native int IntToString(int num, char[] str, int maxlength);
/** /**
* Converts a string to a floating point number. * Converts a string to a floating point number.
@ -210,7 +210,7 @@ native IntToString(num, String:str[], maxlength);
* @param str String to convert to a float. * @param str String to convert to a float.
* @return Floating point result, or 0.0 on error. * @return Floating point result, or 0.0 on error.
*/ */
native Float:StringToFloat(const String:str[]); native float StringToFloat(const char[] str);
/** /**
* Converts a string to a floating point number with some more options. * Converts a string to a floating point number with some more options.
@ -219,7 +219,7 @@ native Float:StringToFloat(const String:str[]);
* @param result Variable to store result in. * @param result Variable to store result in.
* @return Number of characters consumed. * @return Number of characters consumed.
*/ */
native StringToFloatEx(const String:str[], &Float:result); native int StringToFloatEx(const char[] str, float &result);
/** /**
* Converts a floating point number to a string. * Converts a floating point number to a string.
@ -229,7 +229,7 @@ native StringToFloatEx(const String:str[], &Float:result);
* @param maxlength Maximum length of string buffer. * @param maxlength Maximum length of string buffer.
* @return Number of cells written to buffer. * @return Number of cells written to buffer.
*/ */
native FloatToString(Float:num, String:str[], maxlength); native int FloatToString(float num, char[] str, int maxlength);
/** /**
* Finds the first "argument" in a string; either a set of space * Finds the first "argument" in a string; either a set of space
@ -243,14 +243,14 @@ native FloatToString(Float:num, String:str[], maxlength);
* @param argLen Maximum length of argument buffer. * @param argLen Maximum length of argument buffer.
* @return Index to next piece of string, or -1 if none. * @return Index to next piece of string, or -1 if none.
*/ */
native BreakString(const String:source[], String:arg[], argLen); native int BreakString(const char[] source, char[] arg, int argLen);
/** /**
* Backwards compatibility stock - use BreakString * Backwards compatibility stock - use BreakString
* @deprecated Renamed to BreakString. * @deprecated Renamed to BreakString.
*/ */
#pragma deprecated Use BreakString() instead #pragma deprecated Use BreakString() instead
stock StrBreak(const String:source[], String:arg[], argLen) stock int StrBreak(const char[] source, char[] arg, int argLen)
{ {
return BreakString(source, arg, argLen); return BreakString(source, arg, argLen);
} }
@ -261,7 +261,7 @@ stock StrBreak(const String:source[], String:arg[], argLen)
* @param str The string to trim. * @param str The string to trim.
* @return Number of bytes written (UTF-8 safe). * @return Number of bytes written (UTF-8 safe).
*/ */
native TrimString(String:str[]); native int TrimString(char[] str);
/** /**
* Returns text in a string up until a certain character sequence is reached. * Returns text in a string up until a certain character sequence is reached.
@ -274,7 +274,7 @@ native TrimString(String:str[]);
* marking the first index after the searched text. The * marking the first index after the searched text. The
* index is always relative to the start of the input string. * index is always relative to the start of the input string.
*/ */
native SplitString(const String:source[], const String:split[], String:part[], partLen); native int SplitString(const char[] source, const char[] split, char[] part, int partLen);
/** /**
* Given a string, replaces all occurrences of a search string with a * Given a string, replaces all occurrences of a search string with a
@ -287,7 +287,7 @@ native SplitString(const String:source[], const String:split[], String:part[], p
* @param caseSensitive If true (default), search is case sensitive. * @param caseSensitive If true (default), search is case sensitive.
* @return Number of replacements that were performed. * @return Number of replacements that were performed.
*/ */
native ReplaceString(String:text[], maxlength, const String:search[], const String:replace[], bool:caseSensitive=true); native int ReplaceString(char[] text, int maxlength, const char[] search, const char[] replace, bool caseSensitive=true);
/** /**
* Given a string, replaces the first occurrence of a search string with a * Given a string, replaces the first occurrence of a search string with a
@ -306,7 +306,7 @@ native ReplaceString(String:text[], maxlength, const String:search[], const Stri
* the last replacement ended, or -1 if no replacements were * the last replacement ended, or -1 if no replacements were
* made. * made.
*/ */
native ReplaceStringEx(String:text[], maxlength, const String:search[], const String:replace[], searchLen=-1, replaceLen=-1, bool:caseSensitive=true); native int ReplaceStringEx(char[] text, int maxlength, const char[] search, const char[] replace, int searchLen=-1, int replaceLen=-1, bool caseSensitive=true);
/** /**
* Returns the number of bytes a character is using. This is * Returns the number of bytes a character is using. This is
@ -316,7 +316,7 @@ native ReplaceStringEx(String:text[], maxlength, const String:search[], const St
* @param source Source input string. * @param source Source input string.
* @return Number of bytes the current character uses. * @return Number of bytes the current character uses.
*/ */
native GetCharBytes(const String:source[]); native int GetCharBytes(const char[] source);
/** /**
* Returns whether a character is an ASCII alphabet character. * Returns whether a character is an ASCII alphabet character.
@ -326,7 +326,7 @@ native GetCharBytes(const String:source[]);
* @param chr Character to test. * @param chr Character to test.
* @return True if character is alphabetical, otherwise false. * @return True if character is alphabetical, otherwise false.
*/ */
native bool:IsCharAlpha(chr); native bool IsCharAlpha(int chr);
/** /**
* Returns whether a character is numeric. * Returns whether a character is numeric.
@ -336,7 +336,7 @@ native bool:IsCharAlpha(chr);
* @param chr Character to test. * @param chr Character to test.
* @return True if character is numeric, otherwise false. * @return True if character is numeric, otherwise false.
*/ */
native bool:IsCharNumeric(chr); native bool IsCharNumeric(int chr);
/** /**
* Returns whether a character is whitespace. * Returns whether a character is whitespace.
@ -346,7 +346,7 @@ native bool:IsCharNumeric(chr);
* @param chr Character to test. * @param chr Character to test.
* @return True if character is whitespace, otherwise false. * @return True if character is whitespace, otherwise false.
*/ */
native bool:IsCharSpace(chr); native bool IsCharSpace(int chr);
/** /**
* Returns if a character is multi-byte or not. * Returns if a character is multi-byte or not.
@ -355,7 +355,7 @@ native bool:IsCharSpace(chr);
* @return 0 for a normal 7-bit ASCII character, * @return 0 for a normal 7-bit ASCII character,
* otherwise number of bytes in multi-byte character. * otherwise number of bytes in multi-byte character.
*/ */
native IsCharMB(chr); native int IsCharMB(int chr);
/** /**
* Returns whether an alphabetic character is uppercase. * Returns whether an alphabetic character is uppercase.
@ -365,7 +365,7 @@ native IsCharMB(chr);
* @param chr Character to test. * @param chr Character to test.
* @return True if character is uppercase, otherwise false. * @return True if character is uppercase, otherwise false.
*/ */
native bool:IsCharUpper(chr); native bool IsCharUpper(int chr);
/** /**
* Returns whether an alphabetic character is lowercase. * Returns whether an alphabetic character is lowercase.
@ -375,7 +375,7 @@ native bool:IsCharUpper(chr);
* @param chr Character to test. * @param chr Character to test.
* @return True if character is lowercase, otherwise false. * @return True if character is lowercase, otherwise false.
*/ */
native bool:IsCharLower(chr); native bool IsCharLower(int chr);
/** /**
* Strips a quote pair off a string if it exists. That is, the following * Strips a quote pair off a string if it exists. That is, the following
@ -389,7 +389,7 @@ native bool:IsCharLower(chr);
* @return True if string was modified, false if there was no * @return True if string was modified, false if there was no
* set of quotes. * set of quotes.
*/ */
native bool:StripQuotes(String:text[]); native bool StripQuotes(char[] text);
/** /**
* Returns an uppercase character to a lowercase character. * Returns an uppercase character to a lowercase character.
@ -398,7 +398,7 @@ native bool:StripQuotes(String:text[]);
* @return Lowercase character on success, * @return Lowercase character on success,
* no change on failure. * no change on failure.
*/ */
stock CharToUpper(chr) stock int CharToUpper(int chr)
{ {
if (IsCharLower(chr)) if (IsCharLower(chr))
{ {
@ -414,7 +414,7 @@ stock CharToUpper(chr)
* @return Uppercase character on success, * @return Uppercase character on success,
* no change on failure. * no change on failure.
*/ */
stock CharToLower(chr) stock int CharToLower(int chr)
{ {
if (IsCharUpper(chr)) if (IsCharUpper(chr))
{ {
@ -460,9 +460,9 @@ stock int FindCharInString(const char[] str, char c, bool reverse = false)
* @param source Source string to concatenate. * @param source Source string to concatenate.
* @return Number of bytes written. * @return Number of bytes written.
*/ */
stock StrCat(String:buffer[], maxlength, const String:source[]) stock int StrCat(char[] buffer, int maxlength, const char[] source)
{ {
new len = strlen(buffer); int len = strlen(buffer);
if (len >= maxlength) if (len >= maxlength)
{ {
return 0; return 0;
@ -483,10 +483,10 @@ stock StrCat(String:buffer[], maxlength, const String:source[])
* delimiters after last piece. * delimiters after last piece.
* @return Number of strings retrieved. * @return Number of strings retrieved.
*/ */
stock ExplodeString(const String:text[], const String:split[], String:buffers[][], maxStrings, stock int ExplodeString(const char[] text, const char[] split, char[][] buffers, int maxStrings,
maxStringLength, bool:copyRemainder = false) int maxStringLength, bool copyRemainder = false)
{ {
new reloc_idx, idx, total; int reloc_idx, idx, total;
if (maxStrings < 1 || !split[0]) if (maxStrings < 1 || !split[0])
{ {
@ -522,11 +522,11 @@ stock ExplodeString(const String:text[], const String:split[], String:buffers[][
* @param maxLength Maximum length of the output buffer. * @param maxLength Maximum length of the output buffer.
* @return Number of bytes written to the output buffer. * @return Number of bytes written to the output buffer.
*/ */
stock ImplodeStrings(const String:strings[][], numStrings, const String:join[], String:buffer[], maxLength) stock int ImplodeStrings(const char[][] strings, int numStrings, const char[] join, char[] buffer, int maxLength)
{ {
new total, length, part_length; int total, length, part_length;
new join_length = strlen(join); int join_length = strlen(join);
for (new i=0; i<numStrings; i++) for (int i=0; i<numStrings; i++)
{ {
length = strcopy(buffer[total], maxLength-total, strings[i]); length = strcopy(buffer[total], maxLength-total, strings[i]);
total += length; total += length;

View File

@ -213,7 +213,7 @@ native bool SMC_GetErrorString(SMCError error, char[] buffer, int buf_max);
* @param func SMC_ParseStart function. * @param func SMC_ParseStart function.
* @error Invalid or corrupt Handle. * @error Invalid or corrupt Handle.
*/ */
native SMC_SetParseStart(Handle smc, SMC_ParseStart func); native void SMC_SetParseStart(Handle smc, SMC_ParseStart func);
/** /**
* Sets the SMC_ParseEnd of a parse handle. * Sets the SMC_ParseEnd of a parse handle.
@ -222,7 +222,7 @@ native SMC_SetParseStart(Handle smc, SMC_ParseStart func);
* @param func SMC_ParseEnd function. * @param func SMC_ParseEnd function.
* @error Invalid or corrupt Handle. * @error Invalid or corrupt Handle.
*/ */
native SMC_SetParseEnd(Handle smc, SMC_ParseEnd func); native void SMC_SetParseEnd(Handle smc, SMC_ParseEnd func);
/** /**
* Sets the three main reader functions. * Sets the three main reader functions.

View File

@ -198,25 +198,25 @@ enum TFCond
TFCond_NoTaunting, TFCond_NoTaunting,
}; };
const Float:TFCondDuration_Infinite = -1.0; const float TFCondDuration_Infinite = -1.0;
enum TFHoliday enum TFHoliday
{ {
TFHoliday_Invalid = -1 TFHoliday_Invalid = -1
}; };
public const TFHoliday:TFHoliday_Birthday; public const TFHoliday TFHoliday_Birthday;
public const TFHoliday:TFHoliday_Halloween; public const TFHoliday TFHoliday_Halloween;
public const TFHoliday:TFHoliday_Christmas; public const TFHoliday TFHoliday_Christmas;
public const TFHoliday:TFHoliday_EndOfTheLine; public const TFHoliday TFHoliday_EndOfTheLine;
public const TFHoliday:TFHoliday_CommunityUpdate; public const TFHoliday TFHoliday_CommunityUpdate;
public const TFHoliday:TFHoliday_ValentinesDay; public const TFHoliday TFHoliday_ValentinesDay;
public const TFHoliday:TFHoliday_MeetThePyro; public const TFHoliday TFHoliday_MeetThePyro;
public const TFHoliday:TFHoliday_SpyVsEngyWar; public const TFHoliday TFHoliday_SpyVsEngyWar;
public const TFHoliday:TFHoliday_FullMoon; public const TFHoliday TFHoliday_FullMoon;
public const TFHoliday:TFHoliday_HalloweenOrFullMoon; public const TFHoliday TFHoliday_HalloweenOrFullMoon;
public const TFHoliday:TFHoliday_HalloweenOrFullMoonOrValentines; public const TFHoliday TFHoliday_HalloweenOrFullMoonOrValentines;
public const TFHoliday:TFHoliday_AprilFools; public const TFHoliday TFHoliday_AprilFools;
enum TFObjectType enum TFObjectType
{ {
@ -239,28 +239,25 @@ enum TFObjectMode
* *
* @param client Player's index. * @param client Player's index.
* @param attacker Attacker's index. * @param attacker Attacker's index.
* @noreturn
* @error Invalid client index, client not in game, or no mod support. * @error Invalid client index, client not in game, or no mod support.
*/ */
native TF2_IgnitePlayer(client, attacker); native void TF2_IgnitePlayer(int client, int attacker);
/** /**
* Respawns a client * Respawns a client
* *
* @param client Player's index. * @param client Player's index.
* @noreturn
* @error Invalid client index, client not in game, or no mod support. * @error Invalid client index, client not in game, or no mod support.
*/ */
native TF2_RespawnPlayer(client); native void TF2_RespawnPlayer(int client);
/** /**
* Regenerates a client's health and ammunition * Regenerates a client's health and ammunition
* *
* @param client Player's index. * @param client Player's index.
* @noreturn
* @error Invalid client index, client not in game, or no mod support. * @error Invalid client index, client not in game, or no mod support.
*/ */
native TF2_RegeneratePlayer(client); native void TF2_RegeneratePlayer(int client);
/** /**
* Adds a condition to a player * Adds a condition to a player
@ -270,30 +267,27 @@ native TF2_RegeneratePlayer(client);
* @param duration Duration of condition (does not apply to all conditions). * @param duration Duration of condition (does not apply to all conditions).
* Pass TFCondDuration_Infinite to apply until manually removed. * Pass TFCondDuration_Infinite to apply until manually removed.
* @param inflictor Condition inflictor's index (0 for no inflictor). * @param inflictor Condition inflictor's index (0 for no inflictor).
* @noreturn
* @error Invalid client index, client not in game, or no mod support. * @error Invalid client index, client not in game, or no mod support.
*/ */
native TF2_AddCondition(client, TFCond:condition, Float:duration=TFCondDuration_Infinite, inflictor=0); native void TF2_AddCondition(int client, TFCond condition, float duration=TFCondDuration_Infinite, int inflictor=0);
/** /**
* Removes a condition from a player * Removes a condition from a player
* *
* @param client Player's index. * @param client Player's index.
* @param condition Integer identifier of condition to remove. * @param condition Integer identifier of condition to remove.
* @noreturn
* @error Invalid client index, client not in game, or no mod support. * @error Invalid client index, client not in game, or no mod support.
*/ */
native TF2_RemoveCondition(client, TFCond:condition); native void TF2_RemoveCondition(int client, TFCond condition);
/** /**
* Enables/disables PowerPlay mode on a player. * Enables/disables PowerPlay mode on a player.
* *
* @param client Player's index. * @param client Player's index.
* @param enabled Whether to enable or disable PowerPlay on player. * @param enabled Whether to enable or disable PowerPlay on player.
* @noreturn
* @error Invalid client index, client not in game, or no mod support. * @error Invalid client index, client not in game, or no mod support.
*/ */
native TF2_SetPlayerPowerPlay(client, bool:enabled); native void TF2_SetPlayerPowerPlay(int client, bool enabled);
/** /**
* Disguises a client to the given model and team. Only has an effect on spies. * Disguises a client to the given model and team. Only has an effect on spies.
@ -304,19 +298,17 @@ native TF2_SetPlayerPowerPlay(client, bool:enabled);
* @param team Team to disguise the player as (only TFTeam_Red and TFTeam_Blue have an effect) * @param team Team to disguise the player as (only TFTeam_Red and TFTeam_Blue have an effect)
* @param classType TFClassType class to disguise the player as * @param classType TFClassType class to disguise the player as
* @param target Specific target player to disguise as (0 for any) * @param target Specific target player to disguise as (0 for any)
* @noreturn
* @error Invalid client index, client not in game, or no mod support. * @error Invalid client index, client not in game, or no mod support.
*/ */
native TF2_DisguisePlayer(client, TFTeam:team, TFClassType:classType, target=0); native void TF2_DisguisePlayer(int client, TFTeam team, TFClassType classType, int target=0);
/** /**
* Removes the current disguise from a client. Only has an effect on spies. * Removes the current disguise from a client. Only has an effect on spies.
* *
* @param client Player's index. * @param client Player's index.
* @noreturn
* @error Invalid client index, client not in game, or no mod support. * @error Invalid client index, client not in game, or no mod support.
*/ */
native TF2_RemovePlayerDisguise(client); native void TF2_RemovePlayerDisguise(int client);
/** /**
* Stuns a client * Stuns a client
@ -327,9 +319,8 @@ native TF2_RemovePlayerDisguise(client);
* Ignored if TF_STUNFLAG_SLOWDOWN is not set. * Ignored if TF_STUNFLAG_SLOWDOWN is not set.
* @param stunflags Stun flags. * @param stunflags Stun flags.
* @param attacker Attacker's index (0 is allowed for world). * @param attacker Attacker's index (0 is allowed for world).
* @noreturn
*/ */
native TF2_StunPlayer(client, Float:duration, Float:slowdown=0.0, stunflags, attacker=0); native void TF2_StunPlayer(int client, float duration, float slowdown=0.0, int stunflags, int attacker=0);
/** /**
* Induces the bleed effect on a client * Induces the bleed effect on a client
@ -337,9 +328,8 @@ native TF2_StunPlayer(client, Float:duration, Float:slowdown=0.0, stunflags, att
* @param client Player's index. * @param client Player's index.
* @param attacker Attacker's index. * @param attacker Attacker's index.
* @param duration Duration of bleeding (in seconds). * @param duration Duration of bleeding (in seconds).
* @noreturn
*/ */
native TF2_MakeBleed(client, attacker, Float:duration); native void TF2_MakeBleed(int client, int attacker, float duration);
/** /**
* Retrieves the entity index of the CPlayerResource entity * Retrieves the entity index of the CPlayerResource entity
@ -347,7 +337,7 @@ native TF2_MakeBleed(client, attacker, Float:duration);
* @return The current resource entity index. * @return The current resource entity index.
*/ */
#pragma deprecated Use GetPlayerResourceEntity instead #pragma deprecated Use GetPlayerResourceEntity instead
native TF2_GetResourceEntity(); native int TF2_GetResourceEntity();
/** /**
* Finds the TFClassType for a given class name. * Finds the TFClassType for a given class name.
@ -355,7 +345,7 @@ native TF2_GetResourceEntity();
* @param classname A classname string such as "sniper" or "demoman" * @param classname A classname string such as "sniper" or "demoman"
* @return A TFClassType constant. * @return A TFClassType constant.
*/ */
native TFClassType:TF2_GetClass(const String:classname[]); native TFClassType TF2_GetClass(const char[] classname);
/** /**
* Called on weapon fire to decide if the current shot should be critical. * Called on weapon fire to decide if the current shot should be critical.
@ -372,13 +362,13 @@ native TFClassType:TF2_GetClass(const String:classname[]);
* @param weaponname Classname of the weapon. * @param weaponname Classname of the weapon.
* @param result Buffer param for the result of the decision. * @param result Buffer param for the result of the decision.
*/ */
forward Action:TF2_CalcIsAttackCritical(client, weapon, String:weaponname[], &bool:result); forward Action TF2_CalcIsAttackCritical(int client, int weapon, char[] weaponname, bool &result);
/** /**
* @deprecated No longer called. Use TF2_OnIsHolidayActive. * @deprecated No longer called. Use TF2_OnIsHolidayActive.
*/ */
#pragma deprecated No longer called. Use TF2_OnIsHolidayActive. #pragma deprecated No longer called. Use TF2_OnIsHolidayActive.
forward Action:TF2_OnGetHoliday(&TFHoliday:holiday); forward Action TF2_OnGetHoliday(TFHoliday &holiday);
/** /**
* Called at various times when the game checks to see if the given holiday is active. * Called at various times when the game checks to see if the given holiday is active.
@ -389,7 +379,7 @@ forward Action:TF2_OnGetHoliday(&TFHoliday:holiday);
* @param result Buffer param for the result of the decision. * @param result Buffer param for the result of the decision.
* @return Plugin_Continue for original calculation, higher value to use 'result'. * @return Plugin_Continue for original calculation, higher value to use 'result'.
*/ */
forward Action:TF2_OnIsHolidayActive(TFHoliday:holiday, &bool:result); forward Action TF2_OnIsHolidayActive(TFHoliday holiday, bool &result);
/** /**
* Returns whether or not a holiday is active * Returns whether or not a holiday is active
@ -397,7 +387,7 @@ forward Action:TF2_OnIsHolidayActive(TFHoliday:holiday, &bool:result);
* @param holiday Holiday being checked. * @param holiday Holiday being checked.
* @return Boolean of whether or not the holiday is active. * @return Boolean of whether or not the holiday is active.
*/ */
native bool:TF2_IsHolidayActive(TFHoliday:holiday); native bool TF2_IsHolidayActive(TFHoliday holiday);
/** /**
* Returns whether or not a client (Player) is in a duel. * Returns whether or not a client (Player) is in a duel.
@ -405,7 +395,7 @@ native bool:TF2_IsHolidayActive(TFHoliday:holiday);
* @param client Client Index. * @param client Client Index.
* @return Boolean of whether or not the client/player is dueling. * @return Boolean of whether or not the client/player is dueling.
*/ */
native bool:TF2_IsPlayerInDuel(client); native bool TF2_IsPlayerInDuel(int client);
/** /**
* Removes an econ wearable (hat, misc, etc) from a player. * Removes an econ wearable (hat, misc, etc) from a player.
@ -413,10 +403,9 @@ native bool:TF2_IsPlayerInDuel(client);
* *
* @param client Client index. * @param client Client index.
* @param wearable Index of the wearable entity. * @param wearable Index of the wearable entity.
* @noreturn
* @error Invalid client index, client not in game, invalid wearable entity, or no mod support. * @error Invalid client index, client not in game, invalid wearable entity, or no mod support.
*/ */
native TF2_RemoveWearable(client, wearable); native void TF2_RemoveWearable(int client, int wearable);
/** /**
* Called after a condition is added to a player * Called after a condition is added to a player
@ -424,7 +413,7 @@ native TF2_RemoveWearable(client, wearable);
* @param client Index of the client to which the condition is being added. * @param client Index of the client to which the condition is being added.
* @param condition Condition that is being added. * @param condition Condition that is being added.
*/ */
forward void TF2_OnConditionAdded(client, TFCond:condition); forward void TF2_OnConditionAdded(int client, TFCond condition);
/** /**
* Called after a condition is removed from a player * Called after a condition is removed from a player
@ -432,7 +421,7 @@ forward void TF2_OnConditionAdded(client, TFCond:condition);
* @param client Index of the client to which the condition is being removed. * @param client Index of the client to which the condition is being removed.
* @param condition Condition that is being removed. * @param condition Condition that is being removed.
*/ */
forward void TF2_OnConditionRemoved(client, TFCond:condition); forward void TF2_OnConditionRemoved(int client, TFCond condition);
/** /**
* Called when the server enters the Waiting for Players round state * Called when the server enters the Waiting for Players round state
@ -455,12 +444,12 @@ forward void TF2_OnWaitingForPlayersEnd();
* This is prepopulated with the game's original decision to let a player teleport. * This is prepopulated with the game's original decision to let a player teleport.
* @return Plugin_Continue for original calculation, higher value to use 'result'. * @return Plugin_Continue for original calculation, higher value to use 'result'.
*/ */
forward Action:TF2_OnPlayerTeleport(client, teleporter, &bool:result); forward Action TF2_OnPlayerTeleport(int client, int teleporter, bool &result);
/** /**
* Do not edit below this line! * Do not edit below this line!
*/ */
public Extension:__ext_tf2 = public Extension __ext_tf2 =
{ {
name = "TF2 Tools", name = "TF2 Tools",
file = "game.tf2.ext", file = "game.tf2.ext",
@ -473,7 +462,7 @@ public Extension:__ext_tf2 =
}; };
#if !defined REQUIRE_EXTENSIONS #if !defined REQUIRE_EXTENSIONS
public __ext_tf2_SetNTVOptional() public void __ext_tf2_SetNTVOptional()
{ {
MarkNativeAsOptional("TF2_IgnitePlayer"); MarkNativeAsOptional("TF2_IgnitePlayer");
MarkNativeAsOptional("TF2_RespawnPlayer"); MarkNativeAsOptional("TF2_RespawnPlayer");

View File

@ -314,7 +314,7 @@ enum TFResourceType
TFResource_PlayerClass TFResource_PlayerClass
}; };
static const String:TFResourceNames[TFResourceType][] = static const char TFResourceNames[TFResourceType][] =
{ {
"m_iPing", "m_iPing",
"m_iScore", "m_iScore",
@ -343,9 +343,9 @@ static const String:TFResourceNames[TFResourceType][] =
* @return Current TFTeam of client. * @return Current TFTeam of client.
* @error Invalid client index. * @error Invalid client index.
*/ */
stock TFTeam:TF2_GetClientTeam(client) stock TFTeam TF2_GetClientTeam(int client)
{ {
return TFTeam:GetClientTeam(client); return view_as<TFTeam>(GetClientTeam(client));
} }
/** /**
@ -353,12 +353,11 @@ stock TFTeam:TF2_GetClientTeam(client)
* *
* @param client Client index. * @param client Client index.
* @param team TFTeam team symbol. * @param team TFTeam team symbol.
* @noreturn
* @error Invalid client index. * @error Invalid client index.
*/ */
stock TF2_ChangeClientTeam(client, TFTeam:team) stock void TF2_ChangeClientTeam(int client, TFTeam team)
{ {
ChangeClientTeam(client, _:team); ChangeClientTeam(client, view_as<int>(team));
} }
/** /**
@ -368,9 +367,9 @@ stock TF2_ChangeClientTeam(client, TFTeam:team)
* @return Current TFClassType of player. * @return Current TFClassType of player.
* @error Invalid client index. * @error Invalid client index.
*/ */
stock TFClassType:TF2_GetPlayerClass(client) stock TFClassType TF2_GetPlayerClass(int client)
{ {
return TFClassType:GetEntProp(client, Prop_Send, "m_iClass"); return view_as<TFClassType>(GetEntProp(client, Prop_Send, "m_iClass"));
} }
/** /**
@ -382,16 +381,15 @@ stock TFClassType:TF2_GetPlayerClass(client)
* @param classType TFClassType class symbol. * @param classType TFClassType class symbol.
* @param weapons This parameter is ignored. * @param weapons This parameter is ignored.
* @param persistent If true, changes the player's desired class so the change stays after death. * @param persistent If true, changes the player's desired class so the change stays after death.
* @noreturn
* @error Invalid client index. * @error Invalid client index.
*/ */
stock TF2_SetPlayerClass(client, TFClassType:classType, bool:weapons=true, bool:persistent=true) stock void TF2_SetPlayerClass(int client, TFClassType classType, bool weapons=true, bool persistent=true)
{ {
SetEntProp(client, Prop_Send, "m_iClass", _:classType); SetEntProp(client, Prop_Send, "m_iClass", view_as<int>(classType));
if (persistent) if (persistent)
{ {
SetEntProp(client, Prop_Send, "m_iDesiredPlayerClass", _:classType); SetEntProp(client, Prop_Send, "m_iDesiredPlayerClass", view_as<int>(classType));
} }
} }
@ -404,21 +402,21 @@ stock TF2_SetPlayerClass(client, TFClassType:classType, bool:weapons=true, bool:
* @error Invalid client index, client not in game or failed to find resource entity. * @error Invalid client index, client not in game or failed to find resource entity.
*/ */
#pragma deprecated Use GetPlayerResourceEntity and GetEntProp instead #pragma deprecated Use GetPlayerResourceEntity and GetEntProp instead
stock TF2_GetPlayerResourceData(client, TFResourceType:type) stock int TF2_GetPlayerResourceData(int client, TFResourceType type)
{ {
if (!IsClientConnected(client)) if (!IsClientConnected(client))
{ {
return -1; return -1;
} }
new offset = FindSendPropInfo("CTFPlayerResource", TFResourceNames[type]); int offset = FindSendPropInfo("CTFPlayerResource", TFResourceNames[type]);
if (offset < 1) if (offset < 1)
{ {
return -1; return -1;
} }
new entity = TF2_GetResourceEntity(); int entity = TF2_GetResourceEntity();
if (entity == -1) if (entity == -1)
{ {
@ -440,21 +438,21 @@ stock TF2_GetPlayerResourceData(client, TFResourceType:type)
* @error Invalid client index, client not in game or failed to find resource entity. * @error Invalid client index, client not in game or failed to find resource entity.
*/ */
#pragma deprecated Use GetPlayerResourceEntity and SetEntProp instead #pragma deprecated Use GetPlayerResourceEntity and SetEntProp instead
stock bool:TF2_SetPlayerResourceData(client, TFResourceType:type, any:value) stock bool TF2_SetPlayerResourceData(int client, TFResourceType type, any value)
{ {
if (!IsClientConnected(client)) if (!IsClientConnected(client))
{ {
return false; return false;
} }
new offset = FindSendPropInfo("CTFPlayerResource", TFResourceNames[type]); int offset = FindSendPropInfo("CTFPlayerResource", TFResourceNames[type]);
if (offset < 1) if (offset < 1)
{ {
return false; return false;
} }
new entity = TF2_GetResourceEntity(); int entity = TF2_GetResourceEntity();
if (entity == -1) if (entity == -1)
{ {
@ -471,17 +469,16 @@ stock bool:TF2_SetPlayerResourceData(client, TFResourceType:type, any:value)
* *
* @param client Player's index. * @param client Player's index.
* @param slot Slot index (0-5) * @param slot Slot index (0-5)
* @noreturn
* @error Invalid client, invalid slot or lack of mod support * @error Invalid client, invalid slot or lack of mod support
*/ */
stock TF2_RemoveWeaponSlot(client, slot) stock void TF2_RemoveWeaponSlot(int client, int slot)
{ {
new weaponIndex; int weaponIndex;
while ((weaponIndex = GetPlayerWeaponSlot(client, slot)) != -1) while ((weaponIndex = GetPlayerWeaponSlot(client, slot)) != -1)
{ {
// bug #6206 // bug #6206
// papering over a valve bug where a weapon's extra wearables aren't properly removed from the weapon's owner // papering over a valve bug where a weapon's extra wearables aren't properly removed from the weapon's owner
new extraWearable = GetEntPropEnt(weaponIndex, Prop_Send, "m_hExtraWearable"); int extraWearable = GetEntPropEnt(weaponIndex, Prop_Send, "m_hExtraWearable");
if (extraWearable != -1) if (extraWearable != -1)
{ {
TF2_RemoveWearable(client, extraWearable); TF2_RemoveWearable(client, extraWearable);
@ -502,11 +499,10 @@ stock TF2_RemoveWeaponSlot(client, slot)
* Removes all weapons from a client * Removes all weapons from a client
* *
* @param client Player's index. * @param client Player's index.
* @noreturn
*/ */
stock TF2_RemoveAllWeapons(client) stock void TF2_RemoveAllWeapons(int client)
{ {
for (new i = 0; i <= 5; i++) for (int i = 0; i <= 5; i++)
{ {
TF2_RemoveWeaponSlot(client, i); TF2_RemoveWeaponSlot(client, i);
} }
@ -519,7 +515,7 @@ stock TF2_RemoveAllWeapons(client)
* @return Player's condition bits * @return Player's condition bits
*/ */
#pragma deprecated Use TF2_IsPlayerInCondition instead. #pragma deprecated Use TF2_IsPlayerInCondition instead.
stock TF2_GetPlayerConditionFlags(client) stock int TF2_GetPlayerConditionFlags(int client)
{ {
return GetEntProp(client, Prop_Send, "m_nPlayerCond")|GetEntProp(client, Prop_Send, "_condition_bits"); return GetEntProp(client, Prop_Send, "m_nPlayerCond")|GetEntProp(client, Prop_Send, "_condition_bits");
} }
@ -531,12 +527,12 @@ stock TF2_GetPlayerConditionFlags(client)
* @param cond TFCond constant * @param cond TFCond constant
* @return True if set, false otherwise * @return True if set, false otherwise
*/ */
stock bool:TF2_IsPlayerInCondition(client, TFCond:cond) stock bool TF2_IsPlayerInCondition(int client, TFCond cond)
{ {
// Conditions are stored across two netprops now, one for each 32-bit segment. // Conditions are stored across two netprops now, one for each 32-bit segment.
if (_:cond < 32) if (view_as<int>(cond) < 32)
{ {
new bit = 1 << _:cond; int bit = 1 << view_as<int>(cond);
if ((GetEntProp(client, Prop_Send, "m_nPlayerCond") & bit) == bit) if ((GetEntProp(client, Prop_Send, "m_nPlayerCond") & bit) == bit)
{ {
return true; return true;
@ -547,17 +543,17 @@ stock bool:TF2_IsPlayerInCondition(client, TFCond:cond)
return true; return true;
} }
} }
else if (_:cond < 64) else if (view_as<int>(cond) < 64)
{ {
new bit = (1 << (_:cond - 32)); int bit = (1 << (view_as<int>(cond) - 32));
if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx") & bit) == bit) if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx") & bit) == bit)
{ {
return true; return true;
} }
} }
else if (_:cond < 96) else if (view_as<int>(cond) < 96)
{ {
new bit = (1 << (_:cond - 64)); int bit = (1 << (view_as<int>(cond) - 64));
if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx2") & bit) == bit) if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx2") & bit) == bit)
{ {
return true; return true;
@ -565,7 +561,7 @@ stock bool:TF2_IsPlayerInCondition(client, TFCond:cond)
} }
else else
{ {
new bit = (1 << (_:cond - 96)); int bit = (1 << (view_as<int>(cond) - 96));
if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx3") & bit) == bit) if ((GetEntProp(client, Prop_Send, "m_nPlayerCondEx3") & bit) == bit)
{ {
return true; return true;
@ -582,16 +578,16 @@ stock bool:TF2_IsPlayerInCondition(client, TFCond:cond)
* @return Current TFObjectType of entity. * @return Current TFObjectType of entity.
* @error Invalid entity index. * @error Invalid entity index.
*/ */
stock TFObjectType:TF2_GetObjectType(entity) stock TFObjectType TF2_GetObjectType(int entity)
{ {
new offset = GetEntSendPropOffs(entity, "m_iObjectType"); int offset = GetEntSendPropOffs(entity, "m_iObjectType");
if (offset <= 0) if (offset <= 0)
{ {
ThrowError("Entity index %d is not an object", entity); ThrowError("Entity index %d is not an object", entity);
} }
return TFObjectType:GetEntData(entity, offset); return view_as<TFObjectType>(GetEntData(entity, offset));
} }
/** /**
@ -601,14 +597,14 @@ stock TFObjectType:TF2_GetObjectType(entity)
* @return Current TFObjectMode of entity. * @return Current TFObjectMode of entity.
* @error Invalid entity index. * @error Invalid entity index.
*/ */
stock TFObjectMode:TF2_GetObjectMode(entity) stock TFObjectMode TF2_GetObjectMode(int entity)
{ {
new offset = GetEntSendPropOffs(entity, "m_iObjectMode"); int offset = GetEntSendPropOffs(entity, "m_iObjectMode");
if (offset <= 0) if (offset <= 0)
{ {
ThrowError("Entity index %d is not an object", entity); ThrowError("Entity index %d is not an object", entity);
} }
return TFObjectMode:GetEntData(entity, offset); return view_as<TFObjectMode>(GetEntData(entity, offset));
} }