mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-24 00:03:11 +01:00
consolidate actions list
This commit is contained in:
@@ -3984,66 +3984,23 @@ STR_5642 :Group:
|
||||
STR_5643 :Add Group
|
||||
STR_5644 :Remove Group
|
||||
STR_5645 :Chat
|
||||
STR_5646 :Set Ride Appearance
|
||||
STR_5647 :Pause/Unpause
|
||||
STR_5648 :Place Track
|
||||
STR_5649 :Remove Track
|
||||
STR_5650 :Create Ride
|
||||
STR_5651 :Remove Ride
|
||||
STR_5652 :Set Ride Status
|
||||
STR_5653 :Set Ride Vehicles
|
||||
STR_5654 :Set Ride Name
|
||||
STR_5655 :Set Ride Setting
|
||||
STR_5656 :Place Ride Entrance/Exit
|
||||
STR_5657 :Remove Ride Entrance/Exit
|
||||
STR_5658 :Remove Scenery
|
||||
STR_5659 :Place Scenery
|
||||
STR_5660 :Place Path
|
||||
STR_5661 :Place Path From Track
|
||||
STR_5662 :Remove Path
|
||||
STR_5663 :Change Surface Style
|
||||
STR_5664 :Set Ride Price
|
||||
STR_5665 :Set Peep Name
|
||||
STR_5666 :Raise Land
|
||||
STR_5667 :Lower Land
|
||||
STR_5668 :Smooth Land
|
||||
STR_5669 :Raise Water
|
||||
STR_5670 :Lower Water
|
||||
STR_5671 :Set Brakes Speed
|
||||
STR_5672 :Hire New Staff
|
||||
STR_5673 :Set Staff Patrol
|
||||
STR_5674 :Fire Staff
|
||||
STR_5675 :Set Staff Order
|
||||
STR_5676 :Set Park Name
|
||||
STR_5677 :Open/Close Park
|
||||
STR_5678 :Buy Land Rights
|
||||
STR_5679 :Place Park Entrance
|
||||
STR_5680 :Remove Park Entrance
|
||||
STR_5681 :Set Maze Track
|
||||
STR_5682 :Set Park Entrance Fee
|
||||
STR_5683 :Set Staff Colour
|
||||
STR_5684 :Place Fence
|
||||
STR_5685 :Remove Fence
|
||||
STR_5686 :Place Large Scenery
|
||||
STR_5687 :Set Current Loan
|
||||
STR_5688 :Set Research Funding
|
||||
STR_5689 :Place Track Design
|
||||
STR_5690 :Start Marketing Campaign
|
||||
STR_5691 :Place Maze Design
|
||||
STR_5692 :Place Banner
|
||||
STR_5693 :Remove Banner
|
||||
STR_5694 :Set Scenery Colour
|
||||
STR_5695 :Set Fence Colour
|
||||
STR_5696 :Set Large Scenery Colour
|
||||
STR_5697 :Set Banner Colour
|
||||
STR_5698 :Set Land Ownership
|
||||
STR_5699 :Clear Scenery
|
||||
STR_5700 :Set Banner Name
|
||||
STR_5701 :Set Sign Name
|
||||
STR_5702 :Set Banner Style
|
||||
STR_5703 :Set Sign Style
|
||||
STR_5704 :Set Player Group
|
||||
STR_5705 :Modify Groups
|
||||
STR_5646 :Terraform
|
||||
STR_5647 :Toggle Pause
|
||||
STR_5648 :Set Water Level
|
||||
STR_5649 :Create Ride
|
||||
STR_5650 :Remove Ride
|
||||
STR_5651 :Build Ride
|
||||
STR_5652 :Ride Properties
|
||||
STR_5653 :Scenery
|
||||
STR_5654 :Path
|
||||
STR_5655 :Guest
|
||||
STR_5656 :Staff
|
||||
STR_5657 :Park Properties
|
||||
STR_5658 :Park Funding
|
||||
STR_5659 :Kick Player
|
||||
STR_5660 :Modify Groups
|
||||
STR_5661 :Set Player Group
|
||||
STR_5705 :Can't set to this group
|
||||
STR_5706 :Can't remove group that players belong to
|
||||
STR_5707 :This group cannot be modified
|
||||
STR_5708 :Can't change the group that the host belongs to
|
||||
|
||||
@@ -2272,67 +2272,24 @@ enum {
|
||||
STR_REMOVE_GROUP = 5644,
|
||||
|
||||
STR_ACTION_CHAT = 5645,
|
||||
STR_ACTION_SET_RIDE_APPEARANCE = 5646,
|
||||
STR_ACTION_TERRAFORM = 5646,
|
||||
STR_ACTION_TOGGLE_PAUSE = 5647,
|
||||
STR_ACTION_PLACE_TRACK = 5648,
|
||||
STR_ACTION_REMOVE_TRACK = 5649,
|
||||
STR_ACTION_CREATE_RIDE = 5650,
|
||||
STR_ACTION_REMOVE_RIDE = 5651,
|
||||
STR_ACTION_SET_RIDE_STATUS = 5652,
|
||||
STR_ACTION_SET_RIDE_VEHICLES = 5653,
|
||||
STR_ACTION_SET_RIDE_NAME = 5654,
|
||||
STR_ACTION_SET_RIDE_SETTING = 5655,
|
||||
STR_ACTION_PLACE_RIDE_ENTRANCE_EXIT = 5656,
|
||||
STR_ACTION_REMOVE_RIDE_ENTRANCE_EXIT = 5657,
|
||||
STR_ACTION_REMOVE_SCENERY = 5658,
|
||||
STR_ACTION_PLACE_SCENERY = 5659,
|
||||
STR_ACTION_PLACE_PATH = 5660,
|
||||
STR_ACTION_PLACE_PATH_FROM_TRACK = 5661,
|
||||
STR_ACTION_REMOVE_PATH = 5662,
|
||||
STR_ACTION_CHANGE_SURFACE_STYLE = 5663,
|
||||
STR_ACTION_SET_RIDE_PRICE = 5664,
|
||||
STR_ACTION_SET_PEEP_NAME = 5665,
|
||||
STR_ACTION_RAISE_LAND = 5666,
|
||||
STR_ACTION_LOWER_LAND = 5667,
|
||||
STR_ACTION_SMOOTH_LAND = 5668,
|
||||
STR_ACTION_RAISE_WATER = 5669,
|
||||
STR_ACTION_LOWER_WATER = 5670,
|
||||
STR_ACTION_SET_BRAKES_SPEED = 5671,
|
||||
STR_ACTION_HIRE_NEW_STAFF = 5672,
|
||||
STR_ACTION_SET_STAFF_PATROL = 5673,
|
||||
STR_ACTION_FIRE_STAFF = 5674,
|
||||
STR_ACTION_SET_STAFF_ORDER = 5675,
|
||||
STR_ACTION_SET_PARK_NAME = 5676,
|
||||
STR_ACTION_OPEN_CLOSE_PARK = 5677,
|
||||
STR_ACTION_BUY_LAND_RIGHTS = 5678,
|
||||
STR_ACTION_PLACE_PARK_ENTRANCE = 5679,
|
||||
STR_ACTION_REMOVE_PARK_ENTRANCE = 5680,
|
||||
STR_ACTION_SET_MAZE_TRACK = 5681,
|
||||
STR_ACTION_SET_PARK_ENTRANCE_FEE = 5682,
|
||||
STR_ACTION_SET_STAFF_COLOUR = 5683,
|
||||
STR_ACTION_PLACE_FENCE = 5684,
|
||||
STR_ACTION_REMOVE_FENCE = 5685,
|
||||
STR_ACTION_PLACE_LARGE_SCENERY = 5686,
|
||||
STR_ACTION_SET_CURRENT_LOAN = 5687,
|
||||
STR_ACTION_SET_RESEARCH_FUNDING = 5688,
|
||||
STR_ACTION_PLACE_TRACK_DESIGN = 5689,
|
||||
STR_ACTION_START_MARKETING_CAMPAIGN = 5690,
|
||||
STR_ACTION_PLACE_MAZE_DESIGN = 5691,
|
||||
STR_ACTION_PLACE_BANNER = 5692,
|
||||
STR_ACTION_REMOVE_BANNER = 5693,
|
||||
STR_ACTION_SET_SCENERY_COLOUR = 5694,
|
||||
STR_ACTION_SET_FENCE_COLOUR = 5695,
|
||||
STR_ACTION_SET_LARGE_SCENERY_COLOUR = 5696,
|
||||
STR_ACTION_SET_BANNER_COLOUR = 5697,
|
||||
STR_ACTION_SET_LAND_OWNERSHIP = 5698,
|
||||
STR_ACTION_CLEAR_SCENERY = 5699,
|
||||
STR_ACTION_SET_BANNER_NAME = 5700,
|
||||
STR_ACTION_SET_SIGN_NAME = 5701,
|
||||
STR_ACTION_SET_BANNER_STYLE = 5702,
|
||||
STR_ACTION_SET_SIGN_STYLE = 5703,
|
||||
STR_ACTION_SET_PLAYER_GROUP = 5704,
|
||||
STR_ACTION_MODIFY_GROUPS = 5705,
|
||||
STR_ACTION_SET_WATER_LEVEL = 5648,
|
||||
STR_ACTION_CREATE_RIDE = 5649,
|
||||
STR_ACTION_REMOVE_RIDE = 5650,
|
||||
STR_ACTION_BUILD_RIDE = 5651,
|
||||
STR_ACTION_RIDE_PROPERTIES = 5652,
|
||||
STR_ACTION_SCENERY = 5653,
|
||||
STR_ACTION_PATH = 5654,
|
||||
STR_ACTION_GUEST = 5655,
|
||||
STR_ACTION_STAFF = 5656,
|
||||
STR_ACTION_PARK_PROPERTIES = 5657,
|
||||
STR_ACTION_PARK_FUNDING = 5658,
|
||||
STR_ACTION_KICK_PLAYER = 5659,
|
||||
STR_ACTION_MODIFY_GROUPS = 5660,
|
||||
STR_ACTION_SET_PLAYER_GROUP = 5661,
|
||||
|
||||
STR_CANT_SET_TO_THIS_GROUP = 5705,
|
||||
STR_CANT_REMOVE_GROUP_THAT_PLAYERS_BELONG_TO = 5706,
|
||||
STR_THIS_GROUP_CANNOT_BE_MODIFIED = 5707,
|
||||
STR_CANT_CHANGE_GROUP_THAT_THE_HOST_BELONGS_TO = 5708,
|
||||
@@ -2341,8 +2298,6 @@ enum {
|
||||
STR_ENTER_NEW_NAME_FOR_THIS_GROUP = 5711,
|
||||
STR_CANT_MODIFY_PERMISSION_THAT_YOU_DO_NOT_HAVE_YOURSELF = 5712,
|
||||
|
||||
STR_ACTION_KICK_PLAYER = 5713,
|
||||
|
||||
// Have to include resource strings (from scenarios and objects) for the time being now that language is partially working
|
||||
STR_COUNT = 32768
|
||||
};
|
||||
|
||||
@@ -219,9 +219,16 @@ void NetworkPlayer::AddMoneySpent(money32 cost)
|
||||
window_invalidate_by_number(WC_PLAYER, id);
|
||||
}
|
||||
|
||||
int NetworkActions::FindGameCommand(int command)
|
||||
int NetworkActions::FindCommand(int command)
|
||||
{
|
||||
auto it = std::find_if(actions.begin(), actions.end(), [&command](NetworkAction const& action) { return action.game_command == command; });
|
||||
auto it = std::find_if(actions.begin(), actions.end(), [&command](NetworkAction const& action) {
|
||||
for (auto it = action.commands.begin(); it != action.commands.end(); it++) {
|
||||
if ((*it) == command) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
if (it != actions.end()) {
|
||||
return it - actions.begin();
|
||||
}
|
||||
@@ -285,9 +292,9 @@ bool NetworkGroup::CanPerformAction(size_t index)
|
||||
return (actions_allowed[byte] & (1 << bit)) ? true : false;
|
||||
}
|
||||
|
||||
bool NetworkGroup::CanPerformGameCommand(int command)
|
||||
bool NetworkGroup::CanPerformCommand(int command)
|
||||
{
|
||||
int action = gNetworkActions.FindGameCommand(command);
|
||||
int action = gNetworkActions.FindCommand(command);
|
||||
if (action != -1) {
|
||||
return CanPerformAction(action);
|
||||
}
|
||||
@@ -566,15 +573,15 @@ bool Network::Init()
|
||||
group_list.push_back(std::move(admin));
|
||||
std::unique_ptr<NetworkGroup> spectator(new NetworkGroup()); // change to make_unique in c++14
|
||||
spectator->SetName("Spectator");
|
||||
spectator->ToggleActionPermission(0);
|
||||
spectator->ToggleActionPermission(0); // Chat
|
||||
spectator->id = 1;
|
||||
group_list.push_back(std::move(spectator));
|
||||
std::unique_ptr<NetworkGroup> user(new NetworkGroup()); // change to make_unique in c++14
|
||||
user->SetName("User");
|
||||
user->actions_allowed.fill(0xFF);
|
||||
user->ToggleActionPermission(59);
|
||||
user->ToggleActionPermission(60);
|
||||
user->ToggleActionPermission(61);
|
||||
user->ToggleActionPermission(14); // Kick Player
|
||||
user->ToggleActionPermission(15); // Modify Groups
|
||||
user->ToggleActionPermission(16); // Set Player Group
|
||||
user->id = 2;
|
||||
group_list.push_back(std::move(user));
|
||||
SetDefaultGroup(1);
|
||||
@@ -1643,10 +1650,8 @@ void Network::Server_Handle_CHAT(NetworkConnection& connection, NetworkPacket& p
|
||||
{
|
||||
if (connection.player) {
|
||||
NetworkGroup* group = GetGroupByID(connection.player->group);
|
||||
if (group) {
|
||||
if (!group->CanPerformGameCommand(-1)) {
|
||||
return;
|
||||
}
|
||||
if (!group || (group && !group->CanPerformCommand(-1))) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
const char* text = packet.ReadString();
|
||||
@@ -1688,7 +1693,7 @@ void Network::Server_Handle_GAMECMD(NetworkConnection& connection, NetworkPacket
|
||||
|
||||
// Check if player's group permission allows command to run
|
||||
NetworkGroup* group = GetGroupByID(connection.player->group);
|
||||
if (group && !group->CanPerformGameCommand(commandCommand)) {
|
||||
if (!group || (group && !group->CanPerformCommand(commandCommand))) {
|
||||
Server_Send_SHOWERROR(connection, STR_CANT_DO_THIS, STR_PERMISSION_DENIED);
|
||||
return;
|
||||
}
|
||||
@@ -1967,6 +1972,7 @@ void game_command_set_player_group(int* eax, int* ebx, int* ecx, int* edx, int*
|
||||
uint8 playerid = (uint8)*ecx;
|
||||
uint8 groupid = (uint8)*edx;
|
||||
NetworkPlayer* player = gNetwork.GetPlayerByID(playerid);
|
||||
NetworkGroup* fromgroup = gNetwork.GetGroupByID(game_command_playerid);
|
||||
if (!player) {
|
||||
*ebx = MONEY32_UNDEFINED;
|
||||
return;
|
||||
@@ -1980,6 +1986,11 @@ void game_command_set_player_group(int* eax, int* ebx, int* ecx, int* edx, int*
|
||||
*ebx = MONEY32_UNDEFINED;
|
||||
return;
|
||||
}
|
||||
if (groupid == 0 && fromgroup && fromgroup->id != 0) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, uint16) = STR_CANT_SET_TO_THIS_GROUP;
|
||||
*ebx = MONEY32_UNDEFINED;
|
||||
return;
|
||||
}
|
||||
if (*ebx & GAME_COMMAND_FLAG_APPLY) {
|
||||
player->group = groupid;
|
||||
window_invalidate_by_number(WC_PLAYER, playerid);
|
||||
@@ -2035,14 +2046,12 @@ void game_command_modify_groups(int *eax, int *ebx, int *ecx, int *edx, int *esi
|
||||
}
|
||||
NetworkGroup* mygroup = nullptr;
|
||||
NetworkPlayer* player = gNetwork.GetPlayerByID(game_command_playerid);
|
||||
if (player) {
|
||||
if (player && !all) {
|
||||
mygroup = gNetwork.GetGroupByID(player->group);
|
||||
if (mygroup) {
|
||||
if (!all && !mygroup->CanPerformAction(index)) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, uint16) = STR_CANT_MODIFY_PERMISSION_THAT_YOU_DO_NOT_HAVE_YOURSELF;
|
||||
*ebx = MONEY32_UNDEFINED;
|
||||
return;
|
||||
}
|
||||
if (!mygroup || (mygroup && !mygroup->CanPerformAction(index))) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, uint16) = STR_CANT_MODIFY_PERMISSION_THAT_YOU_DO_NOT_HAVE_YOURSELF;
|
||||
*ebx = MONEY32_UNDEFINED;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (*ebx & GAME_COMMAND_FLAG_APPLY) {
|
||||
@@ -2096,6 +2105,11 @@ void game_command_modify_groups(int *eax, int *ebx, int *ecx, int *edx, int *esi
|
||||
}
|
||||
}break;
|
||||
case 4:{ // set default group
|
||||
if (groupid == 0) {
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE, uint16) = STR_CANT_SET_TO_THIS_GROUP;
|
||||
*ebx = MONEY32_UNDEFINED;
|
||||
return;
|
||||
}
|
||||
if (*ebx & GAME_COMMAND_FLAG_APPLY) {
|
||||
gNetwork.SetDefaultGroup(groupid);
|
||||
}
|
||||
|
||||
@@ -166,79 +166,31 @@ class NetworkAction
|
||||
{
|
||||
public:
|
||||
rct_string_id name;
|
||||
int game_command;
|
||||
std::vector<int> commands;
|
||||
};
|
||||
|
||||
class NetworkActions
|
||||
{
|
||||
public:
|
||||
int FindGameCommand(int command);
|
||||
int FindCommand(int command);
|
||||
const std::vector<NetworkAction> actions = {
|
||||
{STR_ACTION_CHAT, -1},
|
||||
{STR_ACTION_SET_RIDE_APPEARANCE, GAME_COMMAND_SET_RIDE_APPEARANCE},
|
||||
//{STR_NONE, GAME_COMMAND_SET_LAND_HEIGHT},
|
||||
{STR_ACTION_TOGGLE_PAUSE, GAME_COMMAND_TOGGLE_PAUSE},
|
||||
{STR_ACTION_PLACE_TRACK, GAME_COMMAND_PLACE_TRACK},
|
||||
{STR_ACTION_REMOVE_TRACK, GAME_COMMAND_REMOVE_TRACK},
|
||||
//{STR_NONE, GAME_COMMAND_LOAD_OR_QUIT},
|
||||
{STR_ACTION_CREATE_RIDE, GAME_COMMAND_CREATE_RIDE},
|
||||
{STR_ACTION_REMOVE_RIDE, GAME_COMMAND_DEMOLISH_RIDE},
|
||||
{STR_ACTION_SET_RIDE_STATUS, GAME_COMMAND_SET_RIDE_STATUS},
|
||||
{STR_ACTION_SET_RIDE_VEHICLES, GAME_COMMAND_SET_RIDE_VEHICLES},
|
||||
{STR_ACTION_SET_RIDE_NAME, GAME_COMMAND_SET_RIDE_NAME},
|
||||
{STR_ACTION_SET_RIDE_SETTING, GAME_COMMAND_SET_RIDE_SETTING},
|
||||
{STR_ACTION_PLACE_RIDE_ENTRANCE_EXIT, GAME_COMMAND_PLACE_RIDE_ENTRANCE_OR_EXIT},
|
||||
{STR_ACTION_REMOVE_RIDE_ENTRANCE_EXIT, GAME_COMMAND_REMOVE_RIDE_ENTRANCE_OR_EXIT},
|
||||
{STR_ACTION_REMOVE_SCENERY, GAME_COMMAND_REMOVE_SCENERY},
|
||||
{STR_ACTION_PLACE_SCENERY, GAME_COMMAND_PLACE_SCENERY},
|
||||
//{STR_NONE, GAME_COMMAND_SET_WATER_HEIGHT},
|
||||
{STR_ACTION_PLACE_PATH, GAME_COMMAND_PLACE_PATH},
|
||||
{STR_ACTION_PLACE_PATH_FROM_TRACK, GAME_COMMAND_PLACE_PATH_FROM_TRACK},
|
||||
{STR_ACTION_REMOVE_PATH, GAME_COMMAND_REMOVE_PATH},
|
||||
{STR_ACTION_CHANGE_SURFACE_STYLE, GAME_COMMAND_CHANGE_SURFACE_STYLE},
|
||||
{STR_ACTION_SET_RIDE_PRICE, GAME_COMMAND_SET_RIDE_PRICE},
|
||||
{STR_ACTION_SET_PEEP_NAME, GAME_COMMAND_SET_PEEP_NAME},
|
||||
{STR_ACTION_RAISE_LAND, GAME_COMMAND_RAISE_LAND},
|
||||
{STR_ACTION_LOWER_LAND, GAME_COMMAND_LOWER_LAND},
|
||||
{STR_ACTION_SMOOTH_LAND, GAME_COMMAND_EDIT_LAND_SMOOTH},
|
||||
{STR_ACTION_RAISE_WATER, GAME_COMMAND_RAISE_WATER},
|
||||
{STR_ACTION_LOWER_WATER, GAME_COMMAND_LOWER_WATER},
|
||||
{STR_ACTION_SET_BRAKES_SPEED, GAME_COMMAND_SET_BRAKES_SPEED},
|
||||
{STR_ACTION_HIRE_NEW_STAFF, GAME_COMMAND_HIRE_NEW_STAFF_MEMBER},
|
||||
{STR_ACTION_SET_STAFF_PATROL, GAME_COMMAND_SET_STAFF_PATROL},
|
||||
{STR_ACTION_FIRE_STAFF, GAME_COMMAND_FIRE_STAFF_MEMBER},
|
||||
{STR_ACTION_SET_STAFF_ORDER, GAME_COMMAND_SET_STAFF_ORDER},
|
||||
{STR_ACTION_SET_PARK_NAME, GAME_COMMAND_SET_PARK_NAME},
|
||||
{STR_ACTION_OPEN_CLOSE_PARK, GAME_COMMAND_SET_PARK_OPEN},
|
||||
{STR_ACTION_BUY_LAND_RIGHTS, GAME_COMMAND_BUY_LAND_RIGHTS},
|
||||
{STR_ACTION_PLACE_PARK_ENTRANCE, GAME_COMMAND_PLACE_PARK_ENTRANCE},
|
||||
{STR_ACTION_REMOVE_PARK_ENTRANCE, GAME_COMMAND_REMOVE_PARK_ENTRANCE},
|
||||
{STR_ACTION_SET_MAZE_TRACK, GAME_COMMAND_SET_MAZE_TRACK},
|
||||
{STR_ACTION_SET_PARK_ENTRANCE_FEE, GAME_COMMAND_SET_PARK_ENTRANCE_FEE},
|
||||
{STR_ACTION_SET_STAFF_COLOUR, GAME_COMMAND_SET_STAFF_COLOUR},
|
||||
{STR_ACTION_PLACE_FENCE, GAME_COMMAND_PLACE_FENCE},
|
||||
{STR_ACTION_REMOVE_FENCE, GAME_COMMAND_REMOVE_FENCE},
|
||||
{STR_ACTION_PLACE_LARGE_SCENERY, GAME_COMMAND_PLACE_LARGE_SCENERY},
|
||||
{STR_ACTION_SET_CURRENT_LOAN, GAME_COMMAND_SET_CURRENT_LOAN},
|
||||
{STR_ACTION_SET_RESEARCH_FUNDING, GAME_COMMAND_SET_RESEARCH_FUNDING},
|
||||
{STR_ACTION_PLACE_TRACK_DESIGN, GAME_COMMAND_PLACE_TRACK_DESIGN},
|
||||
{STR_ACTION_START_MARKETING_CAMPAIGN, GAME_COMMAND_START_MARKETING_CAMPAIGN},
|
||||
{STR_ACTION_PLACE_MAZE_DESIGN, GAME_COMMAND_PLACE_MAZE_DESIGN},
|
||||
{STR_ACTION_PLACE_BANNER, GAME_COMMAND_PLACE_BANNER},
|
||||
{STR_ACTION_REMOVE_BANNER, GAME_COMMAND_REMOVE_BANNER},
|
||||
{STR_ACTION_SET_SCENERY_COLOUR, GAME_COMMAND_SET_SCENERY_COLOUR},
|
||||
{STR_ACTION_SET_FENCE_COLOUR, GAME_COMMAND_SET_FENCE_COLOUR},
|
||||
{STR_ACTION_SET_LARGE_SCENERY_COLOUR, GAME_COMMAND_SET_LARGE_SCENERY_COLOUR},
|
||||
{STR_ACTION_SET_BANNER_COLOUR, GAME_COMMAND_SET_BANNER_COLOUR},
|
||||
{STR_ACTION_SET_LAND_OWNERSHIP, GAME_COMMAND_SET_LAND_OWNERSHIP},
|
||||
{STR_ACTION_CLEAR_SCENERY, GAME_COMMAND_CLEAR_SCENERY},
|
||||
{STR_ACTION_SET_BANNER_NAME, GAME_COMMAND_SET_BANNER_NAME},
|
||||
{STR_ACTION_SET_SIGN_NAME, GAME_COMMAND_SET_SIGN_NAME},
|
||||
{STR_ACTION_SET_BANNER_STYLE, GAME_COMMAND_SET_BANNER_STYLE},
|
||||
{STR_ACTION_SET_SIGN_STYLE, GAME_COMMAND_SET_SIGN_STYLE},
|
||||
{STR_ACTION_SET_PLAYER_GROUP, GAME_COMMAND_SET_PLAYER_GROUP},
|
||||
{STR_ACTION_MODIFY_GROUPS, GAME_COMMAND_MODIFY_GROUPS},
|
||||
{STR_ACTION_KICK_PLAYER, GAME_COMMAND_KICK_PLAYER}
|
||||
{STR_ACTION_CHAT, {-1}},
|
||||
{STR_ACTION_TERRAFORM, {GAME_COMMAND_SET_LAND_HEIGHT, GAME_COMMAND_RAISE_LAND, GAME_COMMAND_LOWER_LAND, GAME_COMMAND_EDIT_LAND_SMOOTH, GAME_COMMAND_CHANGE_SURFACE_STYLE}},
|
||||
{STR_ACTION_SET_WATER_LEVEL, {GAME_COMMAND_SET_WATER_HEIGHT, GAME_COMMAND_RAISE_WATER, GAME_COMMAND_LOWER_WATER}},
|
||||
{STR_ACTION_TOGGLE_PAUSE, {GAME_COMMAND_TOGGLE_PAUSE}},
|
||||
{STR_ACTION_CREATE_RIDE, {GAME_COMMAND_CREATE_RIDE}},
|
||||
{STR_ACTION_REMOVE_RIDE, {GAME_COMMAND_DEMOLISH_RIDE}},
|
||||
{STR_ACTION_BUILD_RIDE, {GAME_COMMAND_PLACE_TRACK, GAME_COMMAND_REMOVE_TRACK, GAME_COMMAND_SET_MAZE_TRACK, GAME_COMMAND_PLACE_TRACK_DESIGN, GAME_COMMAND_PLACE_MAZE_DESIGN, GAME_COMMAND_PLACE_RIDE_ENTRANCE_OR_EXIT, GAME_COMMAND_REMOVE_RIDE_ENTRANCE_OR_EXIT}},
|
||||
{STR_ACTION_RIDE_PROPERTIES, {GAME_COMMAND_SET_RIDE_NAME, GAME_COMMAND_SET_RIDE_APPEARANCE, GAME_COMMAND_SET_RIDE_STATUS, GAME_COMMAND_SET_RIDE_VEHICLES, GAME_COMMAND_SET_RIDE_SETTING, GAME_COMMAND_SET_RIDE_PRICE, GAME_COMMAND_SET_BRAKES_SPEED}},
|
||||
{STR_ACTION_SCENERY, {GAME_COMMAND_REMOVE_SCENERY, GAME_COMMAND_PLACE_SCENERY, GAME_COMMAND_SET_BRAKES_SPEED, GAME_COMMAND_REMOVE_FENCE, GAME_COMMAND_PLACE_FENCE, GAME_COMMAND_REMOVE_LARGE_SCENERY, GAME_COMMAND_PLACE_LARGE_SCENERY, GAME_COMMAND_PLACE_BANNER, GAME_COMMAND_REMOVE_BANNER, GAME_COMMAND_SET_SCENERY_COLOUR, GAME_COMMAND_SET_FENCE_COLOUR, GAME_COMMAND_SET_LARGE_SCENERY_COLOUR, GAME_COMMAND_SET_BANNER_COLOUR, GAME_COMMAND_CLEAR_SCENERY, GAME_COMMAND_SET_BANNER_NAME, GAME_COMMAND_SET_SIGN_NAME, GAME_COMMAND_SET_BANNER_STYLE, GAME_COMMAND_SET_SIGN_STYLE}},
|
||||
{STR_ACTION_PATH, {GAME_COMMAND_PLACE_PATH, GAME_COMMAND_PLACE_PATH_FROM_TRACK, GAME_COMMAND_REMOVE_PATH}},
|
||||
{STR_ACTION_GUEST, {GAME_COMMAND_SET_PEEP_NAME}},
|
||||
{STR_ACTION_STAFF, {GAME_COMMAND_HIRE_NEW_STAFF_MEMBER, GAME_COMMAND_SET_STAFF_PATROL, GAME_COMMAND_FIRE_STAFF_MEMBER, GAME_COMMAND_SET_STAFF_ORDER, GAME_COMMAND_SET_STAFF_COLOUR}},
|
||||
{STR_ACTION_PARK_PROPERTIES, {GAME_COMMAND_SET_PARK_NAME, GAME_COMMAND_SET_PARK_OPEN, GAME_COMMAND_SET_PARK_ENTRANCE_FEE, GAME_COMMAND_SET_LAND_OWNERSHIP, GAME_COMMAND_BUY_LAND_RIGHTS, GAME_COMMAND_PLACE_PARK_ENTRANCE, GAME_COMMAND_REMOVE_PARK_ENTRANCE}},
|
||||
{STR_ACTION_PARK_FUNDING, {GAME_COMMAND_SET_CURRENT_LOAN, GAME_COMMAND_SET_RESEARCH_FUNDING, GAME_COMMAND_START_MARKETING_CAMPAIGN}},
|
||||
{STR_ACTION_KICK_PLAYER, {GAME_COMMAND_KICK_PLAYER}},
|
||||
{STR_ACTION_MODIFY_GROUPS, {GAME_COMMAND_MODIFY_GROUPS}},
|
||||
{STR_ACTION_SET_PLAYER_GROUP, {GAME_COMMAND_SET_PLAYER_GROUP}}
|
||||
};
|
||||
};
|
||||
|
||||
@@ -252,7 +204,7 @@ public:
|
||||
void FreeNameStringId();
|
||||
void ToggleActionPermission(size_t index);
|
||||
bool CanPerformAction(size_t index);
|
||||
bool CanPerformGameCommand(int command);
|
||||
bool CanPerformCommand(int command);
|
||||
std::string& GetName();
|
||||
void SetName(std::string name);
|
||||
rct_string_id GetNameStringId();
|
||||
|
||||
Reference in New Issue
Block a user