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
8cb83d7e
Commit
8cb83d7e
authored
Nov 29, 2000
by
Steven Fuller
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Doc updates and more reformatting
parent
a6d848b2
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
52 additions
and
99 deletions
+52
-99
IDEAS
src/IDEAS
+3
-6
TODO
src/TODO
+30
-14
id_ca.c
src/id_ca.c
+1
-17
objs.c
src/objs.c
+2
-4
sd_comm.h
src/sd_comm.h
+1
-1
sd_oss.c
src/sd_oss.c
+5
-8
vi_xlib.c
src/vi_xlib.c
+1
-1
wl_agent.c
src/wl_agent.c
+3
-3
wl_debug.c
src/wl_debug.c
+2
-2
wl_def.h
src/wl_def.h
+0
-1
wl_inter.c
src/wl_inter.c
+1
-1
wl_main.c
src/wl_main.c
+3
-1
wl_state.c
src/wl_state.c
+0
-40
No files found.
src/IDEAS
View file @
8cb83d7e
...
...
@@ -2,8 +2,7 @@
------------- Please Disregard the Following Outdated Text: ----------------
* One binary, any game type. Store certain things in a new file for each
dataset?
* One binary, any game type.
* A key to change viewsize while playing (note: max == 20, min == 5 or so...)
* Game able to cope at any virtual resolution in software mode. OpenGL
handles this transparently (after setting correct glViewport)
...
...
@@ -13,16 +12,14 @@
* Fully compile with no warnings/errors using -Wall -ansi -pedantic and with
other compilers (would need to turn off warnings about unused parameters)
* Port to: Linux/SVGAlib, Linux/X (Windowed and DGA), Linux/OpenGL,
DOS/Allegro
, Win32/GDI?, Win32/DX, Win32/D3D
, Win32/OpenGL, BeOS?, MacOS?,
DOS/Allegro
?, Win32/GDI?, Win32/DX, Win32/D3D?
, Win32/OpenGL, BeOS?, MacOS?,
QNX?
* Ease in using demos. Playing demos from files, recording to files, batch
playing, and so on.
* Make Wolf3D the game it was originally planned to be... More strategy...
* Empty TODO File (TODO states a list of things which need to/should be done
regardless of future plans [IDEAS]) and no TODO/FIXME
/XXX
s in the source
regardless of future plans [IDEAS]) and no TODO/FIXMEs in the source
code
* Have some sort of way of playing both digital and adlib sounds on all
platforms [fmopl.c] (if possible)
* Test with other available mods (that were compatible with the original
game)
* Unified input handling
...
...
src/TODO
View file @
8cb83d7e
Control Menu:
* TODO
Sound Menu:
* Sound Effects:
- PCM
- OPL2
- PC Speaker?
- None
* Music:
- OPL2
- None
* Sampling Rate:
- 44100
- 22050
...
...
@@ -8,22 +22,26 @@ SD_StartMusic((MusicGroup *)audiosegs[STARTMUSIC + chunk]);
=>
SD_StartMusic(chunk);
General:
* convert uses of open() to fopen()
* half of these things belong in IDEAS; they are not bugs, just random
musings
* inconsistancy:
id_ca.c has code for setting the data filenames' extension
so does wl_menu.c
* rewrite hw (sound, input) code, remove stuff like SD_SetSoundMode
* proper left/right sound
* adlib sounds seem like they play at twice the freq
* set up a "build number" system where every time a file is recompiled via
make (ver.c depends on the source code) the number is incremented and so on
note: this debug system would have to be disabled for all public releases to
prevent confusion. OR ver.c would depend on the source, but it does not have
a version number, just __TIME__. this version id would be used for
savegames until they are fixed to not use pointers
* use static and const where appropriate
* convert uses of open() to fopen(), etc
* menu code is a mess, always does things differently than the rest of the
code, it really needs to be cleaned up
* id_ca.c cache code: fix/readd/rewrite the "garbage collection" system?
* clean up header files, especially wl_def.h, where some declarations aren't
in the right place
* every structure that is read/written must be PACKED, with datatypes
specifially set to correct size
!
* or
at least
have PACKED versions of read/write structures, and transfer
to/from just for reading, so only no
t
-packed structures are used during
specifially set to correct size
* or have PACKED versions of read/write structures, and transfer
to/from just for reading, so only no
n
-packed structures are used during
actual gameplay/etc.
* is that memory intro screen needed anymore? probably not, although it
would be nice to show what version is loaded, but doom just printed text
...
...
@@ -39,7 +57,6 @@ metaname like sc_Left etc or something
* remove GOODTIMES?
* Remove the SOD manual check?
* perhaps rename UPLOAD
* verify if the sounds and graphics are correctly numbered, once again...
* add a ViewMap? (could be done similar to mac version)
* find and remove any function stubs (functions which just call another
function with same parameters, only difference is the name)
...
...
@@ -60,7 +77,7 @@ PlayDemoFromFile specifically
on the border
same with the spear of destiny animation part of ending
* move all references to gfxbuf to vi_* only (gl will need this anyway,
since it
deprecates:
id_vh, (parts of) wl_draw, wl_scale)
since it
would replace
id_vh, (parts of) wl_draw, wl_scale)
by putting in code from id_vh (either by using Plot or just copying it in)
we can stop the large conversion before each UpdateScreen
but palette fades will still need it!
...
...
@@ -68,12 +85,11 @@ but palette fades will still need it!
for every byte when transferring to the pixmap, palette fades require a
screen update
* make sure none of the code tries to handle gfx/sound data directly
*
if window loses focus, should it clear the keys? most likely
*
when window loses focus, it should clear the keys
* clean up vi_xlib.c: fix vid mode changing, fix dga for non8bit modes and
the nonpalette setting stuff... lots of if statements
also, it should be able to compile without extensions
* rename visable to visible
* fix up windows port
* create 'sound channels' with priority.. ie a door can only make one sound
at a time
* change wl_scale to use mac wolf3d's version of scaling
...
...
src/id_ca.c
View file @
8cb83d7e
...
...
@@ -2,14 +2,6 @@
#include "id_heads.h"
/*
=============================================================================
LOCAL CONSTANTS
=============================================================================
*/
typedef
struct
{
/* 0-255 is a character, > is a pointer to a node */
...
...
@@ -41,14 +33,6 @@ byte *grsegs[NUMCHUNKS];
static
byte
grneeded
[
NUMCHUNKS
];
static
byte
ca_levelbit
,
ca_levelnum
;
/*
=============================================================================
LOCAL VARIABLES
=============================================================================
*/
char
extension
[
5
],
gheadname
[
10
]
=
"vgahead."
,
gfilename
[
10
]
=
"vgagraph."
,
...
...
src/objs.c
View file @
8cb83d7e
unsigned
char
gamepal
[]
=
const
unsigned
char
gamepal
[]
=
{
'\0'
,
'\0'
,
'\0'
,
'\0'
,
'\0'
,
0x2a
,
'\0'
,
0x2a
,
'\0'
,
'\0'
,
0x2a
,
0x2a
,
0x2a
,
'\0'
,
'\0'
,
0x2a
,
'\0'
,
0x2a
,
0x2a
,
0x15
,
'\0'
,
0x2a
,
0x2a
,
0x2a
,
0x15
,
0x15
,
0x15
,
0x15
,
0x15
,
'?'
,
0x15
,
'?'
,
0x15
,
...
...
@@ -69,9 +69,8 @@ unsigned char gamepal[] =
0x1f
,
0x1f
,
'\0'
,
0x1e
,
0x1e
,
'\0'
,
0x1d
,
0x1d
,
'\0'
,
0x1c
,
0x1c
,
'\0'
,
0x1b
,
0x1b
,
0x26
,
'\0'
,
0x22
,
'\0'
};
unsigned
long
int
gamepal_size
=
768
;
unsigned
char
introscn
[]
=
const
unsigned
char
introscn
[]
=
{
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
...
...
@@ -5882,4 +5881,3 @@ unsigned char introscn[] =
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
0x29
,
'\0'
};
unsigned
long
int
introscn_size
=
64000
;
src/sd_comm.h
View file @
8cb83d7e
...
...
@@ -32,7 +32,7 @@ typedef struct {
SoundCommon
common
;
Instrument
inst
;
byte
block
,
data
[
1
];
}
AdLibSound
;
}
PACKED
AdLibSound
;
typedef
struct
{
word
length
,
values
[
1
];
...
...
src/sd_oss.c
View file @
8cb83d7e
...
...
@@ -11,8 +11,6 @@ boolean SoundSourcePresent, AdLibPresent, SoundBlasterPresent;
SDMode
SoundMode
,
MusicMode
;
SDSMode
DigiMode
;
/* ** */
static
volatile
boolean
sqActive
;
static
fixed
globalsoundx
,
globalsoundy
;
...
...
@@ -119,6 +117,7 @@ void *SoundThread(void *data)
AdlibBlock
=
((
AdlibSnd
->
block
&
7
)
<<
2
)
|
0x20
;
AdlibData
=
(
byte
*
)
&
AdlibSnd
->
data
;
AdlibLength
=
AdlibSnd
->
common
.
length
*
5
;
//OPLWrite(OPL, 0xB0, AdlibBlock);
NewAdlib
=
-
1
;
}
...
...
@@ -144,14 +143,14 @@ void *SoundThread(void *data)
if
(
AdlibPlaying
!=
-
1
)
{
if
(
AdlibLength
==
0
)
{
OPLWrite
(
OPL
,
0xB0
,
AdlibBlock
);
//
OPLWrite(OPL, 0xB0, AdlibBlock);
}
else
if
(
AdlibLength
==
-
1
)
{
OPLWrite
(
OPL
,
0xA0
,
00
);
OPLWrite
(
OPL
,
0xB0
,
AdlibBlock
);
AdlibPlaying
=
-
1
;
}
else
if
((
AdlibLength
%
5
)
==
0
)
{
OPLWrite
(
OPL
,
0xA0
,
*
AdlibData
);
OPLWrite
(
OPL
,
0xB0
,
AdlibBlock
);
OPLWrite
(
OPL
,
0xB0
,
AdlibBlock
&
~
2
);
AdlibData
++
;
}
AdlibLength
--
;
...
...
@@ -169,7 +168,6 @@ void *SoundThread(void *data)
NextSound
=
-
1
;
}
for
(
i
=
0
;
i
<
(
sizeof
(
sndbuf
)
/
sizeof
(
sndbuf
[
0
]));
i
+=
2
)
{
if
(
SoundPlaying
!=
-
1
)
{
if
(
SoundPositioned
)
{
snd
=
((((
signed
short
)((
SoundData
[(
SoundPlayPos
>>
16
)]
<<
8
)
^
0x8000
))
>>
1
)
/
(
L
+
1
))
+
musbuf
[
i
/
2
];
...
...
@@ -200,7 +198,8 @@ void *SoundThread(void *data)
}
SoundPlayPos
+=
10402
;
/* 7000 / 44100 * 65536 */
if
((
SoundPlayPos
>>
16
)
>=
SoundPlayLen
)
{
SoundPlayPos
=
0
;
//SoundPlayPos = 0;
SoundPlayPos
-=
(
SoundPlayLen
<<
16
);
SoundLen
-=
4096
;
SoundPlayLen
=
(
SoundLen
<
4096
)
?
SoundLen
:
4096
;
if
(
SoundLen
<=
0
)
{
...
...
@@ -533,8 +532,6 @@ void UpdateSoundLoc(fixed x, fixed y, int angle)
}
}
/* ** */
///////////////////////////////////////////////////////////////////////////
//
// SD_MusicOn() - turns on the sequencer
...
...
src/vi_xlib.c
View file @
8cb83d7e
...
...
@@ -450,7 +450,7 @@ void VL_Shutdown()
void
VL_WaitVBL
(
int
vbls
)
{
/* hack - but it works for me */
long
last
=
get_TimeCount
()
+
1
;
long
last
=
get_TimeCount
()
+
vbls
;
while
(
last
>
get_TimeCount
())
;
}
...
...
src/wl_agent.c
View file @
8cb83d7e
...
...
@@ -52,7 +52,7 @@ statetype s_attack = {false,0,0,T_Attack,NULL,NULL};
struct
atkinf
{
char
tics
,
attack
,
frame
;
// attack is 1 for gun, 2 for knife
}
attackinfo
[
4
][
14
]
=
}
static
attackinfo
[
4
][
14
]
=
{
{
{
6
,
0
,
1
},{
6
,
2
,
2
},{
6
,
0
,
3
},{
6
,
-
1
,
4
}
},
...
...
@@ -1240,7 +1240,7 @@ void VictorySpin (void)
===============
*/
void
T_Attack
(
objtype
*
ob
)
void
T_Attack
(
objtype
*
ob
)
{
struct
atkinf
*
cur
;
...
...
src/wl_debug.c
View file @
8cb83d7e
...
...
@@ -59,10 +59,10 @@ void CountObjects()
================
*/
void
PicturePause
(
void
)
void
PicturePause
(
)
{
FinishPaletteShifts
();
FinishPaletteShifts
();
IN_Ack
();
...
...
src/wl_def.h
View file @
8cb83d7e
...
...
@@ -71,7 +71,6 @@
#define MINDIST (0x5800l)
/* xwolf code needs max height to double */
#define MAXSCALEHEIGHT 512
/* largest scale on largest view */
#define MAXVIEWWIDTH 320
...
...
src/wl_inter.c
View file @
8cb83d7e
...
...
@@ -102,7 +102,7 @@ void EndSpear(void)
==================
*/
void
Victory
(
void
)
void
Victory
(
)
{
#ifndef SPEARDEMO
long
sec
;
...
...
src/wl_main.c
View file @
8cb83d7e
...
...
@@ -1295,6 +1295,8 @@ int WolfMain(int argc, char *argv[])
_argc
=
argc
;
_argv
=
argv
;
printf
(
"Now Loading %s
\n
"
,
GAMENAME
);
srand
(
time
(
NULL
));
CheckForEpisodes
();
...
...
src/wl_state.c
View file @
8cb83d7e
...
...
@@ -745,46 +745,6 @@ moveok:
=============================================================================
*/
/*
===============
=
= DropItem
=
= Tries to drop a bonus item somewhere in the tiles surrounding the
= given tilex/tiley
=
===============
*/
void
DropItem
(
stat_t
itemtype
,
int
tilex
,
int
tiley
)
{
int
x
,
y
,
xl
,
xh
,
yl
,
yh
;
//
// find a free spot to put it in
//
if
(
!
actorat
[
tilex
][
tiley
])
{
PlaceItemType
(
itemtype
,
tilex
,
tiley
);
return
;
}
xl
=
tilex
-
1
;
xh
=
tilex
+
1
;
yl
=
tiley
-
1
;
yh
=
tiley
+
1
;
for
(
x
=
xl
;
x
<=
xh
;
x
++
)
for
(
y
=
yl
;
y
<=
yh
;
y
++
)
if
(
!
actorat
[
x
][
y
])
{
PlaceItemType
(
itemtype
,
x
,
y
);
return
;
}
}
/*
===============
=
...
...
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