[Freeciv-Dev] that map editor thing
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
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!"
- [Freeciv-Dev] that map editor thing,
Daniel Gudlat <=
|
|