Project

General

Profile

Feature #809 » 0019-Unhardcode-wld.map-from-can_unit_change_homecity_to.patch

main - Marko Lindqvist, 08/25/2024 11:03 PM

View differences:

client/gui-gtk-3.22/citydlg.c
G_CALLBACK(unit_homecity_callback),
GINT_TO_POINTER(punit->id));
gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
gtk_widget_set_sensitive(item, can_unit_change_homecity_to(punit, pcity));
gtk_widget_set_sensitive(item, can_unit_change_homecity_to(&(wld.map),
punit, pcity));
item = gtk_menu_item_new_with_mnemonic(_("U_pgrade unit"));
gtk_widget_set_sensitive(item, action_ever_possible(ACTION_UPGRADE_UNIT));
client/gui-gtk-3.22/menu.c
units_can_upgrade(&(wld.map), punits));
/* "UNIT_CONVERT" dealt with below */
menu_entry_set_sensitive("UNIT_HOMECITY",
can_units_do(punits, can_unit_change_homecity));
can_units_do_on_map(&(wld.map), punits, can_unit_change_homecity));
menu_entry_set_sensitive("UNIT_UNLOAD_TRANSPORTER",
units_are_occupied(punits));
menu_entry_set_sensitive("UNIT_BOARD",
client/gui-gtk-4.0/citydlg.c
g_signal_connect(act, "activate", G_CALLBACK(unit_homecity_callback),
GINT_TO_POINTER(punit->id));
g_simple_action_set_enabled(G_SIMPLE_ACTION(act),
can_unit_change_homecity_to(punit,
can_unit_change_homecity_to(&(wld.map), punit,
pdialog->pcity));
menu_item_append_unref(menu,
g_menu_item_new(action_id_name_translation(ACTION_HOME_CITY),
client/gui-gtk-4.0/menu.c
units_have_activity_on_tile(punits,
ACTIVITY_SENTRY));
menu_entry_set_sensitive(map, "UNIT_HOMECITY",
can_units_do(punits, can_unit_change_homecity));
can_units_do_on_map(&(wld.map), punits, can_unit_change_homecity));
menu_entry_set_sensitive(map, "UNIT_UPGRADE", units_can_upgrade(&(wld.map), punits));
menu_entry_set_sensitive(map, "UNIT_CONVERT", units_can_convert(&(wld.map), punits));
menu_entry_set_sensitive(map, "UNIT_DISBAND",
client/gui-gtk-5.0/citydlg.c
g_signal_connect(act, "activate", G_CALLBACK(unit_homecity_callback),
GINT_TO_POINTER(punit->id));
g_simple_action_set_enabled(G_SIMPLE_ACTION(act),
can_unit_change_homecity_to(punit,
can_unit_change_homecity_to(&(wld.map), punit,
pdialog->pcity));
menu_item_append_unref(menu,
g_menu_item_new(action_id_name_translation(ACTION_HOME_CITY),
client/gui-gtk-5.0/menu.c
units_have_activity_on_tile(punits,
ACTIVITY_SENTRY));
menu_entry_set_sensitive(map, "UNIT_HOMECITY",
can_units_do(punits, can_unit_change_homecity));
can_units_do_on_map(&(wld.map), punits, can_unit_change_homecity));
menu_entry_set_sensitive(map, "UNIT_UPGRADE", units_can_upgrade(&(wld.map), punits));
menu_entry_set_sensitive(map, "UNIT_CONVERT", units_can_convert(&(wld.map), punits));
menu_entry_set_sensitive(map, "UNIT_DISBAND",
client/gui-qt/citydlg.cpp
disband_action = nullptr;
}
if (can_unit_change_homecity(qunit)) {
if (can_unit_change_homecity(&(wld.map), qunit)) {
change_home = new QAction(action_id_name_translation(ACTION_HOME_CITY),
this);
connect(change_home, &QAction::triggered, this, &unit_item::change_homecity);
client/gui-qt/hudwidget.cpp
// Set homecity
if (tile_city(unit_tile(current_unit))) {
if (can_unit_change_homecity_to(current_unit,
if (can_unit_change_homecity_to(&(wld.map), current_unit,
tile_city(unit_tile(current_unit)))) {
a = new hud_action(this);
a->action_shortcut = SC_SETHOME;
client/gui-qt/menu.cpp
break;
case HOMECITY:
if (can_units_do(punits, can_unit_change_homecity)) {
if (can_units_do_on_map(&(wld.map), punits, can_unit_change_homecity)) {
i.value()->setEnabled(true);
}
break;
client/gui-sdl2/menu.c
local_hide(ID_UNIT_ORDER_PILLAGE);
}
if (pcity && can_unit_change_homecity(punit)
if (pcity != NULL && can_unit_change_homecity(&(wld.map), punit)
&& pcity->id != punit->homecity) {
local_show(ID_UNIT_ORDER_HOMECITY);
} else {
client/gui-sdl3/menu.c
local_hide(ID_UNIT_ORDER_PILLAGE);
}
if (pcity && can_unit_change_homecity(punit)
if (pcity != NULL && can_unit_change_homecity(&(wld.map), punit)
&& pcity->id != punit->homecity) {
local_show(ID_UNIT_ORDER_HOMECITY);
} else {
common/unit.c
/**********************************************************************//**
Return TRUE iff the unit can change homecity to the given city.
**************************************************************************/
bool can_unit_change_homecity_to(const struct unit *punit,
bool can_unit_change_homecity_to(const struct civ_map *nmap,
const struct unit *punit,
const struct city *pcity)
{
const struct civ_map *nmap = &(wld.map);
if (pcity == NULL) {
/* Can't change home city to a non existing city. */
return FALSE;
......
/**********************************************************************//**
Return TRUE iff the unit can change homecity at its current location.
**************************************************************************/
bool can_unit_change_homecity(const struct unit *punit)
bool can_unit_change_homecity(const struct civ_map *nmap,
const struct unit *punit)
{
return can_unit_change_homecity_to(punit, tile_city(unit_tile(punit)));
return can_unit_change_homecity_to(nmap, punit, tile_city(unit_tile(punit)));
}
/**********************************************************************//**
common/unit.h
const struct unit *ptrans);
bool can_unit_teleport(const struct civ_map *nmap, const struct unit *punit);
bool can_unit_paradrop(const struct civ_map *nmap, const struct unit *punit);
bool can_unit_change_homecity_to(const struct unit *punit,
bool can_unit_change_homecity_to(const struct civ_map *nmap,
const struct unit *punit,
const struct city *pcity);
bool can_unit_change_homecity(const struct unit *punit);
bool can_unit_change_homecity(const struct civ_map *nmap,
const struct unit *punit);
const char *get_activity_text(enum unit_activity activity);
bool can_unit_continue_current_activity(const struct civ_map *nmap,
struct unit *punit);
(1-1/3)