| 468 | } |
| 469 | |
| 470 | void editundo() |
| 471 | { |
| 472 | EDIT("undo"); |
| 473 | bool mp = multiplayer(NULL); |
| 474 | if(mp && undos.length() && undos.last()->xs * undos.last()->ys > MAXNETBLOCKSQR) |
| 475 | { |
| 476 | conoutf("\f3next undo area too big for multiplayer editing"); |
| 477 | return; |
| 478 | } |
| 479 | if(undos.empty()) { conoutf("nothing more to undo"); return; } |
| 480 | block *p = undos.pop(); |
| 481 | undolevel--; |
| 482 | redos.add(blockcopy(*p)); |
| 483 | if(editmetakeydown) restoreposition(*p); |
| 484 | blockpaste(*p); |
| 485 | if(mp) netblockpaste(*p, p->x, p->y, true); |
| 486 | freeblock(p); |
| 487 | unsavededits++; |
| 488 | } |
| 489 | COMMANDN(undo, editundo, ""); |
| 490 | |
| 491 | void gotoundolevel(char *lev) |
no test coverage detected