From 1da9bb54c22013e3d12d2cf3cae7f0758364741b Mon Sep 17 00:00:00 2001 From: dyceron Date: Tue, 14 May 2024 00:07:31 -0400 Subject: [PATCH 1/3] Add `BorderType` enum --- .../formats/bmsmsd.py | 72 ++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/src/mercury_engine_data_structures/formats/bmsmsd.py b/src/mercury_engine_data_structures/formats/bmsmsd.py index 40657a76..a147b2ac 100644 --- a/src/mercury_engine_data_structures/formats/bmsmsd.py +++ b/src/mercury_engine_data_structures/formats/bmsmsd.py @@ -7,6 +7,75 @@ from mercury_engine_data_structures.formats import BaseResource from mercury_engine_data_structures.game_check import Game +BorderType = Enum( + Int32sl, + NONE=0, + TOP_EDGE=1, + BOTTOM_EDGE=2, + HORIZONTAL_CENTER=3, + LEFT_EDGE=4, + TOP_LEFT_CORNER=5, + BOTTOM_LEFT_CORNER=6, + HORIZONTAL_LEFT=7, + RIGHT_EDGE=8, + TOP_RIGHT_CORNER=9, + BOTTOM_RIGHT_CORNER=10, + HORIZONTAL_RIGHT=11, + VERTICAL_CENTER=12, + VERTICAL_TOP=13, + VERTICAL_BOTTOM=14, + ALL_SIDES=15, + TOP_EDGE_OPEN_TOP=16, + TOP_EDGE_HIDDEN_TOP=17, + HORIZONTAL_CENTER_HIDDEN_TOP=19, + TOP_LEFT_CORNER_OPEN_TOP=21, + HORIZONTAL_LEFT_OPEN_TOP=23, + TOP_RIGHT_CORNER_OPEN_TOP=24, + TOP_RIGHT_CORNER_HIDDEN_TOP=25, + BOTTOM_EDGE_OPEN_BOTTOM=32, + BOTTOM_EDGE_HIDDEN_BOTTOM=34, + BOTTOM_LEFT_CORNER_OPEN_BOTTOM=38, + BOTTOM_RIGHT_CORNER_OPEN_BOTTOM=40, + HORIZONTAL_RIGHT_OPEN_BOTTOM=41, + BOTTOM_RIGHT_CORNER_HIDDEN_BOTTOM=42, + HORIZONTAL_RIGHT_HIDDEN_BOTTOM=43, + VERTICAL_BOTTOM_OPEN_BOTTOM=46, + LEFT_EDGE_OPEN_LEFT=64, + TOP_LEFT_CORNER_OPEN_LEFT=65, + BOTTOM_LEFT_CORNER_OPEN_LEFT=66, + HORIZONTAL_LEFT_OPEN_LEFT=67, + LEFT_EDGE_HIDDEN_LEFT=68, + TOP_LEFT_CORNER_HIDDEN_LEFT=69, + BOTTOM_LEFT_CORNER_HIDDEN_LEFT=70, + HORIZONTAL_LEFT_HIDDEN_LEFT=71, + HORIZONTAL_TOP_OPEN_LEFT=73, + VERTICAL_BOTTOM_OPEN_LEFT=74, + VERTICAL_CENTER_OPEN_LEFT=76, + VERTICAL_TOP_OPEN_LEFT=77, + VERTICAL_BOTTOM_HIDDEN_LEFT=78, + SINGLE_OPEN_LEFT=79, + RIGHT_EDGE_OPEN_RIGHT=128, + TOP_RIGHT_CORNER_OPEN_RIGHT=129, + BOTTOM_RIGHT_CORNER_OPEN_RIGHT=130, + HORIZONTAL_RIGHT_OPEN_RIGHT=131, + HORIZONTAL_CENTER_OPEN_RIGHT=132, + VERTICAL_TOP_OPEN_RIGHT=133, + VERTICAL_BOTTOM_OPEN_RIGHT=134, + SINGLE_OPEN_RIGHT=135, + RIGHT_EDGE_HIDDEN_RIGHT=136, + TOP_RIGHT_CORNER_HIDDEN_RIGHT=137, + BOTTOM_RIGHT_CORNER_HIDDEN_RIGHT=138, + HORIZONTAL_RIGHT_HIDDEN_RIGHT_01=139, + VERTICAL_TOP_HIDDEN_LEFT=141, + VERTICAL_BOTTOM_HIDDEN_RIGHT=142, + SINGLE_HIDDEN_RIGHT=143, + TOP_RIGHT_CORNER_OPEN_TOP_RIGHT=153, + HORIZONTAL_RIGHT_HIDDEN_RIGHT_02=155, + VERTICAL_CENTER_OPEN_LEFT_RIGHT=204, + VERTIAL_TOP_OPEN_LEFT_RIGHT=205, + SINGLE_OPEN_LEFT_RIGHT=207 +) + TileType = Enum( Int32ul, NORMAL=1, @@ -20,6 +89,7 @@ Int32sl, METROID=-1, ACTOR=0, + SHIP=1, ENERGY_CLOUD=2, DOOR=3, CHOZO_SEAL=4, @@ -45,7 +115,7 @@ "bottom_left" / CVector2D, "top_right" / CVector2D, ), - "border_type" / Int32sl, + "border_type" / BorderType, "tile_type" / TileType, "icons" / make_vector( Struct( From 2802c6a5cb77d7f2b4661e826123cf2eb6a64b31 Mon Sep 17 00:00:00 2001 From: dyceron Date: Tue, 14 May 2024 00:48:46 -0400 Subject: [PATCH 2/3] Cleanup wrong stuff --- .../formats/bmsmsd.py | 78 +++---------------- 1 file changed, 10 insertions(+), 68 deletions(-) diff --git a/src/mercury_engine_data_structures/formats/bmsmsd.py b/src/mercury_engine_data_structures/formats/bmsmsd.py index a147b2ac..157abf9a 100644 --- a/src/mercury_engine_data_structures/formats/bmsmsd.py +++ b/src/mercury_engine_data_structures/formats/bmsmsd.py @@ -1,79 +1,21 @@ import functools import construct -from construct.core import Const, Construct, Enum, Float32l, Hex, Int32sl, Int32ul, Struct +from construct.core import Const, Construct, Enum, FlagsEnum, Float32l, Hex, Int32sl, Int32ul, Struct from mercury_engine_data_structures.common_types import CVector2D, CVector3D, StrId, make_vector from mercury_engine_data_structures.formats import BaseResource from mercury_engine_data_structures.game_check import Game -BorderType = Enum( - Int32sl, - NONE=0, - TOP_EDGE=1, - BOTTOM_EDGE=2, - HORIZONTAL_CENTER=3, - LEFT_EDGE=4, - TOP_LEFT_CORNER=5, - BOTTOM_LEFT_CORNER=6, - HORIZONTAL_LEFT=7, - RIGHT_EDGE=8, - TOP_RIGHT_CORNER=9, - BOTTOM_RIGHT_CORNER=10, - HORIZONTAL_RIGHT=11, - VERTICAL_CENTER=12, - VERTICAL_TOP=13, - VERTICAL_BOTTOM=14, - ALL_SIDES=15, - TOP_EDGE_OPEN_TOP=16, - TOP_EDGE_HIDDEN_TOP=17, - HORIZONTAL_CENTER_HIDDEN_TOP=19, - TOP_LEFT_CORNER_OPEN_TOP=21, - HORIZONTAL_LEFT_OPEN_TOP=23, - TOP_RIGHT_CORNER_OPEN_TOP=24, - TOP_RIGHT_CORNER_HIDDEN_TOP=25, - BOTTOM_EDGE_OPEN_BOTTOM=32, - BOTTOM_EDGE_HIDDEN_BOTTOM=34, - BOTTOM_LEFT_CORNER_OPEN_BOTTOM=38, - BOTTOM_RIGHT_CORNER_OPEN_BOTTOM=40, - HORIZONTAL_RIGHT_OPEN_BOTTOM=41, - BOTTOM_RIGHT_CORNER_HIDDEN_BOTTOM=42, - HORIZONTAL_RIGHT_HIDDEN_BOTTOM=43, - VERTICAL_BOTTOM_OPEN_BOTTOM=46, - LEFT_EDGE_OPEN_LEFT=64, - TOP_LEFT_CORNER_OPEN_LEFT=65, - BOTTOM_LEFT_CORNER_OPEN_LEFT=66, - HORIZONTAL_LEFT_OPEN_LEFT=67, - LEFT_EDGE_HIDDEN_LEFT=68, - TOP_LEFT_CORNER_HIDDEN_LEFT=69, - BOTTOM_LEFT_CORNER_HIDDEN_LEFT=70, - HORIZONTAL_LEFT_HIDDEN_LEFT=71, - HORIZONTAL_TOP_OPEN_LEFT=73, - VERTICAL_BOTTOM_OPEN_LEFT=74, - VERTICAL_CENTER_OPEN_LEFT=76, - VERTICAL_TOP_OPEN_LEFT=77, - VERTICAL_BOTTOM_HIDDEN_LEFT=78, - SINGLE_OPEN_LEFT=79, - RIGHT_EDGE_OPEN_RIGHT=128, - TOP_RIGHT_CORNER_OPEN_RIGHT=129, - BOTTOM_RIGHT_CORNER_OPEN_RIGHT=130, - HORIZONTAL_RIGHT_OPEN_RIGHT=131, - HORIZONTAL_CENTER_OPEN_RIGHT=132, - VERTICAL_TOP_OPEN_RIGHT=133, - VERTICAL_BOTTOM_OPEN_RIGHT=134, - SINGLE_OPEN_RIGHT=135, - RIGHT_EDGE_HIDDEN_RIGHT=136, - TOP_RIGHT_CORNER_HIDDEN_RIGHT=137, - BOTTOM_RIGHT_CORNER_HIDDEN_RIGHT=138, - HORIZONTAL_RIGHT_HIDDEN_RIGHT_01=139, - VERTICAL_TOP_HIDDEN_LEFT=141, - VERTICAL_BOTTOM_HIDDEN_RIGHT=142, - SINGLE_HIDDEN_RIGHT=143, - TOP_RIGHT_CORNER_OPEN_TOP_RIGHT=153, - HORIZONTAL_RIGHT_HIDDEN_RIGHT_02=155, - VERTICAL_CENTER_OPEN_LEFT_RIGHT=204, - VERTIAL_TOP_OPEN_LEFT_RIGHT=205, - SINGLE_OPEN_LEFT_RIGHT=207 +BorderType = FlagsEnum(Int32sl, + TOP=1, + BOTTOM=2, + LEFT=4, + RIGHT=8, + OPEN_TOP=16, + OPEN_BOTTOM=32, + OPEN_LEFT=64, + OPEN_RIGHT=128, ) TileType = Enum( From 14937c1b344dea1b22e1afcc02c715c91d753748 Mon Sep 17 00:00:00 2001 From: dyceron Date: Tue, 14 May 2024 00:54:08 -0400 Subject: [PATCH 3/3] Rename border field --- src/mercury_engine_data_structures/formats/bmsmsd.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mercury_engine_data_structures/formats/bmsmsd.py b/src/mercury_engine_data_structures/formats/bmsmsd.py index 157abf9a..548dc728 100644 --- a/src/mercury_engine_data_structures/formats/bmsmsd.py +++ b/src/mercury_engine_data_structures/formats/bmsmsd.py @@ -7,7 +7,7 @@ from mercury_engine_data_structures.formats import BaseResource from mercury_engine_data_structures.game_check import Game -BorderType = FlagsEnum(Int32sl, +TileBorders = FlagsEnum(Int32sl, TOP=1, BOTTOM=2, LEFT=4, @@ -57,7 +57,7 @@ "bottom_left" / CVector2D, "top_right" / CVector2D, ), - "border_type" / BorderType, + "tile_borders" / TileBorders, "tile_type" / TileType, "icons" / make_vector( Struct(