1 /* Emacs style mode select -*- C++ -*-
2 *-----------------------------------------------------------------------------
5 * PrBoom a Doom port merged with LxDoom and LSDLDoom
6 * based on BOOM, a modified and improved DOOM engine
7 * Copyright (C) 1999 by
8 * id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman
9 * Copyright (C) 1999-2000 by
10 * Jess Haas, Nicolas Kalkhof, Colin Phipps, Florian Schulze
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, write to the Free Software
24 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
28 * Thing frame/state LUT,
29 * generated by multigen utilitiy.
30 * This one is the original DOOM version, preserved.
32 *-----------------------------------------------------------------------------*/
37 // Needed for action function pointer handling.
41 /********************************************************************
42 * Sprite name enumeration - must match info.c *
43 ********************************************************************/
184 SPR_TNT1
, /* add invisible sprite phares 3/8/98 */
187 SPR_DOGS
, /* killough 7/19/98: Marine's best friend :) */
192 typedef unsigned spritenum_t
;
194 /********************************************************************
195 * States (frames) enumeration -- must match info.c *
196 ********************************************************************/
1167 S_TNT1
, /* add state for invisible sprite phares 3/8/98 */
1169 S_GRENADE
, /* killough 8/9/98: grenade launcher */
1170 S_DETONATE
, /* killough 8/9/98: detonation of objects */
1175 S_DOGS_STND
, /* killough 7/19/98: Marine's best friend :) */
1204 S_MUSHROOM
, /* killough 10/98: mushroom explosion effect */
1206 NUMSTATES
/* Counter of how many there are */
1209 typedef unsigned statenum_t
;
1211 /********************************************************************
1212 * Definition of the state (frames) structure *
1213 ********************************************************************/
1217 spritenum_t sprite
; /* sprite number to show */
1218 long frame
; /* which frame/subframe of the sprite is shown */
1219 long tics
; /* number of gametics this frame should last */
1220 actionf_t action
; /* code pointer to function for action if any */
1221 statenum_t nextstate
; /* linked list pointer to next state or zero */
1222 long misc1
, misc2
; /* apparently never used in DOOM */
1225 /* these are in info.c */
1226 extern state_t states
[NUMSTATES
];
1227 extern const char *sprnames
[NUMSPRITES
+1]; /* 1/17/98 killough - CPhipps - const */
1229 /********************************************************************
1230 * Thing enumeration -- must match info.c *
1231 ********************************************************************
1232 * Note that many of these are generically named for the ornamentals
1373 MT_PUSH
, /* controls push source - phares */
1374 MT_PULL
, /* controls pull source - phares 3/20/98 */
1377 MT_DOGS
, /* killough 7/19/98: Marine's best friend */
1380 /* proff 11/22/98: Andy Baker's stealth monsters (next 12)
1381 * cph - moved below the MBF stuff, no need to displace them */
1397 typedef unsigned mobjtype_t
;
1399 /********************************************************************
1400 * Definition of the Thing structure
1401 ********************************************************************/
1402 /* Note that these are only indices to the state, sound, etc. arrays
1403 * and not actual pointers. Most can be set to zero if the action or
1404 * sound doesn't apply (like lamps generally don't attack or whistle).
1409 int doomednum
; /* Thing number used in id's editor, and now
1410 probably by every other editor too */
1411 int spawnstate
; /* The state (frame) index when this Thing is
1413 int spawnhealth
; /* The initial hit points for this Thing */
1414 int seestate
; /* The state when it sees you or wakes up */
1415 int seesound
; /* The sound it makes when waking */
1416 int reactiontime
; /* How many tics it waits after it wakes up
1417 before it will start to attack, in normal
1418 skills (halved for nightmare) */
1419 int attacksound
; /* The sound it makes when it attacks */
1420 int painstate
; /* The state to indicate pain */
1421 int painchance
; /* A number that is checked against a random
1422 number 0-255 to see if the Thing is supposed
1423 to go to its painstate or not. Note this
1424 has absolutely nothing to do with the chance
1425 it will get hurt, just the chance of it
1426 reacting visibly. */
1427 int painsound
; /* The sound it emits when it feels pain */
1428 int meleestate
; /* Melee==close attack */
1429 int missilestate
; /* What states to use when it's in the air, if
1430 in fact it is ever used as a missile */
1431 int deathstate
; /* What state begins the death sequence */
1432 int xdeathstate
; /* What state begins the horrible death sequence
1433 like when a rocket takes out a trooper */
1434 int deathsound
; /* The death sound. See also A_Scream() in
1435 p_enemy.c for some tweaking that goes on
1436 for certain monsters */
1437 int speed
; /* How fast it moves. Too fast and it can miss
1439 int radius
; /* An often incorrect radius */
1440 int height
; /* An often incorrect height, used only to see
1441 if a monster can enter a sector */
1442 int mass
; /* How much an impact will move it. Cacodemons
1443 seem to retreat when shot because they have
1444 very little mass and are moved by impact */
1445 int damage
; /* If this is a missile, how much does it hurt? */
1446 int activesound
; /* What sound it makes wandering around, once
1447 in a while. Chance is 3/256 it will. */
1448 uint_64_t flags
; /* Bit masks for lots of things. See p_mobj.h */
1449 int raisestate
; /* The first state for an Archvile or respawn
1450 resurrection. Zero means it won't come
1454 /* See p_mobj_h for addition more technical info */
1455 extern mobjinfo_t mobjinfo
[NUMMOBJTYPES
];