DELTA 5500 73429 1797
SVN  ¥6ƒ¢K9ƒ„? …s €‹  C¢?€ G@€ G@… J z€ƒ0 S¢< _’*€‚' p@ /˜V€‡0 S¢<  ›=€… v@€þ% A €›x S¢< W m€‚q F¢<… O z€³E E¢=… O z€ˆo G@… O z€w G@… O z€ŽG R¢= D•@€„m T@ \ m€† R¢= Y p€* ‚¢<€ß"SDL.h"

/* utility */
#include "fcintl.h"
#include "log.h"

/* common */
#include "diptreaty.h"

/* client */
#include "client_main.h"
#include "climisc.h"
#include "packhand.h"

/* gui-sdl */
#include "chatline.h"
#include "colors.h"
#include "dialogs.h"
#include "graphics.h"
#include "gui_iconv.h"
#include "gui_id.h"
#include "gui_main.h"
#include "gui_tilespec.h"
#include "mapview.h"
#include "themespec.h"
#include "widget.h"

#include "diplodlg.h"

#define MAX_NUM_CLAUSES 64

struct diplomacy_dialog {
  struct Treaty treaty;
  struct ADVANCED_DLG *pdialog;
  struct ADVANCED_DLG *pwants;
  struct ADVANCED_DLG *poffers;
};

#define SPECLIST_TAG dialog
#define SPECLIST_TYPE struct diplomacy_dialog
#include "speclist.h"

#define dialog_list_iterate(dialoglist, pdialog) \
    TYPED_LIST_ITERATE(struct diplomacy_dialog, dialoglist, pdialog)
#define dialog_list_iterate_end  LIST_ITERATE_END

static struct dialog_list *dialog_list;

static void update_diplomacy_dialog(struct diplomacy_dialog *pdialog);
static void update_acceptance_icons(struct diplomacy_dialog *pdialog);
static void update_clauses_list(struct diplomacy_dialog *pdialog);
static void remove_clause_widget_from_list(int counterpart, int giver,
                                           enum clause_type type, int value);
static void popdown_diplomacy_dialog(int counterpart);
static void popdown_diplomacy_dialogs(void);
static void popdown_sdip_dialog(void);
...
*****************************************************************/
void diplomacy_dialog_init()
{
  dialog_list = dialog_list_new(
...
*****************************************************************/
void diplomacy_dialog_done()
{
  dialog_list_destroy(dialog_list
...
struct diplomacy_dialog *get_diplomacy_dialog(int other_player_id)
{
  struct player *plr0 = client.conn.playing;
  struct player *plr1 = player_by_number(other_player_id);

  dialog_list_iterate(dialog_list, pdialog) {
    if ((pdialog->treaty.plr0 == plr0 && pdialog->treaty.plr1 == plr1) ||
	(pdialog->treaty.plr0 == plr1 && pdialog->treaty.plr1 == plr0)) {
      return pdialog;
    }
  } dialog_list_iterate_end;

  return NULLint counterpart, bool I_accepted,
				    bool other_accepted)
{
  struct diplomacy_dialog *pdialog = get_diplomacy_dialog(counterpart);

  if (!pdialog) {
    return;
  }
  
  pdialog->treaty.accept0 = I_accepted;
  pdialog->treaty.accept1 = other_accepted;
  
  update_acceptance_icons(pdialogint counterpart, int initiated_from)
{
  popdown_diplomacy_dialog(counterpart);
  flush_dirty();
}
/* ----------------------------------------------------------------------- */

static int remove_clause_callback(struct widget *pWidget)
{
  if (Main.event.button.button == SDL_BUTTON_LEFT) {
    struct diplomacy_dialog *pdialog;
      
    if (!(pdialog = get_diplomacy_dialog(pWidget->data.cont->id1))) {
      pdialog = get_diplomacy_dialog(pWidget->data.cont->id0);
    }
    
    dsend_packet_diplomacy_remove_clause_req(&client.conn,
                                             player_number(pdialog->treaty.plr1),
                                             pWidget->data.cont->id0,
                                             (enum clause_type) ((pWidget->data.
                                             cont->value >> 16) & 0xFFFF),
                                             pWidget->data.cont->value & 0xFFFF);
  }
  return -1int counterpart, int giver,
				    enum clause_type type, int value)
{
  struct diplomacy_dialog *pdialog = get_diplomacy_dialog(counterpart);  
  
  if (!pdialog) {
    return;
  }
  
  clause_list_iterate(pdialog->treaty.clauses, pclause) {
    remove_clause_widget_from_list(player_number(pdialog->treaty.plr1),
                                   player_number(pclause->from),
                                   pclause->type,
                                   pclause->value);
  } clause_list_iterate_end;
  
  add_clause(&pdialog->treaty, player_by_number(giver), type, value);
  
  update_clauses_list(pdialog);
  update_acceptance_icons(pdialogint counterpart, int giver,
				    enum clause_type type, int value)
{
  struct diplomacy_dialog *pdialog = get_diplomacy_dialog(counterpart);  
    
  if (!pdialog) {
    return;
  }
  
  clause_list_iterate(pdialog->treaty.clauses, pclause) {
    remove_clause_widget_from_list(player_number(pdialog->treaty.plr1),
                                   player_number(pclause->from),
                                   pclause->type,
                                   pclause->value);
  } clause_list_iterate_end;

  remove_clause(&pdialog->treaty, player_by_number(giver), type, value);
  
  update_clauses_list(pdialog);
  update_acceptance_icons(pdialog);  
}

/* ================================================================= */

static int cancel_meeting_callback(struct widget *pWidget)
{
  if (Main.event.button.button == SDL_BUTTON_LEFT) {
    dsend_packet_diplomacy_cancel_meeting_req(&client.conn,
					    pWidget->data.cont->id1);
  }
  return -1;
}

static int accept_treaty_callback(struct widget *pWidget)
{
  if (Main.event.button.button == SDL_BUTTON_LEFT) {
    dsend_packet_diplomacy_accept_treaty_req(&client.conn,
					   pWidget->data.cont->id1);
  }
  return -1;
}

/* ------------------------------------------------------------------------ */

static int pact_callback(struct widget *pWidget)
{
  if (Main.event.button.button == SDL_BUTTON_LEFT) {
    int clause_type;
    
    struct diplomacy_dialog *pdialog;
      
    if (!(pdialog = get_diplomacy_dialog(pWidget->data.cont->id1))) {
      pdialog = get_diplomacy_dialog(pWidget->data.cont->id0);
    }
    
    switch(MAX_ID - pWidget->ID) {
      case 2:
        clause_type = CLAUSE_CEASEFIRE;
      break;
      case 1:
        clause_type = CLAUSE_PEACE;
      break;
      default:
        clause_type = CLAUSE_ALLIANCE;
      break;
    }
    
    dsend_packet_diplomacy_create_clause_req(&client.conn,
                                             player_number(pdialog->treaty.plr1),
                                             pWidget->data.cont->id0,
                                             clause_type, 0);
  }  
  return -1;
}

static int vision_callback(struct widget *pWidget)
{
  if (Main.event.button.button == SDL_BUTTON_LEFT) {
    struct diplomacy_dialog *pdialog;
      
    if (!(pdialog = get_diplomacy_dialog(pWidget->data.cont->id1))) {
      pdialog = get_diplomacy_dialog(pWidget->data.cont->id0);
    }
  
    dsend_packet_diplomacy_create_clause_req(&client.conn,
                                             player_number(pdialog->treaty.plr1),
                                             pWidget->data.cont->id0,
                                             CLAUSE_VISION, 0);
  }
  return -1;
}

static int embassy_callback(struct widget *pWidget)
{
  if (Main.event.button.button == SDL_BUTTON_LEFT) {
    struct diplomacy_dialog *pdialog;
      
    if (!(pdialog = get_diplomacy_dialog(pWidget->data.cont->id1))) {
      pdialog = get_diplomacy_dialog(pWidget->data.cont->id0);
    }
  
    dsend_packet_diplomacy_create_clause_req(&client.conn,
                                             player_number(pdialog->treaty.plr1),
                                             pWidget->data.cont->id0,
                                             CLAUSE_EMBASSY, 0);
  }
  return -1;
}

static int maps_callback(struct widget *pWidget)
{
  if (Main.event.button.button == SDL_BUTTON_LEFT) {
    int clause_type;
    
    struct diplomacy_dialog *pdialog;
      
    if (!(pdialog = get_diplomacy_dialog(pWidget->data.cont->id1))) {
      pdialog = get_diplomacy_dialog(pWidget->data.cont->id0);
    }
    
    switch(MAX_ID - pWidget->ID) {
      case 1:
        clause_type = CLAUSE_MAP;
      break;
      default:
        clause_type = CLAUSE_SEAMAP;
      break;
    }
  
    dsend_packet_diplomacy_create_clause_req(&client.conn,
                                             player_number(pdialog->treaty.plr1),
                                             pWidget->data.cont->id0,
                                             clause_type, 0);
  }
  return -1;
}

static int techs_callback(struct widget *pWidget)
{
  if (Main.event.button.button == SDL_BUTTON_LEFT) {
    struct diplomacy_dialog *pdialog;
      
    if (!(pdialog = get_diplomacy_dialog(pWidget->data.cont->id1))) {
      pdialog = get_diplomacy_dialog(pWidget->data.cont->id0);
    }
    
    dsend_packet_diplomacy_create_clause_req(&client.conn,
                                             player_number(pdialog->treaty.plr1),
                                             pWidget->data.cont->id0,
                                             CLAUSE_ADVANCE,
                                             (MAX_ID - pWidget->ID));
  }  
  return -1;
}

static int gold_callback(struct widget *pWidget)
{
  if (Main.event.button.button == SDL_BUTTON_LEFT) {
    int amount;
    
    struct diplomacy_dialog *pdialog;
      
    if (!(pdialog = get_diplomacy_dialog(pWidget->data.cont->id1))) {
      pdialog = get_diplomacy_dialog(pWidget->data.cont->id0);
    }
    
    if(pWidget->string16->text) {
      char cBuf[16];
      
      convertcopy_to_chars(cBuf, sizeof(cBuf), pWidget->string16->text);
      sscanf(cBuf, "%d", &amount);
      
      if(amount > pWidget->data.cont->value) {
        /* max player gold */
        amount = pWidget->data.cont->value;
      }
      
    } else {
      amount = 0;
    }
    
    if (amount > 0) {
      dsend_packet_diplomacy_create_clause_req(&client.conn,
                                               player_number(pdialog->treaty.plr1),
                                               pWidget->data.cont->id0,
                                               CLAUSE_GOLD, amount);
      
    } else {
      output_window_append(ftc_client,
                           _("Invalid amount of gold specified."));
    }
    
    if(amount || !pWidget->string16->text) {
      copy_chars_to_string16(pWidget->string16, "0");
      widget_redraw(pWidget);
      widget_flush(pWidget);
    }
  }  
  return -1;
}


static int cities_callback(struct widget *pWidget)
{
  if (Main.event.button.button == SDL_BUTTON_LEFT) {
    struct diplomacy_dialog *pdialog;
      
    if (!(pdialog = get_diplomacy_dialog(pWidget->data.cont->id1))) {
      pdialog = get_diplomacy_dialog(pWidget->data.cont->id0);
    }
    
    dsend_packet_diplomacy_create_clause_req(&client.conn,
                                             player_number(pdialog->treaty.plr1),  
                                             pWidget->data.cont->id0,
                                             CLAUSE_CITY,
                                             (MAX_ID - pWidget->ID));
  }  
  return -1;
}


static int dipomatic_window_callback(struct widget *pWindow)
{
  return -1;
}

static struct ADVANCED_DLG * popup_diplomatic_objects(struct player *pPlayer0,
  				struct player *pPlayer1,
  				struct widget *pMainWindow, bool L_R)
{
  struct ADVANCED_DLG *pDlg = fc_calloc(1, sizeof(struct ADVANCED_DLG));
  struct CONTAINER *pCont = fc_calloc(1, sizeof(struct CONTAINER));
  int width, height, count = 0, scroll_w = 0;
  char cBuf[128];
  struct widget *pBuf = NULL, *pWindow;
  SDL_String16 *pStr;
  int window_x = 0, window_y = 0;
  SDL_Rect area;
  
  enum diplstate_type type =
		  pplayer_get_diplstate(pPlayer0, pPlayer1)->type;
  
  pCont->id0 = player_number(pPlayer0);
  pCont->id1 = player_number(pPlayer1);
  
  pStr = create_str16_from_char(nation_adjective_for_player(pPlayer0), adj_font(12));
  pStr->style |= TTF_STYLE_BOLD;

  pWindow = create_window_skeleton(NULL, pStr, WF_FREE_DATA);

  pWindow->action = dipomatic_window_callback;
  set_wstate(pWindow, FC_WS_NORMAL);
  
  pDlg->pEndWidgetList = pWindow;
  pWindow->data.cont = pCont;
  add_to_gui_list(ID_WINDOW, pWindow);

  area = pWindow->area;
  
  /* ============================================================= */
  width = 0;
  height = 0;
  
  /* Pacts. */
  if (pPlayer0 == client.conn.playing && DS_ALLIANCE != type) {
    
    pBuf = create_iconlabel_from_chars(NULL, pWindow->dst,
			  _("Pacts"), adj_font(12), WF_RESTORE_BACKGROUND);
    pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_HEADING_TEXT);
    width = pBuf->size.w;
    height = pBuf->size.h;
    add_to_gui_list(ID_LABEL, pBuf);
    count++;
    
    /*if(type == DS_WAR || type == DS_NEUTRAL) {*/
    if(type != DS_CEASEFIRE) {
      fc_snprintf(cBuf, sizeof(cBuf), "  %s", Q_("?diplomatic_state:Cease-fire"));
      pBuf = create_iconlabel_from_chars(NULL, pWindow->dst,
	cBuf, adj_font(12), (WF_RESTORE_BACKGROUND|WF_DRAW_TEXT_LABEL_WITH_SPACE));
      pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_TEXT);
      width = MAX(width, pBuf->size.w);
      height = MAX(height, pBuf->size.h);
      pBuf->action = pact_callback;
      pBuf->data.cont = pCont;
      set_wstate(pBuf, FC_WS_NORMAL);
      add_to_gui_list(MAX_ID - 2, pBuf);
      count++;
    }
    
    if(type != DS_PEACE) {
      fc_snprintf(cBuf, sizeof(cBuf), "  %s", Q_("?diplomatic_state:Peace"));
  
      pBuf = create_iconlabel_from_chars(NULL, pWindow->dst,
	cBuf, adj_font(12), (WF_RESTORE_BACKGROUND|WF_DRAW_TEXT_LABEL_WITH_SPACE));
      pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_TEXT);
      width = MAX(width, pBuf->size.w);
      height = MAX(height, pBuf->size.h);
      pBuf->action = pact_callback;
      pBuf->data.cont = pCont;
      set_wstate(pBuf, FC_WS_NORMAL);
      add_to_gui_list(MAX_ID - 1, pBuf);
      count++;
    }
    
    if(pplayer_can_make_treaty(pPlayer0, pPlayer1, DS_ALLIANCE)) {
      fc_snprintf(cBuf, sizeof(cBuf), "  %s", Q_("?diplomatic_state:Alliance"));
      
      pBuf = create_iconlabel_from_chars(NULL, pWindow->dst,
	cBuf, adj_font(12), (WF_RESTORE_BACKGROUND|WF_DRAW_TEXT_LABEL_WITH_SPACE));
      pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_TEXT);
      width = MAX(width, pBuf->size.w);
      height = MAX(height, pBuf->size.h);
      pBuf->action = pact_callback;
      pBuf->data.cont = pCont;
      set_wstate(pBuf, FC_WS_NORMAL);
      add_to_gui_list(MAX_ID, pBuf);
      count++;
    }
    
  }
  
  /* ---------------------------- */
  if (!gives_shared_vision(pPlayer0, pPlayer1)) {
    
    pBuf = create_iconlabel_from_chars(NULL, pWindow->dst,
	_("Give shared vision"), adj_font(12),
    		(WF_RESTORE_BACKGROUND|WF_DRAW_TEXT_LABEL_WITH_SPACE));
    pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_TEXT);
    width = MAX(width, pBuf->size.w);
    height = MAX(height, pBuf->size.h);
    pBuf->action = vision_callback;
    pBuf->data.cont = pCont;
    set_wstate(pBuf, FC_WS_NORMAL);
    add_to_gui_list(ID_LABEL, pBuf);
    count++;
    
    /* ---------------------------- */
    /* you can't give maps if you give shared vision */
    pBuf = create_iconlabel_from_chars(NULL, pWindow->dst,
		_("Maps"), adj_font(12), WF_RESTORE_BACKGROUND);
    pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_HEADING_TEXT);
    width = MAX(width, pBuf->size.w);
    height = MAX(height, pBuf->size.h);
    add_to_gui_list(ID_LABEL, pBuf);
    count++;
    
    /* ----- */
    fc_snprintf(cBuf, sizeof(cBuf), "  %s", _("World map"));
  
    pBuf = create_iconlabel_from_chars(NULL, pWindow->dst,
	cBuf, adj_font(12), (WF_RESTORE_BACKGROUND|WF_DRAW_TEXT_LABEL_WITH_SPACE));
    pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_TEXT);
    width = MAX(width, pBuf->size.w);
    height = MAX(height, pBuf->size.h);
    pBuf->action = maps_callback;
    pBuf->data.cont = pCont;
    set_wstate(pBuf, FC_WS_NORMAL);
    add_to_gui_list(MAX_ID - 1, pBuf);
    count++;
    
    /* ----- */
    fc_snprintf(cBuf, sizeof(cBuf), "  %s", _("Sea map"));
  
    pBuf = create_iconlabel_from_chars(NULL, pWindow->dst,
	cBuf, adj_font(12), (WF_RESTORE_BACKGROUND|WF_DRAW_TEXT_LABEL_WITH_SPACE));
    pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_TEXT);
    width = MAX(width, pBuf->size.w);
    height = MAX(height, pBuf->size.h);
    pBuf->action = maps_callback;
    pBuf->data.cont = pCont;
    set_wstate(pBuf, FC_WS_NORMAL);
    add_to_gui_list(MAX_ID, pBuf);
    count++;
  }
  
  /* Don't take in account the embassy effects. */
  if (!player_has_real_embassy(pPlayer1, pPlayer0)) {  
    pBuf = create_iconlabel_from_chars(NULL, pWindow->dst,
        _("Give embassy"), adj_font(12),
                (WF_RESTORE_BACKGROUND|WF_DRAW_TEXT_LABEL_WITH_SPACE));
    pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_TEXT);
    width = MAX(width, pBuf->size.w);
    height = MAX(height, pBuf->size.h);
    pBuf->action = embassy_callback;
    pBuf->data.cont = pCont;
    set_wstate(pBuf, FC_WS_NORMAL);
    add_to_gui_list(ID_LABEL, pBuf);
    count++;
  }
    
  /* ---------------------------- */
  if(pPlayer0->economic.gold > 0) {
    pCont->value = pPlayer0->economic.gold;
    
    fc_snprintf(cBuf, sizeof(cBuf), _("Gold(max %d)"), pPlayer0->economic.gold);
    pBuf = create_iconlabel_from_chars(NULL, pWindow->dst,
			  cBuf, adj_font(12), WF_RESTORE_BACKGROUND);
    pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_HEADING_TEXT);
    width = MAX(width, pBuf->size.w);
    height = MAX(height, pBuf->size.h);
    add_to_gui_list(ID_LABEL, pBuf);
    count++;
    
    pBuf = create_edit(NULL, pWindow->dst,
    	create_str16_from_char("0", adj_font(10)), 0,
    		(WF_RESTORE_BACKGROUND|WF_FREE_STRING));
    pBuf->data.cont = pCont;
    pBuf->action = gold_callback;
    set_wstate(pBuf, FC_WS_NORMAL);
    width = MAX(width, pBuf->size.w);
    height = MAX(height, pBuf->size.h);
    add_to_gui_list(ID_LABEL, pBuf);
    count++;
  }
  /* ---------------------------- */
  
  /* Advances */
  {
    int flag = A_NONE;
    
    advance_index_iterate(A_FIRST, i) {
      if (player_invention_state(pPlayer0, i) == TECH_KNOWN &&
         player_invention_reachable(pPlayer1, i) &&
	(player_invention_state(pPlayer1, i) == TECH_UNKNOWN || 
	 player_invention_state(pPlayer1, i) == TECH_PREREQS_KNOWN)) {
	     
	     pBuf = create_iconlabel_from_chars(NULL, pWindow->dst,
		_("Advances"), adj_font(12), WF_RESTORE_BACKGROUND);
             pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_HEADING_TEXT);
	     width = MAX(width, pBuf->size.w);
	     height = MAX(height, pBuf->size.h);
             add_to_gui_list(ID_LABEL, pBuf);
	     count++;
	     
	     fc_snprintf(cBuf, sizeof(cBuf), "  %s", advance_name_translation(advance_by_number(i)));
  
             pBuf = create_iconlabel_from_chars(NULL, pWindow->dst, cBuf, adj_font(12),
	         (WF_RESTORE_BACKGROUND|WF_DRAW_TEXT_LABEL_WITH_SPACE));
             pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_TEXT);
	     width = MAX(width, pBuf->size.w);
	     height = MAX(height, pBuf->size.h);
	     pBuf->action = techs_callback;
	     set_wstate(pBuf, FC_WS_NORMAL);
	     pBuf->data.cont = pCont;
             add_to_gui_list(MAX_ID - i, pBuf);
	     count++;	
	     flag = ++i;
	     break;
      }
    } advance_index_iterate_end;
    
    if(flag > A_NONE) {
      advance_index_iterate(flag, i) {
	if (player_invention_state(pPlayer0, i) == TECH_KNOWN &&
	   player_invention_reachable(pPlayer1, i) &&
	  (player_invention_state(pPlayer1, i) == TECH_UNKNOWN || 
	   player_invention_state(pPlayer1, i) == TECH_PREREQS_KNOWN)) {
	     
	     fc_snprintf(cBuf, sizeof(cBuf), "  %s", advance_name_translation(advance_by_number(i)));
  
             pBuf = create_iconlabel_from_chars(NULL, pWindow->dst, cBuf, adj_font(12),
	         (WF_RESTORE_BACKGROUND|WF_DRAW_TEXT_LABEL_WITH_SPACE));
             pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_TEXT);
	     width = MAX(width, pBuf->size.w);
	     height = MAX(height, pBuf->size.h);
	     pBuf->action = techs_callback;
	     set_wstate(pBuf, FC_WS_NORMAL);
             pBuf->data.cont = pCont;
             add_to_gui_list(MAX_ID - i, pBuf);
	     count++;
	}
      }
    } advance_index_iterate_end;
    
  }  /* Advances */
  
  /* Cities */
  
  Creates a sorted list of pPlayer0's cities, excluding the capital and
  any cities not visible to pPlayer1.  This means that you can only trade 
  cities visible to requesting player.  

			      - Kris Bubendorfer
  *****************************************************************/
  {
    int i = 0, j = 0, n = city_list_size(pPlayer0->cities);
    struct city **city_list_ptrs;

    if (n > 0) {
      city_list_ptrs = fc_calloc(1, sizeof(struct city *) * n);
      city_list_iterate(pPlayer0->cities, pCity) {
        if (!is_capital(pCity)) {
	  city_list_ptrs[i] = pCity;
	  i++;
        }
      } city_list_iterate_end;	
    } else {
      city_list_ptrs = NULL;
    }
    

    if(i > 0) {
      
      pBuf = create_iconlabel_from_chars(NULL, pWindow->dst,
		_("Cities"), adj_font(12), WF_RESTORE_BACKGROUND);
      pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_HEADING_TEXT);
      pBuf->string16->style &= ~SF_CENTER;
      width = MAX(width, pBuf->size.w);
      height = MAX(height, pBuf->size.h);
      add_to_gui_list(ID_LABEL, pBuf);
      count++;
      
      qsort(city_list_ptrs, i, sizeof(struct city *), city_name_compare);
        
      for (j = 0; j < i; j++) {
	fc_snprintf(cBuf, sizeof(cBuf), "  %s", city_name(city_list_ptrs[j]));
  
        pBuf = create_iconlabel_from_chars(NULL, pWindow->dst, cBuf, adj_font(12),
	     (WF_RESTORE_BACKGROUND|WF_DRAW_TEXT_LABEL_WITH_SPACE));
        pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_TEXT);
	width = MAX(width, pBuf->size.w);
	height = MAX(height, pBuf->size.h);
        pBuf->data.cont = pCont;
	pBuf->action = cities_callback;
	set_wstate(pBuf, FC_WS_NORMAL);
	/* MAX_ID is unigned short type range and city id must be in this range */
        fc_assert(city_list_ptrs[j]->id <= MAX_ID);
        add_to_gui_list(MAX_ID - city_list_ptrs[j]->id, pBuf);
	count++;      
      }
    }
    FC_FREE(city_list_ptrs);    
  } /* Cities */
  
  pDlg->pBeginWidgetList = pBuf;
  pDlg->pBeginActiveWidgetList = pDlg->pBeginWidgetList;
  pDlg->pEndActiveWidgetList = pDlg->pEndWidgetList->prev;
  pDlg->pScroll = NULL;
  
  area.h = (Main.screen->h - adj_size(100) - (pWindow->size.h - pWindow->area.h));
  
  if (area.h < (count * height)) {
    pDlg->pActiveWidgetList = pDlg->pEndActiveWidgetList;
    count = area.h / height;
    scroll_w = create_vertical_scrollbar(pDlg, 1, count, TRUE, TRUE);
    pBuf = pWindow;
    /* hide not seen widgets */
    do {
      pBuf = pBuf->prev;
      if(count) {
	count--;
      } else {
	set_wflag(pBuf, WF_HIDDEN);
      }
    } while(pBuf != pDlg->pBeginActiveWidgetList);
  }
  
  area.w = MAX(width + adj_size(4) + scroll_w, adj_size(150) - (pWindow->size.w - pWindow->area.w));

  resize_window(pWindow, NULL, get_game_colorRGB(COLOR_THEME_BACKGROUND),
                (pWindow->size.w - pWindow->area.w) + area.w,
                (pWindow->size.h - pWindow->area.h) + area.h);

  area = pWindow->area;
  
  if(L_R) {
    window_x = pMainWindow->dst->dest_rect.x + pMainWindow->size.w + adj_size(20);
  } else {
    window_x = pMainWindow->dst->dest_rect.x - adj_size(20) - pWindow->size.w;
  }
  window_y = (Main.screen->h - pWindow->size.h) / 2;
  
  widget_set_position(pWindow, window_x, window_y);
  
  setup_vertical_widgets_position(1,
     area.x + adj_size(2), area.y + 1,
     width, height, pDlg->pBeginActiveWidgetList, pDlg->pEndActiveWidgetList);
  
  if(pDlg->pScroll) {
    setup_vertical_scrollbar_area(pDlg->pScroll,
	area.x + area.w,
    	area.y,
    	area.h, TRUE);
  }
  
  return pDlgstruct diplomacy_dialog *create_diplomacy_dialog(struct player *plr0, 
							struct player *plr1)
{
  struct diplomacy_dialog *pdialog = fc_calloc(1, sizeof(struct diplomacy_dialog));

  init_treaty(&pdialog->treaty, plr0, plr1);
  
  pdialog->pdialog = fc_calloc(1, sizeof(struct ADVANCED_DLG));
    
  dialog_list_prepend(dialog_list, pdialog);  
  
  return pdialog
...
update_diplomacy_dialog(struct diplomacy_dialog *pdialog)
{
  SDL_Color bg_color = {255, 255, 255, 136};
  
  struct player *pPlayer0, *pPlayer1;
  struct CONTAINER *pCont = fc_calloc(1, sizeof(struct CONTAINER));
  char cBuf[128];
  struct widget *pBuf = NULL, *pWindow;
  SDL_String16 *pStr;
  SDL_Rect dst;
  SDL_Rect area;
  
  if(pdialog) {
    
    /* delete old content */
    if (pdialog->pdialog->pEndWidgetList) {
      popdown_window_group_dialog(pdialog->poffers->pBeginWidgetList,
                                  pdialog->poffers->pEndWidgetList);
      FC_FREE(pdialog->poffers->pScroll);
      FC_FREE(pdialog->poffers);
      
      popdown_window_group_dialog(pdialog->pwants->pBeginWidgetList,
                                  pdialog->pwants->pEndWidgetList);
      FC_FREE(pdialog->pwants->pScroll);
      FC_FREE(pdialog->pwants);
      
      popdown_window_group_dialog(pdialog->pdialog->pBeginWidgetList,
                                            pdialog->pdialog->pEndWidgetList);
    }
   
    pPlayer0 = pdialog->treaty.plr0;
    pPlayer1 = pdialog->treaty.plr1;

    pCont->id0 = player_number(pPlayer0);
    pCont->id1 = player_number(pPlayer1);
    
    fc_snprintf(cBuf, sizeof(cBuf), _("Diplomacy meeting"));
    
    pStr = create_str16_from_char(cBuf, adj_font(12));
    pStr->style |= TTF_STYLE_BOLD;

    pWindow = create_window_skeleton(NULL, pStr, 0);

    pWindow->action = dipomatic_window_callback;
    set_wstate(pWindow, FC_WS_NORMAL);
    pWindow->data.cont = pCont;
    pdialog->pdialog->pEndWidgetList = pWindow;

    add_to_gui_list(ID_WINDOW, pWindow);

    /* ============================================================= */
  
    pStr = create_str16_from_char(nation_adjective_for_player(pPlayer0), adj_font(12));
    pStr->style |= (TTF_STYLE_BOLD|SF_CENTER);
    pStr->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_TEXT);
    
    pBuf = create_iconlabel(
    	create_icon_from_theme(pTheme->CANCEL_PACT_Icon, 0),
		pWindow->dst, pStr,
		(WF_ICON_ABOVE_TEXT|WF_FREE_PRIVATE_DATA|WF_FREE_THEME|
						WF_RESTORE_BACKGROUND));
						
    pBuf->private_data.cbox = fc_calloc(1, sizeof(struct CHECKBOX));
    pBuf->private_data.cbox->state = FALSE;
    pBuf->private_data.cbox->pTRUE_Theme = pTheme->OK_PACT_Icon;
    pBuf->private_data.cbox->pFALSE_Theme = pTheme->CANCEL_PACT_Icon;
    
    add_to_gui_list(ID_ICON, pBuf);
    
    pStr = create_str16_from_char(nation_adjective_for_player(pPlayer1), adj_font(12));
    pStr->style |= (TTF_STYLE_BOLD|SF_CENTER);
    pStr->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_TEXT);
    
    pBuf = create_iconlabel(
    	create_icon_from_theme(pTheme->CANCEL_PACT_Icon, 0),
		pWindow->dst, pStr,
		(WF_ICON_ABOVE_TEXT|WF_FREE_PRIVATE_DATA|WF_FREE_THEME|
    						WF_RESTORE_BACKGROUND));
    pBuf->private_data.cbox = fc_calloc(1, sizeof(struct CHECKBOX));
    pBuf->private_data.cbox->state = FALSE;
    pBuf->private_data.cbox->pTRUE_Theme = pTheme->OK_PACT_Icon;
    pBuf->private_data.cbox->pFALSE_Theme = pTheme->CANCEL_PACT_Icon;
    add_to_gui_list(ID_ICON, pBuf);
    /* ============================================================= */
    
    pBuf = create_themeicon(pTheme->CANCEL_PACT_Icon, pWindow->dst,
                            WF_WIDGET_HAS_INFO_LABEL
                            | WF_RESTORE_BACKGROUND);
    pBuf->info_label = create_str16_from_char(_("Cancel meeting"),
                                              adj_font(12));
    pBuf->action = cancel_meeting_callback;
    pBuf->data.cont = pCont;
    set_wstate(pBuf, FC_WS_NORMAL);
    
    add_to_gui_list(ID_ICON, pBuf);
    
    pBuf = create_themeicon(pTheme->OK_PACT_Icon, pWindow->dst,
                            WF_FREE_DATA | WF_WIDGET_HAS_INFO_LABEL
                            | WF_RESTORE_BACKGROUND);
    pBuf->info_label = create_str16_from_char(_("Accept treaty"),
                                              adj_font(12));
    pBuf->action = accept_treaty_callback;
    pBuf->data.cont = pCont;
    set_wstate(pBuf, FC_WS_NORMAL);
    
    add_to_gui_list(ID_ICON, pBuf);
    /* ============================================================= */
    
    pdialog->pdialog->pBeginWidgetList = pBuf;
    
    create_vertical_scrollbar(pdialog->pdialog, 1, 7, TRUE, TRUE);
    hide_scrollbar(pdialog->pdialog->pScroll);
    
    /* ============================================================= */

    resize_window(pWindow, NULL, get_game_colorRGB(COLOR_THEME_BACKGROUND),
                  adj_size(250), adj_size(300));

    area = pWindow->area;

    widget_set_position(pWindow,
                        (Main.screen->w - pWindow->size.w) / 2,
                        (Main.screen->h - pWindow->size.h) / 2);

    pBuf = pWindow->prev;
    pBuf->size.x = area.x + adj_size(17);
    pBuf->size.y = area.y + adj_size(6);
    
    dst.y = area.y + adj_size(6) + pBuf->size.h + adj_size(10);
    dst.x = adj_size(10);
    dst.w = area.w - adj_size(14);
        
    pBuf = pBuf->prev;
    pBuf->size.x = area.x + area.w - pBuf->size.w - adj_size(20);
    pBuf->size.y = area.y + adj_size(6);
    
    pBuf = pBuf->prev;
    pBuf->size.x = area.x + (area.w - (2 * pBuf->size.w + adj_size(40))) / 2;
    pBuf->size.y = area.y + area.h - pBuf->size.w - adj_size(17);
    
    pBuf = pBuf->prev;
    pBuf->size.x = pBuf->next->size.x + pBuf->next->size.w + adj_size(40);
    pBuf->size.y = area.y + area.h - pBuf->size.w - adj_size(17);
    
    dst.h = area.h - pBuf->size.w - adj_size(3) - dst.y;
    /* ============================================================= */
    
    SDL_FillRectAlpha(pWindow->theme, &dst, &bg_color);
    
    /* ============================================================= */
    setup_vertical_scrollbar_area(pdialog->pdialog->pScroll,
	area.x + dst.x + dst.w,
    	dst.y,
    	dst.h, TRUE);
    /* ============================================================= */
    pdialog->poffers = popup_diplomatic_objects(pPlayer0, pPlayer1, pWindow, FALSE);
    
    pdialog->pwants = popup_diplomatic_objects(pPlayer1, pPlayer0, pWindow, TRUE);
    /* ============================================================= */
    /* redraw */
    redraw_group(pdialog->pdialog->pBeginWidgetList, pWindow, 0);
    widget_mark_dirty(pWindow);
    
    redraw_group(pdialog->poffers->pBeginWidgetList, pdialog->poffers->pEndWidgetList, 0);
    widget_mark_dirty(pdialog->poffers->pEndWidgetList);
    
    redraw_group(pdialog->pwants->pBeginWidgetList, pdialog->pwants->pEndWidgetList, 0);
    widget_mark_dirty(pdialog->pwants->pEndWidgetList);
    
    flush_dirty();
  }
...
update_acceptance_icons(struct diplomacy_dialog *pdialog)
{
  struct widget *pLabel;
  SDL_Surface *pThm;
  SDL_Rect src = {0, 0, 0, 0};

  /* updates your own acceptance status */
  pLabel = pdialog->pdialog->pEndWidgetList->prev;

  pLabel->private_data.cbox->state = pdialog->treaty.accept0;  
  if (pLabel->private_data.cbox->state) {
    pThm = pLabel->private_data.cbox->pTRUE_Theme;
  } else {
    pThm = pLabel->private_data.cbox->pFALSE_Theme;
  }
      
  src.w = pThm->w / 4;
  src.h = pThm->h;
    
  alphablit(pThm, &src, pLabel->theme, NULL);
  SDL_SetAlpha(pThm, SDL_SRCALPHA, 255);
  
  widget_redraw(pLabel);
  widget_flush(pLabel);
  
  /* updates other player's acceptance status */
  pLabel = pdialog->pdialog->pEndWidgetList->prev->prev;
  
  pLabel->private_data.cbox->state = pdialog->treaty.accept1;  
  if (pLabel->private_data.cbox->state) {
    pThm = pLabel->private_data.cbox->pTRUE_Theme;
  } else {
    pThm = pLabel->private_data.cbox->pFALSE_Theme;
  }
      
  src.w = pThm->w / 4;
  src.h = pThm->h;
    
  alphablit(pThm, &src, pLabel->theme, NULL);
  
  widget_redraw(pLabel);
  widget_flush(pLabel
...
update_clauses_list(struct diplomacy_dialog *pdialog) {
  SDL_String16 *pStr;
  struct widget *pBuf, *pWindow = pdialog->pdialog->pEndWidgetList;
  char cBuf[128];
  bool redraw_all, scroll = (pdialog->pdialog->pActiveWidgetList != NULL);
  int len = pdialog->pdialog->pScroll->pUp_Left_Button->size.w;
  
  clause_list_iterate(pdialog->treaty.clauses, pclause) {

    client_diplomacy_clause_string(cBuf, sizeof(cBuf), pclause);
    
    pStr = create_str16_from_char(cBuf, adj_font(12));
    pBuf = create_iconlabel(NULL, pWindow->dst, pStr,
     (WF_FREE_DATA|WF_DRAW_TEXT_LABEL_WITH_SPACE|WF_RESTORE_BACKGROUND));
        
    if (pclause->from != client.conn.playing) {
       pBuf->string16->style |= SF_CENTER_RIGHT;  
    }
  
    pBuf->data.cont = fc_calloc(1, sizeof(struct CONTAINER));
    pBuf->data.cont->id0 = player_number(pclause->from);
    pBuf->data.cont->id1 = player_number(pdialog->treaty.plr1);
    pBuf->data.cont->value = ((int)pclause->type << 16) + pclause->value;
    
    pBuf->action = remove_clause_callback;
    set_wstate(pBuf, FC_WS_NORMAL);
    
    pBuf->size.w = pWindow->size.w - adj_size(24) - (scroll ? len : 0);
    
    redraw_all = add_widget_to_vertical_scroll_widget_list(pdialog->pdialog,
                  pBuf, pdialog->pdialog->pBeginWidgetList,
                  FALSE,
                  pWindow->size.x + adj_size(12),
                  pdialog->pdialog->pScroll->pUp_Left_Button->size.y + adj_size(2));

    if(!scroll && (pdialog->pdialog->pActiveWidgetList != NULL)) {
      /* -> the scrollbar has been activated */
      pBuf = pdialog->pdialog->pEndActiveWidgetList->next;
      do {
        pBuf = pBuf->prev;
        pBuf->size.w -= len;
        /* we need to save a new background because the width has changed */
        FREESURFACE(pBuf->gfx);
      } while(pBuf != pdialog->pdialog->pBeginActiveWidgetList);
      scroll = TRUE;
    }

    /* redraw */
    if(redraw_all) {
      redraw_group(pdialog->pdialog->pBeginWidgetList, pWindow, 0);
      widget_mark_dirty(pWindow);
    } else {
      widget_redraw(pBuf);
      widget_mark_dirty(pBuf);
    }
    
  } clause_list_iterate_end;
  
  flush_dirty(
...
remove_clause_widget_from_list(int counterpart, int giver,
                                           enum clause_type type, int value)
{
  struct widget *pBuf;
  SDL_Rect src = {0, 0, 0, 0};
  bool scroll = TRUE;

  struct diplomacy_dialog *pdialog = get_diplomacy_dialog(counterpart);  
  
  /* find widget with clause */
  pBuf = pdialog->pdialog->pEndActiveWidgetList->next;
  
  do {
    pBuf = pBuf->prev;
  } while(!((pBuf->data.cont->id0 == giver) &&
            (((pBuf->data.cont->value >> 16) & 0xFFFF) == (int)type) &&
            ((pBuf->data.cont->value & 0xFFFF) == value)) &&
          (pBuf != pdialog->pdialog->pBeginActiveWidgetList));
  
  if(!(pBuf->data.cont->id0 == giver &&
            ((pBuf->data.cont->value >> 16) & 0xFFFF) == (int)type &&
            (pBuf->data.cont->value & 0xFFFF) == value)) {
     return;
  }
  
  scroll = (pdialog->pdialog->pActiveWidgetList != NULL);
  del_widget_from_vertical_scroll_widget_list(pdialog->pdialog, pBuf);

  if(scroll && (pdialog->pdialog->pActiveWidgetList == NULL)) {
    /* -> the scrollbar has been deactivated */
    
    int len = pdialog->pdialog->pScroll->pUp_Left_Button->size.w;
    pBuf = pdialog->pdialog->pEndActiveWidgetList->next;
    do {
      pBuf = pBuf->prev;
      widget_undraw(pBuf);
      pBuf->size.w += len;
      /* we need to save a new background because the width has changed */
      FREESURFACE(pBuf->gfx);
    } while(pBuf != pdialog->pdialog->pBeginActiveWidgetList);
    scroll = FALSE;
  }
    
  /* update state icons */
  pBuf = pdialog->pdialog->pEndWidgetList->prev;
  if(pBuf->private_data.cbox->state) {
    pBuf->private_data.cbox->state = FALSE;
    src.w = pBuf->private_data.cbox->pFALSE_Theme->w / 4;
    src.h = pBuf->private_data.cbox->pFALSE_Theme->h;
    
    alphablit(pBuf->private_data.cbox->pFALSE_Theme, &src, pBuf->theme, NULL);
  }
  int counterpart, int initiated_from)
{
  struct diplomacy_dialog *pdialog;

  if (!can_client_issue_orders()) {
    return;
  }

  if (client.conn.playing->ai_data.control) {
    return;			/* Don't show if we are AI controlled. */
  }

  if (!(pdialog = get_diplomacy_dialog(counterpart))) {
    pdialog = create_diplomacy_dialog(client.conn.playing,
				player_by_number(counterpart));
  } else {
    /* bring existing dialog to front */
    sellect_window_group_dialog(pdialog->pdialog->pBeginWidgetList,
                                         pdialog->pdialog->pEndWidgetList);
  }

  update_diplomacy_dialog(pdialogpopdown_diplomacy_dialog(int counterpart)
{
  struct diplomacy_dialog *pdialog = get_diplomacy_dialog(counterpart);
    
  if (pdialog) {
    popdown_window_group_dialog(pdialog->poffers->pBeginWidgetList,
			        pdialog->poffers->pEndWidgetList);
    FC_FREE(pdialog->poffers->pScroll);
    FC_FREE(pdialog->poffers);
    
    popdown_window_group_dialog(pdialog->pwants->pBeginWidgetList,
			        pdialog->pwants->pEndWidgetList);
    FC_FREE(pdialog->pwants->pScroll);
    FC_FREE(pdialog->pwants);
    
    popdown_window_group_dialog(pdialog->pdialog->pBeginWidgetList,
			                  pdialog->pdialog->pEndWidgetList);
      
    dialog_list_remove(dialog_list, pdialog);
      
    FC_FREE(pdialog->pdialog->pScroll);
    FC_FREE(pdialog->pdialog);  
    FC_FREE(pdialog);
  }Popdown all diplomacy dialogspopdown_diplomacy_dialogs()
{
  dialog_list_iterate(dialog_list, pdialog) {
    popdown_diplomacy_dialog(player_number(pdialog->treaty.plr1));
  } dialog_list_iterate_endpopdown_sdip_dialog();
  popdown_diplomacy_dialogs();
}

/* ================================================================= */
/* ========================== Small Diplomat Dialog ================ */
/* ================================================================= */
static struct SMALL_DLG *pSDip_Dlg = NULL;

static void popdown_sdip_dialog(void)
{
  if (pSDip_Dlg) {
    popdown_window_group_dialog(pSDip_Dlg->pBeginWidgetList,
			      pSDip_Dlg->pEndWidgetList);
    FC_FREE(pSDip_Dlg);
  }
}

static int sdip_window_callback(struct widget *pWindow)
{
  if (Main.event.button.button == SDL_BUTTON_LEFT) {
    move_window_group(pSDip_Dlg->pBeginWidgetList, pWindow);
  }
  return -1;
}

static int withdraw_vision_dlg_callback(struct widget *pWidget)
{
  if (Main.event.button.button == SDL_BUTTON_LEFT) {
    popdown_sdip_dialog();
  
    dsend_packet_diplomacy_cancel_pact(&client.conn,
                                       player_number(pWidget->data.player),
                                       CLAUSE_VISION);
    
    flush_dirty();
  }
  return -1;
}

static int cancel_pact_dlg_callback(struct widget *pWidget)
{
  if (Main.event.button.button == SDL_BUTTON_LEFT) {
    popdown_sdip_dialog();
  
    dsend_packet_diplomacy_cancel_pact(&client.conn,
                                       player_number(pWidget->data.player),
                                       CLAUSE_CEASEFIRE);
    
    flush_dirty();
  }
  return -1;
}

static int call_meeting_dlg_callback(struct widget *pWidget)
{
  if (Main.event.button.button == SDL_BUTTON_LEFT) {
    popdown_sdip_dialog();

    if (can_meet_with_player(pWidget->data.player)) {
      dsend_packet_diplomacy_init_meeting_req(&client.conn,
                                              player_number
                                              (pWidget->data.player));
    }

    flush_dirty();
  }
  return -1;
}


static int cancel_sdip_dlg_callback(struct widget *pWidget)
{
  if (Main.event.button.button == SDL_BUTTON_LEFT) {  
    popdown_sdip_dialog();
    flush_dirty();
  }
  return -1;
}

static void popup_war_dialog(struct player *pPlayer)
{
  char cBuf[128];
  struct widget *pBuf = NULL, *pWindow;
  SDL_String16 *pStr;
  SDL_Surface *pText;
  SDL_Rect dst;
  SDL_Rect area;
  
  if (pSDip_Dlg) {
    return;
  }
  
  pSDip_Dlg = fc_calloc(1, sizeof(struct SMALL_DLG));

  fc_snprintf(cBuf, sizeof(cBuf),
              /* TRANS: "Polish incident !" FIXME!!! */
              _("%s incident !"),
              nation_adjective_for_player(pPlayer));
  pStr = create_str16_from_char(cBuf, adj_font(12));
  pStr->style |= TTF_STYLE_BOLD;

  pWindow = create_window_skeleton(NULL, pStr, 0);

  pWindow->action = sdip_window_callback;
  set_wstate(pWindow, FC_WS_NORMAL);

  add_to_gui_list(ID_WINDOW, pWindow);

  pSDip_Dlg->pEndWidgetList = pWindow;
  
  area = pWindow->area;
  
  /* ============================================================= */
  /* label */
  fc_snprintf(cBuf, sizeof(cBuf), _("Shall we declare WAR on them?"));
  
  pStr = create_str16_from_char(cBuf, adj_font(14));
  pStr->style |= (TTF_STYLE_BOLD|SF_CENTER);
  pStr->fgcol = *get_game_colorRGB(COLOR_THEME_WARDLG_TEXT);

  pText = create_text_surf_from_str16(pStr);
  FREESTRING16(pStr);
  area.w = MAX(area.w, pText->w);
  area.h += pText->h + adj_size(10);


  pBuf = create_themeicon_button_from_chars(pTheme->CANCEL_Icon,
			    pWindow->dst, _("No"), adj_font(12), 0);

  pBuf->action = cancel_sdip_dlg_callback;
  set_wstate(pBuf, FC_WS_NORMAL);
  pBuf->key = SDLK_ESCAPE;
  area.h += pBuf->size.h;

  add_to_gui_list(ID_BUTTON, pBuf);

  pBuf = create_themeicon_button_from_chars(pTheme->OK_Icon, pWindow->dst,
					      _("Yes"), adj_font(12), 0);

  pBuf->action = cancel_pact_dlg_callback;
  set_wstate(pBuf, FC_WS_NORMAL);
  pBuf->data.player = pPlayer;
  pBuf->key = SDLK_RETURN;
  add_to_gui_list(ID_BUTTON, pBuf);
  pBuf->size.w = MAX(pBuf->next->size.w, pBuf->size.w);
  pBuf->next->size.w = pBuf->size.w;
  area.w = MAX(area.w , 2 * pBuf->size.w + adj_size(20));
    
  pSDip_Dlg->pBeginWidgetList = pBuf;
  
  /* setup window size and start position */
  area.w += adj_size(10);

  pBuf = pWindow->prev;
  
  area.h += adj_size(5);

  resize_window(pWindow, NULL, get_game_colorRGB(COLOR_THEME_BACKGROUND),
                (pWindow->size.w - pWindow->area.w) + area.w,
                (pWindow->size.h - pWindow->area.h) + area.h);

  area = pWindow->area;

  widget_set_position(pWindow,
                      (Main.screen->w - pWindow->size.w) / 2,
                      (Main.screen->h - pWindow->size.h) / 2);

  /* setup rest of widgets */
  /* label */
  dst.x = area.x + (area.w - pText->w) / 2;
  dst.y = area.y + 1;
  alphablit(pText, NULL, pWindow->theme, &dst);
  dst.y += pText->h + adj_size(5);
  FREESURFACE(pText);
  
  /* no */
  pBuf = pWindow->prev;
  pBuf->size.y = dst.y;
  
  /* yes */
  pBuf = pBuf->prev;
  pBuf->size.x = area.x + (area.w - (2 * pBuf->size.w + adj_size(20))) / 2;
  pBuf->size.y = dst.y;
    
  /* no */
  pBuf->next->size.x = pBuf->size.x + pBuf->size.w + adj_size(20);
  
  /* ================================================== */
  /* redraw */
  redraw_group(pSDip_Dlg->pBeginWidgetList, pWindow, 0);
  widget_mark_dirty(pWindow);
  flush_dirty();
}

/* ===================================================================== */

void popup_diplomacy_dialog(struct player *pPlayer)
{
  enum diplstate_type type =
		  pplayer_get_diplstate(client.conn.playing, pPlayer)->type;

  if (!can_meet_with_player(pPlayer)) {
    if (DS_WAR == type || pPlayer == client.conn.playing) {
      flush_dirty();
      return;
    } else {
      popup_war_dialog(pPlayer);
      return;
    }
  } else {
    int button_w = 0, button_h = 0;
    char cBuf[128];
    struct widget *pBuf = NULL, *pWindow;
    SDL_String16 *pStr;
    SDL_Surface *pText;
    SDL_Rect dst;
    bool shared = FALSE;
    SDL_Rect area;
    
    if (pSDip_Dlg) {
      return;
    }
  
    pSDip_Dlg = fc_calloc(1, sizeof(struct SMALL_DLG));
          
    fc_snprintf(cBuf, sizeof(cBuf),  _("Foreign Minister"));
    pStr = create_str16_from_char(cBuf, adj_font(12));
    pStr->style |= TTF_STYLE_BOLD;

    pWindow = create_window_skeleton(NULL, pStr, 0);

    pWindow->action = sdip_window_callback;
    set_wstate(pWindow, FC_WS_NORMAL);
    pSDip_Dlg->pEndWidgetList = pWindow;

    add_to_gui_list(ID_WINDOW, pWindow);

    area = pWindow->area;
    
    /* ============================================================= */
    /* label */
    fc_snprintf(cBuf, sizeof(cBuf), _("Sir!, the %s ambassador has arrived\n"
    		"What are your wishes?"),
    		nation_adjective_for_player(pPlayer));
  
    pStr = create_str16_from_char(cBuf, adj_font(14));
    pStr->style |= (TTF_STYLE_BOLD|SF_CENTER);
    pStr->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_TEXT);

    pText = create_text_surf_from_str16(pStr);
    FREESTRING16(pStr);
    area.w = MAX(area.w , pText->w);
    area.h += pText->h + adj_size(15);
          
    if(type != DS_WAR && can_client_issue_orders()) {
      
      if(type == DS_ARMISTICE) {
	fc_snprintf(cBuf, sizeof(cBuf), _("Declare WAR"));
      } else {
	fc_snprintf(cBuf, sizeof(cBuf), _("Cancel Treaty"));
      }
      
      /* cancel treaty */
      pBuf = create_themeicon_button_from_chars(pTheme->UNITS2_Icon,
			pWindow->dst, cBuf, adj_font(12), 0);

      pBuf->action = cancel_pact_dlg_callback;
      set_wstate(pBuf, FC_WS_NORMAL);
      pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_TEXT);
      pBuf->data.player = pPlayer;
      pBuf->key = SDLK_c;
      add_to_gui_list(ID_BUTTON, pBuf);
      pBuf->size.w = MAX(pBuf->next->size.w, pBuf->size.w);
      pBuf->next->size.w = pBuf->size.w;
      button_w = MAX(button_w , pBuf->size.w);
      button_h = MAX(button_h , pBuf->size.h);

      shared = gives_shared_vision(client.conn.playing, pPlayer);

      if(shared) {
        /* shared vision */
        pBuf = create_themeicon_button_from_chars(pTheme->UNITS2_Icon, pWindow->dst,
					      _("Withdraw vision"), adj_font(12), 0);

        pBuf->action = withdraw_vision_dlg_callback;
        set_wstate(pBuf, FC_WS_NORMAL);
        pBuf->data.player = pPlayer;
        pBuf->key = SDLK_w;
	pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_TEXT);
        add_to_gui_list(ID_BUTTON, pBuf);
        pBuf->size.w = MAX(pBuf->next->size.w, pBuf->size.w);
        pBuf->next->size.w = pBuf->size.w;
        button_w = MAX(button_w , pBuf->size.w);
        button_h = MAX(button_h , pBuf->size.h);
      }
    }
    
    /* meet */
    pBuf = create_themeicon_button_from_chars(pTheme->PLAYERS_Icon, pWindow->dst,
					      _("Call Diplomatic Meeting"), adj_font(12), 0);

    pBuf->action = call_meeting_dlg_callback;
    set_wstate(pBuf, FC_WS_NORMAL);
    pBuf->data.player = pPlayer;
    pBuf->key = SDLK_m;
    pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_TEXT);
    add_to_gui_list(ID_BUTTON, pBuf);
    pBuf->size.w = MAX(pBuf->next->size.w, pBuf->size.w);
    pBuf->next->size.w = pBuf->size.w;
    button_w = MAX(button_w , pBuf->size.w);
    button_h = MAX(button_h , pBuf->size.h);

    pBuf = create_themeicon_button_from_chars(pTheme->CANCEL_Icon,
			    pWindow->dst, _("Send him back"), adj_font(12), 0);

    pBuf->action = cancel_sdip_dlg_callback;
    set_wstate(pBuf, FC_WS_NORMAL);
    pBuf->string16->fgcol = *get_game_colorRGB(COLOR_THEME_DIPLODLG_MEETING_TEXT);
    pBuf->key = SDLK_ESCAPE;
    button_w = MAX(button_w , pBuf->size.w);
    button_h = MAX(button_h , pBuf->size.h);
    
    button_h += adj_size(4);
    area.w = MAX(area.w, button_w + adj_size(20));
    
    if(type != DS_WAR) {
      if(shared) {
	area.h += 4 * (button_h + adj_size(10));
      } else {
        area.h += 3 * (button_h + adj_size(10));
      }
    } else {
      area.h += 2 * (button_h + adj_size(10));
    }
    
    add_to_gui_list(ID_BUTTON, pBuf);


    pSDip_Dlg->pBeginWidgetList = pBuf;
  
    /* setup window size and start position */
    area.w += adj_size(10);

    pBuf = pWindow->prev;
  
    area.h += adj_size(2);

    resize_window(pWindow, NULL, get_game_colorRGB(COLOR_THEME_BACKGROUND),
                  (pWindow->size.w - pWindow->area.w) + area.w,
                  (pWindow->size.h - pWindow->area.h) + area.h);

    area = pWindow->area;
    
    widget_set_position(pWindow,
                        (Main.screen->w - pWindow->size.w) / 2,
                        (Main.screen->h - pWindow->size.h) / 2);

    /* setup rest of widgets */
    /* label */
    dst.x = area.x + (area.w - pText->w) / 2;
    dst.y = area.y + 1;
    alphablit(pText, NULL, pWindow->theme, &dst);
    dst.y += pText->h + adj_size(15);
    FREESURFACE(pText);
         
    pBuf = pWindow;
  
    if(type != DS_WAR) {
      /* cancel treaty */
      pBuf = pBuf->prev;
      pBuf->size.w = button_w;
      pBuf->size.h = button_h;
      pBuf->size.x = area.x + (area.w - (pBuf->size.w)) / 2;
      pBuf->size.y = dst.y;
      
      if(shared) {
	/* vision */
        pBuf = pBuf->prev;
        pBuf->size.w = button_w;
        pBuf->size.h = button_h;
        pBuf->size.y = pBuf->next->size.y + pBuf->next->size.h + adj_size(10);
        pBuf->size.x = pBuf->next->size.x;
      }
      
      /* meet */
      pBuf = pBuf->prev;
      pBuf->size.w = button_w;
      pBuf->size.h = button_h;
      pBuf->size.y = pBuf->next->size.y + pBuf->next->size.h + adj_size(10);
      pBuf->size.x = pBuf->next->size.x;
            
    } else {
    
      /* meet */
      pBuf = pBuf->prev;
      pBuf->size.w = button_w;
      pBuf->size.h = button_h;
      pBuf->size.x = area.x + (area.w - (pBuf->size.w)) / 2;
      pBuf->size.y = dst.y;
      
    }
    
    /* cancel */
    pBuf = pBuf->prev;
    pBuf->size.w = button_w;
    pBuf->size.h = button_h;
    pBuf->size.y = pBuf->next->size.y + pBuf->next->size.h + adj_size(10);
    pBuf->size.x = pBuf->next->size.x;
  
    /* ================================================== */
    /* redraw */
    redraw_group(pSDip_Dlg->pBeginWidgetList, pWindow, 0);
    widget_mark_dirty(pWindow);
  
    flush_dirty();
  }
}
ENDREP
DELTA 17122 12019 4504
SVN  „ú)„û;‚A „¦ €z „¦NŠ ŽC„§]€= Ã$„·                                     WF_WIDGET_HAS_INFO_LABEL
                                     | WF_RESTORE_BACKGROUNDinfo_label
                                  | WF_RESTORE_BACKGROUND);
  pCloseButton->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                                   ENDREP
DELTA 12611 0 4044
SVN  Ú6Ù/ l † ¸ S†3Š ‡,‡³ <Žf€z „F‘!… ƒ –€ š,€‚+ _Y€l ‚ ƒ ¢Ÿ j£4• ‚'¤€  ‚§n€, G—@» „-¬h¦ l±.” a³+€e x´w€‚f p·€‚E [¼€ƒ À€Š^ IÍ-€t G  	®; CÑ~€j ‚?Ó.€| uÓ0 ‚U×a"SDL.h"

/* utility */
#include "fcintl.h"
#include "loglient_mainplayer_index(player_by_number(MAX_ID - pWidget->ID)game_find_city_by_number(MAX_ID - pWidget->ID);
  
    if (pDestcity) {
      struct unit *pUnit = head_of_units_in_focus(n = 0players_iterate(pPlayer) {
    
    if (!TEST_BIT(all_players, player_index(pPlayer))) {
      continue;
    }

    city_list_iterate(pPlayer->fc_snprintf(cBuf, sizeof(cBuf), "%s (%d)", city_name(pCity), pCity->size);
      
      pStr = create_str16_from_char(cBuf, adj_font(12));
      pStr->style |= TTF_STYLE_BOLD;
   
      if(!player_owns_city(owner, pCity)) {
        pLogo = get_nation_flag_surface(nation_of_player(city_owner(pCity))!player_owns_city(owner, pCity)) {
        set_wflag(pBuf, WF_FREE_THEME);
        owner = city_owner(pCity)fc_(pGotoDlg->pScroll->active - 1) players_iterate_end;pGotoDlg->pScroll->active)
    {
      show_scrollbar(pGotoDlg->pScroll);
      pGotoDlg->pScroll->pScrollBar->size.y = pGotoDlg->pEndWidgetList->area.y +
     area.x,
        pGotoDlg->pEndWidgetList->area.y,
        pGotoDlg->pScroll->pUp_Left_Button->size.x -
          pGotoDlg->pEndWidgetList->area.x - adj_size(2),
        0,     
  } else {
    hide_scrollbar(pGotoDlg->pScroll);
  }
i, col, block_x, x, y;
  SDL_Rect area_skeleton(NULL, pStr
  add_to_gui_list(ID_WINDOW, pWindow);
  pGotoDlg->pEndWidgetList = pWindow;

  area = pWindow->area                        WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                            adj_font(12));
  pBuf->action = exit_goto_dialog_callback;
  set_wstate(pBuf, FC_WS_NORMAL);
  pBuf->key = SDLK_ESCAPE;
  area.w = MAX(area.w, pBuf->size.w) + adj_size(10players_iterate(pPlayer) {
    if (pPlayer != client.conn.playing
      && DS_NO_CONTACT == pplayer_get_diplstate(client.conn.playing, pPlayer)->type) {
      continue;
    }
    
    pFlag = ResizeSurfaceBox(get_nation_flag_surface(pPlayer->nation),
                             adj_size(30), adj_size(30), 1, TRUE, FALSE);
                     TEST_BIT(all_players, player_index(pPlayer)),
                           WF_FREE_THEME | WF_RESTORE_BACKGROUND
                           | WF_WIDGET_HAS_INFO_LABEL);
    set_new_checkbox_theme(pBuf, pEnabled, pDisabled);

    pBuf->info_label =
        create_str16_from_char(nation_adjective_for_player(pPlayer),
                               adj_font(12));
    pBuf->info_labelplayer_number(pPlayer), pBuf);
    col++;  
  } players_iterate_end;
    
  pGotoDlg->pBeginWidgetList = pBuf;

  create_vertical_scrollbar(pGotoDlg, 1, 16, TRUE, TRUE);
  hide_scrollbar(pGotoDlg->pScroll);
  
  area.w = MAX(area.w, adj_size(300));
  area.h = adj_size(320);

  resize_window(pWindow, NULL, NULL,
                (pWindow->size.w - pWindow->area.w) + area.w,
                (pWindow->size.h - pWindow->area.h) + area.h);

  /* background */
  col = (col + 15) / 16; /* number of flag columns */
  
  pFlag = ResizeSurface(pTheme->Block,
    (col * pBuf->size.w + (col - 1) * adj_size(5) + adj_size(10)), area.h, 1);
  
  block_x = dst.x = area.x + area.w - pFlag->w;
  dst.y = area.y;
  alphablit(pFlag, NULL, pWindow->theme, &dst);
  FREESURFACE(pFlag);

  widget_set_position(pWindow,
                      (Main.screen->w - pWindow->size.w) / 2,
                      (Main.screen->h - pWindow->size.h) / 2);

  /* exit button */
  pBuf = pWindow->prev;
  pBuf->size.x = area.x + area.w - pBuf->size.w - 1;
  pBuf->size.y = pWindow->size.y + adj_size(2);

  /* nations buttons */
  pBuf = pBuf->prev;
  i = 0;
  x = block_x + adj_size(5);
  y = area.y + adj_size(1);
  while(pBuf) {
    pBuf->size.x = x;
    pBuf->size.y = y;
       
    if(!((i + 1) % col)) {
      x = block_x + adj_size(5);
      y += pBuf->size.h + adj_size(1);
    } else {
      x                        block_x, area.y,
  	                        area.h, TRUE);
    
  update_goto_dialog();
}


0 == get_num_units_in_focus()) {
    return;
  }
  all_players = (1u << (player_index(client.conn.playing)0 == get_num_units_in_focus()) {
    return;
  }
  all_players = (1u << (player_index(client.conn.playing)));
  GOTO = FALSEENDREP
DELTA 17122 239971 1170
SVN  †  †  p » €p „ãv»u WF_FREE_THEME
                        | WF_RESTORE_BACKGROUND | WF_WIDGET_HAS_INFO_LABEL);
    pBuf->info_label†  §K©(]ŒW• Ú{ €= ‚sÛ}€ ‚Xß}€: ‚}ãT€_ ƒç!€_ ‰_ë€G ƒeõK€$ ƒ(ú?€# ƒWþu€# ƒ@ƒZ€  ‚{ˆ&€ šsŒXcost) {
      count =                          WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                           WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Present units"),
                                                                     WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Supported units"),
                                                                     WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label                          WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label  WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label  WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Change production"),
                                             WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Hurry production"),
                                             WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Citizen Governor"),
                                             WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Previous city"),
                                           
  pBuf = create_themeicon(pTheme->R_ARROW_Icon, pWindow->dst,
                          WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_labelENDREP
DELTA 17122 53232 268
SVN  „í„óZJQ ½ ¨ M½'ª ‹SÊ}€L ’)×*¡ ŠXé|Š pô\Š ×@õT€Y w‚ÍQŠ ‚‚ÎP€ ‚Ñ,– ‚‚Òh€3 [‚ÕoŠ „D‚ÖR€‚1 —‚ÜI€R u‚ósŠ ‚:‚ôp€R ‚÷JŠ ‚‚ø]€O <‚û€M ‚‚ý€@ ‚ƒ€9€Q lƒ‚^Š ‚)ƒƒR€Q yƒ†Š ‚;ƒ‡€ oƒŠŠ „ƒ‹€‚ ÜGƒKinfo_label,
                            info_label,
                              
      copy_chars_to_string16(pMap_Button->info_label, _("Show Mini Map"));
info_label, _("Hide Mini Map"));
info_labelinfo_label
                         WF_FREE_GFX | WF_WIDGET_HAS_INFO_LABEL
                        info_label
                         pUnits_Info_Window->dst,
                         WF_FREE_GFX | WF_WIDGET_HAS_INFO_LABEL
                        
  pWidget->info_label
                         pUnits_Info_Window->dst,
                         WF_FREE_GFX | WF_WIDGET_HAS_INFO_LABEL
                         | WF_RESTORE_BACKGROUND | WF_FREE_THEMEinfo_label                             WF_FREE_GFX | WF_FREE_THEME |
                             WF_RESTORE_BACKGROUND
                             | WF_WIDGET_HAS_INFO_LABEL);
  pWidget->info_label = create_str16_from_char(_("Hide Unit Info Window"),
                                               adj_font(12));
                             WF_WIDGET_HAS_INFO_LABEL
                            info_label                             WF_WIDGET_HAS_INFO_LABEL
                            info_label                          WF_WIDGET_HAS_INFO_LABEL
                            info_label = create_str16_from_char(buf, adj_font(12));
  pWidget->info_label                             WF_WIDGET_HAS_INFO_LABEL
                             | WF_RESTORE_BACKGROUND);
  fc_snprintf(buf, sizeof(buf), "%s (%s)", _("Units"), "F2");
  pWidget->info_label                            WF_WIDGET_HAS_INFO_LABEL
                            info_label                            WF_WIDGET_HAS_INFO_LABEL
                            info_label
                                     pMiniMap_Window->dst,
                                     WF_WIDGET_HAS_INFO_LABEL
                                    info_label                             WF_FREE_GFX | WF_FREE_THEME |
                             WF_WIDGET_HAS_INFO_LABEL
                             | WF_RESTORE_BACKGROUND);

  pWidget->info_label = create_str16_from_char(_("Hide Mini Map"),
                                              ENDREP
DELTA 17122 244366 103
SVN  îî]!…+ ¶n €+ ƒs·M€f ‚¼8¹ ”B¿€‚a ˜ Ö
                            | WF_RESTORE_BACKGROUND);
    pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                                           WF_RESTORE_BACKGROUND | WF_WIDGET_HAS_INFO_LABEL
                        | WF_FREE_THEMEinfo_label = create_str16_from_char(cBuf, adj_font(12));
                  WF_RESTORE_BACKGROUND | WF_WIDGET_HAS_INFO_LABEL
                            | WF_FREE_THEME);
        pBuf->action = tech_callback;
        set_wstate(pBuf, FC_WS_NORMAL);

        pBuf->info_label =
            create_str16_from_char(advance_name_translation
                                   (advance_by_number(i)), adj_font(12));
ENDREP
DELTA 14427 225524 32577
SVN  ‚Í<‚Ý8‡ Ô\ Š Š XŠ  ´š€o S=Š BÛ@€{ qÑ~€p S=Š BÛ@€a Õ6€p S=Š BÛ@ |Ø€r S=Š Û@€t S=Š GÛ@€‚` S=Š BÛ@› fã3€} S=Š BÛ@ uç€m S=Š BÛ@€‚H S=Š BÛ@€‚I S=Š BÛ@€V uòo€p S=Š BÛ@€2 Cþ~€p S=Š BÛ@€J Cþ~€p S=Š BÛ@ pý@€C Jþw€p S=Š BÛ@€‚n S=Š BÛ@ p…€ p‡€p M= sÍ Š UŠ€{ S=Š BÛ@ vŽ[€‚ S=Š \‘~€‚H S=Š BÛ@€‚@ S=Š BÛ@€‚N S=Š BÛ@€[ }b€p S=Š BÛ@€‚] S=Š BÛ@€g ¤z€p S=Š BÛ@€‚L S= d®*¿ ¬€p S=Š BÛ@ `®j‚ }¯L€p S=Š BÛ@ X²/¹ E³;€p S=Š BÛ@ _µf‚ ¶G€p S=Š BÛ@ `¹,‚  º€p S=Š BÛ@ ¼t‚ w½u€p S=Š BÛ@ ÀR‚ ÁV€p S=  ,Ä€‚ S=Š BÛ@€ É9‚ G‚ƒ}  Ë
€p M= sÍ Š EÎ‚  Ïb€p S=Š BÛ@€v XÓ>€‚ M= sÍ Š ?×P€x E…@´ iæ?‘ ‘è4— ‚yù?‚ Mü:€- ƒxþ‚ KÉ9 &‚‚U‚ %‚ƒ}½ ‚…V ‚J‚†k€P p‚‰€@ u‚Œ/€ ‚H‚Ž ‚ ‚B‚j‚ ‚)‚“.‚ 8‚•Y€C ‚~‚—K‚ „‚šK‚ W‚ž\‚ Y‚ 5Š t‚¢‚ 0‚¤€B 	‚¥u€^ ‚
‚§;€] ŽG‚ª² S‚¸z€ƒ@ ‘‚¼5lient_main_ROUTE:
      key_unit_trade_fc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("No Orders"), _("Space"));
  pBuf = create_themeicon(pTheme->ODone_Icon, Main.gui,
                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelSPACE;
  add_to_gui_list(ID_UNIT_ORDER_DONE, pBuf);
  /* --------- */  
  
  pEndOrderWidgetList = pBuf;

  /* Wait */
  fc                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelw;
  add_to_gui_list(ID_UNIT_ORDER_WAIT, pBuf);
  /* --------- */  

  /* Explode Nuclear */
  fc                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelfc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Diplomat/Spy Actions"), "D");
  pBuf = create_themeicon(pTheme->OSpy_Icon, Main.gui,
                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelfc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Disband Unit"), "Shift+D");
  pBuf = create_themeicon(pTheme->ODisband_Icon, Main.gui,
                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelpBuf->mod = KMOD_SHIFT;
  add_to_gui_list(ID_UNIT_ORDER_DISBAND, pBuf);
  /* --------- */  

  /* Upgrade */
  fc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Upgrade Unit"), "Shift+U");
  pBuf = create_themeicon(pTheme->Order_Icon, Main.gui,
                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelu;
  pBuf->mod = KMOD_SHIFTfc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Return to Nearest City"), "Shift+G");
  pBuf = create_themeicon(pTheme->OReturn_Icon, Main.gui,
                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelfc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Go to City"), "T");
  pBuf = create_themeicon(pTheme->OGotoCity_Icon, Main.gui,
                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelt;
  add_to_gui_list(ID_UNIT_ORDER_GOTO_CITY, pBuf);
  /* --------- */

  /* Airlift */
  fc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Airlift to City"), "T");
  pBuf = create_themeicon(pTheme->Order_Icon, Main.gui,
                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelt;
  add_to_gui_list(ID_UNIT_ORDER_AIRLIFT, pBuf);
  /* --------- */
  
  /* Goto location */
  fc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Go to Tile"), "G");
  pBuf = create_themeicon(pTheme->OGoto_Icon, Main.gui,
                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelg;
  add_to_gui_list(ID_UNIT_ORDER_GOTO, pBuf);
  /* --------- */

  /* Patrol */
  fc                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelq;
  add_to_gui_list(ID_UNIT_ORDER_PATROL, pBuf);
  /* --------- */

  /* Connect irrigation */
  fc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Connect With Irrigation"), "Shift+I                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labeli;
  pBuf->mod = KMOD_SHIFT;
  add_to_gui_list(ID_UNIT_ORDER_CONNECT_IRRIGATE, pBuf);
  /* --------- */

  /* Connect road */
  fc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Connect With Road"), "Shift+R                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelr;
  pBuf->mod =fc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Connect With Rail"), "                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labell;
  pBuf->mod = KMOD_SHIFT;
  add_to_gui_list(ID_UNIT_ORDER_CONNECT_RAILROAD, pBuf);
  /* --------- */

  /* Auto-Explore */
  fc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Auto Explore"), "X");
  pBuf = create_themeicon(pTheme->OAutoExp_Icon, Main.gui,
                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelfc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Auto Attack"), "A");
  len = strlen(cBuf);
  fc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Auto                           WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelfc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Unsentry All On Tile"), "Shift+S");
  pBuf = create_themeicon(pTheme->OWakeUp_Icon, Main.gui,
                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelsfc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Unload All From Transporter"), "Shift+T");
  pBuf = create_themeicon(pTheme->OUnload_Icon, Main.gui,
                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelt;
  add_to_gui_list(ID_UNIT_ORDER_UNLOAD_TRANSPORTER, pBuf);
  /* --------- */

  /* Load */
  fc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Load Unit"), "L");
  pBuf = create_themeicon(pTheme->OLoad_Icon, Main.gui,
                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labell;
  add_to_gui_list(ID_UNIT_ORDER_LOAD, pBuf);
  /* --------- */

  /* Unload */
  fc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Unload Unit"), "U");
  pBuf = create_themeicon(pTheme->OUnload_Icon, Main.gui,
                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelu;
  add_to_gui_list(ID_UNIT_ORDER_UNLOAD, pBuf);
  /* --------- */

  /* Find Homecity */
  fc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Find Home City"), "H");
  pBuf = create_themeicon(pTheme->OHomeCity_Icon, Main.gui,
                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelh;
  add_to_gui_list(ID_UNIT_ORDER_HOMECITY, pBuf);
  /* --------- */

  /* Pillage */
  fc                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelp;
  pBuf->mod = KMOD_SHIFT;
  add_to_gui_list(ID_UNIT_ORDER_PILLAGE, pBuf);
  /* --------- */

  /* Sentry */
  fc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Sentry Unit"), "S");
  pBuf = create_themeicon(pTheme->OSentry_Icon, Main.gui,
                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labels;
  add_to_gui_list(ID_UNIT_ORDER_SENTRY, pBuf);
  /* --------- */

  /* Clean Nuclear Fallout */
  fc                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labeln;
  add_to_gui_list(ID_UNIT_ORDER_FALLOUT, pBuf);
  /* --------- */

  /* Paradrop */
  fc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Drop Paratrooper"), "P");
  pBuf = create_themeicon(pTheme->OParaDrop_Icon, Main.gui,
                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_label = ARADROP, pBuf);
  /* --------- */

  /* Clean Pollution */
  fc                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelfc                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelfc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Fortify Unit                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelfc                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelfc                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelfc                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelfc                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELkey = SDLK_i;
  pBuf->info_label route */
  fc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Establish Trade Route"), "R");
  pBuf = create_themeicon(pTheme->OTrade_Icon, Main.gui,
                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelr;
  add_to_gui_list(ID_UNIT_ORDER_TRADE_ROUTE, pBuf);

  pOrder_Trade_Button = pBuf;
  /* --------- */    

  /* Build (Rail-)Road */
  fcfc                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelfc                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelb;
  add_to_gui_list(ID_UNIT_ORDER_BUILD_WONDER, pBuf);
  /* --------- */  

  /* Add to City / Build New City */
  fcfc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Build City"), "B");
  len = MAX(len, strlen(cBuf));
      
  pBuf = create_themeicon(pTheme->OBuildCity_Icon, Main.gui,
                          WF_HIDDEN | WF_RESTORE_BACKGROUND
                          | WF_WIDGET_HAS_INFO_LABELinfo_labelInitialize menus (sensitivity, name, etc.) based on the
  current state and current ruleset, etc.  Call menus_update().
*****/
void real_menus_init(void)
{
  /* PORTME */
}real_menus_updatestruct base_type *pbasefcfc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Build City"), "B");
	}
        copy_chars_to_string16(pOrder_Build_AddTo_City_Button->info_label,
                              fcfc        copy_chars_to_string16(pOrder_Road_Button->info_label_fc_snprintf(cBuf, sizeof(cBuf),
                      _("Establish Trade Route Wfc_snprintf(cBuf, sizeof(cBuf),
                      _("Trade W        copy_chars_to_string16(pOrder_Trade_Button->info_label, cBuf);
        clear_wflag(pOrder_Trade_Button, WF_HIDDEN);
      } else {
        fcfcfc        copy_chars_to_string16(pOrder_Irrigation_Button->info_labelfcfcfcinfo_labelfc        copy_chars_to_string16(pOrder_Transform_Button->info_labelpbase = get_base_by_gui_type(BASE_GUI_FORTRESS, pUnit, pUnit->tile);
      if (!pCity && pbasepbase = get_base_by_gui_type(BASE_GUI_AIRBASE, pUnit, pUnit->tile);
      if (!pCity && pbasefc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Auto             copy_chars_to_string16(pOrder_Automate_Unit_Button->info_label,
                                   cBuf);
	  }
	} else {
	  if(pOrder_Automate_Unit_Button->theme != pTheme->OAutoAtt_Icon) {
	    fc_snprintf(cBuf, sizeof(cBuf),"%s (%s)", _("Auto Attack"), "A");
	    pOrder_Automate_Unit_Button->theme = pTheme->OAutoAtt_Icon;
            copy_chars_to_string16(pOrder_Automate_Unit_Button->info_label,
                                  ENDREP
DELTA 15410 268897 6122
SVN  »%¼r †  ™{†‚ … €] ”M¦†;ºj#include "logfc                          WF_WIDGET_HAS_INFO_LABEL
                            | WF_RESTORE_BACKGROUND);
    pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                             removeENDREP
DELTA 16015 9635 2436
SVN  ¿¿rf  P €d ƒ`¡[‚ ™\¥=                        WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND
                          | WF_FREE_DATA);
  pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                           fcENDREP
DELTA 17139 836 137
SVN  ‚µ<‚µc6 Ï2 Š ˆ2Ï:“ €l×€ Û]Ù_info_labelinfo_label, cBuf);
                              WF_FREE_THEME | WF_RESTORE_BACKGROUND
                              | WF_WIDGET_HAS_INFO_LABEL);
          pBuf->info_labelENDREP
DELTA 17122 317472 929
SVN  ‚« ‚­VŒ7 î ˆ MË €h Ûrï† MË € ï< “lÍQ€q yâ|€Z oì4€‚ vçb€< }ê€? ]å.€[ ¼îy        info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                                 info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                            adj_font(12));
  pBuf->action = exit_cma_dialog                          WF_RESTORE_BACKGROUND |WF_WIDGET_HAS_INFO_LABEL);
  pBuf->action = save_cma_callback;
  pBuf->info_label = create_str16_from_char(_("Save settings as..."),
                                            adj_font(10));
                        WF_RESTORE_BACKGROUND | WF_WIDGET_HAS_INFO_LABEL);
  pBuf->action = load_cma_callback;
  pBuf->info_label = create_str16_from_char(_("Load settings"),
                                           DELETE_Icon, pWindow->dst,
                          WF_RESTORE_BACKGROUND | WF_WIDGET_HAS_INFO_LABEL);
  pBuf->action = del_cma_callback;
  pBuf->info_label = create_str16_from_char(_("Delete settings"),
                                            adj_font(10));
                        WF_RESTORE_BACKGROUND | WF_WIDGET_HAS_INFO_LABEL);
  pBuf->action = run_cma_callback;
  pBuf->info_label = create_str16_from_char(_("Control city"), adj_font(10));
                        WF_RESTORE_BACKGROUND | WF_WIDGET_HAS_INFO_LABEL);
  pBuf->action = run_cma_once_callback;
  pBuf->info_label = create_str16_from_char(_("Apply once"), adj_font(10));
Support_Icon, pWindow->dst,
                          WF_RESTORE_BACKGROUND | WF_WIDGET_HAS_INFO_LABEL);
  pBuf->action = stop_cma_callback;
  pBuf->info_label = create_str16_from_char(_("Release city"), adj_font(10));
ENDREP
DELTA 14076 0 73
SVN  Û|Û  F  °U| ›ÀxENDREP
DELTA 15410 190395 67945
SVN  „¡„¢@‚I †f Ž Œ|†^Š Ÿ“m€e ‚+ƒ÷r jƒúb î/¶>€e ‚+ƒ÷r A§O‚ ‚²)Å€e ©ƒ÷r#include "movelog_debug(
                                    | WF_RESTORE_BACKGROUND);
    pCloseButton->info_label =
       
                                    | WF_RESTORE_BACKGROUND);
    pCloseButton->info_label =
       fc
                                    | WF_RESTORE_BACKGROUND);
    pCloseButton->info_label =
       ENDREP
DELTA 16578 105317 37106
SVN  ‚¯x‚±y‚6Œg ¡B ‚ 0¡D‚ ¢v‚ 0¤‚ †^¥8€_ ‚S¬`€= U°6€_ ‚²\€; Tµa€= ‰5¸8‚ …Áoƒ JÆs‚ „È?‚ „fÌ\€  ƒÒb‚ „Öc‚ ƒZÚu‚ „ÞQ‚ „â`‚ „	ær‚ „*ê}‚ ƒRï)‚ „>ò}‚ ‹D÷=‚ n‚Žt“ ‚n„€H ‡:€	 ií= èTŠ‚ ‚Eòe‚ UÈ?€j oök€ ‚ùn‚ 'ü‚ .ý6‚ )þf‚ (‚€‚ (‚;‚ \ê}€a &‚„"‚ ‚‚…J‚ ‡#‚‡O‚ {‚Žt‚ ‚y‚q€D Y‡: ‘Z‚” Š‚¥sfcfcfcfc                          WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label                          WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Information Report"),
                                                                     WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label                          WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);

  pBuf->info_label = create_str16_from_char(_("Garrison Report"),
                                                                     WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Maintenance Report"),
                                           fcfc_fcfcfc_snprintf(cBuf, sizeof(cBuf), "#");
      break;
      case FC_INFINITY:
        fc_snprintf(cBuf, sizeof(cBuf), "--");
      break;
      default:
        fcfcfcfcfcfcfcfcfcfcfc  } else {
      fcfc_snprintf(cBuf, sizeof(cBuf), "%s", _("never"));
    } else {
      fc                    WF_WIDGET_HAS_INFO_LABEL |WF_RESTORE_BACKGROUND
                        | WF_FREE_THEME);
    pBuf->info_label = pStrfcfccopy_chars_to_string16(pWidget->string16, cBuf);
    
  /* food surplus */
  pWidget = pWidget->prev;
  fcfc_snprintf(cBuf, sizeof(cBuf), "#");
    break;
    case FC_INFINITY:
      fc_snprintf(cBuf, sizeof(cBuf), "--");
    break;
    default:
      fcfcfcfcfcfcfccopy_chars_to_string16(pWidget->string16, cBuf);
  
  /* waste */
  pWidget = pWidget->prev;
  fcfcfcfcfcfc_snprintf(cBuf, sizeof(cBuf), "%s", _("never"));
  } else {
    fcreal_city_reportENDREP
DELTA 15725 1060 9980
SVN  †  †  „9Ž ŠM ‰ …ŠAƒ ƒx[€ ‘^”[ ‚þ0 =§c‚ ¨2©"‚ 2ÑV‚ Ó
‚ Ô ‚ Õ6‚ …#Ö>€] ‚Ü)‚ ƒÞ.½ gê@ Iè<‚ ‚iä1‚ ‚iç‚ Fê‚ ƒl÷O‚ ƒaû=‚ Cû= ƒÿc‚ Cû= ƒPƒ?€_ „‡n‚ Rñ{€W Û+‚ CèJ‚ Sû= Wíl Cû=‡ Iô ² Cû=‡ Iô  jî.‚ nï‚ {óN€v Qñ{‚ OóN‚ ,‚ƒ‚ 4‚„M‚ 0‚†‚ ®Y‚‡5‚ ‚¶‚ Ël‚·‚ ‚Nƒƒ‚ ‹Zƒ…T‰ •ƒ‘4‚ Lƒ¦7© \ƒ¦}¥ )ƒ©-‚ š<ƒªX‚ ‚ƒÅ‚ Kƒ¦7 `ƒÍ8 ‚ƒÈF‚ ‚ƒÊU‚ ƒ,ƒÌj‚ ^ƒÐ‚ ‚kƒÑx‚ 6ƒÔe‚ ‚qƒÖ‚ XƒÙ‚ ƒ^ƒÚj‚ ‚`ƒÞJ‚ (ƒí>€o |ƒð8 „Hƒå‚ ƒTƒéh‚ (ƒí>€q …ƒð8‚ ‚ZƒõG‚ ‚Mƒø#‚ Jƒúr€E ‡qƒý‚ ‚„„z‚ ‚x„‡‚ œ3…‰~‚ ”…¦3„ S…º8„ ˆ}…Ë€; >†‚O ¡…Ö@„ Š…÷G€; ‹b†‚O‚ w†Ž3ityrep.h"LASunit) {
    Unit_type_id uti = utype_index(unit_type(punit));
    (entries[uti].active_count)++;
    (total->active_count)++;
    if (pufcfcfcfcfcfc                        WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_labelfcfc_snprintf(cBuf, sizeof(cBuf), "%d", total->upkeep[O_SHIELD]fcfcfcfcfcfcfcfc_snprintf(cBuf, sizeof(cBuf), "%d", units[utype_index(i)].building_count);
      } else {
	fcfc			PL_("turn", "turns", units[utype_index(i)].soonest_completions));
      } else {
	fcfcfcfood upkeep */
            fcFOOD]);Buf = pBuf->prev; /* gold upkeep */
            fcGOLD]);fcfcBuf = pBuf->prev; /* soonest completion */
            if(units[utype_index(i)].building_count > 0) {
              fcfcfcfcfcfcfcfcfcfc_("Sell")fcfc_snprintf(cBuf, sizeof(cBuf), "%d", taxCost */
    pBuf = pBuf->prev;
    fcfcfcfcfcfcfcfcfcfcfcfcfcfc                         SDL_Client_Flags & CF_CHANGE_TAXRATE_LUX_BLOCK,
                         WF_RESTORE_BACKGROUND | WF_WIDGET_HAS_INFO_LABEL);
  set_new_checkbox_theme(pBuf, pTheme->LOCK_Icon, pTheme->UNLOCK_Icon);
  pBuf->info_labelfcfc                         SDL_Client_Flags & CF_CHANGE_TAXRATE_SCI_BLOCK,
                         WF_RESTORE_BACKGROUND | WF_WIDGET_HAS_INFO_LABEL);

  set_new_checkbox_theme(pBuf, pTheme->LOCK_Icon, pTheme->UNLOCK_Icon);

  pBuf->info_labelfcfcfcWF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_labelfcfcfcfcvoidvoid                        WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                           void                        WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                           fc†  ºF»ƒJ€V ¢! €: ‹c£º M°5 ˆp¯jsetup_vertical_widgets_position(col, area.x + 1,
		  area.y, 0, 0,
		  pChangeTechDlg->pBeginActiveWidgetList,
  		  pChangeTechDlg->pEndActiveWidgetList);
    
  if(pChangeTechDlg->pScroll) {
    setup_vertical_sc
                                 | WF_RESTORE_BACKGROUND);
  pExitButton->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                                  science_dialog_update();
  city_report_dialog_update();
}
ENDREP
DELTA 17122 275915 5199
SVN  †Œ†1dˆW Æ €; ÕRÇ€; ‹e¤ Ÿx¨u¼ Sç  Ž<Éy€; ËcÙ/€; Oƒ«8 ´‚¦[§ q¨v Î_‚Û_€; ¸ƒ«8” ˆ+„ãN• Ÿx„ì                        WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                                                   WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                           /* TRANS: "CtW" = "Chance to Win" */_("Terrain Defense Bonus: +%d%% "), bonus);

  return buffer                        WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                                                   WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                           /* TRANS: "CtW" = "Chance to Win" */
                          WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                           _("Nation's Legend")_("SORRY... NO INFO")ENDREP
DELTA 15218 28724 1743
SVN  ‚t‚y‚ í €d Yîm¶ xï|  pInfo_Area = fc_calloc(1, sizeof(SDL_Rect));

    color = pWidget->info_label->fgcol;
    pWidget->info_label->style |= TTF_STYLE_BOLD;
    pWidget->info_label->fgcol =
        *get_game_colorRGB(COLOR_THEME_QUICK_INFO_TEXT);
info_label);

    pWidget->info_label->fgcol = color;
ENDREP
DELTA 14271 776 5303
SVN  »+¼8X‡3 †A £ ¢?†t€t Rû Šhªl€D œq¶€; cÔ€Y  eå  ‰ †0€; ‚J  “€E ‚I”J‚ P—‚ ¢D˜g
/* client */
#include "client_mainclient.conn.playing
	  || (pPlayer != client.conn.playing
	   && player_has_embassy(client.conn.playing, pPlayer)));
      copy_chars_to_string16(pPlayer0->string16, astr_str(&astr));
                        WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                                               WF_RESTORE_BACKGROUND | WF_WIDGET_HAS_INFO_LABEL
                        | WF_FREE_THEME);
    pBuf->info_label = pStr;

    if(!pPlayer->is_alive) {
      pStr = create_str16_from_char(_("R.I.P.") (pPlayer != client.conn.playing                        WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                            (pPlayer != client.conn.playingclient.conn.playing, pPlayer);
            
      if(pPlayer->ai_datafcfcENDREP
DELTA 17122 24032 56
SVN  Ü`Ý8= ­" €= ®Y®
                                  | WF_RESTORE_BACKGROUND);
  pCloseButton->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                                   ENDREP
DELTA 17122 287723 493
SVN  ‚ß5‚âT7ˆ Á €; ŽfÂ€; ¾gÑl€] ‚‚¡Y Œ}‚“`€] ®@‚¡Y€] Ž‚Ñ                        WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                                                   WF_WIDGET_HAS_INFO_LABEL | WF_RESTORE_BACKGROUND);
  pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                                                     WF_WIDGET_HAS_INFO_LABEL
                            | WF_RESTORE_BACKGROUND);
    pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                                                       WF_WIDGET_HAS_INFO_LABEL
                            | WF_RESTORE_BACKGROUND);
    pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                                                       WF_WIDGET_HAS_INFO_LABEL
                            | WF_RESTORE_BACKGROUND);
    pBuf->info_label = create_str16_from_char(_("Close Dialog (Esc)"),
                                             ENDREP
DELTA 12613 95 180
SVN  ê?êM žN ¸ ‘užN€ ·~²ASDL_String16 *info_label;   /* optionnal info label. */
find_next_widget_at_pos(struct widget *pStartWidget, int x, int y);
struct widget *find_next_widget_for_key(struct widget *pStartWidget, SDL_keysym kENDREP
DELTA 12613 514 41
SVN  ¿{Àxd …d ‡ ”…o€] ¦™]"SDL.h"WIDGET_HAS_INFO_LABEL)
      == WF_WIDGET_HAS_INFO_LABEL) {
    FREESTRING16(pGUI->info_labelENDREP
id: 18d.5ck.r17146/84041
type: file
pred: 18d.5ck.r17122/384410
count: 89
text: 17146 49956 364 81339 57d796928eb57f62461ca7e148f9078a
props: 9803 3079 111 0 9b377c828b4ca1827963af8e19878787
cpath: /trunk/client/gui-sdl/optiondlg.c
copyroot: 15280 /trunk

id: 170.5ck.r17146/84297
type: file
pred: 170.5ck.r17122/384667
count: 141
text: 17146 54768 1867 124072 5002466bc08e2870aedd21dd16836630
props: 10779 67589 111 0 515f6afa6448327e59cdac91d637f582
cpath: /trunk/client/gui-sdl/citydlg.c
copyroot: 15280 /trunk

id: 17f.5ck.r17146/84556
type: file
pred: 17f.5ck.r17122/384927
count: 48
text: 17146 50350 4392 11419 150ff40183a568ac9d6337ffd3d270b6
props: 10534 12701 111 0 3d57169d64a739976bce7d2e578e29eb
cpath: /trunk/client/gui-sdl/gotodlg.c
copyroot: 15280 /trunk

id: 186.5ck.r17146/84813
type: file
pred: 186.5ck.r17139/1002
count: 179
text: 17146 72188 222 39651 c37e95ce93ba7d7e6e361d9a2e6c0d04
props: 10779 67955 111 0 1566ee949d8102994e5ce1bbf3530de9
cpath: /trunk/client/gui-sdl/mapview.c
copyroot: 15280 /trunk

id: 18i.5ck.r17146/85068
type: file
pred: 18i.5ck.r17139/1256
count: 120
text: 17146 76642 2898 109963 8696fb507b15a3fbdc91f1cb73dbb432
props: 10779 68322 111 0 622f1432038f91cce287c1d90e4f7964
cpath: /trunk/client/gui-sdl/repodlgs.c
copyroot: 15280 /trunk

id: 3fu.5ck.r17146/85326
type: file
pred: 3fu.5bk.r15218/30693
count: 15
text: 17146 80825 314 34553 c952cbc97bf5b24216b3e6d0c326ab31
props: 12670 109164 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /trunk/client/gui-sdl/widget.c
copyroot: 15280 /trunk

id: 3fv.5ck.r17146/85580
type: file
pred: 3fv.5bk.r15218/31232
count: 10
text: 17146 83626 235 13582 a8c9a1ddb292edc44603a5cc7f507089
props: 12670 110325 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /trunk/client/gui-sdl/widget.h
copyroot: 15280 /trunk

id: 188.5ck.r17146/85834
type: file
pred: 188.5ck.r17122/386480
count: 72
text: 17146 59799 11755 44728 ec741c0814f380a986451c00e3501a9a
props: 10805 77668 111 0 18cdb9becb11c47631b7a093e907200c
cpath: /trunk/client/gui-sdl/menu.c
copyroot: 15280 /trunk

id: 174.5ck.r17146/86089
type: file
pred: 174.5ck.r17122/386734
count: 57
text: 17146 72437 1691 38541 519bb01b0c492e35721af547020bb291
props: 9108 25970 111 0 433ca8234d38d2ba821c9aa09a03d731
cpath: /trunk/client/gui-sdl/cma_fe.c
copyroot: 15280 /trunk

id: 3fh.5ck.r17146/86344
type: file
pred: 3fh.5bk.r14076/3619
count: 11
text: 17146 74158 25 11679 721769c3647d9e770e3730a4aa72a1be
props: 12670 112927 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /trunk/client/gui-sdl/widget_button.c
copyroot: 15280 /trunk

id: 172.5ck.r17146/86603
type: file
pred: 172.5ck.r17122/387249
count: 68
text: 17146 74646 1964 39161 e306331afc78ab0e317793cd9f8eea8b
props: 10779 68689 111 0 df9f31216c5039327c376b7fe82756f5
cpath: /trunk/client/gui-sdl/cityrep.c
copyroot: 15280 /trunk

id: 17a.5ck.r17146/86860
type: file
pred: 17a.5ck.r17139/1765
count: 162
text: 17146 79569 1225 100273 6155d00fa7037e98d98a21dcbc8d6c37
props: 10805 78030 111 0 ae073b1a8624f4e72ab3bef202bf2f05
cpath: /trunk/client/gui-sdl/dialogs.c
copyroot: 15280 /trunk

id: 3bn.5ck.r17146/87117
type: file
pred: 3bn.5ck.r17122/387764
count: 37
text: 17146 82490 1106 45396 a48c9d806887b9abedddb141485505b8
props: 12670 114091 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /trunk/client/gui-sdl/diplomat_dialog.c
copyroot: 15280 /trunk

id: 3fj.5ck.r17146/87382
type: file
pred: 3fj.0.r13354/61769
count: 10
text: 17146 83887 128 8312 3b56db8c7570d324a0f7ae3f3fc7215c
props: 12670 114675 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /trunk/client/gui-sdl/widget_core.c
copyroot: 15280 /trunk

id: 17c.5ck.r17146/87638
type: file
pred: 17c.5ck.r17122/388030
count: 64
text: 17146 0 49927 53579 748e32b7c8b01d1a2ae7caac59c79f66
props: 10411 163500 111 0 433ca8234d38d2ba821c9aa09a03d731
cpath: /trunk/client/gui-sdl/diplodlg.c
copyroot: 15280 /trunk

id: 184.5ck.r17146/87894
type: file
pred: 184.5ck.r17122/388290
count: 107
text: 17146 56666 2346 80346 cbba9b9af5e19d4a4531365a4de66134
props: 9803 6307 111 0 4135f0dfb17a4d11b2424d95e27830f5
cpath: /trunk/client/gui-sdl/mapctrl.c
copyroot: 15280 /trunk

id: 183.5ck.r17146/88150
type: file
pred: 183.5ck.r17122/388544
count: 55
text: 17146 59041 728 14173 d12b9c004ae5c8f40046b9d73c6c8b57
props: 10411 163869 111 0 d4514082fc7e52be026d3360dec4dcb0
cpath: /trunk/client/gui-sdl/inteldlg.c
copyroot: 15280 /trunk

id: 17e.5ck.r17146/88408
type: file
pred: 17e.5ck.r17122/388804
count: 42
text: 17146 71899 260 8178 4a492a0bd89b94eec63afd10c1222a09
props: 10411 164236 111 0 8e6f231ffe21dad0a34f68090b1c0b69
cpath: /trunk/client/gui-sdl/finddlg.c
copyroot: 15280 /trunk

id: 17z.5ck.r17146/88664
type: file
pred: 17z.5ck.r17122/389060
count: 68
text: 17146 74207 407 69918 bbe318f5b8727ede5a9ad6303d262a6c
props: 10411 164601 111 0 3d57169d64a739976bce7d2e578e29eb
cpath: /trunk/client/gui-sdl/helpdlg.c
copyroot: 15280 /trunk

id: 18f.5ck.r17146/88921
type: file
pred: 18f.5ck.r17139/2019
count: 56
text: 17146 81169 1049 24120 eb88ef9724e583c5e6305c603b223a70
props: 10411 164967 111 0 28e613ef70fc8e4efe7ed7b15f74e6e7
cpath: /trunk/client/gui-sdl/plrdlg.c
copyroot: 15280 /trunk

id: 16y.5ck.r17146/89176
type: file
pred: 16y.5ck.r17122/389574
count: 59
text: 17146 82246 216 28344 23403f20671f73fc63c1cec3821ad026
props: 9030 114052 111 0 2a5912525b098cb46a1301ee940f7617
cpath: /trunk/client/gui-sdl/chatline.c
copyroot: 15280 /trunk

id: 18m.5ck.r17146/89433
type: file
pred: 18m.5ck.r17122/389831
count: 36
text: 17146 71586 282 7701 f2b6ddd26f1a3481a8059700e9ac76cd
props: 9803 7024 111 0 3d57169d64a739976bce7d2e578e29eb
cpath: /trunk/client/gui-sdl/spaceshipdlg.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 25
file 16u.5ck.r16063/63204
K 14
SDL_rotozoom.c
V 24
file 3jy.0.r12670/115301
K 14
SDL_rotozoom.h
V 24
file 3jz.0.r12670/115888
K 9
SDL_ttf.c
V 24
file 2dz.5bk.r13597/7386
K 9
SDL_ttf.h
V 24
file 2e0.5bk.r13597/7647
K 11
alphablit.c
V 23
file 3be.0.r13354/59832
K 8
canvas.c
V 25
file 39i.5bk.r15074/21186
K 8
canvas.h
V 23
file 39j.0.r13354/56918
K 16
caravan_dialog.c
V 26
file 3bp.5ck.r17122/386217
K 10
chatline.c
V 25
file 16y.5ck.r17146/89176
K 10
chatline.h
V 26
file 16z.5ck.r16199/137581
K 9
citydlg.c
V 25
file 170.5ck.r17146/84297
K 9
citydlg.h
V 23
file 171.0.r13354/55222
K 9
cityrep.c
V 25
file 172.5ck.r17146/86603
K 9
cityrep.h
V 22
file 173.0.r12769/2941
K 8
cma_fe.c
V 25
file 174.5ck.r17146/86089
K 8
cma_fe.h
V 23
file 175.0.r11361/43495
K 8
colors.c
V 23
file 176.0.r13354/62500
K 8
colors.h
V 24
file 177.5bk.r14076/4693
K 12
connectdlg.c
V 24
file 178.5ck.r17139/2270
K 12
connectdlg.h
V 23
file 179.0.r12349/45319
K 9
dialogs.c
V 25
file 17a.5ck.r17146/86860
K 9
dialogs.h
V 23
file 17b.0.r13354/61529
K 10
diplodlg.c
V 25
file 17c.5ck.r17146/87638
K 10
diplodlg.h
V 22
file 17d.0.r11584/2869
K 17
diplomat_dialog.c
V 25
file 3bn.5ck.r17146/87117
K 9
finddlg.c
V 25
file 17e.5ck.r17146/88408
K 9
finddlg.h
V 20
file 2d8.0.r5991/702
K 9
gotodlg.c
V 25
file 17f.5ck.r17146/84556
K 9
gotodlg.h
V 22
file 17g.0.r6515/58208
K 10
graphics.c
V 26
file 17h.5ck.r16929/334736
K 10
graphics.h
V 23
file 17i.0.r12611/13939
K 11
gui_iconv.c
V 26
file 17l.5ck.r16578/465566
K 11
gui_iconv.h
V 23
file 17m.0.r13354/66657
K 8
gui_id.h
V 26
file 17n.5ck.r16397/107249
K 10
gui_main.c
V 24
file 17o.5ck.r17139/1509
K 10
gui_main.h
V 25
file 17p.5ck.r16059/44129
K 11
gui_mouse.c
V 23
file 3ca.0.r13354/59349
K 11
gui_mouse.h
V 24
file 3cb.0.r12670/112397
K 12
gui_string.c
V 26
file 17r.5ck.r17122/390346
K 12
gui_string.h
V 23
file 17s.0.r13481/30445
K 14
gui_tilespec.c
V 26
file 191.5ck.r16929/332661
K 14
gui_tilespec.h
V 25
file 192.5bk.r13912/53929
K 11
happiness.c
V 23
file 17x.0.r11361/41144
K 11
happiness.h
V 23
file 17y.0.r11361/41867
K 9
helpdlg.c
V 25
file 17z.5ck.r17146/88664
K 9
helpdlg.h
V 23
file 180.0.r11361/47416
K 10
inputdlg.c
V 23
file 181.0.r11361/47897
K 10
inputdlg.h
V 23
file 182.0.r5500/260641
K 10
inteldlg.c
V 25
file 183.5ck.r17146/88150
K 10
inteldlg.h
V 22
file 2d9.0.r11409/2687
K 9
mapctrl.c
V 25
file 184.5ck.r17146/87894
K 9
mapctrl.h
V 23
file 185.0.r13354/63700
K 9
mapview.c
V 25
file 186.5ck.r17146/84813
K 9
mapview.h
V 23
file 187.0.r13354/56676
K 6
menu.c
V 25
file 188.5ck.r17146/85834
K 6
menu.h
V 25
file 189.5bk.r13856/57405
K 12
messagedlg.c
V 26
file 18a.5ck.r16578/465051
K 12
messagedlg.h
V 22
file 2da.0.r5989/48394
K 12
messagewin.c
V 24
file 18b.5ck.r15883/3836
K 12
messagewin.h
V 23
file 18c.0.r6286/140236
K 5
mmx.h
V 23
file 2e1.0.r6286/134429
K 11
optiondlg.c
V 25
file 18d.5ck.r17146/84041
K 11
optiondlg.h
V 25
file 18e.5ck.r16998/86101
K 7
pages.c
V 23
file 2qg.5ck.r17022/893
K 7
pages.h
V 22
file 2qh.0.r8639/16416
K 8
plrdlg.c
V 25
file 18f.5ck.r17146/88921
K 8
plrdlg.h
V 22
file 18g.0.r6387/81301
K 10
ratesdlg.h
V 22
file 2db.0.r5989/47726
K 10
repodlgs.c
V 25
file 18i.5ck.r17146/85068
K 10
repodlgs.h
V 23
file 18j.0.r13354/58129
K 14
spaceshipdlg.c
V 25
file 18m.5ck.r17146/89433
K 14
spaceshipdlg.h
V 23
file 18n.0.r5500/263363
K 8
sprite.c
V 26
file 39k.5ck.r16578/462217
K 8
sprite.h
V 24
file 39l.0.r12670/108062
K 18
themebackgrounds.c
V 26
file 3ff.5ck.r16929/333181
K 18
themebackgrounds.h
V 25
file 3fg.5bk.r13794/17440
K 13
themecolors.c
V 26
file 392.5ck.r16929/334218
K 13
themecolors.h
V 24
file 393.0.r12670/114433
K 8
themes.c
V 26
file 38p.5ck.r17122/385702
K 11
themespec.c
V 26
file 390.5ck.r17122/386989
K 11
themespec.h
V 26
file 391.5ck.r16578/464018
K 11
unistring.c
V 23
file 18o.0.r13354/57401
K 11
unistring.h
V 23
file 18p.0.r13481/30205
K 14
voteinfo_bar.c
V 25
file 4ha.5ck.r16063/62859
K 14
voteinfo_bar.h
V 25
file 4hb.5ck.r16063/63032
K 8
widget.c
V 25
file 3fu.5ck.r17146/85326
K 8
widget.h
V 25
file 3fv.5ck.r17146/85580
K 15
widget_button.c
V 25
file 3fh.5ck.r17146/86344
K 15
widget_button.h
V 24
file 3g7.0.r12670/113556
K 17
widget_checkbox.c
V 24
file 3fi.5bk.r14076/6064
K 17
widget_checkbox.h
V 24
file 3g8.0.r12670/106620
K 13
widget_core.c
V 25
file 3fj.5ck.r17146/87382
K 13
widget_edit.c
V 23
file 3fk.0.r13354/64909
K 13
widget_edit.h
V 24
file 3g9.0.r12670/115595
K 13
widget_icon.c
V 23
file 3fl.0.r13354/59104
K 13
widget_icon.h
V 24
file 3ga.0.r12670/112107
K 14
widget_label.c
V 24
file 3fm.5bk.r13597/6851
K 14
widget_label.h
V 24
file 3gb.0.r12670/110079
K 10
widget_p.h
V 24
file 3fn.0.r12670/107197
K 18
widget_scrollbar.c
V 26
file 3fo.5df.r16929/336288
K 18
widget_scrollbar.h
V 24
file 3gc.0.r12670/116811
K 15
widget_window.c
V 23
file 3fp.0.r13354/55944
K 15
widget_window.h
V 23
file 3gd.0.r12699/32533
K 7
wldlg.c
V 26
file 18q.5ck.r17122/390090
K 7
wldlg.h
V 26
file 18r.5ck.r16285/100508
END
ENDREP
id: 16t.5ck.r17146/94660
type: dir
pred: 16t.5ck.r17139/7501
count: 595
text: 17146 89691 4956 4956 98383c6c9f146974f0c6e4091844e68c
props: 11108 12869 78 0 a27c61ac5fddbd709df8c1876129f940
cpath: /trunk/client/gui-sdl
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 24
file 5f.5ck.r16999/27621
K 6
agents
V 24
dir zf.5ck.r17122/357295
K 11
attribute.c
V 24
file xh.5ck.r17034/13614
K 11
attribute.h
V 19
file xi.0.r4715/844
K 7
audio.c
V 26
file 139.5ck.r17122/401512
K 7
audio.h
V 25
file 13a.5ck.r16165/81556
K 12
audio_none.c
V 23
file 13d.0.r6129/145164
K 12
audio_none.h
V 22
file 13e.0.r4452/27228
K 11
audio_sdl.c
V 26
file 13f.5ck.r16578/477644
K 11
audio_sdl.h
V 22
file 13g.0.r4452/26570
K 17
chatline_common.c
V 26
file 14q.5ck.r17122/401257
K 17
chatline_common.h
V 25
file 14r.5ck.r16888/19266
K 16
citydlg_common.c
V 25
file z4.5ck.r17122/357537
K 16
citydlg_common.h
V 25
file z5.5ck.r16984/109254
K 13
cityrepdata.c
V 25
file mb.5ck.r17122/357790
K 13
cityrepdata.h
V 21
file mc.0.r9153/21475
K 11
civclient.c
V 23
file 4f2.5ck.r15408/695
K 13
client_main.c
V 23
file 2f.5cp.r17128/1135
K 13
client_main.h
V 23
file hz.5cq.r16632/1773
K 8
climap.c
V 25
file 197.5ck.r16888/19519
K 8
climap.h
V 25
file 198.5ck.r16888/20012
K 9
climisc.c
V 25
file d5.5ck.r17122/405813
K 9
climisc.h
V 23
file i0.5ck.r17044/3522
K 8
clinet.c
V 25
file hc.5ck.r17122/405042
K 8
clinet.h
V 25
file i1.5bk.r14427/324634
K 15
colors_common.c
V 26
file 33a.5ck.r17122/358041
K 15
colors_common.h
V 25
file 33b.5ck.r16397/92170
K 19
connectdlg_common.c
V 26
file 2fw.5ck.r17122/400799
K 19
connectdlg_common.h
V 25
file 2fx.5ck.r16532/38983
K 9
control.c
V 22
file gz.5ck.r17128/658
K 9
control.h
V 22
file i2.5ck.r17128/896
K 7
dummy.c
V 23
file 4f9.5ck.r15641/551
K 8
editor.c
V 26
file 3bg.5ck.r17122/406062
K 8
editor.h
V 25
file 3bh.5ck.r15761/13075
K 11
ggzclient.c
V 25
file 394.5ck.r15814/34717
K 11
ggzclient.h
V 24
file 395.0.r12670/122419
K 17
global_worklist.c
V 26
file 4i6.5ck.r17122/401058
K 17
global_worklist.h
V 26
file 4i7.5ck.r16319/100206
K 6
goto.c
V 25
file vu.5ck.r17042/143219
K 6
goto.h
V 24
file vv.5ck.r15509/18108
K 8
gui-ftwl
V 25
dir 2k2.5ck.r17122/400301
K 11
gui-gtk-2.0
V 24
dir zs.5ck.r17122/367851
K 7
gui-sdl
V 24
dir 16t.5ck.r17146/94660
K 8
gui-stub
V 24
dir mh.5ck.r17122/404797
K 9
gui-win32
V 24
dir np.5ck.r17122/383915
K 7
gui-xaw
V 23
dir 9o.5ck.r17127/34298
K 10
helpdata.c
V 24
file h1.5ck.r17127/40029
K 10
helpdata.h
V 25
file i3.5bk.r14417/261925
K 7
include
V 23
dir b8.5ck.r17079/30356
K 16
mapctrl_common.c
V 25
file 15m.5ck.r17068/46203
K 16
mapctrl_common.h
V 23
file 15n.0.r11378/41712
K 16
mapview_common.c
V 25
file z2.5ck.r17122/405287
K 16
mapview_common.h
V 25
file z3.5ck.r16578/482844
K 19
messagewin_common.c
V 25
file 14s.5ck.r17077/10273
K 19
messagewin_common.h
V 25
file 14t.5ck.r15909/37338
K 9
options.c
V 25
file dc.5ck.r17122/406557
K 9
options.h
V 24
file i4.5ck.r16998/72284
K 17
overview_common.c
V 25
file 2yk.5ck.r16930/40265
K 17
overview_common.h
V 25
file 2yl.5ck.r16930/40516
K 10
packhand.c
V 24
file n.5ck.r17122/384162
K 10
packhand.h
V 24
file i5.5bk.r14422/90154
K 15
plrdlg_common.c
V 26
file 14u.5ck.r17122/396100
K 15
plrdlg_common.h
V 26
file 14v.5bk.r14417/257761
K 17
repodlgs_common.c
V 26
file 11i.5ck.r17122/368346
K 17
repodlgs_common.h
V 25
file 11j.5ck.r16971/56809
K 9
reqtree.c
V 26
file 2ym.5ck.r16929/315694
K 9
reqtree.h
V 23
file 2yn.0.r13481/22674
K 9
servers.c
V 26
file 33x.5ck.r17122/406310
K 9
servers.h
V 25
file 33y.5ck.r15505/14398
K 6
text.c
V 25
file 2g3.5ck.r17127/30603
K 6
text.h
V 24
file 2g4.5bk.r14284/8380
K 15
themes_common.c
V 25
file 352.5ck.r16930/48921
K 15
themes_common.h
V 25
file 353.5ck.r16930/49172
K 10
tilespec.c
V 25
file hl.5ck.r17122/401760
K 10
tilespec.h
V 24
file i6.5ck.r16930/49667
K 14
update_queue.c
V 25
file 4jw.5ck.r17079/36327
K 14
update_queue.h
V 25
file 4jx.5ck.r16999/23921
K 10
voteinfo.c
V 26
file 4fe.5ck.r17042/154402
K 10
voteinfo.h
V 25
file 4ff.5ck.r16201/17543
END
ENDREP
id: d.5ck.r17146/98686
type: dir
pred: d.5ck.r17139/11525
count: 4775
text: 17146 94903 3770 3770 421de1bcff689b43743952a3e2d3047a
props: 12883 2898 109 0 732f4656541fb514e4368d9517bdf317
cpath: /trunk/client
copyroot: 15280 /trunk

PLAIN
K 9
ABOUT-NLS
V 22
file fu.0.r13215/85704
K 7
AUTHORS
V 19
file 5u.0.r12982/94
K 7
COPYING
V 19
file 1h.0.r9643/400
K 9
ChangeLog
V 26
file 6l.5ck.r15924/3800068
K 7
INSTALL
V 23
file 6.5ck.r16872/79279
K 11
Makefile.am
V 23
file 59.5bk.r14918/1267
K 4
NEWS
V 23
file 6m.5ck.r16839/2057
K 6
README
V 20
file 7.0.r4421/96382
K 2
ai
V 23
dir 8.5ck.r17122/332501
K 10
autogen.sh
V 24
file 12o.5ck.r16223/7590
K 9
bootstrap
V 23
dir 2p5.5ck.r16731/2595
K 6
client
V 22
dir d.5ck.r17146/98686
K 6
common
V 22
dir p.5ck.r17127/21300
K 12
config.mac.h
V 20
file hb.0.r6045/5982
K 12
configure.ac
V 24
file 149.5ck.r17010/2239
K 4
data
V 21
dir w.5ck.r17140/2216
K 6
debian
V 23
dir 5w.5ck.r16224/17276
K 12
dependencies
V 23
dir 2yu.5ck.r17024/5709
K 11
diff_ignore
V 23
file qq.5ck.r16311/3290
K 3
doc
V 22
dir k7.5ck.r17145/8042
K 2
m4
V 23
dir 12p.5ck.r17012/4520
K 6
manual
V 25
dir 2m2.5ck.r17122/356404
K 2
po
V 22
dir fs.5ck.r17026/2600
K 7
scripts
V 23
dir 2yo.5bk.r14810/1300
K 6
server
V 22
dir z.5ck.r17135/14457
K 10
stamp-h.in
V 19
file 80.0.r1125/241
K 5
tests
V 22
dir 2g9.5ck.r15661/767
K 7
utility
V 22
dir 1c.5ck.r17145/5988
K 10
version.in
V 24
file 2lo.5ck.r17041/9237
K 3
vms
V 21
dir u9.0.r11105/70719
K 5
win32
V 24
dir 2eu.5bk.r13732/30345
END
ENDREP
id: 3.5ck.r17146/100193
type: dir
pred: 3.5ck.r17145/9542
count: 12868
text: 17146 98919 1261 1261 42f54451f92155091a83ed64e93af6d2
props: 11109 0 255 0 8cbc80e0da9c47b05b8ffee17ea9b0f1
cpath: /trunk
copyroot: 15280 /trunk

PLAIN
K 8
branches
V 20
dir 1.0.r17144/13823
K 4
tags
V 19
dir 2.0.r16877/5158
K 5
trunk
V 23
dir 3.5ck.r17146/100193
K 7
website
V 18
dir 3ge.0.r12388/0
END
ENDREP
id: 0.0.r17146/100582
type: dir
pred: 0.0.r17145/9926
count: 17146
text: 17146 100417 152 152 6fc569cc06ddd49f2c1c6959b4d7a940
cpath: /
copyroot: 0 /

3fj.5ck.t17145-1 modify true false /trunk/client/gui-sdl/widget_core.c

17c.5ck.t17145-1 modify true false /trunk/client/gui-sdl/diplodlg.c

170.5ck.t17145-1 modify true false /trunk/client/gui-sdl/citydlg.c

17f.5ck.t17145-1 modify true false /trunk/client/gui-sdl/gotodlg.c

18d.5ck.t17145-1 modify true false /trunk/client/gui-sdl/optiondlg.c

183.5ck.t17145-1 modify true false /trunk/client/gui-sdl/inteldlg.c

184.5ck.t17145-1 modify true false /trunk/client/gui-sdl/mapctrl.c

188.5ck.t17145-1 modify true false /trunk/client/gui-sdl/menu.c

18m.5ck.t17145-1 modify true false /trunk/client/gui-sdl/spaceshipdlg.c

17e.5ck.t17145-1 modify true false /trunk/client/gui-sdl/finddlg.c

186.5ck.t17145-1 modify true false /trunk/client/gui-sdl/mapview.c

174.5ck.t17145-1 modify true false /trunk/client/gui-sdl/cma_fe.c

3fh.5ck.t17145-1 modify true false /trunk/client/gui-sdl/widget_button.c

18i.5ck.t17145-1 modify true false /trunk/client/gui-sdl/repodlgs.c

172.5ck.t17145-1 modify true false /trunk/client/gui-sdl/cityrep.c

17z.5ck.t17145-1 modify true false /trunk/client/gui-sdl/helpdlg.c

17a.5ck.t17145-1 modify true false /trunk/client/gui-sdl/dialogs.c

3fu.5ck.t17145-1 modify true false /trunk/client/gui-sdl/widget.c

18f.5ck.t17145-1 modify true false /trunk/client/gui-sdl/plrdlg.c

16y.5ck.t17145-1 modify true false /trunk/client/gui-sdl/chatline.c

3bn.5ck.t17145-1 modify true false /trunk/client/gui-sdl/diplomat_dialog.c

3fv.5ck.t17145-1 modify true false /trunk/client/gui-sdl/widget.h


100582 100733
