'SLAY V4 REMAKE
_TITLE "SLAY V4" 'SET TITLE
_FULLSCREEN 'SET FULLSCREEN
SCREEN 12

'DECLARE VARIABLES
DIM saveData$(1000)

DIM SHARED player.name AS STRING
DIM SHARED player.health AS INTEGER
DIM SHARED player.atk AS INTEGER
DIM SHARED player.def AS INTEGER
DIM SHARED player.spd AS INTEGER

DIM SHARED w AS INTEGER
DIM SHARED h AS INTEGER

'GET THE SCREEN DIMSENSIONS
w = _WIDTH
h = _HEIGHT

'SET THE COLOR
col = _RGBA(255, 255, 255, 255)

'LOAD SAVE DATA
OPEN "SlayV4SaveData.txt" FOR INPUT AS #1
DO WHILE EOF(1) 'LOOP UNTIL END OF FILE
    filecount = filecount + 1 'COUNT AMOUNT OF LINES
    LINE INPUT #1, file$
    saveData$(filecount) = file$
LOOP
CLOSE #1

player.name = saveData$(1) 'LOAD NAME
player.health = VAL(saveData$(2)) 'LOAD HEALTH
player.atk = VAL(saveData$(3)) 'LOAD ATTACK
player.def = VAL(saveData$(4)) 'LOAD DEFENCE
player.spd = VAL(saveData$(5)) 'LOAD SPEED


'GET PLAYERS NAME
IF saveData$(1) = "" THEN
    _PRINTSTRING (w / 2 - 70, h / 2), "Enter your name: "
    LOCATE 17, 40: INPUT "", name$
    player.name = name$
    player.health = 100
    player.atk = 10
    player.def = 10
    player.spd = 10

    OPEN "SlayV4SaveData.txt" FOR OUTPUT AS #1
    PRINT #1, name$
    PRINT #1, player.health
    PRINT #1, player.atk
    PRINT #1, player.def
    PRINT #1, player.spd
    CLOSE #1

    CLS
END IF

'START GAME
_DELAY (1)
DrawLogo

SUB DrawLogo
    'FADE LOGO IN
    FOR n = 0 TO 255
        'LIMIT FPS
        _LIMIT 1000
        'TOP LINE
        LINE (w / 6 * 2, h / 6 * 1.5)-(w / 6 * 4, h / 6 * 2), col, BF
        LINE (w / 6 * 1.8, h / 6 * 1.5)-(w / 6 * 4.25, h / 6 * 1.75), col, BF

        'MIDDLE
        LINE (w / 6 * 3.5, h / 6 * 2)-(w / 6 * 4, h / 6 * 2.5), col, BF
        LINE (w / 6 * 3.25, h / 6 * 2.25)-(w / 6 * 3.75, h / 6 * 3), col, BF
        LINE (w / 6 * 2.75, h / 6 * 2.75)-(w / 6 * 3.5, h / 6 * 3.25), col, BF
        LINE (w / 6 * 2.25, h / 6 * 3)-(w / 6 * 3.25, h / 6 * 3.5), col, BF
        LINE (w / 6 * 2, h / 6 * 3.25)-(w / 6 * 2.5, h / 6 * 3.75), col, BF

        'BOTTOM LINE
        LINE (w / 6 * 1.75, h / 6 * 3.75)-(w / 6 * 4.25, h / 6 * 4.25), col, BF
        LINE (w / 6 * 1.5, h / 6 * 4)-(w / 6 * 4.5, h / 6 * 4.25), col, BF
        col = _RGB(n, n, n)
    NEXT n


    'DRAW LOGO
    LINE (w / 6 * 2, h / 6 * 1.5)-(w / 6 * 4, h / 6 * 2), col, BF
    LINE (w / 6 * 1.8, h / 6 * 1.5)-(w / 6 * 4.25, h / 6 * 1.75), col, BF

    'MIDDLE
    LINE (w / 6 * 3.5, h / 6 * 2)-(w / 6 * 4, h / 6 * 2.5), col, BF
    LINE (w / 6 * 3.25, h / 6 * 2.25)-(w / 6 * 3.75, h / 6 * 3), col, BF
    LINE (w / 6 * 2.75, h / 6 * 2.75)-(w / 6 * 3.5, h / 6 * 3.25), col, BF
    LINE (w / 6 * 2.25, h / 6 * 3)-(w / 6 * 3.25, h / 6 * 3.5), col, BF
    LINE (w / 6 * 2, h / 6 * 3.25)-(w / 6 * 2.5, h / 6 * 3.75), col, BF

    'BOTTOM LINE
    LINE (w / 6 * 1.75, h / 6 * 3.75)-(w / 6 * 4.25, h / 6 * 4.25), col, BF
    LINE (w / 6 * 1.5, h / 6 * 4)-(w / 6 * 4.5, h / 6 * 4.25), col, BF

    _PRINTSTRING (w / 2 - 50, h / 6 * 4.5), "ZEPPELIN GAMES"
    _DELAY (3) 'WAIT A BIT

    'FADE THE LOGO OUT
    FOR n = 0 TO 255
        'LIMIT FPS
        _LIMIT 1000
        'TOP LINE
        LINE (w / 6 * 2, h / 6 * 1.5)-(w / 6 * 4, h / 6 * 2), col, BF
        LINE (w / 6 * 1.8, h / 6 * 1.5)-(w / 6 * 4.25, h / 6 * 1.75), col, BF

        'MIDDLE
        LINE (w / 6 * 3.5, h / 6 * 2)-(w / 6 * 4, h / 6 * 2.5), col, BF
        LINE (w / 6 * 3.25, h / 6 * 2.25)-(w / 6 * 3.75, h / 6 * 3), col, BF
        LINE (w / 6 * 2.75, h / 6 * 2.75)-(w / 6 * 3.5, h / 6 * 3.25), col, BF
        LINE (w / 6 * 2.25, h / 6 * 3)-(w / 6 * 3.25, h / 6 * 3.5), col, BF
        LINE (w / 6 * 2, h / 6 * 3.25)-(w / 6 * 2.5, h / 6 * 3.75), col, BF

        'BOTTOM LINE
        LINE (w / 6 * 1.75, h / 6 * 3.75)-(w / 6 * 4.25, h / 6 * 4.25), col, BF
        LINE (w / 6 * 1.5, h / 6 * 4)-(w / 6 * 4.5, h / 6 * 4.25), col, BF
        col = _RGB(255 - n, 255 - n, 255 - n)
    NEXT n
    CLS
    _DELAY (2)
    DrawMenu
END SUB

SUB DrawMenu
    'FADE IN MENU SCREEN
    FOR n = 0 TO 255
        _LIMIT 1000
        'S
        LINE (w / 10 * 2.75, h / 10 * 1.5)-(w / 10 * 3.5, h / 10 * 1.75), col, BF '1ST ACROSS
        LINE (w / 10 * 2.75, h / 10 * 1.5)-(w / 10 * 3, h / 10 * 2.5), col, BF '1ST DOWN
        LINE (w / 10 * 2.75, h / 10 * 2.5)-(w / 10 * 3.45, h / 10 * 2.75), col, BF '2ND ACROSS
        LINE (w / 10 * 3.2, h / 10 * 2.75)-(w / 10 * 3.45, h / 10 * 2.9), col, BF '2ND DOWN
        LINE (w / 10 * 3.2, h / 10 * 3.35)-(w / 10 * 3.45, h / 10 * 3.75), col, BF 'EXTENDED 2ND DOWN
        LINE (w / 10 * 2.65, h / 10 * 3.75)-(w / 10 * 3.45, h / 10 * 4.1), col, BF '3RD ACROSS

        'L
        LINE (w / 10 * 3.8, h / 10 * 1.5)-(w / 10 * 4.05, h / 10 * 2.65), col, BF '1ST DOWN
        LINE (w / 10 * 3.8, h / 10 * 3.6)-(w / 10 * 4.05, h / 10 * 3.75), col, BF 'EXTENDED 1ST DOWN
        LINE (w / 10 * 3.8, h / 10 * 3.75)-(w / 10 * 4.6, h / 10 * 4.1), col, BF '1ST ACROSS

        'A
        LINE (w / 10 * 4.85, h / 10 * 1.5)-(w / 10 * 5.1, h / 10 * 2.7), col, BF 'LEFT DOWN
        LINE (w / 10 * 4.85, h / 10 * 1.5)-(w / 10 * 5.75, h / 10 * 1.8), col, BF 'TOP LINE
        LINE (w / 10 * 5.5, h / 10 * 1.5)-(w / 10 * 5.75, h / 10 * 2.7), col, BF 'RIGHT DOWN
        LINE (w / 10 * 5.55, h / 10 * 1.5)-(w / 10 * 5.75, h / 10 * 2.9), col, BF 'RIGHT DOWN EDGE
        LINE (w / 10 * 4.85, h / 10 * 2.4)-(w / 10 * 5.75, h / 10 * 2.65), col, BF 'MIDDLE LINE
        LINE (w / 10 * 4.85, h / 10 * 3.5)-(w / 10 * 5.1, h / 10 * 4.1), col, BF 'EXTENDED LEFT DOWN
        LINE (w / 10 * 5.5, h / 10 * 3.5)-(w / 10 * 5.75, h / 10 * 4.1), col, BF 'EXTENDED RIGHT DOWN
        LINE (w / 10 * 5.55, h / 10 * 3.35)-(w / 10 * 5.75, h / 10 * 4.1), col, BF 'EXTENDED RIGHT DOWN EDGE

        'Y
        LINE (w / 10 * 6, h / 10 * 1.5)-(w / 10 * 6.25, h / 10 * 2.75), col, BF 'LEFT DOWN
        LINE (w / 10 * 6.75, h / 10 * 1.5)-(w / 10 * 7, h / 10 * 3), col, BF 'RIGHT DOWN
        LINE (w / 10 * 6, h / 10 * 2.5)-(w / 10 * 7, h / 10 * 2.85), col, BF '1ST ACROSS
        LINE (w / 10 * 6.75, h / 10 * 3.25)-(w / 10 * 7, h / 10 * 4.1), col, BF 'EXTENDED RIGHT DOWN
        LINE (w / 10 * 6, h / 10 * 3.8)-(w / 10 * 7, h / 10 * 4.1), col, BF 'BOTTOM LINE

        'SWORD
        LINE (w / 10 * 3, h / 10 * 3)-(w / 10 * 6.5, h / 10 * 3.25), col, BF 'HILT
        LINE (w / 10 * 3.5, h / 10 * 2.5)-(w / 10 * 3.75, h / 10 * 3.75), col, BF 'Hand Guard
        LINE (w / 10 * 3.75, h / 10 * 2.75)-(w / 10 * 4.75, h / 10 * 3.50), col, BF 'Blade First Layer
        LINE (w / 10 * 4.75, h / 10 * 2.85)-(w / 10 * 5.5, h / 10 * 3.4), col, BF 'Blade 2nd Layer
        LINE (w / 10 * 5.5, h / 10 * 3.10)-(w / 10 * 7, h / 10 * 3.15), col, BF 'Tip of Blade

        col = _RGB(n, n, n)
    NEXT n

    col = _RGB(0, 0, 0)
    LINE (w / 10, h / 10 * 4.7)-(w, h / 10 * 7), col, BF 'CLEAR OPTIONS

    'PRINT MENU OPTIONS
    _PRINTSTRING (w / 2 - 55, h / 10 * 4.75), "SINGLE-PLAYER"
    _PRINTSTRING (w / 2 - 50, h / 10 * 5.25), "MULTI-PLAYER"
    _PRINTSTRING (w / 2 - 25, h / 10 * 5.75), "QUIT"

    'PICK MENU OPTION
    opt = 0
    col = _RGB(0, 0, 0)
    DO
        LINE (w / 2 - 58, h / 10 * 4.7)-(w / 2 - 70, h / 10 * 7), col, BF 'CLEAR PAST POINTERS
        _PRINTSTRING (w / 2 - 65, h / 10 * (4.75 + (0.5 * opt))), ">" 'DISPLAY POINTER
        _DISPLAY 'REDUCE FLICKERING

        SELECT CASE INKEY$
            CASE "s" 'MOVE POINTER DOWN
                IF opt + 1 = 3 THEN
                    opt = 0
                ELSE
                    opt = opt + 1
                END IF

            CASE "w" 'MOVE POINTER UP
                IF opt - 1 = -1 THEN
                    opt = 2
                ELSE
                    opt = opt - 1
                END IF

            CASE CHR$(13) 'ENTER KEY
                'SINGLE-PLAYER SELECTED
                IF opt = 0 THEN
                    SinglePlayerMenu
                END IF

                'MULTI-PLAYER SELECTED
                IF opt = 1 THEN
                    MultiplayerGameMenu
                END IF

                'QUIT SELECTED
                IF opt = 2 THEN
                    SYSTEM
                END IF
        END SELECT
    LOOP
END SUB


SUB SinglePlayerMenu
    LINE (w / 10, h / 10 * 4.7)-(w, h / 10 * 7), col, BF 'CLEAR OPTIONS
    _PRINTSTRING (w / 2 - 45, h / 10 * 4.75), "CAMPAIGN"
    _PRINTSTRING (w / 2 - 65, h / 10 * 5.25), "INFINITE-WAVES"
    _PRINTSTRING (w / 2 - 28, h / 10 * 5.75), "BACK"
    opt = 0
    DO
        LINE (w / 2 - 67, h / 10 * 4.7)-(w / 2 - 85, h / 10 * 7), col, BF 'CLEAR PAST POINTERS
        _PRINTSTRING (w / 2 - 80, h / 10 * (4.75 + (0.5 * opt))), ">" 'DISPLAY POINTER

        _DISPLAY 'REDUCE FLICKERING

        SELECT CASE INKEY$
            CASE "s" 'MOVE POINTER DOWN
                IF opt + 1 = 3 THEN
                    opt = 0
                ELSE
                    opt = opt + 1
                END IF

            CASE "w" 'MOVE POINTER UP
                IF opt - 1 = -1 THEN
                    opt = 2
                ELSE
                    opt = opt - 1
                END IF
            CASE CHR$(13) 'ENTER PRESSED
                IF opt = 0 THEN
                    Campaign
                END IF
                IF opt = 1 THEN
                END IF
                IF opt = 2 THEN
                    DrawMenu
                END IF
        END SELECT
    LOOP
END SUB

'CAMPAIGN - STORY
SUB Campaign



END SUB


'INFINITE WAVES GAME MODE
SUB InfiniteWaves

END SUB

'MULTIPLAYER GAME MENU
SUB MultiplayerGameMenu
    LINE (w / 10, h / 10 * 4.7)-(w, h / 10 * 7), col, BF 'CLEAR OPTIONS
    _PRINTSTRING (w / 2 - 53, h / 10 * 4.75), "LOCAL"
    _PRINTSTRING (w / 2 - 55, h / 10 * 5.25), "LAN"
    _PRINTSTRING (w / 2 - 54, h / 10 * 5.75), "BACK"

    DO
        LINE (w / 2 - 58, h / 10 * 4.7)-(w / 2 - 70, h / 10 * 7), col, BF 'CLEAR PAST POINTERS
        _PRINTSTRING (w / 2 - 65, h / 10 * (4.75 + (0.5 * opt))), ">" 'DISPLAY POINTER

        _DISPLAY 'REDUCE FLICKERING

        opt = 0
        SELECT CASE INKEY$
            CASE "s" 'MOVE POINTER DOWN
                IF opt + 1 = 3 THEN
                    opt = 0
                ELSE
                    opt = opt + 1
                END IF

            CASE "w" 'MOVE POINTER UP
                IF opt - 1 = -1 THEN
                    opt = 0
                ELSE
                    opt = opt - 1
                END IF
        END SELECT
    LOOP UNTIL INKEY$ = CHR$(13)

    IF opt = 1 THEN
        LocalMultiplayer
    ELSEIF opt = 2 THEN
        LANMultiplayer
    ELSEIF opt = 3 THEN
        DrawMenu
    END IF
END SUB


'MULTIPLAYER ON SAME DEVICE
SUB LocalMultiplayer

END SUB

'MULTIPLAYER OVER WIFI CONNECTION
SUB LANMultiplayer


END SUB

