Build 3191
SVN-
Generale
Remove our old eduke32.vcproj as it hasn't been updated since whenever I switched to VS2010
-
Generale
Make GCC *printf_nowarn behavior conditional on compiling as C++
Nickname SVN e nomi Git sono unificati per persona.
Remove our old eduke32.vcproj as it hasn't been updated since whenever I switched to VS2010
Make GCC *printf_nowarn behavior conditional on compiling as C++
make lotag/hitag getters return signed values, as per agreement on IRC.
This means that the internal change done to these sprite members in r3159 is hidden from CON for backward-compatibility purposes. Note that .cstat and .{ceiling,floor}stat aren't touched, and will return unsigned values to CON.
Probably fix the zoom crash encountered with Mapster32 and CBP8.
Minor loadpics() cleanups, don't expose filegrp[] from cache1d.c.
picanm[]-cleanup pt1: hide code using animateoffs() behind macro DO_TILE_ANIM.
foreachmap.lua: add possibility of running code per s/w/s match with ':' shortcut
Also, add a missing "pragma pack(pop)" to build.lua.
Add nedmalloc.h to the VS2010 project files
Fix clipboard tile display in 3D mode.
demo.c: time G_DoMoveThings() using a double instead of an int32_t.
I think this may fix some negative "non-profiled overhead" that I have been seeing.
Bump BYTEVERSION.
Address crash when model skins have invalid file names. Affected surfaces will not be drawn, but FPS will plummet as mdloadskin() is called repeatedly. A more optimal solution would either flag the surface as invalid (so the renderers skip it) or reject the entire model when defs are loaded.
Tools updates:
- Eliminate use of the C++ standard library from arttool. I improved some of the program's workings but it continues to corrupt my art files in certain circumstances. (Note: Not a regression; it happens with previous revisions.) - Construct "make utils" for the game side following the pattern of the engine. - Move ivfrate to this new distinction. - Minor Makefile cleanup and tweaks, mainly to facilitate CLANG=1 and to formalize text output in special cases.
Fix CPLUSPLUS=1 CLANG=1 building, and fix the "gotpic used attribute ignored" warning produced by clang.
MinGW C build fix
Add a couple of #ifdef __cplusplus I missed
Fix the warnings when building with C++, add MSVC C++ build support. This also changes the internal type of lotags, hitags and cstat type fields to uint16_t instead of int16_t to clean up some dubious behavior wherein the code was using a value of 32768 as a flag in these fields for certain types of things, like invisible sprites (using the value as if it was uint16_t) where it was elsewhere checking if the value was < 0 (using the value as if it was int16_t). This change may break a few specific effects if any part of the relevant code was missed when looking for areas that needed to be addressed.
I think there's also a fix for the CON precache system breakage in here (lost it in my local tree when I started getting the C++ build working in MSVC, sorry!)
Fix r3155 fuckup :)
set first walls more conveniently on split in one special case.
Specifically, if the first wall of the sector-to-split is to the left or right of the *start* of the splitting line AND the sector has no TROR extensions, make these two the new nextwalls of the respective split sectors.
Rewrite old-version-savegame signaling in a cleaner fashion.
Update Net_SendVersion() and Net_ReceiveVersion() to use a 16-bit representation of BYTEVERSION
Fix useractor enemystayput breakage
Make it possible to build a standalone libcache1d.so.
Exporting only (de)compression functions. Also, different reader/writer functions can be set.
Couple of tweaks in player.c to match all ProjectileData[...].xxx with a regexp.
It would be something like "ProjectileData\[([^]]+)]\.([a-z_]+)".
Fix demo playback with diff application enabled.
This requires ripping out the .proj member of tiledata_t back into ProjectileData[] again because it was the only one in g_tile[] that changed during the course of a game. The g_tile[] array is now also correctly flagged as "constant throughout a game" (DS_NOCHK). Savegame version bumped.
Trivial G_Util_PtrToIdx*() tweaks.
Fix viewing through moving cameras.
It's still not pretty though since there's no interpolation from G_DrawRooms().
Lunatic reorganization part 2: split into engine and editor/game parts.
On the engine side (functions starting with L_), there are now the basic parts like state creation and running code from strings and files. The game and editor can add to that by e.g. loading whatever they please into the state. Their functions start with El_ and Em_, respectively. The Lua scripts still reside in source/lunatic, even for the common ones. This is because they will be embedded into the binaries as bytecode or compressed source eventually, so their location on disk will be irrelevant.
Lunatic reorganization part 1: two renames and one deletion.
See the next commit for details.
Clean up texture loading code etc. in polymost.c, no functional changes.
Introduce a per-tile bit preventing fullbrights in GL modes, use for LOADSCREEN.
fix rotatesprite with no screen scaling and non-widescreen aspects.
Also, enable showing sprites in Mapster32's overhead view again, since that was one (the only?) use of that code path. The uninitialized read was introduced in r2927.
When looking through a camera, don't do third person view.
Also, reorganize some G_DrawRooms() code a little without changing anything.
When found a camera sprite for viewscreen, set position etc. immediately.
Instead of later in P_ProcessInput(). This fixes one drawrooms() call in between where the sectnum is the camera's, but the position the player's, which can lead to a slow "outer view" render in Polymer.
Make glbuild C++-safe.
Fix warning in jaudiolib due to void ptr arith.
Fix warnings from pointer math with the trackers.
Add automatic tracking to the sector[], wall[], sprite[] and tsprite[]
arrays; any write access to them will run the corresponding hook and write to the [sector/wall/sprite/tsprite]clean array. Note: tsprite and sprite use the same hook and require running a few more instructions per access in order to disambiguiate; this could be made more optimal (like the other arrays) by clearly separating the types in the game code. Note #2: taking a member's address currently marks it dirty because of tons of helper functions across the editor code. I don't know how many read-only accesses we have after taking a member address, but it could also be fixed with some finessing of the code.
Fix the C++ build on Linux with LTO.
Fix the Linux mapster32 build with LTO enabled.
Fix synthesis fallout after ivfrate addition.
Fix C90 compliance warning in sdlmusic
Fix warning from r3128
Make ivfrate build standalone, Makefile tweaks.
New utility ivfrate(.exe) and a couple of small VP8 changes.
The command-line utility can query and set the frame rate of IVF files, since apparently encoders don't care too much about setting proper values in the IVF header. Also, add the utility to the synthesis build. On the playback side in EDuke32, get rid of the 1/(2*fps) "correction" if the FPS numerator is <1000 (presumably used in older encoders) and properly print the frame rate's fractional part.
"fix" building.
Fix USE_OPENGL=0 build.