5dfa49482c
Guard the add_test shadow on being top-level again
...
CMake chains command overrides one level deep: a second override rebinds
_add_test to the first and the builtin becomes unreachable to everyone. So two
projects in one tree cannot both shadow add_test, and akbasic has to shadow it
first for libakerror and libakstdlib -- which left its own registrations
recursing to CMake's depth limit.
The unconditional shadow arrived with the vendored-dependency fix in 18399f2 .
That half stays; only the guard comes back.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-31 16:54:48 -04:00
652ee4cdf3
Tilemaps can now load their own physics engines from map properties. The gravity for the arcade simulation is acting a little funny when populated from the map properties.
2026-06-02 17:11:16 -04:00
9fed59c4c8
Abstract the global renderer, physics, camera and gamemap objects behind a pointer, so you can swap in and out different ones as needed
2026-06-02 13:15:26 -04:00
941eeb2493
Got the physics system applying gravity and drag correctly. (Mostly? Seems like it? Seems good.)
2026-05-26 16:45:04 -04:00
314ce5e10d
Physics simulation engine implemented, basic cases (null and 2d SideScroller) works
2026-05-26 10:36:31 -04:00
d87c5d2c20
More rendering subsystem breakout, added a physics subsystem, everything now fires from akgl_game_update() for the user
2026-05-25 21:29:18 -04:00
6314ad7f26
Start abstracting the rendering backend away to make it easier to switch to GPU rendering later
2026-05-24 21:59:29 -04:00
8f613397d6
Loading sprites and tiles both work correctly with relative paths, now using akgl_path_relative* helpers
2026-05-24 19:57:57 -04:00
980bbc56fb
Fixed loading of tilesets and images from tilemaps to correctly use relative paths.
2026-05-24 10:28:35 -04:00
e3edd5b855
Add a method that automatically opens gamepads so they will send events
2026-05-21 21:43:51 -04:00
f695a035c8
Add a low FPS callback to aid in debugging, and fix a huge memory leak in akgl_text_rendertextat
2026-05-15 11:07:31 -04:00
73b1a4cab0
Make perspective scale work more explicitly from properties
2026-05-13 23:36:49 -04:00
aad196d84e
akgl_heap_release* should not cascade into dependent objects (releasing actors should not release characters, sprites, and spritesheets)
2026-05-13 22:45:52 -04:00
9443fa8532
Fix bug in akgl_heap_release_actor preventing it from being cleared out of the registry
2026-05-13 19:28:38 -04:00
dc2e88b72f
Fix a scale bug (default should be 1.0), add tilemap release function
2026-05-13 16:56:24 -04:00
53e4f5c14f
Tilemaps can have two objects placed on it, 'p_foreground' and 'p_vanishing' whose placement form a virtual perspective plane, which causes sprites to scale as they move up and down the screen between them, creating the illusion of depth on the screen
2026-05-13 09:57:24 -04:00
b8dee456ca
Add keyboard enumeration function. Make image layers work.
2026-05-13 08:02:59 -04:00
36dfd47a06
Fixed a bug in akgl_heap_next_string, made screen width and height load from properties, not on the game object
2026-05-13 04:55:19 -04:00
23dbc7d985
Make mkcontrollers script work when building as a submodule
2026-05-12 21:40:31 -04:00
c79d93dd58
Wrap subdirectory compilation in conditional
2026-05-12 21:01:47 -04:00
ccd26494d9
Import all dependencies as submodules, make cmake do the right thing
2026-05-12 16:45:42 -04:00
5439b8004b
Move some of the sprite math out of the actor into the sprite
2026-05-12 15:21:36 -04:00
0f01126bad
More akstdlib conversion
2026-05-11 20:58:36 -04:00
4a02f0364f
Start moving away from wrapping libc stuff in akerror, and move towards akstdlib that does this for me
2026-05-10 00:03:45 -04:00
cc0916cd1f
Added a (registry object name -> registry object pointer) map to the save method so that registry reference by name can have their actor, sprite, spritesheet, and character references reset
2026-05-09 14:45:37 -04:00
4c771227f5
Encode library version and game version into savegame files and check them both
2026-05-08 23:48:35 -04:00
ff6b282112
Added basic game save function, doesn't save much yet, but implements version comparison of binary saves for compatibility
2026-05-08 23:15:11 -04:00
0bd1ae1df8
Move music tracks out of akgl_Game to make it more suitable for serialization
2026-05-08 22:16:43 -04:00
e0a59e2447
Add types.h, standardize integer types on stdint
2026-05-08 22:01:56 -04:00
5dda86d887
Add properties registry. Start bounding defines with conditionals so users can change library allocation size.
2026-05-08 10:16:33 -04:00
a0b2dda4cf
Rename library to AKGL (AKLabs Game Library)
2026-05-07 22:20:10 -04:00