I've been lazy lately, but that has to change, still from time to time I move my ass and code a little bit, this is the outcome:
HBF)
- Now game is paused, Shop, Inventory and Fight screens are substates, now code is cleaner and shorter
- Curtain code cleaned
- Now Shunenbukaidesu brings rain
- Now when pause screen is gray
- New TDirector code improved
- Now Boom does some random rotations
- Now Lights do some random zooming
- New property TTriggerDispatcher.Player so code knows who did execute the trigger
- TBell behavior improved
- Backgrounds now can be setup in back.ini per level
- Now TGameSprite.Magnetized property
- Now when adding a sprite to an engine it will enter the collision grid so that it can be search since the very beginning
- UFO laser fixed (since when it was wrong? :)
- New methods TGame.GameServices FadeIn(), FadeOut(), LockEntity() and LockExcept()
- Left and Right collisions with moving objects improved
- Now Dialogs have a Edit type so game can interaction can be done
- Now game allows to add text (useful for chat)
- Now Ropes can have different textures
- New triggers IfItemThenSet(), RemoveItem(), ExecuteActionTile() and ExecuteActionEntity()
- Now enemies can also activate triggers
- Some levels now have a fourth layer (pipes and others)
- Now TTriggerDispatcher has a Target reference (who did execute the trigger)
- New trigger Velocity()
- Pushed by blocks code fixed
- New trigger Sleep()
- Fade code refactored a bit
- Fixed a bug in dialog system with NPC
- Extra Wand execution simplified
- Now hero balance when standing
- Added a new layer to all maps to handle better the trigger interactions
- All layer are now declared as constants
- Now circles shrink when interacting
- Stalactite now works with gravity
- Graphics unused removed
- Now game does Continuous Collision
- Now Post is static
- Now left/right collision with slope items/tiles works properly
- Some fonts are shown with shadow
- Collisions improved
- New layer in the labyrinth
- Owner property renamed to Hero
- CarryItem property renamed to Owner
- TGameSprite.IsUnderneathOf() fixed when gravity is up
- Now music can fade in/out
- Music now fades with screen
- Now in mapping.ini one can assign directly the default animation, so for simple sprites there is no need to create a class
- Some new fonts
- Now some level has a countdown...
- New Door graphic
- New wind effect
- Notifications are now easier to code
- New princess bitmaps
BB)
- TStateMachine<T> renamed to TStateDirector<T>
- TStateDirector<T> now supports substates as Push(T) and Pop(T)
- Surface blur performance improved
- TSurface Lightmap() performance improved
- Many internal lists changed to TColony<T>
- In TCollisionMatrix.Enter() Occupation was updated inside loops, that makes no sense and affects the performance
- New classes TObjectColony<T> and TFastObjectPool<T>
- INI class moved to its own file
- INI now uses internally TDictionary<K,V>
- New TSprite.GetOldRectangle()
- TCollisionMatrix performance improved
- Particles now have a better management of internal textures
- Now triggers have an Input property
- New TInput.ReadChar() so that game can read commands from user
- Now triggers can only by executed by specific entity with property Holder/
- Now Triggers can have Cadency, so the trigger can be only be updated every N Frames
- Now triggers might have a Hint
- Now triggers are called scripts
- Now surfaces can have slopes left and right
- TCollisionMatrix now checks for top/left and bottom/right corners
- Now shadows are TBoolean rather than boolean
- Now some fields are now TNullable<T>
- Now map layers can have alpha configuration
- Overhead with rotated matrix when angle = 0 reduced
- Using [unsafe] tag when possible since my interfaces behave as pure interfaces with no reference counter
- Now TTimerEx no longer uses an event but a callback
- Some [UNSAFE] fixed
- Many GUID removed from interfaces
- Many const added to interfaces when parameter
- New Glow properties color and blur
- New class TCountdown
Found binaries at OneDrive