Ottobre 2016
Gennaio 2016
-
Add getpv and setpv as short forms for get/setplayervar, and #include as an alternate for include.
-
Add ifvarge, ifvarle, and ifvarboth in line with ifvarvarge, ifvarvarle, and ifvarvarboth.
-
Fix the return command within events, broken since r5097.
-
Fix VM_ScriptInfo so that it never reads before the beginning of the bytecode.
Settembre 2015
Maggio 2015
Marzo 2015
-
Add two new structs, tiledata and paldata, accessible only through quick-access.
-
Add checks to prevent invalid reads/writes when using get/setprojectile on a tile number that does not have a projectile defined for it.
-
Really fix get/setprojectile.
-
Fix a mistake in r5086 that broke get/setprojectile.
-
Add read-only player structure member "hudpal", that returns the result of P_GetHudPal().
-
Redefine "break" within events to mean "skip the remainder of this event block", not "skip the remainder of execution of this event, through all chained blocks". The latter behavior is still available through the "return" keyword.
-
Fix processing the bytecode in an incorrect order when executing setplayer on a member with a second parameter, a missed instance of a consideration from r5086.
-
Remove the restriction that prevents userdef access when the current player is not myconnectindex.
-
Implement tilesizx/y gamearrays in a fashion similar to M32Script's solution: a STRIDE2 flag.
-
Modify the parsing of definevolumename and defineskillname so that they only look for the text before a newline.
Mostra dettagli
// valid definevolumename 3 <text> // invalid definevolumename 3 <text>
-
Add quick access for the remaining structures without it.
-
Enumify quick structure access.
-
Factor fast struct access and get<struct> out into single functions.
-
Add PLAYER_PALETTE to quick player struct access, and add a setter that calls P_SetGamePalette().
-
Add read-only userdef members "gametypeflags" and "m_gametypeflags", which return GametypeFlags[ud.coop] and GametypeFlags[ud.m_coop] respectively.
-
Add read-only userdef members "usevoxels", "usehightile", and "usemodels".
Dicembre 2014
-
fix 'writearraytofile' for 64-bit platforms.
Novembre 2014
-
fix 'readgamearray' and 'resizearray' on Windows.
Mostra dettagli
We must not use Xrealloc(), since gamearrays are now allocated with Xaligned_alloc(). NOTE: I did not check all potential problematic cases, only those to get LNGA3 up and running.
-
fix 'readgamearray' on 64-bit platforms.
Mostra dettagli
Also prettify P_DisplaySpit().
-
fix possible crash when a CON error is raised due to access of invalid sprite.
Mostra dettagli
For example, in CON_ERRPRINTF("invalid target sprite (%d) %d %d\n", iActor, vm.g_i, TrackerCast(vm.g_sp->picnum)); vm.g_i can be -1 and vm.g_sp can be NULL then. (Not anymore.) DONT_BUILD.
Maggio 2014
-
scan label names according to stricter LunaCON rules instead of char blacklist.
Mostra dettagli
These ones: http://lunatic.eduke32.com/lunacon.html#_ambiguous_lexical_elements Seriously, defining a token kind by excluding certain characters (instead of allowing a given set) is really, really broken.
Marzo 2014
-
add safety checks for qgetsysstr/STR_{,MAP,PLAYER,VOLUME}NAME.
Mostra dettagli
Add test/qgetsysstr.con. BUILD_LUNATIC.
Febbraio 2014
-
add *actor[].blend as an alias to .detail, *tspr[].tsprblend analogously.
Mostra dettagli
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.