forked from teamnwah/openmw-tes3coop
[Client] Send ID_PLAYER_CELL_STATE to server at end of CharGen
Also, allow requests for ID_PLAYER_CELL_STATE from the server.
This commit is contained in:
parent
44e27148d5
commit
a2e3fe18fe
3 changed files with 15 additions and 6 deletions
|
@ -139,6 +139,8 @@ bool LocalPlayer::charGenThread()
|
|||
getNetworking()->getPlayerPacket(ID_GAME_CHARGEN)->Send(this);
|
||||
}
|
||||
|
||||
sendCellStates();
|
||||
|
||||
// Set the last stage variable to 0 to indicate that CharGen is finished
|
||||
charGenStage.end = 0;
|
||||
}
|
||||
|
@ -1003,6 +1005,7 @@ void LocalPlayer::sendSpellbook()
|
|||
void LocalPlayer::sendCellStates()
|
||||
{
|
||||
Main::get().getNetworking()->getPlayerPacket(ID_PLAYER_CELL_STATE)->Send(this);
|
||||
|
||||
}
|
||||
|
||||
void LocalPlayer::sendSpellAddition(std::string id)
|
||||
|
|
|
@ -530,6 +530,12 @@ void Networking::processPlayerPacket(RakNet::Packet *packet)
|
|||
}
|
||||
case ID_PLAYER_CELL_STATE:
|
||||
{
|
||||
if (guid == myGuid)
|
||||
{
|
||||
if (packet->length == myPacket->headerSize())
|
||||
getLocalPlayer()->sendCellStates();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case ID_GAME_DRAWSTATE:
|
||||
|
|
|
@ -354,9 +354,6 @@ namespace MWWorld
|
|||
|
||||
void Scene::changeCellGrid (int X, int Y, bool changeEvent)
|
||||
{
|
||||
// Added by tes3mp
|
||||
mwmp::Main::get().getLocalPlayer()->clearCellStates();
|
||||
|
||||
Loading::Listener* loadingListener = MWBase::Environment::get().getWindowManager()->getLoadingScreen();
|
||||
Loading::ScopedLoad load(loadingListener);
|
||||
|
||||
|
@ -436,7 +433,10 @@ namespace MWWorld
|
|||
|
||||
// Added by tes3mp
|
||||
if (mwmp::Main::get().getLocalPlayer()->hasFinishedCharGen())
|
||||
{
|
||||
mwmp::Main::get().getLocalPlayer()->sendCellStates();
|
||||
mwmp::Main::get().getLocalPlayer()->clearCellStates();
|
||||
}
|
||||
|
||||
CellStore* current = MWBase::Environment::get().getWorld()->getExterior(X,Y);
|
||||
MWBase::Environment::get().getWindowManager()->changeCell(current);
|
||||
|
@ -518,9 +518,6 @@ namespace MWWorld
|
|||
|
||||
void Scene::changeToInteriorCell (const std::string& cellName, const ESM::Position& position, bool adjustPlayerPos, bool changeEvent)
|
||||
{
|
||||
// Added by tes3mp
|
||||
mwmp::Main::get().getLocalPlayer()->clearCellStates();
|
||||
|
||||
CellStore *cell = MWBase::Environment::get().getWorld()->getInterior(cellName);
|
||||
bool loadcell = (mCurrentCell == NULL);
|
||||
if(!loadcell)
|
||||
|
@ -570,7 +567,10 @@ namespace MWWorld
|
|||
|
||||
// Added by tes3mp
|
||||
if (mwmp::Main::get().getLocalPlayer()->hasFinishedCharGen())
|
||||
{
|
||||
mwmp::Main::get().getLocalPlayer()->sendCellStates();
|
||||
mwmp::Main::get().getLocalPlayer()->clearCellStates();
|
||||
}
|
||||
|
||||
changePlayerCell(cell, position, adjustPlayerPos);
|
||||
|
||||
|
|
Loading…
Reference in a new issue