home *** CD-ROM | disk | FTP | other *** search
- /* 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:$ */
- /* */
- /* ----------------------------------------------------------------------------- */
-