1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2025-04-11 09:16:38 +00:00
Commit graph

589 commits

Author SHA1 Message Date
fgenesis
7e51dc55b7 remove unused code from BitmapFont 2025-04-02 00:29:52 +02:00
fgenesis
7dda47101e deduplicate CurrentRender and SteamRender into QuadSegmentRender 2025-04-01 23:26:02 +02:00
fgenesis
ecc03ca14b Fix edge case where particles would not be spawned when the emitter was started in every frame.
Broken in 68c29a3fc9.
2025-04-01 06:50:11 +02:00
fgenesis
65248a274f Fix particle rendering bug introduced in 947f55f10b 2025-04-01 05:53:49 +02:00
fgenesis
e6063c16a3 forgot strings for object types 2025-03-22 06:13:20 +01:00
fgenesis
db5fcfa632 rework QuadGrid and some anim editor internal things to use VBOs 2025-03-15 04:15:19 +01:00
fgenesis
7b7681ffb6 rework ScreenTransition to use VBO 2025-03-12 03:35:56 +01:00
fgenesis
854afdda3f drawCircle() writes out vertices now instead of directly rendering. Rework related code to use VBO. 2025-03-12 03:20:35 +01:00
fgenesis
5f9d26c360 Fix issues with empty VBO upload and vbo size desync 2025-03-12 02:42:41 +01:00
fgenesis
d73c7e741f rework Gradient to use VBO 2025-03-12 02:39:23 +01:00
fgenesis
e255e5333d attempt to fix a super rarely failing assertion
something to do with keyframe rollover
2025-03-05 03:33:14 +01:00
fgenesis
e960000aa6 fix linux build for good 2025-03-05 01:04:02 +01:00
fgenesis
da8a7a533f rework RoundedRect to use VBOs, remove unused move function, remove unused RoundButton 2025-03-04 06:06:01 +01:00
fgenesis
c2b72fd9dd make window + GL context creation more robust in the presence of weird graphics drivers 2025-03-04 04:05:25 +01:00
fgenesis
59706456ce kill some now unused/unnecessary legacy GL functions 2025-03-04 04:05:25 +01:00
fgenesis
cf90556430 some gl debug stuff 2025-03-04 04:05:25 +01:00
fgenesis
4d6c62b6cd FTGL: Don't change blending
See also https://github.com/frankheckenbach/ftgl/blob/master/README-LegacyOpenGLState
2025-03-04 04:05:25 +01:00
fgenesis
36826bfec5 rework DarkLayer to use a VBO 2025-03-04 04:05:25 +01:00
fgenesis
5eecf2d84c fixes to VertexBuffer
- only reallocate if size changes
- fix logic error in the rare case of glUnmapBufferARB() failing
2025-03-04 04:05:25 +01:00
fgenesis
3a55777d63 rework Beam to use VBOs 2025-03-04 04:05:25 +01:00
fgenesis
ce310c2ae8 move Strand to BBGE 2025-03-04 04:05:25 +01:00
fgenesis
9cc323b501 rework Strand to use VBOs 2025-03-04 04:05:25 +01:00
fgenesis
f167ce7167 oops 2025-02-13 22:54:55 +01:00
fgenesis
947f55f10b simplify particle render
Less special cases for non-rotated and non-flipped particles,
but since these are rare and the rest of the quad rendering code
has already gotten improvements there's not really any reason to keep
the specialized modes around.
The gains in GL calls were negligible and the new quad render code avoids
glVertex3f() entirely, which is a much better gain imho.
2025-02-05 05:30:46 +01:00
fgenesis
68c29a3fc9 Improve particle spawning behavior; small cleanup
Apparently there was an interpolation scheme in place to spawn
quickly-spawning (ie more than 1 per frame) particles along a line
interpolated between the previous and current position,
but the math was incorrect and it always ended up spawning all
particles on the same spot.
2025-02-05 04:55:06 +01:00
fgenesis
7b442174c8 Particle RandomScale is now cumulative and doesn't break interpolated scaling
Don't allocate interpolation data for RandomRotationRange when not needed

Hope this commit doesn't break some visuals; i'm not 100% sure.
Some particle files may rely on this behavior to look as intended.
2025-02-01 19:35:55 +01:00
fgenesis
3a40506ddb cleanup the partcile system a bit, and use new randomness 2025-02-01 07:32:54 +01:00
fgenesis
26e1da131d unused code begone 2025-02-01 06:10:21 +01:00
fgenesis
8a5f8d2ac7 Base functions use the new randomness now.
- randRange() is no longer broken.
- Lua randRange() uses the same function now and is no longer off-by-1
  (exclusive; right end never reached)
2025-02-01 06:09:37 +01:00
fgenesis
9664352a11 Add new randomness subsystem 2025-02-01 05:51:54 +01:00
fgenesis
51cf2f75f5 add support for Bone to inherit renderpass from parent 2025-01-22 05:36:21 +01:00
fgenesis
6bffa3a3f9 fix animations possibly going nuts in the anim editor due to timer overflow handling 2025-01-21 23:51:16 +01:00
fgenesis
dd403d7d55 fix possible crash when playing transition animation 2025-01-21 23:28:56 +01:00
fgenesis
7b8f540c7e Fixes to skel keyframe handling that would usually skip the first keyframe
This didn't seem to cause problems since apparently nothing ever depended
on the first keyframe being processed properly (ie. animationKey(),
bone commands, sounds, particle spawning, etc).
Curiously this was never an issue in the editor since the first keyframe
is hit immediately (since it keeps the time clamped to 0 when not animating),
and the first keyframe triggered ONLY when t==0 exactly.

With this change no keyframes are skipped, and during an animation loop,
the last and the first keyframe are hit together.
entity_setAnimationTime() got an extra param whether to skip keyframes
when setting the time manually (if not skipping, it'll catch up).

This commit also fixes a bug(?) that animationKey() was called with key -1
when changing animations, which was a side-effect of how the old code worked.
(I hope nothing depended on this behavior, i'm not sure but i think it's safe to fix)
2025-01-17 05:38:07 +01:00
fgenesis
140aa4d78d fix Lua func obj_fhTo() and variants, minor related cleanups in RenderObject 2025-01-13 04:57:35 +01:00
fgenesis
0e1283a4d7 Rework bone selection logic
A skeleton no longer has a "selectedBone".
It's all in the anim editor now.
2025-01-13 02:53:33 +01:00
fgenesis
1138eab08e couple random warning fixes, no functional changes 2025-01-13 00:56:28 +01:00
fgenesis
63892518cd more fixes and improvements to anim editor; eliminate OutlineRect 2025-01-12 18:42:58 +01:00
fgenesis
db2b71c3d8 fix many new anim editor bugs & typos after recent changes 2025-01-12 04:24:42 +01:00
fgenesis
d2040adbd5 more tweaks to anim editor, allow seeking via timeline when RMB is held 2025-01-12 03:30:08 +01:00
fgenesis
8369a7168f anim editor: support up to 9 tracks/anims at once. wip still. 2025-01-12 02:15:40 +01:00
fgenesis
2b2d4c712f exorcise another sneaky case of bubble sort 2025-01-08 03:52:45 +01:00
fgenesis
46d7a68034 remove GRID_DRAW_WORLDMAP and some associated code 2024-11-15 03:28:11 +01:00
fgenesis
c44c67a063 Worldmap overhaul, part 1
In short:
- No more grid-for-alpha; everything uses generated textures now
  (With proper bilinear filtering so it looks like the old method)
- All tiles are now shown partially uncovered at the same time;
  selecting one is no longer needed
- Gems can now be local (associated to a tile) or global.
  Local games move with their tile, global ones stay where they were placed

Background:
Originally there were two possible implementations of how to render the world map:
- One used write-alpha-to-texture to implement graual uncovering.
- The other (permanently enabled) used the DrawGrid to render the map tiles
  as a fine grid, each little square having its own alpha value
The downside of the first method was that it didn't look as good as the
second, so i guess that's why it was never fully finished.
The main downside of the second method was that it burned a lot of vertices
just to do alpha, so only one tile at a time could show the detailed grid.

I also never liked how an entire tile was effectively fully uncovered once
the map was first entered, taking away a lot of the exploration feeling
that could have been there if everything that hasn't been explored would be
completely invisible.
I've added this worldmap uncovering method as an optional config param,
<WorldMap revealMethod="1"/> but i've decided to fully switch over now.

Things left to be done:
- create a WorldMapRender instance only once and keep the tiles across map loads
- add debug option to reload/recreate worldmap at runtime
- cleanup gem storage and carry over the player gem properly (ged rid of std::list)
- remove "worldmap" grid render type
- Add more user "pyramid" gems as world map markers. More colors!
- check that gems and beacons still work as they should
2024-11-15 03:12:14 +01:00
fgenesis
b7eb5777ae save savefile previews as png. this finally kills .zga format, but it's kept for backwards compat 2024-11-09 03:46:52 +01:00
fgenesis
91b7c0bf3f Support _mods/modname/mod-info.xml in addition to the old _mods/modname.xml
Needs directory enumeration; I'm not sure that it builds on linux.
Will fix if it doesn't.
2024-11-04 22:38:29 +01:00
fgenesis
b59fb507ca Reduce Game::fillGrid() complexity from O(n^2) to O(n) when trimming
Eliminates stutter on slow machines or in debug mode when operating doors.
Also the game shouldn't freeze anymore when marking very large tiles
as obstructing.
2024-11-04 04:47:34 +01:00
fgenesis
55a37e7728 fix missed break in prev^2 commit 2024-10-15 04:11:30 +02:00
fgenesis
b8a9815de7 Change the text input box to use SDL textinput events
Add a cheap replacement for SDL1 that doesn't have textinput events.
2024-10-15 04:07:22 +02:00
fgenesis
22e682cebc don't lose tile flags when changing solidness; update grid when flipping solid tile 2024-09-23 23:29:10 +02:00