/* * The MIT License (MIT) * * Copyright (c) 2016-2018 urShadow * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #if !defined PAWNCMD_INC_ #define PAWNCMD_INC_ #define PAWNCMD_INCLUDE_VERSION 320 #if !defined __cplusplus public _pawncmd_version = PAWNCMD_INCLUDE_VERSION; #pragma unused _pawncmd_version public bool:_pawncmd_is_gamemode = !defined FILTERSCRIPT; #pragma unused _pawncmd_is_gamemode native PC_Init(); // internal native PC_RegAlias(const cmd[], const alias[], ...); native PC_SetFlags(const cmd[], flags); native PC_GetFlags(const cmd[]); native PC_EmulateCommand(playerid, const cmdtext[]); native PC_RenameCommand(const cmd[], const newname[]); native PC_CommandExists(const cmd[]); native PC_DeleteCommand(const cmd[]); native CmdArray:PC_GetCommandArray(); native CmdArray:PC_GetAliasArray(const cmd[]); native PC_GetArraySize(CmdArray:arr); native PC_FreeArray(&CmdArray:arr); native PC_GetCommandName(CmdArray:arr, index, dest[], size = sizeof dest); #if defined PC_OnInit forward PC_OnInit(); #endif #if defined OnPlayerCommandReceived forward OnPlayerCommandReceived(playerid, cmd[], params[], flags); #endif #if defined OnPlayerCommandPerformed forward OnPlayerCommandPerformed(playerid, cmd[], params[], result, flags); #endif #define cmd:%0(%1) \ forward pc_cmd_%0(%1); \ public pc_cmd_%0(%1) #define alias:%0(%1); \ forward pc_alias_%0(); \ public pc_alias_%0() \ PC_RegAlias(#%0, %1); #define flags:%0(%1); \ forward pc_flags_%0(); \ public pc_flags_%0() \ PC_SetFlags(#%0, %1); #define CMD cmd #define COMMAND cmd #define callcmd::%0(%1) \ pc_cmd_%0(%1) #define PC_HasFlag(%0,%1) \ (PC_GetFlags(%0) & %1) #if !defined isnull #define isnull(%0) \ ((!(%0[0])) || (((%0[0]) == '\1') && (!(%0[1])))) #endif #if defined FILTERSCRIPT public OnFilterScriptInit() { PC_Init(); #if defined PawnCmd_OnFilterScriptInit PawnCmd_OnFilterScriptInit(); #endif return 1; } #if defined _ALS_OnFilterScriptInit #undef OnFilterScriptInit #else #define _ALS_OnFilterScriptInit #endif #define OnFilterScriptInit PawnCmd_OnFilterScriptInit #if defined PawnCmd_OnFilterScriptInit forward PawnCmd_OnFilterScriptInit(); #endif #else public OnGameModeInit() { PC_Init(); #if defined PawnCmd_OnGameModeInit PawnCmd_OnGameModeInit(); #endif return 1; } #if defined _ALS_OnGameModeInit #undef OnGameModeInit #else #define _ALS_OnGameModeInit #endif #define OnGameModeInit PawnCmd_OnGameModeInit #if defined PawnCmd_OnGameModeInit forward PawnCmd_OnGameModeInit(); #endif #endif #endif // !__cplusplus #endif // !PAWNCMD_INC_