Prev: 54855 Up: Map Next: 54990
54914: Test Wide Overlap
Used by the routine at TestGroupObjects.
Tests the entity against a block with TestBlockOverlap after widening the x and y edges by half the matching extent, less four. For the test, the edge path takes its size from A, and a miss on z returns the distance instead of setting the flags to 255. The edges and those two patches are put back.
Input
IX The entity
TestWideOverlap 54914 PUSH BC Remember the caller's count.
54915 LD A,79 Make the edge path take its size from A.
54917 LD (55062),A
54920 LD HL,(55015) Widen the x edge by half the x extent, less four.
54923 LD B,0
54925 PUSH HL
54926 LD C,(IX+11)
54929 SRL C
54931 ADD HL,BC
54932 LD C,4
54934 SBC HL,BC
54936 LD (55015),HL
54939 LD HL,(55032) Widen the y edge by half the y extent, less four.
54942 PUSH HL
54943 LD C,(IX+12)
54946 SRL C
54948 ADD HL,BC
54949 LD C,4
54951 SBC HL,BC
54953 LD (55032),HL
54956 LD HL,(55098) A miss on z returns the distance instead of failing.
54959 PUSH HL
54960 LD A,111
54962 LD H,A
54963 LD L,24
54965 LD (55098),HL
54968 CALL TestBlockOverlap Test the widened block.
54971 POP HL Put the edges and that branch back.
54972 LD (55098),HL
54975 POP HL
54976 LD (55032),HL
54979 POP HL
54980 LD (55015),HL
54983 LD A,72 Put the edge path back to taking its size from B.
54985 LD (55062),A
54988 POP BC Restore the caller's count.
54989 RET Return.
Prev: 54855 Up: Map Next: 54990