extensions/tf2/natives.cpp
author David Anderson <dvander@alliedmods.net>
Fri Nov 23 05:27:58 2007 +0000 (2007-11-23)
branchsourcemod-1.1.0
changeset 1716 58ef565eb734
child 1849 e311a9419c23
permissions -rw-r--r--
skeleton tf2 extension for ferret
dvander@1716
     1
/**
dvander@1716
     2
 * vim: set ts=4 :
dvander@1716
     3
 * =============================================================================
dvander@1716
     4
 * SourceMod Counter-Strike:Source Extension
dvander@1716
     5
 * Copyright (C) 2004-2007 AlliedModders LLC.  All rights reserved.
dvander@1716
     6
 * =============================================================================
dvander@1716
     7
 *
dvander@1716
     8
 * This program is free software; you can redistribute it and/or modify it under
dvander@1716
     9
 * the terms of the GNU General Public License, version 3.0, as published by the
dvander@1716
    10
 * Free Software Foundation.
dvander@1716
    11
 * 
dvander@1716
    12
 * This program is distributed in the hope that it will be useful, but WITHOUT
dvander@1716
    13
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
dvander@1716
    14
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
dvander@1716
    15
 * details.
dvander@1716
    16
 *
dvander@1716
    17
 * You should have received a copy of the GNU General Public License along with
dvander@1716
    18
 * this program.  If not, see <http://www.gnu.org/licenses/>.
dvander@1716
    19
 *
dvander@1716
    20
 * As a special exception, AlliedModders LLC gives you permission to link the
dvander@1716
    21
 * code of this program (as well as its derivative works) to "Half-Life 2," the
dvander@1716
    22
 * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
dvander@1716
    23
 * by the Valve Corporation.  You must obey the GNU General Public License in
dvander@1716
    24
 * all respects for all other code used.  Additionally, AlliedModders LLC grants
dvander@1716
    25
 * this exception to all derivative works.  AlliedModders LLC defines further
dvander@1716
    26
 * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
dvander@1716
    27
 * or <http://www.sourcemod.net/license.php>.
dvander@1716
    28
 *
dvander@1716
    29
 * Version: $Id$
dvander@1716
    30
 */
dvander@1716
    31
dvander@1716
    32
#include "extension.h"
dvander@1716
    33
dvander@1716
    34
inline CBaseEntity *GetCBaseEntity(int num, bool onlyPlayers)
dvander@1716
    35
{
dvander@1716
    36
	edict_t *pEdict = engine->PEntityOfEntIndex(num);
dvander@1716
    37
	if (!pEdict || pEdict->IsFree())
dvander@1716
    38
	{
dvander@1716
    39
		return NULL;
dvander@1716
    40
	}
dvander@1716
    41
dvander@1716
    42
	if (num > 0 && num < playerhelpers->GetMaxClients())
dvander@1716
    43
	{
dvander@1716
    44
		IGamePlayer *pPlayer = playerhelpers->GetGamePlayer(pEdict);
dvander@1716
    45
		if (!pPlayer || !pPlayer->IsConnected())
dvander@1716
    46
		{
dvander@1716
    47
			return NULL;
dvander@1716
    48
		}
dvander@1716
    49
	}
dvander@1716
    50
	else if (onlyPlayers)
dvander@1716
    51
	{
dvander@1716
    52
		return NULL;
dvander@1716
    53
	}
dvander@1716
    54
dvander@1716
    55
	IServerUnknown *pUnk;
dvander@1716
    56
	if ((pUnk=pEdict->GetUnknown()) == NULL)
dvander@1716
    57
	{
dvander@1716
    58
		return NULL;
dvander@1716
    59
	}
dvander@1716
    60
dvander@1716
    61
	return pUnk->GetBaseEntity();
dvander@1716
    62
}
dvander@1716
    63
dvander@1716
    64
sp_nativeinfo_t g_TFNatives[] = 
dvander@1716
    65
{
dvander@1716
    66
	{NULL,							NULL}
dvander@1716
    67
};