30 Menu & Config: Config Defaults & Utilities
This tour examines the m_misc moduleβs utilities: file I/O, menu text drawing, configuration management, and screenshot capture.
30.0.1 π m_misc.h
Core utilities for file operations, configuration management, and menu display:
// linuxdoom-1.10/m_misc.h (lines 34β57)30.0.2 ποΈ Text Rendering
M_DrawText renders text using bitmap font patches:
// linuxdoom-1.10/m_misc.c (lines 69β100)30.0.3 βοΈ Configuration System
Configuration entries (default_t):
// linuxdoom-1.10/m_misc.c (lines 225β232)Mapping defaults (defaults[]):
// linuxdoom-1.10/m_misc.c (lines 234β299)Base default application:
// linuxdoom-1.10/m_misc.c (lines 349β355)Token matching from .doomrc:
// linuxdoom-1.10/m_misc.c (lines 389β393)-config argument or fallback:
// linuxdoom-1.10/m_misc.c (lines 356β364)Parsing .doomrc:
// linuxdoom-1.10/m_misc.c (lines 366β403)Saving defaults to file:
// linuxdoom-1.10/m_misc.c (lines 308β315 and 318β328)30.0.4 πΌοΈ Screenshot Capture
WritePCXfile handles PCX encoding and writing:
// linuxdoom-1.10/m_misc.c (lines 441β497)M_ScreenShot captures and saves the screen:
// linuxdoom-1.10/m_misc.c (lines 503β531)30.0.5 π Notes on Loading
M_LoadDefaults matches each defaults[i].name and updates the variable through *defaults[i].location.
30.0.6 π File I/O Utilities
M_ReadFile: loads entire file into zone memory:
// linuxdoom-1.10/m_misc.c (lines 139β163)M_WriteFile: atomic file writing:
// linuxdoom-1.10/m_misc.c (lines 112β132)And thatβs m_misc β Doomβs utility layer for configs, menu text, screenshots, and file I/O.