| 940 | } |
| 941 | |
| 942 | void CityView::orderDisableWeapon(int index, bool disable) |
| 943 | { |
| 944 | weaponDisabled[index] = disable; |
| 945 | |
| 946 | std::vector<sp<VEquipment>> currentWeapons; |
| 947 | if (!state->current_city->cityViewSelectedVehicles.empty()) |
| 948 | { |
| 949 | auto vehicle = state->current_city->cityViewSelectedVehicles.front(); |
| 950 | if (vehicle->owner != state->getPlayer()) |
| 951 | { |
| 952 | if (state->current_city->cityViewSelectedVehicles.size() > 1) |
| 953 | { |
| 954 | vehicle = *++state->current_city->cityViewSelectedVehicles.begin(); |
| 955 | } |
| 956 | else |
| 957 | { |
| 958 | vehicle = nullptr; |
| 959 | } |
| 960 | } |
| 961 | if (vehicle) |
| 962 | { |
| 963 | for (auto &e : vehicle->equipment) |
| 964 | { |
| 965 | if (e->type->type == EquipmentSlotType::VehicleWeapon) |
| 966 | { |
| 967 | currentWeapons.push_back(e); |
| 968 | } |
| 969 | } |
| 970 | } |
| 971 | } |
| 972 | if (currentWeapons.size() > index) |
| 973 | { |
| 974 | currentWeapons[index]->disabled = disable; |
| 975 | } |
| 976 | } |
| 977 | |
| 978 | void CityView::setSelectedTab(int tabIndex) |
| 979 | { |