mapgen: added door fixup for all directions
authorLukas Krickl <lukas@krickl.dev>
Tue, 29 Jul 2025 20:54:44 +0000 (22:54 +0200)
committerLukas Krickl <lukas@krickl.dev>
Tue, 29 Jul 2025 20:54:44 +0000 (22:54 +0200)
Doors still do not get collision from this, but eventually closed doors *will* have collision anyway.

src/mapgen.s

index bc80bb8f274f3be0f1145574443f1c97d9574942..2ab91b74bcf88308c2f4108670c2985c24ee45c8 100644 (file)
@@ -322,6 +322,7 @@ mapgen_draw_room_pattern_row:
        ;       preserves:
        ;               hl, bc, de
 #macro mapgen_fix_door_fixup
+.beginscope
        push hl
        push de
 
@@ -345,6 +346,7 @@ mapgen_draw_room_pattern_row:
 
        pop de
        pop hl
+.endscope
 #endmacro
 
 
@@ -373,18 +375,15 @@ mapgen_fix_door_adjacent_to_collider:
 
        ret
 @up_door:
-
-       ; move up one row
-       ; and see if the tile is a collider
-
+       mapgen_fix_door_fixup (-c_size) * MAP_W, RPUW
        ret
-
 @down_door:
+       mapgen_fix_door_fixup c_size * MAP_W, RPBW
        ret
 @left_door:
        mapgen_fix_door_fixup -c_size, RPLW
        ret
 @right_door:
-       
+       mapgen_fix_door_fixup c_size, RPRW      
 
        ret