Subversion Repositories eduke32

Rev

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

Filtering Options

Rev Age Author Path Log message Diff
4987 2281d 16h terminx /polymer/eduke32/source/game.c Animation system overhaul part 1. This allows for an unlimited number of .anm/.ivf files to be defined via duke3d.def and played back at any time with the new CON commands. Syntax is currently as follows, but may change:

cutscene "somefile.anm" { delay 10 } // defines somefile.anm with a delay of 10 120Hz tics between frames. a more typical framerate method may come later, but this is how the originals worked.

Once defined, they can be played through CON with the new playback command, also called "cutscene". It works like this:

definequote 12345 somefile.anm
define ANIM_SOMEFILE 12345

...

cutscene ANIM_SOMEFILE // halts game execution and immediately plays cutscene, resuming execution when finished

...

Sounds can be played during animations (and tiles can be overlaid, etc) like this:

onevent EVENT_CUTSCENE
ifcutscene ANIM_SOMEFILE
{
ifvare RETURN 12 // frame 12
sound FLY_BY
rotatesprite ...
}
endevent

The value of the RETURN var at the end of EVENT_CUTSCENE determines the next frame to play. This can be used for looping, etc. Attempting to play animations backwards outright is not advised as animations only seek in one direction (so rewinding requires running it through from frame 0 again). This is will WIP and hasn't been heavily tested at all, so please try it out.
 
4986 2281d 16h terminx /polymer/eduke32/source/game.c Minor sound cleanup... clean up crappy old code, remove obsolete "FXDevice" and "MusicDevice" variables, etc.  
4982 2281d 16h terminx /polymer/eduke32/source/game.c Macro for handling ud.bgstretch. DONT_BUILD.  
4972 2284d 3h helixhorned /polymer/eduke32/source/game.c CON: Amend retrieval of STR_*TIME for qgetsysstr, fixing LunaCON and possible oob.

- Add declarations of C functions to defs.ilua, names to dynsymlist,
fix typo in con_lang.lua, ffi.string() calls in control.lua
- Assert that G_LastMapInfoIndex() is always called with ud.last_level >= 1.
(A stricter requirement than necessary to prevent follow-up oob accesses, but
logically the most meaningful.)
- In G_PrintParTime() and G_PrintDesignerTime(), return "<invalid>" if the above
does not hold. This can happen from EVENT_NEWGAME, for example. Add a test to
lunatic/test/qgetsysstr.con. DONT_BUILD.
 
4968 2284d 14h hendricks266 /polymer/eduke32/source/game.c Factor out generation of strings for time values in the bonus screen. This involves the creation of ud.playerbest.  
4965 2285d 4h helixhorned /polymer/eduke32/source/game.c Classic: fix underallocation of TILE_TILT and tilting at very small resolutions.

Since TILE_TILT is only allocated once, it must be done with the maximum
possible size.
 
4956 2287d 5h helixhorned /polymer/eduke32/source/game.c Add SFLAG_NOWATERDIP, unconditionally preventing actors from dipping into ST1 water.

By default, the following enemies have this flag set: OCTABRAIN, COMMANDER, DRONE.
DONT_BUILD.
 
4949 2298d 9h hendricks266 /polymer/eduke32/source/game.c Don't allow Ogg Vorbis or FLAC files to be defined from def if the binary was built without the proper libraries.  
4948 2298d 9h hendricks266 /polymer/eduke32/source/game.c Modularize .mid --> .ogg --> .flac code to apply to sounds as well, and various cleanup in music/sound filename-handling code.  
4935 2304d 22h helixhorned /polymer/eduke32/source/game.c Classic: fix "windowed" modes (r_size >= 12) by reverting r4920; adapt.

In setview(), we now assert windowx2 < xdim. The only calling places where its
non-violation is non-trivial to ascertain are (1) showview from CON and
(2) draw-to-tile for look-sideways in game.c. AFAICS case 1 should be fine.
Case 2 is adapted; see comments there.
 
4919 2308d 15h terminx /polymer/eduke32/source/game.c Implement better fade-out for quotes and for the mouse cursor in the menu.  
4913 2310d 9h hendricks266 /polymer/eduke32/source/game.c Fix aligned screentext with newlines.  
4898 2312d 17h terminx /polymer/eduke32/source/game.c Revise C++ structure trackers for performance and introduce "tspritetype", for temporary sprites or other usages where using the trackers would be invalid or undesired. DONT_BUILD.  
4879 2318d 0h helixhorned /polymer/eduke32/source/game.c game.c: revert changes of r4861 ("consult g_mirrorCount instead of gotpic[]").  
4875 2319d 3h helixhorned /polymer/eduke32/source/game.c Cleanup of various engine functions.

- factor out calculation of player-relative and screen+clipped-player-relative
coordinates into get_rel_coords() and get_screen_coords(), respectively
- the usual beautification stuff, especially since we're now on C99
 
4863 2326d 1h helixhorned /polymer/eduke32/source/game.c actors.c: replace hard-coded list with missing check for SFLAG_NODAMAGEPUSH.

In A_RadiusDamage(). The code snippet that is disabled for such actors
increases the damaged actor's .xvel by (4 times the) damage amount and
is responsible for the strange effect of enemies becoming faster TOWARDS
the player on being hit with an RPG frontally.

Thanks to Fox for a keen eye.
 
4861 2326d 6h helixhorned /polymer/eduke32/source/game.c In G_HandleMirror(), consult g_mirrorCount instead of gotpic[] w/ MIRROR.

DONT_BUILD.
 
4856 2327d 3h hendricks266 /polymer/eduke32/source/game.c Menus: Implement mouse/touch/pointer controls for all widgets.  
4853 2327d 3h hendricks266 /polymer/eduke32/source/game.c Add the necessary plumbing to sdlayer to detect mousedown, mouseup, and dragging.  
4852 2327d 3h hendricks266 /polymer/eduke32/source/game.c Introduce preprocessor token EDUKE32_TOUCH_DEVICES that covers both Android and iOS, and replace selected instances of __ANDROID__ with it.  

Show All