Bugs found playing Dungeon Master in DSB

This forum is for the Lua scriptable clone of DM/CSB called Dungeon Strikes Back by Sophia. Use DSB to build your own highly customised games.

Moderator: Sophia

Forum rules
Please read the Forum rules and policies before posting. You may Image to help finance the hosting costs of this forum.
Post Reply
User avatar
Joramun
Mon Master
Posts: 927
Joined: Thu May 25, 2006 7:05 pm
Location: The Universe

Bugs found playing Dungeon Master in DSB

Post by Joramun »

[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 !
Last edited by Joramun on Mon Apr 09, 2007 7:58 pm, edited 1 time in total.
What Is Your Quest ?
User avatar
Joramun
Mon Master
Posts: 927
Joined: Thu May 25, 2006 7:05 pm
Location: The Universe

Post by Joramun »

[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"
Last edited by Joramun on Wed Apr 11, 2007 8:48 am, edited 2 times in total.
What Is Your Quest ?
User avatar
Sophia
Concise and Honest
Posts: 4307
Joined: Thu Sep 12, 2002 9:50 pm
Location: Nowhere in particular
Contact:

Post by Sophia »

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
These have all been fixed for 0.11.
Joramund wrote:items in mirror or sconces or invisible alcoves
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:monster generator problem, crash : "invalid pointer to pointerize"
I'll need to see the crash log to be able to make sense of this.
User avatar
Joramun
Mon Master
Posts: 927
Joined: Thu May 25, 2006 7:05 pm
Location: The Universe

Post by Joramun »

New bug :

- triggers working only once ( 1,16,16) room of pads
(i looked for the reason, but didn't find)
What Is Your Quest ?
User avatar
Sophia
Concise and Honest
Posts: 4307
Joined: Thu Sep 12, 2002 9:50 pm
Location: Nowhere in particular
Contact:

Post by Sophia »

Fixed!
User avatar
Joramun
Mon Master
Posts: 927
Joined: Thu May 25, 2006 7:05 pm
Location: The Universe

Post by Joramun »

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.
What Is Your Quest ?
User avatar
Sophia
Concise and Honest
Posts: 4307
Joined: Thu Sep 12, 2002 9:50 pm
Location: Nowhere in particular
Contact:

Post by Sophia »

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:

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
Post Reply