mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-20 20:23:03 +02:00
A patch from O01eg: http://forum.vcmi.eu/viewtopic.php?p=9313#9313
This commit is contained in:
parent
0c5a717e08
commit
8bfc6a1116
@ -562,7 +562,7 @@ void CGPreGame::removeFromGui()
|
|||||||
GH.popInt(GH.topInt()); //remove background
|
GH.popInt(GH.topInt()); //remove background
|
||||||
}
|
}
|
||||||
|
|
||||||
CSelectionScreen::CSelectionScreen(CMenuScreen::EState Type, CMenuScreen::EMultiMode MultiPlayer /*= CMenuScreen::SINGLE_PLAYER*/, const std::map<ui8, std::string> *Names /*= NULL*/)
|
CSelectionScreen::CSelectionScreen(CMenuScreen::EState Type, CMenuScreen::EMultiMode MultiPlayer /*= CMenuScreen::SINGLE_PLAYER*/, const std::map<ui8, std::string> * Names /*= NULL*/, const std::string & Address /*=""*/, const std::string & Port /*= ""*/)
|
||||||
: ISelectionScreenInfo(Names), serverHandlingThread(NULL), mx(new boost::recursive_mutex),
|
: ISelectionScreenInfo(Names), serverHandlingThread(NULL), mx(new boost::recursive_mutex),
|
||||||
serv(NULL), ongoingClosing(false), myNameID(255)
|
serv(NULL), ongoingClosing(false), myNameID(255)
|
||||||
{
|
{
|
||||||
@ -711,7 +711,7 @@ CSelectionScreen::CSelectionScreen(CMenuScreen::EState Type, CMenuScreen::EMulti
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
serv = CServerHandler::justConnectToServer();
|
serv = CServerHandler::justConnectToServer(Address, Port);
|
||||||
}
|
}
|
||||||
|
|
||||||
serv->enterPregameConnectionMode();
|
serv->enterPregameConnectionMode();
|
||||||
@ -3086,8 +3086,7 @@ void CMultiMode::joinTCP()
|
|||||||
{
|
{
|
||||||
Settings name = settings.write["general"]["playerName"];
|
Settings name = settings.write["general"]["playerName"];
|
||||||
name->String() = txt->text;
|
name->String() = txt->text;
|
||||||
GH.popIntTotally(this);
|
GH.pushInt(new CSimpleJoinScreen);
|
||||||
GH.pushInt(new CSelectionScreen(CMenuScreen::newGame, CMenuScreen::MULTI_NETWORK_GUEST));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CHotSeatPlayers::CHotSeatPlayers(const std::string &firstPlayer)
|
CHotSeatPlayers::CHotSeatPlayers(const std::string &firstPlayer)
|
||||||
@ -4153,3 +4152,43 @@ void CPrologEpilogVideo::clickLeft( tribool down, bool previousState )
|
|||||||
GH.popInt(this);
|
GH.popInt(this);
|
||||||
exitCb();
|
exitCb();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CSimpleJoinScreen::CSimpleJoinScreen()
|
||||||
|
{
|
||||||
|
OBJ_CONSTRUCTION_CAPTURING_ALL;
|
||||||
|
bg = new CPicture("MUDIALOG.bmp"); // address background
|
||||||
|
pos = bg->center(); //center, window has size of bg graphic (x,y = 396,278 w=232 h=212)
|
||||||
|
|
||||||
|
Rect boxRect(20, 20, 205, 50);
|
||||||
|
title = new CTextBox("Enter address:", boxRect, 0, FONT_BIG, CENTER, Colors::WHITE);
|
||||||
|
|
||||||
|
address = new CTextInput(Rect(25, 68, 175, 16), *bg);
|
||||||
|
address->cb += boost::bind(&CSimpleJoinScreen::onChange, this, _1);
|
||||||
|
|
||||||
|
port = new CTextInput(Rect(25, 115, 175, 16), *bg);
|
||||||
|
port->cb += boost::bind(&CSimpleJoinScreen::onChange, this, _1);
|
||||||
|
port->filters.add(boost::bind(&CTextInput::numberFilter, _1, _2, 0, 65535));
|
||||||
|
|
||||||
|
ok = new CAdventureMapButton(CGI->generaltexth->zelp[560], bind(&CSimpleJoinScreen::enterSelectionScreen, this), 26, 142, "MUBCHCK.DEF", SDLK_RETURN);
|
||||||
|
cancel = new CAdventureMapButton(CGI->generaltexth->zelp[561], bind(&CGuiHandler::popIntTotally, ref(GH), this), 142, 142, "MUBCANC.DEF", SDLK_ESCAPE);
|
||||||
|
bar = new CGStatusBar(new CPicture(Rect(7, 186, 218, 18), 0));
|
||||||
|
|
||||||
|
port->setTxt(boost::lexical_cast<std::string>(settings["server"]["port"].Float()), true);
|
||||||
|
address->setTxt(settings["server"]["server"].String(), true);
|
||||||
|
address->giveFocus();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CSimpleJoinScreen::enterSelectionScreen()
|
||||||
|
{
|
||||||
|
std::string textAddress = address->text;
|
||||||
|
std::string textPort = port->text;
|
||||||
|
|
||||||
|
GH.popIntTotally(this);
|
||||||
|
GH.pushInt(new CSelectionScreen(CMenuScreen::newGame, CMenuScreen::MULTI_NETWORK_GUEST, NULL, textAddress, textPort));
|
||||||
|
}
|
||||||
|
|
||||||
|
void CSimpleJoinScreen::onChange(const std::string & newText)
|
||||||
|
{
|
||||||
|
ok->block(address->text.empty() || port->text.empty());
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -359,7 +359,7 @@ public:
|
|||||||
bool ongoingClosing;
|
bool ongoingClosing;
|
||||||
ui8 myNameID; //used when networking - otherwise all player are "mine"
|
ui8 myNameID; //used when networking - otherwise all player are "mine"
|
||||||
|
|
||||||
CSelectionScreen(CMenuScreen::EState Type, CMenuScreen::EMultiMode MultiPlayer = CMenuScreen::SINGLE_PLAYER, const std::map<ui8, std::string> *Names = NULL);
|
CSelectionScreen(CMenuScreen::EState Type, CMenuScreen::EMultiMode MultiPlayer = CMenuScreen::SINGLE_PLAYER, const std::map<ui8, std::string> * Names = NULL, const std::string & Address = "", const std::string & Port = "");
|
||||||
~CSelectionScreen();
|
~CSelectionScreen();
|
||||||
void toggleTab(CIntObject *tab);
|
void toggleTab(CIntObject *tab);
|
||||||
void changeSelection(const CMapInfo *to);
|
void changeSelection(const CMapInfo *to);
|
||||||
@ -606,5 +606,21 @@ public:
|
|||||||
void showAll(SDL_Surface *to);
|
void showAll(SDL_Surface *to);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// Simple window to enter the server's address.
|
||||||
|
class CSimpleJoinScreen : public CIntObject
|
||||||
|
{
|
||||||
|
CPicture * bg;
|
||||||
|
CTextBox * title;
|
||||||
|
CAdventureMapButton * ok, * cancel;
|
||||||
|
CGStatusBar * bar;
|
||||||
|
CTextInput * address;
|
||||||
|
CTextInput * port;
|
||||||
|
|
||||||
|
void enterSelectionScreen();
|
||||||
|
void onChange(const std::string & newText);
|
||||||
|
public:
|
||||||
|
CSimpleJoinScreen();
|
||||||
|
};
|
||||||
|
|
||||||
extern ISelectionScreenInfo *SEL;
|
extern ISelectionScreenInfo *SEL;
|
||||||
extern CGPreGame *CGP;
|
extern CGPreGame *CGP;
|
||||||
|
@ -50,7 +50,7 @@ VCMI supports resolutions higher than original 800x600. Namely these are:
|
|||||||
Switching resolution may not only change visible area of map, but also alters some interface features such as \hyperref[Stack_Queue]{Stack Queue.}\\
|
Switching resolution may not only change visible area of map, but also alters some interface features such as \hyperref[Stack_Queue]{Stack Queue.}\\
|
||||||
To change resolution or full screen mode use System Options menu when in game. Changes in resolution will take place when you restart VCMI. \\
|
To change resolution or full screen mode use System Options menu when in game. Changes in resolution will take place when you restart VCMI. \\
|
||||||
Fullscreen mode can be toggled anytime using F4 hotkey.
|
Fullscreen mode can be toggled anytime using F4 hotkey.
|
||||||
\end{itemize}
|
%\end{itemize}
|
||||||
\label{Mods}
|
\label{Mods}
|
||||||
\subsection{Game modification}
|
\subsection{Game modification}
|
||||||
Since 0.9, there is a possibility to edit gameplay settings with config file. You may turn some options on/off or adjust certain values in \texttt{config/defaultMods.json} file. This file is read at game launch and the settings are stored in savegame file, so editing config won't break existing games.\\
|
Since 0.9, there is a possibility to edit gameplay settings with config file. You may turn some options on/off or adjust certain values in \texttt{config/defaultMods.json} file. This file is read at game launch and the settings are stored in savegame file, so editing config won't break existing games.\\
|
||||||
@ -149,7 +149,7 @@ Following cheat codes have been implemented in VCMI. Type them in console:
|
|||||||
\item \texttt{vcmiforgeofnoldorking} - Hero gets all artifacts except spell book, spell scrolls and war machines
|
\item \texttt{vcmiforgeofnoldorking} - Hero gets all artifacts except spell book, spell scrolls and war machines
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\subsection{Command line}
|
\subsection{Command line}
|
||||||
It is possible to save a starting configuration (such as map and options) in pregame by typing \"\texttt{sinfo} filename\". Then VCMI can be started with option \texttt{-i --start=fname} and it will automatically start the game.\\
|
It is possible to save a starting configuration (such as map and options) in pregame by typing "\texttt{sinfo} filename". Then VCMI can be started with option \texttt{-i --start=fname} and it will automatically start the game.\\
|
||||||
\texttt{--onlyAI} command line option allows to run AI-on-AI game (without GUI). Also, typing \texttt{onlyai} in pregame triggers that mode.
|
\texttt{--onlyAI} command line option allows to run AI-on-AI game (without GUI). Also, typing \texttt{onlyai} in pregame triggers that mode.
|
||||||
\newpage
|
\newpage
|
||||||
\section{Release notes}
|
\section{Release notes}
|
||||||
|
Loading…
Reference in New Issue
Block a user