| 929 | } |
| 930 | |
| 931 | bool Units::assignTrainer(df::unit *unit, int32_t trainer_id) { |
| 932 | CHECK_NULL_POINTER(unit); |
| 933 | if (!isTamable(unit) || isDomesticated(unit) || isMarkedForTraining(unit)) |
| 934 | return false; |
| 935 | else if (trainer_id != -1 && !df::unit::find(trainer_id)) |
| 936 | return false; |
| 937 | |
| 938 | auto assignment = new df::training_assignment(); |
| 939 | assignment->animal_id = unit->id; |
| 940 | assignment->trainer_id = trainer_id; |
| 941 | assignment->flags.whole = 0; |
| 942 | assignment->flags.bits.any_trainer = trainer_id == -1; |
| 943 | |
| 944 | insert_into_vector(plotinfo->training.training_assignments, |
| 945 | &df::training_assignment::animal_id, assignment); |
| 946 | return true; |
| 947 | } |
| 948 | |
| 949 | bool Units::unassignTrainer(df::unit *unit) { |
| 950 | CHECK_NULL_POINTER(unit); |
nothing calls this directly
no test coverage detected