Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
wolf3d
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PocketInsanity
wolf3d
Commits
73be6e3d
Commit
73be6e3d
authored
Apr 22, 2000
by
Steven Fuller
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Yay! Graphics work; now to make some cosmetic fixes, input, etc...
parent
609432be
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
85 additions
and
32 deletions
+85
-32
Makefile
src/Makefile
+3
-2
id_ca.c
src/id_ca.c
+16
-8
id_heads.h
src/id_heads.h
+2
-0
id_vl.c
src/id_vl.c
+50
-7
id_vl.h
src/id_vl.h
+14
-15
No files found.
src/Makefile
View file @
73be6e3d
CC
=
gcc
CC
=
gcc
#CFLAGS = -Wall -O6 -fomit-frame-pointer -mpentiumpro -mcpu=pentiumpro -march=pentiumpro -DUSEVGA
#CFLAGS = -Wall -O6 -fomit-frame-pointer -mpentiumpro -mcpu=pentiumpro -march=pentiumpro -DUSEVGA
CFLAGS
=
-g
-DUSEVGA
-fwritable-strings
CFLAGS
=
-g
-DUSEVGA
-fwritable-strings
#CFLAGS = -Os -fwritable-strings
#CFLAGS = -g -Wall -DUSEVGA -DDEBUG
#CFLAGS = -g -Wall -DUSEVGA -DDEBUG
#CFLAGS = -g -DUSEVGA -DDEBUG
#CFLAGS = -g -DUSEVGA -DDEBUG
#CFLAGS = -g -pg -DDEBUG
#CFLAGS = -g -pg -DDEBUG
...
@@ -9,8 +10,8 @@ OBJS = objs.o misc.o id_ca.o id_in.o id_sd.o id_vl.o id_vh.o id_us.o \
...
@@ -9,8 +10,8 @@ OBJS = objs.o misc.o id_ca.o id_in.o id_sd.o id_vl.o id_vh.o id_us.o \
wl_inter.o wl_menu.o wl_play.o wl_state.o wl_text.o wl_main.o
\
wl_inter.o wl_menu.o wl_play.o wl_state.o wl_text.o wl_main.o
\
wl_debug.o
wl_debug.o
#LFLAGS = -lm -lvga -pg
LFLAGS
=
-lm
-lvga
LFLAGS
=
-lm
-lvga
ElectricFence-2.2.2/libefence.a
-lpthread
#
LFLAGS = -lm -lvga ElectricFence-2.2.2/libefence.a -lpthread
NASM
=
nasm
NASM
=
nasm
...
...
src/id_ca.c
View file @
73be6e3d
...
@@ -380,7 +380,7 @@ void CAL_HuffExpand(byte *source, byte *dest, long length, huffnode *hufftable)
...
@@ -380,7 +380,7 @@ void CAL_HuffExpand(byte *source, byte *dest, long length, huffnode *hufftable)
#define NEARTAG 0xa7
#define NEARTAG 0xa7
#define FARTAG 0xa8
#define FARTAG 0xa8
/* TODO: very correctness of byteinc */
/* TODO: ver
if
y correctness of byteinc */
void
CAL_CarmackExpand
(
word
*
source
,
word
*
dest
,
word
length
)
void
CAL_CarmackExpand
(
word
*
source
,
word
*
dest
,
word
length
)
{
{
word
ch
,
chhigh
,
count
,
offset
;
word
ch
,
chhigh
,
count
,
offset
;
...
@@ -852,7 +852,9 @@ cachein:
...
@@ -852,7 +852,9 @@ cachein:
void
CAL_ExpandGrChunk
(
int
chunk
,
byte
*
source
)
void
CAL_ExpandGrChunk
(
int
chunk
,
byte
*
source
)
{
{
long
expanded
;
long
expanded
;
int
width
=
0
,
height
=
0
;
if
(
chunk
>=
STARTTILE8
&&
chunk
<
STARTEXTERNS
)
if
(
chunk
>=
STARTTILE8
&&
chunk
<
STARTEXTERNS
)
{
{
//
//
...
@@ -874,22 +876,26 @@ void CAL_ExpandGrChunk(int chunk, byte *source)
...
@@ -874,22 +876,26 @@ void CAL_ExpandGrChunk(int chunk, byte *source)
expanded
=
BLOCK
*
16
;
expanded
=
BLOCK
*
16
;
else
else
expanded
=
MASKBLOCK
*
16
;
expanded
=
MASKBLOCK
*
16
;
}
}
else
if
(
chunk
>=
STARTPICS
&&
chunk
<
STARTSPRITES
)
{
else
width
=
pictable
[
chunk
-
STARTPICS
].
width
;
{
height
=
pictable
[
chunk
-
STARTPICS
].
height
;
expanded
=
*
((
long
*
)
source
);
source
+=
4
;
}
else
{
//
//
// everything else has an explicit size longword
// everything else has an explicit size longword
//
//
expanded
=
*
((
long
*
)
source
);
expanded
=
*
((
long
*
)
source
);
source
+=
4
;
// skip over length
source
+=
4
;
}
}
//
//
// allocate final space, decompress it, and free bigbuffer
// allocate final space and decompress it
// Sprites need to have shifts made and various other junk
//
//
MM_GetPtr
(
&
grsegs
[
chunk
],
expanded
);
MM_GetPtr
(
&
grsegs
[
chunk
],
expanded
);
CAL_HuffExpand
(
source
,
grsegs
[
chunk
],
expanded
,
grhuffman
);
CAL_HuffExpand
(
source
,
grsegs
[
chunk
],
expanded
,
grhuffman
);
if
(
width
&&
height
)
VL_DeModeXize
(
grsegs
[
chunk
],
width
,
height
);
}
}
...
@@ -1002,6 +1008,8 @@ void CA_CacheScreen(int chunk)
...
@@ -1002,6 +1008,8 @@ void CA_CacheScreen(int chunk)
//
//
/* TODO: this cheats and expands to the 320x200 screen buffer */
/* TODO: this cheats and expands to the 320x200 screen buffer */
CAL_HuffExpand
(
source
,
gfxbuf
,
expanded
,
grhuffman
);
CAL_HuffExpand
(
source
,
gfxbuf
,
expanded
,
grhuffman
);
/* and then fixes it also! */
VL_DeModeXize
(
gfxbuf
,
320
,
200
);
MM_FreePtr
(
&
bigbufferseg
);
MM_FreePtr
(
&
bigbufferseg
);
}
}
...
...
src/id_heads.h
View file @
73be6e3d
...
@@ -14,6 +14,8 @@
...
@@ -14,6 +14,8 @@
#include <glob.h>
#include <glob.h>
#include <math.h>
#include <math.h>
#include <vga.h>
#include "misc.h"
#include "misc.h"
#include "version.h"
#include "version.h"
...
...
src/id_vl.c
View file @
73be6e3d
...
@@ -10,10 +10,12 @@ byte *gfxbuf = NULL;
...
@@ -10,10 +10,12 @@ byte *gfxbuf = NULL;
void
VL_WaitVBL
(
int
vbls
)
void
VL_WaitVBL
(
int
vbls
)
{
{
vga_waitretrace
();
}
}
void
VL_UpdateScreen
()
void
VL_UpdateScreen
()
{
{
memcpy
(
graph_mem
,
gfxbuf
,
64000
);
}
}
/*
/*
...
@@ -28,6 +30,9 @@ void VL_Startup (void)
...
@@ -28,6 +30,9 @@ void VL_Startup (void)
{
{
if
(
gfxbuf
==
NULL
)
if
(
gfxbuf
==
NULL
)
gfxbuf
=
malloc
(
320
*
200
*
1
);
gfxbuf
=
malloc
(
320
*
200
*
1
);
vga_init
();
vga_setmode
(
G320x200x256
);
}
}
/*
/*
...
@@ -44,6 +49,7 @@ void VL_Shutdown (void)
...
@@ -44,6 +49,7 @@ void VL_Shutdown (void)
free
(
gfxbuf
);
free
(
gfxbuf
);
gfxbuf
=
NULL
;
gfxbuf
=
NULL
;
}
}
vga_setmode
(
TEXT
);
}
}
//===========================================================================
//===========================================================================
...
@@ -58,8 +64,9 @@ void VL_Shutdown (void)
...
@@ -58,8 +64,9 @@ void VL_Shutdown (void)
=================
=================
*/
*/
void
VL_ClearVideo
(
byte
color
)
void
VL_ClearVideo
(
byte
color
)
{
{
memset
(
gfxbuf
,
color
,
64000
);
}
}
/*
/*
...
@@ -83,6 +90,10 @@ void VL_ClearVideo (byte color)
...
@@ -83,6 +90,10 @@ void VL_ClearVideo (byte color)
void
VL_FillPalette
(
int
red
,
int
green
,
int
blue
)
void
VL_FillPalette
(
int
red
,
int
green
,
int
blue
)
{
{
int
i
;
for
(
i
=
0
;
i
<
256
;
i
++
)
vga_setpalette
(
i
,
red
,
green
,
blue
);
}
}
//===========================================================================
//===========================================================================
...
@@ -97,6 +108,7 @@ void VL_FillPalette(int red, int green, int blue)
...
@@ -97,6 +108,7 @@ void VL_FillPalette(int red, int green, int blue)
void
VL_SetColor
(
int
color
,
int
red
,
int
green
,
int
blue
)
void
VL_SetColor
(
int
color
,
int
red
,
int
green
,
int
blue
)
{
{
vga_setpalette
(
color
,
red
,
green
,
blue
);
}
}
//===========================================================================
//===========================================================================
...
@@ -111,6 +123,7 @@ void VL_SetColor(int color, int red, int green, int blue)
...
@@ -111,6 +123,7 @@ void VL_SetColor(int color, int red, int green, int blue)
void
VL_GetColor
(
int
color
,
int
*
red
,
int
*
green
,
int
*
blue
)
void
VL_GetColor
(
int
color
,
int
*
red
,
int
*
green
,
int
*
blue
)
{
{
vga_getpalette
(
color
,
red
,
green
,
blue
);
}
}
//===========================================================================
//===========================================================================
...
@@ -120,14 +133,15 @@ void VL_GetColor(int color, int *red, int *green, int *blue)
...
@@ -120,14 +133,15 @@ void VL_GetColor(int color, int *red, int *green, int *blue)
=
=
= VL_SetPalette
= VL_SetPalette
=
=
= If fast palette setting has been tested for, it is used
= (some cards don't like outsb palette setting)
=
=================
=================
*/
*/
void
VL_SetPalette
(
byte
*
palette
)
void
VL_SetPalette
(
byte
*
palette
)
{
{
int
i
;
for
(
i
=
0
;
i
<
256
;
i
++
)
vga_setpalette
(
i
,
palette
[
i
*
3
+
0
],
palette
[
i
*
3
+
1
],
palette
[
i
*
3
+
2
]);
}
}
...
@@ -138,14 +152,19 @@ void VL_SetPalette(byte *palette)
...
@@ -138,14 +152,19 @@ void VL_SetPalette(byte *palette)
=
=
= VL_GetPalette
= VL_GetPalette
=
=
= This does not use the port string instructions,
= due to some incompatabilities
=
=================
=================
*/
*/
void
VL_GetPalette
(
byte
*
palette
)
void
VL_GetPalette
(
byte
*
palette
)
{
{
int
i
,
r
,
g
,
b
;
for
(
i
=
0
;
i
<
256
;
i
++
)
{
vga_getpalette
(
i
,
&
r
,
&
g
,
&
b
);
palette
[
i
*
3
+
0
]
=
r
;
palette
[
i
*
3
+
1
]
=
g
;
palette
[
i
*
3
+
2
]
=
b
;
}
}
}
...
@@ -441,3 +460,27 @@ asm mov ds,ax
...
@@ -441,3 +460,27 @@ asm mov ds,ax
VGAWRITEMODE(0);
VGAWRITEMODE(0);
#endif
#endif
}
}
void
VL_DeModeXize
(
byte
*
buf
,
int
width
,
int
height
)
{
byte
*
mem
,
*
ptr
,
*
destline
;
int
plane
,
x
,
y
;
if
(
width
&
3
)
{
printf
(
"Not divisible by 4?
\n
"
);
return
;
}
mem
=
malloc
(
width
*
height
);
ptr
=
buf
;
for
(
plane
=
0
;
plane
<
4
;
plane
++
)
{
destline
=
mem
;
for
(
y
=
0
;
y
<
height
;
y
++
)
{
for
(
x
=
0
;
x
<
width
/
4
;
x
++
)
*
(
destline
+
x
*
4
+
plane
)
=
*
ptr
++
;
destline
+=
width
;
}
}
memcpy
(
buf
,
mem
,
width
*
height
);
free
(
mem
);
}
src/id_vl.h
View file @
73be6e3d
...
@@ -16,25 +16,24 @@ void VL_ClearVideo (byte color);
...
@@ -16,25 +16,24 @@ void VL_ClearVideo (byte color);
void
VL_WaitVBL
(
int
vbls
);
void
VL_WaitVBL
(
int
vbls
);
void
VL_FillPalette
(
int
red
,
int
green
,
int
blue
);
void
VL_FillPalette
(
int
red
,
int
green
,
int
blue
);
void
VL_SetColor
(
int
color
,
int
red
,
int
green
,
int
blue
);
void
VL_SetColor
(
int
color
,
int
red
,
int
green
,
int
blue
);
void
VL_GetColor
(
int
color
,
int
*
red
,
int
*
green
,
int
*
blue
);
void
VL_GetColor
(
int
color
,
int
*
red
,
int
*
green
,
int
*
blue
);
void
VL_SetPalette
(
byte
*
palette
);
void
VL_SetPalette
(
byte
*
palette
);
void
VL_GetPalette
(
byte
*
palette
);
void
VL_GetPalette
(
byte
*
palette
);
void
VL_FadeOut
(
int
start
,
int
end
,
int
red
,
int
green
,
int
blue
,
int
steps
);
void
VL_FadeOut
(
int
start
,
int
end
,
int
red
,
int
green
,
int
blue
,
int
steps
);
void
VL_FadeIn
(
int
start
,
int
end
,
byte
*
palette
,
int
steps
);
void
VL_FadeIn
(
int
start
,
int
end
,
byte
*
palette
,
int
steps
);
void
VL_ColorBorder
(
int
color
);
void
VL_ColorBorder
(
int
color
);
void
VL_Plot
(
int
x
,
int
y
,
int
color
);
void
VL_Plot
(
int
x
,
int
y
,
int
color
);
void
VL_Hlin
(
unsigned
x
,
unsigned
y
,
unsigned
width
,
unsigned
color
);
void
VL_Hlin
(
unsigned
x
,
unsigned
y
,
unsigned
width
,
unsigned
color
);
void
VL_Vlin
(
int
x
,
int
y
,
int
height
,
int
color
);
void
VL_Vlin
(
int
x
,
int
y
,
int
height
,
int
color
);
void
VL_Bar
(
int
x
,
int
y
,
int
width
,
int
height
,
int
color
);
void
VL_Bar
(
int
x
,
int
y
,
int
width
,
int
height
,
int
color
);
void
VL_MemToLatch
(
byte
*
source
,
int
width
,
int
height
,
word
dest
);
void
VL_MemToLatch
(
byte
*
source
,
int
width
,
int
height
,
word
dest
);
void
VL_MemToScreen
(
byte
*
source
,
int
width
,
int
height
,
int
x
,
int
y
);
void
VL_MemToScreen
(
byte
*
source
,
int
width
,
int
height
,
int
x
,
int
y
);
void
VL_DrawPropString
(
char
*
str
,
unsigned
tile8ptr
,
int
printx
,
int
printy
);
void
VL_DeModeXize
(
byte
*
buf
,
int
width
,
int
height
);
void
VL_SizePropString
(
char
*
str
,
int
*
width
,
int
*
height
,
char
*
font
);
#elif
#elif
#error "fix me: TODO"
#error "fix me: TODO"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a 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