[corrected] x_relay attempting illegal stuff :
two relays were triggering at the same time, one sending message M_ACTIVATE, the other M_DESTROY, resulting in a reference to a destroyed item. It comes from the fact RTC handles triggers in the order they are "piled" on the tile, while in dsb there is no such order.
[corrected] pressure plate having unexpected behavior in some cases :
the wall text (RTC_1599) (level 1, x=21 y=23) "THIS WALL SAYS NOTHING" stays even after the party leaves the pressure plate at x=23, y=23
[corrected in v0.11] triggers not taking account of items flying over it / carried by party
[corrected in v0.11] teleporter problem : when toggling a teleporter, if the party steps on the tile when the teleporter is deactivated, and then waits, when teleportes is reactivated, the party DOES NOT get teleported
[corrected in v0.11] items in mirror or sconces or invisible alcoves !
Bugs found playing Dungeon Master in DSB
Moderator: Sophia
Forum rules
Please read the Forum rules and policies before posting. You may
to help finance the hosting costs of this forum.
Please read the Forum rules and policies before posting. You may

[corrected in v0.11] another teleporter problem : opby_thing = true doesn't teleport flying objects...
[corrected] monster generator are now properly translated by RTSB
[corrected] hit and run will now work properly
[corrected in v0.11] monster generator problem, crash : "invalid pointer to pointerize"
[corrected] monster generator are now properly translated by RTSB
[corrected] hit and run will now work properly
[corrected in v0.11] monster generator problem, crash : "invalid pointer to pointerize"
Last edited by Joramun on Wed Apr 11, 2007 8:48 am, edited 2 times in total.
What Is Your Quest ?
- Sophia
- Concise and Honest
- Posts: 4307
- Joined: Thu Sep 12, 2002 9:50 pm
- Location: Nowhere in particular
- Contact:
These have all been fixed for 0.11.Joramund wrote:triggers not taking account of items flying over it / carried by party
teleporter problem : when toggling a teleporter, if the party steps on the tile when the teleporter is deactivated, and then waits, when teleportes is reactivated, the party DOES NOT get teleported
another teleporter problem : opby_thing = true doesn't teleport flying objects
For this one, you'll need to call dungeon_translate just before the end of the file. I can send this one to you, or it'll be in 0.11 too.Joramund wrote:items in mirror or sconces or invisible alcoves
I'll need to see the crash log to be able to make sense of this.Joramund wrote:monster generator problem, crash : "invalid pointer to pointerize"
Actually, most of the trigger mechanics are going badly in some circumstances :
When moving fast enough, a trigger won't be triggered / untriggered when stepping on or off it. In particular, constant weight plate can be abused by stepping very fast on and then off them : they don't untrigger.
I experienced that only for trigger operating doors, so either triggers are globally "broken" or doors respond too slow to a M_TOGGLE, because of the high amount of code they call.
When moving fast enough, a trigger won't be triggered / untriggered when stepping on or off it. In particular, constant weight plate can be abused by stepping very fast on and then off them : they don't untrigger.
I experienced that only for trigger operating doors, so either triggers are globally "broken" or doors respond too slow to a M_TOGGLE, because of the high amount of code they call.
What Is Your Quest ?
- Sophia
- Concise and Honest
- Posts: 4307
- Joined: Thu Sep 12, 2002 9:50 pm
- Location: Nowhere in particular
- Contact:
It has nothing to do with speed. Triggers were just globally broken, I think. Fortunately, the fix is fairly simple.
Replace floor_trigger_off in base/triggers.lua with the following and it should work better:
Replace floor_trigger_off in base/triggers.lua with the following and it should work better:
Code: Select all
function floor_trigger_off(self, id, what)
if (not exvar[id]) then
return false
elseif (not exvar[id].target) then
return false
end
if (is_opby(id, what, 0)) then
local tc = exvar[id].tc
if (tc == 1) then
if (exvar[id].const_weight) then
if (not exvar[id].silent) then
if (exvar[id].sound) then
local_sound(id, exvar[id].sound)
elseif (not self.default_silent) then
local_sound(id, snd.click)
end
end
exvar[id].tc = nil
got_untriggered(id, what)
else
exvar[id].tc = nil
end
else
exvar[id].tc = tc - 1
end
end
end