Adjust arrow offset when spawning
This give leniency when jumping off arrow crates that shoots upmain
parent
b8b475bfc4
commit
8de2086e4c
|
@ -1838,27 +1838,32 @@ void container_destroy_system(Scene_t* scene)
|
||||||
|
|
||||||
Entity_t* new_ent;
|
Entity_t* new_ent;
|
||||||
AnchorPoint_t spawn_anchor = AP_MID_CENTER;
|
AnchorPoint_t spawn_anchor = AP_MID_CENTER;
|
||||||
|
Vector2 offset_adjustment = {0};
|
||||||
switch (p_container->item)
|
switch (p_container->item)
|
||||||
{
|
{
|
||||||
case CONTAINER_LEFT_ARROW:
|
case CONTAINER_LEFT_ARROW:
|
||||||
new_ent = create_arrow(&scene->ent_manager, 0);
|
new_ent = create_arrow(&scene->ent_manager, 0);
|
||||||
play_sfx(scene->engine, ARROW_RELEASE_SFX);
|
play_sfx(scene->engine, ARROW_RELEASE_SFX);
|
||||||
spawn_anchor = AP_MID_LEFT;
|
spawn_anchor = AP_MID_LEFT;
|
||||||
|
offset_adjustment.x += 16;
|
||||||
break;
|
break;
|
||||||
case CONTAINER_RIGHT_ARROW:
|
case CONTAINER_RIGHT_ARROW:
|
||||||
new_ent = create_arrow(&scene->ent_manager, 1);
|
new_ent = create_arrow(&scene->ent_manager, 1);
|
||||||
play_sfx(scene->engine, ARROW_RELEASE_SFX);
|
play_sfx(scene->engine, ARROW_RELEASE_SFX);
|
||||||
spawn_anchor = AP_MID_RIGHT;
|
spawn_anchor = AP_MID_RIGHT;
|
||||||
|
offset_adjustment.x -= 16;
|
||||||
break;
|
break;
|
||||||
case CONTAINER_UP_ARROW:
|
case CONTAINER_UP_ARROW:
|
||||||
new_ent = create_arrow(&scene->ent_manager, 2);
|
new_ent = create_arrow(&scene->ent_manager, 2);
|
||||||
play_sfx(scene->engine, ARROW_RELEASE_SFX);
|
play_sfx(scene->engine, ARROW_RELEASE_SFX);
|
||||||
spawn_anchor = AP_TOP_CENTER;
|
spawn_anchor = AP_TOP_CENTER;
|
||||||
|
offset_adjustment.y += 16;
|
||||||
break;
|
break;
|
||||||
case CONTAINER_DOWN_ARROW:
|
case CONTAINER_DOWN_ARROW:
|
||||||
new_ent = create_arrow(&scene->ent_manager, 3);
|
new_ent = create_arrow(&scene->ent_manager, 3);
|
||||||
play_sfx(scene->engine, ARROW_RELEASE_SFX);
|
play_sfx(scene->engine, ARROW_RELEASE_SFX);
|
||||||
spawn_anchor = AP_BOT_CENTER;
|
spawn_anchor = AP_BOT_CENTER;
|
||||||
|
offset_adjustment.y -= 16;
|
||||||
break;
|
break;
|
||||||
case CONTAINER_BOMB:
|
case CONTAINER_BOMB:
|
||||||
if (dmg_src != NULL && dmg_src->m_tag == PLAYER_ENT_TAG)
|
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
|
, spawn_anchor, false
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
new_ent->position = Vector2Add(
|
||||||
|
new_ent->position,
|
||||||
|
offset_adjustment
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// In case there's more materials
|
// In case there's more materials
|
||||||
|
|
Loading…
Reference in New Issue