To reproduce this bug: - Start the included level - Pickup the bag - Pickup the dynamite into the bag - Place the bag at the blinking spot - After the bag has disappeared, press one of the two triggers. -> This causes Segmentation Fault
Problem seems to be that enigma.GetNamedObject(name) should return nil for items which aren't in the game anymore but doesn't in this case. -- Markus Laire
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <el:level xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://enigma-game.org/schema/level/1 level.xsd" xmlns:el="http://enigma-game.org/schema/level/1"> <el:protected> <el:info el:type="level"> <el:identity el:title="Bug" el:id="20070515malaire154"/> <el:version el:score="1" el:release="1" el:revision="0" el:status="experimental"/> <el:author el:name="Markus Laire" el:email="[EMAIL PROTECTED]"/> <el:copyright>Copyright (C) 2006 Markus Laire</el:copyright> <el:license el:type="GPL v2.0 or above" el:open="true"/> <el:compatibility el:enigma="1.00"> <el:dependency el:path="lib/ant" el:id="lib/ant" el:release="1" el:preload="true"/> </el:compatibility> <el:modes el:easy="false" el:single="true" el:network="false"/> <el:score el:easy="-" el:difficult="-"/> </el:info> <el:luamain><![CDATA[ ---------------------------------------- cells={} cells[" "]=cell{floor="fl-leavesb"} cells["X"]=cell{stone="st-likeoxyda"} cells["+"]=cell{actor="ac-blackball"} cells["0"]=cell{oxyd} cells["b"]=cell{item="it-bag"} cells["d"]=cell{item={"it-dynamite", {name="dynamite"}}} cells["~"]=cell{stone={"st-timer", {action="callback", target="timer", interval=2}}} cells["1"]=cell{item={"it-trigger", {action="callback", target="trigger1"}}} cells["2"]=cell{item={"it-trigger", {action="callback", target="trigger2"}}} level = { "XXXXXXXXXXXXXXXXXXX~", "X + X", "X d b X", "X X", "X X", "X X", "X X", "X X", "X X", "X 1 2 X", "X X", "X X", "XXXXXXXXXXXXXXXXXXXX" } oxyd_default_flavor = "d" set_default_parent(cells[" "]) create_world_by_map(level,cells) oxyd_shuffle() function timer() if enigma.GetKind(enigma.GetFloor(10, 5)) == "fl-leavesb" then set_floor("fl-leaves", 10, 5); else set_floor("fl-leavesb", 10, 5); end enigma.KillItem(10, 5) end function trigger1() local item = enigma.GetNamedObject("dynamite") if item ~= nil then local name = enigma.GetAttrib(item, "name") end end function trigger2() local item = enigma.GetNamedObject("dynamite") if item ~= nil then local x, y = enigma.GetPos(item) end end ---------------------------------------- ]]></el:luamain> <el:i18n/> </el:protected> </el:level>
_______________________________________________ Enigma-devel mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/enigma-devel
