Commit Graph

4135 Commits

Author SHA1 Message Date
helixhorned caeb012843 engine.c: in loadlookups(), error out if attempting to load at a reserved pal.
git-svn-id: https://svn.eduke32.com/eduke32@4345 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-22 19:38:45 +00:00
hendricks266 a21f340553 Mapster32: Introduce m32_settings.cfg, analogous to settings.cfg, so that you can save your cvars and aliases for the editor.
One potential use is to add r_togglecomposition "0" if you don't like Aero turning on and off every time you switch between 2D mode and 32-bit 3D mode.

git-svn-id: https://svn.eduke32.com/eduke32@4344 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-22 08:03:02 +00:00
hendricks266 14db3b178d Build system: Detect the SVN revision and generate rev.h directly from the Makefile, if applicable.
git-svn-id: https://svn.eduke32.com/eduke32@4343 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-22 08:02:41 +00:00
hendricks266 d67e977fb1 Further optimize our SDL_Renderer for 8-bit by making the SDL_Texture SDL_TEXTUREACCESS_STATIC, saving some RAM without any loss of functionality.
git-svn-id: https://svn.eduke32.com/eduke32@4341 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-22 08:02:13 +00:00
terminx 2aa167af01 Fix texcache
git-svn-id: https://svn.eduke32.com/eduke32@4340 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-22 01:27:03 +00:00
terminx ea602827cd Indicate MSVC in build string
git-svn-id: https://svn.eduke32.com/eduke32@4339 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-22 01:26:34 +00:00
helixhorned 2afb680d22 engine.c: always setup blending table whenever drawing translucent objects.
BUILD_LUNATIC.

git-svn-id: https://svn.eduke32.com/eduke32@4338 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-19 19:47:28 +00:00
helixhorned caed55e9a4 Lunatic: engine.setupDebugBasePal(), auto-detect 2nd+ shadexfog.translate().
engine.setupDebugBasePal() set up the water base palette such each of the first
15 "ramps" of 16 consecutive colors has a single, "representative" color. For
example, color indices 0-15 and black, 16-31 are dark gray.
In shadexfog.lua, list remappings from LOOKUP.DAT that are expressible as
remappings of 16-tuples.

git-svn-id: https://svn.eduke32.com/eduke32@4337 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-19 19:47:25 +00:00
helixhorned b79fa42903 Lunatic: add engine.saveLookupDat() and document, related tweaks.
- Mapster32: before loading LOOKUP.DAT, set palookup[0][239]=239 to
  make an identity map of the base shade table's shade 0
- Rewrite color index remapping case of makepalookup() for clarity

BUILD_LUNATIC.

git-svn-id: https://svn.eduke32.com/eduke32@4336 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-16 19:16:06 +00:00
helixhorned df25e3cd7c In loadlookups(), look for gap of 4 consecutive unused pals for fog pals.
As opposed to the previous way, where the first fog pals was <numlookups>+1,
where <numlookups> is the first byte value of LOOKUP.DAT. This allows to
pack e.g. lookups [1 .. 25] and [30 .. <lastpal>] into LOOKUP.DAT and have fog
pals be generated at pals [26 .. 29] (i.e. the additional lookups don't
shift the fog pals, making user maps depending on these numbers not look as
intended.)

git-svn-id: https://svn.eduke32.com/eduke32@4335 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-16 19:16:05 +00:00
helixhorned 7e7507746d Factor out common parts of loading LOOKUP.DAT into engine.c:loadlookups().
Also, error if didn't read enough data and account for TITLE and REALMS
swap between basepal number and on-disk order (sigh).

git-svn-id: https://svn.eduke32.com/eduke32@4334 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-16 19:16:03 +00:00
helixhorned 37ffae149e Lunatic: rewrite shadexfog.create_128_trans to allow creating fewer tables.
It must be a power of two in [2 .. 128]. Rewrite test/sprite_access.con's
liztroop example to account for that.
Also, add function shadexfog.create_trans() which aceepts a function
(r,g,b,R,G,B) -> blended (r,g,b) and rewrite shadexfog.create_additive_trans()
in terms of it.

git-svn-id: https://svn.eduke32.com/eduke32@4333 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-16 19:16:01 +00:00
helixhorned e68d5a14b3 Lunatic: in shade table 'remap16' method, allow sparse table, document it.
Add shadexfog.createremap() convenience function.

git-svn-id: https://svn.eduke32.com/eduke32@4332 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-16 19:15:59 +00:00
helixhorned 00a6a058ef Lunatic: in engine.savePaletteDat(), open file in binary mode. BUILD_LUNATIC.
git-svn-id: https://svn.eduke32.com/eduke32@4331 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-13 15:39:28 +00:00
helixhorned 15e141452e Lunatic: disallow saving map-text files in Mapster32 for now.
git-svn-id: https://svn.eduke32.com/eduke32@4329 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-12 21:03:06 +00:00
helixhorned 23ecf8cce0 Amend r4318: Lunatic doesn't need the safety check.
git-svn-id: https://svn.eduke32.com/eduke32@4328 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-12 21:02:59 +00:00
terminx faa8133cda Support "r_windowpositioning" in SDL builds.
git-svn-id: https://svn.eduke32.com/eduke32@4327 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-11 17:55:45 +00:00
hendricks266 70caa24f24 MSVC: Set up support for SDL2. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4326 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-11 07:39:09 +00:00
terminx 497dc1fc7f Fix 64-bit MSVC builds. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4325 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-11 07:17:45 +00:00
hendricks266 990c99acc2 Fix 32-bit MSVC builds. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4324 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-11 06:14:03 +00:00
hendricks266 c2cb6a9754 Networking updates.
- Added preprocessor value NETVERSION, to be incremented in the source whenever changes are made to the network protocol.
- Implemented proper server-side version verification of all clients upon connection.
- Implemented connection refusal when we reach MAXPLAYERS. (Should be expanded to implement server player caps.)
- Protected against OOB array accesses if an invalid player id is received.
- Renamed all "Recieve" to "Receive".

git-svn-id: https://svn.eduke32.com/eduke32@4322 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-10 11:00:25 +00:00
hendricks266 3b5dea7347 Fix warnings when building in C++11 mode, i.e. with CPLUSPLUS=1 CUSTOMOPT="--std=gnu++11".
git-svn-id: https://svn.eduke32.com/eduke32@4321 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-10 11:00:07 +00:00
hendricks266 8f9ffcf23f MSVC: Add support for x64 building and all synthesis libs (libpng/zlib, libvpx, libFLAC).
External ogg/vorbis are no longer required.

git-svn-id: https://svn.eduke32.com/eduke32@4320 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-10 10:59:42 +00:00
hendricks266 fd3712ab22 Windows: Full library refresh.
git-svn-id: https://svn.eduke32.com/eduke32@4319 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-10 10:58:38 +00:00
hendricks266 8146f6014c Don't crash if for some reason your CONs don't define actors like SHOTSPARK1, which has its strength value used in hardcoded behavior.
git-svn-id: https://svn.eduke32.com/eduke32@4318 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-10 10:56:27 +00:00
hendricks266 5d92bef194 Very minor changes after an investigation into the possibility of Polymost on Wii.
git-svn-id: https://svn.eduke32.com/eduke32@4317 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-10 10:56:14 +00:00
hendricks266 7deb709ab6 Replace QuickLZ with LZ4.
git-svn-id: https://svn.eduke32.com/eduke32@4316 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-10 10:55:49 +00:00
hendricks266 8db0c9c729 Fix errors and warnings with LLVM/clang 3.4 Windows.
git-svn-id: https://svn.eduke32.com/eduke32@4315 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-10 10:55:13 +00:00
hendricks266 854c266cf7 Update commented SDL2 key debug log output.
git-svn-id: https://svn.eduke32.com/eduke32@4314 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-10 10:54:50 +00:00
helixhorned 0aa7b11dca C-CON: add *actor[].blend as an alias to .detail, *tspr[].tsprblend analogously.
See lunatic/test/sprite_access.con for a LIZTROOP that periodically smoothly
alpha-fades in and out. (Assuming that the 128 alpha blending tables from
shadexfog.create_128_trans(1) are installed.)

BUILD_LUNATIC.

git-svn-id: https://svn.eduke32.com/eduke32@4313 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-09 19:22:36 +00:00
helixhorned 846fcdf31c Extend PALETTE.DAT format to allow carrying additional blending tables.
Lunatic: also, add an additional argument 'moreblends' to
engine.savePaletteDat() and document that function.
See test/shadexfog.lua for a "user-friendly" wrapper shadexfog.save() which
prints success or errors.

git-svn-id: https://svn.eduke32.com/eduke32@4312 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-09 19:22:35 +00:00
helixhorned 075d817ed7 Lunatic: move code in test/shadexfog.lua to engine.savePaletteDat() and complete it.
The function now writes out a full PALETTE.DAT: base balette, shade table and
translucency table.

git-svn-id: https://svn.eduke32.com/eduke32@4311 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-09 19:22:33 +00:00
terminx 83d23092cd Fix building on MinGW (MinGW-w64 was OK). DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4310 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-08 21:25:29 +00:00
helixhorned eec27960ea Lunatic: update dynsymlists. Move blendtable[] from build.h to engine.c.
BUILD_LUNATIC.

git-svn-id: https://svn.eduke32.com/eduke32@4309 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-08 14:37:59 +00:00
helixhorned a9fb9e6356 Lunatic: add a 'lastokcol' argument to engine.nearcolor() and document it.
On the C side, slightly rewrite (now) getclosestcol_lim() for clarity.

git-svn-id: https://svn.eduke32.com/eduke32@4308 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-08 14:37:58 +00:00
helixhorned 5726a15bb3 Lunatic: document engine.*blendtab() and engine.getrgb() functions.
git-svn-id: https://svn.eduke32.com/eduke32@4307 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-08 14:37:57 +00:00
helixhorned 0637c2b6a8 M32script: remove sprite members 'detail' and 'filler', add 'blend', make r/w.
git-svn-id: https://svn.eduke32.com/eduke32@4306 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-08 14:37:56 +00:00
helixhorned ad8d6795e2 In the C code, rename sprite[].filler to 'blend'.
Also, fix a missed .filler -> g_ambiencePlaying[] rewrite in the editor.
In C-CON, 'detail' is kept as alias to C-side (former) .filler / now .blend,
but that name is *deprecated*.

git-svn-id: https://svn.eduke32.com/eduke32@4305 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-08 14:37:55 +00:00
helixhorned b1b0da2852 Polymer: factor out polymer_invalidateartmap(), use it in invalidatetile().
This fixes updating the viewscreen in Polymer's ART mapping mode.

git-svn-id: https://svn.eduke32.com/eduke32@4304 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-08 14:37:53 +00:00
helixhorned e379cd3655 Polymer: factor out polymer_invalidatesprite(), use when viewscreen tex changed.
Also, rewrite invalidatetile() for clarity.

git-svn-id: https://svn.eduke32.com/eduke32@4303 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-08 14:37:52 +00:00
helixhorned a37c31cab7 Lunatic: rename sprite[].filler member to 'blend' on the Lua side.
From LunaCON, remove 'detail' as alias to that member.

git-svn-id: https://svn.eduke32.com/eduke32@4302 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-08 14:37:51 +00:00
helixhorned 330b744a1b Classic: support for multiple blending tables + Lunatic interfaces.
Currently, sprite[].filler (to be renamed) selects a blending table. If none
is installed with that index, the blending table at index 0 is taken (which is
read from PALETTE.DAT on engine startup). Thus, for now, the non-Lunatic build
will never use a custom blending table because there's no way to register one!
But the functionality is there.

git-svn-id: https://svn.eduke32.com/eduke32@4301 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-08 14:37:49 +00:00
helixhorned 54c74ca78e astub.c: in M32_MoveFX, use separate bit array to store "sound is playing".
Instead of sprite[].filler.

git-svn-id: https://svn.eduke32.com/eduke32@4300 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-08 14:37:48 +00:00
helixhorned bd34885653 LunaCON: add and document -Wnever-used-gamevar and -Wnever-read-gamevar.
git-svn-id: https://svn.eduke32.com/eduke32@4299 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-08 14:37:47 +00:00
helixhorned 0d0f3a1cd2 Add Makefile.common switch ALLOCACHE_AS_MALLOC, remove DEBUG_WITH_VALGRIND.
git-svn-id: https://svn.eduke32.com/eduke32@4298 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-08 14:37:41 +00:00
terminx f0da70b4c1 Fix yellow keycards
git-svn-id: https://svn.eduke32.com/eduke32@4297 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-02 22:18:35 +00:00
terminx 482b36521d Fix a missing reference to WEAPON_POS_LOWER
git-svn-id: https://svn.eduke32.com/eduke32@4296 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-02 22:18:21 +00:00
helixhorned 2b583e9c9e gloadtex() cleanup, make some vars in kplib.c static, add source/valgrind_errors.log.
BUILD_LUNATIC.

git-svn-id: https://svn.eduke32.com/eduke32@4295 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-02 15:56:13 +00:00
helixhorned 41cee5ed69 sounds.c: exit S_PlayMusic() early if length of file is <4 bytes, clean up mem mgmt.
git-svn-id: https://svn.eduke32.com/eduke32@4294 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-02 15:56:11 +00:00
helixhorned c85feff063 engine.c: amend r4292, which introduced an even worse oob for NPOT xsize texs.
git-svn-id: https://svn.eduke32.com/eduke32@4293 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-02 15:56:09 +00:00
helixhorned 546a112741 engine.c: in calc_bufplc(), cope with negative lwall[] values.
This should fix the crash encountered here:
http://forums.duke4.net/topic/1348-mapster32-problems-and-bugs/page__view__findpost__p__184069

a-c.c also gets a new switch macro, DEBUG_WITH_VALGRIND.

git-svn-id: https://svn.eduke32.com/eduke32@4292 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-02 10:50:44 +00:00
helixhorned 21a8788b6b LunaCON: implement 'precache'.
git-svn-id: https://svn.eduke32.com/eduke32@4291 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-02 10:50:40 +00:00
helixhorned 6d8ea48257 LunaCON: add option -ferror-nonlocal-userdef, on by default.
BUILD_LUNATIC.

git-svn-id: https://svn.eduke32.com/eduke32@4290 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-01 16:19:59 +00:00
helixhorned f04ec9e117 sounds.c: do S_MusicVolume() in S_SoundStartup().
This fixes this initialization issue:
http://forums.duke4.net/topic/7144-midi-volume-weirdness/

git-svn-id: https://svn.eduke32.com/eduke32@4289 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-01 16:19:58 +00:00
helixhorned f7035da876 Some functionality-conserving cleanup of jaudiolib code.
git-svn-id: https://svn.eduke32.com/eduke32@4288 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-01 16:19:57 +00:00
helixhorned 7c26c180cd LunaCON: accept empty square brackets for {g,s}etuserdef optional index part.
git-svn-id: https://svn.eduke32.com/eduke32@4287 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-01 16:19:55 +00:00
helixhorned 842cce37b7 Lunatic: Fix compilation of C++ build, but not starting up yet.
BUILD_LUNATIC.

git-svn-id: https://svn.eduke32.com/eduke32@4286 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-31 21:13:03 +00:00
helixhorned 60612d07f0 LunaCON: error on userdefs accesses with non-local current player.
Add lunatic/test/getuserdef.con.

git-svn-id: https://svn.eduke32.com/eduke32@4285 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-31 21:13:01 +00:00
helixhorned 6d4f56c643 Get rid of neartag* global variables. LunaCON: fix 'operate'.
git-svn-id: https://svn.eduke32.com/eduke32@4284 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-31 21:13:00 +00:00
helixhorned aa547e8c16 sector.c: factor out goto soup in P_CheckSectors() into function.
git-svn-id: https://svn.eduke32.com/eduke32@4283 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-31 21:12:59 +00:00
helixhorned 6de687ba86 sector.c: cleanup round 3, P_ActivateSwitch() refactoring.
git-svn-id: https://svn.eduke32.com/eduke32@4282 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-31 21:12:58 +00:00
helixhorned ab5c89430c sector.c and related cleanup, round 2.
- use SPRITES_OF* iterator macros
- new function: E_SpriteIsValid(); add some safety checks
  (e.g. hitag used as sprite index)
- the rest is mostly "the usual code transformations"

git-svn-id: https://svn.eduke32.com/eduke32@4281 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-31 21:12:56 +00:00
helixhorned 8fbefe829a sector.c: cleanup round 1, trivial changes.
git-svn-id: https://svn.eduke32.com/eduke32@4280 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-31 21:12:55 +00:00
helixhorned bebdc6ff4f Follow-up to RTS cleanup: factor out 2x almost-same code into G_StartRTS().
git-svn-id: https://svn.eduke32.com/eduke32@4279 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-30 19:12:10 +00:00
helixhorned da6c7109c1 Reincarnate RTS sound functionality together with cleaning up related code.
- Make Win+F* also make play and RTS sound, since modern OS's window managers
  like to eat Alt-F*. (Some Win+F* may be inaccessible too, but together all
  10 should hopefully be covered.)
- Fix an issue where keys other than F1-F10 were considered as starting an RTS
  sound and crashing EDuke32 in the process

git-svn-id: https://svn.eduke32.com/eduke32@4278 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-30 19:12:08 +00:00
helixhorned 39bd7110d6 Fix USE_OPENGL=0 build... again. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4277 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-30 16:13:53 +00:00
helixhorned 1b3046d1c8 Fix respawn operation with monsters off, rewriting G_OperateRespawns().
BUILD_LUNATIC.

git-svn-id: https://svn.eduke32.com/eduke32@4276 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-29 18:32:51 +00:00
helixhorned 63e0de5e3d TROR: when clearing bunch number of c/f with yax_setbunch(), don't reset xpanning.
In the non-Lunatic build naturally, since the Lunatic one uses its own member.

git-svn-id: https://svn.eduke32.com/eduke32@4275 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-28 19:03:47 +00:00
hendricks266 62abd504ef Print "32-bit"/"64-bit" along with the version number in the log.
git-svn-id: https://svn.eduke32.com/eduke32@4274 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-27 10:31:39 +00:00
hendricks266 3e6fc00474 Remove "-fpermissive" from C++ builds because we don't need it.
git-svn-id: https://svn.eduke32.com/eduke32@4273 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-27 10:31:20 +00:00
hendricks266 27dbb4d2e8 MapArt: gltexinvalidatetype(INVALIDATE_ART) so that loading or unloading an ART set will take effect when using the OpenGL renderers.
git-svn-id: https://svn.eduke32.com/eduke32@4272 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-27 10:31:08 +00:00
hendricks266 0bf2ae9bab SDL2: Don't use SDL_Renderer if it is a software fallback, because that would only waste memory and speed.
git-svn-id: https://svn.eduke32.com/eduke32@4271 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-27 10:30:54 +00:00
hendricks266 9f42ffc1ef SDL2: Eliminate a memory leak when changing resolutions with SDL_Renderer 8-bit mode.
git-svn-id: https://svn.eduke32.com/eduke32@4270 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-27 10:30:39 +00:00
hendricks266 31a8bfebb6 SDL: Fix "the issue where if you hold down a key and enter the console then release it that the key remains held down until you hit it again outside the console".
git-svn-id: https://svn.eduke32.com/eduke32@4269 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-27 10:30:25 +00:00
hendricks266 b2a3aec334 audiolib: Introduce support for PlayStation CD-XA audio, a simple ADPCM format.
It's functional, but due to the odd 37.8 KHz nature of the format, I will need to add a resampler to the audiolib to prevent the aliasing artifacts that occur at present. I also hear clicks/pops every so often, but I do not know if a resampler would fix these as well or if they are a separate problem.

Note that you cannot directly use the four XA files on the Total Meltdown disc because they each contain eight songs. They would need to be split using a utility I wrote that is outside the scope of this SVN.

git-svn-id: https://svn.eduke32.com/eduke32@4268 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-27 10:30:00 +00:00
hendricks266 fedfcd81e3 MapArt: Fix a harmless C++ warning. (malloc casting, for those interested)
EDuke32 has me so accustomed to straight C... using a template and pass-by-reference makes my day.

git-svn-id: https://svn.eduke32.com/eduke32@4267 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-27 10:29:29 +00:00
helixhorned 3a85134e31 LunaCON: add codegen option -fbad-getactorvar-use-pli for C-CON compatibility.
Also, improve -Wnumber-conversion warning by printing the resulting number.
BUILD_LUNATIC.

git-svn-id: https://svn.eduke32.com/eduke32@4266 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-24 21:39:04 +00:00
helixhorned 8b7cb9e6c9 Mapster32: make wall texture alignment [.]/[,] work with bottom-swapped walls.
In simple cases, it should be added. Combinations of alignment across TROR
boundaries and bottom-swapping will probably not work right.

git-svn-id: https://svn.eduke32.com/eduke32@4265 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-24 21:39:03 +00:00
helixhorned ae299b0e59 Improve determination of when a sprite should be drawn before a masked wall.
Concretely, in the "behind, outside" case, draw the sprite early if any of its
2 or 4 corner points are behind the masked wall, and inside the cone or on the
other outside.

git-svn-id: https://svn.eduke32.com/eduke32@4264 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-24 21:39:02 +00:00
helixhorned 0ab2814f2e jaudiolib: don't attempt audio format auto-detection for less than 12 bytes.
git-svn-id: https://svn.eduke32.com/eduke32@4263 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-24 21:38:59 +00:00
helixhorned b6e9c0b409 Lunatic: document engine.*shadetab() functions. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4262 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-19 20:17:25 +00:00
helixhorned 7ca71203f0 Classic: in debugging builds, add cvar debug_maskdrawmode.
git-svn-id: https://svn.eduke32.com/eduke32@4261 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-19 20:17:14 +00:00
helixhorned 14db86ebb5 Lunatic: make gv.current{Level,Episode} one-based and document them.
Also, in LunaCON, make player .palette member read-only. BUILD_LUNATIC.

git-svn-id: https://svn.eduke32.com/eduke32@4260 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-15 20:29:10 +00:00
helixhorned b79ee42553 Per-map ART tiles: don't back up or restore reserved tiles.
This prevents a crash and maybe other badnesses when e.g. loading a map
with ART tiles, doing something that allocates a reserved tile (such as
looking into a viewscreen), then loading another map where the tilesiz*
of TILE_VIEWSCR is restored to 0.

git-svn-id: https://svn.eduke32.com/eduke32@4259 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-15 20:29:09 +00:00
helixhorned 63464e3693 ivfrate: fix one error message, make -h/--help display usage.
Actually, right now, any first arg starting with '-' will show the usage.

git-svn-id: https://svn.eduke32.com/eduke32@4258 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-15 20:29:06 +00:00
helixhorned 4881a13f99 Engine-side per-map ART file support.
When a map named <filename>.map is loaded (<filename> may also contain directory
separators), the engine checks for existence of <filename>_XX.art in the virtual
file system, where XX is a 0-padded number from 00 to 19. It loads a consecutive
sequence of these ART files, i.e. aborts whenever a number in the sequence isn't
found (in contrast to normal ART loading).

Restrictions:
 - the per-map ART files must not reside in ZIP files
 - if a tile number is attempted to be overridden that has a dummytile or is
   cache1d-locked, per-map ART loading fails
On failure, the map is still loaded, but a diagnostic message is output to the
log/OSD.

Loaded per-map ART data are cleared whenever the map is "left". In particular:
 - whenever another map is loaded
 - in the editor: when a new map is started
 - in the game: after the bonus ending screen of a finished level, after going
   to the title screen via the menu

A final note: file names are supposed to be looked up and compared
case-sensitively. That is, <filename> must match EXACTLY between the map's and
per-map ART one; 'art' must be lowercase. Otherwise, the cookie monster will
come and eat you!

BUILD_LUNATIC.

git-svn-id: https://svn.eduke32.com/eduke32@4257 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-12 14:54:36 +00:00
helixhorned 8d47e476c7 LunaCON: for readgamevar, if ud.config.scripthandle < 0, keep value, don't err.
git-svn-id: https://svn.eduke32.com/eduke32@4256 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-12 14:54:34 +00:00
helixhorned 3b1515e51b Stylistic/formatting tweaks in cache1d code.
git-svn-id: https://svn.eduke32.com/eduke32@4255 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-12 14:54:33 +00:00
hendricks266 d452fd7891 Fix the startup window freeze under SDL2+Windows when a Yes/No box was supposed to be displayed.
git-svn-id: https://svn.eduke32.com/eduke32@4254 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-12 14:06:15 +00:00
hendricks266 3e0ad77b5e SDL2: Reintroduce SDL_Renderer for the classic renderer so that the Steam Overlay can function with it.
git-svn-id: https://svn.eduke32.com/eduke32@4253 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-12 14:05:56 +00:00
hendricks266 f046a405e6 Fix a case where the bonus screen would immediately end with an input press because all code between iterations of the bonus screen would execute in less than 1/120th of a second, not leaving any time for totalclock to increment.
EDuke32. Where our code runs so fast, it breaks old code.

git-svn-id: https://svn.eduke32.com/eduke32@4252 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-12 14:05:39 +00:00
hendricks266 cf16225f5e Fix the display of the multiplayer results screen.
git-svn-id: https://svn.eduke32.com/eduke32@4251 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-12 14:05:23 +00:00
hendricks266 e263d0ada9 Run Net_SendClientInfo() after game state creation to properly set up the player's user_name.
git-svn-id: https://svn.eduke32.com/eduke32@4250 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-12 14:05:07 +00:00
hendricks266 3ed90ca4f2 Block off hacks for the primitive splitscreen CON mod with SPLITSCREEN_MOD_HACKS so they are no longer compiled.
These hacks could no longer be allowed to co-opt the fake multiplayer mode, used for local testing and mod development.

I have half a mind to remove the hacks outright because they could be likened to drilling bolts directly into your car engine just so you could mount a bowling ball as a hood ornament. However, I don't want to take away the splitscreen hack mod from anyone who uses it, and the work done on these hacks should be useful if proper splitscreen were implemented internally using per-player input and multiple renderer/audio passes.

git-svn-id: https://svn.eduke32.com/eduke32@4249 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-12 14:04:51 +00:00
hendricks266 db2f532eca Novelty: Add Ken's "todo list from the Build days" alongside his other documentation.
git-svn-id: https://svn.eduke32.com/eduke32@4248 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-12 14:04:19 +00:00
hendricks266 3b1b5bb41d For DISABLEINLINING=1, apply __fastcall to make up for the lack of inlining.
git-svn-id: https://svn.eduke32.com/eduke32@4247 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-12 14:04:02 +00:00
hendricks266 90f4e7d7c8 Always run tsprites with statnum TSPR_TEMP though EVENT_ANIMATESPRITES, such as the "show opponent's weapon" in multiplayer.
git-svn-id: https://svn.eduke32.com/eduke32@4246 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-12 14:03:37 +00:00
hendricks266 9a87e25d61 SDK/Samples: Add "startpos.m32", a helper script for spawn points.
You can:
-Cycle your position through all DM or coop spawn points.
-Jump to the primary spawn point.
-Dump full spawn point information to the log file.

git-svn-id: https://svn.eduke32.com/eduke32@4245 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-12 14:03:21 +00:00
hendricks266 8fa00afb7c Mapster32: Add EVENT_LOADMAP, EVENT_SAVEMAP, EVENT_PRELOADMAP, and EVENT_PRESAVEMAP.
Some are more useful than others.

git-svn-id: https://svn.eduke32.com/eduke32@4244 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-12 14:03:00 +00:00
hendricks266 1014af812f Allow the episode 4 cutscenes to be skipped in their entirety with one keypress, as in the original DOS game, instead of requiring input for each ANM file.
git-svn-id: https://svn.eduke32.com/eduke32@4243 1a8010ca-5511-0410-912e-c29ae57300e0
2014-01-12 14:02:30 +00:00