home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PROG_BAS
/
DNALIB59.ZIP
/
MAYBE.BAS
< prev
next >
Wrap
BASIC Source File
|
1994-01-05
|
4KB
|
181 lines
DECLARE SUB Popwind(Title$,Toprow%,Leftcolumn%,Bottomrow%,Rightcolumn%,Attr%, Shadow%, Border%)
DECLARE SUB SaveScreen(ScreenID$,TopRow%,LeftColumn%,BottomRow%,RightColumn%,Shadow%)
DECLARE SUB RestoreScreen(ScreenID$,TopRow%,LeftColumn%)
DECLARE SUB CalcByte(Attr%,LowByte%,HiByte%)
DECLARE SUB Clicked(Rgt%,Lft%,Row%,Col%)
DECLARE SUB HideCursor()
DECLARE SUB ShowCursor()
DECLARE FUNCTION LeftButtonReleased%()
SUB MayBe(Text$,Answer%,Mouse%,Location%,BAttr%,Attr%,Shadow%,Border%) PUBLIC
CalcByte Attr%,FGround%,BGround%
CalcByte BAttr%,BtFG%,BtBG%
Finished% = 0
IF Mouse% THEN HideCursor
X% = LEN (Text$) AND 1
IF X% = 0 THEN 'see if the string is odd or even
Prompt$ = Text$
ELSE
Prompt$ = Text$ + CHR$(32) 'if it's odd add a space
END IF
IF LEN (Prompt$) <= 28 THEN 'only size the box if the string
Size% = 32 'is less than 16 characters
ELSEIF LEN (Prompt$) >= 28 THEN
Size% = LEN (Prompt$) + 4 'make the box fit the string
END IF
SaveScreen MayBeScreen$,Location%, 40 - (Size% / 2), Location% + 5, 40 + (Size% / 2) - 1, Shadow%
Popwind Title$,Location%, 40 - (Size% / 2), Location% + 5, 40 + (Size% / 2) - 1, Attr%, Shadow%, Border%
COLOR Fground%, Bground%
LOCATE Location% + 1, 40 - LEN (Prompt$) / 2,0
PRINT Prompt$;
Row% = Location% + 3
Col% = 40 - (Size% / 2) + 3
IF Mouse% THEN
COLOR FGround%,BGround%
LOCATE Location%,40 - (Size% / 2) + 2,0
PRINT CHR$(91,254,93);
END IF
DO
COLOR BtFG%,BtBG%
LOCATE Row%, Col%,0
PRINT " YES ";
COLOR 0,BGround%
LOCATE Row%, Col% + 5,0
PRINT "▄";
COLOR 0,BGround%
LOCATE Row% + 1,Col% + 1,0
PRINT "▀▀▀▀▀";
COLOR BtFG%,BtBG%
LOCATE Row%,Col% + 9,0
PRINT " NO ";
COLOR 0,BGround%
LOCATE Row%,Col% + 13,0
PRINT "▄";
COLOR 0,BGround%
LOCATE Row% + 1,Col% + 10,0
PRINT "▀▀▀▀"
COLOR BtFG%,BtBG%
LOCATE Row%, Col% + 17,0
PRINT " CANCEL ";
COLOR 0,BGround%
LOCATE Row%, Col% + 25,0
PRINT "▄";
COLOR 0,BGround%
LOCATE Row% + 1,Col% + 18,0
PRINT "▀▀▀▀▀▀▀▀";
WHILE NOT INSTAT
IF Mouse% THEN
ShowCursor
Rgt% = 0:Lft% = 0
Clicked Rgt%,Lft%,MRow%,MCol%
IF Lft% AND MRow% = Row% THEN
IF LeftButtonReleased% THEN
SELECT CASE MCol%
CASE Col% TO Col% + 5
Chose% = 89
HideCursor
GOTO KeyBoardRoutine
CASE Col% + 9 TO Col% + 13
Chose% = 78
HideCursor
GOTO KeyBoardRoutine
CASE Col% + 17 TO Col% + 25
Chose% = 27
HideCursor
GOTO KeyBoardRoutine
END SELECT
END IF
ELSE
IF Lft% AND MRow% = Location% AND MCol% = 40 - (Size% / 2) + 3 THEN
IF LeftButtonReleased% THEN
Chose% = 27
GOTO KeyBoardRoutine
END IF
END IF
END IF
END IF
WEND
Ky$ = INKEY$
IF LEN(Ky$) = 1 THEN
Chose% = ASC(Ky$)
ELSE
Chose% = -ASC(RIGHT$(Ky$,1))
END IF
KeyBoardRoutine:
SELECT CASE Chose%
CASE 89,121 'Yes
COLOR FGround%,BGround%
LOCATE Row%,Col%,0
PRINT " ";
LOCATE Row% + 1,Col% + 1,0
PRINT " ";
COLOR BtFG%,BtBG%
LOCATE Row%,Col% + 1,0
PRINT " YES "
Answer% = 1
Finished% = 1
CASE 78,110 'No
COLOR FGround%,BGround%
LOCATE Row%,Col% + 9,0
PRINT " ";
LOCATE Row% + 1,Col% + 10,0
PRINT " ";
COLOR BtFG%,BtBG%
LOCATE Row%,Col% + 10,0
PRINT " NO "
Answer% = 0
Finished% = 1
CASE 27,67,99
COLOR FGround%,BGround%
LOCATE Row%,Col% + 17,0
PRINT " ";
LOCATE Row% + 1,Col% + 18,0
PRINT " ";
COLOR BtFG%,BtBG%
LOCATE Row%,Col% + 18,0
PRINT " CANCEL "
Answer% = 2
Finished% = 1
CASE ELSE
BEEP
END SELECT
LOOP UNTIL Finished%
IF Mouse% THEN ShowCursor
DELAY .5
IF Mouse% THEN HideCursor
RestoreScreen MayBeScreen$,Location%, 40 - (Size% / 2)
END SUB