PDA

View Full Version : Dmap Auto-Warp-Setter - Practical and Useful



Stungun
01-07-2007, 09:21 PM
This feature would analyze a Dmap, and set all the warps of one type on every highlit room to lead to similar rooms on another Dmap.

For example, we have a map like this:



################
################
##OO######OO####
OOOOOO####OO####
##OO######OO####
##OO######OO####
################
################
########

Where O is a room and # is empty space. Now, we've set the Dmaps up to where the left half of the map is floor 1 and the right half is B1; The rooms are lined up and the two 'arms' of floor 1 have no holes.

All our pits are Direct Warp[D] combos, and we want to make it so that all pits lead to their relative positions on the lower floor Dmap. We wouldn't need to make a new combo type for this, or a huge internal engine change; All we need is an ease-of-use, ZQ-only, mass-warper. It'd simply have five fields:

DMap
X-Offset
Y-Offset
Warp To Use
Warp Type

(As ZQ would set warps, it would 'wrap around' if a destination screen would go out of bounds.)

What it would do is make all tile warps on the source Dmap's highlit rooms, that have the selected letter (A-D) defined in [WARP TO USE] be set to [DMAP] with [WARP TYPE]; the destination screen being the source screen on the source Dmap, plus [X-Offset] and [Y-Offset].

As a result, with the map displayed above, one would merely need to set:

Dmap: (B1 Dmap)
X-Offset: (0)
Y-Offset: (0)
Warp To Use: (D)
Warp Type: (I-Warp with Zap FX)

"What use is X-Offset and Y-Offset?" You might ask.

Well, some people might design multi-floor dungeons on one Dmap and the floors aren't aligned; Early 1.90 quests did this a few times, to conserve Dmaps. If a person had both floors on the same Dmap, they couldn't warp to the exact same rooms, could they? ;) No, they would have to use an X-Offset or Y-Offset to increment the rooms by the distance between the floors. Like in an unfriendly Dmap like this:



########
#222####
#2#2####
#222####
#####1##
####111#
#####1##
########


Considering the sides of Floor 2 lead to the sides of Floor 1, we would use an X-Offset of 4 and a Y-Offset of 4; So Screen 21 would lead to Screen 65 and Screen 12 would lead to Screen 56, and so on.

This could also be useful if people fail to align their Dmaps properly. It also might help in the creation of direct warp-based custom bosses; I find many old custom bosses were written in a simple pattern. As the time goes on the warps progress the current phase to X+1; When the enemy becomes vulnerable, the secondary warp type increments the Y position. If your window of oppurtunity ends the X position resets.

Think how useful this feature would be; And it wouldn't even require a change to the player. Just ZQ doing a bit of automated work.