Complete.Org: Mailing Lists: Archives: freeciv-dev: August 2001:
[Freeciv-Dev] Re: [Patch] Watchtower version 2
Home

[Freeciv-Dev] Re: [Patch] Watchtower version 2

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Bert Buchholz <bertbuchholz@xxxxxx>, freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: [Patch] Watchtower version 2
From: Gregory Berkolaiko <gberkolaiko@xxxxxxxxxxx>
Date: Wed, 29 Aug 2001 11:29:07 +0100 (BST)

 --- Bert Buchholz <bertbuchholz@xxxxxx> wrote: 

> On Mon, Aug 27, 2001 at 03:16:48PM +0100, Gregory Berkolaiko wrote:
> > Problems:
> > 1. Upgrading part is not handled correctly.
> 
> I suppose you mean this part from upgrade_unit()? Hmm, I can't see
> anything wrong with it.
> 
>  ___
> ´punit->type = to_unit;
> 
>  if (map_get_tile(punit->x, punit->y)->special & S_FORTRESS
>      && unit_profits_of_watchtower(punit))
>    unfog_area(pplayer, punit->x, punit->y,
> get_watchtower_vision(punit));
>  else
>    unfog_area(pplayer,punit->x,punit->y,
> get_unit_type(to_unit)->vision_range);
> 
>  fog_area(pplayer,punit->x,punit->y,range);
> `---                                ^^^^^
                                 this part is problematic
                          range was obtained without checking for        
                                       fortress
at least this is what I thought when writing the email.

> really carefully, but I still don't know what you mean. Maybe another
> hint? Am I getting on your nerves already? :-)

It's actually my fault, I should have been more explicit.  Sorry.

> Thanks, it's incredible how much you can overlook if you're not really
> into that code. :-) One part I found was the waking up from sentry and
> 2nd cancelling patrol. I hope, there are no more, I think I went

yep, I remember those.  Don't remember anything else yet :)

> all of them, but well you know, after all, I'm just a... ah, you know
> that one? Shit! ;-)

yep, "you are a simple Pole on a complex plane"


> > > unfog_area(unit_owner(punit), punit->x, punit->y,
> > >                get_vision_range(punit));
> > >                ^^^^^^^^^^^^^^^^^^^^^^^
> > I think this is how the things should be done.
> > Unfortunately you will also need to pass coordinates x,y to
> > get_vision_range, not just get them from punit.
> 
> Yes, I see, the coords must be passes as well.
> 
> But I leave it out in this version, maybe later. I think (as others)
> that code should be extended slowly step by step.

I don't know what gurus would think about it but in my opinion this is a
very good way to do things since it localizes the actual changes to the
rules inside get_vision_range function and will therefore make things
easier to revert/update.  But maybe things are sufficiently localised
now. Dunno.

Best,
G.


____________________________________________________________
Do You Yahoo!?
Get your free @yahoo.co.uk address at http://mail.yahoo.co.uk
or your free @yahoo.ie address at http://mail.yahoo.ie


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