extensions/tf2/extension.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
/**
dvander@1716
    35
 * @file extension.cpp
dvander@1716
    36
 * @brief Implement extension code here.
dvander@1716
    37
 */
dvander@1716
    38
dvander@1716
    39
SH_DECL_HOOK6(IServerGameDLL, LevelInit, SH_NOATTRIB, false, bool, const char *, const char *, const char *, const char *, bool, bool);
dvander@1716
    40
dvander@1716
    41
TF2Tools g_TF2Tools;
dvander@1716
    42
IGameConfig *g_pGameConf = NULL;
dvander@1716
    43
dvander@1716
    44
SMEXT_LINK(&g_TF2Tools);
dvander@1716
    45
dvander@1716
    46
extern sp_nativeinfo_t g_TFNatives[];
dvander@1716
    47
dvander@1716
    48
bool TF2Tools::SDK_OnLoad(char *error, size_t maxlength, bool late)
dvander@1716
    49
{
dvander@1716
    50
	sharesys->AddDependency(myself, "bintools.ext", true, true);
dvander@1716
    51
dvander@1716
    52
	char conf_error[255];
dvander@1716
    53
	if (!gameconfs->LoadGameConfigFile("sm-tf2.games", &g_pGameConf, conf_error, sizeof(conf_error)))
dvander@1716
    54
	{
dvander@1716
    55
		if (error)
dvander@1716
    56
		{
dvander@1716
    57
			snprintf(error, maxlength, "Could not read sm-cstrike.games.txt: %s", conf_error);
dvander@1716
    58
		}
dvander@1716
    59
		return false;
dvander@1716
    60
	}
dvander@1716
    61
dvander@1716
    62
	sharesys->AddNatives(myself, g_TFNatives);
dvander@1716
    63
	sharesys->RegisterLibrary(myself, "tf2");
dvander@1716
    64
dvander@1716
    65
	return true;
dvander@1716
    66
}
dvander@1716
    67
dvander@1716
    68
bool TF2Tools::SDK_OnMetamodLoad(ISmmAPI *ismm, char *error, size_t maxlen, bool late)
dvander@1716
    69
{
dvander@1716
    70
	GET_V_IFACE_CURRENT(GetEngineFactory, engine, IVEngineServer, INTERFACEVERSION_VENGINESERVER);
dvander@1716
    71
dvander@1716
    72
	return true;
dvander@1716
    73
}
dvander@1716
    74
dvander@1716
    75
void TF2Tools::SDK_OnUnload()
dvander@1716
    76
{
dvander@1716
    77
	gameconfs->CloseGameConfigFile(g_pGameConf);
dvander@1716
    78
}
dvander@1716
    79
dvander@1716
    80
void TF2Tools::SDK_OnAllLoaded()
dvander@1716
    81
{
dvander@1716
    82
}
dvander@1716
    83
dvander@1716
    84
bool TF2Tools::QueryRunning(char *error, size_t maxlength)
dvander@1716
    85
{
dvander@1716
    86
	return true;
dvander@1716
    87
}
dvander@1716
    88