forked from teamnwah/openmw-tes3coop
flag game as ended when player dies
This commit is contained in:
parent
82c8495338
commit
f45cff8aff
4 changed files with 24 additions and 10 deletions
|
@ -39,6 +39,8 @@ namespace MWBase
|
||||||
///< Start a new game.
|
///< Start a new game.
|
||||||
///
|
///
|
||||||
/// \param bypass Skip new game mechanics.
|
/// \param bypass Skip new game mechanics.
|
||||||
|
|
||||||
|
virtual void endGame() = 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#include "../mwbase/environment.hpp"
|
#include "../mwbase/environment.hpp"
|
||||||
#include "../mwbase/windowmanager.hpp"
|
#include "../mwbase/windowmanager.hpp"
|
||||||
#include "../mwbase/soundmanager.hpp"
|
#include "../mwbase/soundmanager.hpp"
|
||||||
|
#include "../mwbase/statemanager.hpp"
|
||||||
|
|
||||||
#include "npcstats.hpp"
|
#include "npcstats.hpp"
|
||||||
#include "creaturestats.hpp"
|
#include "creaturestats.hpp"
|
||||||
|
@ -344,20 +345,24 @@ namespace MWMechanics
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If it's the player and God Mode is turned on, keep it alive
|
if (iter->first.getRefData().getHandle()=="player")
|
||||||
if(iter->first.getRefData().getHandle()=="player" &&
|
|
||||||
MWBase::Environment::get().getWorld()->getGodModeState())
|
|
||||||
{
|
{
|
||||||
MWMechanics::DynamicStat<float> stat(stats.getHealth());
|
// If it's the player and God Mode is turned on, keep it alive
|
||||||
|
if (MWBase::Environment::get().getWorld()->getGodModeState())
|
||||||
if(stat.getModified()<1)
|
|
||||||
{
|
{
|
||||||
stat.setModified(1, 0);
|
MWMechanics::DynamicStat<float> stat (stats.getHealth());
|
||||||
stats.setHealth(stat);
|
|
||||||
|
if (stat.getModified()<1)
|
||||||
|
{
|
||||||
|
stat.setModified(1, 0);
|
||||||
|
stats.setHealth(stat);
|
||||||
|
}
|
||||||
|
|
||||||
|
stats.resurrect();
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
stats.resurrect();
|
MWBase::Environment::get().getStateManager()->endGame();
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(iter->second->isDead())
|
if(iter->second->isDead())
|
||||||
|
|
|
@ -46,3 +46,8 @@ void MWState::StateManager::newGame (bool bypass)
|
||||||
|
|
||||||
mState = State_Running;
|
mState = State_Running;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MWState::StateManager::endGame()
|
||||||
|
{
|
||||||
|
mState = State_Ended;
|
||||||
|
}
|
||||||
|
|
|
@ -24,6 +24,8 @@ namespace MWState
|
||||||
///< Start a new game.
|
///< Start a new game.
|
||||||
///
|
///
|
||||||
/// \param bypass Skip new game mechanics.
|
/// \param bypass Skip new game mechanics.
|
||||||
|
|
||||||
|
virtual void endGame();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue