Metropoli BBS
VIEWER: c&c.bas MODE: TEXT (CP437)
REM $INCLUDE: 'SVGABC.BI'
DEFINT A-Z

' C&C -tapainen scrollaava kartta, vaatii SVGAQB-alikirjaston ja
' QuickBasic4.5:n. Alikirjaston saat MB-Netistä.
' BootSectorin omaa tuotantoa, tämän pohjalle rakennetaan sotastrategiapeliä.

DIM PCXPAL AS STRING * 768

IF WHICHVGA = 0 THEN END
IF RES320 = 0 THEN END

pcxfilename$ = "TAUSTA16.PCX"
OK = PCXGETINFO(pcxfilename$, XSIZE, YSIZE, NUMCOL, PCXPAL)

FIXIT = 0
FOR a = 1 TO NUMCOL * 3 STEP 3
R = ASC(MID$(PCXPAL, a, 1))
g = ASC(MID$(PCXPAL, a + 1, 1))
b = ASC(MID$(PCXPAL, a + 2, 1))
IF R > 63 THEN
FIXIT = 1
EXIT FOR
END IF
IF g > 63 THEN
FIXIT = 1
EXIT FOR
END IF
IF b > 63 THEN
FIXIT = 1
EXIT FOR
END IF
NEXT a
IF FIXIT = 1 THEN
FOR a = 1 TO NUMCOL * 3
C = ASC(MID$(PCXPAL, a, 1))
MID$(PCXPAL, a, 1) = CHR$(C \ 4)
NEXT a
END IF
PALSET PCXPAL, 0, 255
        



IF WHICHMOUSE = 0 THEN END
MOUSEENTER
DrawMap:
DrawMapAgain = 0
IF Y > 0 THEN Y = 0
IF Y < -280 THEN Y = -280
                 
IF X > 0 THEN X = 0
IF X < -320 THEN X = -320

MOUSEHIDE
OK = PCXPUT(1, X, Y, pcxfilename$)

MOUSESHOW
DO
MOUSESTATUS Xloc, Yloc, MButs
SELECT CASE INP(&H60)
CASE 1: END
CASE ELSE
END SELECT
IF Xloc = 0 THEN X = X + 10: DrawMapAgain = 1
IF Xloc >= 319 THEN X = X - 10: DrawMapAgain = 1
IF Yloc = 0 THEN Y = Y + 10: DrawMapAgain = 1
IF Yloc >= 199 THEN Y = Y - 10: DrawMapAgain = 1

IF DrawMapAgain THEN GOTO DrawMap
LOOP

[ RETURN TO DIRECTORY ]