mirror of
https://github.com/thepigeongenerator/tetris_clone.git
synced 2025-12-17 14:05:45 +01:00
fix: update roll caused SEGV, also optimised it using XOR
This commit is contained in:
@@ -120,6 +120,6 @@ void place_update(struct gamedata* gdat, int movdat) {
|
|||||||
gdat->pdat.sel[0] += (tmp && shape_intersects(gdat->rows, id, gdat->pdat.sel + (i8vec2){tmp, 0})) * tmp;
|
gdat->pdat.sel[0] += (tmp && shape_intersects(gdat->rows, id, gdat->pdat.sel + (i8vec2){tmp, 0})) * tmp;
|
||||||
|
|
||||||
// update roll
|
// update roll
|
||||||
tmp = id - (((!!(movdat & MOVRL) - !!(movdat & MOVRR)) * 8 + id) & 31);
|
tmp = id ^ (((!!(movdat & MOVRL) - !!(movdat & MOVRR)) * 8 + id) & 31);
|
||||||
gdat->pdat.nxt[idx] += (tmp && shape_intersects(gdat->rows, tmp, gdat->pdat.sel)) * tmp;
|
gdat->pdat.nxt[idx] ^= (tmp && shape_intersects(gdat->rows, id ^ tmp, gdat->pdat.sel)) * tmp;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user