Adjust arrow offset when spawning

This give leniency when jumping off arrow crates that shoots up
main
En Yi 2025-08-27 22:43:58 +08:00
parent b8b475bfc4
commit 8de2086e4c
1 changed files with 9 additions and 0 deletions

View File

@ -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