core/ADTFactory.cpp
author Phong Dang <teame06@gmail.com>
Wed Aug 01 07:29:40 2007 +0000 (2007-08-01)
changeset 1241 2e8046793bc9
parent 1231 17badaf66ce4
child 1330 ab94316bb52b
permissions -rw-r--r--
Added check to make sure player are alive to perform sm_slap, sm_burn, sm_slay.
     1 /**
     2  * vim: set ts=4 :
     3  * ================================================================
     4  * SourceMod
     5  * Copyright (C) 2004-2007 AlliedModders LLC.  All rights reserved.
     6  * ================================================================
     7  *
     8  * This program is free software; you can redistribute it and/or 
     9  * modify it under the terms of the GNU General Public License, 
    10  * version 3.0, as published by the Free Software Foundation.
    11  * 
    12  * This program is distributed in the hope that it will be useful,
    13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    15  * GNU General Public License for more details.
    16  *
    17  * You should have received a copy of the GNU General Public License
    18  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
    19  *
    20  * As a special exception, AlliedModders LLC gives you permission to 
    21  * link the code of this program (as well as its derivative works) to 
    22  * "Half-Life 2," the "Source Engine," the "SourcePawn JIT," and any 
    23  * Game MODs that run on software by the Valve Corporation.  You must 
    24  * obey the GNU General Public License in all respects for all other 
    25  * code used. Additionally, AlliedModders LLC grants this exception 
    26  * to all derivative works. AlliedModders LLC defines further 
    27  * exceptions, found in LICENSE.txt (as of this writing, version 
    28  * JULY-31-2007), or <http://www.sourcemod.net/license.php>.
    29  *
    30  * Version: $Id$
    31  */
    32 
    33 #include "ADTFactory.h"
    34 #include "sm_globals.h"
    35 #include "ShareSys.h"
    36 
    37 ADTFactory g_AdtFactory;
    38 
    39 const char *ADTFactory::GetInterfaceName()
    40 {
    41 	return SMINTERFACE_ADTFACTORY_NAME;
    42 }
    43 
    44 unsigned int ADTFactory::GetInterfaceVersion()
    45 {
    46 	return SMINTERFACE_ADTFACTORY_VERSION;
    47 }
    48 
    49 void ADTFactory::OnSourceModAllInitialized()
    50 {
    51 	g_ShareSys.AddInterface(NULL, this);
    52 }
    53 
    54 IBasicTrie *ADTFactory::CreateBasicTrie()
    55 {
    56 	return new BaseTrie();
    57 }
    58 
    59 BaseTrie::BaseTrie()
    60 {
    61 	m_pTrie = sm_trie_create();
    62 }
    63 
    64 BaseTrie::~BaseTrie()
    65 {
    66 	sm_trie_destroy(m_pTrie);
    67 }
    68 
    69 bool BaseTrie::Insert(const char *key, void *value)
    70 {
    71 	return sm_trie_insert(m_pTrie, key, value);
    72 }
    73 
    74 bool BaseTrie::Retrieve(const char *key, void **value)
    75 {
    76 	return sm_trie_retrieve(m_pTrie, key, value);
    77 }
    78 
    79 bool BaseTrie::Delete(const char *key)
    80 {
    81 	return sm_trie_delete(m_pTrie, key);
    82 }
    83 
    84 void BaseTrie::Clear()
    85 {
    86 	sm_trie_clear(m_pTrie);
    87 }
    88 
    89 void BaseTrie::Destroy()
    90 {
    91 	delete this;
    92 }
    93 
    94 bool BaseTrie::Replace(const char *key, void *value)
    95 {
    96 	return sm_trie_replace(m_pTrie, key, value);
    97 }