diff --git a/scenes/game_systems.c b/scenes/game_systems.c index 30f498d..8d32e49 100644 --- a/scenes/game_systems.c +++ b/scenes/game_systems.c @@ -1838,27 +1838,32 @@ void container_destroy_system(Scene_t* scene) Entity_t* new_ent; AnchorPoint_t spawn_anchor = AP_MID_CENTER; + Vector2 offset_adjustment = {0}; switch (p_container->item) { case CONTAINER_LEFT_ARROW: new_ent = create_arrow(&scene->ent_manager, 0); play_sfx(scene->engine, ARROW_RELEASE_SFX); spawn_anchor = AP_MID_LEFT; + offset_adjustment.x += 16; break; case CONTAINER_RIGHT_ARROW: new_ent = create_arrow(&scene->ent_manager, 1); play_sfx(scene->engine, ARROW_RELEASE_SFX); spawn_anchor = AP_MID_RIGHT; + offset_adjustment.x -= 16; break; case CONTAINER_UP_ARROW: new_ent = create_arrow(&scene->ent_manager, 2); play_sfx(scene->engine, ARROW_RELEASE_SFX); spawn_anchor = AP_TOP_CENTER; + offset_adjustment.y += 16; break; case CONTAINER_DOWN_ARROW: new_ent = create_arrow(&scene->ent_manager, 3); play_sfx(scene->engine, ARROW_RELEASE_SFX); spawn_anchor = AP_BOT_CENTER; + offset_adjustment.y -= 16; break; case CONTAINER_BOMB: if (dmg_src != NULL && dmg_src->m_tag == PLAYER_ENT_TAG) @@ -1900,6 +1905,10 @@ void container_destroy_system(Scene_t* scene) , spawn_anchor, false ) ); + new_ent->position = Vector2Add( + new_ent->position, + offset_adjustment + ); } // In case there's more materials