From d1ea573695caef2f908651a76fc6029b84b65dbb Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Mon, 25 Nov 2024 11:50:07 +0100 Subject: [PATCH] Updated map converter to align actors to the tile grid --- maps/base_room.s | 4 ++-- tools/tms2map.py | 11 +++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/maps/base_room.s b/maps/base_room.s index efccf5e..68abba5 100644 --- a/maps/base_room.s +++ b/maps/base_room.s @@ -5,8 +5,8 @@ dwb base_room_flags dwb base_room_actors base_room_actors: .db 8 -.db 1 , 67 , 54 , 0 -.db 1 , 55 , 40 , 0 +.db 1 , 64 , 72 , 0 +.db 1 , 48 , 56 , 0 base_room_bg: .db 0x60, 0x62, 0x62, 0x64, 0x40, 0x40, 0x66, 0x62, 0x62, 0x68, 0x4c, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x6a, 0x46, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xe0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x48, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xe2, 0x4c, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x6a, 0x6c, 0x4a, 0x4a, 0x42, 0x40, 0x40, 0x44, 0x4a, 0x4a, 0x6e base_room_flags: diff --git a/tools/tms2map.py b/tools/tms2map.py index c7248d4..50e9177 100755 --- a/tools/tms2map.py +++ b/tools/tms2map.py @@ -4,6 +4,10 @@ import sys import os import xml.etree.ElementTree as ET +TILE_SIZE = 16 +ACTOR_OFFSET_X = 8 +ACTOR_OFFSET_Y = 16 + if len(sys.argv) < 3: print("Usage: tmx2map.py ") sys.exit(-1) @@ -30,8 +34,11 @@ def print_data(data, name, layer): end = '\n' print(hex(val), end=end) +def actor_round(n, base=TILE_SIZE): + return base * round(n/base) + def print_actor(atype, y, x, flags): - print(".db ", int(atype), ",", int(float(y)), ",", int(float(x)), ",", int(flags)) + print(".db ", int(atype), ",", int(actor_round(float(y))) + ACTOR_OFFSET_Y, ",", int(actor_round(float(x))) + ACTOR_OFFSET_X, ",", int(flags)) def print_struct(name): print(" ; struct for ", name) @@ -62,7 +69,7 @@ def convert(src, name): atype = prop.attrib['value'] elif prop.attrib['name'] == 'flags': flags = prop.attrib['value'] - print_actor(atype, data.attrib['x'], data.attrib['y'], flags) + print_actor(atype, data.attrib['y'], data.attrib['x'], flags) -- 2.30.2