GAME INTERFACE This interface was designed to mimick a combination of Origin's (and Richard Garriot's) Ultima III and 'Odyssey: The Complete Apventure', both written in the early 80s for the Apple ][+. The interface draws a character (a generic stick-figure) and the moves it around according to the user's button clicks. The program would also 'arm' the figure if the user selected the 'Weapon' button and move the figure while displaying it holding a small sword. I intended this interface to be used in conjunction with the 'Dungeon 1.3' interface in one whole game, but I just never got that far before MS Basic became obselete. REM ***** VARIABLE IDENTIFICATION ***** REM A = 'X' Coordinate for man REM B = 'Y' Coordinate for man REM C = man color REM D = man movement REM E = weapon REM ***** VARIABLE INITIALIZATION ***** A=100 B=100 C=1 D=5 E=0 REM ***** PROGRAM SETUP ***** TEXTFONT(4) TEXTSIZE(9) WINDOW 1,,(0,20)-(520,400),3 LINE (330,0)-(331,321),1,BF LINE (330,0)-(511,0),1 BUTTON 1,1,"North",(396,10)-(446,30),1 BUTTON 2,1,"West",(341,35)-(391,55),1 BUTTON 3,1,"East",(451,35)-(501,55),1 BUTTON 4,1,"South",(396,60)-(446,80),1 BUTTON 5,1,"Stop",(396,85)-(446,105),1 BUTTON 6,1,"NW",(351,10)-(381,30),1 BUTTON 7,1,"NE",(461,10)-(491,30),1 BUTTON 8,1,"SW",(351,60)-(381,80),1 BUTTON 9,1,"SE",(461,60)-(491,80),1 BUTTON 10,1,"Weap",(396,110)-(446,130),1 REM ***** PROGRAM START ***** GOSUB 1000 10 IF DIALOG(0)<>1 THEN 10 IF DIALOG(1)=1 THEN GOSUB 20 IF DIALOG(1)=2 THEN GOSUB 21 IF DIALOG(1)=3 THEN GOSUB 22 IF DIALOG(1)=4 THEN GOSUB 23 IF DIALOG(1)=5 THEN END IF DIALOG(1)=6 THEN GOSUB 24 IF DIALOG(1)=7 THEN GOSUB 25 IF DIALOG(1)=8 THEN GOSUB 26 IF DIALOG(1)=9 THEN GOSUB 27 IF DIALOG(1)=10 THEN GOSUB 28 GOTO 10 REM ***** SUBROUTINES ***** 20 REM MOVE NORTH C=0 GOSUB 1000 LET B=B-D C=1 GOSUB 1000 RETURN 21 REM MOVE WEST C=0 GOSUB 1000 LET A=A-D C=1 GOSUB 1000 RETURN 22 REM MOVE EAST C=0 GOSUB 1000 LET A=A+D C=1 GOSUB 1000 RETURN 23 REM MOVE SOUTH C=0 GOSUB 1000 LET B=B+D C=1 GOSUB 1000 RETURN 24 REM MOVE NW C=0 GOSUB 1000 LET A=A-D LET B=B-D C=1 GOSUB 1000 RETURN 25 REM MOVE NE C=0 GOSUB 1000 LET A=A+D LET B=B-D C=1 GOSUB 1000 RETURN 26 REM MOVE SW C=0 GOSUB 1000 LET A=A-D LET B=B+D C=1 GOSUB 1000 RETURN 27 REM MOVE SE C=0 GOSUB 1000 LET A=A+D LET B=B+D C=1 GOSUB 1000 RETURN 28 REM DRAW WEAPON C=0 GOSUB 1000 IF E=0 THEN 29 LET E=0 GOTO 30 29 LET E=1 30 C=1 GOSUB 1000 RETURN 1000 REM DRAW MAN IF E=1 THEN 1001 REM REGULAR MAN LINE (A,B-4)-(A,B),C : REM BODY LINE (A-1,B)-(A-1,B+3),C : REM LT LEG LINE (A+1,B)-(A+1,B+3),C : REM RT LEG LINE (A-2,B+3)-(A-2,B+3),C : REM LT FOOT LINE (A+2,B+3)-(A+2,B+3),C : REM RT FOOT LINE (A-1,B-4)-(A-1,B-3),C : REM LT SHOULDER LINE (A+1,B-4)-(A+1,B-3),C : REM RT SHOULDER LINE (A-2,B-4)-(A-3,B-3),C : REM LT UP ARM LINE (A+2,B-4)-(A+3,B-3),C : REM RT UP ARM LINE (A-3,B-2)-(A-2,B-1),C : REM LT LW ARM LINE (A+3,B-2)-(A+2,B-1),C : REM RT LW ARM LINE (A,B-5)-(A,B-7),C : REM NECK LINE (A+1,B-6)-(A+1,B-7),C : REM FACE GOTO 1002 1001 REM ARMED MAN LINE (A,B-4)-(A,B),C : REM BODY LINE (A-1,B)-(A-1,B+3),C : REM LT LEG LINE (A+1,B)-(A+1,B+3),C : REM RT LEG LINE (A-2,B+3)-(A-2,B+3),C : REM LT FOOT LINE (A+2,B+3)-(A+2,B+3),C : REM RT FOOT LINE (A-1,B-4)-(A-1,B-3),C : REM LT SHOULDER LINE (A+1,B-4)-(A+1,B-3),C : REM RT SHOULDER LINE (A-2,B-4)-(A-3,B-3),C : REM LT UP ARM LINE (A+2,B-4)-(A+3,B-3),C : REM RT UP ARM LINE (A-3,B-2)-(A-2,B-1),C : REM LT LW ARM LINE (A+3,B-2)-(A+3,B),C : REM RT LW ARM LINE (A+2,B-1)-(A+5,B-1),C : REM WEAPON LINE (A,B-5)-(A,B-7),C : REM NECK LINE (A+1,B-6)-(A+1,B-7),C : REM FACE 1002 RETURN