Doom source code files
From Doom Wiki
This page describes the files in the Doom source code and their roles in the overall system.
[edit] 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, probably obsolete |
| 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 |
[edit] 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 |
[edit] 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) |
Categories: Doom engine | Code | Lists


