mapobj: it is now no longer possible to create a 0-size rectangle
authorLukas Krickl <lukas@krickl.dev>
Fri, 10 Oct 2025 15:43:45 +0000 (17:43 +0200)
committerLukas Krickl <lukas@krickl.dev>
Fri, 10 Oct 2025 15:43:45 +0000 (17:43 +0200)
src/map.s
src/mapobj.s

index 35089cb73a279005f328af7abc79c056cf1bccd2..b21d15613112ef4544bee3246bc9f9b74a95e101 100644 (file)
--- a/src/map.s
+++ b/src/map.s
@@ -363,21 +363,21 @@ l1_objs:
        modef MOT_SET_PAT, 0, 8, pat_center_empty_wall
        modef2 MOT_ACTOR_SPAWNER, 0, 8, ACT_T_GUARD, 0x40 
        ; rectangle at y/x 0/0 with height 32 width 64
-       modef MOT_RECT, 0, 8, 0x0804 
+       modef MOT_RECT, 0, 8, 0x0703
        
 
        ; center rectangle
-       ; modef MOT_RECT, 0, 8, 0x8604 
+       ; modef MOT_RECT, 0, 8, 0x8303
 
        ; rectangle at y/x 0/0 with height 32 width 48 
-       modef MOT_RECT, 0, 8, 0xE604 
+       modef MOT_RECT, 0, 8, 0xE503
 
        modef MOT_SET_PAT, 0, 10, pat_center_grass 
        modef2 MOT_ACTOR_SPAWNER, 0, 11, ACT_T_GUARD, 0x80 
        modef MOT_SET_PAT, 0, 18, pat_center_empty_wall
 
        modef MOT_RECT_CLEAR, 0, 18, 0
-       modef2 MOT_RECT, 0, 18, 0x0F, 0x08
+       modef2 MOT_RECT, 0, 18, 0x0F, 0x07
        modef2 MOT_ACTOR_SPAWNER, 0, 18, ACT_T_GUARD, 0x40 
 
        modef MOT_SET_PAT, 0, 0x1E, pat_empty 
index 8bdea40130607182a2d8f2a5f574a37d7b20ea13..013525685b3ba677ef188376a63626c714353d2c 100644 (file)
@@ -111,9 +111,9 @@ mo_enable_scroll:
        ; spawns a collision rectangle
        ; the origin of a rectangle is the bottom left
        ; dat1: nnnn0000: y offset from row in 8 pixel increments 
-       ;                 0000nnnn: height in 8 pixel increments
+       ;                 0000nnnn: height in 8 pixel increments (+1 height is implicitly added)
        ; dat2: nnnn0000: x offset from row in 8 pixel increments 
-       ;                               0000nnnn: width in 8 pixel increments
+       ;                               0000nnnn: width in 8 pixel increments (+1 widt is implicitly added)
        ; inputs:
        ;               de: map object ptr
 mo_rect:
@@ -138,6 +138,7 @@ mo_rect:
        ; calculate height 
        ld a, [hl+] ; hl = dat2
        and a, 0x0F
+       inc a
        mul8 a 
        ; d = height 
        ld d, a
@@ -153,6 +154,7 @@ mo_rect:
        ; calculate width
        ld a, [hl]
        and a, 0x0F
+       inc a
        mul8 a
        ; e = width
        ld e, a