Skip to content

Commit f84b560

Browse files
committed
Fix view fails when using transparency, sync animation. Closes #189
1 parent faec29c commit f84b560

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

source/definitions.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@
118118

119119
// The default size of sprites
120120
#define SPRITE_PIXELS 32
121+
#define SPRITE_PIXELS_SIZE SPRITE_PIXELS * SPRITE_PIXELS
121122

122123
// The sea layer
123124
#define GROUND_LAYER 7

source/graphics.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1167,7 +1167,7 @@ uint8_t* GameSprite::NormalImage::getRGBAData()
11671167
}
11681168
}
11691169

1170-
const int pixels_data_size = SPRITE_PIXELS * SPRITE_PIXELS * 4;
1170+
const int pixels_data_size = SPRITE_PIXELS_SIZE * 4;
11711171
uint8_t* data = newd uint8_t[pixels_data_size];
11721172
bool use_alpha = g_gui.gfx.hasTransparency();
11731173
uint8_t bpp = use_alpha ? 4 : 3;
@@ -1177,7 +1177,7 @@ uint8_t* GameSprite::NormalImage::getRGBAData()
11771177
// decompress pixels
11781178
while(read < size && write < pixels_data_size) {
11791179
int transparent = dump[read] | dump[read + 1] << 8;
1180-
if(use_alpha && transparent >= size) // Corrupted sprite?
1180+
if(use_alpha && transparent >= SPRITE_PIXELS_SIZE) // Corrupted sprite?
11811181
break;
11821182
read += 2;
11831183
for(int i = 0; i < transparent && write < pixels_data_size; i++) {
@@ -1499,6 +1499,7 @@ void Animator::reset()
14991499
is_complete = false;
15001500
direction = ANIMATION_FORWARD;
15011501
current_loop = 0;
1502+
async = false;
15021503
setFrame(-1);
15031504
}
15041505

0 commit comments

Comments
 (0)