tuxy
08-28-2003, 10:46 PM
ok i found out the code to put in my game for 8bit but i dont know where to put it my friend that was doing the directx had to move and ive not heard fomr him in a while so i dont know.
Sub SetupPalette()
Dim ddpe(255) As PALETTEENTRY
Dim BFHEADER As BITMAPFILEHEADER
Dim BINFOHEADER As BITMAPINFOHEADER
Dim Dummy As Byte
Open apppath & "farplane.bmp" For Binary Access Read As #1
Open apppath & "titles.bmp" For Binary Access Read As #2
Open apppath & "tuna.bmp" For Binary Access Read As #3
Get #1, , BFHEADER
Get #1, , BINFOHEADER
Get #2, , BFHEADER
Get #2, , BINFOHEADER
Get #3, , BFHEADER
Get #3, , BINFOHEADER
If BINFOHEADER.biClrUsed = 0 Then BINFOHEADER.biClrUsed = 256
For i = 0 To BINFOHEADER.biClrUsed - 1
Get #1, , ddpe(i).Blue
Get #1, , ddpe(i).Green
Get #1, , ddpe(i).Red
Get #1, , Dummy
Get #2, , ddpe(i).Blue
Get #2, , ddpe(i).Green
Get #2, , ddpe(i).Red
Get #2, , Dummy
Get #3, , ddpe(i).Blue
Get #3, , ddpe(i).Green
Get #3, , ddpe(i).Red
Get #3, , Dummy
Next i
Close #1, #2, #3
Set ddp = DirectDraw.CreatePalette(DDPCAPS_8BIT Or DDPCAPS_ALLOW256, ddpe())
PrimarySurface.SetPalette ddp
End Sub
Function Init2() As Boolean
Dim ddsd1 As DDSURFACEDESC2, caps As DDSCAPS2
Dim ddsd4 As DDSURFACEDESC2, i As Integer
Set DirectX = New DirectX7
Set DirectDraw = DirectX.DirectDrawCreate("")
Call DirectDraw.SetCooperativeLevel(Me.hwnd, DDSCL_FULLSCREEN Or DDSCL_EXCLUSIVE)
DirectDraw.SetDisplayMode ResX, ResY, 8, Hz, DDSDM_DEFAULT
ddsd1.lFlags = DDSD_CAPS Or DDSD_BACKBUFFERCOUNT
ddsd1.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE Or DDSCAPS_FLIP Or DDSCAPS_COMPLEX
ddsd1.ddpfPixelFormat.lFlags = DDPF_PALETTEINDEXED8
ddsd1.lBackBufferCount = 1
Set PrimarySurface = DirectDraw.CreateSurface(ddsd1)
caps.lCaps = DDSCAPS_BACKBUFFER
Set BackBuffer = PrimarySurface.GetAttachedSurface(caps)
BackBuffer.GetSurfaceDesc ddsd4
End Function
i've not sure what to do with it though can anyone help me please ;\
i got the rest of the code i dont mind showin you it if it helps, i really need this bad i'll be happy to pay the person that helps back someway or another ;\
Sub SetupPalette()
Dim ddpe(255) As PALETTEENTRY
Dim BFHEADER As BITMAPFILEHEADER
Dim BINFOHEADER As BITMAPINFOHEADER
Dim Dummy As Byte
Open apppath & "farplane.bmp" For Binary Access Read As #1
Open apppath & "titles.bmp" For Binary Access Read As #2
Open apppath & "tuna.bmp" For Binary Access Read As #3
Get #1, , BFHEADER
Get #1, , BINFOHEADER
Get #2, , BFHEADER
Get #2, , BINFOHEADER
Get #3, , BFHEADER
Get #3, , BINFOHEADER
If BINFOHEADER.biClrUsed = 0 Then BINFOHEADER.biClrUsed = 256
For i = 0 To BINFOHEADER.biClrUsed - 1
Get #1, , ddpe(i).Blue
Get #1, , ddpe(i).Green
Get #1, , ddpe(i).Red
Get #1, , Dummy
Get #2, , ddpe(i).Blue
Get #2, , ddpe(i).Green
Get #2, , ddpe(i).Red
Get #2, , Dummy
Get #3, , ddpe(i).Blue
Get #3, , ddpe(i).Green
Get #3, , ddpe(i).Red
Get #3, , Dummy
Next i
Close #1, #2, #3
Set ddp = DirectDraw.CreatePalette(DDPCAPS_8BIT Or DDPCAPS_ALLOW256, ddpe())
PrimarySurface.SetPalette ddp
End Sub
Function Init2() As Boolean
Dim ddsd1 As DDSURFACEDESC2, caps As DDSCAPS2
Dim ddsd4 As DDSURFACEDESC2, i As Integer
Set DirectX = New DirectX7
Set DirectDraw = DirectX.DirectDrawCreate("")
Call DirectDraw.SetCooperativeLevel(Me.hwnd, DDSCL_FULLSCREEN Or DDSCL_EXCLUSIVE)
DirectDraw.SetDisplayMode ResX, ResY, 8, Hz, DDSDM_DEFAULT
ddsd1.lFlags = DDSD_CAPS Or DDSD_BACKBUFFERCOUNT
ddsd1.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE Or DDSCAPS_FLIP Or DDSCAPS_COMPLEX
ddsd1.ddpfPixelFormat.lFlags = DDPF_PALETTEINDEXED8
ddsd1.lBackBufferCount = 1
Set PrimarySurface = DirectDraw.CreateSurface(ddsd1)
caps.lCaps = DDSCAPS_BACKBUFFER
Set BackBuffer = PrimarySurface.GetAttachedSurface(caps)
BackBuffer.GetSurfaceDesc ddsd4
End Function
i've not sure what to do with it though can anyone help me please ;\
i got the rest of the code i dont mind showin you it if it helps, i really need this bad i'll be happy to pay the person that helps back someway or another ;\