Overview
Comment: | Change the logic for movement; this way seems to be closer to how it works in Hero Mesh, due to my experiments |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
c53823977e47198c5d37d7d1d90367e3 |
User & Date: | user on 2021-01-01 04:13:16 |
Other Links: | manifest | tags |
Context
2021-01-03
| ||
09:43 | Implement sliding check-in: 1490be64d5 user: user tags: trunk | |
2021-01-01
| ||
04:13 | Change the logic for movement; this way seems to be closer to how it works in Hero Mesh, due to my experiments check-in: c53823977e user: user tags: trunk | |
2020-12-31
| ||
04:32 | Make visual non-continuous animations to stop at the beginning of each turn (maybe this should be changed so that it only applies if the object's OF_BUSY flag was set at the time the animation started?) check-in: cb74a8d881 user: user tags: trunk | |
Changes
Modified class.doc from [04d4b7d173] to [4eb22afd16].
︙ | |||
1440 1441 1442 1443 1444 1445 1446 | 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 | - + + | Set by the game engine if the requested movement is diagonal. bit20 * If set, then when the movement attempt is restarted (due to bit15 set), the direction will be reread from the object's Dir variable. bit21 * |
︙ |
Modified exec.c from [d2b7e53c78] to [009b283128].
︙ | |||
732 733 734 735 736 737 738 | 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 | - + + - + + + - + - + - + - + - + - - - - + + + - | static int move_dir(Uint32 from,Uint32 obj,Uint32 dir) { // This function is complicated, and there may be mistakes. Object*o; Object*oE; Object*oF; Uint32 objE,objF,objLF,objRF; Uint32 hit=0; |
︙ | |||
806 807 808 809 810 811 812 | 807 808 809 810 811 812 813 814 815 816 817 818 819 820 | - | 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 |
︙ | |||
845 846 847 848 849 850 851 | 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 | - + - - - + + - | } } if(hit&0x400) goto fail; objE=obj_below(objE); } if(hit&0x2008) goto fail; if((hit&0x48000)==0x8000) goto restart; |
︙ |