// -------- begin of function FirmWar::detect_firm_info --------// // void FirmWar::detect_firm_info() { if( is_own() ) { //---------- detect cancel build ------------// if(build_unit_id) { if(button_cancel_build.detect()) { se_ctrl.immediate_sound("TURN_OFF"); if( !remote.is_enable() ) cancel_build_unit(); else { short *shortPtr = (short *)remote.new_send_queue_msg(MSG_F_WAR_SKIP_WEAPON, sizeof(short) ); shortPtr[0] = firm_recno; } } } //------ detect the select build button -------// if( button_select_build.detect() ) { war_tech_class = TECH_CLASS_WEAPON; war_menu_mode = WAR_MENU_BUILD; se_ctrl.immediate_sound("TURN_ON"); } if( button_select_build2.detect() ) { war_tech_class = TECH_CLASS_MEGA_WEAPON; war_menu_mode = WAR_MENU_BUILD; se_ctrl.immediate_sound("TURN_ON"); } // ------- display rally points button ------// if( button_go_rally.detect() ) { world.go_loc( rally_dest_x, rally_dest_y, 0 ); se_ctrl.immediate_sound("TURN_ON"); } if( button_clear_rally.detect() ) { clear_rally_point(COMMAND_PLAYER); se_ctrl.immediate_sound("TURN_OFF"); } } }
//--------- Begin of function FirmHarbor::detect_main_menu ---------// // void FirmHarbor::detect_main_menu() { firm_harbor_ptr = this; if( detect_basic_info() ) return; if( !own_firm() ) return; if( browse_ship.detect() ) put_det(INFO_UPDATE); if( detect_det() ) return; //------- detect the build button ---------// if( button_build.detect() ) { harbor_menu_mode = HARBOR_MENU_BUILD; disable_refresh = 1; // static var for disp_info() only info.disp(); disable_refresh = 0; } //-------- detect the sail button ---------// if( button_sail.detect() && browse_ship.recno() > 0 ) sail_ship( ship_recno_array[browse_ship.recno()-1], COMMAND_PLAYER ); //---------- detect cancel build button -----------// if(build_unit_id) { if(button_cancel_build.detect()) { if( !remote.is_enable() ) cancel_build_unit(); else { short *shortPtr = (short *)remote.new_send_queue_msg(MSG_F_HARBOR_SKIP_SHIP, sizeof(short)); shortPtr[0] = firm_recno; } } } }
//--------- Begin of function FirmHarbor::remove_queue ---------// void FirmHarbor::remove_queue(int unitId) { for( int i=build_queue_count-1 ; i>=0 ; i-- ) { if( build_queue_array[i] == unitId ) { err_when( build_queue_count > MAX_BUILD_SHIP_QUEUE ); misc.del_array_rec( build_queue_array, build_queue_count, sizeof(build_queue_array[0]), i+1 ); build_queue_count--; return; } } if(build_unit_id==unitId) cancel_build_unit(); }