Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
54dac2d
Added Flags to Spoiler map.
change1331 Oct 26, 2024
ff15f41
Merge branch 'main' of https://github.com/change1331/MapRandomizer in…
change1331 Oct 26, 2024
2884094
flags are now just collectable instead of on route.
change1331 Oct 30, 2024
166e2df
merge main
change1331 Oct 30, 2024
94c52ac
Merge branch 'main' of https://github.com/blkerby/MapRandomizer into …
change1331 Oct 30, 2024
8e829a2
merge main
change1331 Oct 30, 2024
39b3795
Merge branch 'main' of https://github.com/blkerby/MapRandomizer
change1331 Nov 4, 2024
7e8d7c2
merge main
change1331 Nov 4, 2024
15b602e
Merge branch 'main' of https://github.com/change1331/MapRandomizer in…
change1331 Nov 4, 2024
0f31dd3
Starting position gets offset from spoiler log.
change1331 Nov 10, 2024
24382e4
fix help icon
change1331 Nov 10, 2024
19da72d
Merge branch 'main' of https://github.com/blkerby/MapRandomizer into …
change1331 Nov 10, 2024
9aff1ab
fixed x ->y, rust formatting
change1331 Nov 10, 2024
3fb697f
Generic flags on map. Detailed flags in sidebar. Start spot works w…
change1331 Nov 12, 2024
a6567a4
Fix samus+ship. Fix up icons.
change1331 Nov 12, 2024
465c48a
Fixed start location.
change1331 Nov 12, 2024
5f23bfe
Removed hub highlight. Start location overhaul. No selections except…
change1331 Nov 13, 2024
fcbb389
Altered start location. Help message position
change1331 Nov 13, 2024
de91b48
Merge remote-tracking branch 'upstream/main' into SpoilerFlags
change1331 Nov 13, 2024
583fc9c
Add show once to help message
change1331 Nov 13, 2024
eae6fbc
fixed bug with escape and clicking start
change1331 Nov 13, 2024
4e3ef5d
Objective check removes green circle. Fix relevant flag links in side…
change1331 Nov 14, 2024
5a54f5c
Update visualizer/index.html
change1331 Nov 14, 2024
239fc8f
Remove ship, start from flags. Objectives not highlighted green. Su…
change1331 Nov 14, 2024
1588b22
Merge branch 'SpoilerFlags' of https://github.com/change1331/MapRando…
change1331 Nov 14, 2024
07230f7
Hub route now gives details. Hub popup no new line
change1331 Nov 14, 2024
9431776
Settings flattened to start/ship/items/bosses/minibosses/objectives/m…
change1331 Nov 21, 2024
ebb6063
Merge https://github.com/blkerby/MapRandomizer into SpoilerFlags
change1331 Nov 22, 2024
76c4a8d
Fix acid position, misc label to flags no change to backend. Objecti…
change1331 Nov 22, 2024
5c1f75a
Red Objectives, Ship is smaller. Fix objectives on start.
change1331 Nov 23, 2024
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
38 changes: 34 additions & 4 deletions rust/maprando/src/randomize.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3954,15 +3954,29 @@ impl<'r> Randomizer<'r> {
&self.settings,
&self.difficulty_tiers[0],
)?;

let spoiler_objectives: Vec<String> = self
.objectives
.iter()
.map(|x| x.get_flag_name().to_owned())
.collect();

let spoiler_log = SpoilerLog {
item_priority: state
.item_precedence
.iter()
.map(|x| format!("{:?}", x))
.collect(),
summary: spoiler_summaries,
objectives: spoiler_objectives,
hub_location_name: state.hub_location.name.clone(),
start_location_name: state.start_location.name.clone(),
start_location: SpoilerStartLocation {
name: state.start_location.name.clone(),
room_id: state.start_location.room_id,
node_id: state.start_location.node_id,
x: state.start_location.x,
y: state.start_location.y,
},
hub_obtain_route: state.hub_obtain_route.clone(),
hub_return_route: state.hub_return_route.clone(),
escape: spoiler_escape,
Expand Down Expand Up @@ -4404,11 +4418,17 @@ impl<'r> Randomizer<'r> {
]
.into_iter()
.collect();

let spoiler_log = SpoilerLog {
item_priority: vec![],
summary: vec![],
start_location_name: String::new(),
objectives: vec![],
start_location: SpoilerStartLocation {
room_id: StartLocation::default().room_id,
name: StartLocation::default().name,
node_id: StartLocation::default().node_id,
x: StartLocation::default().x,
y: StartLocation::default().y,
},
hub_location_name: String::new(),
hub_obtain_route: vec![],
hub_return_route: vec![],
Expand Down Expand Up @@ -4672,6 +4692,15 @@ pub struct SpoilerLocation {
pub coords: (usize, usize),
}

#[derive(Serialize, Deserialize)]
pub struct SpoilerStartLocation {
pub name: String,
pub room_id: usize,
pub node_id: usize,
pub x: f32,
pub y: f32,
}

#[derive(Serialize, Deserialize)]
pub struct SpoilerStartState {
max_energy: Capacity,
Expand Down Expand Up @@ -4763,8 +4792,9 @@ pub struct SpoilerSummary {
pub struct SpoilerLog {
pub item_priority: Vec<String>,
pub summary: Vec<SpoilerSummary>,
pub objectives: Vec<String>,
pub escape: SpoilerEscape,
pub start_location_name: String,
pub start_location: SpoilerStartLocation,
pub hub_location_name: String,
pub hub_obtain_route: Vec<SpoilerRouteEntry>,
pub hub_return_route: Vec<SpoilerRouteEntry>,
Expand Down
Binary file added visualizer/bosses.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/bossesobj.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
186 changes: 186 additions & 0 deletions visualizer/consts.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
const offsets = {
"Morph Ball Room: Left Item": [2, 2],
"Morph Ball Room: Right Item": [4, 2],
"Cathedral: Hidden Item": [2, 1],
"The Precious Room: Top Right Hidden Item": [1, 0],
"Mama Turtle Room: Hidden Right Item": [2, 1],
"Mama Turtle Room: Top Item": [1, 0],
"Brinstar Reserve Tank Room: Middle Visible Item": [0.75, 0],
"Brinstar Reserve Tank Room: Right Hidden Item": [1.25, 0],
"Brinstar Reserve Tank Room: Chozo Item": [0, 0],
"Lower Norfair Fireflea Room: Firefleas Item": [2, 5],
"Main Street: Morph Tunnel Item": [1, 2],
"Main Street: Speed Blocked Item": [0, 3],
"Gauntlet Energy Tank Room: Item": [5, 0],
"Wrecked Ship Main Shaft: Item": [0, 5],
"Pseudo Plasma Spark Room: Hidden Item": [2, 2],
"Assembly Line: Item": [2, 0],
"Warehouse Kihunter Room: Hidden Item": [2, 0],
"Billy Mays Room: Pedestal Item": [0.25, 0],
"Billy Mays Room: Hidden Item": [-0.25, 0],
"Norfair Reserve Tank Room: Hidden Platform Item": [0.5, 0],
"Green Hill Zone: Item (Through the Pipe)": [3, 1],
"Crocomire's Room: Item": [7, 0],
"Blue Brinstar Energy Tank Room: Hidden Ceiling Item": [1, 2],
"Blue Brinstar Energy Tank Room: Right Item": [2, 2],
"Three Musketeers' Room: Hidden Item": [0, 2],
"Alpha Power Bomb Room: Chozo Item": [1, 0],
"Alpha Power Bomb Room: Hidden Left Item": [0, 0],
"Aqueduct: Top Right Right Item": [5, 0],
"Aqueduct: Top Right Left Item": [4, 0],
"Screw Attack Room: Item": [0, 2],
"Bubble Mountain: Bottom Right Item": [1, 3],
"Watering Hole: Left Item": [-0.25, 2],
"Watering Hole: Right Item": [0.25, 2],
"Speed Booster Hall: Hidden Item": [11, 1],
"West Sand Hole: Top Left - Right Item": [0.25, 0],
"West Sand Hole: Top Left - Left Item": [-0.25, 0],
"East Sand Hole: Top Left Item": [0, 0],
"East Sand Hole: Right Item": [1, 1],
"Post Crocomire Missile Room: Item": [3, 0],
"Double Chamber: Item": [1, 0],
"Beta Power Bomb Room: Item": [0, 1],
"West Ocean: Bottom Left Underwater Item": [0, 5],
"West Ocean: Left Morph Maze Item": [0, 2],
"West Ocean: Top Hidden Item (Above Trippers)": [1, 0],
"Early Supers Room: Lower Item": [1, 1],
"Early Supers Room: Top Left Item": [0, 0],
"Plasma Room: Item": [1, 2],
"Green Pirates Shaft: Left Item": [-0.25, 1],
"Green Pirates Shaft: Right Item": [0.25, 1],
"Spring Ball Room: Item": [1, 1],
"Pink Brinstar Power Bomb Room: Item": [0, 1],
"Pit Room: Item": [0, 1],
"Mickey Mouse Room: Item": [2, 1],
"Grapple Beam Room: Item": [0, 2],
"Golden Torizo's Room: Hidden Right Item": [1, 0],
"Golden Torizo's Room: Top Left Item": [0, 0],
"Wrecked Ship East Super Room: Item (Behind the Bomb Wall)": [3, 0],
"Botwoon Energy Tank Room: Item": [3, 0],
"Terminator Room: Item": [0, 2],
"Post Crocomire Jump Room: Item": [4, 0],
"Green Bubbles Missile Room: Item": [1, 0],
"Lower Norfair Spring Ball Maze Room: Item": [2, 0],
"Crateria Power Bomb Room: Item": [1, 0],
"Green Brinstar Main Shaft: Right Etecoon Shaft - Item": [3, 7],
"Crateria Super Room: Item": [3, 0],
"Spore Spawn Super Room: Item": [1, 8],
"Hi Jump Energy Tank Room: Top Right Item": [1, 0],
"Hi Jump Energy Tank Room: Top Left Item": [0, 0],
"Big Pink: Top Item (Above Hopper Pit)": [2, 3],
"Big Pink: Middle Item": [2, 6],
"Big Pink: Bottom Chozo Item": [2, 7],
"Bowling Alley: Bottom Chozo Item": [3, 2],
"Bowling Alley: Top Right Item": [5, 0],
};
let item_plm = {
"ETank": 0,
"Missile": 1,
"Super": 2,
"PowerBomb": 3,
"Bombs": 4,
"Charge": 5,
"Ice": 6,
"HiJump": 7,
"SpeedBooster": 8,
"Wave": 9,
"Spazer": 10,
"SpringBall": 11,
"Varia": 12,
"Gravity": 13,
"XRayScope": 14,
"Plasma": 15,
"Grapple": 16,
"SpaceJump": 17,
"ScrewAttack": 18,
"Morph": 19,
"ReserveTank": 20,
"WallJump": 21,
};
let itemtypes = {
"majors": ["Varia",
"Gravity",
"Morph",
"SpaceJump",
"ScrewAttack",
"WallJump",
"Bombs",
"HiJump",
"SpeedBooster",
"SpringBall",
"Grapple",
"XRayScope",
"Charge",
"Ice",
"Wave",
"Spazer",
"Plasma"],
"health": ["ETank", "ReserveTank"],
"ammo": ["Super","PowerBomb"],
"missiles": ["Missile"]
}
let item_rank = {
"Varia": 1,
"Gravity": 2,
"Morph": 3,
"SpaceJump": 4,
"ScrewAttack": 5,
"WallJump": 6,
"Bombs": 7,
"HiJump": 8,
"SpeedBooster": 9,
"SpringBall": 10,
"Grapple": 11,
"XRayScope": 12,
"Charge": 13,
"Ice": 14,
"Wave": 15,
"Spazer": 16,
"Plasma": 17,
"ETank": 18,
"ReserveTank": 19,
"Super": 20,
"PowerBomb": 21,
"Missile": 22,
};
let roomFlags = {
"Bomb Torizo Room": ["f_DefeatedBombTorizo", "Defeat Bomb Torizo", 0,0],
"Botwoon's Room": ["f_DefeatedBotwoon", "Defeat Botwoon",0.5,0],
"Crocomire's Room": ["f_DefeatedCrocomire", "Defeat Crocomire",4,0],
"Draygon's Room": ["f_DefeatedDraygon", "Defeat Draygon",0.5,0.5],
"Golden Torizo's Room": ["f_DefeatedGoldenTorizo", "Defeat Golden Torizo",0.5,1],
"Kraid Room": ["f_DefeatedKraid", "Defeat Kraid",0.5,0.5],
"Mother Brain Room": ["f_DefeatedMotherBrain", "Defeat Mother Brain",1.5,0],
"Phantoon's Room": ["f_DefeatedPhantoon", "Defeat Phantoon",0,0],
"Ridley's Room": ["f_DefeatedRidley", "Defeat Ridley",0,0.5],
"Spore Spawn Room": ["f_DefeatedSporeSpawn", "Defeat Spore Spawn",0,1.5],
"Metroid Room 1": ["f_KilledMetroidRoom1", "Clear Metroid Room 1",2.5,0],
"Metroid Room 2": ["f_KilledMetroidRoom2", "Clear Metroid Room 2",0,0.5],
"Metroid Room 3": ["f_KilledMetroidRoom3", "Clear Metroid Room 3",2.5,0],
"Metroid Room 4": ["f_KilledMetroidRoom4", "Clear Metroid Room 4",0,0.5],
"Glass Tunnel": ["f_MaridiaTubeBroken", "Break Maridia Tube",0,1],
"Shaktool Room": ["f_ShaktoolDoneDigging", "Clear Shaktool Room",1.5,0],
"Acid Statue Room": ["f_UsedAcidChozoStatue", "Use Acid Statue",0,0],
"Bowling Alley": ["f_UsedBowlingStatue", "Use Bowling Statue",4,1],
"Pit Room": ["f_ClearedPitRoom", "Clear Pit Room",1,0],
"Baby Kraid Room": ["f_ClearedBabyKraidRoom", "Clear Baby Kraid Room",2.5,0],
"Plasma Room": ["f_ClearedPlasmaRoom", "Clear Plasma Room",0.5,1],
"Metal Pirates Room": ["f_ClearedMetalPiratesRoom", "Clear Metal Pirates Room",1,0],
"Parlor And Alcatraz": ["f_ZebesAwake", "Awaken Zebes",2, 0.5],
"Climb": ["f_ZebesAwake", "Awaken Zebes",1,4],
"Construction Zone": ["f_ZebesAwake", "Awaken Zebes",0,1.5],
"The Final Missile": ["f_ZebesAwake", "Awaken Zebes",0,0],
"Morph Ball Room": ["f_ZebesAwake", "Awaken Zebes",5,2],
"Blue Brinstar Energy Tank Room": ["f_ZebesAwake", "Awaken Zebes",0,2.5],
};
let flagtypes = {
"bosses":["f_DefeatedKraid","f_DefeatedPhantoon",
"f_DefeatedDraygon","f_DefeatedRidley","f_DefeatedMotherBrain"],
"minibosses":["f_DefeatedBombTorizo","f_DefeatedSporeSpawn","f_DefeatedCrocomire",
"f_DefeatedBotwoon","f_DefeatedGoldenTorizo"],
"misc":["f_KilledMetroidRoom1","f_KilledMetroidRoom2","f_KilledMetroidRoom3",
"f_KilledMetroidRoom4","f_MaridiaTubeBroken","f_ShaktoolDoneDigging",
"f_UsedAcidChozoStatue","f_UsedBowlingStatue","f_ClearedPitRoom",
"f_ClearedBabyKraidRoom","f_ClearedPlasmaRoom","f_ClearedMetalPiratesRoom",
"f_ZebesAwake"]
}
Binary file added visualizer/f_ClearedBabyKraidRoom.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_ClearedMetalPiratesRoom.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_ClearedPitRoom.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_ClearedPlasmaRoom.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_DefeatedBombTorizo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_DefeatedBotwoon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_DefeatedCrocomire.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_DefeatedDraygon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_DefeatedGoldenTorizo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_DefeatedKraid.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_DefeatedMotherBrain.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_DefeatedPhantoon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_DefeatedRidley.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_DefeatedSporeSpawn.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_KilledMetroidRoom1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_KilledMetroidRoom2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_KilledMetroidRoom3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_KilledMetroidRoom4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_MaridiaTubeBroken.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_ShaktoolDoneDigging.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_UsedAcidChozoStatue.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_UsedBowlingStatue.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/f_ZebesAwake.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added visualizer/gunship.png
Binary file added visualizer/helm.png
90 changes: 56 additions & 34 deletions visualizer/index.html
Original file line number Diff line number Diff line change
@@ -1,39 +1,61 @@
<!DOCTYPE html>
<head>
<meta name="viewport" content="user-scalable=no">
<title>Map Rando Spoiler Map Viewer</title>
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.4/font/bootstrap-icons.css">
<script src="/static/localforage.js"></script>
<meta name="viewport" content="user-scalable=no">
<title>Map Rando Spoiler Map Viewer</title>
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.4/font/bootstrap-icons.css">
<script src="/static/localforage.js"></script>
<script src="save_settings.js"></script>
</head>
<body>
<div id="zoom">
<img id="map" src="../map-assigned.png">
<svg id="path-overlay" width="1776px" height="1776px"></svg>
<div id="overlay">
<canvas id="obscure-overlay" width="72" height="72"></canvas>
<img id="grid-overlay" src="../map-grid.png">
<div id="room-info"></div>
</div>
</div>
<div id="sidebar-info"></div>
<div id="msg-wrap" style="display:none;" onclick="this.style.display = 'none';">
<div class="msg">
<h1 class="msg-title">Spoiler map info</h1>
<ul>
<li>Select a step in the overview (top-left corner) to focus on logically reachable areas for that step.
<li>One-way-reachable areas appear darker.
<li>Only the first instance of each item is shown in the overview.
<li>Double-click a step to show details, including all items collectible on that step.
<li>Click an item to show a path to reach it (white) and return to the Ship (yellow).
<li>Double-click a room to pull up the logic for that room.
<li>Click on a room containing a boss, objective, or other flag to show logic for completing it.
<li>Click on the Mother Brain Room to show the intended escape route.
<li>Where an item routes shows a difficulty level, it represents only the difficulty of reaching the item;
it does not include the difficulty of returning, nor of any flags assumed to be previously cleared (e.g. bosses).
</ul>
<div class="button">DISMISS</div>
</div>
</div>
<script src="script.js"></script>
<div id="msg-wrap" onclick="this.style.display = 'none';">
<div class="msg">
<h1 class="msg-title">Spoiler map info</h1>
<ul>
<li>Select a step in the overview (top-left corner) to focus on logically reachable areas for that step.
<li>One-way-reachable areas appear darker.
<li>Only the first instance of each item is shown in the overview.
<li>Double-click a step to show details, including all items collectible on that step.
<li>Click an item to show a path to reach it (white) and return to the Ship (yellow).
<li>Double-click a room to pull up the logic for that room.
<li>Click on a room containing a boss, objective, or other flag to show logic for completing it.
<li>Click on the Mother Brain Room or the Ship icon to show the intended escape route.
<li>Where an item route shows a difficulty level, it represents only the difficulty of reaching the item;
it does not include the difficulty of returning, nor of any flags cleared (e.g. bosses).
</ul>
<form id="helpForm" onchange="saveForm(this)"><input id="showonce" type="checkbox" name="showonce"><label for="showonce">Don't show again.</label></form>
<div class="button">DISMISS</div>
</div>
</div>
<div id="zoom">
<img id="map" src="../map-assigned.png">
<svg id="path-overlay" width="1776px" height="1776px"></svg>
<div id="overlay">
<canvas id="obscure-overlay" width="72" height="72"></canvas>
<img id="grid-overlay" src="../map-grid.png">
<div id="room-info"></div>
</div>
</div>
<div id="sidebar-info"></div>
<div id="settings">
<i id="settingsCog" class="bi bi-gear"></i>
<form id="settingsForm" onchange="saveForm(this)" style="display:none">
<input type=checkbox id="start" name="start" checked>
<label for="start">start</label><br>
<input type=checkbox id="ship" name="ship" checked>
<label for="ship">ship</label><br>
<input type="checkbox" id="items" name="items" onchange="toggleitemvis(event)" checked>
<label for="items">items</label><br>
<input type=checkbox class="subflags" id="objectives" name="objectives" onchange="toggleobjectives(event)">
<label for="objectives">objectives</label><br>
<input type=checkbox class="subflags" id="bosses" name="bosses" onchange="toggleflagvis(event)" checked>
<label for="bosses">bosses</label><br>
<input type=checkbox class="subflags" id="minibosses" name="minibosses" onchange="toggleflagvis(event)" checked>
<label for="minibosses">minibosses</label><br>
<input type=checkbox class="subflags" id="misc" name="misc" onchange="toggleflagvis(event)" checked>
<label for="misc">flags</label><br>
</form>
</div>
<script src="consts.js"></script>
<script src="script.js"></script>
</body>
Binary file added visualizer/minibosses.png
Binary file added visualizer/minibossesobj.png
Binary file added visualizer/misc.png
Binary file added visualizer/miscobj.png
Loading