/**************************************************************** Help button clicked *****************************************************************/ static void help_callback(GtkWidget *w, gpointer data) { struct worklist_data *ptr; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeIter it; ptr = data; selection = ptr->src_selection; if (gtk_tree_selection_get_selected(selection, &model, &it)) { gint cid; struct universal target; gtk_tree_model_get(model, &it, 0, &cid, -1); target = cid_decode(cid); if (VUT_UTYPE == target.kind) { popup_help_dialog_typed(utype_name_translation(target.value.utype), HELP_UNIT); } else if (is_great_wonder(target.value.building)) { popup_help_dialog_typed(improvement_name_translation(target.value.building), HELP_WONDER); } else { popup_help_dialog_typed(improvement_name_translation(target.value.building), HELP_IMPROVEMENT); } } else { popup_help_dialog_string(HELP_WORKLIST_EDITOR_ITEM); } }
char* city_get_production_name(struct city* pCity) { int kind = pCity->production.kind; if(kind == VUT_UTYPE) { struct unit_type *pUnitType = pCity->production.value.utype; return (char*)utype_name_translation(pUnitType); } else { struct impr_type *pImprove = pCity->production.value.building; return (char*)improvement_name_translation(pImprove); } }
PyObject* get_built_improvements_in_city(struct city* pCity) { PyObject* list = PyList_New(0); city_built_iterate(pCity, pImprove) { const char* name = improvement_name_translation(pImprove); PyList_Append(list, Py_BuildValue( "ls", (long)pImprove, name )); } city_built_iterate_end; return list; }
PyObject* get_buildable_improvements_in_city(struct city* pCity) { PyObject* list = PyList_New(0); bool can_build; improvement_iterate(pImprove) { can_build = can_player_build_improvement_now(client.conn.playing, pImprove); can_build = can_build && can_city_build_improvement_now(pCity, pImprove); if(can_build) { const char* name = improvement_name_translation(pImprove); //int turns = city_turns_to_build(pCity, cid_production(cid_encode_building(pImprove)), TRUE); int stock = pCity->shield_stock; int cost = impr_build_shield_cost(pImprove); PyList_Append(list, Py_BuildValue( "lisiii()O", (long)pImprove, VUT_IMPROVEMENT, name, -1, stock, cost, (PyObject*)get_building_sprite(tileset, pImprove) )); } } improvement_iterate_end; return list; }