コード例 #1
0
int CityManagementMenuComponent::handleObjectMenuSelect(SceneObject* sceneObject, CreatureObject* player, byte selectID) {
	ManagedReference<CityRegion*> city = sceneObject->getCityRegion();

	if (city == NULL)
		return 1;

	Locker lock(city, player);

	CityManager* cityManager = player->getZoneServer()->getCityManager();

	switch (selectID) {
	case 212: //Status Report
		cityManager->sendStatusReport(city, player, sceneObject);
		break;
	case 213: //Citizenship Report
		cityManager->sendCitizenshipReport(city, player, sceneObject);
		break;
	case 214: // Structure Report
		cityManager->sendStructureReport(city, player, sceneObject);
		break;
	case 215: //Treasury Report
		cityManager->sendTreasuryReport(city, player, sceneObject);
		break;
	case 217:  // Change Name
		cityManager->sendChangeCityName(city, player);
		break;
	case 218: //Manage Militia
		if (city->isMayor(player->getObjectID()))
			cityManager->sendManageMilitia(city, player, sceneObject);
		break;
	case 219: //Adjust Taxes
		cityManager->promptAdjustTaxes(city, player, sceneObject);
		break;
	case 220: //Treasury Deposit
		cityManager->promptDepositCityTreasury(city, player, sceneObject);
		break;
	case 221: //Withdraw Treasury
		cityManager->promptWithdrawCityTreasury(city, player, sceneObject);
		break;
	case 222: //Register/Unregister
		if (city->isRegistered())
			cityManager->promptUnregisterCity(city, player, sceneObject);
		else
			cityManager->promptRegisterCity(city, player, sceneObject);
		break;
	case 223: //City Advancement
		cityManager->sendCityAdvancement(city, player, sceneObject);
		break;
	case 224: //Maintenance Report
		cityManager->sendMaintenanceReport(city, player, sceneObject);
		break;
	case 225: //Set City Specialization
		cityManager->promptCitySpecialization(city, player, sceneObject);
		break;
	case 226: //Toggle Zoning Enabled
		cityManager->toggleZoningEnabled(city, player);
		break;
	case 232: // Restore Mayor Citizenship
		cityManager->fixMayor(city, player);
		break;

#ifdef CITY_DEBUG
	case 228:
		cityManager->expandCity(city);
		break;
	case 229:
		cityManager->contractCity(city);
		break;
	case 230:
		cityManager->processCityUpdate(city);
		break;
	case 231:
		cityManager->updateCityVoting(city,true);
		break;
#endif

	}
	return 0;
}