Skip to content

Commit 2c3942c

Browse files
committed
memmove makes undo a lot easier
1 parent 78fd14c commit 2c3942c

File tree

1 file changed

+5
-19
lines changed

1 file changed

+5
-19
lines changed

sprite.c

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -235,33 +235,19 @@ static void
235235
do_undo(void)
236236
{
237237
pixel_t temp[32][32];
238-
int i, j;
239-
240-
for (i = 0; i < 16 + (extended ? 16 : 0); i++) {
241-
for (j = 0; j < 16 + (extended ? 16 : 0); j++)
242-
temp[i][j].color = pixel[i][j].color;
243-
}
244238

245-
for (i = 0; i < 16 + (extended ? 16 : 0); i++) {
246-
for (j = 0; j < 16 + (extended ? 16 : 0); j++)
247-
pixel[i][j].color = undo[i][j].color;
248-
}
239+
memset(&temp, 0, sizeof(temp));
249240

250-
for (i = 0; i < 16 + (extended ? 16 : 0); i++) {
251-
for (j = 0; j < 16 + (extended ? 16 : 0); j++)
252-
undo[i][j].color = temp[i][j].color;
253-
}
241+
memmove(&temp, &pixel, sizeof(temp));
242+
memmove(&pixel, &undo, sizeof(pixel));
243+
memmove(&undo, &temp, sizeof(temp));
254244
}
255245

256246
static void
257247
update_undo(void)
258248
{
259-
int i, j;
260249

261-
for (i = 0; i < 16 + (extended ? 16 : 0); i++) {
262-
for (j = 0; j < 16 + (extended ? 16 : 0); j++)
263-
undo[i][j].color = pixel[i][j].color;
264-
}
250+
memmove(&undo, &pixel, sizeof(undo));
265251
}
266252

267253
static void

0 commit comments

Comments
 (0)