'***************************************
'THE LANDSCAPE, DEEP PARALLAX SCROLLING
'ASSET, BY JEAN-MILOST REYMOND
'***************************************

GLOBAL SCROLLSTART, SCROLLEND, SCROLLHEIGHT, SCROLLSPEED

'SCROLL VALUES, MUST BE GLOBAL
SCROLLSTART  =  96
SCROLLEND    =  128
SCROLLHEIGHT =  SCROLLEND - (SCROLLSTART - 1)
SCROLLSPEED  = -0.5

'***************************************
'MAIN FUNCTION
'***************************************
MAIN:
    CALL CREATELANDSCAPE

    DO
        WAIT VBL
    LOOP

'***************************************
'CREATE THE LANDSCAPE
'***************************************
SUB CREATELANDSCAPE
    BG 1

    PAL 2

    'DRAW THE MOON
    CELL 2, 2, 14
    CELL 3, 2, 15
    CELL 2, 3, 30
    CELL 3, 3, 31

    'DRAW THE SUNSET
    BG FILL 0, 10 TO 20, 10 CHAR 1

    FOR I = 11 TO 11
        BG FILL 0, I TO 20, I CHAR 2
    NEXT I

    'DRAW THE GRASS
    PAL 0
    BG FILL 0, 12 TO 40, 13 CHAR 3
    PAL 0
    BG FILL 0, 13 TO 40, 14 CHAR 4
    PAL 1
    BG FILL 0, 14 TO 40, 15 CHAR 5
    PAL 1
    BG FILL 0, 15 TO 40, 16 CHAR 6

    BG 0
    PAL 2

    'DRAW THE CLOUDS
    FOR I = 0 TO 3
        FOR J = 0 TO 8
            CELL (J * 4) + 0, 2 + (I * 2), 18
            CELL (J * 4) + 1, 2 + (I * 2), 19
            CELL (J * 4) + 2, 2 + (I * 2), 20
        NEXT J
    NEXT I

    PAL 3

    'DRAW THE MOUNTAINS
    FOR I = 0 TO 20
        CELL  I * 2,      10, 16
        CELL  I * 2,      11, 32
        CELL (I * 2) + 1, 10, 17
        CELL (I * 2) + 1, 11, 33
    NEXT I

    'DRAW THE FENCE
    FOR I = 0 TO 1
        PAL 4
        CELL  I * 16,      15, 7
        CELL (I * 16) + 1, 15, 8
        PAL 5
        CELL (I * 16) + 2, 15, 9
        CELL (I * 16) + 3, 15, 10
        PAL 4
        CELL (I * 16) + 4, 15, 11
        CELL (I * 16) + 5, 15, 12
    NEXT I

    PAL 5

    FOR I = 0 TO 1
        CELL (I * 16) + 11, 15, 13
    NEXT I

    'NOTIFY THE RASTER TO SCROLL THE LANDSCAPE
    ON RASTER CALL PARALLAXSCROLL
END SUB

'***************************************
'USE THE RASTER TO PERFORM DEEP PARALLAX
'SCROLLING
'***************************************
SUB PARALLAXSCROLL
    'DO SCROLL THE GRASS AND FENCE?
    IF RASTER >= SCROLLSTART AND RASTER <= SCROLLEND THEN
        'CALCULATE THE NEXT GRASS OFFSET (PER LINE)
        DEEP   = RASTER - (SCROLLSTART - 1)
        OFFSET = TIMER * SCROLLSPEED * (DEEP / 10)

        'SCROLL THE GRASS
        SCROLL 1, OFFSET, 0

        'CALCULATE THE NEXT FENCE OFFSET
        IF RASTER >= SCROLLEND - 8 THEN
            OFFSET = TIMER * SCROLLSPEED * (SCROLLHEIGHT / 10)
        END IF

        'SCROLL THE FENCE
        SCROLL 0, OFFSET, 0
    ELSE IF RASTER >= SCROLLSTART - 17 AND RASTER < SCROLLSTART THEN
        'SCROLL THE MOUNTAIN
        SCROLL 0, TIMER * SCROLLSPEED * 0.1, 0
        SCROLL 1, 0, 0
    ELSE
        'SCROLL THE CLOUDS
        SCROLL 0, TIMER * SCROLLSPEED * ((SCROLLSTART - RASTER) \ (SCROLLSTART / 6)) * 0.5, 0

        'STOP THE SCROLL ON THIS PART
        SCROLL 1, 0, 0
    END IF
END SUB

#1:MAIN PALETTES
063A19290029080400162636003A2A15
00252A1500382410002A000000000000

#2:MAIN CHARACTERS
00000000000000000000000000000000
FFFF000000FFFFFF0000FFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
BECB5588524822004134AA77ADB7DDFF
1002504612E75DFEFFFFFFFFFFFFFFFF
BAFDB3184210265145024CE7BDEFD9AE
8128425B2C1F4DF6FFFFFFFFFFFFFFFF
00000001060B37CE0000000001070A3D
071D77DE72E7DE7D00020E30ACDE2CF2
002BFF3BE0057DE00014BFE7800396FD
02AE1BFC00017AF60152FFFE0006A7FD
E0B8EE7B4EE77BBE0040700C357B344F
0000008060D0EC730000000080E050BC
08020A15262C5418040C070E3C183C78
0001040217040A000000020800110106
00C0A05040900452002018842A16F5FB
00000001030625AD0000000000010393
0000008060E062E500000040E0E0E1E3
080224403464150A00000002010B0205
004018C20178C6800000000128862000
0000482404A810000000000018560400
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
10140508060500000503000005010100
09075E269CB8E0005FEF7EFEFCF8E000
D8D9F3EBFFFFFFFFF7E7EFDF9F7FFFFF
FBFAFBF9FEFFFFFFF7FFFFFFFFFFFFFF

