| 604 | }; |
| 605 | |
| 606 | int32_t parse_priority(color_ostream &out, vector<string> ¶meters) |
| 607 | { |
| 608 | int32_t default_priority = game->main_interface.designation.priority; |
| 609 | |
| 610 | for (auto it = parameters.begin(); it != parameters.end(); ++it) |
| 611 | { |
| 612 | const string &s = *it; |
| 613 | if (s.substr(0, 2) == "p=" || s.substr(0, 2) == "-p") |
| 614 | { |
| 615 | if (s.size() >= 3) |
| 616 | { |
| 617 | auto priority = int32_t(1000 * atof(s.c_str() + 2)); |
| 618 | parameters.erase(it); |
| 619 | return priority; |
| 620 | } |
| 621 | else if (it + 1 != parameters.end()) |
| 622 | { |
| 623 | auto priority = int32_t(1000 * atof((*(it + 1)).c_str())); |
| 624 | parameters.erase(it, it + 2); |
| 625 | return priority; |
| 626 | } |
| 627 | else |
| 628 | { |
| 629 | out.printerr("invalid priority specified; reverting to {}\n", default_priority); |
| 630 | break; |
| 631 | } |
| 632 | } |
| 633 | } |
| 634 | |
| 635 | return default_priority; |
| 636 | } |
| 637 | |
| 638 | string forward_priority(color_ostream &out, vector<string> ¶meters) |
| 639 | { |