Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. // Emacs style mode select   -*- C++ -*-
  2. //-----------------------------------------------------------------------------
  3. //
  4. // $Id:$
  5. //
  6. // Copyright (C) 1993-1996 by id Software, Inc.
  7. //
  8. // This source is available for distribution and/or modification
  9. // only under the terms of the DOOM Source Code License as
  10. // published by id Software. All rights reserved.
  11. //
  12. // The source is distributed in the hope that it will be useful,
  13. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. // FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
  15. // for more details.
  16. //
  17. // DESCRIPTION:
  18. //  MapObj data. Map Objects or mobjs are actors, entities,
  19. //  thinker, take-your-pick... anything that moves, acts, or
  20. //  suffers state changes of more or less violent nature.
  21. //
  22. //-----------------------------------------------------------------------------
  23.  
  24.  
  25. #ifndef __D_THINK__
  26. #define __D_THINK__
  27.  
  28.  
  29. #ifdef __GNUG__
  30. #pragma interface
  31. #endif
  32.  
  33.  
  34.  
  35. //
  36. // Experimental stuff.
  37. // To compile this as "ANSI C with classes"
  38. //  we will need to handle the various
  39. //  action functions cleanly.
  40. //
  41. typedef  void (*actionf_v)();
  42. typedef  void (*actionf_p1)( void* );
  43. typedef  void (*actionf_p2)( void*, void* );
  44.  
  45. typedef union
  46. {
  47.   actionf_p1    acp1;
  48.   actionf_v     acv;
  49.   actionf_p2    acp2;
  50.  
  51. } actionf_t;
  52.  
  53.  
  54.  
  55.  
  56.  
  57. // Historically, "think_t" is yet another
  58. //  function pointer to a routine to handle
  59. //  an actor.
  60. typedef actionf_t  think_t;
  61.  
  62.  
  63. // Doubly linked list of actors.
  64. typedef struct thinker_s
  65. {
  66.     struct thinker_s*   prev;
  67.     struct thinker_s*   next;
  68.     think_t             function;
  69.    
  70. } thinker_t;
  71.  
  72.  
  73.  
  74. #endif
  75. //-----------------------------------------------------------------------------
  76. //
  77. // $Log:$
  78. //
  79. //-----------------------------------------------------------------------------
  80.