Revision r2894
engine: in setaspect_new, determine the aspect with {x,y}dimen instead of {x,y}dim.
That is, use the view boundries instead of the whole screen.
Browse logs with clarity: filter by type/year, search text, and inspect parsed commit details.
engine: in setaspect_new, determine the aspect with {x,y}dimen instead of {x,y}dim.
That is, use the view boundries instead of the whole screen.
Rewrite the EVENT_ANIMATESPRITES loop (G_DoEventAnimSprites calls) for clarity.
game.c: factor out 2 inst. of dup. code into G_DoEventAnimSprites().
Hack for fake multimode/splitscreen: also draw mirrors from showview*. See the source for why this hack is ugly.
CON: in fake multi-mode, play 'globalsound' even if player index isn't screenpeek. This makes sounds like DUKE_GET (item pickup) be heard for the second player in the splitscreen mod, too.
If a value of 1 is returned from EVENT_DISPLAYROOMS, don't draw them. This includes mirrors, rooms and masks. Any value other than 0 or 1 that is returned is considered an error (reserved for future use).
Fix mirrors in Polymost.
Clean up G_MoveFX() a little.
Splitscreen mod hacks: handle screen tinting from both players. Of course, it still affects the whole screen. Handles pain and lizard spit.
Hacks for the splitscreen mod: play sounds from both players. The sound distance is the minimum of the two. Both point sources as well as MUSICANDSFX ambient sound is handled.
sounds.c: Factor out duplicate code into S_CalcDistAndAng(). The two instances in S_PlaySound3D() and S_Update() were slightly different as far as sequencing is concerned. However, I think making it the same has only benefits and may fix some popping sounds when starting to play a sound and updating it with a different distance value on the second buffer fill.
First round of sounds.c cleanup, no functional changes.
Also draw TROR from showview* commands.
Rename args in G_DoSpriteAnimations(), for easier grepping.
High-level TROR drawing: clean up how things are passed around.
Resurrect fake multiplayer mode a little (no bots). Just enough so that Bloodclaw's splitscreen mod can be played.
Correct premap.c's clearfrags().
The story: Duke3D 1.5 source had "short frags[MAXPLAYERS][MAXPLAYERS]" and
"clearbufbyte(&frags[0][0],(MAXPLAYERS*MAXPLAYERS)<<1,0L);". In r1625,
g_player[].frags[MAXPLAYERS] was changed from an array of int32_t to one of
uint8_t, but the clearing code
("clearbufbyte(&g_player[i].frags[0],MAXPLAYERS<<1,0L);") stayed. In r2201, I
rewrote clearfrags() under the assumption that it really is supposed to clear
stuff beyond .frags[].
The moral:
1. Write clean code.
2. Use sizeof.
3. Write clean code!
------------------------------------------------------------------------
------------------------------------------------------------------------
r2895 | helixhorned | 2012-08-13 11:26:18 -0700 (Mon, 13 Aug 2012) | 1 line
CON: in showview*, use new aspect determination if r_usenewaspect is 1.
------------------------------------------------------------------------
r2894 | helixhorned | 2012-08-13 11:26:16 -0700 (Mon, 13 Aug 2012) | 3 lines
engine: in setaspect_new, determine the aspect with {x,y}dimen instead of {x,y}dim.
That is, use the view boundries instead of the whole screen.
------------------------------------------------------------------------
r2893 | helixhorned | 2012-08-13 11:26:13 -0700 (Mon, 13 Aug 2012) | 1 line
Rewrite the EVENT_ANIMATESPRITES loop (G_DoEventAnimSprites calls) for clarity.
------------------------------------------------------------------------
r2892 | helixhorned | 2012-08-13 11:26:11 -0700 (Mon, 13 Aug 2012) | 1 line
game.c: factor out 2 inst. of dup. code into G_DoEventAnimSprites().
------------------------------------------------------------------------
r2891 | helixhorned | 2012-08-13 11:26:08 -0700 (Mon, 13 Aug 2012) | 3 lines
Hack for fake multimode/splitscreen: also draw mirrors from showview*.
See the source for why this hack is ugly.
------------------------------------------------------------------------
r2890 | helixhorned | 2012-08-13 11:26:06 -0700 (Mon, 13 Aug 2012) | 4 lines
CON: in fake multi-mode, play 'globalsound' even if player index isn't screenpeek.
This makes sounds like DUKE_GET (item pickup) be heard for the second player
in the splitscreen mod, too.
------------------------------------------------------------------------
r2889 | helixhorned | 2012-08-13 11:26:03 -0700 (Mon, 13 Aug 2012) | 4 lines
If a value of 1 is returned from EVENT_DISPLAYROOMS, don't draw them.
This includes mirrors, rooms and masks. Any value other than 0 or 1
that is returned is considered an error (reserved for future use).
------------------------------------------------------------------------
r2888 | helixhorned | 2012-08-13 11:26:01 -0700 (Mon, 13 Aug 2012) | 1 line
Fix mirrors in Polymost.
------------------------------------------------------------------------
r2887 | helixhorned | 2012-08-13 11:25:59 -0700 (Mon, 13 Aug 2012) | 1 line
Clean up G_MoveFX() a little.
------------------------------------------------------------------------
r2886 | helixhorned | 2012-08-13 11:25:56 -0700 (Mon, 13 Aug 2012) | 3 lines
Splitscreen mod hacks: handle screen tinting from both players.
Of course, it still affects the whole screen. Handles pain and lizard spit.
------------------------------------------------------------------------
r2885 | helixhorned | 2012-08-13 11:25:53 -0700 (Mon, 13 Aug 2012) | 4 lines
Hacks for the splitscreen mod: play sounds from both players.
The sound distance is the minimum of the two. Both point sources as well
as MUSICANDSFX ambient sound is handled.
------------------------------------------------------------------------
r2884 | helixhorned | 2012-08-13 11:25:51 -0700 (Mon, 13 Aug 2012) | 7 lines
sounds.c: Factor out duplicate code into S_CalcDistAndAng().
The two instances in S_PlaySound3D() and S_Update() were slightly
different as far as sequencing is concerned. However, I think making
it the same has only benefits and may fix some popping sounds when
starting to play a sound and updating it with a different distance
value on the second buffer fill.
------------------------------------------------------------------------
r2883 | helixhorned | 2012-08-13 11:25:48 -0700 (Mon, 13 Aug 2012) | 1 line
First round of sounds.c cleanup, no functional changes.
------------------------------------------------------------------------
r2882 | helixhorned | 2012-08-13 11:25:46 -0700 (Mon, 13 Aug 2012) | 1 line
Also draw TROR from showview* commands.
------------------------------------------------------------------------
r2881 | helixhorned | 2012-08-13 11:25:40 -0700 (Mon, 13 Aug 2012) | 1 line
Rename args in G_DoSpriteAnimations(), for easier grepping.
------------------------------------------------------------------------
r2880 | helixhorned | 2012-08-13 11:25:37 -0700 (Mon, 13 Aug 2012) | 1 line
High-level TROR drawing: clean up how things are passed around.
------------------------------------------------------------------------
r2879 | helixhorned | 2012-08-13 11:25:32 -0700 (Mon, 13 Aug 2012) | 3 lines
Resurrect fake multiplayer mode a little (no bots).
Just enough so that Bloodclaw's splitscreen mod can be played.
------------------------------------------------------------------------
r2878 | helixhorned | 2012-08-13 11:25:28 -0700 (Mon, 13 Aug 2012) | 13 lines
Correct premap.c's clearfrags().
The story: Duke3D 1.5 source had "short frags[MAXPLAYERS][MAXPLAYERS]" and
"clearbufbyte(&frags[0][0],(MAXPLAYERS*MAXPLAYERS)<<1,0L);". In r1625,
g_player[].frags[MAXPLAYERS] was changed from an array of int32_t to one of
uint8_t, but the clearing code
("clearbufbyte(&g_player[i].frags[0],MAXPLAYERS<<1,0L);") stayed. In r2201, I
rewrote clearfrags() under the assumption that it really is supposed to clear
stuff beyond .frags[].
The moral:
1. Write clean code.
2. Use sizeof.
3. Write clean code!
------------------------------------------------------------------------