1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- // 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:$
- //
- //-----------------------------------------------------------------------------
|