Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
clean-and-itasks
clean-libraries
Commits
1cf67f1a
Commit
1cf67f1a
authored
Apr 11, 2000
by
Mike Wiering
Browse files
Improved 256 color support
parent
8d976905
Changes
6
Show whitespace changes
Inline
Side-by-side
libraries/ObjectIO/ObjectIO/OS Windows/Clean System Files/cGameLib_12.obj
View file @
1cf67f1a
No preview for this file type
libraries/ObjectIO/ObjectIO/OS Windows/Clean System Files/cOSGameLib_12.obj
View file @
1cf67f1a
No preview for this file type
libraries/ObjectIO/ObjectIO/OS Windows/Clean System Files/ddutil.obj
View file @
1cf67f1a
No preview for this file type
libraries/ObjectIO/ObjectIO/OS Windows/Windows_C_12/cGameLib_12.c
View file @
1cf67f1a
...
@@ -368,6 +368,19 @@ OBJECTREC *GetObjectRec (int ID)
...
@@ -368,6 +368,19 @@ OBJECTREC *GetObjectRec (int ID)
return
obj
;
return
obj
;
}
}
/* update last position if pos has been changed during an event */
void
UpdatePosition
(
OBJECTREC
*
obj
)
{
obj
->
iLastXPos
=
obj
->
iXPos
;
obj
->
iLastYPos
=
obj
->
iYPos
;
obj
->
iFixedXPos
=
obj
->
iXPos
<<
8
;
obj
->
iFixedYPos
=
obj
->
iYPos
<<
8
;
obj
->
iLastFixedXPos
=
obj
->
iFixedXPos
;
obj
->
iLastFixedYPos
=
obj
->
iFixedYPos
;
}
/* initialize a new game object */
/* initialize a new game object */
void
InitGameObject
(
int
mapx
,
int
mapy
)
void
InitGameObject
(
int
mapx
,
int
mapy
)
...
@@ -454,18 +467,6 @@ void InitGameObject (int mapx, int mapy)
...
@@ -454,18 +467,6 @@ void InitGameObject (int mapx, int mapy)
UpdatePosition
(
objNew
);
UpdatePosition
(
objNew
);
}
}
/* update last position if pos has been changed during an event */
UpdatePosition
(
OBJECTREC
*
obj
)
{
obj
->
iLastXPos
=
obj
->
iXPos
;
obj
->
iLastYPos
=
obj
->
iYPos
;
obj
->
iFixedXPos
=
obj
->
iXPos
<<
8
;
obj
->
iFixedYPos
=
obj
->
iYPos
<<
8
;
obj
->
iLastFixedXPos
=
obj
->
iFixedXPos
;
obj
->
iLastFixedYPos
=
obj
->
iFixedYPos
;
}
/* remove game object with id ID and all objects that are not active (id==0) */
/* remove game object with id ID and all objects that are not active (id==0) */
void
GameObjectDone
(
int
id
)
void
GameObjectDone
(
int
id
)
{
{
...
@@ -874,6 +875,26 @@ void RunGame ()
...
@@ -874,6 +875,26 @@ void RunGame ()
}
}
/* create a new event */
void
ScheduleEvent
(
int
event
,
int
par1
,
int
par2
,
int
par3
,
int
par4
,
int
target
,
int
subtarget
,
int
time
)
{
struct
USER_EVENT_INFO
*
uei
;
uei
=
rmalloc
(
sizeof
(
USER_EVENT_INFO
));
uei
->
iEventID
=
event
;
uei
->
iEventParameter1
=
par1
;
uei
->
iEventParameter2
=
par2
;
uei
->
iEventParameter3
=
par3
;
uei
->
iEventParameter4
=
par4
;
uei
->
iDestination
=
target
;
uei
->
iSubDestination
=
subtarget
;
uei
->
iTimeCounter
=
time
;
uei
->
ueiNext
=
ueiUserEventInfo
;
ueiUserEventInfo
=
uei
;
}
/* play (actually schedule) a sound sample */
/* play (actually schedule) a sound sample */
void
PlaySoundSample
(
int
id
,
int
vol
,
int
pan
,
int
freq
,
int
delay
)
void
PlaySoundSample
(
int
id
,
int
vol
,
int
pan
,
int
freq
,
int
delay
)
{
{
...
@@ -2842,25 +2863,6 @@ int NextFrame (int fade)
...
@@ -2842,25 +2863,6 @@ int NextFrame (int fade)
}
}
/* create a new event */
ScheduleEvent
(
int
event
,
int
par1
,
int
par2
,
int
par3
,
int
par4
,
int
target
,
int
subtarget
,
int
time
)
{
struct
USER_EVENT_INFO
*
uei
;
uei
=
rmalloc
(
sizeof
(
USER_EVENT_INFO
));
uei
->
iEventID
=
event
;
uei
->
iEventParameter1
=
par1
;
uei
->
iEventParameter2
=
par2
;
uei
->
iEventParameter3
=
par3
;
uei
->
iEventParameter4
=
par4
;
uei
->
iDestination
=
target
;
uei
->
iSubDestination
=
subtarget
;
uei
->
iTimeCounter
=
time
;
uei
->
ueiNext
=
ueiUserEventInfo
;
ueiUserEventInfo
=
uei
;
}
/* make the screen follow an object */
/* make the screen follow an object */
extern
EXPORT_TO_CLEAN
void
extern
EXPORT_TO_CLEAN
void
WinSetObjectFocus
(
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
maxxv
,
int
maxyv
,
WinSetObjectFocus
(
int
x1
,
int
y1
,
int
x2
,
int
y2
,
int
maxxv
,
int
maxyv
,
...
...
libraries/ObjectIO/ObjectIO/OS Windows/Windows_C_12/cOSGameLib_12.c
View file @
1cf67f1a
...
@@ -62,6 +62,12 @@ static GAMEBITMAPINFO *gbipPrev = NULL;
...
@@ -62,6 +62,12 @@ static GAMEBITMAPINFO *gbipPrev = NULL;
/* release DirectDraw object */
/* release DirectDraw object */
void
ReleaseDD
(
void
)
void
ReleaseDD
(
void
)
{
{
if
(
lpDDPal
)
{
IDirectDrawSurface_Release
(
lpDDPal
);
lpDDPal
=
NULL
;
}
if
(
clipper
)
if
(
clipper
)
{
{
IDirectDrawClipper_Release
(
clipper
);
IDirectDrawClipper_Release
(
clipper
);
...
@@ -219,7 +225,7 @@ BOOL OSInitGameWindow ()
...
@@ -219,7 +225,7 @@ BOOL OSInitGameWindow ()
{
{
if
(
!
(
ddrval
==
DD_OK
))
if
(
!
(
ddrval
==
DD_OK
))
{
{
BitsPerPixel
=
=
8
;
BitsPerPixel
=
8
;
ddrval
=
IDirectDraw_SetDisplayMode
(
lpDD
,
ScreenWidth
,
ScreenHeight
,
BitsPerPixel
);
ddrval
=
IDirectDraw_SetDisplayMode
(
lpDD
,
ScreenWidth
,
ScreenHeight
,
BitsPerPixel
);
}
}
}
}
...
@@ -237,7 +243,7 @@ BOOL OSInitGameWindow ()
...
@@ -237,7 +243,7 @@ BOOL OSInitGameWindow ()
{
{
if
(
!
(
ddrval
==
DD_OK
))
if
(
!
(
ddrval
==
DD_OK
))
{
{
BitsPerPixel
=
=
8
;
BitsPerPixel
=
8
;
ddrval
=
IDirectDraw_SetDisplayMode
(
lpDD
,
ScreenWidth
,
ScreenHeight
,
BitsPerPixel
);
ddrval
=
IDirectDraw_SetDisplayMode
(
lpDD
,
ScreenWidth
,
ScreenHeight
,
BitsPerPixel
);
}
}
}
}
...
@@ -314,6 +320,16 @@ BOOL OSInitGameWindow ()
...
@@ -314,6 +320,16 @@ BOOL OSInitGameWindow ()
if
(
!
(
ddrval
==
DD_OK
))
if
(
!
(
ddrval
==
DD_OK
))
ShowError
(
"IDirectDrawSurface_GetAttachedSurface failed"
);
ShowError
(
"IDirectDrawSurface_GetAttachedSurface failed"
);
else
else
{
if
(
BitsPerPixel
==
8
)
{
lpDDPal
=
DDLoadPalette
(
lpDD
,
NULL
);
if
(
lpDDPal
==
NULL
)
ShowError
(
"DDMakeDefaultPalette failed"
);
else
IDirectDrawSurface_SetPalette
(
lpDDSFront
,
lpDDPal
);
}
result
=
TRUE
;
result
=
TRUE
;
}
}
}
}
...
@@ -323,6 +339,7 @@ BOOL OSInitGameWindow ()
...
@@ -323,6 +339,7 @@ BOOL OSInitGameWindow ()
}
}
}
}
}
}
}
return
result
;
return
result
;
}
}
...
@@ -606,6 +623,7 @@ BOOL OSGetGameBitmapInfo (int id, int *width, int *height,
...
@@ -606,6 +623,7 @@ BOOL OSGetGameBitmapInfo (int id, int *width, int *height,
*
blockheight
=
gbip
->
iBlockHeight
;
*
blockheight
=
gbip
->
iBlockHeight
;
*
blockcountx
=
gbip
->
iBlockCountX
;
*
blockcountx
=
gbip
->
iBlockCountX
;
*
blockcounty
=
gbip
->
iBlockCountY
;
*
blockcounty
=
gbip
->
iBlockCountY
;
return
TRUE
;
}
}
else
else
return
FALSE
;
return
FALSE
;
...
...
libraries/ObjectIO/ObjectIO/OS Windows/Windows_C_12/ddutil.cpp
View file @
1cf67f1a
...
@@ -6,8 +6,6 @@
...
@@ -6,8 +6,6 @@
* Content: Routines for loading bitmap and palettes from resources
* Content: Routines for loading bitmap and palettes from resources
*
*
***************************************************************************/
***************************************************************************/
#undef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#include
<windows.h>
#include
<windows.h>
#include
<windowsx.h>
#include
<windowsx.h>
#include
<ddraw.h>
#include
<ddraw.h>
...
@@ -47,7 +45,7 @@ extern "C" IDirectDrawSurface * DDLoadBitmap(IDirectDraw *pdd, LPCSTR szBitmap,
...
@@ -47,7 +45,7 @@ extern "C" IDirectDrawSurface * DDLoadBitmap(IDirectDraw *pdd, LPCSTR szBitmap,
//
//
ZeroMemory
(
&
ddsd
,
sizeof
(
ddsd
));
ZeroMemory
(
&
ddsd
,
sizeof
(
ddsd
));
ddsd
.
dwSize
=
sizeof
(
ddsd
);
ddsd
.
dwSize
=
sizeof
(
ddsd
);
ddsd
.
dwFlags
=
DDSD_CAPS
|
DDSD_HEIGHT
|
DDSD_WIDTH
;
ddsd
.
dwFlags
=
DDSD_CAPS
|
DDSD_HEIGHT
|
DDSD_WIDTH
;
ddsd
.
ddsCaps
.
dwCaps
=
DDSCAPS_OFFSCREENPLAIN
;
ddsd
.
ddsCaps
.
dwCaps
=
DDSCAPS_OFFSCREENPLAIN
;
ddsd
.
dwWidth
=
bm
.
bmWidth
;
ddsd
.
dwWidth
=
bm
.
bmWidth
;
ddsd
.
dwHeight
=
bm
.
bmHeight
;
ddsd
.
dwHeight
=
bm
.
bmHeight
;
...
@@ -162,20 +160,31 @@ extern "C" HRESULT DDCopyBitmap(IDirectDrawSurface *pdds, HBITMAP hbm, int x, in
...
@@ -162,20 +160,31 @@ extern "C" HRESULT DDCopyBitmap(IDirectDrawSurface *pdds, HBITMAP hbm, int x, in
// if the resource does not exist or NULL is passed create a
// if the resource does not exist or NULL is passed create a
// default 332 palette.
// default 332 palette.
//
//
extern
"C"
IDirectDrawPalette
*
DDLoadPalette
(
IDirectDraw
*
pdd
,
LPCSTR
szBitmap
)
extern
"C"
IDirectDrawPalette
*
DDLoadPalette
(
IDirectDraw
*
pdd
,
LPCSTR
szBitmap
)
{
{
IDirectDrawPalette
*
ddpal
;
IDirectDrawPalette
*
ddpal
;
int
i
;
int
i
,
j
,
r
,
g
,
b
;
int
n
;
int
n
;
int
fh
;
// int fh;
// Mike ... //
HANDLE
fh
;
SECURITY_ATTRIBUTES
sa
;
// ... Mike //
HRSRC
h
;
HRSRC
h
;
LPBITMAPINFOHEADER
lpbi
;
LPBITMAPINFOHEADER
lpbi
;
PALETTEENTRY
ape
[
256
];
PALETTEENTRY
ape
[
256
];
RGBQUAD
*
prgb
;
RGBQUAD
*
prgb
;
// Mike ... //
sa
.
nLength
=
sizeof
(
SECURITY_ATTRIBUTES
);
sa
.
lpSecurityDescriptor
=
NULL
;
sa
.
bInheritHandle
=
FALSE
;
// ... Mike //
//
//
// build a 332 palette as the default.
// build a 332 palette as the default.
//
//
/*
for (i=0; i<256; i++)
for (i=0; i<256; i++)
{
{
ape[i].peRed = (BYTE)(((i >> 5) & 0x07) * 255 / 7);
ape[i].peRed = (BYTE)(((i >> 5) & 0x07) * 255 / 7);
...
@@ -183,6 +192,31 @@ extern "C" IDirectDrawPalette * DDLoadPalette(IDirectDraw *pdd, LPCSTR szBitmap)
...
@@ -183,6 +192,31 @@ extern "C" IDirectDrawPalette * DDLoadPalette(IDirectDraw *pdd, LPCSTR szBitmap)
ape[i].peBlue = (BYTE)(((i >> 0) & 0x03) * 255 / 3);
ape[i].peBlue = (BYTE)(((i >> 0) & 0x03) * 255 / 3);
ape[i].peFlags = (BYTE)0;
ape[i].peFlags = (BYTE)0;
}
}
*/
for
(
i
=
0
;
i
<
256
;
i
++
)
{
if
(
i
<
6
*
7
*
6
)
{
r
=
224
*
(
i
%
6
)
/
5
+
16
;
g
=
224
*
((
i
/
6
)
%
7
)
/
6
+
16
;
b
=
224
*
((
i
/
42
)
%
6
)
/
5
+
16
;
}
else
{
switch
(
i
)
{
case
252
:
{
r
=
0
;
g
=
0
;
b
=
0
;
break
;
}
case
253
:
{
r
=
8
;
g
=
8
;
b
=
8
;
break
;
}
case
254
:
{
r
=
247
;
g
=
247
;
b
=
247
;
break
;
}
case
255
:
{
r
=
255
;
g
=
255
;
b
=
255
;
break
;
}
}
}
ape
[
i
].
peRed
=
(
BYTE
)
r
;
ape
[
i
].
peGreen
=
(
BYTE
)
g
;
ape
[
i
].
peBlue
=
(
BYTE
)
b
;
ape
[
i
].
peFlags
=
(
BYTE
)
0
;
}
//
//
// get a pointer to the bitmap resource.
// get a pointer to the bitmap resource.
...
@@ -215,15 +249,32 @@ extern "C" IDirectDrawPalette * DDLoadPalette(IDirectDraw *pdd, LPCSTR szBitmap)
...
@@ -215,15 +249,32 @@ extern "C" IDirectDrawPalette * DDLoadPalette(IDirectDraw *pdd, LPCSTR szBitmap)
ape
[
i
].
peFlags
=
0
;
ape
[
i
].
peFlags
=
0
;
}
}
}
}
else
if
(
szBitmap
&&
(
fh
=
_lopen
(
szBitmap
,
OF_READ
))
!=
-
1
)
else
if
(
szBitmap
&&
// (fh = _lopen(szBitmap, OF_READ)) != -1
// Mike ... //
(
fh
=
CreateFile
(
szBitmap
,
GENERIC_READ
,
FILE_SHARE_READ
,
&
sa
,
OPEN_EXISTING
,
FILE_ATTRIBUTE_NORMAL
,
NULL
)
)
!=
NULL
)
// ... Mike //
{
{
BITMAPFILEHEADER
bf
;
BITMAPFILEHEADER
bf
;
BITMAPINFOHEADER
bi
;
BITMAPINFOHEADER
bi
;
unsigned
long
iNumRead
;
/*
_lread(fh, &bf, sizeof(bf));
_lread(fh, &bf, sizeof(bf));
_lread(fh, &bi, sizeof(bi));
_lread(fh, &bi, sizeof(bi));
_lread(fh, ape, sizeof(ape));
_lread(fh, ape, sizeof(ape));
_lclose(fh);
_lclose(fh);
*/
// Mike ... //
ReadFile
(
fh
,
&
bf
,
sizeof
(
bf
),
&
iNumRead
,
NULL
);
ReadFile
(
fh
,
&
bi
,
sizeof
(
bi
),
&
iNumRead
,
NULL
);
ReadFile
(
fh
,
ape
,
sizeof
(
ape
),
&
iNumRead
,
NULL
);
CloseHandle
(
fh
);
// ... Mike //
if
(
bi
.
biSize
!=
sizeof
(
BITMAPINFOHEADER
))
if
(
bi
.
biSize
!=
sizeof
(
BITMAPINFOHEADER
))
n
=
0
;
n
=
0
;
...
@@ -246,11 +297,13 @@ extern "C" IDirectDrawPalette * DDLoadPalette(IDirectDraw *pdd, LPCSTR szBitmap)
...
@@ -246,11 +297,13 @@ extern "C" IDirectDrawPalette * DDLoadPalette(IDirectDraw *pdd, LPCSTR szBitmap)
}
}
}
}
pdd
->
CreatePalette
(
DDPCAPS_8BIT
,
ape
,
&
ddpal
,
NULL
);
pdd
->
CreatePalette
(
DDPCAPS_8BIT
,
ape
,
&
ddpal
,
NULL
);
return
ddpal
;
return
ddpal
;
}
}
/*
/*
* DDColorMatch
* DDColorMatch
*
*
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment