From 238c65a2eb787018af8c6b98165f0a77634aec15 Mon Sep 17 00:00:00 2001 From: Andrew Kesterson Date: Tue, 2 Jun 2026 17:12:47 -0400 Subject: [PATCH] Update tilemaps to provide their own physics information. The sidescroller is acting funny. --- assets/imagemap.tmj | 8 ++++---- assets/sidescroller.tmj | 10 +++++----- assets/tilemap.tmj | 8 ++++---- deps/libakerror | 2 +- deps/libakgl | 2 +- deps/libakstdlib | 2 +- src/gamemodes.c | 6 ++++++ 7 files changed, 22 insertions(+), 16 deletions(-) diff --git a/assets/imagemap.tmj b/assets/imagemap.tmj index 975ad9f..ea3dda5 100644 --- a/assets/imagemap.tmj +++ b/assets/imagemap.tmj @@ -114,13 +114,13 @@ "properties":[ { "name":"physics.drag.y", - "type":"string", - "value":"0.0" + "type":"float", + "value":0 }, { "name":"physics.gravity.y", - "type":"string", - "value":"0.0" + "type":"float", + "value":0 }, { "name":"physics.model", diff --git a/assets/sidescroller.tmj b/assets/sidescroller.tmj index 31b22ce..2ca6102 100644 --- a/assets/sidescroller.tmj +++ b/assets/sidescroller.tmj @@ -33,7 +33,7 @@ { "name":"state", "type":"int", - "value":1041 + "value":17 }], "rotation":0, "type":"actor", @@ -66,13 +66,13 @@ "properties":[ { "name":"physics.drag.y", - "type":"string", - "value":"1.0" + "type":"float", + "value":0.125 }, { "name":"physics.gravity.y", - "type":"string", - "value":"1024.0" + "type":"float", + "value":32 }, { "name":"physics.model", diff --git a/assets/tilemap.tmj b/assets/tilemap.tmj index 51ea220..6829352 100644 --- a/assets/tilemap.tmj +++ b/assets/tilemap.tmj @@ -91,13 +91,13 @@ "properties":[ { "name":"physics.drag.y", - "type":"string", - "value":"0.0" + "type":"float", + "value":0 }, { "name":"physics.gravity.y", - "type":"string", - "value":"0.0" + "type":"float", + "value":0 }, { "name":"physics.model", diff --git a/deps/libakerror b/deps/libakerror index b543504..93f5e93 160000 --- a/deps/libakerror +++ b/deps/libakerror @@ -1 +1 @@ -Subproject commit b5435041f21c576f3be117aeb19bc94e721f425c +Subproject commit 93f5e934804d1b62d5c4751562056d8185c7c707 diff --git a/deps/libakgl b/deps/libakgl index 9fed59c..652ee4c 160000 --- a/deps/libakgl +++ b/deps/libakgl @@ -1 +1 @@ -Subproject commit 9fed59c4c8e41146285c74e7c3a8a42b8d08fddf +Subproject commit 652ee4cdf3a636c749db0a06ea30e7422840f9de diff --git a/deps/libakstdlib b/deps/libakstdlib index 485b241..06b2c8a 160000 --- a/deps/libakstdlib +++ b/deps/libakstdlib @@ -1 +1 @@ -Subproject commit 485b241595baee341b7ef0517a5530fc8c19672f +Subproject commit 06b2c8ad8a33bb720ff03352e4d990e1dcf3d23c diff --git a/src/gamemodes.c b/src/gamemodes.c index 66868f7..e4bbb40 100644 --- a/src/gamemodes.c +++ b/src/gamemodes.c @@ -7,6 +7,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_set_gamemode_menu(akgl_Actor *appsta AKGL_BITMASK_DEL(game.state.flags, AKGLTEST_STATE_WAITFORINPUT); AKGL_BITMASK_DEL(game.state.flags, AKGLTEST_STATE_RUNNING); PASS(e, akgl_tilemap_release(gamemap)); + physics = &_akgl_physics; PASS(e, akgl_registry_init_actor()); PASS(e, akgl_heap_init_actor()); PASS(e, akgltest_init_menupointer()); @@ -30,6 +31,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_set_gamemode_running(akgl_Actor *app PASS(e, akgl_registry_init_actor()); PASS(e, akgl_heap_init_actor()); PASS(e, akgltest_init_player()); + //PASS(e, akgl_physics_init_arcade(physics)); PASS(e, aksl_memset((void *)GAME_ControlMaps, 0x00, (sizeof(akgl_ControlMap) * AKGL_MAX_CONTROL_MAPS))); PASS(e, akgltest_controller_bind_universal("player", AKGLTEST_CONTROLMAP_INGAMEACTOR, kbid, jsid)); akgl_Actor *actorptr = SDL_GetPointerProperty(AKGL_REGISTRY_ACTOR, "player", NULL); @@ -50,6 +52,10 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_set_gamemode_running(akgl_Actor *app AKGL_BITMASK_DEL(game.state.flags, AKGLTEST_STATE_RUNNING); AKGL_BITMASK_ADD(game.state.flags, AKGLTEST_STATE_QUIT); } + if ( gamemap->use_own_physics == true ) { + SDL_Log("Using game map physics engine"); + physics = &gamemap->physics; + } AKGL_BITMASK_ADD(game.state.flags, AKGLTEST_STATE_RUNNING); SUCCEED_RETURN(e); }