| 646 | | ED4_AREA_LEVEL ED4_base::get_area_level(ED4_multi_species_manager **multi_species_manager) const |
| 647 | | { |
| 648 | | |
| 649 | | ED4_base *temp_manager; |
| 650 | | temp_manager = get_parent(ED4_L_AREA); |
| 651 | | if (!temp_manager) { |
| 652 | | return ED4_A_ERROR; |
| 653 | | } |
| 654 | | |
| 655 | | ED4_area_manager *temp_parent; |
| 656 | | temp_parent = temp_manager->to_area_manager(); |
| 657 | | |
| 658 | | if (temp_parent == ED4_ROOT->top_area_man) |
| 659 | | { |
| 660 | | if (multi_species_manager) { |
| 661 | | *multi_species_manager = temp_parent->get_defined_level(ED4_L_MULTI_SPECIES)->to_multi_species_manager(); |
| 662 | | } |
| 663 | | return ED4_A_TOP_AREA; |
| 664 | | } |
| 665 | | |
| 666 | | if (temp_parent == ED4_ROOT->middle_area_man) |
| 667 | | { |
| 668 | | if (multi_species_manager) { |
| 669 | | *multi_species_manager = temp_parent->get_defined_level(ED4_L_MULTI_SPECIES)->to_multi_species_manager(); |
| 670 | | } |
| 671 | | return ED4_A_MIDDLE_AREA; |
| 672 | | } |
| 673 | | |
| 674 | | return ED4_A_ERROR; |
| | 646 | ED4_AREA_LEVEL ED4_base::get_area_level(ED4_multi_species_manager **multi_species_manager) const { |
| | 647 | ED4_base *area_base = get_parent(ED4_L_AREA); |
| | 648 | ED4_AREA_LEVEL result = ED4_A_ERROR; |
| | 649 | |
| | 650 | if (area_base) { |
| | 651 | ED4_area_manager *area_man = area_base->to_area_manager(); |
| | 652 | |
| | 653 | if (area_man == ED4_ROOT->top_area_man) result = ED4_A_TOP_AREA; |
| | 654 | else if (area_man == ED4_ROOT->middle_area_man) result = ED4_A_MIDDLE_AREA; |
| | 655 | |
| | 656 | if (result != ED4_A_ERROR && multi_species_manager) { |
| | 657 | *multi_species_manager = area_man->get_defined_level(ED4_L_MULTI_SPECIES)->to_multi_species_manager(); |
| | 658 | } |
| | 659 | } |
| | 660 | return result; |