Build 5337
SVN-
amend action's viewtype -8 to be more in line with the others.
Nickname SVN e nomi Git sono unificati per persona.
amend action's viewtype -8 to be more in line with the others.
allow viewtype -8 for 'action', meaning to x-flip the shown sprite.
Similarly to how -5 and -7 and are accepted since r3859.
check EVENT_ENTERLEVEL for nonzero RETURN, run w/ other players then.
Background: AMC TC initializes per-player variables from this event.
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.
always return non-negative values from 'clipmove' and related.
Previously, the C function clipmove() returned negative values when hit a wall (32768+wallnum) or sprite (49152+spritenum) because internally, these values were encoded into a *signed* 16-bit integer. This made no difference to C code using it, since it always proceeded by bit checks, but was inconsistent with documentation on CON 'clipmove' on the wiki. The following commands are affected too, since they use the value returned by clipmove(): 'clipmovenoslide', 'movesprite'. Also, the value of actor[].movflag ('htmovflag' from CON). Also, fix 'clipmove*' in LunaCON and add lunatic/test/checknearwall.con as an example of how to implement a being-close-to-a-wall checker as requested in http://forums.duke4.net/topic/7869-determining-closeness-to-a-wall/
allow passing more than one flag to the 'spriteflags' directive.
These will be bitwise-OR'd.
add getactor[]/sprite[] member 'movflags'.
This is exactly the same as the actor[].movflags member in the Lunatic build: http://lunatic.eduke32.com/lunatic.html#actor
in rotatespritea and screentext, if alpha < 0, make -alpha denote blend.
For convenience, orientation gets bit 1 (translucency) set automatically. Again, test/screentext.con is updated to show off this functionality (the code there assumes that additive blending tables are loaded at blend numbers 101 -- 132). BUILD_LUNATIC.
Add LOGO_FLAGS bits 4096-32768 to disable E1-E4 bonus scenes, respectively.
Each scene is disabled in its entirety, there's no way to disable only a particular part. DONT_BUILD.
Add predefined labels MAXSPRITES, MAXSTATUS and MAX_WEAPONS.
New command 'screensound', unconditionally playing a session-wide sound.
add projectile member .userdata and predefined label PROJ_USERDATA.
It is a 32-bit signed integer. No version bump necessary, although CON code accessing this new member will not work with earlier revisions (obviously).
Fix accessing gamearrays on 64-bit archs.
From the PM conversation "gamearrays in 64-bit". A test case is the breaking glass at the beginning of the DukePlus map.
don't accept read-only vars for first arg of qstrlen.
proper bound checks for {re,}definequote commands.
make lotag/hitag getters return signed values, as per agreement on IRC.
This means that the internal change done to these sprite members in r3159 is hidden from CON for backward-compatibility purposes. Note that .cstat and .{ceiling,floor}stat aren't touched, and will return unsigned values to CON.
in showview*, use new aspect determination if r_usenewaspect is 1.
in fake multi-mode, play 'globalsound' even if player index isn't screenpeek.
This makes sounds like DUKE_GET (item pickup) be heard for the second player in the splitscreen mod, too.
factor out addammo/addweapon{,var} common code, harden addweaponvar...
... against invalid weapon indices and arguments accessed from arrays/structs.
warn on out-of-range hex literals and ignored redefines with different values
make the 'palette' player member actually return the player's palette ID
instead of -1. Setting is still only through 'setgamepalette'.