(svn r1861) Constify Get(Non)Sprite()

This commit is contained in:
tron 2005-02-11 17:12:11 +00:00
parent 3a93a250b7
commit 9c99c7d11a
4 changed files with 43 additions and 28 deletions

59
gfx.c
View File

@ -6,12 +6,12 @@
#include "table/palettes.h" #include "table/palettes.h"
#include "hal.h" #include "hal.h"
static void GfxMainBlitter(Sprite *sprite, int x, int y, int mode); static void GfxMainBlitter(const Sprite *sprite, int x, int y, int mode);
static int _stringwidth_out; static int _stringwidth_out;
static byte _cursor_backup[64*64]; static byte _cursor_backup[64*64];
static Rect _invalid_rect; static Rect _invalid_rect;
static byte *_color_remap_ptr; static const byte *_color_remap_ptr;
static byte _string_colorremap[3]; static byte _string_colorremap[3];
#define DIRTY_BYTES_PER_LINE (MAX_SCREEN_WIDTH/64) #define DIRTY_BYTES_PER_LINE (MAX_SCREEN_WIDTH/64)
@ -106,7 +106,7 @@ void GfxScroll(int left, int top, int width, int height, int xo, int yo) {
void GfxFillRect(int left, int top, int right, int bottom, int color) { void GfxFillRect(int left, int top, int right, int bottom, int color) {
DrawPixelInfo *dpi = _cur_dpi; DrawPixelInfo *dpi = _cur_dpi;
byte *dst,*ctab; byte *dst;
const int otop = top; const int otop = top;
const int oleft = left; const int oleft = left;
@ -144,7 +144,8 @@ void GfxFillRect(int left, int top, int right, int bottom, int color) {
} while (--bottom); } while (--bottom);
} else { } else {
/* use colortable mode */ /* use colortable mode */
ctab = GetNonSprite(color & 0x3FFF) + 1; const byte* ctab = GetNonSprite(color & 0x3FFF) + 1;
do { do {
int i; int i;
for(i=0; i!=right;i++) for(i=0; i!=right;i++)
@ -572,7 +573,8 @@ void DrawSprite(uint32 img, int x, int y) {
typedef struct BlitterParams { typedef struct BlitterParams {
int start_x, start_y; int start_x, start_y;
byte *sprite, *sprite_org; const byte* sprite;
const byte* sprite_org;
byte *dst; byte *dst;
int mode; int mode;
int width, height; int width, height;
@ -583,10 +585,12 @@ typedef struct BlitterParams {
static void GfxBlitTileZoomIn(BlitterParams *bp) static void GfxBlitTileZoomIn(BlitterParams *bp)
{ {
byte *src_o = bp->sprite, *src; const byte* src_o = bp->sprite;
const byte* src;
int num, skip; int num, skip;
byte done; byte done;
byte *dst, *ctab; byte *dst;
const byte* ctab;
if (bp->mode & 1) { if (bp->mode & 1) {
src_o += READ_LE_UINT16(src_o + bp->start_y * 2); src_o += READ_LE_UINT16(src_o + bp->start_y * 2);
@ -725,7 +729,7 @@ static void GfxBlitTileZoomIn(BlitterParams *bp)
static void GfxBlitZoomInUncomp(BlitterParams *bp) static void GfxBlitZoomInUncomp(BlitterParams *bp)
{ {
byte *src = bp->sprite; const byte *src = bp->sprite;
byte *dst = bp->dst; byte *dst = bp->dst;
int height = bp->height; int height = bp->height;
int width = bp->width; int width = bp->width;
@ -736,7 +740,7 @@ static void GfxBlitZoomInUncomp(BlitterParams *bp)
if (bp->mode & 1) { if (bp->mode & 1) {
if (bp->info & 1) { if (bp->info & 1) {
byte *ctab = _color_remap_ptr; const byte *ctab = _color_remap_ptr;
byte b; byte b;
do { do {
@ -750,7 +754,8 @@ static void GfxBlitZoomInUncomp(BlitterParams *bp)
} }
} else if (bp->mode & 2) { } else if (bp->mode & 2) {
if (bp->info & 1) { if (bp->info & 1) {
byte *ctab = _color_remap_ptr; const byte *ctab = _color_remap_ptr;
do { do {
for(i=0; i!=width; i++) for(i=0; i!=width; i++)
if (src[i]) if (src[i])
@ -797,10 +802,12 @@ static void GfxBlitZoomInUncomp(BlitterParams *bp)
static void GfxBlitTileZoomMedium(BlitterParams *bp) static void GfxBlitTileZoomMedium(BlitterParams *bp)
{ {
byte *src_o = bp->sprite, *src; const byte* src_o = bp->sprite;
const byte* src;
int num, skip; int num, skip;
byte done; byte done;
byte *dst, *ctab; byte *dst;
const byte* ctab;
if (bp->mode & 1) { if (bp->mode & 1) {
src_o += READ_LE_UINT16(src_o + bp->start_y * 2); src_o += READ_LE_UINT16(src_o + bp->start_y * 2);
@ -973,7 +980,7 @@ static void GfxBlitTileZoomMedium(BlitterParams *bp)
static void GfxBlitZoomMediumUncomp(BlitterParams *bp) static void GfxBlitZoomMediumUncomp(BlitterParams *bp)
{ {
byte *src = bp->sprite; const byte *src = bp->sprite;
byte *dst = bp->dst; byte *dst = bp->dst;
int height = bp->height; int height = bp->height;
int width = bp->width; int width = bp->width;
@ -984,7 +991,9 @@ static void GfxBlitZoomMediumUncomp(BlitterParams *bp)
if (bp->mode & 1) { if (bp->mode & 1) {
if (bp->info & 1) { if (bp->info & 1) {
byte *ctab = _color_remap_ptr,b; const byte *ctab = _color_remap_ptr;
byte b;
height >>= 1; height >>= 1;
if (height) do { if (height) do {
for(i=0; i!=width>>1; i++) for(i=0; i!=width>>1; i++)
@ -996,7 +1005,8 @@ static void GfxBlitZoomMediumUncomp(BlitterParams *bp)
} }
} else if (bp->mode & 2) { } else if (bp->mode & 2) {
if (bp->info & 1) { if (bp->info & 1) {
byte *ctab = _color_remap_ptr; const byte *ctab = _color_remap_ptr;
height >>= 1; height >>= 1;
if (height) do { if (height) do {
for(i=0; i!=width>>1; i++) for(i=0; i!=width>>1; i++)
@ -1022,10 +1032,12 @@ static void GfxBlitZoomMediumUncomp(BlitterParams *bp)
static void GfxBlitTileZoomOut(BlitterParams *bp) static void GfxBlitTileZoomOut(BlitterParams *bp)
{ {
byte *src_o = bp->sprite, *src; const byte* src_o = bp->sprite;
const byte* src;
int num, skip; int num, skip;
byte done; byte done;
byte *dst, *ctab; byte *dst;
const byte* ctab;
if (bp->mode & 1) { if (bp->mode & 1) {
src_o += READ_LE_UINT16(src_o + bp->start_y * 2); src_o += READ_LE_UINT16(src_o + bp->start_y * 2);
@ -1264,7 +1276,7 @@ static void GfxBlitTileZoomOut(BlitterParams *bp)
static void GfxBlitZoomOutUncomp(BlitterParams *bp) static void GfxBlitZoomOutUncomp(BlitterParams *bp)
{ {
byte *src = bp->sprite; const byte* src = bp->sprite;
byte *dst = bp->dst; byte *dst = bp->dst;
int height = bp->height; int height = bp->height;
int width = bp->width; int width = bp->width;
@ -1275,7 +1287,9 @@ static void GfxBlitZoomOutUncomp(BlitterParams *bp)
if (bp->mode & 1) { if (bp->mode & 1) {
if (bp->info & 1) { if (bp->info & 1) {
byte *ctab = _color_remap_ptr,b; const byte *ctab = _color_remap_ptr;
byte b;
height >>= 2; height >>= 2;
if (height) do { if (height) do {
for(i=0; i!=width>>2; i++) for(i=0; i!=width>>2; i++)
@ -1287,7 +1301,8 @@ static void GfxBlitZoomOutUncomp(BlitterParams *bp)
} }
} else if (bp->mode & 2) { } else if (bp->mode & 2) {
if (bp->info & 1) { if (bp->info & 1) {
byte *ctab = _color_remap_ptr; const byte *ctab = _color_remap_ptr;
height >>= 2; height >>= 2;
if (height) do { if (height) do {
for(i=0; i!=width>>2; i++) for(i=0; i!=width>>2; i++)
@ -1313,7 +1328,7 @@ static void GfxBlitZoomOutUncomp(BlitterParams *bp)
typedef void (*BlitZoomFunc)(BlitterParams *bp); typedef void (*BlitZoomFunc)(BlitterParams *bp);
static void GfxMainBlitter(Sprite *sprite, int x, int y, int mode) static void GfxMainBlitter(const Sprite* sprite, int x, int y, int mode)
{ {
DrawPixelInfo *dpi = _cur_dpi; DrawPixelInfo *dpi = _cur_dpi;
int start_x, start_y; int start_x, start_y;
@ -1438,7 +1453,7 @@ static void GfxMainBlitter(Sprite *sprite, int x, int y, int mode)
if (info&2) { if (info&2) {
int totpix = bp.height_org * bp.width_org; int totpix = bp.height_org * bp.width_org;
byte *dst = (byte*)alloca(totpix); byte *dst = (byte*)alloca(totpix);
byte *src = bp.sprite_org; const byte *src = bp.sprite_org;
signed char b; signed char b;
bp.sprite = dst + (bp.sprite - bp.sprite_org); bp.sprite = dst + (bp.sprite - bp.sprite_org);

View File

@ -2373,12 +2373,12 @@ extern void ShowJoinStatusWindowAfterJoin(void);
void SetupColorsAndInitialWindow(void) void SetupColorsAndInitialWindow(void)
{ {
int i; int i;
byte *b;
Window *w; Window *w;
int width,height; int width,height;
for(i=0; i!=16; i++) { for(i=0; i!=16; i++) {
b = GetNonSprite(0x307 + i); const byte* b = GetNonSprite(0x307 + i);
assert(b); assert(b);
_color_list[i] = *(ColorList*)(b + 0xC6); _color_list[i] = *(ColorList*)(b + 0xC6);
} }

View File

@ -680,12 +680,12 @@ static uint RotateSprite(uint s)
} }
#endif #endif
Sprite *GetSprite(SpriteID sprite) const Sprite *GetSprite(SpriteID sprite)
{ {
return GetNonSprite(sprite); return GetNonSprite(sprite);
} }
byte *GetNonSprite(SpriteID sprite) const byte *GetNonSprite(SpriteID sprite)
{ {
byte *p; byte *p;

View File

@ -17,8 +17,8 @@ typedef struct {
} SpriteDimension; } SpriteDimension;
const SpriteDimension *GetSpriteDimension(SpriteID sprite); const SpriteDimension *GetSpriteDimension(SpriteID sprite);
Sprite *GetSprite(SpriteID sprite); const Sprite *GetSprite(SpriteID sprite);
byte *GetNonSprite(SpriteID sprite); const byte *GetNonSprite(SpriteID sprite);
void GfxLoadSprites(void); void GfxLoadSprites(void);
void IncreaseSpriteLRU(void); void IncreaseSpriteLRU(void);