mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
Fix bad round, memset VLA
This commit is contained in:
parent
79f3f3f4d5
commit
2af6c63253
@ -104,7 +104,7 @@ void remove_whitespace(struct Graphic *graphic) {
|
||||
if (Options.interleave) tile_size *= 2;
|
||||
|
||||
// Make sure we have a whole number of tiles, round down if required
|
||||
graphic->size &= tile_size - 1;
|
||||
graphic->size &= ~(tile_size - 1);
|
||||
|
||||
int i = 0;
|
||||
for (int j = 0; i < graphic->size && j < graphic->size; i += tile_size, j += tile_size) {
|
||||
@ -142,7 +142,7 @@ void remove_duplicates(struct Graphic *graphic) {
|
||||
int num_tiles = 0;
|
||||
|
||||
// Make sure we have a whole number of tiles, round down if required
|
||||
graphic->size &= tile_size - 1;
|
||||
graphic->size &= ~(tile_size - 1);
|
||||
|
||||
for (int i = 0, j = 0; i < graphic->size && j < graphic->size; i += tile_size, j += tile_size) {
|
||||
while (j < graphic->size && tile_exists(&graphic->data[j], graphic->data, tile_size, num_tiles)) {
|
||||
@ -164,6 +164,7 @@ void remove_duplicates(struct Graphic *graphic) {
|
||||
|
||||
bool flip_exists(uint8_t *tile, uint8_t *tiles, int tile_size, int num_tiles, bool xflip, bool yflip) {
|
||||
uint8_t flip[tile_size];
|
||||
memset(flip, 0, sizeof(flip));
|
||||
int half_size = tile_size / 2;
|
||||
for (int i = 0; i < tile_size; i++) {
|
||||
int byte = i;
|
||||
@ -193,7 +194,7 @@ void remove_flip(struct Graphic *graphic, bool xflip, bool yflip) {
|
||||
int num_tiles = 0;
|
||||
|
||||
// Make sure we have a whole number of tiles, round down if required
|
||||
graphic->size &= tile_size - 1;
|
||||
graphic->size &= ~(tile_size - 1);
|
||||
|
||||
for (int i = 0, j = 0; i < graphic->size && j < graphic->size; i += tile_size, j += tile_size) {
|
||||
while (j < graphic->size && flip_exists(&graphic->data[j], graphic->data, tile_size, num_tiles, xflip, yflip)) {
|
||||
|
Loading…
Reference in New Issue
Block a user