Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CommandArea GetCommandArea(const CommandPacket *cp) {
- byte cmd = (cp->cmd & CMD_ID_MASK);
- switch (cmd) {
- case CMD_BUILD_RAIL_STATION: {
- Axis axis = Extract<Axis, 4, 1>(cp->p1);
- byte numtracks = GB(cp->p1, 8, 8);
- byte plat_len = GB(cp->p1, 16, 8);
- if (axis == AXIS_X)
- return CommandArea(cp->tile, plat_len, numtracks);
- return CommandArea(cp->tile, numtracks, plat_len);
- }
- case CMD_BUILD_AIRPORT: {
- const AirportSpec *as = AirportSpec::Get(cp->p1);
- if (!as->IsAvailable()) return CommandArea(cp->tile);
- return CommandArea(cp->tile, as->size_x, as->size_y);
- }
- case CMD_PLANT_TREE:
- return CommandArea(cp->tile, cp->p2);
- case CMD_BUILD_RAILROAD_TRACK:
- case CMD_REMOVE_RAILROAD_TRACK:
- case CMD_BUILD_LONG_ROAD:
- case CMD_REMOVE_LONG_ROAD:
- case CMD_CLEAR_AREA:
- case CMD_BUILD_CANAL:
- case CMD_LEVEL_LAND:
- case CMD_BUILD_BRIDGE:
- // TODO diagonal areas
- return CommandArea(cp->tile, cp->p1);
- default:
- return CommandArea(cp->tile);
- }
- NOT_REACHED();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement