Re: Xapobjs ; was Mud balancing (Was OasisOLC 2.0 and Circleblp15)

From: Patrick Dughi (
Date: 11/21/00

> Wanted to do it this way so as not to send two different messages.
> Question: Has anyone out there actually got xapobjects to work for
> them? My code is still reeling from my brief experience with the
> xapojects 2.2 I installed a couple of days ago.

        Heh. I can claim to have done it - but then again, I wrote it :)

        It is sorta a kludge, but it's strength is also in it's
simplicity.  The most common problems I have seen are:

        Poor conversions
        ex_descs (see archive)
        houses not converting (just save each house in the hcontrol struct)
        xapobjs switch being switched on/off - sometimes people forget to
                either include the commandline option or hard code it.
        bad patches:
          This happens alot.  Hard to check for too.  In brief, every
function in objsave.c that opens or writes to files should have a section
where it determines if ascii objs are turned on, and if so, to use them.
In some cases - load and write of all the actual objects - it skips right
out of the function to Crash_load_xapobjs() and the poorly named
my_obj_save_to_disk(), respectively.

        autoeq conflicts inside the load section:
          again, happens alot.  The autoeq xapobjs was made for was based
on the only one available at the time - I think bpl 9?  Conflicts here are
usually one or two line, but in fact, you'll need to entirely rewrite huge
sections because the two versions are similar enough to cause huge
problems when parts of patches replace things that shouldn't be replaced.

        What I normally do to debug specific load/etc problems when I am
getting a non-crash bug; I just insert some logging messages around the
code which ought to be executing.  Once I find the code is/is not
executing, i run it through gdb and watch the values.  Usually that's
enough to nail the culprit.

        By far though, the easiest way to install the patch seems to be to
patch to stock code (so you get no rejs) and then do a 1:1 eyeball
comparison and alter yours.   Basically, it's a patch-by hand, but on a
function-per-function basis, instead of a line per line, which gets
confusing since you can't see the big picture.


   | FAQ: |
   | Archives: |

This archive was generated by hypermail 2b30 : 04/11/01 PDT