Doom source code files

This page describes the files in the Doom source code and their roles in the overall system.


 * am_map.c, am_map.h: Automap
 * d_englsh.h: Text strings used in the game (English versions)
 * d_event.h: Event structure
 * d_french.h: Text strings used in the game (French translations)
 * d_items.c, d_items.h: A table which controls weapon animations
 * d_main.c, d_main.h: System-independent main function, and setup code
 * d_net.c, d_net.h: System independent networking code
 * doomdata.h
 * doomdef.c, doomdef.h
 * doomstat.c, doomstat.h
 * doomtype.h
 * d_player.h
 * dstrings.c, dstrings.h: The "do you want to quit?" messages
 * d_textur.h
 * d_think.h
 * d_ticcmd.h: Player movement command definition (ticcmd_t)
 * f_finale.c, f_finale.h: Finale screen code
 * f_wipe.c, f_wipe.h: Screen "melt" effect
 * g_game.c, g_game.h: High-level game stuff; transitions between game states, level exits, main game event responder, setting up new games, demo recording
 * hu_lib.c, hu_lib.h: Library functions for heads-up display
 * hu_stuff.c, hu_stuff.h: Heads-up display code
 * i_main.c: Main function
 * i_net.c, i_net.h: System-dependent network code (UDP Unix version)
 * i_sound.c, i_sound.h: System-dependent sound code
 * i_system.c, i_system.h: Miscellaneous system-dependent code (error handling, timer, etc.)
 * i_video.c, i_video.h: System-dependent video code (X11 Unix version)
 * info.c, info.h: Tables of data used by the game: sprite name table, thing data table, frame table
 * m_argv.c, m_argv.h: Functions for searching the command line argument list
 * m_bbox.c, m_bbox.h
 * m_cheat.c, m_cheat.h: Cheat code parsing
 * m_fixed.c, m_fixed.h
 * m_menu.c, m_menu.h: Menu
 * m_misc.c, m_misc.h: Miscellaneous functions: text rendering, configuration file loading, writing screenshots
 * m_random.c, m_random.h: Pseudo-random number generator
 * m_swap.c, m_swap.h
 * p_ceilng.c: Ceiling movement
 * p_doors.c: Door movement
 * p_enemy.c: Monster AI
 * p_floor.c: Floor movement
 * p_inter.c, p_inter.h
 * p_lights.c: Animated lights
 * p_local.h
 * p_map.c: Object movement - collisions, teleportation, detecting for injury
 * p_maputl.c: Library functions for p_map.c: blockmap code
 * p_mobj.c, p_mobj.h: Basic object control functions: creating/destroying objects, movement, etc.
 * p_plats.c: Elevators
 * p_pspr.c, p_pspr.h
 * p_saveg.c, p_saveg.h: Savegames
 * p_setup.c, p_setup.h: Loading of map data and setup
 * p_sight.c: Line-of-sight/visibility checking for monsters
 * p_spec.c, p_spec.h
 * p_switch.c: Wall switches
 * p_telept.c: Handling of teleport lines
 * p_tick.c, p_tick.h
 * p_user.c: Player point-of-view code (weapon bobbing, player object thinker, etc)
 * r_bsp.c, r_bsp.h
 * r_data.c, r_data.h: Initialisation of data (textures, etc) for use in the rendering code
 * r_defs.h
 * r_draw.c, r_draw.h: Fast drawing functions
 * r_local.h
 * r_main.c, r_main.h: Entrypoint into rendering code
 * r_plane.c, r_plane.h: Rendering of planes (floor/ceilings)
 * r_segs.c, r_segs.h: Rendering of walls
 * r_sky.c, r_sky.h: Sky rendering code (actually this is only some very basic initialisation code; the sky rendering code is actually in r_plane.c)
 * r_state.h
 * r_things.c, r_things.h: Rendering of sprites
 * sounds.c, sounds.h: Sound/Music tables
 * s_sound.c, s_sound.h: System-independent sound code
 * st_lib.c, st_lib.h: Library routines for status bar code
 * st_stuff.c, st_stuff.h: Status bar main code
 * tables.c, tables.h: Lookup tables for fast sine/cosine
 * v_video.c, v_video.h: Generic image patch rendering (for menu, etc)
 * wi_stuff.c, wi_stuff.h
 * w_wad.c, w_wad.h: WAD loading code
 * z_zone.c, z_zone.h: Zone memory allocator