CHDIR ".\programs\samples\qb45com\action\sfb2"

'                           SFB2:Vector Warriors                             `
'                              by Kevin Reems                                `
'                                1997--1998                                  `
'                              Created Using,                                `
'                  The Slash Engine by Kevin Reems 1997-1998                 `
'----------------------------------------------------------------------------`
'Press F5 To Play                                                            `
'                                                                            `
'Kevin Reems a.k.a. LBt1st - lbt1st@cyberdude.com                            `
'              Please View SFB2 Guide Part-A.html                            `
'                                                                            `
'                                                                            `
'                                                                            `
'                                                                            `
'                                                                            `
'                                                                            `
'                                                                            `
'----------------------------------------------------------------------- SFB2

DECLARE SUB AIsuper (pc%, po%)
DECLARE SUB AIfighter (pc%)
DECLARE SUB AIspecial (pc%, po%)
DECLARE SUB AI (pc%)
DECLARE SUB fightername (n%)
DECLARE SUB options ()
DECLARE SUB settings ()
DECLARE SUB setdetails ()
DECLARE SUB ringout (n)
DECLARE SUB floors ()
DECLARE SUB splash (n)
DECLARE SUB fighterpop (n)
DECLARE SUB fightergoo (wee, d)
DECLARE SUB fighterfreeze (wee)
DECLARE SUB fightercompress (n%)
DECLARE SUB fighterpositions ()
DECLARE SUB fighterinit ()
DECLARE SUB fighterender ()
DECLARE SUB fightermove ()
DECLARE SUB ringoutext (n)
DECLARE SUB fighterlimits ()
DECLARE SUB projectiles ()
DECLARE SUB projectilerender ()
DECLARE SUB setdelay ()
DECLARE SUB smear (x%, y%, Z, c%)
DECLARE SUB smearender ()
DECLARE SUB stagewindow (mode%)
DECLARE SUB ocasional ()
DECLARE SUB camtracking ()
DECLARE SUB newmatch ()
DECLARE SUB Conclusion ()
DECLARE SUB setfightercpu ()
DECLARE SUB setfighter ()
DECLARE SUB fall (n)
DECLARE SUB nokey ()
DECLARE SUB jump (n%, T%)
DECLARE SUB setbody (n%)
DECLARE SUB setko (n)
DECLARE SUB keycheck ()
DECLARE SUB decap (n%)
DECLARE SUB fades ()
DECLARE SUB fighterdirect ()
DECLARE SUB rain2d (c1%, c2%, c3%, l!)
DECLARE SUB rain3d (x1!, y1!, z1!, x2!, y2!, z2!, c1%, c2%, c3%, l!)
DECLARE SUB setstagename (n%)
DECLARE SUB AIgetclose (pc%, po%)
DECLARE SUB AIdefend (pc%, po%)
DECLARE SUB AIattack (pc%, po%)



'------------------------------------------------- Perspective Space Commands

DECLARE SUB pspoint (x, y, Z) : '                                  Point

DECLARE SUB pspset (x, y, Z, c%) : '                               Pset

DECLARE SUB psdpset (x, y, z1, z2, c%) : '                         Deep Pset
                                                                  
DECLARE SUB psline (x1, y1, z1, x2, y2, z2, c%, B%) : '            Line

DECLARE SUB psdline (x1, y1, z1, x2, y2, z2, c1%, c2%, c3%, B%) : 'Deep Line

DECLARE SUB pscline (x1, y1, z1, x5, y5, z5, r, c%) : '            Circle Line

DECLARE SUB pslightning (x1, y1, z1, x5, y5, z5, r, c%) : '        Lightning

DECLARE SUB pscircle (x, y, Z, r1, c%) : '                         Circle

DECLARE SUB pscube (x1, y1, z1, x2, y2, z2, c1%, c2%, c3%) : '     Cube

DECLARE SUB psmark1 (x, y, Z, c1%, c2%, c3%) : '                   Mark1

DECLARE SUB psmark2 (x, y, c1%, c2%, c3%) : '                      Mark2

DECLARE SUB particle (x, y, Z, T%, Q%) : '               Spawn particle(s)
DECLARE SUB particle2 (x, y, Z, T%, Q%) : '              Continued Spawning
DECLARE SUB particlerender () : '                        Render particles%

DECLARE SUB setparticles () : '                          Particle Options
DECLARE SUB particlerender () : '                        Renders particles%
DECLARE SUB particlemove () : '                          Moves them
DECLARE SUB particleclear () : '                         Clears them
DECLARE SUB decay () : '                                 Kill them


'------------------------------------------------------------- Slash Commands

'Sound
DECLARE FUNCTION DetectCard% ()
DECLARE SUB sbinit ()
DECLARE SUB SBplay (Freq%, Wave%, Feedback%, Modl%, Clen%)
DECLARE SUB SBWrite (Reg%, Value%)
DECLARE SUB sbfx (fxx%)

'Set Sound Options
DECLARE SUB setsound ()

'Clear Space For Text
'open
DECLARE SUB smallwindow ()
DECLARE SUB bigwindow ()
'close
DECLARE SUB csmallwindow ()
DECLARE SUB cbigwindow ()

'Let User Load/Save/Reset
DECLARE SUB loadsave ()

'n = 1 Load   n = 2 Save   n = 3 Reset Defaults
'mode% = n: CALL file
DECLARE SUB file ()

'Change Screen Resolution
DECLARE SUB setrez ()

'Change Clear Method
DECLARE SUB setcmethod ()

'Change frameskip%
DECLARE SUB setframeskip ()

'Change Stage%
DECLARE SUB setstage ()

'Apply Movement to Camera
DECLARE SUB movecam ()

'Exit the Program
DECLARE SUB quit ()

'Window x/y
DECLARE SUB winxwiny ()

'Slash Mud
DECLARE SUB mud ()

'Temporary Blur
DECLARE SUB blur (l%)

'Reset Camera Defaults
DECLARE SUB camdefaults ()

'Page Flip
DECLARE SUB pflip ()

'Clear Screen
DECLARE SUB clearscreen ()

'Block Clearing
DECLARE SUB clsblock (n)

'Pauses
DECLARE SUB pause ()

'Waits for Input After an Error Trap
DECLARE SUB errorkey ()

'2D Stars
DECLARE SUB stars2d (c1%, c2%, c3%)

'3D Stars
DECLARE SUB stars3d (x1, y1, z1, x2, y2, z2, c1%, c2%, c3%)

'Offset the Stars
DECLARE SUB starsoffset (x, y)

'Randomize Stars
DECLARE SUB starsrnd ()

'Set Number of Stars
DECLARE SUB setstars ()

'Sets defaults for the current stage
DECLARE SUB stageinit ()

'Stage Shifting
DECLARE SUB stageshifting ()

'Render current stage
DECLARE SUB stagebackground ()
DECLARE SUB stageforground ()

'Display i16 Image
DECLARE SUB i16 (x, y, x2, y2, F$)
DECLARE SUB seti16 ()

'Get path$ from file
DECLARE SUB getpath ()

'Set path$
DECLARE SUB setpath ()

'Render Something on Page 2
DECLARE SUB page2 ()

'Test the Video Pages
DECLARE SUB pagetest ()

'Define Window for 2D or 3D Mode
DECLARE SUB window2d ()
DECLARE SUB window3d ()

'----------------------------------------------------------- Shared Variables

COMMON SHARED stars1x, stars1y, stars1z, stars2x, stars2y, stars2z, stars3x, stars3y, stars3z
COMMON SHARED zoom, zoomd, zoomt, panx, pany, panh, panv, midx%, midy%, winx, winy, rez%, xx1, xx2, yy1, yy2, wx, wy, wz, ringoutt%, ringoutp%, victory%, control%, pointc%, refreash, flimits%, dist%, dif%, AImoved%
COMMON SHARED restart%, frameskip%, cmethod%, cfreq%, blurr%, csave%, nstars%, stage%, bob, flash1%, flash2%, flash3%, ver$, trigger1, trigger2, trigger3, solidc%, tpause%, bgcolor%
COMMON SHARED gravity, particles%, floor1, floor2, floor3, fault$, setback%, mode%, odds%, ticker%, bobm, midstage, camode%, i16m%, smears%, stagemode%, stages%, delay%, walkx, stagename$
COMMON SHARED sbsound%, P1d, P2d, soundticker%, soundwait%, path$, wee$, hfade%, ctime%, clsb%, pflip1%, pflip2%, ring%, startfight%, stageset%, stagedetail%, fighterdetail%, hudetail%

ON ERROR GOTO 8
fault$ = "dim"

'------------------------------------------------------------------- Fighters
DIM SHARED hairt%(1 TO 2)
DIM SHARED hairl%(1 TO 2)
DIM SHARED hairc%(1 TO 2)
DIM SHARED hairx(1 TO 10)
DIM SHARED hairy(1 TO 10)

DIM SHARED projectile%(1 TO 6)
DIM SHARED projectilex(1 TO 6)
DIM SHARED projectiley(1 TO 6)
DIM SHARED projectileh(1 TO 6)
DIM SHARED projectilev(1 TO 6)
DIM SHARED projectilet%(1 TO 6)

DIM SHARED name$(1 TO 2)
DIM SHARED walkx(1 TO 2)
DIM walkh(1 TO 2)
DIM SHARED health%(1 TO 2)
DIM SHARED maxhp%(1 TO 2)
DIM SHARED hpslide%(1 TO 2)
DIM SHARED sdelay%(1 TO 2)
DIM SHARED ko(1 TO 2)
DIM SHARED koslide%(1 TO 2)
DIM SHARED AIactive%(1 TO 2)
DIM SHARED AIhs%(1 TO 2)
DIM SHARED AIhm%(1 TO 2)
DIM SHARED AIhl%(1 TO 2)
DIM SHARED AIhh%(1 TO 2)
DIM SHARED AIfs%(1 TO 2)
DIM SHARED AIfm%(1 TO 2)
DIM SHARED AIfl%(1 TO 2)
DIM SHARED AIfh%(1 TO 2)

DIM SHARED ahpow%(1 TO 2)
DIM SHARED akpow%(1 TO 2)
DIM SHARED lhpow%(1 TO 2)
DIM SHARED lkpow%(1 TO 2)

DIM SHARED hc%(1 TO 2)
DIM SHARED kc%(1 TO 2)

DIM SHARED attackok%(1 TO 2)
DIM SHARED rage(1 TO 2)
DIM SHARED vexed%(1 TO 2)
DIM SHARED ragecharge(1 TO 2)
DIM SHARED razers%(1 TO 2)
DIM SHARED kocharge(1 TO 2)
DIM SHARED win%(1 TO 2)
DIM SHARED combo%(1 TO 2)
DIM SHARED combol%(1 TO 2)
DIM SHARED Special%(1 TO 2)

DIM SHARED headless%(1 TO 2)
DIM SHARED hx(1 TO 2)
DIM SHARED hy(1 TO 2)
DIM SHARED hh(1 TO 2)
DIM SHARED hv(1 TO 2)

DIM SHARED canjump%(1 TO 2)
DIM SHARED position%(1 TO 2)
DIM SHARED d%(1 TO 2)
DIM SHARED ds%(1 TO 2)
DIM SHARED pticker%(1 TO 2)
DIM SHARED psaver%(1 TO 2)

DIM SHARED fighterz(1 TO 2)
DIM SHARED fighterd(1 TO 2)

DIM SHARED headx(1 TO 4)
DIM SHARED neckx(1 TO 4)
DIM SHARED buttx(1 TO 4)
DIM SHARED elbow1x(1 TO 4)
DIM SHARED elbow2x(1 TO 4)
DIM SHARED hand1x(1 TO 4)
DIM SHARED hand2x(1 TO 4)
DIM SHARED nee1x(1 TO 4)
DIM SHARED nee2x(1 TO 4)
DIM SHARED foot1x(1 TO 4)
DIM SHARED foot2x(1 TO 4)

DIM SHARED heady(1 TO 4)
DIM SHARED necky(1 TO 4)
DIM SHARED butty(1 TO 4)
DIM SHARED elbow1y(1 TO 4)
DIM SHARED elbow2y(1 TO 4)
DIM SHARED hand1y(1 TO 4)
DIM SHARED hand2y(1 TO 4)
DIM SHARED nee1y(1 TO 4)
DIM SHARED nee2y(1 TO 4)
DIM SHARED foot1y(1 TO 4)
DIM SHARED foot2y(1 TO 4)

DIM SHARED headh(1 TO 2)
DIM SHARED neckh(1 TO 2)
DIM SHARED butth(1 TO 2)
DIM SHARED elbow1h(1 TO 2)
DIM SHARED elbow2h(1 TO 2)
DIM SHARED hand1h(1 TO 2)
DIM SHARED hand2h(1 TO 2)
DIM SHARED nee1h(1 TO 2)
DIM SHARED nee2h(1 TO 2)
DIM SHARED foot1h(1 TO 2)
DIM SHARED foot2h(1 TO 2)

DIM SHARED headv(1 TO 2)
DIM SHARED neckv(1 TO 2)
DIM SHARED buttv(1 TO 2)
DIM SHARED elbow1v(1 TO 2)
DIM SHARED elbow2v(1 TO 2)
DIM SHARED hand1v(1 TO 2)
DIM SHARED hand2v(1 TO 2)
DIM SHARED nee1v(1 TO 2)
DIM SHARED nee2v(1 TO 2)
DIM SHARED foot1v(1 TO 2)
DIM SHARED foot2v(1 TO 2)

'Body Part Types
DIM SHARED head%(1 TO 2)
DIM SHARED body%(1 TO 2)
DIM SHARED arms%(1 TO 2)
DIM SHARED hands%(1 TO 2)
DIM SHARED legs%(1 TO 2)
DIM SHARED feet%(1 TO 2)

'Body Part Colors
DIM SHARED headc%(1 TO 2)
DIM SHARED bodyc%(1 TO 2)
DIM SHARED armsc%(1 TO 2)
DIM SHARED handsc%(1 TO 2)
DIM SHARED legsc%(1 TO 2)
DIM SHARED feetc%(1 TO 2)

'------------------------------------------------------------------ Particles
DIM SHARED p%(1 TO 90)
DIM SHARED pk%(1 TO 90)
DIM SHARED pg%(1 TO 90)
DIM SHARED pf%(1 TO 90)
DIM SHARED px(1 TO 90)
DIM SHARED py(1 TO 90)
DIM SHARED pz(1 TO 90)
DIM SHARED ph(1 TO 90)
DIM SHARED pv(1 TO 90)
DIM SHARED pd(1 TO 90)
DIM SHARED pc1%(1 TO 90)
DIM SHARED pc2%(1 TO 90)
DIM SHARED pc3%(1 TO 90)

'---------------------------------------------------------------------- Stars
DIM SHARED stars1x(1 TO 20)
DIM SHARED stars1y(1 TO 20)
DIM SHARED stars1z(1 TO 20)
DIM SHARED stars2x(1 TO 20)
DIM SHARED stars2y(1 TO 20)
DIM SHARED stars2z(1 TO 20)
DIM SHARED stars3x(1 TO 20)
DIM SHARED stars3y(1 TO 20)
DIM SHARED stars3z(1 TO 20)

'--------------------------------------------------------------- Blood Smears
DIM SHARED smearl%(1 TO 10)
DIM SHARED smearx%(1 TO 10)
DIM SHARED smeary%(1 TO 10)
DIM SHARED smearz(1 TO 10)
DIM SHARED smearc%(1 TO 10)




'----------------------------------------------------------------------------
'Begin the Program                                         Begin the Program`
'----------------------------------------------------------------------------



'----------------------------------------------------------------- Disclaimer
SCREEN 8
COLOR , 0
c% = 4
FOR wee = 1 TO 6
    COLOR c%, 0
    LOCATE 10, 36
    PRINT "WARNING:"
    PRINT ""
    PRINT "SFB2: Vector Warriors Contains Graphic Violence And Gore That May Be Offending."
    LOCATE 14, 27: PRINT "Player Discretion Advised."

    SELECT CASE wee
        CASE IS = 1: c% = 12
        CASE IS = 2: c% = 15
        CASE IS = 3: c% = 12: SLEEP 3
        CASE IS = 4: c% = 4
        CASE IS = 5: c% = 0
    END SELECT
    FOR d% = 0 TO 15000: NEXT d%
NEXT wee



'---------------------------------------------------------------------------`
'Init ----------------------------------------------------------------- Init`
'---------------------------------------------------------------------------`

4
CLEAR
fault$ = "init"

'------------------------------------+                                      *
'Error And Version Information
ON ERROR GOTO 8: e% = 1
ver$ = "1.00"
'------------------------------------+                                      *

'Show Error Detection Message
IF e% = 0 THEN
    LOCATE 1, 1
    COLOR 15
    PRINT "Error Detection is OFF"
    SLEEP
END IF

RANDOMIZE (TIMER)

'Set NumLock to ON
DEF SEG = 0
KeyFlags = PEEK(1047)
POKE 1047, KeyFlags OR 32
IF (KeyFlags AND 32) = 0 THEN DEF SEG: DEF SEG = 0



'---------------------------------------------------------------------------`
'Defaults -=======================================================- Defaults`
'---------------------------------------------------------------------------`



'-------------------------+ Required by Slash
getpath
mode% = 1: file
setback% = 0
starsrnd
pflip1% = 1
flash1% = 1
mud
camdefaults
IF sbsound% = 1 THEN sbinit

'-------------------------+ Required by Program
stagemode% = 1
stages% = 15
setfightercpu
stageinit
walkh(1) = .5
walkh(2) = .5

'---------------------------------------------------------------------------`
'End Defaults -===============================================- End Defaults`
'---------------------------------------------------------------------------`


'-------------------------- Ready Screen for Slash
IF rez% <> 1 AND rez% <> 7 AND rez% <> 9 AND rez% <> 12 THEN rez% = 9
SCREEN rez%
window3d


'--------------------- Clear Vars.
fault$ = ""
wee$ = ""
neckx(3) = -50
neckx(4) = 50



'----------------------------------------------------------------------------
'Start Loop ===================================================== Start Loop`
'----------------------------------------------------------------------------
DO





    '---------------------
    IF restart% = 1 THEN
        restart% = 0
        SCREEN , 1, 1
        CLS
        SCREEN , 0, 0
        CLS
        GOTO 4
    END IF


    '---------------------------------------------------------- Alternating Vars.
    IF odds% = 0 THEN odds% = 1 ELSE odds% = 0

    FOR pc1 = 1 TO 2
        IF walkx(pc1) < 0 THEN walkh(pc1) = .8
        IF walkx(pc1) > 4 THEN walkh(pc1) = -.8
        walkx(pc1) = walkx(pc1) + walkh(pc1)
    NEXT pc1
 

    '---------------------
    SELECT CASE flash1%

        CASE IS = 9
            flash1% = 1
            flash2% = 9
            flash3% = 4

        CASE IS = 1
            flash1% = 9
            flash2% = 15
            flash3% = 12
    END SELECT

    '---------------------
    IF bob < 0 THEN bobm = bobm + .01 ELSE bobm = bobm - .01
    bob = bob + bobm

    '---------------------
    IF soundticker% > 0 THEN soundticker% = soundticker% - 1



    '----------------------------------------------------------- Keyboard Control
    IF wee$ <> "" THEN
        DEF SEG = &H40
        POKE &H1A, PEEK(&H1C)
    END IF

    wee$ = UCASE$(INKEY$)

    'Disable Kicks for Demize
    IF legs%(1) = 666 THEN
        IF wee$ = "A" THEN wee$ = "Q"
        IF wee$ = "S" THEN wee$ = "W"
    END IF

    SELECT CASE wee$

        'Game Functions
        CASE IS = CHR$(27): options
        CASE IS = "P": pause

    END SELECT

    '-------------------------------------------------------------------- Control
    IF position%(1) = 1 OR position%(1) = 12 THEN attackok%(1) = 1 ELSE attackok%(1) = 0
    IF position%(2) = 1 OR position%(2) = 12 THEN attackok%(2) = 1 ELSE attackok%(2) = 0

    IF control% = 1 AND AIactive%(1) = 0 AND wee$ <> "" THEN

        'Convert Extra Keys To Standard Commands
        SELECT CASE wee$
            CASE IS = CHR$(0) + "H": wee$ = "8"
            CASE IS = CHR$(0) + "K": wee$ = "4"
            CASE IS = CHR$(0) + "P": wee$ = "5"
            CASE IS = CHR$(0) + "M": wee$ = "6"
            CASE IS = "2": wee$ = "5"
        END SELECT

        'Standard Commands

        IF Special%(1) = 0 THEN
            'Normal Moves
            SELECT CASE wee$
                CASE IS = "Q": IF attackok%(1) = 1 AND pticker%(1) > 2 THEN position%(1) = 2
                CASE IS = "W": IF position%(1) = 1 AND pticker%(1) > 5 THEN position%(1) = 3 ELSE IF position%(1) = 12 THEN position%(1) = 13
                CASE IS = "A": IF attackok%(1) = 1 AND pticker%(1) > 2 THEN position%(1) = 5
                CASE IS = "S": IF attackok%(1) = 1 THEN position%(1) = 6
            END SELECT
        ELSE
            'Special Moves
            SELECT CASE wee$
                CASE IS = "Q"
                    SELECT CASE hands%(1)
                        CASE 1, 666: IF projectile%(1) = 0 THEN position%(1) = 30
                        CASE 2: position%(1) = 31
                        CASE 3: position%(1) = 32
                        CASE 4, 1998: position%(1) = 33
                        CASE 5: IF projectile%(1) = 0 THEN position%(1) = 34
                    END SELECT
                CASE IS = "W"
                    SELECT CASE hands%(1)
                        CASE 1, 666: IF projectile%(2) = 0 THEN position%(1) = 35
                        CASE 2: position%(1) = 36
                        CASE 3: position%(1) = 37
                        CASE 4: position%(1) = 38
                        CASE 5: position%(1) = 39
                        CASE 1998: position%(1) = 82
                    END SELECT
                CASE IS = "A"
                    SELECT CASE feet%(1)
                        CASE 1: position%(1) = 40
                        CASE 2: position%(1) = 41
                        CASE 3: position%(1) = 42
                        CASE 4: position%(1) = 43
                        CASE 5: position%(1) = 44
                    END SELECT
                CASE IS = "S"
                    SELECT CASE feet%(1)
                        CASE 1: position%(1) = 45
                        CASE 2: IF pticker%(1) > 25 THEN position%(1) = 46
                        CASE 3: IF canjump%(1) = 1 THEN position%(1) = 47
                        CASE 4: position%(1) = 48
                        CASE 5: position%(1) = 49
                    END SELECT
            END SELECT
        END IF

        'Supers
        IF wee$ = "D" AND rage(1) >= 100 AND attackok%(1) = 1 AND pticker%(1) > 5 THEN
            SELECT CASE body%(1)
                CASE 1: position%(1) = 81
                CASE 2: position%(1) = 82
                CASE 3: position%(1) = 83
                CASE 4: position%(1) = 84
                CASE 5: position%(1) = 85
                CASE 6: IF position%(1) = 1 THEN position%(1) = 86
                CASE 7: IF position%(1) = 1 THEN position%(1) = 87
                CASE 8: position%(1) = 88
                CASE 666: position%(1) = 36
            END SELECT
        END IF

        SELECT CASE wee$
            CASE IS = "4": IF canjump%(1) = 1 THEN butth(1) = butth(1) - .5: IF butth(1) > 0 THEN butth(1) = 0
            CASE IS = "6": IF canjump%(1) = 1 THEN butth(1) = butth(1) + .5: IF butth(1) < 0 THEN butth(1) = 0
            CASE IS = "7": jump (1), 1
            CASE IS = "8": jump (1), 2
            CASE IS = "9": jump (1), 3
            CASE IS = "5": IF canjump%(1) = 1 THEN position%(1) = 12
            CASE IS = "E": IF Special%(1) = 0 THEN Special%(1) = 1 ELSE Special%(1) = 0
            CASE IS = "R", " ": IF attackok%(1) = 1 AND pticker%(1) > 10 THEN position%(1) = 99

        END SELECT
    END IF


    '---------- AI
    IF control% = 1 THEN
        dist% = ABS(buttx(1) - buttx(2))
        IF AIactive%(1) = 1 AND attackok%(1) = 1 THEN AI 1
        IF AIactive%(2) = 1 AND attackok%(2) = 1 THEN AI 2
    END IF




    '----------------------------------------------------------------------- Misc

    'Show Ready, Begin Stuff
    IF ticker% = startfight% AND stage% <> 1000 THEN showbegin% = 50
    IF showbegin% > 0 THEN showbegin% = showbegin% - 1: COLOR 15: LOCATE 22, 1: PRINT stagename$
    IF showbegin% > 30 THEN COLOR 4: LOCATE 4, 38: PRINT "Ready"
    IF showbegin% > 0 AND showbegin% < 25 THEN COLOR 12: LOCATE 4, 38: PRINT "Begin!": control% = 1


    'Run the Ocasional SUB
    occ% = occ% + 1: IF occ% > 5 THEN occ% = 0: ocasional

    '------------------------------------+
    FOR wee = 1 TO 2

        'Bleed when low on health
        IF health%(wee) < RND * 50 AND RND < .5 THEN particle (headx(wee + 2)), (heady(wee + 2) + (RND * 30)), (fighterz(wee)), 0, 1


        'Gush blood when headless
        IF headless%(wee) = 1 THEN
            IF ABS(butty(wee) - necky(wee + 2)) > 5 THEN particle (neckx(wee + 2)), (necky(wee + 2) - 5), fighterz(wee), 2, 1
        END IF


        'Fall When KO or Dead
        IF health%(wee) <= 0 OR ko(wee) <= 0 THEN
            ocasional
            Conclusion
            IF position%(wee) < 8 OR position%(wee) > 11 THEN fall (wee)
        END IF

        'Keep health & ko within limits
        IF health%(wee) < 0 THEN health%(wee) = 0
        IF ko(wee) < 0 THEN ko(wee) = 0
        IF rage(wee) > 100 THEN rage(wee) = 100

        '-------------------------------------------------------------+
        IF ticker% = 1 THEN
            SELECT CASE stage%
                CASE 1
                    fighterfreeze (wee)
                    position%(wee) = 0
                CASE 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1000
                    position%(wee) = 1
            END SELECT
        END IF
        '-------------------------------------------------------------+

        'Combo Life
        IF combol%(wee) > 0 THEN
            combol%(wee) = combol%(wee) - 1
            IF combol%(wee) = 0 THEN combo%(wee) = 0
        END IF

    NEXT wee



    '-------------------------------------------------------------- Get Framerate
    cyc% = cyc% + 1
    IF TIMER - time > .6 THEN
        refreash = cyc%
        cyc% = 0
        time = TIMER

    END IF


    '--------------------------------------------------------------------- Camera
    camtracking
    movecam

    '----------------------------------------------------------------- Move Stuff
    fighterpositions
    floors
    fightermove
    projectiles
    IF odds% = 1 THEN particlemove




    '---------------------------------------------------------------------------`
    '==================================================================== Display
    '---------------------------------------------------------------------------`

    'Color Fades
    fades

    'Stage Shifting
    stageshifting

    'Page Flipping
    IF newdisplay% = 1 THEN newdisplay% = 0: pflip

    'Temporary Pausing
    IF tpause% > 0 THEN tpause% = tpause% - 1: COLOR , 0: SLEEP 1

    'Object Life Decaying
    decay

    'Frame Skipping
    'norender% = norender% + 1
    'IF norender% < frameskip% AND blurr% = 0 THEN 3 ELSE norender% = 0

    'Delays
    'FOR wee = 0 TO delay%: NEXT wee
    'flicker = TIMER: DO UNTIL TIMER - flicker > .00001: LOOP
    _LIMIT 25

    'Clear Screen
    clearscreen


    '============================================================ Render Graphics

    'Draw Background Image If In Screen 8
    'IF rez% = 8 THEN PCOPY 2, pflip1%

    'Background
    stagebackground

    'Render Smears
    IF smears% = 1 THEN smearender

    'Render Fighters
    fighterender

    'Render projectiles
    projectilerender

    'Render particals
    IF particles% > 0 THEN particlerender

    'Forground
    stageforground

    newdisplay% = 1

    3: '-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- End of 3D Graphics


    '------------------------------------------------------------------------ HUD
    fault$ = "hud"
    window2d

    'Show VS. Info
    IF ticker% < startfight% + 50 THEN
        COLOR 15
        IF rez% > 7 THEN
            LOCATE 3: PRINT name$(1)
            LOCATE 3, 40: PRINT "VS."
            LOCATE 3, 70: PRINT name$(2)
        ELSE
            LOCATE 4: PRINT name$(1)
            LOCATE 4, 20: PRINT "VS."
            LOCATE 4, 30: PRINT name$(2)
        END IF
    END IF

    'refreash rate
    LINE (15, 0)-(30, 0), 7, , &H1010
    LINE (20, 0)-(25, 0), 7, , &H101
    IF refreash < 15 OR refreash > 30 THEN c% = 12 ELSE c% = 9
    LINE (refreash - .5, 0)-(refreash + .5, 0), c%
    PSET (refreash, 0), 15

    '--------------------------------------+
    hs1% = 45 - (hpslide%(1) / 4.66)
    ks1% = 45 - (koslide%(1) / 2.33)
    h1% = 45 - (health%(1) / 4.66)
    k1 = 45 - (ko(1) / 2.33)

    hs2% = 55 + (hpslide%(2) / 4.66)
    ks2% = 55 + (koslide%(2) / 2.33)
    h2% = 55 + (health%(2) / 4.66)
    k2 = 55 + (ko(2) / 2.33)


    '--------------------------------------- Damage Bars

    'Health
    IF h1% < 45 THEN
        LINE (hs1%, 2.5)-(h1%, 3.3), flash3%, BF
        LINE (h1%, 2)-(45, 4), hc%(1), BF
    END IF

    IF h2% > 55 THEN
        LINE (h2%, 2.5)-(hs2%, 3.3), flash3%, BF
        LINE (55, 2)-(h2%, 4), hc%(2), BF
    END IF

    'KO
    IF k1 < 45 THEN
        LINE (ks1%, 5.5)-(k1, 6.3), flash3%, BF
        LINE (k1, 5)-(45, 7), kc%(1), BF
    END IF

    IF k2 > 55 THEN
        LINE (ks2%, 5.5)-(k2, 6.3), flash3%, BF
        LINE (55, 5)-(k2, 7), kc%(2), BF
    END IF

    '--------------------------------------- Eye Candy
    IF hudetail% = 1 THEN
        LINE (45, 1)-(55, 8), 15
        LINE (45, 8)-(55, 1), 15

        LINE (0, 1.2)-(44, 1.2), 8
        LINE (0, 8.3)-(44, 8.3), 8
        LINE (56, 1.2)-(100, 1.2), 8
        LINE (56, 8.3)-(100, 8.3), 8

        LINE (0, 1)-(45, 1), 7
        LINE (0, 8)-(45, 8), 7
        LINE (55, 1)-(100, 1), 7
        LINE (55, 8)-(100, 8), 7

        LINE (0, .7)-(44, .7), 15
        LINE (0, 7.7)-(44, 7.7), 15
        LINE (56, .7)-(100, .7), 15
        LINE (56, 7.7)-(100, 7.7), 15
    END IF


    'Rage
    IF hudetail% = 1 THEN
        LINE (45 - (rage(1) / 2.5), 97.5)-(55 + (rage(2) / 2.5), 97.5), flash1%
        IF rage(1) = 100 THEN LINE (5, 96.8)-(45, 96.8), flash2%
        IF rage(2) = 100 THEN LINE (55, 96.8)-(95, 96.8), flash2%
        LINE (45, 96.5)-(55, 96.5), 8
        LINE (45, 97.5)-(55, 97.5), 7
        LINE (45, 97.8)-(55, 97.8), 8

        'Health Overlays
        LINE (44 - (maxhp%(1) / 4.66), 2)-(45, 4), 7, B
        LINE (55, 2)-(56 + (maxhp%(2) / 4.66), 4), 7, B

        'KO Overlays
        LINE (2, 5)-(45, 7), 7, B
        LINE (55, 5)-(98, 7), 7, B

    END IF

    'Rage Meter
    LINE (45, 96.8)-(55, 96.8), 7
    LINE (45 - (rage(1) / 2.5), 97)-(55 + (rage(2) / 2.5), 97), 15


    'Special Boxes
    IF Special%(1) = 1 THEN LINE (0, 96)-(5, 98), flash1%, BF
    LINE (0, 96)-(5, 98), 7, B
    IF Special%(2) = 1 THEN LINE (95, 96)-(100, 98), flash1%, BF
    LINE (95, 96)-(100, 98), 7, B


    'Win Icons
    IF win%(1) > 0 THEN
        LINE (47, 3.5)-(47, 5.5), 12
        LINE (46.3, 5)-(47.5, 5), 12
    END IF

    IF win%(2) > 0 THEN
        LINE (52.7, 3.5)-(52.7, 5.5), 12
        LINE (52.1, 5)-(53.3, 5), 12
    END IF

    'Display Ringout
    IF ringoutt% > 0 THEN ringoutt% = ringoutt% - 1: ringoutext (ringoutp%)

    window3d
    fault$ = ""
    '-------------------------------------------------------------------- End HUD


LOOP
'+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+ End Loop









'================================================================= Error Code
8
DO UNTIL INKEY$ = ""
    wee$ = INKEY$
LOOP

IF fault$ <> "file" AND fault$ <> "ps" AND fault$ <> "save1" AND fault$ <> "nokey" THEN
    CLOSE #1
    SCREEN 9, , 0, 0
    CLS
    COLOR 15
    SOUND 1000, 1: SOUND 500, 1
    LOCATE 1, 1: PRINT "SLASH ERROR:                                                                          "
    PRINT "                                                                                      "
    PRINT "                                                                                      "
    PRINT "                                                                                      "
    PRINT "Esc - Terminate Program"
    PRINT "D   - Delete SLASH.DAT (If the File is Corrupt it May Cause Errors)"
    PRINT "Any Other Key will Attempt to Continue"

    LOCATE 1, 14

END IF

SELECT CASE fault$

    '----------------------------------------------
    CASE IS = "load"

        PRINT "File " + path$ + "\SLASH.DAT is Bad or Missing."
        PRINT "Slash Will Attempt to Recover Using Default Settings."
        PRINT "By Saving the Current Settings a New SLASH.DAT May Be Created."
        setback% = 1
        errorkey
        RESUME NEXT


        '----------------------------------------------
    CASE IS = "save1"
        CHDIR "\"
        MKDIR path$
        CLOSE #1
        setback% = 1
        RESUME NEXT

        '----------------------------------------------
    CASE IS = "save2"
        PRINT "Could Not Write File " + path$ + "\SLASH.DAT"
        PRINT "Slash Will Attempt to Recover Without Saving."
        mode% = 0
        setback% = 2
        errorkey
        RESUME NEXT

        '----------------------------------------------
    CASE IS = "mud"
        PRINT "There Was a Problem While Displaying The Opening Mud."
        PRINT "Slash Will Attempt to Bypass It."
        setback% = 1
        errorkey
        RESUME NEXT

        '----------------------------------------------
    CASE IS = "init"
        PRINT "Could Not Initalize."
        PRINT "There is Probably a Memory or Video Problem."
        PRINT "Slash Can Not Recover From This Error."
        SLEEP
        SYSTEM
        RESUME NEXT

        '----------------------------------------------
    CASE IS = "pflip"
        PRINT "Clearing or Flipping Video"
        errorkey
        RESUME NEXT

        '----------------------------------------------
    CASE IS = "hud"
        PRINT "There Was a Problem While Displaying The HUD."
        PRINT "Slash Will Attempt to Continue Anyway"
        errorkey
        RESUME NEXT

        '----------------------------------------------
    CASE IS = "file"
        setback% = 1
        RESUME NEXT

        '----------------------------------------------
    CASE IS = "ps"
        COLOR 15
        LOCATE 21
        PRINT "PS ERROR"
        RESUME NEXT

        '----------------------------------------------
    CASE IS = "ss"
        PRINT "Problem With Sound Blaster Sound"
        PRINT "Slash Will Attempt to Continue With Sound Disabled."
        sbsound% = 0
        errorkey
        RESUME NEXT

        '----------------------------------------------
    CASE IS = "particles"
        PRINT "Problem Spawning/Rendering Particle(s)"
        PRINT "Slash Will Attempt to Continue With The Particle Engine Disabled."
        setback% = 1
        errorkey
        RESUME NEXT

        '----------------------------------------------
    CASE IS = "pagetest"
        PRINT "Current Screen Mode Does Not Not Support Page " + wee$
        PRINT "Slash Will Switch Back to Page 0 and Continue Page Test Mode."
        errorkey
        SCREEN , 0, 0
        RESUME NEXT


        '----------------------------------------------
    CASE IS = "dim"
        PRINT "Problem Allocating Variables"
        PRINT "You Have Probably Run Out of Conventional Memory"
        PRINT "Slash Can Not Recover From This Error."
        SLEEP
        RESUME NEXT

        '----------------------------------------------
    CASE IS = "nokey"
        RESUME NEXT


        '----------------------------------------------
END SELECT







'----------------------------------------------
PRINT "Unknown"
errorkey
zoom = zoom + .01
zoomd = 0
RESUME NEXT

SUB AI (pc%)

IF pc% = 2 THEN po% = 1 ELSE po% = 2
AImoved% = 0


'--------------------------------------------- Move Away From Downed Opponent
IF position%(po%) > 7 AND position%(po%) < 12 AND dist% < 25 AND pticker%(pc%) > 5 AND pticker%(po%) > 15 THEN
    IF canjump%(pc%) = 1 THEN
        AImoved% = 1
        IF buttx(pc%) > 0 THEN jump (pc%), (1) ELSE jump (pc%), (3)
    END IF
END IF



'------------------------------------------------------------ Maintain Action
wee = 0
IF AImoved% = 0 THEN
    IF pticker%(pc%) > 75 OR position%(po%) = 81 OR dist% < 2 THEN wee = 1
END IF
IF wee = 1 THEN IF RND < .5 THEN AIgetclose pc%, po% ELSE AIattack pc%, po%




 
'-------------------------------------------------------- Normal AI Functions
'Determine if in air and deside move accordingly

IF ABS(buttv(pc%)) > .5 THEN
    AIattack pc%, po%

ELSE
    'Defend
    IF AImoved% = 0 AND ko(pc%) + health%(pc%) < RND * dif% * 10 THEN
        AIdefend pc%, po%
    ELSE
        'Attack
        wee = 0
        IF buttx(pc%) < buttx(po%) AND d%(pc%) = -1 THEN wee = 1
        IF buttx(pc%) > buttx(po%) AND d%(pc%) = 1 THEN wee = 1
        IF wee = 0 AND AImoved% = 0 AND dif% > RND * 25 THEN AIattack pc%, po%
    END IF
    'Get Close
    IF AImoved% = 0 AND ABS(buttx(po%)) < ring% - 50 AND canjump%(pc%) = 1 AND dif% > RND * 30 AND dist% > 18 THEN AIgetclose pc%, po%



    '----------------------------------------------------------- Avoid Projectile
    IF dif% > RND * 25 THEN

        IF pc% = 2 THEN
            IF dif% > RND * 25 THEN
                IF projectile%(1) > 0 AND position%(2) = 1 AND projectilex(1) > buttx(2) - 75 AND projectilex(1) < buttx(2) + 75 THEN
                    IF RND < .5 THEN
                        jump 2, 2
                    ELSE
                        IF RND < .5 THEN position%(2) = 99 ELSE position%(2) = 12
                    END IF
                END IF
            END IF
        ELSE
            IF projectile%(4) > 0 AND position%(1) = 1 AND projectilex(4) > buttx(1) - 75 AND projectilex(4) < buttx(1) + 75 THEN
                IF RND < .5 THEN
                    jump 1, 2
                ELSE
                    IF RND < .5 THEN position%(1) = 99 ELSE position%(1) = 12
                END IF
            END IF
        END IF
    END IF





END IF
END SUB

SUB AIattack (pc%, po%)

IF rage(pc%) >= 100 THEN
    'Super
    AIsuper pc%, po%
ELSE
    'Special
    IF ko(pc%) > 25 AND dif% > RND * 30 AND pticker%(pc%) > 20 THEN AImoved% = 1: AIspecial pc%, po%
END IF

'Normal Attack
IF AImoved% = 0 AND butty(po%) > butty(pc%) - 15 THEN
    IF dist% < 18 THEN
        'Attack with Normal Move
        AImoved% = 1
        IF position%(pc%) = 12 AND RND < .5 THEN
            IF RND < .5 AND dist% < 10 THEN position%(pc%) = 13 ELSE IF head%(pc%) <> 666 THEN position%(pc%) = 6
        ELSE
            IF pticker%(pc%) > 15 THEN
                SELECT CASE INT(RND * 5)
                    CASE 0: position%(pc%) = 12
                    CASE 1: position%(pc%) = 2
                    CASE 2: position%(pc%) = 3
                    CASE 3: IF stage% <> 15 THEN position%(pc%) = 5
                    CASE 4: IF stage% <> 15 THEN position%(pc%) = 6
                END SELECT
            END IF
        END IF
    END IF
END IF

END SUB

SUB AIdefend (pc%, po%)

'Jump or Block if close
IF dist% < 25 THEN
    IF attackok%(pc%) = 1 AND RND < .5 AND pticker%(pc%) > 10 THEN
        position%(pc%) = 99: AImoved% = 1
    ELSE
        IF ABS(buttx(pc%)) < ring% - 50 THEN jump (pc%), (INT(RND * 3) + 1): AImoved% = 1
    END IF
END IF



END SUB

SUB AIfighter (pc%)

'Determine which moves to use for short/long range etc.

'Hand Attacks
SELECT CASE hands%(pc%)
    CASE 1
        AIhs%(pc%) = 35
        AIhm%(pc%) = 35
        AIhl%(pc%) = 30
        AIhh%(pc%) = 12
    CASE 2
        IF RND < .5 THEN AIhs%(pc%) = 31 ELSE AIhs%(pc%) = 36
        AIhm%(pc%) = 1
        AIhl%(pc%) = 1
        AIhh%(pc%) = 12
    CASE 3
        IF RND < .5 THEN AIhs%(pc%) = 32 ELSE AIhs%(pc%) = 37
        AIhm%(pc%) = 1
        AIhl%(pc%) = 1
        AIhh%(pc%) = 37
    CASE 4
        AIhs%(pc%) = 38
        AIhm%(pc%) = 33
        AIhl%(pc%) = 33
        AIhh%(pc%) = 38
    CASE 5
        AIhs%(pc%) = 39
        AIhm%(pc%) = 34
        AIhl%(pc%) = 34
        AIhh%(pc%) = 12
END SELECT

'Foot Attacks
SELECT CASE feet%(pc%)
    CASE 1
        AIfs%(pc%) = 45
        AIfm%(pc%) = 40
        AIfl%(pc%) = 1
        AIfh%(pc%) = 40
    CASE 2
        IF RND < .5 THEN AIfs%(pc%) = 41 ELSE AIfs%(pc%) = 46
        AIfm%(pc%) = 41
        AIfl%(pc%) = 1
        AIfh%(pc%) = 12
    CASE 3
        IF RND < .5 THEN AIfs%(pc%) = 42 ELSE AIfs%(pc%) = 47
        AIfm%(pc%) = 42
        AIfl%(pc%) = 1
        AIfh%(pc%) = 47
    CASE 4
        AIfs%(pc%) = 48
        AIfm%(pc%) = 43
        AIfl%(pc%) = 48
        AIfh%(pc%) = 43
    CASE 5
        IF RND < .5 THEN AIfs%(pc%) = 44 ELSE AIfs%(pc%) = 49
        AIfm%(pc%) = 44
        AIfl%(pc%) = 1
        AIfh%(pc%) = 49
END SELECT


IF stage% = 15 THEN
    AIhs%(pc%) = 35
    AIhm%(pc%) = 35
    AIhl%(pc%) = 30
    AIhh%(pc%) = 13

    AIfs%(pc%) = 3
    AIfm%(pc%) = 30
    AIfl%(pc%) = 30
    AIfh%(pc%) = 2
END IF


END SUB

SUB AIgetclose (pc%, po%)

IF RND > .1 THEN

    'Walk
    IF canjump%(pc%) = 1 THEN
        AImoved% = 1
        IF buttx(po%) < buttx(pc%) THEN butth(pc%) = butth(pc%) - .5 ELSE butth(pc%) = butth(pc%) + .5
    END IF

ELSE

    'Jump
    IF dist% > 50 AND canjump%(pc%) = 1 THEN
        AImoved% = 1
        IF buttx(po%) < buttx(pc%) THEN jump (pc%), (1) ELSE jump (pc%), (3)
    END IF

END IF
END SUB

SUB AIspecial (pc%, po%)

IF RND < .5 THEN
    IF butty(po%) > butty(pc%) - 15 THEN
        SELECT CASE dist%
            CASE IS < 20: position%(pc%) = AIhs%(pc%)
            CASE IS >= 20 <= 75: position%(pc%) = AIhm%(pc%)
            CASE IS > 75: position%(pc%) = AIhl%(pc%)
        END SELECT
    ELSE
        IF dist% < 20 THEN position%(pc%) = AIhh%(pc%)
    END IF
ELSE
    IF butty(po%) > butty(pc%) - 15 THEN
        SELECT CASE dist%
            CASE IS < 25: position%(pc%) = AIfs%(pc%)
            CASE IS >= 25 <= 75: position%(pc%) = AIfm%(pc%)
            CASE IS > 75: position%(pc%) = AIfl%(pc%)
        END SELECT
    ELSE
        IF butty(po%) < heady(pc% + 2) AND dist% < 20 THEN position%(pc%) = AIfh%(pc%)
    END IF
END IF


END SUB

SUB AIsuper (pc%, po%)
SELECT CASE body%(pc%)

    CASE 1
        IF canjump%(pc%) = 1 THEN
            IF dist% > 75 THEN position%(pc%) = 81: AImoved% = 1
            IF position%(po%) >= 8 AND position%(po%) <= 11 THEN position%(pc%) = 81: AImoved% = 1
        END IF

    CASE 2
        IF dist% > 75 AND position%(po%) < 8 THEN position%(pc%) = 82: AImoved% = 1

    CASE 3
        IF dist% < 50 AND position%(po%) < 8 THEN position%(pc%) = 83: AImoved% = 1

    CASE 4
        IF health%(pc%) < 100 THEN position%(pc%) = 84: AImoved% = 1

    CASE 5
        IF dist% < 100 THEN position%(pc%) = 85: AImoved% = 1

    CASE 6
        IF dist% < 125 AND canjump%(pc%) = 1 THEN position%(pc%) = 86: AImoved% = 1

    CASE 7
        IF dist% < 25 AND canjump%(pc%) = 1 THEN position%(pc%) = 87: AImoved% = 1

    CASE 8
        IF dist% < 20 AND canjump%(pc%) = 1 THEN position%(pc%) = 88: AImoved% = 1

    CASE 666
        IF dist% < 20 AND canjump%(pc%) = 1 THEN position%(pc%) = 36: AImoved% = 1

END SELECT
END SUB

SUB bigwindow
SCREEN , , 0, 0: COLOR 12, 0

LOCATE 1, 29: PRINT " SFB2: Vector Warriors "

FOR wee = 0 TO 248 STEP 2
    LINE (midx% - wee, midy% - 200)-(midy% + wee, midy% + 200), INT((RND * 2) + 7)
NEXT wee

LINE (midx% - wee, midy% - 200)-(midy% + wee, midy% + 200), 0, BF
LINE (midx% - wee, midy% - 200)-(midy% + wee, midy% + 200), 7, B
COLOR 4
IF rez% = 7 THEN LOCATE 22, 35 ELSE LOCATE 22, 75
PRINT ver$
wee$ = ""
END SUB

SUB blur (l%)
IF blurr% = 0 THEN
    blurr% = l%
    csave% = cfreq%
END IF
END SUB

SUB camdefaults

panx = 0
panh = 0
pany = 0
panv = 0
zoom = .1
zoomd = 0
midx% = 250
midy% = 250

winx = 250
winy = 250

winxwiny

END SUB

SUB camtracking

SELECT CASE camode%

    CASE 0
        EXIT SUB

    CASE 1
        trackx% = (neckx(3) + neckx(4)) / 2
        tracky% = ((necky(3) + necky(4)) / 2) - 10

    CASE 2
        trackx% = (buttx(1) + neckx(3)) / 2
        tracky% = ((butty(1) + necky(3)) / 2)

    CASE 3
        trackx% = (buttx(2) + neckx(4)) / 2
        tracky% = ((butty(2) + necky(4)) / 2)

END SELECT

'----------------------------------------------------------------------------

IF panx > trackx% + 30 THEN panh = panh - .5
IF panx < trackx% - 30 THEN panh = panh + .5
IF pany > tracky% + 20 THEN panv = panv - 1
IF pany < tracky% - 20 THEN panv = panv + 1
IF ABS(panh) > 10 THEN panh = panh / 1.1
IF ABS(panv) > 10 THEN panv = panv / 1.1
IF panx > trackx% - 25 AND panx < trackx% + 25 THEN panh = panh / 1.1
IF pany > tracky% - 25 AND pany < tracky% + 25 THEN panv = panv / 1.5


'Zoom Control
IF camode% = 1 THEN
    IF buttx(1) < buttx(2) THEN x = (buttx(2) - buttx(1)) / 1000 ELSE x = (buttx(1) - buttx(2)) / 1000
    IF butty(1) < butty(2) THEN y = (butty(2) - butty(1)) / 1000 ELSE y = (butty(1) - butty(2)) / 1000
    F = (x + y) / 2
    IF zoom < zoomt + F - .001 THEN zoom = zoom + .001
    IF zoom > zoomt + F + .001 THEN zoom = zoom - .001
    IF zoom < zoomt + F - .1 THEN zoomd = zoomd + .001
    IF zoom > zoomt + F + .1 THEN zoomd = zoomd - .001
    IF zoomd < -.005 THEN zoomd = -.005
END IF

'------------------
IF zoom < .0000001 THEN zoom = .0000001
END SUB

SUB cbigwindow

SCREEN , 0, 0
FOR wee = 0 TO 248 STEP 15
    LINE (midx% - 248 + wee, midy% - 200)-(midy% + 248 - wee, midy% + 200), INT((RND * 2) + 7)
    LINE (midx% - 248, midy% - 200)-(midy% + 248, midy% + 200), 15, B
NEXT wee

wee$ = ""
END SUB

SUB clearscreen
'Blur
IF blurr% > 0 THEN
    blurr% = blurr% - 1
    IF blurr% = 0 THEN cfreq% = csave% ELSE cfreq% = 1
END IF

IF ctime% > cfreq% THEN
    ctime% = 0
    SELECT CASE cmethod%

        CASE IS = 1
            LINE (xx1, yy1)-(xx2, yy2), 0, BF

        CASE IS = 2
            CLS

        CASE IS = 3
            window2d
            hfade% = hfade% + 5: IF hfade% = 15 THEN hfade% = 0
            FOR wee = hfade% TO 95 STEP 15
                LINE (0, wee)-(100, wee + 5), 0, BF
            NEXT wee
            window3d

        CASE IS = 4
            IF clsb% = 5 THEN clsb% = 0
            clsblock (clsb%)
            clsb% = clsb% + 1
    END SELECT
ELSE ctime% = ctime% + 1
END IF

END SUB

SUB clsblock (n)
window2d
SELECT CASE n

    CASE IS = 1
        FOR y = 0 TO 90 STEP 10
            FOR x = 0 TO 90 STEP 10
                LINE (x, y)-(x + 5, y + 5), 0, BF
            NEXT x
        NEXT y

    CASE IS = 2
        FOR y = 5 TO 95 STEP 10
            FOR x = 5 TO 95 STEP 10
                LINE (x, y)-(x + 5, y + 5), 0, BF
            NEXT x
        NEXT y

    CASE IS = 3
        FOR y = 0 TO 90 STEP 10
            FOR x = 5 TO 95 STEP 10
                LINE (x, y)-(x + 5, y + 5), 0, BF
            NEXT x
        NEXT y

    CASE IS = 4
        FOR y = 5 TO 95 STEP 10
            FOR x = 0 TO 90 STEP 10
                LINE (x, y)-(x + 5, y + 5), 0, BF
            NEXT x
        NEXT y

END SELECT
window3d
END SUB

SUB Conclusion

'------------------------------------------------------------ Determine Flash
IF victory% = 0 THEN
    victory% = 1

    IF health%(1) <= 0 OR health%(2) <= 0 THEN
        soundticker% = 0: sbfx 14
        COLOR , 12
        flicker = TIMER: DO UNTIL TIMER - flicker > .1: LOOP
        COLOR , 0
    END IF
 
    IF ko(1) <= 0 OR ko(2) <= 0 THEN
        soundticker% = 0: sbfx 15
        COLOR , 9
        flicker = TIMER: DO UNTIL TIMER - flicker > .1: LOOP
        COLOR , 0
    END IF

    IF frameskip% < 3 THEN tpause% = 2
END IF


'------------------------------- Determine When to Figure Round / Match Info.
IF position%(1) = 8 AND pticker%(1) >= 75 THEN victory% = 2
IF position%(2) = 8 AND pticker%(2) >= 75 THEN victory% = 2
IF position%(1) = 10 AND pticker%(1) >= 75 THEN victory% = 2
IF position%(2) = 10 AND pticker%(2) >= 75 THEN victory% = 2

IF victory% = 2 THEN
    victory% = 0

    '------------------------------------------------------ Determine Round Info.
    SCREEN , , 0, 0
    LOCATE 5
    COLOR 9
    IF ko(1) <= 0 AND health%(1) > 0 THEN PRINT name$(1) + " - KO": win%(2) = win%(2) + 1
    IF ko(2) <= 0 AND health%(2) > 0 THEN PRINT name$(2) + " - KO": win%(1) = win%(1) + 1
    IF ko(1) <= 0 AND ko(2) <= 0 THEN PRINT "Double KO"
    COLOR 12
    IF health%(1) <= 0 THEN PRINT name$(1) + " - Dead": win%(2) = 2
    IF health%(2) <= 0 THEN PRINT name$(2) + " - Dead": win%(1) = 2

    '------------------------------------------------------ Determine Match Info.
    COLOR 15

    IF win%(1) > 1 AND win%(2) > 1 THEN
        PRINT "Tie Match": win%(1) = 1: win%(2) = 1
        IF health%(1) <= 0 AND health%(2) <= 0 THEN
            IF ringoutp% <> 1 AND ringoutp% <> 3 THEN
                PRINT "Resurrecting Players To Continue"
                decap 3
                health%(1) = 100
                health%(2) = 100
                particle (headx(3)), (heady(3)), (fighterz(1)), 5, 10
                particle (headx(4)), (heady(4)), (fighterz(2)), 5, 10
            ELSE
                PRINT name$(2) + " Takes Win"
                newmatch
            END IF
        END IF

    ELSE

        IF win%(1) > 1 OR win%(2) > 1 THEN
            IF win%(1) > 1 AND win%(2) < 2 THEN PRINT name$(1) + " Wins the Match": stage% = stage% + 1: setfightercpu
            IF win%(2) > 1 AND win%(1) < 2 THEN PRINT name$(2) + " Wins the Match": IF stage% > stages% THEN setfightercpu
            newmatch
        END IF
    END IF

    '----------------------------------------------------------------------------

    wee = TIMER
    34 IF TIMER - wee < 3 THEN 34

    setko (1): setko (2)

END IF
END SUB

SUB csmallwindow


SCREEN , 0, 0
FOR wee = 0 TO 248 STEP 3
    LINE (midx% - 248 + wee, midy% - 75)-(midy% + 248 - wee, midy% + 75), INT((RND * 2) + 7)
    LINE (midx% - 248, midy% - 75)-(midy% + 248, midy% + 75), 15, B
NEXT wee

wee$ = ""
END SUB

SUB decap (n%)

IF n% = 3 THEN
    headless%(1) = 0: headless%(2) = 0
ELSE
    IF headless%(n%) = 0 THEN
        bgcolor% = 15
        camode% = n% + 1
        zoomd = zoomd + .001
        headless%(n%) = 1
        hx(n%) = headx(n% + 2)
        hy(n%) = heady(n% + 2)
        hh(n%) = (RND - .5) * 2
        hv(n%) = -12
    END IF
END IF
END SUB

SUB decay
FOR wee = 1 TO particles%

    IF p%(wee) > 0 THEN
        p%(wee) = p%(wee) - 1
        IF p%(wee) = 15 THEN pc1%(wee) = pc2%(wee)
        IF p%(wee) = 5 THEN pc1%(wee) = pc3%(wee)

        IF pk%(wee) = 1 AND py(wee) > floor1 - pv(wee) AND ABS(px(wee)) < ring% - 8 THEN
            IF py(wee) < floor1 + 15 AND RND < .4 THEN smear (px(wee) + ((RND - .5) * 8)), (floor1), (pz(wee) + (RND - .5)), (pc1%(wee))
            p%(wee) = 0
        END IF

        IF pk%(wee) = 2 AND py(wee) > floor2 - pv(wee) THEN p%(wee) = 0
    END IF
NEXT wee

FOR wee = 1 TO 10
    IF smearl%(wee) > 0 THEN
        smearl%(wee) = smearl%(wee) + 1
        IF smearl%(wee) = 60 AND smearc%(wee) = 12 THEN smearc%(wee) = 4
    END IF
NEXT wee

'Razer Arms
FOR wee = 1 TO 2
    IF razers%(wee) > 0 THEN
        razers%(wee) = razers%(wee) - 1
        IF razers%(wee) = 1 THEN
            pc2 = wee + 2
            particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(wee) + .2), 15, 5
            particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(wee) - .2), 15, 5
        END IF
    END IF
NEXT wee

END SUB

DEFINT A-Z
FUNCTION DetectCard%

'Returns -1 (true) if detected and 0 (false) if not.
                                                        
CALL SBWrite(&H4, &H60)
CALL SBWrite(&H4, &H80)
B = INP(&H388)
CALL SBWrite(&H2, &HFF)
CALL SBWrite(&H4, &H21)
FOR x = 0 TO 130
    a = INP(&H388)
NEXT x
c = INP(&H388)
CALL SBWrite(&H4, &H60)
CALL SBWrite(&H4, &H80)
SUCCESS = 0
IF (B AND &HE0) = &H0 THEN
    IF (c AND &HE0) = &HC0 THEN
        SUCCESS = -1
    END IF
END IF
DetectCard% = SUCCESS
END FUNCTION

DEFSNG A-Z
SUB errorkey
wee = 2
wee$ = ""

LOCATE 21, 1
PRINT "E-mail lbt1st@cyberdude.com if problem persist. SFB2 Version " + ver$
PRINT "[                  ] - System may be halted if inanimate"
24
wee$ = UCASE$(INKEY$)

wee = wee + .005
IF INT(wee) = 20 THEN wee = 2: LOCATE 22, 19: PRINT " "
LOCATE 22, INT(wee): PRINT "*"
IF INT(wee) > 2 THEN LOCATE 22, INT(wee) - 1: PRINT " "

IF wee$ = "" THEN 24
IF wee$ = CHR$(27) THEN SYSTEM

IF UCASE$(wee$) = "D" THEN
    SHELL "del slash.dat"
    SHELL "echo Slash Attempted to Delete SLASH.DAT"
    SHELL "echo You May Now Try to Restart the Program."
    SYSTEM
END IF


END SUB

SUB fades
IF bgcolor% <> 0 THEN

    SELECT CASE bgcolor%
        CASE 19
            COLOR , 15
            bgcolor% = 9

        CASE 15
            COLOR , 15
            bgcolor% = 12

        CASE 12
            COLOR , 12
            bgcolor% = 4

        CASE 9
            COLOR , 9
            bgcolor% = 1

        CASE 4
            COLOR , 4
            bgcolor% = -1

        CASE 1
            COLOR , 1
            bgcolor% = -1

        CASE -1
            COLOR , 0
            bgcolor% = 0

    END SELECT
END IF
END SUB

SUB fall (n)

IF d%(n) = 1 AND butth(n) < 0 THEN position%(n) = 10
IF d%(n) = -1 AND butth(n) < 0 THEN position%(n) = 8
IF d%(n) = 1 AND butth(n) > 0 THEN position%(n) = 8
IF d%(n) = -1 AND butth(n) > 0 THEN position%(n) = 10
IF position%(n) < 8 OR position%(n) > 11 THEN position%(n) = 10

END SUB

SUB fightercompress (n%)
headx(n%) = 0
neckx(n%) = 0

elbow1x(n%) = 0
elbow2x(n%) = 0
hand1x(n%) = 0
hand2x(n%) = 0

nee1x(n%) = 0
nee2x(n%) = 0
foot1x(n%) = 0
foot2x(n%) = 0

heady(n%) = 0
necky(n%) = 0

elbow1y(n%) = 0
elbow2y(n%) = 0
hand1y(n%) = 0
hand2y(n%) = 0

nee1y(n%) = 0
nee2y(n%) = 0
foot1y(n%) = 0
foot2y(n%) = 0

END SUB

SUB fighterdirect

'------------------------------------------------------------- Flip Direction
FOR wee = 1 TO 2

    IF wee = 1 AND position%(1) = 1 AND pticker%(1) > 20 AND canjump%(1) = 1 THEN
        IF buttx(1) > buttx(2) THEN d%(wee) = -1 ELSE d%(wee) = 1
    END IF

    IF wee = 2 AND position%(2) = 1 AND pticker%(2) > 20 AND canjump%(2) = 1 THEN
        IF buttx(1) < buttx(2) THEN d%(wee) = -1 ELSE d%(wee) = 1
    END IF

NEXT wee
END SUB

SUB fighterender

FOR wee = 1 TO 2
    wee2 = wee + 2
    fm1 = fighterz(wee) - .1
    fp1 = fighterz(wee) + .1

    IF position%(wee) = 0 THEN 36

    '----------------------------------------------- High Detail Fighter Graphics
    IF fighterdetail% = 1 THEN

        midbodx = buttx(wee) + ((neckx(wee2) - buttx(wee)) / 2)
        midbody = necky(wee2) + ((butty(wee) - necky(wee2)) / 2)


        '---------------------------------------------------------------- Render Hair
        'P1
        IF position%(1) > 0 AND hairl%(1) > 0 AND wee = 1 THEN
            FOR n% = 1 TO 4
                SELECT CASE hairt%(1)
                    CASE 1: psline (hairx(n%)), (hairy(n%)), (fighterz(1)), (hairx(n% + 1)), (hairy(n% + 1)), (fighterz(1)), (hairc%(1)), 0
                    CASE 2: pscline (hairx(n%)), (hairy(n%)), (fighterz(1)), (hairx(n% + 1)), (hairy(n% + 1)), (fighterz(1)), .2, (hairc%(1))
                END SELECT
            NEXT n%
        END IF

        'P2
        IF position%(2) > 0 AND hairl%(2) > 0 AND wee = 2 THEN
            FOR n% = 6 TO 9
                SELECT CASE hairt%(2)
                    CASE 1: psline (hairx(n%)), (hairy(n%)), (fighterz(2)), (hairx(n% + 1)), (hairy(n% + 1)), (fighterz(2)), (hairc%(2)), 0
                    CASE 2: pscline (hairx(n%)), (hairy(n%)), (fighterz(2)), (hairx(n% + 1)), (hairy(n% + 1)), (fighterz(2)), .2, (hairc%(2))
                END SELECT
            NEXT n%
        END IF



        '---------------------------------------------------------------- Razer Arm-1
        IF razers%(wee) > 0 THEN
            IF razers%(wee) > 50 THEN c% = flash3% ELSE c% = 4
            psline (elbow1x(wee2) + (hand1x(wee) / 2) * d%(wee)), (elbow1y(wee2) + (hand1y(wee) / 2)), (fp1 + .1), (elbow1x(wee2) + (hand1x(wee) * 2) * d%(wee)), (elbow1y(wee2) + (hand1y(wee) * 2)), (fp1 + .1), c%, 0
        END IF


        '---------------------------------------------------------------------- Heads
        IF headless%(wee) = 1 THEN headx(wee2) = hx(wee): heady(wee2) = hy(wee)

        SELECT CASE head%(wee)
            CASE 1
                pscircle (headx(wee2)), (heady(wee2)), (fighterz(wee)), 1.5, headc%(wee)

            CASE 2
                psline (headx(wee2) + 1 * d%(wee)), (heady(wee2) - 1), (fighterz(wee)), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), headc%(wee), 0
                psline (headx(wee2) + 1 * d%(wee)), (heady(wee2) - 1), (fighterz(wee)), (headx(wee2) - 2 * d%(wee)), (heady(wee2) - 3), (fighterz(wee)), headc%(wee), 0
                psline (headx(wee2) - 2 * d%(wee)), (heady(wee2) - 3), (fighterz(wee)), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), headc%(wee), 0
                psline (headx(wee2) - 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), headc%(wee), 0
                psline (headx(wee2) - 2 * d%(wee)), (heady(wee2) - 3), (fighterz(wee)), (headx(wee2) - 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), headc%(wee), 0


            CASE 3
                psline (headx(wee2) - 1 * d%(wee)), (heady(wee2) - 2), (fighterz(wee)), (headx(wee2) + 2 * d%(wee)), (heady(wee2) + 1), (fighterz(wee)), headc%(wee), 0
                psline (headx(wee2) - 2 * d%(wee)), (heady(wee2) + 1), (fighterz(wee)), (headx(wee2) + 2 * d%(wee)), (heady(wee2) + 1), (fighterz(wee)), headc%(wee), 0
                psline (headx(wee2) - 2 * d%(wee)), (heady(wee2) + 1), (fighterz(wee)), (headx(wee2) - 1 * d%(wee)), (heady(wee2) - 2), (fighterz(wee)), headc%(wee), 0

            CASE 4
                pscircle (headx(wee2)), (heady(wee2)), (fighterz(wee)), 1.5, headc%(wee)
                psline (headx(wee2) - 3 * d%(wee)), (heady(wee2)), (fighterz(wee)), (headx(wee2)), (heady(wee2)), (fighterz(wee)), headc%(wee), 0
                psline (headx(wee2)), (heady(wee2)), (fighterz(wee)), (headx(wee2) + 2 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), headc%(wee), 0

            CASE 5
                psline (headx(wee2)), (heady(wee2) - 2), (fighterz(wee)), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), headc%(wee), 0
                psline (headx(wee2) - 2 * d%(wee)), (heady(wee2) - 2), (fighterz(wee)), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), headc%(wee), 0
                psline (headx(wee2) - 3 * d%(wee)), (heady(wee2)), (fighterz(wee)), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), headc%(wee), 0
                psline (headx(wee2) - 3 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), headc%(wee), 0

            CASE 666
                psline (headx(wee2) - 2 * d%(wee)), (heady(wee2) - 1), (fighterz(wee) + .05), (headx(wee2) - 3 * d%(wee)), (heady(wee2) - 3), (fighterz(wee) + .3), 7, 0

                psline (headx(wee2) - 2 * d%(wee)), (heady(wee2) - 2), (fp1), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), 12, 0
                psline (headx(wee2) - 2 * d%(wee)), (heady(wee2) - 2), (fm1), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), 12, 0
                psline (headx(wee2) - 3 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), 12, 0
                pscircle (headx(wee2) - 2.5 * d%(wee)), (heady(wee2) + .1), (fighterz(wee)), 1.5, 12

                psline (headx(wee2) - 2 * d%(wee)), (heady(wee2) - 1), (fighterz(wee) - .05), (headx(wee2) - 3 * d%(wee)), (heady(wee2) - 3), (fighterz(wee) - .3), 15, 0


            CASE 1998
                pslightning (headx(wee2) + (RND - .5) * 3), (heady(wee2) + (RND - .5) * 3), (fighterz(wee)), (headx(wee2) + (RND - .5) * 3), (heady(wee2) + (RND - .5) * 3), (fighterz(wee)), 5, flash2%



            CASE 2000
                pscircle (headx(wee2)), (heady(wee2)), (fighterz(wee)), RND, headc%(wee)
                pscircle (headx(wee2)), (heady(wee2)), (fighterz(wee)), 1.5, headc%(wee)

        END SELECT


        '---------------------------------------------------------------------- Arm-1
        SELECT CASE arms%(wee)
            CASE 1
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), armsc%(wee), 0
                psline (neckx(wee2)), (necky(wee2) + 1), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), armsc%(wee), 0
                psline (elbow1x(wee2)), (elbow1y(wee2)), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), armsc%(wee), 0

            CASE 2
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), armsc%(wee), 0
                psline (elbow1x(wee2)), (elbow1y(wee2)), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), armsc%(wee), 0
                psline (neckx(wee2)), (necky(wee2) + 2), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), armsc%(wee), 0
                psline (elbow1x(wee2)), (elbow1y(wee2) + 1), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), armsc%(wee), 0

            CASE 3
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), armsc%(wee), 0
                psline (elbow1x(wee2)), (elbow1y(wee2)), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), armsc%(wee), 0
                psline (midbodx), (necky(wee2) + 1), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2) + 1), (fp1), armsc%(wee), 0
                psline (elbow1x(wee2)), (elbow1y(wee2) + 1), (fp1), (hand1x(wee2)), (hand1y(wee2) + .5), (fp1), armsc%(wee), 0

            CASE 4
                psline (neckx(wee2) - .5 * d%(wee)), (necky(wee2) - .5), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), armsc%(wee), 0
                psline (neckx(wee2) + .8 * d%(wee)), (necky(wee2) + .5), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), armsc%(wee), 0
                psline (elbow1x(wee2) - .3 * d%(wee)), (elbow1y(wee2) - .5), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), armsc%(wee), 0
                psline (elbow1x(wee2) + .3 * d%(wee)), (elbow1y(wee2) + .5), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), armsc%(wee), 0
                pscircle (neckx(wee2) + elbow1x(wee) / 2 * d%(wee)), (necky(wee2) + elbow1y(wee) / 2), (fp1), .8, armsc%(wee)
                pscircle (elbow1x(wee2) + hand1x(wee) / 2 * d%(wee)), (elbow1y(wee2) + hand1y(wee) / 2), (fp1), .5, armsc%(wee)

            CASE 5
                psline (neckx(wee2) - .5 * d%(wee)), (necky(wee2) - .5), (fighterz(wee)), (elbow1x(wee2) + .5 * d%(wee)), (elbow1y(wee2) + .5), (fp1), armsc%(wee), 0
                psline (neckx(wee2) + .8 * d%(wee)), (necky(wee2) + .5), (fighterz(wee)), (elbow1x(wee2) - .5 * d%(wee)), (elbow1y(wee2) - .5), (fp1), armsc%(wee), 0
                psline (elbow1x(wee2) - .3 * d%(wee)), (elbow1y(wee2) - .5), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), armsc%(wee), 0
                psline (elbow1x(wee2) + .3 * d%(wee)), (elbow1y(wee2) + .5), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), armsc%(wee), 0
                psline (elbow1x(wee2) - .7), (elbow1y(wee2) - .7), (fp1), (elbow1x(wee2) + .7), (elbow1y(wee2) + .7), (fp1), armsc%(wee), 1

            CASE 666
                psline (neckx(wee2) - 3 * d%(wee)), (necky(wee2) + 2), (fp1), (elbow1x(wee2)), (elbow1y(wee2)), (fighterz(wee) + .2), 4, 0
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fighterz(wee) + .2), 4, 0
                psline (elbow1x(wee2) - .8 * d%(wee)), (elbow1y(wee2) - .8), (fighterz(wee) + .2), (hand1x(wee2)), (hand1y(wee2)), (fighterz(wee) + .2), 4, 0
                psline (elbow1x(wee2)), (elbow1y(wee2) + .8), (fighterz(wee) + .2), (hand1x(wee2)), (hand1y(wee2)), (fighterz(wee) + .2), 4, 0

            CASE 1998
                pslightning (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), 1, flash2%
                pslightning (elbow1x(wee2)), (elbow1y(wee2)), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), 1, flash2%

            CASE 2000
                pscline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), .8, armsc%(wee)
                pscline (elbow1x(wee2)), (elbow1y(wee2)), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), .5, armsc%(wee)

        END SELECT



        '--------------------------------------------------------------------- Hand-1
        SELECT CASE hands%(wee)
            CASE 1
                psline (hand1x(wee2) - .6), (hand1y(wee2) - .6), (fp1), (hand1x(wee2) + .6), (hand1y(wee2) + .6), (fp1), handsc%(wee), 0
                psline (hand1x(wee2) + .6), (hand1y(wee2) - .6), (fp1), (hand1x(wee2) - .6), (hand1y(wee2) + .6), (fp1), handsc%(wee), 0

            CASE 2
                psline (hand1x(wee2) - .6), (hand1y(wee2) - .6), (fp1), (hand1x(wee2) + .6), (hand1y(wee2) + .6), (fp1), handsc%(wee), 1

            CASE 3
                IF position%(wee) = 13 OR position%(wee) = 37 OR position%(wee) = 88 THEN
                    psline (hand1x(wee2) - .5), (hand1y(wee2) - 1), (fp1), (hand1x(wee2)), (hand1y(wee2) + 2), (fp1), handsc%(wee), 0
                    psline (hand1x(wee2) + .5), (hand1y(wee2) - 1), (fp1), (hand1x(wee2)), (hand1y(wee2) + 2), (fp1), handsc%(wee), 0
                ELSE
                    psline (hand1x(wee2) + 2 * d%(wee)), (hand1y(wee2)), (fp1), (hand1x(wee2) - .5 * d%(wee)), (hand1y(wee2) - .6), (fp1), handsc%(wee), 0
                    psline (hand1x(wee2) + 2 * d%(wee)), (hand1y(wee2)), (fp1), (hand1x(wee2) - .5 * d%(wee)), (hand1y(wee2) + .6), (fp1), handsc%(wee), 0
                END IF

            CASE 4, 2000
                pscircle (hand1x(wee2)), (hand1y(wee2)), (fp1), .5, handsc%(wee)

            CASE 5
                psline (hand1x(wee2)), (hand1y(wee2) - .8), (fp1), (hand1x(wee2) - .8), (hand1y(wee2)), (fp1), handsc%(wee), 0
                psline (hand1x(wee2)), (hand1y(wee2) + .8), (fp1), (hand1x(wee2) - .8), (hand1y(wee2)), (fp1), handsc%(wee), 0
                psline (hand1x(wee2)), (hand1y(wee2) - .8), (fp1), (hand1x(wee2) + .8), (hand1y(wee2)), (fp1), handsc%(wee), 0
                psline (hand1x(wee2)), (hand1y(wee2) + .8), (fp1), (hand1x(wee2) + .8), (hand1y(wee2)), (fp1), handsc%(wee), 0

            CASE 666
                psline (hand1x(wee2) - 1), (hand1y(wee2) - 1), (fp1), (hand1x(wee2) + 1), (hand1y(wee2) + 1), (fp1), 6, 1



        END SELECT


        '---------------------------------------------------------------------- Bodys
        SELECT CASE body%(wee)
            CASE 1
                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0
                psline (buttx(wee)), (butty(wee) + 1), (fighterz(wee)), (neckx(wee2)), (necky(wee2) + 2), (fighterz(wee)), bodyc%(wee), 0

            CASE 2
                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0
                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (midbody), (fighterz(wee)), bodyc%(wee), 0
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (neckx(wee2)), (midbody), (fighterz(wee)), bodyc%(wee), 0

            CASE 3
                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (midbodx), (midbody), (fighterz(wee)), bodyc%(wee), 0
                psline (neckx(wee2) + 2 * d%(wee)), (necky(wee2)), (fighterz(wee)), (midbodx - 1 * d%(wee)), (midbody), (fighterz(wee)), bodyc%(wee), 0
                psline (neckx(wee2) - 1 * d%(wee)), (necky(wee2)), (fighterz(wee)), (midbodx + 1 * d%(wee)), (midbody), (fighterz(wee)), bodyc%(wee), 0

            CASE 4
                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (midbodx - 1), (midbody), (fighterz(wee)), bodyc%(wee), 0
                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (midbodx + 1), (midbody), (fighterz(wee)), bodyc%(wee), 0
                pscircle (neckx(wee2) - (ABS(neckx(wee) / 10) * d%(wee))), (midbody - ABS(necky(wee) / 4)), (fighterz(wee)), 1.3, bodyc%(wee)

            CASE 5
                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0
                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (midbodx), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (midbodx), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), buttx(wee), (necky(wee2) - 2), (fighterz(wee)), bodyc%(wee), 0
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (neckx(wee2)), (midbody), (fighterz(wee)), bodyc%(wee), 0

            CASE 6
                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (midbodx), (midbody), (fighterz(wee)), bodyc%(wee), 0
                psline (neckx(wee2) - 3 * d%(wee)), (necky(wee2) - 1), (fighterz(wee)), (neckx(wee2)), (necky(wee2) + 1), (fighterz(wee)), bodyc%(wee), 0
                psline (neckx(wee2) - 2.5 * d%(wee)), (necky(wee2) + ABS(necky(wee) / 4)), (fighterz(wee)), (neckx(wee2)), (necky(wee2) + ABS(necky(wee) / 4) + 1), (fighterz(wee)), bodyc%(wee), 0
                psline (neckx(wee2) - 2 * d%(wee)), (necky(wee2) + ABS(necky(wee) / 2)), (fighterz(wee)), (neckx(wee2)), (necky(wee2) + ABS(necky(wee) / 2) + 1), (fighterz(wee)), bodyc%(wee), 0

            CASE 7
                psline (buttx(wee) - 1 * d%(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0
                psline (buttx(wee) + 1 * d%(wee)), (butty(wee)), (fighterz(wee)), (midbodx), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (midbodx), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), buttx(wee), (necky(wee2) - 2), (fighterz(wee)), bodyc%(wee), 0
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (neckx(wee2)), (midbody), (fighterz(wee)), bodyc%(wee), 0

            CASE 8
                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (midbody), (fighterz(wee)), bodyc%(wee), 0
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (neckx(wee2)), (midbody), (fighterz(wee)), bodyc%(wee), 0
                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (midbodx), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (midbodx), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0

            CASE 666
                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (midbody), (fighterz(wee)), 12, 0
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (neckx(wee2)), (midbody), (fighterz(wee)), 12, 0
                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (midbodx - 2 * d%(wee)), (necky(wee2) - 2), (fighterz(wee)), 12, 0
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (midbodx - 2 * d%(wee)), (necky(wee2) - 2), (fighterz(wee)), 12, 0
                pscube (buttx(wee) - 1 * d%(wee)), (butty(wee) - 3), (fm1), (buttx(wee) + 2 * d%(wee)), (butty(wee)), (fp1), 12, 6, 4

            CASE 1998
                pslightning (buttx(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (necky(wee2)), (fighterz(wee)), 3, flash1%

            CASE 2000
                pscline (buttx(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (necky(wee2)), (fighterz(wee)), 1, bodyc%(wee)

        END SELECT

        '---------------------------------------------------------------------- Arm-2
        c% = armsc%(wee) + 8

        SELECT CASE arms%(wee)
            CASE 1
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), c%, 0
                psline (neckx(wee2)), (necky(wee2) + 1), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), c%, 0
                psline (elbow2x(wee2)), (elbow2y(wee2)), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), c%, 0

            CASE 2
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), c%, 0
                psline (elbow2x(wee2)), (elbow2y(wee2)), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), c%, 0
                psline (neckx(wee2)), (necky(wee2) + 2), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), c%, 0
                psline (elbow2x(wee2)), (elbow2y(wee2) + 1), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), c%, 0

            CASE 3
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), c%, 0
                psline (elbow2x(wee2)), (elbow2y(wee2)), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), c%, 0
                psline (midbodx), (necky(wee2) - 1), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2) + 1), (fm1), c%, 0
                psline (elbow2x(wee2)), (elbow2y(wee2) - 1), (fm1), (hand2x(wee2)), (hand2y(wee2) + .5), (fm1), c%, 0

            CASE 4
                psline (neckx(wee2) - .5 * d%(wee)), (necky(wee2) - .5), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), c%, 0
                psline (neckx(wee2) + .8 * d%(wee)), (necky(wee2) + .5), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), c%, 0
                psline (elbow2x(wee2) - .3 * d%(wee)), (elbow2y(wee2) - .5), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), c%, 0
                psline (elbow2x(wee2) + .3 * d%(wee)), (elbow2y(wee2) + .5), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), c%, 0
                pscircle (neckx(wee2) + elbow2x(wee) / 2 * d%(wee)), (necky(wee2) + elbow2y(wee) / 2), (fm1), .8, c%
                pscircle (elbow2x(wee2) + hand2x(wee) / 2 * d%(wee)), (elbow2y(wee2) + hand2y(wee) / 2), (fm1), .5, c%

            CASE 5
                psline (neckx(wee2) - .5 * d%(wee)), (necky(wee2) - .5), (fighterz(wee)), (elbow2x(wee2) + .5 * d%(wee)), (elbow2y(wee2) + .5), (fm1), c%, 0
                psline (neckx(wee2) + .8 * d%(wee)), (necky(wee2) + .5), (fighterz(wee)), (elbow2x(wee2) - .5 * d%(wee)), (elbow2y(wee2) - .5), (fm1), c%, 0
                psline (elbow2x(wee2) - .3 * d%(wee)), (elbow2y(wee2) - .5), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), c%, 0
                psline (elbow2x(wee2) + .3 * d%(wee)), (elbow2y(wee2) + .5), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), c%, 0
                psline (elbow2x(wee2) - .7), (elbow2y(wee2) - .7), (fm1), (elbow2x(wee2) + .7), (elbow2y(wee2) + .7), (fm1), c%, 1

            CASE 666
                psline (neckx(wee2) - 3 * d%(wee)), (necky(wee2) + 2), (fm1), (elbow2x(wee2)), (elbow2y(wee2)), (fighterz(wee) - .2), 12, 0
                psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fighterz(wee) - .2), 12, 0
                psline (elbow2x(wee2) - .8 * d%(wee)), (elbow2y(wee2) - .8), (fighterz(wee) - .2), (hand2x(wee2)), (hand2y(wee2)), (fighterz(wee) - .2), 12, 0
                psline (elbow2x(wee2)), (elbow2y(wee2) + .8), (fighterz(wee) - .2), (hand2x(wee2)), (hand2y(wee2)), (fighterz(wee) - .2), 12, 0

            CASE 1998
                pslightning (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), 1, flash2%
                pslightning (elbow2x(wee2)), (elbow2y(wee2)), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), 1, flash2%

            CASE 2000
                pscline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), .8, c%
                pscline (elbow2x(wee2)), (elbow2y(wee2)), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), .5, c%

        END SELECT

        '--------------------------------------------------------------------- Hand-2
        c% = handsc%(wee) + 8

        SELECT CASE hands%(wee)
            CASE 1
                psline (hand2x(wee2) - .6), (hand2y(wee2) - .6), (fm1), (hand2x(wee2) + .6), (hand2y(wee2) + .6), (fm1), c%, 0
                psline (hand2x(wee2) + .6), (hand2y(wee2) - .6), (fm1), (hand2x(wee2) - .6), (hand2y(wee2) + .6), (fm1), c%, 0

            CASE 2
                psline (hand2x(wee2) - .6), (hand2y(wee2) - .6), (fm1), (hand2x(wee2) + .6), (hand2y(wee2) + .6), (fm1), c%, 1

            CASE 3
                IF position%(wee) = 13 OR position%(wee) = 37 OR position%(wee) = 88 THEN
                    psline (hand2x(wee2)), (hand2y(wee2) - 2), (fm1), (hand2x(wee2) - .5), (hand2y(wee2) + 1), (fm1), c%, 0
                    psline (hand2x(wee2)), (hand2y(wee2) - 2), (fm1), (hand2x(wee2) + .5), (hand2y(wee2) + 1), (fm1), c%, 0
                ELSE
                    psline (hand2x(wee2) + 2 * d%(wee)), (hand2y(wee2)), (fm1), (hand2x(wee2) - .5 * d%(wee)), (hand2y(wee2) - .6), (fm1), c%, 0
                    psline (hand2x(wee2) + 2 * d%(wee)), (hand2y(wee2)), (fm1), (hand2x(wee2) - .5 * d%(wee)), (hand2y(wee2) + .6), (fm1), c%, 0
                END IF

            CASE 4, 2000
                pscircle (hand2x(wee2)), (hand2y(wee2)), (fm1), .5, c%

            CASE 5
                psline (hand2x(wee2)), (hand2y(wee2) - .8), (fm1), (hand2x(wee2) - .8), (hand2y(wee2)), (fm1), c%, 0
                psline (hand2x(wee2)), (hand2y(wee2) + .8), (fm1), (hand2x(wee2) - .8), (hand2y(wee2)), (fm1), c%, 0
                psline (hand2x(wee2)), (hand2y(wee2) - .8), (fm1), (hand2x(wee2) + .8), (hand2y(wee2)), (fm1), c%, 0
                psline (hand2x(wee2)), (hand2y(wee2) + .8), (fm1), (hand2x(wee2) + .8), (hand2y(wee2)), (fm1), c%, 0

            CASE 666
                psline (hand2x(wee2) - 1), (hand2y(wee2) - 1), (fm1), (hand2x(wee2) + 1), (hand2y(wee2) + 1), (fm1), 6, 1

        END SELECT


        '---------------------------------------------------------------- Razer Arm-2
        IF razers%(wee) > 0 THEN
            IF razers%(wee) > 50 THEN c% = flash3% ELSE c% = 4
            psline (elbow2x(wee2) + (hand2x(wee) / 2) * d%(wee)), (elbow2y(wee2) + (hand2y(wee) / 2)), (fm1 - .1), (elbow2x(wee2) + (hand2x(wee) * 2) * d%(wee)), (elbow2y(wee2) + (hand2y(wee) * 2)), (fm1 - .1), c%, 0
        END IF



        '---------------------------------------------------------------------- Legs
        c% = legsc%(wee) + 8

        SELECT CASE legs%(wee)
            CASE 1
                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), legsc%(wee), 0
                psline (buttx(wee)), (butty(wee) + 2), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2) - 1), (fp1), legsc%(wee), 0
                psline (nee1x(wee2)), (nee1y(wee2)), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0

                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), c%, 0
                psline (buttx(wee)), (butty(wee) + 2), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2) - 1), (fm1), c%, 0
                psline (nee2x(wee2)), (nee2y(wee2)), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), c%, 0


            CASE 2
                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), legsc%(wee), 0
                psline (nee1x(wee2)), (nee1y(wee2)), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0
                psline (buttx(wee)), (butty(wee) + 2), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), legsc%(wee), 0
                psline (nee1x(wee2)), (nee1y(wee2) - 1), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0

                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), c%, 0
                psline (nee2x(wee2)), (nee2y(wee2)), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), c%, 0
                psline (buttx(wee)), (butty(wee) + 2), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), c%, 0
                psline (nee2x(wee2)), (nee2y(wee2) - 1), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), c%, 0


            CASE 3
                psline (buttx(wee)), (butty(wee) + 2), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2) + 2), (fp1), legsc%(wee), 0
                psline (nee1x(wee2)), (nee1y(wee2) - 1), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0
                psline (buttx(wee)), (butty(wee) - 2), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), legsc%(wee), 0
                psline (nee1x(wee2)), (nee1y(wee2) + 2), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0

                psline (buttx(wee)), (butty(wee) + 2), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2) + 2), (fm1), c%, 0
                psline (nee2x(wee2)), (nee2y(wee2) - 1), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), c%, 0
                psline (buttx(wee)), (butty(wee) - 2), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), c%, 0
                psline (nee2x(wee2)), (nee2y(wee2) + 2), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), c%, 0

            CASE 4
                psline (buttx(wee) - 1 * d%(wee)), (butty(wee) + 1), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), legsc%(wee), 0
                psline (buttx(wee) + 1 * d%(wee)), (butty(wee)), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), legsc%(wee), 0
                psline (nee1x(wee2) - .5 * d%(wee)), (nee1y(wee2)), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0
                psline (nee1x(wee2) + .5 * d%(wee)), (nee1y(wee2) + .5), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0
                pscircle (buttx(wee) + (nee1x(wee) / 2) * d%(wee)), (butty(wee) + nee1y(wee) / 2), (fighterz(wee) + .05), 1, legsc%(wee)
                pscircle (nee1x(wee2) + (foot1x(wee) / 2) * d%(wee)), (nee1y(wee + 2) + foot1y(wee) / 2), (fp1), .8, legsc%(wee)

                psline (buttx(wee) - 1 * d%(wee)), (butty(wee) + 1), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), c%, 0
                psline (buttx(wee) + 1 * d%(wee)), (butty(wee)), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), c%, 0
                psline (nee2x(wee2) - .5 * d%(wee)), (nee2y(wee2)), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), c%, 0
                psline (nee2x(wee2) + .5 * d%(wee)), (nee2y(wee2) + .5), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), c%, 0
                pscircle (buttx(wee) + (nee2x(wee) / 2) * d%(wee)), (butty(wee) + nee2y(wee) / 2), (fighterz(wee) - .05), 1, c%
                pscircle (nee2x(wee2) + (foot2x(wee) / 2) * d%(wee)), (nee2y(wee + 2) + foot2y(wee) / 2), (fm1), .8, c%

            CASE 5
                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), legsc%(wee), 0
                psline (nee1x(wee2)), (nee1y(wee2)), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0
                psline (buttx(wee)), (butty(wee) + 2), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), legsc%(wee), 0
                psline (nee1x(wee2)), (nee1y(wee2) + 2), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0
                psline (nee1x(wee2) - 2 * d%(wee)), (nee1y(wee2) - (nee1y(wee) / 3)), (fp1), (nee1x(wee2) + 1 * d%(wee)), (nee1y(wee2)), (fp1), legsc%(wee), 0
                psline (nee1x(wee2) - 2 * d%(wee)), (nee1y(wee2) + (nee1y(wee) / 3)), (fp1), (nee1x(wee2) + 1 * d%(wee)), (nee1y(wee2)), (fp1), legsc%(wee), 0

                psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), c%, 0
                psline (nee2x(wee2)), (nee2y(wee2)), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), c%, 0
                psline (buttx(wee)), (butty(wee) + 2), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), c%, 0
                psline (nee2x(wee2)), (nee2y(wee2) + 2), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), c%, 0
                psline (nee2x(wee2) - 2 * d%(wee)), (nee2y(wee2) - (nee2y(wee) / 3)), (fm1), (nee2x(wee2) + 1 * d%(wee)), (nee2y(wee2)), (fm1), c%, 0
                psline (nee2x(wee2) - 2 * d%(wee)), (nee2y(wee2) + (nee2y(wee) / 3)), (fm1), (nee2x(wee2) + 1 * d%(wee)), (nee2y(wee2)), (fm1), c%, 0


            CASE 666
                psline (buttx(wee) + 2 * d%(wee)), (butty(wee) - 2), (fp1), (nee1x(wee2)), (nee1y(wee2) + 2), (fighterz(wee) + .2), 4, 0
                psline (nee1x(wee2)), (nee1y(wee2) - 1), (fighterz(wee) + .2), (foot1x(wee2)), (foot1y(wee2)), (fighterz(wee) + .2), 4, 0
                psline (buttx(wee) - 1 * d%(wee)), (butty(wee)), (fp1), (nee1x(wee2)), (nee1y(wee2)), (fighterz(wee) + .2), 4, 0
                psline (nee1x(wee2)), (nee1y(wee2) + 2), (fighterz(wee) + .2), (foot1x(wee2)), (foot1y(wee2)), (fighterz(wee) + .2), 4, 0

                psline (buttx(wee) + 2 * d%(wee)), (butty(wee) - 2), (fm1), (nee2x(wee2)), (nee2y(wee2) + 2), (fighterz(wee) - .2), 6, 0
                psline (nee2x(wee2)), (nee2y(wee2) - 1), (fighterz(wee) - .2), (foot2x(wee2)), (foot2y(wee2)), (fighterz(wee) - .2), 6, 0
                psline (buttx(wee) - 1 * d%(wee)), (butty(wee)), (fm1), (nee2x(wee2)), (nee2y(wee2)), (fighterz(wee) - .2), 6, 0
                psline (nee2x(wee2)), (nee2y(wee2) + 2), (fighterz(wee) - .2), (foot2x(wee2)), (foot2y(wee2)), (fighterz(wee) - .2), 6, 0


            CASE 1998
                pslightning (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), 1, flash2%
                pslightning (nee1x(wee2)), (nee1y(wee2)), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), 1, flash2%

                pslightning (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), 1, flash2%
                pslightning (nee2x(wee2)), (nee2y(wee2)), (fm1), (foot2x(wee2)), (foot1y(wee2)), (fm1), 1, flash2%


            CASE 2000
                pscline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), .8, legsc%(wee)
                pscline (nee1x(wee2)), (nee1y(wee2)), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), .5, legsc%(wee)

                pscline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), .8, c%
                pscline (nee2x(wee2)), (nee2y(wee2)), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), .5, c%

        END SELECT

        '---------------------------------------------------------------------- Feet
        c% = feetc%(wee) + 8
        tip = 2 * d%(wee)

        IF position%(wee) = 49 THEN

            psline (foot2x(wee2)), (foot2y(wee2)), (fm1), (foot2x(wee2)), (foot2y(wee2) + 2), (fm1), c%, 0
            psline (foot1x(wee2)), (foot1y(wee2)), (fp1), (foot1x(wee2) - tip), (foot1y(wee2) - 2), (fp1), feetc%(wee), 0


        ELSE

            SELECT CASE feet%(wee)
                CASE 1
                    psline (foot2x(wee2)), (foot2y(wee2)), (fm1), (foot2x(wee2) + tip), (foot2y(wee2)), (fm1), c%, 0
                    psline (foot1x(wee2)), (foot1y(wee2)), (fp1), (foot1x(wee2) + tip), (foot1y(wee2)), (fp1), feetc%(wee), 0


                CASE 2
                    psline (foot2x(wee2)), (foot2y(wee2) - 1), (fm1), (foot2x(wee2) + tip), (foot2y(wee2)), (fm1), c%, 1
                    psline (foot1x(wee2)), (foot1y(wee2) - 1), (fp1), (foot1x(wee2) + tip), (foot1y(wee2)), (fp1), feetc%(wee), 1


                CASE 3
                    psline (foot2x(wee2)), (foot2y(wee2)), (fm1), (foot2x(wee2) + tip), (foot2y(wee2)), (fm1), c%, 0
                    psline (foot2x(wee2)), (foot2y(wee2) - 1), (fm1), (foot2x(wee2) + tip), (foot2y(wee2)), (fm1), c%, 0

                    psline (foot1x(wee2)), (foot1y(wee2)), (fp1), (foot1x(wee2) + tip), (foot1y(wee2)), (fp1), feetc%(wee), 0
                    psline (foot1x(wee2)), (foot1y(wee2) - 1), (fp1), (foot1x(wee2) + tip), (foot1y(wee2)), (fp1), feetc%(wee), 0


                CASE 4, 2000
                    pscircle (foot1x(wee2) + 1 * d%(wee)), (foot1y(wee2)), (fp1), .5, feetc%(wee)
                    pscircle (foot2x(wee2) + 1 * d%(wee)), (foot2y(wee2)), (fm1), .5, c%

                CASE 5
                    pscircle (foot1x(wee2)), (foot1y(wee2) - .5), (fp1), .5, feetc%(wee)
                    psline (foot1x(wee2)), (foot1y(wee2) - 1), (fp1), (foot1x(wee2) + 2 * d%(wee)), (foot1y(wee2)), (fp1), feetc%(wee), 0

                    pscircle (foot2x(wee2)), (foot2y(wee2) - .5), (fm1), .5, c%
                    psline (foot2x(wee2)), (foot2y(wee2) - 1), (fm1), (foot2x(wee2) + 2 * d%(wee)), (foot2y(wee2)), (fm1), c%, 0


                CASE 666
                    psline (foot1x(wee2) - .4), (foot1y(wee2) - 1), (fighterz(wee) + .2), (foot1x(wee2) + .4), (foot1y(wee2)), (fighterz(wee) + .2), 8, 1
                    psline (foot1x(wee2) + .4 * d%(wee)), (foot1y(wee2) - 1), (fighterz(wee) + .2), (foot1x(wee2) + 1 * d%(wee)), (foot1y(wee2)), (fighterz(wee) + .2), 8, 0

                    psline (foot2x(wee2) - .4), (foot2y(wee2) - 1), (fighterz(wee) - .2), (foot2x(wee2) + .4), (foot2y(wee2)), (fighterz(wee) - .2), 8, 1
                    psline (foot2x(wee2) + .4 * d%(wee)), (foot2y(wee2) - 1), (fighterz(wee) - .2), (foot2x(wee2) + 1 * d%(wee)), (foot2y(wee2)), (fighterz(wee) - .2), 8, 0

            END SELECT

        END IF

        '============================================================================
        '------------------------------------------------ Low Detail Fighter Graphics
    ELSE

        'head
        pscircle (headx(wee2)), (heady(wee2)), (fighterz(wee)), 1.5, headc%(wee)

        'body
        psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0

        'arms
        psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), armsc%(wee), 0
        psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), armsc%(wee) + 8, 0

        psline (elbow1x(wee2)), (elbow1y(wee2)), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), armsc%(wee), 0
        psline (elbow2x(wee2)), (elbow2y(wee2)), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), armsc%(wee) + 8, 0

        'legs
        psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), legsc%(wee), 0
        psline (nee1x(wee2)), (nee1y(wee2)), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0

        psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), legsc%(wee) + 8, 0
        psline (nee2x(wee2)), (nee2y(wee2)), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), legsc%(wee) + 8, 0

        '----------------------------------------------------------------------------
    END IF
    36
NEXT wee


END SUB

SUB fighterfreeze (n)
IF canjump%(n) = 1 OR ticker% < 1 THEN butth(n) = 0: buttv(n) = 0
headh(n) = 0
neckh(n) = 0
elbow1h(n) = 0
elbow2h(n) = 0
hand1h(n) = 0
hand2h(n) = 0
nee1h(n) = 0
nee2h(n) = 0
foot1h(n) = 0
foot2h(n) = 0

headv(n) = 0
neckv(n) = 0
elbow1v(n) = 0
elbow2v(n) = 0
hand1v(n) = 0
hand2v(n) = 0
nee1v(n) = 0
nee2v(n) = 0
foot1v(n) = 0
foot2v(n) = 0
END SUB

SUB fightergoo (wee, d)

headh(wee) = headh(wee) / d
neckh(wee) = neckh(wee) / d
elbow1h(wee) = elbow1h(wee) / d
elbow2h(wee) = elbow2h(wee) / d
hand1h(wee) = hand1h(wee) / d
hand2h(wee) = hand2h(wee) / d
nee1h(wee) = nee1h(wee) / d
nee2h(wee) = nee2h(wee) / d
foot1h(wee) = foot1h(wee) / d
foot2h(wee) = foot2h(wee) / d

headv(wee) = headv(wee) / d
neckv(wee) = neckv(wee) / d
elbow1v(wee) = elbow1v(wee) / d
elbow2v(wee) = elbow2v(wee) / d
hand1v(wee) = hand1v(wee) / d
hand2v(wee) = hand2v(wee) / d
nee1v(wee) = nee1v(wee) / d
nee2v(wee) = nee2v(wee) / d
foot1v(wee) = foot1v(wee) / d
foot2v(wee) = foot2v(wee) / d
END SUB

SUB fighterinit


IF stage% = 12 THEN
    FOR wee = 1 TO 2
        particle (buttx(wee) + ((RND - .5) * 15)), (butty(wee) + ((RND - .5) * 15)), fighterz(wee), 15, 20
    NEXT wee
END IF

buttx(1) = -ring% / 3
buttx(2) = ring% / 3
d%(1) = 1
d%(2) = -1
FOR wee = 1 TO 2
    IF AIactive%(wee) = 1 THEN AIfighter (wee)
    vexed%(wee) = 0
    razers%(wee) = 0
    Special%(wee) = 0
    decap 3
    pticker%(wee) = 0
    butty(wee) = floor1 - 20
    fightercompress (wee)
    fighterz(wee) = midstage
    fighterfreeze (wee)
    koslide%(wee) = ko(wee)
    hpslide%(wee) = health%(wee)

    SELECT CASE arms%(wee)
        CASE 1
            ahpow%(wee) = 0
            akpow%(wee) = 5
        CASE 2
            ahpow%(wee) = 2
            akpow%(wee) = 3
        CASE 3
            ahpow%(wee) = 3
            akpow%(wee) = 2
        CASE 4
            ahpow%(wee) = 1
            akpow%(wee) = 4
        CASE 5
            ahpow%(wee) = 4
            akpow%(wee) = 1
        CASE 1998
            ahpow%(wee) = 4
            akpow%(wee) = 2
        CASE 666
            ahpow%(wee) = 5
            akpow%(wee) = 7
        CASE 2000
            ahpow%(wee) = 4
            akpow%(wee) = 5
    END SELECT

    SELECT CASE legs%(wee)
        CASE 1
            lhpow%(wee) = 0
            lkpow%(wee) = 5
        CASE 2
            lhpow%(wee) = 2
            lkpow%(wee) = 3
        CASE 3
            lhpow%(wee) = 3
            lkpow%(wee) = 2
        CASE 4
            lhpow%(wee) = 3
            lkpow%(wee) = 1
        CASE 5
            lhpow%(wee) = 2
            lkpow%(wee) = 2
        CASE 1998
            lhpow%(wee) = 7
            lkpow%(wee) = 3
        CASE 2000
            lhpow%(wee) = 7
            lkpow%(wee) = 7
    END SELECT

    SELECT CASE head%(wee)
        CASE 1: kocharge(wee) = .2: ragecharge(wee) = .4
        CASE 2: kocharge(wee) = .3: ragecharge(wee) = .3
        CASE 3: kocharge(wee) = .4: ragecharge(wee) = .2
        CASE 4: kocharge(wee) = .1: ragecharge(wee) = .5
        CASE 5: kocharge(wee) = .5: ragecharge(wee) = .1
        CASE 666: kocharge(wee) = .5: ragecharge(wee) = .7
        CASE 2000: kocharge(wee) = .8: ragecharge(wee) = 1
    END SELECT
NEXT wee

END SUB

SUB fighterlimits
FOR wee = 1 TO 2

    IF ABS(elbow1x(wee)) > 10 THEN elbow1x(wee) = 0
    IF ABS(hand1x(wee)) > 10 THEN hand1x(wee) = 0
    IF ABS(nee1x(wee)) > 10 THEN nee1x(wee) = 0
    IF ABS(foot1x(wee)) > 10 THEN foot1x(wee) = 0

    IF ABS(elbow2x(wee)) > 10 THEN elbow2x(wee) = 0
    IF ABS(hand2x(wee)) > 10 THEN hand2x(wee) = 0
    IF ABS(nee2x(wee)) > 10 THEN nee2x(wee) = 0
    IF ABS(foot2x(wee)) > 10 THEN foot2x(wee) = 0



    IF ABS(elbow1y(wee)) > 10 THEN elbow1y(wee) = 0
    IF ABS(hand1y(wee)) > 10 THEN hand1y(wee) = 0
    IF ABS(nee1y(wee)) > 10 THEN nee1y(wee) = 0
    IF ABS(foot1y(wee)) > 10 THEN foot1y(wee) = 0

    IF ABS(elbow2y(wee)) > 10 THEN elbow2y(wee) = 0
    IF ABS(hand2y(wee)) > 10 THEN hand2y(wee) = 0
    IF ABS(nee2y(wee)) > 10 THEN nee2y(wee) = 0
    IF ABS(foot2y(wee)) > 10 THEN foot2y(wee) = 0

NEXT wee
END SUB

SUB fightermove

FOR pc1 = 1 TO 2

    pc2 = pc1 + 2

    '--------------------------------------------------------------- Misc Physics
    'Push Appart

    IF position%(1) = 1 AND position%(2) = 1 AND butty(1) > floor1 - 25 AND butty(2) > floor1 - 25 THEN
        IF fighterz(1) < fighterz(2) + .1 AND fighterz(1) > fighterz(2) - .1 THEN
            IF neckx(3) > neckx(4) - 1 AND neckx(3) < neckx(4) + 1 THEN
                IF buttx(1) < buttx(2) THEN butth(1) = butth(1) - .5: butth(2) = butth(2) + .5 ELSE butth(1) = butth(1) + .5: butth(2) = butth(2) - .5
            END IF
        END IF
    END IF

    '------------------------------------------------------------- Apply Movement
    buttx(pc1) = buttx(pc1) + butth(pc1)
    headx(pc1) = headx(pc1) + headh(pc1)
    neckx(pc1) = neckx(pc1) + neckh(pc1)
    elbow1x(pc1) = elbow1x(pc1) + elbow1h(pc1)
    elbow2x(pc1) = elbow2x(pc1) + elbow2h(pc1)
    hand1x(pc1) = hand1x(pc1) + hand1h(pc1)
    hand2x(pc1) = hand2x(pc1) + hand2h(pc1)
    nee1x(pc1) = nee1x(pc1) + nee1h(pc1)
    nee2x(pc1) = nee2x(pc1) + nee2h(pc1)
    foot1x(pc1) = foot1x(pc1) + foot1h(pc1)
    foot2x(pc1) = foot2x(pc1) + foot2h(pc1)

    butty(pc1) = butty(pc1) + buttv(pc1)
    heady(pc1) = heady(pc1) + headv(pc1)
    necky(pc1) = necky(pc1) + neckv(pc1)
    elbow1y(pc1) = elbow1y(pc1) + elbow1v(pc1)
    elbow2y(pc1) = elbow2y(pc1) + elbow2v(pc1)
    hand1y(pc1) = hand1y(pc1) + hand1v(pc1)
    hand2y(pc1) = hand2y(pc1) + hand2v(pc1)
    nee1y(pc1) = nee1y(pc1) + nee1v(pc1)
    nee2y(pc1) = nee2y(pc1) + nee2v(pc1)
    foot1y(pc1) = foot1y(pc1) + foot1v(pc1)
    foot2y(pc1) = foot2y(pc1) + foot2v(pc1)

    fighterz(pc1) = fighterz(pc1) + fighterd(pc1)
    hx(pc1) = hx(pc1) + hh(pc1)
    hy(pc1) = hy(pc1) + hv(pc1)

    '------------------------------------------------------------- Flip Direction
    IF pc1 = 1 AND position%(1) = 1 AND pticker%(1) > 20 AND canjump%(1) = 1 THEN
        IF buttx(1) > buttx(2) THEN d%(pc1) = -1 ELSE d%(pc1) = 1
    END IF

    IF pc1 = 2 AND position%(2) = 1 AND pticker%(2) > 20 AND canjump%(2) = 1 THEN
        IF buttx(1) < buttx(2) THEN d%(pc1) = -1 ELSE d%(pc1) = 1
    END IF


    '----------------------------------------------------------- Create X/Y Cords
    neckx(pc2) = buttx(pc1) + neckx(pc1) * d%(pc1)
    necky(pc2) = butty(pc1) + necky(pc1)

    headx(pc2) = neckx(pc2) + headx(pc1) * d%(pc1)
    heady(pc2) = necky(pc2) + heady(pc1)

    elbow1x(pc2) = neckx(pc2) + elbow1x(pc1) * d%(pc1)
    elbow1y(pc2) = necky(pc2) + elbow1y(pc1)
    elbow2x(pc2) = neckx(pc2) + elbow2x(pc1) * d%(pc1)
    elbow2y(pc2) = necky(pc2) + elbow2y(pc1)

    hand1x(pc2) = elbow1x(pc2) + hand1x(pc1) * d%(pc1)
    hand1y(pc2) = elbow1y(pc2) + hand1y(pc1)
    hand2x(pc2) = elbow2x(pc2) + hand2x(pc1) * d%(pc1)
    hand2y(pc2) = elbow2y(pc2) + hand2y(pc1)

    nee1x(pc2) = buttx(pc1) + nee1x(pc1) * d%(pc1)
    nee1y(pc2) = butty(pc1) + nee1y(pc1)
    nee2x(pc2) = buttx(pc1) + nee2x(pc1) * d%(pc1)
    nee2y(pc2) = butty(pc1) + nee2y(pc1)

    foot1x(pc2) = nee1x(pc2) + foot1x(pc1) * d%(pc1)
    foot1y(pc2) = nee1y(pc2) + foot1y(pc1)
    foot2x(pc2) = nee2x(pc2) + foot2x(pc1) * d%(pc1)
    foot2y(pc2) = nee2y(pc2) + foot2y(pc1)

    '----------------------------------------------------------------------------
NEXT pc1


'----------------------------------------------------------------------- Hair

'P1
IF hairl%(1) > 0 THEN
    IF headless%(1) = 1 THEN headx(3) = hx(1): heady(3) = hy(1)
    hairx(1) = headx(3) - 2 * d%(1)
    hairy(1) = heady(3) + 1

    FOR n% = 2 TO 5
        hairy(n%) = hairy(n%) + gravity
        IF hairx(n%) < hairx(n% - 1) - hairl%(1) THEN hairx(n%) = hairx(n% - 1) - hairl%(1)
        IF hairy(n%) < hairy(n% - 1) - hairl%(1) THEN hairy(n%) = hairy(n% - 1) - hairl%(1)
        IF hairx(n%) > hairx(n% - 1) + hairl%(1) THEN hairx(n%) = hairx(n% - 1) + hairl%(1)
        IF hairy(n%) > hairy(n% - 1) + hairl%(1) THEN hairy(n%) = hairy(n% - 1) + hairl%(1)

    NEXT n%

    FOR n% = 2 TO 5
        IF hairx(n%) < hairx(n% - 1) THEN hairx(n%) = hairx(n%) + .5
        IF hairx(n%) > hairx(n% - 1) THEN hairx(n%) = hairx(n%) - .5
    NEXT n%
END IF


'P2
IF hairl%(2) > 0 THEN
    IF headless%(2) = 1 THEN headx(4) = hx(2): heady(4) = hy(2)
    hairx(6) = headx(4) - 2 * d%(2)
    hairy(6) = heady(4) + 1

    FOR n% = 7 TO 10
        hairy(n%) = hairy(n%) + gravity
        IF hairx(n%) < hairx(n% - 1) - hairl%(2) THEN hairx(n%) = hairx(n% - 1) - hairl%(2)
        IF hairy(n%) < hairy(n% - 1) - hairl%(2) THEN hairy(n%) = hairy(n% - 1) - hairl%(2)
        IF hairx(n%) > hairx(n% - 1) + hairl%(2) THEN hairx(n%) = hairx(n% - 1) + hairl%(2)
        IF hairy(n%) > hairy(n% - 1) + hairl%(2) THEN hairy(n%) = hairy(n% - 1) + hairl%(2)
    NEXT n%

    FOR n% = 7 TO 10
        IF hairx(n%) < hairx(n% - 1) THEN hairx(n%) = hairx(n%) + .5
        IF hairx(n%) > hairx(n% - 1) THEN hairx(n%) = hairx(n%) - .5

    NEXT n%
END IF


END SUB

SUB fightername (n%)

'-------------------------------------------------------------- Generate Name

SELECT CASE body%(n%)
    CASE 1: n1$ = "Th"
    CASE 2: n1$ = "S"
    CASE 3: n1$ = "K"
    CASE 4: n1$ = "V"
    CASE 5: n1$ = "R"
    CASE 6: n1$ = "L"
    CASE 7: n1$ = "D"
    CASE 8: n1$ = "Br"
END SELECT

SELECT CASE head%(n%)
    CASE 1: n2$ = "a"
    CASE 2: n2$ = "e"
    CASE 3: n2$ = "i"
    CASE 4: n2$ = "o"
    CASE 5: n2$ = "u"
END SELECT

SELECT CASE hands%(n%)
    CASE 1: n4$ = "kk"
    CASE 2: n4$ = "t"
    CASE 3: n4$ = "n"
    CASE 4: n4$ = "t"
    CASE 5: n4$ = "l"
END SELECT

SELECT CASE feet%(n%)
    CASE 1: n6$ = "n"
    CASE 2: n6$ = "ly"
    CASE 3: n6$ = "th"
    CASE 4: n6$ = "ra"
    CASE 5: n6$ = "cha"
END SELECT

name$(n%) = n1$ + n2$ + n3$ + n4$ + n5$ + n6$

IF head%(n%) = 666 THEN name$(n%) = "Demize"
IF head%(n%) = 1998 THEN name$(n%) = "Magnissa"
IF head%(n%) = 2000 THEN name$(n%) = "MasterBean"

END SUB

SUB fighterpop (n)
position%(n) = 1
buttv(n) = -gravity * 10
END SUB

SUB fighterpositions

fighterdirect

FOR pc1 = 1 TO 2

    '------------------------------------------- Player Current / Player Opponent
    IF pc1 = 2 THEN po1 = 1 ELSE po1 = 2
    pc2 = pc1 + 2
    po2 = po1 + 2


    '------------------------------------------------------------ position ticker
    IF psaver%(pc1) = position%(pc1) THEN
        IF pticker%(pc1) < 32767 THEN pticker%(pc1) = pticker%(pc1) + 1
    ELSE
        psaver%(pc1) = position%(pc1)
        pticker%(pc1) = 1
    END IF





    '======================================================= Position Replacement
    '-------------------------------------------------------------- Punch 2 Elbow
    IF pticker%(pc1) = 1 THEN
        IF neckx(3) > neckx(4) - 6 AND neckx(3) < neckx(4) + 6 THEN
            IF position%(pc1) = 2 OR position%(pc1) = 3 THEN position%(pc1) = 4
        END IF
        '---------------------------------------------------------------- Short 2 Nee
        IF canjump%(pc1) = 1 AND neckx(3) > neckx(4) - 3 AND neckx(3) < neckx(4) + 3 THEN
            IF position%(pc1) = 5 THEN position%(pc1) = 7
        END IF
        '--------------------------------------------------- Roundhouse 2 In-Air Kick
        IF position%(pc1) = 6 AND canjump%(pc1) = 0 AND ABS(butth(pc1)) > .5 THEN
            position%(pc1) = 14
        END IF
        '-------------------------------------------------------------- ---- --- -- -
    END IF


    '------------------------------------------------------ Opponent Target Areas

    IF headless%(po1) = 0 THEN
        h1x = headx(po2) - 2
        h1y = heady(po2) - 4
        h2x = headx(po2) + 2
        h2y = heady(po2) + 4
    ELSE
        h1x = neckx(po2)
        h1y = necky(po2)
        h2x = neckx(po2)
        h2y = necky(po2)
    END IF
    'psline (h1x), (h1y), (fighterz(po1)), (h2x), (h2y), (fighterz(po1)), 12, 1

    m1x = neckx(po2) - 2
    m1y = h2y
    m2x = neckx(po2) + 2
    m2y = butty(po1)
    'psline (m1x), (m1y), (fighterz(po1)), (m2x), (m2y), (fighterz(po1)), 9, 1

    l1x = buttx(po1) - 5
    l1y = butty(po1)
    l2x = buttx(po1) + 5
    IF foot1y(po2) > foot2y(po2) THEN l2y = foot1y(po2) ELSE l2y = foot2y(po2)
    'psline (l1x), (l1y), (fighterz(po1)), (l2x), (l2y), (fighterz(po1)), 14, 1


    'Save Health/KO for Blocking
    IF position%(po1) = 99 THEN healths% = health%(po1): kos = ko(po1) ELSE healths% = 0


    '---------------------------------------------------- Turn Off Special Switch
    IF position%(pc1) > 29 AND position%(pc1) < 81 THEN Special%(1) = 0

    '------------------------------------------------------------------ positions
    SELECT CASE position%(pc1)

        '------------------------------------------------------------------- Standing
        CASE IS = 1
            droop = (ko(pc1) / 50) + (health%(pc1) / 200)
            IF neckx(pc1) > 3 THEN neckh(pc1) = neckh(pc1) - .05 ELSE neckh(pc1) = neckh(pc1) + .05
            IF headx(pc1) > 1 THEN headh(pc1) = headh(pc1) - .01 ELSE headh(pc1) = headh(pc1) + .05
            IF elbow1x(pc1) > .5 THEN elbow1h(pc1) = elbow1h(pc1) - .08 ELSE elbow1h(pc1) = elbow1h(pc1) + .08
            IF elbow2x(pc1) > -3 THEN elbow2h(pc1) = elbow2h(pc1) - .08 ELSE elbow2h(pc1) = elbow2h(pc1) + .08
            IF hand1x(pc1) > 2 THEN hand1h(pc1) = hand1h(pc1) - .08 ELSE hand1h(pc1) = hand1h(pc1) + .08
            IF hand2x(pc1) > 3 THEN hand2h(pc1) = hand2h(pc1) - .08 ELSE hand2h(pc1) = hand2h(pc1) + .08

            IF legs%(pc1) = 666 THEN
                IF canjump%(pc1) = 1 AND ABS(butth(pc1)) > .05 AND ABS(butth(pc1)) < 5 THEN
                    nee1x(pc1) = -2 + (walkx(pc1) * ABS(butth(pc1) / 1.8))
                    nee2x(pc1) = 0 - (walkx(pc1) * ABS(butth(pc1) / 1.8))
                ELSE
                    IF nee1x(pc1) > -3 THEN nee1h(pc1) = nee1h(pc1) - .05 ELSE nee1h(pc1) = nee1h(pc1) + .01
                    IF nee2x(pc1) > -3 THEN nee2h(pc1) = nee2h(pc1) - .05 ELSE nee2h(pc1) = nee2h(pc1) + .01
                END IF
                IF foot1x(pc1) > 5 THEN foot1h(pc1) = foot1h(pc1) - .1 ELSE foot1h(pc1) = foot1h(pc1) + .01
                IF foot2x(pc1) > 5 THEN foot2h(pc1) = foot2h(pc1) - .05 ELSE foot2h(pc1) = foot2h(pc1) + .01
            ELSE
                IF canjump%(pc1) = 1 AND ABS(butth(pc1)) > .05 AND ABS(butth(pc1)) < 5 THEN
                    nee1x(pc1) = -1 + (walkx(pc1) * ABS(butth(pc1) / 1.8))
                    nee2x(pc1) = 3 - (walkx(pc1) * ABS(butth(pc1) / 1.8))
                ELSE
                    IF nee1x(pc1) > 5 THEN nee1h(pc1) = nee1h(pc1) - .05 ELSE nee1h(pc1) = nee1h(pc1) + .05
                    IF nee2x(pc1) > -1 THEN nee2h(pc1) = nee2h(pc1) - .05 ELSE nee2h(pc1) = nee2h(pc1) + .05
                END IF
                IF foot1x(pc1) > -1 THEN foot1h(pc1) = foot1h(pc1) - .1 ELSE foot1h(pc1) = foot1h(pc1) + .01
                IF foot2x(pc1) > -3 THEN foot2h(pc1) = foot2h(pc1) - .01 ELSE foot2h(pc1) = foot2h(pc1) + .05
            END IF

            IF necky(pc1) > -7 - droop THEN neckv(pc1) = neckv(pc1) - .05 ELSE neckv(pc1) = neckv(pc1) + .05
            IF heady(pc1) > -1 - droop THEN headv(pc1) = headv(pc1) - .01 ELSE headv(pc1) = headv(pc1) + .01
            IF elbow1y(pc1) > 6 THEN elbow1v(pc1) = elbow1v(pc1) - .08 ELSE elbow1v(pc1) = elbow1v(pc1) + .08
            IF elbow2y(pc1) > 5 THEN elbow2v(pc1) = elbow2v(pc1) - .08 ELSE elbow2v(pc1) = elbow2v(pc1) + .08
            IF hand1y(pc1) > -2 - droop THEN hand1v(pc1) = hand1v(pc1) - .08 ELSE hand1v(pc1) = hand1v(pc1) + .08
            IF hand2y(pc1) > 2.5 - droop THEN hand2v(pc1) = hand2v(pc1) - .08 ELSE hand2v(pc1) = hand2v(pc1) + .08
            IF nee1y(pc1) > 8 THEN nee1v(pc1) = nee1v(pc1) - .01 ELSE nee1v(pc1) = nee1v(pc1) + .1
            IF nee2y(pc1) > 8 THEN nee2v(pc1) = nee2v(pc1) - .01 ELSE nee2v(pc1) = nee2v(pc1) + .1
            IF foot1y(pc1) > 7 THEN foot1v(pc1) = foot1v(pc1) - .01 ELSE foot1v(pc1) = foot1v(pc1) + .05
            IF foot2y(pc1) > 7 THEN foot2v(pc1) = foot2v(pc1) - .01 ELSE foot2v(pc1) = foot2v(pc1) + .1


            fightergoo (pc1), 1.3

            '------------------------------------------------------------------------ Jab

        CASE IS = 2
            IF pticker%(pc1) = 1 THEN sbfx 1
            fighterfreeze (pc1)
            IF neckx(pc1) < 3.5 THEN neckx(pc1) = neckx(pc1) + .5
            elbow1x(pc1) = 4
            elbow1y(pc1) = 0
            hand1x(pc1) = 3
            hand1y(pc1) = 0
            elbow2y(pc1) = 2


            'Momontary Pause / Detect hit
            IF pticker%(pc1) = 2 THEN
                fighterfreeze (pc1)

                IF razers%(pc1) > 0 THEN ahpow%(pc1) = ahpow%(pc1) + 5

                'High/Head
                IF hand1x(pc2) > h1x AND hand1x(pc2) < h2x AND hand1y(pc2) > h1y AND hand1y(pc2) < h2y THEN
                    health%(po1) = health%(po1) - ahpow%(pc1) * 2
                    ko(po1) = ko(po1) - akpow%(pc1) * 2
                    position%(po1) = 1
                    IF headx(po1) > 0 THEN headx(po1) = headx(po1) - 1
                    IF position%(po1) < 99 THEN
                        IF buttx(pc1) < buttx(po1) THEN particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 4, 3: butth(po1) = butth(po1) + .5 ELSE particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 3, 3: butth(po1) = butth(po1) - .5
                    END IF
                    IF razers%(pc1) > 0 THEN soundticker% = 0: sbfx 17 ELSE soundticker% = 0: sbfx 10
                END IF

                'Medium/Low
                IF hand1x(pc2) > m1x AND hand1x(pc2) < m2x AND hand1y(pc2) > m1y AND hand1y(pc2) < l2y THEN
                    health%(po1) = health%(po1) - ahpow%(pc1)
                    ko(po1) = ko(po1) - akpow%(pc1)
                    position%(po1) = 1
                    neckx(po1) = neckx(po1) + 1
                    necky(po1) = necky(po1) + 1
                    IF position%(po1) < 99 THEN particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 1, 5
                    IF razers%(pc1) > 0 THEN soundticker% = 0: sbfx 17 ELSE soundticker% = 0: sbfx 9
                END IF

                IF razers%(pc1) > 0 THEN ahpow%(pc1) = ahpow%(pc1) - 5

            END IF

            'Return Position
            IF pticker%(pc1) > 3 THEN
                elbow1x(pc1) = 2
                elbow1h(pc1) = -.5
                elbow1y(pc1) = 1
                elbow1v(pc1) = 1
                hand1h(pc1) = -.5
                hand1v(pc1) = -.5
                position%(pc1) = 1
            END IF

            '--------------------------------------------------------------------- Strong
        CASE IS = 3
            IF pticker%(pc1) = 1 THEN sbfx 2
            fighterfreeze (pc1)
            IF neckx(pc1) < 3 THEN neckx(pc1) = neckx(pc1) + 1
            elbow2x(pc1) = 4
            elbow2y(pc1) = -1
            hand2x(pc1) = 3
            hand2y(pc1) = -1.5

            'Momontary Pause / Detect hit
            IF pticker%(pc1) = 2 THEN
                fighterfreeze (pc1)

                IF razers%(pc1) > 0 THEN ahpow%(pc1) = ahpow%(pc1) + 5

                'High/Head
                IF hand2x(pc2) > h1x AND hand2x(pc2) < h2x AND hand2y(pc2) > h1y AND hand2y(pc2) < h2y THEN
                    health%(po1) = health%(po1) - ahpow%(pc1) * 2
                    ko(po1) = ko(po1) - akpow%(pc1)
                    position%(po1) = 1
                    IF headx(po1) > 0 THEN headx(po1) = headx(po1) - 1
                    IF neckx(po1) > 0 THEN neckx(po1) = neckx(po1) - 1
                    IF position%(po1) < 99 THEN
                        IF buttx(pc1) < buttx(po1) THEN particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 4, 3: butth(po1) = butth(po1) + 1 ELSE particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 3, 3: butth(po1) = butth(po1) - 1
                    END IF
                    IF razers%(pc1) > 0 THEN soundticker% = 0: sbfx 17 ELSE soundticker% = 0: sbfx 11
                END IF

                'Medium/Low
                IF hand2x(pc2) > m1x AND hand2x(pc2) < m2x AND hand2y(pc2) > m1y AND hand2y(pc2) < l2y THEN
                    health%(po1) = health%(po1) - ahpow%(pc1) * 3
                    ko(po1) = ko(po1) - akpow%(pc1) * 2
                    position%(po1) = 1
                    neckx(po1) = neckx(po1) + 1
                    necky(po1) = necky(po1) + 1
                    IF position%(po1) < 99 THEN particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 1, 5
                    IF razers%(pc1) > 0 THEN soundticker% = 0: sbfx 17 ELSE soundticker% = 0: sbfx 10
                END IF

                IF razers%(pc1) > 0 THEN ahpow%(pc1) = ahpow%(pc1) - 5

            END IF

            'Return Position
            IF pticker%(pc1) > 3 THEN
                elbow2x(pc1) = 2
                elbow2h(pc1) = -1.5
                elbow2v(pc1) = 1
                hand2h(pc1) = 0
                hand2v(pc1) = .5
                position%(pc1) = 1
            END IF


            '---------------------------------------------------------------------- Elbow
        CASE IS = 4
            IF pticker%(pc1) = 1 THEN sbfx 3
            fighterfreeze (pc1)
            elbow1x(pc1) = 5
            elbow1y(pc1) = 0
            hand1x(pc1) = -3
            hand1y(pc1) = 1.5

            'Momontary Pause / Detect hit
            IF pticker%(pc1) = 2 THEN
                fighterfreeze (pc1)

                IF elbow1x(pc2) > l1x AND elbow1x(pc2) < l2x AND elbow1y(pc2) > h1y AND elbow1y(pc2) < l2y THEN
                    health%(po1) = health%(po1) - ahpow%(pc1)
                    ko(po1) = ko(po1) - akpow%(pc1) * 2
                    IF buttx(pc1) > buttx(po1) THEN butth(po1) = butth(po1) - .3 ELSE butth(po1) = butth(po1) + .3
                    IF position%(po1) < 99 THEN particle (elbow1x(pc2)), (elbow1y(pc2)), (fighterz(pc1)), 1, 3
                    soundticker% = 0: sbfx 9
                    position%(po1) = 1
                END IF
            END IF

            'Return Position
            IF pticker%(pc1) > 3 THEN
                elbow1v(pc1) = 1
                position%(pc1) = 1
            END IF


            '---------------------------------------------------------------------- Short
        CASE IS = 5

            fighterfreeze (pc1)

            SELECT CASE combo%(pc1)
                '----------------------------+
                CASE 0
                    sbfx 2
                    nee1x(pc1) = 6
                    nee1y(pc1) = -1
                    foot1x(pc1) = 6
                    foot1y(pc1) = -1


                    '----------------------------+
                CASE 1
                    sbfx 1
                    neckx(pc1) = neckx(pc1) + 1
                    nee1x(pc1) = 5
                    nee1y(pc1) = 5
                    foot1x(pc1) = 5
                    foot1y(pc1) = 5


                    '----------------------------+
                CASE 2
                    sbfx 2
                    combo%(pc1) = -1

                    buttx(pc1) = buttx(pc1) + (2 * d%(pc1))
                    buttv(pc1) = buttv(pc1) - 3

                    neckx(pc1) = -1
                    nee1x(pc1) = 6
                    nee1y(pc1) = -6
                    foot1x(pc1) = 6
                    foot1y(pc1) = -6

                    nee2x(pc1) = 0
                    foot2x(pc1) = 0

                    nee1v(pc1) = 1
                    foot1v(pc1) = 2

                    elbow1x(pc1) = elbow1x(pc1) + 2
                    elbow1y(pc1) = elbow1y(pc1) - 2
                    hand2x(pc1) = hand2x(pc1) - 2
                    hand2y(pc1) = hand2y(pc1) + 2

            END SELECT


            tx = buttx(pc1) + nee1x(pc1) * d%(pc1)
            ty = butty(pc1) + nee1y(pc1)
            tx = tx + foot1x(pc1) * d%(pc1)
            ty = ty + foot1y(pc1)

            'Detect Hit
            IF tx > l1x AND tx < l2x AND ty > h1y AND ty < l2y THEN
                soundticker% = 0: sbfx 9
                IF position%(po1) < 99 THEN
                    health%(po1) = health%(po1) - lhpow%(pc1)
                    ko(po1) = ko(po1) - lkpow%(pc1)
                    position%(po1) = 1
                    IF combo%(pc1) = -1 THEN particle (tx), (ty), (fighterz(pc1)), 2, 5: buttv(po1) = -8: butth(po1) = d%(pc1): fall (po1) ELSE IF position%(po1) < 99 THEN particle (tx), (ty), (fighterz(pc1)), 1, 5
                    combo%(pc1) = combo%(pc1) + 1: combol%(pc1) = 30
                END IF
            END IF

            'Return Position
            position%(pc1) = 1
            IF foot1x(pc1) > 0 THEN foot1h(pc1) = -2


            '----------------------------------------------------------------- Roundhouse
        CASE IS = 6

            IF pticker%(pc1) = 1 THEN
                fighterfreeze (pc1)
                neckx(pc1) = 0
                buttx(pc1) = buttx(pc1) + (d%(pc1) * 2)

                nee1x(pc1) = 0
                foot1x(pc1) = 0

                IF foot1y(pc1) < 1 OR nee1y(pc1) > 3 THEN
                    nee1y(pc1) = 8
                    foot1y(pc1) = 7
                END IF

                elbow1h(pc1) = -.5
                elbow2h(pc1) = .5
                elbow2v(pc1) = -.5
            END IF

            IF pticker%(pc1) = 3 THEN
                IF buttx(pc1) > buttx(po1) THEN
                    d%(pc1) = -1
                ELSE
                    d%(pc1) = 1
                END IF
            END IF

            IF pticker%(pc1) = 5 THEN
                nee2h(pc1) = 2
                nee2v(pc1) = -2

                foot2h(pc1) = -1
                foot2v(pc1) = -1
            END IF

            IF pticker%(pc1) = 8 THEN
                sbfx 4
                fighterfreeze (pc1)

                elbow1x(pc1) = elbow1x(pc1) + 2
                elbow1y(pc1) = elbow1y(pc1) - 2

                hand2y(pc1) = hand2y(pc1) + 2
                elbow2y(pc1) = elbow2y(pc1) + 2

                nee2x(pc1) = 5
                nee2y(pc1) = -1


                foot2x(pc1) = 5
                foot2y(pc1) = -1
            END IF


            'Detect Hit
            IF pticker%(pc1) = 9 AND foot2x(pc2) > l1x AND foot2x(pc2) < l2x AND foot2y(pc2) > h1y AND foot2y(pc2) < l2y THEN
                combol%(pc1) = 30
                IF position%(po1) < 99 THEN
                    health%(po1) = health%(po1) - lhpow%(pc1) * 2
                    soundticker% = 0: sbfx 11
                    ko(po1) = ko(po1) - lkpow%(pc1) * 2
                    particle (foot2x(pc2)), (foot2y(pc2)), (fighterz(pc1)), 1, 5
                    position%(po1) = 1
                    IF nee1y(pc1) < 5 THEN
                        fall po1
                        buttv(po1) = buttv(po1) - 5
                    ELSE
                        fighterz(po1) = midstage + .5
                    END IF
                ELSE
                    soundticker% = 0: sbfx 9
                END IF
            END IF


            IF pticker%(pc1) > 9 THEN
                fighterfreeze (pc1)

                nee2h(pc1) = -1
                nee2v(pc1) = 1
                foot2h(pc1) = -2
                foot2v(pc1) = 1

                position%(pc1) = 1
            END IF


            '------------------------------------------------------------------------ Nee
        CASE IS = 7
            IF pticker%(pc1) = 1 THEN sbfx 3
            fighterfreeze (pc1)
            buttx(pc1) = buttx(pc1) + d%(pc1)
            buttv(pc1) = buttv(pc1) - 2
            nee1x(pc1) = 0
            nee1y(pc1) = 6
            foot1x(pc1) = -1
            foot1y(pc1) = 5
            nee2x(pc1) = 5
            nee2y(pc1) = -4
            elbow1x(pc1) = -2
            elbow1y(pc1) = 3
            elbow2x(pc1) = -2
            elbow2y(pc1) = 3

            'Momontary Pause / Detect hit
            IF pticker%(pc1) = 2 THEN
                fighterfreeze (pc1)

                IF nee2x(pc2) > l1x AND nee2x(pc2) < l2x AND nee2y(pc2) > h1y AND nee2y(pc2) < l2y THEN
                    soundticker% = 0: sbfx 10
                    health%(po1) = health%(po1) - lhpow%(pc1) * 2
                    ko(po1) = ko(po1) - lkpow%(pc1)
                    combol%(pc1) = 30
                    neckx(po1) = 2
                    heady(po1) = 2
                    position%(po1) = 1
                    IF buttx(pc1) > buttx(po1) THEN butth(po1) = butth(po1) - .3: particle (nee2x(pc2)), (nee2y(pc2)), (fighterz(pc1)), 3, 3 ELSE butth(po1) = butth(po1) + .3: particle (nee2x(pc2)), (nee2y(pc2)), (fighterz(pc1)), 4, 3
                END IF
            END IF

            'Return Position
            IF pticker%(pc1) > 3 THEN
                nee2v(pc1) = 1
                position%(pc1) = 1
            END IF



            '--------------------------------------------------------------- Fall Forward
        CASE IS = 8
            IF pticker%(pc1) = 1 THEN buttv(pc1) = buttv(pc1) - 3

            IF neckx(pc1) > 7 THEN neckh(pc1) = neckh(pc1) - .05 ELSE neckh(pc1) = neckh(pc1) + .1
            IF headx(pc1) > 3 THEN headh(pc1) = headh(pc1) - .01 ELSE headh(pc1) = headh(pc1) + .1
            elbow1h(pc1) = 0
            elbow2h(pc1) = 0
            hand1h(pc1) = 0
            hand2h(pc1) = 0
            IF nee1x(pc1) > -5 THEN nee1h(pc1) = nee1h(pc1) - .2 ELSE nee1h(pc1) = nee1h(pc1) + .1
            IF nee2x(pc1) > -2 THEN nee2h(pc1) = nee2h(pc1) - .2 ELSE nee2h(pc1) = nee2h(pc1) + .1
            IF foot1x(pc1) > -4 THEN foot1h(pc1) = foot1h(pc1) - .1 ELSE foot1h(pc1) = foot1h(pc1) + .05
            IF foot2x(pc1) > -3 THEN foot2h(pc1) = foot2h(pc1) - .1 ELSE foot2h(pc1) = foot2h(pc1) + .05

            IF necky(pc1) > -3 THEN neckv(pc1) = neckv(pc1) - .05 ELSE neckv(pc1) = neckv(pc1) + .05
            IF heady(pc1) > 2 THEN headv(pc1) = headv(pc1) - .01 ELSE headv(pc1) = headv(pc1) + .05
            IF elbow1y(pc2) > butty(pc1) THEN elbow1v(pc1) = elbow1v(pc1) - .1 ELSE elbow1v(pc1) = elbow1v(pc1) + .05
            IF elbow2y(pc2) > butty(pc1) THEN elbow2v(pc1) = elbow2v(pc1) - .1 ELSE elbow2v(pc1) = elbow2v(pc1) + .05
            IF hand1y(pc2) > butty(pc1) THEN hand1v(pc1) = hand1v(pc1) - .05 ELSE hand1v(pc1) = hand1v(pc1) + .05
            IF hand2y(pc2) > butty(pc1) THEN hand2v(pc1) = hand2v(pc1) - .05 ELSE hand2v(pc1) = hand2v(pc1) + .05
            nee1y(pc1) = 0
            foot1y(pc1) = 0
            nee2y(pc1) = 0
            foot2y(pc1) = 0
            fightergoo (pc1), 1.3

            IF ABS(butth(pc1)) < .05 AND ABS(buttv(pc1)) < .1 AND pticker%(pc1) > sdelay%(pc1) AND necky(pc2) > butty(pc1) - 3 THEN
                fighterfreeze (pc1)
                IF ko(pc1) > 0 AND health%(pc1) > 0 THEN
                    position%(pc1) = 9
                    neckx(pc1) = 3
                    necky(pc1) = -5
                    elbow1x(pc1) = 3
                    elbow1y(pc1) = 4
                    hand1x(pc1) = 2
                    hand1y(pc1) = 3
                    elbow2x(pc1) = 3
                    elbow2y(pc1) = 4
                    hand2x(pc1) = 2
                    hand2y(pc1) = 3
                END IF
            END IF


            '------------------------------------------------------------------- Get Up 1
        CASE IS = 9

            IF heady(pc1) > -1 - droop THEN headv(pc1) = headv(pc1) - .1 ELSE headv(pc1) = headv(pc1) + .05
            nee1h(pc1) = 1.5
            neckh(pc1) = -.2
            neckv(pc1) = -.4

            fightergoo (pc1), 1.05

            IF pticker%(pc1) > 5 THEN

                position%(pc1) = 1

                headx(pc1) = 1
                neckh(pc1) = 0
                neckv(pc1) = 0
                buttv(pc1) = -5
                nee2x(pc1) = 2
                foot1x(pc1) = 1
                foot2x(pc1) = -2
                nee1h(pc1) = 0
                nee1y(pc1) = 0
                nee2y(pc1) = 4
                foot1y(pc1) = 4
                foot2y(pc1) = 4
            END IF



            '------------------------------------------------------------------ Fall Back
        CASE IS = 10
            IF neckx(pc1) > -7 THEN neckh(pc1) = neckh(pc1) - .1 ELSE neckh(pc1) = neckh(pc1) + .05
            IF headx(pc1) > -3 THEN headh(pc1) = headh(pc1) - .1 ELSE headh(pc1) = headh(pc1) + .01
            elbow1h(pc1) = 0
            elbow2h(pc1) = 0
            hand1h(pc1) = 0
            hand2h(pc1) = 0
            IF nee1x(pc1) > 5 THEN nee1h(pc1) = nee1h(pc1) - .01 ELSE nee1h(pc1) = nee1h(pc1) + .1
            IF nee2x(pc1) > 2 THEN nee2h(pc1) = nee2h(pc1) - .01 ELSE nee2h(pc1) = nee2h(pc1) + .1
            IF foot1x(pc1) > 4 THEN foot1h(pc1) = foot1h(pc1) - .05 ELSE foot1h(pc1) = foot1h(pc1) + .1
            IF foot2x(pc1) > 3 THEN foot2h(pc1) = foot2h(pc1) - .05 ELSE foot2h(pc1) = foot2h(pc1) + .1

            IF necky(pc1) > 0 THEN neckv(pc1) = neckv(pc1) - .05 ELSE neckv(pc1) = neckv(pc1) + .1
            IF heady(pc1) > -2 THEN headv(pc1) = headv(pc1) - .01 ELSE headv(pc1) = headv(pc1) + .01
            IF elbow1y(pc1 + 2) > butty(pc1) THEN elbow1v(pc1) = elbow1v(pc1) - .1 ELSE elbow1v(pc1) = elbow1v(pc1) + .05
            IF elbow2y(pc1 + 2) > butty(pc1) THEN elbow2v(pc1) = elbow2v(pc1) - .1 ELSE elbow2v(pc1) = elbow2v(pc1) + .05
            IF hand1y(pc1 + 2) > butty(pc1) THEN hand1v(pc1) = hand1v(pc1) - .05 ELSE hand1v(pc1) = hand1v(pc1) + .05
            IF hand2y(pc1 + 2) > butty(pc1) THEN hand2v(pc1) = hand2v(pc1) - .05 ELSE hand2v(pc1) = hand2v(pc1) + .05
            IF nee1y(pc1) > -1 THEN nee1v(pc1) = nee1v(pc1) - .2 ELSE nee1v(pc1) = nee1v(pc1) + .05
            IF foot1y(pc1) > 1 THEN foot1v(pc1) = foot1v(pc1) - .1 ELSE foot1v(pc1) = foot1v(pc1) + .1
            IF nee2y(pc1) > -3 THEN nee2v(pc1) = nee2v(pc1) - .2 ELSE nee2v(pc1) = nee2v(pc1) + .05
            IF foot2y(pc1) > 3 THEN foot2v(pc1) = foot2v(pc1) - .1 ELSE foot2v(pc1) = foot2v(pc1) + .1
            fightergoo (pc1), 1.3

            IF ABS(butth(pc1)) < .05 AND ABS(buttv(pc1)) < .1 AND pticker%(pc1) > sdelay%(pc1) AND necky(pc2) >= butty(pc1) THEN
                fighterfreeze (pc1)
                IF ko(pc1) > 0 AND health%(pc1) > 0 THEN position%(pc1) = 11
            END IF

            '------------------------------------------------------------------- Get Up 2
        CASE IS = 11

            neckv(pc1) = neckv(pc1) + .005

            IF nee1x(pc1) > -5 THEN nee1h(pc1) = nee1h(pc1) - .1
            IF nee2x(pc1) > -5 THEN nee2h(pc1) = nee2h(pc1) - .1
            IF foot1x(pc1) > 4 THEN foot1h(pc1) = foot1h(pc1) - .1
            IF foot2x(pc1) > 4 THEN foot2h(pc1) = foot2h(pc1) - .1

            IF nee1y(pc1) > -3 THEN nee1v(pc1) = nee1v(pc1) - .01
            IF nee2y(pc1) > -3 THEN nee2v(pc1) = nee2v(pc1) - .01
            IF foot1y(pc1) > -2 THEN foot1v(pc1) = foot1v(pc1) - .1
            IF foot2y(pc1) > -2 THEN foot2v(pc1) = foot2v(pc1) - .1

            fightergoo (pc1), 1.3


            IF pticker%(pc1) > 25 THEN

                position%(pc1) = 1
                headx(pc1) = 1

                neckh(pc1) = 2
                neckv(pc1) = -2

                buttv(pc1) = -5

                nee1x(pc1) = 5
                nee2x(pc1) = 2
                foot1x(pc1) = 1
                foot2x(pc1) = -2

                nee1y(pc1) = 0
                nee2y(pc1) = 4
                foot1y(pc1) = 4
                foot2y(pc1) = 4
            END IF


            '--------------------------------------------------------------------- Crouch
        CASE IS = 12
            IF pticker%(pc1) = 1 THEN fighterfreeze (pc1)
            nee1y(pc1) = 0
            nee2y(pc1) = 0

            IF pticker%(pc1) > 15 THEN
                position%(pc1) = 1
            END IF


            '------------------------------------------------------------------ Upper Cut
        CASE IS = 13
            IF pticker%(pc1) = 1 THEN sbfx 4
            fighterfreeze (pc1)

            elbow2x(pc1) = 3
            elbow2y(pc1) = -5
            hand2x(pc1) = 0
            hand2y(pc1) = -4

            elbow1x(pc1) = -3
            elbow1y(pc1) = 5
            hand1x(pc1) = 0
            hand1y(pc1) = 4

            headx(pc1) = 0
            necky(pc1) = -10
            neckx(pc1) = 1

            IF legs%(pc1) <> 666 THEN
                nee1x(pc1) = 5
                nee2x(pc1) = -1
                foot1x(pc1) = -1
                foot2x(pc1) = -3
            END IF

            nee1y(pc1) = 8
            nee2y(pc1) = 8
            foot1y(pc1) = 7
            foot2y(pc1) = 7

            'Detect Hit
            IF pticker%(pc1) = 2 THEN


                IF hand2x(pc2) > m1x - 5 AND hand2x(pc2) < m2x + 5 AND hand2y(pc2) > h1y - 10 AND hand2y(pc2) < l2y THEN
                    soundticker% = 0: sbfx 11
                    IF razers%(pc1) > 0 THEN n% = 10: bgcolor% = 12: soundticker% = 0: sbfx 17
                    health%(po1) = health%(po1) - ((ahpow%(pc1) + n%) * 3)
                    IF health%(po1) <= 0 THEN decap (po1)

                    IF position%(po1) <> 99 THEN
                        butth(po1) = d%(pc1) / 2
                        ko(po1) = ko(po1) - akpow%(pc1) * 3
                        necky(po1) = necky(po1) + 1
                        buttv(po1) = -(ahpow%(pc1) * 3) - 5
                        position%(po1) = 10
                        FOR wee = 1 TO 50 STEP 5: particle (hand2x(pc2) + ((RND - .5) * 5)), (butty(pc1) - wee), (fighterz(pc1)), 2, 1: NEXT wee
                    ELSE
                        particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 6, 3
                    END IF
                END IF

            END IF


            IF pticker%(pc1) > 9 THEN
                position%(pc1) = 1
                elbow2v(pc1) = 2
            END IF


            '---------------------------------------------------------------- In-Air Kick
        CASE IS = 14

            IF pticker%(pc1) = 1 THEN
                sbfx 3
                fighterfreeze (pc1)
                neckx(pc1) = -5

                nee1x(pc1) = -5
                foot1x(pc1) = 5
                nee1y(pc1) = 1
                foot1y(pc1) = 1

                elbow1x(pc1) = -4
                elbow1y(pc1) = 2
                hand1x(pc1) = 3
                hand1y(pc1) = 1

                elbow2x(pc1) = 4
                elbow2y(pc1) = 2

                nee2h(pc1) = 2
                nee2v(pc1) = -2
                foot2h(pc1) = -1
                foot2v(pc1) = -2
            END IF

            IF pticker%(pc1) = 3 THEN
                fighterfreeze (pc1)

                hand2y(pc1) = hand2y(pc1) + 2
                elbow2y(pc1) = elbow2y(pc1) + 2
                nee2x(pc1) = 5
                nee2y(pc1) = 0
                foot2x(pc1) = 5
                foot2y(pc1) = 0
            END IF


            IF pticker%(pc1) > 3 AND nee2x(pc2) > l1x - 5 AND nee2x(pc2) < l2x + 5 AND foot2y(pc2) > h1y AND foot2y(pc2) < l2y THEN
                soundticker% = 0: sbfx 10
                health%(po1) = health%(po1) - lhpow%(pc1) * 3
                ko(po1) = ko(po1) - lkpow%(pc1) * 2
                particle (nee2x(pc2)), (foot2y(pc2)), (fighterz(pc1)), 1, 5
                combol%(pc1) = 30
            END IF


            IF pticker%(pc1) = 5 THEN
                fighterfreeze (pc1)

                neckh(pc1) = 1

                nee1h(pc1) = 1
                nee1v(pc1) = 1
                foot1h(pc1) = -2
                foot1v(pc1) = 1

                nee2v(pc1) = 1
                foot2h(pc1) = -2
                foot2v(pc1) = 1
                position%(pc1) = 1
            END IF

            '--------------------------------------------------------------- Delayed Fall
        CASE IS = 15
            fighterfreeze (pc1)
            IF pticker%(pc1) > sdelay%(pc1) * 2 THEN position%(pc1) = 8: buttv(pc1) = buttv(pc1) + 3






            'SPECIALS ========================================================== SPECIALS`


            '-------------------------------------------------------------- One Fire Ball
        CASE IS = 30
            fighterfreeze (pc1)
            IF neckx(pc1) > 2 THEN neckv(pc1) = -.2 ELSE neckv(pc1) = .2
            IF necky(pc1) > -7 THEN neckv(pc1) = -.2 ELSE neckv(pc1) = .2
            IF hand1x(pc1) > -1 THEN hand1h(pc1) = -.2 ELSE hand1h(pc1) = .2
            IF hand2x(pc1) > 1 THEN hand2h(pc1) = -.2 ELSE hand2h(pc1) = .2
            IF hand1y(pc1) > 2 THEN hand1v(pc1) = -.2 ELSE hand1v(pc1) = .2
            IF hand2y(pc1) > 3 THEN hand2v(pc1) = -.2 ELSE hand2v(pc1) = .2
            IF elbow2x(pc1) > -5 THEN elbow2h(pc1) = -.2 ELSE elbow2h(pc1) = .2

            IF pticker%(pc1) > 3 THEN
                soundticker% = 0: sbfx 4
                IF ko(pc1) > 5 THEN
                    ko(pc1) = ko(pc1) - 3
                    IF pc1 = 2 THEN n% = 3
                    projectile%(1 + n%) = 25
                    projectilex(1 + n%) = hand1x(pc2)
                    projectiley(1 + n%) = necky(pc2)
                    projectileh(1 + n%) = d%(pc1) * 10
                    projectilev(1 + n%) = 0
                    projectilet%(1 + n%) = 2

                    position%(pc1) = 1
                    neckx(pc1) = 5
                    necky(pc1) = -6

                    elbow1x(pc1) = 5
                    hand1x(pc1) = 4
                    elbow1y(pc1) = 0
                    hand1y(pc1) = 0

                    butth(pc1) = butth(pc1) - (d%(pc1) / 2)
                ELSE
                    position%(pc1) = 1
                    particle (hand1x(pc2)), (hand1y(pc2)), fighterz(pc1), 15, 20
                END IF
            END IF


            x = (hand1x(pc2) + hand2x(pc2)) / 2
            y = (hand1y(pc2) + hand2y(pc2)) / 2

            pscircle (x), (y), (fighterz(pc1)), 1, flash3%
            psline (x), (y), (fighterz(pc1)), (x + ((RND - .5) * 75)), (y + ((RND - .5) * 75)), (fighterz(pc1)), 12, 0


            '------------------------------------------------------------------ Power Jab
        CASE IS = 31

            'Draw Back
            IF pticker%(pc1) < 6 THEN
                elbow1h(pc1) = -1
                elbow1v(pc1) = -.5
                hand1x(pc1) = 1
                hand1y(pc1) = -1
            END IF

            'Jab
            IF pticker%(pc1) = 6 THEN
                IF ko(pc1) > 10 THEN
                    ko(pc1) = ko(pc1) - 5
                    fighterfreeze (pc1)
                    elbow1x(pc1) = 3
                    elbow1y(pc1) = 4
                    hand1x(pc1) = 3
                    hand1y(pc1) = -2
                    neckx(pc1) = 4
                    necky(pc1) = -7
                    neckv(pc1) = -.2
                ELSE
                    fighterfreeze (pc1)
                    position%(pc1) = 1
                END IF
            END IF

            'Detect hit
            IF pticker%(pc1) = 7 THEN
                fighterfreeze (pc1)

                IF hand1x(pc2) > m1x - 4 AND hand1x(pc2) < m2x + 4 AND hand1y(pc2) > h1y AND hand1y(pc2) < l2y THEN
                    IF razers%(pc1) > 0 THEN
                        particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 2, 10
                        particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 3, 10
                        n% = 10
                        bgcolor% = 15
                        soundticker% = 0: sbfx 17
                    ELSE
                        bgcolor% = 4
                        soundticker% = 0: sbfx 11
                    END IF

                    IF position%(po1) <> 99 THEN
                        health%(po1) = health%(po1) - ((ahpow%(pc1) + n%) * 2)
                        ko(po1) = ko(po1) - akpow%(pc1) * 3
                        particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 9, 10
                        position%(po1) = 1
                    ELSE
                        ko(po1) = ko(po1) - akpow%(pc1)
                    END IF
                    particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 1, 10

                    heady(po1) = heady(po1) + 1
                    butty(po1) = butty(po1) - 10
                END IF
            END IF

            'Return Position
            IF pticker%(pc1) = 8 THEN
                position%(pc1) = 1
                elbow1h(pc1) = -1
                hand1v(pc1) = 1
            END IF


            'Effects
            IF pticker%(pc1) > 6 THEN
                psline (neckx(pc2) - (8 * d%(pc1))), (necky(pc2) + 5), (fighterz(pc1)), (neckx(pc2) + (6 * d%(pc1))), (necky(pc2) + 3), (fighterz(pc1)), (15), 3
            END IF




            '------------------------------------------------------------------- Neck Jab
        CASE IS = 32

            'Draw Back
            IF pticker%(pc1) < 6 THEN
                elbow1h(pc1) = -1
                elbow1v(pc1) = -.5
                hand1x(pc1) = 1
                hand1y(pc1) = -1
            END IF

            'Jab
            IF pticker%(pc1) = 6 THEN
                IF ko(pc1) > 10 AND neckx(pc2) > m1x - 10 AND neckx(pc2) < m2x + 10 AND necky(pc2) > h1y - 7 THEN
                    IF buttx(pc1) > buttx(po1) THEN d%(pc1) = -1 ELSE d%(pc1) = 1
                    ko(pc1) = ko(pc1) - 5
                    fighterfreeze (pc1)
                    hand1x(pc1) = (neckx(po2) - neckx(pc2)) / (2 * d%(pc1))
                    elbow1x(pc1) = (neckx(po2) - neckx(pc2)) / (2 * d%(pc1))
                    hand1y(pc1) = -1
                    elbow1y(pc1) = -1
                    neckx(pc1) = 4
                ELSE
                    fighterfreeze (pc1)
                    position%(pc1) = 1
                END IF
            END IF

            'Detect hit
            IF pticker%(pc1) = 7 AND position%(po1) <> 99 THEN
                fighterfreeze (pc1)

                IF hand1x(pc2) > m1x - 2 AND hand1x(pc2) < m2x + 2 AND hand1y(pc2) > h1y - 1 AND hand1y(pc2) < h2y + 1 THEN
                    IF razers%(pc1) > 0 THEN
                        particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 2, 10
                        particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 3, 10
                        n% = 10
                        bgcolor% = 15
                        health%(po1) = health%(po1) - 50
                        IF health%(po1) < 50 THEN decap (po1)
                        IF razers%(pc1) > 15 THEN razers%(pc1) = 15
                        soundticker% = 0: sbfx 17
                    ELSE
                        bgcolor% = 4
                        soundticker% = 0: sbfx 1
                    END IF

                    ko(po1) = ko(po1) - 10

                    position%(po1) = 15
                    fighterfreeze (po1)
                    particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 9, 10

                ELSE
                    position%(pc1) = 1
                END IF

            END IF

            'Return Position
            IF pticker%(pc1) >= sdelay%(po1) + 5 THEN
                position%(pc1) = 1
                elbow1h(pc1) = -3
                elbow1v(pc1) = 2
            END IF





            '------------------------------------------------------------- Ball Lightning
        CASE IS = 33
            fighterfreeze (pc1)


            IF neckx(pc1) > 2 THEN neckv(pc1) = -.2 ELSE neckv(pc1) = .2
            IF necky(pc1) > -7 THEN neckv(pc1) = -.2 ELSE neckv(pc1) = .2
            IF hand1x(pc1) > -1 THEN hand1h(pc1) = -.2 ELSE hand1h(pc1) = .2
            IF hand2x(pc1) > 1 THEN hand2h(pc1) = -.2 ELSE hand2h(pc1) = .2
            IF hand1y(pc1) > 2 THEN hand1v(pc1) = -.2 ELSE hand1v(pc1) = .2
            IF hand2y(pc1) > 3 THEN hand2v(pc1) = -.2 ELSE hand2v(pc1) = .2
            IF elbow2x(pc1) > -6 THEN elbow2h(pc1) = -.2 ELSE elbow2h(pc1) = .2

            IF pticker%(pc1) > sdelay%(pc1) AND projectile%(1 * pc1) = 0 THEN
                IF pc1 = 2 THEN n% = 3
                IF ko(pc1) > 5 THEN
                    soundticker% = 0: sbfx 6
                    ko(pc1) = ko(pc1) - 5
                    projectile%(1 + n%) = 50
                    projectilex(1 + n%) = hand1x(pc2)
                    projectiley(1 + n%) = necky(pc2)
                    projectileh(1 + n%) = d%(pc1) * 10
                    projectilev(1 + n%) = 0
                    projectilet%(1 + n%) = 1

                    position%(pc1) = 1
                    neckx(pc1) = 5
                    necky(pc1) = -6

                    elbow1x(pc1) = 5
                    hand1x(pc1) = 4
                    elbow1y(pc1) = 0
                    hand1y(pc1) = 0

                    elbow2x(pc1) = 5
                    hand2x(pc1) = 4
                    elbow2y(pc1) = 0
                    hand2y(pc1) = 0

                    butth(pc1) = butth(pc1) - d%(pc1)
                    bgcolor% = 1
                ELSE
                    position%(pc1) = 1
                    particle (hand1x(pc2)), (hand1y(pc2)), fighterz(pc1), 15, 20
                END IF
            END IF


            x = (hand1x(pc2) + hand2x(pc2)) / 2
            y = (hand1y(pc2) + hand2y(pc2)) / 2

            'Effects
            sbfx 13
            psline (x), (y), (fighterz(pc1)), (x - (RND * 75)), (y + ((RND - .5) * 150)), (fighterz(pc1)), 15, 0
            psline (x), (y), (fighterz(pc1)), (x + (RND * 75)), (y + ((RND - .5) * 150)), (fighterz(pc1)), 15, 0
            pslightning (x), (y), (fighterz(pc1)), (x - (RND * 100)), (y + ((RND - .5) * 200)), (fighterz(pc1)), 50, (flash2%)
            pslightning (x), (y), (fighterz(pc1)), (x + (RND * 100)), (y + ((RND - .5) * 200)), (fighterz(pc1)), 30, (flash2%)
            pscircle (x), (y), (fighterz(pc1)), RND * 2, flash2%
            pscircle (x), (y), (fighterz(pc1)), 1, 15


            '------------------------------------------------------------ Triple Sheroken
        CASE IS = 34

            IF pc1 = 2 THEN n% = 3
            FOR wee = 1 TO 3
                IF pc1 = 2 THEN n% = 3
                projectile%(wee + n%) = 15
                projectilex(wee + n%) = hand1x(pc2)
                projectiley(wee + n%) = necky(pc2)
                projectileh(wee + n%) = (d%(pc1) * (8 * (RND + 1)))
                projectilev(wee + n%) = (RND - .5) * 20
                projectilet%(wee + n%) = 4
            NEXT wee

            position%(pc1) = 1
            soundticker% = 0: sbfx 13
            elbow2x(pc1) = 3
            elbow2y(pc1) = 2



            '------------------------------------------------------------- Two Fire Balls
        CASE IS = 35
            fighterfreeze (pc1)
            IF neckx(pc1) > 2 THEN neckv(pc1) = -.2 ELSE neckv(pc1) = .2
            IF necky(pc1) > -7 THEN neckv(pc1) = -.2 ELSE neckv(pc1) = .2
            IF hand1x(pc1) > -1 THEN hand1h(pc1) = -.2 ELSE hand1h(pc1) = .2
            IF hand2x(pc1) > 1 THEN hand2h(pc1) = -.2 ELSE hand2h(pc1) = .2
            IF hand1y(pc1) > 2 THEN hand1v(pc1) = -.2 ELSE hand1v(pc1) = .2
            IF hand2y(pc1) > 3 THEN hand2v(pc1) = -.2 ELSE hand2v(pc1) = .2
            IF elbow2x(pc1) > -5 THEN elbow2h(pc1) = -.2 ELSE elbow2h(pc1) = .2

            IF pticker%(pc1) > 3 THEN
                soundticker% = 0: sbfx 4
                IF pc1 = 2 THEN n% = 3
                FOR wee = 2 TO 3
                    projectile%(wee + n%) = 25
                    projectilex(wee + n%) = hand1x(pc2)
                    projectiley(wee + n%) = necky(pc2)
                    projectilev(wee + n%) = (RND - .5) * 10
                    projectileh(wee + n%) = (d%(pc1) * 10)
                    projectilet%(wee + n%) = 3
                NEXT wee

                position%(pc1) = 1
                neckx(pc1) = 5
                necky(pc1) = -6

                elbow1x(pc1) = 5
                hand1x(pc1) = 4
                elbow1y(pc1) = 0
                hand1y(pc1) = 0

                elbow2x(pc1) = 5
                hand2x(pc1) = 4
                elbow2y(pc1) = 0
                hand2y(pc1) = 0

                butth(pc1) = butth(pc1) - (d%(pc1) / 2)
            END IF


            x = (hand1x(pc2) + hand2x(pc2)) / 2
            y = (hand1y(pc2) + hand2y(pc2)) / 2

            pscircle (x), (y), (fighterz(pc1)), 1, flash3%
            psline (x), (y), (fighterz(pc1)), (x + ((RND - .5) * 75)), (y + ((RND - .5) * 75)), (fighterz(pc1)), 12, 0


            '--------------------------------------------------------------- Hammer Punch
        CASE IS = 36

            'Draw Up
            IF pticker%(pc1) < 8 THEN
                elbow2h(pc1) = 0
                elbow2v(pc1) = -1.5
                hand2x(pc1) = 3
                hand2y(pc1) = -2
                neckh(pc1) = -.3
            END IF

            'Hammer
            IF pticker%(pc1) = 8 THEN
                IF ko(pc1) > 10 THEN
                    IF body%(pc1) = 666 THEN rage(pc1) = 0
                    ko(pc1) = ko(pc1) - 5
                    fighterfreeze (pc1)
                    elbow2x(pc1) = 3
                    elbow2y(pc1) = 5
                    hand2x(pc1) = 4
                    hand2y(pc1) = 0
                    neckx(pc1) = 4
                    necky(pc1) = -7
                    neckv(pc1) = -.2
                ELSE
                    fighterfreeze (pc1)
                    position%(pc1) = 1
                END IF
            END IF

            'Detect hit
            IF pticker%(pc1) = 9 THEN
                fighterfreeze (pc1)

                IF hand2x(pc2) > m1x - 4 AND hand2x(pc2) < m2x + 4 AND hand2y(pc2) > h1y AND hand2y(pc2) < l2y THEN
                    IF razers%(pc1) > 0 THEN
                        n% = 10
                        bgcolor% = 15
                    ELSE
                        bgcolor% = 4
                    END IF
                    IF position%(po1) <> 99 THEN health%(po1) = health%(po1) - ((ahpow%(pc1) + n%) * 3)
                    ko(po1) = ko(po1) - akpow%(pc1) * 2

                    buttv(po1) = 2
                    neckh(po1) = -d%(pc1)
                    necky(po1) = necky(po1) + 3
                    heady(po1) = 4
                    position%(po1) = 8
                    IF body%(pc1) = 666 THEN particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 21, 5: health%(po1) = health%(po1) - 50
                    particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 3, 5
                    particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 4, 5
                    particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 9, 5
                END IF
            END IF

            'Return Position
            IF pticker%(pc1) = 10 THEN
                position%(pc1) = 1
                elbow2h(pc1) = -1
                hand2v(pc1) = 1
            END IF


            'Effects
            IF pticker%(pc1) > 8 THEN
                psline (neckx(pc2) + (7 * d%(pc1))), (necky(pc2) + 5), (fighterz(pc1)), (neckx(pc2) + (4 * d%(pc1))), (necky(pc2) - 7), (fighterz(pc1)), (15), 3
                psline (neckx(pc2) + (5 * d%(pc1))), (necky(pc2) - 3), (fighterz(pc1)), (neckx(pc2) - (4 * d%(pc1))), (necky(pc2) - 10), (fighterz(pc1)), (15), 3
            END IF

            '---------------------------------------------------------------- Thrust Slam
        CASE IS = 37

            'Draw Back
            IF pticker%(pc1) < 6 THEN
                elbow1h(pc1) = -1
                elbow1v(pc1) = -.5
                hand1x(pc1) = 1
                hand1y(pc1) = -1
            END IF

            'Jab
            IF pticker%(pc1) = 6 THEN
                IF ko(pc1) > 10 THEN
                    ko(pc1) = ko(pc1) - 5
                    fighterfreeze (pc1)
                    elbow1x(pc1) = 3
                    elbow1y(pc1) = 6
                    hand1x(pc1) = 4
                    hand1y(pc1) = 0
                    neckx(pc1) = 4
                    necky(pc1) = -7
                    neckv(pc1) = -.2
                ELSE
                    fighterfreeze (pc1)
                    position%(pc1) = 1
                END IF
            END IF

            elbow2x(pc1) = elbow1x(pc1)
            elbow2y(pc1) = elbow1y(pc1) - 4
            hand2x(pc1) = hand1x(pc1)
            hand2y(pc1) = hand1y(pc1)


            'Detect hit
            IF pticker%(pc1) = 7 THEN
                fighterfreeze (pc1)

                IF hand1x(pc2) > m1x - 4 AND hand1x(pc2) < m2x + 4 AND hand1y(pc2) > h1y AND hand1y(pc2) < l2y THEN
                    IF razers%(pc1) > 0 THEN
                        particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 23, 20
                        health%(po1) = health%(po1) - 25
                        bgcolor% = 15
                        soundticker% = 0: sbfx 17
                    ELSE
                        bgcolor% = 1
                        sbfx 11
                    END IF

                    IF position%(po1) <> 99 THEN
                        ko(po1) = ko(po1) - akpow%(pc1) * 3
                        canjump%(po1) = 0
                        butth(po1) = d%(pc1) * (akpow%(pc1) * 2)
                        position%(po1) = 15
                    ELSE
                        canjump%(pc1) = 0
                        butth(pc1) = -d%(pc1) * (akpow%(pc1) * 1.5)
                        position%(pc1) = 1
                    END IF

                    particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 22, 10
                END IF
            END IF

            'Return Position
            IF pticker%(pc1) >= 12 THEN
                position%(pc1) = 1
                elbow1h(pc1) = -1
                hand1v(pc1) = 1
            END IF


            'Effects
            IF pticker%(pc1) > 6 AND pticker%(pc1) < 8 THEN
                psline (neckx(pc2) - (8 * d%(pc1))), (necky(pc2) + 2), (fighterz(pc1)), (neckx(pc2) + (6 * d%(pc1))), (necky(pc2) + 3), (fighterz(pc1)), (15), 3
                psline (neckx(pc2) - (8 * d%(pc1))), (necky(pc2) + 7), (fighterz(pc1)), (neckx(pc2) + (6 * d%(pc1))), (necky(pc2) + 6), (fighterz(pc1)), (15), 3
            END IF






            '-------------------------------------------------------------- Rising Dragon
        CASE IS = 38
            IF pticker%(pc1) = 1 THEN
                fighterfreeze (pc1)
                neckx(pc1) = 5
                necky(pc1) = -5
                elbow2x(pc1) = 1

                elbow1x(pc1) = -3
                elbow1y(pc1) = 5
                hand1x(pc1) = 0
                hand1y(pc1) = 4

                nee1x(pc1) = 4
                foot1x(pc1) = -1
                nee1y(pc1) = 1
                foot1y(pc1) = 7
                nee1v(pc1) = -.5
            END IF


            IF pticker%(pc1) > 1 AND buttv(pc1) <= 0 THEN

                IF neckx(pc1) > 0 THEN neckh(pc1) = -2 ELSE neckx(pc1) = 0: neckh(pc1) = 0
                nee2x(pc1) = 0
                foot2x(pc1) = -1
                nee2y(pc1) = 8
                foot2y(pc1) = 7

                headx(pc1) = 0
                elbow2x(pc1) = 3
                hand2x(pc1) = 0
                hand2y(pc1) = -3
                IF elbow2y(pc1) > -5 THEN elbow2v(pc1) = -2 ELSE elbow2v(pc1) = 0
                butth(pc1) = butth(pc1) / 1.5
            END IF

            IF pticker%(pc1) = 4 THEN
                canjump%(pc1) = 1
                jump (pc1), (1)
                butth(pc1) = d%(pc1) * 5
            END IF

            'Detect Hit(s)
            IF pticker%(pc1) = 4 OR pticker%(pc1) = 7 OR pticker%(pc1) = 9 OR pticker%(pc1) = 12 OR pticker%(pc1) = 15 THEN

                IF ko(pc1) < 5 THEN
                    fall (pc1)
                    butth(pc1) = 0
                    buttv(pc1) = 0
                ELSE
                    ko(pc1) = ko(pc1) - 1
                    IF hand2x(pc2) > m1x - 7 AND hand2x(pc2) < m2x + 7 AND hand2y(pc2) > h1y - 10 AND hand2y(pc2) < l2y + 10 THEN

                        IF position%(po1) = 99 THEN
                            pticker%(po1) = 1
                        ELSE
                            soundticker% = 0: sbfx 11
                            IF razers%(pc1) > 0 THEN n% = 10: bgcolor% = 4: particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 21, 15: soundticker% = 0: sbfx 17
                            health%(po1) = health%(po1) - (ahpow%(pc1) + n%)
                            position%(po1) = 10
                            particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 2, 5
                            ko(po1) = ko(po1) - (akpow%(pc1) * 2)
                        END IF


                        IF health%(po1) <= 0 THEN decap (po1)
                        butth(pc1) = d%(pc1) / 3
                        buttv(po1) = buttv(pc1) - 1
                        particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 6, 5
                        IF pticker%(pc1) = 15 THEN IF position%(po1) <> 99 THEN fall (po1) ELSE butth(po1) = butth(po1) - d%(po1)
                    END IF
                END IF
            END IF

            'Effects
            particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 19, 1
            psline (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), (hand2x(pc2) - (butth(pc1) * 5)), (hand2y(pc2) - (buttv(pc1) * 5)), (fighterz(pc1)), flash1%, 0

            'Return Position
            IF pticker%(pc1) >= 15 THEN
                position%(pc1) = 1
                nee1v(pc1) = 2
            END IF


            '--------------------------------------------------------------- Stun Knuckle
        CASE IS = 39

            'Draw Back
            IF pticker%(pc1) < 6 THEN
                elbow1h(pc1) = -1
                elbow1v(pc1) = -.5
                hand1x(pc1) = 1
                hand1y(pc1) = -1
            END IF

            'Stun Knuckle
            IF pticker%(pc1) = 6 THEN
                IF ko(pc1) > 6 THEN
                    ko(pc1) = ko(pc1) - 4
                    fighterfreeze (pc1)
                    hand1x(pc1) = 4
                    elbow1x(pc1) = 4
                    hand1y(pc1) = 1
                    elbow1y(pc1) = -1
                    neckx(pc1) = 4
                ELSE
                    fighterfreeze (pc1)
                    position%(pc1) = 1
                END IF
            END IF

            'Detect hit
            IF pticker%(pc1) = 7 THEN
                fighterfreeze (pc1)

                IF hand1x(pc2) > m1x - 2 AND hand1x(pc2) < m2x + 2 AND hand1y(pc2) > h1y - 4 AND hand1y(pc2) < l2y THEN
                    IF razers%(pc1) > 0 THEN
                        n% = 10
                        bgcolor% = 12
                        health%(po1) = health%(po1) - (ahpow%(pc1) * 5)
                    ELSE
                        bgcolor% = 4
                    END IF

                    IF position%(po1) <> 99 THEN
                        ko(po1) = ko(po1) - (akpow%(pc1) * 4)
                        position%(po1) = 15
                        fighterfreeze (po1)
                        particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 6, 10
                        sbfx 8
                    ELSE
                        bgcolor% = 0
                    END IF
                ELSE
                    position%(pc1) = 1
                END IF

            END IF

            'Return Position
            IF pticker%(pc1) >= 8 THEN
                position%(pc1) = 1
                elbow1x(pc1) = 2
            END IF

            'Effects
            IF pticker%(pc1) > 4 THEN
                pscircle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1) + .1), 2, flash1%
                pscircle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1) + .1), 1, flash2%
            END IF


            '----------------------------------------------------------------- Plant Kick
        CASE IS = 40

            IF pticker%(pc1) = 1 THEN
                IF canjump%(pc1) = 1 THEN
                    fighterfreeze (pc1)
                    nee1y(pc1) = -2
                    nee2y(pc1) = 0
                    hand2h(pc1) = -1
                    hand2v(pc1) = 1
                ELSE
                    position%(pc1) = 1
                END IF
            END IF


            IF pticker%(pc1) = 4 THEN
                IF ko(pc1) > 10 THEN
                    ko(pc1) = ko(pc1) - 10
                    sbfx 4
                ELSE
                    fighterfreeze (pc1)
                    position%(pc1) = 1
                END IF
            END IF

            IF pticker%(pc1) > 3 THEN
                psline (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), (neckx(pc2) + ((RND - .5) * 5)), (butty(pc1) + RND * 5), (fighterz(pc1)), (flash1%), 0
                psline (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), (neckx(pc2) + ((RND - .5) * 5)), (butty(pc1) + RND * 5), (fighterz(pc1)), (flash2%), 0
            END IF


            IF pticker%(pc1) = 5 THEN

                IF buttx(pc1) > buttx(po1) THEN d%(pc1) = -1 ELSE d%(pc1) = 1
                fighterfreeze (pc1)

                headx(pc1) = headx(pc1) - 2

                IF foot1y(pc1) > foot2y(pc1) THEN elbow2y(pc1) = foot1y(pc1) / 2 ELSE elbow2y(pc1) = foot2y(pc1) / 2
                hand2y(pc1) = elbow2y(pc1) + 1

                elbow1x(pc1) = 1
                elbow1y(pc1) = -6
                hand1x(pc1) = 5
                hand1y(pc1) = -2

                elbow2x(pc1) = -3
                hand2x(pc1) = -2

                buttx(pc1) = buttx(pc1) + 7 * d%(pc1)
                butty(pc1) = butty(pc1) - (elbow2y(pc1) * 2)
                neckx(pc1) = -7
                necky(pc1) = 7

                nee1x(pc1) = 5
                nee1y(pc1) = -7
                foot1x(pc1) = 5
                foot1y(pc1) = -6

                nee2x(pc1) = 0
                nee2y(pc1) = 5
                foot2x(pc1) = 5
                foot2y(pc1) = -6
            END IF

            'Detect Hit
            IF pticker%(pc1) = 6 AND buttx(pc1) > neckx(po2) - 13 AND buttx(pc1) < neckx(po2) + 13 AND heady(po2) - 4 < foot2y(pc2) AND foot2y(pc2) < l2y THEN
                IF position%(po1) <> 99 THEN
                    soundticker% = 0: sbfx 11
                    health%(po1) = health%(po1) - lhpow%(pc1) * 2
                    ko(po1) = ko(po1) - lkpow%(pc1) * 7
                    particle (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), 1, 5
                    fall (po1)
                END IF
                buttv(po1) = -10
                butth(po1) = (1 + lhpow%(pc1) * d%(pc1))
                particle (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), 5, 8
            END IF


            'return position
            IF pticker%(pc1) >= 12 THEN
                position%(pc1) = 1
                nee2y(pc1) = hand2y(pc1)
                foot2y(pc1) = hand2y(pc1)
                foot2h(pc1) = -2
                neckh(pc1) = 2
                neckv(pc1) = -3
                elbow1h(pc1) = -1
                elbow1v(pc1) = 1
                nee1v(pc1) = 1
                foot1h(pc1) = -2
                foot1v(pc1) = 2
                hand2h(pc1) = .5
            END IF


            'Zero G
            IF pticker%(pc1) > 4 THEN buttv(pc1) = -gravity





            '------------------------------------------------------------------- Axe Kick
        CASE IS = 41

            IF pticker%(pc1) = 1 THEN
                fighterfreeze (pc1)
                IF ko(pc1) > 10 AND canjump%(pc1) = 1 THEN
                    ko(pc1) = ko(pc1) - 5
                    butth(pc1) = d%(pc1)
                    sbfx 2
                    neckh(pc1) = -1
                ELSE
                    position%(pc1) = 1
                END IF
            END IF


            SELECT CASE pticker%(pc1)

                CASE 2
                    sbfx 2
                    nee2x(pc1) = 1
                    foot2x(pc1) = -1
                    neckx(pc1) = -1
                    foot1v(pc1) = 3

                    nee1x(pc1) = 3
                    nee1y(pc1) = -6
                    foot1x(pc1) = 3
                    foot1y(pc1) = -6

                CASE 4
                    neckh(pc1) = 0
                    nee1x(pc1) = 6
                    nee1y(pc1) = -1
                    foot1x(pc1) = 6
                    foot1y(pc1) = -1

                CASE 6
                    foot1v(pc1) = 0
                    nee1x(pc1) = 5
                    nee1y(pc1) = 5
                    foot1x(pc1) = 5
                    foot1y(pc1) = 5
            END SELECT


            'Detect Hit
            IF pticker%(pc1) > 2 AND pticker%(pc1) < 7 THEN
                IF foot1x(pc2) > l1x AND foot1x(pc2) < l2x AND foot1y(pc2) > h1y AND foot1y(pc2) < l2y THEN
                    soundticker% = 0: sbfx 11
                    health%(po1) = health%(po1) - lhpow%(pc1)
                    ko(po1) = ko(po1) - lkpow%(pc1)
                    particle (foot1x(pc2) + 5), (foot1y(pc2)), (fighterz(pc1)), 1, 5
                    butth(po1) = butth(pc1)
                    position%(po1) = 1
                END IF
            END IF



            'Return Position
            IF pticker%(pc1) = 7 THEN
                foot1x(pc1) = -1
                position%(pc1) = 1
            END IF

            'Effects
            particle (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), 19, 1


            '---------------------------------------------------------- Stunning Gut Stab
        CASE IS = 42

            IF pticker%(pc1) = 1 THEN
                d%(pc1) = -d%(pc1)
                sbfx 3
                IF ko(pc1) > 10 THEN
                    ko(pc1) = ko(pc1) - 5
                ELSE
                    position%(pc1) = 1
                END IF
            END IF

            IF pticker%(pc1) > 1 AND pticker%(pc1) < 8 THEN
                nee1x(pc1) = -6
                nee1y(pc1) = -1
                foot1x(pc1) = -6
                foot1y(pc1) = -1
                nee2x(pc1) = 0
                foot2x(pc1) = 0
            END IF

            IF foot1x(pc2) > l1x AND foot1x(pc2) < l2x AND foot1y(pc2) > h1y AND foot1y(pc2) < l2y THEN
                sbfx 11
                health%(po1) = health%(po1) - 1
                ko(po1) = ko(po1) - 1
                IF buttx(pc1) < buttx(po1) THEN particle (foot1x(pc2) + 5), (foot1y(pc2)), (fighterz(pc1)), 4, 3 ELSE particle (foot1x(pc2) - 5), (foot1y(pc2)), (fighterz(pc1)), 3, 3
                position%(po1) = 15
            END IF


            IF pticker%(pc1) = 8 THEN
                nee1h(pc1) = 1
                nee1v(pc1) = .5
                neckx(pc1) = .5

            END IF


            'Return Position
            IF pticker%(pc1) = 15 THEN
                d%(pc1) = -d%(pc1)
                position%(pc1) = 1
                sbfx 1
            END IF

            '---------------------------------------------------------- Thrust Roundhouse
        CASE IS = 43

            'Draw Back
            IF pticker%(pc1) = 1 THEN

                fighterfreeze (pc1)
                combo%(pc1) = 0

                IF ko(pc1) > 10 THEN
                    butth(pc1) = butth(pc1) + (d%(pc1) * 3)
                    buttv(pc1) = buttv(pc1) - 1.5
                END IF

                elbow1y(pc1) = elbow1y(pc1) - 4
                elbow2y(pc1) = elbow2y(pc1) - 4

                neckx(pc1) = 5
                necky(pc1) = -5
                buttx(pc1) = buttx(pc1) + (d%(pc1) * 2)

                nee1x(pc1) = 5
                nee1y(pc1) = 4
                foot1x(pc1) = -4
                foot1y(pc1) = 3

            END IF


            'Begin Kick
            IF pticker%(pc1) = 5 THEN

                IF ko(pc1) > 10 THEN
                    ko(pc1) = ko(pc1) - 6
                    nee2h(pc1) = 2
                    nee2v(pc1) = -2
                    foot2h(pc1) = -1
                    foot2v(pc1) = -1
                ELSE
                    position%(pc1) = 1
                END IF
            END IF

            IF pticker%(pc1) = 8 THEN
                fighterfreeze (pc1)

                elbow1x(pc1) = elbow1x(pc1) + 2

                hand2y(pc1) = hand2y(pc1) + 2
                elbow2y(pc1) = elbow2y(pc1) + 2

                nee2x(pc1) = 6
                nee2y(pc1) = 1

                foot2x(pc1) = 5
                foot2y(pc1) = 1
            END IF

            'Detect Hit
            IF pticker%(pc1) > 7 AND combo%(pc1) = 0 AND foot2x(pc2) > l1x AND foot2x(pc2) < l2x AND foot2y(pc2) > h1y AND foot2y(pc2) < l2y THEN
                health%(po1) = health%(po1) - lhpow%(pc1) * 3
                ko(po1) = ko(po1) - lkpow%(pc1) * 4
                particle (foot2x(pc2)), (foot2y(pc2)), (fighterz(pc1)), 3, 5
                particle (foot2x(pc2)), (foot2y(pc2)), (fighterz(pc1)), 4, 5
                soundticker% = 0: sbfx 11
                butth(po1) = butth(pc1) / 2
                fall po1
            END IF

            IF pticker%(pc1) > 9 THEN
                fighterfreeze (pc1)

                nee2h(pc1) = -1
                nee2v(pc1) = 1
                foot2h(pc1) = -2
                foot2v(pc1) = 1

                position%(pc1) = 1
            END IF


            'Zero G
            buttv(pc1) = buttv(pc1) - gravity


            'Effects
            particle (foot2x(pc2)), (foot2y(pc2)), (fighterz(pc1)), 19, 1


            '------------------------------------------------------------- Slasher Strike
        CASE IS = 44

            IF pticker%(pc1) = 1 THEN
                fighterfreeze (pc1)
                neckx(pc1) = 0
                neckh(pc1) = -.5
                buttx(pc1) = buttx(pc1) + (d%(pc1) * 2)

                nee1x(pc1) = 0
                foot1x(pc1) = 0

                IF foot1y(pc1) < 1 OR nee1y(pc1) > 3 THEN
                    nee1y(pc1) = 8
                    foot1y(pc1) = 7
                END IF

                elbow1h(pc1) = -.5
                elbow2h(pc1) = .5
                elbow2v(pc1) = -.5
            END IF


            IF pticker%(pc1) = 5 THEN
                IF ko(pc1) > 20 THEN
                    ko(pc1) = ko(pc1) - 15
                    nee2h(pc1) = 2
                    nee2v(pc1) = -2
                    foot2h(pc1) = -1
                    foot2v(pc1) = -1
                ELSE
                    position%(pc1) = 10
                END IF
            END IF



            IF pticker%(pc1) = 8 THEN
                sbfx 4
                fighterfreeze (pc1)

                elbow1x(pc1) = elbow1x(pc1) + 2
                elbow1y(pc1) = elbow1y(pc1) - 2

                hand2y(pc1) = hand2y(pc1) + 2
                elbow2y(pc1) = elbow2y(pc1) + 2

                nee2x(pc1) = 5
                nee2y(pc1) = 0


                foot2x(pc1) = 5
                foot2y(pc1) = 0
            END IF

            'Slash Effect
            IF pticker%(pc1) > 8 THEN
                psline (foot2x(pc2) - 15), (foot2y(pc2)), (fighterz(pc1)), (foot2x(pc2) + 15), (foot2y(pc2)), (fighterz(pc1)), (flash2%), 0
            END IF


            'Detect Hit
            IF pticker%(pc1) = 9 AND foot2x(pc2) > l1x - 10 AND foot2x(pc2) < l2x + 10 AND foot2y(pc2) > h1y AND foot2y(pc2) < l2y THEN
                psline (buttx(po1) - 100), (foot2y(pc2)), (fighterz(pc1)), (buttx(po1) + 100), (foot2y(pc2)), (fighterz(pc1)), (15), 0
                health%(po1) = health%(po1) - lhpow%(pc1) * 4
                soundticker% = 0: sbfx 17
                ko(po1) = ko(po1) - lkpow%(pc1) * 4
                particle (buttx(po1)), (foot2y(pc2)), (fighterz(pc1)), 21, 10
                position%(po1) = 15
            END IF


            IF pticker%(pc1) > 9 THEN
                fighterfreeze (pc1)

                neckh(pc1) = .5
                nee2h(pc1) = -1
                nee2v(pc1) = 1
                foot2h(pc1) = -2
                foot2v(pc1) = 1

                position%(pc1) = 1
            END IF

            'Effects
            psline (foot2x(pc2) - 1), (foot2y(pc2)), (fighterz(pc1) - .1), (foot2x(pc2) + 1), (foot2y(pc2)), (fighterz(pc1) - .1), (flash2%), 0



            '------------------------------------------------------------------- Nee Bash
        CASE IS = 45

            'Attempt head grab
            IF pticker%(pc1) = 1 THEN
                fighterfreeze (pc1)
                elbow1x(pc1) = 3
                elbow1y(pc1) = -1
                hand1x(pc1) = 3
                hand1y(pc1) = -2
            END IF

            'Detect head grab
            IF pticker%(pc1) = 2 THEN
                IF position%(po1) <> 99 AND ko(pc1) > 15 AND hand1x(pc2) > h1x AND hand1x(pc2) < h2x AND hand1y(pc2) > h1y AND hand1y(pc2) < h2y THEN
                    sbfx 13
                    ko(pc1) = ko(pc1) - 10
                    combol%(pc1) = sdelay%(po1) * 3
                    fighterfreeze (po1)
                ELSE
                    position%(pc1) = 1
                END IF
            END IF


            'Bashing
            IF pticker%(pc1) > 2 THEN
                position%(po1) = 1
                elbow1v(pc1) = -.6
                hand1v(pc1) = -.8

                'hit
                IF elbow1y(pc1) < -2 THEN
                    elbow1y(pc1) = 4: hand1y(pc1) = 5
                    health%(po1) = health%(po1) - ahpow%(pc1)
                    ko(po1) = ko(po1) - akpow%(pc1)
                    health%(po1) = health%(po1) - lhpow%(pc1)
                    ko(po1) = ko(po1) - lkpow%(pc1)
                    soundticker% = 0: sbfx 9
                    IF buttx(pc1) < buttx(po1) THEN particle (hand1x(pc2)), (butty(pc1)), (fighterz(po1)), 3, 3 ELSE particle (hand1x(pc2)), (butty(pc1)), (fighterz(po1)), 4, 3
                END IF

                elbow2y(pc1) = 3 - elbow1y(pc1) / 2
                necky(pc1) = -10 + elbow1y(pc1) / 5
                nee2x(pc1) = elbow1y(pc1) + 2
                nee2y(pc1) = -elbow1y(pc1)
                neckx(po1) = nee2x(pc1)
                necky(po1) = -7 + elbow1y(pc1) + hand1y(pc1)


                'Return position
                IF combol%(pc1) <= 0 THEN
                    position%(pc1) = 1
                    butth(pc1) = -d%(pc1)
                    elbow1h(pc1) = -.5
                    elbow1y(pc1) = .5
                END IF
            END IF



            '------------------------------------------------------- Lightning Kick Blast
        CASE IS = 46

            IF pticker%(pc1) = 1 THEN
                fighterfreeze (pc1)
            END IF

            IF pticker%(pc1) < 10 THEN
                sbfx 16
                neckx(pc1) = -3 - RND
                necky(pc1) = -7 + RND

                r1 = (RND * 3) + 2
                r2 = (RND - .5) * 15
                nee1x(pc1) = r1
                nee1y(pc1) = r2
                foot1x(pc1) = r1
                foot1y(pc1) = r2

                'Detect Hit(s)
                IF foot1x(pc2) > l1x AND foot1x(pc2) < l2x AND foot1y(pc2) > h1y AND foot1y(pc2) < l2y THEN
                    ko(po1) = ko(po1) - lkpow%(pc1)
                    position%(po1) = 1
                    particle (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), 9, 5
                END IF
            END IF



            IF pticker%(pc1) = 10 THEN
                soundticker% = 0: sbfx 11
                d%(pc1) = -d%(pc1)
                neckx(pc1) = 5
                necky(pc1) = -2
                nee1x(pc1) = -6
                nee1y(pc1) = 0
                foot1x(pc1) = -6
                foot1y(pc1) = 0
            END IF

            'Detect Blast
            IF pticker%(pc1) = 11 AND foot1x(pc2) > l1x AND foot1x(pc2) < l2x AND foot1y(pc2) > h1y AND foot1y(pc2) < l2y THEN
                health%(po1) = health%(po1) - lhpow%(pc1) * 5
                ko(po1) = ko(po1) - lkpow%(pc1) * 2
                particle (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), 1, 5
                butth(po1) = (lkpow%(pc1) * -d%(pc1))
                neckx(po1) = 5
                necky(po1) = -5
                nee1x(po1) = 5
                foot1x(po1) = 5
                fall (po1)
            END IF


            'Effects
            IF pticker%(pc1) > 9 THEN
                psline (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), (neckx(pc2) + ((RND - .5) * 5)), (butty(pc1) + (RND - .5) * 8), (fighterz(pc1)), (flash1%), 0
                psline (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), (neckx(pc2) + ((RND - .5) * 5)), (butty(pc1) + (RND - .5) * 5), (fighterz(pc1)), (flash2%), 0
            END IF


            'Return position
            IF pticker%(pc1) = 13 THEN
                position%(pc1) = 1
            END IF

            '--------------------------------------------------------------------- 6-Slip
        CASE IS = 47
            IF ko(pc1) < 15 THEN position%(pc1) = 1

            IF pticker%(pc1) = 1 THEN ds%(pc1) = d%(pc1): ds%(po1) = d%(po1)

            IF pticker%(pc1) < 5 THEN fighterz(pc1) = fighterz(pc1) - .1

            butth(pc1) = d%(pc1) * 2

            IF buttx(pc1) > buttx(po1) - 10 AND buttx(pc1) < buttx(po1) + 10 AND canjump%(po1) = 1 THEN
                d%(po1) = ds%(po1)
                pticker%(po1) = 0
            END IF

            'return position
            IF pticker%(pc1) = 8 THEN position%(pc1) = 1: d%(pc1) = -ds%(pc1): ko(pc1) = ko(pc1) - 5


            '------------------------------------------------------------------ Skip Kick
        CASE IS = 48

            IF pticker%(pc1) = 1 THEN
                sbfx 3
                IF ko(pc1) > 10 AND canjump%(pc1) = 1 THEN
                    ko(pc1) = ko(pc1) - 5
                    buttv(pc1) = -5
                    butth(pc1) = d%(pc1) * 2
                ELSE
                    position%(pc1) = 1
                END IF
            END IF

            IF pticker%(pc1) = 9 THEN d%(pc1) = -d%(pc1)

            IF pticker%(pc1) > 10 AND pticker%(pc1) < 13 THEN
                nee1x(pc1) = -6
                nee1y(pc1) = -1
                foot1x(pc1) = -6
                foot1y(pc1) = -1
                nee2x(pc1) = 0
                foot2x(pc1) = 0
            END IF

            'Detect Hit
            IF pticker%(pc1) > 9 AND pticker%(pc1) < 13 THEN
                IF foot1x(pc2) > l1x AND foot1x(pc2) < l2x AND foot1y(pc2) > h1y AND foot1y(pc2) < l2y THEN
                    sbfx 11
                    health%(po1) = health%(po1) - akpow%(pc1) * 3
                    ko(po1) = ko(po1) - lkpow%(pc1) * 3
                    IF buttx(pc1) < buttx(po1) THEN particle (foot1x(pc2) + 5), (foot1y(pc2)), (fighterz(pc1)), 4, 3 ELSE particle (foot1x(pc2) - 5), (foot1y(pc2)), (fighterz(pc1)), 3, 3
                    butth(po1) = butth(pc1)
                END IF
            END IF

            IF pticker%(pc1) = 13 THEN
                nee1h(pc1) = 1
                nee1v(pc1) = .5
                neckx(pc1) = .5
            END IF


            'Return Position
            IF pticker%(pc1) = 18 THEN
                d%(pc1) = -d%(pc1)
                position%(pc1) = 1
                sbfx 1
            END IF






            '-------------------------------------------------------------- Upper Assault
        CASE IS = 49
            IF pticker%(pc1) = 1 THEN
                fighterfreeze (pc1)
                neckx(pc1) = 5
                necky(pc1) = -5
                elbow2x(pc1) = 1

                elbow1x(pc1) = -3
                elbow1y(pc1) = 5
                hand1x(pc1) = 0
                hand1y(pc1) = 4

                nee1x(pc1) = 4
                foot1x(pc1) = -1
                nee1y(pc1) = 1
                foot1y(pc1) = 7
                nee1v(pc1) = -.5

                nee2x(pc1) = 4
                nee2v(pc1) = -.5

            END IF


            IF pticker%(pc1) > 1 AND buttv(pc1) <= 0 THEN

                IF neckx(pc1) > 0 THEN neckh(pc1) = -2 ELSE neckx(pc1) = 0: neckh(pc1) = 0
                nee2x(pc1) = 0
                foot2x(pc1) = -1
                nee2y(pc1) = 8
                foot2y(pc1) = 7

                nee1x(pc1) = 2
                nee1y(pc1) = -4
                foot1x(pc1) = 2
                foot1y(pc1) = -5


                headx(pc1) = 0
                elbow1x(pc1) = -1
                elbow2x(pc1) = -1
                elbow1y(pc1) = 3
                elbow2y(pc1) = 3
                hand1x(pc1) = 2
                hand2x(pc1) = 2
                hand1y(pc1) = 3
                hand2y(pc1) = 3

                butth(pc1) = butth(pc1) / 1.5
            END IF

            IF pticker%(pc1) = 4 THEN
                canjump%(pc1) = 1
                jump (pc1), (1)
                butth(pc1) = d%(pc1) * 5
            END IF


            'Detect Hit(s)
            IF pticker%(pc1) = 4 OR pticker%(pc1) = 7 OR pticker%(pc1) = 9 OR pticker%(pc1) = 12 OR pticker%(pc1) = 15 THEN

                IF ko(pc1) < 5 THEN
                    fall (pc1)
                    butth(pc1) = 0
                    buttv(pc1) = 0
                ELSE
                    ko(pc1) = ko(pc1) - 1
                    IF foot1x(pc2) > m1x - 7 AND foot1x(pc2) < m2x + 7 AND foot1y(pc2) > h1y - 10 AND foot1y(pc2) < l2y + 10 THEN

                        IF position%(po1) = 99 THEN
                            pticker%(po1) = 1
                        ELSE
                            soundticker% = 0: sbfx 11
                            position%(po1) = 10
                            particle (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), 2, 5
                            ko(po1) = ko(po1) - (lkpow%(pc1) * 2)
                            health%(po1) = health%(po1) - (lhpow%(pc1) + n%)
                        END IF


                        butth(pc1) = d%(pc1) / 3
                        buttv(po1) = buttv(pc1) - 1
                        particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 6, 5
                        IF pticker%(pc1) = 15 THEN IF position%(po1) <> 99 THEN fall (po1) ELSE butth(po1) = butth(po1) - d%(po1)
                    END IF
                END IF
            END IF

            'Effects
            particle (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), 19, 1
            psline (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), (foot1x(pc2) - (butth(pc1) * 5)), (foot1y(pc2) - (buttv(pc1) * 5)), (fighterz(pc1)), flash1%, 0

            'Return Position
            IF pticker%(pc1) = 15 THEN
                position%(pc1) = 1
                nee1v(pc1) = 2
            END IF





            'SUPERS ============================================================== SUPERS`

            '---------------------------------------------------------------- Vex of Evil
        CASE IS = 81

            IF pticker%(pc1) = 1 THEN
                IF canjump%(pc1) = 1 THEN
                    fighterfreeze (pc1)

                    hand1h(pc1) = (RND - .5) / 10
                    hand1v(pc1) = (RND - .5) / 10
                    hand2h(pc1) = (RND - .5) / 10
                    hand2v(pc1) = (RND - .5) / 10
                    elbow1h(pc1) = (RND - .5) / 10
                    elbow1v(pc1) = (RND - .5) / 10
                    elbow2h(pc1) = (RND - .5) / 10
                    elbow2v(pc1) = (RND - .5) / 10
                ELSE
                    position%(pc1) = 1
                END IF
            END IF

            rage(pc1) = rage(pc1) - 1.5
            IF pticker%(pc1) < 40 THEN
                particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 19, 1
                particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 19, 1
            END IF

            IF elbow1x(pc1) > 1 THEN elbow1h(pc1) = elbow1h(pc1) - .2 ELSE elbow1h(pc1) = elbow1h(pc1) + .2
            IF elbow1y(pc1) > 4 THEN elbow1v(pc1) = elbow1v(pc1) - .2 ELSE elbow1v(pc1) = elbow1v(pc1) + .2
            IF elbow2x(pc1) > 1 THEN elbow2h(pc1) = elbow2h(pc1) - .2 ELSE elbow2h(pc1) = elbow2h(pc1) + .2
            IF elbow2y(pc1) > 4 THEN elbow2v(pc1) = elbow2v(pc1) - .2 ELSE elbow2v(pc1) = elbow2v(pc1) + .2

            IF hand1x(pc1) > 1 THEN hand1h(pc1) = hand1h(pc1) - .2 ELSE hand1h(pc1) = hand1h(pc1) + .2
            IF hand1y(pc1) > -2 THEN hand1v(pc1) = hand1v(pc1) - .2 ELSE hand2v(pc1) = hand1v(pc1) + .2
            IF hand2x(pc1) > 1 THEN hand2h(pc1) = hand2h(pc1) - .2 ELSE hand2h(pc1) = hand2h(pc1) + .2
            IF hand2y(pc1) > -2 THEN hand2v(pc1) = hand2v(pc1) - .2 ELSE hand2v(pc1) = hand2v(pc1) + .2


            'Vex and Return Position
            IF pticker%(pc1) >= 75 THEN
                rage(po1) = rage(po1) * .75
                vexed%(po1) = 1
                position%(pc1) = 1
                particle (neckx(po2)), (necky(po2)), fighterz(po1), 26, 25
            END IF




            '--------------------------------------------------------------- Energy Blast
        CASE IS = 82

            fighterfreeze (pc1)
            IF head%(pc1) <> 1998 THEN rage(pc1) = 0

            IF neckx(pc1) > 2 THEN neckv(pc1) = -.2 ELSE neckv(pc1) = .2
            IF necky(pc1) > -7 THEN neckv(pc1) = -.2 ELSE neckv(pc1) = .2
            IF hand1x(pc1) > -1 THEN hand1h(pc1) = -.2 ELSE hand1h(pc1) = .2
            IF hand2x(pc1) > 1 THEN hand2h(pc1) = -.2 ELSE hand2h(pc1) = .2
            IF hand1y(pc1) > 2 THEN hand1v(pc1) = -.2 ELSE hand1v(pc1) = .2
            IF hand2y(pc1) > 3 THEN hand2v(pc1) = -.2 ELSE hand2v(pc1) = .2
            IF elbow2x(pc1) > -6 THEN elbow2h(pc1) = -.2 ELSE elbow2h(pc1) = .2

            IF pticker%(pc1) > sdelay%(pc1) AND projectile%(1 * pc1) = 0 THEN
                IF buttx(pc1) > buttx(po1) THEN d%(pc1) = -1 ELSE d%(pc1) = 1
                IF pc1 = 2 THEN n% = 3
                soundticker% = 0: sbfx 8
                projectile%(1 + n%) = 50
                projectilex(1 + n%) = hand1x(pc2)
                projectiley(1 + n%) = necky(pc2)
                projectileh(1 + n%) = d%(pc1) * 10
                projectilev(1 + n%) = 0
                projectilet%(1 + n%) = 5

                position%(pc1) = 1
                neckx(pc1) = 5
                necky(pc1) = -6

                elbow1x(pc1) = 5
                hand1x(pc1) = 4
                elbow1y(pc1) = 0
                hand1y(pc1) = 0

                elbow2x(pc1) = 5
                hand2x(pc1) = 4
                elbow2y(pc1) = 0
                hand2y(pc1) = 0

                butth(pc1) = butth(pc1) - d%(pc1)
                bgcolor% = 19
            END IF


            x = (hand1x(pc2) + hand2x(pc2)) / 2
            y = (hand1y(pc2) + hand2y(pc2)) / 2

            'Effects
            sbfx 7
            psline (x), (y), (fighterz(pc1)), (x - (RND * 75)), (y + ((RND - .5) * 250)), (fighterz(pc1)), 15, 0
            psline (x), (y), (fighterz(pc1)), (x + (RND * 75)), (y + ((RND - .5) * 250)), (fighterz(pc1)), 15, 0
            pslightning (x), (y), (fighterz(pc1)), (x - (RND * 100)), (y + ((RND - .5) * 200)), (fighterz(pc1)), 75, (flash2%)
            pslightning (x), (y), (fighterz(pc1)), (x + (RND * 100)), (y + ((RND - .5) * 200)), (fighterz(pc1)), 50, (flash2%)
            IF pticker%(pc1) < 10 THEN pscircle (x), (y), (fighterz(pc1)), 200 - (pticker%(pc1) * 20), flash1%
            pscircle (x), (y), (fighterz(pc1)), RND * 5, flash2%
            pscircle (x), (y), (fighterz(pc1)), 2, 15






            '----------------------------------------------------------------- Spear Kick
        CASE IS = 83

            IF pticker%(pc1) = 1 THEN
                fighterfreeze (pc1)
                rage(pc1) = 0
                blur 10
                sbfx 2
                neckx(pc1) = -3
                nee1x(pc1) = 6
                nee1y(pc1) = -1
                foot1x(pc1) = 6
                foot1y(pc1) = -1
                butth(pc1) = d%(pc1) * 5
            END IF

            IF nee1x(pc2) > l1x AND nee1x(pc2) < l2x AND foot1y(pc2) > h1y AND foot1y(pc2) < l2y THEN
                butth(pc1) = 0
                health%(po1) = health%(po1) - 1
                ko(po1) = ko(po1) - .5
                particle (nee1x(pc2)), (nee1y(pc2)), (fighterz(po1)), 18, 1
                buttx(po1) = nee1x(pc2)
                neckx(po1) = ((RND - .5) * 2)
                necky(po1) = -5 - (RND * 3)
                elbow1x(po1) = -3 - (RND * 2)
                elbow2x(po1) = -3 - (RND * 2)
                elbow1y(po1) = 3 - (RND * 2)
                elbow2y(po1) = 3 - (RND * 2)

                hand1x(po1) = -3 + (RND * 2)
                hand2x(po1) = -3 + (RND * 2)
                hand1y(po1) = 3
                hand2y(po1) = 3
                IF pticker%(pc1) < 50 THEN position%(po1) = 15: pticker%(po1) = 1 ELSE butth(po1) = d%(pc1): fall (po1)


            ELSE
                IF pticker%(pc1) > 15 THEN pticker%(pc1) = 50

            END IF


            IF pticker%(pc1) = 50 THEN
                position%(pc1) = 1
                nee1x(pc1) = 2
                foot1x(pc1) = -4
            END IF


            '------------------------------------------------------------------ Health Up
        CASE IS = 84
            rage(pc1) = 0
            health%(pc1) = health%(pc1) + ko(pc1)
            particle (headx(pc2)), (heady(pc2)), (fighterz(pc1)), 25, 25
            position%(pc1) = 1


            '----------------------------------------------------------------- Razer Arms
        CASE IS = 85
            soundticker% = 0: sbfx 16
            particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1) + .2), 6, 5
            particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1) + .2), 5, 5

            particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1) - .2), 6, 5
            particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1) - .2), 5, 5
            razers%(pc1) = 200
            position%(pc1) = 1
            rage(pc1) = 0
            bgcolor% = 19

            '--------------------------------------------------------------- Neck Snapper
        CASE IS = 86

            IF pticker%(pc1) = 1 THEN
                IF canjump%(pc1) = 1 THEN
                    nee1x(pc1) = 2
                    nee2x(pc1) = 2
                    foot1x(pc1) = -2
                    foot2x(pc1) = -2
                    nee1y(pc1) = 5
                    nee2y(pc1) = 5

                    camode% = po1 + 1
                    rage(pc1) = 0
                    buttv(pc1) = -12
                    butth(pc1) = (buttx(po1) - buttx(pc1)) / 20
                ELSE
                    position%(pc1) = 1
                END IF
            END IF


            IF foot1y(pc2) > butty(po1) AND buttv(pc1) > -1 THEN position%(pc1) = 1: camode% = 1

            'Snap
            IF foot1y(pc2) > heady(po2) - 5 AND foot1y(pc2) < necky(po2) + 5 AND buttx(pc1) > neckx(po2) - 5 AND buttx(pc1) < neckx(po2) + 5 THEN
                fighterfreeze (po1)
                buttx(pc1) = neckx(po2)
                butty(pc1) = necky(po2) - 15 + ABS(buttv(pc1))
                elbow2x(pc1) = -5
                elbow1y(pc1) = 0
                elbow2y(pc1) = 0
                hand1y(pc1) = 0
                hand2y(pc1) = 0
                nee1x(pc1) = 4
                nee2x(pc1) = -4
                foot2x(pc1) = -4
                nee1y(pc1) = 8
                nee2y(pc1) = 8
                foot1y(pc1) = 7
                foot2y(pc1) = 7
                buttv(pc1) = -10
                position%(pc1) = 1
                camode% = 1

                IF position%(po1) <> 99 THEN
                    health%(po1) = health%(po1) - 75
                    soundticker% = 0: sbfx 8
                    IF health%(po1) <= 0 THEN decap (po1) ELSE bgcolor% = 15
                    particle (neckx(po2)), (necky(po2)), fighterz(po1), 20, 15
                    particle (neckx(po2)), (necky(po2)), fighterz(po1), 21, 10
                    position%(po1) = 15
                    d%(pc1) = -d%(pc1)
                    butth(pc1) = butth(pc1) / 5
                    buttv(pc1) = -10
                ELSE
                    particle (neckx(po2)), (necky(po2)), fighterz(po1), 8, 25
                    buttv(pc1) = -5
                END IF

            END IF



            '-------------------------------------------------------------- Swizz Punches
        CASE IS = 87
            IF pticker%(pc1) = 1 THEN
                fighterfreeze (pc1)
                rage(pc1) = 0
                hand1x(pc1) = 5
                hand2x(pc1) = 5
                hand1y(pc1) = 0
                hand2y(pc1) = 0
                neckx(pc1) = 5
            END IF

            psline (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), (hand1x(pc2) - (pticker%(pc1) * 1.5 * d%(pc1))), (hand1y(pc2)), (fighterz(pc1) + .5), (flash1%), 0
            psline (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), (hand2x(pc2) - (pticker%(pc1) * 1.5 * d%(pc1))), (hand2y(pc2)), (fighterz(pc1) - .5), (flash2%), 0


            'detect hit(s)
            IF hand1x(pc2) > m1x AND hand1x(pc2) < m2x AND hand1y(pc2) > h1y AND hand1y(pc2) < l2y THEN
                IF position%(po1) = 99 THEN butth(po1) = d%(pc1)
                health%(po1) = health%(po1) - 2
                ko(po1) = ko(po1) - 2
                neckx(po1) = 0
                IF health%(po1) > 0 AND ko(po1) > 0 AND pticker%(pc1) < 20 THEN fighterfreeze (po1): position%(po1) = 15 ELSE butth(po1) = d%(pc1)
                IF buttx(pc1) < buttx(po1) THEN particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 4, 3 ELSE particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 3, 3
                soundticker% = 0: sbfx INT(RND * 3) + 9
            ELSE
                sbfx 25
            END IF

            IF hand2x(pc2) > m1x AND hand2x(pc2) < m2x AND hand2y(pc2) > h1y AND hand2y(pc2) < l2y THEN
                IF position%(po1) = 99 THEN butth(po1) = d%(pc1)
                health%(po1) = health%(po1) - 3
                ko(po1) = ko(po1) - 3
                neckx(po1) = 0
                IF health%(po1) > 0 AND ko(po1) > 0 AND pticker%(pc1) < 20 THEN fighterfreeze (po1): position%(po1) = 15 ELSE butth(po1) = d%(pc1)
                IF buttx(pc1) < buttx(po1) THEN particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 4, 3 ELSE particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 3, 3
                soundticker% = 0: sbfx INT(RND * 3) + 9
            ELSE
                sbfx 25
            END IF


            elbow1x(pc1) = (RND - .5) * 12
            elbow2x(pc1) = (RND - .5) * 12
            elbow1y(pc1) = (RND - .4) * 12
            elbow2y(pc1) = (RND - .4) * 12


            IF pticker%(pc1) = 10 THEN blur 15

            IF pticker%(pc1) = 25 THEN position%(pc1) = 1

            '----------------------------------------------------------------- Upper Bust
        CASE IS = 88

            IF pticker%(pc1) = 1 THEN soundticker% = 0: sbfx 25

            fighterfreeze (pc1)
            rage(pc1) = 0

            elbow2x(pc1) = 3
            elbow2y(pc1) = -5
            hand2x(pc1) = 0
            hand2y(pc1) = -4

            elbow1x(pc1) = -3
            elbow1y(pc1) = 5
            hand1x(pc1) = 0
            hand1y(pc1) = 4

            headx(pc1) = 0
            necky(pc1) = -10
            neckx(pc1) = 1

            nee1x(pc1) = 5
            nee2x(pc1) = -1
            foot1x(pc1) = -1
            foot2x(pc1) = -3

            nee1y(pc1) = 8
            nee2y(pc1) = 8
            foot1y(pc1) = 7
            foot2y(pc1) = 7


            'Detect Hit
            IF pticker%(pc1) = 2 THEN
                particle (hand2x(pc2)), (necky(pc2)), fighterz(pc1), 22, 10
 
                IF hand2x(pc2) > m1x - 8 AND hand2x(pc2) < m2x + 8 AND hand2y(pc2) > h1y - 15 AND hand2y(pc2) < l2y THEN
                    camode% = 0
                    bgcolor% = 15
                    blur 5
                    panh = d%(pc1)
                    panv = 0
                    health%(po1) = health%(po1) - (ahpow%(pc1) * 5)
                    ko(po1) = ko(po1) - 50
                    IF health%(po1) <= 0 THEN decap (po1)
                    buttv(po1) = -31
                    butth(po1) = d%(pc1)
                    position%(po1) = 10
                    COLOR , 15: COLOR , 0
                    particle (hand2x(pc2)), (necky(pc2)), fighterz(pc1), 23, 10
                    FOR wee = 1 TO 80 STEP 5: particle (hand2x(pc2) + ((RND - .5) * 5)), (butty(pc1) - wee), (fighterz(pc1)), 2, 1: NEXT wee
                    soundticker% = 0: sbfx 11
                END IF

            END IF


            IF pticker%(pc1) > 9 AND butty(po1) > butty(pc1) - 25 THEN
                camode% = 1
                position%(pc1) = 1
                elbow2v(pc1) = 2
            END IF


            '---------------------------------------------------------------------- Block
        CASE IS = 99

            fighterfreeze (pc1)

            elbow1x(pc1) = 4
            elbow1y(pc1) = 2
            hand1x(pc1) = 0
            elbow2x(pc1) = 0
            nee1y(pc1) = nee2y(pc1) - 8
            foot1x(pc1) = 0
            neckx(pc1) = 1


            IF pticker%(pc1) > 10 THEN position%(pc1) = 1


            '----------------------------------------------------------------------------
    END SELECT

    IF healths% > 0 AND position%(pc1) < 30 THEN health%(po1) = healths%: ko(po1) = kos

NEXT pc1
END SUB

SUB file

20
SELECT CASE mode%

    '----------------------------------------------------------------------- Load
    CASE IS = 1
        fault$ = "load"
        OPEN path$ + "\slash.dat" FOR INPUT AS #1
        IF setback% = 1 THEN mode% = 3: GOTO 20
        INPUT #1, cmethod%, cfreq%, frameskip%, particles%, nstars%, rez%, delay%, stage%, sbsound%, soundwait%, i16m%, smears%, stagedetail%, fighterdetail%, hudetail%, solidc%, name$(1), flimits%
        IF setback% = 1 THEN mode% = 3: GOTO 20
        INPUT #1, head%(1), body%(1), arms%(1), hands%(1), legs%(1), feet%(1), hairl%(1), hairc%(1), hairt%(1)
        INPUT #1, headc%(1), bodyc%(1), armsc%(1), handsc%(1), legsc%(1), feetc%(1)
        CLOSE #1
        IF stage% > stages% THEN stage% = 1: setfightercpu

        LOCATE 12, 27: PRINT "Loaded"
        LOCATE 13, 27: PRINT "     "
        LOCATE 14, 27: PRINT "         "

        '----------------------------------------------------------------------- Save
        38
    CASE IS = 2
        fault$ = "save1"
        OPEN path$ + "\slash.dat" FOR OUTPUT AS #1
        IF setback% = 1 THEN setback% = 0: GOTO 38
        IF setback% = 2 THEN setback% = 0: GOTO 20
        WRITE #1, cmethod%, cfreq%, frameskip%, particles%, nstars%, rez%, delay%, stage%, sbsound%, soundwait%, i16m%, smears%, stagedetail%, fighterdetail%, hudetail%, solidc%, name$(1), flimits%
        IF setback% = 2 THEN setback% = 0: GOTO 20
        WRITE #1, head%(1), body%(1), arms%(1), hands%(1), legs%(1), feet%(1), hairl%(1), hairc%(1), hairt%(1)
        WRITE #1, headc%(1), bodyc%(1), armsc%(1), handsc%(1), legsc%(1), feetc%(1)
        CLOSE #1

        LOCATE 12, 27: PRINT "      "
        LOCATE 13, 27: PRINT "Saved"
        LOCATE 14, 27: PRINT "         "
        COLOR 7
        IF rez% <> 7 THEN LOCATE 15, 27: PRINT "<" + UCASE$(path$) + "\SLASH.DAT>"
        LOCATE 16, 27: PRINT "<C:\SFB2.PTH>"


        '------------------------------------------------------------- Reset Defaults
    CASE IS = 3
        cmethod% = 1
        cfreq% = -1
        frameskip% = 3
        particles% = 30
        nstars% = 4
        rez% = 9
        delay% = 0
        stage% = 1
        soundwait% = 5
        sbsound% = 0
        i16m% = 0
        stagedetail% = 1
        fighterdetail% = 1
        hudetail% = 1
        smears% = 1
        flimits% = 1
        solidc% = 0

        head%(1) = 1
        body%(1) = 2
        arms%(1) = 2
        hands%(1) = 4
        legs%(1) = 2
        feet%(1) = 1

        headc%(1) = 7
        bodyc%(1) = 6
        armsc%(1) = 1
        handsc%(1) = 7
        legsc%(1) = 1
        feetc%(1) = 4
        hairl%(1) = 1
        hairc%(1) = 4
        hairt%(1) = 1

        name$(1) = "Mortal"

        LOCATE 12, 27: PRINT "      "
        LOCATE 13, 27: PRINT "     "
        LOCATE 14, 27: PRINT "Defaulted"

END SELECT

fault$ = ""
mode% = 0
END SUB

SUB floors
'---------------------------------------------------------- Floors / RingOuts
FOR wee = 1 TO 2
    wee2 = wee + 2

    'Default Settings
    floor3 = floor1
    canjump%(wee) = 0

    SELECT CASE stage%

        '----------------------------------------------------------------------------
        CASE IS = 1
            IF ABS(buttx(wee)) > ring% OR butty(wee) > floor1 THEN floor3 = floor2
            IF butty(wee) > 70 THEN ringout (wee)


            '----------------------------------------------------------------------------
        CASE IS = 2
            IF ABS(buttx(wee)) > ring% THEN buttv(wee) = buttv(wee) - gravity - .05: ringout (wee)

            '----------------------------------------------------------------------------
        CASE IS = 3, 8, 15
            IF ABS(buttx(wee)) > ring% THEN
                floor3 = floor2
                IF foot1y(wee2) >= floor2 - 1 OR foot2y(wee2) >= floor2 - 1 THEN ringout (wee): EXIT SUB
            END IF

            '----------------------------------------------------------------------------
        CASE IS = 4
            IF ABS(buttx(wee)) > ring% OR butty(wee) > floor1 + 25 THEN floor3 = floor2 ELSE floor3 = (buttx(wee) * bob) / 200
            IF heady(wee2) > 30 THEN ringout (wee)

            '----------------------------------------------------------------------------
        CASE IS = 9
            IF ABS(buttx(wee)) > ring% THEN floor3 = floor2: ringout (wee) ELSE floor3 = (buttx(wee) * trigger1) / 300

            '----------------------------------------------------------------------------
        CASE IS = 12
            IF ABS(buttx(wee)) > ring% OR butty(wee) > floor1 THEN floor3 = floor2: camode% = wee + 1

            '----------------------------------------------------------------------------
        CASE IS = 14
            IF ABS(buttx(wee)) > 100 THEN floor3 = floor2
            IF ticker% < 60 AND wee = 1 THEN floor3 = -100

    END SELECT

    '-------------------------------------------------------------------- CanJump
    IF position%(wee) = 1 THEN
        IF foot1y(wee2) >= (floor3 - buttv(wee)) - 2 OR foot2y(wee2) >= (floor3 - buttv(wee)) - 2 THEN canjump%(wee) = 1
    END IF


    '---------------------------------------------- Gravity, Traction and Landing

    buttv(wee) = buttv(wee) + gravity

    IF foot1y(wee2) >= (floor3 - buttv(wee)) OR foot2y(wee2) >= (floor3 - buttv(wee)) OR butty(wee) >= (floor3 - buttv(wee)) THEN
        butth(wee) = butth(wee) / 1.1

        'bounce
        IF position%(wee) >= 8 AND position%(wee) <= 11 AND ABS(buttv(wee)) > 3 AND ABS(buttv(wee)) < 25 THEN buttv(wee) = -buttv(wee) / 3: butty(wee) = floor3

        IF buttv(wee) > 0 THEN buttv(wee) = 0
        IF foot1y(wee2) > (floor3) THEN
            butty(wee) = butty(wee) - (foot1y(wee2) - (floor3))
        ELSE
            IF foot2y(wee2) > floor3 THEN butty(wee) = butty(wee) - (foot2y(wee2) - (floor3))
        END IF
 
    END IF


    '-------------------------------------------------------------- Landing Heads
    IF hy(wee) + hv(wee) >= floor3 - 2 THEN
        hv(wee) = 0
        hy(wee) = floor3 - 2
        hh(wee) = hh(wee) / 2
    ELSE
        hv(wee) = hv(wee) + gravity
    END IF


    '----------------------------------------------------------------------- Hair
    IF wee = 1 THEN
        FOR n% = 1 TO 5
            IF hairy(n%) > floor3 THEN hairy(n%) = floor3
        NEXT n%
    ELSE
        FOR n% = 6 TO 10
            IF hairy(n%) > floor3 THEN hairy(n%) = floor3
        NEXT n%
    END IF

    '-------------------------------------------------------------------


    'Slamming on Ground Sound
    IF butty(wee) >= floor3 - 5 AND buttv(wee) > .5 THEN sbfx 20

    'Skidding on Ground Sound
    IF butty(wee) >= floor3 - 1 AND buttv(wee) > -1 AND ABS(butth(wee)) > .3 THEN sbfx 5

    'Smoke
    IF ABS(butth(wee)) > 4 AND foot1y(wee2) > floor3 - 1 THEN particle foot1x(wee2), foot1y(wee2), fighterz(wee), 16, 1
    IF ABS(butth(wee)) > 3 AND foot1y(wee2) > floor3 - 1 THEN particle foot1x(wee2), foot1y(wee2), fighterz(wee), 15, 1


NEXT wee


END SUB

SUB getpath
fault$ = "file"
OPEN "c:\sfb2.pth" FOR INPUT AS #1
IF setback% = 1 THEN window3d: setpath: GOTO 28
INPUT #1, path$
CLOSE #1
28
fault$ = ""
END SUB

SUB i16 (x, y, x2, y2, F$)
fault$ = "file"
OPEN path$ + "\" + F$ + ".i16" FOR INPUT AS #1

IF setback% = 1 THEN
    setback% = 0
    LINE (x, y)-(x + 18.5, y + 18), 0, BF
    LINE (x, y)-(x + 18, y + 17.5), 4
    LINE (x + 18, y)-(x, y + 17.5), 4
    GOTO 13
END IF

x1 = x
y1 = y

DO WHILE NOT EOF(1)
    INPUT #1, c%
    IF c% = 16 THEN
        x1 = x
        y1 = y1 + y2
    ELSE
        LINE (x1, y1)-(x1 + x2, y1 + y2), c%, BF
        x1 = x1 + x2
    END IF
LOOP
13
fault$ = ""
CLOSE #1
END SUB

SUB jump (n%, T%)

IF canjump%(n%) = 1 THEN
    SELECT CASE legs%(n%)
        CASE 1: buttv(n%) = -7
        CASE 2, 2000: buttv(n%) = -10
        CASE 3, 666: buttv(n%) = -8
        CASE 4: buttv(n%) = -14
        CASE 5, 1998: buttv(n%) = -9
    END SELECT


    IF T% = 1 THEN
        SELECT CASE legs%(n%)
            CASE 1, 666: butth(n%) = butth(n%) - 1.6
            CASE 2: butth(n%) = butth(n%) - 1.4
            CASE 3: butth(n%) = butth(n%) - 1.2
            CASE 4: butth(n%) = butth(n%) - 1
            CASE 5, 2000: butth(n%) = butth(n%) - 2.5
            CASE 1998: butth(n%) = butth(n%) - 3
        END SELECT
    END IF

    IF T% = 3 THEN
        SELECT CASE legs%(n%)
            CASE 1, 666: butth(n%) = butth(n%) + 1.6
            CASE 2: butth(n%) = butth(n%) + 1.4
            CASE 3: butth(n%) = butth(n%) + 1.2
            CASE 4: butth(n%) = butth(n%) + 1
            CASE 5, 2000: butth(n%) = butth(n%) + 2.5
            CASE 1998: butth(n%) = butth(n%) + 3
        END SELECT
    END IF

END IF
END SUB

SUB keycheck

fault$ = "nokey"
OPEN path$ + "\sfb2.key" FOR INPUT AS #1
INPUT #1, wee$
CLOSE #1

END SUB

SUB loadsave
39 rezs% = rez%
setback% = 0
smallwindow

COLOR 15
LOCATE 10, 2: PRINT "File Options"
LOCATE 12, 2: PRINT "1 Load"
LOCATE 13, 2: PRINT "2 Save"
LOCATE 14, 2: PRINT "3 Defaults"
LOCATE 15, 2: PRINT "4 Delete Settings File"
LOCATE 16, 2: PRINT "5 Reset Path File"

COLOR 7
IF rez% <> 7 THEN LOCATE 15, 27: PRINT "<" + UCASE$(path$) + "\SLASH.DAT>"
LOCATE 16, 27: PRINT "<C:\SFB2.PTH>"


22 wee$ = INKEY$
IF setback% = 1 THEN 39
IF wee$ = "" THEN 22

IF wee$ = "1" THEN
    mode% = 1: file
    newmatch
END IF

IF wee$ = "2" THEN
    mode% = 2: file
END IF

IF wee$ = "3" THEN
    mode% = 3: file
    newmatch
END IF

IF wee$ = "4" THEN
    LOCATE 15, 27
    IF rez% = 7 THEN PRINT "Deleted      ": LOCATE 15, 26 ELSE PRINT "Deleted                                              ": LOCATE 15, 27
    SHELL "DEL " + path$ + "\SLASH.DAT"
    LOCATE 12, 27: PRINT "      "
    LOCATE 13, 27: PRINT "     "
    LOCATE 14, 27: PRINT "         "
END IF

IF wee$ = "5" THEN
    setpath
    restart% = 1
    GOTO 23
END IF

IF rez% <> rezs% THEN SCREEN rez%: window3d: GOTO 39
IF wee$ <> CHR$(27) THEN 22

23
csmallwindow
IF wee$ = "3" THEN SCREEN rez%
wee$ = ""
END SUB

SUB movecam

'-------------------------------------------------------------Camera Movement
zoom = zoom + zoomd
panx = panx + panh
pany = pany + panv
zoomd = zoomd / 1.1
panh = panh / 1.01
panv = panv / 1.01
END SUB

SUB mud

SCREEN 9
COLOR , 0

fault$ = "mud"
IF setback% = 1 THEN setback% = 0: GOTO 21
'------------------------------------------------------------------- Show Mud
CLS

camdefaults
zoom = .5
panx = -500

s$ = "  SFB2: Vector Warriors, Powered by Slash - Created by Kevin Reems 1997-1998"

window3d


FOR miniloop = 0 TO 75
    IF INKEY$ <> "" THEN 21

    panh = 25

    movecam
    'page flipping
    pflip

    flicker = TIMER: DO UNTIL TIMER - flicker > .000001: LOOP

    'Clear Screen
    CLS

    '-------------------------------------------------------------------
    IF miniloop = 1 THEN c% = 15
    IF miniloop = 3 THEN c% = 9
    IF miniloop = 5 THEN c% = 1
    IF miniloop = 74 THEN c% = 0

    FOR wee = n TO n + 20
        psline -1500, -150, (wee + .5), 1500, -150, (wee + .5), c%, 3
        psline -1500, 150, (wee + .5), 1500, 150, (wee + .5), c%, 3
        psline -500, -150, (wee), 500, -150, (wee), c%, 0
        psline -500, 150, (wee), 500, 150, (wee), c%, 0
    NEXT wee

    IF n > 0 THEN n = n - .2 ELSE n = 1

    IF miniloop > 60 THEN
        window2d
        LINE (0, (miniloop * 10) - 750)-(100, (miniloop * 10) - 650), 0, BF
        window3d
    END IF

    '-------------------------------------------------------------------

    psdpset -200, -100, 0, 10, 8
    psdpset -100, -75, 0, 5, 8
    psdpset 0, 10, 0, 7, 8
    psdpset 100, -25, 0, 3, 8
    psdpset 400, 75, 0, 6, 8
    psdpset 500, -100, 0, 5, 8
    psdpset 200, 25, 0, 6, 8
    psdpset 300, -75, 0, 5, 8
    psdpset 600, 100, 0, 5, 8

    '---------S
    psdline 150, -50, 1, 100, 0, 4, 15, 7, 8, 0
    psdline 100, 0, 1, 150, 0, 4, 15, 7, 8, 0
    psdline 150, 0, 1, 100, 50, 4, 15, 7, 8, 0

    '---------L
    psdline 160, 50, 1, 200, 50, 4, 15, 7, 8, 0
    psdline 160, 50, 1, 180, -50, 4, 15, 7, 8, 0

    '---------A
    psdline 210, 50, 1, 250, -50, 4, 15, 7, 8, 0
    psdline 250, -50, 1, 250, 50, 4, 15, 7, 8, 0
    psdline 240, 0, 1, 250, 0, 4, 15, 7, 8, 0

    '---------S
    psdline 310, -50, 1, 260, 0, 4, 15, 7, 8, 0
    psdline 260, 0, 1, 310, 0, 4, 15, 7, 8, 0
    psdline 310, 0, 1, 260, 50, 4, 15, 7, 8, 0

    '---------H
    psdline 320, 50, 1, 340, -50, 4, 15, 7, 8, 0
    psdline 330, 0, 1, 370, 0, 4, 15, 7, 8, 0
    psdline 360, 50, 1, 380, -50, 4, 15, 7, 8, 0

    '-------------------------------------------------------------------

    IF miniloop < 5 THEN LOCATE 23, 1: COLOR 8: PRINT s$
    IF miniloop > 4 AND miniloop < 10 THEN LOCATE 23, 1: COLOR 7: PRINT s$
    IF miniloop > 9 THEN LOCATE 23, 1: COLOR 15: PRINT s$
NEXT miniloop

IF i16m% = 2 THEN 21
window2d
SCREEN , , 0, 0
i16 0, 0, .88, .85, "slash"
SCREEN , , 1, 0
i16 0, 0, .54, .73, "sfb2"
SCREEN , , 0, 1
CLS
SLEEP 3

21
fault$ = ""
END SUB

SUB newmatch
'Start a New Match
   
'-----------------------
IF stage% > stages% THEN
    stage% = 1
    keycheck

    IF wee$ <> "´œ‘·ðE=666ÛÈåÃGenerated Key File: Do Not Edit" THEN
        fault$ = "writekey"
        wee$ = "´œ‘·ðE=666ÛÈåÃGenerated Key File: Do Not Edit"
        OPEN path$ + "\sfb2.key" FOR OUTPUT AS #1
        WRITE #1, wee$
        CLOSE #1
   
        '----------------------------------------------------------------------------
        smallwindow
        COLOR 15
        LOCATE 10, 2: PRINT "STAGE SELECT ENABLED"
        COLOR 12

        IF rez% > 7 THEN
            LOCATE 12, 2: PRINT "Congratulations, You've Earned The Stage Select Option."
        ELSE
            LOCATE 12, 2: PRINT "Congratulations!"
            LOCATE 13, 2: PRINT "You've Earned The Stage Select Option."
        END IF


        '----------------------------------------------------------------------------
    END IF
END IF

stageinit
END SUB

SUB nokey
smallwindow
COLOR 15
LOCATE 10, 2: PRINT "DISABLED"
COLOR 12

IF rez% > 7 THEN
    LOCATE 12, 2: PRINT "You Must Complete Every Stage To Enable This Option."
    LOCATE 13, 2: PRINT "Don't Forget To Save Your Progress."

ELSE

    LOCATE 12, 2: PRINT "You Must Complete Every Stage"
    LOCATE 13, 2: PRINT "To Enable This Option."
    LOCATE 14, 2: PRINT "Don't Forget To Save Your Progress."

END IF


COLOR 4
LOCATE 16, 2: PRINT "Press Esc"

40 IF INKEY$ <> CHR$(27) THEN 40
csmallwindow
END SUB

SUB ocasional

IF flimits% = 1 THEN fighterlimits

FOR wee = 1 TO 2

    'recharge KO & Rage
    IF Special%(wee) = 0 AND ko(wee) > 0 AND ko(wee) < 100 AND health%(wee) > 0 THEN ko(wee) = ko(wee) + kocharge(wee)
    IF rage(wee) < 100 AND health%(wee) > 0 THEN rage(wee) = rage(wee) + ragecharge(wee)

    IF vexed%(wee) > 0 THEN health%(wee) = health%(wee) - 1

    '---------------------------+

    'Headless Stuff
    IF headless%(wee) = 1 THEN
        health%(wee) = health%(wee) - 20
        particle (hx(wee)), (hy(wee)), fighterz(wee), 0, 1
    END IF

    '---------------------------+

    'Damage Bar Stuff
    IF health%(wee) > maxhp%(wee) THEN health%(wee) = maxhp%(wee)

    IF health%(wee) < hpslide%(wee) THEN
        hpslide%(wee) = hpslide%(wee) - 4
    ELSE
        hpslide%(wee) = health%(wee)
    END IF

    IF ko(wee) < koslide%(wee) THEN
        koslide%(wee) = koslide%(wee) - 2
    ELSE
        koslide%(wee) = ko(wee)
    END IF


    IF health%(wee) >= maxhp%(wee) THEN hc%(wee) = 10 ELSE hc%(wee) = 14
    IF vexed%(wee) > 0 THEN hc%(wee) = 9
    IF ko(wee) >= 100 THEN kc%(wee) = 10 ELSE kc%(wee) = 14

    '---------------------------+

    IF rage(wee) < 0 THEN rage(wee) = 0
    IF rage(wee) = 100 THEN vexed%(wee) = 0

    IF fighterz(wee) > midstage THEN fighterz(wee) = fighterz(wee) - .1
    IF fighterz(wee) < midstage THEN fighterz(wee) = fighterz(wee) + .1
    IF fighterz(wee) > midstage + .5 THEN fighterz(wee) = fighterz(wee) - .5
    IF fighterz(wee) < midstage - .5 THEN fighterz(wee) = fighterz(wee) + .5

NEXT wee

'----------------------------------------------------------------------------
END SUB

SUB options

IF AIactive%(1) = 1 THEN AIactive%(1) = 0: stage% = 1: stageinit

1 redraw% = 0
fault$ = ""
bigwindow
COLOR 15, 0
IF rez% = 7 THEN
    LOCATE 4, 17: PRINT "OPTIONS"
ELSE
    LOCATE 4, 37: PRINT "OPTIONS"
END IF

LOCATE 6, 6: PRINT "Select Stage"
LOCATE 8, 6: PRINT "Build Fighter"
LOCATE 10, 6: PRINT "Visit Dojo"
LOCATE 12, 6: PRINT "Settings"
LOCATE 14, 6: PRINT "Load/Save Options"
LOCATE 16, 6: PRINT "Demo Mode"
LOCATE 18, 6: PRINT "Restart"
LOCATE 20, 6: PRINT "Quit"

IF ptoptions% = 0 THEN ptoptions% = 6

DO
    wee$ = UCASE$(INKEY$)
    '----------------------------------------------------------------- Move Arrow
    SELECT CASE wee$
        CASE IS = "8", CHR$(0) + "H"
            LOCATE ptoptions%, 2: PRINT " "
            IF ptoptions% > 6 THEN ptoptions% = ptoptions% - 2 ELSE ptoptions% = 20

        CASE IS = "5", "2", CHR$(0) + "P"
            LOCATE ptoptions%, 2: PRINT " "
            IF ptoptions% < 20 THEN ptoptions% = ptoptions% + 2 ELSE ptoptions% = 6
    END SELECT
    LOCATE ptoptions%, 2: PRINT CHR$(16)

    '--------------------------------------------------------------------- Select
    IF wee$ = " " OR wee$ = CHR$(13) THEN
        redraw% = 1
        wee$ = ""

        SELECT CASE ptoptions%

            CASE IS = 6
                wee$ = ""
                keycheck
                IF wee$ = "´œ‘·ðE=666ÛÈåÃGenerated Key File: Do Not Edit" THEN setstage ELSE nokey
                wee$ = ""

            CASE IS = 8
                setfighter

            CASE IS = 10
                smallwindow
                LOCATE 10, 31: PRINT "Master Bean's Dojo"
                LOCATE 12, 2: PRINT "Leave Current Stage to Visit Dojo ?"
                window2d
                i16 76, 41, .363, .355, "dojo"
                LINE (75, 40)-(95, 60), 7, B
                window3d
                LOCATE 13, 2: PRINT "<Y/N>"
                DO: wee$ = INKEY$: LOOP UNTIL wee$ <> ""
                IF UCASE$(wee$) = "Y" THEN
                    stage% = 1000
                    stageinit
                    setfightercpu
                END IF

            CASE IS = 12
                settings

            CASE IS = 14
                loadsave

            CASE IS = 16
                AIactive%(1) = 1
                AIactive%(2) = 1
                dif% = 7
                stage% = (RND * 3) + 1
                newmatch
                EXIT SUB

            CASE IS = 18
                restart% = 1

            CASE IS = 20
                quit

        END SELECT
    END IF

    IF restart% = 1 THEN wee$ = CHR$(27)
    IF redraw% = 1 THEN 1
LOOP UNTIL wee$ = CHR$(27)
cbigwindow
END SUB

SUB page2
SCREEN , 0, 0
LOCATE 1, 1: COLOR 4: PRINT "Loading..."
SCREEN , 2, 0
window2d

SELECT CASE stage%

    CASE IS = 1
        wee = 1
        DO WHILE wee < 50
            LINE (0, 100 - wee)-(100, 100 - wee), 4
            wee = wee * 2
        LOOP

    CASE IS = 2
        stars2d 8, 15, 15

    CASE IS = 3
        i16 0, 0, .88, .85, "slash"

    CASE IS = 4
        i16 0, 0, .88, .85, "slash"


END SELECT
window3d
END SUB

SUB pagetest
32 fault$ = "pagetest"
wee$ = UCASE$(INKEY$)
IF wee$ = "0" THEN SCREEN , 0, 0
IF wee$ = "1" THEN SCREEN , 1, 1
IF wee$ = "2" THEN SCREEN , 2, 2
IF wee$ = "3" THEN SCREEN , 3, 3
IF wee$ = "4" THEN SCREEN , 4, 4
IF wee$ = "5" THEN SCREEN , 5, 5
IF wee$ <> "Q" THEN 32
wee$ = "": fault$ = ""

END SUB

SUB particle (x, y, Z, T%, Q%)
fault$ = "particles"

FOR wee = 1 TO particles%

    IF p%(wee) = 0 AND Q% > 0 THEN
        Q% = Q% - 1
        px(wee) = x
        py(wee) = y
        pz(wee) = Z

        SELECT CASE T%

            CASE IS = 0: 'Blood Down
                p%(wee) = 20
                ph(wee) = (RND - .5)
                pv(wee) = RND
                pg%(wee) = 1
                pc1%(wee) = 12
                pc2%(wee) = 12
                pc3%(wee) = 4
                pf%(wee) = 0
                pk%(wee) = 1

            CASE IS = 1: 'Normal Blood
                p%(wee) = 30
                ph(wee) = (RND - .5) * 3
                pv(wee) = -RND * 5
                pg%(wee) = 2
                pc1%(wee) = 12
                pc2%(wee) = 4
                pc3%(wee) = 4
                pf%(wee) = 1
                pk%(wee) = 1

            CASE IS = 2: 'Blood Spurting Up
                p%(wee) = 60
                ph(wee) = (RND - .5)
                pv(wee) = -8 + (RND * 2)
                pg%(wee) = 2
                pc1%(wee) = 12
                pc2%(wee) = 4
                pc3%(wee) = 4
                pf%(wee) = 1
                pk%(wee) = 1

            CASE IS = 3: 'Blood Left
                p%(wee) = 30
                ph(wee) = -RND * 3
                pv(wee) = -RND * 3
                pg%(wee) = 2
                pc1%(wee) = 12
                pc2%(wee) = 4
                pc3%(wee) = 4
                pf%(wee) = 1
                pk%(wee) = 1

            CASE IS = 4: 'Blood Right
                p%(wee) = 30
                ph(wee) = RND * 3
                pv(wee) = -RND * 3
                pg%(wee) = 2
                pc1%(wee) = 12
                pc2%(wee) = 4
                pc3%(wee) = 4
                pf%(wee) = 1
                pk%(wee) = 1
                pk%(wee) = 1

            CASE IS = 5: 'Large Omni Spark (Blue)
                p%(wee) = 30
                ph(wee) = (RND - .5) * 15
                pv(wee) = (RND - .5) * 15
                pg%(wee) = 1
                pc1%(wee) = 15
                pc2%(wee) = 9
                pc3%(wee) = 1
                pf%(wee) = 0
                pk%(wee) = 1

            CASE IS = 6: 'Small Omni Spark (Blue)
                p%(wee) = 4
                ph(wee) = (RND - .5) * 30
                pv(wee) = (RND - .5) * 30
                pg%(wee) = 1
                pc1%(wee) = 15
                pc2%(wee) = 15
                pc3%(wee) = 15
                pf%(wee) = 0
                pk%(wee) = 0

            CASE IS = 8: 'Blue Spark Shower
                p%(wee) = 30
                ph(wee) = (RND - .5) * 4
                pv(wee) = (-RND) * 3
                pg%(wee) = 1
                pc1%(wee) = 15
                pc2%(wee) = 9
                pc3%(wee) = 1
                pf%(wee) = 1
                pk%(wee) = 1

            CASE IS = 9: 'Red Spark Shower
                p%(wee) = 40
                ph(wee) = (RND - .5)
                pv(wee) = RND
                pg%(wee) = 1
                pc1%(wee) = 15
                pc2%(wee) = 12
                pc3%(wee) = 4
                pf%(wee) = 0
                pk%(wee) = 1

            CASE IS = 11: 'Normal Water
                p%(wee) = 30
                ph(wee) = (RND - .5) * 3
                pv(wee) = -RND * 5
                pg%(wee) = 2
                pc1%(wee) = 15
                pc2%(wee) = 9
                pc3%(wee) = 1
                pf%(wee) = 1
                pk%(wee) = 2

            CASE IS = 12: 'Water Spurting Up
                p%(wee) = 40
                ph(wee) = (RND - .5)
                pv(wee) = -7 / (1 + RND)
                pg%(wee) = 2
                pc1%(wee) = 15
                pc2%(wee) = 9
                pc3%(wee) = 1
                pf%(wee) = 1
                pk%(wee) = 2

            CASE IS = 13: 'Water Left
                p%(wee) = 30
                ph(wee) = -RND * 3
                pv(wee) = -RND * 3
                pg%(wee) = 2
                pc1%(wee) = 15
                pc2%(wee) = 9
                pc3%(wee) = 1
                pf%(wee) = 1
                pk%(wee) = 2

            CASE IS = 14: 'Water Right
                p%(wee) = 30
                ph(wee) = RND * 3
                pv(wee) = -RND * 3
                pg%(wee) = 2
                pc1%(wee) = 15
                pc2%(wee) = 9
                pc3%(wee) = 1
                pf%(wee) = 1
                pk%(wee) = 2

            CASE IS = 15: 'Smoke
                p%(wee) = 60
                ph(wee) = (RND - .5) * 2
                pv(wee) = -RND * 1.5
                pg%(wee) = 2
                pc1%(wee) = 7
                pc2%(wee) = 8
                pc3%(wee) = 8
                pf%(wee) = 3
                pk%(wee) = 0

            CASE IS = 16: 'Fire
                p%(wee) = 30
                ph(wee) = (RND - .5) * 2
                pv(wee) = -RND
                pg%(wee) = 1
                pc1%(wee) = 14
                pc2%(wee) = 12
                pc3%(wee) = 4
                pf%(wee) = 3
                pk%(wee) = 0

            CASE IS = 17: 'Flame
                p%(wee) = 40
                ph(wee) = (RND - .5) * 2
                pv(wee) = -RND * 4
                pg%(wee) = 1
                pc1%(wee) = 15
                pc2%(wee) = 14
                pc3%(wee) = 12
                pf%(wee) = 3
                pk%(wee) = 0

            CASE IS = 18: 'Bloody Mess!
                p%(wee) = 30
                ph(wee) = (RND - .5) * 8
                pv(wee) = -RND * 8
                pg%(wee) = 2
                pc1%(wee) = 12
                pc2%(wee) = 12
                pc3%(wee) = 4
                pf%(wee) = 1
                pk%(wee) = 2

            CASE IS = 19: 'Grayscale Dot
                p%(wee) = 18
                ph(wee) = 0
                pv(wee) = 0
                pg%(wee) = 1
                pc1%(wee) = 15
                pc2%(wee) = 7
                pc3%(wee) = 8
                pf%(wee) = 0
                pk%(wee) = 2


            CASE IS = 20: 'Horizontal Snap Spark White
                p%(wee) = 15
                ph(wee) = (RND - .5) * 50
                pv(wee) = (RND - .5) * 5
                pg%(wee) = 1
                pc1%(wee) = 15
                pc2%(wee) = 15
                pc3%(wee) = 7
                pf%(wee) = 0
                pk%(wee) = 0


            CASE IS = 21: 'Horizontal Snap Spark Red
                p%(wee) = 15
                ph(wee) = (RND - .5) * 50
                pv(wee) = (RND - .5) * 5
                pg%(wee) = 1
                pc1%(wee) = 15
                pc2%(wee) = 12
                pc3%(wee) = 4
                pf%(wee) = 0
                pk%(wee) = 0


            CASE IS = 22: 'Vertical Snap Spark White
                p%(wee) = 15
                ph(wee) = (RND - .5) * 5
                pv(wee) = (RND - .5) * 50
                pg%(wee) = 1
                pc1%(wee) = 15
                pc2%(wee) = 15
                pc3%(wee) = 7
                pf%(wee) = 0
                pk%(wee) = 0


            CASE IS = 23: 'Vertical Snap Spark Red
                p%(wee) = 15
                ph(wee) = (RND - .5) * 5
                pv(wee) = (RND - .5) * 50
                pg%(wee) = 1
                pc1%(wee) = 15
                pc2%(wee) = 12
                pc3%(wee) = 4
                pf%(wee) = 0
                pk%(wee) = 0


            CASE IS = 24: 'Volcanic Chunks (Brown)
                p%(wee) = 60
                ph(wee) = (RND - .5) * 2
                pv(wee) = RND * -10
                pg%(wee) = 3
                pc1%(wee) = 6
                pc2%(wee) = 6
                pc3%(wee) = 6
                pf%(wee) = 1
                pk%(wee) = 1


            CASE IS = 25: 'Large Omni Spark (Green)
                p%(wee) = 18
                ph(wee) = (RND - .5) * 50
                pv(wee) = (RND - .5) * 50
                pg%(wee) = 1
                pc1%(wee) = 15
                pc2%(wee) = 10
                pc3%(wee) = 2
                pf%(wee) = 0
                pk%(wee) = 1


            CASE IS = 26: 'Volcanic Chunks (Blue)
                p%(wee) = 30
                ph(wee) = (RND - .5) * 2
                pv(wee) = RND * -10
                pg%(wee) = 3
                pc1%(wee) = 9
                pc2%(wee) = 1
                pc3%(wee) = 1
                pf%(wee) = 1
                pk%(wee) = 1

            CASE IS = 27: 'Candle-Like Flame
                p%(wee) = 15
                ph(wee) = (RND - .5) / 3
                pv(wee) = -RND
                pg%(wee) = 1
                pc1%(wee) = 14
                pc2%(wee) = 12
                pc3%(wee) = 4
                pf%(wee) = 3
                pk%(wee) = 0


        END SELECT
    END IF

    '----------------------------------------------------------------------------
NEXT wee
END SUB

SUB particleclear
FOR wee = 1 TO particles%
    p%(wee) = 0
    py(wee) = -5000
NEXT wee

FOR wee = 1 TO 10
    smearl%(wee) = 0
NEXT wee

END SUB

SUB particlemove

FOR wee = 1 TO particles%
    px(wee) = px(wee) + ph(wee)
    py(wee) = py(wee) + pv(wee)
    SELECT CASE pf%(wee)
        CASE IS = 1: pv(wee) = pv(wee) + gravity
        CASE IS = 2: pv(wee) = pv(wee) - gravity
        CASE IS = 3: ph(wee) = ph(wee) / 1.3
    END SELECT
NEXT wee
END SUB

SUB particlerender

fault$ = "particles"

18
FOR wee = 1 TO particles%

    IF setback% = 1 THEN setback% = 0: particles% = 0: GOTO 18
    '----------------------------------------------------------------------------
    IF p%(wee) > 0 THEN

        IF pg%(wee) < 3 THEN psline (px(wee)), (py(wee)), (pz(wee)), (px(wee) - ph(wee)), (py(wee) - pv(wee)), (pz(wee) - pd(wee)), (pc1%(wee)), 0
        IF pg%(wee) > 1 THEN pscircle (px(wee)), (py(wee)), (pz(wee)), (.3), (pc1%(wee))

    END IF

    '----------------------------------------------------------------------------
NEXT wee
fault$ = ""
END SUB

SUB pause

SCREEN , , 0, 0

COLOR 4
LOCATE 22, 38
PRINT "Pause"

COLOR 15
LOCATE 21, 1: PRINT name$(1) + " VS. " + name$(2)
LOCATE 22, 1: PRINT stagename$

DO WHILE INKEY$ = ""
LOOP

END SUB

SUB pflip
fault$ = "pflip"
IF rez% <> 1 AND rez% <> 12 THEN
    SWAP pflip1%, pflip2%
    SCREEN , , pflip1%, pflip2%
END IF
fault$ = ""

END SUB

SUB projectilerender
FOR n% = 1 TO 6
    IF projectile%(n%) > 0 THEN
        IF projectile%(n%) < 4 THEN Z = fighterz(1) ELSE Z = fighterz(2)

        '----------------
        SELECT CASE projectilet%(n%)


            '------------------------------------------------------------- Ball Lightning
            CASE 1
                pscircle (projectilex(n%)), (projectiley(n%)), (Z), (RND * 4), (flash1%)
                pscircle (projectilex(n%)), (projectiley(n%)), (Z), (4), (flash2%)
                pslightning (projectilex(n%)), (projectiley(n%)), (Z), (projectilex(n%) - projectileh(n%)), (projectiley(n%) + ((RND - .5) * 25)), (Z), (20), (flash2%)
                particle (projectilex(n%)), (projectiley(n%)), (Z), 5, 1


                '------------------------------------------------------------ Large Fire Ball
            CASE 2
                s = projectile%(n%)
                IF s > 6 THEN s = 6
                pscircle (projectilex(n%)), (projectiley(n%)), (Z), (s), (flash3%)

                FOR wee = 1 TO 3
                    y = projectiley(n%) + ((RND - .5) * 10)
                    psline (projectilex(n%)), (y), (Z), (projectilex(n%) - (projectileh(n%) + ((RND - .5) * s * 5))), (y), (Z), flash3%, 0
                    particle (projectilex(n%) - ((RND * projectileh(n%)) * 5)), (projectiley(n%) + ((RND - .5) * 10)), (Z), 16, 1
                NEXT wee

                '------------------------------------------------------------ Small Fire Ball
            CASE 3
                s = projectile%(n%)
                IF s > 3 THEN s = 3
                pscircle (projectilex(n%)), (projectiley(n%)), (Z), (s), (flash3%)
                FOR wee = 1 TO 3
                    y = projectiley(n%) + ((RND - .5) * 5)
                    psline (projectilex(n%)), (y), (Z), (projectilex(n%) - (projectileh(n%) + ((RND - .5) * s))), (y), (Z), 4, 0
                    particle (projectilex(n%) - ((RND * projectileh(n%)) * 5)), (projectiley(n%) + ((RND - .5) * 5)), (Z), 16, 1
                NEXT wee


                '------------------------------------------------------------------- Nin-Star
            CASE 4
                particle (projectilex(n%)), (projectiley(n%)), (Z), 19, 1
                psline (projectilex(n%) - RND), (projectiley(n%) - RND), (Z), (projectilex(n%) + RND), (projectiley(n%) + RND), (Z), 15, 0
                psline (projectilex(n%) + RND), (projectiley(n%) - RND), (Z), (projectilex(n%) - RND), (projectiley(n%) + RND), (Z), 15, 0


                '--------------------------------------------------------------- Energy Blast
            CASE 5
                pscline (projectilex(n%) - projectileh(n%)), (projectiley(n%)), (Z), (projectilex(n%) - (projectileh(n%) * 3)), (projectiley(n%)), (Z), (4), (flash1%)
                pscircle (projectilex(n%) - projectileh(n%)), (projectiley(n%)), (Z), (15), (flash1%)
                pscircle (projectilex(n%)), (projectiley(n%)), (Z), (RND * 5), (flash1%)
                pscircle (projectilex(n%)), (projectiley(n%)), (Z), (5), (flash2%)
                pslightning (projectilex(n%)), (projectiley(n%)), (Z), (projectilex(n%) - (projectileh(n%) * 5)), (projectiley(n%) + ((RND - .5) * 25)), (Z), (20), (flash2%)
                FOR wee = 1 TO 3: particle (projectilex(n%) + ((RND - .5) * 20)), (projectiley(n%) + ((RND - .5) * 15)), (Z), 19, 1: NEXT wee



        END SELECT
    END IF
NEXT n%

END SUB

SUB projectiles

'Ball-1/4 Collision Detection
IF projectile%(1) > 0 AND projectile%(4) > 0 AND projectilex(1) > projectilex(1) - 5 AND projectilex(1) < projectilex(1) + 5 AND projectiley(1) > projectiley(1) - 5 AND projectiley(1) < projectiley(1) + 5 THEN
    IF projectilet%(1) = 1 OR projectilet%(4) = 1 THEN particle ((projectilex(1) + projectilex(2)) / 2), (projectiley(1)), (fighterz(1)), 5, 15
    IF projectilet%(1) = 2 OR projectilet%(4) = 2 THEN particle ((projectilex(1) + projectilex(2)) / 2), (projectiley(1)), (fighterz(1)), 17, 15
    projectile%(1) = 0
    projectile%(4) = 0
END IF

FOR n% = 1 TO 6
    IF projectile%(n%) > 0 THEN
        projectile%(n%) = projectile%(n%) - 1
        projectilex(n%) = projectilex(n%) + projectileh(n%)
        projectiley(n%) = projectiley(n%) + projectilev(n%)

        IF n% < 4 THEN pc1% = 1: po1% = 2 ELSE pc1% = 2: po1% = 1
        pc2% = pc1% + 2
        po2% = po1% + 2
        IF foot1y(po2%) > foot2y(po2%) THEN footy = foot1y(po2%) ELSE footy = foot2y(po2%)


        '---------------- Detect Hit
        IF projectilex(n%) > buttx(po1%) - 5 AND projectilex(n%) < buttx(po1%) + 5 AND projectiley(n%) > heady(po2%) AND projectiley(n%) < footy THEN

            SELECT CASE projectilet%(n%)
                '------------------------------------------------------------- Ball Lightning
                CASE 1
                    butth(po1%) = butth(po1%) + (projectileh(n%) / 5)
                    pscircle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), (10), (1)
                    IF position%(po1%) = 99 THEN
                        particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 6, 25
                    ELSE
                        soundticker% = 0: sbfx 19
                        particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 15, 10
                        particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 5, 25
                        health%(po1%) = health%(po1%) - (ahpow%(pc1%) * 5)
                        ko(po1%) = ko(po1%) - (akpow%(pc1%) * 5)
                        IF ko(po1%) < 25 OR projectiley(n%) > butty(po1%) THEN fall (po1%)
                    END IF

                    '-------------------------------------------------------------------- L. Fire
                CASE 2
                    butth(po1%) = butth(po1%) + (projectileh(n%) / 10)
                    pscircle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), (10), (4)
                    IF position%(po1%) = 99 THEN
                        particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 9, 25
                    ELSE
                        soundticker% = 0: sbfx 25
                        particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 17, 20
                        particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 15, 10
                        health%(po1%) = health%(po1%) - (ahpow%(pc1%) * 2)
                        ko(po1%) = ko(po1%) - (akpow%(pc1%) * 2)
                        IF ko(po1%) < 15 THEN fall (po1%)
                    END IF

                    '-------------------------------------------------------------------- S. Fire
                CASE 3
                    butth(po1%) = butth(po1%) + (projectileh(n%) / 10)
                    pscircle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), (8), (4)
                    IF position%(po1%) = 99 THEN
                        particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 9, 15
                    ELSE
                        soundticker% = 0: sbfx 25
                        particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 17, 10
                        particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 15, 5
                        ko(po1%) = ko(po1%) - akpow%(pc1%)
                        butth(po1%) = butth(po1%) + (projectileh(n%) / 10)
                    END IF

                    '------------------------------------------------------------------- Nin-Star
                CASE 4
                    IF position%(po1%) = 99 THEN
                        particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 6, 15
                    ELSE
                        particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 0, 10
                        health%(po1%) = health%(po1%) - ahpow%(pc1%)
                        ko(po1%) = ko(po1%) - akpow%(pc1%)
                    END IF


                    '------------------------------------------------------------------- E. Blast
                CASE 5
                    pscircle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), (20), (15)
                    particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 5, 25
                    health%(po1%) = health%(po1%) - 10
                    ko(po1%) = ko(po1%) - 10
                    butth(po1%) = butth(po1%) + (projectileh(n%) / 2)

                    IF position%(po1%) = 99 THEN
                        bgcolor% = 1
                    ELSE
                        soundticker% = 0: sbfx 21
                        particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 20, 10
                        particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 22, 10
                        bgcolor% = 9
                        health%(po1%) = health%(po1%) / 2
                        ko(po1%) = ko(po1%) / 2
                        fall (po1%)
                    END IF


                    '---------------------------------------------------------------------------+
            END SELECT
            projectile%(n%) = 0
        END IF
    END IF
NEXT n%
END SUB

SUB pscircle (x, y, Z, r1, c%)

'-------------------------------------------------------------------PS-Circle
Z = Z + 1
IF Z = 0 THEN Z = .000001

x = (midx% + ((x - panx) / (Z * zoom)))
y = (midy% + ((y - pany) / (Z * zoom)))

r2 = r1 / (Z * zoom)

fault$ = "ps"
CIRCLE (x, y), r2, c%
fault$ = ""
END SUB

SUB pscline (x1, y1, z1, x5, y5, z5, r, c%)

x3 = ((x1 + x5) / 2)
x2 = ((x1 + x3) / 2)
x4 = ((x3 + x5) / 2)

y3 = ((y1 + y5) / 2)
y2 = ((y1 + y3) / 2)
y4 = ((y3 + y5) / 2)

z3 = ((z1 + z5) / 2)
z2 = ((z1 + z3) / 2)
z4 = ((z3 + z5) / 2)

pscircle (x1), (y1), (z1), (r), (c%)
pscircle (x2), (y2), (z2), (r), (c%)
pscircle (x3), (y3), (z3), (r), (c%)
pscircle (x4), (y4), (z4), (r), (c%)
pscircle (x5), (y5), (z5), (r), (c%)
END SUB

SUB pscube (x1, y1, z1, x2, y2, z2, c1%, c2%, c3%)


'---------------------------------------------------------------------PS-Cube

'---------far face
psline (x1), (y1), (z2), (x2), (y2), (z2), (c3%), 1

'---------connect faces
'top/left
psdpset (x1), (y1), (z1), (z2), (c2%)

'top/right
psdpset (x2), (y1), (z1), (z2), (c2%)

'bottom/left
psdpset (x1), (y2), (z1), (z2), (c2%)

'bottom/right
psdpset (x2), (y2), (z1), (z2), (c2%)

'---------near face
psline (x1), (y1), (z1), (x2), (y2), (z1), (c1%), 1

END SUB

SUB psdline (x1, y1, z1, x2, y2, z2, c1%, c2%, c3%, B%)


'----------------------------------------------------------------PS Deep-Line
'---------far line
psline (x1), (y1), (z2), (x2), (y2), (z2), (c3%), 0

'---------connect lines
IF B% = 1 THEN psdpset (x1), (y1), (z1), (z2), (c2%): psdpset (x2), (y2), (z1), (z2), (c2%)

'---------near line
psline (x1), (y1), (z1), (x2), (y2), (z1), (c1%), 0

END SUB

SUB psdpset (x, y, z1, z2, c%)


'---------------------------------------------------------------PS-Deep Point
z1 = z1 + 1
7 z2 = z2 + 1
IF z1 = 0 THEN z1 = .000001
IF z2 = 0 THEN z2 = .000001

x3 = (midx% + ((x - panx) / (z1 * zoom)))
y3 = (midy% + ((y - pany) / (z1 * zoom)))

x4 = (midx% + ((x - panx) / (z2 * zoom)))
y4 = (midy% + ((y - pany) / (z2 * zoom)))

fault$ = "ps"
LINE (x3, y3)-(x4, y4), c%
fault$ = ""
END SUB

SUB pslightning (x1, y1, z1, x5, y5, z5, r, c%)

x3 = ((x1 + x5) / 2) + ((RND - .5) * r)
x2 = ((x1 + x3) / 2) + ((RND - .5) * r)
x4 = ((x3 + x5) / 2) + ((RND - .5) * r)

y3 = ((y1 + y5) / 2) + ((RND - .5) * r)
y2 = ((y1 + y3) / 2) + ((RND - .5) * r)
y4 = ((y3 + y5) / 2) + ((RND - .5) * r)

z3 = ((z1 + z5) / 2)
z2 = ((z1 + z3) / 2)
z4 = ((z3 + z5) / 2)

psline (x1), (y1), (z1), (x2), (y2), (z2), (c%), 0
psline (x2), (y2), (z2), (x3), (y3), (z3), (c%), 0
psline (x3), (y3), (z3), (x4), (y4), (z4), (c%), 0
psline (x4), (y4), (z4), (x5), (y5), (z5), (c%), 0
END SUB

SUB psline (x1, y1, z1, x2, y2, z2, c%, B%)

'---------------------------------------------------------------------PS-Line
z1 = z1 + 1
z2 = z2 + 1
IF z1 = 0 THEN z1 = .000001
IF z2 = 0 THEN z2 = .000001

x3 = (midx% + ((x1 - panx) / (z1 * zoom)))
y3 = (midy% + ((y1 - pany) / (z1 * zoom)))

x4 = (midx% + ((x2 - panx) / (z2 * zoom)))
y4 = (midy% + ((y2 - pany) / (z2 * zoom)))

fault$ = "ps"
SELECT CASE B%
    CASE 0: LINE (x3, y3)-(x4, y4), c%
    CASE 1: LINE (x3, y3)-(x4, y4), c%, B
    CASE 2: LINE (x3, y3)-(x4, y4), c%, BF
    CASE 3: LINE (x3, y3)-(x4, y4), c%, , &H1111
    CASE 4: LINE (x3, y3)-(x4, y4), c%, B , &H1111
END SELECT

fault$ = ""
END SUB

SUB psmark1 (x, y, Z, c1%, c2%, c3%)


pspset (x), (y), (Z), (c3%)
pspset (x), (y), (Z - .5), (c2%)
pspset (x), (y), (Z - 1), (c1%)

END SUB

SUB psmark2 (x, y, c1%, c2%, c3%)


pspset (x), (y), (1), (c3%)
pspset (x), (y), (.5), (c2%)
pspset (x), (y), (0), (c1%)

END SUB

SUB pspoint (x, y, Z)

'------------------------------------------------------------------- PS-Point
Z = Z + 1

IF Z = 0 THEN Z = .000001

x1 = (midx% + ((x - panx) / (Z * zoom)))
y1 = (midy% + ((y - pany) / (Z * zoom)))

fault$ = "ps"
pointc% = POINT(x1, y1)
fault$ = ""

END SUB

SUB pspset (x, y, Z, c%)


'------------------------------------------------------------------- PS-Pset
Z = Z + 1

IF Z = 0 THEN Z = .000001

x1 = (midx% + ((x - panx) / (Z * zoom)))
y1 = (midy% + ((y - pany) / (Z * zoom)))

fault$ = "ps"
PSET (x1, y1), c%
fault$ = ""
END SUB

SUB quit

smallwindow
LOCATE 10, 2: PRINT "Quit SFB2: Vector Warriors ?"
LOCATE 11, 2: PRINT "<Y/N>"
5 wee$ = UCASE$(INKEY$)
IF wee$ = "" THEN 5

IF wee$ = "Y" THEN
    IF sbsound% = 1 THEN sbinit
    SYSTEM
END IF

csmallwindow
wee$ = ""
END SUB

SUB rain2d (c1%, c2%, c3%, l)
REM-----------------------------------------------Draw Rain

WINDOW SCREEN(0, 0)-(1, 1)

FOR wee = 1 TO nstars%
    LINE (stars1x(wee), stars1y(wee))-(stars1x(wee), stars1y(wee) - l), c1%
    LINE (stars2x(wee), stars2y(wee))-(stars2x(wee), stars2y(wee) - l), c2%
    LINE (stars3x(wee), stars3y(wee))-(stars3x(wee), stars3y(wee) - l), c3%
NEXT wee

CALL window3d

END SUB

SUB rain3d (x1, y1, z1, x2, y2, z2, c1%, c2%, c3%, l)
REM-----------------------------------------------Draw Rain

x2 = x2 - x1
y2 = y2 - y1
z2 = z2 - z1

FOR wee = 1 TO nstars%
    x3 = x1 + (stars1x(wee) * x2)
    y3 = y1 + (stars1y(wee) * y2)
    z3 = z1 + (stars1z(wee) * z2)
    psline (x3), (y3), (z3), (x3), (y3 - l), (z3), c1%, 0
    'IF y3 > floor1 THEN psline (x3 - 1), (y3), (z3), (x3 + 1), (y3), (z3), 1, 0

    x3 = x1 + (stars2x(wee) * x2)
    y3 = y1 + (stars2y(wee) * y2)
    z3 = z1 + (stars2z(wee) * z2)
    psline (x3), (y3), (z3), (x3), (y3 - l), (z3), c2%, 0
    'IF y3 > floor1 THEN psline (x3 - 1), (y3), (z3), (x3 + 1), (y3), (z3), 9, 0

    x3 = x1 + (stars3x(wee) * x2)
    y3 = y1 + (stars3y(wee) * y2)
    z3 = z1 + (stars3z(wee) * z2)
    psline (x3), (y3), (z3), (x3), (y3 - l), (z3), c3%, 0
    'IF y3 > floor1 THEN psline (x3 - 2), (y3), (z3), (x3 + 2), (y3), (z3), 15, 0

NEXT wee


END SUB

SUB ringout (n)

ringoutt% = 50
IF ringoutp% = 1 AND n = 2 THEN ringoutp% = 3 ELSE ringoutp% = n


SELECT CASE stage%
    '----------------------------------------------------------------------------
    CASE IS = 1, 2, 4
        health%(n) = health%(n) - 5

        '----------------------------------------------------------------------------
    CASE IS = 3, 8, 15
        IF buttx(n) > 0 THEN buttx(n) = ring% - 10 ELSE buttx(n) = -ring% + 10
        butth(n) = 0
        FOR wee = 1 TO particles%
            particle ((RND - .5) * 10), (floor1 - RND * 25), (midstage), 15, 1
        NEXT wee

        IF n = 2 THEN
            win%(1) = win%(1) + 1
            buttx(1) = 0
            butty(1) = floor1 - 20
            fighterfreeze 1
        ELSE
            win%(2) = win%(2) + 1
            buttx(2) = 0
            butty(2) = floor1 - 20
            fighterfreeze 2
        END IF

        '------------
        SCREEN , , 0, 0
        IF win%(1) > 1 THEN PRINT name$(1) + " Wins the Match By Ringout": stage% = stage% + 1: setfightercpu
        IF win%(2) > 1 THEN PRINT name$(2) + " Wins the Match By Ringout"

        IF win%(1) > 1 OR win%(2) > 1 THEN
            wee = TIMER
            35 IF TIMER - wee < 3 THEN 35
            newmatch
        END IF

        '----------------------------------------------------------------------------
    CASE IS = 9
        IF butty(n) > 80 THEN
            health%(n) = health%(n) - 10
            butth(n) = butth(n) / 2
            pslightning buttx(n) + ((RND - .5) * 25), floor2, fighterz(n), neckx(n + 2), heady(n + 2) + (RND * 15), fighterz(n), 25, flash2%
            IF ABS(buttx(n)) < ring% + 25 THEN butth(n) = 0: health%(n) = 0
        END IF

        '----------------------------------------------------------------------------
END SELECT
END SUB

SUB ringoutext (n)
IF ticker% > 50 THEN
    IF ringoutt% < 3 THEN COLOR 4 ELSE COLOR 12
    IF ringoutt% > 47 THEN COLOR 15
    IF n = 3 THEN
        IF rez% > 7 THEN LOCATE 5, 30 ELSE LOCATE 5, 20
        PRINT "Both Fighters Ringout"
    ELSE
        IF rez% > 7 THEN
            LOCATE 5, 30: PRINT name$(n)
            LOCATE 5, 45: PRINT "Ringout"
        ELSE
            LOCATE 5, 30: PRINT name$(n)
            LOCATE 6, 30: PRINT "Ringout"
        END IF
    END IF

END IF
END SUB

DEFINT A-Z
SUB sbfx (fxx%)

IF soundticker% < 1 AND sbsound = 1 THEN
    soundticker% = soundwait%

    'Freq%, Wave%, FEEDBACK%, Modl%, CLEN%

    SELECT CASE fxx%

        'Jab
        CASE IS = 1
            FOR wee = 1 TO 40
                SBplay 100, 1, 1, 0, 1
            NEXT wee
            CALL SBWrite(&HB0, &H0)

            'Strong
        CASE IS = 2
            FOR wee = 1 TO 60
                SBplay 50, 1, 1, 0, 1
            NEXT wee
            CALL SBWrite(&HB0, &H0)

            'Short
        CASE IS = 3
            FOR wee = 1 TO 45
                SBplay 25, 1, 1, 0, 1
            NEXT wee
            CALL SBWrite(&HB0, &H0)

            'Round House
        CASE IS = 4
            FOR wee = 1 TO 40
                SBplay 1, 1, 1, 0, 1
            NEXT wee
            CALL SBWrite(&HB0, &H0)

            'Skidding on Ground
        CASE IS = 5
            FOR wee = 1 TO 45
                SBplay 150, 0, 14, 500, 150
            NEXT wee
            CALL SBWrite(&HB0, &H0)

            'Throw Fire/Dragon
        CASE IS = 6
            FOR wee = 1 TO 45
                SBplay 25, 0, 1000, 10, 261
            NEXT wee
            CALL SBWrite(&HB0, &H0)

            'Charge
        CASE IS = 7
            FOR wee = 1 TO 45
                SBplay 255, 0, 14, 16, 9
            NEXT wee
            CALL SBWrite(&HB0, &H0)

            'Burning
        CASE IS = 8
            FOR wee = 1 TO 45
                SBplay 25, 0, 1000, 10, 259
            NEXT wee
            CALL SBWrite(&HB0, &H0)

            'Hit 1
        CASE IS = 9
            FOR wee = 1 TO 45
                SBplay 50, 0, 12, 100, 262
            NEXT wee
            CALL SBWrite(&HB0, &H0)

            'Hit 2
        CASE IS = 10
            FOR wee = 1 TO 45
                SBplay 150, 0, 12, 100, 262
            NEXT wee
            CALL SBWrite(&HB0, &H0)

            'Hit 3
        CASE IS = 11
            FOR wee = 1 TO 45
                SBplay 250, 0, 12, 100, 262
            NEXT wee
            CALL SBWrite(&HB0, &H0)


            'Gong 1
        CASE IS = 12
            FOR wee = 1 TO 45
                SBplay 50, 2, 0, 13, 258
            NEXT wee
            CALL SBWrite(&HB0, &H0)

            'Tick
        CASE IS = 13
            FOR wee = 1 TO 45
                SBplay 0, 1, 10, 1, 15
            NEXT wee
            CALL SBWrite(&HB0, &H0)

            'Gong 2
        CASE IS = 14
            FOR wee = 1 TO 45
                SBplay 100, 2, 16, 135, 258
            NEXT wee
            CALL SBWrite(&HB0, &H0)

            'Gong 3
        CASE IS = 15
            FOR wee = 1 TO 45
                SBplay 50, 2, 0, 13, 259
            NEXT wee
            CALL SBWrite(&HB0, &H0)

            'Fan
        CASE IS = 16
            FOR wee = 1 TO 45
                SBplay 14, 1, 14, 15, 260
            NEXT wee
            CALL SBWrite(&HB0, &H0)

            'Chopping
        CASE IS = 17
            FOR wee = 1 TO 45
                SBplay 69, 1, 14, 5, 4
            NEXT wee
            CALL SBWrite(&HB0, &H0)

            'Laser 1
        CASE IS = 18
            FOR wee = 1 TO 45
                SBplay 35, -1, 62, 0, 260
            NEXT wee
            CALL SBWrite(&HB0, &H0)

            'Shock 1
        CASE IS = 19
            FOR wee = 1 TO 45
                SBplay 60, 3, 14, 15, 19
            NEXT wee
            CALL SBWrite(&HB0, &H0)

            'Slamming on Ground
        CASE IS = 20
            FOR wee = 1 TO 45
                SBplay 150, 0, 14, 500, 200
            NEXT wee
            CALL SBWrite(&HB0, &H0)


            'Shock 2
        CASE IS = 21
            FOR wee = 1 TO 45
                SBplay 30, 3, 14, 15, 19
            NEXT wee
            CALL SBWrite(&HB0, &H0)


            'Button 1
        CASE IS = 22
            FOR wee = 1 TO 45
                SBplay 200, 0, 1, 100, 262
            NEXT wee
            CALL SBWrite(&HB0, &H0)


            'Button 2
        CASE IS = 23
            FOR wee = 1 TO 45
                SBplay 50, 1, 0, 50, 259
            NEXT wee
            CALL SBWrite(&HB0, &H0)


            'Button 3
        CASE IS = 24
            FOR wee = 1 TO 45
                SBplay 100, 0, 10, 25, 262
            NEXT wee
            CALL SBWrite(&HB0, &H0)


            'Swizz Punches
        CASE IS = 25
            FOR wee = 1 TO 45
                SBplay 14, 0, 14, 15, 260
            NEXT wee
            CALL SBWrite(&HB0, &H0)


            'Conclusion
        CASE IS = 26
            FOR wee = 1 TO 45
                SBplay 200, 0, 0, 131, 2
            NEXT wee
            CALL SBWrite(&HB0, &H0)



    END SELECT
END IF

END SUB

SUB sbinit
fault$ = "sb"
LOCATE 1, 1
COLOR 15

PRINT "Initializing Sound Card"
FOR Q = 1 TO &HF5
    CALL SBWrite(Q, 0)
NEXT Q

LOCATE 1, 1
PRINT "                       "

fault$ = ""
END SUB

SUB SBplay (Freq%, Wave%, Feedback%, Modl%, Clen%)
'Channel 1
'Operator 1
CALL SBWrite(&H20, Modl%) '&H51
CALL SBWrite(&H40, 10) '49
CALL SBWrite(&H60, &H40) '&HF0
CALL SBWrite(&H80, &H240) '&H77
CALL SBWrite(&HA0, Freq%) 'Freq%
'Operator 2
CALL SBWrite(&H23, 1) '
CALL SBWrite(&H43, 0) '49
CALL SBWrite(&H63, &HF0) '
CALL SBWrite(&H83, Clen%) 'CLEN%
CALL SBWrite(&HB0, &H31) '&H31
                                                   
CALL SBWrite(&HE0, Wave%) '0 or 1
CALL SBWrite(&HC0, Feedback%) '

END SUB

SUB SBWrite (Reg%, Value%)
fault$ = "sb"
OUT &H220, Reg%
FOR x = 0 TO SBWrite.delay1
    a = INP(&H220)
NEXT x
OUT &H223, Value%
FOR x = 0 TO SBWrite.delay2
    a = INP(&H220)
NEXT x
fault$ = ""
END SUB

DEFSNG A-Z
SUB setbody (n%)

SELECT CASE body%(n%)
    CASE 1: maxhp%(n%) = 150: sdelay%(n%) = 5
    CASE 2: maxhp%(n%) = 160: sdelay%(n%) = 8
    CASE 3: maxhp%(n%) = 170: sdelay%(n%) = 9
    CASE 4: maxhp%(n%) = 180: sdelay%(n%) = 15
    CASE 5: maxhp%(n%) = 190: sdelay%(n%) = 18
    CASE 6: maxhp%(n%) = 175: sdelay%(n%) = 10
    CASE 7: maxhp%(n%) = 175: sdelay%(n%) = 11
    CASE 8: maxhp%(n%) = 200: sdelay%(n%) = 20
    CASE 666: maxhp%(n%) = 200: sdelay%(n%) = 5
    CASE 2000: maxhp%(n%) = 200: sdelay%(n%) = 10
END SELECT

health%(n%) = maxhp%(n%)
END SUB

SUB setcmethod

CALL smallwindow
LOCATE 10, 2: PRINT "Clear Method - Type"

IF cmethod% = 0 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 12, 2: PRINT "1 No Clearing"

IF cmethod% = 1 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 13, 2: PRINT "2 LINE BF"

IF cmethod% = 2 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 14, 2: PRINT "3 CLS"

IF cmethod% = 3 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 15, 2: PRINT "4 Horizontal Fade"

IF cmethod% = 4 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 16, 2: PRINT "5 Block Fade"

16 wee$ = INKEY$
SELECT CASE wee$
    CASE IS = "": GOTO 16
    CASE IS = "1": cmethod% = 0
    CASE IS = "2": cmethod% = 1
    CASE IS = "3": cmethod% = 2
    CASE IS = "4": cmethod% = 3
    CASE IS = "5": cmethod% = 4
END SELECT

'---------------------------------------------------------
IF cmethod% > 0 AND wee$ <> CHR$(27) THEN
    CALL csmallwindow
    CALL smallwindow

    LOCATE 10, 2: PRINT "Clear Method - Frequency"

    IF cfreq% = -1 THEN mark = 15 ELSE mark = 7
    COLOR mark: LOCATE 12, 2: PRINT "1 Always"

    IF cfreq% = 1 THEN mark = 15 ELSE mark = 7
    COLOR mark: LOCATE 13, 2: PRINT "2 Often"

    IF cfreq% = 5 THEN mark = 15 ELSE mark = 7
    COLOR mark: LOCATE 14, 2: PRINT "3 Rarely"

    17 wee$ = INKEY$: IF wee$ = "" THEN 17
    IF wee$ = "1" THEN cfreq% = -1
    IF wee$ = "2" THEN cfreq% = 1
    IF wee$ = "3" THEN cfreq% = 5
END IF
CALL csmallwindow
wee$ = ""
END SUB

SUB setdelay
SCREEN , 0, 0
CALL smallwindow
COLOR 15
LOCATE 10, 2: PRINT "Game Speed"

IF rez% = 7 THEN
    LOCATE 12, 2: PRINT " LOW 00 10 20 30 40 50 60 70 80 90 HI"
ELSE
    LOCATE 12, 2: PRINT "Slow 00 10 20 30 40 50 60 70 80 90 Fast"
END IF

COLOR 4
LOCATE 16, 2: PRINT "Press Spacebar To Save."
d = delay%
15
wee$ = INKEY$

IF d = delay% THEN
    COLOR 15
    LOCATE 13, 35 - INT(d / 2000): PRINT "^"

ELSE
    COLOR 7
    LOCATE 13, 35 - INT(d / 2000): PRINT "^"
    COLOR 9
    LOCATE 13, 35 - INT(delay% / 2000): PRINT "^"
END IF

IF wee$ = "6" OR wee$ = CHR$(0) + "M" OR wee$ = "+" OR wee$ = "=" THEN LOCATE 13, 35 - INT(d / 2000): PRINT " ": d = d - 2000
IF wee$ = "4" OR wee$ = CHR$(0) + "K" OR wee$ = "-" THEN LOCATE 13, 35 - INT(d / 2000): PRINT " ": d = d + 2000
IF d < 0 THEN d = 0
IF d > 56000 THEN d = 56000
IF wee$ = " " OR wee$ = CHR$(13) THEN LOCATE 13, 35 - INT(delay% / 2000): PRINT " ": delay% = d
IF wee$ <> CHR$(27) THEN 15

CALL csmallwindow
wee$ = ""
END SUB

SUB setdetails
smallwindow

COLOR 15
LOCATE 10, 2: PRINT "Graphic Details"

IF rez% > 7 THEN
    LOCATE 12, 2: PRINT "Stages"
    LOCATE 12, 12: PRINT "Fighters"
    LOCATE 12, 22: PRINT "HUD"
    LOCATE 12, 32: PRINT "Smears"
    LOCATE 12, 42: PRINT "Fighter Limits"
    n% = 10
ELSE
    LOCATE 12, 2: PRINT "Stgs"
    LOCATE 12, 10: PRINT "Ftrs"
    LOCATE 12, 18: PRINT "HUD"
    LOCATE 12, 26: PRINT "Smrs"
    LOCATE 12, 34: PRINT "FLim"
    n% = 8
END IF


33

'---

wee = 2

IF stagedetail% = 0 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 14, wee: PRINT "1 Low"

IF stagedetail% = 1 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 15, wee: PRINT "2 High"

wee = wee + n%

'---
IF fighterdetail% = 0 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 14, wee: PRINT "3 Low"

IF fighterdetail% = 1 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 15, wee: PRINT "4 High"

wee = wee + n%

'---
IF hudetail% = 0 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 14, wee: PRINT "5 Low"

IF hudetail% = 1 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 15, wee: PRINT "6 High"

wee = wee + n%

'---
IF smears% = 0 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 14, wee: PRINT "7 Off"

IF smears% = 1 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 15, wee: PRINT "8 On"

wee = wee + n%

'---
IF flimits% = 0 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 14, wee: PRINT "9 Off"

IF flimits% = 1 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 15, wee: PRINT "0 On"


wee$ = INKEY$
SELECT CASE wee$
    CASE IS = "1": stagedetail% = 0
    CASE IS = "2": stagedetail% = 1
    CASE IS = "3": fighterdetail% = 0
    CASE IS = "4": fighterdetail% = 1
    CASE IS = "5": hudetail% = 0
    CASE IS = "6": hudetail% = 1
    CASE IS = "7": smears% = 0
    CASE IS = "8": smears% = 1
    CASE IS = "9": flimits% = 0
    CASE IS = "0": flimits% = 1
END SELECT

IF wee$ <> CHR$(27) THEN 33


'----------------------------------------------------------------------------
smallwindow
wee$ = ""
END SUB

SUB setfighter
bigwindow

changed% = 0
zoomsave = zoom
panxsave = panx
panysave = pany

zoom = fighterz(1) / 150
pany = butty(1)
wee = 0
IF rez% = 7 THEN x% = -15

37 redraw% = 0

'----------------------------------------------------------------------------
IF head%(1) >= 100 THEN
    body%(1) = head%(1)
    arms%(1) = head%(1)
    hands%(1) = head%(1)
    legs%(1) = head%(1)
    feet%(1) = head%(1)
END IF

'-------------------------------------------------------------- Fighter Info.
window2d
LINE (5, 15.5)-(99, 89), 0, BF
window3d

IF rez% > 7 THEN

    'Red Text (Titles)
    COLOR 4

    'Left Panel

    LOCATE 6, 30: PRINT "Specials:"
    LOCATE 7, 30: PRINT "Q"
    LOCATE 8, 30: PRINT "W"
    LOCATE 10, 30: PRINT "A"
    LOCATE 11, 30: PRINT "S"

    LOCATE 13, 30: PRINT "Super:"
    LOCATE 14, 30: PRINT "D"

    LOCATE 16, 30: PRINT "Recharges:"
    LOCATE 17, 30: PRINT "RG:"
    LOCATE 18, 30: PRINT "AW:"

    'Right Panel

    LOCATE 6, 55: PRINT "Arm Power Ratings:"
    LOCATE 7, 55: PRINT "HP:"
    LOCATE 8, 55: PRINT "AW:"

    LOCATE 9, 55: PRINT "Leg Power Ratings:"
    LOCATE 10, 55: PRINT "HP:"
    LOCATE 11, 55: PRINT "AW:"

    LOCATE 13, 55: PRINT "Jumping:"
    LOCATE 14, 55: PRINT "Alt       Dis"


    LOCATE 16, 55: PRINT "Starting Conditions"
    LOCATE 17, 55: PRINT "HP:"
    LOCATE 18, 55: PRINT "AW:"

    LOCATE 20, 55: PRINT "Stun Duration"

    LOCATE 20, 30: PRINT "Name"



    'Gray Text (Stats)
    COLOR 8

    LOCATE 18, 59
    SELECT CASE head%(1)
        CASE 1
            PRINT "50%"
            LOCATE 17, 34: PRINT "4"
            LOCATE 18, 34: PRINT "2"

        CASE 2
            PRINT "40%"
            LOCATE 17, 34: PRINT "3"
            LOCATE 18, 34: PRINT "3"

        CASE 3
            PRINT "30%"
            LOCATE 17, 34: PRINT "2"
            LOCATE 18, 34: PRINT "4"

        CASE 4
            PRINT "60%"
            LOCATE 17, 34: PRINT "5"
            LOCATE 18, 34: PRINT "1"

        CASE 5
            PRINT "20%"
            LOCATE 17, 34: PRINT "1"
            LOCATE 18, 34: PRINT "5"
    END SELECT


    'Hands
    LOCATE 7, 32
    SELECT CASE hands%(1)
        CASE 1
            PRINT "Fire Ball"
            LOCATE 8, 32
            PRINT "Twin Mini Balls"

        CASE 2
            PRINT "Power Jab"
            LOCATE 8, 32
            PRINT "Hammer Punch"

        CASE 3
            PRINT "Neck Jab"
            LOCATE 8, 32
            PRINT "Thrust Slam"

        CASE 4
            PRINT "Ball Lightning"
            LOCATE 8, 32
            PRINT "Rising Dragon"

        CASE 5
            PRINT "Triple Shrokken"
            LOCATE 8, 32
            PRINT "Stun Knuckle"
    END SELECT


    'Feet
    LOCATE 10, 32
    SELECT CASE feet%(1)
        CASE 1
            PRINT "Plant Kick"
            LOCATE 11, 32
            PRINT "Nee Bash"

        CASE 2
            PRINT "Axe Kick"
            LOCATE 11, 32
            PRINT "Lightning Kick Blast"

        CASE 3
            PRINT "Stunning Gut Stab"
            LOCATE 11, 32
            PRINT "6-Slip"

        CASE 4
            PRINT "Thrust Kick"
            LOCATE 11, 32
            PRINT "Skip Kick"

        CASE 5
            PRINT "Slasher Strike"
            LOCATE 11, 32
            PRINT "Upper Assault"
    END SELECT


    LOCATE 7, 59
    SELECT CASE arms%(1)
        CASE 1
            PRINT "0"
            LOCATE 8, 59: PRINT "5"

        CASE 2
            PRINT "2"
            LOCATE 8, 59: PRINT "3"

        CASE 3
            PRINT "3"
            LOCATE 8, 59: PRINT "2"

        CASE 4
            PRINT "1"
            LOCATE 8, 59: PRINT "4"

        CASE 5
            PRINT "4"
            LOCATE 8, 59: PRINT "1"

    END SELECT




    LOCATE 14, 59
    SELECT CASE legs%(1)
        CASE 1
            PRINT "7"
            LOCATE 10, 59: PRINT "0"
            LOCATE 11, 59: PRINT "5"
            LOCATE 14, 69: PRINT "16"

        CASE 2
            PRINT "10"
            LOCATE 10, 59: PRINT "2"
            LOCATE 11, 59: PRINT "3"
            LOCATE 14, 69: PRINT "14"

        CASE 3
            PRINT "8"
            LOCATE 10, 59: PRINT "3"
            LOCATE 11, 59: PRINT "2"
            LOCATE 14, 69: PRINT "12"

        CASE 4
            PRINT "14"
            LOCATE 10, 59: PRINT "3"
            LOCATE 11, 59: PRINT "1"
            LOCATE 14, 69: PRINT "10"

        CASE 5
            PRINT "9"
            LOCATE 10, 59: PRINT "2"
            LOCATE 11, 59: PRINT "2"
            LOCATE 14, 69: PRINT "25"
    END SELECT


    LOCATE 17, 59
    SELECT CASE body%(1)
        CASE 1
            PRINT "150"
            LOCATE 14, 32: PRINT "Vex of Evil"
            LOCATE 21, 55: PRINT "5"

        CASE 2
            PRINT "160"
            LOCATE 14, 32: PRINT "Energy Blast"
            LOCATE 21, 55: PRINT "8"

        CASE 3
            PRINT "170"
            LOCATE 14, 32: PRINT "Spear Kick"
            LOCATE 21, 55: PRINT "9"

        CASE 4
            PRINT "180"
            LOCATE 14, 32: PRINT "Health Up"
            LOCATE 21, 55: PRINT "15"

        CASE 5
            PRINT "190"
            LOCATE 14, 32: PRINT "Razer Arms"
            LOCATE 21, 55: PRINT "18"

        CASE 6
            PRINT "175"
            LOCATE 14, 32: PRINT "Neck Snapper"
            LOCATE 21, 55: PRINT "10"

        CASE 7
            PRINT "175"
            LOCATE 14, 32: PRINT "Swizz Punches"
            LOCATE 21, 55: PRINT "11"

        CASE 8
            PRINT "200"
            LOCATE 14, 32: PRINT "Upper Bust"
            LOCATE 21, 55: PRINT "20"

    END SELECT

    LOCATE 21, 30: PRINT name$(1)


END IF
'--------------------------------------------------------------- End of Stats

'----------------------------------------------------------------- 3D Display
panx = buttx(1) + x%
smearender
fighterender
particlerender

'--------------------------------------------------------------- Info Display
COLOR 15
IF rez% > 7 THEN LOCATE 4, 34 ELSE LOCATE 4, 2
PRINT "BUILD FIGHTER"
LOCATE 22, 6: COLOR 15: PRINT "MORE"

'------------------------------------- Mode 0 (Info Display)
IF sfmode% = 0 THEN

    COLOR 12
    LOCATE 6, 6: PRINT "PART       TYPE"
    COLOR 15
    LOCATE 7, 6: PRINT "Head      "; head%(1); "    "
    LOCATE 8, 6: PRINT "Body      "; body%(1); "    "
    LOCATE 9, 6: PRINT "Arms      "; arms%(1); "    "
    LOCATE 10, 6: PRINT "Hands     "; hands%(1); "    "
    LOCATE 11, 6: PRINT "Legs      "; legs%(1); "    "
    LOCATE 12, 6: PRINT "Feet      "; feet%(1); "    "

    COLOR 12
    LOCATE 14, 6: PRINT "PART       COLOR"
    COLOR 15
    LOCATE 15, 6: PRINT "Head"
    LOCATE 16, 6: PRINT "Body"
    LOCATE 17, 6: PRINT "Arms"
    LOCATE 18, 6: PRINT "Hands"
    LOCATE 19, 6: PRINT "Legs"
    LOCATE 20, 6: PRINT "Feet"

    LOCATE 15, 17: COLOR headc%(1): PRINT CHR$(219); CHR$(178); CHR$(177); CHR$(176)
    LOCATE 16, 17: COLOR bodyc%(1): PRINT CHR$(219); CHR$(178); CHR$(177); CHR$(176)
    LOCATE 17, 17: COLOR armsc%(1) + 8: PRINT CHR$(219); CHR$(178); CHR$(177); CHR$(176)
    LOCATE 18, 17: COLOR handsc%(1) + 8: PRINT CHR$(219); CHR$(178); CHR$(177); CHR$(176)
    LOCATE 19, 17: COLOR legsc%(1) + 8: PRINT CHR$(219); CHR$(178); CHR$(177); CHR$(176)
    LOCATE 20, 17: COLOR feetc%(1) + 8: PRINT CHR$(219); CHR$(178); CHR$(177); CHR$(176)

    COLOR 15

    '------------------------------------- Mode 1 (Info Display)
ELSE

    COLOR 12
    LOCATE 6, 6: PRINT "NAME"
    COLOR 15
    LOCATE 7, 6: PRINT "Enter     "
    LOCATE 8, 6: PRINT "Generate  "

    COLOR 12
    LOCATE 10, 6: PRINT "HAIR"
    COLOR 15
    SELECT CASE hairt%(1)
        CASE 1: hairt$ = "Strait"
        CASE 2: hairt$ = "Braid "
    END SELECT
    LOCATE 11, 6: PRINT "Style      "; hairt$
    SELECT CASE hairl%(1)
        CASE 0: hairl$ = "Bald  "
        CASE 1: hairl$ = "Short "
        CASE 2: hairl$ = "Medium"
        CASE 3: hairl$ = "Long  "
    END SELECT
    LOCATE 12, 6: PRINT "Length     "; hairl$
    LOCATE 13, 6: PRINT "Color     ": LOCATE 13, 17: COLOR hairc%(1): PRINT CHR$(219); CHR$(178); CHR$(177); CHR$(176)

    COLOR 12
    LOCATE 15, 6: PRINT "MISC."
    COLOR 15

    IF solidc% = 1 THEN wee$ = "Solid" ELSE wee$ = "Multi"
    LOCATE 16, 6: PRINT "Opponent Colors - "; wee$


END IF


'----------------------------------------------------------------------------

IF ptfighter% < 7 THEN ptfighter% = 7


DO
    wee$ = UCASE$(INKEY$)

    'Shift 3D Display
    IF wee$ = "4" OR wee$ = CHR$(0) + "K" THEN x% = 0: redraw% = 1
    IF wee$ = "6" OR wee$ = CHR$(0) + "M" THEN x% = -15: redraw% = 1

    IF head%(1) < 100 THEN
        SELECT CASE wee$

            CASE "š"
                changed% = 1
                head%(1) = 666
                nee1x(3) = buttx(1) - 3 * d%(1)
                nee2x(3) = buttx(1) - 3 * d%(1)
                foot1x(3) = nee1x(3) + 5 * d%(1)
                foot2x(3) = nee2x(3) + 5 * d%(1)
                name$(1) = "Demize"
                GOTO 37

            CASE "Î": head%(1) = 1998: changed% = 1: GOTO 37
            CASE "Ð": head%(1) = 2000: changed% = 1: GOTO 37
        END SELECT
    END IF


    '----------------------------------------------------------------- Move Arrow

    SELECT CASE wee$

        CASE IS = "8", CHR$(0) + "H"
            LOCATE ptfighter%, 2: PRINT " ": ptfighter% = ptfighter% - 1
            IF ptfighter% = 6 THEN ptfighter% = 7
            IF sfmode% = 0 THEN
                IF ptfighter% = 14 THEN ptfighter% = 12
                IF ptfighter% = 21 THEN ptfighter% = 20
            ELSE
                IF ptfighter% = 10 THEN ptfighter% = 8
                IF ptfighter% = 15 THEN ptfighter% = 13
                IF ptfighter% = 21 THEN ptfighter% = 16
            END IF


            '--------------+

        CASE IS = "5", "2", CHR$(0) + "P"
            LOCATE ptfighter%, 2: PRINT " ": ptfighter% = ptfighter% + 1
            IF ptfighter% = 23 THEN ptfighter% = 22
            IF sfmode% = 0 THEN
                IF ptfighter% = 13 THEN ptfighter% = 15
                IF ptfighter% = 21 THEN ptfighter% = 22
            ELSE
                IF ptfighter% = 9 THEN ptfighter% = 11
                IF ptfighter% = 14 THEN ptfighter% = 16
                IF ptfighter% = 17 THEN ptfighter% = 22
            END IF



    END SELECT

    LOCATE ptfighter%, 2: PRINT CHR$(16)



    '--------------------------------------------------------------------- Select
    IF wee$ = " " OR wee$ = CHR$(13) THEN

        redraw% = 1
        wee$ = ""

        '------------------------------------- Mode 0 (Selection)
        IF sfmode% = 0 THEN

            IF ptfighter% <= 12 THEN changed% = 1

            SELECT CASE ptfighter%

                CASE IS = 7
                    IF head%(1) >= 100 THEN
                        head%(1) = 1
                        body%(1) = 1
                        arms%(1) = 1
                        hands%(1) = 1
                        legs%(1) = 1
                        feet%(1) = 1
                        nee1x(3) = buttx(1) + 5
                        nee2x(3) = buttx(1) - 1
                        foot1x(3) = nee1x(3) - 1
                        foot2x(3) = nee2x(3) - 3
                    ELSE
                        IF head%(1) < 5 THEN head%(1) = head%(1) + 1 ELSE head%(1) = 1
                    END IF

                CASE IS = 9
                    IF arms%(1) < 5 THEN arms%(1) = arms%(1) + 1 ELSE arms%(1) = 1

                CASE IS = 10
                    IF hands%(1) < 5 THEN hands%(1) = hands%(1) + 1 ELSE hands%(1) = 1

                CASE IS = 8
                    IF body%(1) < 8 THEN body%(1) = body%(1) + 1 ELSE body%(1) = 1

                CASE IS = 11
                    IF legs%(1) < 5 THEN legs%(1) = legs%(1) + 1 ELSE legs%(1) = 1

                CASE IS = 12
                    IF feet%(1) < 5 THEN feet%(1) = feet%(1) + 1 ELSE feet%(1) = 1

                    '--------------------

                CASE IS = 15
                    IF headc%(1) < 15 THEN headc%(1) = headc%(1) + 1 ELSE headc%(1) = 1

                CASE IS = 16
                    IF bodyc%(1) < 15 THEN bodyc%(1) = bodyc%(1) + 1 ELSE bodyc%(1) = 1

                CASE IS = 17
                    IF armsc%(1) < 7 THEN armsc%(1) = armsc%(1) + 1 ELSE armsc%(1) = 1

                CASE IS = 18
                    IF handsc%(1) < 7 THEN handsc%(1) = handsc%(1) + 1 ELSE handsc%(1) = 1

                CASE IS = 19
                    IF legsc%(1) < 7 THEN legsc%(1) = legsc%(1) + 1 ELSE legsc%(1) = 1

                CASE IS = 20
                    IF feetc%(1) < 7 THEN feetc%(1) = feetc%(1) + 1 ELSE feetc%(1) = 1

                    '--------------------

                CASE IS = 22
                    sfmode% = 1: redraw% = 1
                    LOCATE ptfighter%, 2: PRINT " "
                    ptfighter% = 7

            END SELECT


            '------------------------------------- Mode 1 (Selection)
        ELSE

            SELECT CASE ptfighter%

                CASE IS = 7
                    LOCATE 21, 30: PRINT "                         "
                    LOCATE 21, 30
                    COLOR 15
                    INPUT ; "", name$(1)

                CASE IS = 8
                    fightername (1)

                CASE IS = 11
                    IF hairt%(1) = 1 THEN hairt%(1) = 2 ELSE hairt%(1) = 1

                CASE IS = 12
                    IF hairl%(1) < 3 THEN hairl%(1) = hairl%(1) + 1 ELSE hairl%(1) = 0

                CASE IS = 13
                    IF hairc%(1) < 15 THEN hairc%(1) = hairc%(1) + 1 ELSE hairc%(1) = 1

                CASE IS = 16
                    IF solidc% = 1 THEN solidc% = 0 ELSE solidc% = 1

                CASE IS = 22
                    sfmode% = 0: redraw% = 1
                    LOCATE ptfighter%, 2: PRINT " "
                    ptfighter% = 7

            END SELECT
        END IF
    END IF

    '----------------------------------------------------------------------------
    IF redraw% = 1 THEN 37
LOOP UNTIL wee$ = CHR$(27)

cbigwindow
wee$ = ""

zoom = zoomsave
panx = panxsave
pany = panysave

IF changed% = 1 THEN stageinit

'----------------------------------------------------------------------------
END SUB

SUB setfightercpu

IF stage% < 1000 THEN
    'Normal
    hairt%(2) = INT(RND * 2) + 1
    hairl%(2) = INT(RND * 4)
    hairc%(2) = INT(RND * 15) + 1
    head%(2) = INT(RND * 5) + 1
    arms%(2) = INT(RND * 5) + 1
    hands%(2) = INT(RND * 4) + 1
    body%(2) = INT(RND * 8) + 1
    legs%(2) = INT(RND * 5) + 1
    feet%(2) = INT(RND * 5) + 1
ELSE
    'Master Bean
    hairl%(2) = 3
    hairt%(2) = 1
    head%(2) = 2000
    arms%(2) = 2000
    hands%(2) = 2000
    body%(2) = 2000
    legs%(2) = 2000
    feet%(2) = 2000
END IF

IF stage% < 1000 THEN
    IF solidc% = 1 THEN
        'Solid Colors
        c% = INT(RND * 7) + 1
        headc%(2) = c% + 8
        bodyc%(2) = c% + 8
        armsc%(2) = c%
        handsc%(2) = c%
        legsc%(2) = c%
        feetc%(2) = c%

    ELSE
        'Normal Colors
        headc%(2) = INT(RND * 15) + 1
        bodyc%(2) = INT(RND * 15) + 1
        armsc%(2) = INT(RND * 7) + 1
        handsc%(2) = INT(RND * 7) + 1
        legsc%(2) = INT(RND * 7) + 1
        feetc%(2) = INT(RND * 7) + 1
    END IF

ELSE
    'Master Bean's Colors
    hairc%(2) = 4
    headc%(2) = 9
    bodyc%(2) = 1
    armsc%(2) = 4
    handsc%(2) = 1
    legsc%(2) = 4
    feetc%(2) = 1
END IF



IF stage% = 15 THEN
    hairl%(2) = 0
    head%(2) = 666
    arms%(2) = 666
    hands%(2) = 666
    body%(2) = 666
    legs%(2) = 666
    feet%(2) = 666
    headc%(2) = 4
    bodyc%(2) = 4
    armsc%(2) = 4
    handsc%(2) = 4
    legsc%(2) = 4
    feetc%(2) = 8
END IF



END SUB

SUB setframeskip


CALL smallwindow
LOCATE 10, 2: PRINT "Change Frame Skip Value"

IF frameskip% = 0 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 12, 2: PRINT "1 Render Everything"

IF frameskip% = 1 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 13, 2: PRINT "2 Skip Some Frames"

IF frameskip% = 3 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 14, 2: PRINT "3 Skip Many Frames"

IF frameskip% = 5 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 15, 2: PRINT "4 Skip Most Frames"

10 wee$ = INKEY$: IF wee$ = "" THEN 10
IF wee$ = "1" THEN frameskip% = 0
IF wee$ = "2" THEN frameskip% = 1
IF wee$ = "3" THEN frameskip% = 3
IF wee$ = "4" THEN frameskip% = 5

CALL csmallwindow
wee$ = ""
END SUB

SUB seti16
smallwindow
LOCATE 10, 2: PRINT "i16 Options"

IF i16m% = 0 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 12, 2: PRINT "1 Show All i16"

IF i16m% = 1 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 13, 2: PRINT "2 No i16 in Stage Select"

IF i16m% = 2 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 14, 2: PRINT "3 Don't Show any i16"

12 wee$ = INKEY$: IF wee$ = "" THEN 12
SELECT CASE wee$
    CASE IS = "1": i16m% = 0
    CASE IS = "2": i16m% = 1
    CASE IS = "3": i16m% = 2
END SELECT

csmallwindow
END SUB

SUB setko (n)

SELECT CASE head%(n)
    CASE 1: ko(n) = 50
    CASE 2: ko(n) = 40
    CASE 3: ko(n) = 30
    CASE 4: ko(n) = 60
    CASE 5: ko(n) = 20
    CASE 666: ko(n) = 100
END SELECT
END SUB

SUB setparticles

particleclear

zoomsave = zoom
panxsave = panx
panysave = pany
ringsave% = ring%

zoom = .35
panx = 0
pany = 0
ring% = 0


CALL smallwindow
LOCATE 10, 2: PRINT "Max Number of Particles to Display"

IF rez% = 7 THEN
    LOCATE 12, 2: PRINT " LOW 00 10 20 30 40 50 60 70 80 90 HI"
ELSE
    LOCATE 12, 2: PRINT "None 00 10 20 30 40 50 60 70 80 90 Many"
END IF
COLOR 4
LOCATE 16, 2: PRINT "Press Spacebar To Save."


p% = particles%

PCOPY 0, 1

25
wee$ = INKEY$

'------------------------
IF rez% > 7 THEN
    pflip

    'Delay
    flicker = TIMER: DO UNTIL TIMER - flicker > .000005: LOOP

    window2d
    LINE (60, 37)-(70, 63), 0, BF
    LINE (5, 48)-(45, 49), 0, BF
    window3d

    particle 50, 45, 1, 16, 2
    particle 50, 45, 1, 15, 1
    decay
    particlemove
    particlerender
END IF
'------------------------

IF p% = particles% THEN
    COLOR 15
    LOCATE 13, 7 + INT(p% / 3.3): PRINT "^"

ELSE
    COLOR 7
    LOCATE 13, 7 + INT(p% / 3.3): PRINT "^"
    COLOR 9
    LOCATE 13, 7 + INT(particles% / 3.3): PRINT "^"
END IF

IF wee$ = "6" OR wee$ = CHR$(0) + "M" OR wee$ = "+" OR wee$ = "=" THEN LOCATE 13, 7 + INT(p% / 3.3): PRINT " ": p% = p% + 10
IF wee$ = "4" OR wee$ = CHR$(0) + "K" OR wee$ = "-" THEN LOCATE 13, 7 + INT(p% / 3.3): PRINT " ": p% = p% - 10
IF p% < 0 THEN p% = 0
IF p% > 90 THEN p% = 90
IF wee$ = " " OR wee$ = CHR$(13) THEN LOCATE 13, 7 + INT(particles% / 3.3): PRINT " ": particles% = p%

IF wee$ <> CHR$(27) THEN 25

particleclear
CALL csmallwindow
wee$ = ""
zoom = zoomsave
panx = panxsave
pany = panysave
ring% = ringsave%
SCREEN , , 0, 0
END SUB

SUB setpath
SCREEN 9
IF rez% > 0 THEN
    smallwindow
END IF

LOCATE 10, 2: PRINT "SET PATH"
LOCATE 11, 2: PRINT "Please give the working directory of this program."
LOCATE 12, 2: PRINT "Ex.  C:\SFB2"
LOCATE 13, 2: INPUT "", path$
path$ = UCASE$(path$)

LOCATE 14, 2: PRINT "Would you like save this info as C:\SFB2.PTH [Y/N]?"

30 wee$ = UCASE$(INKEY$): IF wee$ = "" THEN 30
IF wee$ = "Y" THEN
    OPEN "c:\sfb2.pth" FOR OUTPUT AS #1
    WRITE #1, path$
    CLOSE #1
END IF
IF rez% > 0 THEN csmallwindow
CLS
END SUB

SUB setrez

CALL smallwindow
LOCATE 10, 2: PRINT "Change Screen Resolution"

IF rez% = 7 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 13, 2: PRINT "1 (320x200)"

IF rez% = 8 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 14, 2: PRINT "2 (640x200)"

IF rez% = 9 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 15, 2: PRINT "3 (640x350)"


6 wee$ = INKEY$: IF wee$ = "" THEN 6
IF wee$ = "1" THEN rez% = 7
IF wee$ = "2" THEN rez% = 8
IF wee$ = "3" THEN rez% = 9

IF wee$ = CHR$(27) THEN 11

IF wee$ <> "1" AND wee$ <> "2" AND wee$ <> "3" AND wee$ <> "4" AND wee$ <> "5" THEN 6


11
CALL csmallwindow
SCREEN rez%
CALL window3d

'IF rez% = 8 THEN CALL page2
wee$ = ""
END SUB

SUB setsound

smallwindow
LOCATE 10, 2: PRINT "Sound Quality Options"

IF sbsound% = 1 AND soundwait% = 3 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 12, 2: PRINT "1 Best"

IF sbsound% = 1 AND soundwait% = 4 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 13, 2: PRINT "2 Good"

IF sbsound% = 1 AND soundwait% = 6 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 14, 2: PRINT "3 Ok"

IF sbsound% = 1 AND soundwait% = 10 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 15, 2: PRINT "4 Chunky"

IF sbsound% = 0 THEN mark = 15 ELSE mark = 7
COLOR mark: LOCATE 16, 2: PRINT "5 No Sound"


29 wee$ = INKEY$: IF wee$ = "" THEN 29
IF wee$ = "1" THEN sbsound% = 1: soundwait% = 3
IF wee$ = "2" THEN sbsound% = 1: soundwait% = 4
IF wee$ = "3" THEN sbsound% = 1: soundwait% = 6
IF wee$ = "4" THEN sbsound% = 1: soundwait% = 10
IF wee$ = "5" THEN sbsound% = 0

IF sbsound% = 1 THEN sbinit

csmallwindow
wee$ = ""
END SUB

SUB setstage
CALL bigwindow
COLOR 15: LOCATE 4, 2: PRINT "Select Stage"
COLOR 7: LOCATE 21, 2: PRINT "Press Spacebar To Select"
COLOR 4
window2d
stagewindow 0
x% = 20: y% = 35

27
IF x% > 0 AND x% < 100 THEN LINE (x% - 9.5, y% - 9.5)-(x% + 9.5, y% + 9.5), 12, B
IF x% = 20 AND y% = 35 THEN Slot% = 1
IF x% = 50 AND y% = 35 THEN Slot% = 2
IF x% = 80 AND y% = 35 THEN Slot% = 3
IF x% = 20 AND y% = 65 THEN Slot% = 4
IF x% = 50 AND y% = 65 THEN Slot% = 5
IF x% = 80 AND y% = 65 THEN Slot% = 6

SELECT CASE stageset%
    CASE IS = 0: stagepage% = 1
    CASE IS = 6: stagepage% = 2
    CASE IS = 12: stagepage% = 3
    CASE IS = 18: stagepage% = 4

END SELECT
IF rez% > 7 THEN
    LOCATE 4, 64: PRINT "Page"; stagepage%; "Stage"; stageset% + Slot%
ELSE
    LOCATE 4, 32: PRINT stagepage%; "/"; stageset% + Slot%
END IF

'Display Stage Name
setstagename (Slot% + stageset%)
LOCATE 22, 2: PRINT stagename$


wee$ = INKEY$
IF wee$ <> "" THEN LINE (x% - 9.5, y% - 9.5)-(x% + 9.5, y% + 9.5), 0, B

IF stageset% > 0 THEN arrow1% = 1: c% = 12 ELSE arrow1% = 0: c% = 0
LINE (5, 50)-(8, 40), c%
LINE (5, 50)-(8, 60), c%
LINE (8, 40)-(8, 60), c%

IF stageset% < 12 THEN arrow2% = 1: c% = 12 ELSE arrow2% = 0: c% = 0
LINE (95, 50)-(92, 40), c%
LINE (95, 50)-(92, 60), c%
LINE (92, 40)-(92, 60), c%


IF wee$ = CHR$(0) + "K" OR wee$ = "4" THEN
    IF x% = 20 THEN
        IF arrow1% = 1 THEN stageset% = stageset% - 6: x% = 80: stagewindow 1
    ELSE
        x% = x% - 30
    END IF
END IF

IF wee$ = CHR$(0) + "M" OR wee$ = "6" THEN
    IF x% = 80 THEN
        IF arrow2% = 1 THEN stageset% = stageset% + 6: x% = 20: stagewindow 2
    ELSE
        x% = x% + 30
    END IF
END IF

IF wee$ = CHR$(0) + "P" OR wee$ = "5" OR wee$ = "2" THEN IF y% = 35 THEN y% = 65
IF wee$ = CHR$(0) + "H" OR wee$ = "8" THEN IF y% = 65 THEN y% = 35


IF y% < 35 THEN y% = 35
IF y% > 65 THEN y% = 65

IF wee$ = " " OR wee$ = CHR$(13) THEN
    stage% = stageset% + Slot%
    stageinit
    setfightercpu
END IF

IF wee$ <> CHR$(27) AND wee$ <> " " AND wee$ <> CHR$(13) THEN 27

window3d
cbigwindow
setstagename (stage%)
END SUB

SUB setstagename (n%)
SELECT CASE n%
    CASE 1: stagename$ = "Demon's Alter           "
    CASE 2: stagename$ = "V-Wing Class B-01       "
    CASE 3: stagename$ = "Elky's Arena            "
    CASE 4: stagename$ = "Jungle Raft Ride        "
    CASE 5: stagename$ = "Defence Complex 10      "
    CASE 6: stagename$ = "Picketed Claustrophobia "
    CASE 7: stagename$ = "Crushing Casket         "
    CASE 8: stagename$ = "Silence                 "
    CASE 9: stagename$ = "Extended Altitude 1     "
    CASE 10: stagename$ = "Pain By The Inch        "
    CASE 11: stagename$ = "79th Street             "
    CASE 12: stagename$ = "Extended Altitude 2     "
    CASE 13: stagename$ = "Rest In Pieces          "
    CASE 14: stagename$ = "Endangered              "
    CASE 15: stagename$ = "Lair Of Demize          "
    CASE 16: stagename$ = "Empty Slot (Stage 16)   "
    CASE 17: stagename$ = "Empty Slot (Stage 17)   "
    CASE 18: stagename$ = "Empty Slot (Stage 18)   "
    CASE 1000: stagename$ = "Master Bean's Dojo      "
    CASE 1001: stagename$ = "Dojo (Tutorial)         "
    CASE 1002: stagename$ = "Dojo (Training)         "
END SELECT
END SUB

SUB setstars

zoomsave = zoom
panxsave = panx
panysave = pany

zoom = 1
panx = 0
pany = 0


CALL smallwindow
LOCATE 10, 2: PRINT "Number of Stars to Display"

LOCATE 12, 2: PRINT "Min | | | |  Med  | | | | Max"

COLOR 4
LOCATE 16, 2: PRINT "Press Spacebar To Save."
s% = nstars%

26
wee$ = INKEY$
IF rez% <> 7 THEN
    stars3d 50, -50, 0, 230, 50, .5, 15, 15, 15
    stars3d 50, -50, 0, 230, 50, .5, 0, 0, 0
    starsoffset -.001, .001
    pscube 50, -50, 0, 230, 50, .5, 12, 4, 4
END IF

IF s% = nstars% THEN
    COLOR 15
    LOCATE 13, 6 + s%: PRINT "^"

ELSE
    COLOR 7
    LOCATE 13, 6 + s%: PRINT "^"
    COLOR 9
    LOCATE 13, 6 + nstars%: PRINT "^"
END IF

IF wee$ = "6" OR wee$ = CHR$(0) + "M" OR wee$ = "+" OR wee$ = "=" THEN LOCATE 13, 6 + s%: PRINT " ": s% = s% + 2
IF wee$ = "4" OR wee$ = CHR$(0) + "K" OR wee$ = "-" THEN LOCATE 13, 6 + s%: PRINT " ": s% = s% - 2
IF s% < 0 THEN s% = 0
IF s% > 20 THEN s% = 20
IF wee$ = " " OR wee$ = CHR$(13) THEN LOCATE 13, 6 + nstars%: PRINT " ": nstars% = s%
IF wee$ <> CHR$(27) THEN 26


CALL csmallwindow
wee$ = ""
zoom = zoomsave
panx = panxsave
pany = panysave

END SUB

SUB settings

2 redraw% = 0
bigwindow
COLOR 15, 0
IF rez% = 7 THEN
    LOCATE 4, 17: PRINT "SETTINGS"
ELSE
    LOCATE 4, 37: PRINT "SETTINGS"
END IF

LOCATE 6, 6: PRINT "Screen Resolution"
LOCATE 8, 6: PRINT "Frame Skipping"
LOCATE 10, 6: PRINT "Game Speed"
LOCATE 12, 6: PRINT "Clear Method"
LOCATE 14, 6: PRINT "Stars"
LOCATE 16, 6: PRINT "Particles"
LOCATE 18, 6: PRINT "i16 Images"
LOCATE 20, 6: PRINT "Graphic Details"
LOCATE 22, 6: PRINT "Sound"

IF ptsettings% = 0 THEN ptsettings% = 6

DO
    wee$ = UCASE$(INKEY$)
    '----------------------------------------------------------------- Move Arrow
    SELECT CASE wee$
        CASE IS = "8", CHR$(0) + "H"
            LOCATE ptsettings%, 2: PRINT " "
            IF ptsettings% > 6 THEN ptsettings% = ptsettings% - 2 ELSE ptsettings% = 22

        CASE IS = "5", "2", CHR$(0) + "P"
            LOCATE ptsettings%, 2: PRINT " "
            IF ptsettings% < 22 THEN ptsettings% = ptsettings% + 2 ELSE ptsettings% = 6
    END SELECT
    LOCATE ptsettings%, 2: PRINT CHR$(16)

    '--------------------------------------------------------------------- Select
    IF wee$ = " " OR wee$ = CHR$(13) THEN
        redraw% = 1
        wee$ = ""

        SELECT CASE ptsettings%

            CASE IS = 6
                setrez

            CASE IS = 8
                setframeskip

            CASE IS = 10
                setdelay

            CASE IS = 12
                setcmethod

            CASE IS = 14
                setstars

            CASE IS = 16
                setparticles

            CASE IS = 18
                seti16

            CASE IS = 20
                setdetails

            CASE IS = 22
                setsound

        END SELECT
    END IF

    IF redraw% = 1 THEN 2
LOOP UNTIL wee$ = CHR$(27)
cbigwindow
wee$ = ""
END SUB

SUB smallwindow

SCREEN , 0, 0
COLOR , 0
FOR wee = 0 TO 248 STEP 1
    LINE (midx% - wee, midy% - 75)-(midy% + wee, midy% + 75), INT((RND * 2) + 7)
NEXT wee

LINE (midx% - wee, midy% - 75)-(midy% + wee, midy% + 75), 0, BF
LINE (midx% - wee, midy% - 75)-(midy% + wee, midy% + 75), 15, B
END SUB

SUB smear (x%, y%, Z, c%)

IF stage% = 4 THEN EXIT SUB

DO UNTIL exitloop% = 1 OR wee = 10
    wee = wee + 1
    IF smearl%(wee) = 0 OR smearl%(wee) > 300 THEN
        exitloop% = 1
        smearl%(wee) = 1
        smearc%(wee) = c%
        smearx%(wee) = x%
        smeary%(wee) = y%
        smearz(wee) = Z
    END IF
LOOP
END SUB

SUB smearender
FOR wee = 1 TO 10

    IF smearl%(wee) > 0 THEN
        l = smearl%(wee) / 10
        IF l > 5 THEN l = 5
        psline (smearx%(wee) - l), (smeary%(wee)), (smearz(wee)), (smearx%(wee) + l), (smeary%(wee)), (smearz(wee)), smearc%(wee), 0
    END IF

NEXT wee
END SUB

SUB splash (n)
particle (buttx(n)), (butty(n) + (RND * 20)), (fighterz(n)), 11, 1
particle (buttx(n)), (butty(n) + 20), (fighterz(n)), 12, 1
END SUB

SUB stagebackground

SELECT CASE stage%
    '----------------------------------------------------------------------------
    CASE IS = 1


        'lava
        psdline -500, 100, 2, 500, 100, 13, 4, 12, 4, 1
        IF stagedetail% = 1 THEN
            psdline -375, 100 + bob, 3, 375, 100 - bob, 12, 4, 12, 4, 1
            psdline -250, 100 - bob, 4, 250, 100 + bob, 11, 12, 4, 12, 1
            psdline -125, 100 + bob, 5, 125, 100 - bob, 10, 4, 12, 4, 1
        END IF

        'pillar
        pscube -15, 15, 7, 15, 100, 8, 7, 8, 8

        'steam
        stars3d -500, 50, 2, 500, 100, 13, 5, (flash3%), 12
        starsoffset 0, -.01

        'ring
        pscube -200, 0, 5, 200, 15, 10, 7, 7, 7

        FOR wee = -100 TO 100 STEP 100
            psdpset (wee), 0, 5.1, 9.9, 8
        NEXT wee
        FOR wee = 6.25 TO 9.75 STEP 1.25
            psline -199, 0, (wee), 199, 0, (wee), 8, 0
        NEXT wee

        'alter
        pscube -15, -50, 7, 15, 0, 8, 6, 4, 4
        IF stagedetail% = 1 THEN
            psline -9, -20, 7, 9, -20, 7, 6, 0
            psline -6, -35, 7, 0, -12, 7, 6, 0
            psline 6, -35, 7, 0, -12, 7, 6, 0
            psline -6, -35, 7, 9, -20, 7, 6, 0
            psline 6, -35, 7, -9, -20, 7, 6, 0
        END IF
        pscircle 0, -25, 7, 10, 4

        '----------------------------------------------------------------------------
    CASE IS = 2

        stars2d 7, 7, 15
        starsoffset -.01, 0

        'far wing
        psline -500, -75, 4.5, 100, -75, 6.5, 8, 0
        psline -250, -75, 4.5, 100, -75, 6.5, 7, 0

        'nose
        psline 200, 0, 4, 400, 40, 3.5, 8, 0
        psline 200, 0, 3, 400, 40, 3.5, 15, 0

        'exhaust
        stars3d -900, -25, 2.5, -625, 75, 4, 9, (flash1%), 15

        'hull
        psdline -600, 75, 2.5, -300, 75, 4.5, 15, 7, 8, 1
        psline -300, 75, 4.5, -200, 40, 3.5, 8, 0
        psline -300, 75, 2.5, -200, 40, 3.5, 15, 0
        psline -200, 40, 3.5, 400, 40, 3.5, 7, 0
        FOR wee = -150 TO 150 STEP 50
            psdpset (wee), 0, 3, 4, 7
        NEXT wee
        psdline -200, 0, 3, 200, 0, 4, 15, 7, 8, 1

        'cargo area
        IF stagedetail% = 1 THEN
            psline -800, -150, 3.5, -650, -75, 4.5, 8, 0
            psline -800, -150, 3.5, -650, -75, 2.5, 15, 0
            psline -800, -150, 3.5, -350, -150, 3.5, 7, 0
            psline -350, -150, 3.5, -250, -75, 4.5, 8, 0
            psline -350, -150, 3.5, -250, -75, 2.5, 15, 0
        END IF
        psdline -650, -75, 2.5, -250, -75, 4.5, 15, 7, 8, 1
        psdline -650, -75, 2.5, -600, 75, 4.5, 15, 7, 8, 1
        psline -250, -75, 4.5, -200, 0, 4, 8, 0
        psline -250, -75, 2.5, -200, 0, 3, 15, 0


        '----------------------------------------------------------------------------
    CASE IS = 3

        'horizon
        window2d
        LINE (0, 50)-(100, 50), 8
        window3d


        'Ground
        psdline -500, 115, 1, 500, 115, 20, 0, 7, 8, 1

        'Ceiling
        pscube -150, -45, 3, 150, -50, 8, 15, 7, 8

        'Floor
        pscube -150, 110, 3, 150, 115, 8, 15, 7, 8

        'Back Struts
        IF stagedetail% = 1 THEN
            pscube -145, -45, 7, -125, 110, 7.5, 15, 7, 8
            pscube 145, -45, 7, 125, 110, 7.5, 15, 7, 8
        END IF

        'Ring
        pscube -100, 100, 4, 100, 110, 7, 15, 7, 8


        FOR wee = -60 TO 60 STEP 40
            psdpset (wee), 100, 4, 7, 7
        NEXT wee

        FOR wee = 4.5 TO 6.5 STEP 1
            psline -100, 100, (wee), 100, 100, (wee), 7, 0
        NEXT wee

        '----------------------------------------------------------------------------
    CASE IS = 4

        starsoffset -.002, 0

        'Trees
        IF stagedetail% = 1 THEN

            FOR wee = -2000 TO 1000 STEP 1500
                psdline wee + wx, -500, 5, wee + wx, 10, 15, 6, 0, 4, 0
            NEXT wee

            FOR wee = -4000 TO -2000 STEP 1000
                psdline wee + 250 + wx, -400, 10, wee + 250 + wx, 0, 20, 6, 0, 4, 0
            NEXT wee

            FOR wee = -3000 TO 1000 - ticker% STEP 500
                psline wee + wx, -400, 25, wee + wx, -700, 1, 2, 0
            NEXT wee

            FOR wee = -5000 TO 1000 - ticker% STEP 1000
                psline wee + wx, -400, 15, wee + wx, -1000, 1, 2, 0
            NEXT wee
        END IF
        'end trees


        IF ticker% < 1000 THEN
            stars3d -1000 + wx, wy, 2, -500 + wx, 1 + wy, 6, 9, (flash1%), 15
            psline -1000 + wx, wy, 6, -1100 + wx, 100 + wy, 6, 1, 0
            psline -1000 + wx, wy, 6, 500 + wx, wy, 6, 1, 0
            psline 500 + wx, wy, 6, 1000 + wx, wy, 4, 1, 0
            psline -2000 + wx, 100 + wy, 6, -1100 + wx, 100 + wy, 6, 1, 0
            psline -3000 + wx, 200 + wy, 6, -2000 + wx, 100 + wy, 6, 1, 0
        ELSE
            psline -2000 + wx, 100 + wy, 6, -1100 + wx, 100 + wy, 6, 1, 0
            psline -3000 + wx, 200 + wy, 6, -2000 + wx, 100 + wy, 6, 1, 0
            psline -5000 + wx, 200 + wy, 6, -3000 + wx, 200 + wy, 6, 1, 0
            psline -6500 + wx, 950 + wy, 4, -6000 + wx, 950 + wy, 6, 1, 0
            psline -6000 + wx, 950 + wy, 6, -5000 + wx, 950 + wy, 6, 1, 0
            psline -5000 + wx, 200 + wy, 6, -5000 + wx, 950 + wy, 6, 1, 0
            stars3d -5000 + wx, 200 + wy, 2, -4500 + wx, 201 + wy, 6, 9, (flash1%), 15
            stars3d -5700 + wx, 950 + wy, 2, -5000 + wx, 951 + wy, 6, 15, (flash1%), 15
        END IF

        'raft
        psdline -200 - (bob / 5), 30 - bob, 3, 200 - (bob / 5), 30 + bob, 5, 4, 4, 4, 1
        psdline -200 + (bob / 5), -bob, 3, -200 - (bob / 5), 30 - bob, 5, 4, 4, 4, 0
        psdline 200 - (bob / 5), 30 + bob, 3, 200 + (bob / 5), bob, 5, 4, 4, 4, 0
        psdline -200 + (bob / 5), -bob, 3, 200 + (bob / 5), bob, 5, 6, 6, 6, 1
        psdline -200 + (bob / 5), -bob, 3.5, 200 + (bob / 5), bob, 4.5, 6, 6, 6, 0
        psline -200 + (bob / 5), -bob, 4, 200 + (bob / 5), bob, 4, 6, 0

        IF ticker% < 1000 THEN
            psline -3000 + wx, 200 + wy, 2, -2000 + wx, 100 + wy, 2, 9, 0
            psline -2000 + wx, 100 + wy, 2, -1100 + wx, 100 + wy, 2, 9, 0
            psline -1000 + wx, wy, 2, -1100 + wx, 100 + wy, 2, 9, 0
            psline -1000 + wx, wy, 2, 500 + wx, wy, 2, 9, 0
            psline 500 + wx, wy, 2, 1000 + wx, wy, 4, 9, 0
        ELSE
            psline -3000 + wx, 200 + wy, 2, -2000 + wx, 100 + wy, 2, 9, 0
            psline -2000 + wx, 100 + wy, 2, -1100 + wx, 100 + wy, 2, 9, 0
            psline -6500 + wx, 950 + wy, 4, -6000 + wx, 950 + wy, 2, 9, 0
            psline -6000 + wx, 950 + wy, 2, -5000 + wx, 950 + wy, 2, 9, 0
            psline -5000 + wx, 200 + wy, 2, -5000 + wx, 950 + wy, 2, 9, 0
            psline -5000 + wx, 200 + wy, 2, -3000 + wx, 200 + wy, 2, 9, 0
        END IF


        '----------------------------------------------------------------------------
    CASE IS = 5

        'horizon
        window2d
        LINE (0, 50)-(100, 50), 8
        window3d

        'pads
        psdline -200, 0, 5, 200, 0, 15, 15, 7, 8, 1
        psdline 400, 0, 5, 800, 0, 15, 15, 7, 8, 1

        '-----Ship
        IF ticker% < 2100 THEN
            'landing gear
            psline -60, -25 + wy, 13, -70, wy + trigger1, 13.5, 8, 0
            psline 60, -25 + wy, 13, 70, wy + trigger1, 13.5, 8, 0
            psline 0, -25 + wy, 10, 0, wy + trigger1, 9 + trigger2, 7, 0

            'exhaust
            stars3d -90, -85 + wy, 12, -80, -30 + wy, 13, flash1%, 9, flash1%
            stars3d 80, -85 + wy, 12, 90, -30 + wy, 13, flash1%, 9, flash1%
            starsoffset 0, .005

            'left wing
            psline -75, -100 + wy, 14, -175, -50 + wy, 14, 8, 0
            psline -75, -100 + wy, 10, -175, -50 + wy, 13, 7, 0
            psdline -75, -75 + wy, 12, -90, -92.5 + wy, 14, 7, 8, 8, 1
            psdpset -175, -50 + wy, 11, 15, 7

            'right wing
            psline 75, -100 + wy, 14, 175, -50 + wy, 14, 8, 0
            psline 75, -100 + wy, 10, 175, -50 + wy, 13, 7, 0
            psdline 75, -75 + wy, 12, 90, -92.5 + wy, 14, 7, 8, 8, 1
            psdpset 175, -50 + wy, 11, 15, 7

            'hull
            pscube -75, -100 + wy, 10, 75, -25 + wy, 14, 7, 7, 8

            'nose
            psline -75, -25 + wy, 10, -25, -40 + wy, 6, 8, 0
            psline 75, -25 + wy, 10, 25, -40 + wy, 6, 8, 0
            psline -75, -100 + wy, 10, -25, -40 + wy, 6, 7, 0
            psline 75, -100 + wy, 10, 25, -40 + wy, 6, 7, 0
            psline -25, -40 + wy, 6, 25, -40 + wy, 6, 7, 0
        END IF

        'building
        pscube -800, -300, 2, -400, 0, 15, 15, 7, 8



        '----------------------------------------------------------------------------
    CASE IS = 6

        'Back Wall "X"
        IF stagedetail% = 1 THEN
            psline -200, -300, 10, 200, 0, 10, 8, 0
            psline 200, -300, 10, -200, 0, 10, 8, 0

            'Ceiling
            pscube -200, -315, 5, 200, -300, 10, 7, 7, 8

            'floor
            pscube -200, 0, 5, 200, 15, 10, 7, 7, 8

        ELSE
            'Low detail
            'Ceiling
            psdline -200, -300, 5, 200, -300, 10, 7, 7, 8, 1
            'Floor
            psdline -200, 0, 5, 200, 0, 10, 7, 7, 8, 1
        END IF

        FOR wee = -150 TO 150 STEP 50
            psdpset wee, 0, 5, 10, 7
        NEXT wee


        'Walls and Spikes
        IF panx < 0 OR zoom > .07 THEN
            pscube -196, -300, 5.5, -185, -.5, 9.5, 6, 4, 4
            FOR wee = -155 TO -10 STEP 30
                psline -185, (wee) + 15, 8.5, -175, (wee) + 10, 8.5, 8, 0
                psline -185, (wee + 30), 8, -175, (wee) + 25, 8, 7, 0
            NEXT wee
        END IF

        IF panx >= 0 OR zoom > .07 THEN
            pscube 196, -300, 5.5, 185, -.5, 9.5, 6, 4, 4
            FOR wee = -155 TO -10 STEP 30
                psline 185, (wee) + 15, 8.5, 175, (wee) + 10, 8.5, 8, 0
                psline 185, (wee + 30), 8, 175, (wee) + 25, 8, 7, 0
            NEXT wee
        END IF


        '----------------------------------------------------------------------------
    CASE IS = 7

        'Back Wall
        IF stagedetail% = 1 THEN
            FOR wee = -400 TO 400 STEP 200
                psline wee, -300, 10, wee, 0, 10, 8, 0
            NEXT wee
        END IF

        'Ceiling
        psdline -400, -300, 5, 400, -300, 10, 15, 7, 8, 0
        FOR wee = -400 TO 400 STEP 200
            psdpset wee, -300, 5, 10, 7
        NEXT wee

        'floor
        psdline -400, 0, 5, 400, 0, 10, 15, 7, 8, 0
        FOR wee = -400 TO 400 STEP 200
            psdpset wee, 0, 5, 10, 7
        NEXT wee

        'Crush Walls
        pscube -10 - wx, -300, 5.5, -wx, -.5, 9.5, 6, 4, 4
        pscube wx, -300, 5.5, 10 + wx, -.5, 9.5, 6, 4, 4
        IF stagedetail% = 1 THEN
            psline -wx, -300, 5.5, -wx, -.5, 9.5, 4, 0
            psline -wx, -300, 9.5, -wx, -.5, 5.5, 4, 0
            psline wx, -300, 5.5, wx, -.5, 9.5, 4, 0
            psline wx, -300, 9.5, wx, -.5, 5.5, 4, 0
        END IF

        '----------------------------------------------------------------------------
    CASE IS = 8

        'Sky
        window2d
        LINE (0, 30)-(100, 30), 4
        LINE (0, 40)-(100, 40), 4
        LINE (0, 46)-(100, 46), 12
        LINE (0, 50)-(100, 50), 14
        window3d


        'Ring
        pscube -400, 0, 1, 400, 25, 21, 15, 7, 8

        IF stagedetail% = 1 THEN
            psdline -320, 0, 3, 320, 0, 19, 8, 7, 8, 1
            psdline -240, 0, 5, 240, 0, 17, 8, 7, 8, 1
            psdline -160, 0, 7, 160, 0, 15, 8, 7, 8, 1
            psdline -80, 0, 9, 80, 0, 13, 8, 7, 8, 1
        END IF

        '----------------------------------------------------------------------------
    CASE IS = 9

        'Shocker
        psdline -500, 100, 4, 500, 100, 12, flash1%, flash1%, flash1%, 1


        'Rear Support
        pscube -20, -25, 10, 20, 100, 11, 7, 7, 8

        IF stagedetail% = 1 THEN
            pscircle 0, 0, 10, 10, 8
            psline -300, -trigger1, 6, 300, trigger1, 10, 7, 0
            psline -300, -trigger1, 10, 300, trigger1, 6, 7, 0
        END IF

        'Tilting Ring
        psdline -300, -trigger1, 6, 300, trigger1, 10, 15, 7, 8, 1


        '----------------------------------------------------------------------------
    CASE IS = 10

        'Walls
        pscube -225, -300, 6, -200, 15, 8, 15, 7, 8
        pscube 200, -300, 6, 225, 15, 8, 15, 7, 8

        'Top Bar
        psdline -200, -300, 6.8, 200, -300, 7.2, 15, 0, 8, 0

        'Rear Pendulum
        psline wx, -300, 7, wx, -20 - (trigger1 * 10), 7 + trigger1, 7, 0
        psline wx, -15 - (trigger1 * 10), 7 + trigger1, wx, -20 - (trigger1 * 10), 6.5 + trigger1, (trigger3), 0
        psline wx, -15 - (trigger1 * 10), 7 + trigger1, wx, -20 - (trigger1 * 12), 7.5 + trigger1, (trigger3), 0

        'ring
        pscube -200, 0, 6, 200, 15, 8, 9, 9, 1
        psline -200, 0, 6, 200, 0, 8, 1, 0
        psline -200, 0, 8, 200, 0, 6, 1, 0


        '----------------------------------------------------------------------------
    CASE IS = 11, 12

        'rear building
        psline -1500, -700, 23, 1500, 0, 23, 8, 1
        IF stagedetail% = 1 THEN
            FOR wee = -1000 TO 1000 STEP 500
                psline wee, -700, 23, wee, 0, 23, 8, 0
            NEXT wee
        END IF

        'Left building
        IF stagedetail% = 1 AND panx <= 0 THEN
            FOR wee = -15 TO -800 STEP -150
                psdline -1000, wee, 9, -400, wee, 17, 9, 1, 1, 1
            NEXT wee
        END IF
        pscube -1000, -800, 9, -400, 0, 17, 15, 7, 8

        'Right building
        IF panx > -200 THEN pscube 400, -1000, 9, 1500, 0, 17, 9, 1, 1

        'center building
        pscube -200, -500, 9, 200, 0, 17, 7, 7, 8
        'windows
        IF stagedetail% = 1 THEN
            FOR wee = -15 TO -450 STEP -100
                psline -190, wee - 60, 9, 190, wee, 9, 9, 1
                psline -200, wee, 10, -200, wee, 16, 1, 0
                psline 200, wee, 10, 200, wee, 16, 1, 0
            NEXT wee
        END IF

        psline -200, -500, 9, 200, -500, 17, 7, 0
        psline 200, -500, 9, -200, -500, 17, 7, 0



        '----------------------------------------------------------------------------
    CASE IS = 13, 14

        IF trigger1 = 0 OR trigger1 = 15 THEN

            'Rear fence
            FOR wee = -175 TO 175 STEP 25
                psline (wee), (0), (15), (wee), (-35), (15), 7, 0
            NEXT wee

            'Side fences
            FOR wee = 2.5 TO 15 STEP 1
                psline (-200), (0), (wee), (-200), (-35), (wee), 7, 0
                psline (200), (0), (wee), (200), (-35), (wee), 7, 0
            NEXT wee


            'High Detail Stuff
            IF stagedetail% = 1 THEN
                psline (-200), (-20), (15), (200), (-20), (15), 8, 0

                psline (-200), (-20), (2.5), (-200), (-20), (3.5), 8, 0
                psline (200), (-20), (2.5), (200), (-20), (3.5), 8, 0

                psline (-200), (-20), (4.5), (-200), (-20), (15), 8, 0
                psline (200), (-20), (4.5), (200), (-20), (15), 8, 0
            END IF


            'Graves
            FOR wee = -165 TO 35 STEP 200
                pscube wee, -15, 5, wee + 10, 0, 5.1, 7, 7, 8

                'Far Cross
                psline wee + 72, -27, 9, wee + 76, 0, 9, 4, 0
                psline wee + 80, -20, 9, wee + 66, -19, 9, 4, 0

                'Near Cross
                psline wee - 22, -27, 7, wee - 26, 0, 7, 4, 0
                psline wee - 30, -20, 7, wee - 16, -19, 7, 4, 0

                pscube wee + 100, -15, 8, wee + 110, 0, 8.1, 7, 8, 8
                psline wee + 50, -15, 10, wee + 60, 0, 10, 7, 1
                psline wee + 150, -15, 12, wee + 160, 0, 12, 8, 1
            NEXT wee



            '---------- Dead Tree
            'trunk
            psline 120, 0, 4.8, 125, -23, 5, 4, 0
            psline 130, 0, 4.2, 120, -60, 5, (trigger2), 0
            psline 145, 0, 4.5, 125, -50, 4.9, 4, 0
            psline 150, 0, 5, 125, -75, 5, 4, 0
            psline 50, (-150 + trigger1), 5, 125, -75, 5, 4, 0
            psline 60, (-135 + trigger1), 5, 120, -60, 5, (trigger2), 0
            psline 90, (-100 + trigger1), 4.8, 120, -70, 4.5, 4, 0

            'Incomming branch
            psline 140, (-80 + trigger1), 4, 120, -70, 4.5, 4, 0
            psline 150, (-85 + trigger1), 3, 120, -63, 4.9, 4, 0
            psline 150, (-85 + trigger1), 3, 128, -65, 5, (trigger2), 0


        END IF

        '--------------------+


        IF stage% = 14 THEN

            IF stagedetail% = 1 THEN
                '--- Crucifix
                'Body
                psline -10, 325, 7, 8, 390, 7, 8, 0
                psline 10, 325, 7, -8, 390, 7, 8, 0
                'Legs
                psline -5, 470, 7, 8, 390, 7, 8, 0
                psline 5, 470, 7, -8, 390, 7, 8, 0
                'Feet
                psline 0, 470, 7, 0, 495, 7, 8, 0
                'arms
                psline -9, 355, 7, -55, 370, 7, 8, 0
                psline -100, 345, 7, -30, 370, 7, 8, 0
                psline 9, 355, 7, 55, 370, 7, 8, 0
                psline 100, 345, 7, 30, 370, 7, 8, 0
            END IF

            'Room/Ring
            psdline -175, 300, 3, -100, 250, 7, 4, 0, 4, 0
            psdline 175, 300, 3, 100, 250, 7, 4, 0, 4, 0
            pscube -175, 300, 1.5, 175, 500, 7, 12, 4, 4
            pscube -100, 495, 3, 100, 500, 5, 15, 7, 8


            'Steam
            particle (-175 + (RND * 350)), (500), (1.5 + (RND * 1.5)), 15, 1
            particle (-175 + (RND * 350)), (500), (5 + (RND * 2)), 15, 1
            stars3d -175, 450, 1.5, 175, 500, 7, 7, 8, 7
            starsoffset 0, -.005
        END IF



        '----------------------------------------------------------------------------
    CASE IS = 15

        IF ticker% < 175 THEN
            pscube -250, -300, 1.5, 300, 0, 7, 7, 8, 8
            psline -100.5, -100, 7, -99.5, -80, 7, 8, 1
            psline -101.5, -100, 7, -98.5, -100, 7, 8, 1
            particle -100, -102, 7, 16, 1
        ELSE


            'Back Room
            IF stagedetail% = 1 THEN

                FOR wee = -100 TO 100 STEP 50
                    psline (wee), -40, 30, (wee), 0, 30, 4, 0
                NEXT wee
                psline 0, -140, 30, 0, -50, 30, 4, 0
                psline -25, -70, 30, 25, -70, 30, 4, 0

                'Hall and Mats
                psline -100, -100, 15, -50, 0, 15, 0, 2
                psline 50, -100, 15, 100, 0, 15, 0, 2
                psline -50, -100, 15, 50, 0, 15, 4, 1
                pscube -50, -100, 10, 50, 0, 15, 4, 4, 8
                IF ticker% < 300 THEN psline -400, -100, 10, -175, 0, 10, 0, 2
                psline -175, -100, 10, -50, 0, 10, 0, 2
                psline 50, -100, 10, 175, 0, 10, 0, 2
                psline -50, -100, 10, 50, 0, 10, 4, 1
            END IF


            'Hallway
            IF ticker% < 350 THEN FOR wee = -700 TO -300 STEP 75: psdpset (wee), 0, 3, 6, 8: NEXT wee
            pscube -800, -100, 3, -200, 0, 6, 4, 4, 4

            'Gate
            psdline -202, trigger3, 3.4, -202, trigger3 - 100, 3.8, 8, 8, 8, 0
            psdline -202, trigger3, 4.2, -202, trigger3 - 100, 4.6, 8, 8, 8, 0
            psdline -203, trigger3, 5, -203, trigger3 - 100, 5.4, 8, 8, 8, 0
            psdpset -201.5, trigger3 - 25, 3, 6, 7
            psdpset -201.5, trigger3 - 75, 3, 6, 7


            'Rear Wall
            psline -100, 0, 10, 100, 0, 10, 4, 0
            psline -200, -200, 10, 200, -200, 10, 4, 0
            psline -100, 0, 10, -200, -200, 10, 4, 0
            psline 100, 0, 10, 200, -200, 10, 4, 0


            'Rear Corners
            psline -100, 0, 10, -200, 0, 6, 4, 0
            psline 100, 0, 10, 200, 0, 6, 4, 0
            psline -200, -200, 10, -200, 0, 6, 4, 0
            psline 200, -200, 10, 200, 0, 6, 4, 0


            'Sides
            psline -200, -200, 2, -200, -200, 10, 4, 0
            psline 200, -200, 2, 200, -200, 10, 4, 0
            psline 200, 0, 3, 200, 0, 6, 4, 0


            IF stagedetail% = 1 THEN
                '--- Circle Symbol
                'Outer Circle
                psdline -25, 0, 3.5, 25, 0, 6.5, 4, 0, 4, 0
                psline -25, 0, 3.5, -50, 0, 4, 4, 0
                psline -60, 0, 4.5, -50, 0, 4, 4, 0
                psline -60, 0, 4.5, -60, 0, 5.5, 4, 0
                psline -25, 0, 6.5, -50, 0, 6, 4, 0
                psline -60, 0, 5.5, -50, 0, 6, 4, 0
                psline 25, 0, 3.5, 50, 0, 4, 4, 0
                psline 60, 0, 4.5, 50, 0, 4, 4, 0
                psline 60, 0, 4.5, 60, 0, 5.5, 4, 0
                psline 25, 0, 6.5, 50, 0, 6, 4, 0
                psline 60, 0, 5.5, 50, 0, 6, 4, 0
                'Inner Design
                'NS Points
                psline 0, 0, 6.5, -20, 0, 5, 4, 0
                psline 0, 0, 3.5, -20, 0, 5, 4, 0
                psline 0, 0, 6.5, 20, 0, 5, 4, 0
                psline 0, 0, 3.5, 20, 0, 5, 4, 0
                'EW Points
                psline -60, 0, 5, 0, 0, 5.5, 4, 0
                psline -60, 0, 5, 0, 0, 4.5, 4, 0
                psline 60, 0, 5, 0, 0, 5.5, 4, 0
                psline 60, 0, 5, 0, 0, 4.5, 4, 0
            END IF

            'Ring of Fire
            IF RND < .3 THEN
                particle -63, -2, 5, 27, 1
                particle 63, -2, 5, 27, 1

                particle -45, -2, 6.2, 27, 1
                particle 45, -2, 6.2, 27, 1
                particle -45, -2, 3.7, 27, 1
                particle 45, -2, 3.7, 27, 1

                particle 0, -2, 7, 27, 1
                particle 0, -2, 3, 27, 1

                particle -20, -2, 6.8, 27, 1
                particle 20, -2, 6.8, 27, 1
                particle -20, -2, 3.2, 27, 1
                particle 20, -2, 3.2, 27, 1

            END IF

        END IF

        '----------------------------------------------------------------------- Dojo
    CASE IS = 1000, 1001, 1002

        'Walls
        pscube -200, -300, 3, 200, 0, 10, 12, 4, 4

        'Weapon Racks
        FOR wee = 0 TO 50 STEP 10
            psline (-75 - wee), -55, 10, (-75 - wee), -10, 10, 8, 0
            psline (75 + wee), -55, 10, (75 + wee), -10, 10, 8, 0
        NEXT wee
        psline -125, -45, 9.8, -75, -45, 9.8, 7, 0
        psline -125, -15, 9.8, -75, -15, 9.8, 7, 0
        psline 125, -45, 9.8, 75, -45, 9.8, 7, 0
        psline 125, -15, 9.8, 75, -15, 9.8, 7, 0


        'Torch Posts
        pscube -150, -35, 7, -154, 0, 7.2, 15, 7, 8
        pscube 150, -35, 7, 154, 0, 7.2, 15, 7, 8


        'fire Pit
        starsoffset 0, -.01
        psdline -25, 0, 8, 25, 0, 9, 7, 8, 8, 1
        stars3d -25, -50, 8, 25, 0, 9, 8, 7, 8

        'Fire
        particle ((RND - .5) * 25), -5, 8 + RND, 17, 1
        particle -152, -40, 7.1, 16, 1
        particle 152, -40, 7.1, 16, 1



        '----------------------------------------------------------------------------
END SELECT
END SUB

SUB stageforground
SELECT CASE stage%

    '----------------------------------------------------------------------------
    CASE IS = 2

        'far wing
        psline -500, -75, 2.5, 100, -75, .5, 7, 0
        psline -250, -75, 2.5, 100, -75, .5, 15, 0


        '----------------------------------------------------------------------------
    CASE IS = 3

        'Near Struts
        IF stagedetail% = 1 THEN
            pscube -145, -45, 3.5, -125, 110, 4, 15, 7, 8
            pscube 145, -45, 3.5, 125, 110, 4, 15, 7, 8
        END IF

        '----------------------------------------------------------------------------
    CASE IS = 5

        'Missle Launcher
        IF stagedetail% = 1 THEN
            pscircle 1015 + wx, -7, 3.1, 5, 8
            pscircle 1050 + wx, -7, 3, 5, 8
            pscircle 1135 + wx, -7, 3, 5, 8
            pscube 1125 + wx, -15, 2.3, 1145 + wx, -5, 2.7, 15, 7, 8
            pscube 1026 + wx, -15, 2, 1060 + wx, -5, 3, 15, 7, 8
            pscube 1035 + wx, -30, 2, 1150 + wx, -16, 3, 15, 7, 8
            psline 1015 + wx, -42, 2.5, 1135 + wx, -42, 2.5, 8, 0
            psline 1015 + wx, -42, 2.5, 980 + wx, -47.5, 2.5, 8, 0
            pscube 1000 + wx, -40, 2, 1025 + wx, -5, 3, 15, 7, 8
            pscube 1135 + wx, -55, 2.1, 1145 + wx, -30, 2.9, 15, 7, 8
            pscircle 1015 + wx, -7, 1.9, 5, 15
            pscircle 1050 + wx, -7, 2, 5, 15
            pscircle 1135 + wx, -7, 2, 5, 15

            psline 1015 + wx, -47.5, 2.6, 1135 + wx, -47.5, 2.6, 7, 0
            psline 1015 + wx, -47.5, 2.6, 980 + wx, -47.5, 2.5, 7, 0
            psline 1015 + wx, -54, 2.5, 1135 + wx, -54, 2.5, 15, 0
            psline 1015 + wx, -54, 2.5, 980 + wx, -47.5, 2.5, 15, 0
            psline 1015 + wx, -47.5, 2.4, 1135 + wx, -47.5, 2.4, 15, 0
            psline 1015 + wx, -47.5, 2.4, 980 + wx, -47.5, 2.5, 15, 0
        END IF

        '----------------------------------------------------------------------------
    CASE IS = 6

        'Spikes
        IF panx < 0 OR zoom > .07 THEN
            FOR wee = -155 TO -10 STEP 30
                psline -185, (wee) + 15, 7.5, -175, (wee) + 10, 7.5, 7, 0
                psline -185, (wee + 30), 7, -175, (wee) + 25, 7, 7, 0
                psline -185, (wee) + 15, 6.5, -175, (wee) + 10, 6.5, 15, 0
            NEXT wee
        END IF

        IF panx >= 0 OR zoom > .07 THEN
            FOR wee = -155 TO -10 STEP 30
                psline 185, (wee) + 15, 7.5, 175, (wee) + 10, 7.5, 7, 0
                psline 185, (wee + 30), 7, 175, (wee) + 25, 7, 7, 0
                psline 185, (wee) + 15, 6.5, 175, (wee) + 10, 6.5, 15, 0
            NEXT wee
        END IF



        '----------------------------------------------------------------------------
    CASE IS = 9

        'Near Support
        IF stagedetail% = 1 THEN pscircle 0, 0, 6, 10, 8
        pscube -20, -25, 5, 20, 100, 6, 15, 7, 8

        '----------------------------------------------------------------------------
    CASE IS = 10

        'Near Pendulum
        psline -wx, -300, 7, -wx, -20 - (trigger1 * 10), 7 - trigger1, 7, 0
        psline -wx, -15 - (trigger1 * 10), 7 - trigger1, -wx, -20 - (trigger1 * 12), 6.5 - trigger1, (trigger3), 0
        psline -wx, -15 - (trigger1 * 10), 7 - trigger1, -wx, -20 - (trigger1 * 10), 7.5 - trigger1, (trigger3), 0


        '----------------------------------------------------------------------------
    CASE IS = 11

        IF zoom > .12 AND stagedetail% = 1 THEN
            'Left building
            pscube -1500, -800, .1, -400, 0, 3, 15, 7, 8

            'center "building"
            pscube -200, -500, .1, 200, 0, 3, 15, 7, 8

            'Right building
            pscube 400, -1000, .1, 800, 0, 3, 15, 7, 8
        END IF



        '----------------------------------------------------------------------------
    CASE IS = 13, 14

        IF trigger1 = 0 OR trigger1 = 15 THEN

            IF ticker% < 25 AND stage% = 13 THEN psline -100, 0, 4, 100, 55, 4, 0, 2

            IF stagedetail% = 1 THEN psline (-200), (-20), (2.5), (200), (-20), (2.5), 8, 0

            'rain
            rain3d -200, -150, .1, 200, 5, 15, 7, 9, 15, 5
            IF ticker% > 400 AND stage% = 13 THEN rain2d 1, 9, 1, .02

            'Near fence
            FOR wee = -175 TO 175 STEP 25
                psline (wee), (0), (2.5), (wee), (-35), (2.5), 15, 0
            NEXT wee

        END IF



        '----------------------------------------------------------------------------
    CASE IS = 15

        IF ticker% >= 175 THEN
            psline -100, 0, 2, 100, 0, 2, 4, 0
            psline -200, -200, 2, 200, -200, 2, 4, 0
            psline -100, 0, 2, -200, -200, 2, 4, 0
            psline 100, 0, 2, 200, -200, 2, 4, 0


            'Near Corners
            psline -100, 0, 2, -200, 0, 3, 4, 0
            psline 100, 0, 2, 200, 0, 3, 4, 0
            psline -200, -200, 2, -200, 0, 3, 4, 0
            psline 200, -200, 2, 200, 0, 3, 4, 0

        END IF

        '----------------------------------------------------------------------------
END SELECT
END SUB

SUB stageinit
IF stage% <> 1000 THEN IF stage% < 1 OR stage% > stages% THEN stage% = 1
IF stage% < 50 THEN dif% = stage%: AIactive%(2) = 1 ELSE dif% = 7: AIactive%(2) = 0
IF AIactive%(1) = 1 AND AIactive%(2) = 1 THEN dif% = 5: stage% = INT(RND * 3) + 1: setfightercpu
IF stage% = 15 THEN dif% = 7

ticker% = 0
soundticker% = 20
control% = 0
victory% = 0
camode% = 0
bobm = 0
rebirth% = 0
particleclear

FOR wee = 1 TO 10
    smearl%(wee) = 0
NEXT wee

FOR wee = 1 TO 6
    projectile%(wee) = 0
NEXT wee

FOR wee = 1 TO 2
    setbody (wee)
    setko (wee)
    win%(wee) = 0
    rage(wee) = 0
NEXT wee


SELECT CASE stage%

    '---------------------------------------------------------------- Init Stages
    CASE IS = 1
        startfight% = 100
        ring% = 200
        midstage = 6

        zoom = 1
        panx = 0
        pany = 75
        panh = 0
        panv = -1.4
        zoomd = -.084
        zoomt = .02: 'Smaller = Zoom More

        floor1 = 0
        floor2 = 120
        bob = 15
        gravity = 1

        wx = 0
        wy = 25
        wz = 0

        trigger1 = 100
        trigger2 = 0
        trigger3 = 0

        fightercompress (1)
        fightercompress (2)

        setfightercpu

        '----------------------------------------------------------------------------
    CASE IS = 2
        startfight% = 200
        ring% = 200
        midstage = 3.5

        zoom = .3
        panx = -1000
        pany = 10
        panh = 9.9
        panv = 0
        zoomd = 0
        zoomt = .1

        floor1 = 0
        floor2 = 100
        bob = 5

        gravity = .5

        wx = 0
        wy = 25
        wz = 0

        trigger1 = 0
        trigger2 = 0
        trigger3 = 0


        '----------------------------------------------------------------------------
    CASE IS = 3
        startfight% = 100
        ring% = 100
        midstage = 5.5

        zoom = .3
        panx = 0
        pany = -500
        panh = 0
        panv = 15
        zoomd = 0
        zoomt = .04

        floor1 = 100
        floor2 = 110
        bob = 5

        gravity = 1

        wx = 0
        wy = 25
        wz = 0

        trigger1 = 0
        trigger2 = 0
        trigger3 = 0


        '----------------------------------------------------------------------------
    CASE IS = 4
        startfight% = 125
        ring% = 200
        midstage = 4

        zoom = .6
        panx = -2000
        pany = 0
        panh = 25
        panv = 0
        zoomd = 0
        zoomt = .1

        floor1 = 0
        floor2 = 500
        bob = 3

        gravity = 1

        wx = 0
        wy = 25
        wz = 0

        trigger1 = 0
        trigger2 = 0
        trigger3 = 0


        '----------------------------------------------------------------------------
    CASE IS = 5
        startfight% = 100
        ring% = 400
        midstage = 3.5

        zoom = .1
        panx = 900
        pany = -50
        panh = 0
        panv = 0
        zoomd = .005
        zoomt = .045

        floor1 = 0
        floor2 = 0
        bob = 15
        gravity = 1

        wx = 0
        wy = 0
        wz = 0

        trigger1 = 0
        trigger2 = 0
        trigger3 = 0


        '----------------------------------------------------------------------------
    CASE IS = 6
        startfight% = 100
        ring% = 180
        midstage = 7.5

        zoom = .01
        panx = -175
        pany = -100
        panh = 0
        panv = 2
        zoomd = 0
        zoomt = .015

        floor1 = 0
        floor2 = 0
        bob = 15
        gravity = 1

        wx = 0
        wy = 0
        wz = 0

        trigger1 = 0
        trigger2 = 0
        trigger3 = 0


        '----------------------------------------------------------------------------
    CASE IS = 7
        startfight% = 125
        ring% = 100
        midstage = 7.5

        zoom = .01
        panx = 380
        pany = -10
        panh = 0
        panv = 0
        zoomd = .001
        zoomt = .02

        floor1 = 0
        floor2 = 0
        bob = 0
        gravity = 1

        wx = 390
        wy = -.1
        wz = 0

        trigger1 = 0
        trigger2 = 0
        trigger3 = 0


        '----------------------------------------------------------------------------
    CASE IS = 8
        startfight% = 10
        ring% = 400
        midstage = 10

        zoom = .1
        panx = 0
        pany = -300
        panh = 0
        panv = 0
        zoomd = 0
        zoomt = .01

        floor1 = 0
        floor2 = 25
        bob = 0
        gravity = 1

        wx = 0
        wy = 0
        wz = 0

        trigger1 = 0
        trigger2 = 0
        trigger3 = 0


        '----------------------------------------------------------------------------
    CASE IS = 9
        startfight% = 50
        ring% = 300
        midstage = 8

        zoom = .08
        panx = -400
        pany = 50
        panh = 20
        panv = 0
        zoomd = 0
        zoomt = .015

        floor1 = 100
        floor2 = 100
        bob = 15
        gravity = 1

        wx = 0
        wy = 0
        wz = 0

        trigger1 = 0
        trigger2 = 0
        trigger3 = 0


        '----------------------------------------------------------------------------
    CASE IS = 10
        startfight% = 100
        ring% = 200
        midstage = 7

        zoom = .07
        panx = 100
        pany = -250
        panh = 0
        panv = 0
        zoomd = 0
        zoomt = .015

        floor1 = 0
        floor2 = 0
        bob = 15
        gravity = 1

        wx = 5
        wy = 0
        wz = 0

        trigger1 = 0
        trigger2 = 0
        trigger3 = 15



        '----------------------------------------------------------------------------
    CASE IS = 11
        startfight% = 75
        ring% = 200
        midstage = 7

        zoom = .8
        panx = 0
        pany = -1000
        panh = 0
        panv = 10
        zoomd = -.06
        zoomt = .02

        floor1 = 0
        floor2 = 0
        bob = 15
        gravity = 1

        wx = 0
        wy = 0
        wz = 0

        trigger1 = 0
        trigger2 = 0
        trigger3 = 0




        '----------------------------------------------------------------------------
    CASE IS = 12
        startfight% = 25
        ring% = 200
        midstage = 13

        'zoom = .8
        'panx = 0
        'pany = -1000
        'panh = 0
        'panv = 10
        'zoomd = -.06
        zoomt = .015

        floor1 = -500
        floor2 = 0
        bob = 15
        gravity = 1

        wx = 0
        wy = 0
        wz = 0

        trigger1 = 0
        trigger2 = 0
        trigger3 = 0



        '----------------------------------------------------------------------------
    CASE IS = 13
        startfight% = 25
        ring% = 100
        midstage = 4

        zoom = .1
        panx = 0
        pany = 0
        panh = 0
        panv = -2
        zoomd = 0
        zoomt = .045

        floor1 = 50
        floor2 = 50
        bob = 10
        gravity = 1

        wx = 0
        wy = 0
        wz = 0

        trigger1 = 0
        trigger2 = 12
        trigger3 = .001



        '----------------------------------------------------------------------------
    CASE IS = 14
        startfight% = 100
        ring% = 100
        midstage = 4

        'zoom = .1
        'panx = 0
        'pany = 0
        panh = 0
        panv = 5
        zoomd = .005
        zoomt = .045

        floor1 = 495
        floor2 = 500
        bob = 10
        gravity = 1

        wx = 0
        wy = 0
        wz = 0

        trigger1 = 15
        trigger2 = 0
        trigger3 = 0



        '----------------------------------------------------------------------------
    CASE IS = 15

        startfight% = 500
        ring% = 650
        midstage = 4

        zoom = .01
        panx = -200
        pany = -50
        panh = 0
        panv = 0
        zoomd = .01
        zoomt = .003

        floor1 = -400
        floor2 = -400
        bob = 10
        gravity = 1

        wx = 0
        wy = 0
        wz = 0

        trigger1 = 0
        trigger2 = 0
        trigger3 = -100







        '----------------------------------------------------------------------------

        'Dojo
    CASE IS = 1000
        startfight% = 1
        ring% = 200
        midstage = 6

        zoom = .1
        panx = 0
        pany = -100
        panh = 0
        panv = .5
        zoomd = 0
        zoomt = .03

        floor1 = 0
        floor2 = 0
        bob = 15
        gravity = 1

        wx = 0
        wy = 0
        wz = 0

        trigger1 = 0
        trigger2 = 0
        trigger3 = 0



        '----------------------------------------------------------------------------
END SELECT

fighterinit


END SUB

SUB stageshifting
IF ticker% < 32767 THEN ticker% = ticker% + 1
IF ticker% = 1 OR ticker% = 10 THEN setstagename (stage%): fightername (2)
SELECT CASE stage%


    '----------------------------------------------------------------------------
    CASE IS = 1

        IF trigger1 > 0 THEN trigger1 = trigger1 - 1

        IF ticker% = 150 THEN camode% = 1
        IF headless%(1) = 0 AND headless%(2) = 0 THEN
            IF health%(2) = 0 THEN camode% = 2
            IF health%(1) = 0 THEN camode% = 3
        END IF

        FOR wee = 1 TO 2
            IF butty(wee) > 75 THEN particle (buttx(wee) + ((RND - .5) * 10)), (foot1y(wee + 2)), (fighterz(wee)), 17, 1: particle (buttx(wee)), (butty(wee) - (RND * 10)), (fighterz(wee)), 18, 1
        NEXT wee

        'lightning
        IF RND < .01 THEN trigger1 = 5
        IF trigger1 > 0 THEN
            IF RND > .5 THEN pslightning 0, -25, 7, ((RND - .5) * 200), -500, 0, 75, flash1% ELSE pslightning 0, -25, 7, ((RND - .5) * 200), -500, 0, 75, flash2%
        END IF

        'Pop Fighters
        IF ticker% = 100 THEN fighterpop 1: fighterpop 2
        IF ticker% < 100 THEN
            psline -9 + (RND - .5), -20 + (RND - .5), 7, 9, -20, 7, flash2%, 0
            psline -6 + (RND - .5), -35 + (RND - .5), 7, 0, -12, 7, flash2%, 0
            psline 6 + (RND - .5), -35 + (RND - .5), 7, 0, -12, 7, flash2%, 0
            psline -6 + (RND - .5), -35 + (RND - .5), 7, 9, -20, 7, flash2%, 0
            psline 6 + (RND - .5), -35 + (RND - .5), 7, -9, -20, 7, flash2%, 0
            pscircle 0 + (RND - .5), -25 + (RND - .5), 7, 10, flash2%
        END IF

        IF ticker% > 70 AND ticker% < 100 THEN
            FOR wee = 1 TO 2
                particle headx(wee + 2), heady(wee + 2), fighterz(wee), 15, 3
                pslightning 0, -25, 7, headx(wee + 2), heady(wee + 2), fighterz(wee), 25, flash2%
            NEXT wee
        END IF

        '----------------------------------------------------------------------------
    CASE IS = 2
        IF ticker% = 200 THEN camode% = 1


        '----------------------------------------------------------------------------
    CASE IS = 3

        IF ticker% = 45 THEN camode% = 1
        FOR wee = 1 TO 2
            IF heady(wee + 2) < -45 THEN heady(wee) = 0: buttv(wee) = 1: health%(wee) = health%(wee) - 5: particle (headx(wee + 2)), (heady(wee + 2)), (fighterz(wee)), 1, 5
        NEXT wee

        '----------------------------------------------------------------------------
    CASE IS = 4

        'Camera stuff
        IF ticker% = 50 THEN
            camode% = 1
        ELSE
            IF butty(2) > 50 THEN camode% = 2
            IF butty(1) > 50 THEN camode% = 3
        END IF

        'Raft moves with current
        IF ticker% < 2637 THEN wx = wx + 2 ELSE wx = wx + .2: wy = wy - .4

        'Water splashes
        FOR wee = 1 TO 2
            IF ticker% < 2300 AND butty(wee) > 25 AND butty(wee) < 35 THEN splash (wee)
            IF foot1y(wee + 2) > 950 + wy AND foot1y(wee + 2) < 975 + wy THEN splash wee
        NEXT wee

        'Raft Splashes when hits water
        IF ticker% = 576 OR ticker% = 2626 THEN
            gravity = 1
            FOR wee = -200 TO 200 STEP 25
                particle wee, 0, 5, 11, 1
                particle wee, 10, 3, 11, 2
            NEXT wee
        END IF


        '----------------+
        IF ticker% < 1500 THEN
            '----1st Half

            'First drop
            IF ticker% > 550 AND ticker% < 575 THEN
                wy = wy - 4
                IF odds% = 1 THEN particle 100 + (RND * 100), 20, 3, 13, 1: particle 100 + (RND * 100), 20, 5, 13, 2
            END IF


            'Slope
            IF ticker% > 1000 THEN
                wy = wy - .2
                IF RND < .05 THEN particle (RND * 200), 20, 3, 11, 1: particle (RND * 200), 20, 5, 11, 2
            END IF

            '----------------+
        ELSE
            '----2nd Half

            'Tilt raft at waterfall
            IF ticker% > 2450 AND ticker% < 2625 THEN bobm = 0: bob = bob - .14

            'Low G and effects of waterfall
            IF ticker% > 2550 AND ticker% < 2625 THEN
                gravity = .5
                wy = wy - 10
                IF RND < .2 THEN particle 200, 0, 3, 12, 1: particle 200, 0, 5, 12, 1
            END IF

            'Drown PLayers at end
            IF foot1y(3) > 1000 + wy AND foot1y(3) > 1000 + wy THEN health%(1) = health%(1) - 1: health%(2) = health%(2) - 1: gravity = .5


            '----------------+
        END IF
        '----------------------------------------------------------------------------
    CASE IS = 5

        IF ticker% < 75 THEN wx = wx - 10: panh = -8.05 ELSE IF ticker% > 75 AND ticker% < 100 THEN wx = wx - 3
        IF ticker% > 100 AND ticker% < 125 THEN panh = panh / 1.06
        IF ticker% = 175 THEN camode% = 1

        IF ticker% > 1600 THEN wy = wy - .1
        IF ticker% > 1625 AND ticker% < 1675 THEN trigger2 = trigger2 + .04
        IF ticker% > 1650 AND ticker% < 1700 THEN trigger1 = trigger1 - .5
        IF stagedetail% = 1 THEN
            IF ticker% > 1800 AND ticker% < 2080 THEN wy = wy - 2: IF RND < .4 THEN particle -85, -85 + wy, 12.5, 8, 1: particle 85, -85 + wy, 12.5, 8, 1
            IF ticker% = 2100 THEN particle 0, -85 + wy, 13, 5, 50
        END IF

        'Wall Stopping
        FOR wee = 1 TO 2
            IF (buttx(wee)) < -400 THEN buttx(wee) = -400: neckx(wee) = 0: butth(wee) = 0
        NEXT wee


        '----------------------------------------------------------------------------
    CASE IS = 6

        IF ticker% = 50 THEN camode% = 1
        IF headless%(1) = 0 AND headless%(2) = 0 THEN
            IF health%(2) = 0 THEN camode% = 2
            IF health%(1) = 0 THEN camode% = 3
        END IF


        FOR wee = 1 TO 2
            IF (buttx(wee)) < -ring% THEN buttx(wee) = -ring%: butth(wee) = 0

            IF (buttx(wee)) < -ring% + 10 AND butty(wee) > -165 THEN
                health%(wee) = health%(wee) - 1
                fighterfreeze (wee)
                buttv(wee) = -gravity
                butth(wee) = butth(wee) + .01
                particle (buttx(wee)), (butty(wee) + (RND * necky(wee))), (fighterz(wee)), 4, 1
            END IF

            IF (buttx(wee)) > ring% THEN buttx(wee) = ring%: butth(wee) = 0

            IF (buttx(wee)) > ring% - 10 AND butty(wee) > -165 THEN
                health%(wee) = health%(wee) - 1
                fighterfreeze (wee)
                buttv(wee) = -gravity
                butth(wee) = butth(wee) - .01
                particle (buttx(wee)), (butty(wee) + (RND * necky(wee))), (fighterz(wee)), 3, 1
            END IF

            IF heady(wee + 2) < -300 THEN heady(wee) = 0: buttv(wee) = 1: health%(wee) = health%(wee) - 5: particle (headx(wee + 2)), (heady(wee + 2)), (fighterz(wee)), 1, 5
        NEXT wee


        '----------------------------------------------------------------------------
    CASE IS = 7

        IF ticker% = 100 THEN camode% = 1
        IF wx <= 0 THEN trigger1 = .5
        IF wx > ring% THEN trigger1 = -.1
        wx = wx + trigger1

        FOR wee = 1 TO 2
            IF ABS(buttx(wee)) > ABS(wx) AND ABS(butth(wee)) > 1 THEN health%(wee) = health%(wee) - ABS(butth(wee) * 5): particle (buttx(wee)), (heady(wee + 2)), (fighterz(wee)), 1, 5

            IF (buttx(wee)) < -wx THEN buttx(wee) = -wx: butth(wee) = 0: neckx(wee) = 0
            IF (buttx(wee)) > wx THEN buttx(wee) = wx: butth(wee) = 0: neckx(wee) = 0

            'Crush
            IF wx < 3 THEN
                health%(wee) = health%(wee) - 2
                position%(wee) = 1
                buttv(wee) = -gravity
                IF RND < .5 THEN butty(wee) = butty(wee) + ((RND - .5) * 10)
                particle (headx(wee + 2)), (butty(wee)), (fighterz(wee)), 2, 3
                particle (headx(wee + 2)), (heady(wee + 2) + (RND * 20)), (fighterz(wee)), 1, 1
            END IF

            IF heady(wee + 2) < -300 THEN heady(wee) = 0: buttv(wee) = 1: health%(wee) = health%(wee) - 5: particle (headx(wee + 2)), (heady(wee + 2)), (fighterz(wee)), 1, 5
        NEXT wee

        '----------------------------------------------------------------------------
    CASE IS = 8
        IF ticker% = 1 THEN camode% = 1
        IF ticker% = 40 THEN panv = 0

        '----------------------------------------------------------------------------
    CASE IS = 9

        IF ticker% = 45 THEN: panh = -35: panv = -5
        IF ticker% = 55 THEN panh = 0: camode% = 1
        IF headless%(1) = 0 AND headless%(2) = 0 THEN
            IF health%(2) = 0 THEN camode% = 2
            IF health%(1) = 0 THEN camode% = 3
        END IF

        'Shock Jumping
        IF butty(1) > 80 OR butty(2) > 80 THEN
            IF buttx(1) - buttx(2) < 100 AND buttx(2) - buttx(1) < 100 THEN
                health%(1) = health%(1) - 2
                health%(2) = health%(2) - 2
                pslightning neckx(3), heady(3) + (RND * 25), fighterz(1), neckx(4), heady(4) + (RND * 25), fighterz(2), 50, flash2%
            END IF
        END IF


        FOR wee = 1 TO 2
            IF position%(wee) < 8 OR position%(wee) > 11 THEN
                IF ABS(buttx(wee)) < ABS(ring%) AND foot1y(wee + 2) > ((buttx(wee) * trigger1) / 300) - 2 THEN trigger2 = trigger2 + buttx(wee) / 5000: butth(wee) = butth(wee) + (trigger1 / 2500)
            END IF
        NEXT wee

        trigger2 = trigger2 / 1.05

        IF ABS(trigger1) > 75 THEN trigger2 = 0: IF trigger1 > 0 THEN trigger1 = 75 ELSE trigger1 = -75

        trigger1 = trigger1 + trigger2


        '----------------------------------------------------------------------------
    CASE IS = 10

        IF ticker% < 75 THEN panv = 1
        IF ticker% = 75 THEN camode% = 1
        IF headless%(1) = 0 AND headless%(2) = 0 THEN
            IF health%(2) = 0 THEN camode% = 2
            IF health%(1) = 0 THEN camode% = 3
        END IF

        trigger2 = trigger2 - .01
        trigger1 = trigger1 + trigger2
        IF trigger1 < 0 THEN trigger2 = .25: wx = -wx

        'Color Change
        IF RND < .05 THEN
            SELECT CASE trigger3
                CASE IS = 4: trigger3 = 12
                CASE IS = 12: trigger3 = 15
            END SELECT
        END IF

        'Hack
        IF trigger1 < .5 THEN
            FOR wee = 1 TO 2
                IF butty(wee) > -35 AND ABS(buttx(wee)) < 10 AND position%(wee) <> 8 AND position%(wee) <> 10 THEN
                    soundticker% = 0: sbfx 17
                    health%(wee) = health%(wee) - 15
                    ko(wee) = ko(wee) - 3
                    particle (headx(wee + 2)), -20, 7, 1, 10
                    particle (headx(wee + 2)), -20, 7, 18, 10
                    trigger3 = 4
                    buttv(wee) = buttv(wee) - (RND * 3)
                    neckx(wee) = neckx(wee) + ((RND - .5) * 5)
                END IF
            NEXT wee
        END IF

        'Wall Stopping
        FOR wee = 1 TO 2
            IF ABS(buttx(wee)) > ABS(ring%) AND ABS(butth(wee)) > 1 THEN health%(wee) = health%(wee) - ABS(butth(wee) * 5): particle (buttx(wee)), (heady(wee + 2)), (fighterz(wee)), 1, 5

            IF (buttx(wee)) < -ring% THEN buttx(wee) = -ring%: butth(wee) = 0: neckx(wee) = 0
            IF (buttx(wee)) > ring% THEN buttx(wee) = ring%: butth(wee) = 0: neckx(wee) = 0
        NEXT wee


        '----------------------------------------------------------------------------
    CASE IS = 11
        IF ticker% = 1 THEN ring% = 1500
        IF ticker% = 50 THEN camode% = 1
        FOR wee = 1 TO 2
            IF buttx(wee) < -1500 THEN buttx(wee) = -1500
            IF buttx(wee) > 1500 THEN buttx(wee) = 1500
        NEXT wee

        '----------------------------------------------------------------------------
    CASE IS = 12
        IF ticker% = 1 THEN camode% = 1

        FOR wee = 1 TO 2
            IF buttx(wee) < -1500 THEN buttx(wee) = -1500
            IF buttx(wee) > 1500 THEN buttx(wee) = 1500
        NEXT wee


        'Fall Off Building
        IF floor1 < 0 THEN
            FOR wee = 1 TO 2
                IF ABS(buttx(wee)) > 400 THEN butth(wee) = -butth(wee)
                IF butty(wee) > floor1 AND ABS(buttx(wee)) < ring% THEN butth(wee) = -butth(wee)

                IF butty(wee) > -450 AND butty(wee) < -400 THEN fall (wee)
                IF butty(wee) > -50 THEN
                    health%(wee) = 0
                    butty(wee) = 0
                    buttv(wee) = 0
                    decap (wee)
                    FOR n% = 1 TO 10
                        particle buttx(wee) + ((RND - .5) * 20), -5, fighterz(wee), 2, 1
                        smear buttx(wee) + ((RND - .5) * 30), 0, fighterz(wee) + (RND - .5), 12
                    NEXT n%
                END IF
            NEXT wee

            IF butty(1) = 0 AND butty(2) = 0 THEN camode% = 1: floor1 = 0: ring% = 1500
        END IF

        IF floor1 = 0 AND health%(1) = 100 AND health%(2) = 100 THEN midstage = 7


        '----------------------------------------------------------------------------
    CASE IS = 13

        IF ticker% = 10 THEN
            buttv(1) = -15
            buttv(2) = -15
            FOR wee = -10 TO 10 STEP 2
                particle (buttx(1) + wee), 0, 4, 24, 1
                particle (buttx(2) + wee), 0, 4, 24, 1
            NEXT wee
        END IF

        IF ticker% = 25 THEN
            floor1 = 0
            floor2 = 0
            camode% = 1
        END IF

        'Lightning strikes tree
        IF ticker% > 399 AND ticker% < 415 THEN
            IF ticker% = 400 THEN bgcolor% = 19: trigger1 = 15: trigger2 = 8: blur 5: soundticker% = 0: sbfx 17
            pslightning 100 + (RND * 15), -90, 5, 135 + (RND * 15), RND * 5, 5, 50, flash1%
            pslightning -300, -200, 5, 140, 0, 5, 50, flash2%
            particle 105 + (RND * 35), -(RND * 70), 4.5, 9, 1
            particle 115 + (RND * 30), -(RND * 30), 4.5, 15, 1
            particle 115 + (RND * 30), -(RND * 50), 4.5, 16, 1
        END IF

        'Normal Lightning
        IF RND < .1 THEN
            IF RND < .3 THEN
                bgcolor% = 1
                n% = ((RND - .5) * 500)
                pslightning (n%), (-300), (5 + (RND * 20)), (n%), (0), (5 + (RND * 20)), (100), (flash2%)
            ELSE
                pslightning ((RND - .5) * 800), (-200), (10 + (RND * 10)), ((RND - .5) * 800), (-200), (10 + (RND * 10)), (75), (flash2%)
            END IF
        END IF


        'Rain
        IF trigger3 < .02 THEN trigger3 = trigger3 + .00001
        starsoffset (trigger3 / 8), (trigger3)


        '----------------------------------------------------------------------------
    CASE IS = 14

        IF ticker% < 60 THEN
            camode% = 0
            panh = -panx / 1000
            IF pany > 475 THEN panv = 0
        END IF

        IF ticker% = 75 THEN camode% = 1
        IF ticker% = 75 THEN trigger1 = 1


        FOR wee = 1 TO 2
            'Burning Feet
            IF ABS(buttx(wee)) > 110 AND foot1y(wee + 2) > 495 THEN
                IF RND < .1 THEN health%(wee) = health%(wee) - 1
                IF RND < .5 THEN particle (buttx(wee) + ((RND - .5) * 5)), (500), (fighterz(wee)), 16, 1
            END IF

            'Wall Stopping
            IF ABS(buttx(wee)) > 175 AND ABS(butth(wee)) > 1 THEN health%(wee) = health%(wee) - ABS(butth(wee) * 5): particle (buttx(wee)), (heady(wee + 2)), (fighterz(wee)), 1, 5
            IF (buttx(wee)) < -175 THEN buttx(wee) = -175: butth(wee) = 0: neckx(wee) = 0
            IF (buttx(wee)) > 175 THEN buttx(wee) = 175: butth(wee) = 0: neckx(wee) = 0

        NEXT wee





        '----------------------------------------------------------------------------
    CASE IS = 15

        IF ticker% <= 450 THEN

            IF ticker% = 1 THEN floor1 = 0: floor2 = 0
            IF ticker% > 50 AND ticker% < 100 THEN LOCATE 10: COLOR 15: PRINT "This place is rank!"
            IF ticker% > 125 AND ticker% < 150 THEN butth(1) = 8
            IF ticker% > 175 AND ticker% < 225 THEN LOCATE 10, 65: COLOR 4: PRINT "I smell blood!"
            IF ticker% = 175 THEN
                midstage = 4.5
                panx = -500
                panh = 5
                buttx(1) = -375
                butth(1) = 30
                fighterz(1) = 5.5
                buttx(2) = 75
            END IF
            IF ticker% = 400 THEN camode% = 3: zoomd = -.008
            IF ticker% > 200 AND ticker% <= 300 THEN trigger3 = trigger3 + 1
            IF ticker% > 250 AND ticker% < 350 THEN LOCATE 10, 50: COLOR 4: PRINT "I don't know who you are..."
            IF ticker% > 350 AND ticker% < 400 THEN LOCATE 10, 60: COLOR 4: PRINT "But your dead!"
            IF ticker% = 450 THEN camode% = 1: zoomt = .02



        ELSE

            FOR wee = 1 TO 2
                'Hit Head On Roof
                IF heady(wee + 2) < -200 THEN heady(wee) = 0: buttv(wee) = 2: health%(wee) = health%(wee) - 8: particle (headx(wee + 2)), (heady(wee + 2)), (fighterz(wee)), 18, 20

                'Wall Stopping
                IF ABS(buttx(wee)) > 200 AND ABS(butth(wee)) > 1 THEN health%(wee) = health%(wee) - ABS(butth(wee) * 5): particle (buttx(wee)), (heady(wee + 2)), (fighterz(wee)), 1, 5
                IF (buttx(wee)) < -200 THEN buttx(wee) = -200: butth(wee) = 0: neckx(wee) = 0
                IF (buttx(wee)) > 200 THEN buttx(wee) = 200: butth(wee) = 0: neckx(wee) = 0

            NEXT wee

        END IF

        '----------------------------------------------------------------------- Dojo
    CASE IS = 1000

        IF ticker% = 1 THEN health%(2) = maxhp%(2): ko(2) = 75

        IF ticker% >= 0 AND ticker% < 100 THEN
            COLOR 15: LOCATE 4
            PRINT "Welcome to Master Bean's Dojo."
        END IF

        IF ticker% = 100 THEN control% = 1

        IF ticker% >= 100 AND ticker% < 300 THEN
            COLOR 15: LOCATE 4
            PRINT "If you would like to learn to fight"
            PRINT "come over here and hit me!"
            PRINT "Otherwise I'm giving you a tutorial."
        END IF

        IF ticker% = 300 THEN
            ticker% = 2
            IF health%(2) < maxhp%(2) THEN
                stage% = 1002
            ELSE
                stage% = 1001
            END IF
        END IF



        '------------------------------------------------------------------- Tutorial
    CASE IS = 1001

        IF ticker% = 3 THEN hands%(1) = 4: feet%(1) = 1: body%(1) = 2: head%(1) = 4

        IF ticker% < 200 THEN
            COLOR 15: LOCATE 4
            PRINT "Tutorial it is. You're wise to seek"
            PRINT "guidance before getting your head removed."
        END IF

        IF ticker% = 200 THEN panh = 1: zoomd = -.005

        IF ticker% >= 200 AND ticker% < 300 THEN
            COLOR 15: LOCATE 4
            PRINT "My name is Master Bean. I intend to"
            PRINT "to teach some basics or kill you trying."
        END IF

        IF ticker% = 300 THEN panh = 0

        IF ticker% >= 300 AND ticker% < 400 THEN
            COLOR 15: LOCATE 4
            PRINT "Let us begin."
        END IF

        IF ticker% = 400 THEN panh = -2: control% = 1
        IF ticker% = 450 THEN camode% = 2

        IF ticker% >= 400 AND ticker% < 500 THEN
            COLOR 15: LOCATE 4
            PRINT "Try moving around using the Number Pad."
        END IF

        IF ticker% >= 500 AND ticker% < 700 THEN
            COLOR 15: LOCATE 4
            PRINT "Try pressing Q or W."
        END IF

        IF ticker% >= 700 AND ticker% < 900 THEN
            COLOR 15: LOCATE 4
            PRINT "These are your Punches."
        END IF

        IF ticker% >= 900 AND ticker% < 1100 THEN
            COLOR 15: LOCATE 4
            PRINT "A and S are Kicks."
        END IF

        IF ticker% >= 1100 AND ticker% < 1300 THEN
            COLOR 15: LOCATE 4
            PRINT "Note that keys 5 and 2 both Crouch."
        END IF

        IF ticker% >= 1300 AND ticker% < 1500 THEN
            COLOR 15: LOCATE 4
            PRINT "Try pressing 5 then immediately"
            PRINT "press S. This will do a Sweep."
        END IF

        IF ticker% = 1500 THEN camode% = 1

        IF ticker% >= 1500 AND ticker% < 1700 THEN
            COLOR 15: LOCATE 4
            PRINT "Go ahead and try to sweep me."
            PRINT "I won't kill you just yet."
        END IF

        IF ticker% = 1700 THEN trigger1 = health%(2)

        IF ticker% >= 1700 AND ticker% < 1900 THEN
            COLOR 15: LOCATE 4
            PRINT "Okay, Now I want you to try an Uppercut."
            PRINT "Get close and Press 5 then W."
        END IF

        IF ticker% >= 1900 AND ticker% < 2000 THEN
            COLOR 15: LOCATE 4
            IF health%(2) = trigger1 THEN
                PRINT "Come on, hit me!"
            ELSE
                PRINT "Very Nice!"
            END IF
        END IF


        IF ticker% >= 2000 AND ticker% < 2200 THEN
            COLOR 15: LOCATE 4
            PRINT "Now I want you to press E."
            PRINT "This will put you in Special Mode."
        END IF

        IF ticker% >= 2200 AND ticker% < 2400 THEN
            COLOR 15: LOCATE 4
            PRINT "Notice the indicator in the corner"
            PRINT "of the screen when you press E."
        END IF

        IF ticker% >= 2400 AND ticker% < 2600 THEN
            COLOR 15: LOCATE 4
            PRINT "Now try pressing Q while in"
            PRINT "Special Mode to throw Ball Lightning."
        END IF

        IF ticker% >= 2600 AND ticker% < 3000 THEN
            COLOR 15: LOCATE 4
            PRINT "Remember that when you do a"
            PRINT "Special move you exit Special Mode."
            PRINT "Try your other Special Moves by"
            PRINT "using other attack keys."
        END IF

        IF ticker% >= 3000 AND ticker% < 3200 THEN
            COLOR 15: LOCATE 4
            PRINT "Try doing a Nee Bash."
            PRINT "Get close to me and press E then S."
        END IF

        IF ticker% = 3150 THEN control% = 0: fighterfreeze (1)

        IF ticker% = 3200 THEN position%(2) = 86

        IF ticker% >= 3250 AND ticker% < 3400 THEN
            COLOR 15: LOCATE 4
            PRINT "That's for kicking my ass so bad!"
            control% = 1
        END IF

        IF ticker% >= 3400 AND ticker% < 3500 THEN
            COLOR 15: LOCATE 4
            PRINT "Stand back and watch."
        END IF

        IF ticker% = 3480 THEN position%(2) = 82: trigger1 = health%(1)

        IF ticker% >= 3500 AND ticker% < 3600 THEN
            COLOR 15: LOCATE 4
            IF trigger1 > health%(1) THEN
                PRINT "I told you to sand back!"
            ELSE
                PRINT "I'm glad you didn't eat that."
            END IF
        END IF

        IF ticker% = 3600 THEN rage(1) = 100

        IF ticker% >= 3600 AND ticker% < 3800 THEN
            COLOR 15: LOCATE 4
            PRINT "That was an Energy Blast."
            PRINT "I want you to try now. Press D"
        END IF

        IF ticker% = 3900 THEN control% = 0: camode% = 2

        IF ticker% >= 3800 AND ticker% < 4000 THEN
            COLOR 15: LOCATE 4
            PRINT "The Energy Blast is a type of Super"
            PRINT "move. See the bar at the bottom left?"
        END IF

        IF ticker% >= 4000 AND ticker% < 4200 THEN
            COLOR 15: LOCATE 4
            PRINT "That is your level of Rage."
            PRINT "Your Rage builds at a constant rate."
        END IF

        IF ticker% >= 4200 AND ticker% < 4400 THEN
            COLOR 15: LOCATE 4
            PRINT "When your Rage is at it's full you"
            PRINT "may release it as a Super like the"
            PRINT "Energy Blast."
        END IF

        IF ticker% >= 4400 AND ticker% < 4600 THEN
            COLOR 15: LOCATE 4
            PRINT "At the top of the screen are your"
            PRINT "Health and Awareness bars."
        END IF

        IF ticker% >= 4600 AND ticker% < 4800 THEN
            COLOR 15: LOCATE 4
            PRINT "When your out of Health your Dead."
            PRINT "If the Awareness is gone your KO."
        END IF

        IF ticker% >= 4800 AND ticker% < 5000 THEN
            COLOR 15: LOCATE 4
            PRINT "...and remember dead people don't"
            PRINT "have a chance at Round Two."
        END IF

        IF ticker% >= 5000 AND ticker% < 5200 THEN
            COLOR 15: LOCATE 4
            PRINT "At the very top of the screen is"
            PRINT "the current cycles per second."
        END IF

        IF ticker% >= 5200 AND ticker% < 5400 THEN
            COLOR 15: LOCATE 4
            PRINT "If the indicator is Red, the game"
            PRINT "is going too slow or too fast."
        END IF

        IF ticker% >= 5400 AND ticker% < 5600 THEN
            COLOR 15: LOCATE 4
            PRINT "You can adjust this by changing"
            PRINT "settings in the options menus."
        END IF

        IF ticker% >= 5600 AND ticker% < 5800 THEN
            COLOR 15: LOCATE 4
            PRINT "A true warrior knows when to be offensive"
            PRINT "and when to be defensive."
        END IF

        IF ticker% = 5800 THEN control% = 1

        IF ticker% >= 5800 AND ticker% < 6200 THEN
            COLOR 15: LOCATE 4
            PRINT "When you are in Special Mode your"
            PRINT "awareness level does not recharge."
            PRINT "Futher more, when you preform most"
            PRINT "special moves your awareness drops."
        END IF

        IF ticker% >= 6200 AND ticker% < 6400 THEN
            COLOR 15: LOCATE 4
            PRINT "A failed attack may actually benefit"
            PRINT "your opponent! Be wise choosing your"
            PRINT "attacks."
        END IF

        IF ticker% >= 6400 AND ticker% < 6600 THEN
            COLOR 15: LOCATE 4
            PRINT "This is the end of the lesson."
            PRINT "Prepare for a real fight!"
        END IF

        IF ticker% = 6600 THEN setfighter: camode% = 1

        IF ticker% > 6600 THEN
            IF ticker% < 6650 THEN COLOR 15: LOCATE 4: PRINT "End of Lesson!"
            elbow1x(2) = 0
            elbow1y(2) = -5
            hand1x(2) = 0
            hand1y(2) = -4
            pslightning (hand1x(4)), (hand1y(4)), (midstage), (headx(3)), (heady(3)), (midstage), 50, flash2%
            health%(1) = health%(1) - 5
        END IF




        'Death's and KO's
        IF health%(1) <= 0 AND ticker% < 6600 THEN LOCATE 10: PRINT "Shit! Your no better then the rest!": PRINT "Get out of here!"
        IF health%(2) <= 0 THEN LOCATE 10: PRINT "Damn the dishonor! I've been beat by my own student!"

        IF ko(1) <= 0 THEN
            LOCATE 10
            IF win%(2) < 2 THEN
                PRINT "Get up you wuss! Your better then that!"
            ELSE
                PRINT "Your no fighter! Get out of my dojo!"
            END IF
        END IF


        'Avoid Projectile
        IF projectile%(1) > 0 AND position%(2) = 1 AND projectilex(1) > buttx(2) - 75 AND projectilex(1) < buttx(2) + 75 THEN jump 2, 2


        'P2 Health/KO
        IF health%(2) < 25 AND position%(1) = 1 THEN position%(2) = 84
        IF ko(2) < 25 THEN ko(2) = 25

        'Wall Stopping
        IF ticker% < 6400 THEN
            FOR wee = 1 TO 2
                IF ABS(buttx(wee)) > ABS(ring%) AND ABS(butth(wee)) > 1 THEN health%(wee) = health%(wee) - ABS(butth(wee) * 5): particle (buttx(wee)), (heady(wee + 2)), (fighterz(wee)), 1, 5

                IF (buttx(wee)) < -ring% THEN buttx(wee) = -ring%: butth(wee) = 0: neckx(wee) = 0
                IF (buttx(wee)) > ring% THEN buttx(wee) = ring%: butth(wee) = 0: neckx(wee) = 0
            NEXT wee
        END IF

        '------------------------------------------------------------------- Training
    CASE IS = 1002

        IF ticker% < 100 THEN
            COLOR 15: LOCATE 4
            IF position%(1) > 1 THEN
                IF position%(2) = 1 AND pticker%(2) > 75 THEN position%(2) = 37
                PRINT "Calm Yourself!"
            ELSE
                PRINT "Training Begins."
            END IF
        END IF

        IF ticker% = 200 THEN camode% = 1: zoomd = -.006: AIactive%(2) = 1

        IF ticker% >= 200 AND ticker% < 400 THEN
            COLOR 15: LOCATE 4
            PRINT "Press Esc when you've had enough."
        END IF

        'Inc. difficulty
        trigger1 = trigger1 + 1
        IF trigger1 = 1000 THEN
            SCREEN , , 0, 0
            trigger1 = 0: LOCATE 4
            IF dif% < 10 THEN
                dif% = dif% + 1
                SELECT CASE INT(RND * 5) + 1
                    CASE 1: PRINT "I see you didn't come to play games."
                    CASE 2: PRINT "Alright, let's see what you got!"
                    CASE 3: PRINT "Your advancing well."
                    CASE 4: PRINT "Don't back down now."
                    CASE 5: PRINT "Let me teach you about pain!"
                END SELECT
                PRINT "(Difficulty Increase)"
            ELSE
                PRINT "You've had enough training."
            END IF
            FOR wee = 0 TO 10: wee$ = INKEY$: NEXT wee: wee$ = ""
            SLEEP
        END IF

        'Health/KO
        IF health%(1) < 50 AND position%(1) = 1 THEN position%(1) = 84
        IF health%(2) < 50 AND position%(2) = 1 THEN position%(2) = 84
        IF ko(2) < 25 THEN ko(2) = 25

        'Wall Stopping
        FOR wee = 1 TO 2
            IF ABS(buttx(wee)) > ABS(ring%) AND ABS(butth(wee)) > 1 THEN health%(wee) = health%(wee) - ABS(butth(wee) * 5): particle (buttx(wee)), (heady(wee + 2)), (fighterz(wee)), 1, 5

            IF (buttx(wee)) < -ring% THEN buttx(wee) = -ring%: butth(wee) = 0: neckx(wee) = 0
            IF (buttx(wee)) > ring% THEN buttx(wee) = ring%: butth(wee) = 0: neckx(wee) = 0
        NEXT wee

        'Death's and KO's
        IF health%(1) <= 5 THEN LOCATE 10: PRINT "Your good for nothing when your dead!"
        IF health%(2) <= 5 THEN LOCATE 10: PRINT "The gods must be with you..."

        IF ko(1) <= 0 THEN
            LOCATE 10
            PRINT "C'Mon grandma throw some punches!"
        END IF


        '----------------------------------------------------------------------------
END SELECT
END SUB

SUB stagewindow (mode%)

IF mode% = 1 THEN
    FOR wee = 10 TO 90 STEP 2
        LINE (wee, 25)-(wee + 2, 45), 7, BF
        LINE (wee, 65)-(wee + 2, 75), 7, BF
        LINE (wee, 25)-(wee - 2, 75), 0, BF
    NEXT wee
    LINE (wee, 25)-(wee - 2, 75), 0, BF
END IF


IF mode% = 2 THEN
    FOR wee = 90 TO 10 STEP -2
        LINE (wee, 25)-(wee - 2, 45), 7, BF
        LINE (wee, 65)-(wee - 2, 75), 7, BF
        LINE (wee, 25)-(wee + 2, 75), 0, BF
    NEXT wee
    LINE (wee, 25)-(wee + 2, 75), 0, BF
END IF


wee = 0
FOR y = 20 TO 50 STEP 30
    FOR x = 5 TO 65 STEP 30
        wee = wee + 1
        LINE (x + 5, y + 5)-(x + 25, y + 25), 7, B
        IF i16m% = 0 THEN i16 x + 6, y + 6, .363, .355, "stage" + STR$((wee + stageset%) * -1)
    NEXT x
NEXT y
END SUB

SUB stars2d (c1%, c2%, c3%)
REM-----------------------------------------------Draw stars

WINDOW SCREEN(0, 0)-(1, 1)

FOR wee = 1 TO nstars%
    PSET (stars1x(wee), stars1y(wee)), c1%
    PSET (stars2x(wee), stars2y(wee)), c2%
    PSET (stars3x(wee), stars3y(wee)), c3%
NEXT wee

CALL window3d
END SUB

SUB stars3d (x1, y1, z1, x2, y2, z2, c1%, c2%, c3%)
REM-----------------------------------------------Draw stars

x2 = x2 - x1
y2 = y2 - y1
z2 = z2 - z1

FOR wee = 1 TO nstars%
    x3 = x1 + (stars1x(wee) * x2)
    y3 = y1 + (stars1y(wee) * y2)
    z3 = z1 + (stars1z(wee) * z2)
    pspset (x3), (y3), (z3), c1%

    x3 = x1 + (stars2x(wee) * x2)
    y3 = y1 + (stars2y(wee) * y2)
    z3 = z1 + (stars2z(wee) * z2)
    pspset (x3), (y3), (z3), c2%

    x3 = x1 + (stars3x(wee) * x2)
    y3 = y1 + (stars3y(wee) * y2)
    z3 = z1 + (stars3z(wee) * z2)
    pspset (x3), (y3), (z3), c3%
NEXT wee

END SUB

SUB starsoffset (x, y)
FOR wee = 1 TO nstars%
    stars1x(wee) = stars1x(wee) + x
    stars2x(wee) = stars2x(wee) + (x + x + x)
    stars3x(wee) = stars3x(wee) + (x + x + x + x + x)
    stars1y(wee) = stars1y(wee) + y
    stars2y(wee) = stars2y(wee) + (y + y + y)
    stars3y(wee) = stars3y(wee) + (y + y + y + y + y)

    IF x < 0 THEN
        IF stars1x(wee) < 0 THEN stars1x(wee) = 1
        IF stars2x(wee) < 0 THEN stars2x(wee) = 1
        IF stars3x(wee) < 0 THEN stars3x(wee) = 1
    ELSE
        IF stars1x(wee) > 1 THEN stars1x(wee) = 0
        IF stars2x(wee) > 1 THEN stars2x(wee) = 0
        IF stars3x(wee) > 1 THEN stars3x(wee) = 0
    END IF

    IF y < 0 THEN
        IF stars1y(wee) < 0 THEN stars1y(wee) = 1
        IF stars2y(wee) < 0 THEN stars2y(wee) = 1
        IF stars3y(wee) < 0 THEN stars3y(wee) = 1
    ELSE
        IF stars1y(wee) > 1 THEN stars1y(wee) = 0
        IF stars2y(wee) > 1 THEN stars2y(wee) = 0
        IF stars3y(wee) > 1 THEN stars3y(wee) = 0
    END IF
NEXT wee

END SUB

SUB starsrnd
'-------------------------- Randomize Stars
FOR wee = 1 TO 20
    stars1x(wee) = RND
    stars1y(wee) = RND
    stars1z(wee) = RND
    stars2x(wee) = RND
    stars2y(wee) = RND
    stars2z(wee) = RND
    stars3x(wee) = RND
    stars3y(wee) = RND
    stars3z(wee) = RND
NEXT wee

END SUB

SUB window2d
WINDOW SCREEN(0, 0)-(100, 100)
END SUB

SUB window3d
WINDOW SCREEN(xx1, yy1)-(xx2, yy2)
END SUB

SUB winxwiny

xx1 = midx% - winx
yy1 = midy% - winy
xx2 = midx% + winx
yy2 = midy% + winy
END SUB

