00001 /* $Id: Sprites.hpp,v 1.1.1.1 2005/04/22 17:18:53 ndsdev Exp $ */ 00017 #ifndef SPRITES_H 00018 #define SPRITES_H 00019 00020 #ifndef ARM9 00021 #error Video is only available on the ARM9 00022 #endif 00023 00024 #include <NDS/ARM9/video.h> 00025 #include <NDS/jtypes.h> 00026 00031 struct Sprite 00032 { 00033 int x; 00034 int y; 00035 int dx; 00036 int dy; 00037 sSpriteEntry* oam; 00038 int gfxID; 00039 00052 void configureOAM(int gfx_id, int num_colors, int width, int height); 00053 }; 00054 00060 class SpritesBase { 00061 public: 00069 SpriteEntry OAMCopy[128]; 00070 00079 SpriteRotation* rotationData; 00080 00088 SpriteEntry OAMSubCopy[128]; 00089 00098 SpriteRotation* rotationSubData; 00099 00104 void initOAM(void); 00105 00113 void updateOAM(void); 00114 00119 SpritesBase(); 00120 00141 int LoadSpriteData1D(uint32 oam_id, const uint16* data, uint32 data_len, 00142 int* gfxid, int* gfxidsub = 0); 00143 00151 void MoveSprite(Sprite* sp); 00152 00157 virtual ~SpritesBase(); 00158 00164 virtual uint32 displayCr(void) const; 00165 00171 virtual void reset(void); 00172 00173 protected: 00174 uint32 gfx_id; 00175 uint32 gfx_id_sub; 00176 00177 }; 00178 00179 #endif
1.3.6