Subversion Repositories eduke32

Rev

Show changed files | Directory listing | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
4987 2356d 8h terminx /polymer/eduke32/ 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 2356d 8h terminx /polymer/eduke32/ Minor sound cleanup... clean up crappy old code, remove obsolete "FXDevice" and "MusicDevice" variables, etc.  
4985 2356d 8h terminx /polymer/eduke32/ Rename build configurations in VS project. DONT_BUILD.  
4984 2356d 8h terminx /polymer/eduke32/ Minor engine cleanup  
4983 2356d 8h terminx /polymer/eduke32/ Fix program entry point on win32, allows debugging SDL builds under MSVC.  
4982 2356d 8h terminx /polymer/eduke32/ Macro for handling ud.bgstretch. DONT_BUILD.  
4981 2356d 8h terminx /polymer/eduke32/ More twalltype  
4980 2356d 18h helixhorned /polymer/eduke32/ mdsprite.c: in md3load(), allocate m->head.surfs with Xcalloc, amending r4952.

And preventing enormous corruption due to a free() called on a garbage (malloc'd)
pointer values this time. DO_BUILD_VERY_FAST_PLEASE!
 
4979 2356d 20h helixhorned /polymer/eduke32/ Makefile.common: disallow building Lunatic with C++ for now. DONT_BUILD.  
4978 2358d 8h hendricks266 /polymer/eduke32/ Provide a RETURN value of -2 to EVENT_DISPLAYLOADINGSCREEN after G_CacheMapData().  
4977 2358d 8h hendricks266 /polymer/eduke32/ CON: Add undefinevolume, undefineskill, and undefinelevel.  
4976 2358d 8h hendricks266 /polymer/eduke32/ Rename "Polymost.f" string back to "Polymost" because it only confused users.  
4975 2358d 19h helixhorned /polymer/eduke32/ gameexec.c: in VM_Move(), update actor[].{floor,ceiling}z for enemies.

Previously, that was the case only with DRONE and COMMANDER. This makes
non-falling enemies pass properly through TROR bunches.
 
4974 2358d 19h helixhorned /polymer/eduke32/ actors.c: style-cleanup A_MoveSpriteClipdist(). DONT_BUILD.  
4973 2358d 19h helixhorned /polymer/eduke32/ Mapster32: in build.c, prevent oob of wall[] if joining non-adjacent sectors.

Also, some minor stylistic cleanup.
 
4972 2358d 19h helixhorned /polymer/eduke32/ 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.
 
4971 2359d 5h hendricks266 /polymer/eduke32/ Engine: Remove some conditional disabling of spriteext features when !defined USE_OPENGL.  
4970 2359d 5h hendricks266 /polymer/eduke32/ CON: Add read-only access to ud.config.MusicToggle through the "musictoggle" member.  
4969 2359d 5h hendricks266 /polymer/eduke32/ CON: Add STR_YOURTIME, STR_PARTIME, STR_DESIGNERTIME, and STR_BESTTIME to qgetsysstr.  
4968 2359d 5h hendricks266 /polymer/eduke32/ Factor out generation of strings for time values in the bonus screen. This involves the creation of ud.playerbest.  
4967 2359d 5h hendricks266 /polymer/eduke32/ Correct the special behavior to select the pipebomb detonator when you have no pipebombs in your inventory but you have some thrown in the environment so that it animates properly and also applies with the next/previous weapon functions.  
4966 2359d 5h hendricks266 /polymer/eduke32/ Move EVENT_DISPLAYMENU to after the black translucent background is drawn when in-game.  
4965 2359d 20h helixhorned /polymer/eduke32/ 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.
 
4964 2359d 20h helixhorned /polymer/eduke32/ sdlayer.c: minor stylistic simplification of sdlayer_checkversion(). DONT_BUILD.  
4963 2359d 20h helixhorned /polymer/eduke32/ osd.c: in OSD_HandleChar() for TAB, fix use of uninitialized osd->editor.buf[i].

Exposed by Valgrind. DONT_BUILD.
 
4962 2359d 20h helixhorned /polymer/eduke32/ LunaCON: make -fbad-getactorvar-use-pli enabled by default. DONT_BUILD.  
4961 2359d 20h helixhorned /polymer/eduke32/ Make g_player a +1 offset pointer into 'static g_player_s[1 + MAXPLAYER]'.

This fixes the out-of-bounds read of former g_player[] in VM_EventCommon_().
 
4960 2359d 20h helixhorned /polymer/eduke32/ Classic: on desktops, handle abs. z diff. of floor/ceiling to camera >= 1<<24.  
4959 2359d 20h helixhorned /polymer/eduke32/ engine.c: style-cleanup owallmost() and wallmost(). DONT_BUILD.  
4958 2361d 20h helixhorned /polymer/eduke32/ In DEBUGANYWAY=2/DEBUG_MAIN_ARRAYS build, declare tsprite[] as tspritetype.

Fixing a bunch of warnings. DONT_BUILD.
 
4957 2361d 21h helixhorned /polymer/eduke32/ Lunatic: fix typos in control.lua (get/setmusicposition).  
4956 2361d 21h helixhorned /polymer/eduke32/ 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.
 
4955 2361d 21h helixhorned /polymer/eduke32/ Actor ST1 handling: use A_GetWaterZOffset() with VM_Move(), too. DONT_BUILD.

This is where things are changed at last. This fixes lizmen walking on water.
 
4954 2361d 21h helixhorned /polymer/eduke32/ Actor ST1 handling: cleanup part 2. DONT_BUILD.

Factor out condition for whether a z offset is added or not
("fix for flying/jumping monsters getting stuck in water", etc.) into
a function A_GetWaterZOffset() (and a helper A_GetVerticalVel()).
 
4953 2361d 21h helixhorned /polymer/eduke32/ Actor ST1 handling: clean up code a bit. (Preparation for real changes.)

In VM_Fall(), keep a temp preliminary new z position of the actor and
assign only when we return. This is to each ease watching its value in GDB.
DONT_BUILD.
 
4952 2361d 21h helixhorned /polymer/eduke32/ mdsprite.c: in md3free(), also free s->geometry for each surface. DONT_BUILD.

This prevents a enormous leak being reported by LeakSanitizer. Not that it
matters much, since we most frequently free models only at exit. (Sometimes one
may be freed earlier though -- if there was an error loading it, AFAICS.)
 
4951 2362d 16h helixhorned /polymer/eduke32/ menus.c: fix C build. DONT_BUILD.  
4950 2373d 1h hendricks266 /polymer/eduke32/ Fix next/previous weapon when the pipebomb detonator is active.  
4949 2373d 1h hendricks266 /polymer/eduke32/ Don't allow Ogg Vorbis or FLAC files to be defined from def if the binary was built without the proper libraries.  
4948 2373d 1h hendricks266 /polymer/eduke32/ Modularize .mid --> .ogg --> .flac code to apply to sounds as well, and various cleanup in music/sound filename-handling code.