Ok. for some reason, it only works when you drag & drop the file then click & hold the mouse button on the title bar.
code:
Include "WB3DStyles.bb"
Global x = 0
Global y = 0
Graphics3D 1024,768, 32, 2
Global RuntimeWindow_hWnd = WB3D_InitializeGUI(SystemProperty("AppHwnd"),0,0,GraphicsWidth(),GraphicsHeight())
;test1 = WB3D_CreateWindow("Test",x,y,GraphicsWidth()/4,GraphicsHeight()-71,RuntimeWindow_hWnd,0)
Global copyright$ = "Copyright (c) 2008 - 2009 MTEAM"+Chr$(13)+" Created by: ~ZeldaX~"
WB3D_DragAcceptFiles(RuntimeWindow_hWnd, 1)
Global w
Global FrameStart
Global DeltaTime# = 0.1
Global GameTime# = 0
Global FPS = 60
Global FPSCount = FPS
Global timFPS
Global menus
Global req
Global snd
Global snd1
Global PlaySound1
Global playa
Global menu1
Global menuii
Global menuselect = 0
Global file1$
Global keypressed
Global menu
WB3D_HotKeyEvent MOD_CONTROL,65,1 ; ctrl+a
WB3D_HotKeyEvent MOD_CONTROL,76,78 ; ctrl+l
;WB3D_HotKeyEvent MOD_CONTROL,76,
; menus
menus = WB3D_WindowMenu(RuntimeWindow_hWnd)
file = WB3D_CreateMenu("&File",0,menus,0)
OpenItem = WB3D_CreateMenu("Open",1,file,0)
SaveItem = WB3D_CreateMenu("Save",2,file,0)
WB3D_CreateMenu("",0,file,0)
QuitItem = WB3D_CreateMenu("Quit",3,file,0)
about = WB3D_CreateMenu("About",0,menus,1)
about1 = WB3D_CreateMenu("About...",4,about,0)
compile = WB3D_CreateMenu("Compile Code",5,menus,0)
WB3D_UpdateWindowMenu(RuntimeWindow_hWnd)
statusbar = WB3D_CreateStatusBar(RuntimeWindow_hWnd,"")
WB3D_SetStatusParts statusbar,5+1
WB3D_StatusPartWidth(statusbar,0,150)
WB3D_StatusPartWidth(statusbar,1,150)
WB3D_StatusPartWidth(statusbar,2,150)
WB3D_StatusPartWidth(statusbar,3,150)
WB3D_StatusPartWidth(statusbar,4,150)
WB3D_StatusPartWidth(statusbar,5,150)
WB3D_StatusPartWidth(statusbar,6,150)
;WB3D_SetStatusText statusbar,1,"part 1"
;WB3D_SetStatusText statusbar,3,"part 3"
;WB3D_SetStatusText statusbar,4,"part 4"
WB3D_UpdateStatusbar statusbar
; cleanup any old creation events, its better to do this before we enter the main
; event loop, when some gadgets are created they generate events.
WB3D_FlushEvents
; setup out quit flag, and loop until the flag is set.
QUIT = 0
Light = CreateLight()
Listener = CreateListener(Cam, .005, 1, 1)
Include "particle candy.bb"
Include "particle types.bb"
cam = CreateCamera()
PositionEntity cam, 0, 1, 0
InitParticles(cam,"Media\particles.png", 3)
SetParticleUpdateCycle 2
EM8 = CreateEmitter_Waterfall()
While Not QUIT = 1 Or KeyHit(1)
For do_files = 0 To WB3D_CountDroppedFiles()
file1$ = WB3D_DroppedFileName(do_files)
If FileExtension(file1$) = ".mp3" Or FileExtension(file1$) = ".mid"
request()
Else
notify()
EndIf
Next
x = 0 : y = 0
; Frame Update
FrameStart = MilliSecs()
If timFPS < FrameStart Then
FPS = FPSCount
FPSCount = 0
timFPS = FrameStart + 1000
DeltaTime = 1.0 / Float(FPS)
GameTime = GameTime + DeltaTime
End If
WB3D_SetStatusText statusbar,0,"FPS:"+FPS
WB3D_SetStatusText statusbar,1,"menu:"+menu
WB3D_SetStatusText statusbar,2,"menu1:"+menu1
WB3D_SetStatusText statusbar,3,"menuii:"+menuii
WB3D_SetStatusText statusbar,4,"playa:"+playa
WB3D_SetStatusText statusbar,5,"chanplay:"+ChannelPlaying(snd1)
t=WB3D_CreateToolTip%(statusbar,"test",0)
WB3D_SetToolTipText(t,"test")
time$ = CurrentTime$()
If time$ >= 12 Then am_pm$ = "PM"
If time$ < 12 Then am_pm$ = "AM"
WB3D_SetStatusText statusbar,6,"Time: "+time$+" "+am_pm$
If KeyDown(200) Or KeyDown(208) MoveEntity cam, 0, 0, (KeyDown(200)-KeyDown(208))*.1
If KeyDown(203) Or KeyDown(205) TurnEntity cam, 0, (KeyDown(203)-KeyDown(205))*1, 0
; get an event of the event queue.
event = WB3D_WaitEvent()
Select event
Case WB3D_EVENT_MENU
Select WB3D_EventData()
Case 1
ext$ = "*.mid"+Chr$(0)+"*.mid"+Chr$(0)+"*.mp3"+Chr$(0)+"*.mp3"
file1$ = WB3D_OpenFileRequest("..","..",ext$,"")
request()
Case 2
Case 3
QUIT = 1
Case 4
WB3D_Notify "Menu",copyright$,0
Case 5
Write_BB("Test", "Test.bb")
Case 6
Default
Case WB3D_EVENT_WINDOW_CLOSE
;WB3D_ShowGadget RuntimeWindow_hWnd
Select WB3D_EventSource()
Case RuntimeWindow_hWnd
QUIT = 1
End Select
End Select
FPSCount = FPSCount + 1
; generate an internal blitz event
UpdateWorld
RenderWorld
Flip
Wend
; use notify using external winapi constants.
If ChannelPlaying(snd1)
stopm()
EndIf
WB3D_Notify "WB3D GUI Window Example","Bye, Thats It I Quit",MB_OK Or MB_ICONASTERISK
WB3D_EndGUI()
EndGraphics
End
Function notify()
WB3D_Notify "WARNING","Sorry, but file "+file1$+" is invalid.",0
End Function
Function request()
If FileExtension(file1$) = ".mp3" Or FileExtension(file1$) = ".mid"
playa = 1
EndIf
If playa Then play()
End Function
Function play()
If ChannelPlaying(snd1) = 0 And playa
If FileExtension(file1$) = ".mid"
music = BASS_MIDI_StreamCreateFile(0,file1$,0,0,0,0) ; we load a midi file
If Not BASS_ChannelPlay (music,0) RuntimeError "Midi file not ready!" ; we play the file
Else
If FileExtension(file1$) = ".mp3"
snd=LoadSound(file1$) : snd1 = PlaySound(snd)
EndIf
EndIf
Else
If ChannelPlaying(snd1) And playa
stopm()
play()
EndIf
EndIf
If menus = 1
menu1 = file1$
menuii = FileExtension(file1$)
EndIf
End Function
Function stopm()
If playa = 1
StopChannel snd1
EndIf
End Function
Function Write_BB(appname$, filedata$)
readme=WriteFile("README.txt")
WriteLine readme, "Please use Blitz3D to compile your project!"
file=WriteFile(filedata$)
WriteLine file, "AppTitle "+Chr$(34)+appname$+Chr$(34)
WriteLine file, ""
WriteLine file, "Graphics3D "+screenwidth+", "+screenheight+", "+screendepth+", "+screenmode
WriteLine file, ""
WriteLine file, "cam = CreateCamera()"
WriteLine file, "CameraRange cam, .1, 1000000"
WriteLine file, "PositionEntity cam, "+xcam+", 1, "+zcam
WriteLine file, ""
WriteLine file, "Land = CreatePlane()"
WriteLine file, ""
WriteLine file, "While Not Keyhit(1)"
WriteLine file, ""
WriteLine file, "If KeyDown(200) Or KeyDown(208) MoveEntity cam, 0, 0, (KeyDown(200)-KeyDown(208))*1"
WriteLine file, "If KeyDown(203) Or KeyDown(205) TurnEntity cam, 0, (KeyDown(203)-KeyDown(205))*1, 0"
WriteLine file, ""
WriteLine file, "UpdateWorld()"
WriteLine file, "RenderWorld()"
WriteLine file, ""
WriteLine file, "Flip"
WriteLine file, ""
WriteLine file, "Wend"
CloseFile file
WB3D_Notify "Menu","Compilation Successful",0
WB3D_Notify "Menu","Compiled file in: "+CurrentDir$(),0
End Function
Function get_menu()
menu = menu + 1
If menu > 43 Then menu = 43
Return menu
End Function
Function File_Extension$(ext$)
For I% = Len(ext$) To 1 Step -1
If Mid$(ext$, I%,1) = "," Then Return "*"+Left(ext$, I%-1)+";"+"*"+ Right$(ext$, I%-1)
Next
End Function
Function FileName$(File$)
For I% = Len(File$) To 1 Step -1
If Mid(File$, I%, 1) = "\" Or Mid(File$, I%, 1) = "/" Then Return Mid(File$, I% + 1)
Next
Return File$
End Function
Function FileExtension$(File$)
For I% = Len(File$) To 1 Step -1
If Mid(File$, I%, 1) = "." Return "."+Mid(File$, I% + 1)
If Mid(File$, I%, 1) = "\" Or Mid(File$, I%, 1) = "/" Then Return ""
Next
End Function
Function FilePath$(File$)
For I% = Len(File$) To 1 Step -1
If Mid(File$, I%, 1) = "\" Or Mid(File$, I%, 1) = "/" Then Return Left(File$, I% - 1)
Next
End Function
; Adds a file extention, if not exists. | F?Et eine Dateiendung hinzu falls noch keine da ist.
Function AddFileExtension$(File$, Extension$)
If FileExtension(File$) = "" Then Return File$ + "." + Extension$ Else Return File$
End Function
Also. could u check out the ext$ line? for some reason, when i try to select a file extension in request file, it has a memory leak =S and i like extensions to work like this:
.mp3 .mid
not .mp3;.mid
thanks again Kev!
~DarkShadowWing~
|