//-------- Begin of function Nation::mobilize_capturer ------// // // Mobilize the capturer unit if he isn't mobilized yet. // int Nation::mobilize_capturer(int unitRecno) { //--- if the picked unit is an overseer of an existng camp ---// Unit* unitPtr = unit_array[unitRecno]; if( unitPtr->unit_mode == UNIT_MODE_OVERSEE ) { Firm* firmPtr = firm_array[unitPtr->unit_mode_para]; Town* townPtr; //-- can recruit from either a command base or seat of power --// //-- train a villager with leadership to replace current overseer --// int i; for( i=0 ; i<firmPtr->linked_town_count ; i++ ) { townPtr = town_array[ firmPtr->linked_town_array[i] ]; if( townPtr->nation_recno != nation_recno ) continue; //--- first try to train a unit who is racially homogenous to the commander ---// int unitRecno = townPtr->recruit( SKILL_LEADING, firmPtr->majority_race(), COMMAND_AI ); //--- if unsucessful, then try to train a unit whose race is the same as the majority of the town ---// if( !unitRecno ) unitRecno = townPtr->recruit( SKILL_LEADING, townPtr->majority_race(), COMMAND_AI ); if( unitRecno ) { add_action(townPtr->loc_x1, townPtr->loc_y1, -1, -1, ACTION_AI_ASSIGN_OVERSEER, FIRM_CAMP); break; } } if( i==firmPtr->linked_town_count ) // unsuccessful return 0; //------- mobilize the current overseer --------// firmPtr->mobilize_overseer(); } return 1; }