1 /*
2  *  The ManaPlus Client
3  *  Copyright (C) 2009  The Mana World Development Team
4  *  Copyright (C) 2009-2010  The Mana Developers
5  *  Copyright (C) 2011-2019  The ManaPlus Developers
6  *  Copyright (C) 2019-2021  Andrei Karas
7  *
8  *  This file is part of The ManaPlus Client.
9  *
10  *  This program is free software; you can redistribute it and/or modify
11  *  it under the terms of the GNU General Public License as published by
12  *  the Free Software Foundation; either version 2 of the License, or
13  *  any later version.
14  *
15  *  This program is distributed in the hope that it will be useful,
16  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  *  GNU General Public License for more details.
19  *
20  *  You should have received a copy of the GNU General Public License
21  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
22  */
23 
24 #include "net/ea/gamerecv.h"
25 
26 #include "client.h"
27 #include "notifymanager.h"
28 
29 #include "enums/resources/notifytypes.h"
30 
31 #include "gui/windows/okdialog.h"
32 
33 #include "gui/widgets/createwidget.h"
34 
35 #include "net/messagein.h"
36 
37 #include "utils/gettext.h"
38 
39 #include "debug.h"
40 
41 namespace Ea
42 {
43 
44 namespace GameRecv
45 {
46     std::string mMap;
47     BeingId mCharID = BeingId_zero;
48 }  // namespace GameRecv
49 
processWhoAnswer(Net::MessageIn & msg)50 void GameRecv::processWhoAnswer(Net::MessageIn &msg)
51 {
52     NotifyManager::notify(NotifyTypes::ONLINE_USERS,
53         msg.readInt32("users count"));
54 }
55 
processCharSwitchResponse(Net::MessageIn & msg)56 void GameRecv::processCharSwitchResponse(Net::MessageIn &msg)
57 {
58     if (msg.readUInt8("response") != 0U)
59         client->setState(State::SWITCH_CHARACTER);
60 }
61 
processMapQuitResponse(Net::MessageIn & msg)62 void GameRecv::processMapQuitResponse(Net::MessageIn &msg)
63 {
64     if (msg.readInt16("response") != 0)
65     {
66         CREATEWIDGET(OkDialog,
67             // TRANSLATORS: error header
68             _("Game"),
69             // TRANSLATORS: error message
70             _("Request to quit denied!"),
71             // TRANSLATORS: ok dialog button
72             _("OK"),
73             DialogType::ERROR,
74             Modal_true,
75             ShowCenter_true,
76             nullptr,
77             260);
78     }
79 }
80 
81 }  // namespace Ea
82