| 907 | } |
| 908 | |
| 909 | static bool adjustToTarget(EngineInfo *engine, df::coord *pos) |
| 910 | { |
| 911 | if (isTargetableTile(*pos)) |
| 912 | return true; |
| 913 | |
| 914 | for (df::coord fudge = *pos; |
| 915 | fudge.z <= engine->target.second.z; fudge.z++) |
| 916 | { |
| 917 | if (!isTargetableTile(fudge)) |
| 918 | continue; |
| 919 | *pos = fudge; |
| 920 | return true; |
| 921 | } |
| 922 | |
| 923 | for (df::coord fudge = *pos; |
| 924 | fudge.z >= engine->target.first.z; fudge.z--) |
| 925 | { |
| 926 | if (!isTargetableTile(fudge)) |
| 927 | continue; |
| 928 | *pos = fudge; |
| 929 | return true; |
| 930 | } |
| 931 | |
| 932 | return false; |
| 933 | } |
| 934 | |
| 935 | static int adjustToTarget(lua_State *L) |
| 936 | { |
no test coverage detected