Complete.Org: Mailing Lists: Archives: freeciv-dev: February 1999:
[Freeciv-Dev] that map editor thing
Home

[Freeciv-Dev] that map editor thing

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] that map editor thing
From: Daniel Gudlat <gudlat@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 1 Feb 1999 14:18:58 +0100 (MET)

Hello FreeCiv team,
Over the weekend I've had a long, hard (and rather productive ;-) look
at CivWorld. Several issues regarding this (or any) map editor for FreeCiv
have popped up over the last few days on freeciv-dev, and I'd like to
comment on them:

1) The code kludge: yup, it's there, not only in /common but also in
   /server and /client. In fact, the gtk-client seems to have a somewhat
   saner #include structure as well. Some general code cleanup is
   probably called for, but it's also a rather daunting task. Per's patch,
   though, is not necessary for:

2) a FreeCiv map/scenario editor: Benjamin aimed CivWorld to be a complete
   FreeCiv map editor which is a rather too ambitious goal for me, so
   I approached his code under the aspect of just turning it into a
   map/scenario editor, this being a much more promising short term goal.
   It's done in Gtk+, and, not being much of a GUI-programmer myself,
   I won't change this, as Gtk+ is much easier to program to than Xaw.

   It's re-using lot's of legacy FreeCiv (v 1.6.3) code from /common and
   /server), and I intend to keep it that way, in fact, I think it's the
   only sane way to go. Keeping the thing up to date is probably easier
   if code changes don't have to be duplicated. Also, that way, extending
   its ability to a full blown all-purpose map editor means mostly writing
   a little new code and linking in more .o's from FreeCiv (as far as the
   code kludge allows. In fact, I had to make some dummy procedures for
   things like find_city_by_id(), that (a) I don't need in the editor, (b)
   no procedure that is needed in the editor needs, and (c) is called by
   other procedures in the same module).

3) what I did to CivWorld over the weekend: updated it to work with
   v 1.7.2 and recent CVS-snapshots (last Thursday). It'll require
   a patch to server/maphand.c and server/gamehand.c that I've got
   ready and will post this week. Together with a small change in
   server/stdinhand.c this will also allow loading, modifying and
   saving scenarios in the server (Hi Lalo! ;-). In other words, it
   won't work with old versions of FreeCiv, although the save games
   it produces should be compatible at least with 1.7.2. (I'll have
   a look at the 1.6.3 sources that came with it, to see if I can
   extend backwards compatibility, if it is so wished... Capability
   strings are a problem here, but I've already mucked up a solution
   for this)

   I changed it to draw on an offscreen image, so scrolling is now much
   less jerky, I added tooltips and a dialog to change map/server options.
   I removed and cleaned up lots of code and made it much less crash-prone.
   It can now place starting positions, has a kind of status bar and can
   toggle solid unit backgrounds on and off, and other stuff I have
   forgotten. I hope to make the new version available tomorrow.

4) what's still missing: line and rectangle tile drawing modes (Kirk,
   I'll gladly invite you to join the fun here! The hooks are all there,
   there's just nothing behind them atm. ;-), lotsa testing, and - if
   the majority likes optionally having non-random specials in
   scenario's - something to do about specials/huts.

I'll post a complete list of what's TODO, and what's done together with
the tarball.

I think that makes me the semi-official maintainer of the thing. Oops! ;-)

Bye for now.
-- 
Daniel "Gudy" Gudlat                (mailto:gudlat@xxxxxxxxxxxxxxxxxxxxxxx)
ICQ-UIN: 5258903               (http://www.informatik.hu-berlin.de/~gudlat)
"Let us do the undoable, let us think the unthinkable.  Let us prepare to
grapple with the ineffable itself, and see if we may not eff it after all!"


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