XenevaOS
Loading...
Searching...
No Matches
d_think.h
Go to the documentation of this file.
1//
2// Copyright(C) 1993-1996 Id Software, Inc.
3// Copyright(C) 2005-2014 Simon Howard
4//
5// This program is free software; you can redistribute it and/or
6// modify it under the terms of the GNU General Public License
7// as published by the Free Software Foundation; either version 2
8// of the License, or (at your option) any later version.
9//
10// This program is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU General Public License for more details.
14//
15// DESCRIPTION:
16// MapObj data. Map Objects or mobjs are actors, entities,
17// thinker, take-your-pick... anything that moves, acts, or
18// suffers state changes of more or less violent nature.
19//
20
21
22#ifndef __D_THINK__
23#define __D_THINK__
24
25
26
27
28
29//
30// Experimental stuff.
31// To compile this as "ANSI C with classes"
32// we will need to handle the various
33// action functions cleanly.
34//
35typedef void (*actionf_v)();
36typedef void (*actionf_p1)( void* );
37typedef void (*actionf_p2)( void*, void* );
38
46
47
48
49
50
51// Historically, "think_t" is yet another
52// function pointer to a routine to handle
53// an actor.
55
56
57// Doubly linked list of actors.
58typedef struct thinker_s
59{
60 struct thinker_s* prev;
61 struct thinker_s* next;
63
65
66
67
68#endif
void(* actionf_v)()
Definition d_think.h:35
actionf_t think_t
Definition d_think.h:54
struct thinker_s thinker_t
void(* actionf_p2)(void *, void *)
Definition d_think.h:37
void(* actionf_p1)(void *)
Definition d_think.h:36
Definition d_think.h:59
struct thinker_s * next
Definition d_think.h:61
think_t function
Definition d_think.h:62
struct thinker_s * prev
Definition d_think.h:60
Definition d_think.h:40
actionf_p1 acp1
Definition d_think.h:42
actionf_v acv
Definition d_think.h:41
actionf_p2 acp2
Definition d_think.h:43