map: wip map copy
authorLukas Krickl <lukas@krickl.dev>
Mon, 30 Dec 2024 18:38:55 +0000 (19:38 +0100)
committerLukas Krickl <lukas@krickl.dev>
Mon, 30 Dec 2024 18:38:55 +0000 (19:38 +0100)
src/map.s
src/video.s

index 327f75f7b81c0c81a8b41d4560d6b5db4311c70b..c709a9fe8397af45472f6a667f5193b9f94105a2 100644 (file)
--- a/src/map.s
+++ b/src/map.s
@@ -545,21 +545,33 @@ map_gen_copy_base_room:
   ; this routine copies a base room
   ; and fixes the header accordingly 
 
-  ; copy header 
+  ; copy header
+  push hl ; save original target 
   ld bc, room_size
   call memcpy
 
+
   ; copy tiles 
+  pop hl ; get target back
+  ; read target room tiles ptr 
+  ; into hl
+  ld a, [hl+]
+
   ld bc, ROOM_TILES_SIZE
   call memcpy
 
   ; copy flags
+  ld bc, ROOM_FLAGS_SIZE
+  call memcpy
 
   ; copy actors 
+  ld bc, ACTOR_TABLE_SIZE
+  call memcpy
 
   ; set exits 
   pop bc ; restore default exit value 
 
+
   ret
 
   ; base room 
index ff7954ade2c1d803a264fb663ef34b9eb089ddd9..4d8e4e3cea90e169cbb3354bb7ddfbae21f46575 100644 (file)
@@ -101,7 +101,7 @@ video_init:
   call map_generate
 
   ; initial test map
-  ld de, base_room_header
+  ld de, base_room_header 
   call room_load_from 
   
   ; set up bgp