Build 5334
SVN-
Generale
Amend r5330.
-
Generale
Fix GTK build.
Nickname SVN e nomi Git sono unificati per persona.
Amend r5330.
Fix GTK build.
Fix USE_OPENGL=0 build.
Mostly revert r5326, and instead restrict the starting and stopping text input to touch devices where we need the on-screen keyboard to appear. This maintains the bugfix on targets with a physical keyboard.
Fix the Custom game content directory startup window option loading the folder alphabetically previous to the one selected when the "autoload" folder is present.
Add EVENT_PREDRAW2DSCREEN.
Improvements to the MSVC project.
Define the formerly nonsensical combination of orientation bits 256 and 512 to mean "automatically zoom the tile so that the 320x200 coordinate system is vert-minus widescreen instead of horiz-plus".
Fix warning: narrowing conversion of 'img->vpx_image::d_w' and 'img->vpx_image::d_h' from 'unsigned int' to 'int32_t {aka int}' inside { } is ill-formed in C++11 [-Wnarrowing]
Add "multipsky" token.
Convert multi-psky handling to use dynamically-allocated arrays.
Re-expose kpzbufsiz and set it to zero in uninitengine, preventing potential crashes from successive re-initializations of the engine.
Re-expose clipmoveboxtracenum.
Fix warning: array subscript is above array bounds [-Warray-bounds]
Fix warning: variable may be used uninitialized in this function [-Wmaybe-uninitialized]
Fix warning: type does not match original declaration [enabled by default]
Replace calls to Error() with buildprintf().
Add uint32_t PaletteIndexFullbrights[8] so that Polymost can respect the lack of fullbrights in KenBuild and Shadow Warrior.
Since sprite->filler is now fogpal, modify the CTF code that uses it to use a new variable in SW's USER struct instead.
Modify the border-drawing code to work with our widescreen code.
automapping (deleted), visibility --> g_visibility, numpalookups --> numshades
Update some API calls.
Add the Shadow Warrior source to our tree after astyling, uncrustifying, and renaming one file.
Set up and enable building with USE_OPENGL. DONT_BUILD.
Merge glbuild_android into glbuild. DONT_BUILD.
Add more expansion GRPs to the detection list.
Add autodetection support for Duke 3D as part of the Steam release of the 3D Realms Anthology.
OS X: Fix startup window banner. DONT_BUILD.
Fix a typo in r5179.
Add "artfile" token, which loads an ART file. You can use the "tile" sub-token to overwrite the starting tilenum of the file from def.
artfile { file "whatever.art" } // loads whatever.art just as if it had been named TILES020.ART artfile { file "whatever.art" tile 2000 } // loads whatever.art starting at index 2000 instead of the tilestart value contained within it This is useful because ART files will load faster than images loaded through tilefromtexture (which must undergo a color matching process), and because tiles making use of palette indices which have duplicate colors in the stock Duke 3D palette but not in other palettes (such as the 3D Realms screen) are negatively affected by the aforementioned process.
Add support for ART files containing exactly one tile as an input format for hightile textures and model skins. They are rendered in the global game palette and function as conventional hightile.
Allow loading ART files as input to tilefromtexture. Note that they must contain exactly one tile; any more and the entire ART file will be rejected.
Restructure and expand some ART loading functionality in the engine.
Factor out dummytile creation code into E_CreateDummyTile and account for the case when a dummytile may be overwriting a faketile from tilefromtexture.
Separate kpzload into two separate functions, kpzbufload (which now lives in cache1d, regardless of WITHKPLIB) and kpzdecode.
Replace most instances of casting byte arrays to wider integral types with the B_(UN)BUF functions in compat.h that were previously used only in the netcode.
I have commented out the versions of these functions that perform bitmasks and shifts and replaced them with versions that cast to and from integral types, pending performance and compatibility research across platforms.
Replace the bswap function used in kplib with B_SWAP32, and merge the 32-bit MSVC and GCC assembly into compat.h.
TODO: Review the value of the continued use of special cases of these swap functions, including the OS-based variants for BSD and OS X, and this assembly.
Make all the hictinting_apply blocks consistent. This should fix certain tints types being applied incorrectly in Polymer and the global tints (underwater and nightvision) not being applied to tints and models with certain flags.
Correct the HICTINT_GRAYSCALE calculation for hightile.
Complete the necessary infrastructure so that more than one precomputed tint on a hightile texture will display.
Add blending modes Screen, Overlay, and Hard Light, as opposed to the default Multiply. This value is encoded in bits 6 and 7 of the "flags" parameter. In other words, calculate your flags besides these modes, then bitwise OR the resulting value with:
0 - Multiply 64 - Screen 128 - Overlay 192 - Hard Light Note: These will likely look terrible when combined with the Colorize flag, because of the nature of the Colorize flag.
Account for HICTINT_GRAYSCALE, INVERT, and COLORIZE when applying a tint on 8-bit art.
Apply HICTINT_APPLYOVERALTPAL where it should in texcache_fetch.
Eliminate a check that a model's sector's floorpal is nonzero before applying a tint.
Account for HICTINT_APPLYOVERALTPAL and HICTINT_USEONART.
Fix omission of modules when parsing game-side defs.
Implement "renamefile" during game-side def parsing (normally for "loadgrp" et al.) in addition to engine-side def parsing.
Add "copytile" token that allows you to copy existing 8-bit tiles from one slot to another, along with their x/yoffsets and flags. ART animation values are not copied.
Examples: (assuming stock Duke palswaps) copytile 10000 { tile 0 } // tile #10000 is now the same as #0 copytile 10001 { tile 1 pal 8 } // tile #10001 is now #1 with a full-green tint copytile 0 { pal 1 pal 23 } // tile #0 now has a full-yellow tint
Instead of keeping the entire contents of ART files loaded from within zips in memory, assimilate them into tilefromtexture's compressed faketiledata.
This involves some refactoring.
Expand use of check_tile().
Amend previous commit.
Add "undefinetile" and "undefinetilerange".
Clear the player's quote timer for each MAIN_LOOP_RESTART.
Disallow "autoload" as a choice for the game dir in the Win32 startup window.
Allow alpha fade-out for quotes and the menu mouse cursor in 8-bit when the supplied PALETTE.DAT has enough alpha tables to fully display each effect.
Modify slider bar so that it uses a scale defined in the data structure instead of auto-scaling to the height of the row.
Add events for the remaining player-related HUD display functions:
EVENT_DISPLAYSPIT - loogies from the SPIT projectile EVENT_DISPLAYFIST - nukebutton fist (shrunk fists are part of EVENT_DISPLAYWEAPON) EVENT_DISPLAYKNEE - pstomp knee (quick kick is part of EVENT_DISPLAYWEAPON) EVENT_DISPLAYKNUCKLES - knuckle crack idle animation EVENT_DISPLAYSCUBA - scuba gear EVENT_DISPLAYTIP - tip hand EVENT_DISPLAYACCESS - access cards / keycards
Move handling of ud.drawweapon from G_DrawWeaponTileWithID() to P_DisplayWeapon(). This fixes it not being applied to the quick kick and mighty foot.
Replace the use of an "snum" parameter in the screen display functions with screenpeek because we need to keep screenpeek accurate for CON anyway.
Add two new structs, tiledata and paldata, accessible only through quick-access.
Don't print quotes when not in-game.
This is required after a change in the cheat menu commit that allows the cheat quotes to trigger from the in-game menu. However, a side-effect was that pressing F12 in the main menu would cause "SCREEN SAVED" to display indefinitely.
Avoid reading or writing savegame specdata arrays when the pointer to one is NULL or their count is zero.
Avoid triggering undefined behavior in the allocator when loading or saving ProjectileData[].
Add checks to prevent invalid reads/writes when using get/setprojectile on a tile number that does not have a projectile defined for it.
Restore an insptr++ when executing "endswitch".
Add token "forcefilter" to textures, skyboxes, and model skins. It forces the use of GL filtering for the resource in question.
Add "nocompress" and "nodownsize" tokens to model skin definitions.
Add projectile workslike flag PROJECTILE_NOSETOWNERSHADE = 0x00200000 = 2097152 that prevents actors from inheriting a projectile's shade when shooting it.
Really fix get/setprojectile.