How einxyz/level-comparison works
Level Comparison is a Geometry Dash mod that combines two selected levels into a newly created editable comparison level. The main workflow starts from level screens, gathers levels and transformation settings in the comparison menu, then creates comparison data and opens it in the editor. The source also shows local/saved level picking, persisted settings, and configurable object, modifier, unhide, group-remapping, and disappearing-object behavior. Some menu callbacks and transformation details are omitted from the excerpts, so the graph avoids inferring those internal links.
Main entry points: ComparisonMenu.cpp Comparison menu · main.cpp Level screens · ComparisonLogic.cpp Comparison logic · LevelPickerPopup.cpp Level picker
Components 16
Mod entry
- Level screens
src/main.cpp
Level selection
- Comparison menu
src/ComparisonMenu.cpp - Level picker
src/LevelPickerPopup.cpp
Comparison processing
- Comparison logic
src/ComparisonLogic.cpp - Object rules
src/data.hpp - String utilities
src/utils.cpp
Settings UI
- Options popup
src/OptionsPopup.cpp - Comparison config
src/data.hpp
Other components
- Player
- Local levels
- Saved levels
- Saved settings
- Game level manager
- New comparison level
- Level editor
- Editor IDs API
Connections 19
- Player → Level screens: opens
- Level screens → Comparison menu: opens
- Comparison menu → Level picker: opens
- Level picker → Local levels: reads
- Level picker → Saved levels: reads
- Comparison menu → Saved levels: loads levels
- Comparison menu → Local levels: finds editor levels
- Comparison menu → Editor IDs API: resolves IDs
- Comparison menu → Saved settings: reads and writes
- Comparison menu → Options popup: opens
- Comparison menu → Comparison logic: requests comparison
- Comparison menu → Comparison config: builds config
- Comparison logic → Object rules: uses rules
- Comparison logic → String utilities: uses parsing
- Level screens → Game level manager: creates level
- Level screens → Comparison logic: calls comparison
- Level screens → New comparison level: writes level data
- Level screens → Level editor: opens scene
- Game level manager → New comparison level: allocates