| [Freeciv-Dev] tilespec, and sprite pointers[Top] [All Lists][Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
 
 David Pfitzner wrote:
> This is just a note that I'm currently working on "tilespec":
> a system where the list of graphics files in a tileset, and
> the contents and layout of each file, are given by a set of 
> "spec" files which are read by the freeciv client.
Sorry, I would post more information and preliminary patches
about this, but I've been working on it at home and haven't
had a chance to upload stuff yet...
In the meantime, there is a general coding issue with my
current patch I would like to mention.  
In current Freeciv, "sprites" are gui-dependent things, and 
should only appear in gui-dependent code.  However my current 
tilespec patch uses "struct Sprite*" in gui-indepedent code
as a pointer to an opaque type.  (Including in common/ code, 
to put sprite pointers in unit_type, tile_type and race 
structs, though of course only used in the client.)
I _think_ this is a reasonable thing to do.  It basically
assumes the gui-code will have something analogous to a 
"sprite", and either already has a "struct Sprite" (both the
Xaw and Gtk+ clients do, though the struct contents differ), 
or can wrap the appropriate data (or another pointer/index) 
up in a "struct Sprite" if necessary.
On the other hand one could consider this an unnecessary
imposition on the gui-code, and instead do something similar 
to currently, where sprites only appear in gui-code, and are 
referenced elsewhere as integer indices into the big 
tile_sprites array.
However I like the opaque pointer approach, as it makes some
things more convenient and simpler, and probably slightly more
efficient.  Also, and importantly, I think it will help to 
allow more functions and prototypes to be changed from 
gui-dependent to gui-independent, which would of course 
be good.
Any opinions?
Regards,
-- David
 
 
 |  |