This page describes the files in the Doom source code and their roles in the overall system.
Main files[]
Files | Description |
---|---|
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 | Basic data structures used to represent levels on disk |
doomdef.c, doomdef.h | Constants used throughout the source code |
doomstat.c, doomstat.h | Game mode variables |
doomtype.h | Common type definitions used throughout the source code |
d_player.h | Definition of the player_t structure, which represents players |
dstrings.c, dstrings.h | Quit messages |
d_textur.h | An unused data structure, shared in common with Rise of the Triad. Possibly left over from Shadowcaster engine. |
d_think.h | Definitions of thinker structures used for AI |
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 | Bounding boxes |
m_cheat.c, m_cheat.h | Cheat code parsing |
m_fixed.c, m_fixed.h | Fixed point number functions |
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 | Endianness conversion routines |
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 | Object interaction: item pickup functions, object damage functions |
p_lights.c | Animated lights |
p_local.h | Global header for functions in the p_* section |
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 | PSprite (weapon sprite) functions |
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 | Special effects: texture animations, line triggers, floor/ceiling/lighting changes |
p_switch.c | Wall switches |
p_telept.c | Handling of teleporter lines |
p_tick.c, p_tick.h | Base thinker code |
p_user.c | Player point-of-view code (weapon bobbing, player object thinker, etc.) |
r_bsp.c, r_bsp.h | BSP tree traversal |
r_data.c, r_data.h | Initialisation of data (textures, etc.) for use in the rendering code |
r_defs.h | Type definitions used in the rendering engine |
r_draw.c, r_draw.h | Fast drawing functions |
r_local.h | Includes all the r_* header files |
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 really in r_plane.c) |
r_state.h | Definitions for global variables used by the rendering engine |
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 | Intermission screens |
w_wad.c, w_wad.h | WAD loading code |
z_zone.c, z_zone.h | Zone memory allocator |
Sound server[]
These files are part of the sound server:
Files | Description |
---|---|
linux.c | Linux-specific sound output code |
sounds.c,sounds.h | List of sound effects |
soundsrv.c,soundsrv.h | Core sound server code |
soundst.h | Sound structures and prototypes |
wadread.c,wadread.h | WAD file reading code |
Missing files[]
The following files were part of the original source code, but were removed in the "cleanup" before the source release:
Files | Description |
---|---|
am_data.h | Vector graphics macros for the automap (merged into am_map.c) |
am_oids.c,am_oids.h | Automap asteroids - an easter egg which was never completed |
defs.inc | Assembly header file for optimized rendering code |
dither.c,dither.h | Unknown |
drcoord.h | Objective C header; possibly part of the intermission statistics driver that was powered by the -statcopy command.
|
dutils.c,dutils.h | "Dave's utilities"; this apparently contained singly and doubly linked lists, among other common data structures |
fpfunc.S | Optimised floating point assembler |
i_cyber.c | Logitech CyberMan 3D mouse code |
i_dga.c | X11 DGA graphics |
i_header.h | Header for system-dependent sound code (became i_sound.h) |
i_ibm.c | PC graphics code |
i_ibm_a.asm | IBM PC joystick assembly code |
i_pcnet.c | PC networking code |
i_svgalib.c | Linux SVGA graphics |
i_unix.c | Unix fixed-point, networking and display code |
i_x.c | Likely renamed to i_video.c |
irix.c | Irix sound server backend code |
planar.asm | Assembler; most likely optimized version of R_DrawSpan |
sun.c | Sun sound server backend code |
t.c | Unknown |
tmap.S | Optimised texture mapping assembler functions |
vgaview.h | Objective C header; possibly part of id's original map editor. Contains information about palettes, graphics, and scaling. |
wi_data.h | Unknown; probably splotch position data for the DOOM intermission sequence (merged into wi_stuff.c) |