Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions src/open_dread_rando/misc_patches/sprite_patches.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from construct import Container, ListContainer
from construct import Container
from mercury_engine_data_structures.common_types import Vec2
from mercury_engine_data_structures.formats import Bmsss

from open_dread_rando.patcher_editor import PatcherEditor
Expand All @@ -15,8 +16,8 @@ def patch_sprites(editor: PatcherEditor):
cont = Container(
sID="DISCONNECT",
oTexUVs=Container(
v2Offset=ListContainer([446 / 512, 6 / 512]),
v2Scale=ListContainer([59 / 512, 59 / 512])
v2Offset=Vec2(446 / 512, 6 / 512),
v2Scale=Vec2(59 / 512, 59 / 512),
)
)
hud_bmsss.raw.Root.mapSpriteSheets.HUD_TILESET.vecItems.append(cont)
36 changes: 19 additions & 17 deletions src/open_dread_rando/pickups/map_icons.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import dataclasses
from typing import TYPE_CHECKING

from mercury_engine_data_structures.common_types import Vec2
from mercury_engine_data_structures.formats import Bmmdef

from open_dread_rando.constants import ALL_SCENARIOS
Expand All @@ -18,13 +19,14 @@ class MapIcon:
coords: tuple[int, int]
label: str
disabled_id: str = 'ItemAdquired'
offset: tuple[int, int] = (0, 0)
offset: Vec2 | None = None
auto_scale: bool = True
is_global: bool = True
full_zoom_scale: bool = True
string_key: str = dataclasses.field(init=False)

def __post_init__(self):
self.offset = self.offset if self.offset else Vec2(0.0, 0.0)
object.__setattr__(self, "string_key", f"MAP_ICON_{self.icon_id}")

def add_to_defs(self, bmmdef: Bmmdef, editor: PatcherEditor):
Expand Down Expand Up @@ -254,127 +256,127 @@ def add_to_defs(self, bmmdef: Bmmdef, editor: PatcherEditor):
coords=(1,3),
disabled_id="BlockageDisabledL",
label="ICE MISSILE COVER",
offset=(-0.800000011920929, -0.4000000059604645),
offset=Vec2(-0.800000011920929, -0.4000000059604645),
auto_scale=False
),
"BlockageIceR": MapIcon(
icon_id="BlockageIceR",
coords=(1,3),
disabled_id="BlockageDisabledR",
label="ICE MISSILE COVER",
offset=(0.800000011920929, -0.4000000059604645),
offset=Vec2(0.800000011920929, -0.4000000059604645),
auto_scale=False
),
"BlockageDiffusionL": MapIcon(
icon_id="BlockageDiffusionL",
coords=(3,3),
disabled_id="BlockageDisabledL",
label="DIFFUSION BEAM COVER",
offset=(-0.800000011920929, -0.4000000059604645),
offset=Vec2(-0.800000011920929, -0.4000000059604645),
auto_scale=False
),
"BlockageDiffusionR": MapIcon(
icon_id="BlockageDiffusionR",
coords=(3,3),
disabled_id="BlockageDisabledR",
label="DIFFUSION BEAM COVER",
offset=(0.800000011920929, -0.4000000059604645),
offset=Vec2(0.800000011920929, -0.4000000059604645),
auto_scale=False
),
"BlockageStormL": MapIcon(
icon_id="BlockageStormL",
coords=(5,3),
disabled_id="BlockageDisabledL",
label="STORM MISSILE COVER",
offset=(-0.800000011920929, -0.4000000059604645),
offset=Vec2(-0.800000011920929, -0.4000000059604645),
auto_scale=False
),
"BlockageStormR": MapIcon(
icon_id="BlockageStormR",
coords=(5,3),
disabled_id="BlockageDisabledR",
label="STORM MISSILE COVER",
offset=(0.800000011920929, -0.4000000059604645),
offset=Vec2(0.800000011920929, -0.4000000059604645),
auto_scale=False
),
"BlockageScrewL": MapIcon(
icon_id="BlockageScrewL",
coords=(5,1),
disabled_id="BlockageDisabledL",
label="SCREW ATTACK COVER",
offset=(-0.800000011920929, -0.4000000059604645),
offset=Vec2(-0.800000011920929, -0.4000000059604645),
auto_scale=False
),
"BlockageScrewR": MapIcon(
icon_id="BlockageScrewR",
coords=(5,1),
disabled_id="BlockageDisabledR",
label="SCREW ATTACK COVER",
offset=(0.800000011920929, -0.4000000059604645),
offset=Vec2(0.800000011920929, -0.4000000059604645),
auto_scale=False
),
"BlockageBombL": MapIcon(
icon_id="BlockageBombL",
coords=(7,3),
disabled_id="BlockageDisabledL",
label="BOMB COVER",
offset=(-0.800000011920929, -0.4000000059604645),
offset=Vec2(-0.800000011920929, -0.4000000059604645),
auto_scale=False
),
"BlockageBombR": MapIcon(
icon_id="BlockageBombR",
coords=(7,3),
disabled_id="BlockageDisabledR",
label="BOMB COVER",
offset=(0.800000011920929, -0.4000000059604645),
offset=Vec2(0.800000011920929, -0.4000000059604645),
auto_scale=False
),
"BlockageCrossBombL": MapIcon(
icon_id="BlockageCrossBombL",
coords=(9,3),
disabled_id="BlockageDisabledL",
label="CROSS BOMB COVER",
offset=(-0.800000011920929, -0.4000000059604645),
offset=Vec2(-0.800000011920929, -0.4000000059604645),
auto_scale=False
),
"BlockageCrossBombR": MapIcon(
icon_id="BlockageCrossBombR",
coords=(9,3),
disabled_id="BlockageDisabledR",
label="CROSS BOMB COVER",
offset=(0.800000011920929, -0.4000000059604645),
offset=Vec2(0.800000011920929, -0.4000000059604645),
auto_scale=False
),
"BlockagePowerBombL": MapIcon(
icon_id="BlockagePowerBombL",
coords=(11,3),
disabled_id="BlockageDisabledL",
label="POWER BOMB COVER",
offset=(-0.800000011920929, -0.4000000059604645),
offset=Vec2(-0.800000011920929, -0.4000000059604645),
auto_scale=False
),
"BlockagePowerBombR": MapIcon(
icon_id="BlockagePowerBombR",
coords=(11,3),
disabled_id="BlockageDisabledR",
label="POWER BOMB COVER",
offset=(0.800000011920929, -0.4000000059604645),
offset=Vec2(0.800000011920929, -0.4000000059604645),
auto_scale=False
),
"BlockageClosedL": MapIcon(
icon_id="BlockageClosedL",
coords=(5,1),
disabled_id="BlockageDisabledL",
label="ACCESS CLOSED",
offset=(-0.800000011920929, -0.4000000059604645),
offset=Vec2(-0.800000011920929, -0.4000000059604645),
auto_scale=False
),
"BlockageClosedR": MapIcon(
icon_id="BlockageClosedR",
coords=(5,1),
disabled_id="BlockageDisabledR",
label="ACCESS CLOSED",
offset=(0.800000011920929, -0.4000000059604645),
offset=Vec2(0.800000011920929, -0.4000000059604645),
auto_scale=False
),
}
Expand Down
7 changes: 4 additions & 3 deletions src/open_dread_rando/pickups/pickup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from enum import Enum

from construct import Container
from mercury_engine_data_structures.common_types import Vec3
from mercury_engine_data_structures.formats import Bmmap, Bmsad

from open_dread_rando.files import templates_path
Expand Down Expand Up @@ -151,9 +152,9 @@ def patch_model(self, editor: PatcherEditor, model_names: list[str], actor: Cont
new_template.components = components

if selected_model_data.transform is not None:
model_updater.fields.vInitScale = list(selected_model_data.transform.scale)
model_updater.fields.vInitPosWorldOffset = list(selected_model_data.transform.position)
model_updater.fields.vInitAngWorldOffset = list(selected_model_data.transform.angle)
model_updater.fields.vInitScale = Vec3(*selected_model_data.transform.scale)
model_updater.fields.vInitPosWorldOffset = Vec3(*selected_model_data.transform.position)
model_updater.fields.vInitAngWorldOffset = Vec3(*selected_model_data.transform.angle)

# Animation/BMSAS
action_set_refs = list(new_template.action_set_refs)
Expand Down
Loading