]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/environment.cpp
.
[dragonfireclient.git] / src / environment.cpp
index c43525c37779d0eca4415ffd73ccef709cf5ec53..17b98acd1a14a29ff3d1beebe63a459d4f432b14 100644 (file)
@@ -18,7 +18,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 */
 
 #include "environment.h"
-#include "main.h" // g_device for timing debug
 
 Environment::Environment(Map *map, std::ostream &dout):
                m_dout(dout)
@@ -107,7 +106,8 @@ void Environment::step(float dtime)
                        v3f playerpos = player->getPosition();
                        
                        // Apply physics to local player
-                       if(player->isLocal())
+                       bool haxmode = g_settings.getBool("haxmode");
+                       if(player->isLocal() && haxmode == false)
                        {
                                // Apply gravity to local player
                                v3f speed = player->getSpeed();
@@ -243,11 +243,44 @@ Player * Environment::getPlayer(u16 peer_id)
        return NULL;
 }
 
+Player * Environment::getPlayer(const char *name)
+{
+       for(core::list<Player*>::Iterator i = m_players.begin();
+                       i != m_players.end(); i++)
+       {
+               Player *player = *i;
+               if(strcmp(player->getName(), name) == 0)
+                       return player;
+       }
+       return NULL;
+}
+
 core::list<Player*> Environment::getPlayers()
 {
        return m_players;
 }
 
+core::list<Player*> Environment::getPlayers(bool ignore_disconnected)
+{
+       core::list<Player*> newlist;
+       for(core::list<Player*>::Iterator
+                       i = m_players.begin();
+                       i != m_players.end(); i++)
+       {
+               Player *player = *i;
+               
+               if(ignore_disconnected)
+               {
+                       // Ignore disconnected players
+                       if(player->peer_id == 0)
+                               continue;
+               }
+
+               newlist.push_back(player);
+       }
+       return newlist;
+}
+
 void Environment::printPlayers(std::ostream &o)
 {
        o<<"Players in environment:"<<std::endl;