Complete.Org: Mailing Lists: Archives: freeciv-dev: March 2005:
[Freeciv-Dev] (PR#12391) add cursors to the tileset
Home

[Freeciv-Dev] (PR#12391) add cursors to the tileset

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
Subject: [Freeciv-Dev] (PR#12391) add cursors to the tileset
From: "Jason Short" <jdorje@xxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 28 Feb 2005 23:25:45 -0800
Reply-to: bugs@xxxxxxxxxxx

<URL: http://bugs.freeciv.org/Ticket/Display.html?id=12391 >

Here is yet another in the growing collection of tileset modification 
patches.  This patch adds the cursors to the tileset.

Currently the cursors are in client/include/*.xbm.  This means there is 
no way for the graphics people to edit them in a modular way.  They are 
compiled into the client, must be black-and-white, and are in an 
entirely uneditable format (each cursor has two bitmap files, one for 
the image and one for the mask).

In this patch the cursors are a part of the tileset.  A new manditory 
sprite is added for each cursor.  The tileset code loads each cursor and 
provides an accessor for the GUI code to get at them.  Two new fields 
are added to the sprite/tag line in the specfiles: a hot_x,hot_y pair. 
The cursors are enumerated so the loading code becomes quite a bit simpler.

However updating the old GUIs to the new form is not trivial.  I've 
updated gui-gtk-2.0 and gui-xaw (the latter is untested).  I began 
updating gui-win32 but this is too complicated for me (the graphics have 
to be scaled before being passed into the GDI function).  gui-gtk would 
be easy enough to update but I'd rather just remove it.  gui-sdl and 
gui-mui I cannot update.

After this patch it should be easy enough to improve the cursors greatly 
before the next release.

-jason

? data/misc/cursors.png
? data/misc/cursors.spec
Index: client/tilespec.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/tilespec.c,v
retrieving revision 1.248
diff -u -r1.248 tilespec.c
--- client/tilespec.c   28 Feb 2005 20:24:38 -0000      1.248
+++ client/tilespec.c   1 Mar 2005 07:09:33 -0000
@@ -166,6 +166,9 @@
   struct specfile *sf;
   int x, y, width, height;
 
+  /* A little more (optional) data. */
+  int hot_x, hot_y;
+
   struct Sprite *sprite;
 };
 
@@ -676,11 +679,16 @@
       int x1, y1;
       char **tags;
       int num_tags;
+      int hot_x, hot_y;
 
       row = secfile_lookup_int(file, "%s.tiles%d.row", gridnames[i], j);
       column = secfile_lookup_int(file, "%s.tiles%d.column", gridnames[i], j);
       tags = secfile_lookup_str_vec(file, &num_tags, "%s.tiles%d.tag",
                                    gridnames[i], j);
+      hot_x = secfile_lookup_int_default(file, 0, "%s.tiles%d.hot_x",
+                                        gridnames[i], j);
+      hot_y = secfile_lookup_int_default(file, 0, "%s.tiles%d.hot_y",
+                                        gridnames[i], j);
 
       /* there must be at least 1 because of the while(): */
       assert(num_tags > 0);
@@ -696,6 +704,8 @@
       ss->height = dy;
       ss->sf = sf;
       ss->sprite = NULL;
+      ss->hot_x = hot_x;
+      ss->hot_y = hot_y;
 
       small_sprite_list_prepend(small_sprites, ss);
 
@@ -725,15 +735,21 @@
     char **tags;
     char *filename;
     int num_tags, k;
+    int hot_x, hot_y;
 
     tags
       = secfile_lookup_str_vec(file, &num_tags, "extra.sprites%d.tag", i);
     filename = secfile_lookup_str(file, "extra.sprites%d.file", i);
 
+    hot_x = secfile_lookup_int_default(file, 0, "extra.sprites%d.hot_x", i);
+    hot_y = secfile_lookup_int_default(file, 0, "extra.sprites%d.hot_y", i);
+
     ss->ref_count = 0;
     ss->file = mystrdup(filename);
     ss->sf = NULL;
     ss->sprite = NULL;
+    ss->hot_x = hot_x;
+    ss->hot_y = hot_y;
 
     small_sprite_list_prepend(small_sprites, ss);
 
@@ -1304,6 +1320,17 @@
   SET_SPRITE(spaceship.fuel,         "spaceship.fuel");
   SET_SPRITE(spaceship.propulsion,   "spaceship.propulsion");
 
+  for (i = 0; i < CURSOR_LAST; i++) {
+    const char *names[CURSOR_LAST] = {"goto", "patrol", "paradrop", "nuke"};
+    struct small_sprite *ss;
+
+    my_snprintf(buffer, sizeof(buffer), "cursor.%s", names[i]);
+    SET_SPRITE(cursor[i].icon, buffer);
+    ss = hash_lookup_data(sprite_hash, buffer);
+    sprites.cursor[i].hot_x = ss->hot_x;
+    sprites.cursor[i].hot_y = ss->hot_y;
+  }
+
   /* Isolated road graphics are used by roadstyle 0 and 1*/
   if (roadstyle == 0 || roadstyle == 1) {
     SET_SPRITE(road.isolated, "r.road_isolated");
@@ -3589,6 +3616,19 @@
 }
 
 /**************************************************************************
+  Returns a sprite for the given cursor.  The "hot" coordinates (the
+  active coordinates of the mouse relative to the sprite) are placed int
+  (*hot_x, *hot_y).
+**************************************************************************/
+struct Sprite *get_cursor_sprite(enum cursor_type cursor,
+                                int *hot_x, int *hot_y)
+{
+  *hot_x = sprites.cursor[cursor].hot_x;
+  *hot_y = sprites.cursor[cursor].hot_y;
+  return sprites.cursor[cursor].icon;
+}
+
+/**************************************************************************
   Loads the sprite. If the sprite is already loaded a reference
   counter is increased. Can return NULL if the sprite couldn't be
   loaded.
Index: client/tilespec.h
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/tilespec.h,v
retrieving revision 1.112
diff -u -r1.112 tilespec.h
--- client/tilespec.h   28 Feb 2005 20:24:38 -0000      1.112
+++ client/tilespec.h   1 Mar 2005 07:09:33 -0000
@@ -210,6 +210,14 @@
   struct Sprite *mine;
 };
 
+enum cursor_type {
+  CURSOR_GOTO,
+  CURSOR_PATROL,
+  CURSOR_PARADROP,
+  CURSOR_NUKE,
+  CURSOR_LAST
+};
+
 struct named_sprites {
   struct Sprite
     *bulb[NUM_TILES_PROGRESS],
@@ -240,6 +248,10 @@
       *propulsion;
   } spaceship;
   struct {
+    int hot_x, hot_y;
+    struct Sprite *icon;
+  } cursor[CURSOR_LAST];
+  struct {
     struct Sprite
       /* for roadstyle 0 */
       *dir[8],     /* all entries used */
@@ -359,6 +371,8 @@
 struct Sprite *get_arrow_sprite(void);
 struct Sprite *get_tax_sprite(Output_type_id otype);
 struct Sprite *get_treaty_thumb_sprite(bool on_off);
+struct Sprite *get_cursor_sprite(enum cursor_type cursor,
+                                int *hot_x, int *hot_y);
 
 /* full pathnames: */
 extern char *main_intro_filename;
Index: client/gui-gtk-2.0/graphics.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/gui-gtk-2.0/graphics.c,v
retrieving revision 1.36
diff -u -r1.36 graphics.c
--- client/gui-gtk-2.0/graphics.c       16 Feb 2005 23:14:58 -0000      1.36
+++ client/gui-gtk-2.0/graphics.c       1 Mar 2005 07:09:34 -0000
@@ -40,22 +40,10 @@
 
 #include "graphics.h"
 
-#include "goto_cursor.xbm"
-#include "goto_cursor_mask.xbm"
-#include "drop_cursor.xbm"
-#include "drop_cursor_mask.xbm"
-#include "nuke_cursor.xbm"
-#include "nuke_cursor_mask.xbm"
-#include "patrol_cursor.xbm"
-#include "patrol_cursor_mask.xbm"
-
 SPRITE *               intro_gfx_sprite;
 SPRITE *               radar_gfx_sprite;
 
-GdkCursor *            goto_cursor;
-GdkCursor *            drop_cursor;
-GdkCursor *            nuke_cursor;
-GdkCursor *            patrol_cursor;
+GdkCursor *cursors[CURSOR_LAST];
 
 /***************************************************************************
 ...
@@ -194,63 +182,17 @@
 ***************************************************************************/
 void load_cursors(void)
 {
-  GdkBitmap *pixmap, *mask;
-  GdkColor *white, *black;
+  enum cursor_type cursor;
+  GdkDisplay *display = gdk_display_get_default();
 
-  white = colors_standard[COLOR_STD_WHITE];
-  black = colors_standard[COLOR_STD_BLACK];
+  for (cursor = 0; cursor < CURSOR_LAST; cursor++) {
+    int hot_x, hot_y;
+    struct Sprite *sprite = get_cursor_sprite(cursor, &hot_x, &hot_y);
+    GdkPixbuf *pixbuf = sprite_get_pixbuf(sprite);
 
-  /* goto */
-  pixmap = gdk_bitmap_create_from_data(root_window, goto_cursor_bits,
-                                     goto_cursor_width,
-                                     goto_cursor_height);
-  mask   = gdk_bitmap_create_from_data(root_window, goto_cursor_mask_bits,
-                                     goto_cursor_mask_width,
-                                     goto_cursor_mask_height);
-  goto_cursor = gdk_cursor_new_from_pixmap(pixmap, mask,
-                                         white, black,
-                                         goto_cursor_x_hot, goto_cursor_y_hot);
-  g_object_unref(pixmap);
-  g_object_unref(mask);
-
-  /* drop */
-  pixmap = gdk_bitmap_create_from_data(root_window, drop_cursor_bits,
-                                     drop_cursor_width,
-                                     drop_cursor_height);
-  mask   = gdk_bitmap_create_from_data(root_window, drop_cursor_mask_bits,
-                                     drop_cursor_mask_width,
-                                     drop_cursor_mask_height);
-  drop_cursor = gdk_cursor_new_from_pixmap(pixmap, mask,
-                                         white, black,
-                                         drop_cursor_x_hot, drop_cursor_y_hot);
-  g_object_unref(pixmap);
-  g_object_unref(mask);
-
-  /* nuke */
-  pixmap = gdk_bitmap_create_from_data(root_window, nuke_cursor_bits,
-                                     nuke_cursor_width,
-                                     nuke_cursor_height);
-  mask   = gdk_bitmap_create_from_data(root_window, nuke_cursor_mask_bits,
-                                     nuke_cursor_mask_width,
-                                     nuke_cursor_mask_height);
-  nuke_cursor = gdk_cursor_new_from_pixmap(pixmap, mask,
-                                         white, black,
-                                         nuke_cursor_x_hot, nuke_cursor_y_hot);
-  g_object_unref(pixmap);
-  g_object_unref(mask);
-
-  /* patrol */
-  pixmap = gdk_bitmap_create_from_data(root_window, patrol_cursor_bits,
-                                     patrol_cursor_width,
-                                     patrol_cursor_height);
-  mask   = gdk_bitmap_create_from_data(root_window, patrol_cursor_mask_bits,
-                                     patrol_cursor_mask_width,
-                                     patrol_cursor_mask_height);
-  patrol_cursor = gdk_cursor_new_from_pixmap(pixmap, mask,
-                                            white, black,
-                                            patrol_cursor_x_hot, 
patrol_cursor_y_hot);
-  g_object_unref(pixmap);
-  g_object_unref(mask);
+    cursors[cursor] = gdk_cursor_new_from_pixbuf(display, pixbuf,
+                                                hot_x, hot_y);
+  }
 }
 
 /***************************************************************************
Index: client/gui-gtk-2.0/graphics.h
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/gui-gtk-2.0/graphics.h,v
retrieving revision 1.12
diff -u -r1.12 graphics.h
--- client/gui-gtk-2.0/graphics.h       16 Feb 2005 23:14:58 -0000      1.12
+++ client/gui-gtk-2.0/graphics.h       1 Mar 2005 07:09:34 -0000
@@ -39,10 +39,7 @@
 
 extern SPRITE *    intro_gfx_sprite;
 extern SPRITE *    radar_gfx_sprite;
-extern GdkCursor * goto_cursor;
-extern GdkCursor * drop_cursor;
-extern GdkCursor * nuke_cursor;
-extern GdkCursor * patrol_cursor;
+extern GdkCursor *cursors[CURSOR_LAST];
 
 void gtk_draw_shadowed_string(GdkDrawable *drawable,
                              GdkGC *black_gc,
Index: client/gui-gtk-2.0/mapview.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/gui-gtk-2.0/mapview.c,v
retrieving revision 1.160
diff -u -r1.160 mapview.c
--- client/gui-gtk-2.0/mapview.c        28 Feb 2005 04:16:45 -0000      1.160
+++ client/gui-gtk-2.0/mapview.c        1 Mar 2005 07:09:34 -0000
@@ -190,17 +190,17 @@
       gdk_window_set_cursor (root_window, NULL);
       break;
     case HOVER_PATROL:
-      gdk_window_set_cursor (root_window, patrol_cursor);
+      gdk_window_set_cursor(root_window, cursors[CURSOR_PATROL]);
       break;
     case HOVER_GOTO:
     case HOVER_CONNECT:
-      gdk_window_set_cursor (root_window, goto_cursor);
+      gdk_window_set_cursor(root_window, cursors[CURSOR_GOTO]);
       break;
     case HOVER_NUKE:
-      gdk_window_set_cursor (root_window, nuke_cursor);
+      gdk_window_set_cursor(root_window, cursors[CURSOR_NUKE]);
       break;
     case HOVER_PARADROP:
-      gdk_window_set_cursor (root_window, drop_cursor);
+      gdk_window_set_cursor(root_window, cursors[CURSOR_PARADROP]);
       break;
     }
   } else {
Index: client/gui-win32/graphics.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/gui-win32/graphics.c,v
retrieving revision 1.24
diff -u -r1.24 graphics.c
--- client/gui-win32/graphics.c 14 Feb 2005 02:39:49 -0000      1.24
+++ client/gui-win32/graphics.c 1 Mar 2005 07:09:34 -0000
@@ -34,15 +34,6 @@
 #include "mapview_g.h"
 #include "tilespec.h"   
 
-#include "drop_cursor.xbm"
-#include "drop_cursor_mask.xbm"
-#include "goto_cursor.xbm"
-#include "goto_cursor_mask.xbm"
-#include "nuke_cursor.xbm"
-#include "nuke_cursor_mask.xbm"
-#include "patrol_cursor.xbm"
-#include "patrol_cursor_mask.xbm"
-
 #include "graphics.h"
 #define CACHE_SIZE 64
 
@@ -62,10 +53,7 @@
 static HBITMAP stipple;
 static HBITMAP fogmask;
 
-HCURSOR goto_cursor;
-HCURSOR drop_cursor;
-HCURSOR nuke_cursor;
-HCURSOR patrol_cursor;
+HCURSOR cursors[CURSOR_LAST];
 
 static void scale_cursor(int old_w, int old_h, int new_w, int new_h,
                         char *old_bits, char *new_bits, bool flip);
Index: client/gui-win32/graphics.h
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/gui-win32/graphics.h,v
retrieving revision 1.11
diff -u -r1.11 graphics.h
--- client/gui-win32/graphics.h 14 Feb 2005 02:39:49 -0000      1.11
+++ client/gui-win32/graphics.h 1 Mar 2005 07:09:34 -0000
@@ -65,5 +65,6 @@
 extern SPRITE *intro_gfx_sprite;
 extern SPRITE *radar_gfx_sprite;
 
+extern HCURSOR cursors[CURSOR_LAST];
 
 #endif  /* FC__GRAPHICS_H */
Index: client/gui-win32/mapctrl.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/gui-win32/mapctrl.c,v
retrieving revision 1.41
diff -u -r1.41 mapctrl.c
--- client/gui-win32/mapctrl.c  14 Feb 2005 02:39:49 -0000      1.41
+++ client/gui-win32/mapctrl.c  1 Mar 2005 07:09:34 -0000
@@ -51,11 +51,6 @@
 #include "mapctrl.h"
 #include "gui_main.h"
 
-extern HCURSOR goto_cursor;
-extern HCURSOR drop_cursor;
-extern HCURSOR nuke_cursor;
-extern HCURSOR patrol_cursor;
-
 HWND popit_popup=NULL;
 static bool popit_is_orders;
 /*************************************************************************
@@ -226,17 +221,17 @@
       SetCursor (LoadCursor(NULL, IDC_ARROW));
       break;
     case HOVER_PATROL:
-      SetCursor (patrol_cursor);
+      SetCursor(cursors[CURSOR_PATROL]);
       break;
     case HOVER_GOTO:
     case HOVER_CONNECT:
-      SetCursor (goto_cursor);
+      SetCursor(cursors[CURSOR_GOTO]);
       break;
     case HOVER_NUKE:
-      SetCursor (nuke_cursor);
+      SetCursor(cursors[CURSOR_NUKE]);
       break;
     case HOVER_PARADROP:
-      SetCursor (drop_cursor);
+      SetCursor(cursors[CURSOR_PARADROP]);
       break;
     }
     break;
Index: client/gui-win32/mapview.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/gui-win32/mapview.c,v
retrieving revision 1.142
diff -u -r1.142 mapview.c
--- client/gui-win32/mapview.c  28 Feb 2005 04:16:45 -0000      1.142
+++ client/gui-win32/mapview.c  1 Mar 2005 07:09:34 -0000
@@ -49,11 +49,6 @@
 #include "mapview.h"
 #include "text.h"
 
-extern HCURSOR goto_cursor;
-extern HCURSOR drop_cursor;
-extern HCURSOR nuke_cursor;
-extern HCURSOR patrol_cursor;
-
 static struct Sprite *indicator_sprite[3];
 
 static HBITMAP intro_gfx;
@@ -303,17 +298,17 @@
        SetCursor (LoadCursor(NULL, IDC_ARROW));
        break;
       case HOVER_PATROL:
-       SetCursor (patrol_cursor);
+       SetCursor(cursors[CURSOR_PATROL]);
        break;
       case HOVER_GOTO:
       case HOVER_CONNECT:
-       SetCursor (goto_cursor);
+       SetCursor(cursors[CURSOR_GOTO]);
        break;
       case HOVER_NUKE:
-       SetCursor (nuke_cursor);
+       SetCursor(cursors[CURSOR_NUKE]);
        break;
       case HOVER_PARADROP:
-       SetCursor (drop_cursor);
+       SetCursor(cursors[CURSOR_PARADROP]);
        break;
     }
   } else {
Index: client/gui-xaw/graphics.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/gui-xaw/graphics.c,v
retrieving revision 1.54
diff -u -r1.54 graphics.c
--- client/gui-xaw/graphics.c   1 Dec 2004 18:56:53 -0000       1.54
+++ client/gui-xaw/graphics.c   1 Mar 2005 07:09:34 -0000
@@ -44,22 +44,10 @@
 
 #include "graphics.h"
 
-#include "goto_cursor.xbm"
-#include "goto_cursor_mask.xbm"
-#include "drop_cursor.xbm"
-#include "drop_cursor_mask.xbm"
-#include "nuke_cursor.xbm"
-#include "nuke_cursor_mask.xbm"
-#include "patrol_cursor.xbm"
-#include "patrol_cursor_mask.xbm"
-
 struct Sprite *intro_gfx_sprite;
 struct Sprite *radar_gfx_sprite;
 
-Cursor goto_cursor;
-Cursor drop_cursor;
-Cursor nuke_cursor;
-Cursor patrol_cursor;
+Cursor cursors[CURSOR_LAST];
 
 static struct Sprite *ctor_sprite(Pixmap mypixmap, int width, int height);
 static struct Sprite *ctor_sprite_mask(Pixmap mypixmap, Pixmap mask, 
@@ -233,71 +221,23 @@
 ***************************************************************************/
 void load_cursors(void)
 {
-  Pixmap pixmap, mask;
+  enum cursor_type cursor;
   XColor white, black;
+  struct Sprite *sprite;
+  int hot_x, hot_y;
 
   white.pixel = colors_standard[COLOR_STD_WHITE];
   black.pixel = colors_standard[COLOR_STD_BLACK];
   XQueryColor(display, cmap, &white);
   XQueryColor(display, cmap, &black);
 
-  /* goto */
-  pixmap =
-      XCreateBitmapFromData(display, root_window, goto_cursor_bits,
-                           goto_cursor_width, goto_cursor_height);
-  mask =
-      XCreateBitmapFromData(display, root_window,
-                           goto_cursor_mask_bits,
-                           goto_cursor_mask_width, goto_cursor_mask_height);
-  goto_cursor = XCreatePixmapCursor(display, pixmap, mask,
-                                   &white, &black,
-                                   goto_cursor_x_hot, goto_cursor_y_hot);
-  XFreePixmap(display, pixmap);
-  XFreePixmap(display, mask);
-
-  /* drop */
-  pixmap =
-      XCreateBitmapFromData(display, root_window, drop_cursor_bits,
-                           drop_cursor_width, drop_cursor_height);
-  mask =
-      XCreateBitmapFromData(display, root_window,
-                           drop_cursor_mask_bits,
-                           drop_cursor_mask_width, drop_cursor_mask_height);
-  drop_cursor = XCreatePixmapCursor(display, pixmap, mask,
-                                   &white, &black,
-                                   drop_cursor_x_hot, drop_cursor_y_hot);
-  XFreePixmap(display, pixmap);
-  XFreePixmap(display, mask);
-
-  /* nuke */
-  pixmap =
-      XCreateBitmapFromData(display, root_window, nuke_cursor_bits,
-                           nuke_cursor_width, nuke_cursor_height);
-  mask =
-      XCreateBitmapFromData(display, root_window,
-                           nuke_cursor_mask_bits,
-                           nuke_cursor_mask_width, nuke_cursor_mask_height);
-  nuke_cursor = XCreatePixmapCursor(display, pixmap, mask,
-                                   &white, &black,
-                                   nuke_cursor_x_hot, nuke_cursor_y_hot);
-  XFreePixmap(display, pixmap);
-  XFreePixmap(display, mask);
-
-  /* patrol */
-  pixmap =
-      XCreateBitmapFromData(display, root_window,
-                           patrol_cursor_bits, patrol_cursor_width,
-                           patrol_cursor_height);
-  mask =
-      XCreateBitmapFromData(display, root_window,
-                           patrol_cursor_mask_bits,
-                           patrol_cursor_mask_width,
-                           patrol_cursor_mask_height);
-  patrol_cursor = XCreatePixmapCursor(display, pixmap, mask,
-                                     &white, &black,
-                                     patrol_cursor_x_hot, patrol_cursor_y_hot);
-  XFreePixmap(display, pixmap);
-  XFreePixmap(display, mask);
+  for (cursor = 0; cursor < CURSOR_LAST; cursor++) {
+    sprite = get_cursor_sprite(cursor, &hot_x, &hot_y);
+
+    cursors[cursor] = XCreatePixmapCursor(display,
+                                         sprite->pixmap, sprite->mask,
+                                         &white, &black, hot_x, hot_y);
+  }
 }
 
 /***************************************************************************
Index: client/gui-xaw/graphics.h
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/gui-xaw/graphics.h,v
retrieving revision 1.10
diff -u -r1.10 graphics.h
--- client/gui-xaw/graphics.h   8 Mar 2004 07:20:50 -0000       1.10
+++ client/gui-xaw/graphics.h   1 Mar 2005 07:09:34 -0000
@@ -32,9 +32,6 @@
 
 extern struct Sprite *intro_gfx_sprite;
 extern struct Sprite *radar_gfx_sprite;
-extern Cursor         goto_cursor;
-extern Cursor         drop_cursor;
-extern Cursor         nuke_cursor;
-extern Cursor         patrol_cursor;
+extern Cursor cursors[];
 
 #endif  /* FC__GRAPHICS_H */
Index: client/gui-xaw/mapview.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/gui-xaw/mapview.c,v
retrieving revision 1.190
diff -u -r1.190 mapview.c
--- client/gui-xaw/mapview.c    28 Feb 2005 04:16:46 -0000      1.190
+++ client/gui-xaw/mapview.c    1 Mar 2005 07:09:34 -0000
@@ -215,17 +215,17 @@
       XUndefineCursor(display, XtWindow(map_canvas));
       break;
     case HOVER_PATROL:
-      XDefineCursor(display, XtWindow(map_canvas), patrol_cursor);
+      XDefineCursor(display, XtWindow(map_canvas), cursors[CURSOR_PATROL]);
       break;
     case HOVER_GOTO:
     case HOVER_CONNECT:
-      XDefineCursor(display, XtWindow(map_canvas), goto_cursor);
+      XDefineCursor(display, XtWindow(map_canvas), cursors[CURSOR_GOTO]);
       break;
     case HOVER_NUKE:
-      XDefineCursor(display, XtWindow(map_canvas), nuke_cursor);
+      XDefineCursor(display, XtWindow(map_canvas), cursors[CURSOR_NUKE]);
       break;
     case HOVER_PARADROP:
-      XDefineCursor(display, XtWindow(map_canvas), drop_cursor);
+      XDefineCursor(display, XtWindow(map_canvas), cursors[CURSOR_PARADROP]);
       break;
     }
   } else {
Index: client/include/Makefile.am
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/include/Makefile.am,v
retrieving revision 1.14
diff -u -r1.14 Makefile.am
--- client/include/Makefile.am  18 Oct 2004 23:49:27 -0000      1.14
+++ client/include/Makefile.am  1 Mar 2005 07:09:34 -0000
@@ -3,14 +3,6 @@
 noinst_HEADERS = \
        cityicon.ico    \
        freeciv.ico     \
-       drop_cursor.xbm \
-       drop_cursor_mask.xbm    \
-       goto_cursor.xbm \
-       goto_cursor_mask.xbm    \
-       nuke_cursor.xbm \
-       nuke_cursor_mask.xbm    \
-       patrol_cursor.xbm       \
-       patrol_cursor_mask.xbm  \
        chatline_g.h    \
        citydlg_g.h     \
        cityrep_g.h     \
Index: client/include/drop_cursor.xbm
===================================================================
RCS file: client/include/drop_cursor.xbm
diff -N client/include/drop_cursor.xbm
--- client/include/drop_cursor.xbm      7 Nov 2002 15:04:18 -0000       1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-#define drop_cursor_width 27
-#define drop_cursor_height 27
-#define drop_cursor_x_hot 13
-#define drop_cursor_y_hot 25
-static char drop_cursor_bits[] = {
-   0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00,
-   0xc0, 0xff, 0x1f, 0x00, 0xe0, 0xff, 0x3f, 0x00, 0xf8, 0xff, 0xff, 0x00,
-   0xf8, 0xff, 0xff, 0x00, 0xfc, 0xff, 0xff, 0x01, 0xfe, 0xff, 0xff, 0x03,
-   0x9e, 0x8f, 0xcf, 0x03, 0x06, 0x02, 0x02, 0x03, 0x04, 0x02, 0x02, 0x01,
-   0x08, 0x04, 0x81, 0x00, 0x10, 0x04, 0x41, 0x00, 0x10, 0x04, 0x41, 0x00,
-   0x20, 0x04, 0x21, 0x00, 0x40, 0x88, 0x10, 0x00, 0x80, 0x88, 0x08, 0x00,
-   0x00, 0x89, 0x04, 0x00, 0x00, 0x89, 0x04, 0x00, 0x00, 0x52, 0x02, 0x00,
-   0x00, 0x54, 0x01, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00,
-   0x00, 0x70, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
Index: client/include/drop_cursor_mask.xbm
===================================================================
RCS file: client/include/drop_cursor_mask.xbm
diff -N client/include/drop_cursor_mask.xbm
--- client/include/drop_cursor_mask.xbm 7 Nov 2002 15:04:18 -0000       1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-#define drop_cursor_mask_width 27
-#define drop_cursor_mask_height 27
-static char drop_cursor_mask_bits[] = {
-   0x00, 0xfc, 0x01, 0x00, 0x80, 0xff, 0x0f, 0x00, 0xe0, 0xff, 0x3f, 0x00,
-   0xf0, 0xff, 0x7f, 0x00, 0xfc, 0xff, 0xff, 0x01, 0xfc, 0xff, 0xff, 0x01,
-   0xfe, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0x07,
-   0xff, 0xff, 0xff, 0x07, 0xff, 0xdf, 0xff, 0x07, 0x1f, 0x8f, 0xc7, 0x07,
-   0x3e, 0x8f, 0xe7, 0x03, 0x3c, 0x8e, 0xe3, 0x01, 0x78, 0x8e, 0xf3, 0x00,
-   0xf8, 0xde, 0xfb, 0x00, 0xf0, 0xdf, 0x7f, 0x00, 0xe0, 0xdf, 0x3f, 0x00,
-   0xc0, 0xdf, 0x1f, 0x00, 0x80, 0xff, 0x0f, 0x00, 0x80, 0xff, 0x0f, 0x00,
-   0x00, 0xff, 0x07, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, 0xfc, 0x01, 0x00,
-   0x00, 0xfc, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00};
Index: client/include/goto_cursor.xbm
===================================================================
RCS file: client/include/goto_cursor.xbm
diff -N client/include/goto_cursor.xbm
--- client/include/goto_cursor.xbm      7 Nov 2002 15:04:18 -0000       1.3
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-#define goto_cursor_width 27
-#define goto_cursor_height 27
-#define goto_cursor_x_hot 25
-#define goto_cursor_y_hot 1
-static char goto_cursor_bits[] = {
-   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xfc, 0x03,
-   0x00, 0x80, 0x07, 0x03, 0x00, 0xc0, 0x01, 0x01, 0x00, 0x00, 0x0f, 0x01,
-   0x00, 0x00, 0x1b, 0x01, 0x00, 0xc0, 0x39, 0x01, 0x00, 0x70, 0xa4, 0x01,
-   0x00, 0x1c, 0xb3, 0x00, 0x00, 0x8f, 0xfb, 0x00, 0xc0, 0xc3, 0xc9, 0x00,
-   0xf0, 0xf0, 0x4c, 0x00, 0x7c, 0x78, 0x04, 0x00, 0x1e, 0x7c, 0x06, 0x00,
-   0x0e, 0x3f, 0x03, 0x00, 0x8e, 0x1f, 0x03, 0x00, 0xf8, 0x8f, 0x01, 0x00,
-   0x00, 0x8f, 0x01, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00,
-   0x00, 0x62, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00,
-   0x00, 0x3c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
Index: client/include/goto_cursor_mask.xbm
===================================================================
RCS file: client/include/goto_cursor_mask.xbm
diff -N client/include/goto_cursor_mask.xbm
--- client/include/goto_cursor_mask.xbm 7 Nov 2002 15:04:18 -0000       1.3
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-#define goto_cursor_mask_width 27
-#define goto_cursor_mask_height 27
-static char goto_cursor_mask_bits[] = {
-   0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0xfe, 0x07, 0x00, 0xc0, 0xff, 0x07,
-   0x00, 0xe0, 0xff, 0x07, 0x00, 0xe0, 0x9f, 0x07, 0x00, 0xe0, 0xbf, 0x03,
-   0x00, 0xe0, 0xff, 0x03, 0x00, 0xf8, 0xff, 0x03, 0x00, 0xfe, 0xff, 0x03,
-   0x80, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x01, 0xf8, 0xff, 0xff, 0x01,
-   0xfe, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0x0f, 0x00,
-   0xff, 0xff, 0x0f, 0x00, 0xff, 0xff, 0x07, 0x00, 0xff, 0xff, 0x07, 0x00,
-   0xfc, 0xff, 0x03, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x01, 0x00,
-   0x00, 0xff, 0x01, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
-   0x00, 0x7f, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00};
Index: client/include/nuke_cursor.xbm
===================================================================
RCS file: client/include/nuke_cursor.xbm
diff -N client/include/nuke_cursor.xbm
--- client/include/nuke_cursor.xbm      7 Nov 2002 15:04:18 -0000       1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-#define nuke_cursor_width 27
-#define nuke_cursor_height 27
-#define nuke_cursor_x_hot 13
-#define nuke_cursor_y_hot 13
-static char nuke_cursor_bits[] = {
-   0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x8e, 0x03, 0x00,
-   0x80, 0xfd, 0x0d, 0x00, 0x60, 0x23, 0x36, 0x00, 0xd0, 0x20, 0x58, 0x00,
-   0x30, 0x00, 0x60, 0x00, 0x28, 0xf8, 0xa0, 0x00, 0x18, 0xbe, 0xc3, 0x00,
-   0x14, 0xef, 0x47, 0x01, 0x8c, 0xff, 0x8f, 0x01, 0x8c, 0xdb, 0x8e, 0x01,
-   0x0a, 0x73, 0x86, 0x02, 0x3a, 0x70, 0xe0, 0x02, 0x0a, 0xf8, 0x80, 0x02,
-   0x0c, 0x70, 0x80, 0x01, 0x0c, 0x70, 0x80, 0x01, 0x14, 0xf8, 0x40, 0x01,
-   0x18, 0xfc, 0xc1, 0x00, 0x28, 0x00, 0xa0, 0x00, 0x30, 0x00, 0x60, 0x00,
-   0xd0, 0x20, 0x58, 0x00, 0x60, 0x23, 0x36, 0x00, 0x80, 0xfd, 0x0d, 0x00,
-   0x00, 0x8e, 0x03, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
Index: client/include/nuke_cursor_mask.xbm
===================================================================
RCS file: client/include/nuke_cursor_mask.xbm
diff -N client/include/nuke_cursor_mask.xbm
--- client/include/nuke_cursor_mask.xbm 7 Nov 2002 15:04:18 -0000       1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-#define nuke_cursor_mask_width 27
-#define nuke_cursor_mask_height 27
-#define nuke_cursor_mask_x_hot 13
-#define nuke_cursor_mask_y_hot 13
-static char nuke_cursor_mask_bits[] = {
-   0x00, 0xfc, 0x01, 0x00, 0x80, 0xff, 0x0f, 0x00, 0xc0, 0xff, 0x1f, 0x00,
-   0xe0, 0xff, 0x3f, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0xf8, 0x77, 0xff, 0x00,
-   0xfc, 0xfd, 0xfd, 0x01, 0x7e, 0xff, 0xf7, 0x03, 0xfe, 0xff, 0xff, 0x03,
-   0xfe, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0x07, 0xdf, 0xff, 0xdf, 0x07,
-   0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0x07, 0x7f, 0xfc, 0xf1, 0x07,
-   0x1f, 0xfc, 0xc1, 0x07, 0x3f, 0xf8, 0xe1, 0x07, 0x3e, 0xfe, 0xe3, 0x03,
-   0x7e, 0xfe, 0xf3, 0x03, 0x7e, 0xfe, 0xf3, 0x03, 0xfc, 0x71, 0xfc, 0x01,
-   0xf8, 0x77, 0xff, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0xe0, 0xff, 0x3f, 0x00,
-   0xc0, 0xff, 0x1f, 0x00, 0x80, 0xff, 0x0f, 0x00, 0x00, 0xfc, 0x01, 0x00};
Index: client/include/patrol_cursor.xbm
===================================================================
RCS file: client/include/patrol_cursor.xbm
diff -N client/include/patrol_cursor.xbm
--- client/include/patrol_cursor.xbm    27 Oct 2000 22:27:30 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,13 +0,0 @@
-#define patrol_cursor_width 27
-#define patrol_cursor_height 27
-#define patrol_cursor_x_hot 13
-#define patrol_cursor_y_hot 13
-static char patrol_cursor_bits[] = {
- 0x00,0x00,0x00,0xf8,0x00,0xf8,0x03,0xf8,0x00,0xfe,0x0f,0xf8,0x80,0xff,0x3f,
- 0xf8,0xc0,0xff,0x7f,0xf8,0xe6,0x0f,0xfe,0xf8,0xe6,0x03,0xf8,0xf9,0xf6,0x21,
- 0xe0,0xf9,0xfe,0x00,0xe0,0xfb,0x7e,0x20,0xc0,0xf9,0x3c,0x00,0x40,0xf8,0xfc,
- 0x23,0x00,0xf8,0xfc,0x03,0x00,0xfa,0x3e,0xa8,0xe0,0xfb,0x02,0x00,0xfe,0xf9,
- 0x00,0x20,0xfe,0xf9,0x10,0x00,0xe0,0xf9,0x1c,0x20,0xf0,0xfb,0x3e,0x00,0xf8,
- 0xfb,0x3c,0x20,0x7c,0xfb,0xfc,0x00,0x3e,0xfb,0xf8,0x83,0x3f,0xfb,0xf0,0xff,
- 0x1f,0xf8,0xe0,0xff,0x0f,0xf8,0x80,0xff,0x03,0xf8,0x00,0xfe,0x00,0xf8,0x00,
- 0x00,0x00,0xf8};
Index: client/include/patrol_cursor_mask.xbm
===================================================================
RCS file: client/include/patrol_cursor_mask.xbm
diff -N client/include/patrol_cursor_mask.xbm
--- client/include/patrol_cursor_mask.xbm       27 Oct 2000 22:27:30 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
-#define patrol_cursor_mask_width 27
-#define patrol_cursor_mask_height 27
-static char patrol_cursor_mask_bits[] = {
- 0x00,0xfc,0x07,0xf8,0x00,0xff,0x1f,0xf8,0xc0,0xff,0x7f,0xf8,0xe0,0xff,0xff,
- 0xf8,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xfb,0xff,0x7f,0xff,0xfb,0xff,0x77,
- 0xfc,0xff,0xff,0x73,0xf0,0xff,0xff,0x71,0xf0,0xff,0xff,0x77,0xe0,0xfb,0xfe,
- 0x77,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x3f,0x70,0xff,0xfb,0x3e,0x70,0xff,0xff,0x7f,0x70,0xfc,0xff,0x7f,0x70,0xfe,
- 0xff,0xff,0x71,0xff,0xff,0xfe,0xf7,0xff,0xff,0xfe,0xff,0xff,0xff,0xfc,0xff,
- 0xff,0xff,0xf8,0xff,0x3f,0xf8,0xf0,0xff,0x1f,0xf8,0xc0,0xff,0x07,0xf8,0x00,
- 0xff,0x01,0xf8};
Index: data/isophex.tilespec
===================================================================
RCS file: /home/freeciv/CVS/freeciv/data/isophex.tilespec,v
retrieving revision 1.8
diff -u -r1.8 isophex.tilespec
--- data/isophex.tilespec       28 Feb 2005 20:24:39 -0000      1.8
+++ data/isophex.tilespec       1 Mar 2005 07:09:34 -0000
@@ -69,6 +69,7 @@
   "trident/units.spec",
   "isotrident/unitextras.spec",
   "misc/flags.spec",
+  "misc/cursors.spec",
   "misc/space.spec",
   "misc/treaty.spec",
   "isotrident/nuke.spec",
Index: data/isotrident.tilespec
===================================================================
RCS file: /home/freeciv/CVS/freeciv/data/isotrident.tilespec,v
retrieving revision 1.31
diff -u -r1.31 isotrident.tilespec
--- data/isotrident.tilespec    25 Feb 2005 17:31:50 -0000      1.31
+++ data/isotrident.tilespec    1 Mar 2005 07:09:34 -0000
@@ -59,6 +59,7 @@
   "isotrident/unitextras.spec",
   "isotrident/select.spec",
   "misc/flags.spec",
+  "misc/cursors.spec",
   "misc/buildings.spec",
   "misc/space.spec",
 ;  "misc/techs.spec",
Index: data/trident.tilespec
===================================================================
RCS file: /home/freeciv/CVS/freeciv/data/trident.tilespec,v
retrieving revision 1.31
diff -u -r1.31 trident.tilespec
--- data/trident.tilespec       25 Feb 2005 17:31:50 -0000      1.31
+++ data/trident.tilespec       1 Mar 2005 07:09:34 -0000
@@ -50,6 +50,7 @@
   "misc/small.spec",
   "trident/units.spec",
   "misc/flags.spec",
+  "misc/cursors.spec",
   "trident/grid.spec",
   "trident/roads.spec",
   "misc/buildings.spec",
Index: data/trident_shields.tilespec
===================================================================
RCS file: /home/freeciv/CVS/freeciv/data/trident_shields.tilespec,v
retrieving revision 1.22
diff -u -r1.22 trident_shields.tilespec
--- data/trident_shields.tilespec       25 Feb 2005 17:31:50 -0000      1.22
+++ data/trident_shields.tilespec       1 Mar 2005 07:09:34 -0000
@@ -54,6 +54,7 @@
   "trident/units.spec",
   "trident/select.spec",
   "misc/flags.spec",
+  "misc/cursors.spec",
   "trident/grid.spec",
   "trident/roads.spec",
   "misc/buildings.spec",

Attachment: cursors.tar.gz
Description: GNU Zip compressed data


[Prev in Thread] Current Thread [Next in Thread]
  • [Freeciv-Dev] (PR#12391) add cursors to the tileset, Jason Short <=