Subversion Repositories eduke32

Rev

Show changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
5197 2341d 1h hendricks266 /polymer/eduke32/source/duke3d.h Add SW to our build system and make relevant changes to avoid fatal build errors.  
5156 2372d 1h helixhorned /polymer/eduke32/source/duke3d.h Double the size of clouds[] (holding sectors with CLOUDYSKIES ceilings).

Also, make cloudx[] and cloudy[] scalars, as the per-sector values were always
identical. In prelevel(), warn if some CLOUDYSKIES-ceiling sectors could not
be set up due to reaching the new 256 sector limit.
 
5080 2397d 22h terminx /polymer/eduke32/source/duke3d.h A lot of CON rewrites/optimizations. Converts projectile system to dynamic allocation, saving a bunch of memory (something like sizeof(projectile_t) * MAXTILES * 2). This commit also contains changes that reduce overhead for CON commands that take a lot of parameters, by way of adding a Gv_GetManyVars() to replace long strings of subsequent calls to Gv_GetVarX().

Savegame version has been bumped due to the projectile changes. There is no way this commit doesn't cause at least one bug, so DONT_BUILD. ;)
 
4838 2485d 5h helixhorned /polymer/eduke32/source/duke3d.h cache1d.c: Revert changes in r4665 unrelated to unrolling, fixing oob write.

Specifically, we must make sure that dasizeof <= LZWSIZE (or so) in
c1d_{read,write}_compressed() (what the assertion in the last commit was about,
and is now redundant). This fixes saving of e.g. large gamearrays with the C-CON
build. Bump BYTEVERSION.

An alternative for setting dasizeof to 1 would be to factor it and keep dividing
as long as it's > LZWSIZE.
 
4792 2509d 1h helixhorned /polymer/eduke32/source/duke3d.h Bump BYTEVERSION, necessary since the changes of r4703. DONT_BUILD.  
4766 2515d 18h hendricks266 /polymer/eduke32/source/duke3d.h Make a bunch of things extern "C". This should fix C++ builds on OS X and with Lunatic. DONT_BUILD.  
4747 2519d 10h terminx /polymer/eduke32/source/duke3d.h Part 1 of attempting to adhere to C standard section 7.1.3. It turns out it's illegal to use identifiers that begin with _ or have __ anywhere in them. DONT_BUILD.  
4680 2547d 19h terminx /polymer/eduke32/source/duke3d.h Another 5000 lines of pain and tears. DONT_BUILD.  
4588 2595d 5h helixhorned /polymer/eduke32/source/duke3d.h Get rid of EnvMusicFilename[] and use MapInfo[].musicfn for that.

The additional space was there all the time, so it's not understandable why
another array was necessary.
CON: for 'music', error if volume number is outside [0 .. MAXVOLUMES+1], and
in LunaCON, additionally warn if it's MAXVOLUMES+1 (0 is preferred for that).
 
4541 2644d 14h hendricks266 /polymer/eduke32/source/duke3d.h Replace the funkily-formatted GNU.TXT with the FSF's official gpl-2.0.txt. Also, update the FSF's address in all source files that contain it.

DONT_BUILD.
 
4346 2792d 3h helixhorned /polymer/eduke32/source/duke3d.h A couple of very minor code beauty tweaks.  
4328 2802d 2h helixhorned /polymer/eduke32/source/duke3d.h Amend r4318: Lunatic doesn't need the safety check.  
4321 2804d 12h hendricks266 /polymer/eduke32/source/duke3d.h Fix warnings when building in C++11 mode, i.e. with CPLUSPLUS=1 CUSTOMOPT="--std=gnu++11".  
4318 2804d 12h hendricks266 /polymer/eduke32/source/duke3d.h Don't crash if for some reason your CONs don't define actors like SHOTSPARK1, which has its strength value used in hardcoded behavior.  
4225 2848d 6h helixhorned /polymer/eduke32/source/duke3d.h Reserve 16 tiles from the end of MAXTILES, don't allow as user tiles from ART/DEF.  
4191 2870d 4h helixhorned /polymer/eduke32/source/duke3d.h Do not consider system gamearrays for updating from demos.

This generally fixes demo playback. Before, tilesizx[]/tilesizy[] were written
into twice as many bytes as needed. Now, don't do that at all.
 
4125 2909d 1h helixhorned /polymer/eduke32/source/duke3d.h In G_SaveMapState, fix 1024-byte write beyond array bound on 64-bit platforms.

This was caused by mismatched for types mapstate_t's animateptr[] and the global
one (int32_t vs. int32_t *).

Bump BYTEVERSION.
 
4118 2910d 2h helixhorned /polymer/eduke32/source/duke3d.h LunaCON: in {save,load}mapstate, warn that saving/restoring gamevars is NYI.  
3976 2994d 2h helixhorned /polymer/eduke32/source/duke3d.h Clean up parallaxed sky functionality, part 2.

- Rename sky_t members: yscale -> horizfrac, bits -> lognumtiles.
- Add default sky (8 tiles, horizfrac=32768 (i.e. 1/2 the scene horiz), offsets
all zero) and CLOUDYOCEAN sky (8 tiles, horizfrac=65536, offsets all zero)
to multipsky[].
- Get rid of "psky_t g_psky", merely maintaining a g_pskyidx instead. Set it up
at map load time so as to keep the behavior of the legacy per-map psky:
the last sector index with a matching psky ceiling wins.
- In mapstate_t, save g_pskyidx too, not (former) pskybits and pskyoffs[].
- Make on-map-load global psky setup consistent for the game and editor by
factoring it out into common.c: G_SetupGlobalPsky().
- Remove a couple of useless initializations, add some static assertions.

This commit is more likely to introduce subtle differences in behavior.
Specifically, getpsky() now always returns the default sky properties instead of
the global sky ones (but with all-zero offsets) when no match for a suiting
multi-psky is found. This is only likely to affect the yscale/horizfrac of
non-multi-pskies when a global non-default multi-psky has been set up.
Bump BYTEVERSION again.
 
3975 2994d 2h helixhorned /polymer/eduke32/source/duke3d.h Clean up parallaxed sky functionality, part 1.

- Consolidate psky* arrays into a "typedef struct psky_t" "g_psky" and
"multipsky[]".
- Factor out getting parallaxed sky properties into getpsky().
- Condense initial multi-psky setup by memcpy'ing from multipsky[].
- New function: MultiPsky_TileToIdx().
- Add new define PSKYOFF_MAX and related consistency-checking assertions.
- Lower MAXPSKYTILES to 8 to reflect current usage (was 256).
- Game: make multi-pskies consider dynamically-remapped MOONSKY1, BIGORBIT1
and LA. (Not very useful as the editor will still only act for the static
values -- 80, 84 and 89, respectively.)

An attempt has been made to preserve behavior even in strange cases, so this
commit is unlikely to introduce regressions. Because of point 6, BYTEVERSION
had to be bumped.
 

Show All