forked from KolibriOS/kolibrios
*.h files
git-svn-id: svn://kolibrios.org@325 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
0989244bd5
commit
3111c3f230
52
programs/games/doom/trunk/h/am_map.h
Normal file
52
programs/games/doom/trunk/h/am_map.h
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// AutoMap module.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifndef __AMMAP_H__
|
||||||
|
#define __AMMAP_H__
|
||||||
|
|
||||||
|
// Used by ST StatusBar stuff.
|
||||||
|
#define AM_MSGHEADER (('a'<<24)+('m'<<16))
|
||||||
|
#define AM_MSGENTERED (AM_MSGHEADER | ('e'<<8))
|
||||||
|
#define AM_MSGEXITED (AM_MSGHEADER | ('x'<<8))
|
||||||
|
|
||||||
|
|
||||||
|
// Called by main loop.
|
||||||
|
boolean AM_Responder (event_t* ev);
|
||||||
|
|
||||||
|
// Called by main loop.
|
||||||
|
void AM_Ticker (void);
|
||||||
|
|
||||||
|
// Called by main loop,
|
||||||
|
// called instead of view drawer if automap active.
|
||||||
|
void AM_Drawer (void);
|
||||||
|
|
||||||
|
// Called to force the automap to quit
|
||||||
|
// if the level is completed while it is up.
|
||||||
|
void AM_Stop (void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
701
programs/games/doom/trunk/h/d_englsh.h
Normal file
701
programs/games/doom/trunk/h/d_englsh.h
Normal file
@ -0,0 +1,701 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Printed strings for translation.
|
||||||
|
// English language support (default).
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifndef __D_ENGLSH__
|
||||||
|
#define __D_ENGLSH__
|
||||||
|
|
||||||
|
//
|
||||||
|
// Printed strings for translation
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// D_Main.C
|
||||||
|
//
|
||||||
|
#define D_DEVSTR "Development mode ON.\n"
|
||||||
|
#define D_CDROM "CD-ROM Version: default.cfg from c:\\doomdata\n"
|
||||||
|
|
||||||
|
//
|
||||||
|
// M_Menu.C
|
||||||
|
//
|
||||||
|
#define PRESSKEY "press a key."
|
||||||
|
#define PRESSYN "press y or n."
|
||||||
|
#define QUITMSG "are you sure you want to\nquit this great game?"
|
||||||
|
#define LOADNET "you can't do load while in a net game!\n\n"PRESSKEY
|
||||||
|
#define QLOADNET "you can't quickload during a netgame!\n\n"PRESSKEY
|
||||||
|
#define QSAVESPOT "you haven't picked a quicksave slot yet!\n\n"PRESSKEY
|
||||||
|
#define SAVEDEAD "you can't save if you aren't playing!\n\n"PRESSKEY
|
||||||
|
#define QSPROMPT "quicksave over your game named\n\n'%s'?\n\n"PRESSYN
|
||||||
|
#define QLPROMPT "do you want to quickload the game named\n\n'%s'?\n\n"PRESSYN
|
||||||
|
|
||||||
|
#define NEWGAME \
|
||||||
|
"you can't start a new game\n"\
|
||||||
|
"while in a network game.\n\n"PRESSKEY
|
||||||
|
|
||||||
|
#define NIGHTMARE \
|
||||||
|
"are you sure? this skill level\n"\
|
||||||
|
"isn't even remotely fair.\n\n"PRESSYN
|
||||||
|
|
||||||
|
#define SWSTRING \
|
||||||
|
"this is the shareware version of doom.\n\n"\
|
||||||
|
"you need to order the entire trilogy.\n\n"PRESSKEY
|
||||||
|
|
||||||
|
#define MSGOFF "Messages OFF"
|
||||||
|
#define MSGON "Messages ON"
|
||||||
|
#define NETEND "you can't end a netgame!\n\n"PRESSKEY
|
||||||
|
#define ENDGAME "are you sure you want to end the game?\n\n"PRESSYN
|
||||||
|
|
||||||
|
#define DOSY "(press y to quit)"
|
||||||
|
|
||||||
|
#define DETAILHI "High detail"
|
||||||
|
#define DETAILLO "Low detail"
|
||||||
|
#define GAMMALVL0 "Gamma correction OFF"
|
||||||
|
#define GAMMALVL1 "Gamma correction level 1"
|
||||||
|
#define GAMMALVL2 "Gamma correction level 2"
|
||||||
|
#define GAMMALVL3 "Gamma correction level 3"
|
||||||
|
#define GAMMALVL4 "Gamma correction level 4"
|
||||||
|
#define EMPTYSTRING "empty slot"
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_inter.C
|
||||||
|
//
|
||||||
|
#define GOTARMOR "Picked up the armor."
|
||||||
|
#define GOTMEGA "Picked up the MegaArmor!"
|
||||||
|
#define GOTHTHBONUS "Picked up a health bonus."
|
||||||
|
#define GOTARMBONUS "Picked up an armor bonus."
|
||||||
|
#define GOTSTIM "Picked up a stimpack."
|
||||||
|
#define GOTMEDINEED "Picked up a medikit that you REALLY need!"
|
||||||
|
#define GOTMEDIKIT "Picked up a medikit."
|
||||||
|
#define GOTSUPER "Supercharge!"
|
||||||
|
|
||||||
|
#define GOTBLUECARD "Picked up a blue keycard."
|
||||||
|
#define GOTYELWCARD "Picked up a yellow keycard."
|
||||||
|
#define GOTREDCARD "Picked up a red keycard."
|
||||||
|
#define GOTBLUESKUL "Picked up a blue skull key."
|
||||||
|
#define GOTYELWSKUL "Picked up a yellow skull key."
|
||||||
|
#define GOTREDSKULL "Picked up a red skull key."
|
||||||
|
|
||||||
|
#define GOTINVUL "Invulnerability!"
|
||||||
|
#define GOTBERSERK "Berserk!"
|
||||||
|
#define GOTINVIS "Partial Invisibility"
|
||||||
|
#define GOTSUIT "Radiation Shielding Suit"
|
||||||
|
#define GOTMAP "Computer Area Map"
|
||||||
|
#define GOTVISOR "Light Amplification Visor"
|
||||||
|
#define GOTMSPHERE "MegaSphere!"
|
||||||
|
|
||||||
|
#define GOTCLIP "Picked up a clip."
|
||||||
|
#define GOTCLIPBOX "Picked up a box of bullets."
|
||||||
|
#define GOTROCKET "Picked up a rocket."
|
||||||
|
#define GOTROCKBOX "Picked up a box of rockets."
|
||||||
|
#define GOTCELL "Picked up an energy cell."
|
||||||
|
#define GOTCELLBOX "Picked up an energy cell pack."
|
||||||
|
#define GOTSHELLS "Picked up 4 shotgun shells."
|
||||||
|
#define GOTSHELLBOX "Picked up a box of shotgun shells."
|
||||||
|
#define GOTBACKPACK "Picked up a backpack full of ammo!"
|
||||||
|
|
||||||
|
#define GOTBFG9000 "You got the BFG9000! Oh, yes."
|
||||||
|
#define GOTCHAINGUN "You got the chaingun!"
|
||||||
|
#define GOTCHAINSAW "A chainsaw! Find some meat!"
|
||||||
|
#define GOTLAUNCHER "You got the rocket launcher!"
|
||||||
|
#define GOTPLASMA "You got the plasma gun!"
|
||||||
|
#define GOTSHOTGUN "You got the shotgun!"
|
||||||
|
#define GOTSHOTGUN2 "You got the super shotgun!"
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_Doors.C
|
||||||
|
//
|
||||||
|
#define PD_BLUEO "You need a blue key to activate this object"
|
||||||
|
#define PD_REDO "You need a red key to activate this object"
|
||||||
|
#define PD_YELLOWO "You need a yellow key to activate this object"
|
||||||
|
#define PD_BLUEK "You need a blue key to open this door"
|
||||||
|
#define PD_REDK "You need a red key to open this door"
|
||||||
|
#define PD_YELLOWK "You need a yellow key to open this door"
|
||||||
|
|
||||||
|
//
|
||||||
|
// G_game.C
|
||||||
|
//
|
||||||
|
#define GGSAVED "game saved."
|
||||||
|
|
||||||
|
//
|
||||||
|
// HU_stuff.C
|
||||||
|
//
|
||||||
|
#define HUSTR_MSGU "[Message unsent]"
|
||||||
|
|
||||||
|
#define HUSTR_E1M1 "E1M1: Hangar"
|
||||||
|
#define HUSTR_E1M2 "E1M2: Nuclear Plant"
|
||||||
|
#define HUSTR_E1M3 "E1M3: Toxin Refinery"
|
||||||
|
#define HUSTR_E1M4 "E1M4: Command Control"
|
||||||
|
#define HUSTR_E1M5 "E1M5: Phobos Lab"
|
||||||
|
#define HUSTR_E1M6 "E1M6: Central Processing"
|
||||||
|
#define HUSTR_E1M7 "E1M7: Computer Station"
|
||||||
|
#define HUSTR_E1M8 "E1M8: Phobos Anomaly"
|
||||||
|
#define HUSTR_E1M9 "E1M9: Military Base"
|
||||||
|
|
||||||
|
#define HUSTR_E2M1 "E2M1: Deimos Anomaly"
|
||||||
|
#define HUSTR_E2M2 "E2M2: Containment Area"
|
||||||
|
#define HUSTR_E2M3 "E2M3: Refinery"
|
||||||
|
#define HUSTR_E2M4 "E2M4: Deimos Lab"
|
||||||
|
#define HUSTR_E2M5 "E2M5: Command Center"
|
||||||
|
#define HUSTR_E2M6 "E2M6: Halls of the Damned"
|
||||||
|
#define HUSTR_E2M7 "E2M7: Spawning Vats"
|
||||||
|
#define HUSTR_E2M8 "E2M8: Tower of Babel"
|
||||||
|
#define HUSTR_E2M9 "E2M9: Fortress of Mystery"
|
||||||
|
|
||||||
|
#define HUSTR_E3M1 "E3M1: Hell Keep"
|
||||||
|
#define HUSTR_E3M2 "E3M2: Slough of Despair"
|
||||||
|
#define HUSTR_E3M3 "E3M3: Pandemonium"
|
||||||
|
#define HUSTR_E3M4 "E3M4: House of Pain"
|
||||||
|
#define HUSTR_E3M5 "E3M5: Unholy Cathedral"
|
||||||
|
#define HUSTR_E3M6 "E3M6: Mt. Erebus"
|
||||||
|
#define HUSTR_E3M7 "E3M7: Limbo"
|
||||||
|
#define HUSTR_E3M8 "E3M8: Dis"
|
||||||
|
#define HUSTR_E3M9 "E3M9: Warrens"
|
||||||
|
|
||||||
|
#define HUSTR_E4M1 "E4M1: Hell Beneath"
|
||||||
|
#define HUSTR_E4M2 "E4M2: Perfect Hatred"
|
||||||
|
#define HUSTR_E4M3 "E4M3: Sever The Wicked"
|
||||||
|
#define HUSTR_E4M4 "E4M4: Unruly Evil"
|
||||||
|
#define HUSTR_E4M5 "E4M5: They Will Repent"
|
||||||
|
#define HUSTR_E4M6 "E4M6: Against Thee Wickedly"
|
||||||
|
#define HUSTR_E4M7 "E4M7: And Hell Followed"
|
||||||
|
#define HUSTR_E4M8 "E4M8: Unto The Cruel"
|
||||||
|
#define HUSTR_E4M9 "E4M9: Fear"
|
||||||
|
|
||||||
|
#define HUSTR_1 "level 1: entryway"
|
||||||
|
#define HUSTR_2 "level 2: underhalls"
|
||||||
|
#define HUSTR_3 "level 3: the gantlet"
|
||||||
|
#define HUSTR_4 "level 4: the focus"
|
||||||
|
#define HUSTR_5 "level 5: the waste tunnels"
|
||||||
|
#define HUSTR_6 "level 6: the crusher"
|
||||||
|
#define HUSTR_7 "level 7: dead simple"
|
||||||
|
#define HUSTR_8 "level 8: tricks and traps"
|
||||||
|
#define HUSTR_9 "level 9: the pit"
|
||||||
|
#define HUSTR_10 "level 10: refueling base"
|
||||||
|
#define HUSTR_11 "level 11: 'o' of destruction!"
|
||||||
|
|
||||||
|
#define HUSTR_12 "level 12: the factory"
|
||||||
|
#define HUSTR_13 "level 13: downtown"
|
||||||
|
#define HUSTR_14 "level 14: the inmost dens"
|
||||||
|
#define HUSTR_15 "level 15: industrial zone"
|
||||||
|
#define HUSTR_16 "level 16: suburbs"
|
||||||
|
#define HUSTR_17 "level 17: tenements"
|
||||||
|
#define HUSTR_18 "level 18: the courtyard"
|
||||||
|
#define HUSTR_19 "level 19: the citadel"
|
||||||
|
#define HUSTR_20 "level 20: gotcha!"
|
||||||
|
|
||||||
|
#define HUSTR_21 "level 21: nirvana"
|
||||||
|
#define HUSTR_22 "level 22: the catacombs"
|
||||||
|
#define HUSTR_23 "level 23: barrels o' fun"
|
||||||
|
#define HUSTR_24 "level 24: the chasm"
|
||||||
|
#define HUSTR_25 "level 25: bloodfalls"
|
||||||
|
#define HUSTR_26 "level 26: the abandoned mines"
|
||||||
|
#define HUSTR_27 "level 27: monster condo"
|
||||||
|
#define HUSTR_28 "level 28: the spirit world"
|
||||||
|
#define HUSTR_29 "level 29: the living end"
|
||||||
|
#define HUSTR_30 "level 30: icon of sin"
|
||||||
|
|
||||||
|
#define HUSTR_31 "level 31: wolfenstein"
|
||||||
|
#define HUSTR_32 "level 32: grosse"
|
||||||
|
|
||||||
|
#define PHUSTR_1 "level 1: congo"
|
||||||
|
#define PHUSTR_2 "level 2: well of souls"
|
||||||
|
#define PHUSTR_3 "level 3: aztec"
|
||||||
|
#define PHUSTR_4 "level 4: caged"
|
||||||
|
#define PHUSTR_5 "level 5: ghost town"
|
||||||
|
#define PHUSTR_6 "level 6: baron's lair"
|
||||||
|
#define PHUSTR_7 "level 7: caughtyard"
|
||||||
|
#define PHUSTR_8 "level 8: realm"
|
||||||
|
#define PHUSTR_9 "level 9: abattoire"
|
||||||
|
#define PHUSTR_10 "level 10: onslaught"
|
||||||
|
#define PHUSTR_11 "level 11: hunted"
|
||||||
|
|
||||||
|
#define PHUSTR_12 "level 12: speed"
|
||||||
|
#define PHUSTR_13 "level 13: the crypt"
|
||||||
|
#define PHUSTR_14 "level 14: genesis"
|
||||||
|
#define PHUSTR_15 "level 15: the twilight"
|
||||||
|
#define PHUSTR_16 "level 16: the omen"
|
||||||
|
#define PHUSTR_17 "level 17: compound"
|
||||||
|
#define PHUSTR_18 "level 18: neurosphere"
|
||||||
|
#define PHUSTR_19 "level 19: nme"
|
||||||
|
#define PHUSTR_20 "level 20: the death domain"
|
||||||
|
|
||||||
|
#define PHUSTR_21 "level 21: slayer"
|
||||||
|
#define PHUSTR_22 "level 22: impossible mission"
|
||||||
|
#define PHUSTR_23 "level 23: tombstone"
|
||||||
|
#define PHUSTR_24 "level 24: the final frontier"
|
||||||
|
#define PHUSTR_25 "level 25: the temple of darkness"
|
||||||
|
#define PHUSTR_26 "level 26: bunker"
|
||||||
|
#define PHUSTR_27 "level 27: anti-christ"
|
||||||
|
#define PHUSTR_28 "level 28: the sewers"
|
||||||
|
#define PHUSTR_29 "level 29: odyssey of noises"
|
||||||
|
#define PHUSTR_30 "level 30: the gateway of hell"
|
||||||
|
|
||||||
|
#define PHUSTR_31 "level 31: cyberden"
|
||||||
|
#define PHUSTR_32 "level 32: go 2 it"
|
||||||
|
|
||||||
|
#define THUSTR_1 "level 1: system control"
|
||||||
|
#define THUSTR_2 "level 2: human bbq"
|
||||||
|
#define THUSTR_3 "level 3: power control"
|
||||||
|
#define THUSTR_4 "level 4: wormhole"
|
||||||
|
#define THUSTR_5 "level 5: hanger"
|
||||||
|
#define THUSTR_6 "level 6: open season"
|
||||||
|
#define THUSTR_7 "level 7: prison"
|
||||||
|
#define THUSTR_8 "level 8: metal"
|
||||||
|
#define THUSTR_9 "level 9: stronghold"
|
||||||
|
#define THUSTR_10 "level 10: redemption"
|
||||||
|
#define THUSTR_11 "level 11: storage facility"
|
||||||
|
|
||||||
|
#define THUSTR_12 "level 12: crater"
|
||||||
|
#define THUSTR_13 "level 13: nukage processing"
|
||||||
|
#define THUSTR_14 "level 14: steel works"
|
||||||
|
#define THUSTR_15 "level 15: dead zone"
|
||||||
|
#define THUSTR_16 "level 16: deepest reaches"
|
||||||
|
#define THUSTR_17 "level 17: processing area"
|
||||||
|
#define THUSTR_18 "level 18: mill"
|
||||||
|
#define THUSTR_19 "level 19: shipping/respawning"
|
||||||
|
#define THUSTR_20 "level 20: central processing"
|
||||||
|
|
||||||
|
#define THUSTR_21 "level 21: administration center"
|
||||||
|
#define THUSTR_22 "level 22: habitat"
|
||||||
|
#define THUSTR_23 "level 23: lunar mining project"
|
||||||
|
#define THUSTR_24 "level 24: quarry"
|
||||||
|
#define THUSTR_25 "level 25: baron's den"
|
||||||
|
#define THUSTR_26 "level 26: ballistyx"
|
||||||
|
#define THUSTR_27 "level 27: mount pain"
|
||||||
|
#define THUSTR_28 "level 28: heck"
|
||||||
|
#define THUSTR_29 "level 29: river styx"
|
||||||
|
#define THUSTR_30 "level 30: last call"
|
||||||
|
|
||||||
|
#define THUSTR_31 "level 31: pharaoh"
|
||||||
|
#define THUSTR_32 "level 32: caribbean"
|
||||||
|
|
||||||
|
#define HUSTR_CHATMACRO1 "I'm ready to kick butt!"
|
||||||
|
#define HUSTR_CHATMACRO2 "I'm OK."
|
||||||
|
#define HUSTR_CHATMACRO3 "I'm not looking too good!"
|
||||||
|
#define HUSTR_CHATMACRO4 "Help!"
|
||||||
|
#define HUSTR_CHATMACRO5 "You suck!"
|
||||||
|
#define HUSTR_CHATMACRO6 "Next time, scumbag..."
|
||||||
|
#define HUSTR_CHATMACRO7 "Come here!"
|
||||||
|
#define HUSTR_CHATMACRO8 "I'll take care of it."
|
||||||
|
#define HUSTR_CHATMACRO9 "Yes"
|
||||||
|
#define HUSTR_CHATMACRO0 "No"
|
||||||
|
|
||||||
|
#define HUSTR_TALKTOSELF1 "You mumble to yourself"
|
||||||
|
#define HUSTR_TALKTOSELF2 "Who's there?"
|
||||||
|
#define HUSTR_TALKTOSELF3 "You scare yourself"
|
||||||
|
#define HUSTR_TALKTOSELF4 "You start to rave"
|
||||||
|
#define HUSTR_TALKTOSELF5 "You've lost it..."
|
||||||
|
|
||||||
|
#define HUSTR_MESSAGESENT "[Message Sent]"
|
||||||
|
|
||||||
|
// The following should NOT be changed unless it seems
|
||||||
|
// just AWFULLY necessary
|
||||||
|
|
||||||
|
#define HUSTR_PLRGREEN "Green: "
|
||||||
|
#define HUSTR_PLRINDIGO "Indigo: "
|
||||||
|
#define HUSTR_PLRBROWN "Brown: "
|
||||||
|
#define HUSTR_PLRRED "Red: "
|
||||||
|
|
||||||
|
#define HUSTR_KEYGREEN 'g'
|
||||||
|
#define HUSTR_KEYINDIGO 'i'
|
||||||
|
#define HUSTR_KEYBROWN 'b'
|
||||||
|
#define HUSTR_KEYRED 'r'
|
||||||
|
|
||||||
|
//
|
||||||
|
// AM_map.C
|
||||||
|
//
|
||||||
|
|
||||||
|
#define AMSTR_FOLLOWON "Follow Mode ON"
|
||||||
|
#define AMSTR_FOLLOWOFF "Follow Mode OFF"
|
||||||
|
|
||||||
|
#define AMSTR_GRIDON "Grid ON"
|
||||||
|
#define AMSTR_GRIDOFF "Grid OFF"
|
||||||
|
|
||||||
|
#define AMSTR_MARKEDSPOT "Marked Spot"
|
||||||
|
#define AMSTR_MARKSCLEARED "All Marks Cleared"
|
||||||
|
|
||||||
|
//
|
||||||
|
// ST_stuff.C
|
||||||
|
//
|
||||||
|
|
||||||
|
#define STSTR_MUS "Music Change"
|
||||||
|
#define STSTR_NOMUS "IMPOSSIBLE SELECTION"
|
||||||
|
#define STSTR_DQDON "Degreelessness Mode On"
|
||||||
|
#define STSTR_DQDOFF "Degreelessness Mode Off"
|
||||||
|
|
||||||
|
#define STSTR_KFAADDED "Very Happy Ammo Added"
|
||||||
|
#define STSTR_FAADDED "Ammo (no keys) Added"
|
||||||
|
|
||||||
|
#define STSTR_NCON "No Clipping Mode ON"
|
||||||
|
#define STSTR_NCOFF "No Clipping Mode OFF"
|
||||||
|
|
||||||
|
#define STSTR_BEHOLD "inVuln, Str, Inviso, Rad, Allmap, or Lite-amp"
|
||||||
|
#define STSTR_BEHOLDX "Power-up Toggled"
|
||||||
|
|
||||||
|
#define STSTR_CHOPPERS "... doesn't suck - GM"
|
||||||
|
#define STSTR_CLEV "Changing Level..."
|
||||||
|
|
||||||
|
//
|
||||||
|
// F_Finale.C
|
||||||
|
//
|
||||||
|
#define E1TEXT \
|
||||||
|
"Once you beat the big badasses and\n"\
|
||||||
|
"clean out the moon base you're supposed\n"\
|
||||||
|
"to win, aren't you? Aren't you? Where's\n"\
|
||||||
|
"your fat reward and ticket home? What\n"\
|
||||||
|
"the hell is this? It's not supposed to\n"\
|
||||||
|
"end this way!\n"\
|
||||||
|
"\n" \
|
||||||
|
"It stinks like rotten meat, but looks\n"\
|
||||||
|
"like the lost Deimos base. Looks like\n"\
|
||||||
|
"you're stuck on The Shores of Hell.\n"\
|
||||||
|
"The only way out is through.\n"\
|
||||||
|
"\n"\
|
||||||
|
"To continue the DOOM experience, play\n"\
|
||||||
|
"The Shores of Hell and its amazing\n"\
|
||||||
|
"sequel, Inferno!\n"
|
||||||
|
|
||||||
|
|
||||||
|
#define E2TEXT \
|
||||||
|
"You've done it! The hideous cyber-\n"\
|
||||||
|
"demon lord that ruled the lost Deimos\n"\
|
||||||
|
"moon base has been slain and you\n"\
|
||||||
|
"are triumphant! But ... where are\n"\
|
||||||
|
"you? You clamber to the edge of the\n"\
|
||||||
|
"moon and look down to see the awful\n"\
|
||||||
|
"truth.\n" \
|
||||||
|
"\n"\
|
||||||
|
"Deimos floats above Hell itself!\n"\
|
||||||
|
"You've never heard of anyone escaping\n"\
|
||||||
|
"from Hell, but you'll make the bastards\n"\
|
||||||
|
"sorry they ever heard of you! Quickly,\n"\
|
||||||
|
"you rappel down to the surface of\n"\
|
||||||
|
"Hell.\n"\
|
||||||
|
"\n" \
|
||||||
|
"Now, it's on to the final chapter of\n"\
|
||||||
|
"DOOM! -- Inferno."
|
||||||
|
|
||||||
|
|
||||||
|
#define E3TEXT \
|
||||||
|
"The loathsome spiderdemon that\n"\
|
||||||
|
"masterminded the invasion of the moon\n"\
|
||||||
|
"bases and caused so much death has had\n"\
|
||||||
|
"its ass kicked for all time.\n"\
|
||||||
|
"\n"\
|
||||||
|
"A hidden doorway opens and you enter.\n"\
|
||||||
|
"You've proven too tough for Hell to\n"\
|
||||||
|
"contain, and now Hell at last plays\n"\
|
||||||
|
"fair -- for you emerge from the door\n"\
|
||||||
|
"to see the green fields of Earth!\n"\
|
||||||
|
"Home at last.\n" \
|
||||||
|
"\n"\
|
||||||
|
"You wonder what's been happening on\n"\
|
||||||
|
"Earth while you were battling evil\n"\
|
||||||
|
"unleashed. It's good that no Hell-\n"\
|
||||||
|
"spawn could have come through that\n"\
|
||||||
|
"door with you ..."
|
||||||
|
|
||||||
|
|
||||||
|
#define E4TEXT \
|
||||||
|
"the spider mastermind must have sent forth\n"\
|
||||||
|
"its legions of hellspawn before your\n"\
|
||||||
|
"final confrontation with that terrible\n"\
|
||||||
|
"beast from hell. but you stepped forward\n"\
|
||||||
|
"and brought forth eternal damnation and\n"\
|
||||||
|
"suffering upon the horde as a true hero\n"\
|
||||||
|
"would in the face of something so evil.\n"\
|
||||||
|
"\n"\
|
||||||
|
"besides, someone was gonna pay for what\n"\
|
||||||
|
"happened to daisy, your pet rabbit.\n"\
|
||||||
|
"\n"\
|
||||||
|
"but now, you see spread before you more\n"\
|
||||||
|
"potential pain and gibbitude as a nation\n"\
|
||||||
|
"of demons run amok among our cities.\n"\
|
||||||
|
"\n"\
|
||||||
|
"next stop, hell on earth!"
|
||||||
|
|
||||||
|
|
||||||
|
// after level 6, put this:
|
||||||
|
|
||||||
|
#define C1TEXT \
|
||||||
|
"YOU HAVE ENTERED DEEPLY INTO THE INFESTED\n" \
|
||||||
|
"STARPORT. BUT SOMETHING IS WRONG. THE\n" \
|
||||||
|
"MONSTERS HAVE BROUGHT THEIR OWN REALITY\n" \
|
||||||
|
"WITH THEM, AND THE STARPORT'S TECHNOLOGY\n" \
|
||||||
|
"IS BEING SUBVERTED BY THEIR PRESENCE.\n" \
|
||||||
|
"\n"\
|
||||||
|
"AHEAD, YOU SEE AN OUTPOST OF HELL, A\n" \
|
||||||
|
"FORTIFIED ZONE. IF YOU CAN GET PAST IT,\n" \
|
||||||
|
"YOU CAN PENETRATE INTO THE HAUNTED HEART\n" \
|
||||||
|
"OF THE STARBASE AND FIND THE CONTROLLING\n" \
|
||||||
|
"SWITCH WHICH HOLDS EARTH'S POPULATION\n" \
|
||||||
|
"HOSTAGE."
|
||||||
|
|
||||||
|
// After level 11, put this:
|
||||||
|
|
||||||
|
#define C2TEXT \
|
||||||
|
"YOU HAVE WON! YOUR VICTORY HAS ENABLED\n" \
|
||||||
|
"HUMANKIND TO EVACUATE EARTH AND ESCAPE\n"\
|
||||||
|
"THE NIGHTMARE. NOW YOU ARE THE ONLY\n"\
|
||||||
|
"HUMAN LEFT ON THE FACE OF THE PLANET.\n"\
|
||||||
|
"CANNIBAL MUTATIONS, CARNIVOROUS ALIENS,\n"\
|
||||||
|
"AND EVIL SPIRITS ARE YOUR ONLY NEIGHBORS.\n"\
|
||||||
|
"YOU SIT BACK AND WAIT FOR DEATH, CONTENT\n"\
|
||||||
|
"THAT YOU HAVE SAVED YOUR SPECIES.\n"\
|
||||||
|
"\n"\
|
||||||
|
"BUT THEN, EARTH CONTROL BEAMS DOWN A\n"\
|
||||||
|
"MESSAGE FROM SPACE: \"SENSORS HAVE LOCATED\n"\
|
||||||
|
"THE SOURCE OF THE ALIEN INVASION. IF YOU\n"\
|
||||||
|
"GO THERE, YOU MAY BE ABLE TO BLOCK THEIR\n"\
|
||||||
|
"ENTRY. THE ALIEN BASE IS IN THE HEART OF\n"\
|
||||||
|
"YOUR OWN HOME CITY, NOT FAR FROM THE\n"\
|
||||||
|
"STARPORT.\" SLOWLY AND PAINFULLY YOU GET\n"\
|
||||||
|
"UP AND RETURN TO THE FRAY."
|
||||||
|
|
||||||
|
|
||||||
|
// After level 20, put this:
|
||||||
|
|
||||||
|
#define C3TEXT \
|
||||||
|
"YOU ARE AT THE CORRUPT HEART OF THE CITY,\n"\
|
||||||
|
"SURROUNDED BY THE CORPSES OF YOUR ENEMIES.\n"\
|
||||||
|
"YOU SEE NO WAY TO DESTROY THE CREATURES'\n"\
|
||||||
|
"ENTRYWAY ON THIS SIDE, SO YOU CLENCH YOUR\n"\
|
||||||
|
"TEETH AND PLUNGE THROUGH IT.\n"\
|
||||||
|
"\n"\
|
||||||
|
"THERE MUST BE A WAY TO CLOSE IT ON THE\n"\
|
||||||
|
"OTHER SIDE. WHAT DO YOU CARE IF YOU'VE\n"\
|
||||||
|
"GOT TO GO THROUGH HELL TO GET TO IT?"
|
||||||
|
|
||||||
|
|
||||||
|
// After level 29, put this:
|
||||||
|
|
||||||
|
#define C4TEXT \
|
||||||
|
"THE HORRENDOUS VISAGE OF THE BIGGEST\n"\
|
||||||
|
"DEMON YOU'VE EVER SEEN CRUMBLES BEFORE\n"\
|
||||||
|
"YOU, AFTER YOU PUMP YOUR ROCKETS INTO\n"\
|
||||||
|
"HIS EXPOSED BRAIN. THE MONSTER SHRIVELS\n"\
|
||||||
|
"UP AND DIES, ITS THRASHING LIMBS\n"\
|
||||||
|
"DEVASTATING UNTOLD MILES OF HELL'S\n"\
|
||||||
|
"SURFACE.\n"\
|
||||||
|
"\n"\
|
||||||
|
"YOU'VE DONE IT. THE INVASION IS OVER.\n"\
|
||||||
|
"EARTH IS SAVED. HELL IS A WRECK. YOU\n"\
|
||||||
|
"WONDER WHERE BAD FOLKS WILL GO WHEN THEY\n"\
|
||||||
|
"DIE, NOW. WIPING THE SWEAT FROM YOUR\n"\
|
||||||
|
"FOREHEAD YOU BEGIN THE LONG TREK BACK\n"\
|
||||||
|
"HOME. REBUILDING EARTH OUGHT TO BE A\n"\
|
||||||
|
"LOT MORE FUN THAN RUINING IT WAS.\n"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Before level 31, put this:
|
||||||
|
|
||||||
|
#define C5TEXT \
|
||||||
|
"CONGRATULATIONS, YOU'VE FOUND THE SECRET\n"\
|
||||||
|
"LEVEL! LOOKS LIKE IT'S BEEN BUILT BY\n"\
|
||||||
|
"HUMANS, RATHER THAN DEMONS. YOU WONDER\n"\
|
||||||
|
"WHO THE INMATES OF THIS CORNER OF HELL\n"\
|
||||||
|
"WILL BE."
|
||||||
|
|
||||||
|
|
||||||
|
// Before level 32, put this:
|
||||||
|
|
||||||
|
#define C6TEXT \
|
||||||
|
"CONGRATULATIONS, YOU'VE FOUND THE\n"\
|
||||||
|
"SUPER SECRET LEVEL! YOU'D BETTER\n"\
|
||||||
|
"BLAZE THROUGH THIS ONE!\n"
|
||||||
|
|
||||||
|
|
||||||
|
// after map 06
|
||||||
|
|
||||||
|
#define P1TEXT \
|
||||||
|
"You gloat over the steaming carcass of the\n"\
|
||||||
|
"Guardian. With its death, you've wrested\n"\
|
||||||
|
"the Accelerator from the stinking claws\n"\
|
||||||
|
"of Hell. You relax and glance around the\n"\
|
||||||
|
"room. Damn! There was supposed to be at\n"\
|
||||||
|
"least one working prototype, but you can't\n"\
|
||||||
|
"see it. The demons must have taken it.\n"\
|
||||||
|
"\n"\
|
||||||
|
"You must find the prototype, or all your\n"\
|
||||||
|
"struggles will have been wasted. Keep\n"\
|
||||||
|
"moving, keep fighting, keep killing.\n"\
|
||||||
|
"Oh yes, keep living, too."
|
||||||
|
|
||||||
|
|
||||||
|
// after map 11
|
||||||
|
|
||||||
|
#define P2TEXT \
|
||||||
|
"Even the deadly Arch-Vile labyrinth could\n"\
|
||||||
|
"not stop you, and you've gotten to the\n"\
|
||||||
|
"prototype Accelerator which is soon\n"\
|
||||||
|
"efficiently and permanently deactivated.\n"\
|
||||||
|
"\n"\
|
||||||
|
"You're good at that kind of thing."
|
||||||
|
|
||||||
|
|
||||||
|
// after map 20
|
||||||
|
|
||||||
|
#define P3TEXT \
|
||||||
|
"You've bashed and battered your way into\n"\
|
||||||
|
"the heart of the devil-hive. Time for a\n"\
|
||||||
|
"Search-and-Destroy mission, aimed at the\n"\
|
||||||
|
"Gatekeeper, whose foul offspring is\n"\
|
||||||
|
"cascading to Earth. Yeah, he's bad. But\n"\
|
||||||
|
"you know who's worse!\n"\
|
||||||
|
"\n"\
|
||||||
|
"Grinning evilly, you check your gear, and\n"\
|
||||||
|
"get ready to give the bastard a little Hell\n"\
|
||||||
|
"of your own making!"
|
||||||
|
|
||||||
|
// after map 30
|
||||||
|
|
||||||
|
#define P4TEXT \
|
||||||
|
"The Gatekeeper's evil face is splattered\n"\
|
||||||
|
"all over the place. As its tattered corpse\n"\
|
||||||
|
"collapses, an inverted Gate forms and\n"\
|
||||||
|
"sucks down the shards of the last\n"\
|
||||||
|
"prototype Accelerator, not to mention the\n"\
|
||||||
|
"few remaining demons. You're done. Hell\n"\
|
||||||
|
"has gone back to pounding bad dead folks \n"\
|
||||||
|
"instead of good live ones. Remember to\n"\
|
||||||
|
"tell your grandkids to put a rocket\n"\
|
||||||
|
"launcher in your coffin. If you go to Hell\n"\
|
||||||
|
"when you die, you'll need it for some\n"\
|
||||||
|
"final cleaning-up ..."
|
||||||
|
|
||||||
|
// before map 31
|
||||||
|
|
||||||
|
#define P5TEXT \
|
||||||
|
"You've found the second-hardest level we\n"\
|
||||||
|
"got. Hope you have a saved game a level or\n"\
|
||||||
|
"two previous. If not, be prepared to die\n"\
|
||||||
|
"aplenty. For master marines only."
|
||||||
|
|
||||||
|
// before map 32
|
||||||
|
|
||||||
|
#define P6TEXT \
|
||||||
|
"Betcha wondered just what WAS the hardest\n"\
|
||||||
|
"level we had ready for ya? Now you know.\n"\
|
||||||
|
"No one gets out alive."
|
||||||
|
|
||||||
|
|
||||||
|
#define T1TEXT \
|
||||||
|
"You've fought your way out of the infested\n"\
|
||||||
|
"experimental labs. It seems that UAC has\n"\
|
||||||
|
"once again gulped it down. With their\n"\
|
||||||
|
"high turnover, it must be hard for poor\n"\
|
||||||
|
"old UAC to buy corporate health insurance\n"\
|
||||||
|
"nowadays..\n"\
|
||||||
|
"\n"\
|
||||||
|
"Ahead lies the military complex, now\n"\
|
||||||
|
"swarming with diseased horrors hot to get\n"\
|
||||||
|
"their teeth into you. With luck, the\n"\
|
||||||
|
"complex still has some warlike ordnance\n"\
|
||||||
|
"laying around."
|
||||||
|
|
||||||
|
|
||||||
|
#define T2TEXT \
|
||||||
|
"You hear the grinding of heavy machinery\n"\
|
||||||
|
"ahead. You sure hope they're not stamping\n"\
|
||||||
|
"out new hellspawn, but you're ready to\n"\
|
||||||
|
"ream out a whole herd if you have to.\n"\
|
||||||
|
"They might be planning a blood feast, but\n"\
|
||||||
|
"you feel about as mean as two thousand\n"\
|
||||||
|
"maniacs packed into one mad killer.\n"\
|
||||||
|
"\n"\
|
||||||
|
"You don't plan to go down easy."
|
||||||
|
|
||||||
|
|
||||||
|
#define T3TEXT \
|
||||||
|
"The vista opening ahead looks real damn\n"\
|
||||||
|
"familiar. Smells familiar, too -- like\n"\
|
||||||
|
"fried excrement. You didn't like this\n"\
|
||||||
|
"place before, and you sure as hell ain't\n"\
|
||||||
|
"planning to like it now. The more you\n"\
|
||||||
|
"brood on it, the madder you get.\n"\
|
||||||
|
"Hefting your gun, an evil grin trickles\n"\
|
||||||
|
"onto your face. Time to take some names."
|
||||||
|
|
||||||
|
#define T4TEXT \
|
||||||
|
"Suddenly, all is silent, from one horizon\n"\
|
||||||
|
"to the other. The agonizing echo of Hell\n"\
|
||||||
|
"fades away, the nightmare sky turns to\n"\
|
||||||
|
"blue, the heaps of monster corpses start \n"\
|
||||||
|
"to evaporate along with the evil stench \n"\
|
||||||
|
"that filled the air. Jeeze, maybe you've\n"\
|
||||||
|
"done it. Have you really won?\n"\
|
||||||
|
"\n"\
|
||||||
|
"Something rumbles in the distance.\n"\
|
||||||
|
"A blue light begins to glow inside the\n"\
|
||||||
|
"ruined skull of the demon-spitter."
|
||||||
|
|
||||||
|
|
||||||
|
#define T5TEXT \
|
||||||
|
"What now? Looks totally different. Kind\n"\
|
||||||
|
"of like King Tut's condo. Well,\n"\
|
||||||
|
"whatever's here can't be any worse\n"\
|
||||||
|
"than usual. Can it? Or maybe it's best\n"\
|
||||||
|
"to let sleeping gods lie.."
|
||||||
|
|
||||||
|
|
||||||
|
#define T6TEXT \
|
||||||
|
"Time for a vacation. You've burst the\n"\
|
||||||
|
"bowels of hell and by golly you're ready\n"\
|
||||||
|
"for a break. You mutter to yourself,\n"\
|
||||||
|
"Maybe someone else can kick Hell's ass\n"\
|
||||||
|
"next time around. Ahead lies a quiet town,\n"\
|
||||||
|
"with peaceful flowing water, quaint\n"\
|
||||||
|
"buildings, and presumably no Hellspawn.\n"\
|
||||||
|
"\n"\
|
||||||
|
"As you step off the transport, you hear\n"\
|
||||||
|
"the stomp of a cyberdemon's iron shoe."
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Character cast strings F_FINALE.C
|
||||||
|
//
|
||||||
|
#define CC_ZOMBIE "ZOMBIEMAN"
|
||||||
|
#define CC_SHOTGUN "SHOTGUN GUY"
|
||||||
|
#define CC_HEAVY "HEAVY WEAPON DUDE"
|
||||||
|
#define CC_IMP "IMP"
|
||||||
|
#define CC_DEMON "DEMON"
|
||||||
|
#define CC_LOST "LOST SOUL"
|
||||||
|
#define CC_CACO "CACODEMON"
|
||||||
|
#define CC_HELL "HELL KNIGHT"
|
||||||
|
#define CC_BARON "BARON OF HELL"
|
||||||
|
#define CC_ARACH "ARACHNOTRON"
|
||||||
|
#define CC_PAIN "PAIN ELEMENTAL"
|
||||||
|
#define CC_REVEN "REVENANT"
|
||||||
|
#define CC_MANCU "MANCUBUS"
|
||||||
|
#define CC_ARCH "ARCH-VILE"
|
||||||
|
#define CC_SPIDER "THE SPIDER MASTERMIND"
|
||||||
|
#define CC_CYBER "THE CYBERDEMON"
|
||||||
|
#define CC_HERO "OUR HERO"
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
122
programs/games/doom/trunk/h/d_event.h
Normal file
122
programs/games/doom/trunk/h/d_event.h
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __D_EVENT__
|
||||||
|
#define __D_EVENT__
|
||||||
|
|
||||||
|
|
||||||
|
#include "doomtype.h"
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Event handling.
|
||||||
|
//
|
||||||
|
|
||||||
|
// Input event types.
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
ev_keydown,
|
||||||
|
ev_keyup,
|
||||||
|
ev_mouse,
|
||||||
|
ev_joystick
|
||||||
|
} evtype_t;
|
||||||
|
|
||||||
|
// Event structure.
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
evtype_t type;
|
||||||
|
int data1; // keys / mouse/joystick buttons
|
||||||
|
int data2; // mouse/joystick x move
|
||||||
|
int data3; // mouse/joystick y move
|
||||||
|
} event_t;
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
ga_nothing,
|
||||||
|
ga_loadlevel,
|
||||||
|
ga_newgame,
|
||||||
|
ga_loadgame,
|
||||||
|
ga_savegame,
|
||||||
|
ga_playdemo,
|
||||||
|
ga_completed,
|
||||||
|
ga_victory,
|
||||||
|
ga_worlddone,
|
||||||
|
ga_screenshot
|
||||||
|
} gameaction_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Button/action code definitions.
|
||||||
|
//
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
// Press "Fire".
|
||||||
|
BT_ATTACK = 1,
|
||||||
|
// Use button, to open doors, activate switches.
|
||||||
|
BT_USE = 2,
|
||||||
|
|
||||||
|
// Flag: game events, not really buttons.
|
||||||
|
BT_SPECIAL = 128,
|
||||||
|
BT_SPECIALMASK = 3,
|
||||||
|
|
||||||
|
// Flag, weapon change pending.
|
||||||
|
// If true, the next 3 bits hold weapon num.
|
||||||
|
BT_CHANGE = 4,
|
||||||
|
// The 3bit weapon mask and shift, convenience.
|
||||||
|
BT_WEAPONMASK = (8+16+32),
|
||||||
|
BT_WEAPONSHIFT = 3,
|
||||||
|
|
||||||
|
// Pause the game.
|
||||||
|
BTS_PAUSE = 1,
|
||||||
|
// Save the game at each console.
|
||||||
|
BTS_SAVEGAME = 2,
|
||||||
|
|
||||||
|
// Savegame slot numbers
|
||||||
|
// occupy the second byte of buttons.
|
||||||
|
BTS_SAVEMASK = (4+8+16),
|
||||||
|
BTS_SAVESHIFT = 2,
|
||||||
|
|
||||||
|
} buttoncode_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// GLOBAL VARIABLES
|
||||||
|
//
|
||||||
|
#define MAXEVENTS 64
|
||||||
|
|
||||||
|
extern event_t events[MAXEVENTS];
|
||||||
|
extern int eventhead;
|
||||||
|
extern int eventtail;
|
||||||
|
|
||||||
|
extern gameaction_t gameaction;
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
433
programs/games/doom/trunk/h/d_french.h
Normal file
433
programs/games/doom/trunk/h/d_french.h
Normal file
@ -0,0 +1,433 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Printed strings, french translation.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __D_FRENCH__
|
||||||
|
#define __D_FRENCH__
|
||||||
|
|
||||||
|
//
|
||||||
|
// D_Main.C
|
||||||
|
//
|
||||||
|
#define D_DEVSTR "MODE DEVELOPPEMENT ON.\n"
|
||||||
|
#define D_CDROM "VERSION CD-ROM: DEFAULT.CFG DANS C:\\DOOMDATA\n"
|
||||||
|
|
||||||
|
//
|
||||||
|
// M_Menu.C
|
||||||
|
//
|
||||||
|
#define PRESSKEY "APPUYEZ SUR UNE TOUCHE."
|
||||||
|
#define PRESSYN "APPUYEZ SUR Y OU N"
|
||||||
|
#define QUITMSG "VOUS VOULEZ VRAIMENT\nQUITTER CE SUPER JEU?"
|
||||||
|
#define LOADNET "VOUS NE POUVEZ PAS CHARGER\nUN JEU EN RESEAU!\n\n"PRESSKEY
|
||||||
|
#define QLOADNET "CHARGEMENT RAPIDE INTERDIT EN RESEAU!\n\n"PRESSKEY
|
||||||
|
#define QSAVESPOT "VOUS N'AVEZ PAS CHOISI UN EMPLACEMENT!\n\n"PRESSKEY
|
||||||
|
#define SAVEDEAD "VOUS NE POUVEZ PAS SAUVER SI VOUS NE JOUEZ "\
|
||||||
|
"PAS!\n\n"PRESSKEY
|
||||||
|
#define QSPROMPT "SAUVEGARDE RAPIDE DANS LE FICHIER \n\n'%s'?\n\n"PRESSYN
|
||||||
|
#define QLPROMPT "VOULEZ-VOUS CHARGER LA SAUVEGARDE"\
|
||||||
|
"\n\n'%s'?\n\n"PRESSYN
|
||||||
|
#define NEWGAME "VOUS NE POUVEZ PAS LANCER\n"\
|
||||||
|
"UN NOUVEAU JEU SUR RESEAU.\n\n"PRESSKEY
|
||||||
|
#define NIGHTMARE "VOUS CONFIRMEZ? CE NIVEAU EST\n"\
|
||||||
|
"VRAIMENT IMPITOYABLE!n"PRESSYN
|
||||||
|
#define SWSTRING "CECI EST UNE VERSION SHAREWARE DE DOOM.\n\n"\
|
||||||
|
"VOUS DEVRIEZ COMMANDER LA TRILOGIE COMPLETE.\n\n"PRESSKEY
|
||||||
|
#define MSGOFF "MESSAGES OFF"
|
||||||
|
#define MSGON "MESSAGES ON"
|
||||||
|
#define NETEND "VOUS NE POUVEZ PAS METTRE FIN A UN JEU SUR "\
|
||||||
|
"RESEAU!\n\n"PRESSKEY
|
||||||
|
#define ENDGAME "VOUS VOULEZ VRAIMENT METTRE FIN AU JEU?\n\n"PRESSYN
|
||||||
|
|
||||||
|
#define DOSY "(APPUYEZ SUR Y POUR REVENIR AU OS.)"
|
||||||
|
|
||||||
|
#define DETAILHI "GRAPHISMES MAXIMUM "
|
||||||
|
#define DETAILLO "GRAPHISMES MINIMUM "
|
||||||
|
#define GAMMALVL0 "CORRECTION GAMMA OFF"
|
||||||
|
#define GAMMALVL1 "CORRECTION GAMMA NIVEAU 1"
|
||||||
|
#define GAMMALVL2 "CORRECTION GAMMA NIVEAU 2"
|
||||||
|
#define GAMMALVL3 "CORRECTION GAMMA NIVEAU 3"
|
||||||
|
#define GAMMALVL4 "CORRECTION GAMMA NIVEAU 4"
|
||||||
|
#define EMPTYSTRING "EMPLACEMENT VIDE"
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_inter.C
|
||||||
|
//
|
||||||
|
#define GOTARMOR "ARMURE RECUPEREE."
|
||||||
|
#define GOTMEGA "MEGA-ARMURE RECUPEREE!"
|
||||||
|
#define GOTHTHBONUS "BONUS DE SANTE RECUPERE."
|
||||||
|
#define GOTARMBONUS "BONUS D'ARMURE RECUPERE."
|
||||||
|
#define GOTSTIM "STIMPACK RECUPERE."
|
||||||
|
#define GOTMEDINEED "MEDIKIT RECUPERE. VOUS EN AVEZ VRAIMENT BESOIN!"
|
||||||
|
#define GOTMEDIKIT "MEDIKIT RECUPERE."
|
||||||
|
#define GOTSUPER "SUPERCHARGE!"
|
||||||
|
|
||||||
|
#define GOTBLUECARD "CARTE MAGNETIQUE BLEUE RECUPEREE."
|
||||||
|
#define GOTYELWCARD "CARTE MAGNETIQUE JAUNE RECUPEREE."
|
||||||
|
#define GOTREDCARD "CARTE MAGNETIQUE ROUGE RECUPEREE."
|
||||||
|
#define GOTBLUESKUL "CLEF CRANE BLEUE RECUPEREE."
|
||||||
|
#define GOTYELWSKUL "CLEF CRANE JAUNE RECUPEREE."
|
||||||
|
#define GOTREDSKULL "CLEF CRANE ROUGE RECUPEREE."
|
||||||
|
|
||||||
|
#define GOTINVUL "INVULNERABILITE!"
|
||||||
|
#define GOTBERSERK "BERSERK!"
|
||||||
|
#define GOTINVIS "INVISIBILITE PARTIELLE "
|
||||||
|
#define GOTSUIT "COMBINAISON ANTI-RADIATIONS "
|
||||||
|
#define GOTMAP "CARTE INFORMATIQUE "
|
||||||
|
#define GOTVISOR "VISEUR A AMPLIFICATION DE LUMIERE "
|
||||||
|
#define GOTMSPHERE "MEGASPHERE!"
|
||||||
|
|
||||||
|
#define GOTCLIP "CHARGEUR RECUPERE."
|
||||||
|
#define GOTCLIPBOX "BOITE DE BALLES RECUPEREE."
|
||||||
|
#define GOTROCKET "ROQUETTE RECUPEREE."
|
||||||
|
#define GOTROCKBOX "CAISSE DE ROQUETTES RECUPEREE."
|
||||||
|
#define GOTCELL "CELLULE D'ENERGIE RECUPEREE."
|
||||||
|
#define GOTCELLBOX "PACK DE CELLULES D'ENERGIE RECUPERE."
|
||||||
|
#define GOTSHELLS "4 CARTOUCHES RECUPEREES."
|
||||||
|
#define GOTSHELLBOX "BOITE DE CARTOUCHES RECUPEREE."
|
||||||
|
#define GOTBACKPACK "SAC PLEIN DE MUNITIONS RECUPERE!"
|
||||||
|
|
||||||
|
#define GOTBFG9000 "VOUS AVEZ UN BFG9000! OH, OUI!"
|
||||||
|
#define GOTCHAINGUN "VOUS AVEZ LA MITRAILLEUSE!"
|
||||||
|
#define GOTCHAINSAW "UNE TRONCONNEUSE!"
|
||||||
|
#define GOTLAUNCHER "VOUS AVEZ UN LANCE-ROQUETTES!"
|
||||||
|
#define GOTPLASMA "VOUS AVEZ UN FUSIL A PLASMA!"
|
||||||
|
#define GOTSHOTGUN "VOUS AVEZ UN FUSIL!"
|
||||||
|
#define GOTSHOTGUN2 "VOUS AVEZ UN SUPER FUSIL!"
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_Doors.C
|
||||||
|
//
|
||||||
|
#define PD_BLUEO "IL VOUS FAUT UNE CLEF BLEUE"
|
||||||
|
#define PD_REDO "IL VOUS FAUT UNE CLEF ROUGE"
|
||||||
|
#define PD_YELLOWO "IL VOUS FAUT UNE CLEF JAUNE"
|
||||||
|
#define PD_BLUEK PD_BLUEO
|
||||||
|
#define PD_REDK PD_REDO
|
||||||
|
#define PD_YELLOWK PD_YELLOWO
|
||||||
|
|
||||||
|
//
|
||||||
|
// G_game.C
|
||||||
|
//
|
||||||
|
#define GGSAVED "JEU SAUVEGARDE."
|
||||||
|
|
||||||
|
//
|
||||||
|
// HU_stuff.C
|
||||||
|
//
|
||||||
|
#define HUSTR_MSGU "[MESSAGE NON ENVOYE]"
|
||||||
|
|
||||||
|
#define HUSTR_E1M1 "E1M1: HANGAR"
|
||||||
|
#define HUSTR_E1M2 "E1M2: USINE NUCLEAIRE "
|
||||||
|
#define HUSTR_E1M3 "E1M3: RAFFINERIE DE TOXINES "
|
||||||
|
#define HUSTR_E1M4 "E1M4: CENTRE DE CONTROLE "
|
||||||
|
#define HUSTR_E1M5 "E1M5: LABORATOIRE PHOBOS "
|
||||||
|
#define HUSTR_E1M6 "E1M6: TRAITEMENT CENTRAL "
|
||||||
|
#define HUSTR_E1M7 "E1M7: CENTRE INFORMATIQUE "
|
||||||
|
#define HUSTR_E1M8 "E1M8: ANOMALIE PHOBOS "
|
||||||
|
#define HUSTR_E1M9 "E1M9: BASE MILITAIRE "
|
||||||
|
|
||||||
|
#define HUSTR_E2M1 "E2M1: ANOMALIE DEIMOS "
|
||||||
|
#define HUSTR_E2M2 "E2M2: ZONE DE CONFINEMENT "
|
||||||
|
#define HUSTR_E2M3 "E2M3: RAFFINERIE"
|
||||||
|
#define HUSTR_E2M4 "E2M4: LABORATOIRE DEIMOS "
|
||||||
|
#define HUSTR_E2M5 "E2M5: CENTRE DE CONTROLE "
|
||||||
|
#define HUSTR_E2M6 "E2M6: HALLS DES DAMNES "
|
||||||
|
#define HUSTR_E2M7 "E2M7: CUVES DE REPRODUCTION "
|
||||||
|
#define HUSTR_E2M8 "E2M8: TOUR DE BABEL "
|
||||||
|
#define HUSTR_E2M9 "E2M9: FORTERESSE DU MYSTERE "
|
||||||
|
|
||||||
|
#define HUSTR_E3M1 "E3M1: DONJON DE L'ENFER "
|
||||||
|
#define HUSTR_E3M2 "E3M2: BOURBIER DU DESESPOIR "
|
||||||
|
#define HUSTR_E3M3 "E3M3: PANDEMONIUM"
|
||||||
|
#define HUSTR_E3M4 "E3M4: MAISON DE LA DOULEUR "
|
||||||
|
#define HUSTR_E3M5 "E3M5: CATHEDRALE PROFANE "
|
||||||
|
#define HUSTR_E3M6 "E3M6: MONT EREBUS"
|
||||||
|
#define HUSTR_E3M7 "E3M7: LIMBES"
|
||||||
|
#define HUSTR_E3M8 "E3M8: DIS"
|
||||||
|
#define HUSTR_E3M9 "E3M9: CLAPIERS"
|
||||||
|
|
||||||
|
#define HUSTR_1 "NIVEAU 1: ENTREE "
|
||||||
|
#define HUSTR_2 "NIVEAU 2: HALLS SOUTERRAINS "
|
||||||
|
#define HUSTR_3 "NIVEAU 3: LE FEU NOURRI "
|
||||||
|
#define HUSTR_4 "NIVEAU 4: LE FOYER "
|
||||||
|
#define HUSTR_5 "NIVEAU 5: LES EGOUTS "
|
||||||
|
#define HUSTR_6 "NIVEAU 6: LE BROYEUR "
|
||||||
|
#define HUSTR_7 "NIVEAU 7: L'HERBE DE LA MORT"
|
||||||
|
#define HUSTR_8 "NIVEAU 8: RUSES ET PIEGES "
|
||||||
|
#define HUSTR_9 "NIVEAU 9: LE PUITS "
|
||||||
|
#define HUSTR_10 "NIVEAU 10: BASE DE RAVITAILLEMENT "
|
||||||
|
#define HUSTR_11 "NIVEAU 11: LE CERCLE DE LA MORT!"
|
||||||
|
|
||||||
|
#define HUSTR_12 "NIVEAU 12: L'USINE "
|
||||||
|
#define HUSTR_13 "NIVEAU 13: LE CENTRE VILLE"
|
||||||
|
#define HUSTR_14 "NIVEAU 14: LES ANTRES PROFONDES "
|
||||||
|
#define HUSTR_15 "NIVEAU 15: LA ZONE INDUSTRIELLE "
|
||||||
|
#define HUSTR_16 "NIVEAU 16: LA BANLIEUE"
|
||||||
|
#define HUSTR_17 "NIVEAU 17: LES IMMEUBLES"
|
||||||
|
#define HUSTR_18 "NIVEAU 18: LA COUR "
|
||||||
|
#define HUSTR_19 "NIVEAU 19: LA CITADELLE "
|
||||||
|
#define HUSTR_20 "NIVEAU 20: JE T'AI EU!"
|
||||||
|
|
||||||
|
#define HUSTR_21 "NIVEAU 21: LE NIRVANA"
|
||||||
|
#define HUSTR_22 "NIVEAU 22: LES CATACOMBES "
|
||||||
|
#define HUSTR_23 "NIVEAU 23: LA GRANDE FETE "
|
||||||
|
#define HUSTR_24 "NIVEAU 24: LE GOUFFRE "
|
||||||
|
#define HUSTR_25 "NIVEAU 25: LES CHUTES DE SANG"
|
||||||
|
#define HUSTR_26 "NIVEAU 26: LES MINES ABANDONNEES "
|
||||||
|
#define HUSTR_27 "NIVEAU 27: CHEZ LES MONSTRES "
|
||||||
|
#define HUSTR_28 "NIVEAU 28: LE MONDE DE L'ESPRIT "
|
||||||
|
#define HUSTR_29 "NIVEAU 29: LA LIMITE "
|
||||||
|
#define HUSTR_30 "NIVEAU 30: L'ICONE DU PECHE "
|
||||||
|
|
||||||
|
#define HUSTR_31 "NIVEAU 31: WOLFENSTEIN"
|
||||||
|
#define HUSTR_32 "NIVEAU 32: LE MASSACRE"
|
||||||
|
|
||||||
|
|
||||||
|
#define HUSTR_CHATMACRO1 "JE SUIS PRET A LEUR EN FAIRE BAVER!"
|
||||||
|
#define HUSTR_CHATMACRO2 "JE VAIS BIEN."
|
||||||
|
#define HUSTR_CHATMACRO3 "JE N'AI PAS L'AIR EN FORME!"
|
||||||
|
#define HUSTR_CHATMACRO4 "AU SECOURS!"
|
||||||
|
#define HUSTR_CHATMACRO5 "TU CRAINS!"
|
||||||
|
#define HUSTR_CHATMACRO6 "LA PROCHAINE FOIS, MINABLE..."
|
||||||
|
#define HUSTR_CHATMACRO7 "VIENS ICI!"
|
||||||
|
#define HUSTR_CHATMACRO8 "JE VAIS M'EN OCCUPER."
|
||||||
|
#define HUSTR_CHATMACRO9 "OUI"
|
||||||
|
#define HUSTR_CHATMACRO0 "NON"
|
||||||
|
|
||||||
|
#define HUSTR_TALKTOSELF1 "VOUS PARLEZ TOUT SEUL "
|
||||||
|
#define HUSTR_TALKTOSELF2 "QUI EST LA?"
|
||||||
|
#define HUSTR_TALKTOSELF3 "VOUS VOUS FAITES PEUR "
|
||||||
|
#define HUSTR_TALKTOSELF4 "VOUS COMMENCEZ A DELIRER "
|
||||||
|
#define HUSTR_TALKTOSELF5 "VOUS ETES LARGUE..."
|
||||||
|
|
||||||
|
#define HUSTR_MESSAGESENT "[MESSAGE ENVOYE]"
|
||||||
|
|
||||||
|
// The following should NOT be changed unless it seems
|
||||||
|
// just AWFULLY necessary
|
||||||
|
|
||||||
|
#define HUSTR_PLRGREEN "VERT: "
|
||||||
|
#define HUSTR_PLRINDIGO "INDIGO: "
|
||||||
|
#define HUSTR_PLRBROWN "BRUN: "
|
||||||
|
#define HUSTR_PLRRED "ROUGE: "
|
||||||
|
|
||||||
|
#define HUSTR_KEYGREEN 'g' // french key should be "V"
|
||||||
|
#define HUSTR_KEYINDIGO 'i'
|
||||||
|
#define HUSTR_KEYBROWN 'b'
|
||||||
|
#define HUSTR_KEYRED 'r'
|
||||||
|
|
||||||
|
//
|
||||||
|
// AM_map.C
|
||||||
|
//
|
||||||
|
|
||||||
|
#define AMSTR_FOLLOWON "MODE POURSUITE ON"
|
||||||
|
#define AMSTR_FOLLOWOFF "MODE POURSUITE OFF"
|
||||||
|
|
||||||
|
#define AMSTR_GRIDON "GRILLE ON"
|
||||||
|
#define AMSTR_GRIDOFF "GRILLE OFF"
|
||||||
|
|
||||||
|
#define AMSTR_MARKEDSPOT "REPERE MARQUE "
|
||||||
|
#define AMSTR_MARKSCLEARED "REPERES EFFACES "
|
||||||
|
|
||||||
|
//
|
||||||
|
// ST_stuff.C
|
||||||
|
//
|
||||||
|
|
||||||
|
#define STSTR_MUS "CHANGEMENT DE MUSIQUE "
|
||||||
|
#define STSTR_NOMUS "IMPOSSIBLE SELECTION"
|
||||||
|
#define STSTR_DQDON "INVULNERABILITE ON "
|
||||||
|
#define STSTR_DQDOFF "INVULNERABILITE OFF"
|
||||||
|
|
||||||
|
#define STSTR_KFAADDED "ARMEMENT MAXIMUM! "
|
||||||
|
#define STSTR_FAADDED "ARMES (SAUF CLEFS) AJOUTEES"
|
||||||
|
|
||||||
|
#define STSTR_NCON "BARRIERES ON"
|
||||||
|
#define STSTR_NCOFF "BARRIERES OFF"
|
||||||
|
|
||||||
|
#define STSTR_BEHOLD " inVuln, Str, Inviso, Rad, Allmap, or Lite-amp"
|
||||||
|
#define STSTR_BEHOLDX "AMELIORATION ACTIVEE"
|
||||||
|
|
||||||
|
#define STSTR_CHOPPERS "... DOESN'T SUCK - GM"
|
||||||
|
#define STSTR_CLEV "CHANGEMENT DE NIVEAU..."
|
||||||
|
|
||||||
|
//
|
||||||
|
// F_Finale.C
|
||||||
|
//
|
||||||
|
#define E1TEXT "APRES AVOIR VAINCU LES GROS MECHANTS\n"\
|
||||||
|
"ET NETTOYE LA BASE LUNAIRE, VOUS AVEZ\n"\
|
||||||
|
"GAGNE, NON? PAS VRAI? OU EST DONC VOTRE\n"\
|
||||||
|
" RECOMPENSE ET VOTRE BILLET DE\n"\
|
||||||
|
"RETOUR? QU'EST-QUE CA VEUT DIRE?CE"\
|
||||||
|
"N'EST PAS LA FIN ESPEREE!\n"\
|
||||||
|
"\n" \
|
||||||
|
"CA SENT LA VIANDE PUTREFIEE, MAIS\n"\
|
||||||
|
"ON DIRAIT LA BASE DEIMOS. VOUS ETES\n"\
|
||||||
|
"APPAREMMENT BLOQUE AUX PORTES DE L'ENFER.\n"\
|
||||||
|
"LA SEULE ISSUE EST DE L'AUTRE COTE.\n"\
|
||||||
|
"\n"\
|
||||||
|
"POUR VIVRE LA SUITE DE DOOM, JOUEZ\n"\
|
||||||
|
"A 'AUX PORTES DE L'ENFER' ET A\n"\
|
||||||
|
"L'EPISODE SUIVANT, 'L'ENFER'!\n"
|
||||||
|
|
||||||
|
#define E2TEXT "VOUS AVEZ REUSSI. L'INFAME DEMON\n"\
|
||||||
|
"QUI CONTROLAIT LA BASE LUNAIRE DE\n"\
|
||||||
|
"DEIMOS EST MORT, ET VOUS AVEZ\n"\
|
||||||
|
"TRIOMPHE! MAIS... OU ETES-VOUS?\n"\
|
||||||
|
"VOUS GRIMPEZ JUSQU'AU BORD DE LA\n"\
|
||||||
|
"LUNE ET VOUS DECOUVREZ L'ATROCE\n"\
|
||||||
|
"VERITE.\n" \
|
||||||
|
"\n"\
|
||||||
|
"DEIMOS EST AU-DESSUS DE L'ENFER!\n"\
|
||||||
|
"VOUS SAVEZ QUE PERSONNE NE S'EN\n"\
|
||||||
|
"EST JAMAIS ECHAPPE, MAIS CES FUMIERS\n"\
|
||||||
|
"VONT REGRETTER DE VOUS AVOIR CONNU!\n"\
|
||||||
|
"VOUS REDESCENDEZ RAPIDEMENT VERS\n"\
|
||||||
|
"LA SURFACE DE L'ENFER.\n"\
|
||||||
|
"\n" \
|
||||||
|
"VOICI MAINTENANT LE CHAPITRE FINAL DE\n"\
|
||||||
|
"DOOM! -- L'ENFER."
|
||||||
|
|
||||||
|
#define E3TEXT "LE DEMON ARACHNEEN ET REPUGNANT\n"\
|
||||||
|
"QUI A DIRIGE L'INVASION DES BASES\n"\
|
||||||
|
"LUNAIRES ET SEME LA MORT VIENT DE SE\n"\
|
||||||
|
"FAIRE PULVERISER UNE FOIS POUR TOUTES.\n"\
|
||||||
|
"\n"\
|
||||||
|
"UNE PORTE SECRETE S'OUVRE. VOUS ENTREZ.\n"\
|
||||||
|
"VOUS AVEZ PROUVE QUE VOUS POUVIEZ\n"\
|
||||||
|
"RESISTER AUX HORREURS DE L'ENFER.\n"\
|
||||||
|
"IL SAIT ETRE BEAU JOUEUR, ET LORSQUE\n"\
|
||||||
|
"VOUS SORTEZ, VOUS REVOYEZ LES VERTES\n"\
|
||||||
|
"PRAIRIES DE LA TERRE, VOTRE PLANETE.\n"\
|
||||||
|
"\n"\
|
||||||
|
"VOUS VOUS DEMANDEZ CE QUI S'EST PASSE\n"\
|
||||||
|
"SUR TERRE PENDANT QUE VOUS AVEZ\n"\
|
||||||
|
"COMBATTU LE DEMON. HEUREUSEMENT,\n"\
|
||||||
|
"AUCUN GERME DU MAL N'A FRANCHI\n"\
|
||||||
|
"CETTE PORTE AVEC VOUS..."
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// after level 6, put this:
|
||||||
|
|
||||||
|
#define C1TEXT "VOUS ETES AU PLUS PROFOND DE L'ASTROPORT\n" \
|
||||||
|
"INFESTE DE MONSTRES, MAIS QUELQUE CHOSE\n" \
|
||||||
|
"NE VA PAS. ILS ONT APPORTE LEUR PROPRE\n" \
|
||||||
|
"REALITE, ET LA TECHNOLOGIE DE L'ASTROPORT\n" \
|
||||||
|
"EST AFFECTEE PAR LEUR PRESENCE.\n" \
|
||||||
|
"\n"\
|
||||||
|
"DEVANT VOUS, VOUS VOYEZ UN POSTE AVANCE\n" \
|
||||||
|
"DE L'ENFER, UNE ZONE FORTIFIEE. SI VOUS\n" \
|
||||||
|
"POUVEZ PASSER, VOUS POURREZ PENETRER AU\n" \
|
||||||
|
"COEUR DE LA BASE HANTEE ET TROUVER \n" \
|
||||||
|
"L'INTERRUPTEUR DE CONTROLE QUI GARDE LA \n" \
|
||||||
|
"POPULATION DE LA TERRE EN OTAGE."
|
||||||
|
|
||||||
|
// After level 11, put this:
|
||||||
|
|
||||||
|
#define C2TEXT "VOUS AVEZ GAGNE! VOTRE VICTOIRE A PERMIS\n" \
|
||||||
|
"A L'HUMANITE D'EVACUER LA TERRE ET \n"\
|
||||||
|
"D'ECHAPPER AU CAUCHEMAR. VOUS ETES \n"\
|
||||||
|
"MAINTENANT LE DERNIER HUMAIN A LA SURFACE \n"\
|
||||||
|
"DE LA PLANETE. VOUS ETES ENTOURE DE \n"\
|
||||||
|
"MUTANTS CANNIBALES, D'EXTRATERRESTRES \n"\
|
||||||
|
"CARNIVORES ET D'ESPRITS DU MAL. VOUS \n"\
|
||||||
|
"ATTENDEZ CALMEMENT LA MORT, HEUREUX \n"\
|
||||||
|
"D'AVOIR PU SAUVER VOTRE RACE.\n"\
|
||||||
|
"MAIS UN MESSAGE VOUS PARVIENT SOUDAIN\n"\
|
||||||
|
"DE L'ESPACE: \"NOS CAPTEURS ONT LOCALISE\n"\
|
||||||
|
"LA SOURCE DE L'INVASION EXTRATERRESTRE.\n"\
|
||||||
|
"SI VOUS Y ALLEZ, VOUS POURREZ PEUT-ETRE\n"\
|
||||||
|
"LES ARRETER. LEUR BASE EST SITUEE AU COEUR\n"\
|
||||||
|
"DE VOTRE VILLE NATALE, PRES DE L'ASTROPORT.\n"\
|
||||||
|
"VOUS VOUS RELEVEZ LENTEMENT ET PENIBLEMENT\n"\
|
||||||
|
"ET VOUS REPARTEZ POUR LE FRONT."
|
||||||
|
|
||||||
|
// After level 20, put this:
|
||||||
|
|
||||||
|
#define C3TEXT "VOUS ETES AU COEUR DE LA CITE CORROMPUE,\n"\
|
||||||
|
"ENTOURE PAR LES CADAVRES DE VOS ENNEMIS.\n"\
|
||||||
|
"VOUS NE VOYEZ PAS COMMENT DETRUIRE LA PORTE\n"\
|
||||||
|
"DES CREATURES DE CE COTE. VOUS SERREZ\n"\
|
||||||
|
"LES DENTS ET PLONGEZ DANS L'OUVERTURE.\n"\
|
||||||
|
"\n"\
|
||||||
|
"IL DOIT Y AVOIR UN MOYEN DE LA FERMER\n"\
|
||||||
|
"DE L'AUTRE COTE. VOUS ACCEPTEZ DE\n"\
|
||||||
|
"TRAVERSER L'ENFER POUR LE FAIRE?"
|
||||||
|
|
||||||
|
// After level 29, put this:
|
||||||
|
|
||||||
|
#define C4TEXT "LE VISAGE HORRIBLE D'UN DEMON D'UNE\n"\
|
||||||
|
"TAILLE INCROYABLE S'EFFONDRE DEVANT\n"\
|
||||||
|
"VOUS LORSQUE VOUS TIREZ UNE SALVE DE\n"\
|
||||||
|
"ROQUETTES DANS SON CERVEAU. LE MONSTRE\n"\
|
||||||
|
"SE RATATINE, SES MEMBRES DECHIQUETES\n"\
|
||||||
|
"SE REPANDANT SUR DES CENTAINES DE\n"\
|
||||||
|
"KILOMETRES A LA SURFACE DE L'ENFER.\n"\
|
||||||
|
"\n"\
|
||||||
|
"VOUS AVEZ REUSSI. L'INVASION N'AURA.\n"\
|
||||||
|
"PAS LIEU. LA TERRE EST SAUVEE. L'ENFER\n"\
|
||||||
|
"EST ANEANTI. EN VOUS DEMANDANT OU IRONT\n"\
|
||||||
|
"MAINTENANT LES DAMNES, VOUS ESSUYEZ\n"\
|
||||||
|
"VOTRE FRONT COUVERT DE SUEUR ET REPARTEZ\n"\
|
||||||
|
"VERS LA TERRE. SA RECONSTRUCTION SERA\n"\
|
||||||
|
"BEAUCOUP PLUS DROLE QUE SA DESTRUCTION.\n"
|
||||||
|
|
||||||
|
// Before level 31, put this:
|
||||||
|
|
||||||
|
#define C5TEXT "FELICITATIONS! VOUS AVEZ TROUVE LE\n"\
|
||||||
|
"NIVEAU SECRET! IL SEMBLE AVOIR ETE\n"\
|
||||||
|
"CONSTRUIT PAR LES HUMAINS. VOUS VOUS\n"\
|
||||||
|
"DEMANDEZ QUELS PEUVENT ETRE LES\n"\
|
||||||
|
"HABITANTS DE CE COIN PERDU DE L'ENFER."
|
||||||
|
|
||||||
|
// Before level 32, put this:
|
||||||
|
|
||||||
|
#define C6TEXT "FELICITATIONS! VOUS AVEZ DECOUVERT\n"\
|
||||||
|
"LE NIVEAU SUPER SECRET! VOUS FERIEZ\n"\
|
||||||
|
"MIEUX DE FONCER DANS CELUI-LA!\n"
|
||||||
|
|
||||||
|
//
|
||||||
|
// Character cast strings F_FINALE.C
|
||||||
|
//
|
||||||
|
#define CC_ZOMBIE "ZOMBIE"
|
||||||
|
#define CC_SHOTGUN "TYPE AU FUSIL"
|
||||||
|
#define CC_HEAVY "MEC SUPER-ARME"
|
||||||
|
#define CC_IMP "DIABLOTIN"
|
||||||
|
#define CC_DEMON "DEMON"
|
||||||
|
#define CC_LOST "AME PERDUE"
|
||||||
|
#define CC_CACO "CACODEMON"
|
||||||
|
#define CC_HELL "CHEVALIER DE L'ENFER"
|
||||||
|
#define CC_BARON "BARON DE L'ENFER"
|
||||||
|
#define CC_ARACH "ARACHNOTRON"
|
||||||
|
#define CC_PAIN "ELEMENTAIRE DE LA DOULEUR"
|
||||||
|
#define CC_REVEN "REVENANT"
|
||||||
|
#define CC_MANCU "MANCUBUS"
|
||||||
|
#define CC_ARCH "ARCHI-INFAME"
|
||||||
|
#define CC_SPIDER "L'ARAIGNEE CERVEAU"
|
||||||
|
#define CC_CYBER "LE CYBERDEMON"
|
||||||
|
#define CC_HERO "NOTRE HEROS"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
52
programs/games/doom/trunk/h/d_items.h
Normal file
52
programs/games/doom/trunk/h/d_items.h
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Items: key cards, artifacts, weapon, ammunition.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __D_ITEMS__
|
||||||
|
#define __D_ITEMS__
|
||||||
|
|
||||||
|
#include "doomdef.h"
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// Weapon info: sprite frames, ammunition use.
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
ammotype_t ammo;
|
||||||
|
int upstate;
|
||||||
|
int downstate;
|
||||||
|
int readystate;
|
||||||
|
int atkstate;
|
||||||
|
int flashstate;
|
||||||
|
|
||||||
|
} weaponinfo_t;
|
||||||
|
|
||||||
|
extern weaponinfo_t weaponinfo[NUMWEAPONS];
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
64
programs/games/doom/trunk/h/d_main.h
Normal file
64
programs/games/doom/trunk/h/d_main.h
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// System specific interface stuff.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __D_MAIN__
|
||||||
|
#define __D_MAIN__
|
||||||
|
|
||||||
|
#include "d_event.h"
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define MAXWADFILES 20
|
||||||
|
extern char* wadfiles[MAXWADFILES];
|
||||||
|
|
||||||
|
void D_AddFile (char *file);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// D_DoomMain()
|
||||||
|
// Not a globally visible function, just included for source reference,
|
||||||
|
// calls all startup code, parses command line options.
|
||||||
|
// If not overrided by user input, calls N_AdvanceDemo.
|
||||||
|
//
|
||||||
|
void D_DoomMain (void);
|
||||||
|
|
||||||
|
// Called by IO functions when input is detected.
|
||||||
|
void D_PostEvent (event_t* ev);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// BASE LEVEL
|
||||||
|
//
|
||||||
|
void D_PageTicker (void);
|
||||||
|
void D_PageDrawer (void);
|
||||||
|
void D_AdvanceDemo (void);
|
||||||
|
void D_StartTitle (void);
|
||||||
|
|
||||||
|
#endif
|
149
programs/games/doom/trunk/h/d_net.h
Normal file
149
programs/games/doom/trunk/h/d_net.h
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Networking stuff.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __D_NET__
|
||||||
|
#define __D_NET__
|
||||||
|
|
||||||
|
#include "d_player.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Network play related stuff.
|
||||||
|
// There is a data struct that stores network
|
||||||
|
// communication related stuff, and another
|
||||||
|
// one that defines the actual packets to
|
||||||
|
// be transmitted.
|
||||||
|
//
|
||||||
|
|
||||||
|
#define DOOMCOM_ID 0x12345678l
|
||||||
|
|
||||||
|
// Max computers/players in a game.
|
||||||
|
#define MAXNETNODES 8
|
||||||
|
|
||||||
|
|
||||||
|
// Networking and tick handling related.
|
||||||
|
#define BACKUPTICS 12
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
CMD_SEND = 1,
|
||||||
|
CMD_GET = 2
|
||||||
|
|
||||||
|
} command_t;
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Network packet data.
|
||||||
|
//
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
// High bit is retransmit request.
|
||||||
|
unsigned checksum;
|
||||||
|
// Only valid if NCMD_RETRANSMIT.
|
||||||
|
byte retransmitfrom;
|
||||||
|
|
||||||
|
byte starttic;
|
||||||
|
byte player;
|
||||||
|
byte numtics;
|
||||||
|
ticcmd_t cmds[BACKUPTICS];
|
||||||
|
|
||||||
|
} doomdata_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
// Supposed to be DOOMCOM_ID?
|
||||||
|
long id;
|
||||||
|
|
||||||
|
// DOOM executes an int to execute commands.
|
||||||
|
short intnum;
|
||||||
|
// Communication between DOOM and the driver.
|
||||||
|
// Is CMD_SEND or CMD_GET.
|
||||||
|
short command;
|
||||||
|
// Is dest for send, set by get (-1 = no packet).
|
||||||
|
short remotenode;
|
||||||
|
|
||||||
|
// Number of bytes in doomdata to be sent
|
||||||
|
short datalength;
|
||||||
|
|
||||||
|
// Info common to all nodes.
|
||||||
|
// Console is allways node 0.
|
||||||
|
short numnodes;
|
||||||
|
// Flag: 1 = no duplication, 2-5 = dup for slow nets.
|
||||||
|
short ticdup;
|
||||||
|
// Flag: 1 = send a backup tic in every packet.
|
||||||
|
short extratics;
|
||||||
|
// Flag: 1 = deathmatch.
|
||||||
|
short deathmatch;
|
||||||
|
// Flag: -1 = new game, 0-5 = load savegame
|
||||||
|
short savegame;
|
||||||
|
short episode; // 1-3
|
||||||
|
short map; // 1-9
|
||||||
|
short skill; // 1-5
|
||||||
|
|
||||||
|
// Info specific to this node.
|
||||||
|
short consoleplayer;
|
||||||
|
short numplayers;
|
||||||
|
|
||||||
|
// These are related to the 3-display mode,
|
||||||
|
// in which two drones looking left and right
|
||||||
|
// were used to render two additional views
|
||||||
|
// on two additional computers.
|
||||||
|
// Probably not operational anymore.
|
||||||
|
// 1 = left, 0 = center, -1 = right
|
||||||
|
short angleoffset;
|
||||||
|
// 1 = drone
|
||||||
|
short drone;
|
||||||
|
|
||||||
|
// The packet data to be sent.
|
||||||
|
doomdata_t data;
|
||||||
|
|
||||||
|
} doomcom_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Create any new ticcmds and broadcast to other players.
|
||||||
|
void NetUpdate (void);
|
||||||
|
|
||||||
|
// Broadcasts special packets to other players
|
||||||
|
// to notify of game exit
|
||||||
|
void D_QuitNetGame (void);
|
||||||
|
|
||||||
|
//? how many ticks to run?
|
||||||
|
void TryRunTics (void);
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
219
programs/games/doom/trunk/h/d_player.h
Normal file
219
programs/games/doom/trunk/h/d_player.h
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __D_PLAYER__
|
||||||
|
#define __D_PLAYER__
|
||||||
|
|
||||||
|
|
||||||
|
// The player data structure depends on a number
|
||||||
|
// of other structs: items (internal inventory),
|
||||||
|
// animation states (closely tied to the sprites
|
||||||
|
// used to represent them, unfortunately).
|
||||||
|
#include "d_items.h"
|
||||||
|
#include "p_pspr.h"
|
||||||
|
|
||||||
|
// In addition, the player is just a special
|
||||||
|
// case of the generic moving object/actor.
|
||||||
|
#include "p_mobj.h"
|
||||||
|
|
||||||
|
// Finally, for odd reasons, the player input
|
||||||
|
// is buffered within the player data struct,
|
||||||
|
// as commands per game tick.
|
||||||
|
#include "d_ticcmd.h"
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Player states.
|
||||||
|
//
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
// Playing or camping.
|
||||||
|
PST_LIVE,
|
||||||
|
// Dead on the ground, view follows killer.
|
||||||
|
PST_DEAD,
|
||||||
|
// Ready to restart/respawn???
|
||||||
|
PST_REBORN
|
||||||
|
|
||||||
|
} playerstate_t;
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Player internal flags, for cheats and debug.
|
||||||
|
//
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
// No clipping, walk through barriers.
|
||||||
|
CF_NOCLIP = 1,
|
||||||
|
// No damage, no health loss.
|
||||||
|
CF_GODMODE = 2,
|
||||||
|
// Not really a cheat, just a debug aid.
|
||||||
|
CF_NOMOMENTUM = 4
|
||||||
|
|
||||||
|
} cheat_t;
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Extended player object info: player_t
|
||||||
|
//
|
||||||
|
typedef struct player_s
|
||||||
|
{
|
||||||
|
mobj_t* mo;
|
||||||
|
playerstate_t playerstate;
|
||||||
|
ticcmd_t cmd;
|
||||||
|
|
||||||
|
// Determine POV,
|
||||||
|
// including viewpoint bobbing during movement.
|
||||||
|
// Focal origin above r.z
|
||||||
|
fixed_t viewz;
|
||||||
|
// Base height above floor for viewz.
|
||||||
|
fixed_t viewheight;
|
||||||
|
// Bob/squat speed.
|
||||||
|
fixed_t deltaviewheight;
|
||||||
|
// bounded/scaled total momentum.
|
||||||
|
fixed_t bob;
|
||||||
|
|
||||||
|
// This is only used between levels,
|
||||||
|
// mo->health is used during levels.
|
||||||
|
int health;
|
||||||
|
int armorpoints;
|
||||||
|
// Armor type is 0-2.
|
||||||
|
int armortype;
|
||||||
|
|
||||||
|
// Power ups. invinc and invis are tic counters.
|
||||||
|
int powers[NUMPOWERS];
|
||||||
|
boolean cards[NUMCARDS];
|
||||||
|
boolean backpack;
|
||||||
|
|
||||||
|
// Frags, kills of other players.
|
||||||
|
int frags[MAXPLAYERS];
|
||||||
|
weapontype_t readyweapon;
|
||||||
|
|
||||||
|
// Is wp_nochange if not changing.
|
||||||
|
weapontype_t pendingweapon;
|
||||||
|
|
||||||
|
boolean weaponowned[NUMWEAPONS];
|
||||||
|
int ammo[NUMAMMO];
|
||||||
|
int maxammo[NUMAMMO];
|
||||||
|
|
||||||
|
// True if button down last tic.
|
||||||
|
int attackdown;
|
||||||
|
int usedown;
|
||||||
|
|
||||||
|
// Bit flags, for cheats and debug.
|
||||||
|
// See cheat_t, above.
|
||||||
|
int cheats;
|
||||||
|
|
||||||
|
// Refired shots are less accurate.
|
||||||
|
int refire;
|
||||||
|
|
||||||
|
// For intermission stats.
|
||||||
|
int killcount;
|
||||||
|
int itemcount;
|
||||||
|
int secretcount;
|
||||||
|
|
||||||
|
// Hint messages.
|
||||||
|
char* message;
|
||||||
|
|
||||||
|
// For screen flashing (red or bright).
|
||||||
|
int damagecount;
|
||||||
|
int bonuscount;
|
||||||
|
|
||||||
|
// Who did damage (NULL for floors/ceilings).
|
||||||
|
mobj_t* attacker;
|
||||||
|
|
||||||
|
// So gun flashes light up areas.
|
||||||
|
int extralight;
|
||||||
|
|
||||||
|
// Current PLAYPAL, ???
|
||||||
|
// can be set to REDCOLORMAP for pain, etc.
|
||||||
|
int fixedcolormap;
|
||||||
|
|
||||||
|
// Player skin colorshift,
|
||||||
|
// 0-3 for which color to draw player.
|
||||||
|
int colormap;
|
||||||
|
|
||||||
|
// Overlay view sprites (gun, etc).
|
||||||
|
pspdef_t psprites[NUMPSPRITES];
|
||||||
|
|
||||||
|
// True if secret level has been done.
|
||||||
|
boolean didsecret;
|
||||||
|
|
||||||
|
} player_t;
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// INTERMISSION
|
||||||
|
// Structure passed e.g. to WI_Start(wb)
|
||||||
|
//
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
boolean in; // whether the player is in game
|
||||||
|
|
||||||
|
// Player stats, kills, collected items etc.
|
||||||
|
int skills;
|
||||||
|
int sitems;
|
||||||
|
int ssecret;
|
||||||
|
int stime;
|
||||||
|
int frags[4];
|
||||||
|
int score; // current score on entry, modified on return
|
||||||
|
|
||||||
|
} wbplayerstruct_t;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
int epsd; // episode # (0-2)
|
||||||
|
|
||||||
|
// if true, splash the secret level
|
||||||
|
boolean didsecret;
|
||||||
|
|
||||||
|
// previous and next levels, origin 0
|
||||||
|
int last;
|
||||||
|
int next;
|
||||||
|
|
||||||
|
int maxkills;
|
||||||
|
int maxitems;
|
||||||
|
int maxsecret;
|
||||||
|
int maxfrags;
|
||||||
|
|
||||||
|
// the par time
|
||||||
|
int partime;
|
||||||
|
|
||||||
|
// index of this player in game
|
||||||
|
int pnum;
|
||||||
|
|
||||||
|
wbplayerstruct_t plyr[MAXPLAYERS];
|
||||||
|
|
||||||
|
} wbstartstruct_t;
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
51
programs/games/doom/trunk/h/d_textur.h
Normal file
51
programs/games/doom/trunk/h/d_textur.h
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Typedefs related to to textures etc.,
|
||||||
|
// isolated here to make it easier separating modules.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __D_TEXTUR__
|
||||||
|
#define __D_TEXTUR__
|
||||||
|
|
||||||
|
#include "doomtype.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Flats?
|
||||||
|
//
|
||||||
|
// a pic is an unmasked block of pixels
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
byte width;
|
||||||
|
byte height;
|
||||||
|
byte data;
|
||||||
|
} pic_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
79
programs/games/doom/trunk/h/d_think.h
Normal file
79
programs/games/doom/trunk/h/d_think.h
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// MapObj data. Map Objects or mobjs are actors, entities,
|
||||||
|
// thinker, take-your-pick... anything that moves, acts, or
|
||||||
|
// suffers state changes of more or less violent nature.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __D_THINK__
|
||||||
|
#define __D_THINK__
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Experimental stuff.
|
||||||
|
// To compile this as "ANSI C with classes"
|
||||||
|
// we will need to handle the various
|
||||||
|
// action functions cleanly.
|
||||||
|
//
|
||||||
|
typedef void (*actionf_v)();
|
||||||
|
typedef void (*actionf_p1)( void* );
|
||||||
|
typedef void (*actionf_p2)( void*, void* );
|
||||||
|
|
||||||
|
typedef union
|
||||||
|
{
|
||||||
|
actionf_p1 acp1;
|
||||||
|
actionf_v acv;
|
||||||
|
actionf_p2 acp2;
|
||||||
|
|
||||||
|
} actionf_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Historically, "think_t" is yet another
|
||||||
|
// function pointer to a routine to handle
|
||||||
|
// an actor.
|
||||||
|
typedef actionf_t think_t;
|
||||||
|
|
||||||
|
|
||||||
|
// Doubly linked list of actors.
|
||||||
|
typedef struct thinker_s
|
||||||
|
{
|
||||||
|
struct thinker_s* prev;
|
||||||
|
struct thinker_s* next;
|
||||||
|
think_t function;
|
||||||
|
|
||||||
|
} thinker_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
53
programs/games/doom/trunk/h/d_ticcmd.h
Normal file
53
programs/games/doom/trunk/h/d_ticcmd.h
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// System specific interface stuff.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __D_TICCMD__
|
||||||
|
#define __D_TICCMD__
|
||||||
|
|
||||||
|
#include "doomtype.h"
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// The data sampled per tick (single player)
|
||||||
|
// and transmitted to other peers (multiplayer).
|
||||||
|
// Mainly movements/button commands per game tick,
|
||||||
|
// plus a checksum for internal state consistency.
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
signed char forwardmove; // *2048 for move
|
||||||
|
signed char sidemove; // *2048 for move
|
||||||
|
short angleturn; // <<16 for angle delta
|
||||||
|
short consistancy; // checks for net game
|
||||||
|
byte chatchar;
|
||||||
|
byte buttons;
|
||||||
|
} ticcmd_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
222
programs/games/doom/trunk/h/doomdata.h
Normal file
222
programs/games/doom/trunk/h/doomdata.h
Normal file
@ -0,0 +1,222 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// all external data is defined here
|
||||||
|
// most of the data is loaded into different structures at run time
|
||||||
|
// some internal structures shared by many modules are here
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifndef __DOOMDATA__
|
||||||
|
#define __DOOMDATA__
|
||||||
|
|
||||||
|
// The most basic types we use, portability.
|
||||||
|
#include "doomtype.h"
|
||||||
|
|
||||||
|
// Some global defines, that configure the game.
|
||||||
|
#include "doomdef.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Map level types.
|
||||||
|
// The following data structures define the persistent format
|
||||||
|
// used in the lumps of the WAD files.
|
||||||
|
//
|
||||||
|
|
||||||
|
// Lump order in a map WAD: each map needs a couple of lumps
|
||||||
|
// to provide a complete scene geometry description.
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
ML_LABEL, // A separator, name, ExMx or MAPxx
|
||||||
|
ML_THINGS, // Monsters, items..
|
||||||
|
ML_LINEDEFS, // LineDefs, from editing
|
||||||
|
ML_SIDEDEFS, // SideDefs, from editing
|
||||||
|
ML_VERTEXES, // Vertices, edited and BSP splits generated
|
||||||
|
ML_SEGS, // LineSegs, from LineDefs split by BSP
|
||||||
|
ML_SSECTORS, // SubSectors, list of LineSegs
|
||||||
|
ML_NODES, // BSP nodes
|
||||||
|
ML_SECTORS, // Sectors, from editing
|
||||||
|
ML_REJECT, // LUT, sector-sector visibility
|
||||||
|
ML_BLOCKMAP // LUT, motion clipping, walls/grid element
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// A single Vertex.
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
short x;
|
||||||
|
short y;
|
||||||
|
} mapvertex_t;
|
||||||
|
|
||||||
|
|
||||||
|
// A SideDef, defining the visual appearance of a wall,
|
||||||
|
// by setting textures and offsets.
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
short textureoffset;
|
||||||
|
short rowoffset;
|
||||||
|
char toptexture[8];
|
||||||
|
char bottomtexture[8];
|
||||||
|
char midtexture[8];
|
||||||
|
// Front sector, towards viewer.
|
||||||
|
short sector;
|
||||||
|
} mapsidedef_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// A LineDef, as used for editing, and as input
|
||||||
|
// to the BSP builder.
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
short v1;
|
||||||
|
short v2;
|
||||||
|
short flags;
|
||||||
|
short special;
|
||||||
|
short tag;
|
||||||
|
// sidenum[1] will be -1 if one sided
|
||||||
|
short sidenum[2];
|
||||||
|
} maplinedef_t;
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// LineDef attributes.
|
||||||
|
//
|
||||||
|
|
||||||
|
// Solid, is an obstacle.
|
||||||
|
#define ML_BLOCKING 1
|
||||||
|
|
||||||
|
// Blocks monsters only.
|
||||||
|
#define ML_BLOCKMONSTERS 2
|
||||||
|
|
||||||
|
// Backside will not be present at all
|
||||||
|
// if not two sided.
|
||||||
|
#define ML_TWOSIDED 4
|
||||||
|
|
||||||
|
// If a texture is pegged, the texture will have
|
||||||
|
// the end exposed to air held constant at the
|
||||||
|
// top or bottom of the texture (stairs or pulled
|
||||||
|
// down things) and will move with a height change
|
||||||
|
// of one of the neighbor sectors.
|
||||||
|
// Unpegged textures allways have the first row of
|
||||||
|
// the texture at the top pixel of the line for both
|
||||||
|
// top and bottom textures (use next to windows).
|
||||||
|
|
||||||
|
// upper texture unpegged
|
||||||
|
#define ML_DONTPEGTOP 8
|
||||||
|
|
||||||
|
// lower texture unpegged
|
||||||
|
#define ML_DONTPEGBOTTOM 16
|
||||||
|
|
||||||
|
// In AutoMap: don't map as two sided: IT'S A SECRET!
|
||||||
|
#define ML_SECRET 32
|
||||||
|
|
||||||
|
// Sound rendering: don't let sound cross two of these.
|
||||||
|
#define ML_SOUNDBLOCK 64
|
||||||
|
|
||||||
|
// Don't draw on the automap at all.
|
||||||
|
#define ML_DONTDRAW 128
|
||||||
|
|
||||||
|
// Set if already seen, thus drawn in automap.
|
||||||
|
#define ML_MAPPED 256
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Sector definition, from editing.
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
short floorheight;
|
||||||
|
short ceilingheight;
|
||||||
|
char floorpic[8];
|
||||||
|
char ceilingpic[8];
|
||||||
|
short lightlevel;
|
||||||
|
short special;
|
||||||
|
short tag;
|
||||||
|
} mapsector_t;
|
||||||
|
|
||||||
|
// SubSector, as generated by BSP.
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
short numsegs;
|
||||||
|
// Index of first one, segs are stored sequentially.
|
||||||
|
short firstseg;
|
||||||
|
} mapsubsector_t;
|
||||||
|
|
||||||
|
|
||||||
|
// LineSeg, generated by splitting LineDefs
|
||||||
|
// using partition lines selected by BSP builder.
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
short v1;
|
||||||
|
short v2;
|
||||||
|
short angle;
|
||||||
|
short linedef;
|
||||||
|
short side;
|
||||||
|
short offset;
|
||||||
|
} mapseg_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// BSP node structure.
|
||||||
|
|
||||||
|
// Indicate a leaf.
|
||||||
|
#define NF_SUBSECTOR 0x8000
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
// Partition line from (x,y) to x+dx,y+dy)
|
||||||
|
short x;
|
||||||
|
short y;
|
||||||
|
short dx;
|
||||||
|
short dy;
|
||||||
|
|
||||||
|
// Bounding box for each child,
|
||||||
|
// clip against view frustum.
|
||||||
|
short bbox[2][4];
|
||||||
|
|
||||||
|
// If NF_SUBSECTOR its a subsector,
|
||||||
|
// else it's a node of another subtree.
|
||||||
|
unsigned short children[2];
|
||||||
|
|
||||||
|
} mapnode_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Thing definition, position, orientation and type,
|
||||||
|
// plus skill/visibility flags and attributes.
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
short x;
|
||||||
|
short y;
|
||||||
|
short angle;
|
||||||
|
short type;
|
||||||
|
short options;
|
||||||
|
} mapthing_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif // __DOOMDATA__
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
342
programs/games/doom/trunk/h/doomdef.h
Normal file
342
programs/games/doom/trunk/h/doomdef.h
Normal file
@ -0,0 +1,342 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Internally used data structures for virtually everything,
|
||||||
|
// key definitions, lots of other stuff.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifndef __DOOMDEF__
|
||||||
|
#define __DOOMDEF__
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
//
|
||||||
|
// Global parameters/defines.
|
||||||
|
//
|
||||||
|
// DOOM version
|
||||||
|
enum { VERSION_NUM = 110 };
|
||||||
|
|
||||||
|
|
||||||
|
// Game mode handling - identify IWAD version
|
||||||
|
// to handle IWAD dependend animations etc.
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
shareware, // DOOM 1 shareware, E1, M9
|
||||||
|
registered, // DOOM 1 registered, E3, M27
|
||||||
|
commercial, // DOOM 2 retail, E1 M34
|
||||||
|
// DOOM 2 german edition not handled
|
||||||
|
retail, // DOOM 1 retail, E4, M36
|
||||||
|
indetermined // Well, no IWAD found.
|
||||||
|
|
||||||
|
} GameMode_t;
|
||||||
|
|
||||||
|
|
||||||
|
// Mission packs - might be useful for TC stuff?
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
doom, // DOOM 1
|
||||||
|
doom2, // DOOM 2
|
||||||
|
pack_tnt, // TNT mission pack
|
||||||
|
pack_plut, // Plutonia pack
|
||||||
|
none
|
||||||
|
|
||||||
|
} GameMission_t;
|
||||||
|
|
||||||
|
|
||||||
|
// Identify language to use, software localization.
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
english,
|
||||||
|
french,
|
||||||
|
german,
|
||||||
|
unknown
|
||||||
|
|
||||||
|
} Language_t;
|
||||||
|
|
||||||
|
|
||||||
|
// If rangecheck is undefined,
|
||||||
|
// most parameter validation debugging code will not be compiled
|
||||||
|
#define RANGECHECK
|
||||||
|
|
||||||
|
// Do or do not use external soundserver.
|
||||||
|
// The sndserver binary to be run separately
|
||||||
|
// has been introduced by Dave Taylor.
|
||||||
|
// The integrated sound support is experimental,
|
||||||
|
// and unfinished. Default is synchronous.
|
||||||
|
// Experimental asynchronous timer based is
|
||||||
|
// handled by SNDINTR.
|
||||||
|
//#define SNDINTR 1
|
||||||
|
|
||||||
|
|
||||||
|
// This one switches between MIT SHM (no proper mouse)
|
||||||
|
// and XFree86 DGA (mickey sampling). The original
|
||||||
|
// linuxdoom used SHM, which is default.
|
||||||
|
//#define X11_DGA 1
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// For resize of screen, at start of game.
|
||||||
|
// It will not work dynamically, see visplanes.
|
||||||
|
//
|
||||||
|
#define BASE_WIDTH 320
|
||||||
|
|
||||||
|
// It is educational but futile to change this
|
||||||
|
// scaling e.g. to 2. Drawing of status bar,
|
||||||
|
// menues etc. is tied to the scale implied
|
||||||
|
// by the graphics.
|
||||||
|
#define SCREEN_MUL 1
|
||||||
|
#define INV_ASPECT_RATIO 0.625 // 0.75, ideally
|
||||||
|
|
||||||
|
// Defines suck. C sucks.
|
||||||
|
// C++ might sucks for OOP, but it sure is a better C.
|
||||||
|
// So there.
|
||||||
|
#define SCREENWIDTH 320
|
||||||
|
//SCREEN_MUL*BASE_WIDTH //320
|
||||||
|
#define SCREENHEIGHT 200
|
||||||
|
//(int)(SCREEN_MUL*BASE_WIDTH*INV_ASPECT_RATIO) //200
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// The maximum number of players, multiplayer/networking.
|
||||||
|
#define MAXPLAYERS 4
|
||||||
|
|
||||||
|
// State updates, number of tics / second.
|
||||||
|
#define TICRATE 35
|
||||||
|
|
||||||
|
// The current state of the game: whether we are
|
||||||
|
// playing, gazing at the intermission screen,
|
||||||
|
// the game final animation, or a demo.
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
GS_LEVEL,
|
||||||
|
GS_INTERMISSION,
|
||||||
|
GS_FINALE,
|
||||||
|
GS_DEMOSCREEN
|
||||||
|
} gamestate_t;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Difficulty/skill settings/filters.
|
||||||
|
//
|
||||||
|
|
||||||
|
// Skill flags.
|
||||||
|
#define MTF_EASY 1
|
||||||
|
#define MTF_NORMAL 2
|
||||||
|
#define MTF_HARD 4
|
||||||
|
|
||||||
|
// Deaf monsters/do not react to sound.
|
||||||
|
#define MTF_AMBUSH 8
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
sk_baby,
|
||||||
|
sk_easy,
|
||||||
|
sk_medium,
|
||||||
|
sk_hard,
|
||||||
|
sk_nightmare
|
||||||
|
} skill_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Key cards.
|
||||||
|
//
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
it_bluecard,
|
||||||
|
it_yellowcard,
|
||||||
|
it_redcard,
|
||||||
|
it_blueskull,
|
||||||
|
it_yellowskull,
|
||||||
|
it_redskull,
|
||||||
|
|
||||||
|
NUMCARDS
|
||||||
|
|
||||||
|
} card_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// The defined weapons,
|
||||||
|
// including a marker indicating
|
||||||
|
// user has not changed weapon.
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
wp_fist,
|
||||||
|
wp_pistol,
|
||||||
|
wp_shotgun,
|
||||||
|
wp_chaingun,
|
||||||
|
wp_missile,
|
||||||
|
wp_plasma,
|
||||||
|
wp_bfg,
|
||||||
|
wp_chainsaw,
|
||||||
|
wp_supershotgun,
|
||||||
|
|
||||||
|
NUMWEAPONS,
|
||||||
|
|
||||||
|
// No pending weapon change.
|
||||||
|
wp_nochange
|
||||||
|
|
||||||
|
} weapontype_t;
|
||||||
|
|
||||||
|
|
||||||
|
// Ammunition types defined.
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
am_clip, // Pistol / chaingun ammo.
|
||||||
|
am_shell, // Shotgun / double barreled shotgun.
|
||||||
|
am_cell, // Plasma rifle, BFG.
|
||||||
|
am_misl, // Missile launcher.
|
||||||
|
NUMAMMO,
|
||||||
|
am_noammo // Unlimited for chainsaw / fist.
|
||||||
|
|
||||||
|
} ammotype_t;
|
||||||
|
|
||||||
|
|
||||||
|
// Power up artifacts.
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
pw_invulnerability,
|
||||||
|
pw_strength,
|
||||||
|
pw_invisibility,
|
||||||
|
pw_ironfeet,
|
||||||
|
pw_allmap,
|
||||||
|
pw_infrared,
|
||||||
|
NUMPOWERS
|
||||||
|
|
||||||
|
} powertype_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Power up durations,
|
||||||
|
// how many seconds till expiration,
|
||||||
|
// assuming TICRATE is 35 ticks/second.
|
||||||
|
//
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
INVULNTICS = (30*TICRATE),
|
||||||
|
INVISTICS = (60*TICRATE),
|
||||||
|
INFRATICS = (120*TICRATE),
|
||||||
|
IRONTICS = (60*TICRATE)
|
||||||
|
|
||||||
|
} powerduration_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// DOOM keyboard definition.
|
||||||
|
// This is the stuff configured by Setup.Exe.
|
||||||
|
// Most key data are simple ascii (uppercased).
|
||||||
|
//
|
||||||
|
#define KEY_W 'w'
|
||||||
|
#define KEY_D 'd'
|
||||||
|
#define KEY_A 'a'
|
||||||
|
#define KEY_S 's'
|
||||||
|
|
||||||
|
#define KEY_RIGHTARROW 0xae
|
||||||
|
#define KEY_LEFTARROW 0xac
|
||||||
|
#define KEY_UPARROW 0xad
|
||||||
|
#define KEY_DOWNARROW 0xaf
|
||||||
|
#define KEY_ESCAPE 27
|
||||||
|
#define KEY_ENTER 13
|
||||||
|
#define KEY_TAB 9
|
||||||
|
#define KEY_F1 (0x80+0x3b)
|
||||||
|
#define KEY_F2 (0x80+0x3c)
|
||||||
|
#define KEY_F3 (0x80+0x3d)
|
||||||
|
#define KEY_F4 (0x80+0x3e)
|
||||||
|
#define KEY_F5 (0x80+0x3f)
|
||||||
|
#define KEY_F6 (0x80+0x40)
|
||||||
|
#define KEY_F7 (0x80+0x41)
|
||||||
|
#define KEY_F8 (0x80+0x42)
|
||||||
|
#define KEY_F9 (0x80+0x43)
|
||||||
|
#define KEY_F10 (0x80+0x44)
|
||||||
|
#define KEY_F11 (0x80+0x57)
|
||||||
|
#define KEY_F12 (0x80+0x58)
|
||||||
|
|
||||||
|
#define KEY_BACKSPACE 127
|
||||||
|
#define KEY_PAUSE 0xff
|
||||||
|
|
||||||
|
#define KEY_EQUALS 0x3d
|
||||||
|
#define KEY_MINUS 0x2d
|
||||||
|
|
||||||
|
#define KEY_RSHIFT (0x80+0x36)
|
||||||
|
#define KEY_RCTRL (0x80+0x1d)
|
||||||
|
#define KEY_RALT (0x80+0x38)
|
||||||
|
|
||||||
|
#define KEY_LALT KEY_RALT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// DOOM basic types (boolean),
|
||||||
|
// and max/min values.
|
||||||
|
//#include "doomtype.h"
|
||||||
|
|
||||||
|
// Fixed point.
|
||||||
|
//#include "m_fixed.h"
|
||||||
|
|
||||||
|
// Endianess handling.
|
||||||
|
//#include "m_swap.h"
|
||||||
|
|
||||||
|
|
||||||
|
// Binary Angles, sine/cosine/atan lookups.
|
||||||
|
//#include "tables.h"
|
||||||
|
|
||||||
|
// Event type.
|
||||||
|
//#include "d_event.h"
|
||||||
|
|
||||||
|
// Game function, skills.
|
||||||
|
//#include "g_game.h"
|
||||||
|
|
||||||
|
// All external data is defined here.
|
||||||
|
//#include "doomdata.h"
|
||||||
|
|
||||||
|
// All important printed strings.
|
||||||
|
// Language selection (message strings).
|
||||||
|
//#include "dstrings.h"
|
||||||
|
|
||||||
|
// Player is a special actor.
|
||||||
|
//struct player_s;
|
||||||
|
|
||||||
|
|
||||||
|
//#include "d_items.h"
|
||||||
|
//#include "d_player.h"
|
||||||
|
//#include "p_mobj.h"
|
||||||
|
//#include "d_net.h"
|
||||||
|
|
||||||
|
// PLAY
|
||||||
|
//#include "p_tick.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Header, generated by sound utility.
|
||||||
|
// The utility was written by Dave Taylor.
|
||||||
|
//#include "sounds.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif // __DOOMDEF__
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
296
programs/games/doom/trunk/h/doomstat.h
Normal file
296
programs/games/doom/trunk/h/doomstat.h
Normal file
@ -0,0 +1,296 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// All the global variables that store the internal state.
|
||||||
|
// Theoretically speaking, the internal state of the engine
|
||||||
|
// should be found by looking at the variables collected
|
||||||
|
// here, and every relevant module will have to include
|
||||||
|
// this header file.
|
||||||
|
// In practice, things are a bit messy.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __D_STATE__
|
||||||
|
#define __D_STATE__
|
||||||
|
|
||||||
|
// We need globally shared data structures,
|
||||||
|
// for defining the global state variables.
|
||||||
|
#include "doomdata.h"
|
||||||
|
#include "d_net.h"
|
||||||
|
|
||||||
|
// We need the playr data structure as well.
|
||||||
|
#include "d_player.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ------------------------
|
||||||
|
// Command line parameters.
|
||||||
|
//
|
||||||
|
extern boolean nomonsters; // checkparm of -nomonsters
|
||||||
|
extern boolean respawnparm; // checkparm of -respawn
|
||||||
|
extern boolean fastparm; // checkparm of -fast
|
||||||
|
|
||||||
|
extern boolean devparm; // DEBUG: launched with -devparm
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// -----------------------------------------------------
|
||||||
|
// Game Mode - identify IWAD as shareware, retail etc.
|
||||||
|
//
|
||||||
|
extern GameMode_t gamemode;
|
||||||
|
extern GameMission_t gamemission;
|
||||||
|
|
||||||
|
// Set if homebrew PWAD stuff has been added.
|
||||||
|
extern boolean modifiedgame;
|
||||||
|
|
||||||
|
|
||||||
|
// -------------------------------------------
|
||||||
|
// Language.
|
||||||
|
extern Language_t language;
|
||||||
|
|
||||||
|
|
||||||
|
// -------------------------------------------
|
||||||
|
// Selected skill type, map etc.
|
||||||
|
//
|
||||||
|
|
||||||
|
// Defaults for menu, methinks.
|
||||||
|
extern skill_t startskill;
|
||||||
|
extern int startepisode;
|
||||||
|
extern int startmap;
|
||||||
|
|
||||||
|
extern boolean autostart;
|
||||||
|
|
||||||
|
// Selected by user.
|
||||||
|
extern skill_t gameskill;
|
||||||
|
extern int gameepisode;
|
||||||
|
extern int gamemap;
|
||||||
|
|
||||||
|
// Nightmare mode flag, single player.
|
||||||
|
extern boolean respawnmonsters;
|
||||||
|
|
||||||
|
// Netgame? Only true if >1 player.
|
||||||
|
extern boolean netgame;
|
||||||
|
|
||||||
|
// Flag: true only if started as net deathmatch.
|
||||||
|
// An enum might handle altdeath/cooperative better.
|
||||||
|
extern boolean deathmatch;
|
||||||
|
|
||||||
|
// -------------------------
|
||||||
|
// Internal parameters for sound rendering.
|
||||||
|
// These have been taken from the DOS version,
|
||||||
|
// but are not (yet) supported with Linux
|
||||||
|
// (e.g. no sound volume adjustment with menu.
|
||||||
|
|
||||||
|
// These are not used, but should be (menu).
|
||||||
|
// From m_menu.c:
|
||||||
|
// Sound FX volume has default, 0 - 15
|
||||||
|
// Music volume has default, 0 - 15
|
||||||
|
// These are multiplied by 8.
|
||||||
|
extern int snd_SfxVolume; // maximum volume for sound
|
||||||
|
extern int snd_MusicVolume; // maximum volume for music
|
||||||
|
|
||||||
|
// Current music/sfx card - index useless
|
||||||
|
// w/o a reference LUT in a sound module.
|
||||||
|
// Ideally, this would use indices found
|
||||||
|
// in: /usr/include/linux/soundcard.h
|
||||||
|
extern int snd_MusicDevice;
|
||||||
|
extern int snd_SfxDevice;
|
||||||
|
// Config file? Same disclaimer as above.
|
||||||
|
extern int snd_DesiredMusicDevice;
|
||||||
|
extern int snd_DesiredSfxDevice;
|
||||||
|
|
||||||
|
|
||||||
|
// -------------------------
|
||||||
|
// Status flags for refresh.
|
||||||
|
//
|
||||||
|
|
||||||
|
// Depending on view size - no status bar?
|
||||||
|
// Note that there is no way to disable the
|
||||||
|
// status bar explicitely.
|
||||||
|
extern boolean statusbaractive;
|
||||||
|
|
||||||
|
extern boolean automapactive; // In AutoMap mode?
|
||||||
|
extern boolean menuactive; // Menu overlayed?
|
||||||
|
extern boolean paused; // Game Pause?
|
||||||
|
|
||||||
|
|
||||||
|
extern boolean viewactive;
|
||||||
|
|
||||||
|
extern boolean nodrawers;
|
||||||
|
extern boolean noblit;
|
||||||
|
|
||||||
|
extern int viewwindowx;
|
||||||
|
extern int viewwindowy;
|
||||||
|
extern int viewheight;
|
||||||
|
extern int viewwidth;
|
||||||
|
extern int scaledviewwidth;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// This one is related to the 3-screen display mode.
|
||||||
|
// ANG90 = left side, ANG270 = right
|
||||||
|
extern int viewangleoffset;
|
||||||
|
|
||||||
|
// Player taking events, and displaying.
|
||||||
|
extern int consoleplayer;
|
||||||
|
extern int displayplayer;
|
||||||
|
|
||||||
|
|
||||||
|
// -------------------------------------
|
||||||
|
// Scores, rating.
|
||||||
|
// Statistics on a given map, for intermission.
|
||||||
|
//
|
||||||
|
extern int totalkills;
|
||||||
|
extern int totalitems;
|
||||||
|
extern int totalsecret;
|
||||||
|
|
||||||
|
// Timer, for scores.
|
||||||
|
extern int levelstarttic; // gametic at level start
|
||||||
|
extern int leveltime; // tics in game play for par
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// --------------------------------------
|
||||||
|
// DEMO playback/recording related stuff.
|
||||||
|
// No demo, there is a human player in charge?
|
||||||
|
// Disable save/end game?
|
||||||
|
extern boolean usergame;
|
||||||
|
|
||||||
|
//?
|
||||||
|
extern boolean demoplayback;
|
||||||
|
extern boolean demorecording;
|
||||||
|
|
||||||
|
// Quit after playing a demo from cmdline.
|
||||||
|
extern boolean singledemo;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//?
|
||||||
|
extern gamestate_t gamestate;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//-----------------------------
|
||||||
|
// Internal parameters, fixed.
|
||||||
|
// These are set by the engine, and not changed
|
||||||
|
// according to user inputs. Partly load from
|
||||||
|
// WAD, partly set at startup time.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
extern int gametic;
|
||||||
|
|
||||||
|
|
||||||
|
// Bookkeeping on players - state.
|
||||||
|
extern player_t players[MAXPLAYERS];
|
||||||
|
|
||||||
|
// Alive? Disconnected?
|
||||||
|
extern boolean playeringame[MAXPLAYERS];
|
||||||
|
|
||||||
|
|
||||||
|
// Player spawn spots for deathmatch.
|
||||||
|
#define MAX_DM_STARTS 10
|
||||||
|
extern mapthing_t deathmatchstarts[MAX_DM_STARTS];
|
||||||
|
extern mapthing_t* deathmatch_p;
|
||||||
|
|
||||||
|
// Player spawn spots.
|
||||||
|
extern mapthing_t playerstarts[MAXPLAYERS];
|
||||||
|
|
||||||
|
// Intermission stats.
|
||||||
|
// Parameters for world map / intermission.
|
||||||
|
extern wbstartstruct_t wminfo;
|
||||||
|
|
||||||
|
|
||||||
|
// LUT of ammunition limits for each kind.
|
||||||
|
// This doubles with BackPack powerup item.
|
||||||
|
extern int maxammo[NUMAMMO];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//-----------------------------------------
|
||||||
|
// Internal parameters, used for engine.
|
||||||
|
//
|
||||||
|
|
||||||
|
// File handling stuff.
|
||||||
|
extern char basedefault[1024];
|
||||||
|
extern FILE* debugfile;
|
||||||
|
|
||||||
|
// if true, load all graphics at level load
|
||||||
|
extern boolean precache;
|
||||||
|
|
||||||
|
|
||||||
|
// wipegamestate can be set to -1
|
||||||
|
// to force a wipe on the next draw
|
||||||
|
extern gamestate_t wipegamestate;
|
||||||
|
|
||||||
|
extern int mouseSensitivity;
|
||||||
|
//?
|
||||||
|
// debug flag to cancel adaptiveness
|
||||||
|
extern boolean singletics;
|
||||||
|
|
||||||
|
extern int bodyqueslot;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Needed to store the number of the dummy sky flat.
|
||||||
|
// Used for rendering,
|
||||||
|
// as well as tracking projectiles etc.
|
||||||
|
extern int skyflatnum;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Netgame stuff (buffers and pointers, i.e. indices).
|
||||||
|
|
||||||
|
// This is ???
|
||||||
|
extern doomcom_t* doomcom;
|
||||||
|
|
||||||
|
// This points inside doomcom.
|
||||||
|
extern doomdata_t* netbuffer;
|
||||||
|
|
||||||
|
|
||||||
|
extern ticcmd_t localcmds[BACKUPTICS];
|
||||||
|
extern int rndindex;
|
||||||
|
|
||||||
|
extern int maketic;
|
||||||
|
extern int nettics[MAXNETNODES];
|
||||||
|
|
||||||
|
extern ticcmd_t netcmds[MAXPLAYERS][BACKUPTICS];
|
||||||
|
extern int ticdup;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
83
programs/games/doom/trunk/h/doomtype.h
Normal file
83
programs/games/doom/trunk/h/doomtype.h
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Simple basic typedefs, isolated here to make it easier
|
||||||
|
// separating modules.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __DOOMTYPE__
|
||||||
|
#define __DOOMTYPE__
|
||||||
|
|
||||||
|
|
||||||
|
//#ifndef __BYTEBOOL__
|
||||||
|
//#define __BYTEBOOL__
|
||||||
|
// Fixed to use builtin bool type with C++.
|
||||||
|
// #ifdef __cplusplus
|
||||||
|
// typedef bool boolean;
|
||||||
|
// #else
|
||||||
|
// #endif
|
||||||
|
//typedef unsigned int boolean;
|
||||||
|
typedef enum {false=0, true,forced=0xFFFFFFFF} boolean;
|
||||||
|
typedef unsigned char byte;
|
||||||
|
//#endif
|
||||||
|
|
||||||
|
|
||||||
|
// Predefined with some OS.
|
||||||
|
#ifdef LINUX
|
||||||
|
#include <values.h>
|
||||||
|
#else
|
||||||
|
#ifndef MAXCHAR
|
||||||
|
#define MAXCHAR ((char)0x7f)
|
||||||
|
#endif
|
||||||
|
#ifndef MAXSHORT
|
||||||
|
#define MAXSHORT ((short)0x7fff)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Max pos 32-bit int.
|
||||||
|
#ifndef MAXINT
|
||||||
|
#define MAXINT ((int)0x7fffffff)
|
||||||
|
#endif
|
||||||
|
#ifndef MAXLONG
|
||||||
|
#define MAXLONG ((long)0x7fffffff)
|
||||||
|
#endif
|
||||||
|
#ifndef MINCHAR
|
||||||
|
#define MINCHAR ((char)0x80)
|
||||||
|
#endif
|
||||||
|
#ifndef MINSHORT
|
||||||
|
#define MINSHORT ((short)0x8000)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Max negative 32-bit integer.
|
||||||
|
#ifndef MININT
|
||||||
|
#define MININT ((int)0x80000000)
|
||||||
|
#endif
|
||||||
|
#ifndef MINLONG
|
||||||
|
#define MINLONG ((long)0x80000000)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
66
programs/games/doom/trunk/h/dstrings.h
Normal file
66
programs/games/doom/trunk/h/dstrings.h
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// DOOM strings, by language.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __DSTRINGS__
|
||||||
|
#define __DSTRINGS__
|
||||||
|
|
||||||
|
|
||||||
|
// All important printed strings.
|
||||||
|
// Language selection (message strings).
|
||||||
|
// Use -DFRENCH etc.
|
||||||
|
|
||||||
|
#ifdef FRENCH
|
||||||
|
#include "d_french.h"
|
||||||
|
#else
|
||||||
|
#include "d_englsh.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Misc. other strings.
|
||||||
|
#define SAVEGAMENAME "doomsav"
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// File locations,
|
||||||
|
// relative to current position.
|
||||||
|
// Path names are OS-sensitive.
|
||||||
|
//
|
||||||
|
#define DEVMAPS "devmaps"
|
||||||
|
#define DEVDATA "devdata"
|
||||||
|
|
||||||
|
|
||||||
|
// Not done in french?
|
||||||
|
|
||||||
|
// QuitDOOM messages
|
||||||
|
#define NUM_QUITMESSAGES 22
|
||||||
|
|
||||||
|
extern char* endmsg[];
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
53
programs/games/doom/trunk/h/f_finale.h
Normal file
53
programs/games/doom/trunk/h/f_finale.h
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __F_FINALE__
|
||||||
|
#define __F_FINALE__
|
||||||
|
|
||||||
|
|
||||||
|
#include "doomtype.h"
|
||||||
|
#include "d_event.h"
|
||||||
|
//
|
||||||
|
// FINALE
|
||||||
|
//
|
||||||
|
|
||||||
|
// Called by main loop.
|
||||||
|
boolean F_Responder (event_t* ev);
|
||||||
|
|
||||||
|
// Called by main loop.
|
||||||
|
void F_Ticker (void);
|
||||||
|
|
||||||
|
// Called by main loop.
|
||||||
|
void F_Drawer (void);
|
||||||
|
|
||||||
|
|
||||||
|
void F_StartFinale (void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
71
programs/games/doom/trunk/h/f_wipe.h
Normal file
71
programs/games/doom/trunk/h/f_wipe.h
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Mission start screen wipe/melt, special effects.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __F_WIPE_H__
|
||||||
|
#define __F_WIPE_H__
|
||||||
|
|
||||||
|
//
|
||||||
|
// SCREEN WIPE PACKAGE
|
||||||
|
//
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
// simple gradual pixel change for 8-bit only
|
||||||
|
wipe_ColorXForm,
|
||||||
|
|
||||||
|
// weird screen melt
|
||||||
|
wipe_Melt,
|
||||||
|
|
||||||
|
wipe_NUMWIPES
|
||||||
|
};
|
||||||
|
|
||||||
|
int
|
||||||
|
wipe_StartScreen
|
||||||
|
( int x,
|
||||||
|
int y,
|
||||||
|
int width,
|
||||||
|
int height );
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
wipe_EndScreen
|
||||||
|
( int x,
|
||||||
|
int y,
|
||||||
|
int width,
|
||||||
|
int height );
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
wipe_ScreenWipe
|
||||||
|
( int wipeno,
|
||||||
|
int x,
|
||||||
|
int y,
|
||||||
|
int width,
|
||||||
|
int height,
|
||||||
|
int ticks );
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
79
programs/games/doom/trunk/h/g_game.h
Normal file
79
programs/games/doom/trunk/h/g_game.h
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Duh.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __G_GAME__
|
||||||
|
#define __G_GAME__
|
||||||
|
|
||||||
|
#include "doomdef.h"
|
||||||
|
#include "d_event.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// GAME
|
||||||
|
//
|
||||||
|
void G_DeathMatchSpawnPlayer (int playernum);
|
||||||
|
|
||||||
|
void G_InitNew (skill_t skill, int episode, int map);
|
||||||
|
|
||||||
|
// Can be called by the startup code or M_Responder.
|
||||||
|
// A normal game starts at map 1,
|
||||||
|
// but a warp test can start elsewhere
|
||||||
|
void G_DeferedInitNew (skill_t skill, int episode, int map);
|
||||||
|
|
||||||
|
void G_DeferedPlayDemo (char* demo);
|
||||||
|
|
||||||
|
// Can be called by the startup code or M_Responder,
|
||||||
|
// calls P_SetupLevel or W_EnterWorld.
|
||||||
|
void G_LoadGame (char* name);
|
||||||
|
|
||||||
|
void G_DoLoadGame (void);
|
||||||
|
|
||||||
|
// Called by M_Responder.
|
||||||
|
void G_SaveGame (int slot, char* description);
|
||||||
|
|
||||||
|
// Only called by startup code.
|
||||||
|
void G_RecordDemo (char* name);
|
||||||
|
|
||||||
|
void G_BeginRecording (void);
|
||||||
|
|
||||||
|
void G_PlayDemo (char* name);
|
||||||
|
void G_TimeDemo (char* name);
|
||||||
|
boolean G_CheckDemoStatus (void);
|
||||||
|
|
||||||
|
void G_ExitLevel (void);
|
||||||
|
void G_SecretExitLevel (void);
|
||||||
|
|
||||||
|
void G_WorldDone (void);
|
||||||
|
|
||||||
|
void G_Ticker (void);
|
||||||
|
boolean G_Responder (event_t* ev);
|
||||||
|
|
||||||
|
void G_ScreenShot (void);
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
196
programs/games/doom/trunk/h/hu_lib.h
Normal file
196
programs/games/doom/trunk/h/hu_lib.h
Normal file
@ -0,0 +1,196 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION: none
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifndef __HULIB__
|
||||||
|
#define __HULIB__
|
||||||
|
|
||||||
|
// We are referring to patches.
|
||||||
|
#include "r_defs.h"
|
||||||
|
|
||||||
|
|
||||||
|
// background and foreground screen numbers
|
||||||
|
// different from other modules.
|
||||||
|
#define BG 1
|
||||||
|
#define FG 0
|
||||||
|
|
||||||
|
// font stuff
|
||||||
|
#define HU_CHARERASE KEY_BACKSPACE
|
||||||
|
|
||||||
|
#define HU_MAXLINES 4
|
||||||
|
#define HU_MAXLINELENGTH 80
|
||||||
|
|
||||||
|
//
|
||||||
|
// Typedefs of widgets
|
||||||
|
//
|
||||||
|
|
||||||
|
// Text Line widget
|
||||||
|
// (parent of Scrolling Text and Input Text widgets)
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
// left-justified position of scrolling text window
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
|
||||||
|
patch_t** f; // font
|
||||||
|
int sc; // start character
|
||||||
|
char l[HU_MAXLINELENGTH+1]; // line of text
|
||||||
|
int len; // current line length
|
||||||
|
|
||||||
|
// whether this line needs to be udpated
|
||||||
|
int needsupdate;
|
||||||
|
|
||||||
|
} hu_textline_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Scrolling Text window widget
|
||||||
|
// (child of Text Line widget)
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
hu_textline_t l[HU_MAXLINES]; // text lines to draw
|
||||||
|
int h; // height in lines
|
||||||
|
int cl; // current line number
|
||||||
|
|
||||||
|
// pointer to boolean stating whether to update window
|
||||||
|
boolean* on;
|
||||||
|
boolean laston; // last value of *->on.
|
||||||
|
|
||||||
|
} hu_stext_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Input Text Line widget
|
||||||
|
// (child of Text Line widget)
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
hu_textline_t l; // text line to input on
|
||||||
|
|
||||||
|
// left margin past which I am not to delete characters
|
||||||
|
int lm;
|
||||||
|
|
||||||
|
// pointer to boolean stating whether to update window
|
||||||
|
boolean* on;
|
||||||
|
boolean laston; // last value of *->on;
|
||||||
|
|
||||||
|
} hu_itext_t;
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Widget creation, access, and update routines
|
||||||
|
//
|
||||||
|
|
||||||
|
// initializes heads-up widget library
|
||||||
|
void HUlib_init(void);
|
||||||
|
|
||||||
|
//
|
||||||
|
// textline code
|
||||||
|
//
|
||||||
|
|
||||||
|
// clear a line of text
|
||||||
|
void HUlib_clearTextLine(hu_textline_t *t);
|
||||||
|
|
||||||
|
void HUlib_initTextLine(hu_textline_t *t, int x, int y, patch_t **f, int sc);
|
||||||
|
|
||||||
|
// returns success
|
||||||
|
boolean HUlib_addCharToTextLine(hu_textline_t *t, char ch);
|
||||||
|
|
||||||
|
// returns success
|
||||||
|
boolean HUlib_delCharFromTextLine(hu_textline_t *t);
|
||||||
|
|
||||||
|
// draws tline
|
||||||
|
void HUlib_drawTextLine(hu_textline_t *l, boolean drawcursor);
|
||||||
|
|
||||||
|
// erases text line
|
||||||
|
void HUlib_eraseTextLine(hu_textline_t *l);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Scrolling Text window widget routines
|
||||||
|
//
|
||||||
|
|
||||||
|
// ?
|
||||||
|
void
|
||||||
|
HUlib_initSText
|
||||||
|
( hu_stext_t* s,
|
||||||
|
int x,
|
||||||
|
int y,
|
||||||
|
int h,
|
||||||
|
patch_t** font,
|
||||||
|
int startchar,
|
||||||
|
boolean* on );
|
||||||
|
|
||||||
|
// add a new line
|
||||||
|
void HUlib_addLineToSText(hu_stext_t* s);
|
||||||
|
|
||||||
|
// ?
|
||||||
|
void
|
||||||
|
HUlib_addMessageToSText
|
||||||
|
( hu_stext_t* s,
|
||||||
|
char* prefix,
|
||||||
|
char* msg );
|
||||||
|
|
||||||
|
// draws stext
|
||||||
|
void HUlib_drawSText(hu_stext_t* s);
|
||||||
|
|
||||||
|
// erases all stext lines
|
||||||
|
void HUlib_eraseSText(hu_stext_t* s);
|
||||||
|
|
||||||
|
// Input Text Line widget routines
|
||||||
|
void
|
||||||
|
HUlib_initIText
|
||||||
|
( hu_itext_t* it,
|
||||||
|
int x,
|
||||||
|
int y,
|
||||||
|
patch_t** font,
|
||||||
|
int startchar,
|
||||||
|
boolean* on );
|
||||||
|
|
||||||
|
// enforces left margin
|
||||||
|
void HUlib_delCharFromIText(hu_itext_t* it);
|
||||||
|
|
||||||
|
// enforces left margin
|
||||||
|
void HUlib_eraseLineFromIText(hu_itext_t* it);
|
||||||
|
|
||||||
|
// resets line and left margin
|
||||||
|
void HUlib_resetIText(hu_itext_t* it);
|
||||||
|
|
||||||
|
// left of left-margin
|
||||||
|
void
|
||||||
|
HUlib_addPrefixToIText
|
||||||
|
( hu_itext_t* it,
|
||||||
|
char* str );
|
||||||
|
|
||||||
|
// whether eaten
|
||||||
|
boolean
|
||||||
|
HUlib_keyInIText
|
||||||
|
( hu_itext_t* it,
|
||||||
|
unsigned char ch );
|
||||||
|
|
||||||
|
void HUlib_drawIText(hu_itext_t* it);
|
||||||
|
|
||||||
|
// erases all itext lines
|
||||||
|
void HUlib_eraseIText(hu_itext_t* it);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
66
programs/games/doom/trunk/h/hu_stuff.h
Normal file
66
programs/games/doom/trunk/h/hu_stuff.h
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION: Head up display
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifndef __HU_STUFF_H__
|
||||||
|
#define __HU_STUFF_H__
|
||||||
|
|
||||||
|
#include "d_event.h"
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Globally visible constants.
|
||||||
|
//
|
||||||
|
#define HU_FONTSTART '!' // the first font characters
|
||||||
|
#define HU_FONTEND '_' // the last font characters
|
||||||
|
|
||||||
|
// Calculate # of glyphs in font.
|
||||||
|
#define HU_FONTSIZE (HU_FONTEND - HU_FONTSTART + 1)
|
||||||
|
|
||||||
|
#define HU_BROADCAST 5
|
||||||
|
|
||||||
|
#define HU_MSGREFRESH KEY_ENTER
|
||||||
|
#define HU_MSGX 0
|
||||||
|
#define HU_MSGY 0
|
||||||
|
#define HU_MSGWIDTH 64 // in characters
|
||||||
|
#define HU_MSGHEIGHT 1 // in lines
|
||||||
|
|
||||||
|
#define HU_MSGTIMEOUT (4*TICRATE)
|
||||||
|
|
||||||
|
//
|
||||||
|
// HEADS UP TEXT
|
||||||
|
//
|
||||||
|
|
||||||
|
void HU_Init(void);
|
||||||
|
void HU_Start(void);
|
||||||
|
|
||||||
|
boolean HU_Responder(event_t* ev);
|
||||||
|
|
||||||
|
void HU_Ticker(void);
|
||||||
|
void HU_Drawer(void);
|
||||||
|
char HU_dequeueChatChar(void);
|
||||||
|
void HU_Erase(void);
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
45
programs/games/doom/trunk/h/i_net.h
Normal file
45
programs/games/doom/trunk/h/i_net.h
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// System specific network interface stuff.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __I_NET__
|
||||||
|
#define __I_NET__
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Called by D_DoomMain.
|
||||||
|
|
||||||
|
|
||||||
|
void I_InitNetwork (void);
|
||||||
|
void I_NetCmd (void);
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
111
programs/games/doom/trunk/h/i_sound.h
Normal file
111
programs/games/doom/trunk/h/i_sound.h
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// System interface, sound.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifndef __I_SOUND__
|
||||||
|
#define __I_SOUND__
|
||||||
|
|
||||||
|
#include "doomdef.h"
|
||||||
|
|
||||||
|
#include "doomstat.h"
|
||||||
|
#include "sounds.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Init at program start...
|
||||||
|
void I_InitSound();
|
||||||
|
|
||||||
|
// ... shut down and relase at program termination.
|
||||||
|
void I_ShutdownSound(void);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// SFX I/O
|
||||||
|
//
|
||||||
|
|
||||||
|
// Initialize channels?
|
||||||
|
void I_SetChannels();
|
||||||
|
|
||||||
|
// Get raw data lump index for sound descriptor.
|
||||||
|
int I_GetSfxLumpNum (sfxinfo_t* sfxinfo );
|
||||||
|
|
||||||
|
|
||||||
|
// Starts a sound in a particular sound channel.
|
||||||
|
int
|
||||||
|
I_StartSound
|
||||||
|
( int id,
|
||||||
|
int vol,
|
||||||
|
int sep,
|
||||||
|
int pitch,
|
||||||
|
int priority );
|
||||||
|
|
||||||
|
|
||||||
|
// Stops a sound channel.
|
||||||
|
void I_StopSound(int handle);
|
||||||
|
|
||||||
|
// Called by S_*() functions
|
||||||
|
// to see if a channel is still playing.
|
||||||
|
// Returns 0 if no longer playing, 1 if playing.
|
||||||
|
int I_SoundIsPlaying(int handle);
|
||||||
|
|
||||||
|
// Updates the volume, separation,
|
||||||
|
// and pitch of a sound channel.
|
||||||
|
void
|
||||||
|
I_UpdateSoundParams
|
||||||
|
( int handle,
|
||||||
|
int vol,
|
||||||
|
int sep,
|
||||||
|
int pitch );
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MUSIC I/O
|
||||||
|
//
|
||||||
|
void I_InitMusic(void);
|
||||||
|
void I_ShutdownMusic(void);
|
||||||
|
// Volume.
|
||||||
|
void I_SetMusicVolume(int volume);
|
||||||
|
// PAUSE game handling.
|
||||||
|
void I_PauseSong(int handle);
|
||||||
|
void I_ResumeSong(int handle);
|
||||||
|
// Registers a song handle to song data.
|
||||||
|
int I_RegisterSong(void *data);
|
||||||
|
// Called by anything that wishes to start music.
|
||||||
|
// plays a song, and when the song is done,
|
||||||
|
// starts playing it again in an endless loop.
|
||||||
|
// Horrible thing to do, considering.
|
||||||
|
void
|
||||||
|
I_PlaySong
|
||||||
|
( int handle,
|
||||||
|
int looping );
|
||||||
|
// Stops a song over 3 seconds.
|
||||||
|
void I_StopSong(int handle);
|
||||||
|
// See above (register), then think backwards
|
||||||
|
void I_UnRegisterSong(int handle);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
97
programs/games/doom/trunk/h/i_system.h
Normal file
97
programs/games/doom/trunk/h/i_system.h
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// System specific interface stuff.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __I_SYSTEM__
|
||||||
|
#define __I_SYSTEM__
|
||||||
|
|
||||||
|
#include "d_ticcmd.h"
|
||||||
|
#include "d_event.h"
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// Called by DoomMain.
|
||||||
|
void I_Init (void);
|
||||||
|
|
||||||
|
// Called by startup code
|
||||||
|
// to get the ammount of memory to malloc
|
||||||
|
// for the zone management.
|
||||||
|
byte* I_ZoneBase (int *size);
|
||||||
|
|
||||||
|
|
||||||
|
// Called by D_DoomLoop,
|
||||||
|
// returns current time in tics.
|
||||||
|
int I_GetTime (void);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Called by D_DoomLoop,
|
||||||
|
// called before processing any tics in a frame
|
||||||
|
// (just after displaying a frame).
|
||||||
|
// Time consuming syncronous operations
|
||||||
|
// are performed here (joystick reading).
|
||||||
|
// Can call D_PostEvent.
|
||||||
|
//
|
||||||
|
void I_StartFrame (void);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Called by D_DoomLoop,
|
||||||
|
// called before processing each tic in a frame.
|
||||||
|
// Quick syncronous operations are performed here.
|
||||||
|
// Can call D_PostEvent.
|
||||||
|
void I_StartTic (void);
|
||||||
|
|
||||||
|
// Asynchronous interrupt functions should maintain private queues
|
||||||
|
// that are read by the synchronous functions
|
||||||
|
// to be converted into events.
|
||||||
|
|
||||||
|
// Either returns a null ticcmd,
|
||||||
|
// or calls a loadable driver to build it.
|
||||||
|
// This ticcmd will then be modified by the gameloop
|
||||||
|
// for normal input.
|
||||||
|
ticcmd_t* I_BaseTiccmd (void);
|
||||||
|
|
||||||
|
|
||||||
|
// Called by M_Responder when quit is selected.
|
||||||
|
// Clean exit, displays sell blurb.
|
||||||
|
void I_Quit (void);
|
||||||
|
|
||||||
|
|
||||||
|
// Allocates from low memory under dos,
|
||||||
|
// just mallocs under unix
|
||||||
|
byte* I_AllocLow (int length);
|
||||||
|
|
||||||
|
void I_Tactile (int on, int off, int total);
|
||||||
|
|
||||||
|
|
||||||
|
void I_Error (char *error, ...);
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
63
programs/games/doom/trunk/h/i_video.h
Normal file
63
programs/games/doom/trunk/h/i_video.h
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// System specific interface stuff.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __I_VIDEO__
|
||||||
|
#define __I_VIDEO__
|
||||||
|
|
||||||
|
|
||||||
|
#include "doomtype.h"
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// Called by D_DoomMain,
|
||||||
|
// determines the hardware configuration
|
||||||
|
// and sets up the video mode
|
||||||
|
void I_InitGraphics (void);
|
||||||
|
|
||||||
|
|
||||||
|
void I_ShutdownGraphics(void);
|
||||||
|
|
||||||
|
// Takes full 8 bit values.
|
||||||
|
void I_SetPalette (byte* palette);
|
||||||
|
|
||||||
|
void I_UpdateNoBlit (void);
|
||||||
|
void I_FinishUpdate (void);
|
||||||
|
|
||||||
|
// Wait for vertical retrace or pause a bit.
|
||||||
|
void I_WaitVBL(int count);
|
||||||
|
|
||||||
|
void I_ReadScreen (byte* scr);
|
||||||
|
|
||||||
|
void I_BeginRead (void);
|
||||||
|
void I_EndRead (void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
1340
programs/games/doom/trunk/h/info.h
Normal file
1340
programs/games/doom/trunk/h/info.h
Normal file
File diff suppressed because it is too large
Load Diff
121
programs/games/doom/trunk/h/kolibri.h
Normal file
121
programs/games/doom/trunk/h/kolibri.h
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define FONT0 0x00000000
|
||||||
|
#define FONT1 0x10000000
|
||||||
|
|
||||||
|
#define BT_NORMAL 0x00000000
|
||||||
|
#define BT_NOFRAME 0x20000000
|
||||||
|
#define BT_HIDE 0x40000000
|
||||||
|
#define BT_DEL 0x80000000
|
||||||
|
|
||||||
|
#define EV_REDRAW 1
|
||||||
|
#define EV_KEY 2
|
||||||
|
#define EV_BUTTON 3
|
||||||
|
|
||||||
|
#define REL_SCREEN 0
|
||||||
|
#define REL_WINDOW 1
|
||||||
|
|
||||||
|
#define FILE_NOT_FOUND 5
|
||||||
|
#define FILE_EOF 6
|
||||||
|
|
||||||
|
|
||||||
|
typedef unsigned int DWORD;
|
||||||
|
typedef unsigned short int WORD;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{ DWORD pci_cmd;
|
||||||
|
DWORD irq;
|
||||||
|
DWORD glob_cntrl;
|
||||||
|
DWORD glob_sta;
|
||||||
|
DWORD codec_io_base;
|
||||||
|
DWORD ctrl_io_base;
|
||||||
|
DWORD codec_mem_base;
|
||||||
|
DWORD ctrl_mem_base;
|
||||||
|
DWORD codec_id;
|
||||||
|
} CTRL_INFO;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{ DWORD cmd;
|
||||||
|
DWORD offset;
|
||||||
|
DWORD r1;
|
||||||
|
DWORD count;
|
||||||
|
DWORD buff;
|
||||||
|
char r2;
|
||||||
|
char *name;
|
||||||
|
} FILEIO;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{ DWORD attr;
|
||||||
|
DWORD flags;
|
||||||
|
DWORD cr_time;
|
||||||
|
DWORD cr_date;
|
||||||
|
DWORD acc_time;
|
||||||
|
DWORD acc_date;
|
||||||
|
DWORD mod_time;
|
||||||
|
DWORD mod_date;
|
||||||
|
DWORD size;
|
||||||
|
DWORD size_high;
|
||||||
|
} FILEINFO;
|
||||||
|
|
||||||
|
void _stdcall InitHeap(int heap_size);
|
||||||
|
void* _stdcall UserAlloc(int size);
|
||||||
|
void _stdcall GetNotify(DWORD *event);
|
||||||
|
|
||||||
|
//void _stdcall CreateThread(void *fn, char *p_stack);
|
||||||
|
DWORD _stdcall GetMousePos(DWORD rel_type);
|
||||||
|
int _stdcall GetService(char *srv_name);
|
||||||
|
void _stdcall GetDevInfo(DWORD hSrv,CTRL_INFO *pInfo);
|
||||||
|
int _stdcall GetMasterVol(DWORD hSrv,int* vol);
|
||||||
|
int _stdcall SetMasterVol(DWORD hSrv, int vol);
|
||||||
|
DWORD _stdcall CreateBuffer(DWORD hSrv, DWORD format);
|
||||||
|
int _stdcall DestroyBuffer(DWORD hSrv, DWORD hBuff);
|
||||||
|
int _stdcall SetBuffer(DWORD hSrv, DWORD hBuff,char* buff,
|
||||||
|
DWORD offs, int size);
|
||||||
|
int _stdcall PlayBuffer(DWORD hSrv, DWORD hBuff);
|
||||||
|
int _stdcall StopBuffer(DWORD hSrv, DWORD hBuff);
|
||||||
|
|
||||||
|
void _stdcall debug_out_hex(DWORD val);
|
||||||
|
|
||||||
|
//void debug_out_str(char* str);
|
||||||
|
|
||||||
|
int _stdcall get_fileinfo(char *name,FILEINFO* pinfo);
|
||||||
|
int _stdcall read_file (char *name,char*buff,int offset, int count,int *reads);
|
||||||
|
int _stdcall write_file(char *name,char*buff,int offset,int count,int *writes);
|
||||||
|
|
||||||
|
//void exit();
|
||||||
|
int _stdcall get_key(int *key);
|
||||||
|
int _stdcall remap_key(int key);
|
||||||
|
|
||||||
|
int _cdecl get_button_id();
|
||||||
|
|
||||||
|
void delay(int val);
|
||||||
|
|
||||||
|
int wait_for_event(int time);
|
||||||
|
int wait_for_event_infinite();
|
||||||
|
|
||||||
|
//void BeginDraw(void);
|
||||||
|
//void EndDraw(void);
|
||||||
|
|
||||||
|
void _stdcall DrawWindow(int x,int y, int sx, int sy,int workcolor,int style,
|
||||||
|
int captioncolor,int windowtype,int bordercolor);
|
||||||
|
void _stdcall debug_out(int ch);
|
||||||
|
void _stdcall make_button(int x, int y, int xsize, int ysize, int id, int color);
|
||||||
|
void _stdcall draw_bar(int x, int y, int xsize, int ysize, int color);
|
||||||
|
void _stdcall write_text(int x,int y,int color,char* text,int len);
|
||||||
|
|
||||||
|
void _cdecl mf_init();
|
||||||
|
void* _cdecl dlmalloc(size_t size);
|
||||||
|
void _cdecl dlfree(void *mem);
|
||||||
|
void* _cdecl dlrealloc(void* oldmem, size_t bytes);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
}
|
||||||
|
#endif
|
42
programs/games/doom/trunk/h/m_argv.h
Normal file
42
programs/games/doom/trunk/h/m_argv.h
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Nil.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __M_ARGV__
|
||||||
|
#define __M_ARGV__
|
||||||
|
|
||||||
|
//
|
||||||
|
// MISC
|
||||||
|
//
|
||||||
|
extern int myargc;
|
||||||
|
extern char** myargv;
|
||||||
|
|
||||||
|
// Returns the position of the given parameter
|
||||||
|
// in the arg list (0 if not found).
|
||||||
|
int M_CheckParm (char* check);
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
55
programs/games/doom/trunk/h/m_bbox.h
Normal file
55
programs/games/doom/trunk/h/m_bbox.h
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Nil.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __M_BBOX__
|
||||||
|
#define __M_BBOX__
|
||||||
|
|
||||||
|
#include "doomtype.h"
|
||||||
|
|
||||||
|
#include "m_fixed.h"
|
||||||
|
|
||||||
|
|
||||||
|
// Bounding box coordinate storage.
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
BOXTOP,
|
||||||
|
BOXBOTTOM,
|
||||||
|
BOXLEFT,
|
||||||
|
BOXRIGHT
|
||||||
|
}; // bbox coordinates
|
||||||
|
|
||||||
|
// Bounding box functions.
|
||||||
|
void M_ClearBox (fixed_t* box);
|
||||||
|
|
||||||
|
void
|
||||||
|
M_AddToBox
|
||||||
|
( fixed_t* box,
|
||||||
|
fixed_t x,
|
||||||
|
fixed_t y );
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
58
programs/games/doom/trunk/h/m_cheat.h
Normal file
58
programs/games/doom/trunk/h/m_cheat.h
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Cheat code checking.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __M_CHEAT__
|
||||||
|
#define __M_CHEAT__
|
||||||
|
|
||||||
|
//
|
||||||
|
// CHEAT SEQUENCE PACKAGE
|
||||||
|
//
|
||||||
|
|
||||||
|
#define SCRAMBLE(a) \
|
||||||
|
((((a)&1)<<7) + (((a)&2)<<5) + ((a)&4) + (((a)&8)<<1) \
|
||||||
|
+ (((a)&16)>>1) + ((a)&32) + (((a)&64)>>5) + (((a)&128)>>7))
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
unsigned char* sequence;
|
||||||
|
unsigned char* p;
|
||||||
|
|
||||||
|
} cheatseq_t;
|
||||||
|
|
||||||
|
int
|
||||||
|
cht_CheckCheat
|
||||||
|
( cheatseq_t* cht,
|
||||||
|
char key );
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
cht_GetParam
|
||||||
|
( cheatseq_t* cht,
|
||||||
|
char* buffer );
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
51
programs/games/doom/trunk/h/m_fixed.h
Normal file
51
programs/games/doom/trunk/h/m_fixed.h
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Fixed point arithemtics, implementation.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __M_FIXED__
|
||||||
|
#define __M_FIXED__
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Fixed point, 32bit as 16.16.
|
||||||
|
//
|
||||||
|
#define FRACBITS 16
|
||||||
|
#define FRACUNIT (1<<FRACBITS)
|
||||||
|
|
||||||
|
typedef int fixed_t;
|
||||||
|
|
||||||
|
fixed_t FixedMul (fixed_t a, fixed_t b);
|
||||||
|
fixed_t FixedDiv (fixed_t a, fixed_t b);
|
||||||
|
fixed_t FixedDiv2 (fixed_t a, fixed_t b);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
67
programs/games/doom/trunk/h/m_menu.h
Normal file
67
programs/games/doom/trunk/h/m_menu.h
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Menu widget stuff, episode selection and such.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __M_MENU__
|
||||||
|
#define __M_MENU__
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#include "d_event.h"
|
||||||
|
|
||||||
|
//
|
||||||
|
// MENUS
|
||||||
|
//
|
||||||
|
// Called by main loop,
|
||||||
|
// saves config file and calls I_Quit when user exits.
|
||||||
|
// Even when the menu is not displayed,
|
||||||
|
// this can resize the view and change game parameters.
|
||||||
|
// Does all the real work of the menu interaction.
|
||||||
|
boolean M_Responder (event_t *ev);
|
||||||
|
|
||||||
|
|
||||||
|
// Called by main loop,
|
||||||
|
// only used for menu (skull cursor) animation.
|
||||||
|
void M_Ticker (void);
|
||||||
|
|
||||||
|
// Called by main loop,
|
||||||
|
// draws the menus directly into the screen buffer.
|
||||||
|
void M_Drawer (void);
|
||||||
|
|
||||||
|
// Called by D_DoomMain,
|
||||||
|
// loads the config file.
|
||||||
|
void M_Init (void);
|
||||||
|
|
||||||
|
// Called by intro code to force menu up upon a keypress,
|
||||||
|
// does nothing if menu is already up.
|
||||||
|
void M_StartControlPanel (void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
65
programs/games/doom/trunk/h/m_misc.h
Normal file
65
programs/games/doom/trunk/h/m_misc.h
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __M_MISC__
|
||||||
|
#define __M_MISC__
|
||||||
|
|
||||||
|
|
||||||
|
#include "doomtype.h"
|
||||||
|
//
|
||||||
|
// MISC
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
boolean
|
||||||
|
M_WriteFile
|
||||||
|
( char const* name,
|
||||||
|
void* source,
|
||||||
|
int length );
|
||||||
|
|
||||||
|
int
|
||||||
|
M_ReadFile
|
||||||
|
( char const* name,
|
||||||
|
byte** buffer );
|
||||||
|
|
||||||
|
void M_ScreenShot (void);
|
||||||
|
|
||||||
|
void M_LoadDefaults (void);
|
||||||
|
|
||||||
|
void M_SaveDefaults (void);
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
M_DrawText
|
||||||
|
( int x,
|
||||||
|
int y,
|
||||||
|
boolean direct,
|
||||||
|
char* string );
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
47
programs/games/doom/trunk/h/m_random.h
Normal file
47
programs/games/doom/trunk/h/m_random.h
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __M_RANDOM__
|
||||||
|
#define __M_RANDOM__
|
||||||
|
|
||||||
|
|
||||||
|
#include "doomtype.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Returns a number from 0 to 255,
|
||||||
|
// from a lookup table.
|
||||||
|
int M_Random (void);
|
||||||
|
|
||||||
|
// As M_Random, but used only by the play simulation.
|
||||||
|
int P_Random (void);
|
||||||
|
|
||||||
|
// Fix randoms for demos.
|
||||||
|
void M_ClearRandom (void);
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
52
programs/games/doom/trunk/h/m_swap.h
Normal file
52
programs/games/doom/trunk/h/m_swap.h
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Endianess handling, swapping 16bit and 32bit.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __M_SWAP__
|
||||||
|
#define __M_SWAP__
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// Endianess handling.
|
||||||
|
// WAD files are stored little endian.
|
||||||
|
#ifdef __BIG_ENDIAN__
|
||||||
|
short SwapSHORT(short);
|
||||||
|
long SwapLONG(long);
|
||||||
|
#define SHORT(x) ((short)SwapSHORT((unsigned short) (x)))
|
||||||
|
#define LONG(x) ((long)SwapLONG((unsigned long) (x)))
|
||||||
|
#else
|
||||||
|
#define SHORT(x) (x)
|
||||||
|
#define LONG(x) (x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
41
programs/games/doom/trunk/h/p_inter.h
Normal file
41
programs/games/doom/trunk/h/p_inter.h
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __P_INTER__
|
||||||
|
#define __P_INTER__
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
boolean P_GivePower(player_t*, int);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
289
programs/games/doom/trunk/h/p_local.h
Normal file
289
programs/games/doom/trunk/h/p_local.h
Normal file
@ -0,0 +1,289 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Play functions, animation, global header.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __P_LOCAL__
|
||||||
|
#define __P_LOCAL__
|
||||||
|
|
||||||
|
#ifndef __R_LOCAL__
|
||||||
|
#include "r_local.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FLOATSPEED (FRACUNIT*4)
|
||||||
|
|
||||||
|
|
||||||
|
#define MAXHEALTH 100
|
||||||
|
#define VIEWHEIGHT (41*FRACUNIT)
|
||||||
|
|
||||||
|
// mapblocks are used to check movement
|
||||||
|
// against lines and things
|
||||||
|
#define MAPBLOCKUNITS 128
|
||||||
|
#define MAPBLOCKSIZE (MAPBLOCKUNITS*FRACUNIT)
|
||||||
|
#define MAPBLOCKSHIFT (FRACBITS+7)
|
||||||
|
#define MAPBMASK (MAPBLOCKSIZE-1)
|
||||||
|
#define MAPBTOFRAC (MAPBLOCKSHIFT-FRACBITS)
|
||||||
|
|
||||||
|
|
||||||
|
// player radius for movement checking
|
||||||
|
#define PLAYERRADIUS 16*FRACUNIT
|
||||||
|
|
||||||
|
// MAXRADIUS is for precalculated sector block boxes
|
||||||
|
// the spider demon is larger,
|
||||||
|
// but we do not have any moving sectors nearby
|
||||||
|
#define MAXRADIUS 32*FRACUNIT
|
||||||
|
|
||||||
|
#define GRAVITY FRACUNIT
|
||||||
|
#define MAXMOVE (30*FRACUNIT)
|
||||||
|
|
||||||
|
#define USERANGE (64*FRACUNIT)
|
||||||
|
#define MELEERANGE (64*FRACUNIT)
|
||||||
|
#define MISSILERANGE (32*64*FRACUNIT)
|
||||||
|
|
||||||
|
// follow a player exlusively for 3 seconds
|
||||||
|
#define BASETHRESHOLD 100
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_TICK
|
||||||
|
//
|
||||||
|
|
||||||
|
// both the head and tail of the thinker list
|
||||||
|
extern thinker_t thinkercap;
|
||||||
|
|
||||||
|
|
||||||
|
void P_InitThinkers (void);
|
||||||
|
void P_AddThinker (thinker_t* thinker);
|
||||||
|
void P_RemoveThinker (thinker_t* thinker);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_PSPR
|
||||||
|
//
|
||||||
|
void P_SetupPsprites (player_t* curplayer);
|
||||||
|
void P_MovePsprites (player_t* curplayer);
|
||||||
|
void P_DropWeapon (player_t* player);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_USER
|
||||||
|
//
|
||||||
|
void P_PlayerThink (player_t* player);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_MOBJ
|
||||||
|
//
|
||||||
|
#define ONFLOORZ MININT
|
||||||
|
#define ONCEILINGZ MAXINT
|
||||||
|
|
||||||
|
// Time interval for item respawning.
|
||||||
|
#define ITEMQUESIZE 128
|
||||||
|
|
||||||
|
extern mapthing_t itemrespawnque[ITEMQUESIZE];
|
||||||
|
extern int itemrespawntime[ITEMQUESIZE];
|
||||||
|
extern int iquehead;
|
||||||
|
extern int iquetail;
|
||||||
|
|
||||||
|
|
||||||
|
void P_RespawnSpecials (void);
|
||||||
|
|
||||||
|
mobj_t*
|
||||||
|
P_SpawnMobj
|
||||||
|
( fixed_t x,
|
||||||
|
fixed_t y,
|
||||||
|
fixed_t z,
|
||||||
|
mobjtype_t type );
|
||||||
|
|
||||||
|
void P_RemoveMobj (mobj_t* th);
|
||||||
|
boolean P_SetMobjState (mobj_t* mobj, statenum_t state);
|
||||||
|
void P_MobjThinker (mobj_t* mobj);
|
||||||
|
|
||||||
|
void P_SpawnPuff (fixed_t x, fixed_t y, fixed_t z);
|
||||||
|
void P_SpawnBlood (fixed_t x, fixed_t y, fixed_t z, int damage);
|
||||||
|
mobj_t* P_SpawnMissile (mobj_t* source, mobj_t* dest, mobjtype_t type);
|
||||||
|
void P_SpawnPlayerMissile (mobj_t* source, mobjtype_t type);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_ENEMY
|
||||||
|
//
|
||||||
|
void P_NoiseAlert (mobj_t* target, mobj_t* emmiter);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_MAPUTL
|
||||||
|
//
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
fixed_t x;
|
||||||
|
fixed_t y;
|
||||||
|
fixed_t dx;
|
||||||
|
fixed_t dy;
|
||||||
|
|
||||||
|
} divline_t;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
fixed_t frac; // along trace line
|
||||||
|
boolean isaline;
|
||||||
|
union {
|
||||||
|
mobj_t* thing;
|
||||||
|
line_t* line;
|
||||||
|
} d;
|
||||||
|
} intercept_t;
|
||||||
|
|
||||||
|
#define MAXINTERCEPTS 128
|
||||||
|
|
||||||
|
extern intercept_t intercepts[MAXINTERCEPTS];
|
||||||
|
extern intercept_t* intercept_p;
|
||||||
|
|
||||||
|
typedef boolean (*traverser_t) (intercept_t *in);
|
||||||
|
|
||||||
|
fixed_t P_AproxDistance (fixed_t dx, fixed_t dy);
|
||||||
|
int P_PointOnLineSide (fixed_t x, fixed_t y, line_t* line);
|
||||||
|
int P_PointOnDivlineSide (fixed_t x, fixed_t y, divline_t* line);
|
||||||
|
void P_MakeDivline (line_t* li, divline_t* dl);
|
||||||
|
fixed_t P_InterceptVector (divline_t* v2, divline_t* v1);
|
||||||
|
int P_BoxOnLineSide (fixed_t* tmbox, line_t* ld);
|
||||||
|
|
||||||
|
extern fixed_t opentop;
|
||||||
|
extern fixed_t openbottom;
|
||||||
|
extern fixed_t openrange;
|
||||||
|
extern fixed_t lowfloor;
|
||||||
|
|
||||||
|
void P_LineOpening (line_t* linedef);
|
||||||
|
|
||||||
|
boolean P_BlockLinesIterator (int x, int y, boolean(*func)(line_t*) );
|
||||||
|
boolean P_BlockThingsIterator (int x, int y, boolean(*func)(mobj_t*) );
|
||||||
|
|
||||||
|
#define PT_ADDLINES 1
|
||||||
|
#define PT_ADDTHINGS 2
|
||||||
|
#define PT_EARLYOUT 4
|
||||||
|
|
||||||
|
extern divline_t trace;
|
||||||
|
|
||||||
|
boolean
|
||||||
|
P_PathTraverse
|
||||||
|
( fixed_t x1,
|
||||||
|
fixed_t y1,
|
||||||
|
fixed_t x2,
|
||||||
|
fixed_t y2,
|
||||||
|
int flags,
|
||||||
|
boolean (*trav) (intercept_t *));
|
||||||
|
|
||||||
|
void P_UnsetThingPosition (mobj_t* thing);
|
||||||
|
void P_SetThingPosition (mobj_t* thing);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_MAP
|
||||||
|
//
|
||||||
|
|
||||||
|
// If "floatok" true, move would be ok
|
||||||
|
// if within "tmfloorz - tmceilingz".
|
||||||
|
extern boolean floatok;
|
||||||
|
extern fixed_t tmfloorz;
|
||||||
|
extern fixed_t tmceilingz;
|
||||||
|
|
||||||
|
|
||||||
|
extern line_t* ceilingline;
|
||||||
|
|
||||||
|
boolean P_CheckPosition (mobj_t *thing, fixed_t x, fixed_t y);
|
||||||
|
boolean P_TryMove (mobj_t* thing, fixed_t x, fixed_t y);
|
||||||
|
boolean P_TeleportMove (mobj_t* thing, fixed_t x, fixed_t y);
|
||||||
|
void P_SlideMove (mobj_t* mo);
|
||||||
|
boolean P_CheckSight (mobj_t* t1, mobj_t* t2);
|
||||||
|
void P_UseLines (player_t* player);
|
||||||
|
|
||||||
|
boolean P_ChangeSector (sector_t* sector, boolean crunch);
|
||||||
|
|
||||||
|
extern mobj_t* linetarget; // who got hit (or NULL)
|
||||||
|
|
||||||
|
fixed_t
|
||||||
|
P_AimLineAttack
|
||||||
|
( mobj_t* t1,
|
||||||
|
angle_t angle,
|
||||||
|
fixed_t distance );
|
||||||
|
|
||||||
|
void
|
||||||
|
P_LineAttack
|
||||||
|
( mobj_t* t1,
|
||||||
|
angle_t angle,
|
||||||
|
fixed_t distance,
|
||||||
|
fixed_t slope,
|
||||||
|
int damage );
|
||||||
|
|
||||||
|
void
|
||||||
|
P_RadiusAttack
|
||||||
|
( mobj_t* spot,
|
||||||
|
mobj_t* source,
|
||||||
|
int damage );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_SETUP
|
||||||
|
//
|
||||||
|
extern byte* rejectmatrix; // for fast sight rejection
|
||||||
|
extern short* blockmaplump; // offsets in blockmap are from here
|
||||||
|
extern short* blockmap;
|
||||||
|
extern int bmapwidth;
|
||||||
|
extern int bmapheight; // in mapblocks
|
||||||
|
extern fixed_t bmaporgx;
|
||||||
|
extern fixed_t bmaporgy; // origin of block map
|
||||||
|
extern mobj_t** blocklinks; // for thing chains
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_INTER
|
||||||
|
//
|
||||||
|
extern int maxammo[NUMAMMO];
|
||||||
|
extern int clipammo[NUMAMMO];
|
||||||
|
|
||||||
|
void
|
||||||
|
P_TouchSpecialThing
|
||||||
|
( mobj_t* special,
|
||||||
|
mobj_t* toucher );
|
||||||
|
|
||||||
|
void
|
||||||
|
P_DamageMobj
|
||||||
|
( mobj_t* target,
|
||||||
|
mobj_t* inflictor,
|
||||||
|
mobj_t* source,
|
||||||
|
int damage );
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_SPEC
|
||||||
|
//
|
||||||
|
#include "p_spec.h"
|
||||||
|
|
||||||
|
|
||||||
|
#endif // __P_LOCAL__
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
295
programs/games/doom/trunk/h/p_mobj.h
Normal file
295
programs/games/doom/trunk/h/p_mobj.h
Normal file
@ -0,0 +1,295 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Map Objects, MObj, definition and handling.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __P_MOBJ__
|
||||||
|
#define __P_MOBJ__
|
||||||
|
|
||||||
|
// Basics.
|
||||||
|
#include "tables.h"
|
||||||
|
#include "m_fixed.h"
|
||||||
|
|
||||||
|
// We need the thinker_t stuff.
|
||||||
|
#include "d_think.h"
|
||||||
|
|
||||||
|
// We need the WAD data structure for Map things,
|
||||||
|
// from the THINGS lump.
|
||||||
|
#include "doomdata.h"
|
||||||
|
|
||||||
|
// States are tied to finite states are
|
||||||
|
// tied to animation frames.
|
||||||
|
// Needs precompiled tables/data structures.
|
||||||
|
#include "info.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// NOTES: mobj_t
|
||||||
|
//
|
||||||
|
// mobj_ts are used to tell the refresh where to draw an image,
|
||||||
|
// tell the world simulation when objects are contacted,
|
||||||
|
// and tell the sound driver how to position a sound.
|
||||||
|
//
|
||||||
|
// The refresh uses the next and prev links to follow
|
||||||
|
// lists of things in sectors as they are being drawn.
|
||||||
|
// The sprite, frame, and angle elements determine which patch_t
|
||||||
|
// is used to draw the sprite if it is visible.
|
||||||
|
// The sprite and frame values are allmost allways set
|
||||||
|
// from state_t structures.
|
||||||
|
// The statescr.exe utility generates the states.h and states.c
|
||||||
|
// files that contain the sprite/frame numbers from the
|
||||||
|
// statescr.txt source file.
|
||||||
|
// The xyz origin point represents a point at the bottom middle
|
||||||
|
// of the sprite (between the feet of a biped).
|
||||||
|
// This is the default origin position for patch_ts grabbed
|
||||||
|
// with lumpy.exe.
|
||||||
|
// A walking creature will have its z equal to the floor
|
||||||
|
// it is standing on.
|
||||||
|
//
|
||||||
|
// The sound code uses the x,y, and subsector fields
|
||||||
|
// to do stereo positioning of any sound effited by the mobj_t.
|
||||||
|
//
|
||||||
|
// The play simulation uses the blocklinks, x,y,z, radius, height
|
||||||
|
// to determine when mobj_ts are touching each other,
|
||||||
|
// touching lines in the map, or hit by trace lines (gunshots,
|
||||||
|
// lines of sight, etc).
|
||||||
|
// The mobj_t->flags element has various bit flags
|
||||||
|
// used by the simulation.
|
||||||
|
//
|
||||||
|
// Every mobj_t is linked into a single sector
|
||||||
|
// based on its origin coordinates.
|
||||||
|
// The subsector_t is found with R_PointInSubsector(x,y),
|
||||||
|
// and the sector_t can be found with subsector->sector.
|
||||||
|
// The sector links are only used by the rendering code,
|
||||||
|
// the play simulation does not care about them at all.
|
||||||
|
//
|
||||||
|
// Any mobj_t that needs to be acted upon by something else
|
||||||
|
// in the play world (block movement, be shot, etc) will also
|
||||||
|
// need to be linked into the blockmap.
|
||||||
|
// If the thing has the MF_NOBLOCK flag set, it will not use
|
||||||
|
// the block links. It can still interact with other things,
|
||||||
|
// but only as the instigator (missiles will run into other
|
||||||
|
// things, but nothing can run into a missile).
|
||||||
|
// Each block in the grid is 128*128 units, and knows about
|
||||||
|
// every line_t that it contains a piece of, and every
|
||||||
|
// interactable mobj_t that has its origin contained.
|
||||||
|
//
|
||||||
|
// A valid mobj_t is a mobj_t that has the proper subsector_t
|
||||||
|
// filled in for its xy coordinates and is linked into the
|
||||||
|
// sector from which the subsector was made, or has the
|
||||||
|
// MF_NOSECTOR flag set (the subsector_t needs to be valid
|
||||||
|
// even if MF_NOSECTOR is set), and is linked into a blockmap
|
||||||
|
// block or has the MF_NOBLOCKMAP flag set.
|
||||||
|
// Links should only be modified by the P_[Un]SetThingPosition()
|
||||||
|
// functions.
|
||||||
|
// Do not change the MF_NO? flags while a thing is valid.
|
||||||
|
//
|
||||||
|
// Any questions?
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// Misc. mobj flags
|
||||||
|
//
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
// Call P_SpecialThing when touched.
|
||||||
|
MF_SPECIAL = 1,
|
||||||
|
// Blocks.
|
||||||
|
MF_SOLID = 2,
|
||||||
|
// Can be hit.
|
||||||
|
MF_SHOOTABLE = 4,
|
||||||
|
// Don't use the sector links (invisible but touchable).
|
||||||
|
MF_NOSECTOR = 8,
|
||||||
|
// Don't use the blocklinks (inert but displayable)
|
||||||
|
MF_NOBLOCKMAP = 16,
|
||||||
|
|
||||||
|
// Not to be activated by sound, deaf monster.
|
||||||
|
MF_AMBUSH = 32,
|
||||||
|
// Will try to attack right back.
|
||||||
|
MF_JUSTHIT = 64,
|
||||||
|
// Will take at least one step before attacking.
|
||||||
|
MF_JUSTATTACKED = 128,
|
||||||
|
// On level spawning (initial position),
|
||||||
|
// hang from ceiling instead of stand on floor.
|
||||||
|
MF_SPAWNCEILING = 256,
|
||||||
|
// Don't apply gravity (every tic),
|
||||||
|
// that is, object will float, keeping current height
|
||||||
|
// or changing it actively.
|
||||||
|
MF_NOGRAVITY = 512,
|
||||||
|
|
||||||
|
// Movement flags.
|
||||||
|
// This allows jumps from high places.
|
||||||
|
MF_DROPOFF = 0x400,
|
||||||
|
// For players, will pick up items.
|
||||||
|
MF_PICKUP = 0x800,
|
||||||
|
// Player cheat. ???
|
||||||
|
MF_NOCLIP = 0x1000,
|
||||||
|
// Player: keep info about sliding along walls.
|
||||||
|
MF_SLIDE = 0x2000,
|
||||||
|
// Allow moves to any height, no gravity.
|
||||||
|
// For active floaters, e.g. cacodemons, pain elementals.
|
||||||
|
MF_FLOAT = 0x4000,
|
||||||
|
// Don't cross lines
|
||||||
|
// ??? or look at heights on teleport.
|
||||||
|
MF_TELEPORT = 0x8000,
|
||||||
|
// Don't hit same species, explode on block.
|
||||||
|
// Player missiles as well as fireballs of various kinds.
|
||||||
|
MF_MISSILE = 0x10000,
|
||||||
|
// Dropped by a demon, not level spawned.
|
||||||
|
// E.g. ammo clips dropped by dying former humans.
|
||||||
|
MF_DROPPED = 0x20000,
|
||||||
|
// Use fuzzy draw (shadow demons or spectres),
|
||||||
|
// temporary player invisibility powerup.
|
||||||
|
MF_SHADOW = 0x40000,
|
||||||
|
// Flag: don't bleed when shot (use puff),
|
||||||
|
// barrels and shootable furniture shall not bleed.
|
||||||
|
MF_NOBLOOD = 0x80000,
|
||||||
|
// Don't stop moving halfway off a step,
|
||||||
|
// that is, have dead bodies slide down all the way.
|
||||||
|
MF_CORPSE = 0x100000,
|
||||||
|
// Floating to a height for a move, ???
|
||||||
|
// don't auto float to target's height.
|
||||||
|
MF_INFLOAT = 0x200000,
|
||||||
|
|
||||||
|
// On kill, count this enemy object
|
||||||
|
// towards intermission kill total.
|
||||||
|
// Happy gathering.
|
||||||
|
MF_COUNTKILL = 0x400000,
|
||||||
|
|
||||||
|
// On picking up, count this item object
|
||||||
|
// towards intermission item total.
|
||||||
|
MF_COUNTITEM = 0x800000,
|
||||||
|
|
||||||
|
// Special handling: skull in flight.
|
||||||
|
// Neither a cacodemon nor a missile.
|
||||||
|
MF_SKULLFLY = 0x1000000,
|
||||||
|
|
||||||
|
// Don't spawn this object
|
||||||
|
// in death match mode (e.g. key cards).
|
||||||
|
MF_NOTDMATCH = 0x2000000,
|
||||||
|
|
||||||
|
// Player sprites in multiplayer modes are modified
|
||||||
|
// using an internal color lookup table for re-indexing.
|
||||||
|
// If 0x4 0x8 or 0xc,
|
||||||
|
// use a translation table for player colormaps
|
||||||
|
MF_TRANSLATION = 0xc000000,
|
||||||
|
// Hmm ???.
|
||||||
|
MF_TRANSSHIFT = 26
|
||||||
|
|
||||||
|
} mobjflag_t;
|
||||||
|
|
||||||
|
|
||||||
|
// Map Object definition.
|
||||||
|
typedef struct mobj_s
|
||||||
|
{
|
||||||
|
// List: thinker links.
|
||||||
|
thinker_t thinker;
|
||||||
|
|
||||||
|
// Info for drawing: position.
|
||||||
|
fixed_t x;
|
||||||
|
fixed_t y;
|
||||||
|
fixed_t z;
|
||||||
|
|
||||||
|
// More list: links in sector (if needed)
|
||||||
|
struct mobj_s* snext;
|
||||||
|
struct mobj_s* sprev;
|
||||||
|
|
||||||
|
//More drawing info: to determine current sprite.
|
||||||
|
angle_t angle; // orientation
|
||||||
|
spritenum_t sprite; // used to find patch_t and flip value
|
||||||
|
int frame; // might be ORed with FF_FULLBRIGHT
|
||||||
|
|
||||||
|
// Interaction info, by BLOCKMAP.
|
||||||
|
// Links in blocks (if needed).
|
||||||
|
struct mobj_s* bnext;
|
||||||
|
struct mobj_s* bprev;
|
||||||
|
|
||||||
|
struct subsector_s* subsector;
|
||||||
|
|
||||||
|
// The closest interval over all contacted Sectors.
|
||||||
|
fixed_t floorz;
|
||||||
|
fixed_t ceilingz;
|
||||||
|
|
||||||
|
// For movement checking.
|
||||||
|
fixed_t radius;
|
||||||
|
fixed_t height;
|
||||||
|
|
||||||
|
// Momentums, used to update position.
|
||||||
|
fixed_t momx;
|
||||||
|
fixed_t momy;
|
||||||
|
fixed_t momz;
|
||||||
|
|
||||||
|
// If == validcount, already checked.
|
||||||
|
int validcount;
|
||||||
|
|
||||||
|
mobjtype_t type;
|
||||||
|
mobjinfo_t* info; // &mobjinfo[mobj->type]
|
||||||
|
|
||||||
|
int tics; // state tic counter
|
||||||
|
state_t* state;
|
||||||
|
int flags;
|
||||||
|
int health;
|
||||||
|
|
||||||
|
// Movement direction, movement generation (zig-zagging).
|
||||||
|
int movedir; // 0-7
|
||||||
|
int movecount; // when 0, select a new dir
|
||||||
|
|
||||||
|
// Thing being chased/attacked (or NULL),
|
||||||
|
// also the originator for missiles.
|
||||||
|
struct mobj_s* target;
|
||||||
|
|
||||||
|
// Reaction time: if non 0, don't attack yet.
|
||||||
|
// Used by player to freeze a bit after teleporting.
|
||||||
|
int reactiontime;
|
||||||
|
|
||||||
|
// If >0, the target will be chased
|
||||||
|
// no matter what (even if shot)
|
||||||
|
int threshold;
|
||||||
|
|
||||||
|
// Additional info record for player avatars only.
|
||||||
|
// Only valid if type == MT_PLAYER
|
||||||
|
struct player_s* player;
|
||||||
|
|
||||||
|
// Player number last looked for.
|
||||||
|
int lastlook;
|
||||||
|
|
||||||
|
// For nightmare respawn.
|
||||||
|
mapthing_t spawnpoint;
|
||||||
|
|
||||||
|
// Thing being chased/attacked for tracers.
|
||||||
|
struct mobj_s* tracer;
|
||||||
|
|
||||||
|
} mobj_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
82
programs/games/doom/trunk/h/p_pspr.h
Normal file
82
programs/games/doom/trunk/h/p_pspr.h
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Sprite animation.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __P_PSPR__
|
||||||
|
#define __P_PSPR__
|
||||||
|
|
||||||
|
// Basic data types.
|
||||||
|
// Needs fixed point, and BAM angles.
|
||||||
|
#include "m_fixed.h"
|
||||||
|
#include "tables.h"
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Needs to include the precompiled
|
||||||
|
// sprite animation tables.
|
||||||
|
// Header generated by multigen utility.
|
||||||
|
// This includes all the data for thing animation,
|
||||||
|
// i.e. the Thing Atrributes table
|
||||||
|
// and the Frame Sequence table.
|
||||||
|
#include "info.h"
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Frame flags:
|
||||||
|
// handles maximum brightness (torches, muzzle flare, light sources)
|
||||||
|
//
|
||||||
|
#define FF_FULLBRIGHT 0x8000 // flag in thing->frame
|
||||||
|
#define FF_FRAMEMASK 0x7fff
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Overlay psprites are scaled shapes
|
||||||
|
// drawn directly on the view screen,
|
||||||
|
// coordinates are given for a 320*200 view screen.
|
||||||
|
//
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
ps_weapon,
|
||||||
|
ps_flash,
|
||||||
|
NUMPSPRITES
|
||||||
|
|
||||||
|
} psprnum_t;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
state_t* state; // a NULL state means not active
|
||||||
|
int tics;
|
||||||
|
fixed_t sx;
|
||||||
|
fixed_t sy;
|
||||||
|
|
||||||
|
} pspdef_t;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
51
programs/games/doom/trunk/h/p_saveg.h
Normal file
51
programs/games/doom/trunk/h/p_saveg.h
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Savegame I/O, archiving, persistence.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __P_SAVEG__
|
||||||
|
#define __P_SAVEG__
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// Persistent storage/archiving.
|
||||||
|
// These are the load / save game routines.
|
||||||
|
void P_ArchivePlayers (void);
|
||||||
|
void P_UnArchivePlayers (void);
|
||||||
|
void P_ArchiveWorld (void);
|
||||||
|
void P_UnArchiveWorld (void);
|
||||||
|
void P_ArchiveThinkers (void);
|
||||||
|
void P_UnArchiveThinkers (void);
|
||||||
|
void P_ArchiveSpecials (void);
|
||||||
|
void P_UnArchiveSpecials (void);
|
||||||
|
|
||||||
|
extern byte* save_p;
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
48
programs/games/doom/trunk/h/p_setup.h
Normal file
48
programs/games/doom/trunk/h/p_setup.h
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Setup a game, startup stuff.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __P_SETUP__
|
||||||
|
#define __P_SETUP__
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// NOT called by W_Ticker. Fixme.
|
||||||
|
void
|
||||||
|
P_SetupLevel
|
||||||
|
( int episode,
|
||||||
|
int map,
|
||||||
|
int playermask,
|
||||||
|
skill_t skill);
|
||||||
|
|
||||||
|
// Called by startup code.
|
||||||
|
void P_Init (void);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
645
programs/games/doom/trunk/h/p_spec.h
Normal file
645
programs/games/doom/trunk/h/p_spec.h
Normal file
@ -0,0 +1,645 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION: none
|
||||||
|
// Implements special effects:
|
||||||
|
// Texture animation, height or lighting changes
|
||||||
|
// according to adjacent sectors, respective
|
||||||
|
// utility functions, etc.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __P_SPEC__
|
||||||
|
#define __P_SPEC__
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// End-level timer (-TIMER option)
|
||||||
|
//
|
||||||
|
extern boolean levelTimer;
|
||||||
|
extern int levelTimeCount;
|
||||||
|
|
||||||
|
|
||||||
|
// Define values for map objects
|
||||||
|
#define MO_TELEPORTMAN 14
|
||||||
|
|
||||||
|
|
||||||
|
// at game start
|
||||||
|
void P_InitPicAnims (void);
|
||||||
|
|
||||||
|
// at map load
|
||||||
|
void P_SpawnSpecials (void);
|
||||||
|
|
||||||
|
// every tic
|
||||||
|
void P_UpdateSpecials (void);
|
||||||
|
|
||||||
|
// when needed
|
||||||
|
boolean
|
||||||
|
P_UseSpecialLine
|
||||||
|
( mobj_t* thing,
|
||||||
|
line_t* line,
|
||||||
|
int side );
|
||||||
|
|
||||||
|
void
|
||||||
|
P_ShootSpecialLine
|
||||||
|
( mobj_t* thing,
|
||||||
|
line_t* line );
|
||||||
|
|
||||||
|
void
|
||||||
|
P_CrossSpecialLine
|
||||||
|
( int linenum,
|
||||||
|
int side,
|
||||||
|
mobj_t* thing );
|
||||||
|
|
||||||
|
void P_PlayerInSpecialSector (player_t* player);
|
||||||
|
|
||||||
|
int
|
||||||
|
twoSided
|
||||||
|
( int sector,
|
||||||
|
int line );
|
||||||
|
|
||||||
|
sector_t*
|
||||||
|
getSector
|
||||||
|
( int currentSector,
|
||||||
|
int line,
|
||||||
|
int side );
|
||||||
|
|
||||||
|
side_t*
|
||||||
|
getSide
|
||||||
|
( int currentSector,
|
||||||
|
int line,
|
||||||
|
int side );
|
||||||
|
|
||||||
|
fixed_t P_FindLowestFloorSurrounding(sector_t* sec);
|
||||||
|
fixed_t P_FindHighestFloorSurrounding(sector_t* sec);
|
||||||
|
|
||||||
|
fixed_t
|
||||||
|
P_FindNextHighestFloor
|
||||||
|
( sector_t* sec,
|
||||||
|
int currentheight );
|
||||||
|
|
||||||
|
fixed_t P_FindLowestCeilingSurrounding(sector_t* sec);
|
||||||
|
fixed_t P_FindHighestCeilingSurrounding(sector_t* sec);
|
||||||
|
|
||||||
|
int
|
||||||
|
P_FindSectorFromLineTag
|
||||||
|
( line_t* line,
|
||||||
|
int start );
|
||||||
|
|
||||||
|
int
|
||||||
|
P_FindMinSurroundingLight
|
||||||
|
( sector_t* sector,
|
||||||
|
int max );
|
||||||
|
|
||||||
|
sector_t*
|
||||||
|
getNextSector
|
||||||
|
( line_t* line,
|
||||||
|
sector_t* sec );
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// SPECIAL
|
||||||
|
//
|
||||||
|
int EV_DoDonut(line_t* line);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_LIGHTS
|
||||||
|
//
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
thinker_t thinker;
|
||||||
|
sector_t* sector;
|
||||||
|
int count;
|
||||||
|
int maxlight;
|
||||||
|
int minlight;
|
||||||
|
|
||||||
|
} fireflicker_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
thinker_t thinker;
|
||||||
|
sector_t* sector;
|
||||||
|
int count;
|
||||||
|
int maxlight;
|
||||||
|
int minlight;
|
||||||
|
int maxtime;
|
||||||
|
int mintime;
|
||||||
|
|
||||||
|
} lightflash_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
thinker_t thinker;
|
||||||
|
sector_t* sector;
|
||||||
|
int count;
|
||||||
|
int minlight;
|
||||||
|
int maxlight;
|
||||||
|
int darktime;
|
||||||
|
int brighttime;
|
||||||
|
|
||||||
|
} strobe_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
thinker_t thinker;
|
||||||
|
sector_t* sector;
|
||||||
|
int minlight;
|
||||||
|
int maxlight;
|
||||||
|
int direction;
|
||||||
|
|
||||||
|
} glow_t;
|
||||||
|
|
||||||
|
|
||||||
|
#define GLOWSPEED 8
|
||||||
|
#define STROBEBRIGHT 5
|
||||||
|
#define FASTDARK 15
|
||||||
|
#define SLOWDARK 35
|
||||||
|
|
||||||
|
void P_SpawnFireFlicker (sector_t* sector);
|
||||||
|
void T_LightFlash (lightflash_t* flash);
|
||||||
|
void P_SpawnLightFlash (sector_t* sector);
|
||||||
|
void T_StrobeFlash (strobe_t* flash);
|
||||||
|
|
||||||
|
void
|
||||||
|
P_SpawnStrobeFlash
|
||||||
|
( sector_t* sector,
|
||||||
|
int fastOrSlow,
|
||||||
|
int inSync );
|
||||||
|
|
||||||
|
void EV_StartLightStrobing(line_t* line);
|
||||||
|
void EV_TurnTagLightsOff(line_t* line);
|
||||||
|
|
||||||
|
void
|
||||||
|
EV_LightTurnOn
|
||||||
|
( line_t* line,
|
||||||
|
int bright );
|
||||||
|
|
||||||
|
void T_Glow(glow_t* g);
|
||||||
|
void P_SpawnGlowingLight(sector_t* sector);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_SWITCH
|
||||||
|
//
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
char name1[9];
|
||||||
|
char name2[9];
|
||||||
|
short episode;
|
||||||
|
|
||||||
|
} switchlist_t;
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
top,
|
||||||
|
middle,
|
||||||
|
bottom
|
||||||
|
|
||||||
|
} bwhere_e;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
line_t* line;
|
||||||
|
bwhere_e where;
|
||||||
|
int btexture;
|
||||||
|
int btimer;
|
||||||
|
mobj_t* soundorg;
|
||||||
|
|
||||||
|
} button_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// max # of wall switches in a level
|
||||||
|
#define MAXSWITCHES 50
|
||||||
|
|
||||||
|
// 4 players, 4 buttons each at once, max.
|
||||||
|
#define MAXBUTTONS 16
|
||||||
|
|
||||||
|
// 1 second, in ticks.
|
||||||
|
#define BUTTONTIME 35
|
||||||
|
|
||||||
|
extern button_t buttonlist[MAXBUTTONS];
|
||||||
|
|
||||||
|
void
|
||||||
|
P_ChangeSwitchTexture
|
||||||
|
( line_t* line,
|
||||||
|
int useAgain );
|
||||||
|
|
||||||
|
void P_InitSwitchList(void);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_PLATS
|
||||||
|
//
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
up,
|
||||||
|
down,
|
||||||
|
waiting,
|
||||||
|
in_stasis
|
||||||
|
|
||||||
|
} plat_e;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
perpetualRaise,
|
||||||
|
downWaitUpStay,
|
||||||
|
raiseAndChange,
|
||||||
|
raiseToNearestAndChange,
|
||||||
|
blazeDWUS
|
||||||
|
|
||||||
|
} plattype_e;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
thinker_t thinker;
|
||||||
|
sector_t* sector;
|
||||||
|
fixed_t speed;
|
||||||
|
fixed_t low;
|
||||||
|
fixed_t high;
|
||||||
|
int wait;
|
||||||
|
int count;
|
||||||
|
plat_e status;
|
||||||
|
plat_e oldstatus;
|
||||||
|
boolean crush;
|
||||||
|
int tag;
|
||||||
|
plattype_e type;
|
||||||
|
|
||||||
|
} plat_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define PLATWAIT 3
|
||||||
|
#define PLATSPEED FRACUNIT
|
||||||
|
#define MAXPLATS 30
|
||||||
|
|
||||||
|
|
||||||
|
extern plat_t* activeplats[MAXPLATS];
|
||||||
|
|
||||||
|
void T_PlatRaise(plat_t* plat);
|
||||||
|
|
||||||
|
int
|
||||||
|
EV_DoPlat
|
||||||
|
( line_t* line,
|
||||||
|
plattype_e type,
|
||||||
|
int amount );
|
||||||
|
|
||||||
|
void P_AddActivePlat(plat_t* plat);
|
||||||
|
void P_RemoveActivePlat(plat_t* plat);
|
||||||
|
void EV_StopPlat(line_t* line);
|
||||||
|
void P_ActivateInStasis(int tag);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_DOORS
|
||||||
|
//
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
normal,
|
||||||
|
close30ThenOpen,
|
||||||
|
close,
|
||||||
|
open,
|
||||||
|
raiseIn5Mins,
|
||||||
|
blazeRaise,
|
||||||
|
blazeOpen,
|
||||||
|
blazeClose
|
||||||
|
|
||||||
|
} vldoor_e;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
thinker_t thinker;
|
||||||
|
vldoor_e type;
|
||||||
|
sector_t* sector;
|
||||||
|
fixed_t topheight;
|
||||||
|
fixed_t speed;
|
||||||
|
|
||||||
|
// 1 = up, 0 = waiting at top, -1 = down
|
||||||
|
int direction;
|
||||||
|
|
||||||
|
// tics to wait at the top
|
||||||
|
int topwait;
|
||||||
|
// (keep in case a door going down is reset)
|
||||||
|
// when it reaches 0, start going down
|
||||||
|
int topcountdown;
|
||||||
|
|
||||||
|
} vldoor_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define VDOORSPEED FRACUNIT*2
|
||||||
|
#define VDOORWAIT 150
|
||||||
|
|
||||||
|
void
|
||||||
|
EV_VerticalDoor
|
||||||
|
( line_t* line,
|
||||||
|
mobj_t* thing );
|
||||||
|
|
||||||
|
int
|
||||||
|
EV_DoDoor
|
||||||
|
( line_t* line,
|
||||||
|
vldoor_e type );
|
||||||
|
|
||||||
|
int
|
||||||
|
EV_DoLockedDoor
|
||||||
|
( line_t* line,
|
||||||
|
vldoor_e type,
|
||||||
|
mobj_t* thing );
|
||||||
|
|
||||||
|
void T_VerticalDoor (vldoor_t* door);
|
||||||
|
void P_SpawnDoorCloseIn30 (sector_t* sec);
|
||||||
|
|
||||||
|
void
|
||||||
|
P_SpawnDoorRaiseIn5Mins
|
||||||
|
( sector_t* sec,
|
||||||
|
int secnum );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if 0 // UNUSED
|
||||||
|
//
|
||||||
|
// Sliding doors...
|
||||||
|
//
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
sd_opening,
|
||||||
|
sd_waiting,
|
||||||
|
sd_closing
|
||||||
|
|
||||||
|
} sd_e;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
sdt_openOnly,
|
||||||
|
sdt_closeOnly,
|
||||||
|
sdt_openAndClose
|
||||||
|
|
||||||
|
} sdt_e;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
thinker_t thinker;
|
||||||
|
sdt_e type;
|
||||||
|
line_t* line;
|
||||||
|
int frame;
|
||||||
|
int whichDoorIndex;
|
||||||
|
int timer;
|
||||||
|
sector_t* frontsector;
|
||||||
|
sector_t* backsector;
|
||||||
|
sd_e status;
|
||||||
|
|
||||||
|
} slidedoor_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
char frontFrame1[9];
|
||||||
|
char frontFrame2[9];
|
||||||
|
char frontFrame3[9];
|
||||||
|
char frontFrame4[9];
|
||||||
|
char backFrame1[9];
|
||||||
|
char backFrame2[9];
|
||||||
|
char backFrame3[9];
|
||||||
|
char backFrame4[9];
|
||||||
|
|
||||||
|
} slidename_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
int frontFrames[4];
|
||||||
|
int backFrames[4];
|
||||||
|
|
||||||
|
} slideframe_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// how many frames of animation
|
||||||
|
#define SNUMFRAMES 4
|
||||||
|
|
||||||
|
#define SDOORWAIT 35*3
|
||||||
|
#define SWAITTICS 4
|
||||||
|
|
||||||
|
// how many diff. types of anims
|
||||||
|
#define MAXSLIDEDOORS 5
|
||||||
|
|
||||||
|
void P_InitSlidingDoorFrames(void);
|
||||||
|
|
||||||
|
void
|
||||||
|
EV_SlidingDoor
|
||||||
|
( line_t* line,
|
||||||
|
mobj_t* thing );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_CEILNG
|
||||||
|
//
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
lowerToFloor,
|
||||||
|
raiseToHighest,
|
||||||
|
lowerAndCrush,
|
||||||
|
crushAndRaise,
|
||||||
|
fastCrushAndRaise,
|
||||||
|
silentCrushAndRaise
|
||||||
|
|
||||||
|
} ceiling_e;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
thinker_t thinker;
|
||||||
|
ceiling_e type;
|
||||||
|
sector_t* sector;
|
||||||
|
fixed_t bottomheight;
|
||||||
|
fixed_t topheight;
|
||||||
|
fixed_t speed;
|
||||||
|
boolean crush;
|
||||||
|
|
||||||
|
// 1 = up, 0 = waiting, -1 = down
|
||||||
|
int direction;
|
||||||
|
|
||||||
|
// ID
|
||||||
|
int tag;
|
||||||
|
int olddirection;
|
||||||
|
|
||||||
|
} ceiling_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define CEILSPEED FRACUNIT
|
||||||
|
#define CEILWAIT 150
|
||||||
|
#define MAXCEILINGS 30
|
||||||
|
|
||||||
|
extern ceiling_t* activeceilings[MAXCEILINGS];
|
||||||
|
|
||||||
|
int
|
||||||
|
EV_DoCeiling
|
||||||
|
( line_t* line,
|
||||||
|
ceiling_e type );
|
||||||
|
|
||||||
|
void T_MoveCeiling (ceiling_t* ceiling);
|
||||||
|
void P_AddActiveCeiling(ceiling_t* c);
|
||||||
|
void P_RemoveActiveCeiling(ceiling_t* c);
|
||||||
|
int EV_CeilingCrushStop(line_t* line);
|
||||||
|
void P_ActivateInStasisCeiling(line_t* line);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_FLOOR
|
||||||
|
//
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
// lower floor to highest surrounding floor
|
||||||
|
lowerFloor,
|
||||||
|
|
||||||
|
// lower floor to lowest surrounding floor
|
||||||
|
lowerFloorToLowest,
|
||||||
|
|
||||||
|
// lower floor to highest surrounding floor VERY FAST
|
||||||
|
turboLower,
|
||||||
|
|
||||||
|
// raise floor to lowest surrounding CEILING
|
||||||
|
raiseFloor,
|
||||||
|
|
||||||
|
// raise floor to next highest surrounding floor
|
||||||
|
raiseFloorToNearest,
|
||||||
|
|
||||||
|
// raise floor to shortest height texture around it
|
||||||
|
raiseToTexture,
|
||||||
|
|
||||||
|
// lower floor to lowest surrounding floor
|
||||||
|
// and change floorpic
|
||||||
|
lowerAndChange,
|
||||||
|
|
||||||
|
raiseFloor24,
|
||||||
|
raiseFloor24AndChange,
|
||||||
|
raiseFloorCrush,
|
||||||
|
|
||||||
|
// raise to next highest floor, turbo-speed
|
||||||
|
raiseFloorTurbo,
|
||||||
|
donutRaise,
|
||||||
|
raiseFloor512
|
||||||
|
|
||||||
|
} floor_e;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
build8, // slowly build by 8
|
||||||
|
turbo16 // quickly build by 16
|
||||||
|
|
||||||
|
} stair_e;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
thinker_t thinker;
|
||||||
|
floor_e type;
|
||||||
|
boolean crush;
|
||||||
|
sector_t* sector;
|
||||||
|
int direction;
|
||||||
|
int newspecial;
|
||||||
|
short texture;
|
||||||
|
fixed_t floordestheight;
|
||||||
|
fixed_t speed;
|
||||||
|
|
||||||
|
} floormove_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define FLOORSPEED FRACUNIT
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
ok,
|
||||||
|
crushed,
|
||||||
|
pastdest
|
||||||
|
|
||||||
|
} result_e;
|
||||||
|
|
||||||
|
result_e
|
||||||
|
T_MovePlane
|
||||||
|
( sector_t* sector,
|
||||||
|
fixed_t speed,
|
||||||
|
fixed_t dest,
|
||||||
|
boolean crush,
|
||||||
|
int floorOrCeiling,
|
||||||
|
int direction );
|
||||||
|
|
||||||
|
int
|
||||||
|
EV_BuildStairs
|
||||||
|
( line_t* line,
|
||||||
|
stair_e type );
|
||||||
|
|
||||||
|
int
|
||||||
|
EV_DoFloor
|
||||||
|
( line_t* line,
|
||||||
|
floor_e floortype );
|
||||||
|
|
||||||
|
void T_MoveFloor( floormove_t* floor);
|
||||||
|
|
||||||
|
//
|
||||||
|
// P_TELEPT
|
||||||
|
//
|
||||||
|
int
|
||||||
|
EV_Teleport
|
||||||
|
( line_t* line,
|
||||||
|
int side,
|
||||||
|
mobj_t* thing );
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
44
programs/games/doom/trunk/h/p_tick.h
Normal file
44
programs/games/doom/trunk/h/p_tick.h
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// ?
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __P_TICK__
|
||||||
|
#define __P_TICK__
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// Called by C_Ticker,
|
||||||
|
// can call G_PlayerExited.
|
||||||
|
// Carries out all thinking of monsters and players.
|
||||||
|
void P_Ticker (void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
72
programs/games/doom/trunk/h/r_bsp.h
Normal file
72
programs/games/doom/trunk/h/r_bsp.h
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Refresh module, BSP traversal and handling.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __R_BSP__
|
||||||
|
#define __R_BSP__
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
extern seg_t* curline;
|
||||||
|
extern side_t* sidedef;
|
||||||
|
extern line_t* linedef;
|
||||||
|
extern sector_t* frontsector;
|
||||||
|
extern sector_t* backsector;
|
||||||
|
|
||||||
|
extern int rw_x;
|
||||||
|
extern int rw_stopx;
|
||||||
|
|
||||||
|
extern boolean segtextured;
|
||||||
|
|
||||||
|
// false if the back side is the same plane
|
||||||
|
extern boolean markfloor;
|
||||||
|
extern boolean markceiling;
|
||||||
|
|
||||||
|
extern boolean skymap;
|
||||||
|
|
||||||
|
extern drawseg_t drawsegs[MAXDRAWSEGS];
|
||||||
|
extern drawseg_t* ds_p;
|
||||||
|
|
||||||
|
extern lighttable_t** hscalelight;
|
||||||
|
extern lighttable_t** vscalelight;
|
||||||
|
extern lighttable_t** dscalelight;
|
||||||
|
|
||||||
|
|
||||||
|
typedef void (*drawfunc_t) (int start, int stop);
|
||||||
|
|
||||||
|
|
||||||
|
// BSP?
|
||||||
|
void R_ClearClipSegs (void);
|
||||||
|
void R_ClearDrawSegs (void);
|
||||||
|
|
||||||
|
|
||||||
|
void R_RenderBSPNode (int bspnum);
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
62
programs/games/doom/trunk/h/r_data.h
Normal file
62
programs/games/doom/trunk/h/r_data.h
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Refresh module, data I/O, caching, retrieval of graphics
|
||||||
|
// by name.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __R_DATA__
|
||||||
|
#define __R_DATA__
|
||||||
|
|
||||||
|
#include "r_defs.h"
|
||||||
|
#include "r_state.h"
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Retrieve column data for span blitting.
|
||||||
|
byte*
|
||||||
|
R_GetColumn
|
||||||
|
( int tex,
|
||||||
|
int col );
|
||||||
|
|
||||||
|
|
||||||
|
// I/O, setting up the stuff.
|
||||||
|
void R_InitData (void);
|
||||||
|
void R_PrecacheLevel (void);
|
||||||
|
|
||||||
|
|
||||||
|
// Retrieval.
|
||||||
|
// Floor/ceiling opaque texture tiles,
|
||||||
|
// lookup by name. For animation?
|
||||||
|
int R_FlatNumForName (char* name);
|
||||||
|
|
||||||
|
|
||||||
|
// Called by P_Ticker for switches and animations,
|
||||||
|
// returns the texture number for the texture name.
|
||||||
|
int R_TextureNumForName (char *name);
|
||||||
|
int R_CheckTextureNumForName (char *name);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
490
programs/games/doom/trunk/h/r_defs.h
Normal file
490
programs/games/doom/trunk/h/r_defs.h
Normal file
@ -0,0 +1,490 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Refresh/rendering module, shared data struct definitions.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __R_DEFS__
|
||||||
|
#define __R_DEFS__
|
||||||
|
|
||||||
|
|
||||||
|
// Screenwidth.
|
||||||
|
#include "doomdef.h"
|
||||||
|
|
||||||
|
// Some more or less basic data types
|
||||||
|
// we depend on.
|
||||||
|
#include "m_fixed.h"
|
||||||
|
|
||||||
|
// We rely on the thinker data struct
|
||||||
|
// to handle sound origins in sectors.
|
||||||
|
#include "d_think.h"
|
||||||
|
// SECTORS do store MObjs anyway.
|
||||||
|
#include "p_mobj.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Silhouette, needed for clipping Segs (mainly)
|
||||||
|
// and sprites representing things.
|
||||||
|
#define SIL_NONE 0
|
||||||
|
#define SIL_BOTTOM 1
|
||||||
|
#define SIL_TOP 2
|
||||||
|
#define SIL_BOTH 3
|
||||||
|
|
||||||
|
#define MAXDRAWSEGS 256
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// INTERNAL MAP TYPES
|
||||||
|
// used by play and refresh
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// Your plain vanilla vertex.
|
||||||
|
// Note: transformed values not buffered locally,
|
||||||
|
// like some DOOM-alikes ("wt", "WebView") did.
|
||||||
|
//
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
fixed_t x;
|
||||||
|
fixed_t y;
|
||||||
|
|
||||||
|
} vertex_t;
|
||||||
|
|
||||||
|
|
||||||
|
// Forward of LineDefs, for Sectors.
|
||||||
|
struct line_s;
|
||||||
|
|
||||||
|
// Each sector has a degenmobj_t in its center
|
||||||
|
// for sound origin purposes.
|
||||||
|
// I suppose this does not handle sound from
|
||||||
|
// moving objects (doppler), because
|
||||||
|
// position is prolly just buffered, not
|
||||||
|
// updated.
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
thinker_t thinker; // not used for anything
|
||||||
|
fixed_t x;
|
||||||
|
fixed_t y;
|
||||||
|
fixed_t z;
|
||||||
|
|
||||||
|
} degenmobj_t;
|
||||||
|
|
||||||
|
//
|
||||||
|
// The SECTORS record, at runtime.
|
||||||
|
// Stores things/mobjs.
|
||||||
|
//
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
fixed_t floorheight;
|
||||||
|
fixed_t ceilingheight;
|
||||||
|
short int floorpic;
|
||||||
|
short int ceilingpic;
|
||||||
|
short int lightlevel;
|
||||||
|
short int special;
|
||||||
|
short int tag;
|
||||||
|
|
||||||
|
// 0 = untraversed, 1,2 = sndlines -1
|
||||||
|
int soundtraversed;
|
||||||
|
|
||||||
|
// thing that made a sound (or null)
|
||||||
|
mobj_t* soundtarget;
|
||||||
|
|
||||||
|
// mapblock bounding box for height changes
|
||||||
|
int blockbox[4];
|
||||||
|
|
||||||
|
// origin for any sounds played by the sector
|
||||||
|
degenmobj_t soundorg;
|
||||||
|
|
||||||
|
// if == validcount, already checked
|
||||||
|
int validcount;
|
||||||
|
|
||||||
|
// list of mobjs in sector
|
||||||
|
mobj_t* thinglist;
|
||||||
|
|
||||||
|
// thinker_t for reversable actions
|
||||||
|
void* specialdata;
|
||||||
|
|
||||||
|
int linecount;
|
||||||
|
struct line_s** lines; // [linecount] size
|
||||||
|
|
||||||
|
} sector_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// The SideDef.
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
// add this to the calculated texture column
|
||||||
|
fixed_t textureoffset;
|
||||||
|
|
||||||
|
// add this to the calculated texture top
|
||||||
|
fixed_t rowoffset;
|
||||||
|
|
||||||
|
// Texture indices.
|
||||||
|
// We do not maintain names here.
|
||||||
|
short toptexture;
|
||||||
|
short bottomtexture;
|
||||||
|
short midtexture;
|
||||||
|
|
||||||
|
// Sector the SideDef is facing.
|
||||||
|
sector_t* sector;
|
||||||
|
|
||||||
|
} side_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Move clipping aid for LineDefs.
|
||||||
|
//
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
ST_HORIZONTAL,
|
||||||
|
ST_VERTICAL,
|
||||||
|
ST_POSITIVE,
|
||||||
|
ST_NEGATIVE
|
||||||
|
|
||||||
|
} slopetype_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct line_s
|
||||||
|
{
|
||||||
|
// Vertices, from v1 to v2.
|
||||||
|
vertex_t* v1;
|
||||||
|
vertex_t* v2;
|
||||||
|
|
||||||
|
// Precalculated v2 - v1 for side checking.
|
||||||
|
fixed_t dx;
|
||||||
|
fixed_t dy;
|
||||||
|
|
||||||
|
// Animation related.
|
||||||
|
short flags;
|
||||||
|
short special;
|
||||||
|
short tag;
|
||||||
|
|
||||||
|
// Visual appearance: SideDefs.
|
||||||
|
// sidenum[1] will be -1 if one sided
|
||||||
|
short sidenum[2];
|
||||||
|
|
||||||
|
// Neat. Another bounding box, for the extent
|
||||||
|
// of the LineDef.
|
||||||
|
fixed_t bbox[4];
|
||||||
|
|
||||||
|
// To aid move clipping.
|
||||||
|
slopetype_t slopetype;
|
||||||
|
|
||||||
|
// Front and back sector.
|
||||||
|
// Note: redundant? Can be retrieved from SideDefs.
|
||||||
|
sector_t* frontsector;
|
||||||
|
sector_t* backsector;
|
||||||
|
|
||||||
|
// if == validcount, already checked
|
||||||
|
int validcount;
|
||||||
|
|
||||||
|
// thinker_t for reversable actions
|
||||||
|
void* specialdata;
|
||||||
|
} line_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// A SubSector.
|
||||||
|
// References a Sector.
|
||||||
|
// Basically, this is a list of LineSegs,
|
||||||
|
// indicating the visible walls that define
|
||||||
|
// (all or some) sides of a convex BSP leaf.
|
||||||
|
//
|
||||||
|
typedef struct subsector_s
|
||||||
|
{
|
||||||
|
sector_t* sector;
|
||||||
|
short numlines;
|
||||||
|
short firstline;
|
||||||
|
|
||||||
|
} subsector_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// The LineSeg.
|
||||||
|
//
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
vertex_t* v1;
|
||||||
|
vertex_t* v2;
|
||||||
|
|
||||||
|
fixed_t offset;
|
||||||
|
|
||||||
|
angle_t angle;
|
||||||
|
|
||||||
|
side_t* sidedef;
|
||||||
|
line_t* linedef;
|
||||||
|
|
||||||
|
// Sector references.
|
||||||
|
// Could be retrieved from linedef, too.
|
||||||
|
// backsector is NULL for one sided lines
|
||||||
|
sector_t* frontsector;
|
||||||
|
sector_t* backsector;
|
||||||
|
|
||||||
|
} seg_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// BSP node.
|
||||||
|
//
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
// Partition line.
|
||||||
|
fixed_t x;
|
||||||
|
fixed_t y;
|
||||||
|
fixed_t dx;
|
||||||
|
fixed_t dy;
|
||||||
|
|
||||||
|
// Bounding box for each child.
|
||||||
|
fixed_t bbox[2][4];
|
||||||
|
|
||||||
|
// If NF_SUBSECTOR its a subsector.
|
||||||
|
unsigned short children[2];
|
||||||
|
|
||||||
|
} node_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// posts are runs of non masked source pixels
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
byte topdelta; // -1 is the last post in a column
|
||||||
|
byte length; // length data bytes follows
|
||||||
|
} post_t;
|
||||||
|
|
||||||
|
// column_t is a list of 0 or more post_t, (byte)-1 terminated
|
||||||
|
typedef post_t column_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// PC direct to screen pointers
|
||||||
|
//B UNUSED - keep till detailshift in r_draw.c resolved
|
||||||
|
//extern byte* destview;
|
||||||
|
//extern byte* destscreen;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// OTHER TYPES
|
||||||
|
//
|
||||||
|
|
||||||
|
// This could be wider for >8 bit display.
|
||||||
|
// Indeed, true color support is posibble
|
||||||
|
// precalculating 24bpp lightmap/colormap LUT.
|
||||||
|
// from darkening PLAYPAL to all black.
|
||||||
|
// Could even us emore than 32 levels.
|
||||||
|
typedef byte lighttable_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// ?
|
||||||
|
//
|
||||||
|
typedef struct drawseg_s
|
||||||
|
{
|
||||||
|
seg_t* curline;
|
||||||
|
int x1;
|
||||||
|
int x2;
|
||||||
|
|
||||||
|
fixed_t scale1;
|
||||||
|
fixed_t scale2;
|
||||||
|
fixed_t scalestep;
|
||||||
|
|
||||||
|
// 0=none, 1=bottom, 2=top, 3=both
|
||||||
|
int silhouette;
|
||||||
|
|
||||||
|
// do not clip sprites above this
|
||||||
|
fixed_t bsilheight;
|
||||||
|
|
||||||
|
// do not clip sprites below this
|
||||||
|
fixed_t tsilheight;
|
||||||
|
|
||||||
|
// Pointers to lists for sprite clipping,
|
||||||
|
// all three adjusted so [x1] is first value.
|
||||||
|
short* sprtopclip;
|
||||||
|
short* sprbottomclip;
|
||||||
|
short* maskedtexturecol;
|
||||||
|
|
||||||
|
} drawseg_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Patches.
|
||||||
|
// A patch holds one or more columns.
|
||||||
|
// Patches are used for sprites and all masked pictures,
|
||||||
|
// and we compose textures from the TEXTURE1/2 lists
|
||||||
|
// of patches.
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
short width; // bounding box size
|
||||||
|
short height;
|
||||||
|
short leftoffset; // pixels to the left of origin
|
||||||
|
short topoffset; // pixels below the origin
|
||||||
|
int columnofs[8]; // only [width] used
|
||||||
|
// the [0] is &columnofs[width]
|
||||||
|
} patch_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// A vissprite_t is a thing
|
||||||
|
// that will be drawn during a refresh.
|
||||||
|
// I.e. a sprite object that is partly visible.
|
||||||
|
typedef struct vissprite_s
|
||||||
|
{
|
||||||
|
// Doubly linked list.
|
||||||
|
struct vissprite_s* prev;
|
||||||
|
struct vissprite_s* next;
|
||||||
|
|
||||||
|
int x1;
|
||||||
|
int x2;
|
||||||
|
|
||||||
|
// for line side calculation
|
||||||
|
fixed_t gx;
|
||||||
|
fixed_t gy;
|
||||||
|
|
||||||
|
// global bottom / top for silhouette clipping
|
||||||
|
fixed_t gz;
|
||||||
|
fixed_t gzt;
|
||||||
|
|
||||||
|
// horizontal position of x1
|
||||||
|
fixed_t startfrac;
|
||||||
|
|
||||||
|
fixed_t scale;
|
||||||
|
|
||||||
|
// negative if flipped
|
||||||
|
fixed_t xiscale;
|
||||||
|
|
||||||
|
fixed_t texturemid;
|
||||||
|
int patch;
|
||||||
|
|
||||||
|
// for color translation and shadow draw,
|
||||||
|
// maxbright frames as well
|
||||||
|
lighttable_t* colormap;
|
||||||
|
|
||||||
|
int mobjflags;
|
||||||
|
|
||||||
|
} vissprite_t;
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Sprites are patches with a special naming convention
|
||||||
|
// so they can be recognized by R_InitSprites.
|
||||||
|
// The base name is NNNNFx or NNNNFxFx, with
|
||||||
|
// x indicating the rotation, x = 0, 1-7.
|
||||||
|
// The sprite and frame specified by a thing_t
|
||||||
|
// is range checked at run time.
|
||||||
|
// A sprite is a patch_t that is assumed to represent
|
||||||
|
// a three dimensional object and may have multiple
|
||||||
|
// rotations pre drawn.
|
||||||
|
// Horizontal flipping is used to save space,
|
||||||
|
// thus NNNNF2F5 defines a mirrored patch.
|
||||||
|
// Some sprites will only have one picture used
|
||||||
|
// for all views: NNNNF0
|
||||||
|
//
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
// If false use 0 for any position.
|
||||||
|
// Note: as eight entries are available,
|
||||||
|
// we might as well insert the same name eight times.
|
||||||
|
int rotate;
|
||||||
|
|
||||||
|
// Lump to use for view angles 0-7.
|
||||||
|
short lump[8];
|
||||||
|
|
||||||
|
// Flip bit (1 = flip) to use for view angles 0-7.
|
||||||
|
byte flip[8];
|
||||||
|
|
||||||
|
} spriteframe_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// A sprite definition:
|
||||||
|
// a number of animation frames.
|
||||||
|
//
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
int numframes;
|
||||||
|
spriteframe_t* spriteframes;
|
||||||
|
|
||||||
|
} spritedef_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Now what is a visplane, anyway?
|
||||||
|
//
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
fixed_t height;
|
||||||
|
int picnum;
|
||||||
|
int lightlevel;
|
||||||
|
int minx;
|
||||||
|
int maxx;
|
||||||
|
|
||||||
|
// leave pads for [minx-1]/[maxx+1]
|
||||||
|
|
||||||
|
byte pad1;
|
||||||
|
// Here lies the rub for all
|
||||||
|
// dynamic resize/change of resolution.
|
||||||
|
byte top[SCREENWIDTH];
|
||||||
|
byte pad2;
|
||||||
|
byte pad3;
|
||||||
|
// See above.
|
||||||
|
byte bottom[SCREENWIDTH];
|
||||||
|
byte pad4;
|
||||||
|
|
||||||
|
} visplane_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
115
programs/games/doom/trunk/h/r_draw.h
Normal file
115
programs/games/doom/trunk/h/r_draw.h
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// System specific interface stuff.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __R_DRAW__
|
||||||
|
#define __R_DRAW__
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
extern lighttable_t* dc_colormap;
|
||||||
|
extern int dc_x;
|
||||||
|
extern int dc_yl;
|
||||||
|
extern int dc_yh;
|
||||||
|
extern fixed_t dc_iscale;
|
||||||
|
extern fixed_t dc_texturemid;
|
||||||
|
|
||||||
|
// first pixel in a column
|
||||||
|
extern byte* dc_source;
|
||||||
|
|
||||||
|
|
||||||
|
// The span blitting interface.
|
||||||
|
// Hook in assembler or system specific BLT
|
||||||
|
// here.
|
||||||
|
void R_DrawColumn (void);
|
||||||
|
void R_DrawColumnLow (void);
|
||||||
|
|
||||||
|
// The Spectre/Invisibility effect.
|
||||||
|
void R_DrawFuzzColumn (void);
|
||||||
|
void R_DrawFuzzColumnLow (void);
|
||||||
|
|
||||||
|
// Draw with color translation tables,
|
||||||
|
// for player sprite rendering,
|
||||||
|
// Green/Red/Blue/Indigo shirts.
|
||||||
|
void R_DrawTranslatedColumn (void);
|
||||||
|
void R_DrawTranslatedColumnLow (void);
|
||||||
|
|
||||||
|
void
|
||||||
|
R_VideoErase
|
||||||
|
( unsigned ofs,
|
||||||
|
int count );
|
||||||
|
|
||||||
|
extern int ds_y;
|
||||||
|
extern int ds_x1;
|
||||||
|
extern int ds_x2;
|
||||||
|
|
||||||
|
extern lighttable_t* ds_colormap;
|
||||||
|
|
||||||
|
extern fixed_t ds_xfrac;
|
||||||
|
extern fixed_t ds_yfrac;
|
||||||
|
extern fixed_t ds_xstep;
|
||||||
|
extern fixed_t ds_ystep;
|
||||||
|
|
||||||
|
// start of a 64*64 tile image
|
||||||
|
extern byte* ds_source;
|
||||||
|
|
||||||
|
extern byte* translationtables;
|
||||||
|
extern byte* dc_translation;
|
||||||
|
|
||||||
|
|
||||||
|
// Span blitting for rows, floor/ceiling.
|
||||||
|
// No Sepctre effect needed.
|
||||||
|
void R_DrawSpan (void);
|
||||||
|
|
||||||
|
// Low resolution mode, 160x200?
|
||||||
|
void R_DrawSpanLow (void);
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
R_InitBuffer
|
||||||
|
( int width,
|
||||||
|
int height );
|
||||||
|
|
||||||
|
|
||||||
|
// Initialize color translation tables,
|
||||||
|
// for player rendering etc.
|
||||||
|
void R_InitTranslationTables (void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Rendering function.
|
||||||
|
void R_FillBackScreen (void);
|
||||||
|
|
||||||
|
// If the view size is not full screen, draws a border around it.
|
||||||
|
void R_DrawViewBorder (void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
53
programs/games/doom/trunk/h/r_local.h
Normal file
53
programs/games/doom/trunk/h/r_local.h
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Refresh (R_*) module, global header.
|
||||||
|
// All the rendering/drawing stuff is here.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifndef __R_LOCAL__
|
||||||
|
#define __R_LOCAL__
|
||||||
|
|
||||||
|
// Binary Angles, sine/cosine/atan lookups.
|
||||||
|
#include "tables.h"
|
||||||
|
|
||||||
|
// Screen size related parameters.
|
||||||
|
#include "doomdef.h"
|
||||||
|
|
||||||
|
// Include the refresh/render data structs.
|
||||||
|
#include "r_data.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Separate header file for each module.
|
||||||
|
//
|
||||||
|
#include "r_main.h"
|
||||||
|
#include "r_bsp.h"
|
||||||
|
#include "r_segs.h"
|
||||||
|
#include "r_plane.h"
|
||||||
|
#include "r_data.h"
|
||||||
|
#include "r_things.h"
|
||||||
|
#include "r_draw.h"
|
||||||
|
|
||||||
|
#endif // __R_LOCAL__
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
172
programs/games/doom/trunk/h/r_main.h
Normal file
172
programs/games/doom/trunk/h/r_main.h
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// System specific interface stuff.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __R_MAIN__
|
||||||
|
#define __R_MAIN__
|
||||||
|
|
||||||
|
#include "d_player.h"
|
||||||
|
#include "r_data.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// POV related.
|
||||||
|
//
|
||||||
|
extern fixed_t viewcos;
|
||||||
|
extern fixed_t viewsin;
|
||||||
|
|
||||||
|
extern int viewwidth;
|
||||||
|
extern int viewheight;
|
||||||
|
extern int viewwindowx;
|
||||||
|
extern int viewwindowy;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
extern int centerx;
|
||||||
|
extern int centery;
|
||||||
|
|
||||||
|
extern fixed_t centerxfrac;
|
||||||
|
extern fixed_t centeryfrac;
|
||||||
|
extern fixed_t projection;
|
||||||
|
|
||||||
|
extern int validcount;
|
||||||
|
|
||||||
|
extern int linecount;
|
||||||
|
extern int loopcount;
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Lighting LUT.
|
||||||
|
// Used for z-depth cuing per column/row,
|
||||||
|
// and other lighting effects (sector ambient, flash).
|
||||||
|
//
|
||||||
|
|
||||||
|
// Lighting constants.
|
||||||
|
// Now why not 32 levels here?
|
||||||
|
#define LIGHTLEVELS 16
|
||||||
|
#define LIGHTSEGSHIFT 4
|
||||||
|
|
||||||
|
#define MAXLIGHTSCALE 48
|
||||||
|
#define LIGHTSCALESHIFT 12
|
||||||
|
#define MAXLIGHTZ 128
|
||||||
|
#define LIGHTZSHIFT 20
|
||||||
|
|
||||||
|
extern lighttable_t* scalelight[LIGHTLEVELS][MAXLIGHTSCALE];
|
||||||
|
extern lighttable_t* scalelightfixed[MAXLIGHTSCALE];
|
||||||
|
extern lighttable_t* zlight[LIGHTLEVELS][MAXLIGHTZ];
|
||||||
|
|
||||||
|
extern int extralight;
|
||||||
|
extern lighttable_t* fixedcolormap;
|
||||||
|
|
||||||
|
|
||||||
|
// Number of diminishing brightness levels.
|
||||||
|
// There a 0-31, i.e. 32 LUT in the COLORMAP lump.
|
||||||
|
#define NUMCOLORMAPS 32
|
||||||
|
|
||||||
|
|
||||||
|
// Blocky/low detail mode.
|
||||||
|
//B remove this?
|
||||||
|
// 0 = high, 1 = low
|
||||||
|
extern int detailshift;
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Function pointers to switch refresh/drawing functions.
|
||||||
|
// Used to select shadow mode etc.
|
||||||
|
//
|
||||||
|
extern void (*colfunc) (void);
|
||||||
|
extern void (*basecolfunc) (void);
|
||||||
|
extern void (*fuzzcolfunc) (void);
|
||||||
|
// No shadow effects on floors.
|
||||||
|
extern void (*spanfunc) (void);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Utility functions.
|
||||||
|
int
|
||||||
|
R_PointOnSide
|
||||||
|
( fixed_t x,
|
||||||
|
fixed_t y,
|
||||||
|
node_t* node );
|
||||||
|
|
||||||
|
int
|
||||||
|
R_PointOnSegSide
|
||||||
|
( fixed_t x,
|
||||||
|
fixed_t y,
|
||||||
|
seg_t* line );
|
||||||
|
|
||||||
|
angle_t
|
||||||
|
R_PointToAngle
|
||||||
|
( fixed_t x,
|
||||||
|
fixed_t y );
|
||||||
|
|
||||||
|
angle_t
|
||||||
|
R_PointToAngle2
|
||||||
|
( fixed_t x1,
|
||||||
|
fixed_t y1,
|
||||||
|
fixed_t x2,
|
||||||
|
fixed_t y2 );
|
||||||
|
|
||||||
|
fixed_t
|
||||||
|
R_PointToDist
|
||||||
|
( fixed_t x,
|
||||||
|
fixed_t y );
|
||||||
|
|
||||||
|
|
||||||
|
fixed_t R_ScaleFromGlobalAngle (angle_t visangle);
|
||||||
|
|
||||||
|
subsector_t*
|
||||||
|
R_PointInSubsector
|
||||||
|
( fixed_t x,
|
||||||
|
fixed_t y );
|
||||||
|
|
||||||
|
void
|
||||||
|
R_AddPointToBox
|
||||||
|
( int x,
|
||||||
|
int y,
|
||||||
|
fixed_t* box );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// REFRESH - the actual rendering functions.
|
||||||
|
//
|
||||||
|
|
||||||
|
// Called by G_Drawer.
|
||||||
|
void R_RenderPlayerView (player_t *player);
|
||||||
|
|
||||||
|
// Called by startup code.
|
||||||
|
void R_Init (void);
|
||||||
|
|
||||||
|
// Called by M_Responder.
|
||||||
|
void R_SetViewSize (int blocks, int detail);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
87
programs/games/doom/trunk/h/r_plane.h
Normal file
87
programs/games/doom/trunk/h/r_plane.h
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Refresh, visplane stuff (floor, ceilings).
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __R_PLANE__
|
||||||
|
#define __R_PLANE__
|
||||||
|
|
||||||
|
|
||||||
|
#include "r_data.h"
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// Visplane related.
|
||||||
|
extern short* lastopening;
|
||||||
|
|
||||||
|
|
||||||
|
typedef void (*planefunction_t) (int top, int bottom);
|
||||||
|
|
||||||
|
extern planefunction_t floorfunc;
|
||||||
|
extern planefunction_t ceilingfunc_t;
|
||||||
|
|
||||||
|
extern short floorclip[SCREENWIDTH];
|
||||||
|
extern short ceilingclip[SCREENWIDTH];
|
||||||
|
|
||||||
|
extern fixed_t yslope[SCREENHEIGHT];
|
||||||
|
extern fixed_t distscale[SCREENWIDTH];
|
||||||
|
|
||||||
|
void R_InitPlanes (void);
|
||||||
|
void R_ClearPlanes (void);
|
||||||
|
|
||||||
|
void
|
||||||
|
R_MapPlane
|
||||||
|
( int y,
|
||||||
|
int x1,
|
||||||
|
int x2 );
|
||||||
|
|
||||||
|
void
|
||||||
|
R_MakeSpans
|
||||||
|
( int x,
|
||||||
|
int t1,
|
||||||
|
int b1,
|
||||||
|
int t2,
|
||||||
|
int b2 );
|
||||||
|
|
||||||
|
void R_DrawPlanes (void);
|
||||||
|
|
||||||
|
visplane_t*
|
||||||
|
R_FindPlane
|
||||||
|
( fixed_t height,
|
||||||
|
int picnum,
|
||||||
|
int lightlevel );
|
||||||
|
|
||||||
|
visplane_t*
|
||||||
|
R_CheckPlane
|
||||||
|
( visplane_t* pl,
|
||||||
|
int start,
|
||||||
|
int stop );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
44
programs/games/doom/trunk/h/r_segs.h
Normal file
44
programs/games/doom/trunk/h/r_segs.h
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Refresh module, drawing LineSegs from BSP.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __R_SEGS__
|
||||||
|
#define __R_SEGS__
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
R_RenderMaskedSegRange
|
||||||
|
( drawseg_t* ds,
|
||||||
|
int x1,
|
||||||
|
int x2 );
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
48
programs/games/doom/trunk/h/r_sky.h
Normal file
48
programs/games/doom/trunk/h/r_sky.h
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Sky rendering.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __R_SKY__
|
||||||
|
#define __R_SKY__
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// SKY, store the number for name.
|
||||||
|
#define SKYFLATNAME "F_SKY1"
|
||||||
|
|
||||||
|
// The sky map is 256*128*4 maps.
|
||||||
|
#define ANGLETOSKYSHIFT 22
|
||||||
|
|
||||||
|
extern int skytexture;
|
||||||
|
extern int skytexturemid;
|
||||||
|
|
||||||
|
// Called whenever the view size changes.
|
||||||
|
void R_InitSkyMap (void);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
138
programs/games/doom/trunk/h/r_state.h
Normal file
138
programs/games/doom/trunk/h/r_state.h
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Refresh/render internal state variables (global).
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __R_STATE__
|
||||||
|
#define __R_STATE__
|
||||||
|
|
||||||
|
// Need data structure definitions.
|
||||||
|
#include "d_player.h"
|
||||||
|
#include "r_data.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Refresh internal data structures,
|
||||||
|
// for rendering.
|
||||||
|
//
|
||||||
|
|
||||||
|
// needed for texture pegging
|
||||||
|
extern fixed_t* textureheight;
|
||||||
|
|
||||||
|
// needed for pre rendering (fracs)
|
||||||
|
extern fixed_t* spritewidth;
|
||||||
|
|
||||||
|
extern fixed_t* spriteoffset;
|
||||||
|
extern fixed_t* spritetopoffset;
|
||||||
|
|
||||||
|
extern lighttable_t* colormaps;
|
||||||
|
|
||||||
|
extern int viewwidth;
|
||||||
|
extern int scaledviewwidth;
|
||||||
|
extern int viewheight;
|
||||||
|
|
||||||
|
extern int firstflat;
|
||||||
|
|
||||||
|
// for global animation
|
||||||
|
extern int* flattranslation;
|
||||||
|
extern int* texturetranslation;
|
||||||
|
|
||||||
|
|
||||||
|
// Sprite....
|
||||||
|
extern int firstspritelump;
|
||||||
|
extern int lastspritelump;
|
||||||
|
extern int numspritelumps;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Lookup tables for map data.
|
||||||
|
//
|
||||||
|
extern int numsprites;
|
||||||
|
extern spritedef_t* sprites;
|
||||||
|
|
||||||
|
extern int numvertexes;
|
||||||
|
extern vertex_t* vertexes;
|
||||||
|
|
||||||
|
extern int numsegs;
|
||||||
|
extern seg_t* segs;
|
||||||
|
|
||||||
|
extern int numsectors;
|
||||||
|
extern sector_t* sectors;
|
||||||
|
|
||||||
|
extern int numsubsectors;
|
||||||
|
extern subsector_t* subsectors;
|
||||||
|
|
||||||
|
extern int numnodes;
|
||||||
|
extern node_t* nodes;
|
||||||
|
|
||||||
|
extern int numlines;
|
||||||
|
extern line_t* lines;
|
||||||
|
|
||||||
|
extern int numsides;
|
||||||
|
extern side_t* sides;
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// POV data.
|
||||||
|
//
|
||||||
|
extern fixed_t viewx;
|
||||||
|
extern fixed_t viewy;
|
||||||
|
extern fixed_t viewz;
|
||||||
|
|
||||||
|
extern angle_t viewangle;
|
||||||
|
extern player_t* viewplayer;
|
||||||
|
|
||||||
|
|
||||||
|
// ?
|
||||||
|
extern angle_t clipangle;
|
||||||
|
|
||||||
|
extern int viewangletox[FINEANGLES/2];
|
||||||
|
extern angle_t xtoviewangle[SCREENWIDTH+1];
|
||||||
|
//extern fixed_t finetangent[FINEANGLES/2];
|
||||||
|
|
||||||
|
extern fixed_t rw_distance;
|
||||||
|
extern angle_t rw_normalangle;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// angle to line origin
|
||||||
|
extern int rw_angle1;
|
||||||
|
|
||||||
|
// Segs count?
|
||||||
|
extern int sscount;
|
||||||
|
|
||||||
|
extern visplane_t* floorplane;
|
||||||
|
extern visplane_t* ceilingplane;
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
76
programs/games/doom/trunk/h/r_things.h
Normal file
76
programs/games/doom/trunk/h/r_things.h
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Rendering of moving objects, sprites.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __R_THINGS__
|
||||||
|
#define __R_THINGS__
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define MAXVISSPRITES 128
|
||||||
|
|
||||||
|
extern vissprite_t vissprites[MAXVISSPRITES];
|
||||||
|
extern vissprite_t* vissprite_p;
|
||||||
|
extern vissprite_t vsprsortedhead;
|
||||||
|
|
||||||
|
// Constant arrays used for psprite clipping
|
||||||
|
// and initializing clipping.
|
||||||
|
extern short negonearray[SCREENWIDTH];
|
||||||
|
extern short screenheightarray[SCREENWIDTH];
|
||||||
|
|
||||||
|
// vars for R_DrawMaskedColumn
|
||||||
|
extern short* mfloorclip;
|
||||||
|
extern short* mceilingclip;
|
||||||
|
extern fixed_t spryscale;
|
||||||
|
extern fixed_t sprtopscreen;
|
||||||
|
|
||||||
|
extern fixed_t pspritescale;
|
||||||
|
extern fixed_t pspriteiscale;
|
||||||
|
|
||||||
|
|
||||||
|
void R_DrawMaskedColumn (column_t* column);
|
||||||
|
|
||||||
|
|
||||||
|
void R_SortVisSprites (void);
|
||||||
|
|
||||||
|
void R_AddSprites (sector_t* sec);
|
||||||
|
void R_AddPSprites (void);
|
||||||
|
void R_DrawSprites (void);
|
||||||
|
void R_InitSprites (char** namelist);
|
||||||
|
void R_ClearSprites (void);
|
||||||
|
void R_DrawMasked (void);
|
||||||
|
|
||||||
|
void
|
||||||
|
R_ClipVisSprite
|
||||||
|
( vissprite_t* vis,
|
||||||
|
int xl,
|
||||||
|
int xh );
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
109
programs/games/doom/trunk/h/s_sound.h
Normal file
109
programs/games/doom/trunk/h/s_sound.h
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// The not so system specific sound interface.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __S_SOUND__
|
||||||
|
#define __S_SOUND__
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Initializes sound stuff, including volume
|
||||||
|
// Sets channels, SFX and music volume,
|
||||||
|
// allocates channel buffer, sets S_sfx lookup.
|
||||||
|
//
|
||||||
|
void
|
||||||
|
S_Init
|
||||||
|
( int sfxVolume,
|
||||||
|
int musicVolume );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Per level startup code.
|
||||||
|
// Kills playing sounds at start of level,
|
||||||
|
// determines music if any, changes music.
|
||||||
|
//
|
||||||
|
void S_Start(void);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Start sound for thing at <origin>
|
||||||
|
// using <sound_id> from sounds.h
|
||||||
|
//
|
||||||
|
void
|
||||||
|
S_StartSound
|
||||||
|
( void* origin,
|
||||||
|
int sound_id );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Will start a sound at a given volume.
|
||||||
|
void
|
||||||
|
S_StartSoundAtVolume
|
||||||
|
( void* origin,
|
||||||
|
int sound_id,
|
||||||
|
int volume );
|
||||||
|
|
||||||
|
|
||||||
|
// Stop sound for thing at <origin>
|
||||||
|
void S_StopSound(void* origin);
|
||||||
|
|
||||||
|
|
||||||
|
// Start music using <music_id> from sounds.h
|
||||||
|
void S_StartMusic(int music_id);
|
||||||
|
|
||||||
|
// Start music using <music_id> from sounds.h,
|
||||||
|
// and set whether looping
|
||||||
|
void
|
||||||
|
S_ChangeMusic
|
||||||
|
( int music_id,
|
||||||
|
int looping );
|
||||||
|
|
||||||
|
// Stops the music fer sure.
|
||||||
|
void S_StopMusic(void);
|
||||||
|
|
||||||
|
// Stop and resume music, during game PAUSE.
|
||||||
|
void S_PauseSound(void);
|
||||||
|
void S_ResumeSound(void);
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Updates music & sounds
|
||||||
|
//
|
||||||
|
void S_UpdateSounds(void* listener);
|
||||||
|
|
||||||
|
void S_SetMusicVolume(int volume);
|
||||||
|
void S_SetSfxVolume(int volume);
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
297
programs/games/doom/trunk/h/sounds.h
Normal file
297
programs/games/doom/trunk/h/sounds.h
Normal file
@ -0,0 +1,297 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Created by the sound utility written by Dave Taylor.
|
||||||
|
// Kept as a sample, DOOM2 sounds. Frozen.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifndef __SOUNDS__
|
||||||
|
#define __SOUNDS__
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// SoundFX struct.
|
||||||
|
//
|
||||||
|
typedef struct sfxinfo_struct sfxinfo_t;
|
||||||
|
|
||||||
|
struct sfxinfo_struct
|
||||||
|
{
|
||||||
|
// up to 6-character name
|
||||||
|
char* name;
|
||||||
|
|
||||||
|
// Sfx singularity (only one at a time)
|
||||||
|
int singularity;
|
||||||
|
|
||||||
|
// Sfx priority
|
||||||
|
int priority;
|
||||||
|
|
||||||
|
// referenced sound if a link
|
||||||
|
sfxinfo_t* link;
|
||||||
|
|
||||||
|
// pitch if a link
|
||||||
|
int pitch;
|
||||||
|
|
||||||
|
// volume if a link
|
||||||
|
int volume;
|
||||||
|
|
||||||
|
// sound data
|
||||||
|
void* data;
|
||||||
|
|
||||||
|
// this is checked every second to see if sound
|
||||||
|
// can be thrown out (if 0, then decrement, if -1,
|
||||||
|
// then throw out, if > 0, then it is in use)
|
||||||
|
int usefulness;
|
||||||
|
|
||||||
|
// lump number of sfx
|
||||||
|
int lumpnum;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// MusicInfo struct.
|
||||||
|
//
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
// up to 6-character name
|
||||||
|
char* name;
|
||||||
|
|
||||||
|
// lump number of music
|
||||||
|
int lumpnum;
|
||||||
|
|
||||||
|
// music data
|
||||||
|
void* data;
|
||||||
|
|
||||||
|
// music handle once registered
|
||||||
|
int handle;
|
||||||
|
|
||||||
|
} musicinfo_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// the complete set of sound effects
|
||||||
|
extern sfxinfo_t S_sfx[];
|
||||||
|
|
||||||
|
// the complete set of music
|
||||||
|
extern musicinfo_t S_music[];
|
||||||
|
|
||||||
|
//
|
||||||
|
// Identifiers for all music in game.
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
mus_None,
|
||||||
|
mus_e1m1,
|
||||||
|
mus_e1m2,
|
||||||
|
mus_e1m3,
|
||||||
|
mus_e1m4,
|
||||||
|
mus_e1m5,
|
||||||
|
mus_e1m6,
|
||||||
|
mus_e1m7,
|
||||||
|
mus_e1m8,
|
||||||
|
mus_e1m9,
|
||||||
|
mus_e2m1,
|
||||||
|
mus_e2m2,
|
||||||
|
mus_e2m3,
|
||||||
|
mus_e2m4,
|
||||||
|
mus_e2m5,
|
||||||
|
mus_e2m6,
|
||||||
|
mus_e2m7,
|
||||||
|
mus_e2m8,
|
||||||
|
mus_e2m9,
|
||||||
|
mus_e3m1,
|
||||||
|
mus_e3m2,
|
||||||
|
mus_e3m3,
|
||||||
|
mus_e3m4,
|
||||||
|
mus_e3m5,
|
||||||
|
mus_e3m6,
|
||||||
|
mus_e3m7,
|
||||||
|
mus_e3m8,
|
||||||
|
mus_e3m9,
|
||||||
|
mus_inter,
|
||||||
|
mus_intro,
|
||||||
|
mus_bunny,
|
||||||
|
mus_victor,
|
||||||
|
mus_introa,
|
||||||
|
mus_runnin,
|
||||||
|
mus_stalks,
|
||||||
|
mus_countd,
|
||||||
|
mus_betwee,
|
||||||
|
mus_doom,
|
||||||
|
mus_the_da,
|
||||||
|
mus_shawn,
|
||||||
|
mus_ddtblu,
|
||||||
|
mus_in_cit,
|
||||||
|
mus_dead,
|
||||||
|
mus_stlks2,
|
||||||
|
mus_theda2,
|
||||||
|
mus_doom2,
|
||||||
|
mus_ddtbl2,
|
||||||
|
mus_runni2,
|
||||||
|
mus_dead2,
|
||||||
|
mus_stlks3,
|
||||||
|
mus_romero,
|
||||||
|
mus_shawn2,
|
||||||
|
mus_messag,
|
||||||
|
mus_count2,
|
||||||
|
mus_ddtbl3,
|
||||||
|
mus_ampie,
|
||||||
|
mus_theda3,
|
||||||
|
mus_adrian,
|
||||||
|
mus_messg2,
|
||||||
|
mus_romer2,
|
||||||
|
mus_tense,
|
||||||
|
mus_shawn3,
|
||||||
|
mus_openin,
|
||||||
|
mus_evil,
|
||||||
|
mus_ultima,
|
||||||
|
mus_read_m,
|
||||||
|
mus_dm2ttl,
|
||||||
|
mus_dm2int,
|
||||||
|
NUMMUSIC
|
||||||
|
} musicenum_t;
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Identifiers for all sfx in game.
|
||||||
|
//
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
sfx_None,
|
||||||
|
sfx_pistol,
|
||||||
|
sfx_shotgn,
|
||||||
|
sfx_sgcock,
|
||||||
|
sfx_dshtgn,
|
||||||
|
sfx_dbopn,
|
||||||
|
sfx_dbcls,
|
||||||
|
sfx_dbload,
|
||||||
|
sfx_plasma,
|
||||||
|
sfx_bfg,
|
||||||
|
sfx_sawup,
|
||||||
|
sfx_sawidl,
|
||||||
|
sfx_sawful,
|
||||||
|
sfx_sawhit,
|
||||||
|
sfx_rlaunc,
|
||||||
|
sfx_rxplod,
|
||||||
|
sfx_firsht,
|
||||||
|
sfx_firxpl,
|
||||||
|
sfx_pstart,
|
||||||
|
sfx_pstop,
|
||||||
|
sfx_doropn,
|
||||||
|
sfx_dorcls,
|
||||||
|
sfx_stnmov,
|
||||||
|
sfx_swtchn,
|
||||||
|
sfx_swtchx,
|
||||||
|
sfx_plpain,
|
||||||
|
sfx_dmpain,
|
||||||
|
sfx_popain,
|
||||||
|
sfx_vipain,
|
||||||
|
sfx_mnpain,
|
||||||
|
sfx_pepain,
|
||||||
|
sfx_slop,
|
||||||
|
sfx_itemup,
|
||||||
|
sfx_wpnup,
|
||||||
|
sfx_oof,
|
||||||
|
sfx_telept,
|
||||||
|
sfx_posit1,
|
||||||
|
sfx_posit2,
|
||||||
|
sfx_posit3,
|
||||||
|
sfx_bgsit1,
|
||||||
|
sfx_bgsit2,
|
||||||
|
sfx_sgtsit,
|
||||||
|
sfx_cacsit,
|
||||||
|
sfx_brssit,
|
||||||
|
sfx_cybsit,
|
||||||
|
sfx_spisit,
|
||||||
|
sfx_bspsit,
|
||||||
|
sfx_kntsit,
|
||||||
|
sfx_vilsit,
|
||||||
|
sfx_mansit,
|
||||||
|
sfx_pesit,
|
||||||
|
sfx_sklatk,
|
||||||
|
sfx_sgtatk,
|
||||||
|
sfx_skepch,
|
||||||
|
sfx_vilatk,
|
||||||
|
sfx_claw,
|
||||||
|
sfx_skeswg,
|
||||||
|
sfx_pldeth,
|
||||||
|
sfx_pdiehi,
|
||||||
|
sfx_podth1,
|
||||||
|
sfx_podth2,
|
||||||
|
sfx_podth3,
|
||||||
|
sfx_bgdth1,
|
||||||
|
sfx_bgdth2,
|
||||||
|
sfx_sgtdth,
|
||||||
|
sfx_cacdth,
|
||||||
|
sfx_skldth,
|
||||||
|
sfx_brsdth,
|
||||||
|
sfx_cybdth,
|
||||||
|
sfx_spidth,
|
||||||
|
sfx_bspdth,
|
||||||
|
sfx_vildth,
|
||||||
|
sfx_kntdth,
|
||||||
|
sfx_pedth,
|
||||||
|
sfx_skedth,
|
||||||
|
sfx_posact,
|
||||||
|
sfx_bgact,
|
||||||
|
sfx_dmact,
|
||||||
|
sfx_bspact,
|
||||||
|
sfx_bspwlk,
|
||||||
|
sfx_vilact,
|
||||||
|
sfx_noway,
|
||||||
|
sfx_barexp,
|
||||||
|
sfx_punch,
|
||||||
|
sfx_hoof,
|
||||||
|
sfx_metal,
|
||||||
|
sfx_chgun,
|
||||||
|
sfx_tink,
|
||||||
|
sfx_bdopn,
|
||||||
|
sfx_bdcls,
|
||||||
|
sfx_itmbk,
|
||||||
|
sfx_flame,
|
||||||
|
sfx_flamst,
|
||||||
|
sfx_getpow,
|
||||||
|
sfx_bospit,
|
||||||
|
sfx_boscub,
|
||||||
|
sfx_bossit,
|
||||||
|
sfx_bospn,
|
||||||
|
sfx_bosdth,
|
||||||
|
sfx_manatk,
|
||||||
|
sfx_mandth,
|
||||||
|
sfx_sssit,
|
||||||
|
sfx_ssdth,
|
||||||
|
sfx_keenpn,
|
||||||
|
sfx_keendt,
|
||||||
|
sfx_skeact,
|
||||||
|
sfx_skesit,
|
||||||
|
sfx_skeatk,
|
||||||
|
sfx_radio,
|
||||||
|
NUMSFX
|
||||||
|
} sfxenum_t;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
226
programs/games/doom/trunk/h/st_lib.h
Normal file
226
programs/games/doom/trunk/h/st_lib.h
Normal file
@ -0,0 +1,226 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// The status bar widget code.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifndef __STLIB__
|
||||||
|
#define __STLIB__
|
||||||
|
|
||||||
|
|
||||||
|
// We are referring to patches.
|
||||||
|
#include "r_defs.h"
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Background and foreground screen numbers
|
||||||
|
//
|
||||||
|
#define BG 4
|
||||||
|
#define FG 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Typedefs of widgets
|
||||||
|
//
|
||||||
|
|
||||||
|
// Number widget
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
// upper right-hand corner
|
||||||
|
// of the number (right-justified)
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
|
||||||
|
// max # of digits in number
|
||||||
|
int width;
|
||||||
|
|
||||||
|
// last number value
|
||||||
|
int oldnum;
|
||||||
|
|
||||||
|
// pointer to current value
|
||||||
|
int* num;
|
||||||
|
|
||||||
|
// pointer to boolean stating
|
||||||
|
// whether to update number
|
||||||
|
boolean* on;
|
||||||
|
|
||||||
|
// list of patches for 0-9
|
||||||
|
patch_t** p;
|
||||||
|
|
||||||
|
// user data
|
||||||
|
int data;
|
||||||
|
|
||||||
|
} st_number_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Percent widget ("child" of number widget,
|
||||||
|
// or, more precisely, contains a number widget.)
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
// number information
|
||||||
|
st_number_t n;
|
||||||
|
|
||||||
|
// percent sign graphic
|
||||||
|
patch_t* p;
|
||||||
|
|
||||||
|
} st_percent_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Multiple Icon widget
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
// center-justified location of icons
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
|
||||||
|
// last icon number
|
||||||
|
int oldinum;
|
||||||
|
|
||||||
|
// pointer to current icon
|
||||||
|
int* inum;
|
||||||
|
|
||||||
|
// pointer to boolean stating
|
||||||
|
// whether to update icon
|
||||||
|
boolean* on;
|
||||||
|
|
||||||
|
// list of icons
|
||||||
|
patch_t** p;
|
||||||
|
|
||||||
|
// user data
|
||||||
|
int data;
|
||||||
|
|
||||||
|
} st_multicon_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Binary Icon widget
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
// center-justified location of icon
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
|
||||||
|
// last icon value
|
||||||
|
int oldval;
|
||||||
|
|
||||||
|
// pointer to current icon status
|
||||||
|
boolean* val;
|
||||||
|
|
||||||
|
// pointer to boolean
|
||||||
|
// stating whether to update icon
|
||||||
|
boolean* on;
|
||||||
|
|
||||||
|
|
||||||
|
patch_t* p; // icon
|
||||||
|
int data; // user data
|
||||||
|
|
||||||
|
} st_binicon_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Widget creation, access, and update routines
|
||||||
|
//
|
||||||
|
|
||||||
|
// Initializes widget library.
|
||||||
|
// More precisely, initialize STMINUS,
|
||||||
|
// everything else is done somewhere else.
|
||||||
|
//
|
||||||
|
void STlib_init(void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Number widget routines
|
||||||
|
void
|
||||||
|
STlib_initNum
|
||||||
|
( st_number_t* n,
|
||||||
|
int x,
|
||||||
|
int y,
|
||||||
|
patch_t** pl,
|
||||||
|
int* num,
|
||||||
|
boolean* on,
|
||||||
|
int width );
|
||||||
|
|
||||||
|
void
|
||||||
|
STlib_updateNum
|
||||||
|
( st_number_t* n,
|
||||||
|
boolean refresh );
|
||||||
|
|
||||||
|
|
||||||
|
// Percent widget routines
|
||||||
|
void
|
||||||
|
STlib_initPercent
|
||||||
|
( st_percent_t* p,
|
||||||
|
int x,
|
||||||
|
int y,
|
||||||
|
patch_t** pl,
|
||||||
|
int* num,
|
||||||
|
boolean* on,
|
||||||
|
patch_t* percent );
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
STlib_updatePercent
|
||||||
|
( st_percent_t* per,
|
||||||
|
int refresh );
|
||||||
|
|
||||||
|
|
||||||
|
// Multiple Icon widget routines
|
||||||
|
void
|
||||||
|
STlib_initMultIcon
|
||||||
|
( st_multicon_t* mi,
|
||||||
|
int x,
|
||||||
|
int y,
|
||||||
|
patch_t** il,
|
||||||
|
int* inum,
|
||||||
|
boolean* on );
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
STlib_updateMultIcon
|
||||||
|
( st_multicon_t* mi,
|
||||||
|
boolean refresh );
|
||||||
|
|
||||||
|
// Binary Icon widget routines
|
||||||
|
|
||||||
|
void
|
||||||
|
STlib_initBinIcon
|
||||||
|
( st_binicon_t* b,
|
||||||
|
int x,
|
||||||
|
int y,
|
||||||
|
patch_t* i,
|
||||||
|
boolean* val,
|
||||||
|
boolean* on );
|
||||||
|
|
||||||
|
void
|
||||||
|
STlib_updateBinIcon
|
||||||
|
( st_binicon_t* bi,
|
||||||
|
boolean refresh );
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
86
programs/games/doom/trunk/h/st_stuff.h
Normal file
86
programs/games/doom/trunk/h/st_stuff.h
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Status bar code.
|
||||||
|
// Does the face/direction indicator animatin.
|
||||||
|
// Does palette indicators as well (red pain/berserk, bright pickup)
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifndef __STSTUFF_H__
|
||||||
|
#define __STSTUFF_H__
|
||||||
|
|
||||||
|
#include "doomtype.h"
|
||||||
|
#include "d_event.h"
|
||||||
|
|
||||||
|
// Size of statusbar.
|
||||||
|
// Now sensitive for scaling.
|
||||||
|
#define ST_HEIGHT 32*SCREEN_MUL
|
||||||
|
#define ST_WIDTH SCREENWIDTH
|
||||||
|
#define ST_Y (SCREENHEIGHT - ST_HEIGHT)
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// STATUS BAR
|
||||||
|
//
|
||||||
|
|
||||||
|
// Called by main loop.
|
||||||
|
boolean ST_Responder (event_t* ev);
|
||||||
|
|
||||||
|
// Called by main loop.
|
||||||
|
void ST_Ticker (void);
|
||||||
|
|
||||||
|
// Called by main loop.
|
||||||
|
void ST_Drawer (boolean fullscreen, boolean refresh);
|
||||||
|
|
||||||
|
// Called when the console player is spawned on each level.
|
||||||
|
void ST_Start (void);
|
||||||
|
|
||||||
|
// Called by startup code.
|
||||||
|
void ST_Init (void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// States for status bar code.
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
AutomapState,
|
||||||
|
FirstPersonState
|
||||||
|
|
||||||
|
} st_stateenum_t;
|
||||||
|
|
||||||
|
|
||||||
|
// States for the chat code.
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
StartChatState,
|
||||||
|
WaitDestState,
|
||||||
|
GetChatState
|
||||||
|
|
||||||
|
} st_chatstateenum_t;
|
||||||
|
|
||||||
|
|
||||||
|
boolean ST_Responder(event_t* ev);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
100
programs/games/doom/trunk/h/tables.h
Normal file
100
programs/games/doom/trunk/h/tables.h
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Lookup tables.
|
||||||
|
// Do not try to look them up :-).
|
||||||
|
// In the order of appearance:
|
||||||
|
//
|
||||||
|
// int finetangent[4096] - Tangens LUT.
|
||||||
|
// Should work with BAM fairly well (12 of 16bit,
|
||||||
|
// effectively, by shifting).
|
||||||
|
//
|
||||||
|
// int finesine[10240] - Sine lookup.
|
||||||
|
// Guess what, serves as cosine, too.
|
||||||
|
// Remarkable thing is, how to use BAMs with this?
|
||||||
|
//
|
||||||
|
// int tantoangle[2049] - ArcTan LUT,
|
||||||
|
// maps tan(angle) to angle fast. Gotta search.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __TABLES__
|
||||||
|
#define __TABLES__
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef LINUX
|
||||||
|
#include <math.h>
|
||||||
|
#else
|
||||||
|
#define PI 3.141592657
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#include "m_fixed.h"
|
||||||
|
|
||||||
|
#define FINEANGLES 8192
|
||||||
|
#define FINEMASK (FINEANGLES-1)
|
||||||
|
|
||||||
|
|
||||||
|
// 0x100000000 to 0x2000
|
||||||
|
#define ANGLETOFINESHIFT 19
|
||||||
|
|
||||||
|
// Effective size is 10240.
|
||||||
|
extern fixed_t finesine[5*FINEANGLES/4];
|
||||||
|
|
||||||
|
// Re-use data, is just PI/2 pahse shift.
|
||||||
|
extern fixed_t* finecosine;
|
||||||
|
|
||||||
|
|
||||||
|
// Effective size is 4096.
|
||||||
|
extern fixed_t finetangent[FINEANGLES/2];
|
||||||
|
|
||||||
|
// Binary Angle Measument, BAM.
|
||||||
|
#define ANG45 0x20000000
|
||||||
|
#define ANG90 0x40000000
|
||||||
|
#define ANG180 0x80000000
|
||||||
|
#define ANG270 0xc0000000
|
||||||
|
|
||||||
|
|
||||||
|
#define SLOPERANGE 2048
|
||||||
|
#define SLOPEBITS 11
|
||||||
|
#define DBITS (FRACBITS-SLOPEBITS)
|
||||||
|
|
||||||
|
typedef unsigned angle_t;
|
||||||
|
|
||||||
|
|
||||||
|
// Effective size is 2049;
|
||||||
|
// The +1 size is to handle the case when x==y
|
||||||
|
// without additional checking.
|
||||||
|
extern angle_t tantoangle[SLOPERANGE+1];
|
||||||
|
|
||||||
|
|
||||||
|
// Utility function,
|
||||||
|
// called by R_PointToAngle.
|
||||||
|
int
|
||||||
|
SlopeDiv
|
||||||
|
( unsigned num,
|
||||||
|
unsigned den);
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
119
programs/games/doom/trunk/h/v_video.h
Normal file
119
programs/games/doom/trunk/h/v_video.h
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Gamma correction LUT.
|
||||||
|
// Functions to draw patches (by post) directly to screen.
|
||||||
|
// Functions to blit a block to the screen.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __V_VIDEO__
|
||||||
|
#define __V_VIDEO__
|
||||||
|
|
||||||
|
#include "doomtype.h"
|
||||||
|
|
||||||
|
#include "doomdef.h"
|
||||||
|
|
||||||
|
// Needed because we are refering to patches.
|
||||||
|
#include "r_data.h"
|
||||||
|
|
||||||
|
//
|
||||||
|
// VIDEO
|
||||||
|
//
|
||||||
|
|
||||||
|
#define CENTERY (SCREENHEIGHT/2)
|
||||||
|
|
||||||
|
|
||||||
|
// Screen 0 is the screen updated by I_Update screen.
|
||||||
|
// Screen 1 is an extra buffer.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
extern byte* screens[5];
|
||||||
|
|
||||||
|
extern int dirtybox[4];
|
||||||
|
|
||||||
|
extern byte gammatable[5][256];
|
||||||
|
extern int usegamma;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Allocates buffer screens, call before R_Init.
|
||||||
|
void V_Init (void);
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
V_CopyRect
|
||||||
|
( int srcx,
|
||||||
|
int srcy,
|
||||||
|
int srcscrn,
|
||||||
|
int width,
|
||||||
|
int height,
|
||||||
|
int destx,
|
||||||
|
int desty,
|
||||||
|
int destscrn );
|
||||||
|
|
||||||
|
void
|
||||||
|
V_DrawPatch
|
||||||
|
( int x,
|
||||||
|
int y,
|
||||||
|
int scrn,
|
||||||
|
patch_t* patch);
|
||||||
|
|
||||||
|
void
|
||||||
|
V_DrawPatchDirect
|
||||||
|
( int x,
|
||||||
|
int y,
|
||||||
|
int scrn,
|
||||||
|
patch_t* patch );
|
||||||
|
|
||||||
|
|
||||||
|
// Draw a linear block of pixels into the view buffer.
|
||||||
|
void
|
||||||
|
V_DrawBlock
|
||||||
|
( int x,
|
||||||
|
int y,
|
||||||
|
int scrn,
|
||||||
|
int width,
|
||||||
|
int height,
|
||||||
|
byte* src );
|
||||||
|
|
||||||
|
// Reads a linear block of pixels into the view buffer.
|
||||||
|
void
|
||||||
|
V_GetBlock
|
||||||
|
( int x,
|
||||||
|
int y,
|
||||||
|
int scrn,
|
||||||
|
int width,
|
||||||
|
int height,
|
||||||
|
byte* dest );
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
V_MarkRect
|
||||||
|
( int x,
|
||||||
|
int y,
|
||||||
|
int width,
|
||||||
|
int height );
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
89
programs/games/doom/trunk/h/w_wad.h
Normal file
89
programs/games/doom/trunk/h/w_wad.h
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// WAD I/O functions.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __W_WAD__
|
||||||
|
#define __W_WAD__
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// TYPES
|
||||||
|
//
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
// Should be "IWAD" or "PWAD".
|
||||||
|
char identification[4];
|
||||||
|
int numlumps;
|
||||||
|
int infotableofs;
|
||||||
|
|
||||||
|
} wadinfo_t;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
int filepos;
|
||||||
|
int size;
|
||||||
|
char name[8];
|
||||||
|
|
||||||
|
} filelump_t;
|
||||||
|
|
||||||
|
//
|
||||||
|
// WADFILE I/O related stuff.
|
||||||
|
//
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
char name[8];
|
||||||
|
int handle;
|
||||||
|
int position;
|
||||||
|
int size;
|
||||||
|
} lumpinfo_t;
|
||||||
|
|
||||||
|
|
||||||
|
extern void** lumpcache;
|
||||||
|
extern lumpinfo_t* lumpinfo;
|
||||||
|
extern int numlumps;
|
||||||
|
|
||||||
|
void W_InitMultipleFiles (char** filenames);
|
||||||
|
void W_Reload (void);
|
||||||
|
|
||||||
|
int W_CheckNumForName (char* name);
|
||||||
|
int W_GetNumForName (char* name);
|
||||||
|
|
||||||
|
int W_LumpLength (int lump);
|
||||||
|
void W_ReadLump (int lump, void *dest);
|
||||||
|
|
||||||
|
void* W_CacheLumpNum (int lump, int tag);
|
||||||
|
void* W_CacheLumpName (char* name, int tag);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
54
programs/games/doom/trunk/h/wi_stuff.h
Normal file
54
programs/games/doom/trunk/h/wi_stuff.h
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Intermission.
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifndef __WI_STUFF__
|
||||||
|
#define __WI_STUFF__
|
||||||
|
|
||||||
|
//#include "v_video.h"
|
||||||
|
|
||||||
|
#include "doomdef.h"
|
||||||
|
|
||||||
|
// States for the intermission
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
NoState = -1,
|
||||||
|
StatCount,
|
||||||
|
ShowNextLoc
|
||||||
|
|
||||||
|
} stateenum_t;
|
||||||
|
|
||||||
|
// Called by main loop, animate the intermission.
|
||||||
|
void WI_Ticker (void);
|
||||||
|
|
||||||
|
// Called by main loop,
|
||||||
|
// draws the intermission directly into the screen buffer.
|
||||||
|
void WI_Drawer (void);
|
||||||
|
|
||||||
|
// Setup for an intermission screen.
|
||||||
|
void WI_Start(wbstartstruct_t* wbstartstruct);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
86
programs/games/doom/trunk/h/z_zone.h
Normal file
86
programs/games/doom/trunk/h/z_zone.h
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
// Emacs style mode select -*- C++ -*-
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Id:$
|
||||||
|
//
|
||||||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||||||
|
//
|
||||||
|
// This source is available for distribution and/or modification
|
||||||
|
// only under the terms of the DOOM Source Code License as
|
||||||
|
// published by id Software. All rights reserved.
|
||||||
|
//
|
||||||
|
// The source is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// DESCRIPTION:
|
||||||
|
// Zone Memory Allocation, perhaps NeXT ObjectiveC inspired.
|
||||||
|
// Remark: this was the only stuff that, according
|
||||||
|
// to John Carmack, might have been useful for
|
||||||
|
// Quake.
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __Z_ZONE__
|
||||||
|
#define __Z_ZONE__
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
//
|
||||||
|
// ZONE MEMORY
|
||||||
|
// PU - purge tags.
|
||||||
|
// Tags < 100 are not overwritten until freed.
|
||||||
|
#define PU_STATIC 1 // static entire execution time
|
||||||
|
#define PU_SOUND 2 // static while playing
|
||||||
|
#define PU_MUSIC 3 // static while playing
|
||||||
|
#define PU_DAVE 4 // anything else Dave wants static
|
||||||
|
#define PU_LEVEL 50 // static until level exited
|
||||||
|
#define PU_LEVSPEC 51 // a special thinker in a level
|
||||||
|
// Tags >= 100 are purgable whenever needed.
|
||||||
|
#define PU_PURGELEVEL 100
|
||||||
|
#define PU_CACHE 101
|
||||||
|
|
||||||
|
|
||||||
|
void Z_Init (void);
|
||||||
|
void* Z_Malloc (int size, int tag, void *ptr);
|
||||||
|
void Z_Free (void *ptr);
|
||||||
|
void Z_FreeTags (int lowtag, int hightag);
|
||||||
|
void Z_DumpHeap (int lowtag, int hightag);
|
||||||
|
void Z_FileDumpHeap (FILE *f);
|
||||||
|
void Z_CheckHeap (void);
|
||||||
|
void Z_ChangeTag2 (void *ptr, int tag);
|
||||||
|
int Z_FreeMemory (void);
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct memblock_s
|
||||||
|
{
|
||||||
|
int size; // including the header and possibly tiny fragments
|
||||||
|
void** user; // NULL if a free block
|
||||||
|
int tag; // purgelevel
|
||||||
|
int id; // should be ZONEID
|
||||||
|
struct memblock_s* next;
|
||||||
|
struct memblock_s* prev;
|
||||||
|
} memblock_t;
|
||||||
|
|
||||||
|
//
|
||||||
|
// This is used to get the local FILE:LINE info from CPP
|
||||||
|
// prior to really call the function in question.
|
||||||
|
//
|
||||||
|
#define Z_ChangeTag(p,t) \
|
||||||
|
{ \
|
||||||
|
if (( (memblock_t *)( (byte *)(p) - sizeof(memblock_t)))->id!=0x1d4a11) \
|
||||||
|
I_Error("Z_CT at "__FILE__":%i",__LINE__); \
|
||||||
|
Z_ChangeTag2(p,t); \
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// $Log:$
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
Loading…
Reference in New Issue
Block a user