static struct city *get_selected_city(void) { XawListReturnStruct *ret; int len; ret=XawListShowCurrent(goto_list); if(ret->list_index==XAW_LIST_NONE) return 0; len = strlen(ret->string); if(len>3 && strcmp(ret->string+len-3, "(A)")==0) { char name[MAX_LEN_NAME]; mystrlcpy(name, ret->string, MIN(sizeof(name),len-2)); return game_find_city_by_name(name); } return game_find_city_by_name(ret->string); }
/************************************************************************** ... **************************************************************************/ void find_center_command_callback(Widget w, XtPointer client_data, XtPointer call_data) { struct city *pcity; XawListReturnStruct *ret; ret=XawListShowCurrent(find_list); if(ret->list_index!=XAW_LIST_NONE) if((pcity=game_find_city_by_name(ret->string))) center_tile_mapcanvas(pcity->x, pcity->y); popdown_find_dialog(); }