fgenesis
d2c0e3e241
Add Lua func bone_getCollisionMaskNormal()
...
This repurposes the (now, after the prev commit) unused Bone::getCollisionMaskNormal()
2023-04-18 01:54:12 +02:00
fgenesis
ed98a3328e
anim editor: allow to select anim by name (no more hammering PgUp/PgDown!)
2022-11-18 01:52:46 +01:00
fgenesis
92ab459736
Improve some skel anim edge cases; warning fixes. Also new Lua function.
...
+ entity_setAnimationTime()
2022-11-16 22:46:56 +01:00
fgenesis
96f28702e4
fix anim editor not generating keyframes for newly inserted bones.
...
broke this during my recent anim editor work, oops
2022-11-13 12:29:11 +01:00
fgenesis
288fb6b7fa
fix crash when saving skel after bones were removed
2022-10-12 18:59:25 +02:00
fgenesis
58e9ba340e
Add skel/bone gridDrawOrder attrib to control the way the gris is drawn
...
Also ignore grid.z (used as worldmap alpha) by default because it's really
only needed for the world map and ignoring it results in less GL calls.
2022-09-25 04:30:38 +02:00
fgenesis
575a83abd6
Initial implementation of bspline support in the animation editor
2022-09-23 18:10:44 +02:00
fgenesis
a1005dafe2
Make Bone::ANIM_* a bitmask. This also changes Lua constant ANIM_ALL from 10 to 3.
2022-09-14 05:20:37 +02:00
fgenesis
8e979e0e05
simplify Quad::drawGrid
2022-09-14 05:11:56 +02:00
fgenesis
29fd4ec44e
clean up interpolators; WIP towards bspline support in anim editor
2022-09-13 18:38:44 +02:00
fgenesis
0afd09dc75
bspline wip more
2022-09-05 17:19:34 +02:00
fgenesis
9e2c640b51
attempt to fix crash when loading a saved game on a map with an already collected health upgrade
...
This problem might have been introduced in 06270eaac0
but not sure.
The crash could happen due to a use-after-free memory access:
When deleting an entity with skel in postInit(), deletion would be
delayed by 1 frame because that is how entity_delete() works.
During deletion, RenderObject::children were removed and deleted
but SkeletalSprite::bones still had those pointers.
Additionally an object would delete its children in onUpdate() after
safeKill(), and still proceed to run scripts, which would then possibly
access freed memory too.
This fix causes children to not be deleted until we're out of the update()
cycle, and instead delete children together with the root object.
2022-07-18 23:00:22 +02:00
fgenesis
693223552d
remove Quad::createStrip(), related members, and cleanup Bone strip handling
...
Saves some work when rendering EVERY SINGLE QUAD in the game
2022-05-21 17:31:50 +02:00
fgenesis
5c419efd79
Remove RenderObject::updateAfterParent; simplify + clarify ParentManaged logic
...
SkeletalSprite was the only thing using it.
Instead of PM_STATIC it's now added to its Entity as PM_NONE.
PM_NONE is not auto-updated so SkeletalSprite::update() is now called
at the end of Entity::onUpdate()
(There's now a bug that during spirit form the screen stays black,
probably added that in an earlier commit. Will fix.)
(On second tought, maybe ParentManaged should be boolean.
Instead add a noAutoUpdate flag. But i'll save that for another time when i get around
to move all RenderObject bools into a bitmask.)
2022-05-20 03:27:15 +02:00
fgenesis
68b3c61852
Add RenderState to be passed through the scene graph
...
This will eventually handle all mutable state during rendering
2022-05-20 01:04:19 +02:00
fgenesis
b6fb6944f6
first step towards making the render process const
2022-05-19 05:17:00 +02:00
fgenesis
46010244f5
remove RenderObject::blendEnabled and cleanup the blend code a bit
2022-05-19 01:34:31 +02:00
fgenesis
140f750d00
More RenderObject slimming; reorder members, split out motion blur data + collideRadius, add new CollideQuad type
...
CollideQuad is now base class for Shot, Entity, Bone
2022-05-18 19:44:42 +02:00
fgenesis
111cd43805
Move members related to collision mask from RenderObject to Bone
2022-05-18 02:15:19 +02:00
fgenesis
e33bde0a89
Small extension to bone:
...
+ attrib c="0" in the anim XML to turn off all collision for a bone
even if collide radius or collision mask is set
+ Lua func: bone_toggleCollision() to change the above setting at runtime
+ Lua func: bone_spawnParticlesFromCollisionMask()
- Fix int truncation in entity_collideSkeletalVsLine()
2022-05-18 01:18:27 +02:00
fgenesis
1de786efc6
Fix bug that a bone's rq="0" attribute would disappear when skel was saved while visible
2019-09-06 02:56:53 +02:00
fgenesis
2bbcfa2284
Fix some ANimationEditor crashes when loading not-existing or empty anim XML
2017-04-19 02:06:34 +02:00
James Le Cuirot
4d1fa75545
Put tinyxml2 in subdir so that system header is respected
2017-02-10 10:01:24 +00:00
fgenesis
d7cdb72143
Some more warning related stuff, but changed my mind about re-enabling the remaining ones :/
2017-01-19 23:44:30 +01:00
fgenesis
7a60f493a5
Re-enable double->float cast warning and fix all instances where this fired
2017-01-19 23:31:56 +01:00
Valentin Ochs
f9357e7fca
Merge branch 'gccwarn' into controllerfixup
2017-01-17 11:15:47 +01:00
Valentin Ochs
2374c1a86b
Revert ~0 to -1
2017-01-14 19:22:37 +01:00
Valentin Ochs
4dc7e27ee6
Fix some more warnings
2017-01-14 18:23:53 +01:00
Valentin Ochs
fe0ab0418b
Get rid of a lot of gcc warnings
...
Mostly signed/unsigned comparisons. Also some bugs, but I don't remember
where :D
2017-01-14 18:10:20 +01:00
fgenesis
0dc30e668d
Merge branch 'experimental' into controllerfixup
...
# Conflicts:
# Aquaria/Avatar.cpp
# Aquaria/Continuity.cpp
# Aquaria/DSQ.cpp
# Aquaria/DSQ.h
# Aquaria/Game.cpp
# Aquaria/Game.h
# Aquaria/Main.cpp
# Aquaria/UserSettings.cpp
# BBGE/Base.cpp
# BBGE/Base.h
# BBGE/Core.cpp
# BBGE/Core.h
# BBGE/DebugFont.cpp
# BBGE/Shader.cpp
# BBGE/SoundManager.h
2017-01-13 12:19:23 +01:00
fgenesis
8af953cb63
Replace spaces with tabs (future self: i'm sorry)
...
In most places, that is. Left some files unchanges because they are a mess.
2017-01-12 22:51:46 +01:00
Valentin Ochs
dcd21b57bd
Merge pull request #41
2017-01-12 22:14:26 +01:00
fgenesis
00900a9dfb
Fix bone particles broken in 8472718fb7
2016-08-02 02:44:50 +02:00
fgenesis
8472718fb7
Major include refactor; changes to pretty much everything
...
This untangles some of the gigantic kitchen sink headers
in an attempt to split things into smaller files.
Also don't include gl.h, glext.h, windows.h,
and other such nonsense *everywhere*.
Lots of cleanups on the way too. More dead/unused code removal.
Remove incrFlag(), decrFlag() Lua functions.
2016-07-09 04:18:40 +02:00
fgenesis
65179870a9
Fix possible crash when loading applying a skeletal twice in one frame.
...
Possibly a regression from 300f326777
.
2016-05-12 00:25:00 +02:00
fgenesis
d6dc3a8a09
Merge branch 'experimental' into moreclean
...
Conflicts:
Aquaria/Avatar.cpp
Aquaria/BoxElement.cpp
Aquaria/BubbleRender.cpp
Aquaria/FFTNotes.cpp
Aquaria/StarRenderer.cpp
Aquaria/WaterFont.cpp
Aquaria/resource.h
BBGE/AnimatedSprite.cpp
BBGE/AnimatedSprite.h
BBGE/BloomEffect.cpp
BBGE/CShim.cpp
BBGE/Collision.cpp
BBGE/Collision.h
BBGE/Core.cpp
BBGE/Core.h
BBGE/Cube.cpp
BBGE/Cutscene.cpp
BBGE/DFSprite.cpp
BBGE/DFSprite.h
BBGE/Datafile.cpp
BBGE/Datafile.h
BBGE/Flags.h
BBGE/Interpolator.cpp
BBGE/Light.cpp
BBGE/Light.h
BBGE/LightCone.cpp
BBGE/Model.cpp
BBGE/Model.h
BBGE/OggStream.cpp
BBGE/PackRead.cpp
BBGE/PointSprites.cpp
BBGE/RenderObject.cpp
BBGE/SkeletalSprite.cpp
2016-05-10 18:40:01 +02:00
fgenesis
e7791c5ddc
Remove RenderObject::collisionRects.
...
Another vector that was always empty, optionally filled when specified
by a skeletal file, but none actually did this. Should be safe to remove.
Also small related optimization in Game::collideSkeletalVsCircle().
2016-05-07 01:00:16 +02:00
fgenesis
35a3888c94
Remove RenderObject::collidePosition and related code
...
This was always (0, 0) and optionally used for bones if defined in skeletal files.
None of the official skeletal files used this, so this should be safe to remove.
2016-05-07 00:47:45 +02:00
Nicolas Braud-Santoni
eb128e65a4
Remove commented-out code
2016-05-05 19:57:50 +02:00
fgenesis
6c56bc94a9
Add selectable flag for bones.
...
Setting sel="0" in an anim's XML file prevents accidental modification
in the anim editor.
2016-04-18 22:08:36 +02:00
fgenesis
65ab23536e
Fix AnimLayer not applying bug introduced in 339490e3e9
.
2016-04-18 21:07:46 +02:00
fgenesis
b4c1b811ce
Make BoneCommand::parse() a bit more resilient and bail out when something is wrong
2016-04-17 15:16:55 +02:00
fgenesis
339490e3e9
Implemnt AC_SET_PASS and AC_RESET_PASS bone commands
2016-04-17 14:33:23 +02:00
fgenesis
236096683a
Clear animLayers properly
2015-06-03 04:04:19 +02:00
fgenesis
15379db4b8
Fix possible crash when saving animation to non-existing file + loading malformed XML from skin file.
...
Also fix skeletal cache memory leak.
2014-09-16 00:29:57 +02:00
fgenesis
300f326777
Use std::vector instead of std::list for RenderObject children
2014-07-21 22:21:22 +02:00
fgenesis
817d4beb1c
Fix tinyXML2 misuse; simplify scene saving code a little
2014-06-10 02:18:55 +02:00
fgenesis
065def0674
Fixes to prev commit - restore ttvfs functionality when reading XML files, and minor other things
2014-06-09 23:39:33 +02:00
fgenesis
4bafcb3e18
Merge branch 'tinyxml2' into experimental. Thanks to James Le Cuirot for this.
...
Conflicts:
Aquaria/UserSettings.cpp
CMakeLists.txt
2014-06-09 22:31:39 +02:00
James Le Cuirot
43d41feeb8
Migrate from TinyXML v1 to v2. Not bundled (yet).
2014-06-08 21:11:23 +01:00