/************************************************************ * * * 2d1.h * * * * * LPGE 1997 * * * * Copyright (C) 1996 Sony Computer Entertainment Inc. * * All Rights Reserved * * * ***********************************************************/ #ifndef TWO_D_1_H_INCLUDED /**************************************************************************** includes ****************************************************************************/ #include "sys_libs.h" #include "general.h" #include "asssert.h" #include "dump.h" /**************************************************************************** constants and structures ****************************************************************************/ #define SIXTEEN_BIT_MASK (1 << 25) #define EIGHT_BIT_MASK (1 << 24) #define CLOCKWISE_OUT 1 #define ANTICLOCKWISE_OUT 2 #define MAX_SPIRAL_ARMS 4096 typedef struct _SPIRAL { int spiralID; int cx, cy; // centre int numberArms; int orientation; // clockwise, anticlockwise int rmin, rmax; // r limits: inner and outer circles int expansionConstant; // ONE is unit int initialAngle; GsSPRITE sprite; } Spiral; #define MAX_SPIRALS 16 /**************************************************************************** prototypes ****************************************************************************/ void InitialiseTexture (long address); void ProperInitialiseTexture (long address, GsIMAGE* imageInfo); void ForceTextureIntoPosition (long address, GsIMAGE* imageInfo, int px, int py, int cx, int cy); void LinkSpriteToImageInfo (GsSPRITE* sprite, GsIMAGE* imageInfo); void InitGsSprite (GsSPRITE* sprite); int Get32TPageNumber (int x, int y); // find coords wrt tpage top left points void FindTopLeftOfTexturePage (GsIMAGE* imageInfo, int* x, int* y, int* u, int* v); void GetTexturePage (GsIMAGE* imageInfo, int *tPageID, int* u, int* v); // spiral section void GetPointOnSpiralArm (Spiral *spiral, int whichArm, short *pointX, short *pointY, int distanceRatio); void InitSpiralToVoid (Spiral *spiral); void CreateSpiral (Spiral *spiral, int numberArms, int orientation, int expansionConstant, int initialAngle); void PositionSpiral (Spiral *spiral, int x, int y); void SetSpiralLimits (Spiral *spiral, int rmin, int rmax); void SetSpiralSprite (Spiral *spiral, GsSPRITE *sprite); void SetSpiralTwist (Spiral *spiral, int twistAngle); void VerifySpiral (Spiral *spiral); void DrawSpiral (Spiral *spiral, GsOT *ot, int grain, int otPlace); void DrawSpiralWithSprite (Spiral *spiral, GsOT *ot, GsSPRITE *sprite, int grain, int otPlace); void DumpSpiral (Spiral *spiral); #define TWO_D_1_H_INCLUDED 1 #endif