Help with a weird ZZT bug
Posted: Mon Sep 28, 2009 12:06 am
Trying to debug world 1 of Adventure of Sam before moving on to world 2, but I'm having the weirdest problem with transporters, and was wondering if anyone could figure this out.

The dungeons all have transporters that are useless going in but functional once "activated" by a switch on the other side of the room, to make backtracking (getting back out again once you're done, or even leaving halfway through to go heal, then getting back to where you were again) less of a pain. This works by the fact that transporters with a clear space in front of them will just transport you to the next space over (in this screenshot, going through the transporter on the left there will just move you one space to the right, between the transporter and the block) but a transporter that's blocked in that immediate direction but has an opposite transporter will move the player over to that, like transporters are usually supposed to. In this screenshot, the blocks are set to move in front of the transporters once you throw the switch (that white upside-down T near the south exit) and block them, thus "activating" them and making them functional, thus making return trips and backtracking easier.
Here's the thing, though. Every time I play-test this board, one of the transporters (the one on the left) "activates" prematurely by the fact that the transporter moves to the right, in front of the block. Yes, rather than it being a coding issue in one of my objects, the transporter itself, a regular premade transporter, moves toward the block. This usually happens in the middle of the combat script with any of those enemies you see there, but I have no idea what could be triggering that...it's not like I built the battles around the #move premade transporters one space to the right command or anything.
Further compounding the weirdness: from what I have seen in my playtesting so far, it is only that particular transporter in that particular room (and one other one in the room directly south.) Other rooms in this dungeon and other dungeons appear to work fine. None of the others do that. It's always just those particular two.
Just...why?

The dungeons all have transporters that are useless going in but functional once "activated" by a switch on the other side of the room, to make backtracking (getting back out again once you're done, or even leaving halfway through to go heal, then getting back to where you were again) less of a pain. This works by the fact that transporters with a clear space in front of them will just transport you to the next space over (in this screenshot, going through the transporter on the left there will just move you one space to the right, between the transporter and the block) but a transporter that's blocked in that immediate direction but has an opposite transporter will move the player over to that, like transporters are usually supposed to. In this screenshot, the blocks are set to move in front of the transporters once you throw the switch (that white upside-down T near the south exit) and block them, thus "activating" them and making them functional, thus making return trips and backtracking easier.
Here's the thing, though. Every time I play-test this board, one of the transporters (the one on the left) "activates" prematurely by the fact that the transporter moves to the right, in front of the block. Yes, rather than it being a coding issue in one of my objects, the transporter itself, a regular premade transporter, moves toward the block. This usually happens in the middle of the combat script with any of those enemies you see there, but I have no idea what could be triggering that...it's not like I built the battles around the #move premade transporters one space to the right command or anything.
Further compounding the weirdness: from what I have seen in my playtesting so far, it is only that particular transporter in that particular room (and one other one in the room directly south.) Other rooms in this dungeon and other dungeons appear to work fine. None of the others do that. It's always just those particular two.
Just...why?