Agosto 2012
-
Generale
polymost.c: rewite widescreen bit code, part 2.
Mostra dettagli
Use integer math; both args to setaspect are constant.
-
Generale
Clean up classic's and Polymost's dorotatesprite functions (triv. changes only)
-
Generale
polymost.c: rewrite dorotatesprite's widescreen bit handling (256,512,1024).
Mostra dettagli
Instead of setting and resetting the [xy]dim globals, use them as locals in a block (shadowing the globals). Also, do some common subexpression elimination for clarity.
-
use updatesector instead of *z.
Mostra dettagli
When shrunk, the player position is below the floor for some weird reason. Updatesectorz would set the sector to -1, and the view would not be drawn.
-
remove weapon item drawing code.
-
Generale
fake multi: draw weapons for both players.
-
remove HUD drawing code, draw view from EVENT_DISPLAYROOMS.
-
Generale
In fake multi, never draw the screen rotated.
-
Generale
Splitscreen hack: draw status bar for both players.
-
Generale
Always draw the frag bar in fake multi.
-
Generale
In fake multi-mode, always draw the original mini status bar.
-
update to modified version posted at the Duke4.net forums.
-
Generale
Add original splitscreen mod by Bloodclaw for reference.
-
Generale
Fake multi-mode: better -q* messages, make surplus APLAYER sprites invisible.
Mostra dettagli
Also, change type of g_numPlayerSprites (global and mapstate) from inconsistent uint8_t/char to int8_t.
-
Generale
Clean up build.h and status bar drawing code in game.c.
-
in showview*, use new aspect determination if r_usenewaspect is 1.
-
in setaspect_new, determine the aspect with {x,y}dimen instead of {x,y}dim.
Mostra dettagli
That is, use the view boundries instead of the whole screen.
-
Generale
Rewrite the EVENT_ANIMATESPRITES loop (G_DoEventAnimSprites calls) for clarity.
-
Generale
game.c: factor out 2 inst. of dup. code into G_DoEventAnimSprites().
-
Generale
Hack for fake multimode/splitscreen: also draw mirrors from showview*.
Mostra dettagli
See the source for why this hack is ugly.
-
in fake multi-mode, play 'globalsound' even if player index isn't screenpeek.
Mostra dettagli
This makes sounds like DUKE_GET (item pickup) be heard for the second player in the splitscreen mod, too.
-
Generale
If a value of 1 is returned from EVENT_DISPLAYROOMS, don't draw them.
Mostra dettagli
This includes mirrors, rooms and masks. Any value other than 0 or 1 that is returned is considered an error (reserved for future use).
-
Generale
Fix mirrors in Polymost.
-
Generale
Clean up G_MoveFX() a little.
-
Generale
Splitscreen mod hacks: handle screen tinting from both players.
Mostra dettagli
Of course, it still affects the whole screen. Handles pain and lizard spit.
-
Generale
Hacks for the splitscreen mod: play sounds from both players.
Mostra dettagli
The sound distance is the minimum of the two. Both point sources as well as MUSICANDSFX ambient sound is handled.
-
Generale
sounds.c: Factor out duplicate code into S_CalcDistAndAng().
Mostra dettagli
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.
-
Generale
First round of sounds.c cleanup, no functional changes.
-
Generale
Also draw TROR from showview* commands.
-
Generale
Rename args in G_DoSpriteAnimations(), for easier grepping.
-
Generale
High-level TROR drawing: clean up how things are passed around.
-
Generale
Resurrect fake multiplayer mode a little (no bots).
Mostra dettagli
Just enough so that Bloodclaw's splitscreen mod can be played.
-
Generale
Correct premap.c's clearfrags().
Mostra dettagli
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!
-
Generale
Text-repl.: hitinfo variables -> hit, hit{sprite,sect,wall} members -> no "hit"
Mostra dettagli
This makes the code rather more readable in some places. Unlike the two preceding commits, this one is actually purely textual replacement.
-
Generale
Mass text replacement g_player[p].ps --> ps, part 2 (harder)
Mostra dettagli
Functions affected are G_Move* in actors.c and A_Shoot in player.c. Here, the p variable had function scope, now it's redeclared in shorter blocks. I'm still relatively sure that no observable behavior was changed, though not as sure as in part 1. Also, some dead assignments and the like are eliminated.
-
Generale
Mass text replacement g_player[p].ps --> ps, part 1 (the easy one).
Mostra dettagli
The p variable (sometimes named differently) has short scope in all cases, so I'm almost sure that the replacements amount to an identity transformation.
-
Generale
actors.c: factor out 4 instances of id. code (up to args) into nudge_player().
-
factor out addammo/addweapon{,var} common code, harden addweaponvar...
Mostra dettagli
... against invalid weapon indices and arguments accessed from arrays/structs.
-
rewrite bitar to use arrays of int32, more convenience ops.
-
reflect the preceding rename in the sources.
-
Generale
Rename a certain file to appease Windows file systems.
-
implement a couple more 1.5 commands.
-
Generale
Fix tile CAMERA1+4 being not changed to a CAMERA1 on spawn.
-
Generale
Fix slimers not disappearing on dnmonsters cheat, display 2nd 'on' state.
-
add "extend all highlighted sectors" func to 'F menu via a.m32.
-
Generale
Clean up game.c and actors.c.
-
clean up handing of ac/mv internally, add control module.
-
cleanup
-
'bitar': rewrite ops for colon syntax, serialization, set ops.
-
Generale
sdlayer.c: Add high-resolution timer for OS X, using mach_absolute_time().