- Oct 24, 2015
-
-
DarkGod authored
-
Samuel Wegner authored
-
Simon André Curtis authored
-
Samuel Wegner authored
-
Samuel Wegner authored
-
Samuel Wegner authored
1. Since the customizable table cloning function may be useful for other purposes than just making Chronomancy clones, I moved it to engine/class.lua and renamed it cloneCustom(). It works like cloneFull(), but allows specifying a table of keys/values to skip or replace in the clone table. If desired, I could instead just modify cloneFull() to have an optional parameter for the "alt_nodes" table, but I didn't want to mess with it without permission. There could be a conditional statement to pick between two different recursive functions so the optional param doesn't impact performance, if that's a concern. 2. Updated comments for cloneFull() and related functions for clarity. The comment originally said it returns the clone and the number of objects cloned, but it actually only returns the clone. I think the comment may have been copied from somewhere else and not updated. 3. Renamed the "t" param from cloneFull() to "post_copy" to be more descriptive and to be consistent with cloneCustom(). This has no functional impact. 4. Significantly expanded the number of properties which are skipped when making Chronomancy clones of an actor. Hopefully this will improve performance and maybe even help with the memory leak. I didn't see any errors during brief testing, but it probably merits more testing.
-
Simon André Curtis authored
-
Simon André Curtis authored
-
Simon André Curtis authored
-
- Oct 23, 2015
-
-
Samuel Wegner authored
-
Samuel Wegner authored
-
Samuel Wegner authored
Changed Arcane Combat's description generator to use table.concat, to avoid making temporary string objects that need garbage collection.
-
Simon André Curtis authored
Adds more zone-wide effects in. About half of them explain special level mechanics, the rest are just for flavour or some minor gameplay spice.
-
- Oct 22, 2015
-
-
Simon André Curtis authored
-
Simon André Curtis authored
-
Simon André Curtis authored
-
Samuel Wegner authored
I just remembered why I originally designed it this way: We only want to skip if neither 'k' nor 'v' is specified in alt_nodes since we want to allow substituting user-specified values for either.
-
- Oct 21, 2015
-
-
Samuel Wegner authored
-
Samuel Wegner authored
-
Samuel Wegner authored
-
Samuel Wegner authored
Fix 1: Improve cloning function Previously, makeParadoxClone() temporarily cleared the actor's particles and main inventory so that they wouldn't be copied by cloneFull() when making Warden's Call clones. However, this resulted in some players losing their inventory, probably due to some race condition during lag caused by the Warden's Call memory leak. Now, makeParadoxClone() has its own recursive table cloning function with options for skipping specific nodes or assigning them a different value from the source table. This way, we can clone an actor without modifying that actor's table. Fix 2: Create cleanup function for Warden's Call Added a basic cleanup function for Warden's Call clones. Currently, it just makes sure they're dead and replaces references in timed effects with references to the player, so the clones can be freed by the garbage collector. More features will likely be added as I find other causes of the memory leak. NOTE: These changes don't fix the memory leak. It may help a little, but that issue needs more investigation. It's probably worth pushing these changes back to v1.3.X in a minor update to fix the issue with missing player inventory. Completely fixing the memory leak may take a while.
-
- Oct 20, 2015
- Oct 19, 2015
- Oct 18, 2015
- Oct 14, 2015
-
-
DarkGod authored
-
- Oct 13, 2015
-
-
Hachem_Muche authored
-
Hachem_Muche authored
Allows certain simple resolvers to be resolved immediately when encountered (set .__resolve_instant = true). This fixes a problem with some nested resolvers not being resolved completely before other resolvers are processed. (This shows up with steam giant's melee_project.FIRE being incompletely resolved while the equipment resolver is run with gear that modifies this field.)
-
- Oct 12, 2015
- Oct 11, 2015
-
-
DarkGod authored
-
- Oct 10, 2015
-
-
Samuel Wegner authored
Previously, if the "can_see_cache" property is not initialized when Actor.canSee() is called, it will be set to a strong table. This seems bad because this table can hold references to other actors and possibly prevent garbage collection. Actor.resetCanSeeCache() sets "can_see_cache" to a weak table, so I think the same should be done for initializing the property in Actor.canSee(). Now, Actor.canSee() will initialize "can_see_cache" with a weak table if it doesn't already exist. I stumbled across this while investigating the Warden's Call memory leak and found references to the clones in game.player.can_see_cache. Unfortunately, this change doesn't seem to fix that problem.
-
Alex Ksandra authored
-
- Oct 09, 2015
-
-
DarkGod authored
-
Grayswandir authored
-
- Oct 08, 2015