Author: cazfi
Date: Thu Oct  6 06:45:22 2016
New Revision: 34014

URL: http://svn.gna.org/viewcvs/freeciv?rev=34014&view=rev
Log:
Show terrain gfx on gtk3-client help browser.

See bug #15132

Modified:
    trunk/client/gui-gtk-3.0/editgui.c
    trunk/client/gui-gtk-3.0/helpdlg.c
    trunk/client/gui-gtk-3.22/editgui.c
    trunk/client/gui-gtk-3.22/helpdlg.c

Modified: trunk/client/gui-gtk-3.0/editgui.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.0/editgui.c?rev=34014&r1=34013&r2=34014&view=diff
==============================================================================
--- trunk/client/gui-gtk-3.0/editgui.c  (original)
+++ trunk/client/gui-gtk-3.0/editgui.c  Thu Oct  6 06:45:22 2016
@@ -734,8 +734,7 @@
 ****************************************************************************/
 static GdkPixbuf *create_terrain_pixbuf(struct terrain *pterrain)
 {
-  struct drawn_sprite sprs[80];
-  int count, w, h, canvas_x, canvas_y, i;
+  int w, h, i;
   GdkPixbuf *pixbuf;
   struct canvas canvas = FC_STATIC_CANVAS_INIT;
   cairo_t *cr;
@@ -744,8 +743,6 @@
   h = tileset_tile_height(tileset);
 
   canvas.surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, w, h);
-  canvas_x = 0;
-  canvas_y = 0;
 
   cr = cairo_create(canvas.surface);
   cairo_set_operator(cr, CAIRO_OPERATOR_CLEAR);
@@ -753,9 +750,11 @@
   cairo_destroy(cr);
 
   for (i = 0; i < 3; i++) {
-    count = fill_basic_terrain_layer_sprite_array(tileset, sprs,
-                                                  i, pterrain);
-    put_drawn_sprites(&canvas, 1.0, canvas_x, canvas_y, count, sprs, FALSE);
+    struct drawn_sprite sprs[80];
+    int count = fill_basic_terrain_layer_sprite_array(tileset, sprs,
+                                                      i, pterrain);
+
+    put_drawn_sprites(&canvas, 1.0, 0, 0, count, sprs, FALSE);
   }
 
   pixbuf = surface_get_pixbuf(canvas.surface, w, h);

Modified: trunk/client/gui-gtk-3.0/helpdlg.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.0/helpdlg.c?rev=34014&r1=34013&r2=34014&view=diff
==============================================================================
--- trunk/client/gui-gtk-3.0/helpdlg.c  (original)
+++ trunk/client/gui-gtk-3.0/helpdlg.c  Thu Oct  6 06:45:22 2016
@@ -750,6 +750,37 @@
 
   gtk_image_set_from_surface(GTK_IMAGE(help_tile), spr->surface);
   gtk_widget_show(help_tile);
+}
+
+/**************************************************************************
+  Set sprite to show for current terrain.
+**************************************************************************/
+static void set_help_tile_from_terrain(struct terrain *pterr)
+{
+  struct canvas canvas = FC_STATIC_CANVAS_INIT;
+  cairo_t *cr;
+  int i;
+
+  canvas.surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
+                                              tileset_tile_width(tileset),
+                                              tileset_tile_height(tileset));
+
+  cr = cairo_create(canvas.surface);
+  cairo_set_operator(cr, CAIRO_OPERATOR_CLEAR);
+  cairo_paint(cr);
+  cairo_destroy(cr);
+
+  for (i = 0; i < 3; i++) {
+    struct drawn_sprite sprs[80];
+    int count = fill_basic_terrain_layer_sprite_array(tileset, sprs,
+                                                      i, pterr);
+
+    put_drawn_sprites(&canvas, 1.0, 0, 0, count, sprs, FALSE);
+  }
+
+  gtk_image_set_from_surface(GTK_IMAGE(help_tile), canvas.surface);
+  gtk_widget_show(help_tile);
+  cairo_surface_destroy(canvas.surface);
 }
 
 /**************************************************************************
@@ -1166,10 +1197,13 @@
   if (pterrain) {
     struct universal for_terr = { .kind = VUT_TERRAIN, .value = { .terrain = 
pterrain }};
 
+    set_help_tile_from_terrain(pterrain);
+
     {
       /* 25 => "1.25"; 50 => "1.5"; 100 => "2.0" */
       int defbonus = pterrain->defense_bonus + 100;
       int frac = defbonus % 100;
+
       if ((frac % 10) == 0) {
         frac /= 10;
       }

Modified: trunk/client/gui-gtk-3.22/editgui.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.22/editgui.c?rev=34014&r1=34013&r2=34014&view=diff
==============================================================================
--- trunk/client/gui-gtk-3.22/editgui.c (original)
+++ trunk/client/gui-gtk-3.22/editgui.c Thu Oct  6 06:45:22 2016
@@ -734,8 +734,7 @@
 ****************************************************************************/
 static GdkPixbuf *create_terrain_pixbuf(struct terrain *pterrain)
 {
-  struct drawn_sprite sprs[80];
-  int count, w, h, canvas_x, canvas_y, i;
+  int w, h, i;
   GdkPixbuf *pixbuf;
   struct canvas canvas = FC_STATIC_CANVAS_INIT;
   cairo_t *cr;
@@ -744,8 +743,6 @@
   h = tileset_tile_height(tileset);
 
   canvas.surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, w, h);
-  canvas_x = 0;
-  canvas_y = 0;
 
   cr = cairo_create(canvas.surface);
   cairo_set_operator(cr, CAIRO_OPERATOR_CLEAR);
@@ -753,9 +750,11 @@
   cairo_destroy(cr);
 
   for (i = 0; i < 3; i++) {
-    count = fill_basic_terrain_layer_sprite_array(tileset, sprs,
-                                                  i, pterrain);
-    put_drawn_sprites(&canvas, 1.0, canvas_x, canvas_y, count, sprs, FALSE);
+    struct drawn_sprite sprs[80];
+    int count = fill_basic_terrain_layer_sprite_array(tileset, sprs,
+                                                      i, pterrain);
+
+    put_drawn_sprites(&canvas, 1.0, 0, 0, count, sprs, FALSE);
   }
 
   pixbuf = surface_get_pixbuf(canvas.surface, w, h);

Modified: trunk/client/gui-gtk-3.22/helpdlg.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.22/helpdlg.c?rev=34014&r1=34013&r2=34014&view=diff
==============================================================================
--- trunk/client/gui-gtk-3.22/helpdlg.c (original)
+++ trunk/client/gui-gtk-3.22/helpdlg.c Thu Oct  6 06:45:22 2016
@@ -749,6 +749,37 @@
 
   gtk_image_set_from_surface(GTK_IMAGE(help_tile), spr->surface);
   gtk_widget_show(help_tile);
+}
+
+/**************************************************************************
+  Set sprite to show for current terrain.
+**************************************************************************/
+static void set_help_tile_from_terrain(struct terrain *pterr)
+{
+  struct canvas canvas = FC_STATIC_CANVAS_INIT;
+  cairo_t *cr;
+  int i;
+
+  canvas.surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
+                                              tileset_tile_width(tileset),
+                                              tileset_tile_height(tileset));
+
+  cr = cairo_create(canvas.surface);
+  cairo_set_operator(cr, CAIRO_OPERATOR_CLEAR);
+  cairo_paint(cr);
+  cairo_destroy(cr);
+
+  for (i = 0; i < 3; i++) {
+    struct drawn_sprite sprs[80];
+    int count = fill_basic_terrain_layer_sprite_array(tileset, sprs,
+                                                      i, pterr);
+
+    put_drawn_sprites(&canvas, 1.0, 0, 0, count, sprs, FALSE);
+  }
+
+  gtk_image_set_from_surface(GTK_IMAGE(help_tile), canvas.surface);
+  gtk_widget_show(help_tile);
+  cairo_surface_destroy(canvas.surface);
 }
 
 /**************************************************************************
@@ -1165,10 +1196,13 @@
   if (pterrain) {
     struct universal for_terr = { .kind = VUT_TERRAIN, .value = { .terrain = 
pterrain }};
 
+    set_help_tile_from_terrain(pterrain);
+
     {
       /* 25 => "1.25"; 50 => "1.5"; 100 => "2.0" */
       int defbonus = pterrain->defense_bonus + 100;
       int frac = defbonus % 100;
+
       if ((frac % 10) == 0) {
         frac /= 10;
       }


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

Reply via email to