Friday, March 25, 2016

Particles everywhere...

Since 2d particles engine is now fast enough then I was happy playing around, the outcome is that  some parts now are based on particles.

Found binaries at OneDrive

HBF)
  • New element Dust that can be propagated in Sphere and Cube
  • Dust is not rendered when parent is not painted
  • Starfield is not rendered when parent is not painted
  • Smoke in Ventilator looks better
  • Crepuscule, Candle, Lamp and Focus gets dust
  • Some more animations in background tiles (ice levels)
  • Teleports got some particles
  • When hero was entering a teleport and gravity was changed hero was not behaving properly
  • Now platforms might attach a FireWheel
  • if bird was locked by a web it was still using the bezier path
  • EffectDispatcher is less memory hunter
  • Waterfall is done now with particles
  • Snow is done with particles
  • New ice explosion with particles
  • Now rain is also done with particles
  • New magma particles effect (used in Lava Love)
  • Some map changes
  • Mirror was static..., cannot be otherwise laser would not bounce
  • Eye code improved a bit
  • Hero does no longer set the game state to gameover, that might caused AV!
  • New element Cortain
  • New bar for Gatashi live
  • New bar for oxygen
  • Gatashi disintegrates when dying
  • Horus makes sparks
  • Rain now uses wind
  • Fixed a weird glitch were hero could jump when graviting
  • HUD shows coins left in different way
  • The static class SpriteAttribute was not freed
  • The cloud sprite from menu was not freed

BB)
  • Fixed memory leak when surfaces were not cached
  • TParticle2D improved
  • TSurface.Noise() improved
  • Screen buffers aging code improved
  • Configuration .ini files can have any published property from sprites
  • New TObjectHelper.SetProperty(name, value)
  • Particles now use a linked list + dictionary, for insert + delete + iterate fits better than a simple list
  • Dictionary from Pool<T> removed, it was not really needed (consumer has to return used objects before clearing the pool)
  • New TLinkedList.DeleteCurrent()
  • Particle2d has more properties
  • Particles internally use now a Pool<T>
  • TPool<T> now internally uses a Linkedlist rather than two simple lists
  • Particle engine improved
  • New Events.AddTimer()
  • New sprite.GetAngleFromDir()
  • Minor cleaning in sprites
  • 2d particles improved
  • TSurface minor improvements
  • Shadow surface was not freed when parent surface was not Cached
  • The polygon created when rendering water was not freed
  • The polygons in TScene3d were not freed properly
  • New TSimpleLinkedList<T>
  • Collisions are now based on CRC and not artificial key