1 /* Emacs style mode select -*- C++ -*- 2 *----------------------------------------------------------------------------- 3 * 4 * 5 * PrBoom: a Doom port merged with LxDoom and LSDLDoom 6 * based on BOOM, a modified and improved DOOM engine 7 * Copyright (C) 1999 by 8 * id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman 9 * Copyright (C) 1999-2000,2002 by 10 * Jess Haas, Nicolas Kalkhof, Colin Phipps, Florian Schulze 11 * Copyright 2005, 2006 by 12 * Florian Schulze, Colin Phipps, Neil Stevens, Andrey Budko 13 * 14 * This program is free software; you can redistribute it and/or 15 * modify it under the terms of the GNU General Public License 16 * as published by the Free Software Foundation; either version 2 17 * of the License, or (at your option) any later version. 18 * 19 * This program is distributed in the hope that it will be useful, 20 * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 * GNU General Public License for more details. 23 * 24 * You should have received a copy of the GNU General Public License 25 * along with this program; if not, write to the Free Software 26 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 27 * 02111-1307, USA. 28 * 29 * DESCRIPTION: 30 * Core thinker processing prototypes. 31 *-----------------------------------------------------------------------------*/ 32 33 #ifndef __P_TICK__ 34 #define __P_TICK__ 35 36 #include "d_think.h" 37 38 /* Called by C_Ticker, can call G_PlayerExited. 39 * Carries out all thinking of monsters and players. */ 40 41 void P_Ticker(void); 42 43 void P_InitThinkers(void); 44 void P_AddThinker(thinker_t *thinker); 45 void P_RemoveThinker(thinker_t *thinker); 46 void P_RemoveThinkerDelayed(thinker_t *thinker); // killough 4/25/98 47 48 void P_UpdateThinker(thinker_t *thinker); // killough 8/29/98 49 50 void P_SetTarget(mobj_t **mo, mobj_t *target); // killough 11/98 51 52 /* killough 8/29/98: threads of thinkers, for more efficient searches 53 * cph 2002/01/13: for consistency with the main thinker list, keep objects 54 * pending deletion on a class list too 55 */ 56 typedef enum { 57 th_delete, 58 th_misc, 59 th_friends, 60 th_enemies, 61 NUMTHCLASS, 62 th_all = NUMTHCLASS, /* For P_NextThinker, indicates "any class" */ 63 } th_class; 64 65 extern thinker_t thinkerclasscap[]; 66 #define thinkercap thinkerclasscap[th_all] 67 68 /* cph 2002/01/13 - iterator for thinker lists */ 69 thinker_t* P_NextThinker(thinker_t*,th_class); 70 71 #endif 72