[crossfire] Archetype and inventory bug

Nicolas Weeger nicolas.weeger at laposte.net
Sun Jan 22 09:40:48 CST 2012


Hello.


After a crash on invidious, I've found a bug related to archetypes in 
inventory handling, and I'm really wondering how to fix it :s


Here's the description:
- when a random map is generated, a special submap can be 
/styles/specialmaps/powerroom

- in this map are firewalls, with a "transferrence" spell in their inventory. 
The archetypes are "firewall_1", "firewall_2" and such

- those archetype contain an archetype "firebullet", because they are firewalls

- when the map is generated, the "firebullet" is copied from the archetype, 
then the "transferrence spell is added

- transferrence is the first item in inventory, so that's what the wall casts ; 
casting this, the wall increases its stats.sp (probably from the crystal, or a 
player standing on the crystal)

- if the map is swapped out, then reloaded from disk, the firewall will have 
its firebullet item copied from the archetype, then reloads the transferrence 
item, and the initial firebullet

- the firewall now contains, in the order: firebullet (archetype instanciation 
for reloading), transferrence (from the map definition), firebullet (archetype 
instanciation for creation)

- this is already a bug, but the fun is when the firewall will move, it'll fire 
in the direction... stats.sp which is now something like 15, 50, 100 - an 
invalid direction, of course

- this crashes in the face updating, setting an invalid face to the item


So I'm really puzzled on a correct fix for that... So far I can see:

- using a treasurelist for the firewall's spell, having it set to NONE in the 
map

- somehow detecting the map defines an inventory, and not generating the 
default firebullet, not saving it, or something like that

- something else entirely



Opinions?




Regards

Nicolas
-- 
Mon p'tit coin du web - http://nicolas.weeger.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: This is a digitally signed message part.
URL: <http://mailman.metalforge.org/pipermail/crossfire/attachments/20120122/58929f06/attachment.pgp>


More information about the crossfire mailing list