home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1999 Spring / macformat-077.iso / Shareware Plus / Development / SpriteWorld 2.2 / SpriteWorld files / Headers / SpriteLayer.h < prev    next >
Encoding:
Text File  |  1999-01-04  |  3.3 KB  |  131 lines  |  [TEXT/CWIE]

  1. ///--------------------------------------------------------------------------------------
  2. //    SpriteLayer.h
  3. //
  4. //    Portions are copyright: © 1991-94 Tony Myles, All rights reserved worldwide.
  5. //
  6. //    Description:    constants, structures, and prototypes for sprite layers
  7. ///--------------------------------------------------------------------------------------
  8.  
  9.  
  10. #ifndef __SPRITELAYER__
  11. #define __SPRITELAYER__
  12.  
  13.  
  14. #ifndef __SWCOMMON__
  15. #include "SWCommonHeaders.h"
  16. #endif
  17.  
  18. #ifndef __SPRITE__
  19. #include "Sprite.h"
  20. #endif
  21.  
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25.  
  26. #if PRAGMA_ALIGN_SUPPORTED
  27. #pragma options align=mac68k
  28. #endif
  29.  
  30. ///--------------------------------------------------------------------------------------
  31. //    sprite layer type definitions - commented out, since they're already defined in Sprite.h
  32. ///--------------------------------------------------------------------------------------
  33.  
  34. //typedef struct SpriteLayerRec SpriteLayerRec;
  35. //typedef SpriteLayerRec *SpriteLayerPtr, **SpriteLayerHdl;
  36.  
  37.  
  38. ///--------------------------------------------------------------------------------------
  39. //    sprite layer data structure
  40. ///--------------------------------------------------------------------------------------
  41.  
  42. struct SpriteLayerRec
  43. {
  44.     SpriteLayerPtr nextSpriteLayerP;    // next sprite layer
  45.     SpriteLayerPtr prevSpriteLayerP;    // previous sprite layer
  46.  
  47.     SpritePtr headSpriteP;                // head of sprite linked list
  48.     SpritePtr tailSpriteP;                // tail of sprite linked list
  49.  
  50.     long    userData;                    // reserved for user
  51.     short    tileLayer;                    // the tile layer this sprite layer is under
  52.     Boolean    isPaused;                // does this layer get processed by SWProcessSpriteWorld?
  53. };
  54.  
  55.  
  56. ///--------------------------------------------------------------------------------------
  57. //    sprite layer function prototypes
  58. ///--------------------------------------------------------------------------------------
  59.  
  60. SW_FUNC OSErr SWCreateSpriteLayer(
  61.     SpriteLayerPtr *spriteLayerP);
  62.  
  63. SW_FUNC void SWDisposeSpriteLayer(
  64.     SpriteLayerPtr *spriteLayerPP);
  65.  
  66. SW_FUNC OSErr SWAddSprite(
  67.     SpriteLayerPtr spriteLayerP,
  68.     SpritePtr newSpriteP);
  69.  
  70. SW_FUNC OSErr SWRemoveSprite(
  71.     SpritePtr oldSpriteP);
  72.  
  73. SW_FUNC void SWRemoveAllSpritesFromLayer(
  74.     SpriteLayerPtr srcSpriteLayerP);
  75.  
  76. SW_FUNC void SWDisposeAllSpritesInLayer(
  77.     SpriteLayerPtr spriteLayerP);
  78.  
  79. SW_FUNC short SWCountNumSpritesInLayer(
  80.     SpriteLayerPtr spriteLayerP);
  81.  
  82. SW_FUNC OSErr SWSwapSprite(
  83.     SpritePtr srcSpriteP,
  84.     SpritePtr dstSpriteP);
  85.  
  86. SW_FUNC OSErr SWInsertSpriteAfterSprite(
  87.     SpritePtr newSpriteP,
  88.     SpritePtr dstSpriteP);
  89.  
  90. SW_FUNC OSErr SWInsertSpriteBeforeSprite(
  91.     SpritePtr newSpriteP,
  92.     SpritePtr dstSpriteP);
  93.  
  94. SW_FUNC SpritePtr SWGetNextSprite(
  95.     SpriteLayerPtr spriteLayerP,
  96.     SpritePtr curSpriteP);
  97.  
  98. SW_FUNC void SWLockSpriteLayer(
  99.     SpriteLayerPtr spriteLayerP);
  100.     
  101. SW_FUNC void SWUnlockSpriteLayer(
  102.     SpriteLayerPtr spriteLayerP);
  103.  
  104. SW_FUNC void SWMoveSpriteLayer(
  105.     SpriteLayerPtr spriteLayerP);
  106.  
  107. SW_FUNC void SWCollideSpriteLayer(
  108.     SpriteWorldPtr    spriteWorldP,
  109.     SpriteLayerPtr srcSpriteLayerP,
  110.     SpriteLayerPtr dstSpriteLayerP);
  111.  
  112. SW_FUNC void SWPauseSpriteLayer(
  113.     SpriteLayerPtr    spriteLayerP);
  114.  
  115. SW_FUNC void SWUnpauseSpriteLayer(
  116.     SpriteLayerPtr    spriteLayerP);
  117.  
  118. SW_FUNC SpritePtr SWFindSpriteByPoint(
  119.     SpriteLayerPtr spriteLayerP,
  120.     SpritePtr startSpriteP,
  121.     Point testPoint);
  122.  
  123. #if PRAGMA_ALIGN_SUPPORTED
  124. #pragma options align=reset
  125. #endif
  126.  
  127. #ifdef __cplusplus
  128. }
  129. #endif
  130.  
  131. #endif /* __SPRITELAYER__ */