ScreenWidth = 800 ScreenHeight = 600 MyScreenSize = _NEWIMAGE(ScreenWidth, ScreenHeight, 256) SCREEN MyScreenSize GOSUB SetupMouse GOSUB MouseHide GOSUB MouseStatus DO GOSUB MouseStatus K$ = INKEY$ GOSUB DrawSluggishCursor LOOP UNTIL K$ = CHR$(27) END DrawSluggishCursor: PrevDIA = CircleDIA IF LB THEN CircleDIA = CircleDIA + .0001 IF RB THEN CircleDIA = CircleDIA - .0001 IF CircleDIA > 200 THEN CircleDIA = 100 IF CircleDIA < 2 THEN CircleDIA = 2 DiameterShift = PrevDIA - CircleDIA PreviousDistance = Distance Distance = SQR((SlugX - MouseX) ^ 2 + (SlugY - MouseY) ^ 2) XDistance = SlugX - MouseX YDistance = SlugY - MouseY PrevSlugX = SlugX PrevSlugY = SlugY SlugX = SlugX - XDistance * .00001 SlugY = SlugY - YDistance * .00001 'IF Distance > 2 THEN CIRCLE (PrevSlugX, PrevSlugY), PrevDIA, 0 CIRCLE (SlugX, SlugY), CircleDIA, 15 'END IF RETURN 'Mouse Stuff ****************************************** Mouse Stuff ************************* Mouse Stuff ***** SetupMouse: MOUSE$ = SPACE$(57): Mark$ = TIME$: DO: LOOP UNTIL Mark$ <> TIME$: Mark$ = TIME$ DO: Click = Click + 1: LOOP UNTIL Mark$ <> TIME$: DoubleClickSpeed = Click / 5000 RESTORE MOUSEDATA: FOR I% = 1 TO 57: READ a$: H$ = CHR$(VAL("&H" + a$)): MID$(MOUSE$, I%, 1) = H$: NEXT I%: RETURN MOUSEDATA: DATA 55,89,E5,8B,5E,0C,8B,07,50,8B,5E,0A,8B,07,50,8B DATA 5E,08,8B,0F,8B,5E,06,8B,17,5B,58,1E,07,CD,33,53 DATA 8B,5E,0C,89,07,58,8B,5E,0A,89,07,8B,5E,08,89,0F DATA 8B,5E,06,89,17,5D,CA,08,00 BUTTONTRAP: DO: GOSUB MouseStatus: LOOP UNTIL LB <> -1: RETURN MouseStatus: AX% = 3: GOSUB MouseDriver: LB = ((BX% AND 1) <> 0) RB = ((BX% AND 2) <> 0): MouseX = CX%: MouseY = DX%: XPos = INT(MouseX / 8) + 1: YPos = INT(MouseY / 16) + 1 IF NOT RB AND NOT LB THEN Trap = 0 IF FDC > DoubleClickSpeed THEN FDC = 0 IF FDC > 0 AND NOT LB AND NOT RB THEN FDC = FDC + 1 DC = 0 IF LB OR RB THEN IF FDC = 0 THEN FDC = 1 IF FDC > 2 AND MouseY = prevY AND MouseX = prevX THEN DC = 1: FDC = 0 END IF prevY = MouseY: prevX = MouseX IF Trap = 1 THEN RB = 0: LB = 0: RETURN MouseDriver: DEF SEG = VARSEG(MOUSE$): MOUSE% = SADD(MOUSE$): CALL ABSOLUTE(AX%, BX%, CX%, DX%, MOUSE%): RETURN MouseHide: AX% = 2: GOSUB MouseDriver: RETURN MouseShow: AX% = 1: GOSUB MouseDriver: RETURN 'End Mouse Stuff ************************************** End Mouse Stuff ************************* End Mouse Stuff