forked from KolibriOS/kolibrios
Kolibri alpha version
git-svn-id: svn://kolibrios.org@324 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
a6c8d276c3
commit
0989244bd5
@ -1,52 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,701 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,122 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,433 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
@ -1,52 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,64 +0,0 @@
|
|||||||
// 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
|
|
@ -1,149 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
@ -1,219 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,51 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,79 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,53 +0,0 @@
|
|||||||
// 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
|
|
||||||
{
|
|
||||||
char forwardmove; // *2048 for move
|
|
||||||
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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,222 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
@ -1,337 +0,0 @@
|
|||||||
// 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_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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,296 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,65 +0,0 @@
|
|||||||
// 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
|
|
||||||
typedef enum {false, true} boolean;
|
|
||||||
#endif
|
|
||||||
typedef unsigned char byte;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
// Predefined with some OS.
|
|
||||||
#ifdef LINUX
|
|
||||||
#include <values.h>
|
|
||||||
#else
|
|
||||||
#define MAXCHAR ((char)0x7f)
|
|
||||||
#define MAXSHORT ((short)0x7fff)
|
|
||||||
|
|
||||||
// Max pos 32-bit int.
|
|
||||||
#define MAXINT ((int)0x7fffffff)
|
|
||||||
#define MAXLONG ((long)0x7fffffff)
|
|
||||||
#define MINCHAR ((char)0x80)
|
|
||||||
#define MINSHORT ((short)0x8000)
|
|
||||||
|
|
||||||
// Max negative 32-bit integer.
|
|
||||||
#define MININT ((int)0x80000000)
|
|
||||||
#define MINLONG ((long)0x80000000)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// $Log:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,66 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,53 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,71 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,79 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,196 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,66 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,45 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,111 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,99 +0,0 @@
|
|||||||
// 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, ...);
|
|
||||||
|
|
||||||
// fixes bug under Win32 (mingwin32)
|
|
||||||
int I_strncasecmp(char *str1, char *str2, int len);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
//
|
|
||||||
// $Log:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,63 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
File diff suppressed because it is too large
Load Diff
@ -15,9 +15,11 @@ typedef unsigned int dword;
|
|||||||
typedef unsigned int fpos_t;
|
typedef unsigned int fpos_t;
|
||||||
typedef unsigned int size_t;
|
typedef unsigned int size_t;
|
||||||
|
|
||||||
#define NULL (void*)0
|
#//define NULL (void*)0
|
||||||
|
|
||||||
typedef enum SEEKPOS {SEEK_SET=0,SEEK_CUR,SEEK_END};
|
#define SEEK_SET 0
|
||||||
|
#define SEEK_CUR 1
|
||||||
|
#define SEEK_END 2
|
||||||
|
|
||||||
#define FILE_OPEN_READ 0x01
|
#define FILE_OPEN_READ 0x01
|
||||||
#define FILE_OPEN_WRITE 0x02
|
#define FILE_OPEN_WRITE 0x02
|
||||||
@ -111,6 +113,7 @@ extern short int _is[128];
|
|||||||
|
|
||||||
#define abs(i) (((i)<0)?(-(i)):(i))
|
#define abs(i) (((i)<0)?(-(i)):(i))
|
||||||
|
|
||||||
|
#if 0
|
||||||
extern int atoib(char *s,int b);
|
extern int atoib(char *s,int b);
|
||||||
extern int atoi(char *s);
|
extern int atoi(char *s);
|
||||||
extern char tolower(char c);
|
extern char tolower(char c);
|
||||||
@ -139,14 +142,29 @@ extern char toupper(char c);
|
|||||||
#define isascii(char) ( (unsigned)char < 0x80 )
|
#define isascii(char) ( (unsigned)char < 0x80 )
|
||||||
|
|
||||||
extern void* memchr(const void*,int,int);
|
extern void* memchr(const void*,int,int);
|
||||||
|
extern extern void* memchr(const void*,int,int);
|
||||||
extern int memcmp(const void*,const void*,int);
|
extern int memcmp(const void*,const void*,int);
|
||||||
extern void* memcpy(void*,const void*,int);
|
extern void* memcpy(void*,const void*,size_t);
|
||||||
|
void kmemset (void *dst, int val, size_t count);
|
||||||
|
|
||||||
|
extern void* memmove(void*,const void*,int);
|
||||||
|
extern void* memset(void*,int,int);
|
||||||
|
int memcmp(const void*,const void*,int);
|
||||||
|
extern void* memcpy(void*,const void*,size_t);
|
||||||
|
void kmemset (void *dst, int val, size_t count);
|
||||||
|
|
||||||
extern void* memmove(void*,const void*,int);
|
extern void* memmove(void*,const void*,int);
|
||||||
extern void* memset(void*,int,int);
|
extern void* memset(void*,int,int);
|
||||||
|
|
||||||
extern void *malloc(size_t size);
|
#endif
|
||||||
extern void* realloc(void* oldmem, size_t bytes);
|
|
||||||
extern void free(void *mem);
|
void debug_out_str(char* str);
|
||||||
|
|
||||||
|
void* _cdecl dlmalloc(size_t size);
|
||||||
|
void* _cdecl dlrealloc(void* oldmem, size_t bytes);
|
||||||
|
void _cdecl dlfree(void *mem);
|
||||||
|
|
||||||
|
//double pow_test(x,y);
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
@ -154,4 +172,6 @@ extern "C"
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif //kolibc_h
|
#endif //kolibc_h
|
||||||
|
|
||||||
|
|
||||||
|
@ -64,6 +64,8 @@ typedef struct
|
|||||||
|
|
||||||
void _stdcall InitHeap(int heap_size);
|
void _stdcall InitHeap(int heap_size);
|
||||||
void* _stdcall UserAlloc(int size);
|
void* _stdcall UserAlloc(int size);
|
||||||
|
int _stdcall UserFree(void* p);
|
||||||
|
|
||||||
void _stdcall GetNotify(DWORD *event);
|
void _stdcall GetNotify(DWORD *event);
|
||||||
|
|
||||||
//void _stdcall CreateThread(void *fn, char *p_stack);
|
//void _stdcall CreateThread(void *fn, char *p_stack);
|
||||||
@ -82,13 +84,16 @@ int _stdcall StopBuffer(DWORD hSrv, DWORD hBuff);
|
|||||||
void _stdcall debug_out_hex(DWORD val);
|
void _stdcall debug_out_hex(DWORD val);
|
||||||
void debug_out_str(char* str);
|
void debug_out_str(char* str);
|
||||||
|
|
||||||
int _stdcall get_fileinfo(char *name,FILEINFO* pinfo);
|
int _stdcall get_fileinfo(const char *name,FILEINFO* pinfo);
|
||||||
int _stdcall read_file (char *name,char*buff,int offset, int count,int *reads);
|
int _stdcall read_file (const char *name,char*buff,DWORD offset, DWORD count,DWORD *reads);
|
||||||
int _stdcall write_file(char *name,char*buff,int offset,int count,int *writes);
|
int _stdcall write_file(const char *name,char*buff,int offset,int count,int *writes);
|
||||||
|
|
||||||
//void exit();
|
//void exit();
|
||||||
int _cdecl get_key(void);
|
int _stdcall get_key(int *key);
|
||||||
|
int _stdcall remap_key(int key);
|
||||||
|
|
||||||
int _cdecl get_button_id();
|
int _cdecl get_button_id();
|
||||||
|
|
||||||
void delay(int val);
|
void delay(int val);
|
||||||
int wait_for_event(int time);
|
int wait_for_event(int time);
|
||||||
int wait_for_event_infinite();
|
int wait_for_event_infinite();
|
||||||
|
@ -1,91 +1,100 @@
|
|||||||
#include "kolibc.h"
|
|
||||||
|
|
||||||
|
//#include "kolibc.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
|
typedef unsigned int dword;
|
||||||
|
typedef unsigned int size_t;
|
||||||
|
|
||||||
|
|
||||||
#define PINUSE_BIT 1
|
#define PINUSE_BIT 1
|
||||||
#define CINUSE_BIT 2
|
#define CINUSE_BIT 2
|
||||||
#define INUSE_BITS 3
|
#define INUSE_BITS 3
|
||||||
|
|
||||||
|
|
||||||
struct m_seg
|
|
||||||
{
|
|
||||||
char* base; /* base address */
|
|
||||||
dword size; /* allocated size */
|
|
||||||
struct m_seg* next; /* ptr to next segment */
|
|
||||||
dword flags; /* mmap and extern flag */
|
|
||||||
};
|
|
||||||
|
|
||||||
struct m_chunk
|
|
||||||
{
|
|
||||||
dword prev_foot; /* Size of previous chunk (if free). */
|
|
||||||
dword head; /* Size and inuse bits. */
|
|
||||||
struct m_chunk* fd; /* double links -- used only if free. */
|
|
||||||
struct m_chunk* bk;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct m_chunk* mchunkptr;
|
|
||||||
|
|
||||||
struct t_chunk
|
|
||||||
{
|
|
||||||
/* The first four fields must be compatible with malloc_chunk */
|
|
||||||
dword prev_foot;
|
|
||||||
dword head;
|
|
||||||
|
|
||||||
struct t_chunk* fd;
|
|
||||||
struct t_chunk* bk;
|
|
||||||
|
|
||||||
struct t_chunk* child[2];
|
|
||||||
|
|
||||||
struct t_chunk* parent;
|
|
||||||
dword index;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct t_chunk* tchunkptr;
|
|
||||||
typedef struct t_chunk* tbinptr;
|
|
||||||
|
|
||||||
struct m_state
|
|
||||||
{
|
|
||||||
dword smallmap;
|
|
||||||
dword treemap;
|
|
||||||
// DWORD dvsize;
|
|
||||||
dword topsize;
|
|
||||||
char* least_addr;
|
|
||||||
// mchunkptr dv;
|
|
||||||
mchunkptr top;
|
|
||||||
dword magic;
|
|
||||||
struct m_chunk smallbins[32];
|
|
||||||
tbinptr treebins[32];
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif /* __cplusplus */
|
|
||||||
|
|
||||||
extern struct m_state ms;
|
|
||||||
|
|
||||||
void init_malloc(void* p);
|
|
||||||
void* mf_alloc(size_t);
|
struct m_seg
|
||||||
void mf_free(void*);
|
{
|
||||||
|
char* base; /* base address */
|
||||||
#ifdef __cplusplus
|
dword size; /* allocated size */
|
||||||
}
|
struct m_seg* next; /* ptr to next segment */
|
||||||
#endif /* __cplusplus */
|
dword flags; /* mmap and extern flag */
|
||||||
|
};
|
||||||
|
|
||||||
dword compute_tree_index(size_t s);
|
struct m_chunk
|
||||||
|
{
|
||||||
void insert_chunk(mchunkptr P, size_t S);
|
dword prev_foot; /* Size of previous chunk (if free). */
|
||||||
void insert_large_chunk(tchunkptr X, size_t S);
|
dword head; /* Size and inuse bits. */
|
||||||
|
struct m_chunk* fd; /* double links -- used only if free. */
|
||||||
void unlink_large_chunk(tchunkptr X);
|
struct m_chunk* bk;
|
||||||
|
};
|
||||||
//void replace_dv(mchunkptr P, size_t S);
|
|
||||||
static void* malloc_small(size_t nb);
|
typedef struct m_chunk* mchunkptr;
|
||||||
static void* malloc_large(size_t nb);
|
|
||||||
|
struct t_chunk
|
||||||
#define leftshift_for_tree_index(i) \
|
{
|
||||||
((i == 31)? 0 : (31 - (i >> 1) + 8 - 2))
|
/* The first four fields must be compatible with malloc_chunk */
|
||||||
|
dword prev_foot;
|
||||||
#define leftmost_child(t) ((t)->child[0] != 0? (t)->child[0] : (t)->child[1])
|
dword head;
|
||||||
#define chunk2mem(p) (void*)((char*)p + 8)
|
|
||||||
#define mem2chunk(mem) (mchunkptr)((char*)mem - 8)
|
struct t_chunk* fd;
|
||||||
#define chunk_plus_offset(p, s) ((mchunkptr)(((char*)(p)) + (s)))
|
struct t_chunk* bk;
|
||||||
|
|
||||||
|
struct t_chunk* child[2];
|
||||||
|
|
||||||
|
struct t_chunk* parent;
|
||||||
|
dword index;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct t_chunk* tchunkptr;
|
||||||
|
typedef struct t_chunk* tbinptr;
|
||||||
|
|
||||||
|
typedef struct m_state
|
||||||
|
{
|
||||||
|
dword smallmap;
|
||||||
|
dword treemap;
|
||||||
|
// DWORD dvsize;
|
||||||
|
dword topsize;
|
||||||
|
char* least_addr;
|
||||||
|
// mchunkptr dv;
|
||||||
|
mchunkptr top;
|
||||||
|
dword magic;
|
||||||
|
struct m_chunk smallbins[32];
|
||||||
|
tbinptr treebins[32];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
void _cdecl mf_init();
|
||||||
|
void* _cdecl dlmalloc(size_t);
|
||||||
|
void* _cdecl dlrealloc(void *,size_t);
|
||||||
|
void _cdecl dlfree(void*);
|
||||||
|
|
||||||
|
|
||||||
|
dword compute_tree_index(size_t s);
|
||||||
|
|
||||||
|
static void insert_chunk(mchunkptr P, size_t S);
|
||||||
|
static void insert_large_chunk(tchunkptr X, size_t S);
|
||||||
|
|
||||||
|
static void unlink_large_chunk(tchunkptr X);
|
||||||
|
|
||||||
|
//void replace_dv(mchunkptr P, size_t S);
|
||||||
|
static void* malloc_small(size_t nb);
|
||||||
|
static void* malloc_large(size_t nb);
|
||||||
|
|
||||||
|
#define leftshift_for_tree_index(i) \
|
||||||
|
((i == 31)? 0 : (31 - (i >> 1) + 8 - 2))
|
||||||
|
|
||||||
|
#define leftmost_child(t) ((t)->child[0] != 0? (t)->child[0] : (t)->child[1])
|
||||||
|
#define chunk2mem(p) (void*)((char*)p + 8)
|
||||||
|
#define mem2chunk(mem) (mchunkptr)((char*)mem - 8)
|
||||||
|
#define chunk_plus_offset(p, s) ((mchunkptr)(((char*)(p)) + (s)))
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,13 +6,13 @@ int fclose(FILE* file)
|
|||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
if((file->mode & FILE_OPEN_WRITE)||
|
// if((file->mode & FILE_OPEN_WRITE)||
|
||||||
(file->mode & FILE_OPEN_APPEND)||
|
// (file->mode & FILE_OPEN_APPEND)||
|
||||||
(file->mode & FILE_OPEN_PLUS))
|
// (file->mode & FILE_OPEN_PLUS))
|
||||||
err=write_buffer(file);
|
// err=write_buffer(file);
|
||||||
|
|
||||||
free(file->buffer);
|
// UserFree dlfree(file->buffer);
|
||||||
free(file->filename);
|
dlfree(file->filename);
|
||||||
free(file);
|
dlfree(file);
|
||||||
return err == 0 ? 0:EOF;
|
return err == 0 ? 0:EOF;
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ int fgetc(FILE* f)
|
|||||||
return EOF;
|
return EOF;
|
||||||
|
|
||||||
if(f->remain ==0)
|
if(f->remain ==0)
|
||||||
{ f->filepos+=4096;
|
{ f->filepos+=8192;
|
||||||
if(!fill_buff(f))
|
if(!fill_buff(f))
|
||||||
return EOF;
|
return EOF;
|
||||||
};
|
};
|
||||||
|
@ -1,98 +1,126 @@
|
|||||||
#include "kolibc.h"
|
|
||||||
#include "kolibri.h"
|
#include "kolibri.h"
|
||||||
|
#include <string.h>
|
||||||
|
#include <malloc.h>
|
||||||
|
#include "kolibc.h"
|
||||||
|
|
||||||
extern struct{int argc; char** argv;} __ARGS;
|
extern char *__appcwd;
|
||||||
|
extern int __appcwdlen;
|
||||||
|
|
||||||
char* getfullpath(const char* relpath){
|
char* getfullpath(char* path)
|
||||||
byte prev_is_slash=0;
|
{
|
||||||
|
int prev_is_slash=0;
|
||||||
int len=0, depth=0, i;
|
int len=0, depth=0, i;
|
||||||
char* buff;
|
char* buff;
|
||||||
buff = (char*)malloc(strlen(relpath));
|
char c;
|
||||||
strcpy(buff, relpath);
|
|
||||||
/**********
|
|
||||||
buff = (char*)malloc(strlen(__ARGS.argv[0]) + strlen(relpath));
|
|
||||||
|
|
||||||
if(*relpath == '/') buff[0] = '\0';
|
len= __appcwdlen;
|
||||||
else {
|
|
||||||
len = strrchr(__ARGS.argv[0], '/') - __ARGS.argv[0] + 1;
|
buff = (char*)malloc(len+strlen(path)+1);
|
||||||
strncpy(buff, __ARGS.argv[0], len);
|
strncpy(buff, __appcwd, __appcwdlen);
|
||||||
prev_is_slash = 1;
|
|
||||||
buff[len] = 0;
|
if(*path == '/')
|
||||||
for(i=0; buff[i]; i++)
|
{ buff[0] = '\0';
|
||||||
if(buff[i] == '/' && i < len-1) depth++;
|
len=0;
|
||||||
}
|
}
|
||||||
for (; *relpath; relpath++){
|
else
|
||||||
switch (*relpath){
|
{
|
||||||
case '/':
|
prev_is_slash = 1;
|
||||||
prev_is_slash = 1;
|
buff[len] = 0;
|
||||||
buff[len++] = '/';
|
for(i=0; buff[i]; i++)
|
||||||
break;
|
if(buff[i] == '/' && i < len-1) depth++;
|
||||||
case '.':
|
|
||||||
if(*(relpath+1) == '.' && *(relpath+2) == '/' && prev_is_slash){
|
|
||||||
if(!depth) return 0;
|
|
||||||
buff[len-1] = 0;
|
|
||||||
len = strrchr(buff, '/') + 1 - buff;
|
|
||||||
buff[len] = 0;
|
|
||||||
depth--;
|
|
||||||
relpath += 2;
|
|
||||||
} else {
|
|
||||||
depth++;
|
|
||||||
buff[len++] = '.';
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
if(prev_is_slash){
|
|
||||||
depth++;
|
|
||||||
prev_is_slash = 0;
|
|
||||||
}
|
|
||||||
buff[len++] = *relpath;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
while(c=*path++)
|
||||||
|
{
|
||||||
|
switch (c)
|
||||||
|
{
|
||||||
|
|
||||||
|
case '.':
|
||||||
|
if((*path == '.')&&
|
||||||
|
(*path+1)== '/')
|
||||||
|
{ if(!depth)
|
||||||
|
{ free(buff);
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
buff[len-1] = 0;
|
||||||
|
len = strrchr(buff, '/') + 1 - buff;
|
||||||
|
buff[len] = 0;
|
||||||
|
depth--;
|
||||||
|
path +=2;
|
||||||
|
prev_is_slash = 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(*path == '/')
|
||||||
|
{
|
||||||
|
path++;
|
||||||
|
prev_is_slash = 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
buff[len++] = c;
|
||||||
|
continue;
|
||||||
|
|
||||||
|
case '/':
|
||||||
|
prev_is_slash = 1;
|
||||||
|
buff[len++] = c;
|
||||||
|
continue;
|
||||||
|
|
||||||
|
default:
|
||||||
|
prev_is_slash = 0;
|
||||||
|
buff[len++] = c;
|
||||||
|
continue;
|
||||||
|
};
|
||||||
|
};
|
||||||
buff[len]= '\0';
|
buff[len]= '\0';
|
||||||
*************/
|
|
||||||
return buff;
|
return buff;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FILE* fopen(const char* filename, const char *mode)
|
FILE* fopen(const char* filename, const char *mode)
|
||||||
{
|
{
|
||||||
FILEINFO fileinfo;
|
FILEINFO fileinfo;
|
||||||
FILE* res;
|
FILE* res;
|
||||||
char *path;
|
char *path;
|
||||||
int err;
|
int err;
|
||||||
int imode;
|
int imode;
|
||||||
|
size_t bytes;
|
||||||
|
|
||||||
imode=0;
|
imode=0;
|
||||||
if (*mode=='r')
|
if (*mode=='r')
|
||||||
{
|
{
|
||||||
imode=FILE_OPEN_READ;
|
imode=FILE_OPEN_READ;
|
||||||
mode++;
|
mode++;
|
||||||
}else if (*mode=='w')
|
}
|
||||||
{
|
else
|
||||||
imode=FILE_OPEN_WRITE;
|
if (*mode=='w')
|
||||||
mode++;
|
{
|
||||||
}else if (*mode=='a')
|
imode=FILE_OPEN_WRITE;
|
||||||
{
|
mode++;
|
||||||
imode=FILE_OPEN_APPEND;
|
}
|
||||||
mode++;
|
else
|
||||||
}else
|
if (*mode=='a')
|
||||||
return 0;
|
{
|
||||||
if (*mode=='t')
|
imode=FILE_OPEN_APPEND;
|
||||||
{
|
mode++;
|
||||||
imode|=FILE_OPEN_TEXT;
|
}
|
||||||
mode++;
|
else
|
||||||
}else if (*mode=='b')
|
return 0;
|
||||||
mode++;
|
if (*mode=='t')
|
||||||
if (*mode=='+')
|
{
|
||||||
{
|
imode|=FILE_OPEN_TEXT;
|
||||||
imode|=FILE_OPEN_PLUS;
|
mode++;
|
||||||
mode++;
|
}
|
||||||
}
|
else
|
||||||
if (*mode!=0)
|
if (*mode=='b')
|
||||||
return 0;
|
mode++;
|
||||||
|
if (*mode=='+')
|
||||||
path= getfullpath(filename);
|
{
|
||||||
|
imode|=FILE_OPEN_PLUS;
|
||||||
|
mode++;
|
||||||
|
}
|
||||||
|
if (*mode!=0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
path= getfullpath(filename);
|
||||||
err=get_fileinfo(path, &fileinfo);
|
err=get_fileinfo(path, &fileinfo);
|
||||||
if(err)
|
if(err)
|
||||||
{
|
{
|
||||||
@ -107,40 +135,46 @@ FILE* fopen(const char* filename, const char *mode)
|
|||||||
}
|
}
|
||||||
fileinfo.size=0;
|
fileinfo.size=0;
|
||||||
};
|
};
|
||||||
|
|
||||||
res=(FILE*)malloc(sizeof(FILE));
|
res=(FILE*)malloc(sizeof(FILE));
|
||||||
if(!res)
|
if(!res)
|
||||||
{ free(path);
|
{ free(path);
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
res->buffer=malloc(4096);
|
res->buffer=UserAlloc(8192);
|
||||||
res->stream=res->buffer;
|
res->stream=res->buffer;
|
||||||
res->strpos=0;
|
res->strpos=0;
|
||||||
res->remain=4096;
|
res->remain=8192;
|
||||||
res->buffersize=4096;
|
res->buffersize=8192;
|
||||||
res->filesize=fileinfo.size;
|
res->filesize=fileinfo.size;
|
||||||
res->filename=path;
|
res->filename=path;
|
||||||
res->mode=imode;
|
res->mode=imode;
|
||||||
|
|
||||||
if (imode & FILE_OPEN_APPEND)
|
if (imode & FILE_OPEN_APPEND)
|
||||||
{ size_t bytes;
|
{ size_t bytes;
|
||||||
res->strpos= res->filesize & 4095;
|
res->strpos= res->filesize & 8191;
|
||||||
if (res->strpos) //not align
|
if (res->strpos) //not align
|
||||||
{
|
{
|
||||||
res->filepos=res->filesize & -4096; // align buffer
|
res->filepos=res->filesize & -8192; // align buffer
|
||||||
res->remain=4096-res->strpos;
|
res->remain=8192-res->strpos;
|
||||||
err=read_file(res->filename,res->buffer,
|
err=read_file(res->filename,res->buffer,
|
||||||
res->filesize,res->remain,&bytes);
|
res->filesize,res->remain,&bytes);
|
||||||
res->stream=res->buffer+res->strpos;
|
res->stream=res->buffer+res->strpos;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ size_t bytes;
|
{ size_t bytes;
|
||||||
|
|
||||||
err=read_file(res->filename,res->buffer,
|
err=read_file(res->filename,res->buffer,
|
||||||
0,4096,&bytes);
|
0,8192,&bytes);
|
||||||
res->filepos=0;
|
res->filepos=0;
|
||||||
};
|
};
|
||||||
return res;
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t FileSize(FILE *handle)
|
||||||
|
{
|
||||||
|
return handle->filesize;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ int fputc(int c,FILE* f)
|
|||||||
if(!f->remain)
|
if(!f->remain)
|
||||||
{ if (!write_buffer(f))
|
{ if (!write_buffer(f))
|
||||||
return EOF;
|
return EOF;
|
||||||
f->filepos+=4096;
|
f->filepos+=8192;
|
||||||
fill_buff(f);
|
fill_buff(f);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ int write_buffer(FILE *f)
|
|||||||
{ size_t bytes;
|
{ size_t bytes;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
bytes= f->filepos+4096 > f->filesize ? f->strpos:4096;
|
bytes= f->filepos+8192 > f->filesize ? f->strpos:8192;
|
||||||
err=write_file(f->filename,f->buffer,f->filepos,bytes,&bytes);
|
err=write_file(f->filename,f->buffer,f->filepos,bytes,&bytes);
|
||||||
if(err)
|
if(err)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1,50 +1,59 @@
|
|||||||
#include "kolibc.h"
|
|
||||||
#include "kolibri.h"
|
#include "kolibri.h"
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "kolibc.h"
|
||||||
|
|
||||||
int fill_buff(FILE* f);
|
int fill_buff(FILE* f);
|
||||||
|
|
||||||
int fread(void* dst,size_t size,size_t count,FILE* f)
|
int fread(void* dst,size_t size,size_t count,FILE* f)
|
||||||
{ size_t req;
|
{ size_t req;
|
||||||
size_t cnt;
|
size_t cnt;
|
||||||
char *p = dst;
|
char *p;
|
||||||
if(!((f->mode & FILE_OPEN_READ)|(f->mode & FILE_OPEN_PLUS)))
|
// if(!((f->mode & FILE_OPEN_READ)|(f->mode & FILE_OPEN_PLUS)))
|
||||||
return 0;
|
// return 0;
|
||||||
req=count*size;
|
req=count*size;
|
||||||
|
p= (char*)dst;
|
||||||
|
|
||||||
if (req+f->filepos+f->strpos > f->filesize)
|
if (req+f->filepos+f->strpos > f->filesize)
|
||||||
req=f->filesize-f->filepos-f->strpos;
|
req=f->filesize-f->filepos-f->strpos;
|
||||||
count=0;
|
count=0;
|
||||||
while(req)
|
while(req)
|
||||||
{
|
{
|
||||||
if (f->remain)
|
if (f->remain)
|
||||||
{ cnt= req > f->remain ? f->remain : req;
|
{ cnt= (req > f->remain) ? f->remain : req;
|
||||||
memcpy(p,f->stream,cnt);
|
memcpy(p,f->stream,cnt);
|
||||||
p+=cnt;
|
p+=cnt;
|
||||||
f->stream+=cnt;
|
f->stream+=cnt;
|
||||||
f->strpos+=cnt;
|
f->strpos+=cnt;
|
||||||
f->remain-=cnt;
|
f->remain-=cnt;
|
||||||
count+=cnt;
|
count+=cnt;
|
||||||
req-=cnt;
|
req-=cnt;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
f->filepos+=4096;
|
f->filepos+=8192;
|
||||||
if(!fill_buff(f)) //eof or error
|
if(!fill_buff(f))
|
||||||
break;
|
{ printf("error reading file %d=",f->filepos); //eof or error
|
||||||
}
|
break;
|
||||||
|
}
|
||||||
|
};
|
||||||
};
|
};
|
||||||
return count/size;
|
return count/size;
|
||||||
}
|
}
|
||||||
|
|
||||||
int fill_buff(FILE* f)
|
int fill_buff(FILE* f)
|
||||||
{ int err;
|
{ int err;
|
||||||
size_t bytes;
|
size_t bytes;
|
||||||
|
|
||||||
err=read_file(f->filename,f->buffer,f->filepos,
|
err=read_file(f->filename,f->buffer,f->filepos,
|
||||||
4096,&bytes);
|
8192,&bytes);
|
||||||
if (err) return 0;
|
if(bytes == -1)
|
||||||
if(!bytes) return 0;
|
return 0;
|
||||||
f->stream = f->buffer;
|
// if(!bytes) return 0;
|
||||||
f->remain = 4096;
|
f->stream = f->buffer;
|
||||||
f->strpos=0;
|
f->remain = 8192;
|
||||||
|
f->strpos=0;
|
||||||
return bytes;
|
return bytes;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
|
|
||||||
|
//#include <stdio.h>
|
||||||
#include "kolibc.h"
|
#include "kolibc.h"
|
||||||
|
|
||||||
int fseek(FILE* file,long offset,int origin)
|
int fseek(FILE* file,long offset,int origin)
|
||||||
{
|
{
|
||||||
if (origin==SEEK_CUR)
|
if (origin==SEEK_CUR)
|
||||||
offset+=file->filepos;
|
offset+=file->filepos+file->strpos;
|
||||||
else if (origin==SEEK_END)
|
else if (origin==SEEK_END)
|
||||||
offset+=file->filesize;
|
offset+=file->filesize;
|
||||||
else if (origin!=SEEK_SET)
|
else if (origin!=SEEK_SET)
|
||||||
return EOF;
|
return EOF;
|
||||||
return fsetpos(file,&offset);
|
|
||||||
}
|
return fsetpos(file,&offset);
|
||||||
|
}
|
||||||
|
@ -1,23 +1,23 @@
|
|||||||
#include "kolibc.h"
|
|
||||||
#include "kolibri.h"
|
#include "kolibri.h"
|
||||||
|
#include "kolibc.h"
|
||||||
|
|
||||||
int fsetpos(FILE* f,const fpos_t * pos)
|
int fsetpos(FILE* f,const fpos_t * pos)
|
||||||
{ int err;
|
{ int err;
|
||||||
size_t bytes;
|
size_t bytes;
|
||||||
|
|
||||||
if (*pos>=0)
|
bytes = *pos;
|
||||||
{
|
|
||||||
bytes= *pos & -4096;
|
bytes= *pos & -8192;
|
||||||
err=read_file(f->filename,f->buffer,bytes,
|
err=read_file(f->filename,f->buffer,bytes,
|
||||||
4096,&bytes);
|
8192,&bytes);
|
||||||
if (err) return EOF;
|
if(bytes == -1)
|
||||||
if(!bytes) return EOF;
|
return EOF;
|
||||||
f->filepos= *pos & -4096;
|
|
||||||
f->strpos = *pos & 4095;
|
f->filepos= *pos & -8192;
|
||||||
f->remain = 4096-f->strpos;
|
f->strpos = *pos & 8191;
|
||||||
f->stream = f->buffer+f->strpos;
|
f->remain = 8192-f->strpos;
|
||||||
return 0;
|
f->stream = f->buffer+f->strpos;
|
||||||
}
|
return 0;
|
||||||
else
|
}
|
||||||
return EOF;
|
|
||||||
}
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#include "kolibc.h"
|
#include "kolibc.h"
|
||||||
|
|
||||||
long ftell(FILE* file)
|
long ftell(FILE* file)
|
||||||
{
|
{
|
||||||
return file->filepos+file->strpos;
|
return file->filepos+file->strpos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
|
||||||
|
#include <string.h>
|
||||||
#include "kolibc.h"
|
#include "kolibc.h"
|
||||||
|
|
||||||
int write_buffer(FILE *f);
|
int write_buffer(FILE *f);
|
||||||
@ -9,30 +11,34 @@ int fwrite(const void* src,size_t size,size_t count,FILE* f)
|
|||||||
size_t cnt;
|
size_t cnt;
|
||||||
|
|
||||||
//append mode unsupported
|
//append mode unsupported
|
||||||
|
|
||||||
|
/************
|
||||||
if(!((f->mode & FILE_OPEN_WRITE)|(f->mode & FILE_OPEN_PLUS)))
|
if(!((f->mode & FILE_OPEN_WRITE)|(f->mode & FILE_OPEN_PLUS)))
|
||||||
return EOF;
|
return EOF;
|
||||||
|
|
||||||
req=count*size;
|
req=count*size;
|
||||||
count=0;
|
count=0;
|
||||||
while(req)
|
while(req)
|
||||||
{
|
{
|
||||||
if(f->remain)
|
if(f->remain)
|
||||||
{ cnt= req > f->remain ? f->remain : req;
|
{ cnt= req > f->remain ? f->remain : req;
|
||||||
memcpy(f->stream,src,cnt);
|
memcpy(f->stream,src,cnt);
|
||||||
f->stream+=cnt;
|
f->stream+=cnt;
|
||||||
f->strpos+=cnt;
|
f->strpos+=cnt;
|
||||||
f->remain-=cnt;
|
f->remain-=cnt;
|
||||||
count+=cnt;
|
count+=cnt;
|
||||||
req-=cnt;
|
req-=cnt;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(!write_buffer(f))
|
// if(!write_buffer(f))
|
||||||
break;
|
// break;
|
||||||
f->filepos+=4096;
|
f->filepos+=8192;
|
||||||
fill_buff(f);
|
fill_buff(f);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
***********/
|
||||||
|
return count;
|
||||||
|
|
||||||
return count/size;
|
return count/size;
|
||||||
};
|
};
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
#include "kolibc.h"
|
|
||||||
|
|
||||||
int fill_buff(FILE* f);
|
#include "kolibc.h"
|
||||||
|
|
||||||
void rewind(FILE* file)
|
void rewind(FILE* file)
|
||||||
{
|
{
|
||||||
file->filepos=0;
|
file->filepos=0;
|
||||||
fill_buff(file);
|
file->stream=file->buffer;
|
||||||
}
|
file->strpos=0;
|
||||||
|
file->remain=8192;
|
||||||
|
|
||||||
|
fill_buff(file);
|
||||||
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -72,6 +72,7 @@ static char *roundl(long double fract, int *expv, char *start, char *end,
|
|||||||
static char *exponentl(char *p, int expv, unsigned char fmtch);
|
static char *exponentl(char *p, int expv, unsigned char fmtch);
|
||||||
|
|
||||||
static char NULL_REP[] = "(null)";
|
static char NULL_REP[] = "(null)";
|
||||||
|
static char buf[BUF]; /* space for %c, %[diouxX], %[eEfgG] */
|
||||||
|
|
||||||
int _doprnt(char *dest, size_t maxlen, const char *fmt0, va_list argp)
|
int _doprnt(char *dest, size_t maxlen, const char *fmt0, va_list argp)
|
||||||
{
|
{
|
||||||
@ -95,11 +96,10 @@ int _doprnt(char *dest, size_t maxlen, const char *fmt0, va_list argp)
|
|||||||
char sign; /* sign prefix (' ', '+', '-', or \0) */
|
char sign; /* sign prefix (' ', '+', '-', or \0) */
|
||||||
char softsign; /* temporary negative sign for floats */
|
char softsign; /* temporary negative sign for floats */
|
||||||
const char *digs; /* digits for [diouxX] conversion */
|
const char *digs; /* digits for [diouxX] conversion */
|
||||||
char buf[BUF]; /* space for %c, %[diouxX], %[eEfgG] */
|
|
||||||
char *p;
|
char *p;
|
||||||
|
digs = "0123456789abcdef";
|
||||||
|
|
||||||
fmt = fmt0;
|
fmt = fmt0;
|
||||||
digs = "0123456789abcdef";
|
|
||||||
p = dest;
|
p = dest;
|
||||||
|
|
||||||
for (cnt = 0;; ++fmt)
|
for (cnt = 0;; ++fmt)
|
||||||
@ -752,5 +752,18 @@ static int isspeciall(long double d, char *bufp)
|
|||||||
return(3);
|
return(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static unsigned int strlen(const char* string)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
i=0;
|
||||||
|
while (*string++) i++;
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char* strcpy(char* dst,const char* src)
|
||||||
|
{
|
||||||
|
char* res= dst;
|
||||||
|
while(*dst++ = *src++) ;
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#include "string.h"
|
#include "string.h"
|
||||||
|
|
||||||
|
#if 0
|
||||||
void* memchr(const void* buf,int c,int count)
|
void* memchr(const void* buf,int c,int count)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@ -11,3 +12,48 @@ void* memchr(const void* buf,int c,int count)
|
|||||||
return (void*)0;
|
return (void*)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void *memset (void *dst, int val, size_t count)
|
||||||
|
{ void *start = dst;
|
||||||
|
|
||||||
|
while (count--)
|
||||||
|
{
|
||||||
|
*(char *)dst = (char)val;
|
||||||
|
dst = (char *)dst + 1;
|
||||||
|
}
|
||||||
|
return start;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int strcmp (const char * src, const char * dst)
|
||||||
|
{
|
||||||
|
int ret = 0 ;
|
||||||
|
|
||||||
|
while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
|
||||||
|
++src, ++dst;
|
||||||
|
|
||||||
|
if ( ret < 0 )
|
||||||
|
ret = -1 ;
|
||||||
|
else if ( ret > 0 )
|
||||||
|
ret = 1 ;
|
||||||
|
return( ret );
|
||||||
|
}
|
||||||
|
|
||||||
|
char *strcat (char * dst, const char * src)
|
||||||
|
{
|
||||||
|
char * cp = dst;
|
||||||
|
|
||||||
|
while( *cp )
|
||||||
|
cp++;
|
||||||
|
|
||||||
|
while( *cp++ = *src++ ) ;
|
||||||
|
|
||||||
|
return dst ;
|
||||||
|
}
|
||||||
|
|
||||||
|
int abs (int number )
|
||||||
|
{
|
||||||
|
return( number>=0 ? number : -number );
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
@ -1,4 +1,4 @@
|
|||||||
int strlen(const char* string)
|
unsigned int strlen(const char* string)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
i=0;
|
i=0;
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
#include "ctype.h"
|
#include "kolibc.h"
|
||||||
#include "string.h"
|
|
||||||
|
|
||||||
char * strupr(char *_s)
|
char * strupr(char *_s)
|
||||||
{
|
{
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,55 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,58 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,51 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,67 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,65 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,47 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,59 +0,0 @@
|
|||||||
// 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 sparc
|
|
||||||
#define __BIG_ENDIAN__
|
|
||||||
#endif
|
|
||||||
#ifdef __BEOS__
|
|
||||||
#include <byteorder.h>
|
|
||||||
#if B_HOST_IS_BENDIAN
|
|
||||||
#define __BIG_ENDIAN__
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#ifdef __BIG_ENDIAN__
|
|
||||||
#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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,41 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,289 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
@ -1,295 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,82 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,51 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,48 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,645 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,44 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,72 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,62 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,490 +0,0 @@
|
|||||||
// 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 floorpic;
|
|
||||||
short ceilingpic;
|
|
||||||
short lightlevel;
|
|
||||||
short special;
|
|
||||||
short 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.
|
|
||||||
boolean 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,115 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,53 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,172 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,87 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,44 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,48 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,138 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,76 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,109 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,297 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
@ -1,226 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,86 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,98 +0,0 @@
|
|||||||
// 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__
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef PI
|
|
||||||
#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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,119 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,89 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,54 +0,0 @@
|
|||||||
// 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:$
|
|
||||||
//
|
|
||||||
//-----------------------------------------------------------------------------
|
|
@ -1,86 +0,0 @@
|
|||||||
// 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