LCOV - code coverage report
Current view: top level - src - clientobject.cpp (source / functions) Hit Total Coverage
Test: report Lines: 19 23 82.6 %
Date: 2015-07-11 18:23:49 Functions: 6 7 85.7 %

          Line data    Source code
       1             : /*
       2             : Minetest
       3             : Copyright (C) 2010-2013 celeron55, Perttu Ahola <celeron55@gmail.com>
       4             : 
       5             : This program is free software; you can redistribute it and/or modify
       6             : it under the terms of the GNU Lesser General Public License as published by
       7             : the Free Software Foundation; either version 2.1 of the License, or
       8             : (at your option) any later version.
       9             : 
      10             : This program is distributed in the hope that it will be useful,
      11             : but WITHOUT ANY WARRANTY; without even the implied warranty of
      12             : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13             : GNU Lesser General Public License for more details.
      14             : 
      15             : You should have received a copy of the GNU Lesser General Public License along
      16             : with this program; if not, write to the Free Software Foundation, Inc.,
      17             : 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
      18             : */
      19             : 
      20             : #include "clientobject.h"
      21             : #include "debug.h"
      22             : #include "porting.h"
      23             : #include "constants.h"
      24             : 
      25             : /*
      26             :         ClientActiveObject
      27             : */
      28             : 
      29          47 : ClientActiveObject::ClientActiveObject(u16 id, IGameDef *gamedef,
      30             :                 ClientEnvironment *env):
      31             :         ActiveObject(id),
      32             :         m_gamedef(gamedef),
      33          47 :         m_env(env)
      34             : {
      35          47 : }
      36             : 
      37          94 : ClientActiveObject::~ClientActiveObject()
      38             : {
      39          47 :         removeFromScene(true);
      40          47 : }
      41             : 
      42          44 : ClientActiveObject* ClientActiveObject::create(ActiveObjectType type,
      43             :                 IGameDef *gamedef, ClientEnvironment *env)
      44             : {
      45             :         // Find factory function
      46          44 :         std::map<u16, Factory>::iterator n;
      47          44 :         n = m_types.find(type);
      48          44 :         if(n == m_types.end()) {
      49             :                 // If factory is not found, just return.
      50           0 :                 dstream<<"WARNING: ClientActiveObject: No factory for type="
      51           0 :                                 <<(int)type<<std::endl;
      52           0 :                 return NULL;
      53             :         }
      54             : 
      55          44 :         Factory f = n->second;
      56          44 :         ClientActiveObject *object = (*f)(gamedef, env);
      57          44 :         return object;
      58             : }
      59             : 
      60           3 : void ClientActiveObject::registerType(u16 type, Factory f)
      61             : {
      62           3 :         std::map<u16, Factory>::iterator n;
      63           3 :         n = m_types.find(type);
      64           3 :         if(n != m_types.end())
      65           0 :                 return;
      66           3 :         m_types[type] = f;
      67           3 : }
      68             : 
      69             : 

Generated by: LCOV version 1.11