[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Some Pingus Updates, 0.7.0 getting closer
From: |
Ingo Ruhnke |
Subject: |
Some Pingus Updates, 0.7.0 getting closer |
Date: |
Fri, 25 Feb 2005 05:24:29 +0100 |
User-agent: |
Gnus/5.1007 (Gnus v5.10.7) Emacs/21.3 (gnu/linux) |
Hiho,
since SVN-Commit mails are currently down (savannah blocking mail from
berlios, berlios seems to have misconfigured MX record or the like)
here some summary of what I did in the last days.
- fixed the alias.xml file, I didn't use Johns patch, since the
current alias.xml was mostly fine, just needed to add the datafile
name infront of some resource names
"/Industrial/Gunge/gunge8" -> "global/Industrial/Gunge/gunge8"
- changed the level file format, its still mostly the same, just
cleanup (no more <worldobj type="foo"> mess, no more use of
xml-attributes):
<pingus-level>
<version>2</version>
<head>
...
</head>
<objects>
<groundpiece>
...
</groundpiece>
<exit>
...
</exit>
</objects>
</pingus-level>
This however makes all levels incompatible with the old one. Also
rewrote PLF/XMLPLF classes, now called PingusLevel/XMLPingusLevel
and properly refcounted
- wrote a script xslt script to convert the old level format to the
new one, this seems to work fine, however need some serious testing
before applied to all the levels in the repo, there are also some
things it can't handle which need fixing manually ('use-old-pos'
for 'exit'), that however shouldn't be to much of a problem
- with the worldmap I did basically the same as with the levels, bit
of cleanup, getting rid of XML attributes and some convert script
to convert between old and new format
- added a replacement for GraphicContext, called DisplayContext, does
similar things, but is more powerfull in that it can sort the
sprites before drawing them to the screen, this makes it
unnecessary to sort the WorldObj's themself and also allows to have
WorldObjs that are both draw behind and infront of the pingus at
the same time (ie. should be quite usefull for entrances, no more
hotspot hacks needed soon). In some areas this is still causing
some throuble, worldmap for example should however not be that
difficult to fix. DisplayContext also allows to apply
compositioning effects such as lightmapping, thats however an
OpenGL only thing
- rewrote all XML handling to use the FileReader helper class, so
there is no need to mess directly with XML in the code any more
- got rid of libxml dependency, now using ClanLibs XML routines
instead
- merged WorldObjData and WorldObj classes, EditorObj got removed
- some general code cleanup, removal of unneeded classes, this
includes the complete build in editor, overall a reduction of some
15'000 lines of codes and comments
- move some stuff into ClanLib (ie. replaced Color with CL_Colorf,
etc)
- started to write a new external editor based on Flexlay[1], has the
disadvantage that its external (even so that might be changable
when there is some huge demand), but has the advantage of full
buildin undo/redo, proper zooming, a real GUI (not a bunch of hacks
like the old one), etc. Beside from that its just 500 lines of Ruby
and already comes close to the old one with like 10'000 lines of
C++ code. It should also be reasonably easy to add an editor for
the worldmap into that.
Still a bunch of work needs to be done and I am sure I broke quite a
few things on my way, but some cleanup was really needed.
[1] http://flexlay.berlios.de/
--
WWW: http://pingus.seul.org/~grumbel/
JabberID: address@hidden
ICQ: 59461927
- Some Pingus Updates, 0.7.0 getting closer,
Ingo Ruhnke <=