@ Unnamed Shooter, the project formerly known as "Blast 1". 0 Created June/July 2009 by Simon Mathiassen . Portions of code courtesy David Williams - Thanks to Jon Ripley for the FMOD code.  ' "GetWindowLong", @hwnd%, -16 S% 1 "SetWindowLong", @hwnd%, -16, S% &50000 1 "SetWindowPos", @hwnd%, 0, 0, 0, 0, 0, 32+7   18     error   "timeBeginPeriod", 1 & "GetSystemMetrics", 0 xscreen% & "GetSystemMetrics", 1 yscreen% i "SetWindowPos", @hwnd%, 0, (xscreen%-640)/2, (yscreen%-480)/2, 0, 0, 5 Center the display window   "ShowWindow", @hwnd%, 9   Test for user stupidity #X= (@dir$+"data\alien100.bmp")  X=0 Idiot  #X  Autospeed%=0 Autospeedselected%=0 sound%=1  $blastscore$ = @dir$+"ushoot.dat" highscorefile= blastscore$ D highscorefile=0 Createhighscore : highscorefile= blastscore$ ^#highscorefile,name1$,score1,name2$,score2,name3$,score3,wait%,starfield%,shadow%,accept% #highscorefile  M% = 30  = + M%*&FA000 *ESC OFF  CALL @dir$+"data\fmod"  / "AddFontResource", @dir$+"data\BLADR.TTF" *FONT Arial,20  fmod   @lib$+"GFXLIB"  @lib$+"SOCKLIB"  /I% = SYS_NameToAddress( "InvalidateRect" ) &W% = SYS_NameToAddress( "Sleep" )  AutoInit32(0)  MCI_OPEN = &803 MCI_CLOSE = &804 MCI_PLAY = &806 MCI_SEEK = &807 MCI_STOP = &808 MCI_SET = &80D MCI_STATUS = &814 MCI_ALL_DEVICE_ID = -1 MCI_WAIT = 2 MCI_FROM = 4 MCI_TO = 8 MCI_STATUS_POSITION = 2 MCI_STATUS_ITEM = &100 MCI_OPEN_ELEMENT = &200 MCI_SET_TIME_FORMAT = &400 MCI_PAUSE = &809 MCI_RESUME = &855 MCI_STATUS_LENGTH = 1  <MciSendCommand% = SYS_NameToAddress( "mciSendCommand" )  '16,7)"Please wait, loading.....";  createBg initStars   ( _FSOUND_Init%, 44100, 32, 0 ret% H ret% = 0 "Cannot initialise fmod.dll, no soundcard installed?":  #title$ = "Unnamed Shooter V1.0" % "SetWindowText", @hwnd%, title$  alien%(500),alienx%(500),alieny%(500),alienprogress%(500),alienexplode%(500),alienexplosiontimer%(500),rotatealien%(500),alienver%(500),aliensprite%(500),aliendied%(500)  pattern1data%(500000)  alien2%(500),alienx2%(500),alieny2%(500),alienprogress2%(500),alienexplode2%(500),alienexplosiontimer2%(500),rotatealien2%(500),alienver2%(500),aliensprite2%(500),aliendied2%(500)  pattern2data%(500000)  = missile%(9),missilex%(9),missiley%(9),missilesprite%(9)   Load sounds ^ _FSOUND_Sample_Load%, _FSOUND_FREE, @dir$+"data\boom.wav", _FSOUND_NORMAL, 0, 0 hBOOM% ` _FSOUND_Sample_Load%, _FSOUND_FREE, @dir$+"data\laser.wav", _FSOUND_NORMAL, 0, 0 hLASER% f _FSOUND_Sample_Load%, _FSOUND_FREE, @dir$+"data\Sweepdow.wav", _FSOUND_NORMAL, 0, 0 hSWEEPDOW% a _FSOUND_Sample_Load%, _FSOUND_FREE, @dir$+"data\Fanf15.wav", _FSOUND_NORMAL, 0, 0 hYEHAW% \ _FSOUND_Sample_Load%, _FSOUND_FREE, @dir$+"data\zap.wav", _FSOUND_NORMAL, 0, 0 hZAP% ^ _FSOUND_Sample_Load%, _FSOUND_FREE, @dir$+"data\bomb.wav", _FSOUND_NORMAL, 0, 0 hBOMB% b _FSOUND_Sample_Load%, _FSOUND_FREE, @dir$+"data\Whoosh.wav", _FSOUND_NORMAL, 0, 0 hWHOOSH% c _FSOUND_Sample_Load%, _FSOUND_FREE, @dir$+"data\Fanf10.wav", _FSOUND_NORMAL, 0, 0 hFANFARE% c _FSOUND_Sample_Load%, _FSOUND_FREE, @dir$+"data\Fanf18.wav", _FSOUND_NORMAL, 0, 0 hPERFECT% c _FSOUND_Sample_Load%, _FSOUND_FREE, @dir$+"data\Fanf22.wav", _FSOUND_NORMAL, 0, 0 hPOWERUP% < SYS _FMUSIC_LoadSong%, @dir$+"data\acid.it" TO handle%  %open( @dir$ + "data\music.wma" ) )mciStatusParms%!8 = MCI_STATUS_LENGTH N MciSendCommand%, DeviceID%, MCI_STATUS, MCI_STATUS_ITEM, mciStatusParms% "tracklength%=mciStatusParms%!4   Initialize Sprites 4LoadData( @dir$ + "data\brf10.DAT", font1%, 0 ) 4LoadData( @dir$ + "data\brf12.DAT", font2%, 0 )  RANDOM%=(-) RANDOM%=(300)+100  NLoad_24bppBM_as_32bppBM( @dir$+"data\alien"+(RANDOM%)+".bmp", ship%, ) GLoad_24bppBM_as_32bppBM( @dir$+"data\nightsky.bmp", nightsky%, ) GLoad_24bppBM_as_32bppBM( @dir$+"data\gameover.bmp", gameover%, ) ELoad_24bppBM_as_32bppBM( @dir$+"data\shooter.bmp", shooter%, ) ?Load_24bppBM_as_32bppBM( @dir$+"data\keys.bmp", keys%, ) X=1 9 OLoad_24bppBM_as_32bppBM( @dir$+"data\missile1.bmp", missilesprite%(X), )  ELoad_24bppBM_as_32bppBM( @dir$+"data\frame1.bmp", sprite13%, ) ELoad_24bppBM_as_32bppBM( @dir$+"data\frame2.bmp", sprite14%, ) ELoad_24bppBM_as_32bppBM( @dir$+"data\frame3.bmp", sprite15%, ) ELoad_24bppBM_as_32bppBM( @dir$+"data\frame4.bmp", sprite16%, )  FLoad_24bppBM_as_32bppBM( @dir$+"data\powerup.bmp", pusprite%, ) HLoad_24bppBM_as_32bppBM( @dir$+"data\powerup2.bmp", pusprite2%, )    X=100 400 VLoad_24bppBM_as_32bppBM( @dir$+"data\alien"+(X)+".bmp", aliensprite%(X-100), )    X=100 400 WLoad_24bppBM_as_32bppBM( @dir$+"data\alien"+(X)+".bmp", aliensprite2%(X-100), )    . IF TIME MOD(2) PROCIntro ELSE PROCIntro2   Intro Timer%=0 Loop%=0  Fps%=0 debug%=0 debugmessage$=""  ON ERROR OFF cheat%=0 hit=0 score=0 lives%=5 N%=1 N2%=1 round%=0 wave%=0  $ SYS _FMUSIC_PlaySong%, handle%  sound%=1 play( 0 )   Main  lives%=0 lives%=-1 Autospeed%=0 Autospeedselected%=0 bg.y#=0 stop $ SYS _FMUSIC_StopSong%, handle%  *REFRESH ON 5Updatespeed Just to keep current speed setting $ SYS _FMUSIC_FreeSong%, handle%  GFXLIB_Clr,dispVars{},&0  X=7680 640 -46 xpos=(640-X)/2 ypos=xpos*0.75 Y=X*0.75 C GFXLIB_BPlotScale,dispVars{}, gameover%,640,480,X,Y,xpos,ypos  I%, @hwnd%, 0, 0  1    E GFXLIB_MMXCopy64, dispVars{}, gameover%, dibSectionAddr%, 19200    #score$ = "You Scored " + score < GFXLIB_GetBmFontStrWidth, font2%, score$ scorewidth% W GFXLIB_DrawBmFont3, dispVars{}, font2%, score$, (640-scorewidth%)/2, 325, &43171F ,kill$ = "You killed " + hit + " Aliens" : GFXLIB_GetBmFontStrWidth, font2%, kill$ killwidth% U GFXLIB_DrawBmFont3, dispVars{}, font2%, kill$, (640-killwidth%)/2, 305, &43171F 5Updatespeed Just to keep current speed setting score>score3 Newhighscore M GFXLIB_GetBmFontStrWidth, font2%, "Press SPACE to continue" txtWidth% g GFXLIB_DrawBmFont3, dispVars{}, font2%, "Press SPACE to continue", (640-txtWidth%)/2, 10, &43171F & I%, @hwnd%, 0, 0 Update screen  A$= A$=" "  2=1  Main    23,1,0;0;0;0;  adjusted%=0 adjustcounter%=0 starfield%=1  X=1 9 missile%(X)=0 missilex%(X)=0 missiley%(X)=0   rank$="" powerup%=0 powerup2%=0 pudrop%=0 pux%=0 puy%=0 pund%=0 musicisplaying%=1 skillkill%=0 skillkillcounter%=0 stopmusic%=0 soundtimer%=0 b%=0 Y%=0 X%=288 noreset%=0 count=0 delay%=0 speedup%=0 speeddown%=0 enter%=0 timer%=0 missile1%=0 missile1x%=0 missile1y%=50 missile2%=0 missile2x%=0 missile2y%=50 missile3%=0 missile3x%=0 missile3y%=50 padlen% = 9 padlen2%=2 left%=0 right%=0 up%=0 down%=0 dualwave%=0 perfect1%=1 perfect2%=1 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 N%=1 N2%=1 startsprite%=0 endsprite%=0 startsprite2%=0 endsprite2%=0 stepcounter%=0 stepcounter2%=0 alienwave1gap%=0 alienwave2gap%=0 pattern1length%=0 pattern2length%=0 wave1completed%=1 wave2completed%=1 busy%=0 message$="" message%=0 Z%=0  7  4 " "timeBeginPeriod",1 sperm%  =0   ! "GetForegroundWindow" hw%  hw% = @hwnd%   SYS "timeGetTime" TO tick  I SYS GFXLIB_MMXCopy64, dispVars{}, nightsky%, dibSectionAddr%, 19200 drawBg (ROUNDS)  +mciStatusParms%!8 = MCI_STATUS_POSITION N MciSendCommand%, DeviceID%, MCI_STATUS, MCI_STATUS_ITEM, mciStatusParms% ) mciStatusParms%!4 >= tracklength% play( 0 )    Y round%=0 wave1active%=0 wave1started%=0 busy%=0 wave%=wave%+1 Round1 Whoosh Y round%=1 wave1active%=0 wave1started%=0 busy%=0 wave%=wave%+1 Round2 Whoosh Y round%=2 wave1active%=0 wave1started%=0 busy%=0 wave%=wave%+1 Round3 Whoosh | round%=4 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 busy%=0 wave%=wave%+1 Round4 Whoosh | round%=6 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 busy%=0 wave%=wave%+1 Round5 Whoosh | round%=7 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 busy%=0 wave%=wave%+1 Round6 Whoosh | round%=9 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 busy%=0 wave%=wave%+1 Round7 Whoosh } round%=11 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 busy%=0 wave%=wave%+1 Round8 Whoosh } round%=12 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 busy%=0 wave%=wave%+1 Round9 Whoosh ~ round%=14 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 busy%=0 wave%=wave%+1 Round10 Whoosh ~ round%=15 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 busy%=0 wave%=wave%+1 Round11 Whoosh ~ round%=17 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 busy%=0 wave%=wave%+1 Round12 Whoosh ~ round%=19 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 busy%=0 wave%=wave%+1 Round13 Whoosh ~ round%=21 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 busy%=0 wave%=wave%+1 Round14 Whoosh ~ round%=22 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 busy%=0 wave%=wave%+1 Round15 Whoosh ~ round%=23 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 busy%=0 wave%=wave%+1 Round16 Whoosh ~ round%=24 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 busy%=0 wave%=wave%+1 Round17 Whoosh ~ round%=25 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 busy%=0 wave%=wave%+1 Round18 Whoosh ~ round%=27 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 busy%=0 wave%=wave%+1 Round19 Whoosh ~ round%=29 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 busy%=0 wave%=wave%+1 Round20 Whoosh   round%>29 wave1active%=0 wave1started%=0 wave2active%=0 wave2started%=0 busy%=0 wave%=wave%+1 Roundrandom Whoosh   busy%=1 Levelup   *REFRESH OFF     Skill message   < IF skillkill%=1 COLOUR RND(13): PRINTTAB(17,1)Message$ 8 skillkill%=1 skillkillcounter%=skillkillcounter%+1 c skillkill%=1 skillkillcounter%=1 GFXLIB_GetBmFontStrWidth, font2%, Message$ skillwidth% h skillkill%=1 GFXLIB_DrawBmFont3, dispVars{}, font2%, Message$, (640-skillwidth%)/2, 420, &F0F0F0   P skillkillcounter% >130 skillkillcounter%=0 skillkill%=0 PROCDisplayscore   D (-26) left%=left%+1 right%=right%-1 Arrowkey left Move Left G (-122) right%=right%+1 left%=left%-1 Arrowkey right Move Right : (-58) up%=up%+1 down%=down%-1 Arrowkey up Move up > (-42) down%=down%+1 up%=up%-1 Arrowkey down Move down  Y (-90) Autospeed%=1 Autospeedselected%=1 "Del" Enables automatic speed adjustment @ (-74) enter%=0 launch: enter%=1 "ENTER" Fire Missile  (-74) enter%=0 ! (-98) Z%=0 launch: Z%=1  (-98) Z%=0 ] (-59) speedup%=0 wait%=wait%-1: speedup%=1 Autospeed%=0 Numeric "+" Increase speed   (-59) speedup%=0 * (-51) debug%=1 "D" for Debug Mode a (-60) speeddown%=0 wait%=wait%+1: speeddown%=1 Autospeed%=0 numeric "-" Decrease speed  (-60) speeddown%=0  (-113) lives%=0 Die " Cheatmode hotkey removed :-) v (-86) starfield%=0 "N" disables plotting of stars (For slow machines. Obsolete now, but left in just in case)  (-26) left%=left%-1  (-122) right%=right%-1  (-58) up%=up%-1  (-42) down%=down%-1 sound%=1 skillkill%=0 (-17) sound%=0 skillkill%=1 Message$="sound off" Autospeed%=1 pausemusic "Q" for sound on/off j sound%=0 skillkill%=0 (-17) sound%=1 skillkill%=1 Message$="sound on" Autospeed%=1 resumemusic b (-82) shadow%=1 skillkill%=0 shadow%=0 skillkill%=1 Message$="shadows off" Autospeed%=1 a (-82) shadow%=0 skillkill%=0 shadow%=1 skillkill%=1 Message$="shadows on" Autospeed%=1   wait%=-1 wait%=0   # IF starfield%=1 PROCPlotstars  timer%=timer%+1   Aliens Moving , R%=startsprite%+N% startsprite% -1  h alien%(R%)=1 alienexplode%(R%)=0 alienver%(R%)=0 alienx%(R%)=pattern1data%(alienprogress%(R%)) P alien%(R%)=1 alienexplode%(R%)=0 alienprogress%(R%)=alienprogress%(R%)+1 h alien%(R%)=1 alienexplode%(R%)=0 alienver%(R%)=0 alieny%(R%)=pattern1data%(alienprogress%(R%)) P alien%(R%)=1 alienexplode%(R%)=0 alienprogress%(R%)=alienprogress%(R%)+1 [ alien%(R%)=1 alienexplode%(R%)=0 rotatealien%(R%)=pattern1data%(alienprogress%(R%)) P alien%(R%)=1 alienexplode%(R%)=0 alienprogress%(R%)=alienprogress%(R%)+1 alien%(R%)=1 alienexplode%(R%)=0 shadow%=1 GFXLIB_PlotRotateShapeHalfIntensity, dispVars{}, aliensprite%(R%), 56, 56, alienx%(R%)-6, alieny%(R%)-6, rotatealien%(R%) alien%(R%)=1 alienexplode%(R%)=0 GFXLIB_PlotRotateSetACBit, dispVars{}, aliensprite%(R%), 56, 56, alienx%(R%), alieny%(R%), rotatealien%(R%), 5    / R%=startsprite2%+N2% startsprite2% -1  m alien2%(R%)=1 alienexplode2%(R%)=0 alienver2%(R%)=0 alienx2%(R%)=pattern2data%(alienprogress2%(R%)) T alien2%(R%)=1 alienexplode2%(R%)=0 alienprogress2%(R%)=alienprogress2%(R%)+1 m alien2%(R%)=1 alienexplode2%(R%)=0 alienver2%(R%)=0 alieny2%(R%)=pattern2data%(alienprogress2%(R%)) T alien2%(R%)=1 alienexplode2%(R%)=0 alienprogress2%(R%)=alienprogress2%(R%)+1 _ alien2%(R%)=1 alienexplode2%(R%)=0 rotatealien2%(R%)=pattern2data%(alienprogress2%(R%)) T alien2%(R%)=1 alienexplode2%(R%)=0 alienprogress2%(R%)=alienprogress2%(R%)+1 alien2%(R%)=1 alienexplode2%(R%)=0 shadow%=1 GFXLIB_PlotRotateShapeHalfIntensity, dispVars{}, aliensprite2%(R%), 56, 56, alienx2%(R%)-6, alieny2%(R%)-6, rotatealien2%(R%) alien2%(R%)=1 alienexplode2%(R%)=0 GFXLIB_PlotRotateSetACBit, dispVars{}, aliensprite2%(R%), 56, 56, alienx2%(R%), alieny2%(R%), rotatealien2%(R%), 5    ` shadow%=1 GFXLIB_PlotRotateShapeHalfIntensity, dispVars{}, ship%, 56, 56, X%+22, Y%+22,0 M GFXLIB_PlotTestACBit, dispVars{}, ship%, 56, 56, X%, Y%, 5 collision% & collision%<> 0 cheat%=0 Die   , Missile moving and collision detection  / missile%(4)=1 missilex%(4)=missilex%(4)-2 2 missile%(4)=1 missilex%(4)<1 missile%(4)=0 / missile%(5)=1 missilex%(5)=missilex%(5)+2 4 missile%(5)=1 missilex%(5)>640 missile%(5)=0 / missile%(6)=1 missilex%(6)=missilex%(6)-2 2 missile%(6)=1 missilex%(6)<1 missile%(6)=0 / missile%(7)=1 missilex%(7)=missilex%(7)+2 4 missile%(7)=1 missilex%(7)>640 missile%(7)=0 / missile%(8)=1 missilex%(8)=missilex%(8)-2 2 missile%(8)=1 missilex%(8)<1 missile%(8)=0 / missile%(9)=1 missilex%(9)=missilex%(9)+2 4 missile%(9)=1 missilex%(9)>640 missile%(9)=0    Z=1 9  l missile%(Z)=1 GFXLIB_PlotRotate, dispVars{}, missilesprite%(Z), 32, 32, missilex%(Z), missiley%(Z),0 S missile%(Z)=1 missiley%(Z)=missiley%(Z)+15 missiley%(Z) > 480 missile%(Z)=0 ' R%=startsprite% startsprite%+N%  missile%(Z)=1 alienexplode%(R%)=0 alien%(R%)=1 missilex%(Z) < alienx%(R%)+28 missilex%(Z) > alienx%(R%)-28 missiley%(Z)>=alieny%(R%)-28 missiley%(Z) < alieny%(R%)+28 alienexplode%(R%)=1 missile%(Z)=0 Sweepdow      * R%=startsprite2% startsprite2%+N2%  missile%(Z)=1 alienexplode2%(R%)=0 alien2%(R%)=1 missilex%(Z) < alienx2%(R%)+28 missilex%(Z) > alienx2%(R%)-28 missiley%(Z)>=alieny2%(R%)-28 missiley%(Z) < alieny2%(R%)+28 alienexplode2%(R%)=1 missile%(Z)=0 Sweepdow      More Keyboard testing X%=X%-left% X%<0 X%=0 X%=X%+right% X%>576 X%=576  left%>10 left%=10  right%>10 right%=10  left%<0 left%=0  right%<0 right%=0  Y%=Y%-down% Y%<0 Y%=0 Y%=Y%+up% Y%>200 Y%=200  up%>3 up%=3  down%>3 down%=3  up%<0 up%=0  down%<0 down%=0   (0)=-1   Alien Explosion handling ' R%=startsprite% startsprite%+N%  powerup%=0 alienexplode%(R%)=1 (1000)=1 pudrop%=0 pund%=1 pudrop%=1 puangle%=(360) puy%=alieny%(R%) pux%=alienx%(R%) skillkill%=1 Message$="grab the powerup!" pudrop%=0 alienexplode%(R%)=1 (2000)=1 lives%=1 pund%=2 pudrop%=1 powerup2%=1 puangle%=(360) puy%=alieny%(R%) pux%=alienx%(R%) skillkill%=1 Message$="grab the powerup!"  M alienexplode%(R%)=1 alienexplosiontimer%(R%)=alienexplosiontimer%(R%)+1 alienexplode%(R%)=1 alienexplosiontimer%(R%)<5 GFXLIB_PlotRotate, dispVars{}, sprite13%, 64, 64, alienx%(R%), alieny%(R%),alienexplosiontimer%(R%)+35 alienexplode%(R%)=1 alienexplosiontimer%(R%)>5 alienexplosiontimer%(R%)<10 GFXLIB_PlotRotate, dispVars{}, sprite14%, 64, 64, alienx%(R%), alieny%(R%),alienexplosiontimer%(R%)+35 alienexplode%(R%)=1 alienexplosiontimer%(R%)>10 alienexplosiontimer%(R%)<15 GFXLIB_PlotRotate, dispVars{}, sprite15%, 64, 64, alienx%(R%), alieny%(R%),alienexplosiontimer%(R%)+35 alienexplode%(R%)=1 alienexplosiontimer%(R%)>15 GFXLIB_PlotRotate, dispVars{}, sprite16%, 64, 64, alienx%(R%), alieny%(R%),alienexplosiontimer%(R%)+35   alienexplosiontimer%(R%)=20 alienexplode%(R%)=0 alien%(R%)=0 aliendied%(R%)=1 alienexplosiontimer%(R%)=0 hit=hit+1 score=score+500      * R%=startsprite2% startsprite2%+N2%  powerup%=0 alienexplode2%(R%)=1 (1000)=1 pudrop%=0 pund%=1 pudrop%=1 puangle%=(360) puy%=alieny2%(R%) pux%=alienx2%(R%) skillkill%=1 Message$="grab the powerup!" pudrop%=0 alienexplode2%(R%)=1 (2000)=1 lives%=1 pund%=2 pudrop%=1 powerup2%=1 puangle%=(360) puy%=alieny2%(R%) pux%=alienx2%(R%) skillkill%=1 Message$="grab the powerup!"  P alienexplode2%(R%)=1 alienexplosiontimer2%(R%)=alienexplosiontimer2%(R%)+1 alienexplode2%(R%)=1 alienexplosiontimer2%(R%)<5 GFXLIB_PlotRotate, dispVars{}, sprite13%, 64, 64, alienx2%(R%), alieny2%(R%),alienexplosiontimer2%(R%)+25 alienexplode2%(R%)=1 alienexplosiontimer2%(R%)>5 alienexplosiontimer2%(R%)<10 GFXLIB_PlotRotate, dispVars{}, sprite14%, 64, 64, alienx2%(R%), alieny2%(R%),alienexplosiontimer2%(R%)+25 alienexplode2%(R%)=1 alienexplosiontimer2%(R%)>10 alienexplosiontimer2%(R%)<15 GFXLIB_PlotRotate, dispVars{}, sprite15%, 64, 64, alienx2%(R%), alieny2%(R%),alienexplosiontimer2%(R%)+25 alienexplode2%(R%)=1 alienexplosiontimer2%(R%)>15 GFXLIB_PlotRotate, dispVars{}, sprite16%, 64, 64, alienx2%(R%), alieny2%(R%),alienexplosiontimer2%(R%)+25   alienexplosiontimer2%(R%)=20 alienexplode2%(R%)=0 alien2%(R%)=0 aliendied2%(R%)=1 alienexplosiontimer2%(R%)=0 hit=hit+1 score=score+500      Respawn Aliens Ustepcounter%=stepcounter%+1: stepcounter%>alienwave1gap% N%=N%+1 stepcounter%=0 = N%>endsprite%-startsprite% N%=endsprite%-startsprite% ' R%=startsprite% startsprite%+N%    v alien%(R%)=0 wave1active%=1 aliendied%(R%)=0 stepcounter%=alienwave1gap% alien%(R%)=1 alienprogress%(R%)=1 / N%=endsprite%-startsprite% wave1active%=0 f alien%(R%)=1 alienprogress%(R%)>=pattern1length% 5 alien%(R%)=0 aliendied%(R%)=1 perfect1%=0    X N%=endsprite%-startsprite% wave1started%=1 wave1completed%=0 Checkwave1dead   [stepcounter2%=stepcounter2%+1: stepcounter2%>alienwave2gap% N2%=N2%+1 stepcounter2%=0 C N2%>endsprite2%-startsprite2% N2%=endsprite2%-startsprite2% * R%=startsprite2% startsprite2%+N2%    { alien2%(R%)=0 wave2active%=1 aliendied2%(R%)=0 stepcounter2%=alienwave2gap% alien2%(R%)=1 alienprogress2%(R%)=1 2 N2%=endsprite2%-startsprite2% wave2active%=0 j alien2%(R%)=1 alienprogress2%(R%)>=pattern2length% 5 alien2%(R%)=0 aliendied2%(R%)=1 perfect2%=0    [ N2%=endsprite2%-startsprite2% wave2started%=1 wave2completed%=0 Checkwave2dead   Powerup Handling  powerup%=0 pudrop%=1 pund%=1 X%< pux% X%> pux%-64 Y%>=puy%-64 Y% < puy% powerup%=1 pudrop%=0 skillkill%=1 Message$="powerup! triple-shot!" Powerupsound a pudrop%=1 pund%=1 GFXLIB_PlotRotate, dispVars{}, pusprite%, 28, 28, pux%, puy%,puangle%   pudrop%=1 puy%=puy%-1 = pudrop%=1 puangle%=puangle%+2 puangle%>360 puangle%=0 " pudrop%=1 puy%<1 pudrop%=0   b pudrop%=1 pund%=2 GFXLIB_PlotRotate, dispVars{}, pusprite2%, 28, 28, pux%, puy%,puangle% powerup2%=1 pudrop%=1 pund%=2 X%< pux% X%> pux%-64 Y%>=puy%-64 Y% < puy% lives%=lives%+1 powerup2%=0 pudrop%=0 skillkill%=1 Message$="powerup! extra life!" Powerupsound  Speed adjustment  SYS "timeGetTime" TO tick2  elapsed=tick2-tick  IF elapsed<1 elapsed=1  Loop%=Loop%+1 >10 Fps%=Loop%*10 Loop%=0 = Fps%>90 >10 Autospeed%=1 wait%=wait%+1 adjusted%=1 = Fps%<80 >10 Autospeed%=1 wait%=wait%-1 adjusted%=1 G IF Fps%<70 AND TIME>10 AND Autospeed%=1 wait%=wait%-1 adjusted%=1  wait%<0 wait%=0 @ adjusted%=0 Autospeed%=1 adjustcounter%=adjustcounter%+1 : adjustcounter%>600 Autospeed%=0 Autospeedselected%=0 " adjusted%=1 adjustcounter%=0 adjusted%=0 $ IF TIME>10 AND wait%=0 N%=N%-1  >10 =0  Displayscore  debug%=1 Debug  & I%, @hwnd%, 0, 0 Update screen " (-56) wait "P" for pause   wait%>0 W%, wait% *REFRESH   2=1    Checkwave1dead stillalive%=0 " Q%=startsprite% endsprite% alien%(Q%)=1 stillalive%=1   stillalive%=1  wave1completed%=1  wave2completed%=1 busy%=1 startsprite%=0 endsprite%=0 wave1completed%=1 wave1started%=0 round%=round%+1 N%=1    Checkwave2dead stillalive2%=0 $ Q%=startsprite2% endsprite2% " alien2%(Q%)=1 stillalive2%=1   stillalive2%=1  wave2completed%=1  wave1completed%=1 busy%=1 startsprite2%=0 endsprite2%=0 wave2completed%=1 wave2started%=0 round%=round%+1 N2%=1    ' Loadwave1pattern (pattern1wave%)  Load Patterns  Q%=1 300 aliendied%(Q%)=0  ;pattern1= (@dir$+"data\pattern"+pattern1wave%+".dat") pattern1length%=#pattern1   Q%=1 pattern1length% !#pattern1, pattern1data%(Q%)  #pattern1    ' Loadwave2pattern (pattern2wave%)  Load Patterns  Q%=1 300 aliendied2%(Q%)=0  ;pattern2= (@dir$+"data\pattern"+pattern2wave%+".dat") pattern2length%=#pattern2   Q%=1 pattern2length% !#pattern2, pattern2data%(Q%)  #pattern2    Round1 %Z= (@dir$+"data\pattern999.dat") 9 Z=0 Loadwave1pattern (1) Loadwave1pattern (999) #Z dualwave%=0 perfect1%=1 perfect2%=1 wave1started%=1 alienwave1gap%=10 stepcounter%=0 wave1active%=1 startsprite%=220 endsprite%=260 wave1completed%=0 wave2completed%=1   Round2 dualwave%=0 perfect1%=1 perfect2%=1 wave1started%=1 alienwave1gap%=15 stepcounter%=0 wave1active%=1 startsprite%=10 endsprite%=60 wave1completed%=0 wave2completed%=1 Loadwave1pattern (2)   Round3 dualwave%=1 perfect1%=1 wave1started%=1 alienwave1gap%=10 stepcounter%=0 wave1active%=1 startsprite%=60 endsprite%=110 wave1completed%=0 Loadwave1pattern (1) perfect2%=1 wave2started%=1 alienwave2gap%=20 stepcounter2%=0 wave2active%=1 startsprite2%=111 endsprite2%=137 wave2completed%=0 Loadwave2pattern (3)   Round4 dualwave%=1 perfect1%=1 wave1started%=1 alienwave1gap%=15 stepcounter%=0 wave1active%=1 startsprite%=140 endsprite%=180 wave1completed%=0 Loadwave1pattern (4) perfect2%=1 wave2started%=1 alienwave2gap%=15 stepcounter2%=0 wave2active%=1 startsprite2%=140 endsprite2%=180 wave2completed%=0 Loadwave2pattern (5)    Round5 dualwave%=0 perfect1%=1 perfect2%=1 wave1started%=1 alienwave1gap%=10 stepcounter%=0 wave1active%=1 startsprite%=180 endsprite%=210 wave1completed%=0 wave2completed%=1 Loadwave1pattern (6)    Round6 dualwave%=1 perfect1%=1 wave1started%=1 alienwave1gap%=15 stepcounter%=0 wave1active%=1 startsprite%=1 endsprite%=29 wave1completed%=0 Loadwave1pattern (7) perfect2%=1 wave2started%=1 alienwave2gap%=15 stepcounter2%=0 wave2active%=1 startsprite2%=1 endsprite2%=29 wave2completed%=0 Loadwave2pattern (8)    Round7 dualwave%=1 perfect1%=1 wave1started%=1 alienwave1gap%=20 stepcounter%=0 wave1active%=1 startsprite%=150 endsprite%=180 wave1completed%=0 Loadwave1pattern (9) perfect2%=1 wave2started%=1 alienwave2gap%=20 stepcounter2%=0 wave2active%=1 startsprite2%=150 endsprite2%=180 wave2completed%=0 Loadwave2pattern (10)    Round8 dualwave%=0 perfect1%=1 perfect2%=1 wave1started%=1 alienwave1gap%=10 stepcounter%=0 wave1active%=1 startsprite%=220 endsprite%=270 wave1completed%=0 wave2completed%=1 Loadwave1pattern (11)     Round9 dualwave%=1 perfect1%=1 wave1started%=1 alienwave1gap%=10 stepcounter%=0 wave1active%=1 startsprite%=270 endsprite%=300 wave1completed%=0 Loadwave1pattern (12) perfect2%=1 wave2started%=1 alienwave2gap%=10 stepcounter2%=0 wave2active%=1 startsprite2%=270 endsprite2%=300 wave2completed%=0 Loadwave2pattern (13)      Round10 dualwave%=0 perfect1%=1 perfect2%=1 wave1started%=1 alienwave1gap%=7 stepcounter%=0 wave1active%=1 startsprite%=150 endsprite%=200 wave1completed%=0 wave2completed%=1 Loadwave1pattern (14)      Round11 dualwave%=1 perfect1%=1 wave1started%=1 alienwave1gap%=15 stepcounter%=0 wave1active%=1 startsprite%=210 endsprite%=240 wave1completed%=0 Loadwave1pattern (15) perfect2%=1 wave2started%=1 alienwave2gap%=15 stepcounter2%=0 wave2active%=1 startsprite2%=210 endsprite2%=240 wave2completed%=0 Loadwave2pattern (16)     Round12 dualwave%=1 perfect1%=1 wave1started%=1 alienwave1gap%=10 stepcounter%=0 wave1active%=1 startsprite%=240 endsprite%=270 wave1completed%=0 Loadwave1pattern (17) perfect2%=1 wave2started%=1 alienwave2gap%=10 stepcounter2%=0 wave2active%=1 startsprite2%=240 endsprite2%=270 wave2completed%=0 Loadwave2pattern (18)     Round13 dualwave%=1 perfect1%=1 wave1started%=1 alienwave1gap%=12 stepcounter%=0 wave1active%=1 startsprite%=270 endsprite%=300 wave1completed%=0 Loadwave1pattern (19) perfect2%=1 wave2started%=1 alienwave2gap%=12 stepcounter2%=0 wave2active%=1 startsprite2%=240 endsprite2%=270 wave2completed%=0 Loadwave2pattern (20)    Round14 dualwave%=0 perfect1%=1 perfect2%=1 wave1started%=1 alienwave1gap%=10 stepcounter%=0 wave1active%=1 startsprite%=150 endsprite%=200 wave1completed%=0 wave2completed%=1 Loadwave1pattern (21)    Round15 dualwave%=0 perfect1%=1 perfect2%=1 wave1started%=1 alienwave1gap%=10 stepcounter%=0 wave1active%=1 startsprite%=100 endsprite%=150 wave1completed%=0 wave2completed%=1 Loadwave1pattern (22)    Round16 dualwave%=0 perfect1%=1 perfect2%=1 wave1started%=1 alienwave1gap%=10 stepcounter%=0 wave1active%=1 startsprite%=50 endsprite%=100 wave1completed%=0 wave2completed%=1 Loadwave1pattern (23)      Round17 dualwave%=0 perfect1%=1 perfect2%=1 wave1started%=1 alienwave1gap%=10 stepcounter%=0 wave1active%=1 startsprite%=50 endsprite%=100 wave1completed%=0 wave2completed%=1 Loadwave1pattern (24)    Round18 dualwave%=1 perfect1%=1 wave1started%=1 alienwave1gap%=12 stepcounter%=0 wave1active%=1 startsprite%=50 endsprite%=100 wave1completed%=0 Loadwave1pattern (25) perfect2%=1 wave2started%=1 alienwave2gap%=12 stepcounter2%=0 wave2active%=1 startsprite2%=1 endsprite2%=50 wave2completed%=0 Loadwave2pattern (26)    Round19 dualwave%=1 perfect1%=1 wave1started%=1 alienwave1gap%=10 stepcounter%=0 wave1active%=1 startsprite%=200 endsprite%=250 wave1completed%=0 Loadwave1pattern (27) perfect2%=1 wave2started%=1 alienwave2gap%=10 stepcounter2%=0 wave2active%=1 startsprite2%=150 endsprite2%=200 wave2completed%=0 Loadwave2pattern (28)    Round20 dualwave%=1 perfect1%=1 wave1started%=1 alienwave1gap%=8 stepcounter%=0 wave1active%=1 startsprite%=50 endsprite%=100 wave1completed%=0 Loadwave1pattern (29) perfect2%=1 wave2started%=1 alienwave2gap%=8 stepcounter2%=0 wave2active%=1 startsprite2%=1 endsprite2%=50 wave2completed%=0 Loadwave2pattern (30)      Roundrandom dualwave%=1 perfect1%=1 wave1started%=1 alienwave1gap%=12 stepcounter%=0 wave1active%=1 startsprite%=50 endsprite%=75 wave1completed%=0 perfect2%=1 wave2started%=1 alienwave2gap%=12 stepcounter2%=0 wave2active%=1 startsprite2%=1 endsprite2%=25 wave2completed%=0  RANDOM1%=(30) RANDOM2%=(30)  RANDOM1%<>RANDOM2% Loadwave1pattern (RANDOM1%) Loadwave2pattern (RANDOM2%)     Levelup (message$="Wave "+wave%+" Completed" < GFXLIB_GetBmFontStrWidth, font2%, message$ txtWidth% F GFXLIB_GetBmFontStrWidth, font2%, "Perfect, bonus!" txtWidth2% W GFXLIB_DrawBmFont3, dispVars{}, font2%, message$, (640-txtWidth%)/2, 230, &FFFFFF I sound%=1 message%=1 _FSOUND_PlaySound%, _FSOUND_FREE, hFANFARE% perfect1%=1 perfect2%=1 message%>75 GFXLIB_DrawBmFont3, dispVars{}, font2%, "Perfect, bonus!", (640-txtWidth2%)/2, 200, (16777215) score=score+500 f sound%=1 perfect1%=1 perfect2%=1 message%=75 _FSOUND_PlaySound%, _FSOUND_FREE, hPERFECT% :message%=message%+1 message%=150 message%=0: busy%=0     launch missile%(1)=0 timer%>5 powerup%=1 missile%(1)=1 missilex%(1)=X%+28 missiley%(1)=Y%+56 missile%(4)=1 missilex%(4)=X%+28 missiley%(4)=Y%+56 missile%(5)=1 missilex%(5)=X%+28 missiley%(5)=Y%+56 timer%=0 Laser e missile%(1)=0 timer%>5 missile%(1)=1 missilex%(1)=X%+28 missiley%(1)=Y%+56 timer%=0 Laser missile%(2)=0 timer%>5 powerup%=1 missile%(2)=1 missilex%(2)=X%+28 missiley%(2)=Y%+56 missile%(6)=1 missilex%(6)=X%+28 missiley%(6)=Y%+56 missile%(7)=1 missilex%(7)=X%+28 missiley%(7)=Y%+56 timer%=0 Laser e missile%(2)=0 timer%>5 missile%(2)=1 missilex%(2)=X%+28 missiley%(2)=Y%+56 timer%=0 Laser missile%(3)=0 timer%>5 powerup%=1 missile%(3)=1 missilex%(3)=X%+28 missiley%(3)=Y%+56 missile%(8)=1 missilex%(8)=X%+28 missiley%(8)=Y%+56 missile%(9)=1 missilex%(9)=X%+28 missiley%(9)=Y%+56 timer%=0 Laser e missile%(3)=0 timer%>5 missile%(3)=1 missilex%(3)=X%+28 missiley%(3)=Y%+56 timer%=0 Laser   Die  *REFRESH ON  debug%=1 Debug   cheat%=0 lives%=lives%-1 9 sound%=1 _FSOUND_PlaySound%, _FSOUND_FREE, hBOOM%   delay% = 10 0 -0.10 drawBg   , R%=startsprite%+N% startsprite% -1 alien%(R%)=1 alienexplode%(R%)=0 shadow%=1 GFXLIB_PlotRotateShapeHalfIntensity, dispVars{}, aliensprite%(R%), 56, 56, alienx%(R%)-6, alieny%(R%)-6, rotatealien%(R%) alien%(R%)=1 alienexplode%(R%)=0 GFXLIB_PlotRotateSetACBit, dispVars{}, aliensprite%(R%), 56, 56, alienx%(R%), alieny%(R%), rotatealien%(R%), 5  / R%=startsprite2%+N2% startsprite2% -1 alien2%(R%)=1 alienexplode2%(R%)=0 shadow%=1 GFXLIB_PlotRotateShapeHalfIntensity, dispVars{}, aliensprite2%(R%), 56, 56, alienx2%(R%)-6, alieny2%(R%)-6, rotatealien2%(R%) alien2%(R%)=1 alienexplode2%(R%)=0 GFXLIB_PlotRotateSetACBit, dispVars{}, aliensprite2%(R%), 56, 56, alienx2%(R%), alieny2%(R%), rotatealien2%(R%), 5   & I%, @hwnd%, 0, 0 Update screen delay%    4 GFXLIB_Plot, dispVars{}, ship%, 56, 56, X%, Y%   & I%, @hwnd%, 0, 0 Update screen delay%   drawBg & I%, @hwnd%, 0, 0 Update screen  100 ! X=startsprite% endsprite% "alien%(X)=0 alienexplode%(X)=0  # X=startsprite2% endsprite2% $alien2%(X)=0 alienexplode2%(X)=0   I wave1completed%=1 wave2completed%=0 dualwave%=1 round%=round%-1 I wave1completed%=0 wave2completed%=1 dualwave%=1 round%=round%-1  wave%=wave%-1 startsprite%=0 endsprite%=0 wave1completed%=1 wave1started%=0 N%=1 startsprite2%=0 endsprite2%=0 wave2completed%=1 wave2started%=0 N2%=1 wave1active%=0 wave2active%=0 powerup%=0    Createhighscore  *FONT System,12 40,2)"ATTENTION!" g2,5)"This program has the ability of automatically posting your highscores to an online database" T2,6)"featuring the best scores achieved. (look in the readme.txt for the URL)" d2,7)"Data transmitted is limited to your score and whatever you enter on the highscore table." i2,9)"It is completely optional, and you now have to decide whether you want this to happen or not." 38,12)"PRESS EITHER:" <25,14)"""Y"" - To signify that you DO allow this, or:" 125,15)"""N"" - To signify that you do NOT." A$= ' A$="n" A$="N" A$="y" A$="Y"  A$="Y" A$="y" accept%=1  A$="N" A$="n" accept%=0 Autospeed%=1 shadow%=1 name1$="No-one" name2$="No-one" name3$="No-one" starfield%=1 wait%=10 score1=0 score2=0 score3=0 highscorefile= blastscore$ ^#highscorefile,name1$,score1,name2$,score2,name3$,score3,wait%,starfield%,shadow%,accept% #highscorefile     Updatespeed highscorefile= blastscore$ ^#highscorefile,name1$,score1,name2$,score2,name3$,score3,wait%,starfield%,shadow%,accept% #highscorefile      Newhighscore  5 $*FONT Blade Runner movie font,20 : sound%=1 _FSOUND_PlaySound%, _FSOUND_FREE, hYEHAW% U GFXLIB_GetBmFontStrWidth, font2%, "congratulations! new highscore!" txtWidth% o GFXLIB_DrawBmFont3, dispVars{}, font2%, "congratulations! new highscore!", (640-txtWidth%)/2, 50, &43171F G GFXLIB_GetBmFontStrWidth, font2%, "Enter your name:" txtWidth2% b GFXLIB_DrawBmFont3, dispVars{}, font2%, "Enter your name:", (640-txtWidth2%)/2, 150, &43171F 0,8 300,250  I%, @hwnd%, 0, 0  (0)=-1 name$ Sortscore highscorefile= blastscore$ ^#highscorefile,name1$,score1,name2$,score2,name3$,score3,wait%,starfield%,shadow%,accept% #highscorefile #scrollleft%=(640-scorewidth%)/2 #scrollright%=(640-killwidth%)/2 scrolldown%=150 postweb  E GFXLIB_MMXCopy64, dispVars{}, gameover%, dibSectionAddr%, 19200 | GFXLIB_DrawBmFont3, dispVars{}, font2%, "congratulations! new highscore!", (640-txtWidth%)/2, scrolldown%-100, &43171F j GFXLIB_DrawBmFont3, dispVars{}, font2%, "Enter your name:", (640-txtWidth2%)/2, scrollleft%, &43171F O GFXLIB_DrawBmFont3, dispVars{}, font2%, score$, scrollleft%, 325, &43171F O GFXLIB_DrawBmFont3, dispVars{}, font2%, kill$, scrollright%, 305, &43171F J GFXLIB_DrawBmFont3, dispVars{}, font2%, name$, 150, 125, (16777215) scrollleft%=scrollleft%-4 scrollright%=scrollright%+4 scrolldown%=scrolldown%-2   I%, @hwnd%, 0, 0  W%, wait%  scrollright%>700 4place$="You are "+rank$+" on the highscore list" ; GFXLIB_GetBmFontStrWidth, font2%, place$ txtWidth2% V GFXLIB_DrawBmFont3, dispVars{}, font2%, place$, (640-txtWidth2%)/2, 355, &8B3043 F GFXLIB_DrawBmFont3, dispVars{}, font2%, name$, 150, 125, &8B3043     Sweepdow = sound%=1 _FSOUND_PlaySound%, _FSOUND_FREE, hSWEEPDOW%   Laser : sound%=1 _FSOUND_PlaySound%, _FSOUND_FREE, hLASER%    Bombsound 9 sound%=1 _FSOUND_PlaySound%, _FSOUND_FREE, hBOMB%    Whoosh ; sound%=1 _FSOUND_PlaySound%, _FSOUND_FREE, hWHOOSH%    Powerupsound < sound%=1 _FSOUND_PlaySound%, _FSOUND_FREE, hPOWERUP%   Quit  _FSOUND_Close% 2 "RemoveFontResource", @dir$+"data\BLADR.TTF"   wait Q GFXLIB_GetBmFontStrWidth, font2%,"Paused - SPACE to continue" pausewidth% ( SYS _FMUSIC_SetPaused%, handle%, 1 pausemusic d GFXLIB_DrawBmFont1, dispVars{}, font2%, "Paused - SPACE to continue", (640-pausewidth%)/2, 240  I%, @hwnd%, 0, 0  A= A=32 ( SYS _FMUSIC_SetPaused%, handle%, 0 resumemusic    Displayscore * cheat%=0 score$ = "Score: " + score 8 cheat%=1 score$ = "Score: " + score + " CHEATING" 8lives$ = "lives: " + padlen2%-lives%,"0")+lives% E GFXLIB_DrawBmFont3, dispVars{}, font1%, score$, 0, 460, &F0F0F0 G GFXLIB_DrawBmFont3, dispVars{}, font1%, lives$, 510, 460, &F0F0F0 > Autospeed%=1 Autospeed$="AUTO-ADJUSTING - FPS: " + Fps% o Autospeed%=1 Autospeedselected%=1 GFXLIB_DrawBmFont3, dispVars{}, font1%, Autospeed$, 0, 440, &F0F0F0   Plot ; GFXLIB_PlotPixel, dispVars{}, B%(D%), C%(D%), &FFFFFF  PLOT 70,B%(D%), C%(D%) F S%(D%)>6 Plotmore Plot more detailed stars on faster machines    Plotmore = GFXLIB_PlotPixel, dispVars{}, B%(D%)+2, C%(D%), &FFFFFF = GFXLIB_PlotPixel, dispVars{}, B%(D%)-2, C%(D%), &FFFFFF = GFXLIB_PlotPixel, dispVars{}, B%(D%), C%(D%)+2, &FFFFFF = GFXLIB_PlotPixel, dispVars{}, B%(D%), C%(D%)-2, &FFFFFF   Debug *FONT Arial,12  IF hit<150 hit=151 0,1)"Delay ";wait% 0,2)"FPS ";Fps%  0,3)"Stars ";starfield% "0,4)"Autoadjust ";Autospeed%       Plotstars  Update Positions  D%=0 A%  IC%(D%)=C%(D%)-S%(D%) C%(D%)<5 C%(D%)=500 B%(D%)=(640) S%(D%)=(10) ENDIF   Plot New Star 0,7  D%=0 A% Plot    Intro    GFXLIB_Clr,dispVars{},&0  X=0 640 4 xpos=(640-X)/2 ypos=xpos*0.75 Y=X*0.75 B GFXLIB_BPlotScale,dispVars{}, shooter%,640,480,X,Y,xpos,ypos  I%, @hwnd%, 0, 0  1   ,points1$ = "With " + score1 + " Points" ,points2$ = "With " + score2 + " Points" ,points3$ = "With " + score3 + " Points" display1$="1. "+name1$ display2$="2. "+name2$ display3$="3. "+name3$  =0 color=&8B3043 scrollleft1%=2000 scrollleft2%=1050 scrollleft3%=1100  I REPEAT SYS "GetForegroundWindow" TO hw% SYS W%,1 UNTIL hw% = @hwnd% D GFXLIB_MMXCopy64, dispVars{}, shooter%, dibSectionAddr%, 19200  b GFXLIB_DrawBmFont3, dispVars{}, font2%, "Current Highscores by:", scrollleft1%, 130, &43171F Q GFXLIB_DrawBmFont3, dispVars{}, font2%, display1$, scrollleft1%, 100, color Q GFXLIB_DrawBmFont3, dispVars{}, font2%, points1$, scrollleft1%, 85, &43171F R GFXLIB_DrawBmFont3, dispVars{}, font2%, display2$, scrollleft2%, 65, &43171F Q GFXLIB_DrawBmFont3, dispVars{}, font2%, points2$, scrollleft2%, 50, &43171F R GFXLIB_DrawBmFont3, dispVars{}, font2%, display3$, scrollleft3%, 30, &43171F Q GFXLIB_DrawBmFont3, dispVars{}, font2%, points3$, scrollleft3%, 15, &43171F & I%, @hwnd%, 0, 0 Update screen Cscrollleft1%=scrollleft1%-2 scrollleft1%<150 scrollleft1%=150 2 scrollleft1%<550 scrollleft2%=scrollleft2%-2 ' scrollleft2%<150 scrollleft2%=150 2 scrollleft2%<550 scrollleft3%=scrollleft3%-2 ' scrollleft3%<150 scrollleft3%=150  wait%>0 W%, wait%-1 & IF TIME>2500 color=RND(16777215) *REFRESH  >2500 Intro R (-82) "ShellExecute", @hwnd%, 0, "http://81red.dk/usscores.php", 0, "", 1  ) (-99) (-71) (-113) (-35)   (-113) Quit  (-71) Keys  (-35) Editor    Keys A GFXLIB_MMXCopy64, dispVars{}, keys%, dibSectionAddr%, 19200 & I%, @hwnd%, 0, 0 Update screen  A= A=32    postweb  post score to Web.  e code removed as to not tempt those that might abuse it and post ridiculous scores to my site :)  error @error$="Damn, something is out of whack! The error was:"+13 #error$+=$+" at line "+()+13 Kerror$+="Please report the above to error@81red.dk so it can be fixed." ) "MessageBox", @hwnd%, error$, 0, 48 Quit     Sortscore r score>score1 score3=score2 name3$=name2$ score2=score1 name2$=name1$ score1=score name1$=name$ rank$="1st" V score>score2 score3=score2 name3$=name2$ score2=score name2$=name$ rank$="2nd" : score>score3 score3=score name3$=name$ rank$="3rd"   drawBg  A%, D%, H%, I%, W%, P%  D% = dispVars{}  . Draw bg bitmap W% = dispVars.bmBuffW% 2 H% = dispVars.bmBuffH% 2 %A% = bg.bmAddr% + 4*(bg.y#) * W% . GFXLIB_MMXScale2X, D%, A%, W%, H%, dibs% bg.y# += 0.5 , bg.y# >= bg.h% - dispVars.bmBuffH%2 bg.y# = 0.0   . Draw stars P% = GFXLIB_PlotOpaqueLD  I%=0 numStars%-1 F P%, D%, star{(I%)}.bmAddr%, 12, 12, star{(I%)}.x%, star{(I%)}.y# #star{(I%)}.y# -= star{(I%)}.dy#  star{(I%)}.y# <= -12 *star{(I%)}.x% = ( dispVars.bmBuffW% ) %star{(I%)}.y# = dispVars.bmBuffH%    : : : :  initStars  I%  starBmAddrTbl(15)  I%=0 15 HLoadBMP( @dir$ + "data\star_12x12_8bpp.BMP", starBmAddrTbl(I%), 0 ) M GFXLIB_SetDispVars, dispVars{}, starBmAddrTbl(I%), 12, 12, 0, 0,12,12,  g GFXLIB_PlotScaleFade, dispVars{}, starBmAddrTbl(I%), 12, 12, 12,12, 0, 0, 25 + ((255-25) * I%/15)   I% 0 GFXLIB_QuickSetDispVars, dispVars{}, dibs% numStars% = 60 0 star{( numStars%-1 ) bmAddr%, x%, y#, dy#}  I%=0 numStars%-1 *star{(I%)}.x% = ( dispVars.bmBuffW% ) *star{(I%)}.y# = ( dispVars.bmBuffH% ) #star{(I%)}.dy# = 1.0 + 4.0*(1) ?star{(I%)}.bmAddr% = starBmAddrTbl( 16 * star{(I%)}.dy#/5 )  I%  : : : :  createBg 0 C%, D%, G%, H%, I%, J%, P%, R%, S%, X%, Y%  scrW%, scrH%, blob%  scrW% = dispVars.bmBuffW% scrH% = dispVars.bmBuffH%  ) bg{ w%, h%, memSize%, bmAddr%, y# }  bg.y# = 0.0  <LoadBMP( @dir$ + "data\blob_64x64_8bpp.BMP", blob%, 0 )  D% = dispVars{} %G% = GFXLIB_PlotColourBlendOpaque $H% = GFXLIB_PlotScaleColourBlend  !bg.w% = dispVars.bmBuffW% 2 (bg.h% = 16 * (dispVars.bmBuffH% 2) #bg.memSize% = 4 * bg.w% * bg.h% 'bg.bmAddr% = malloc( bg.memSize% )  %dispVars.bmBuffAddr% = bg.bmAddr% dispVars.bmBuffW% = bg.w% dispVars.bmBuffH% = bg.h%  /. Ensure same background pattern each time R% = (-)  ^. PlotColourBlendOpaque (dispVars, bmAddr, bmW, bmH, bmX, bmY, colour, strength, opacity)   I%=1 100 X% = ( bg.w% ) - 32 -Y% = 3/2*scrH%2 + ( bg.h% - 3/2*scrH% )  J%=1 10 + (40) -C% = rgb( (30), 155+(100), 230+(25) ) 7 G%, D%, blob%, 64, 64, X%, Y%, C%, 255, 32+(223) X% += (32) * ((3) - 2) Y% += (32) * ((3) - 2)    . Blur background  I%=1 3 6 GFXLIB_BoxBlurNxNR, bg.bmAddr%, bg.w%, bg.h%, 17   f. PlotScaleColourBlend (dispVars, bmAddr, bmW, bmH, newBmW, newBmH, xPos, yPos, colour, strength)  ". Draw random white-ish blobs  I%=1 1000 X% = ( bg.w% ) Y% = ( bg.h% ) 'P% = bg.bmAddr%!(4*X% + 4*Y%*bg.w%) S% = (20) P%<>0 W H%, D%, blob%, 64, 64, S%, S%, X%, Y%, rgb(200+(56), 200+(56), 200+(56)), 255    . Do some more blurring...  I%=1 2 6 GFXLIB_BoxBlurNxNR, bg.bmAddr%, bg.w%, bg.h%, 17   . Darken background O GFXLIB_MMXSubtract64, dispVars{}, bg.bmAddr%, 4*(bg.w% * bg.h% 64), 150  ". Restore the dispVars struct 0 GFXLIB_QuickSetDispVars, dispVars{}, dibs%     Editor  18 L xbuffer%(10000), ybuffer%(10000), rbuffer%(10000), radianbuffer(10000)  RANDOM%=(-) ZLoad_24bppBM_as_32bppBM( @dir$+"data\alien"+( (300)+100)+".bmp", editorsprite%, ) P PROCLoad_24bppBM_as_32bppBM( @dir$+"data\nightsky.bmp", nightsky%, FALSE ) r=0 r%=0  ORIGIN 640,512  3 step%=0.1 pressed%=0 enter%=0 coord%=0 x%=0 y%=0  E GFXLIB_MMXCopy64, dispVars{}, nightsky%, dibSectionAddr%, 19200  x%, y%, b% 00,0)"X,Y ";x%/2;" ";y%/2;" Step: ";step%/2 B0,1)"Points plotted: ";coord%;" Radian: ";r;" Degrees: ";r%;  b% b% xbuffer%(coord%)=x%/2 ybuffer%(coord%)=y%/2 rbuffer%(coord%)=r% radianbuffer(coord%)=r pressed%=1 coord%=coord%+1 10 x%,y%  b%= pressed%=0  0  (-59) step%=step%+2 10 (-60) step%=step%-2 10  step%<2 step%=2   (-51) r=(90)  (-34) r=(0)  (-66) r=(270)  (-82) r=(180)   (-52) Replay  x (-92) coord%=coord%+1 xbuffer%(coord%)=x%/2 ybuffer%(coord%)=y%/2 rbuffer%(coord%)=r% radianbuffer(coord%)=r 10 ( (-123) x%=x%-step%  x%,y% 10 ' (-27) x%=x%+step%  x%,y% 10  ( (-125) y%=y%-step%  x%,y% 10 ' (-43) y%=y%+step%  x%,y% 10   (-48) Stepback 10  E IF INKEY(-122) AND NOT INKEY(-1) x%=x%+2 MOUSE TO x%,y% WAIT 10  (-122) r=r+0.017 10  D IF INKEY(-26) AND NOT INKEY(-1) x%=x%-2 MOUSE TO x%,y% WAIT 10  (-26) r=r-0.017 10  D IF INKEY(-42) AND NOT INKEY(-1) y%=y%-2 MOUSE TO x%,y% WAIT 10  (-42) step%=step%-2 10  D IF INKEY(-58) AND NOT INKEY(-1) y%=y%+2 MOUSE TO x%,y% WAIT 10  (-58) step%=step%+2 10  r>6.295 r=0  r<0 r=6.295 r%=(r) (-74) coord%=coord%+1 x%=x%+step%*(r) y%=y%+step%*(r) xbuffer%(coord%)=x%/2 ybuffer%(coord%)=y%/2 rbuffer%(coord%)=r% radianbuffer(coord%)=r  x%,y% enter%=1 10  (-74) enter%=0  U GFXLIB_PlotRotateSetACBit, dispVars{}, editorsprite%, 56, 56, x%/2, y%/2, r%, 5  I%, @hwnd%, 0, 0  (0)=-1  1 (-99)  coord%=0  %F= (@dir$+"data\pattern999.dat")  X=1 coord% +#F,xbuffer%(X),ybuffer%(X),rbuffer%(X)   #F     Stepback x%=xbuffer%(coord%)*2 y%=ybuffer%(coord%)*2 r=radianbuffer(coord%)  x%,y%  coord%=1 coord%=coord%-1   Replay rx%=0 ry%=0 rr%=0  X=1 coord% rx%=xbuffer%(X) ry%=ybuffer%(X) rr%=rbuffer%(X) T GFXLIB_PlotRotateSetACBit, dispVars{}, editorsprite%, 56, 56, rx%, ry%, rr%, 5  I%, @hwnd%, 0, 0  10    Idiot Vidiot$="Hmmm.. It seems that the files required to run this game are missing."+13 idiot$+="Please make sure you are not trying to run this directly from within a zipped file, without EXTRACTING THE CONTENTS first."+13 ) "MessageBox", @hwnd%, idiot$, 0, 16 *QUIT    pausemusic DeviceID% += 0  DeviceID%=0 9 "mciSendCommand", DeviceID%, MCI_PAUSE, MCI_WAIT, 0    resumemusic DeviceID% += 0  DeviceID%=0 : "mciSendCommand", DeviceID%, MCI_RESUME, MCI_WAIT, 0     open( file$ )  A% F%, R%   A% = 0 DeviceID% = 0  Ofn% 75, FileName% 255 ^ mciOpenParms% 19, mciPlayParms% 11, mciSetParms% 11, mciStatusParms% 15, mciSeekParms% 7 A% = 1   $$FileName% = file$  filter$ = "Media files"+0+"*.MP3;*.WMA;*.MID;*.MIDI;*.RMI;*.WAV;*.AVI;*.MPG;*.MP2;*.WMV;*.MOV;*.MPEG"+0+"All files"+0+"*.*"+0+0  !Ofn% = 76 Ofn%!4 = @hwnd% Ofn%!12 = !^filter$ Ofn%!28 = FileName% Ofn%!32 = 256 Ofn%!52 = 6  mciOpenParms%!4 = 0 'mciOpenParms%!8 = MCI_ALL_DEVICE_ID mciOpenParms%!12 = FileName% I "mciSendCommand", 0, MCI_OPEN, MCI_OPEN_ELEMENT, mciOpenParms% R%  - R% 100, "Can't find suitable codec"  DeviceID% = mciOpenParms%!4 M "mciSendCommand", DeviceID%, MCI_SET, MCI_SET_TIME_FORMAT, mciSetParms%  : : : :  play(mciPlayParms%!4) DeviceID% += 0  DeviceID%=0 D "mciSendCommand", DeviceID%, MCI_PLAY, MCI_FROM, mciPlayParms%  : : : :  seek(mciSeekParms%!4) DeviceID% += 0  DeviceID%=0 B "mciSendCommand", DeviceID%, MCI_SEEK, MCI_TO, mciSeekParms%  : : : : stop DeviceID% += 0  DeviceID%=0 8 "mciSendCommand", DeviceID%, MCI_STOP, MCI_WAIT, 0  : : : : close DeviceID% += 0  DeviceID%=0 9 "mciSendCommand", DeviceID%, MCI_CLOSE, MCI_WAIT, 0 DeviceID% = 0  : : : :  cleanup DeviceID% += 0  DeviceID%=0 stop close    fmod & FMOD.DLL Header File 25-May-2007 * BBC BASIC Translation (C) Jon Ripley  0 "GetModuleHandle", "kernel32.dll" _hdll% 5 "GetProcAddress", _hdll%, "GetProcAddress" _% - "LoadLibrary", "data\fmod.dll" _hdll% K _hdll%=0 "Warning: A required DLL 'fmod.dll' could not be found." : _%, _hdll%, "_FMUSIC_FreeSong@4" _FMUSIC_FreeSong% 6 _%, _hdll%, "_FMUSIC_GetBPM@4" _FMUSIC_GetBPM% H _%, _hdll%, "_FMUSIC_GetGlobalVolume@4" _FMUSIC_GetGlobalVolume% H _%, _hdll%, "_FMUSIC_GetMasterVolume@4" _FMUSIC_GetMasterVolume% 8 _%, _hdll%, "_FMUSIC_GetName@4" _FMUSIC_GetName% F _%, _hdll%, "_FMUSIC_GetNumChannels@4" _FMUSIC_GetNumChannels% L _%, _hdll%, "_FMUSIC_GetNumInstruments@4" _FMUSIC_GetNumInstruments% B _%, _hdll%, "_FMUSIC_GetNumOrders@4" _FMUSIC_GetNumOrders% F _%, _hdll%, "_FMUSIC_GetNumPatterns@4" _FMUSIC_GetNumPatterns% D _%, _hdll%, "_FMUSIC_GetNumSamples@4" _FMUSIC_GetNumSamples% B _%, _hdll%, "_FMUSIC_GetOpenState@4" _FMUSIC_GetOpenState% : _%, _hdll%, "_FMUSIC_GetOrder@4" _FMUSIC_GetOrder% > _%, _hdll%, "_FMUSIC_GetPattern@4" _FMUSIC_GetPattern% J _%, _hdll%, "_FMUSIC_GetPatternLength@8" _FMUSIC_GetPatternLength% < _%, _hdll%, "_FMUSIC_GetPaused@4" _FMUSIC_GetPaused% F _%, _hdll%, "_FMUSIC_GetRealChannel@8" _FMUSIC_GetRealChannel% 6 _%, _hdll%, "_FMUSIC_GetRow@4" _FMUSIC_GetRow% < _%, _hdll%, "_FMUSIC_GetSample@8" _FMUSIC_GetSample% : _%, _hdll%, "_FMUSIC_GetSpeed@4" _FMUSIC_GetSpeed% 8 _%, _hdll%, "_FMUSIC_GetTime@4" _FMUSIC_GetTime% 8 _%, _hdll%, "_FMUSIC_GetType@4" _FMUSIC_GetType% @ _%, _hdll%, "_FMUSIC_GetUserData@4" _FMUSIC_GetUserData% > _%, _hdll%, "_FMUSIC_IsFinished@4" _FMUSIC_IsFinished% < _%, _hdll%, "_FMUSIC_IsPlaying@4" _FMUSIC_IsPlaying% : _%, _hdll%, "_FMUSIC_LoadSong@4" _FMUSIC_LoadSong% ? _%, _hdll%, "_FMUSIC_LoadSongEx@24" _FMUSIC_LoadSongEx% K _%, _hdll%, "_FMUSIC_OptimizeChannels@12" _FMUSIC_OptimizeChannels% : _%, _hdll%, "_FMUSIC_PlaySong@4" _FMUSIC_PlaySong% I _%, _hdll%, "_FMUSIC_SetInstCallback@12" _FMUSIC_SetInstCallback% > _%, _hdll%, "_FMUSIC_SetLooping@8" _FMUSIC_SetLooping% F _%, _hdll%, "_FMUSIC_SetMasterSpeed@8" _FMUSIC_SetMasterSpeed% H _%, _hdll%, "_FMUSIC_SetMasterVolume@8" _FMUSIC_SetMasterVolume% : _%, _hdll%, "_FMUSIC_SetOrder@8" _FMUSIC_SetOrder% K _%, _hdll%, "_FMUSIC_SetOrderCallback@12" _FMUSIC_SetOrderCallback% J _%, _hdll%, "_FMUSIC_SetPanSeperation@8" _FMUSIC_SetPanSeperation% < _%, _hdll%, "_FMUSIC_SetPaused@8" _FMUSIC_SetPaused% < _%, _hdll%, "_FMUSIC_SetReverb@4" _FMUSIC_SetReverb% G _%, _hdll%, "_FMUSIC_SetRowCallback@12" _FMUSIC_SetRowCallback% = _%, _hdll%, "_FMUSIC_SetSample@12" _FMUSIC_SetSample% @ _%, _hdll%, "_FMUSIC_SetUserData@8" _FMUSIC_SetUserData% F _%, _hdll%, "_FMUSIC_SetZxxCallback@8" _FMUSIC_SetZxxCallback% B _%, _hdll%, "_FMUSIC_StopAllSongs@0" _FMUSIC_StopAllSongs% : _%, _hdll%, "_FMUSIC_StopSong@4" _FMUSIC_StopSong% K _%, _hdll%, "_FSOUND_3D_GetAttributes@12" _FSOUND_3D_GetAttributes% S _%, _hdll%, "_FSOUND_3D_GetMinMaxDistance@12" _FSOUND_3D_GetMinMaxDistance% ] _%, _hdll%, "_FSOUND_3D_Listener_GetAttributes@32" _FSOUND_3D_Listener_GetAttributes% ] _%, _hdll%, "_FSOUND_3D_Listener_SetAttributes@32" _FSOUND_3D_Listener_SetAttributes% V _%, _hdll%, "_FSOUND_3D_Listener_SetCurrent@8" _FSOUND_3D_Listener_SetCurrent% K _%, _hdll%, "_FSOUND_3D_SetAttributes@12" _FSOUND_3D_SetAttributes% R _%, _hdll%, "_FSOUND_3D_SetDistanceFactor@4" _FSOUND_3D_SetDistanceFactor% P _%, _hdll%, "_FSOUND_3D_SetDopplerFactor@4" _FSOUND_3D_SetDopplerFactor% S _%, _hdll%, "_FSOUND_3D_SetMinMaxDistance@12" _FSOUND_3D_SetMinMaxDistance% P _%, _hdll%, "_FSOUND_3D_SetRolloffFactor@4" _FSOUND_3D_SetRolloffFactor% : _%, _hdll%, "_FSOUND_CD_Eject@4" _FSOUND_CD_Eject% H _%, _hdll%, "_FSOUND_CD_GetNumTracks@4" _FSOUND_CD_GetNumTracks% B _%, _hdll%, "_FSOUND_CD_GetPaused@4" _FSOUND_CD_GetPaused% @ _%, _hdll%, "_FSOUND_CD_GetTrack@4" _FSOUND_CD_GetTrack% L _%, _hdll%, "_FSOUND_CD_GetTrackLength@8" _FSOUND_CD_GetTrackLength% H _%, _hdll%, "_FSOUND_CD_GetTrackTime@4" _FSOUND_CD_GetTrackTime% B _%, _hdll%, "_FSOUND_CD_GetVolume@4" _FSOUND_CD_GetVolume% @ _%, _hdll%, "_FSOUND_CD_OpenTray@8" _FSOUND_CD_OpenTray% 8 _%, _hdll%, "_FSOUND_CD_Play@8" _FSOUND_CD_Play% B _%, _hdll%, "_FSOUND_CD_SetPaused@8" _FSOUND_CD_SetPaused% F _%, _hdll%, "_FSOUND_CD_SetPlayMode@8" _FSOUND_CD_SetPlayMode% H _%, _hdll%, "_FSOUND_CD_SetTrackTime@8" _FSOUND_CD_SetTrackTime% B _%, _hdll%, "_FSOUND_CD_SetVolume@8" _FSOUND_CD_SetVolume% 8 _%, _hdll%, "_FSOUND_CD_Stop@4" _FSOUND_CD_Stop% 4 _%, _hdll%, "_FSOUND_Close@0" _FSOUND_Close% N _%, _hdll%, "_FSOUND_DSP_ClearMixBuffer@0" _FSOUND_DSP_ClearMixBuffer% ? _%, _hdll%, "_FSOUND_DSP_Create@12" _FSOUND_DSP_Create% : _%, _hdll%, "_FSOUND_DSP_Free@4" _FSOUND_DSP_Free% D _%, _hdll%, "_FSOUND_DSP_GetActive@4" _FSOUND_DSP_GetActive% P _%, _hdll%, "_FSOUND_DSP_GetBufferLength@0" _FSOUND_DSP_GetBufferLength% Z _%, _hdll%, "_FSOUND_DSP_GetBufferLengthTotal@0" _FSOUND_DSP_GetBufferLengthTotal% J _%, _hdll%, "_FSOUND_DSP_GetClearUnit@0" _FSOUND_DSP_GetClearUnit% V _%, _hdll%, "_FSOUND_DSP_GetClipAndCopyUnit@0" _FSOUND_DSP_GetClipAndCopyUnit% F _%, _hdll%, "_FSOUND_DSP_GetFFTUnit@0" _FSOUND_DSP_GetFFTUnit% J _%, _hdll%, "_FSOUND_DSP_GetMusicUnit@0" _FSOUND_DSP_GetMusicUnit% H _%, _hdll%, "_FSOUND_DSP_GetPriority@4" _FSOUND_DSP_GetPriority% F _%, _hdll%, "_FSOUND_DSP_GetSFXUnit@0" _FSOUND_DSP_GetSFXUnit% H _%, _hdll%, "_FSOUND_DSP_GetSpectrum@0" _FSOUND_DSP_GetSpectrum% G _%, _hdll%, "_FSOUND_DSP_MixBuffers@28" _FSOUND_DSP_MixBuffers% D _%, _hdll%, "_FSOUND_DSP_SetActive@8" _FSOUND_DSP_SetActive% H _%, _hdll%, "_FSOUND_DSP_SetPriority@8" _FSOUND_DSP_SetPriority% M _%, _hdll%, "_FSOUND_File_SetCallbacks@20" _FSOUND_File_SetCallbacks% > _%, _hdll%, "_FSOUND_FX_Disable@4" _FSOUND_FX_Disable% < _%, _hdll%, "_FSOUND_FX_Enable@8" _FSOUND_FX_Enable% C _%, _hdll%, "_FSOUND_FX_SetChorus@32" _FSOUND_FX_SetChorus% K _%, _hdll%, "_FSOUND_FX_SetCompressor@28" _FSOUND_FX_SetCompressor% K _%, _hdll%, "_FSOUND_FX_SetDistortion@24" _FSOUND_FX_SetDistortion% ? _%, _hdll%, "_FSOUND_FX_SetEcho@24" _FSOUND_FX_SetEcho% E _%, _hdll%, "_FSOUND_FX_SetFlanger@32" _FSOUND_FX_SetFlanger% C _%, _hdll%, "_FSOUND_FX_SetGargle@12" _FSOUND_FX_SetGargle% M _%, _hdll%, "_FSOUND_FX_SetI3DL2Reverb@52" _FSOUND_FX_SetI3DL2Reverb% E _%, _hdll%, "_FSOUND_FX_SetParamEQ@16" _FSOUND_FX_SetParamEQ% M _%, _hdll%, "_FSOUND_FX_SetWavesReverb@20" _FSOUND_FX_SetWavesReverb% B _%, _hdll%, "_FSOUND_GetAmplitude@4" _FSOUND_GetAmplitude% N _%, _hdll%, "_FSOUND_GetChannelsPlaying@0" _FSOUND_GetChannelsPlaying% @ _%, _hdll%, "_FSOUND_GetCPUUsage@0" _FSOUND_GetCPUUsage% K _%, _hdll%, "_FSOUND_GetCurrentLevels@12" _FSOUND_GetCurrentLevels% N _%, _hdll%, "_FSOUND_GetCurrentPosition@4" _FSOUND_GetCurrentPosition% J _%, _hdll%, "_FSOUND_GetCurrentSample@4" _FSOUND_GetCurrentSample% < _%, _hdll%, "_FSOUND_GetDriver@0" _FSOUND_GetDriver% D _%, _hdll%, "_FSOUND_GetDriverCaps@8" _FSOUND_GetDriverCaps% D _%, _hdll%, "_FSOUND_GetDriverName@4" _FSOUND_GetDriverName% : _%, _hdll%, "_FSOUND_GetError@0" _FSOUND_GetError% B _%, _hdll%, "_FSOUND_GetFrequency@4" _FSOUND_GetFrequency% @ _%, _hdll%, "_FSOUND_GetLoopMode@4" _FSOUND_GetLoopMode% F _%, _hdll%, "_FSOUND_GetMaxChannels@0" _FSOUND_GetMaxChannels% D _%, _hdll%, "_FSOUND_GetMaxSamples@0" _FSOUND_GetMaxSamples% F _%, _hdll%, "_FSOUND_GetMemoryStats@8" _FSOUND_GetMemoryStats% : _%, _hdll%, "_FSOUND_GetMixer@0" _FSOUND_GetMixer% 8 _%, _hdll%, "_FSOUND_GetMute@4" _FSOUND_GetMute% D _%, _hdll%, "_FSOUND_GetNumDrivers@0" _FSOUND_GetNumDrivers% V _%, _hdll%, "_FSOUND_GetNumHardwareChannels@0" _FSOUND_GetNumHardwareChannels% K _%, _hdll%, "_FSOUND_GetNumHWChannels@12" _FSOUND_GetNumHWChannels% L _%, _hdll%, "_FSOUND_GetNumSubChannels@4" _FSOUND_GetNumSubChannels% < _%, _hdll%, "_FSOUND_GetOutput@0" _FSOUND_GetOutput% H _%, _hdll%, "_FSOUND_GetOutputHandle@0" _FSOUND_GetOutputHandle% D _%, _hdll%, "_FSOUND_GetOutputRate@0" _FSOUND_GetOutputRate% 6 _%, _hdll%, "_FSOUND_GetPan@4" _FSOUND_GetPan% < _%, _hdll%, "_FSOUND_GetPaused@4" _FSOUND_GetPaused% @ _%, _hdll%, "_FSOUND_GetPriority@4" _FSOUND_GetPriority% @ _%, _hdll%, "_FSOUND_GetReserved@4" _FSOUND_GetReserved% N _%, _hdll%, "_FSOUND_GetSFXMasterVolume@0" _FSOUND_GetSFXMasterVolume% D _%, _hdll%, "_FSOUND_GetSubChannel@8" _FSOUND_GetSubChannel% @ _%, _hdll%, "_FSOUND_GetSurround@4" _FSOUND_GetSurround% > _%, _hdll%, "_FSOUND_GetVersion@0" _FSOUND_GetVersion% < _%, _hdll%, "_FSOUND_GetVolume@4" _FSOUND_GetVolume% 3 _%, _hdll%, "_FSOUND_Init@12" _FSOUND_Init% < _%, _hdll%, "_FSOUND_IsPlaying@4" _FSOUND_IsPlaying% < _%, _hdll%, "_FSOUND_PlaySound@8" _FSOUND_PlaySound% A _%, _hdll%, "_FSOUND_PlaySoundEx@16" _FSOUND_PlaySoundEx% J _%, _hdll%, "_FSOUND_Record_GetDriver@0" _FSOUND_Record_GetDriver% R _%, _hdll%, "_FSOUND_Record_GetDriverName@4" _FSOUND_Record_GetDriverName% R _%, _hdll%, "_FSOUND_Record_GetNumDrivers@0" _FSOUND_Record_GetNumDrivers% N _%, _hdll%, "_FSOUND_Record_GetPosition@0" _FSOUND_Record_GetPosition% J _%, _hdll%, "_FSOUND_Record_SetDriver@4" _FSOUND_Record_SetDriver% N _%, _hdll%, "_FSOUND_Record_StartSample@8" _FSOUND_Record_StartSample% @ _%, _hdll%, "_FSOUND_Record_Stop@0" _FSOUND_Record_Stop% ` _%, _hdll%, "_FSOUND_Reverb_GetChannelProperties@8" _FSOUND_Reverb_GetChannelProperties% R _%, _hdll%, "_FSOUND_Reverb_GetProperties@4" _FSOUND_Reverb_GetProperties% ` _%, _hdll%, "_FSOUND_Reverb_SetChannelProperties@8" _FSOUND_Reverb_SetChannelProperties% R _%, _hdll%, "_FSOUND_Reverb_SetProperties@4" _FSOUND_Reverb_SetProperties% C _%, _hdll%, "_FSOUND_Sample_Alloc@28" _FSOUND_Sample_Alloc% @ _%, _hdll%, "_FSOUND_Sample_Free@4" _FSOUND_Sample_Free% > _%, _hdll%, "_FSOUND_Sample_Get@4" _FSOUND_Sample_Get% O _%, _hdll%, "_FSOUND_Sample_GetDefaults@20" _FSOUND_Sample_GetDefaults% S _%, _hdll%, "_FSOUND_Sample_GetDefaultsEx@32" _FSOUND_Sample_GetDefaultsEx% J _%, _hdll%, "_FSOUND_Sample_GetLength@4" _FSOUND_Sample_GetLength% S _%, _hdll%, "_FSOUND_Sample_GetLoopPoints@12" _FSOUND_Sample_GetLoopPoints% [ _%, _hdll%, "_FSOUND_Sample_GetMinMaxDistance@12" _FSOUND_Sample_GetMinMaxDistance% F _%, _hdll%, "_FSOUND_Sample_GetMode@4" _FSOUND_Sample_GetMode% F _%, _hdll%, "_FSOUND_Sample_GetName@4" _FSOUND_Sample_GetName% A _%, _hdll%, "_FSOUND_Sample_Load@20" _FSOUND_Sample_Load% A _%, _hdll%, "_FSOUND_Sample_Lock@28" _FSOUND_Sample_Lock% O _%, _hdll%, "_FSOUND_Sample_SetDefaults@20" _FSOUND_Sample_SetDefaults% S _%, _hdll%, "_FSOUND_Sample_SetDefaultsEx@32" _FSOUND_Sample_SetDefaultsEx% S _%, _hdll%, "_FSOUND_Sample_SetLoopPoints@12" _FSOUND_Sample_SetLoopPoints% V _%, _hdll%, "_FSOUND_Sample_SetMaxPlaybacks@8" _FSOUND_Sample_SetMaxPlaybacks% [ _%, _hdll%, "_FSOUND_Sample_SetMinMaxDistance@12" _FSOUND_Sample_SetMinMaxDistance% F _%, _hdll%, "_FSOUND_Sample_SetMode@8" _FSOUND_Sample_SetMode% E _%, _hdll%, "_FSOUND_Sample_Unlock@20" _FSOUND_Sample_Unlock% E _%, _hdll%, "_FSOUND_Sample_Upload@12" _FSOUND_Sample_Upload% D _%, _hdll%, "_FSOUND_SetBufferSize@4" _FSOUND_SetBufferSize% N _%, _hdll%, "_FSOUND_SetCurrentPosition@8" _FSOUND_SetCurrentPosition% < _%, _hdll%, "_FSOUND_SetDriver@4" _FSOUND_SetDriver% B _%, _hdll%, "_FSOUND_SetFrequency@8" _FSOUND_SetFrequency% F _%, _hdll%, "_FSOUND_SetFrequencyEx@8" _FSOUND_SetFrequencyEx% 8 _%, _hdll%, "_FSOUND_SetHWND@4" _FSOUND_SetHWND% @ _%, _hdll%, "_FSOUND_SetLoopMode@8" _FSOUND_SetLoopMode% V _%, _hdll%, "_FSOUND_SetMaxHardwareChannels@4" _FSOUND_SetMaxHardwareChannels% I _%, _hdll%, "_FSOUND_SetMemorySystem@20" _FSOUND_SetMemorySystem% V _%, _hdll%, "_FSOUND_SetMinHardwareChannels@4" _FSOUND_SetMinHardwareChannels% : _%, _hdll%, "_FSOUND_SetMixer@4" _FSOUND_SetMixer% 8 _%, _hdll%, "_FSOUND_SetMute@8" _FSOUND_SetMute% < _%, _hdll%, "_FSOUND_SetOutput@4" _FSOUND_SetOutput% 6 _%, _hdll%, "_FSOUND_SetPan@8" _FSOUND_SetPan% J _%, _hdll%, "_FSOUND_SetPanSeperation@4" _FSOUND_SetPanSeperation% < _%, _hdll%, "_FSOUND_SetPaused@8" _FSOUND_SetPaused% @ _%, _hdll%, "_FSOUND_SetPriority@8" _FSOUND_SetPriority% @ _%, _hdll%, "_FSOUND_SetReserved@8" _FSOUND_SetReserved% N _%, _hdll%, "_FSOUND_SetSFXMasterVolume@4" _FSOUND_SetSFXMasterVolume% F _%, _hdll%, "_FSOUND_SetSpeakerMode@4" _FSOUND_SetSpeakerMode% @ _%, _hdll%, "_FSOUND_SetSurround@8" _FSOUND_SetSurround% < _%, _hdll%, "_FSOUND_SetVolume@8" _FSOUND_SetVolume% L _%, _hdll%, "_FSOUND_SetVolumeAbsolute@8" _FSOUND_SetVolumeAbsolute% < _%, _hdll%, "_FSOUND_StopSound@4" _FSOUND_StopSound% Q _%, _hdll%, "_FSOUND_Stream_AddSyncPoint@12" _FSOUND_Stream_AddSyncPoint% B _%, _hdll%, "_FSOUND_Stream_Close@4" _FSOUND_Stream_Close% E _%, _hdll%, "_FSOUND_Stream_Create@20" _FSOUND_Stream_Create% K _%, _hdll%, "_FSOUND_Stream_CreateDSP@16" _FSOUND_Stream_CreateDSP% V _%, _hdll%, "_FSOUND_Stream_DeleteSyncPoint@4" _FSOUND_Stream_DeleteSyncPoint% Q _%, _hdll%, "_FSOUND_Stream_FindTagField@20" _FSOUND_Stream_FindTagField% J _%, _hdll%, "_FSOUND_Stream_GetLength@4" _FSOUND_Stream_GetLength% N _%, _hdll%, "_FSOUND_Stream_GetLengthMs@4" _FSOUND_Stream_GetLengthMs% F _%, _hdll%, "_FSOUND_Stream_GetMode@4" _FSOUND_Stream_GetMode% X _%, _hdll%, "_FSOUND_Stream_GetNumSubStreams@4" _FSOUND_Stream_GetNumSubStreams% X _%, _hdll%, "_FSOUND_Stream_GetNumSyncPoints@4" _FSOUND_Stream_GetNumSyncPoints% V _%, _hdll%, "_FSOUND_Stream_GetNumTagFields@8" _FSOUND_Stream_GetNumTagFields% P _%, _hdll%, "_FSOUND_Stream_GetOpenState@4" _FSOUND_Stream_GetOpenState% N _%, _hdll%, "_FSOUND_Stream_GetPosition@4" _FSOUND_Stream_GetPosition% J _%, _hdll%, "_FSOUND_Stream_GetSample@4" _FSOUND_Stream_GetSample% P _%, _hdll%, "_FSOUND_Stream_GetSyncPoint@8" _FSOUND_Stream_GetSyncPoint% X _%, _hdll%, "_FSOUND_Stream_GetSyncPointInfo@8" _FSOUND_Stream_GetSyncPointInfo% O _%, _hdll%, "_FSOUND_Stream_GetTagField@24" _FSOUND_Stream_GetTagField% F _%, _hdll%, "_FSOUND_Stream_GetTime@4" _FSOUND_Stream_GetTime% g _%, _hdll%, "_FSOUND_Stream_Net_GetBufferProperties@12" _FSOUND_Stream_Net_GetBufferProperties% f _%, _hdll%, "_FSOUND_Stream_Net_GetLastServerStatus@0" _FSOUND_Stream_Net_GetLastServerStatus% S _%, _hdll%, "_FSOUND_Stream_Net_GetStatus@20" _FSOUND_Stream_Net_GetStatus% g _%, _hdll%, "_FSOUND_Stream_Net_SetBufferProperties@12" _FSOUND_Stream_Net_SetBufferProperties% g _%, _hdll%, "_FSOUND_Stream_Net_SetMetadataCallback@12" _FSOUND_Stream_Net_SetMetadataCallback% d _%, _hdll%, "_FSOUND_Stream_Net_SetNetDataCallback@8" _FSOUND_Stream_Net_SetNetDataCallback% P _%, _hdll%, "_FSOUND_Stream_Net_SetProxy@4" _FSOUND_Stream_Net_SetProxy% A _%, _hdll%, "_FSOUND_Stream_Open@16" _FSOUND_Stream_Open% @ _%, _hdll%, "_FSOUND_Stream_Play@8" _FSOUND_Stream_Play% E _%, _hdll%, "_FSOUND_Stream_PlayEx@16" _FSOUND_Stream_PlayEx% R _%, _hdll%, "_FSOUND_Stream_SetBufferSize@4" _FSOUND_Stream_SetBufferSize% U _%, _hdll%, "_FSOUND_Stream_SetEndCallback@12" _FSOUND_Stream_SetEndCallback% P _%, _hdll%, "_FSOUND_Stream_SetLoopCount@8" _FSOUND_Stream_SetLoopCount% S _%, _hdll%, "_FSOUND_Stream_SetLoopPoints@12" _FSOUND_Stream_SetLoopPoints% F _%, _hdll%, "_FSOUND_Stream_SetMode@8" _FSOUND_Stream_SetMode% D _%, _hdll%, "_FSOUND_Stream_SetPCM@8" _FSOUND_Stream_SetPCM% N _%, _hdll%, "_FSOUND_Stream_SetPosition@8" _FSOUND_Stream_SetPosition% P _%, _hdll%, "_FSOUND_Stream_SetSubStream@8" _FSOUND_Stream_SetSubStream% a _%, _hdll%, "_FSOUND_Stream_SetSubStreamSentence@12" _FSOUND_Stream_SetSubStreamSentence% W _%, _hdll%, "_FSOUND_Stream_SetSyncCallback@12" _FSOUND_Stream_SetSyncCallback% F _%, _hdll%, "_FSOUND_Stream_SetTime@8" _FSOUND_Stream_SetTime% @ _%, _hdll%, "_FSOUND_Stream_Stop@4" _FSOUND_Stream_Stop% 6 _%, _hdll%, "_FSOUND_Update@0" _FSOUND_Update%  ) _FSOUND_REVERB_CHANNELPROPERTIES{ \ V\ Direct%, \ int32 direct path level (at low and mid frequencies) V\ DirectHF%, \ int32 relative direct path level at high frequencies V\ Room%, \ int32 room effect level (at low and mid frequencies) V\ RoomHF%, \ int32 relative room effect level at high frequencies b\ Obstruction%, \ int32 main obstruction control (attenuation at high frequencies) Y\ ObstructionLFRatio%, \ single obstruction low-frequency level re. main control `\ Occlusion%, \ int32 main occlusion control (attenuation at high frequencies) W\ OcclustionLFRatio%, \ single occlusion low-frequency level re. main control S\ OcclusionRoomRatio%, \ single relative occlusion control for room effect S\ OcclusionDirectRatio%, \ single relative occlusion control for direct path _\ Exclusion%, \ int32 main exlusion control (attenuation at high frequencies) W\ ExclusionLFRatio%, \ single exclusion low-frequency level re. main control T\ OutsideVolumeHF%, \ int32 outside sound cone level at high frequencies Q\ DopplerFactor%, \ single like DS3D flDopplerFactor but per source Q\ RolloffFactor%, \ single like DS3D flRolloffFactor but per source V\ RoomRolloffFactor%, \ single like DS3D flRolloffFactor but for room effect f\ AirAbsorptionFactor%, \ single multiplies AirAbsorptionHF member of FSOUND_REVERB_PROPERTIES K\ flags% \ int32 modifies the behavior of properties \ }  " _FSOUND_REVERB_PROPERTIES{ \ J\ \ MIN MAX DEFAULT DESCRIPTION [\ Environment%, \ int32 0 25 0 sets all listener properties Y\ EnvSize%, \ single 1.0 100.0 7.5 environment size in meters T\ EnvDiffusion%, \ single 0.0 1.0 1.0 environment diffusion e\ Room%, \ int32 -10000 0 -1000 room effect level (at mid frequencies) m\ RoomHF%, \ int32 -10000 0 -100 relative room effect level at high frequencies l\ RoomLF%, \ int32 -10000 0 0 relative room effect level at low frequencies j\ DecayTime%, \ single 0.1 20.0 1.49 reverberation decay time at mid frequencies o\ DecayHFRatio%, \ single 0.1 2.0 0.83 high-frequency to mid-frequency decay time ratio n\ DecayLFRatio%, \ single 0.1 2.0 1.0 low-frequency to mid-frequency decay time ratio n\ Reflections%, \ int32 -10000 1000 -2602 early reflections level relative to room effect \\ ReflectionsDelay%, \ single 0.0 0.3 0.007 initial reflection delay time P\ ReflectionsPan%(3), \ single 0,0,0 early reflections panning vector o\ Reverb%, \ int32 -1000 2000 200 late reverberation level relative to room effect {\ ReverbDelay%, \ single 0.0 0.1 0.011 late reverberation delay time relative to initial reflection Q\ ReverbPan%(3), \ single 0,0,0 late reverberation panning vector H\ EchoTime%, \ single .075 0.25 0.25 echo time I\ EchoDepth%, \ single 0.0 1.0 0.0 echo depth N\ ModulationTime%, \ single 0.04 4.0 0.25 modulation time O\ ModulationDepth%, \ single 0.0 1.0 0.0 modulation depth l\ AirAbsorptionHF%, \ single -100 0.0 -5.0 change in level per meter at high frequencies \\ HFReference%, \ single 1000.0 20000 5000.0 reference high frequency (hz) [\ LFReference%, \ single 20.0 1000.0 250.0 reference low frequency (hz) r\ RoomRolloffFactor%, \ single 0.0 10.0 0.0 like FSOUND_3D_SetRolloffFactor but for room effect \ Diffusion%, \ single 0.0 100.0 100.0 Value that controls the echo density in the late reverberation decay. (xbox only) \ Density%, \ single 0.0 100.0 100.0 Value that controls the modal density in the late reverberation decay (xbox only) P\ flags% \ int32 modifies the behavior of above properties \ }   _FSOUND_TOC_TAG{ \ \ TagName&(3), \ byte The string "TOC" (4th character is 0), just in case this structure is accidentally treated as a string. B\ NumTracks%, \ int32 The number of tracks on the CD. M\ Min%(99), \ int32 The start offset of each track in minutes. M\ Sec%(99), \ int32 The start offset of each track in seconds. L\ Frame%(99) \ int32 The start offset of each track in frames. \ }    FMOD_ERRORS /_FMOD_ERR_NONE = 0 : No errors j_FMOD_ERR_BUSY = 1 : Cannot call this command after FSOUND_Init. Call FSOUND_Close first. \_FMOD_ERR_UNINITIALIZED = 2 : This command failed because FSOUND_Init was not called G_FMOD_ERR_INIT = 3 : Error initializing output device. _FMOD_ERR_ALLOCATED = 4 : Error initializing output device, but more specifically, the output device is already in use and cannot be reused. ?_FMOD_ERR_PLAY = 5 : Playing the sound failed. _FMOD_ERR_OUTPUT_FORMAT = 6 : Soundcard does not support the features needed for this soundsystem (16bit stereo output) S_FMOD_ERR_COOPERATIVELEVEL = 7 : Error setting cooperative level for hardware. K_FMOD_ERR_CREATEBUFFER = 8 : Error creating hardware sound buffer. 4_FMOD_ERR_FILE_NOTFOUND = 9 : File not found :_FMOD_ERR_FILE_FORMAT = 10 : Unknown file format 9_FMOD_ERR_FILE_BAD = 11 : Error loading file 8_FMOD_ERR_MEMORY = 12 : Not enough memory ^_FMOD_ERR_VERSION = 13 : The version number of this file format is not supported W_FMOD_ERR_INVALID_PARAM = 14 : An invalid parameter was passed to this function j_FMOD_ERR_NO_EAX = 15 : Tried to use an EAX command on a non EAX enabled channel or output. G_FMOD_ERR_CHANNEL_ALLOC = 16 : Failed to allocate a new channel Q_FMOD_ERR_RECORD = 17 : Recording is not supported on this machine w_FMOD_ERR_MEDIAPLAYER = 18 : Windows Media Player not installed so cannot play wma or use internet streaming. ^_FMOD_ERR_CDDEVICE = 19 : An error occured trying to open the specified CD device    FMUSIC_TYPES _FMUSIC_TYPE_NONE = 0 5_FMUSIC_TYPE_MOD = 1 : Protracker / Fasttracker ,_FMUSIC_TYPE_S3M = 2 : ScreamTracker 3 *_FMUSIC_TYPE_XM = 3 : FastTracker 2 -_FMUSIC_TYPE_IT = 4 : Impulse Tracker. &_FMUSIC_TYPE_MIDI = 5 : MIDI file 2_FMUSIC_TYPE_FSB = 6 : FMOD Sample Bank file    FSOUND_CAPS U_FSOUND_CAPS_HARDWARE = &1 : This driver supports hardware accelerated 3d sound. C_FSOUND_CAPS_EAX2 = &2 : This driver supports EAX 2 reverb D_FSOUND_CAPS_EAX3 = &10 : This driver supports EAX 3 reverb    FSOUND_CDPLAYMODES Z_FSOUND_CD_PLAYCONTINUOUS = 0 : Starts from the current track and plays to end of CD. J_FSOUND_CD_PLAYONCE = 1 : Plays the specified track then stops. f_FSOUND_CD_PLAYLOOPED = 2 : Plays the specified track looped, forever until stopped manually. A_FSOUND_CD_PLAYRANDOM = 3 : Plays tracks in random order    FSOUND_CHANNELSAMPLEMODE X_FSOUND_FREE = -1 : definition for dynamically allocated channel or sample b_FSOUND_UNMANAGED = -2 : definition for allocating a sample that is NOT managed by fsound _FSOUND_ALL = -3 : for a channel index or sample index, this flag affects ALL channels or samples available! Not supported by all functions. [_FSOUND_STEREOPAN = -1 : definition for full middle stereo volume on both channels _FSOUND_SYSTEMCHANNEL = -1000 : special channel ID for channel based functions that want to alter the global FSOUND software mixing output channel _FSOUND_SYSTEMSAMPLE = -1000 : special sample ID for all sample based functions that want to alter the global FSOUND software mixing output sample    FSOUND_DSP_PRIORITIES R_FSOUND_DSP_DEFAULTPRIORITY_CLEARUNIT = 0 : DSP CLEAR unit - done first S_FSOUND_DSP_DEFAULTPRIORITY_SFXUNIT = 100 : DSP SFX unit - done second T_FSOUND_DSP_DEFAULTPRIORITY_MUSICUNIT = 200 : DSP MUSIC unit - done third t_FSOUND_DSP_DEFAULTPRIORITY_USER = 300 : User priority, use this as reference for your own dsp units _FSOUND_DSP_DEFAULTPRIORITY_FFTUNIT = 900 : This reads data for FSOUND_DSP_GetSpectrum, so it comes after user units W_FSOUND_DSP_DEFAULTPRIORITY_CLIPANDCOPYUNIT = 1000 : DSP CLIP AND COPY unit - last    FSOUND_FX_MODES _FSOUND_FX_CHORUS = 0 _FSOUND_FX_COMPRESSOR = 1 _FSOUND_FX_DISTORTION = 2 _FSOUND_FX_ECHO = 3 _FSOUND_FX_FLANGER = 4 _FSOUND_FX_GARGLE = 5 _FSOUND_FX_I3DL2REVERB = 6 _FSOUND_FX_PARAMEQ = 7 _FSOUND_FX_WAVES_REVERB = 8    FSOUND_INITMODES a_FSOUND_INIT_USEDEFAULTMIDISYNTH = &1 : Causes MIDI playback to force software decoding. y_FSOUND_INIT_GLOBALFOCUS = &2 : For DirectSound output - sound is not muted when window is out of focus. _FSOUND_INIT_ENABLESYSTEMCHANNELFX = &4 : For DirectSound output - Allows FSOUND_FX api to be used on global software mixer output! _FSOUND_INIT_ACCURATEVULEVELS = &8 : This latency adjusts FSOUND_GetCurrentLevels, but incurs a small cpu and memory hit d_FSOUND_INIT_PS2_DISABLECORE0REVERB = &10 : PS2 only - Disable reverb on CORE 0 to regain SRAM d_FSOUND_INIT_PS2_DISABLECORE1REVERB = &20 : PS2 only - Disable reverb on CORE 1 to regain SRAM _FSOUND_INIT_PS2_SWAPDMACORES = &40 : PS2 only - By default FMOD uses DMA CH0 for mixing, CH1 for uploads, this flag swaps them around _FSOUND_INIT_DONTLATENCYADJUST = &80 : Callbacks are not latency adjusted, and are called at mix time. Also information functions are immediate a_FSOUND_INIT_GC_INITLIBS = &100 : Gamecube only - Initializes GC audio libraries _FSOUND_INIT_STREAM_FROM_MAIN_THREAD = &200 : Turns off fmod streamer thread, and makes streaming update from FSOUND_Update called by the user    FSOUND_MIXERTYPES U_FSOUND_MIXER_AUTODETECT = 0 : CE/PS2 Only - Non interpolating/low quality mixer 7_FSOUND_MIXER_BLENDMODE = 1 : removed / obsolete. 7_FSOUND_MIXER_MMXP5 = 2 : removed / obsolete. 7_FSOUND_MIXER_MMXP6 = 3 : removed / obsolete.  s_FSOUND_MIXER_QUALITY_AUTODETECT = 4 : All platforms - Autodetect the fastest quality mixer based on your cpu. f_FSOUND_MIXER_QUALITY_FPU = 5 : Win32/Linux only - Interpolating/volume ramping FPU mixer. f_FSOUND_MIXER_QUALITY_MMXP5 = 6 : Win32/Linux only - Interpolating/volume ramping FPU mixer. l_FSOUND_MIXER_QUALITY_MMXP6 = 7 : Win32/Linux only - Interpolating/volume ramping ppro+ MMX mixer.  g_FSOUND_MIXER_MONO = 8 : CE/PS2 only - MONO non interpolating/low quality mixer. For speed W_FSOUND_MIXER_QUALITY_MONO = 9 : CE/PS2 only - MONO Interpolating mixer. For speed    FSOUND_MODES :_FSOUND_LOOP_OFF = &1 : For non looping samples. >_FSOUND_LOOP_NORMAL = &2 : For forward looping samples. `_FSOUND_LOOP_BIDI = &4 : For bidirectional looping samples. (no effect if in hardware). 4_FSOUND_8BITS = &8 : For 8 bit samples. 6_FSOUND_16BITS = &10 : For 16 bit samples. 4_FSOUND_MONO = &20 : For mono samples. 6_FSOUND_STEREO = &40 : For stereo samples. O_FSOUND_UNSIGNED = &80 : For source data containing unsigned samples. K_FSOUND_SIGNED = &100 : For source data containing signed data. K_FSOUND_DELTA = &200 : For source data stored as delta values. S_FSOUND_IT214 = &400 : For source data stored using IT214 compression. S_FSOUND_IT215 = &800 : For source data stored using IT215 compression. u_FSOUND_HW3D = &1000 : Attempts to make samples use 3d hardware acceleration. (if the card supports it) k_FSOUND_2D = &2000 : Ignores any 3d processing. overrides FSOUND_HW3D. Located in software. {_FSOUND_STREAMABLE = &4000 : For realtime streamable samples. If you dont supply this sound may come out corrupted. k_FSOUND_LOADMEMORY = &8000 : For FSOUND_Sample_Load - name will be interpreted as a pointer to data _FSOUND_LOADRAW = &10000 : For FSOUND_Sample_Load/FSOUND_Stream_Open - will ignore file format and treat as raw pcm. _FSOUND_MPEGACCURATE = &20000 : For FSOUND_Stream_Open - scans MP2/MP3 (VBR also) for accurate FSOUND_Stream_GetLengthMs/FSOUND_Stream_SetTime. _FSOUND_FORCEMONO = &40000 : For forcing stereo streams and samples to be mono - needed with FSOUND_HW3D - incurs speed hit Z_FSOUND_HW2D = &80000 : 2d hardware sounds. allows hardware specific effects _FSOUND_ENABLEFX = &100000 : Allows DX8 FX to be played back on a sound. Requires DirectX 8 - Note these sounds cant be played more than once, or have a changing frequency _FSOUND_MPEGHALFRATE = &200000 : For FMODCE only - decodes mpeg streams using a lower quality decode, but faster execution y_FSOUND_XADPCM = &400000 : For XBOX only - Describes a user sample that its contents are compressed as XADPCM _FSOUND_VAG = &800000 : For PS2 only - Describes a user sample that its contents are compressed as Sony VAG format. _FSOUND_NONBLOCKING = &1000000 : For FSOUND_Stream_Open - Causes stream to open in the background and not block the foreground app - stream plays only when ready. p_FSOUND_GCADPCM = &2000000 : For Gamecube only - Contents are compressed as Gamecube DSP-ADPCM format ~_FSOUND_MULTICHANNEL = &4000000 : For PS2 only - Contents are interleaved into a multi-channel (more than stereo) format k_FSOUND_USECORE0 = &8000000 : For PS2 only - Sample/Stream is forced to use hardware voices 00-23 l_FSOUND_USECORE1 = &10000000 : For PS2 only - Sample/Stream is forced to use hardware voices 24-47 _FSOUND_LOADMEMORYIOP = &20000000 : For PS2 only - "name" will be interpreted as a pointer to data for streaming and samples. The address provided will be an IOP address E_FSOUND_STREAM_NET = &80000000 : Specifies an internet stream  C_FSOUND_NORMAL = _FSOUND_16BITS _FSOUND_SIGNED _FSOUND_MONO    FSOUND_OUTPUTTYPES [_FSOUND_OUTPUT_NOSOUND = 0 : NoSound driver, all calls to this succeed but do nothing. <_FSOUND_OUTPUT_WINMM = 1 : Windows Multimedia driver. s_FSOUND_OUTPUT_DSOUND = 2 : DirectSound driver. You need this to get EAX2 or EAX3 support, or FX api support. -_FSOUND_OUTPUT_A3D = 3 : A3D driver.  h_FSOUND_OUTPUT_OSS = 4 : Linux/Unix OSS (Open Sound System) driver, i.e. the kernel sound drivers. P_FSOUND_OUTPUT_ESD = 5 : Linux/Unix ESD (Enlightment Sound Daemon) driver. 1_FSOUND_OUTPUT_ALSA = 6 : Linux Alsa driver.  6_FSOUND_OUTPUT_ASIO = 7 : Low latency ASIO driver *_FSOUND_OUTPUT_XBOX = 8 : Xbox driver 3_FSOUND_OUTPUT_PS2 = 9 : PlayStation 2 driver 5_FSOUND_OUTPUT_MAC = 10 : Mac SoundMager driver /_FSOUND_OUTPUT_GC = 11 : Gamecube driver  _FSOUND_OUTPUT_NOSOUND_NONREALTIME = 12 : This is the same as nosound, but the sound generation is driven by FSOUND_Update   FSOUND_REVERB_CHANNELFLAGS n_FSOUND_REVERB_CHANNELFLAGS_DIRECTHFAUTO = &1 : Automatic setting of Direct due to distance from listener l_FSOUND_REVERB_CHANNELFLAGS_ROOMAUTO = &2 : Automatic setting of Room due to distance from listener n_FSOUND_REVERB_CHANNELFLAGS_ROOMHFAUTO = &4 : Automatic setting of RoomHF due to distance from listener _FSOUND_REVERB_CHANNELFLAGS_DEFAULT = _FSOUND_REVERB_CHANNELFLAGS_DIRECTHFAUTO _FSOUND_REVERB_CHANNELFLAGS_ROOMAUTO _FSOUND_REVERB_CHANNELFLAGS_ROOMHFAUTO   ! FSOUND_REVERB_PROPERTYFLAGS f_FSOUND_REVERBFLAGS_DECAYTIMESCALE = &1 : EnvironmentSize affects reverberation decay time ^_FSOUND_REVERBFLAGS_REFLECTIONSSCALE = &2 : EnvironmentSize affects reflection level k_FSOUND_REVERBFLAGS_REFLECTIONSDELAYSCALE = &4 : EnvironmentSize affects initial reflection delay time __FSOUND_REVERBFLAGS_REVERBSCALE = &8 : EnvironmentSize affects reflections level l_FSOUND_REVERBFLAGS_REVERBDELAYSCALE = &10 : EnvironmentSize affects late reverberation delay time [_FSOUND_REVERBFLAGS_DECAYHFLIMIT = &20 : AirAbsorptionHF affects DecayHFRatio X_FSOUND_REVERBFLAGS_ECHOTIMESCALE = &40 : EnvironmentSize affects echo time ^_FSOUND_REVERBFLAGS_MODULATIONTIMESCALE = &80 : EnvironmentSize affects modulation time n_FSOUND_REVERB_FLAGS_CORE0 = &100 : PS2 Only - Reverb is applied to CORE0 (hw voices 0-23) o_FSOUND_REVERB_FLAGS_CORE1 = &200 : PS2 Only - Reverb is applied to CORE1 (hw voices 24-47) _FSOUND_REVERBFLAGS_DEFAULT = _FSOUND_REVERBFLAGS_DECAYTIMESCALE _FSOUND_REVERBFLAGS_REFLECTIONSSCALE _FSOUND_REVERBFLAGS_REFLECTIONSDELAYSCALE _FSOUND_REVERBFLAGS_REVERBSCALE \ \ _FSOUND_REVERBFLAGS_REVERBDELAYSCALE _FSOUND_REVERBFLAGS_DECAYHFLIMIT _FSOUND_REVERB_FLAGS_CORE0 _FSOUND_REVERB_FLAGS_CORE1    FSOUND_SPEAKERMODES _FSOUND_SPEAKERMODE_DOLBYDIGITAL = 0 : The audio is played through a speaker arrangement of surround speakers with a subwoofer. H_FSOUND_SPEAKERMODE_HEADPHONE = 1 : The speakers are headphones. F_FSOUND_SPEAKERMODE_MONO = 2 : The speakers are monaural. J_FSOUND_SPEAKERMODE_QUAD = 3 : The speakers are quadraphonic. T_FSOUND_SPEAKERMODE_STEREO = 4 : The speakers are stereo (default value). L_FSOUND_SPEAKERMODE_SURROUND = 5 : The speakers are surround sound. _FSOUND_SPEAKERMODE_DTS = 6 : The audio is played through a speaker arrangement of surround speakers with a subwoofer. ]_FSOUND_SPEAKERMODE_PROLOGIC2 = 7 : Dolby Prologic 2. Playstation 2 and Gamecube only    FSOUND_STATUS_FLAGS #_FSOUND_PROTOCOL_SHOUTCAST = &1 #_FSOUND_PROTOCOL_ICECAST = &2 #_FSOUND_PROTOCOL_HTTP = &4 '_FSOUND_FORMAT_MPEG = &10000 '_FSOUND_FORMAT_OGGVORBIS = &20000    FSOUND_STREAM_NET_STATUS I_FSOUND_STREAM_NET_NOTCONNECTED = 0 : Stream hasn:REMt connected yet N_FSOUND_STREAM_NET_CONNECTING = 1 : Stream is connecting to remote host C_FSOUND_STREAM_NET_BUFFERING = 2 : Stream is buffering data B_FSOUND_STREAM_NET_READY = 3 : Stream is ready to play L_FSOUND_STREAM_NET_ERROR = 4 : Stream has suffered a fatal error    FSOUND_TAGFIELD_TYPE :_FSOUND_TAGFIELD_VORBISCOMMENT = 0 : A vorbis comment >_FSOUND_TAGFIELD_ID3V1 = 1 : Part of an ID3v1 tag 8_FSOUND_TAGFIELD_ID3V2 = 2 : An ID3v2 frame A_FSOUND_TAGFIELD_SHOUTCAST = 3 : A SHOUTcast header line @_FSOUND_TAGFIELD_ICECAST = 4 : An Icecast header line R_FSOUND_TAGFIELD_ASF = 5 : An Advanced Streaming Format header line