- Add Animation class with 30+ easing functions (linear, ease in/out, quad, cubic, elastic, bounce, etc.)
- Add property system to all UI classes for animation support:
- UIFrame: position, size, colors (including individual r/g/b/a components)
- UICaption: position, size, text, colors
- UISprite: position, scale, sprite_number (with sequence support)
- UIGrid: position, size, camera center, zoom
- UIEntity: position, sprite properties
- Create AnimationManager singleton for frame-based updates
- Add Python bindings through PyAnimation wrapper
- Support for delta animations (relative values)
- Fix segfault when running scripts directly (mcrf_module initialization)
- Fix headless/windowed mode behavior to respect --headless flag
- Animations run purely in C++ without Python callbacks per frame
All UI properties are now animatable with smooth interpolation and professional easing curves.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
This squash commit includes changes from April 21st through 28th, 2024, and the past 3 days of work at 7DRL.
Rather than resume my feature branch work, I made minor changes to safe the C++ functionality and wrote workarounds in Python.
I'm very likely to delete this commit from history by rolling master back to the previous commit, and squash merging a finished feature branch.
Closes#43
No segfault found in cos_play after completing the checklist. Maybe I accidentally fixed it...?
commit 6aa151aba3
Author: John McCardle <mccardle.john@gmail.com>
Date: Fri Apr 19 21:43:58 2024 -0400
UISprite.h/.cpp cleanup
commit ec0374ef50
Author: John McCardle <mccardle.john@gmail.com>
Date: Fri Apr 19 21:37:39 2024 -0400
UIGridPoint.h/.cpp reorganization
commit 2cb7339535
Author: John McCardle <mccardle.john@gmail.com>
Date: Fri Apr 19 21:19:25 2024 -0400
UIGrid.h/.cpp cleanup. I have reservations about the UIEntityCollection[Iter] classes + methods living there, but not enough to fix it right now.
commit 5d6af324bf
Author: John McCardle <mccardle.john@gmail.com>
Date: Thu Apr 18 22:14:57 2024 -0400
UIFrame - moving static method into class namespace; no type object access
commit 567218cd7b
Author: John McCardle <mccardle.john@gmail.com>
Date: Thu Apr 18 21:23:49 2024 -0400
UIEntity fixes for the UI.h split: There are segfaults in cos_play, I may have missed a type usage or something
commit 76693acd28
Author: John McCardle <mccardle.john@gmail.com>
Date: Sat Apr 13 00:18:37 2024 -0400
delete leftover comments
commit 9efe998a33
Author: John McCardle <mccardle.john@gmail.com>
Date: Sat Apr 13 00:17:43 2024 -0400
some work on UICaption and UICollection; fixing segfaults resulting from mcrfpydef namepace TypeObject usage
commit 714965da45
Author: John McCardle <mccardle.john@gmail.com>
Date: Fri Apr 12 14:15:00 2024 -0400
eliminate extra includes on UICaption
commit 8efa25878f
Author: John McCardle <mccardle.john@gmail.com>
Date: Wed Apr 10 23:41:14 2024 -0400
remove a lot of stuff
commit c186d8c7f3
Author: John McCardle <mccardle.john@gmail.com>
Date: Wed Apr 10 23:10:15 2024 -0400
We are compiling again! Started refactoring UICaption to be more idiomatic
commit 1b6e2a709b
Author: John McCardle <mccardle.john@gmail.com>
Date: Tue Apr 9 22:42:02 2024 -0400
Still not quite compiling; as predicted, a lot of interdependency and definition order bugs to untangle
commit aa7553a818
Author: John McCardle <mccardle.john@gmail.com>
Date: Tue Apr 9 22:41:20 2024 -0400
PyTexture clean up scribbles and experiments
commit c0201d989a
Author: John McCardle <mccardle.john@gmail.com>
Date: Mon Apr 8 22:55:00 2024 -0400
additional unsaved changes
commit 83a63a3093
Author: John McCardle <mccardle.john@gmail.com>
Date: Mon Apr 8 22:45:00 2024 -0400
doesn't compile, but UI.h/.cpp code has been divvy'd up.
refs #43 @2h