home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 576-600 / apd591 / proc / screens / rdzone.amos / rdzone.amosSourceCode
AMOS Source Code  |  1994-02-02  |  1KB  |  33 lines

  1. '********************************************************* 
  2. '
  3. 'RDZONE[SCRN,Z]
  4. '
  5. 'RDZONE sets the shared variables X1,Y1,X2,Y2 to the corner co-ordinates 
  6. 'of zone Z on screen SCRN, without changing that screen to the current 
  7. 'screen on exiting.
  8. '
  9. 'The procedure returns the parameter True, if the zone existed, false
  10. 'if it didn't
  11. '
  12. 'NOTE: No error is produced if the zone Z does not exist - the variables 
  13. 'X1,Y1,X2 & Y2 are not changed in this case. 
  14. '
  15. 'RdZone is useful for: Using zones for purposes other than mouse/collision 
  16. '                      detection 
  17. '
  18. '                      Getting the zone co-ordinates to pass to screen copy
  19. '                      it invert a zone (use minterm %110000)
  20. '
  21. Procedure RDZONE[SCRN,Z]
  22.    Shared X1,Y1,X2,Y2
  23.    A0=Screen : Screen SCRN
  24.    If Z>=Deek(Screen Base+214)
  25.       A2=False
  26.    Else 
  27.       A1=Leek(Screen Base+210)+(Z-1)*8
  28.       X1=Min(Deek(A1),Deek(A1+4)) : Y1=Min(Deek(A1+2),Deek(A1+6))
  29.       X2=Max(Deek(A1),Deek(A1+4)) : Y2=Max(Deek(A1+2),Deek(A1+6))
  30.       A2=True
  31.    End If 
  32.    Screen A0
  33. End Proc[A2]