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
b124f348
Commit
b124f348
authored
Mar 15, 2001
by
Steven Fuller
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Moved a few things back into wl_draw.c (CalcProjection)
Added a stub function for a 'new' fizzle fade.
parent
ec83e834
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
94 additions
and
117 deletions
+94
-117
TODO
src/TODO
+1
-1
wl_act2.c
src/wl_act2.c
+11
-16
wl_def.h
src/wl_def.h
+26
-33
wl_draw.c
src/wl_draw.c
+54
-13
wl_game.c
src/wl_game.c
+1
-4
wl_main.c
src/wl_main.c
+1
-50
No files found.
src/TODO
View file @
b124f348
...
...
@@ -29,7 +29,7 @@ B M - use something like config file or getenv to point at data directories
P I - finish handling/mapping for all keys in sys. specific code
B I - add mouse support
B M - add joystick/gamepad support
P I -
add an appropiate replacement where fizzlefade was
P I -
fill in the new fizzlefade function
P I - add sound "emulation" to the necessary targets so WaitSoundDone works
Complete:
...
...
src/wl_act2.c
View file @
b124f348
...
...
@@ -2443,25 +2443,21 @@ void A_StartDeathCam(objtype *ob)
}
gamestate
.
victoryflag
=
true
;
VW_Bar
(
0
,
0
,
320
,
200
-
STATUSLINES
,
127
);
/* TODO: fizzlefaze was here */
/* FizzleFade(0, 0, 320, 200-STATUSLINES, 70, false); */
FizzleFade
(
false
,
70
,
127
);
CA_UpLevel
();
CacheLump
(
LEVELEND_LUMP_START
,
LEVELEND_LUMP_END
);
Write
(
0
,
7
,
STR_SEEAGAIN
);
Write
(
0
,
7
,
STR_SEEAGAIN
);
CA_DownLevel
();
CA_DownLevel
();
VW_UpdateScreen
();
VW_UpdateScreen
();
IN_UserInput
(
300
);
//
// line angle up exactly
//
/* line angle up exactly */
NewState
(
player
,
s_deathcam
);
player
->
x
=
gamestate
.
killx
;
...
...
@@ -2470,26 +2466,25 @@ void A_StartDeathCam(objtype *ob)
dx
=
ob
->
x
-
player
->
x
;
dy
=
player
->
y
-
ob
->
y
;
fangle
=
atan2
(
dy
,
dx
);
// returns -pi to pi
fangle
=
atan2
(
dy
,
dx
);
/* returns -pi to pi */
if
(
fangle
<
0
)
fangle
=
PI
*
2
+
fangle
;
player
->
angle
=
fangle
/
(
PI
*
2
)
*
ANGLES
;
//
// try to position as close as possible without being in a wall
//
/* try to position as close as possible without being in a wall */
dist
=
0x14000l
;
do
{
xmove
=
FixedByFrac
(
dist
,
costable
[
player
->
angle
]);
ymove
=
-
FixedByFrac
(
dist
,
sintable
[
player
->
angle
]);
xmove
=
FixedByFrac
(
dist
,
costable
[
player
->
angle
]);
ymove
=
-
FixedByFrac
(
dist
,
sintable
[
player
->
angle
]);
player
->
x
=
ob
->
x
-
xmove
;
player
->
y
=
ob
->
y
-
ymove
;
dist
+=
0x1000
;
}
while
(
!
CheckPosition
(
player
));
}
while
(
!
CheckPosition
(
player
));
plux
=
player
->
x
>>
UNSIGNEDSHIFT
;
// scale to fit in unsigned
pluy
=
player
->
y
>>
UNSIGNEDSHIFT
;
player
->
tilex
=
player
->
x
>>
TILESHIFT
;
// scale to tile values
...
...
src/wl_def.h
View file @
b124f348
...
...
@@ -42,24 +42,25 @@ extern int vwidth, vheight; /* size of screen */
#define RUNSPEED 6000
#define PLAYERSIZE
MINDIST // player radius
#define MINACTORDIST
0x10000l // minimum dist from player center
// to any actor center
#define PLAYERSIZE
MINDIST
/* player radius */
#define MINACTORDIST
0x10000
/* minimum dist from player center */
/* to any actor center */
#define GLOBAL1
(1l<<16)
#define GLOBAL1
0x10000
#define TILEGLOBAL GLOBAL1
#define TILESHIFT 16l
#define VIEWGLOBAL GLOBAL1
#define TILESHIFT 16
#define UNSIGNEDSHIFT 8
#define ANGLES 360
// must be divisable by 4
#define ANGLES 360
/* must be divisible by 4 */
#define ANGLEQUAD (ANGLES/4)
#define FINEANGLES 3600
#define MINDIST
(0x5800l)
#define MINDIST
0x5800
#define MAXVIEWWIDTH 1280
#define MAPSIZE 64
// maps are 64*64 max
#define MAPSIZE 64
/* maps are 64*64 */
#define STATUSLINES 40
...
...
@@ -676,8 +677,6 @@ typedef enum {
extern
char
str
[
80
],
str2
[
20
];
extern
fixed
focallength
;
extern
int
viewwidth
,
viewheight
;
extern
int
viewwidthwin
,
viewheightwin
;
extern
int
xoffset
,
yoffset
;
...
...
@@ -849,24 +848,18 @@ void PicturePause (void);
extern
long
lasttimecount
;
extern
long
frameon
;
//
// derived constants
//
extern
fixed
scale
;
extern
long
heightnumerator
;
/* refresh variables */
extern
fixed
viewx
,
viewy
;
/* the focal point */
extern
fixed
viewsin
,
viewcos
;
//
// refresh variables
//
extern
fixed
viewx
,
viewy
;
// the focal point
extern
fixed
viewsin
,
viewcos
;
extern
int
horizwall
[],
vertwall
[];
extern
int
horizwall
[],
vertwall
[];
fixed
FixedByFrac
(
fixed
a
,
fixed
b
);
void
BuildTables
();
void
CalcTics
();
void
ThreeDRefresh
();
fixed
FixedByFrac
(
fixed
a
,
fixed
b
);
void
BuildTables
(
void
);
void
CalcTics
(
void
);
void
ThreeDRefresh
(
void
);
void
FizzleFade
(
boolean
abortable
,
int
frames
,
int
color
);
/*
=============================================================================
...
...
src/wl_draw.c
View file @
b124f348
...
...
@@ -23,6 +23,10 @@ static long xintercept, yintercept;
static
unsigned
postx
;
static
fixed
focallength
;
static
fixed
scale
;
static
long
heightnumerator
;
static
void
AsmRefresh
();
#define NOASM
...
...
@@ -41,6 +45,49 @@ void SimpleScaleShape(int xcenter, int shapenum, unsigned height);
/* ======================================================================== */
/*
====================
=
= CalcProjection
=
====================
*/
static
const
double
radtoint
=
(
double
)
FINEANGLES
/
2
.
0
/
PI
;
void
CalcProjection
(
long
focal
)
{
int
i
;
long
intang
;
double
angle
,
tang
,
facedist
;
int
halfview
;
focallength
=
focal
;
facedist
=
focal
+
MINDIST
;
halfview
=
viewwidth
/
2
;
/* half view in pixels */
/*
calculate scale value for vertical height calculations
and sprite x calculations
*/
scale
=
halfview
*
facedist
/
(
VIEWGLOBAL
/
2
);
/*
divide heightnumerator by a posts distance to get the posts height for
the heightbuffer. The pixel height is height>>2
*/
heightnumerator
=
(
TILEGLOBAL
*
scale
)
>>
6
;
/* calculate the angle offset from view angle of each pixel's ray */
for
(
i
=
0
;
i
<
halfview
;
i
++
)
{
tang
=
((
double
)
i
)
*
VIEWGLOBAL
/
viewwidth
/
facedist
;
angle
=
atan
(
tang
);
intang
=
angle
*
radtoint
;
pixelangle
[
halfview
-
1
-
i
]
=
intang
;
pixelangle
[
halfview
+
i
]
=
-
intang
;
}
}
/*
========================
=
...
...
@@ -626,18 +673,6 @@ void ThreeDRefresh()
DrawPlayerWeapon
();
/* draw player's hands */
/* show screen and time last cycle */
/* TODO: fizzlefaze was here */
/*
if (fizzlein)
{
FizzleFade(xoffset, yoffset, viewwidth, viewheight, 20, false);
fizzlein = false;
lasttimecount = 0;
set_TimeCount(0);
}
*/
VW_UpdateScreen
();
frameon
++
;
}
...
...
@@ -1212,3 +1247,9 @@ passhoriz:
goto
horizcheck
;
}
}
/* ======================================================================== */
void
FizzleFade
(
boolean
abortable
,
int
frames
,
int
color
)
{
}
src/wl_game.c
View file @
b124f348
...
...
@@ -982,10 +982,7 @@ void Died()
//
FinishPaletteShifts
();
VL_Bar
(
xoffset
,
yoffset
,
viewwidth
,
viewheight
,
4
);
/* TODO: fizzlefade was here */
/* FizzleFade(xoffset, yoffset, viewwidth, viewheight, 70, false); */
FizzleFade
(
false
,
70
,
4
);
IN_ClearKeysDown
();
...
...
src/wl_main.c
View file @
b124f348
...
...
@@ -12,13 +12,10 @@
=============================================================================
*/
#define FOCALLENGTH 0x5700 // in global coordinates
#define VIEWGLOBAL 0x10000 // globals visable flush to wall
#define FOCALLENGTH 0x5800
/* in global coordinates */
char
str
[
80
],
str2
[
20
];
fixed
focallength
;
int
viewwidth
,
viewheight
;
int
viewwidthwin
,
viewheightwin
;
/* for borders */
int
xoffset
,
yoffset
;
...
...
@@ -27,8 +24,6 @@ int viewsize;
int
centerx
;
int
shootdelta
;
/* pixels away from centerx a target can be */
fixed
scale
;
long
heightnumerator
;
boolean
startgame
,
loadedgame
;
int
mouseadjustment
;
...
...
@@ -921,50 +916,6 @@ void BuildTables()
}
}
/*
====================
=
= CalcProjection
=
====================
*/
void
CalcProjection
(
long
focal
)
{
int
i
;
long
intang
;
double
angle
,
tang
,
facedist
;
int
halfview
;
focallength
=
focal
;
facedist
=
focal
+
MINDIST
;
halfview
=
viewwidth
/
2
;
// half view in pixels
//
// calculate scale value for vertical height calculations
// and sprite x calculations
//
scale
=
halfview
*
facedist
/
(
VIEWGLOBAL
/
2
);
//
// divide heightnumerator by a posts distance to get the posts height for
// the heightbuffer. The pixel height is height>>2
//
heightnumerator
=
(
TILEGLOBAL
*
scale
)
>>
6
;
//
// calculate the angle offset from view angle of each pixel's ray
//
for
(
i
=
0
;
i
<
halfview
;
i
++
)
{
tang
=
((
double
)
i
)
*
VIEWGLOBAL
/
viewwidth
/
facedist
;
angle
=
atan
(
tang
);
intang
=
angle
*
radtoint
;
pixelangle
[
halfview
-
1
-
i
]
=
intang
;
pixelangle
[
halfview
+
i
]
=
-
intang
;
}
}
/*
===================
=
...
...
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