forked from teamnwah/openmw-tes3coop
[Client] Use less exploitable way of disabling console
Previously, large framerate drops allowed players to open and use the console for short periods of time.
This commit is contained in:
parent
056d54e9f7
commit
8f543fb34e
5 changed files with 34 additions and 15 deletions
|
@ -13,7 +13,16 @@
|
||||||
#include <components/sdlutil/sdlinputwrapper.hpp>
|
#include <components/sdlutil/sdlinputwrapper.hpp>
|
||||||
#include <components/sdlutil/sdlvideowrapper.hpp>
|
#include <components/sdlutil/sdlvideowrapper.hpp>
|
||||||
|
|
||||||
|
/*
|
||||||
|
Start of tes3mp addition
|
||||||
|
|
||||||
|
Include additional headers for multiplayer purposes
|
||||||
|
*/
|
||||||
#include "../mwmp/Main.hpp"
|
#include "../mwmp/Main.hpp"
|
||||||
|
#include "../mwmp/LocalPlayer.hpp"
|
||||||
|
/*
|
||||||
|
End of tes3mp addition
|
||||||
|
*/
|
||||||
|
|
||||||
#include <components/esm/esmwriter.hpp>
|
#include <components/esm/esmwriter.hpp>
|
||||||
#include <components/esm/esmreader.hpp>
|
#include <components/esm/esmreader.hpp>
|
||||||
|
@ -1026,6 +1035,17 @@ namespace MWInput
|
||||||
|
|
||||||
void InputManager::toggleConsole()
|
void InputManager::toggleConsole()
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
Start of tes3mp addition
|
||||||
|
|
||||||
|
If a player's console is disabled by the server, go no further
|
||||||
|
*/
|
||||||
|
if (!mwmp::Main::get().getLocalPlayer()->consoleAllowed)
|
||||||
|
return;
|
||||||
|
/*
|
||||||
|
End of tes3mp addition
|
||||||
|
*/
|
||||||
|
|
||||||
if (MyGUI::InputManager::getInstance ().isModalAny())
|
if (MyGUI::InputManager::getInstance ().isModalAny())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -214,8 +214,6 @@ void mwmp::GUIController::update(float dt)
|
||||||
Main::get().getNetworking()->getPlayerPacket(ID_GUI_MESSAGEBOX)->setPlayer(Main::get().getLocalPlayer());
|
Main::get().getNetworking()->getPlayerPacket(ID_GUI_MESSAGEBOX)->setPlayer(Main::get().getLocalPlayer());
|
||||||
Main::get().getNetworking()->getPlayerPacket(ID_GUI_MESSAGEBOX)->Send();
|
Main::get().getNetworking()->getPlayerPacket(ID_GUI_MESSAGEBOX)->Send();
|
||||||
}
|
}
|
||||||
|
|
||||||
blockConsole();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void mwmp::GUIController::WM_UpdateVisible(MWGui::GuiMode mode)
|
void mwmp::GUIController::WM_UpdateVisible(MWGui::GuiMode mode)
|
||||||
|
@ -383,13 +381,3 @@ void mwmp::GUIController::updateGlobalMapMarkerTooltips(MWGui::MapWindow *mapWin
|
||||||
setGlobalMapMarkerTooltip(mapWindow, widget.second, x, y);
|
setGlobalMapMarkerTooltip(mapWindow, widget.second, x, y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void mwmp::GUIController::blockConsole()
|
|
||||||
{
|
|
||||||
if (Main::get().getLocalPlayer()->consoleAllowed)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (MWBase::Environment::get().getWindowManager()->isGuiMode())
|
|
||||||
if (MWBase::Environment::get().getWindowManager()->getMode() == MWGui::GM_Console)
|
|
||||||
MWBase::Environment::get().getWindowManager()->popGuiMode();
|
|
||||||
}
|
|
||||||
|
|
|
@ -74,7 +74,6 @@ namespace mwmp
|
||||||
GUIDialogList *mListBox;
|
GUIDialogList *mListBox;
|
||||||
void onInputBoxDone(MWGui::WindowBase* parWindow);
|
void onInputBoxDone(MWGui::WindowBase* parWindow);
|
||||||
//MyGUI::Widget *oldFocusWidget, *currentFocusWidget;
|
//MyGUI::Widget *oldFocusWidget, *currentFocusWidget;
|
||||||
void blockConsole();
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ LocalPlayer::LocalPlayer()
|
||||||
charGenStage.current = 0;
|
charGenStage.current = 0;
|
||||||
charGenStage.end = 1;
|
charGenStage.end = 1;
|
||||||
|
|
||||||
consoleAllowed = true;
|
consoleAllowed = false;
|
||||||
difficulty = 0;
|
difficulty = 0;
|
||||||
|
|
||||||
ignorePosPacket = false;
|
ignorePosPacket = false;
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
#ifndef OPENMW_PROCESSORGAMESETTINGS_HPP
|
#ifndef OPENMW_PROCESSORGAMESETTINGS_HPP
|
||||||
#define OPENMW_PROCESSORGAMESETTINGS_HPP
|
#define OPENMW_PROCESSORGAMESETTINGS_HPP
|
||||||
|
|
||||||
|
#include "apps/openmw/mwbase/environment.hpp"
|
||||||
|
#include "apps/openmw/mwgui/windowmanagerimp.hpp"
|
||||||
|
|
||||||
#include "../PlayerProcessor.hpp"
|
#include "../PlayerProcessor.hpp"
|
||||||
|
|
||||||
namespace mwmp
|
namespace mwmp
|
||||||
|
@ -15,7 +18,16 @@ namespace mwmp
|
||||||
|
|
||||||
virtual void Do(PlayerPacket &packet, BasePlayer *player)
|
virtual void Do(PlayerPacket &packet, BasePlayer *player)
|
||||||
{
|
{
|
||||||
|
if (isLocal())
|
||||||
|
{
|
||||||
|
if (MWBase::Environment::get().getWindowManager()->isGuiMode())
|
||||||
|
{
|
||||||
|
if (MWBase::Environment::get().getWindowManager()->getMode() == MWGui::GM_Console && !player->consoleAllowed)
|
||||||
|
{
|
||||||
|
MWBase::Environment::get().getWindowManager()->popGuiMode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue