Author: cazfi
Date: Sun Nov  8 17:07:16 2015
New Revision: 30479

URL: http://svn.gna.org/viewcvs/freeciv?rev=30479&view=rev
Log:
Made all the clients to respect tileset_unit_layout_offset_y()

See patch #6520

Modified:
    branches/S2_5/client/gui-qt/citydlg.cpp
    branches/S2_5/client/gui-sdl/citydlg.c

Modified: branches/S2_5/client/gui-qt/citydlg.cpp
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_5/client/gui-qt/citydlg.cpp?rev=30479&r1=30478&r2=30479&view=diff
==============================================================================
--- branches/S2_5/client/gui-qt/citydlg.cpp     (original)
+++ branches/S2_5/client/gui-qt/citydlg.cpp     Sun Nov  8 17:07:16 2015
@@ -58,18 +58,6 @@
 static city_dialog *city_dlg;
 
 /****************************************************************************
-  Calculates extra space needed for upkeep sprites for non-isometric tileset
-****************************************************************************/
-static float overhead_upkeep_scale()
-{
-  float ret = 1.0f;
-  if (!tileset_is_isometric(tileset)) {
-    ret = 1.33f;
-  }
-  return ret;
-}
-
-/****************************************************************************
   Draws X on pixmap pointing its useless
 ****************************************************************************/
 static void pixmap_put_x(QPixmap *pix)
@@ -100,13 +88,12 @@
 
   if (punit) {
     unit_pixmap = qtg_canvas_create(tileset_full_tile_width(tileset),
-                                    overhead_upkeep_scale()
-                                    * tileset_tile_height(tileset) * 3 / 2);
+                                    tileset_unit_with_upkeep_height(tileset));
     unit_pixmap->map_pixmap.fill(Qt::transparent);
     put_unit(punit, unit_pixmap, 0, 0);
     if (supported) {
       put_unit_city_overlays(punit, unit_pixmap, 0,
-                             tileset_tile_height(tileset),
+                             tileset_unit_layout_offset_y(tileset),
                              punit->upkeep, happy_cost);
     }
   }
@@ -357,13 +344,12 @@
   }
   if (qunit) {
     unit_pixmap = qtg_canvas_create(tileset_full_tile_width(tileset),
-                                    overhead_upkeep_scale()
-                                    * tileset_tile_height(tileset) * 3 / 2);
+                                    tileset_unit_with_upkeep_height(tileset));
     unit_pixmap->map_pixmap.fill(QColor(200, 200, 200));
     put_unit(qunit, unit_pixmap, 0, 0);
     if (supported) {
       put_unit_city_overlays(qunit, unit_pixmap, 0,
-                             tileset_tile_height(tileset),
+                             tileset_unit_layout_offset_y(tileset),
                              qunit->upkeep, happy_cost);
     }
   }
@@ -380,13 +366,12 @@
   }
   if (qunit) {
     unit_pixmap = qtg_canvas_create(tileset_full_tile_width(tileset),
-                                    overhead_upkeep_scale()
-                                    * tileset_tile_height(tileset) * 3 / 2);
+                                    tileset_unit_with_upkeep_height(tileset));
     unit_pixmap->map_pixmap.fill(Qt::transparent);
     put_unit(qunit, unit_pixmap, 0, 0);
     if (supported) {
       put_unit_city_overlays(qunit, unit_pixmap, 0,
-                             tileset_tile_height(tileset),
+                             tileset_unit_layout_offset_y(tileset),
                              qunit->upkeep, happy_cost);
     }
   }
@@ -454,8 +439,7 @@
   QSizePolicy size_fixed_policy(QSizePolicy::Fixed, QSizePolicy::Fixed);
   layout->setContentsMargins(3, 6, 3, 6);
   setSizePolicy(size_fixed_policy);
-  setFixedHeight(overhead_upkeep_scale() * tileset_tile_height(tileset)
-                 * 3 / 2 + 6);
+  setFixedHeight(tileset_unit_with_upkeep_height(tileset) + 6);
   setLayout(layout);
 }
 
@@ -701,7 +685,7 @@
   size_expanding_policy.setVerticalStretch(0);
   current_building = 0;
 
-  /** Overview tab initiazlization */
+  /** Overview tab initialization */
   {
     QGroupBox *map_box = new QGroupBox(this);
     QVBoxLayout *v_layout = new QVBoxLayout;
@@ -765,8 +749,7 @@
     supported_units = new unit_info(this, true);
     scroll = new QScrollArea;
     scroll->setWidgetResizable(true);
-    scroll->setMaximumHeight(tileset_tile_height(tileset) * 2
-                             * overhead_upkeep_scale());
+    scroll->setMaximumHeight(tileset_unit_with_upkeep_height(tileset) * 2);
     scroll->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
     scroll->setWidget(supported_units);
     current_units = new unit_info(this, false);

Modified: branches/S2_5/client/gui-sdl/citydlg.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_5/client/gui-sdl/citydlg.c?rev=30479&r1=30478&r2=30479&view=diff
==============================================================================
--- branches/S2_5/client/gui-sdl/citydlg.c      (original)
+++ branches/S2_5/client/gui-sdl/citydlg.c      Sun Nov  8 17:07:16 2015
@@ -594,71 +594,75 @@
 /**************************************************************************
   create unit icon with support icons.
 **************************************************************************/
-static SDL_Surface *create_unit_surface(struct unit *pUnit, bool support, int 
w, int h)
+static SDL_Surface *create_unit_surface(struct unit *punit, bool support,
+                                        int w, int h)
 {
   int i, step;
   SDL_Rect src_rect, dest;
-  SDL_Surface *pSurf, *pZoomed;
-
-  int free_unhappy;
-  int happy_cost;
-
-  struct canvas *destcanvas = canvas_create_with_alpha(
-                                tileset_full_tile_width(tileset),
-                                tileset_full_tile_height(tileset));  
-  
-  put_unit(pUnit, destcanvas, 0, 0);
+  SDL_Surface *psurf;
+  struct canvas *destcanvas;
+
+  destcanvas = canvas_create_with_alpha(tileset_full_tile_width(tileset),
+                                        tileset_full_tile_height(tileset));
+
+  put_unit(punit, destcanvas, 0, 0);
   
   src_rect = get_smaller_surface_rect(destcanvas->surf);
-  pSurf = create_surf_alpha(src_rect.w, src_rect.h, SDL_SWSURFACE);
-  alphablit(destcanvas->surf, &src_rect, pSurf, NULL);
+  src_rect.h = tileset_unit_with_upkeep_height(tileset);
+  psurf = create_surf_alpha(src_rect.w, src_rect.h, SDL_SWSURFACE);
+  alphablit(destcanvas->surf, &src_rect, psurf, NULL);
 
   canvas_free(destcanvas);
-
-  pZoomed = ResizeSurfaceBox(pSurf, w, h, 1, TRUE, TRUE);
-  FREESURFACE(pSurf);
-  pSurf = pZoomed;
   
   if (support) {
-    
+    int free_unhappy;
+    int happy_cost;
+
     free_unhappy = get_city_bonus(pCityDlg->pCity, EFT_MAKE_CONTENT_MIL);
-    happy_cost = city_unit_unhappiness(pUnit, &free_unhappy);
-
-    i = pUnit->upkeep[O_SHIELD] + pUnit->upkeep[O_FOOD] +
-        pUnit->upkeep[O_GOLD] + happy_cost;
-
-    if (i * pIcons->pFood->w > pSurf->w / 2) {
-      step = (pSurf->w / 2 - pIcons->pFood->w) / (i - 1);
+    happy_cost = city_unit_unhappiness(punit, &free_unhappy);
+
+    i = punit->upkeep[O_SHIELD] + punit->upkeep[O_FOOD] +
+        punit->upkeep[O_GOLD] + happy_cost;
+
+    if (i * pIcons->pFood->w > psurf->w / 2) {
+      step = (psurf->w / 2 - pIcons->pFood->w) / (i - 1);
     } else {
       step = pIcons->pFood->w;
     }
 
-    dest.y = pSurf->h - pIcons->pFood->h - adj_size(2);
-    dest.x = pSurf->w / 8;
-
-    for (i = 0; i < pUnit->upkeep[O_SHIELD]; i++) {
-      alphablit(pIcons->pShield, NULL, pSurf, &dest);
+    dest.y = tileset_unit_layout_offset_y(tileset);
+    dest.x = psurf->w / 8;
+
+    for (i = 0; i < punit->upkeep[O_SHIELD]; i++) {
+      alphablit(pIcons->pShield, NULL, psurf, &dest);
       dest.x += step;
     }
 
-    for (i = 0; i < pUnit->upkeep[O_FOOD]; i++) {
-      alphablit(pIcons->pFood, NULL, pSurf, &dest);
+    for (i = 0; i < punit->upkeep[O_FOOD]; i++) {
+      alphablit(pIcons->pFood, NULL, psurf, &dest);
       dest.x += step;
     }
 
-    for (i = 0; i < pUnit->upkeep[O_GOLD]; i++) {
-      alphablit(pIcons->pCoin, NULL, pSurf, &dest);
+    for (i = 0; i < punit->upkeep[O_GOLD]; i++) {
+      alphablit(pIcons->pCoin, NULL, psurf, &dest);
       dest.x += step;
     }
 
     for (i = 0; i < happy_cost; i++) {
-      alphablit(pIcons->pFace, NULL, pSurf, &dest);
+      alphablit(pIcons->pFace, NULL, psurf, &dest);
       dest.x += step;
     }
-
-  }
-
-  return pSurf;
+  }
+
+  if (w != src_rect.w || h != src_rect.h) {
+    SDL_Surface *pzoomed;
+
+    pzoomed = ResizeSurfaceBox(psurf, w, h, 1, TRUE, TRUE);
+    FREESURFACE(psurf);
+    psurf = pzoomed;
+  }
+
+  return psurf;
 }
 
 /**************************************************************************


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to