---------------------------------------------------------------------- TNT BOOM Phase I Source Release BOOMSRC.TXT 5/27/98 ---------------------------------------------------------------------- These are the TNT BOOM sources for the final Phase I release, May 27, 1998. They were based on the DOSDoom .20 release, which was in turn based on the Linux DOOM sources released by John Carmack around Christmas 1997. If you use the sources in whole or part you are bound by the software license agreement DOOMLIC.TXT. We would appreciate your giving credit to John Carmack, B. Krenheimer, Chi Hoang, and TeamTNT. The files are in DOS format, with CRLF line terminators. The formatting styles vary slightly from file to file depending on the programmer who did most of the work on them, but are reasonably close to each other with block braces directly over each other. There are no tabs in the sources, so all should appear the same in most editors. The sources compile under DJGPP v2, available at: http://www.delorie.com/ ---------------------------------------------------------------------- The changes since DOSDoom .20 are described in the programmer logs: ---------------------------------------------------------------------- name identifier change log name --------------------------------------------- Lee Killough "killough" log_lee.txt Jim Flynn "jff" log_jff.txt Rand Phares "phares" log_rsp.txt Ty Halderman "Ty" log_ty.txt Stan Gula "SG" none (d_net and i_net changes) The changes are marked in the sources with a comment containing the programmer's identifier and date of change. ---------------------------------------------------------------------- A brief description of the contents of the source files follows ---------------------------------------------------------------------- Global and misc. stuff ----------------------------------------------------------------------- doomdata.h doomdata.c - external data definitions (WAD file structure) doomdef.h doomdef.c - internal data definitions (game structs) doomstat.h doomstat.c - declarations for types and variables that store game state doomtype.h - misc declarations (boolean, char limits) dstrings.h dstrings.c - quitting game messages d_french.h - printed strings for translation, french d_englsh.h - printed strings for translation, english d_event.h - event handling declarations d_player.h - declarations for player state and information d_textur.h - declaration of pic_t structure for graphics column d_think.h - declarations for thinkers and action routine types d_ticcmd.h - declaration of structure for atomic game actions m_fixed.h - fixed point arithmetic functions m_swap.h - byte order swapping (big/little endian) info.h info.c - lookup tables for thing table, frame table, predefined lumps version.h version.c - compile version handler, marks exe each build with date ------------------------------------------------------------------------ DOOM game loop and top level stuff ------------------------------------------------------------------------ g_game.h g_game.c - Game loop functions, event handling, demos savegame handling, etc. d_main.h d_main.c - event handling, D_DoomMain() and other functions d_net.h d_net.c - high level networking protocol code d_items.h d_items.c - weapon animation information d_deh.h d_deh.c - DEH file parser and implementation ------------------------------------------------------------------ I Interfaces, system specifics ------------------------------------------------------------------ i_main.c - main() program entry, calls D_DoomMain(). i_net.h i_net.c - system specific net driver i_sound.h i_sound.c - system specific sound/music driver i_system.h i_system.c - system specific routines, system specific driver install i_video.h i_video.c - system specific joystick, keyboard, video routines ------------------------------------------------------------------ AM AutoMap ------------------------------------------------------------------ am_map.h am_map.c - automap code ------------------------------------------------------------------ HU Heads Up ------------------------------------------------------------------ hu_lib.h hu_lib.c - heads-up text and input code hu_stuff.h hu_stuff.c - Heads-up displays ------------------------------------------------------------------- M Menu, Miscellaneous ------------------------------------------------------------------- m_menu.c - DOOM options code, game control, setup code m_misc.c - defaults file handling, screen shots, file I/O m_argv.h m_argv.c - command line argument parsing m_bbox.h m_bbox.c - bounding box routines m_cheat.h m_cheat.c - cheat code handler m_random.h m_random.c - random number generators ------------------------------------------------------------------- P Play, Specials ------------------------------------------------------------------- p_spec.h - declarations for specials p_spec.c - texture animation, specials, lighting, doors, plats, etc p_switch.c - button switches and animation p_doors.c - door handlers p_plats.c - platform raising/lowering handlers p_ceilng.c - ceiling movers and crushers p_floor.c - floor movers, stairs, and donuts p_lights.c - dynamic (e.g. flickering) lighting p_genlin.c - generalized linedef handling p_telept.c - teleportation code p_enemy.h p_enemy.c - enemy AI and animation p_inter.h p_inter.c - player/object interaction p_map.h p_map.c - movement objects, handling of collisions p_maputl.h p_maputl.c - distance, position, utilities for movement, point/line queries p_mobj.h p_mobj.c - mobile objects handling, spawn etc. p_user.h p_user.c - player movement, bobbing p_sight.c - monster line-of-sight, REJECT p_pspr.h p_pspr.c - player weapons -- sprites, ammo, preferences p_setup.h p_setup.c - load map from WAD file, level setup p_saveg.h p_saveg.c - savegame functions (archive/unarchive) p_tick.h p_tick.c - thinker list handling, game tick updates ------------------------------------------------------------------- R Rendering ------------------------------------------------------------------- r_defs.h - shared declarations for rendering modules r_state.h - internal state variables for renderer r_bsp.h r_bsp.c - bsp traversal, seg clipping, #242 effect r_data.h r_data.c - wall texture composition, lookup renderer resources by name r_draw.h r_draw.c - access to framebuffer API, drawing functions r_main.h r_main.c - view frame setup, lighting setup, main renderer code r_plane.h r_plane.c - floor/ceiling visplanes, sky r_segs.h r_segs.c - wall texture drawing, marking openings r_sky.h r_sky.c - drawing skies r_things.h r_things.c - sprite and sprite frame/rotation handling, drawing tables.h tables.c - trigonometry lookup tables v_video.h v_video.c - gamma correction lookup, patch drawing to rectangle, color translation drawcol.s drawspan.s pproblit.s - optimized assembly routines for screen drawing/blitting ------------------------------------------------------------------- S Sound ------------------------------------------------------------------- s_sound.h s_sound.c - system-independent sound and music handling sounds.h sounds.c - sound and music lookup tables mmus2mid.h mmus2mid.c - conversion of MUS lumps to MIDI for Allegro ------------------------------------------------------------------- ST STatus bar ------------------------------------------------------------------- st_lib.h st_lib.c - status bar widget code st_stuff.c st_stuff.h - status bar code ------------------------------------------------------------------- W Wad file I/O ------------------------------------------------------------------- w_wad.h w_wad.c - wad and lump management ------------------------------------------------------------------- WI WIn / level end screens ------------------------------------------------------------------- wi_stuff.h wi_stuff.c - intermission animation patchwork ------------------------------------------------------------------- Z Zone memory allocation ------------------------------------------------------------------- z_zone.h z_zone.c - dynamic memory allocation and debugging system ------------------------------------------------------------------- F Final screen animation ------------------------------------------------------------------- f_finale.h f_finale.c - DOOM mission end screens, end of game stuff f_wipe.h f_wipe.c - screen wipe between intermission screens/demos etc. ------------------------------------------------------------------- Allegro library patches ------------------------------------------------------------------- emu8kmid.c - fix to AWE32 midi driver to avoid use of fp in interrupt keyboard.c - fixes to keyboard handler to make it more responsive, and to mask interrupts whenever necessary emu8k.h - unchanged global files required by the above allegro.h internal.h interndj.h ------------------------------------------------------------------- makefile ------------------------------------------------------------------- makefile - contains debug and release targets -------------------------------------------------------------------