mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-18 18:41:57 +00:00
55 lines
1.4 KiB
C
55 lines
1.4 KiB
C
|
// SONIC ROBO BLAST 2
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
||
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
||
|
// Copyright (C) 1999-2014 by Sonic Team Junior.
|
||
|
//
|
||
|
// This program is free software distributed under the
|
||
|
// terms of the GNU General Public License, version 2.
|
||
|
// See the 'LICENSE' file for more details.
|
||
|
//-----------------------------------------------------------------------------
|
||
|
/// \file d_think.h
|
||
|
/// \brief 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 union
|
||
|
{
|
||
|
actionf_v acv;
|
||
|
actionf_p1 acp1;
|
||
|
} 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;
|
||
|
|
||
|
// killough 11/98: count of how many other objects reference
|
||
|
// this one using pointers. Used for garbage collection.
|
||
|
INT32 references;
|
||
|
} thinker_t;
|
||
|
|
||
|
#endif
|