Complete.Org: Mailing Lists: Archives: freeciv-dev: May 2004:
[Freeciv-Dev] Re: (PR#8482) heights in gtk2 production dialog
Home

[Freeciv-Dev] Re: (PR#8482) heights in gtk2 production dialog

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: dspeyer@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: (PR#8482) heights in gtk2 production dialog
From: "Jason Short" <jdorje@xxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 12 May 2004 01:30:39 -0700
Reply-to: rt@xxxxxxxxxxx

<URL: http://rt.freeciv.org/Ticket/Display.html?id=8482 >

Daniel L Speyer wrote:

> I'm not convinced on the usability angle (thunderbird, in which I'm 
> writing this, has uneven toolbars, as does almost everything else that 
> isn't built out of square icons) but I'll grant it on aesthetics, and I 
> don't care all that much, so here's a version with constant height.  It 
> calculates the relevant height and width once whenever a tileset is 
> initialized.  Works well under any circumstance I can think of.

The drawing of the flag isn't quite "right" in the current behavior, and 
your code doesn't fix this.

When drawing units on the mapview, the flag is drawn with an offset of 
flag_offset_x/flag_offset_y.  This is specified by the tileset and 
intended to put the flag behind the unit.

However in the current behavior the flag is drawn manually by the GUI 
code to be at (0,0).  It might be better to take 
flag_offset_x/flag_offset_y into account.

However this may run into problems with the sprite bounding box.  In 
fact the current code may also run into problems.  What happens if the 
flag is bigger than the biggest unit?  In non-iso view this isn't 
impossible!

 From my point of view I think the unit should be drawn by a call to 
put_unit(), not by the GUI code.  However this makes using a bounding 
box system difficult.  You'd want to call fill_unit_sprite_array and 
then get the bounding box of the whole thing.  Not very pretty.


In other news you should probably use UNIT_TILE_WIDTH instead of 
NORMAL_TILE_WIDTH.  And I think MAX() is prettier than manually coding 
the conditional.

jason




[Prev in Thread] Current Thread [Next in Thread]