From 3ec5f95a0da01516cbb2b14f5550ac74c92a5b9c Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Sat, 10 May 2025 20:38:12 +0200 Subject: [PATCH] map: the map converter can now add flags The map loader loads flags from maps correctly --- maps/default_map.s | 192 ++++++++++++++++++++++----------------------- src/defs.s | 4 + src/map.s | 13 +-- src/player.s | 2 + tools/tms2map.py | 28 ++++++- 5 files changed, 136 insertions(+), 103 deletions(-) diff --git a/maps/default_map.s b/maps/default_map.s index d0f285f..b5580b4 100644 --- a/maps/default_map.s +++ b/maps/default_map.s @@ -1,98 +1,98 @@ default_map_bg: -.db 0x65, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x65, 0x65 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x65, 0x65 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x65, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x77, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x6a, 0x6b -.db 0x6c, 0x6d, 0x77, 0x6e, 0x6f, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x7a, 0x7b -.db 0x7c, 0x7d, 0x77, 0x7e, 0x7f, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x78, 0x78 -.db 0x78, 0x78, 0x79, 0x78, 0x78, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x77, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x74, 0x74, 0x74 -.db 0x74, 0x74, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x77, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x74, 0x74, 0x74 -.db 0x74, 0x74, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x77, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x74, 0x74, 0x74 -.db 0x74, 0x74, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x74, 0x74, 0x74 -.db 0x74, 0x74, 0x74, 0x74, 0x74, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x74, 0x74, 0x74, 0x74, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64 -.db 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x65 +.db 0x65,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x65,0x0, 0x65,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x65,0x0, 0x65,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x65,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x77,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x6a,0x1, 0x6b,0x0 +.db 0x6c,0x0, 0x6d,0x0, 0x77,0x0, 0x6e,0x0, 0x6f,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x7a,0x0, 0x7b,0x0 +.db 0x7c,0x0, 0x7d,0x0, 0x77,0x0, 0x7e,0x0, 0x7f,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x78,0x0, 0x78,0x0 +.db 0x78,0x0, 0x78,0x0, 0x79,0x0, 0x78,0x0, 0x78,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x77,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x74,0x0, 0x74,0x0, 0x74,0x0 +.db 0x74,0x0, 0x74,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x77,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x74,0x0, 0x74,0x0, 0x74,0x0 +.db 0x74,0x0, 0x74,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x77,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x74,0x0, 0x74,0x0, 0x74,0x0 +.db 0x74,0x0, 0x74,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x74,0x0, 0x74,0x0, 0x74,0x0 +.db 0x74,0x0, 0x74,0x0, 0x74,0x0, 0x74,0x0, 0x74,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x74,0x0, 0x74,0x0, 0x74,0x0, 0x74,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0 +.db 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x64,0x0, 0x65,0x0 diff --git a/src/defs.s b/src/defs.s index 86302e7..ffd0878 100644 --- a/src/defs.s +++ b/src/defs.s @@ -31,6 +31,10 @@ #define CURSOR_MIN_Y 0 #define CURSOR_MAX_Y 0xB8 + ; cell flags +.se 0 +.de CF_COLLISION, 1 + ; cells struct .se 0 .de c_tile, 1 diff --git a/src/map.s b/src/map.s index 6a93d03..06bcc8a 100644 --- a/src/map.s +++ b/src/map.s @@ -33,14 +33,15 @@ tile_map_load: ; hl = c_tile @loop: + ; tile ld a, [bc] inc bc ; bc++ - ld [hl], a - - push de - ld de, c_size - add hl, de ; next cell - pop de + ld [hl+], a + + ; flags + ld a, [bc] + inc bc ; bc++ + ld [hl+], a ; de-- dec de diff --git a/src/player.s b/src/player.s index c790126..9f95c1c 100644 --- a/src/player.s +++ b/src/player.s @@ -214,3 +214,5 @@ cursor_get_tile: cursor_get_at_generic SCRN0, MAP_W, 1 ret + + diff --git a/tools/tms2map.py b/tools/tms2map.py index 441f765..61f5099 100755 --- a/tools/tms2map.py +++ b/tools/tms2map.py @@ -8,6 +8,12 @@ TILE_SIZE = 16 ACTOR_OFFSET_X = 0 ACTOR_OFFSET_Y = 0 +FLAGS = { + 'f_collision': 0x01 + } + +TILE_FLAGS = [0] * 256 + if len(sys.argv) < 3: print("Usage: tmx2map.py ") sys.exit(-1) @@ -37,7 +43,25 @@ def print_data(data, name, layer): end = '' if i == len(split) - 1: end = '\n' - print(hex(val), end=end) + print(hex(val), end='') + print(",", end='') + print(hex(TILE_FLAGS[int(byte)-1]), end=end) + + +def get_flag(tile): + for child in tile: + if child.tag == 'properties': + for sub_child in child: + if sub_child.tag == 'property': + for flag in FLAGS: + if sub_child.attrib['name'] == flag: + TILE_FLAGS[int(tile.attrib['id'])-1] = FLAGS[flag] + +# get all flags and write them to TILE_FLAGS +def get_flags(tileset): + for child in tileset: + if child.tag == 'tile': + get_flag(child) def convert(src, name): @@ -48,6 +72,8 @@ def convert(src, name): if child.tag == "layer": for data in child: print_data(data.text, name, child.attrib['name']) + elif child.tag == "tileset": + get_flags(child) -- 2.30.2