REM $DYNAMIC RANDOMIZE TIMER: CLS : SCREEN 7, 0, 0, 0: CLEAR : C = 16: DIM cl(5), FIR(5), P1%(1441): DIM s1%(400): DIM P2%(1441): DIM S2%(400), B1%(811), B2%(811), bld%(4341), HIT$(5), RCT(12, 4), PBT(16), GUTS%(732) DEF SEG = VARSEG(GUTS%(0)): BLOAD "SEMAJ.PIC", VARPTR(GUTS%(0)) DEF SEG = VARSEG(B1%(0)): BLOAD "BURN1.EPC", VARPTR(B1%(0)) DEF SEG = VARSEG(B2%(0)): BLOAD "BURN2.EPC", VARPTR(B2%(0)) SCREEN 7: CLS T = TIMER + .5: WHILE T > TIMER: WEND FOR I = 1 TO 5: READ cl(I): LOCATE 13, 17: COLOR cl(I): PRINT "BriTech" T = TIMER + .1: WHILE T > TIMER: WEND NEXT I FOR I = 1 TO 5: READ FIR(I): NEXT I DIM NM$(C), TS(C), SP(C), SR(C), SD(C), SF(C), SL(C), SI(C), SS(C), SU(C), SA(C), SC(C), ST(C), SX(C), SY(C), SH(C), SW(C), SPH(C), SPW(C), SK$(C) DIM AP1(C), AR1(C), AD1(C), AF1(C), AI1(C), AH1(C), AW1(C), AX1(C), AY1(C), AXA1(C), AYA1(C), AU1(C), AL1(C) DIM AP2(C), AR2(C), AD2(C), AF2(C), AI2(C), AH2(C), AW2(C), AX2(C), AY2(C), AXA2(C), AYA2(C), AU2(C), AL2(C) DIM JU(C), JD(C), JS(C), JH(C), JW(C), ws(C), WH(C), WW(C), MT(C), MD1(C), MF1(C), MH1(C), MI1(C), MU1(C), MS1(C), MC1(C) DIM MD2(C), MF2(C), MH2(C), MI2(C), MU2(C), MS2(C), MC2(C), MH(C), MW(C), MU(C), ms(C), MX(C), MY(C), MXA(C), MYA(C), MK$(C), ML(C) DIM FR(C), FD(C), FF(C), FU(C), FI(C), FH(C), FW(C), FX(C), FY(C), FXA(C), FYA(C), FL(C) DIM MPX(C), MPY(C), CODE$(C), PLY(C) FOR I = 1 TO C READ NM$(I), TS(I), SP(I), SR(I), SD(I), SF(I), SL(I), SI(I), SS(I), SU(I), SA(I), SC(I), ST(I), SX(I), SY(I), SH(I), SW(I), SPH(I), SPW(I), SK$(I) READ AP1(I), AR1(I), AD1(I), AF1(I), AI1(I), AH1(I), AW1(I), AX1(I), AY1(I), AXA1(I), AYA1(I), AU1(I), AL1(I) READ AP2(I), AR2(I), AD2(I), AF2(I), AI2(I), AH2(I), AW2(I), AX2(I), AY2(I), AXA2(I), AYA2(I), AU2(I), AL2(I) READ JU(I), JD(I), JS(I), JH(I), JW(I), ws(I), WH(I), WW(I), MT(I), MD1(I), MF1(I), MH1(I), MI1(I), MU1(I), MS1(I), MC1(I) READ MD2(I), MF2(I), MH2(I), MI2(I), MU2(I), MS2(I), MC2(I), MH(I), MW(I), MU(I), ms(I), MX(I), MY(I), MXA(I), MYA(I), MK$(I), ML(I) READ FR(I), FD(I), FF(I), FU(I), FI(I), FH(I), FW(I), FX(I), FY(I), FXA(I), FYA(I), FL(I) READ MPX(I), MPY(I), CODE$(I) NEXT I SPD = .11: RTF = 2: CMP = 1: VCE = 1: CLK = 100: BRN = 0: BP = 1: PIC$ = ".W1L" blf = 1: BLK = 0: GRAV = 1: DMG = 1.5: DIFF = 3: GUT = 0: BPS = 4: KEV = 0: CLR = 0: JOY = 0: JLX = 2: JRX = 5: JTY = 2: JBY = 5 FOR I = 5 TO 1 STEP -1: LOCATE 13, 17: COLOR cl(I): PRINT "BriTech" T = TIMER + .1: WHILE T > TIMER: WEND NEXT I 10 DEF SEG = 0: POKE 1047, PEEK(1047) OR 64: POKE 1047, PEEK(1047) AND 223 P1 = 1: P2 = INT(RND(1) * 8) + 1: CODE$ = "FIGHT" FOR I = 1 TO 8: PLY(I) = 1: NEXT I FOR I = 9 TO 16: PLY(I) = 0: NEXT I FOR I = 1 TO 16: PBT(I) = 0: NEXT I SCREEN , , 1, 0: CLS : DEF SEG = VARSEG(bld%(0)) BLOAD "title.pic", VARPTR(bld%(0)): PALETTE 5, 0 PUT (90, 70), bld%: PCOPY 1, 0 T1$ = "C:\SIDEWALK\" + LEFT$(NM$(12), 8) + "\" + LEFT$(NM$(12), 8) + ".jml" DEF SEG = VARSEG(P1%(0)): BLOAD T1$, VARPTR(P1%(0)) T1$ = "C:\SIDEWALK\" + LEFT$(NM$(12), 8) + "\" + LEFT$(NM$(12), 8) + PIC$ SCREEN , , 2, 0: PUT (1, 1), P1%, PSET FOR I = 1 TO 71 STEP 4: T = TIMER + .04 IF I < 45 THEN J = I ELSE J = 45 GET (1, 46 - J)-(40, 45), P1%: A$ = INKEY$ SCREEN , , 1, 0: PUT (138, I - J), P1%, PSET: PCOPY 1, 0 PUT (138, I - J), P1%, XOR: SCREEN , , 2, 0 WHILE T > TIMER: WEND NEXT I: CLS : SCREEN , , 1, 0 DEF SEG = VARSEG(P1%(0)): BLOAD T1$, VARPTR(P1%(0)) PUT (138, 28), P1%: PCOPY 1, 0 LOCATE 20, 19: PRINT "FIGHT" LOCATE 22, 18: PRINT "OPTIONS": A$ = "": I = -1 IF GUT = 1 THEN COLOR 5: LOCATE 18, 14: PRINT "BLOOD AND GUTS!" IF BRN = 1 THEN COLOR 5: LOCATE 19, 13: PRINT "BURN, BABY, BURN!" WHILE A$ <> CHR$(13) AND A$ <> CHR$(32): COLOR 10 LOCATE 21 + I, 16: PRINT CHR$(248): LOCATE 21 - I, 16: PRINT " ": PCOPY 1, 0 A$ = INKEY$: J = INT((TIMER * 3 - INT(TIMER * 3)) * BPS): COLOR 5 IF KEV = 1 THEN IF A$ = CHR$(0) + CHR$(59) THEN GOSUB 2950 LINE (130, 1)-(190, 72), 0, BF: K = P1 T1$ = "C:\SIDEWALK\" + LEFT$(NM$(K), 8) + "\" + LEFT$(NM$(K), 8) + PIC$ DEF SEG = VARSEG(P1%(0)): BLOAD T1$, VARPTR(P1%(0)) PUT (158 - WW(K) / 2, 72 - WH(K)), P1%, PSET END IF IF A$ <> "" THEN CODE$ = RIGHT$(CODE$ + A$, 5) IF CODE$ = "BRIAN" THEN GOTO 405 IF CODE$ = "JAMES" THEN FIR(3) = 2: FIR(4) = 10: FIR(1) = 2: GUT = 1: LOCATE 18, 14: PRINT "BLOOD AND GUTS!" IF CODE$ = "FLAME" THEN IF BRN = 0 THEN FIR(3) = 4: FIR(4) = 12: BRN = 1: BPS = 5: LOCATE 19, 13: PRINT "BURN, BABY, BURN!" ELSE BRN = 0: BPS = 4: LOCATE 19, 13: PRINT SPACE$(17) END IF IF CODE$ = "KEVIN" THEN KEV = 1 IF CODE$ = "JULIE" THEN WINDOW (0, 0)-(319, 199): GOTO 10 IF CODE$ = "BLOCK" THEN IF BLK = 0 THEN PIC$ = ".APL": BLK = 1: ELSE PIC$ = ".W1L": BLK = 0 GOTO 10 END IF IF CODE$ = "COLOR" THEN CLR = CLR + 1 + (CLR > 30) * 32: IF CLR > 15 THEN TV = CLR - 16 ELSE TV = CLR FOR K = 0 TO 15 IF CLR > 15 OR K > 0 THEN PALETTE K, K + TV + (K + TV > 15) * 16 NEXT K IF CLR < 16 THEN PALETTE 0, 0: IF TV > 0 THEN PALETTE 16 - TV, 16 - TV END IF END IF IF J = BPS THEN J = BPS - 1 IF J < 0 THEN J = 0 IF A$ = CHR$(0) + CHR$(72) OR A$ = CHR$(0) + CHR$(80) THEN I = I * -1 IF A$ = CHR$(27) THEN SYSTEM PALETTE 5, FIR(INT(J + 1)): WEND IF I = -1 THEN P1 = 1: GOTO 900 CLS : COLOR 10: LOCATE 7, 1: PRINT "DIGITIZED VOICES" LOCATE 11, 1: PRINT "TIMER" LOCATE 15, 1: PRINT "DIFFICULTY LEVEL" LOCATE 19, 1: PRINT "PLAYER 1 CONTROL" COLOR 11: LOCATE 8, 10: PRINT "ON OFF" LOCATE 12, 10: PRINT "ON OFF" LOCATE 16, 10: PRINT "DUMB EASY NORM HARD" LOCATE 20, 10: PRINT "KEYBOARD JOYSTICK" LOCATE 22, 10: PRINT "DONE" COLOR 14: LOCATE 3, 12: PRINT "SIDEWALK FIGHTER II" 100 PCOPY 1, 0: A$ = INKEY$ IF VCE = 1 THEN LINE (70, 55)-(88, 63), 0, B ELSE LINE (110, 55)-(136, 63), 0, B IF A$ = CHR$(0) + CHR$(75) THEN VCE = 1 IF A$ = CHR$(0) + CHR$(77) THEN VCE = 0 IF A$ = CHR$(0) + CHR$(72) THEN GOTO 400 IF A$ = CHR$(0) + CHR$(80) OR A$ = CHR$(13) THEN GOTO 200 IF VCE = 1 THEN LINE (70, 55)-(88, 63), 15, B ELSE LINE (110, 55)-(136, 63), 15, B GOTO 100 200 PCOPY 1, 0: A$ = INKEY$ IF CLK = 0 THEN LINE (110, 87)-(136, 95), 0, B ELSE LINE (70, 87)-(88, 95), 0, B IF A$ = CHR$(0) + CHR$(75) THEN CLK = 100 IF A$ = CHR$(0) + CHR$(77) THEN CLK = 0 IF A$ = CHR$(0) + CHR$(72) THEN GOTO 100 IF A$ = CHR$(0) + CHR$(80) OR A$ = CHR$(13) THEN GOTO 300 IF CLK = 0 THEN LINE (110, 87)-(136, 95), 15, B ELSE LINE (70, 87)-(88, 95), 15, B GOTO 200 300 PCOPY 1, 0: A$ = INKEY$ LINE (30 + DIFF * 40, 119)-(64 + DIFF * 40, 127), 0, B IF A$ = CHR$(0) + CHR$(75) AND DIFF > 1 THEN DIFF = DIFF - 1 IF A$ = CHR$(0) + CHR$(77) AND DIFF < 4 THEN DIFF = DIFF + 1 IF A$ = CHR$(0) + CHR$(72) THEN GOTO 200 IF A$ = CHR$(0) + CHR$(80) OR A$ = CHR$(13) THEN GOTO 350 LINE (30 + DIFF * 40, 119)-(64 + DIFF * 40, 127), 15, B GOTO 300 350 PCOPY 1, 0: A$ = INKEY$ LINE (70 + JOY * 73, 151)-(136 + JOY * 73, 159), 0, B IF A$ = CHR$(0) + CHR$(77) THEN JOY = 1: GOSUB 2960: SCREEN , , 1, 0 IF A$ = CHR$(0) + CHR$(75) THEN JOY = 0 IF A$ = CHR$(0) + CHR$(72) THEN GOTO 300 IF A$ = CHR$(0) + CHR$(80) OR A$ = CHR$(13) THEN GOTO 400 LINE (70 + JOY * 73, 151)-(136 + JOY * 73, 159), 15, B GOTO 350 400 PCOPY 1, 0: A$ = INKEY$ LINE (70, 167)-(104, 175), 0, B IF A$ = CHR$(0) + CHR$(72) THEN GOTO 350 IF A$ = CHR$(0) + CHR$(80) THEN GOTO 100 IF A$ = CHR$(13) THEN GOTO 10 LINE (70, 167)-(104, 175), 15, B GOTO 400 405 CLS : COLOR 11: LOCATE 7, 1: PRINT "FLAME CODE" LOCATE 10, 1: PRINT "TIMER" LOCATE 13, 1: PRINT "DIFFICULTY LEVEL" LOCATE 16, 1: PRINT "GRAVITY LEVEL" COLOR 2: LOCATE 8, 10: PRINT "ON OFF" LOCATE 11, 12: PRINT CLK, " " LOCATE 14, 5: PRINT "DEAD DUMB EASY NORM HARD VERY HARD" LOCATE 17, 12: PRINT GRAV, " " LOCATE 19, 10: PRINT "DONE" COLOR 12: LOCATE 3, 13: PRINT "SWF2 DEBUG MODE" 410 PCOPY 1, 0: A$ = INKEY$ IF BRN = 1 THEN LINE (70, 55)-(88, 63), 0, B ELSE LINE (110, 55)-(136, 63), 0, B IF A$ = CHR$(0) + CHR$(75) THEN BRN = 1: BPS = 5 IF A$ = CHR$(0) + CHR$(77) THEN BRN = 0: BPS = 4 IF A$ = CHR$(0) + CHR$(72) THEN GOTO 460 IF A$ = CHR$(0) + CHR$(80) OR A$ = CHR$(13) THEN GOTO 420 IF BRN = 1 THEN LINE (70, 55)-(88, 63), 10, B ELSE LINE (110, 55)-(136, 63), 10, B GOTO 410 420 PCOPY 1, 0: A$ = INKEY$ COLOR 2: LOCATE 11, 12: IF CLK = 0 THEN PRINT "OFF" ELSE PRINT CLK, " " IF A$ = CHR$(0) + CHR$(75) THEN CLK = CLK - 5 - (CLK < 1) * 5 IF A$ = CHR$(0) + CHR$(77) THEN CLK = CLK + 5 + (CLK > 99) * 5 IF A$ = CHR$(0) + CHR$(72) THEN GOTO 410 IF A$ = CHR$(0) + CHR$(80) OR A$ = CHR$(13) THEN GOTO 430 COLOR 10: LOCATE 11, 12: IF CLK = 0 THEN PRINT "OFF" ELSE PRINT CLK, " " GOTO 420 430 PCOPY 1, 0: A$ = INKEY$ LINE (30 + DIFF * 40, 103)-(64 + DIFF * 40 - (DIFF = 5) * 40, 111), 0, B IF A$ = CHR$(0) + CHR$(75) AND DIFF > 0 THEN DIFF = DIFF - 1 IF A$ = CHR$(0) + CHR$(77) AND DIFF < 5 THEN DIFF = DIFF + 1 IF A$ = CHR$(0) + CHR$(72) THEN GOTO 420 IF A$ = CHR$(0) + CHR$(80) OR A$ = CHR$(13) THEN GOTO 440 LINE (30 + DIFF * 40, 103)-(64 + DIFF * 40 - (DIFF = 5) * 40, 111), 10, B GOTO 430 440 PCOPY 1, 0: A$ = INKEY$ COLOR 2: LOCATE 17, 12: PRINT GRAV, " " IF A$ = CHR$(0) + CHR$(75) THEN GRAV = GRAV - .1 - (GRAV < .3) * .1 IF A$ = CHR$(0) + CHR$(77) THEN GRAV = GRAV + .1 + (GRAV > 4.9) * .1 GRAV = CINT(GRAV * 10) / 10 IF A$ = CHR$(0) + CHR$(72) THEN GOTO 430 IF A$ = CHR$(0) + CHR$(80) OR A$ = CHR$(13) THEN GOTO 460 COLOR 10: LOCATE 17, 12: PRINT GRAV, " " GOTO 440 460 PCOPY 1, 0: A$ = INKEY$ LINE (70, 143)-(104, 151), 0, B IF A$ = CHR$(0) + CHR$(72) THEN GOTO 440 IF A$ = CHR$(0) + CHR$(80) THEN GOTO 410 IF A$ = CHR$(13) THEN GOTO 10 LINE (70, 143)-(104, 151), 10, B GOTO 460 900 SCREEN , , 1, 0: CLS : DEF SEG = VARSEG(bld%(0)) BLOAD "WORLD.MAP", VARPTR(bld%(0)): PUT (100, 10), bld%, PSET FOR I = 1 TO 16 IF PBT(I) = 1 THEN LINE (MPX(I) - 1, MPY(I) - 1)-(MPX(I) + 1, MPY(I) + 1), 4 LINE (MPX(I) - 1, MPY(I) + 1)-(MPX(I) + 1, MPY(I) - 1), 4 END IF IF PLY(I) > 0 THEN T1$ = "C:\SIDEWALK\" + LEFT$(NM$(I), 8) + "\" + LEFT$(NM$(I), 8) + ".FCE" DEF SEG = VARSEG(P1%(0)): BLOAD T1$, VARPTR(P1%(0)) J = I - 1: X = 107 + 26 * (J - 4 * (INT(J / 4))): Y = 90 + 26 * INT(J / 4) PUT (X + 1, Y + 1), P1%, PSET: LINE (X, Y)-(X + 26, Y + 26), 8, B END IF NEXT I: GET (100, 10)-(219, 89), bld% IF CODE$ <> "CHAOS" THEN CODE$ = "FIGHT" PALETTE 5, 5: A$ = "": WHILE A$ <> CHR$(13) PUT (100, 10), bld%, PSET J = P1 - 1: X = 107 + 26 * (J - 4 * (INT(J / 4))): Y = 90 + 26 * INT(J / 4) CIRCLE (MPX(P1), MPY(P1)), 1, 4: PSET (MPX(P1), MPY(P1)), 12 LINE (X, Y)-(X + 26, Y + 26), 14, B: PCOPY 1, 0 LINE (X, Y)-(X + 26, Y + 26), 8, B A$ = INKEY$ IF A$ = CHR$(27) THEN GOTO 2700 IF A$ = CHR$(0) + CHR$(75) THEN P1 = P1 - 1 - (P1 = 1) * C WHILE PLY(P1) = 0: P1 = P1 - 1 - (P1 = 1) * C WEND END IF IF A$ = CHR$(0) + CHR$(77) THEN P1 = P1 + 1 + (P1 = C) * C WHILE PLY(P1) = 0: P1 = P1 + 1 + (P1 = C) * C WEND END IF IF A$ = CHR$(0) + CHR$(80) THEN P1 = P1 + 4 + (P1 > C - 4) * C WHILE PLY(P1) = 0: P1 = P1 + 4 + (P1 > C - 4) * C WEND END IF IF A$ = CHR$(0) + CHR$(72) THEN P1 = P1 - 4 - (P1 < 5) * C WHILE PLY(P1) = 0: P1 = P1 - 4 - (P1 < 5) * C WEND END IF IF CODE$ = "CHAOS" THEN P1 = P1 + 1 + (P1 = C) * C ELSE IF A$ <> "" THEN IF (ASC(A$) < 91 AND ASC(A$) > 64) OR A$ = "0" OR A$ = "1" THEN CODE$ = RIGHT$(CODE$ + A$, 5) FOR I = 1 TO 16 IF CODE$ = CODE$(I) OR CODE$ = "CHAOS" THEN PLY(I) = 1: P1 = I T1$ = "C:\SIDEWALK\" + LEFT$(NM$(I), 8) + "\" + LEFT$(NM$(I), 8) + ".FCE" DEF SEG = VARSEG(P1%(0)): BLOAD T1$, VARPTR(P1%(0)) J = I - 1: X = 107 + 26 * (J - 4 * (INT(J / 4))): Y = 90 + 26 * INT(J / 4) PUT (X + 1, Y + 1), P1%, PSET: LINE (X, Y)-(X + 26, Y + 26), 8, B IF CODE$ <> "CHAOS" THEN CODE$ = "FIGHT" END IF NEXT I END IF END IF END IF WEND 1000 SCREEN 7, , 2, 0: CLS : SCREEN 7, , 3, 0: CLS : SCREEN 7, , 0, 0: CLS : ROUND = 1 PP1 = P1: PP2 = P2: P1W = 0: P2W = 0: T1$ = "C:\SIDEWALK\" + LEFT$(NM$(P1), 8) + "\" + LEFT$(NM$(P1), 8) T2$ = "C:\SIDEWALK\" + LEFT$(NM$(P2), 8) + "\" + LEFT$(NM$(P2), 8) IF VCE = 1 THEN SHELL "SBSIM /Q /U" SHELL "SBSIM SIDEWALK.CFG /Q" SHELL "VOICE /Q /SPEAKER:ON" TN1$ = LEFT$(T1$, LEN(T1$) - 1) TN2$ = LEFT$(T2$, LEN(T2$) - 1) END IF IF CMP = 1 THEN OPEN T2$ + ".rct" FOR INPUT AS #1 INPUT #1, CFR, CSR, CAV: CJR = JU(P2) * 2 / JD(P2) IF INT(CJR) = CJR THEN CJR = (CJR + 1) * JS(P2) ELSE CJR = INT(CJR * JS(P2)) CFR = CFR + CJR: FOR J = 1 TO 4: FOR I = 12 TO 1 STEP -1 INPUT #1, RCT(I, J): NEXT I: NEXT J: CLOSE #1 END IF CLS : GET (0, 0)-(319, 11), bld%: RESTORE 3000 DEF SEG = VARSEG(P1%(0)): BLOAD T1$ + ".W1R", VARPTR(P1%(0)) DEF SEG = VARSEG(P2%(0)): BLOAD T2$ + ".W1L", VARPTR(P2%(0)) PUT (20, 170 - WH(PP1)), P1%: PUT (299 - WW(PP2), 170 - WH(PP2)), P2% LOCATE 11, 19: COLOR 14: PRINT "vs": COLOR 15 LOCATE 10, 13 - INT(LEN(NM$(P1)) / 2): PRINT NM$(P1) LOCATE 10, 27 - INT(LEN(NM$(P2)) / 2): PRINT NM$(P2) T = TIMER + 2 FOR L = 1 TO 14 SCREEN 7, , 2, 0: READ I$, I, J, K: DEF SEG = VARSEG(P1%(0)) BLOAD T1$ + "." + I$ + "R", VARPTR(P1%(0)): PUT (I, K), P1% BLOAD T1$ + "." + I$ + "L", VARPTR(P1%(0)): PUT (J, K), P1% SCREEN 7, , 3, 0: DEF SEG = VARSEG(P2%(0)) BLOAD T2$ + "." + I$ + "R", VARPTR(P2%(0)): PUT (I, K), P2% BLOAD T2$ + "." + I$ + "L", VARPTR(P2%(0)): PUT (J, K), P2% NEXT L 1005 L1 = 130: L2 = 130: Y1 = 170 - WH(PP1): Y2 = 170 - WH(PP2): X1 = 20: X2 = 299 - WW(PP2): D1 = 1: D2 = -1: DEF SEG = 0: DT = 0: RTBLF = SQR(blf) IF VCE = 1 THEN SHELL "VOICE /Q /START:" + RIGHT$(STR$(ROUND), 1) + "ROUND" + ".VOC /WAIT:1" WHILE T > TIMER: WEND TIME = TIMER + CLK 1010 T = TIMER: SCREEN 7, , 2, 0: BP = BP * -1: JHP = 0: W1 = WW(PP1): H1 = WH(PP1): AS1 = 0: AL1 = -1: GET (20 - D1 * 20, 0)-(20 - D1 * 20 + WW(PP1), WH(PP1)), P1% IF PS1 < 2 THEN IF X2 < X1 THEN D1 = -1 ELSE IF X1 < X2 THEN D1 = 1 IF CLK = 0 OR TIME > TIMER THEN IF JOY = 1 THEN GOSUB 2050 ELSE GOSUB 2000 IF PS1 = 1 THEN GOTO 1050 IF PS1 = 2 THEN GOTO 1100 IF PS1 = 3 THEN GOTO 1150 IF PS1 = 4 THEN GOTO 1200 IF PS1 = 5 THEN GOTO 1250 IF PS1 = 6 THEN GOTO 1300 IF PS1 = 7 THEN GOTO 1350 IF PS1 = 8 THEN GOTO 1400 IF PS1 = 9 THEN GOTO 1425 IF PS1 = -1 THEN GOTO 1049 1015 IF Y1 > 170 - WH(PP1) THEN Y1 = 170 - WH(PP1) IF X1 < 0 THEN X1 = 0: PS1 = 0: ELSE IF X1 > 319 - WW(PP1) THEN X1 = 319 - WW(PP1): PS1 = 0 1020 IF s1 = 0 THEN GOTO 1030 SX1 = SX1 + SS1: ST1 = ST1 + 1: IF ST1 >= ST(P1) OR SX1 < 0 OR SX1 > 319 - SW(PP1) THEN s1 = 0: ST1 = 0: GOTO 1030 SS1 = SS1 + SA1: SY1 = SY1 + SU1: IF SY1 > 170 - SH(PP1) THEN SY1 = 170 - SH(PP1): SU1 = SU1 * -1 ELSE SU1 = SU1 + SC(P1) GET (20 + SGN(SS1) * -20 + 80 * (s1 - 1), 160)-(20 + SGN(SS1) * -20 + 80 * (s1 - 1) + SW(PP1), 160 + SH(PP1)), s1% s1 = s1 + 1: IF s1 > 3 THEN s1 = 1 IF SX1 < X2 + W2 AND SX1 + SW(PP1) > X2 AND SY1 < Y2 + H2 * 3 / 4 AND SY1 + SH(PP1) > Y2 AND LTH > -1 THEN IF PS2 = -1 THEN L2 = L2 - 1: s1 = 0: ST1 = 0: CC2 = 0: SW2 = SGN(SS1) * SF(P1) ELSE LTH = -1: PS2 = 8 + ((TS(P1) AND 2) / 2 OR BRN): CC2 = 0: JU2 = SL(P1): L2 = L2 - SD(P1) * DMG: JS2 = SF(P1) * SGN(SS1): HT2 = SI(P1): s1 = (TS(P1) AND 1): ST1 = ST1 * (TS(P1) AND 1) IF (TS(P1) AND 8) = 8 THEN BLX = X2 + SGN(D2 + 1) * W2 - 5 * D2: BLY = Y2 + 10: BLL = 3 * blf: BLC = 1 END IF END IF IF SX1 < SX2 + SW(PP2) AND SX1 + SW(PP1) > SX2 AND SY1 < SY2 + SH(PP2) AND SY1 + SH(PP1) > SY2 AND S2 > 0 AND (TS(P1) AND 1) <> 1 AND (TS(P2) AND 1) <> 1 THEN s1 = 0: S2 = 0: ST1 = 0: ST2 = 0 1030 SCREEN 7, , 3, 0: W2 = WW(PP2): H2 = WH(PP2): AS2 = 0: AL2 = -1: GET (20 - D2 * 20, 0)-(20 - D2 * 20 + WW(PP2), WH(PP2)), P2% IF PS2 < 2 THEN IF X1 < X2 THEN D2 = -1 ELSE IF X2 < X1 THEN D2 = 1 XA1 = X1 + SGN(D1 + 1) * W1 - A1 * D1 IF CLK = 0 OR TIME > TIMER THEN IF CMP = 1 THEN GOSUB 2600 ELSE GOSUB 2100 IF PS2 = 1 THEN GOTO 1450 IF PS2 = 2 THEN GOTO 1500 IF PS2 = 3 THEN GOTO 1550 IF PS2 = 4 THEN GOTO 1600 IF PS2 = 5 THEN GOTO 1650 IF PS2 = 6 THEN GOTO 1700 IF PS2 = 7 THEN GOTO 1750 IF PS2 = 8 THEN GOTO 1800 IF PS2 = 9 THEN GOTO 1825 IF PS2 = -1 THEN GOTO 1449 1035 IF Y2 > 170 - WH(PP2) THEN Y2 = 170 - WH(PP2) IF X2 < 0 THEN X2 = 0: PS2 = 0: ELSE IF X2 > 319 - WW(PP2) THEN X2 = 319 - WW(PP2): PS2 = 0 1040 IF S2 = 0 THEN GOTO 1045 SX2 = SX2 + SS2: ST2 = ST2 + 1: IF ST2 >= ST(P2) OR SX2 < 0 OR SX2 > 319 - SW(PP2) THEN S2 = 0: ST2 = 0: GOTO 1030 SS2 = SS2 + SA2: SY2 = SY2 + SU2: IF SY2 > 170 - SH(PP2) THEN SY2 = 170 - SH(PP2): SU2 = SU2 * -1 ELSE SU2 = SU2 + SC(P2) GET (20 + SGN(SS2) * -20 + 80 * (S2 - 1), 160)-(20 + SGN(SS2) * -20 + 80 * (S2 - 1) + SW(PP2), 160 + SH(PP2)), S2% S2 = S2 + 1: IF S2 > 3 THEN S2 = 1 IF SX2 < X1 + W1 AND SX2 + SW(PP2) > X1 AND SY2 < Y1 + H1 * 3 / 4 AND SY2 + SH(PP2) > Y1 AND LTH > -1 THEN IF PS1 = -1 THEN L1 = L1 - 1: S2 = 0: ST2 = 0: CC1 = 0: SW1 = SGN(SS2) * SF(P2) ELSE LTH = -1: PS1 = 8 + ((TS(P2) AND 2) / 2 OR BRN): CC1 = 0: JU1 = SL(P2): L1 = L1 - SD(P2) * DMG: JS1 = SF(P2) * SGN(SS2): HT1 = SI(P2): IF (TS(P2) AND 1) = 0 THEN S2 = 0: ST2 = 0 IF (TS(P2) AND 8) = 8 THEN BLX = X1 + SGN(D1 + 1) * W1 - 5 * D1: BLY = Y1 + 10: BLC = 2: BLL = 3 * blf END IF END IF 1045 IF Y1 < 0 THEN Y1 = 0 IF Y2 < 0 THEN Y2 = 0 SCREEN 7, , 1, 0: CLS : LOCATE 3, 3: PRINT NM$(P1): LOCATE 3, 39 - LEN(NM$(P2)): PRINT NM$(P2) POKE 1047, PEEK(1047) OR 64 POKE 1047, PEEK(1047) AND 223 IF CC1 = 0 OR PS1 < 9 THEN PUT (X1, Y1), P1% ELSE IF BP = -1 THEN PUT (X1, Y1), B1% ELSE PUT (X1, Y1), B2% IF CC2 = 0 OR PS2 < 9 THEN PUT (X2, Y2), P2% ELSE IF BP = 1 THEN PUT (X2, Y2), B1% ELSE PUT (X2, Y2), B2% IF s1 > 0 THEN PUT (SX1, SY1), s1% IF S2 > 0 THEN PUT (SX2, SY2), S2% COLOR 10: TS$ = STRING$(P1W, 248): LOCATE 4, 3: PRINT TS$ TS$ = STRING$(P2W, 248): LOCATE 4, 39 - P2W: PRINT TS$: COLOR 15 LINE (14, 3)-(146, 14), 7, B: LINE (172, 3)-(304, 14), 7, B LINE (15, 4)-(145, 13), 14, BF: LINE (173, 4)-(303, 13), 14, BF IF L1 >= 1 THEN LINE (15, 4)-(L1 + 15, 13), 12, BF ELSE LTH = 0: T = T + .02: DT = DT + 1: IF DT > 40 THEN GOTO 2650 IF L2 >= 1 THEN LINE (303 - L2, 4)-(303, 13), 12, BF ELSE LTH = 0: T = T + .02: DT = DT + 1: IF DT > 40 THEN GOTO 2650 TS$ = STR$(INT(TIME - TIMER)) IF CLK > 0 THEN IF TIME > TIMER THEN LOCATE 3, 22 - LEN(TS$): PRINT TS$ ELSE IF PS1 = 0 AND PS2 = 0 THEN 2650 IF AL1 = -1 AND AL2 = -1 THEN GOTO 1047 XA2 = X2 + SGN(D2 + 1) * W2 - A2 * D2 P1H = 0: P2H = 0: IF BLK = 1 THEN GOTO 1950 IF ABS(X2 + W2 / 2 - XA1) <= AA1 + W2 / 2 AND Y2 < Y1 + BB1 AND Y1 + B1 < Y2 + H2 AND LTH < 1 AND AL1 > -1 THEN P1H = 1 IF ABS(X1 + W1 / 2 - XA2) <= AA2 + W1 / 2 AND Y1 < Y2 + BB2 AND Y2 + B2 < Y1 + H1 AND LTH < 1 AND AL2 > -1 THEN P2H = 1 IF P1H = 1 AND NOT (P2H = 1 AND AL2 > AL1) THEN L2 = L2 - DMG * AD1: PS2 = 8 + (AS1 AND 1 OR BRN): JU2 = AU1: JS2 = D1 * AF1: HT2 = AI1: BLL = AL1 * blf: JHP = 2: IF PS1 = 7 AND (AS1 AND 2) = 2 THEN CC1 = MC1(P1) IF P2H = 1 AND NOT (P1H = 1 AND AL1 > AL2) THEN L1 = L1 - DMG * AD2: PS1 = 8 + (AS2 AND 1 OR BRN): JU1 = AU2: JS1 = D2 * AF2: HT1 = AI2: BLL = AL2 * blf: JHP = 1: IF PS2 = 7 AND (AS2 AND 2) = 2 THEN CC2 = MC1(P2) 1046 IF JHP = 1 THEN BLX = X1 + SGN(D1 + 1) * W1 - 5 * D1: BLY = Y1 + 10: BLC = 1: JHP = 0: LTH = 1 IF JHP = 2 THEN BLX = X2 + SGN(D2 + 1) * W2 - 5 * D2: BLY = Y2 + 10: BLC = 1: JHP = 0: LTH = 1 1047 PUT (0, 171), bld%, PSET: IF BLC < 1 THEN GOTO 1234 BLY = BLY + (BLC - BLL / RTBLF) * 2.5: BLC = BLC + GRAV ^ 2: IF BLY > 170 THEN BLY = 176 FOR I = -1 TO 1: CIRCLE (BLX + I * (BLC + BLL), BLY), BLL, 4, , , 3 / 6: PAINT (BLX + I * (BLC + BLL), BLY), 4, 4: NEXT I IF BLY > 170 THEN BLC = 0: BLL = 0 IF RND(1) > .6 AND BLL > 2 AND BLC = 2 AND CGT < 1 THEN GTC = 1: CGT = INT(RND(1) * 3) + 1: GTX = BLX: GTY = BLY 1234 IF GUT < 1 OR CGT < 1 THEN GOTO 1048 GTY = GTY + (GTC - 5.1) * 2.5: GTC = GTC + GRAV ^ 2 IF GTY < 1 THEN GTY = 1 IF GTX > 305 THEN GTX = 305 IF GTY > 155 THEN GTY = 170 PUT (GTX, GTY), GUTS%((CGT + 2) * 122), AND PUT (GTX, GTY), GUTS%((CGT - 1) * 122), XOR IF GTY = 170 THEN CGT = 0 1048 GET (0, 171)-(319, 181), bld%: PCOPY 1, 0 WHILE T + SPD > TIMER: WEND: GOTO 1010 1049 Y1 = 170 - WH(PP1): CC1 = CC1 + 1: IF CC1 > 5 THEN PS1 = 0: CC1 = 0 GET (260 - D1 * 20, 0)-(260 - D1 * 20 + WW(PP1), WH(PP1)), P1% X1 = X1 + SW1: GOTO 1015 1050 IF CC1 = 0 THEN CC1 = CC1 + 1: GET (100 - D1 * 20, 0)-(100 - D1 * 20 + WW(PP1), WH(PP1)), P1% ELSE CC1 = 0: PS1 = 0 X1 = X1 + SW1: GOTO 1015 1100 W1 = JW(PP1): H1 = JH(PP1): X1 = X1 + JS1: IF X1 < 0 THEN X1 = 0 IF X1 > 319 - JW(PP1) THEN X1 = 319 - JW(PP1) Y1 = Y1 - JU1: JU1 = JU1 - JD(P1) * GRAV: IF P1 = 16 AND JU1 > -8 THEN Y1 = 135 IF Y1 >= 170 - WH(PP1) THEN Y1 = 170 - WH(PP1): PS1 = 0: AT1 = 0: GOTO 1015 IF P1 = 16 AND JU1 > -8 THEN Y1 = 165 GET (180 - D1 * 20, 0)-(180 - D1 * 20 + JW(PP1), JH(PP1)), P1% GOTO 1020 1150 CC1 = CC1 + 1: IF CC1 > AR1(P1) + AP1(P1) THEN PS1 = 0: CC1 = 0: Y1 = 170 - WH(PP1): IF D1 = -1 THEN X1 = X1 - WW(PP1) + AW1(PP1) IF CC1 = AP1(P1) + 1 AND D1 = -1 THEN X1 = X1 + WW(PP1) - AW1(PP1) IF CC1 > AP1(P1) THEN Y1 = 170 - AH1(PP1): A1 = (AX1(P1) + AXA1(P1)) / 2: AA1 = AXA1(P1) - A1: B1 = AY1(P1): BB1 = AYA1(P1): AL1 = AL1(P1): AD1 = AD1(P1): AU1 = AU1(P1): AF1 = AF1(P1): AI1 = AI1(P1): W1 = AW1(PP1): H1 = AH1(PP1): GET (27.5 - D1 * _ 27.5, 60)-(27.5 - D1 * 27.5 + AW1(PP1), 60 + AH1(PP1)), P1% ELSE GET (260 - D1 * 20, 0)-(260 - D1 * 20 + WW(PP1), WH(PP1)), P1% IF X1 > 319 - AW1(PP1) THEN X1 = 319 - AW1(PP1) ELSE IF X1 < 0 THEN X1 = 0 GOTO 1020 1200 CC1 = CC1 + 1: IF CC1 > AR2(P1) + AP2(P1) THEN PS1 = 0: CC1 = 0: Y1 = 170 - WH(PP1): IF D1 = -1 THEN X1 = X1 - WW(PP1) + AW2(PP1) IF CC1 = AP2(P1) + 1 AND D1 = -1 THEN X1 = X1 + WW(PP1) - AW2(PP1) IF CC1 > AP2(P1) THEN Y1 = 170 - AH2(PP1): A1 = (AX2(P1) + AXA2(P1)) / 2: AA1 = AXA2(P1) - A1: B1 = AY2(P1): BB1 = AYA2(P1): AL1 = AL2(P1): AD1 = AD2(P1): AU1 = AU2(P1): AF1 = AF2(P1): AI1 = AI2(P1): W1 = AW2(PP1): H1 = AH2(PP1): GET (137.5 - D1 * _ 27.5, 60)-(137.5 - D1 * 27.5 + AW2(PP1), 60 + AH2(PP1)), P1% ELSE GET (260 - D1 * 20, 0)-(260 - D1 * 20 + WW(PP1), WH(PP1)), P1% IF X1 > 319 - AW2(PP1) THEN X1 = 319 - AW2(PP1) ELSE IF X1 < 0 THEN X1 = 0 GOTO 1020 1250 W1 = FW(PP1): H1 = FH(PP1): X1 = X1 + JS1: IF X1 < 0 THEN X1 = 0 A1 = (FX(P1) + FXA(P1)) / 2: AA1 = FXA(P1) - A1: B1 = FY(P1): BB1 = FYA(P1): AL1 = FL(P1): AD1 = FD(P1): AU1 = FU(P1): AF1 = FF(P1): AI1 = FI(P1): IF X1 > 319 - FW(PP1) THEN X1 = 319 - FW(PP1) Y1 = Y1 - JU1: JU1 = JU1 - JD(P1) * GRAV: IF P1 = 16 AND JU1 > -8 THEN Y1 = 135 IF Y1 >= 170 - WH(PP1) THEN Y1 = 170 - WH(PP1): PS1 = 0: AT1 = 0: GOTO 1015 IF P1 = 16 AND JU1 > -8 THEN Y1 = 149 GET (27.5 - D1 * 27.5, 110)-(27.5 - D1 * 27.5 + FW(PP1), 110 + FH(PP1)), P1% AT1 = AT1 + 1: IF AT1 > FR(P1) THEN PS1 = 2 GOTO 1020 1300 CC1 = CC1 + 1: IF CC1 > SR(P1) + SP(P1) THEN PS1 = 0: CC1 = 0: Y1 = 170 - WH(PP1): IF D1 = -1 THEN X1 = X1 - WW(PP1) + SPW(PP1) IF CC1 = SP(P1) + 1 AND D1 = -1 THEN X1 = X1 + WW(PP1) - SPW(PP1) IF CC1 > SP(P1) THEN W1 = SW(PP1): H1 = SH(PP1): GET (245 - D1 * 25, 60)-(245 - D1 * 25 + SPW(PP1), 60 + SPH(PP1)), P1% ELSE GET (260 - D1 * 20, 0)-(260 - D1 * 20 + WW(PP1), WH(PP1)), P1% IF CC1 = SP(P1) + 1 THEN SA1 = SA(P1) * D1: SS1 = SS(P1) * D1: SU1 = SU(P1): s1 = 1: SX1 = X1 + SPW(PP1) / 2 + SX(P1) * D1 + SW(PP1) * SGN(D1 - 1): Y1 = 170 - SPH(PP1): SY1 = Y1 + SY(P1) IF X1 > 319 - SPW(PP1) THEN X1 = 319 - SPW(PP1) ELSE IF X1 < 0 THEN X1 = 0 GOTO 1020 1350 A1 = (MX(P1) + MXA(P1)) / 2: AA1 = MXA(P1) - A1: B1 = MY(P1): BB1 = MYA(P1): AS1 = MT(P1): AL1 = ML(P1): W1 = MW(PP1): H1 = MH(PP1): CC1 = CC1 + 1 IF CC1 > MC1(P1) THEN AD1 = MD2(P1): AU1 = MH2(P1): AF1 = MF2(P1): AI1 = MI2(P1): X1 = X1 + MS2(P1) * TV1: Y1 = Y1 - MU2(P1) ELSE AD1 = MD1(P1): AU1 = MH1(P1): AF1 = MF1(P1): AI1 = MI1(P1): X1 = X1 + MS1(P1) * TV1: Y1 = Y1 - MU1(P1): IF CC1 = 1 AND _ (MT(P1) AND 16) = 16 THEN Y1 = 170 - MH(PP1) IF X1 > 319 - MW(PP1) THEN X1 = 319 - MW(PP1): IF CC1 < MC1(P1) THEN CC1 = MC1(P1) IF X1 < 0 THEN X1 = 0: IF CC1 <= MC1(P1) THEN CC1 = MC1(P1) IF (MT(P1) AND 8) = 8 THEN Y1 = 170 - MH(PP1) IF Y1 > 170 - MH(PP1) THEN Y1 = 170 - WH(PP1): PS1 = 0: CC1 = 0 IF (MT(P1) AND 4) = 4 THEN D1 = D1 * -1 IF CC1 > MC1(P1) + MC2(P1) THEN PS1 = 2: AT1 = 1: D1 = TV1: CC1 = 0: JU1 = MU(P1): JS1 = ms(P1) * TV1: X1 = X1 + (WW(PP1) - MW(PP1)) * SGN(TV1 - 1): GOTO 1015 GET (140 - D1 * 30, 110)-(140 - D1 * 30 + MW(PP1), 110 + MH(PP1)), P1% GOTO 1020 1400 W1 = JW(PP1): H1 = JH(PP1): X1 = X1 + JS1: IF X1 < 0 THEN X1 = 0: IF PS2 > 2 AND PS2 < 8 AND L1 >= 1 THEN PS2 = 8: JS2 = 18: HT2 = 3: JU2 = 2 IF X1 > 319 - JW(PP1) THEN X1 = 319 - JW(PP1): IF PS2 > 2 AND PS2 < 8 AND L1 >= 1 THEN PS2 = 8: JS2 = -18: HT2 = 3: JU2 = 2 Y1 = Y1 - JU1: IF Y1 < 170 - JH(PP1) THEN JU1 = JU1 - JD(P1) * GRAV ELSE Y1 = 170 - JH(PP1) GET (250 - D1 * 20, 110)-(250 - D1 * 20 + JW(PP1), 110 + JH(PP1)), P1% IF (JU1 < -6 OR L1 < 1) AND Y1 >= 170 - JH(PP1) THEN Y1 = 150: JS1 = INT(JS1 / 1.5): GET (260 - 20 * D1, 160)-(260 + JW(PP1) - 20 * D1, 180), P1% CC1 = CC1 + 1: IF CC1 > HT1 AND L1 >= 1 THEN CC1 = 0: PS1 = 2: AT1 = 1: LTH = 0 GOTO 1020 1425 W1 = 35: H1 = 45: X1 = X1 + JS1: IF X1 < 0 THEN X1 = 0: IF PS2 > 2 AND PS2 < 8 THEN PS2 = 8: JS2 = 18: HT2 = 3: JU2 = 2 IF X1 > 279 THEN X1 = 279: IF PS2 > 2 AND PS2 < 8 THEN PS2 = 8: JS2 = -18: HT2 = 3: JU2 = 2 BLC = 0: Y1 = Y1 - JU1: IF Y1 < 125 THEN JU1 = JU1 - JD(P1) * GRAV ELSE Y1 = 125 GET (250 - D1 * 20, 110)-(250 - D1 * 20 + JW(PP1), 110 + JH(PP1)), P1% IF (JU1 < -5 OR L1 < 1) AND Y1 >= 125 THEN Y1 = 150: JS1 = INT(JS1 / 1.5): GET (260 - 20 * D1, 160)-(260 + JW(PP1) - 20 * D1, 180), P1%: PS1 = 8 CC1 = CC1 + 1: IF CC1 > HT1 - 1 AND L1 >= 1 THEN PS1 = 8 GOTO 1020 1449 Y2 = 170 - WH(PP2): CC2 = CC2 + 1: IF CC2 > 5 THEN PS2 = 0: CC2 = 0 GET (260 - D2 * 20, 0)-(260 - D2 * 20 + WW(PP2), WH(PP2)), P2% X2 = X2 + SW2: GOTO 1035 1450 IF CC2 = 0 THEN CC2 = CC2 + 1: GET (100 - D2 * 20, 0)-(100 - D2 * 20 + WW(PP2), WH(PP2)), P2% ELSE CC2 = 0: PS2 = 0 X2 = X2 + SW2: GOTO 1035 1500 W2 = JW(PP2): H2 = JH(PP2): X2 = X2 + JS2: IF X2 < 0 THEN X2 = 0 IF X2 > 319 - JW(PP2) THEN X2 = 319 - JW(PP2) Y2 = Y2 - JU2: JU2 = JU2 - JD(P2) * GRAV: IF P2 = 16 AND JU2 > -8 THEN Y2 = 135 IF Y2 >= 170 - WH(PP2) THEN Y2 = 170 - WH(PP2): PS2 = 0: AT2 = 0: GOTO 1035 IF P2 = 16 AND JU2 > -8 THEN Y2 = 165 GET (180 - D2 * 20, 0)-(180 - D2 * 20 + JW(PP2), JH(PP2)), P2% GOTO 1040 1550 CC2 = CC2 + 1: IF CC2 > AR1(P2) + AP1(P2) THEN Y2 = 170 - WH(PP2): PS2 = 0: CC2 = 0: IF D2 = -1 THEN X2 = X2 - WW(PP2) + AW1(PP2) IF CC2 = AP1(P2) + 1 AND D2 = -1 THEN X2 = X2 + WW(PP2) - AW1(PP2) IF CC2 > AP1(P2) THEN Y2 = 170 - AH1(PP2): A2 = (AX1(P2) + AXA1(P2)) / 2: AA2 = AXA1(P2) - A2: B2 = AY1(P2): BB2 = AYA1(P2): AL2 = AL1(P2): AD2 = AD1(P2): AU2 = AU1(P2): AF2 = AF1(P2): AI2 = AI1(P2): W2 = AW1(PP2): H2 = AH1(PP2): GET (27.5 - D2 * _ 27.5, 60)-(27.5 - D2 * 27.5 + AW1(PP2), 60 + AH1(PP2)), P2% ELSE GET (260 - D2 * 20, 0)-(260 - D2 * 20 + WW(PP2), WH(PP2)), P2% IF X2 > 319 - AW1(PP2) THEN X2 = 319 - AW1(PP2) ELSE IF X2 < 0 THEN X2 = 0 GOTO 1040 1600 CC2 = CC2 + 1: IF CC2 > AR2(P2) + AP2(P2) THEN Y2 = 170 - WH(PP2): PS2 = 0: CC2 = 0: IF D2 = -1 THEN X2 = X2 - WW(PP2) + AW2(PP2) IF CC2 = AP2(P2) + 1 AND D2 = -1 THEN X2 = X2 + WW(PP2) - AW2(PP2) IF CC2 > AP2(P2) THEN Y2 = 170 - AH2(PP2): A2 = (AX2(P2) + AXA2(P2)) / 2: AA2 = AXA2(P2) - A2: B2 = AY2(P2): BB2 = AYA2(P2): AL2 = AL2(P2): AD2 = AD2(P2): AU2 = AU2(P2): AF2 = AF2(P2): AI2 = AI2(P2): W2 = AW2(PP2): H2 = AH2(PP2): GET (137.5 - D2 * _ 27.5, 60)-(137.5 - D2 * 27.5 + AW2(PP2), 60 + AH2(PP2)), P2% ELSE GET (260 - D2 * 20, 0)-(260 - D2 * 20 + WW(PP2), WH(PP2)), P2% IF X2 > 319 - AW2(PP2) THEN X2 = 319 - AW2(PP2) ELSE IF X2 < 0 THEN X2 = 0 GOTO 1040 1650 W2 = FW(PP2): H2 = FH(PP2): X2 = X2 + JS2: IF X2 < 0 THEN X2 = 0 A2 = (FX(P2) + FXA(P2)) / 2: B2 = FY(P2): AA2 = FXA(P2) - A2: BB2 = FYA(P2): AL2 = FL(P2): AD2 = FD(P2): AU2 = FU(P2): AF2 = FF(P2): AI2 = FI(P2): IF X2 > 319 - FW(PP2) THEN X2 = 319 - FW(PP2) Y2 = Y2 - JU2: JU2 = JU2 - JD(P2) * GRAV: IF P2 = 16 AND JU2 > -8 THEN Y2 = 135 IF Y2 >= 170 - WH(PP2) THEN Y2 = 170 - WH(PP2): PS2 = 0: AT2 = 0: GOTO 1035 IF P2 = 16 AND JU2 > -8 THEN Y2 = 149 GET (27.5 - D2 * 27.5, 110)-(27.5 - D2 * 27.5 + FW(PP2), 110 + FH(PP2)), P2% AT2 = AT2 + 1: IF AT2 > FR(P2) THEN PS2 = 2 GOTO 1040 1700 CC2 = CC2 + 1: IF CC2 > SR(P2) + SP(P2) THEN PS2 = 0: CC2 = 0: Y2 = 170 - WH(PP2): IF D2 = -1 THEN X2 = X2 - WW(PP2) + SPW(PP2) IF CC2 = SP(P2) + 1 AND D2 = -1 THEN X2 = X2 + WW(PP2) - SPW(PP2) IF CC2 > SP(P2) THEN W2 = SW(PP2): H2 = SH(PP2): GET (245 - D2 * 25, 60)-(245 - D2 * 25 + SPW(PP2), 60 + SPH(PP2)), P2% ELSE GET (260 - D2 * 20, 0)-(260 - D2 * 20 + WW(PP2), WH(PP2)), P2% IF CC2 = SP(P2) + 1 THEN SA2 = SA(P2) * D2: SS2 = SS(P2) * D2: SU2 = SU(P2): S2 = 1: SX2 = X2 + SPW(PP2) / 2 + SX(P2) * D2 + SW(PP2) * SGN(D2 - 1): Y2 = 170 - SPH(PP2): SY2 = Y2 + SY(P2) IF X2 > 319 - SPW(PP2) THEN X2 = 319 - SPW(PP2) ELSE IF X2 < 0 THEN X2 = 0 GOTO 1040 1750 A2 = (MX(P2) + MXA(P2)) / 2: B2 = MY(P2): AA2 = A2 - MX(P2): BB2 = MYA(P2): AS2 = MT(P2): AL2 = ML(P2): W2 = MW(PP2): H2 = MH(PP2): CC2 = CC2 + 1 IF CC2 > MC1(P2) THEN AD2 = MD2(P2): AU2 = MH2(P2): AF2 = MF2(P2): AI2 = MI2(P2): X2 = X2 + MS2(P2) * TV2: Y2 = Y2 - MU2(P2) ELSE AD2 = MD1(P2): AU2 = MH1(P2): AF2 = MF1(P2): AI2 = MI1(P2): X2 = X2 + MS1(P2) * TV2: Y2 = Y2 - MU1(P2): IF CC2 = 1 AND _ (MT(P2) AND 16) = 16 THEN Y2 = 170 - MH(PP2) IF X2 > 319 - MW(PP2) THEN X2 = 319 - MW(PP2): IF CC2 < MC1(P2) THEN CC2 = MC1(P2) IF X2 < 0 THEN X2 = 0: IF CC2 <= MC1(P2) THEN CC2 = MC1(P2) IF (MT(P2) AND 8) = 8 THEN Y2 = 170 - MH(PP2) IF Y2 > 170 - MH(PP2) THEN Y2 = 170 - WH(PP2): PS2 = 0: CC2 = 0 IF (MT(P2) AND 4) = 4 THEN D2 = D2 * -1 IF CC2 > MC1(P2) + MC2(P2) THEN PS2 = 2: AT2 = 1: D2 = TV2: CC2 = 0: JU2 = MU(P2): JS2 = ms(P2) * TV2: X2 = X2 + (WW(PP2) - MW(PP2)) * SGN(TV2 - 1): GOTO 1035 GET (140 - D2 * 30, 110)-(140 - D2 * 30 + MW(PP2), 110 + MH(PP2)), P2% GOTO 1040 1800 W2 = JW(PP2): H2 = JH(PP2): X2 = X2 + JS2: IF X2 < 0 THEN X2 = 0: IF PS1 > 2 AND PS1 < 8 AND L2 >= 1 THEN PS1 = 8: JS1 = 18: HT1 = 3: JU1 = 2 IF X2 > 319 - JW(PP2) THEN X2 = 319 - JW(PP2): IF PS1 > 2 AND PS1 < 8 AND L2 >= 1 THEN PS1 = 8: JS1 = -18: HT1 = 3: JU1 = 2 Y2 = Y2 - JU2: IF Y2 < 170 - JH(PP2) THEN JU2 = JU2 - JD(P2) * GRAV ELSE Y2 = 170 - JH(PP2) GET (250 - D2 * 20, 110)-(250 - D2 * 20 + JW(PP2), 110 + JH(PP2)), P2% IF (JU2 < -6 OR L2 < 1) AND Y2 >= 170 - JH(PP2) THEN Y2 = 150: JS2 = INT(JS2 / 1.5): GET (260 - 20 * D2, 160)-(260 + JW(PP2) - 20 * D2, 180), P2% CC2 = CC2 + 1: IF CC2 > HT2 AND L2 >= 1 THEN CC2 = 0: PS2 = 2: AT2 = 1: LTH = 0 GOTO 1040 1825 W2 = 35: H2 = 45: X2 = X2 + JS2: IF X2 < 0 THEN X2 = 0: IF PS1 > 2 AND PS1 < 8 THEN PS1 = 8: JS1 = 18: HT1 = 3: JU1 = 2 IF X2 > 279 THEN X2 = 279: IF PS1 > 2 AND PS1 < 8 THEN PS1 = 8: JS1 = -18: HT1 = 3: JU1 = 2 BLC = 0: Y2 = Y2 - JU2: IF Y2 < 125 THEN JU2 = JU2 - JD(P2) * GRAV ELSE Y2 = 125 GET (250 - D2 * 20, 110)-(250 - D2 * 20 + JW(PP2), 110 + JH(PP2)), P2% IF (JU2 < -5 OR L2 < 1) AND Y2 >= 125 THEN Y2 = 150: JS2 = INT(JS2 / 1.5): GET (260 - 20 * D2, 160)-(260 + JW(PP2) - 20 * D2, 180), P2%: PS2 = 8 CC2 = CC2 + 1: IF CC2 > HT2 - 1 AND L2 >= 1 THEN PS2 = 8 GOTO 1040 1950 IF X2 < XA1 AND XAA1 < X2 + W2 AND Y2 < Y1 + BB1 AND Y1 + B1 < Y2 + H2 AND LTH < 1 AND AL1 > -1 THEN IF PS2 = -1 THEN CC2 = 0: L2 = L2 - 1: SW2 = D1 * AF1 IF PS1 = 7 AND (AS1 AND 2) = 2 THEN CC1 = MC1(P1) ELSE ELSE P1H = 1 END IF END IF IF X1 < XA2 AND XA2 < X1 + W1 AND Y1 < Y2 + B2 AND Y2 + B2 < Y1 + H1 AND LTH < 1 AND AL2 > -1 THEN IF PS1 = -1 THEN CC1 = 0: L1 = L1 - 1: SW1 = D2 * AF2 IF PS2 = 7 AND (AS2 AND 2) = 2 THEN CC2 = MC1(P2) ELSE ELSE P2H = 1 END IF END IF IF P1H = 1 AND NOT (P2H = 1 AND AL2 > AL1) THEN L2 = L2 - DMG * AD1: PS2 = 8 + (AS1 AND 1 OR BRN): JU2 = AU1: JS2 = D1 * AF1: HT2 = AI1: BLL = AL1 * blf: JHP = 2: IF PS1 = 7 AND (AS1 AND 2) = 2 THEN CC1 = MC1(P1) IF P2H = 1 AND NOT (P1H = 1 AND AL1 > AL2) THEN L1 = L1 - DMG * AD2: PS1 = 8 + (AS2 AND 1 OR BRN): JU1 = AU2: JS1 = D2 * AF2: HT1 = AI2: BLL = AL2 * blf: JHP = 1: IF PS2 = 7 AND (AS2 AND 2) = 2 THEN CC2 = MC1(P2) GOTO 1046 2000 IF A$ = "" THEN A$ = INKEY$ IF A$ = CHR$(27) THEN GOTO 2800 IF A$ = "P" THEN GOSUB 2900: GOTO 2000 IF A$ = "" THEN GOTO 2010 IF ASC(A$) > 0 AND (ASC(A$) < 48 OR ASC(A$) > 57) THEN B$ = A$: A$ = "": GOTO 2000 IF PS1 > 1 THEN GOTO 2010 IF A$ = CHR$(0) + CHR$(59) AND KEV = 1 THEN GOSUB 2950 IF A$ = CHR$(0) + CHR$(80) OR A$ = "2" THEN K1$ = K1$ + "3": IF BLK = 1 THEN PS1 = -1: CC1 = 0: SW1 = 0 IF A$ = CHR$(0) + CHR$(77) OR A$ = "6" THEN PS1 = 1: SW1 = ws(P1): K1$ = K1$ + RIGHT$(STR$(3 + D1 * 2), 1) IF A$ = CHR$(0) + CHR$(75) OR A$ = "4" THEN PS1 = 1: SW1 = ws(P1) * -1: K1$ = K1$ + RIGHT$(STR$(3 - D1 * 2), 1) IF A$ = CHR$(0) + CHR$(79) OR A$ = "1" THEN PS1 = 1: SW1 = INT(ws(P1) / -2): K1$ = K1$ + RIGHT$(STR$(3 - D1), 1) IF A$ = CHR$(0) + CHR$(81) OR A$ = "3" THEN PS1 = 1: SW1 = INT(ws(P1) / 2): K1$ = K1$ + RIGHT$(STR$(3 + D1), 1) IF A$ = CHR$(0) + CHR$(71) OR A$ = "7" THEN PS1 = 2: JS1 = JS(P1) * -1: JU1 = JU(P1): K1$ = K1$ + "0" IF A$ = CHR$(0) + CHR$(72) OR A$ = "8" THEN PS1 = 2: JS1 = 0: JU1 = JU(P1): K1$ = K1$ + "0" IF A$ = CHR$(0) + CHR$(73) OR A$ = "9" THEN PS1 = 2: JS1 = JS(P1): JU1 = JU(P1): K1$ = K1$ + "0" IF PS1 = 2 AND D1 = -1 THEN X1 = X1 + WW(PP1) - JW(PP1) IF LEN(K1$) > 7 THEN K1$ = RIGHT$(K1$, 7) 2010 IF LK1$ <> K1$ THEN LK1$ = K1$: LK1 = 0 ELSE LK1 = LK1 + 1 IF LK1 > 5 THEN K1$ = "": LK1 = 0 IF PS1 > 2 THEN GOTO 2020 IF (PEEK(1047) AND 4) = 4 OR A$ = "0" THEN K1$ = K1$ + "6": IF RIGHT$(K1$, LEN(SK$(P1))) = SK$(P1) AND Y1 > 169 - WH(PP1) AND s1 = 0 THEN GOSUB 2200: CC1 = 0: PS1 = 6 ELSE IF PS1 < 2 THEN PS1 = 3 ELSE IF AT1 = 0 THEN PS1 = 5: IF D1 = -1 THEN X1 = X1 _ + JW(PP1) - FW(PP1) IF PS1 > 2 THEN GOTO 2020 IF (PEEK(1047) AND 1) = 1 THEN K1$ = K1$ + "7": IF RIGHT$(K1$, LEN(MK$(P1))) = MK$(P1) AND Y1 > 169 - WH(PP1) THEN TV1 = D1: GOSUB 2300: CC1 = 0: PS1 = 7: X1 = X1 + (MW(PP1) - WW(PP1)) * SGN(D1 - 1): ELSE IF PS1 < 2 THEN PS1 = 4 ELSE IF AT1 = 0 _ THEN PS1 = 5: IF D1 = -1 THEN X1 = X1 + JW(PP1) - FW(PP1) 2020 A$ = "": RETURN 2050 IF A$ = "" THEN A$ = INKEY$ IF A$ = CHR$(0) + CHR$(68) THEN GOSUB 2960: SCREEN , , 2, 0 IF A$ = CHR$(27) THEN GOTO 2800 IF A$ = "P" THEN GOSUB 2900: GOTO 2050 IF A$ = CHR$(0) + CHR$(59) AND KEV = 1 THEN GOSUB 2950 IF A$ <> "" THEN IF ASC(A$) > 0 AND (ASC(A$) < 48 OR ASC(A$) > 57) THEN B$ = A$ CNT = 0: OUT &H201, 255 2052 CNT = CNT + 1: BOB = INP(&H201) AND 1 IF BOB <> 0 THEN GOTO 2052 JXD = 0: IF CNT <= JLX THEN JXD = -1 ELSE IF CNT >= JRX THEN JXD = 1 Z = TIMER: WHILE Z > TIMER: WEND YCT = 0: OUT &H201, 1 2054 YCT = YCT + 1: BOB = INP(&H201) AND 2 IF BOB <> 0 THEN GOTO 2054 JYD = 0: IF YCT <= JTY THEN JYD = -1 ELSE IF YCT >= JBY THEN JYD = 1 IF PS1 > 1 THEN GOTO 2060 IF JYD = 1 AND JXD = 0 THEN K1$ = K1$ + "3": IF BLK = 1 THEN PS1 = -1: CC1 = 0: SW1 = 0 IF JYD = 0 AND JXD = 1 THEN PS1 = 1: SW1 = ws(P1): K1$ = K1$ + RIGHT$(STR$(3 + D1 * 2), 1) IF JYD = 0 AND JXD = -1 THEN PS1 = 1: SW1 = ws(P1) * -1: K1$ = K1$ + RIGHT$(STR$(3 - D1 * 2), 1) IF JYD = 1 AND JXD = -1 THEN PS1 = 1: SW1 = INT(ws(P1) / -2): K1$ = K1$ + RIGHT$(STR$(3 - D1), 1) IF JYD = 1 AND JXD = 1 THEN PS1 = 1: SW1 = INT(ws(P1) / 2): K1$ = K1$ + RIGHT$(STR$(3 + D1), 1) IF JYD = -1 AND JXD = -1 THEN PS1 = 2: JS1 = JS(P1) * -1: JU1 = JU(P1): K1$ = K1$ + "0" IF JYD = -1 AND JXD = 0 THEN PS1 = 2: JS1 = 0: JU1 = JU(P1): K1$ = K1$ + "0" IF JYD = -1 AND JXD = 1 THEN PS1 = 2: JS1 = JS(P1): JU1 = JU(P1): K1$ = K1$ + "0" IF K1$ <> LK1$ AND RIGHT$(LK1$, 1) <> RIGHT$(K1$, 1) THEN BK1$ = BK1$ + RIGHT$(K1$, 1) IF PS1 = 2 AND D1 = -1 THEN X1 = X1 + WW(PP1) - JW(PP1) IF LEN(K1$) > 7 THEN K1$ = RIGHT$(K1$, 7) IF LEN(BK1$) > 7 THEN BK1$ = RIGHT$(BK1$, 7) 2060 IF LK1$ <> K1$ THEN LK1$ = K1$: LK1 = 0 ELSE LK1 = LK1 + 1 IF LK1 > 5 THEN K1$ = "": LK1 = 0 IF PS1 > 2 THEN GOTO 2020 IF (INP(&H201) AND 16) = 0 THEN K1$ = K1$ + "6": IF (RIGHT$(BK1$, LEN(SK$(P1))) = SK$(P1) OR RIGHT$(K1$, LEN(SK$(P1))) = SK$(P1)) AND Y1 > 169 - WH(PP1) AND s1 = 0 THEN GOSUB 2200: CC1 = 0: PS1 = 6 ELSE IF PS1 < 2 THEN PS1 = 3 ELSE IF AT1 = 0 THEN _ PS1 = 5: IF D1 = -1 THEN X1 = X1 + JW(PP1) - FW(PP1) IF PS1 > 2 THEN GOTO 2020 IF (INP(&H201) AND 32) = 0 THEN K1$ = K1$ + "7": IF (RIGHT$(BK1$, LEN(MK$(P1))) = MK$(P1) OR RIGHT$(K1$, LEN(MK$(P1))) = MK$(P1)) AND Y1 > 169 - WH(PP1) THEN TV1 = D1: GOSUB 2300: CC1 = 0: PS1 = 7: X1 = X1 + (MW(PP1) - WW(PP1)) * SGN(D1 - 1): ELSE _ IF PS1 < 2 THEN PS1 = 4 ELSE IF AT1 = 0 THEN PS1 = 5: IF D1 = -1 THEN X1 = X1 + JW(PP1) - FW(PP1) 2070 A$ = "": RETURN 2100 IF B$ = "" THEN B$ = INKEY$ IF B$ = "" THEN GOTO 2110 IF B$ = CHR$(0) + CHR$(60) THEN GOSUB 2951 IF ASC(B$) = 0 OR (B$ > "/" AND B$ < ":") THEN A$ = B$: B$ = "": GOTO 2100 IF PS2 > 1 THEN GOTO 2110 IF UCASE$(B$) = "X" THEN K2$ = K2$ + "3": IF BLK = 1 THEN PS2 = -1: CC2 = 0: SW2 = 0 IF UCASE$(B$) = "D" THEN PS2 = 1: SW2 = ws(P2): K2$ = K2$ + RIGHT$(STR$(3 + D2 * 2), 1) IF UCASE$(B$) = "A" THEN PS2 = 1: SW2 = ws(P2) * -1: K2$ = K2$ + RIGHT$(STR$(3 - D2 * 2), 1) IF UCASE$(B$) = "Z" THEN PS2 = 1: SW2 = INT(ws(P2) / -2): K2$ = K2$ + RIGHT$(STR$(3 - D2), 1) IF UCASE$(B$) = "C" THEN PS2 = 1: SW2 = INT(ws(P2) / 2): K2$ = K2$ + RIGHT$(STR$(3 + D2), 1) IF UCASE$(B$) = "Q" THEN PS2 = 2: JS2 = JS(P2) * -1: JU2 = JU(P2): K2$ = K2$ + "0" IF UCASE$(B$) = "W" THEN PS2 = 2: JS2 = 0: JU2 = JU(P2): K2$ = K2$ + "0" IF UCASE$(B$) = "E" THEN PS2 = 2: JS2 = JS(P2): JU2 = JU(P2): K2$ = K2$ + "0" IF PS2 = 2 AND D2 = -1 THEN X2 = X2 + WW(PP2) - JW(PP2) IF LEN(K2$) > 7 THEN K2$ = RIGHT$(K2$, 7) 2110 IF LK2$ <> K2$ THEN LK2$ = K2$: LK2 = 0 ELSE LK2 = LK2 + 1 IF LK2 > 5 THEN K2$ = "": LK2 = 0 IF PS2 > 2 THEN GOTO 2020 IF (PEEK(1047) AND 2) = 2 THEN K2$ = K2$ + "6": IF RIGHT$(K2$, LEN(SK$(P2))) = SK$(P2) AND Y2 > 169 - WH(PP2) AND S2 = 0 THEN GOSUB 2400: CC2 = 0: PS2 = 6 ELSE IF PS2 < 2 THEN PS2 = 3 ELSE IF AT2 = 0 THEN PS2 = 5: IF D2 = -1 THEN X2 = X2 + JW(PP2) - _ FW(PP2) IF PS2 > 2 THEN GOTO 2020 IF (PEEK(1048) AND 64) = 64 THEN K2$ = K2$ + "7": IF RIGHT$(K2$, LEN(MK$(P2))) = MK$(P2) AND Y2 > 169 - WH(PP2) THEN TV2 = D2: GOSUB 2500: CC2 = 0: PS2 = 7: X2 = X2 + (MW(PP2) - WW(PP2)) * SGN(D2 - 1): ELSE IF PS2 < 2 THEN PS2 = 4 ELSE IF AT2 = 0 _ THEN PS2 = 5: IF D2 = -1 THEN X2 = X2 + JW(PP2) - FW(PP2) 2120 B$ = "": RETURN 2200 IF VCE = 1 THEN SHELL "VOICE /START:" + TN1$ + "S.VOC /Q": RETURN 2300 IF VCE = 1 THEN SHELL "VOICE /START:" + TN1$ + "M.VOC /Q": RETURN 2400 IF VCE = 1 THEN SHELL "VOICE /START:" + TN2$ + "S.VOC /Q": RETURN 2500 IF VCE = 1 THEN SHELL "VOICE /START:" + TN2$ + "M.VOC /Q": RETURN 2600 RGBT = ABS((X1 + SGN(D1 + 1) * W1) - (X2 - SGN(D2 - 1) * W2)) IF INT(RND(1) * 5) + 1 > DIFF THEN RETURN IF PS2 = 2 THEN IF RGBT < CAV AND AT2 = 0 THEN PS2 = 5: IF D2 = -1 THEN X2 = X2 + JW(PP2) - FW(PP2) IF PS2 > 1 OR PS2 = -1 THEN RETURN SD = 0: hs = 0: IF s1 = 0 THEN GOTO 2610 RGBS = ABS((SX1 + SGN(D1 + 1) * SW(PP1)) - (X2 - SGN(D2 - 1) * W2)) IF RGBS < CSR + 5 AND BLK = 1 THEN SW2 = -SW2 * (PS2 = -1): PS2 = -1: CC2 = 0: RETURN IF RGBS > CSR THEN SD = 1: IF RGBS > CJR THEN SD = 2: IF RGBS > CFR THEN SD = 3 IF SY1 < Y2 - 20 THEN hs = 1 SD = RCT(SD * 3 + INT(RND(1) * 3) + 1, 3 + hs) 2610 RC = 0: IF Y1 + H1 < 169 THEN hs = 1 ELSE hs = 0 IF BLK = 1 THEN IF AL1 > -1 AND X2 - 5 < XA1 + D1 * 5 AND X2 + 5 + W2 > XA1 + D1 * 5 AND Y1 + B1 > Y2 - 10 THEN SW2 = -SW2 * (PS2 = -1): PS2 = -1: CC2 = 0: RETURN IF RGBT > CSR THEN RC = 1: IF RGBT > CJR THEN RC = 2: IF RGBT > CFR THEN RC = 3 RC = RCT(RC * 3 + INT(RND(1) * 3) + 1, 1 + hs): IF (SD > 0 AND INT(RND(1) * 2) = 1) OR PS2 = 1 THEN RC = SD IF RC = 1 THEN PS2 = 2: JS2 = JS(P2) * -D2: JU2 = JU(P2) IF RC = 2 THEN PS2 = 2: JS2 = 0: JU2 = JU(P2) IF RC = 3 THEN PS2 = 2: JS2 = JS(P2) * D2: JU2 = JU(P2) IF RC = 4 THEN PS2 = 1: SW2 = ws(P2) * D2 IF RC = 5 THEN PS2 = 1: SW2 = INT(ws(P2) * .5) * D2 IF RC = 7 THEN PS2 = 1: SW2 = INT(ws(P2) * .5) * -D2 IF RC = 8 THEN PS2 = 1: SW2 = ws(P2) * -D2 IF RC = 9 THEN PS2 = 3 IF RC = 10 THEN PS2 = 4 IF RC = 11 AND S2 = 0 THEN GOSUB 2400: PS2 = 6: CC2 = 0 IF RC = 12 THEN CC2 = 0: TV2 = D2: GOSUB 2500: PS2 = 7: X2 = X2 + (MW(PP2) - WW(PP2)) * SGN(D2 - 1) RETURN 2650 CLS : ROUND = ROUND + 1: P1 = PP1: P2 = PP2: PS1 = 0: PS2 = 0: AT1 = 0: AT2 = 0: s1 = 0: S2 = 0: PW = 0: BLC = 0: CGT = 0 IF L2 < 1 AND L1 >= 1 THEN PW = 1 IF L1 < 1 AND L2 >= 1 THEN PW = 2 IF L2 >= 1 AND L1 > L2 + 1 THEN PW = 1 IF L1 >= 1 AND L2 > L1 + 1 THEN PW = 2 SCREEN , , 0, 0: COLOR 15 IF PW = 1 THEN LOCATE 10, 18 - INT(LEN(NM$(P1)) / 2): PRINT NM$(P1); " WON": P1W = P1W + 1 IF PW = 2 THEN LOCATE 10, 18 - INT(LEN(NM$(P2)) / 2): PRINT NM$(P2); " WON": P2W = P2W + 1 IF PW = 0 THEN LOCATE 10, 18: PRINT "DRAW" SCREEN , , 1, 0: COLOR 7 T = TIMER + 1: WHILE T > TIMER: WEND IF P1W >= RTF THEN PBT(P2) = 1: GOSUB 2750: GOTO 1000 IF P2W >= RTF THEN GOTO 2800 IF ROUND > 4 THEN GOSUB 2750: GOTO 1000 GOTO 1005 2700 SHELL "voice /Q /stop" SHELL "SBSIM /Q /U": GOTO 10 2750 IF CMP = 0 THEN GOTO 2700 CLS : DEF SEG = VARSEG(bld%(0)) BLOAD "WORLD.MAP", VARPTR(bld%(0)): PUT (100, 50), bld%, PSET FOR I = 1 TO 16 IF PBT(I) = 1 AND I <> P2 THEN LINE (MPX(I) - 1, MPY(I) + 39)-(MPX(I) + 1, MPY(I) + 41), 4 LINE (MPX(I) - 1, MPY(I) + 41)-(MPX(I) + 1, MPY(I) + 39), 4 END IF NEXT I: CIRCLE (MPX(P1), MPY(P1) + 40), 1, 4: PSET (MPX(P1), MPY(P1) + 40), 12 IF P1W >= RTF THEN GET (100, 50)-(219, 119), bld%: T = TIMER + 1.5: CLS DEF SEG = VARSEG(P2%(0)): BLOAD T2$ + ".HTL", VARPTR(P2%(0)) WHILE T > TIMER PUT (100, 50), bld%, PSET: PCOPY 1, 0 LINE (MPX(P2) - 1, MPY(P2) + 39)-(MPX(P2) + 1, MPY(P2) + 41), 4 LINE (MPX(P2) - 1, MPY(P2) + 41)-(MPX(P2) + 1, MPY(P2) + 39), 4 PUT (160 - JW(PP2) / 2, 170 - JH(PP2)), P2%: PCOPY 1, 0: WEND END IF I = 0: WHILE PBT(P2) = 1 AND I < 255: I = I OR (2 ^ (P2 - 1)): P2 = INT(RND(1) * 8) + 1: WEND IF I >= 255 THEN P2 = 8: WHILE PBT(P2) = 1 AND P2 < 12: P2 = P2 + 1: WEND IF ((ROUND > 4 AND P1W < RTF) OR L1 > 129) AND PBT(16) = 0 THEN P2 = 13: WHILE PBT(P2) = 1 AND P2 < 16: P2 = P2 + 1: WEND GET (100, 50)-(219, 119), bld%: T = TIMER + 1.5: CLS : COLOR 15 IF L1 > 129 THEN LOCATE 24, 3: PRINT "Very good, now try a real challenge!": T = T + 1 IF ROUND > 4 AND P1W < RTF THEN LOCATE 24, 7: PRINT "I'll show you how to fight!": T = T + 1 T2$ = "C:\SIDEWALK\" + LEFT$(NM$(P2), 8) + "\" + LEFT$(NM$(P2), 8) DEF SEG = VARSEG(P2%(0)): BLOAD T2$ + ".W1L", VARPTR(P2%(0)) PUT (100, 50), bld%, PSET: IF P2 = 11 THEN PUT (143, 120), P2%, PSET ELSE PUT (160 - WW(PP2) / 2, 170 - WH(PP2)), P2%, PSET WHILE T > TIMER CIRCLE (MPX(P2), MPY(P2) + 40), 1, 5: PSET (MPX(P2), MPY(P2) + 40), 13 PCOPY 1, 0: PUT (100, 50), bld%, PSET: PCOPY 1, 0: WEND RETURN 2800 PS1 = 0: PS2 = 0: AT1 = 0: AT2 = 0: s1 = 0: S2 = 0: PW = 0: BLC = 0: CGT = 0 IF CMP = 0 THEN GOTO 2700 IF P2 > 12 THEN P2 = INT(RND(1) * 8) + 1: L1 = 100: GOSUB 2750: GOTO 1000 SCREEN , , 1, 0: CLS : A$ = "" PUT (160 - JW(PP1) / 2, 100), P1%: LOCATE 10, 16: COLOR 15: PRINT "Continue?": A$ = "": COLOR 14 IF VCE THEN SHELL "VOICE /START:C:\SIDEWALK\M-BUFFAL\M-BUFFAM.VOC /Q" T = TIMER + 10 2805 IF A$ = "N" OR A$ = "n" OR A$ = CHR$(27) THEN T = TIMER LOCATE 11, 19: IF T > TIMER THEN PRINT INT(T - TIMER) ELSE PRINT " 0" PCOPY 1, 0 A$ = INKEY$ IF A$ = CHR$(32) THEN T = T - 1 IF A$ = "y" OR A$ = "Y" OR A$ = CHR$(13) THEN GOTO 900 IF T > TIMER THEN GOTO 2805 IF VCE THEN SHELL "VOICE /START:C:\SIDEWALK\BULLHOG\BULLHOM.VOC /Q" T = TIMER + 1: WHILE T > TIMER: WEND GOTO 2700 2900 SCREEN , , 0, 0: TP = TIME - TIMER 2901 IF VCE THEN SHELL "VOICE /STOP /Q" DLA = TIMER + 8: WHILE DLA > TIMER COLOR 14: LOCATE 12, 18: PRINT "PAUSED": A$ = INKEY$ IF A$ <> "" THEN SCREEN , , 2, 0: TIME = TIMER + TP: RETURN WEND COLOR 1: LOCATE 12, 18: PRINT "ASLEEP" IF VCE THEN SHELL "VOICE /START:C:\SIDEWALK\SNORE /WAIT:1 /Q" ELSE DLA = TIMER + 2: WHILE DLA > TIMER: WEND GOTO 2901 2950 P1 = P1 + 1: IF P1 > 16 THEN P1 = 1 RETURN 2951 IF CMP = 0 THEN P2 = P2 + 1: IF P2 > 16 THEN P2 = 1 RETURN 2960 TP = TIME - TIMER: SCREEN , , 0, 0: CLS : LOCATE 20, 12: PRINT "CENTER JOYSTICK": LOCATE 21, 10: PRINT "AND PRESS A BUTTON" A$ = "": BOB = 48: WHILE A$ <> CHR$(13) AND (BOB AND 48) = 48 GOSUB 2990: A = CNT: B = YCT A$ = INKEY$: WEND: WHILE (INP(&H201) AND 48) <> 48: WEND: BOB = 48 LOCATE 20, 9: PRINT "MOVE TO LOWER-RIGHT" A$ = "": WHILE A$ = "" AND (BOB AND 48) = 48 LINE (160 - (A - CNT) * 5, 100 - (B - YCT) * 5)-(160, 100), 0 GOSUB 2990 LINE (160 - (A - CNT) * 5, 100 - (B - YCT) * 5)-(160, 100), 1 PSET (160, 100), 9 A$ = INKEY$: WEND JRX = CNT JBY = YCT WHILE (INP(&H201) AND 48) <> 48: WEND: BOB = 48 LOCATE 20, 9: PRINT " MOVE TO UPPER-LEFT " A$ = "": WHILE A$ = "" AND (BOB AND 48) = 48 LINE (160 - (A - CNT) * 5, 100 - (B - YCT) * 5)-(160, 100), 0 GOSUB 2990 LINE (160 - (A - CNT) * 5, 100 - (B - YCT) * 5)-(160, 100), 1 PSET (160, 100), 9 A$ = INKEY$: WEND JLX = CNT JTY = YCT JLX = A - (A - JLX) * .6: JRX = A + (JRX - A) * .6 JTY = B - (B - JTY) * .6: JBY = B + (JBY - B) * .6 TIME = TIMER + TP: RETURN 2990 CNT = 0: OUT &H201, 255 2994 CNT = CNT + 1: BOB = INP(&H201) AND 1 IF BOB <> 0 THEN GOTO 2994 Z = TIMER: WHILE Z > TIMER: WEND YCT = 0: OUT &H201, 1 2996 YCT = YCT + 1: BOB = INP(&H201) AND 2 IF BOB <> 0 THEN GOTO 2996 BOB = INP(&H201): RETURN DATA 0,8,7,3,11 DATA 4,0,4,12,14 DATA "RUE",0,2,6,10,3,0,5,12,0,0,0,30,7,8,19,19,39,34,"3456" DATA 1,2,3,3,1,39,34,1,20,7,23,0,0,1,3,10,5,3,39,39,1,29,8,32,1,2 DATA 13,2,10,39,34,6,39,29,16,11,10,3,7,10,6,5,10,5,-2,7,4,-2,2 DATA 39,29,-11,1,1,5,12,20,"5347",5,4,7,6,-2,5,34,44,5,30,15,34,1 DATA 214,38,"CHAMP" DATA "BARBY",0,3,6,10,3,0,5,11,0,0,0,30,7,9,19,19,39,34,"3456" DATA 1,2,3,3,1,39,34,1,20,7,23,0,0,1,3,10,5,3,39,39,1,29,8,32,1,2 DATA 13,2,10,39,34,6,39,29,16,11,10,3,7,9,7,5,10,5,-2,7,5,-1,2 DATA 39,29,-10,1,1,5,12,20,"5347",5,4,9,6,-2,5,34,44,5,30,15,34,1 DATA 210,66,"KOALA" DATA "KANGA-LI",9,3,10,5,1,1,1,.01,0,0,0,10,11,12,19,19,39,34,"666" DATA 1,1,4,3,2,39,39,2,24,6,29,2,2,2,2,9,6,6,39,34,1,11,5,17,5,3 DATA 15,2.3,11,39,29,9,39,29,4,3,2,1,1,2,0,1,6,8,6,2,0,8,13 DATA 34,49,-1,0,1,4,17,10,"3307",2,6,8,3,0,5,34,44,2,25,12,28,2 DATA 202,35,"KANGA" DATA "DECEIT",0,4,1,11,5,0,5,8,0,1,.1,30,10,13,14,24,34,34,"1156" DATA 0,2,2,2,3,34,33,2,20,6,24,0,1,3,2,11,8,2,36,39,2,3,10,8,1,3 DATA 13,2,10,34,34,8,34,29,16,11,6,4,5,10,10,2,10,4,7,6,14,2,1 DATA 39,44,-7,-3,2,1,32,21,"3307",4,2,9,4,2,6,34,39,2,27,9,30,2 DATA 137,38,"SONIC" DATA "BLANCO",1,4,4,6,1,2,5,15,-13,-2,3,20,12,15,19,19,39,29,"3216" DATA 1,1,4,2,2,29,49,1,14,9,20,1,0,3,1,7,5,4,29,49,0,25,10,29,3,2 DATA 15,3,8.9,29,29,4,29,39,6,13,1,6,7,0,20,30,7,0,6,6,4,-5,0 DATA 29,29,2,-4,4,6,25,25,"1157",2,3,8,5,-4,5,29,49,1,21,15,28,2 DATA 127,51,"BEAST" DATA "E-HYUNDAI",0,3,5,12,2,0,4,6,-4,.5,2,30,20,5,14,24,39,39,"2346" DATA 1,1,3,1,2,34,49,0,16,6,21,1,1,2,1,10,5,4,34,49,3,26,10,31,4,3 DATA 10,2,7,39,39,4,39,39,2,13,6,5,5,0,25,30,2,2,7,7,3,-1,0 DATA 34,44,1,-5,3,7,20,30,"1157",2,4,10,3,1,6,39,44,4,30,11,37,3 DATA 212,41,"FISHY" DATA "ZANGRIEF",0,4,4,9,2,-2,4,8,-10,0,2,14,10,5,19,19,44,39,"456" DATA 1,1,5,4,4,44,39,0,32,9,40,2,1,2,1,9,1,4,44,37,2,24,9,29,-2,3 DATA 10,2,7,39,39,5,44,34,4,11,3,2,2,0,-1,1,12,6,2,3,0,1.5,7 DATA 44,49,-1,0,1,23,35,29,"07",3,4,9,3,-2,6,39,44,1,27,10,38,2 DATA 187,27,"KAPPA" DATA "DHALSLIM",2,1,6,12,3,2,7,13,0,0,0,30,6,8,14,24,39,34,"3456" DATA 2,3,7,2,4,34,39,1,7,11,15,-3,2,3,3,6,2,3,24,54,1,1,16,11,1,1 DATA 11.9,1.7,6,44,29,4,44,29,9,13,7,5,7,0,0,3,11,3,4,5,0,0,1 DATA 34,54,0,0,1,7,10,19,"2347",5,5,6,3,-1,7,34,54,1,27,25,33,1 DATA 193,47,"CURRY" DATA "BULLHOG",9,4,2,28,17,2,8,.01,0,0,0,3,25,12,19,19,49,49,"06" DATA 0,1,8,3,2,49,49,1,21,7,25,0,1,1,2,11,5,4,49,49,0,18,7,22,2,3 DATA 10,2,7,44,39,6,49,39,2,18,8,4,5,0,15,5,10,6,5,8,1,0,1 DATA 49,49,1,-2,2,7,11,22,"1157",4,5,8,3,-3,6,44,44,3,23,8,32,3 DATA 120,33,"ANVIL" DATA "SPLATTA",9,3,3,16,9,1,3,.001,0,0,0,4,18,14,9,19,27,34,"1156" DATA 1,2,5,5,3,27,31,2,21,8,22,2,1,2,3,11,4,4,27,34,1,11,9,20,1,2 DATA 14,2,10,27,27,10,27,27,0,14,9,-1,2,11,-27,20,14,10,2,5,-7,20,14 DATA 24,44,0,0,4,16,40,24,"3307",2,6,8,5,-1,6,27,34,2,23,5,26,2 DATA 165,26,"FJORD" DATA "MAGGOT",0,2,7,13,5,-1,3,14,0,0,0,30,6,7,24,19,49,49,"3456" DATA 1,1,5,4,3,49,49,1,20,7,24,-1,1,1,2,11,7,3,49,49,1,36,10,40,5,3 DATA 12,2,10.1,44,39,6,54,34,19,6,6,11,1,6,11,3,9,11,6,6,11,6,3 DATA 49,39,-13,3,1,2,13,42,"5347",5,4,10,5,1,7,44,49,2,31,18,37,2 DATA 202,46,"TUBER" DATA "M-BUFFALO",9,1,2,19,-10,10,7,.01,0,0,0,3,20,11,24,14,44,39,"3216" DATA 0,1,7,4,3,44,44,1,17,6,22,0,2,2,2,12,9,4,44,44,0,28,4,36,2,3 DATA 13,2,10,44,39,7,44,39,3,12,3,6,6,1,20,7,10,2,5,5,-2,19,3 DATA 39,59,0,3,4,10,53,29,"1157",2,9,10,5,-1,6,39,49,3,26,20,36,2 DATA 122,38,"SNORT" DATA "STINGER",8,1,5,1,-5,0,8,18,0,0,0,17,0,18,7,29,39,34,"116" DATA 0,4,9,10,5,39,34,4,27,8,34,3,0,2,2,12,2,5,39,34,1,13,5,18,-1,3 DATA 13,2,10,34,34,6,39,29,2,10,-8,-1,4,12,320,2,8,-7,-2,4,-3,-15,4 DATA 34,44,-2,-2,37,18,43,23,"3217",3,5,9,8,3,6,34,44,3,28,7,32,2 DATA 175,60,"DEATH" DATA "ZERO-KELVIN",0,1,5,0,0,1,30,20,0,0,0,18,0,18,14,24,39,34,"3456" DATA 2,2,12,3,8,39,34,3,10,7,14,7,4,1,1,8,4,3,39,34,1,27,6,30,-1,0 DATA 13,2,10,39,34,6,39,29,10,8,10,4,6,0,18,8,6,7,5,5,0,0,2 DATA 29,44,0,4,0,24,11,29,"27",0,5,9,5,-3,6,34,44,1,17,6,23,3 DATA 160,77,"CHILL" DATA "GORDO",3,3,1,15,6,4,6,25,-1,0,0,4,12,8,19,24,49,49,"3216" DATA 1,3,12,12,6,49,54,0,17,20,22,3,3,1,4,15,5,9,49,49,0,5,9,22,6,4 DATA 9,2,7,49,39,4,49,39,0,0,7,0,1,8,7,4,30,4,-20,7,-15,8,1 DATA 49,44,2,-3,1,41,10,46,"07",5,8,10,3,-2,3,49,54,4,21,14,38,2 DATA 137,49,"CRUSH" DATA "ROBOBOB",9,2,10,8,.8,2,1,.01,0,0,0,9,18,11,19,19,34,34,"346" DATA 1,1,10,2,3,34,54,1,21,32,22,4,5,0,1,9,5,4,34,44,5,25,15,30,0,2 DATA 10,2,12,4,29,6,34,24,2,14,8,-10,1,8,13,8,5,8,-10,1,-10,8,7 DATA 34,44,-.5,-1,4,10,19,22,"3457",5,1,10,1,3,5,24,29,8,1,13,10,4 DATA 138,35,"H1000" 3000 DATA "W1",0,40,0,"W2",80,120,0,"JM",160,200,0,"AP",240,280,0 DATA "A1",0,55,60,"A2",110,165,60,"SH",220,270,60 DATA "FL",0,55,110,"SP",110,170,110,"HT",230,270,110 DATA "S1",0,40,160,"S2",80,120,160,"S3",160,200,160 DATA "DD",240,280,160