Exemple #1
0
// -------- 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");
		}
	}
}
Exemple #2
0
//--------- 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;
			}
		}
	}
}
Exemple #3
0
//--------- 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();
}