mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-11-04 05:56:39 +00:00 
			
		
		
		
	Collision may be working correctly
This commit is contained in:
		
							parent
							
								
									9c73fa6b6d
								
							
						
					
					
						commit
						d2b3c1dbac
					
				
					 2 changed files with 9 additions and 2 deletions
				
			
		| 
						 | 
					@ -148,7 +148,7 @@ namespace MWWorld
 | 
				
			||||||
        const std::string& master, const boost::filesystem::path& resDir,
 | 
					        const std::string& master, const boost::filesystem::path& resDir,
 | 
				
			||||||
        bool newGame, Environment& environment, const std::string& encoding)
 | 
					        bool newGame, Environment& environment, const std::string& encoding)
 | 
				
			||||||
    : mRendering (renderer,resDir, physEng, environment),mPlayer (0), mLocalScripts (mStore), mGlobalVariables (0),
 | 
					    : mRendering (renderer,resDir, physEng, environment),mPlayer (0), mLocalScripts (mStore), mGlobalVariables (0),
 | 
				
			||||||
      mSky (false), mEnvironment (environment), mNextDynamicRecord (0), mCells (mStore, mEsm, *this)
 | 
					      mSky (false), bCollision(false), mEnvironment (environment), mNextDynamicRecord (0), mCells (mStore, mEsm, *this)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        mPhysEngine = physEng;
 | 
					        mPhysEngine = physEng;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -183,10 +183,15 @@ namespace MWWorld
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void World::makeNewPlayer(){
 | 
					    void World::makeNewPlayer(){
 | 
				
			||||||
 | 
					        bool initialCollision = bCollision;
 | 
				
			||||||
 | 
					        if(bCollision)
 | 
				
			||||||
 | 
					            toggleCollisionMode();
 | 
				
			||||||
        MWRender::Player* play = &(mRendering.getPlayer());
 | 
					        MWRender::Player* play = &(mRendering.getPlayer());
 | 
				
			||||||
        delete mPlayer;
 | 
					        delete mPlayer;
 | 
				
			||||||
        mPlayer = new MWWorld::Player (play, mStore.npcs.find ("player"), *this);
 | 
					        mPlayer = new MWWorld::Player (play, mStore.npcs.find ("player"), *this);
 | 
				
			||||||
        mPhysics->addActor (mPlayer->getPlayer().getRefData().getHandle(), "", Ogre::Vector3 (0, 0, 0));
 | 
					        mPhysics->addActor (mPlayer->getPlayer().getRefData().getHandle(), "", Ogre::Vector3 (0, 0, 0));
 | 
				
			||||||
 | 
					        if(initialCollision)
 | 
				
			||||||
 | 
					            toggleCollisionMode();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    World::~World()
 | 
					    World::~World()
 | 
				
			||||||
| 
						 | 
					@ -619,7 +624,8 @@ namespace MWWorld
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    bool World::toggleCollisionMode()
 | 
					    bool World::toggleCollisionMode()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return mPhysics->toggleCollisionMode();
 | 
					        bCollision = mPhysics->toggleCollisionMode();
 | 
				
			||||||
 | 
					        return bCollision;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    bool World::toggleRenderMode (RenderMode mode)
 | 
					    bool World::toggleRenderMode (RenderMode mode)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -77,6 +77,7 @@ namespace MWWorld
 | 
				
			||||||
            bool mSky;
 | 
					            bool mSky;
 | 
				
			||||||
            Environment& mEnvironment;
 | 
					            Environment& mEnvironment;
 | 
				
			||||||
            int mNextDynamicRecord;
 | 
					            int mNextDynamicRecord;
 | 
				
			||||||
 | 
					            bool bCollision;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            Cells mCells;
 | 
					            Cells mCells;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue