diff options
Diffstat (limited to 'engines/agi/sprite.cpp')
-rw-r--r-- | engines/agi/sprite.cpp | 22 |
1 files changed, 0 insertions, 22 deletions
diff --git a/engines/agi/sprite.cpp b/engines/agi/sprite.cpp index 5829f93bf2..c689bcb298 100644 --- a/engines/agi/sprite.cpp +++ b/engines/agi/sprite.cpp @@ -43,7 +43,6 @@ struct sprite { int16 x_size; /**< width of the sprite */ int16 y_size; /**< height of the sprite */ uint8 *buffer; /**< buffer to store background data */ - uint8 *hires; /**< buffer for hi-res background */ }; /* @@ -180,7 +179,6 @@ void SpritesMgr::objs_savearea(sprite *s) { int16 x_pos = s->x_pos, y_pos = s->y_pos; int16 x_size = s->x_size, y_size = s->y_size; uint8 *p0, *q; - uint8 *h0, *k; if (x_pos + x_size > _WIDTH) x_size = _WIDTH - x_pos; @@ -203,15 +201,10 @@ void SpritesMgr::objs_savearea(sprite *s) { p0 = &_vm->game.sbuf[x_pos + y_pos * _WIDTH]; q = s->buffer; - h0 = &_vm->game.hires[(x_pos + y_pos * _WIDTH) * 2]; - k = s->hires; for (y = 0; y < y_size; y++) { memcpy(q, p0, x_size); q += x_size; p0 += _WIDTH; - memcpy(k, h0, x_size * 2); - k += x_size * 2; - h0 += _WIDTH * 2; } } @@ -220,7 +213,6 @@ void SpritesMgr::objs_restorearea(sprite *s) { int16 x_pos = s->x_pos, y_pos = s->y_pos; int16 x_size = s->x_size, y_size = s->y_size; uint8 *p0, *q; - uint8 *h0, *k; if (x_pos + x_size > _WIDTH) x_size = _WIDTH - x_pos; @@ -243,17 +235,12 @@ void SpritesMgr::objs_restorearea(sprite *s) { p0 = &_vm->game.sbuf[x_pos + y_pos * _WIDTH]; q = s->buffer; - h0 = &_vm->game.hires[(x_pos + y_pos * _WIDTH) * 2]; - k = s->hires; offset = _vm->game.line_min_print * CHAR_LINES; for (y = 0; y < y_size; y++) { memcpy(p0, q, x_size); _gfx->putPixelsA(x_pos, y_pos + y + offset, x_size, p0); q += x_size; p0 += _WIDTH; - memcpy(h0, k, x_size * 2); - k += x_size * 2; - h0 += _WIDTH * 2; } } @@ -312,7 +299,6 @@ sprite *SpritesMgr::new_sprite(vt_entry *v) { s->x_size = v->x_size; s->y_size = v->y_size; s->buffer = (uint8 *) pool_alloc(s->x_size * s->y_size); - s->hires = (uint8 *) pool_alloc(s->x_size * s->y_size * 2); v->s = s; /* link view table entry to this sprite */ return s; @@ -386,7 +372,6 @@ void SpritesMgr::free_list(SpriteList& l) { SpriteList::iterator iter; for (iter = l.reverse_begin(); iter != l.end(); ) { sprite* s = *iter; - pool_release(s->hires); pool_release(s->buffer); pool_release(s); iter = l.reverse_erase(iter); @@ -699,7 +684,6 @@ void SpritesMgr::show_obj(int n) { s.x_size = c->width; s.y_size = c->height; s.buffer = (uint8 *)malloc(s.x_size * s.y_size); - s.hires = (uint8 *)malloc(s.x_size * s.y_size * 2); objs_savearea(&s); blit_cel(x1, y1, s.x_size, c); @@ -709,15 +693,11 @@ void SpritesMgr::show_obj(int n) { commit_block(x1, y1, x2, y2); free(s.buffer); - - /* Added to fix a memory leak --Vasyl */ - free(s.hires); } void SpritesMgr::commit_block(int x1, int y1, int x2, int y2) { int i, w, offset; uint8 *q; - uint8 *h; if (!_vm->game.picture_shown) return; @@ -744,12 +724,10 @@ void SpritesMgr::commit_block(int x1, int y1, int x2, int y2) { w = x2 - x1 + 1; q = &_vm->game.sbuf[x1 + _WIDTH * y1]; - h = &_vm->game.hires[(x1 + _WIDTH * y1) * 2]; offset = _vm->game.line_min_print * CHAR_LINES; for (i = y1; i <= y2; i++) { _gfx->putPixelsA(x1, i + offset, w, q); q += _WIDTH; - h += _WIDTH * 2; } _gfx->flushBlockA(x1, y1 + offset, x2, y2 + offset); |