… | |
… | |
334 | if (IN_RANGE_EXC (op->x, 0, width) && IN_RANGE_EXC (op->y, 0, height)) |
334 | if (IN_RANGE_EXC (op->x, 0, width) && IN_RANGE_EXC (op->y, 0, height)) |
335 | { |
335 | { |
336 | // we insert manually because |
336 | // we insert manually because |
337 | // a) its way faster |
337 | // a) its way faster |
338 | // b) we remove manually, too, and there are good reasons for that |
338 | // b) we remove manually, too, and there are good reasons for that |
339 | // c) its correct |
339 | // c) it's correct |
340 | mapspace &ms = at (op->x, op->y); |
340 | mapspace &ms = at (op->x, op->y); |
341 | |
341 | |
342 | op->flag [FLAG_REMOVED] = false; |
342 | op->flag [FLAG_REMOVED] = false; |
343 | |
343 | |
344 | op->above = 0; |
344 | op->above = 0; |
345 | op->below = ms.top; |
345 | op->below = ms.top; |
346 | |
346 | |
347 | if (ms.top) |
|
|
348 | ms.top->above = op; |
347 | *(ms.top ? &ms.top->above : &ms.bot) = op; |
349 | else |
|
|
350 | ms.bot = op; |
|
|
351 | |
348 | |
352 | ms.top = op; |
349 | ms.top = op; |
353 | ms.flags_ = 0; |
350 | ms.flags_ = 0; |
354 | } |
351 | } |
355 | else |
352 | else |