This was caused by early deletion of entities.
If new ones were spawned upon further editing of a map, it could re-use
entity IDs and cause both new and old entities to be spawned in the position
of the new entity (due to EntitySaveData of the old one still intact).
This is now prevented by not touching the ID range of map entities.
Should probably make an offline tool to recompress entity IDs...
- correctly sort ElementTemplate by idx, not by pointer. oops.
- selecting tiles works again (new: including wraparound)
- don't display layer tile borders when switching to other edit modes
- make sure that tile selection wraparound doesn't pick up font letter tiles
+ entity_exertHairSegmentForce
+ entity_setHairTextureFlip
+ entity_setHairWidth
Sadly obj_fh() doesn't work on hairs for some reason and it just turns invisible
this should now be correct and much simpler to maintain from now on.
downside is that it breaks the appearance of quads with tex repeat on,
but i don't think anyone ever used this ever since i've added the Lua functions;
so i'm just calling it broken in older versions and move on.
- Always handle entity death ie. do pointer cleanup
- Call Lua entityDied() only when EV_ENTITYDIED is set
- EV_ENTITYDIED is now meaningless for non-scripted entities
- fully uses RenderGrid now, no more immediate mode
- remove RippleEffect because it was unused
- Don't render the grid if no effects are active. Sames some GPU time.
- Fix ShockEffect math, broken 2 commits ago
- Tile effects are loaded on continuity reset, which clears ALL tiles.
This is bad and needs further fixing.
- Continuity reset happens in other ways, too
- So effectively a bunch of text files were loaded twice
- Very slight improvement to startup time
- Should probably remove the Lua function...?
- Don't warp mouse on title screen (less intrusive)