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

Reply via email to