Commit graph

36 commits

Author SHA1 Message Date
Christoph Oelckers
30c47a8511 - include namespace file in all sources as the very first include. 2019-09-21 20:59:54 +02:00
pogokeen
222e593437 Change some clocks to support sub-tick precision using a new class, ClockTicks.
Using that higher precision, interpolate at a higher granularity.
Further, truncate the target interpolation time to vertical blank boundaries to avoid producing temporal artifacts.
Fix issues caused by interpolation calculations being handled differently in multiple places (and fix cases where smoothratios were being thrown away only to be redone without checking all proper conditions).
Ensure ClockTicks changes do not break other targets (EKenBuild, VoidSW), but note any interpolation there is not similarly updated.

git-svn-id: https://svn.eduke32.com/eduke32@8050 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
#	source/build/src/sdlayer.cpp
2019-09-20 21:09:14 +02:00
hendricks266
29d4a7e634 Add I_GeneralTrigger as a combination of Advance and Return and use it for skipping screens so that Esc works.
git-svn-id: https://svn.eduke32.com/eduke32@7894 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:44:03 +02:00
terminx
db85a55dfd Use I_AdvanceTrigger() instead of I_CheckAllInput() for the skip condition in Anim_Play()
git-svn-id: https://svn.eduke32.com/eduke32@7877 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:11 +02:00
terminx
9c5db5aac0 Sanitize walock[] usage
git-svn-id: https://svn.eduke32.com/eduke32@7875 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:33:07 +02:00
terminx
ccdba037b5 Added Xfree() function to accompany the Xmalloc() family of functions and change all uses of Bfree() to Xfree()
This was necessary because everything is already allocated with the Xmalloc() functions, but a future commit will make blocks allocated with those functions no longer compatible with the system implementation of free(), which Bfree() wraps.

git-svn-id: https://svn.eduke32.com/eduke32@7705 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
#	source/build/src/mdsprite.cpp
#	source/build/src/polymer.cpp
#	source/build/src/polymost.cpp
#	source/build/src/texcache.cpp
#	source/build/src/voxmodel.cpp
2019-09-20 12:07:10 +02:00
terminx
b0a4b6a1ee Convert loops using unsigned integers as iterators to use regular signed ints instead
https://kristerw.blogspot.com/2016/02/how-undefined-signed-overflow-enables.html

Doing this as cleanly as possible involved demoting several function parameters concerning object sizes and counts from size_t to int--I'm fine with this change as the functions in question are not actually capable of handling input with sizes larger than what can be stored in a signed 32-bit integer, making the use of size_t here misleading at best.

git-svn-id: https://svn.eduke32.com/eduke32@7673 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
#	source/build/src/texcache.cpp
#	source/build/src/tilepacker.cpp
2019-09-20 10:04:24 +02:00
hendricks266
7414f29348 Add buildvfs, abstraction layer for file I/O.
Currently it passes calls through to the system libraries as before.

Also adds an incomplete implementation on PhysFS.

git-svn-id: https://svn.eduke32.com/eduke32@7359 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-01 08:51:50 +00:00
pogokeen
58132c2353 anim.cpp: timerUpdate() before setting the start time of the animation so that delays outside of animation playback won't cause animations to skip
git-svn-id: https://svn.eduke32.com/eduke32@6917 1a8010ca-5511-0410-912e-c29ae57300e0
2018-06-12 20:28:02 +00:00
terminx
19c43b84b3 Function names
git-svn-id: https://svn.eduke32.com/eduke32@6831 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:03:47 +00:00
terminx
e5bcc1cf81 More function name cleanup
git-svn-id: https://svn.eduke32.com/eduke32@6830 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:03:30 +00:00
terminx
1fd209444f Continuing the quest for clearer function names
git-svn-id: https://svn.eduke32.com/eduke32@6829 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:03:12 +00:00
terminx
0340e3cc0f Engine function name cleanup round 2
git-svn-id: https://svn.eduke32.com/eduke32@6828 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:02:51 +00:00
hendricks266
1031f2dec0 Make cutscene "aspect" def token work with ANMs too.
Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6586 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-26 04:34:46 +00:00
pogokeen
741305e976 Fix a number of cases where files opened with cache1d.cpp's kopen_internal() could be leaked.
git-svn-id: https://svn.eduke32.com/eduke32@6570 1a8010ca-5511-0410-912e-c29ae57300e0
2017-12-18 23:36:05 +00:00
hendricks266
084c661fa0 New def tokens for "cutscene": "texturefilter", "forcefilter", "forcenofilter"
Changes the filtering for cutscenes. By default, ANMs are unfiltered and IVFs filtered regardless of the filtering option in the menu. Use “texturefilter” to use the same filtering as textures, “forcenofilter” to never use filtering and “forcefilter” to always use filtering.

cutscene <path> { texturefilter }

Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6552 1a8010ca-5511-0410-912e-c29ae57300e0
2017-12-12 05:13:38 +00:00
hendricks266
45a8742e42 New def token for "cutscene": "aspect"
Overrides the aspect ratio for IVF files.

cutscene <path> { aspect <numerator> <denominator> }

Note: For ANMs, you can use rotatesprite and setaspect to draw TILE_ANIM (currently defined as 30716) in EVENT_CUTSCENE with a custom aspect.

Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6551 1a8010ca-5511-0410-912e-c29ae57300e0
2017-12-12 05:13:32 +00:00
terminx
de5f16b1c5 Fix events added in recent commits
git-svn-id: https://svn.eduke32.com/eduke32@6537 1a8010ca-5511-0410-912e-c29ae57300e0
2017-12-02 09:24:55 +00:00
hendricks266
50f7f6cda4 Pause the game when playing IVF files with startcutscene.
Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6511 1a8010ca-5511-0410-912e-c29ae57300e0
2017-11-29 07:29:20 +00:00
hendricks266
a72295f7f1 Fix flickering in IVF files.
Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6510 1a8010ca-5511-0410-912e-c29ae57300e0
2017-11-29 07:29:17 +00:00
hendricks266
dbd8b72d10 CON: Add EVENT_SKIPCUTSCENE.
Used with startcutscene. RETURN is set to 1 when any key is pressed, and is used to control when a cutscene ends.

Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6507 1a8010ca-5511-0410-912e-c29ae57300e0
2017-11-29 07:29:07 +00:00
hendricks266
1377afe414 CON: Add EVENT_PRECUTSCENE.
Used with startcutscene. RETURN sets the frame of an ANM before it is rendered.

Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6506 1a8010ca-5511-0410-912e-c29ae57300e0
2017-11-29 07:29:04 +00:00
hendricks266
a89ad84f4d CON: Run EVENT_CUTSCENE during IVFs as well.
Changing the frame of an IVF file is unsupported, so its only purpose is to play sounds.

Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6505 1a8010ca-5511-0410-912e-c29ae57300e0
2017-11-29 07:29:01 +00:00
hendricks266
7e914f838a Avoid an unused variable warning with EDUKE32_STANDALONE.
git-svn-id: https://svn.eduke32.com/eduke32@6462 1a8010ca-5511-0410-912e-c29ae57300e0
2017-10-09 07:36:40 +00:00
hendricks266
6bbfbb5e1d Fix crash when attempting to play an IVF video in 8-bit.
git-svn-id: https://svn.eduke32.com/eduke32@6290 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-27 01:50:59 +00:00
hendricks266
6487dc0db6 Fix standalone warnings.
git-svn-id: https://svn.eduke32.com/eduke32@6288 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-27 01:50:48 +00:00
hendricks266
10d478eba8 When playing an IVF upgraded from an ANM and no sound list has been defined for the IVF, use the ANM's sound list by converting framerates.
git-svn-id: https://svn.eduke32.com/eduke32@6287 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-25 11:24:43 +00:00
hendricks266
35b3cea5a6 If an ANM is upgraded to an IVF, use the sounds defined for the .ivf if any have been.
git-svn-id: https://svn.eduke32.com/eduke32@6286 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-25 11:24:39 +00:00
hendricks266
d57234e668 Replace sound_func function pointer parameter and associate functions for hardcoded ANMs with equivalent animsounds arrays.
git-svn-id: https://svn.eduke32.com/eduke32@6285 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-25 11:24:34 +00:00
hendricks266
5f8c99c3a1 Let animsound value -1 stop all sounds.
git-svn-id: https://svn.eduke32.com/eduke32@6284 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-25 11:24:27 +00:00
hendricks266
4db07ee9af Structify animsounds arrays.
git-svn-id: https://svn.eduke32.com/eduke32@6282 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-25 11:24:19 +00:00
hendricks266
6b880ccb06 Structify the hardcoded Anim_Setup calls.
git-svn-id: https://svn.eduke32.com/eduke32@6281 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-25 11:24:14 +00:00
hendricks266
aebd4c53c4 Game defs: Split Anim_Create out of Anim_Setup and use it for the cutscene token.
git-svn-id: https://svn.eduke32.com/eduke32@6280 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-25 11:24:10 +00:00
hendricks266
7226eb346d Don't stutter for 1/12 second before starting an ANM.
git-svn-id: https://svn.eduke32.com/eduke32@6279 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-25 11:24:06 +00:00
terminx
504b04067b Remove some Duke-specific screen displays from standalone builds
git-svn-id: https://svn.eduke32.com/eduke32@6271 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-24 21:18:06 +00:00
hendricks266
1cc9d13ccf The great repository rearrangement of 2017.
Files moved but not modified. Changes to follow in a subsequent commit.

You down with CPP?

git-svn-id: https://svn.eduke32.com/eduke32@6055 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-01 10:01:11 +00:00
Renamed from polymer/eduke32/source/anim.c (Browse further)