pingus-devel
[Top][All Lists]
Advanced

[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




reply via email to

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