summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/nds/libnds/include/nds/arm9/sprite.h
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/arm/nds/libnds/include/nds/arm9/sprite.h')
-rw-r--r--c/src/lib/libbsp/arm/nds/libnds/include/nds/arm9/sprite.h224
1 files changed, 0 insertions, 224 deletions
diff --git a/c/src/lib/libbsp/arm/nds/libnds/include/nds/arm9/sprite.h b/c/src/lib/libbsp/arm/nds/libnds/include/nds/arm9/sprite.h
deleted file mode 100644
index bbfefad6a3..0000000000
--- a/c/src/lib/libbsp/arm/nds/libnds/include/nds/arm9/sprite.h
+++ /dev/null
@@ -1,224 +0,0 @@
-/*---------------------------------------------------------------------------------
-
- sprite.h -- definitions for DS sprites
-
- Copyright (C) 2007
- Liran Nuna (LiraNuna)
- Dave Murphy (WinterMute)
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any
- damages arising from the use of this software.
-
- Permission is granted to anyone to use this software for any
- purpose, including commercial applications, and to alter it and
- redistribute it freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you
- must not claim that you wrote the original software. If you use
- this software in a product, an acknowledgment in the product
- documentation would be appreciated but is not required.
-
- 2. Altered source versions must be plainly marked as such, and
- must not be misrepresented as being the original software.
-
- 3. This notice may not be removed or altered from any source
- distribution.
-
----------------------------------------------------------------------------------*/
-#ifndef _libnds_sprite_h_
-#define _libnds_sprite_h_
-
-#ifndef ARM9
-#error Sprites are only available on the ARM9
-#endif
-
-#include <nds/jtypes.h>
-
-// Sprite control defines
-
-// Attribute 0 consists of 8 bits of Y plus the following flags:
-#define ATTR0_NORMAL (0<<8)
-#define ATTR0_ROTSCALE (1<<8)
-#define ATTR0_DISABLED (2<<8)
-#define ATTR0_ROTSCALE_DOUBLE (3<<8)
-
-#define ATTR0_TYPE_NORMAL (0<<10)
-#define ATTR0_TYPE_BLENDED (1<<10)
-#define ATTR0_TYPE_WINDOWED (2<<10)
-#define ATTR0_BMP (3<<10)
-
-#define ATTR0_MOSAIC (1<<12)
-
-#define ATTR0_COLOR_16 (0<<13) //16 color in tile mode...16 bit in bitmap mode
-#define ATTR0_COLOR_256 (1<<13)
-
-#define ATTR0_SQUARE (0<<14)
-#define ATTR0_WIDE (1<<14)
-#define ATTR0_TALL (2<<14)
-
-#define OBJ_Y(m) ((m)&0x00ff)
-
-// Atribute 1 consists of 9 bits of X plus the following flags:
-#define ATTR1_ROTDATA(n) ((n)<<9) // note: overlaps with flip flags
-#define ATTR1_FLIP_X (1<<12)
-#define ATTR1_FLIP_Y (1<<13)
-#define ATTR1_SIZE_8 (0<<14)
-#define ATTR1_SIZE_16 (1<<14)
-#define ATTR1_SIZE_32 (2<<14)
-#define ATTR1_SIZE_64 (3<<14)
-
-#define OBJ_X(m) ((m)&0x01ff)
-
-// Atribute 2 consists of the following:
-#define ATTR2_PRIORITY(n) ((n)<<10)
-#define ATTR2_PALETTE(n) ((n)<<12)
-#define ATTR2_ALPHA(n) ((n)<<12)
-
-/**
- * @enum tObjMode
- * @brief Sprite display mode.
- */
-typedef enum
-{
- OBJMODE_NORMAL, /**< No special mode is on - Normal sprite state. */
- OBJMODE_BLENDED, /**< Color blending is on - Sprite can use HW blending features. */
- OBJMODE_WINDOWED, /**< Sprite can be seen only inside the sprite window. */
- OBJMODE_BITMAP, /**< Sprite is not using tiles - per pixel image data. */
-
-} tObjMode;
-
-/**
- * @enum tObjShape
- * @brief Sprite shape mode.
- */
-typedef enum {
- OBJSHAPE_SQUARE, /**< Sprite shape is NxN (Height == Width). */
- OBJSHAPE_WIDE, /**< Sprite shape is NxM with N > M (Height < Width). */
- OBJSHAPE_TALL, /**< Sprite shape is NxM with N < M (Height > Width). */
- OBJSHAPE_FORBIDDEN, /**< Sprite shape is undefined. */
-} tObjShape;
-
-/**
- * @enum tObjSize
- * @brief Object shape mode.
- */
-typedef enum {
- OBJSIZE_8, /**< Major sprite size is 8px. */
- OBJSIZE_16, /**< Major sprite size is 16px. */
- OBJSIZE_32, /**< Major sprite size is 32px. */
- OBJSIZE_64, /**< Major sprite size is 64px. */
-} tObjSize;
-
-/**
- * @enum tObjColMode
- * @brief Object color mode.
- */
-typedef enum {
- OBJCOLOR_16, /**< sprite has 16 colors. */
- OBJCOLOR_256, /**< sprite has 256 colors. */
-} tObjColMode;
-
-/**
- * @enum tObjColMode
- * @brief Object color mode.
- */
-typedef enum {
- OBJPRIORITY_0, /**< sprite priority level 0 - highest. */
- OBJPRIORITY_1, /**< sprite priority level 1. */
- OBJPRIORITY_2, /**< sprite priority level 2. */
- OBJPRIORITY_3, /**< sprite priority level 3 - lowest. */
-} tObjPriority;
-
-// Sprite structures
-
-typedef union {
- struct {
-
- struct {
- u16 posY :8; /**< Sprite Y position. */
- union {
- struct {
- u8 :1;
- bool isHidden :1; /**< Sprite is hidden (isRotoscale cleared). */
- u8 :6;
- };
- struct {
- bool isRotoscale :1; /**< Sprite uses affine parameters if set. */
- bool rsDouble :1; /**< Sprite bounds is doubled (isRotoscale set). */
- tObjMode objMode :2; /**< Sprite object mode. */
- bool isMosaic :1; /**< Enables mosaic effect if set. */
- tObjColMode colMode :1; /**< Sprite color mode. */
- tObjShape objShape :2; /**< Sprite shape. */
- };
- };
- };
-
- union {
- struct {
- u16 posX :9; /**< Sprite X position. */
- u8 :7;
- };
- struct {
- u8 :8;
- union {
- struct {
- u8 :4;
- bool hFlip :1; /**< Flip sprite horizontally (isRotoscale cleared). */
- bool vFlip :1; /**< Flip sprite vertically (isRotoscale cleared).*/
- u8 :2;
- };
- struct {
- u8 :1;
- u8 rsMatrixIdx :5; /**< Affine parameter number to use (isRotoscale set). */
- tObjSize objSize :2; /**< Sprite size. */
- };
- };
- };
- };
-
- struct {
- u16 tileIdx :10;/**< Upper-left tile index. */
- tObjPriority objPriority :2; /**< Sprite priority. */
- u8 objPal :4; /**< Sprite palette to use in paletted color modes. */
- };
-
- u16 attribute3; /**< Four of those are used as a sprite rotation matrice */
- };
-
- struct {
- uint16 attribute[3];
- uint16 filler;
- };
-
-} SpriteEntry, * pSpriteEntry;
-
-
-typedef struct sSpriteRotation {
- uint16 filler1[3];
- int16 hdx;
-
- uint16 filler2[3];
- int16 hdy;
-
- uint16 filler3[3];
- int16 vdx;
-
- uint16 filler4[3];
- int16 vdy;
-} SpriteRotation, * pSpriteRotation;
-
-#define SPRITE_COUNT 128
-#define MATRIX_COUNT 32
-
-/**
- * @union tOAM
- * @brief Final OAM representation in memory
-*/
-typedef union {
- SpriteEntry spriteBuffer[SPRITE_COUNT];
- SpriteRotation matrixBuffer[MATRIX_COUNT];
-} tOAM;
-
-
-#endif // _libnds_sprite_h_