Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
GameSource/SpriteLayer.c
#include "sprite.h" |
#include "SpriteLayer.proto.h" |
typedef struct spriteLayer { |
struct spriteLayer *next; // the layer in back of this one |
struct spriteLayer *prev; // the layer in front of this one |
spritePtr *sprites; // the sprites in this layer |
GWorldPtr tween; // the work GWorld for this layer |
GWorldPtr backdrop; // the background for this layer |
WindowPtr window; // the window this layer ends up in |
long layerFlags; |
long layerID; |
long layerRefcon; |
} spriteLayer, *spriteLayerPtr; |
static spriteLayerPtr MasterSpriteHead; |
static spriteLayerPtr MasterSpriteTail; |
OSErr CreateSpriteLayer(spriteLayerPtr *retSprite, |
GWorldPtr tween, |
GWorldPtr backdrop, |
WindowPtr spriteWin) |
{ |
OSErr err; |
spriteLayerPtr sl; |
sl = (spriteLayerPtr)NewPtrClear(sizeof(spriteLayer)); |
if(!sl) { |
err = MemError(); |
ErrMsgCode("\pCreateSpriteLayer NewPtrClear failed.",err); |
} |
if(err == noErr) { |
sl->tween = tween; |
sl->backdrop = backdrop; |
sl->window = spriteWin; |
} |
if(MasterSpriteTail) { |
sl->prev = MasterSpriteTail; |
MasterSpriteTail->next = sl; |
MasterSpriteTail = sl; |
} else { |
MasterSpriteHead = MasterSpriteTail = sl; |
} |
*retSprite = sl; |
return err; |
} |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14