summaryrefslogtreecommitdiff
path: root/src/strife/p_mobj.h
diff options
context:
space:
mode:
authorSimon Howard2010-02-01 19:11:06 +0000
committerSimon Howard2010-02-01 19:11:06 +0000
commitde6f6af80635f0f20d7cb75722dc04b00dd2d746 (patch)
tree364dcb86f2c22411a720447bfa21c4de9191ff6f /src/strife/p_mobj.h
parent28f8d3e9b5794e188ccff1cc68c62be9001985b7 (diff)
downloadchocolate-doom-de6f6af80635f0f20d7cb75722dc04b00dd2d746.tar.gz
chocolate-doom-de6f6af80635f0f20d7cb75722dc04b00dd2d746.tar.bz2
chocolate-doom-de6f6af80635f0f20d7cb75722dc04b00dd2d746.zip
Remove improperly-created strife directory.
Subversion-branch: /branches/strife-branch Subversion-revision: 1839
Diffstat (limited to 'src/strife/p_mobj.h')
-rw-r--r--src/strife/p_mobj.h292
1 files changed, 0 insertions, 292 deletions
diff --git a/src/strife/p_mobj.h b/src/strife/p_mobj.h
deleted file mode 100644
index 145b009b..00000000
--- a/src/strife/p_mobj.h
+++ /dev/null
@@ -1,292 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 1993-1996 Id Software, Inc.
-// Copyright(C) 2005 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-// 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"
-
-
-
-
-
-
-//
-// 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