Overview
Comment: | Add some additional checks to JumpTo for Compatible classes only. This fixes three levels, one each in HEARTS1, HEARTS4, and SUPERHRO. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
22d38aadb538a90c793cb0a427f49b0e |
User & Date: | user on 2023-08-06 19:44:01 |
Other Links: | manifest | tags |
Context
2023-08-10
| ||
02:50 | Add CancelTriggers and DeferTriggers instructions. check-in: 68320feb4f user: user tags: trunk | |
2023-08-06
| ||
19:44 | Add some additional checks to JumpTo for Compatible classes only. This fixes three levels, one each in HEARTS1, HEARTS4, and SUPERHRO. check-in: 22d38aadb5 user: user tags: trunk | |
2023-08-04
| ||
23:03 | Implement ,if ,while ,until instructions (conditions with keeping the value in the stack if it is nonzero) check-in: 41eca04785 user: user tags: trunk | |
Changes
Modified TODO from [76519b42a4] to [8c4700a5e2].
︙ | ︙ | |||
21 22 23 24 25 26 27 | * Auto scroll option (using Player flag) * Configurable auto scroll option * Manual scroll option * Bookmarks * Message trace menu to enable/disable * Bugs * Figure out why the $SeekerCloser class doesn't seem to work properly | < | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | * Auto scroll option (using Player flag) * Configurable auto scroll option * Manual scroll option * Bookmarks * Message trace menu to enable/disable * Bugs * Figure out why the $SeekerCloser class doesn't seem to work properly * Animation stopping unexpectedly (until a key is pushed) * ObjLF.Volume+ObjRF.Volume+obj.Volume if ObjLF and/or ObjRF doesn't exist? * Display solution comments/timestamp * VCR mode * Command-line switch for batch export levels * SQL * Implement the GROUP column in the CLASSES table |
︙ | ︙ |
Modified class.doc from [792876c921] to [8def31bf08].
︙ | ︙ | |||
3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 | * Moving objects is not allowed during LASTIMAGE processing. * The way that the trigger phase works is different. * In the ARRIVED and DEPARTED messages, Arg1 is always zero. * Diagonal shoving is not possible. === Level table definition === The following blocks are allowed in a level table definition: (<label> <code...>) | > > > | 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 | * Moving objects is not allowed during LASTIMAGE processing. * The way that the trigger phase works is different. * In the ARRIVED and DEPARTED messages, Arg1 is always zero. * Diagonal shoving is not possible. * The JumpTo instruction has an additional effect that rarely matters, having to do with the timing of ARRIVED, DEPARTED, and MOVED messages. === Level table definition === The following blocks are allowed in a level table definition: (<label> <code...>) |
︙ | ︙ |
Modified exec.c from [1c5a8555ba] to [e4a58f292e].
︙ | ︙ | |||
1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 | static int jump_to(Uint32 from,Uint32 n,Uint32 x,Uint32 y) { int xx,yy; if(n==VOIDLINK) return 0; xx=objects[n]->x; yy=objects[n]->y; if(!move_to(from,n,x,y)) return 0; send_message(VOIDLINK,n,MSG_JUMPED,NVALUE(xx),NVALUE(yy),OVALUE(from)); return 1; } static int defer_move(Uint32 obj,Uint32 dir,Uint8 plus) { Object*o; Object*q; | > > > > | 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 | static int jump_to(Uint32 from,Uint32 n,Uint32 x,Uint32 y) { int xx,yy; if(n==VOIDLINK) return 0; xx=objects[n]->x; yy=objects[n]->y; if(!move_to(from,n,x,y)) return 0; if(classes[objects[n]->class]->cflags&CF_COMPATIBLE) { objects[n]->arrived2=objects[n]->departed2=0; objects[n]->oflags&=~OF_MOVED2; } send_message(VOIDLINK,n,MSG_JUMPED,NVALUE(xx),NVALUE(yy),OVALUE(from)); return 1; } static int defer_move(Uint32 obj,Uint32 dir,Uint8 plus) { Object*o; Object*q; |
︙ | ︙ |