Complete.Org: Mailing Lists: Archives: freeciv-dev: December 2001:
[Freeciv-Dev] Re: Changing interface for generate_warmap (PR#1108)
Home

[Freeciv-Dev] Re: Changing interface for generate_warmap (PR#1108)

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: Changing interface for generate_warmap (PR#1108)
From: Jason Short <vze2zq63@xxxxxxxxxxx>
Date: Thu, 13 Dec 2001 13:16:35 -0500
Reply-to: jdorje@xxxxxxxxxxxx

Gregory Berkolaiko wrote:

From the first email:


Functions like find_the_shortest_paths use local warmap by default
(which renders it unrecyclable).

I don't see this.

What exactly is your question?

Nobody needs to know the internals of struct move_cost_map. You can
move this from gotohand.h to gotohand.c.
yes.
Only if you want to start passing around void* variables to refer to the 
local move_cost_maps.

About the interface:

+void generate_warmap(struct move_cost_map *wm, int x, int y,
+                    struct unit *punit);
+int get_warmap_land(struct move_cost_map *wm, int x, int y);
+int get_warmap_sea(struct move_cost_map *wm, int x, int y);

What do you think about:

 struct move_cost_map *generate_warmap(int x, int y, struct unit
                                       *punit, int use_global_warmap);

This way the access calls doesn't need to be changed if you use a
local warmap.
True.  But I thought changing access calls is a good thing.  At least for
testing: I suspect in few instances a wrong warmap is used.

You asked for incapsulation, didn't you?
I don't understand what Raimar is saying.  Why will the current 
interface Gregory has not be extensible?  Just pass in a local warmap 
instead of NULL, and it'll use that variable instead.  Of course, you'll 
have to initialize it separately - but that's probably a good thing; if 
you have a warmap for each city you don't want to free and re-malloc 
each time you generate a new one.

This patch looks to me like a step in the right direction. By encapsulating accesses to the global warmap structure, it allows local warmaps to be used later. The only problem is it's so long...
jason



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