1 /*****************************************************************************
2  * Copyright (c) 2014-2020 OpenRCT2 developers
3  *
4  * For a complete list of all authors, please refer to contributors.md
5  * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
6  *
7  * OpenRCT2 is licensed under the GNU General Public License version 3.
8  *****************************************************************************/
9 
10 #include "NetworkModifyGroupAction.h"
11 
12 #include "../network/network.h"
13 #include "../util/Util.h"
14 
NetworkModifyGroupAction(ModifyGroupType type,uint8_t groupId,const std::string name,uint32_t permissionIndex,PermissionState permissionState)15 NetworkModifyGroupAction::NetworkModifyGroupAction(
16     ModifyGroupType type, uint8_t groupId, const std::string name, uint32_t permissionIndex, PermissionState permissionState)
17     : _type(type)
18     , _groupId(groupId)
19     , _name(name)
20     , _permissionIndex(permissionIndex)
21     , _permissionState(permissionState)
22 {
23 }
24 
GetActionFlags() const25 uint16_t NetworkModifyGroupAction::GetActionFlags() const
26 {
27     return GameAction::GetActionFlags() | GameActions::Flags::AllowWhilePaused;
28 }
29 
Serialise(DataSerialiser & stream)30 void NetworkModifyGroupAction::Serialise(DataSerialiser& stream)
31 {
32     GameAction::Serialise(stream);
33 
34     stream << DS_TAG(_type) << DS_TAG(_groupId) << DS_TAG(_name) << DS_TAG(_permissionIndex) << DS_TAG(_permissionState);
35 }
36 
Query() const37 GameActions::Result::Ptr NetworkModifyGroupAction::Query() const
38 {
39     return network_modify_groups(GetPlayer(), _type, _groupId, _name, _permissionIndex, _permissionState, false);
40 }
41 
Execute() const42 GameActions::Result::Ptr NetworkModifyGroupAction::Execute() const
43 {
44     return network_modify_groups(GetPlayer(), _type, _groupId, _name, _permissionIndex, _permissionState, true);
45 }
46