Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Distance = VAL(rWork)
- DestIndex = ThisIndex
- SELECT CASE Direction
- CASE 1 ' north / Y=Y-2
- MoveToX = DestIndex / MapY
- MoveToY = DestIndex MOD MapY
- MoveToY = MoveToY - (Distance * 2)
- DestIndex = ThisIndex - (Distance * 2)
- CASE 2 ' north east - if Y is even, bump to next column
- OffSet = Distance MOD 2
- Distance = Distance - OffSet
- MoveToX = ((MoveFromX * 2) + Distance)
- MoveToY = MoveFromY - Distance
- DestIndex = ((MoveToX * MapY) / 2) + MoveToY
- IF (OffSet > 0) THEN
- IF (INT(DestIndex / 2) = (DestIndex / 2)) THEN
- DestIndex = DestIndex + MapY - 1
- ELSE
- DestIndex = DestIndex - 1
- END IF
- END IF
- CASE 3 ' east / X=X+1
- MoveToX = DestIndex / MapY
- MoveToY = DestIndex MOD MapY
- MoveToX = MoveToX + Distance
- DestIndex = ThisIndex + (MapY * Distance)
- CASE 4 ' south east
- OffSet = Distance MOD 2
- Distance = Distance - OffSet
- MoveToX = ((MoveFromX * 2) + Distance)
- MoveToY = MoveFromY + Distance
- DestIndex = ((MoveToX * MapY) / 2) + MoveToY
- IF (OffSet > 0) THEN
- IF (INT(DestIndex / 2) = (DestIndex / 2)) THEN
- DestIndex = DestIndex + MapY + 1
- ELSE
- DestIndex = DestIndex + 1
- END IF
- END IF
- CASE 5 ' south / Y=Y+2
- MoveToX = DestIndex / MapY
- MoveToY = DestIndex MOD MapY
- MoveToY = MoveToY + (Distance * 2)
- DestIndex = ThisIndex + (Distance * 2)
- CASE 6 ' south west
- OffSet = Distance MOD 2
- Distance = Distance - OffSet
- MoveToX = ((MoveFromX * 2) - Distance)
- MoveToY = MoveFromY + Distance
- DestIndex = ((MoveToX * MapY) / 2) + MoveToY
- IF (OffSet > 0) THEN
- IF (INT(DestIndex / 2) = (DestIndex / 2)) THEN
- DestIndex = DestIndex + 1
- ELSE
- DestIndex = DestIndex - MapY + 1
- END IF
- END IF
- CASE 7 ' west / X=X-1
- MoveToX = DestIndex / MapY
- MoveToY = DestIndex MOD MapY
- MoveToX = MoveToX - Distance
- DestIndex = ThisIndex - (MapY * Distance)
- CASE 8 ' north west
- OffSet = Distance MOD 2
- Distance = Distance - OffSet
- MoveToX = ((MoveFromX * 2) - Distance)
- MoveToY = MoveFromY - Distance
- DestIndex = ((MoveToX * MapY) / 2) + MoveToY
- IF (OffSet > 0) THEN
- IF (INT(DestIndex / 2) = (DestIndex / 2)) THEN
- DestIndex = DestIndex - 1
- ELSE
- DestIndex = DestIndex - MapY - 1
- END IF
- END IF
- END SELECT
Advertisement
Add Comment
Please, Sign In to add comment