HFB game experiment and BB framework updated:
- BB
- TSpriteEngine, fixed some minor Z issues
- New TSpriteEngine.SpritesAt() that returns the list of all sprites inside a rectangle
- New ISurface.GetRectangle()
- New ILayer.GetSurfaceAt()
- TSpriteEngine.Render() improved (list removed)
- TAnimationSprite now updates the current sprite before testing collision.
- TAnimationSprite.AnimationName now accepts an empty string (meaning that no animation is set)
- gsPause removed from TGame state, now it is a variable
- Fixed some bugs in the collision system
- New ISprite.SetOnDie()
- TSoundFactory now stores as cache IBuffer (not TSound)
- TQueue<T> improved
- TPolygons removed (didn't make sense)
- Remove all TSprite method related to pointers for surface access since all of them can be done via GetSurface
- TSuperSprite removed (never used/tested)
- TInterfacedObjectEx = TObjectEx
- Surface cache is now searched per index rather than hash
- Buffers are finally sorted properly and selected automatically via hash (property SortBuffers, False by default)
- Surface cache in sprite engine improved
- TPolygonEx.GetHash() improved
- New TPolygonEx.HasAlpha() (used for polygon hash so now we only have 0 or 1, not 0..255)
- Render buffers now clean better the D3D stages
- Some primitives were not filling properly the Z render buffer
- Many memory leaks removed!, TAnimation,,TSpriteEngine ,TSpritePool ,TLayer ,TDummySprite ,TCollision ,TSurface2Poly ,TSurface ,TPolygons ,TLogHandler ,TSingleton ,TRenderBuffer ,TSoundFactory ,TEvents , TObjectPool, TConcurrentDictionary, TEvents
- HBF
- All game sprites are inherited from TElement
- New platform that can rotate around an axis
- THero slope code refactored
- New sprite var SLOPE
- TGameSprite.IsDieAttribute() that accepts a cell
- New prizes "Time", "Kill Them All" and "Immunity" (bitmaps, units and classes)
- TGameSprite CreateItemAt() renamed to ConvertTile2Item()
- When hero dies on top of a moving ball, the ball stops
- THero.IsCollisionBottom() code cleaned
- New element Rainbow (a bit silly just testing)
- New enemy Titan
- Hero now frees the samples (memory leak)
- Some new samples (New metal sound, Titan uses it)
- Some new music
- Removed some unused units
- Improved TSoundDispatcher, now all sounds are played via this class
- Pause now pauses all playing sounds
- Lava and water are not longer treated as solid so some enemies can move inside, like Titan
- New SpriteFactory (file and class) (all sprite creation move to TSpriteFactory)
- Pixel shader used then pausing enemies via pickup
- Hero cannot pickup coins when dying
- Background does not longer move
- Background is now freed (memory leak)
- SpriteEngineLayer2 is now freed (memory leak)
- TSpriteFactory is now freed (memory leak)
- Fixed a double free class with rotating platforms
- New classesTNonGravityElement and TNonGravityEnemy, some enemies and elements inherit from them.
- New enemy Chandelier
- All sprites now behave like hero (they interact with the environment since many functions were moved from THero to TGameSprite)
- Ray more realistic (...)
- Blob side collisions improved
- Bomb side collisions improved
- Titan side collisions improved
- All tiles can now be "moving tapes" (before they were sprites)
- When starting and finishing a level a fading effect is used