Complete.Org: Mailing Lists: Archives: freeciv-dev: September 2001:
[Freeciv-Dev] Re: directional system: more magic code cleanups
Home

[Freeciv-Dev] Re: directional system: more magic code cleanups

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: jdorje@xxxxxxxxxxxxxxxxxxxxx
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: directional system: more magic code cleanups
From: Raimar Falke <hawk@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 17 Sep 2001 18:54:46 +0200
Reply-to: rf13@xxxxxxxxxxxxxxxxxxxxxx

On Mon, Sep 17, 2001 at 12:25:15PM -0400, Jason Dorje Short wrote:
> Raimar Falke wrote:
> > 
> > On Mon, Sep 17, 2001 at 11:13:03AM +0100, Gregory Berkolaiko wrote:
> > >  --- Jason Dorje Short <jshort@xxxxxxxxxxxxx> wrote:
> > > [..]
> > > > It does *not* fully fix dir_ok and straightest_direction as it should;
> > > > I
> > > > think Ross should provide a patch that fixes these guys properly.
> > > > However it is good as far as it goes.
> > >
> > > there is a nice mathematical way to code dir_ok:
> > > if diff_x, diff_y and dir are what they are in the current function then
> > > the "scalar product"
> > >
> > >         diff_x*DIR_DX[dir] + diff_y*DIR_DY[dir]
> > >
> > > is positive whenever direction is ok.  And you don't need any switches.
> > 
> > Very nice. Good spotting. For clarity: s/positive/>=0/. There may be
> > extra documentation about this (for a given diff vector there are
> > exactly 5 directions ok. These are centered around the given diff
> > vector. The "outmost" still valid directions are orthogonal to the
> > given diff vector. scalar product bla bla ...)
> 
> No, it must be positive (>0) rather than non-negative (>=0).  Traveling
> orthogonally to the destination is not OK.

*looking further into this* mhh. Lets see if I understood this (in
goto_zoc_ok):
 - (src_x, src_y) and (dest_x, dest_y) are adjacent
 - the last block "{int dir...return 0;}" is useless since it has no
 side-effects and will always return 0

Very weird.

> Ross's patch actually fixed the bug in straightest_direction, so it
> certainly was for that function.

        Raimar

-- 
 email: rf13@xxxxxxxxxxxxxxxxx
 "At the beginning of the week, we sealed ten BSD programmers
  into a computer room with a single distribution of BSD Unix.
  Upon opening the room after seven days, we found all ten programmers 
  dead, clutching each other's throats, and thirteen new flavors of BSD."


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