diff --git a/assets/imagemap.tmj b/assets/imagemap.tmj index 4d17e7d..975ad9f 100644 --- a/assets/imagemap.tmj +++ b/assets/imagemap.tmj @@ -111,6 +111,22 @@ "nextlayerid":5, "nextobjectid":18, "orientation":"orthogonal", + "properties":[ + { + "name":"physics.drag.y", + "type":"string", + "value":"0.0" + }, + { + "name":"physics.gravity.y", + "type":"string", + "value":"0.0" + }, + { + "name":"physics.model", + "type":"string", + "value":"arcade" + }], "renderorder":"right-down", "tiledversion":"1.8.2", "tileheight":16, diff --git a/assets/sidescroller.tmj b/assets/sidescroller.tmj index 5d12219..31b22ce 100644 --- a/assets/sidescroller.tmj +++ b/assets/sidescroller.tmj @@ -63,6 +63,22 @@ "nextlayerid":4, "nextobjectid":2, "orientation":"orthogonal", + "properties":[ + { + "name":"physics.drag.y", + "type":"string", + "value":"1.0" + }, + { + "name":"physics.gravity.y", + "type":"string", + "value":"1024.0" + }, + { + "name":"physics.model", + "type":"string", + "value":"arcade" + }], "renderorder":"right-down", "tiledversion":"1.8.2", "tileheight":32, diff --git a/assets/tilemap.tmj b/assets/tilemap.tmj index 8eeb1c9..51ea220 100644 --- a/assets/tilemap.tmj +++ b/assets/tilemap.tmj @@ -88,6 +88,22 @@ "nextlayerid":4, "nextobjectid":3, "orientation":"orthogonal", + "properties":[ + { + "name":"physics.drag.y", + "type":"string", + "value":"0.0" + }, + { + "name":"physics.gravity.y", + "type":"string", + "value":"0.0" + }, + { + "name":"physics.model", + "type":"string", + "value":"arcade" + }], "renderorder":"right-down", "tiledversion":"1.8.2", "tileheight":16, diff --git a/deps/libakgl b/deps/libakgl index 941eeb2..9fed59c 160000 --- a/deps/libakgl +++ b/deps/libakgl @@ -1 +1 @@ -Subproject commit 941eeb2493939fad2793c0c8a499509a2bcbe914 +Subproject commit 9fed59c4c8e41146285c74e7c3a8a42b8d08fddf diff --git a/deps/libakstdlib b/deps/libakstdlib index b8ef8b0..485b241 160000 --- a/deps/libakstdlib +++ b/deps/libakstdlib @@ -1 +1 @@ -Subproject commit b8ef8b0dd28aa7d7536fa9c3cd430c4bb7671953 +Subproject commit 485b241595baee341b7ef0517a5530fc8c19672f diff --git a/src/SDL_AppInit.c b/src/SDL_AppInit.c index 847d272..869eb96 100644 --- a/src/SDL_AppInit.c +++ b/src/SDL_AppInit.c @@ -19,8 +19,8 @@ SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[]) CATCH(e, akgl_game_init()); CATCH(e, akgl_game_state_lock()); CATCH(e, akgl_registry_load_properties("assets/properties.json")); - CATCH(e, akgl_render_init2d(&renderer)); - CATCH(e, akgl_physics_init_sidescroller(&physics)); + CATCH(e, akgl_render_init2d(renderer)); + CATCH(e, akgl_physics_init_arcade(physics)); CATCH(e, akgl_controller_list_keyboards()); CATCH(e, akgltest_load_assets()); diff --git a/src/gamemodes.c b/src/gamemodes.c index c202737..66868f7 100644 --- a/src/gamemodes.c +++ b/src/gamemodes.c @@ -6,7 +6,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_set_gamemode_menu(akgl_Actor *appsta PREPARE_ERROR(e); AKGL_BITMASK_DEL(game.state.flags, AKGLTEST_STATE_WAITFORINPUT); AKGL_BITMASK_DEL(game.state.flags, AKGLTEST_STATE_RUNNING); - PASS(e, akgl_tilemap_release(&gamemap)); + PASS(e, akgl_tilemap_release(gamemap)); PASS(e, akgl_registry_init_actor()); PASS(e, akgl_heap_init_actor()); PASS(e, akgltest_init_menupointer()); @@ -17,7 +17,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_set_gamemode_menu(akgl_Actor *appsta PASS(e, aksl_memset((void *)GAME_ControlMaps, 0x00, (sizeof(akgl_ControlMap) * AKGL_MAX_CONTROL_MAPS))); PASS(e, akgltest_controller_bind_universal("menupointer", AKGLTEST_CONTROLMAP_MENU, kbid, jsid)); - PASS(e, aksl_memset((void *)&gamemap, 0x00, sizeof(akgl_Tilemap))); + PASS(e, aksl_memset(gamemap, 0x00, sizeof(akgl_Tilemap))); AKGL_BITMASK_ADD(game.state.flags, AKGLTEST_STATE_MAPMENU); SUCCEED_RETURN(e); } @@ -39,13 +39,13 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_set_gamemode_running(akgl_Actor *app if ( menuselection == 0 ) { strcpy((char *)&dirnamebuf, "assets/imagemap.tmj"); - PASS(e, akgl_tilemap_load((char *)&dirnamebuf, (akgl_Tilemap *)&gamemap)); + PASS(e, akgl_tilemap_load((char *)&dirnamebuf, gamemap)); } else if ( menuselection == 1 ) { strcpy((char *)&dirnamebuf, "assets/tilemap.tmj"); - PASS(e, akgl_tilemap_load((char *)&dirnamebuf, (akgl_Tilemap *)&gamemap)); + PASS(e, akgl_tilemap_load((char *)&dirnamebuf, gamemap)); } else if ( menuselection == 2 ) { strcpy((char *)&dirnamebuf, "assets/sidescroller.tmj"); - PASS(e, akgl_tilemap_load((char *)&dirnamebuf, (akgl_Tilemap *)&gamemap)); + PASS(e, akgl_tilemap_load((char *)&dirnamebuf, gamemap)); } else if ( menuselection == 3 ) { AKGL_BITMASK_DEL(game.state.flags, AKGLTEST_STATE_RUNNING); AKGL_BITMASK_ADD(game.state.flags, AKGLTEST_STATE_QUIT); @@ -63,10 +63,10 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_iterate_mapmenu(void) }; PREPARE_ERROR(e); ATTEMPT { - CATCH(e, renderer.frame_start(&renderer)) + CATCH(e, renderer->frame_start(renderer)) - SDL_SetRenderDrawColor(renderer.sdl_renderer, 0, 0, 0, 255); - SDL_RenderClear(renderer.sdl_renderer); + SDL_SetRenderDrawColor(renderer->sdl_renderer, 0, 0, 0, 255); + SDL_RenderClear(renderer->sdl_renderer); PASS(e, akgl_text_rendertextat( SDL_GetPointerProperty( AKGL_REGISTRY_FONT, @@ -115,7 +115,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_iterate_mapmenu(void) FAIL_ZERO_BREAK(e, menupointer, AKERR_NULLPOINTER, "actor missing from registry"); menupointer->visible = true; CATCH(e, akgl_game_update(&opflags)); - CATCH(e, renderer.frame_end(&renderer)) + CATCH(e, renderer->frame_end(renderer)) } CLEANUP { } PROCESS(e) { } FINISH(e, true); @@ -141,7 +141,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_iterate_waitforinput(void) 40, 120) ); - PASS(e, renderer.frame_end(&renderer)); + PASS(e, renderer->frame_end(renderer)); SUCCEED_RETURN(e); } @@ -155,7 +155,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_iterate_running(void) int count; PREPARE_ERROR(e); - PASS(e, renderer.frame_start(&renderer)); + PASS(e, renderer->frame_start(renderer)); player = SDL_GetPointerProperty(AKGL_REGISTRY_ACTOR, "player", NULL); FAIL_ZERO_RETURN(e, player, AKERR_NULLPOINTER, "player not in registry"); gamefont = SDL_GetPointerProperty(AKGL_REGISTRY_FONT, "C64Pro", NULL); @@ -195,7 +195,7 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_iterate_running(void) 30) ); memset((char *)&screenText, 0x00, 128); - snprintf((char *)&screenText, 127, "DY: %f", physics.drag_y); + snprintf((char *)&screenText, 127, "DY: %f", physics->drag_y); PASS(e, akgl_text_rendertextat( gamefont, (char *)&screenText, @@ -226,6 +226,6 @@ akerr_ErrorContext AKERR_NOIGNORE *akgltest_iterate_running(void) 30) ); - PASS(e, renderer.frame_end(&renderer)); + PASS(e, renderer->frame_end(renderer)); SUCCEED_RETURN(e); }