0,0 → 1,79 |
// 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:$ |
// |
//----------------------------------------------------------------------------- |