//--------- Begin of function FirmResearch::detect_main_menu ---------// // void FirmResearch::detect_main_menu() { //-------- detect basic info -----------// if( detect_basic_info() ) return; //----------- detect worker -----------// if( detect_worker_list() ) { disp_research_info(INFO_Y1+54, INFO_UPDATE); disp_worker_info(INFO_Y1+171, INFO_UPDATE); } //-------- detect spy button ----------// detect_spy_button(); if( !own_firm() ) return; //------ detect the select research button -------// if( button_select_research.detect() ) { research_menu_mode = RESEARCH_MENU_RESEARCH; disable_refresh = 1; // static var for disp_info() only info.disp(); disable_refresh = 0; } }
//--------- Begin of function Firm::detect_info_both ---------// // // Called by Info::detect(). Detect both cases when the firm is // under construction and is normal. // void Firm::detect_info_both() { if( under_construction ) detect_basic_info(); else { switch( firm_menu_mode ) { case FIRM_MENU_MAIN: detect_info(); break; case FIRM_MENU_SPY: case FIRM_MENU_SELECT_BRIBER: detect_spy_menu(); break; case FIRM_MENU_SET_BRIBE_AMOUNT: detect_bribe_menu(); break; case FIRM_MENU_VIEW_SECRET: if( spy_array.detect_view_secret_menu(action_spy_recno, nation_recno) ) { firm_menu_mode = FIRM_MENU_MAIN; info.disp(); } break; case FIRM_MENU_ASSASSINATE_RESULT: detect_assassinate_result(); break; } } }
//--------- Begin of function FirmMonster::detect_info ---------// // void FirmMonster::detect_info() { if( detect_basic_info() ) return; if( !config.show_ai_info && nation_recno!=nation_array.player_recno ) return; }
//--------- Begin of function Unit::detect_main_menu ---------// // void Unit::detect_main_menu() { if( detect_basic_info() ) return; if( detect_unit_profile() ) return; if( is_own_spy() ) detect_spy_menu(INFO_Y1+187); if( is_own() ) detect_button(); }
//--------- Begin of function UnitCaravan::detect_info ---------// // void UnitCaravan::detect_info() { if( detect_unit_profile() ) return; // if(!is_visible()) // return; if( detect_basic_info() ) return; if( !is_own() && !config.show_ai_info ) return; detect_stop(); if( is_own() ) { int i; int rc = button_auto_trade_group.detect(); if( rc >= 0 ) { if( remote.is_enable() ) { // ##### begin Gilbert 7/10 ######// // packet structure : <unit recno> <0=manual, 1=auto> short *shortPtr = (short *)remote.new_send_queue_msg(MSG_U_CARA_SET_AUTO, 2*sizeof(short)); *shortPtr = sprite_recno; shortPtr[1] = rc; return; // ##### end Gilbert 7/10 ######// } else { default_market_trade_mode = (char) rc; for( i = 0; i < MAX_STOP_FOR_CARAVAN; ++i ) if( stop_array[i].firm_recno && stop_array[i].firm_id == FIRM_MARKET ) set_stop_pick_up(i+1, rc ? AUTO_PICK_UP : MANUAL_PICK_UP, COMMAND_AUTO); } } if( button_duplicate_caravan.detect() ) { se_ctrl.immediate_sound("CV-M3-5"); duplicate_caravan(COMMAND_PLAYER); } } }
//--------- Begin of function UnitGod::detect_info ---------// // void UnitGod::detect_info() { if( detect_basic_info() ) return; if( detect_unit_profile() ) return; if( !is_own() ) return; if( game.game_mode == GAME_TEST ) return; if( god_res[god_id]->can_cast_power ) { // ###### begin Gilbert 14/10 ######// int rc=0; char castPowerType = 0; if( button_cast.detect() ) { // cast_power_type = 1; castPowerType = 1; rc = 1; } if( button_cast2.detect() ) { castPowerType = 2; //cast_power_type = 2; //cast_origin_x = cur_x_loc(); //cast_origin_y = cur_y_loc(); rc = 1; } //----------------------------------------// if( rc && castPowerType) { if( god_id == GOD_VIKING && castPowerType == 1 ) // summon rain, summon immediately, no need to select target go_cast_power(next_x_loc(), next_y_loc(), castPowerType, COMMAND_PLAYER); else power.issue_command(COMMAND_GOD_CAST_POWER, sprite_recno, castPowerType); } // ###### end Gilbert 14/10 ######// } }
//--------- 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 FirmInn::detect_info ---------// // void FirmInn::detect_info() { firm_inn_ptr = this; if( detect_basic_info() ) return; //-------- detect spy button ----------// if( !own_firm() ) { detect_spy_button(); return; } //-------------------------------------// if( browse_hire.detect() ) { put_det(INFO_UPDATE); } if( button_hire.detect('R') && inn_unit_count > 0 ) { // ###### begin Gilbert 31/7 #######// se_res.far_sound(center_x, center_y, 1, 'S', unit_res[inn_unit_array[browse_hire.recno()-1].unit_id]->sprite_id, "RDY" ); // ###### end Gilbert 31/7 #######// if(remote.is_enable()) { // packet structure : <firm recno>, <hire Id> <nation no> short *shortPtr=(short *)remote.new_send_queue_msg(MSG_F_INN_HIRE, 3*sizeof(short)); shortPtr[0] = firm_recno; shortPtr[1] = browse_hire.recno(); shortPtr[2] = nation_recno; } else { hire(browse_hire.recno()); } } }
//--------- Begin of function FirmFactory::detect_info ---------// // void FirmFactory::detect_info() { //-------- detect basic info -----------// if( detect_basic_info() ) return; //-------- detect workers ----------// if( detect_worker_list() ) // detect this when: it's the player's firm or the player has spies in this firm { disp_worker_list(INFO_Y1+126, INFO_UPDATE); disp_worker_info(INFO_Y1+190, INFO_UPDATE); } //-------- detect spy button ----------// detect_spy_button(); if( !own_firm() ) return; //---- detect change production button -----// if( button_change_production.detect() ) { change_production(); disp_factory_info(INFO_Y1+54, INFO_UPDATE); // ##### begin Gilbert 25/9 ######// se_ctrl.immediate_sound("TURN_ON"); // ##### end Gilbert 25/9 ######// } //-------- detect mobilize button ----------// if (button_vacate_firm.detect()) { mobilize_all_workers(COMMAND_PLAYER); } }
//--------- Begin of function FirmMine::detect_info ---------// // void FirmMine::detect_info() { //-------- detect basic info -----------// if( detect_basic_info() ) return; //----------- detect worker -----------// if( detect_worker_list() ) { disp_mine_info(INFO_Y1+52, INFO_UPDATE); disp_worker_info(INFO_Y1+191, INFO_UPDATE); } //-------- detect spy button ----------// detect_spy_button(); if( !own_firm() ) return; }
//--------- Begin of function FirmBase::detect_info ---------// // void FirmBase::detect_info() { if( detect_basic_info() ) return; if( !should_show_info() ) return; //------ detect the overseer button -----// int rc = mouse.any_click(INFO_X1+6, INFO_Y1+58, INFO_X1+5+UNIT_LARGE_ICON_WIDTH, INFO_Y1+57+UNIT_LARGE_ICON_HEIGHT, LEFT_BUTTON) ? 1 : mouse.any_click(INFO_X1+6, INFO_Y1+58, INFO_X1+5+UNIT_LARGE_ICON_WIDTH, INFO_Y1+57+UNIT_LARGE_ICON_HEIGHT, RIGHT_BUTTON) ? 2 : 0; if( rc==1 ) // display this overseer's info { selected_worker_id = 0; disp_base_info(INFO_Y1+54, INFO_UPDATE); disp_worker_list(INFO_Y1+104, INFO_UPDATE); disp_worker_info(INFO_Y1+168, INFO_UPDATE); } //--------- detect soldier info ---------// if( detect_worker_list() ) { disp_base_info(INFO_Y1+54, INFO_UPDATE); disp_worker_list(INFO_Y1+104, INFO_UPDATE); disp_worker_info(INFO_Y1+168, INFO_UPDATE); } //---------- detect spy button ----------// detect_spy_button(); if( !own_firm() ) return; //------ detect the overseer button -----// if( rc==2 ) { if(remote.is_enable()) { // packet structure : <firm recno> short *shortPtr=(short *)remote.new_send_queue_msg(MSG_FIRM_MOBL_OVERSEER, sizeof(short)); shortPtr[0] = firm_recno; } else { assign_overseer(0); // the overseer quits the camp } } //----------- detect invoke -----------// if( button_invoke.detect() ) { if(remote.is_enable()) { // ##### begin Gilbert 14/10 #######// // packet structure : <firm recno> short *shortPtr=(short *)remote.new_send_queue_msg(MSG_F_BASE_INVOKE_GOD, sizeof(short)); shortPtr[0] = firm_recno; // ##### end Gilbert 14/10 #######// } else { invoke_god(); } } //----------- detect reward -----------// if( button_reward.detect() ) { reward(selected_worker_id, COMMAND_PLAYER); // ##### begin Gilbert 26/9 ########// se_ctrl.immediate_sound("TURN_ON"); // ##### end Gilbert 26/9 ########// } }
//--------- Begin of function FirmCamp::detect_info ---------// // void FirmCamp::detect_info() { if( detect_basic_info() ) return; if( !should_show_info() ) return; //------ detect the overseer button -----// int rc = mouse.single_click(INFO_X1+6, INFO_Y1+58, INFO_X1+5+UNIT_LARGE_ICON_WIDTH, INFO_Y1+57+UNIT_LARGE_ICON_HEIGHT, 2 ); if( rc==1 ) // display this overseer's info { selected_worker_id = 0; disp_camp_info(INFO_Y1+54, INFO_UPDATE); disp_worker_list(INFO_Y1+104, INFO_UPDATE); disp_worker_info(INFO_Y1+168, INFO_UPDATE); } //--------- detect soldier info ---------// if( detect_worker_list() ) { disp_camp_info(INFO_Y1+54, INFO_UPDATE); disp_worker_list(INFO_Y1+104, INFO_UPDATE); disp_worker_info(INFO_Y1+168, INFO_UPDATE); } //---------- detect spy button ----------// detect_spy_button(); if( !own_firm() ) return; //------ detect the overseer button -----// if( rc==2 ) { if(remote.is_enable()) { // packet structure : <firm recno> short *shortPtr=(short *)remote.new_send_queue_msg(MSG_FIRM_MOBL_OVERSEER, sizeof(short)); shortPtr[0] = firm_recno; } else { assign_overseer(0); // the overseer quits the camp } } //----------- detect patrol -----------// if( button_patrol.detect() ) { if(remote.is_enable()) { // packet structure : <firm recno> short *shortPtr=(short *)remote.new_send_queue_msg(MSG_F_CAMP_PATROL, sizeof(short)); shortPtr[0] = firm_recno; } else { patrol(); } } //----------- detect reward -----------// if( button_reward.detect() ) { reward(selected_worker_id, COMMAND_PLAYER); // ##### begin Gilbert 25/9 ######// se_ctrl.immediate_sound("TURN_ON"); // ##### end Gilbert 25/9 ######// } //----- detect defense mode button -------// if( button_defense.detect() ) { // ##### begin Gilbert 25/9 ######// se_ctrl.immediate_sound( !defense_flag?(char*)"TURN_ON":(char*)"TURN_OFF"); // ##### end Gilbert 25/9 ######// if( !remote.is_enable() ) { // update RemoteMsg::toggle_camp_patrol() defense_flag = !defense_flag; } else { // packet structure : <firm recno> <defense_flag> short *shortPtr=(short *)remote.new_send_queue_msg(MSG_F_CAMP_TOGGLE_PATROL, 2*sizeof(short)); shortPtr[0] = firm_recno; shortPtr[1] = !defense_flag; } button_defense.update_bitmap( defense_flag ? (char*)"DEFENSE1" : (char*)"DEFENSE0" ); } }