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]