Doom source code files
Talk12
2,846pages on
this wiki
this wiki
This page describes the files in the Doom source code and their roles in the overall system.
Main files
Edit
| 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
Edit
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
Edit
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) |