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.