\ No newline at end of file
diff --git a/rust/maprando-web/templates/generate/quality_of_life.html b/rust/maprando-web/templates/generate/quality_of_life.html
index 55ad03a9f..d9b5cc086 100644
--- a/rust/maprando-web/templates/generate/quality_of_life.html
+++ b/rust/maprando-web/templates/generate/quality_of_life.html
@@ -7,12 +7,35 @@
This option controls the apperance of the map tiles.
+
+
Enabled: Vanilla map tiles are updated to reflect the environment, this includes shading to show acid, water, heat, lava and locked doors as well as refill stations and map stations.
+
Disabled: The map resembles vanilla, environment shading and icons for refil stations will not be applied.
+
+
+
+
Individual tile types can be toggled on or off by clicking on the gear icon.
+
+
+
+
+
\ No newline at end of file
diff --git a/rust/maprando-web/templates/generate/quality_of_life.html b/rust/maprando-web/templates/generate/quality_of_life.html
index d9b5cc086..32ecf1284 100644
--- a/rust/maprando-web/templates/generate/quality_of_life.html
+++ b/rust/maprando-web/templates/generate/quality_of_life.html
@@ -7,7 +7,7 @@
\ No newline at end of file
diff --git a/rust/maprando-web/templates/seed/quality_of_life_details.html b/rust/maprando-web/templates/seed/quality_of_life_details.html
index 25b74c0c0..b2ccc4f98 100644
--- a/rust/maprando-web/templates/seed/quality_of_life_details.html
+++ b/rust/maprando-web/templates/seed/quality_of_life_details.html
@@ -1,3 +1,9 @@
+
Save frequently! Saves are fast, and saving at a different station from the last save will move
to the next slot before saving, so you can go back to an earlier save if you get stuck.
- {% endif %}
Be careful with one-ways: it's easy to get soft-locked. The logic usually doesn't require going down a one-way
for an item, only if there is a way back to the Ship without using the new item. It's often best to avoid one-ways
until you know there's a way back or have exhausted all other options.
@@ -51,7 +49,6 @@
Things to know
- {% if !ultra_low_qol %}
Special inputs
Press Select or X/Y in the pause map to cycle through maps of explored areas.
@@ -63,7 +60,6 @@
Special inputs
Set reserves to Manual and hold B + Up in the pause equipment screen to transfer energy to reserve tanks.
{% endif %}
- {% endif %}
Map info
{% if settings.map_layout != "Small" %}
@@ -90,7 +86,7 @@
Item info
Other info
- {% if !ultra_low_qol %}
+ {% if !ammo_refill_all %}
Missile Refill stations refill all ammo types: Missiles, Supers, and Power Bombs.
{% endif %}
{% if supers_double %}
diff --git a/rust/maprando/src/patch.rs b/rust/maprando/src/patch.rs
index ddbb01f47..09fdd084f 100644
--- a/rust/maprando/src/patch.rs
+++ b/rust/maprando/src/patch.rs
@@ -471,28 +471,21 @@ impl Patcher<'_> {
"wall_doors",
"self_check",
"door_irq_fix",
+ "extra_setup",
+ "vanilla_bugfixes", // from here to the end were moved from ultra_low_qol... these don't have a toggle but can be switched to one or moved into the other group toggles
+ "aim_anything", // i thought about having "ui fixes" toggle, group this with the menu fixes etc
+ "fix_kraid_vomit",
+ "fix_kraid_hud", // these 3 maybe camera fixes? or something else
+ "fix_kraid_door",
+ "boss_exit",
+ "load_plms_early",
+ "spin_lock",
+ "fix_transition_bad_tiles", // maybe this can be moved to be applied with camera fixes?
+ "fix_horiz_doors", // this too?
+ "fix_dust_torizo",
+ "fix_choot",
];
- if self.settings.other_settings.ultra_low_qol {
- patches.extend(["ultra_low_qol_vanilla_bugfixes"]);
- } else {
- patches.extend([
- "vanilla_bugfixes",
- "aim_anything",
- "fix_kraid_vomit",
- "fix_kraid_hud",
- "fix_kraid_door",
- "boss_exit",
- "extra_setup",
- "load_plms_early",
- "spin_lock",
- "fix_transition_bad_tiles",
- "fix_horiz_doors",
- "fix_dust_torizo",
- "fix_choot",
- ]);
- }
-
patches.push("new_game");
if self.settings.quality_of_life_settings.all_items_spawn {
@@ -671,9 +664,7 @@ impl Patcher<'_> {
patches.push("remove_bluesuit");
}
- if !self.settings.other_settings.enable_major_glitches
- && !self.settings.other_settings.ultra_low_qol
- {
+ if !self.settings.other_settings.enable_major_glitches {
patches.push("disable_major_glitches");
patches.push("oob_death");
}
@@ -693,7 +684,7 @@ impl Patcher<'_> {
match self.settings.quality_of_life_settings.fanfares {
Fanfares::Vanilla => {
- if !self.settings.other_settings.ultra_low_qol {
+ if self.settings.quality_of_life_settings.fast_saves {
// This is needed only if fast saves are enabled
// (which is currently always except with ultra-low QoL)
// It's important that it be applied after `fast_saves`` since it overrides the same hook point.
@@ -1106,7 +1097,7 @@ impl Patcher<'_> {
let mut extra_door_asm: HashMap> = HashMap::new();
extra_door_asm.insert(0x1A600, toilet_exit_asm.clone()); // Aqueduct toilet door down
extra_door_asm.insert(0x1A60C, toilet_exit_asm.clone()); // Aqueduct toilet door up
- if !self.settings.other_settings.ultra_low_qol {
+ if self.settings.quality_of_life_settings.camera_fixes { // nn note - is this becuase of camera fixes (guess) or something else... check this.
extra_door_asm.insert(0x191CE, boss_exit_asm.clone()); // Kraid left exit
extra_door_asm.insert(0x191DA, boss_exit_asm.clone()); // Kraid right exit
extra_door_asm.insert(0x1A96C, boss_exit_asm.clone()); // Draygon left exit
@@ -3640,7 +3631,7 @@ pub fn make_rom(
patcher.use_area_based_music()?;
}
patcher.setup_door_specific_fx()?;
- if !randomizer_settings.other_settings.ultra_low_qol {
+ if randomizer_settings.quality_of_life_settings.camera_fixes { //nn note - the cre wasn't applied in ultralow qol, is this also camera fixes or some other reason - check this too!
patcher.setup_reload_cre()?;
}
patcher.apply_title_screen_patches()?;
diff --git a/rust/maprando/src/patch/map_tiles.rs b/rust/maprando/src/patch/map_tiles.rs
index de96a53a3..47dc8bb61 100644
--- a/rust/maprando/src/patch/map_tiles.rs
+++ b/rust/maprando/src/patch/map_tiles.rs
@@ -4,7 +4,7 @@ use crate::{
customize::{CustomizeSettings, ItemDotChange},
randomize::{LockedDoor, Randomization},
settings::{
- DisableETankSetting, DoorLocksSize, EnhancedMapLevel, InitialMapRevealSettings,
+ DisableETankSetting, DoorLocksSize, EnhancedMapLevel, EnhancedMapOther, EnhancedMapWalls, InitialMapRevealSettings,
ItemMarkers, MapRevealLevel, MapStationReveal, Objective, RandomizerSettings,
},
};
@@ -290,7 +290,7 @@ fn draw_edge(
match edge {
MapTileEdge::Empty => {}
MapTileEdge::QolEmpty => {
- if settings.other_settings.ultra_low_qol {
+ if settings.quality_of_life_settings.enhanced_map_settings.walls == EnhancedMapWalls::Vanilla {
set_wall_pixel(tile, 0, 3);
set_wall_pixel(tile, 1, 3);
set_wall_pixel(tile, 2, 3);
@@ -304,7 +304,7 @@ fn draw_edge(
MapTileEdge::Passage => {
set_wall_pixel(tile, 0, 3);
set_wall_pixel(tile, 1, 3);
- if settings.other_settings.ultra_low_qol {
+ if settings.quality_of_life_settings.enhanced_map_settings.walls == EnhancedMapWalls::Vanilla {
set_wall_pixel(tile, 2, 3);
set_wall_pixel(tile, 3, 3);
set_wall_pixel(tile, 4, 3);
@@ -314,7 +314,7 @@ fn draw_edge(
set_wall_pixel(tile, 7, 3);
}
MapTileEdge::QolPassage => {
- if !settings.other_settings.ultra_low_qol {
+ if settings.quality_of_life_settings.enhanced_map_settings.walls == EnhancedMapWalls::White {
set_wall_pixel(tile, 0, 3);
set_wall_pixel(tile, 1, 3);
set_wall_pixel(tile, 6, 3);
@@ -351,7 +351,7 @@ fn draw_edge(
set_wall_pixel(tile, 7, 3);
}
MapTileEdge::Sand | MapTileEdge::QolSand => {
- if settings.other_settings.ultra_low_qol {
+ if settings.other_settings.ultra_low_qol { //nn note - what is this?
set_wall_pixel(tile, 0, 3);
set_wall_pixel(tile, 1, 3);
set_wall_pixel(tile, 2, 3);
@@ -690,7 +690,7 @@ pub fn render_tile(
);
}
MapTileInterior::EnergyRefill => {
- if settings.other_settings.ultra_low_qol {
+ if settings.quality_of_life_settings.enhanced_map_settings.refill_station == EnhancedMapOther::Vanilla {
data[3][3] = item_color;
data[3][4] = item_color;
data[4][3] = item_color;
@@ -749,7 +749,7 @@ pub fn render_tile(
}
}
MapTileInterior::AmmoRefill => {
- if settings.other_settings.ultra_low_qol {
+ if settings.quality_of_life_settings.enhanced_map_settings.refill_station == EnhancedMapOther::Vanilla {
data[3][3] = item_color;
data[3][4] = item_color;
data[4][3] = item_color;
@@ -806,7 +806,7 @@ pub fn render_tile(
}
}
MapTileInterior::DoubleRefill | MapTileInterior::Ship => {
- if settings.other_settings.ultra_low_qol {
+ if settings.quality_of_life_settings.enhanced_map_settings.refill_station == EnhancedMapOther::Vanilla {
data[3][3] = item_color;
data[3][4] = item_color;
data[4][3] = item_color;
@@ -905,7 +905,7 @@ pub fn render_tile(
);
}
MapTileInterior::MapStation => {
- if settings.other_settings.ultra_low_qol {
+ if settings.quality_of_life_settings.enhanced_map_settings.map_station == EnhancedMapOther::Vanilla {
data[3][3] = item_color;
data[3][4] = item_color;
data[4][3] = item_color;
@@ -962,7 +962,7 @@ pub fn render_tile(
}
let apply_heat = |d: [[u8; 8]; 8]| {
- if tile.heated && !settings.other_settings.ultra_low_qol {
+ if tile.heated && settings.quality_of_life_settings.enhanced_map_settings.heat == EnhancedMapLevel::Visible {
d.map(|row| row.map(|c| if c == 1 { 2 } else { c }))
} else {
d
@@ -1235,8 +1235,8 @@ pub fn render_tile(
}
if tile.special_type.is_some()
- || (!settings.other_settings.ultra_low_qol
- && [
+ || //(!settings.other_settings.ultra_low_qol &&
+ [
MapTileInterior::AmmoRefill,
MapTileInterior::EnergyRefill,
MapTileInterior::DoubleRefill,
@@ -1245,7 +1245,7 @@ pub fn render_tile(
MapTileInterior::MapStation,
MapTileInterior::Objective,
]
- .contains(&tile.interior))
+ .contains(&tile.interior)//)
{
// Skip drawing door & wall edges in special tiles
} else {
@@ -2453,14 +2453,7 @@ impl<'a> MapPatcher<'a> {
if [MapTileInterior::HiddenItem, MapTileInterior::DoubleItem].contains(&tile.interior) {
tile.interior = MapTileInterior::Item;
}
- // the ultralow qol setting can be removed when its finally removed from the frontend.
- // there is also the potential to have "non disappearing dots option" by using the ultralow QOL
- // setting when using 2/3/4 tier items if its desired. This would replace a Major / Hollow / X with
- // a non faded dot.
- if self.settings.other_settings.ultra_low_qol {
- tile.interior = MapTileInterior::Item;
- self.set_room_tile(room_id, x, y, tile.clone());
- } else {
+
tile.interior = get_item_interior(item, self.settings);
self.dynamic_tile_data[area].push((item_idx, room_id, tile.clone()));
match self.customize_settings.item_dot_change {
@@ -2480,7 +2473,7 @@ impl<'a> MapPatcher<'a> {
}
}
}
- }
+
Ok(())
}
@@ -2976,8 +2969,10 @@ impl<'a> MapPatcher<'a> {
}
self.apply_room_tiles()?;
self.indicate_objective_tiles()?;
- if !self.settings.other_settings.ultra_low_qol {
+ if self.settings.quality_of_life_settings.enhanced_map_settings.gray_doors == EnhancedMapLevel::Visible {
self.indicate_gray_doors()?;
+ }
+ if self.settings.quality_of_life_settings.enhanced_map_settings.locked_doors == EnhancedMapLevel::Visible {
self.indicate_locked_doors()?;
}
self.add_cross_area_arrows()?;
diff --git a/rust/maprando/src/settings.rs b/rust/maprando/src/settings.rs
index fdc65b8a7..21aef05a0 100644
--- a/rust/maprando/src/settings.rs
+++ b/rust/maprando/src/settings.rs
@@ -448,7 +448,6 @@ pub struct OtherSettings {
pub map_station_reveal: MapStationReveal,
pub energy_free_shinesparks: bool,
pub all_enemies_respawn: bool,
- pub ultra_low_qol: bool,
pub disable_spikesuit: bool,
pub disable_bluesuit: bool,
pub enable_major_glitches: bool,
diff --git a/rust/maprando/src/traverse.rs b/rust/maprando/src/traverse.rs
index ff9794099..902727b93 100644
--- a/rust/maprando/src/traverse.rs
+++ b/rust/maprando/src/traverse.rs
@@ -1821,8 +1821,8 @@ fn apply_requirement_simple(
Requirement::AcidChozoWithoutSpaceJump => {
cx.settings.quality_of_life_settings.acid_chozo.into()
}
- Requirement::KraidCameraFix => (!cx.settings.other_settings.ultra_low_qol).into(),
- Requirement::CrocomireCameraFix => (!cx.settings.other_settings.ultra_low_qol).into(),
+ Requirement::KraidCameraFix => (cx.settings.quality_of_life_settings.camera_fixes).into(),
+ Requirement::CrocomireCameraFix => (cx.settings.quality_of_life_settings.camera_fixes).into(),
Requirement::RegularEnergyDrain(count) => {
let count = count.resolve(&cx.difficulty.numerics);
let energy_remaining = local.energy_remaining(&cx.global.inventory, false);
diff --git a/rust/maprando/tests/logic_scenarios.rs b/rust/maprando/tests/logic_scenarios.rs
index 52bf10cba..4e8d7003c 100644
--- a/rust/maprando/tests/logic_scenarios.rs
+++ b/rust/maprando/tests/logic_scenarios.rs
@@ -330,7 +330,6 @@ fn get_settings(scenario: &Scenario) -> Result {
disable_bluesuit: false,
disable_spikesuit: false,
enable_major_glitches: false,
- ultra_low_qol: false,
race_mode: false,
random_seed: None,
},
From 6a1900cfb51d733b806f65e223f9846615f4e1a3 Mon Sep 17 00:00:00 2001
From: nn <53490794+nn357@users.noreply.github.com>
Date: Tue, 14 Apr 2026 19:48:15 +0900
Subject: [PATCH 07/41] formatting
---
rust/maprando/src/patch.rs | 18 ++--
rust/maprando/src/patch/map_tiles.rs | 119 +++++++++++++++++++--------
2 files changed, 96 insertions(+), 41 deletions(-)
diff --git a/rust/maprando/src/patch.rs b/rust/maprando/src/patch.rs
index 09fdd084f..13c1f1d69 100644
--- a/rust/maprando/src/patch.rs
+++ b/rust/maprando/src/patch.rs
@@ -473,15 +473,15 @@ impl Patcher<'_> {
"door_irq_fix",
"extra_setup",
"vanilla_bugfixes", // from here to the end were moved from ultra_low_qol... these don't have a toggle but can be switched to one or moved into the other group toggles
- "aim_anything", // i thought about having "ui fixes" toggle, group this with the menu fixes etc
- "fix_kraid_vomit",
- "fix_kraid_hud", // these 3 maybe camera fixes? or something else
+ "aim_anything", // i thought about having "ui fixes" toggle, group this with the menu fixes etc
+ "fix_kraid_vomit",
+ "fix_kraid_hud", // these 3 maybe camera fixes? or something else
"fix_kraid_door",
"boss_exit",
- "load_plms_early",
- "spin_lock",
+ "load_plms_early",
+ "spin_lock",
"fix_transition_bad_tiles", // maybe this can be moved to be applied with camera fixes?
- "fix_horiz_doors", // this too?
+ "fix_horiz_doors", // this too?
"fix_dust_torizo",
"fix_choot",
];
@@ -1097,7 +1097,8 @@ impl Patcher<'_> {
let mut extra_door_asm: HashMap> = HashMap::new();
extra_door_asm.insert(0x1A600, toilet_exit_asm.clone()); // Aqueduct toilet door down
extra_door_asm.insert(0x1A60C, toilet_exit_asm.clone()); // Aqueduct toilet door up
- if self.settings.quality_of_life_settings.camera_fixes { // nn note - is this becuase of camera fixes (guess) or something else... check this.
+ if self.settings.quality_of_life_settings.camera_fixes {
+ // nn note - is this becuase of camera fixes (guess) or something else... check this.
extra_door_asm.insert(0x191CE, boss_exit_asm.clone()); // Kraid left exit
extra_door_asm.insert(0x191DA, boss_exit_asm.clone()); // Kraid right exit
extra_door_asm.insert(0x1A96C, boss_exit_asm.clone()); // Draygon left exit
@@ -3631,7 +3632,8 @@ pub fn make_rom(
patcher.use_area_based_music()?;
}
patcher.setup_door_specific_fx()?;
- if randomizer_settings.quality_of_life_settings.camera_fixes { //nn note - the cre wasn't applied in ultralow qol, is this also camera fixes or some other reason - check this too!
+ if randomizer_settings.quality_of_life_settings.camera_fixes {
+ //nn note - the cre wasn't applied in ultralow qol, is this also camera fixes or some other reason - check this too!
patcher.setup_reload_cre()?;
}
patcher.apply_title_screen_patches()?;
diff --git a/rust/maprando/src/patch/map_tiles.rs b/rust/maprando/src/patch/map_tiles.rs
index 47dc8bb61..61e0a2307 100644
--- a/rust/maprando/src/patch/map_tiles.rs
+++ b/rust/maprando/src/patch/map_tiles.rs
@@ -4,8 +4,9 @@ use crate::{
customize::{CustomizeSettings, ItemDotChange},
randomize::{LockedDoor, Randomization},
settings::{
- DisableETankSetting, DoorLocksSize, EnhancedMapLevel, EnhancedMapOther, EnhancedMapWalls, InitialMapRevealSettings,
- ItemMarkers, MapRevealLevel, MapStationReveal, Objective, RandomizerSettings,
+ DisableETankSetting, DoorLocksSize, EnhancedMapLevel, EnhancedMapOther, EnhancedMapWalls,
+ InitialMapRevealSettings, ItemMarkers, MapRevealLevel, MapStationReveal, Objective,
+ RandomizerSettings,
},
};
use maprando_game::{
@@ -290,7 +291,12 @@ fn draw_edge(
match edge {
MapTileEdge::Empty => {}
MapTileEdge::QolEmpty => {
- if settings.quality_of_life_settings.enhanced_map_settings.walls == EnhancedMapWalls::Vanilla {
+ if settings
+ .quality_of_life_settings
+ .enhanced_map_settings
+ .walls
+ == EnhancedMapWalls::Vanilla
+ {
set_wall_pixel(tile, 0, 3);
set_wall_pixel(tile, 1, 3);
set_wall_pixel(tile, 2, 3);
@@ -304,7 +310,12 @@ fn draw_edge(
MapTileEdge::Passage => {
set_wall_pixel(tile, 0, 3);
set_wall_pixel(tile, 1, 3);
- if settings.quality_of_life_settings.enhanced_map_settings.walls == EnhancedMapWalls::Vanilla {
+ if settings
+ .quality_of_life_settings
+ .enhanced_map_settings
+ .walls
+ == EnhancedMapWalls::Vanilla
+ {
set_wall_pixel(tile, 2, 3);
set_wall_pixel(tile, 3, 3);
set_wall_pixel(tile, 4, 3);
@@ -314,7 +325,12 @@ fn draw_edge(
set_wall_pixel(tile, 7, 3);
}
MapTileEdge::QolPassage => {
- if settings.quality_of_life_settings.enhanced_map_settings.walls == EnhancedMapWalls::White {
+ if settings
+ .quality_of_life_settings
+ .enhanced_map_settings
+ .walls
+ == EnhancedMapWalls::White
+ {
set_wall_pixel(tile, 0, 3);
set_wall_pixel(tile, 1, 3);
set_wall_pixel(tile, 6, 3);
@@ -351,7 +367,8 @@ fn draw_edge(
set_wall_pixel(tile, 7, 3);
}
MapTileEdge::Sand | MapTileEdge::QolSand => {
- if settings.other_settings.ultra_low_qol { //nn note - what is this?
+ if settings.other_settings.ultra_low_qol {
+ //nn note - what is this?
set_wall_pixel(tile, 0, 3);
set_wall_pixel(tile, 1, 3);
set_wall_pixel(tile, 2, 3);
@@ -690,7 +707,12 @@ pub fn render_tile(
);
}
MapTileInterior::EnergyRefill => {
- if settings.quality_of_life_settings.enhanced_map_settings.refill_station == EnhancedMapOther::Vanilla {
+ if settings
+ .quality_of_life_settings
+ .enhanced_map_settings
+ .refill_station
+ == EnhancedMapOther::Vanilla
+ {
data[3][3] = item_color;
data[3][4] = item_color;
data[4][3] = item_color;
@@ -749,7 +771,12 @@ pub fn render_tile(
}
}
MapTileInterior::AmmoRefill => {
- if settings.quality_of_life_settings.enhanced_map_settings.refill_station == EnhancedMapOther::Vanilla {
+ if settings
+ .quality_of_life_settings
+ .enhanced_map_settings
+ .refill_station
+ == EnhancedMapOther::Vanilla
+ {
data[3][3] = item_color;
data[3][4] = item_color;
data[4][3] = item_color;
@@ -806,7 +833,12 @@ pub fn render_tile(
}
}
MapTileInterior::DoubleRefill | MapTileInterior::Ship => {
- if settings.quality_of_life_settings.enhanced_map_settings.refill_station == EnhancedMapOther::Vanilla {
+ if settings
+ .quality_of_life_settings
+ .enhanced_map_settings
+ .refill_station
+ == EnhancedMapOther::Vanilla
+ {
data[3][3] = item_color;
data[3][4] = item_color;
data[4][3] = item_color;
@@ -905,7 +937,12 @@ pub fn render_tile(
);
}
MapTileInterior::MapStation => {
- if settings.quality_of_life_settings.enhanced_map_settings.map_station == EnhancedMapOther::Vanilla {
+ if settings
+ .quality_of_life_settings
+ .enhanced_map_settings
+ .map_station
+ == EnhancedMapOther::Vanilla
+ {
data[3][3] = item_color;
data[3][4] = item_color;
data[4][3] = item_color;
@@ -962,7 +999,10 @@ pub fn render_tile(
}
let apply_heat = |d: [[u8; 8]; 8]| {
- if tile.heated && settings.quality_of_life_settings.enhanced_map_settings.heat == EnhancedMapLevel::Visible {
+ if tile.heated
+ && settings.quality_of_life_settings.enhanced_map_settings.heat
+ == EnhancedMapLevel::Visible
+ {
d.map(|row| row.map(|c| if c == 1 { 2 } else { c }))
} else {
d
@@ -1245,7 +1285,8 @@ pub fn render_tile(
MapTileInterior::MapStation,
MapTileInterior::Objective,
]
- .contains(&tile.interior)//)
+ .contains(&tile.interior)
+ //)
{
// Skip drawing door & wall edges in special tiles
} else {
@@ -2453,27 +2494,27 @@ impl<'a> MapPatcher<'a> {
if [MapTileInterior::HiddenItem, MapTileInterior::DoubleItem].contains(&tile.interior) {
tile.interior = MapTileInterior::Item;
}
-
- tile.interior = get_item_interior(item, self.settings);
- self.dynamic_tile_data[area].push((item_idx, room_id, tile.clone()));
- match self.customize_settings.item_dot_change {
- ItemDotChange::Fade => {
- tile.interior = apply_item_interior(orig_tile.clone(), item, self.settings);
- tile.faded = true;
- self.set_room_tile(room_id, x, y, tile.clone());
- }
- ItemDotChange::Disappear => {
- tile.interior = MapTileInterior::Empty;
- self.set_room_tile(room_id, x, y, tile.clone());
- }
- ItemDotChange::Stay => {
- tile.interior = apply_item_interior(orig_tile.clone(), item, self.settings);
- tile.faded = false;
- self.set_room_tile(room_id, x, y, tile.clone());
- }
+
+ tile.interior = get_item_interior(item, self.settings);
+ self.dynamic_tile_data[area].push((item_idx, room_id, tile.clone()));
+ match self.customize_settings.item_dot_change {
+ ItemDotChange::Fade => {
+ tile.interior = apply_item_interior(orig_tile.clone(), item, self.settings);
+ tile.faded = true;
+ self.set_room_tile(room_id, x, y, tile.clone());
+ }
+ ItemDotChange::Disappear => {
+ tile.interior = MapTileInterior::Empty;
+ self.set_room_tile(room_id, x, y, tile.clone());
+ }
+ ItemDotChange::Stay => {
+ tile.interior = apply_item_interior(orig_tile.clone(), item, self.settings);
+ tile.faded = false;
+ self.set_room_tile(room_id, x, y, tile.clone());
}
}
-
+ }
+
Ok(())
}
@@ -2969,10 +3010,22 @@ impl<'a> MapPatcher<'a> {
}
self.apply_room_tiles()?;
self.indicate_objective_tiles()?;
- if self.settings.quality_of_life_settings.enhanced_map_settings.gray_doors == EnhancedMapLevel::Visible {
+ if self
+ .settings
+ .quality_of_life_settings
+ .enhanced_map_settings
+ .gray_doors
+ == EnhancedMapLevel::Visible
+ {
self.indicate_gray_doors()?;
}
- if self.settings.quality_of_life_settings.enhanced_map_settings.locked_doors == EnhancedMapLevel::Visible {
+ if self
+ .settings
+ .quality_of_life_settings
+ .enhanced_map_settings
+ .locked_doors
+ == EnhancedMapLevel::Visible
+ {
self.indicate_locked_doors()?;
}
self.add_cross_area_arrows()?;
From 059d21b1dfc60ebc501c9a5ca5609eb2ce0c7caa Mon Sep 17 00:00:00 2001
From: nn <53490794+nn357@users.noreply.github.com>
Date: Tue, 14 Apr 2026 19:57:31 +0900
Subject: [PATCH 08/41] more formatting
---
rust/maprando-web/src/seed.rs | 3 +-
.../templates/generate/game_variations.html | 12 ------
.../help/variations/ultra_low_qol.html | 43 -------------------
.../templates/generate/scripts.html | 17 --------
rust/maprando/src/settings.rs | 1 -
rust/maprando/tests/logic_scenarios.rs | 5 ++-
6 files changed, 5 insertions(+), 76 deletions(-)
delete mode 100644 rust/maprando-web/templates/generate/help/variations/ultra_low_qol.html
diff --git a/rust/maprando-web/src/seed.rs b/rust/maprando-web/src/seed.rs
index d2dc9ce34..6619f4906 100644
--- a/rust/maprando-web/src/seed.rs
+++ b/rust/maprando-web/src/seed.rs
@@ -277,7 +277,6 @@ async fn customize_seed(
Some(serde_json::from_slice(&randomization_bytes).unwrap())
};
-
let rom_digest = crypto_hash::hex_digest(crypto_hash::Algorithm::SHA256, &rom.data);
info!("Rom digest: {rom_digest}");
if rom_digest != "12b77c4bc9c1832cee8881244659065ee1d84c70c3d29e6eaf92e6798cc2ca72" {
@@ -286,7 +285,7 @@ async fn customize_seed(
let customize_settings = CustomizeSettings {
samus_sprite: Some(req.samus_sprite.0.clone()),
-
+
etank_color: Some((
u8::from_str_radix(&req.etank_color.0[0..2], 16).unwrap() / 8,
u8::from_str_radix(&req.etank_color.0[2..4], 16).unwrap() / 8,
diff --git a/rust/maprando-web/templates/generate/game_variations.html b/rust/maprando-web/templates/generate/game_variations.html
index 0cdccd8e6..0af75efea 100644
--- a/rust/maprando-web/templates/generate/game_variations.html
+++ b/rust/maprando-web/templates/generate/game_variations.html
@@ -133,18 +133,6 @@
-
-
- {% include "help/variations/ultra_low_qol.html" %}
-
-
Refill stations giving Supers and Power Bombs in addition to Missiles
-
The auto-save before the escape sequence
-
Patching out major glitches: Spacetime beam, GT code, and out-of-bounds (death trigger)
-
Fast decompression (for quicker room loading)
-
Camera fix when entering Kraid's, Crocomire's, or Spore Spawn's room
-
Graphical fixes when exiting boss rooms
-
Graphical fix to Bomb Torizo statue crumble animation
-
Fixes to inconvenient vanilla bugs: losing blue speed when taking heat damage, game crashing when leaving a room with too many sprites on screen
-
-
-
This setting also automatically disables all other quality-of-life options. Conversely, enabling any
- quality-of-life option causes this setting to be automatically disabled.
-
This setting is not recommended for most players, but it is an option for those wanting the game to feel and
- behave as vanilla as possible. If enabled, expect to encounter a significant amount of graphical glitches.
-
Note: If this setting is enabled, the logic will take into account that refill stations no longer give
- Supers and Power Bombs.
This option controls the apperance of the map tiles.
+
This option controls the appearance of the map tiles.
-
Enabled: Vanilla map tiles are updated to reflect the environment, this includes shading to show acid, water, heat, lava and locked doors as well as refill stations and map stations.
-
Disabled: The map resembles vanilla, environment shading and icons for refil stations will not be applied.
+
Enabled: Vanilla map tiles are updated to reflect the environment, including shading to show acid, water, heat, lava, markings to show doors, as well as special tiles for refill stations and map stations.
+
Disabled: The map is styled like the vanilla game: no environment shading nor special tiles are applied.
-
Individual tile types can be toggled on or off by clicking on the gear icon.
+
Individual types of map markings can be toggled on or off by clicking on the gear icon.
This option controls the appearance of the map tiles.
-
Enabled: Vanilla map tiles are updated to reflect the environment, including shading to show acid, water, heat, lava, markings to show doors, as well as special tiles for refill stations and map stations.
-
Disabled: The map is styled like the vanilla game: no environment shading nor special tiles are applied.
+
No: The map is styled like the vanilla game: no environment shading nor special tiles are applied.
+
Yes: Vanilla map tiles are updated to reflect the environment, including shading to show acid, water, heat, lava, markings to show doors, as well as special tiles for refill stations and map stations.