28 Menu & Config: Overview
This tour examines the Doom engine’s menu system (m_menu.*) and configuration handling (m_misc.*), showing the key functions, data structures, and file operations used to manage game settings.
28.2 Configuration and Utility Functions
Next we’ll look at configuration and utility functions in m_misc.h and m_misc.c, which handle settings, file I/O, and support routines.
28.2.1 Header Declarations
File:
linuxdoom-1.10/m_misc.h
Includes function declarations for configuration saving/loading, screenshots, text output.
28.2.2 Config Storage
File:
linuxdoom-1.10/m_misc.c
Defines how config data is mapped and persisted.
default_t: Maps config names to variables and default values.defaults[]: Holds the full array of settings.
28.2.3 Saving and Loading Defaults
M_SaveDefaults():
> File:linuxdoom-1.10/m_misc.c
Writes settings to file using numeric/string markers.M_LoadDefaults():
> File:linuxdoom-1.10/m_misc.c
Reads file, matchesnamefields, applies overrides.
Config line parsing handles: - Quoted strings → allocated memory - Numeric values → parsed hex/decimal - Matches entries in
defaults[]
And that’s it — Doom’s menu system and configuration settings in action.