Overview
Comment: | Some more implementation of diagonal move |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
0090f92a2faf08a8b9ba98451a13f5c7 |
User & Date: | user on 2020-12-17 06:33:07 |
Other Links: | manifest | tags |
Context
2020-12-17
| ||
22:10 | Implement the rest of the phases of the turn; still not working perfectly though check-in: f4f4383c4e user: user tags: trunk | |
06:33 | Some more implementation of diagonal move check-in: 0090f92a2f user: user tags: trunk | |
03:39 | Implement removing quiz text check-in: 3427b010ff user: user tags: trunk | |
Changes
Modified exec.c from [8099116229] to [b606dc980d].
︙ | ︙ | |||
720 721 722 723 724 725 726 | if(!(hit&0x402008)) { if(hF<=o->climb || (hit&0x200000)) { if(hit&0x20000) goto success; if(move_to(from,obj,oF->x,oF->y)) goto success; else goto fail; } } } else { | > > > > > > > > | > > > > > > > > > > > > | 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 | if(!(hit&0x402008)) { if(hF<=o->climb || (hit&0x200000)) { if(hit&0x20000) goto success; if(move_to(from,obj,oF->x,oF->y)) goto success; else goto fail; } } } else { // Volume is too much; hit the objects it won't go between objE=objLF; while(objE!=VOIDLINK) { oE=objects[objE]; if(oE->height>0 && !(oE->oflags&(OF_VISUALONLY|OF_DESTROYED))) { v=send_message(objE,obj,MSG_HIT,NVALUE(oE->x),NVALUE(oE->y),NVALUE(0x80008)); if(v.t) Throw("Type mismatch in HIT/HITBY"); if(!(v.u&1)) v=send_message(obj,objE,MSG_HITBY,NVALUE(o->x),NVALUE(o->y),NVALUE(v.u|0x80008)); } objE=obj_below(objE); } objE=objRF; while(objE!=VOIDLINK) { oE=objects[objE]; if(oE->height>0 && !(oE->oflags&(OF_VISUALONLY|OF_DESTROYED))) { v=send_message(objE,obj,MSG_HIT,NVALUE(oE->x),NVALUE(oE->y),NVALUE(0x80008)); if(v.t) Throw("Type mismatch in HIT/HITBY"); if(!(v.u&1)) v=send_message(obj,objE,MSG_HITBY,NVALUE(o->x),NVALUE(o->y),NVALUE(v.u|0x80008)); } objE=obj_below(objE); } } } else { // Orthogonal movement if(hit) hit=(hit&0x0C000000)|0x800; objE=objF; while(objE!=VOIDLINK) { oE=objects[objE]; |
︙ | ︙ |