diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game.c | 8 |
1 files changed, 3 insertions, 5 deletions
@@ -268,8 +268,7 @@ static ix2_search_status_t virus_search(void *cb_context, ix2_object_t *ix2_obje switch (entity->any.type) { case ENTITY_TYPE_BABY: /* convert baby into inanimate virus (off the viruses array) */ - stage_free(entity->any.node); - entity->any.node = virus_node_new(&(stage_conf_t){ .parent = search->game->viruses_node, .name = "baby-virus", .active = 1, .alpha = 1.f }, &entity->any.model_x); + (void) virus_node_new(&(stage_conf_t){ .parent = entity->any.node, .adopt = 1, .name = "baby-virus", .active = 1, .alpha = 1.f }, &entity->any.model_x); sfx_play(sfx.baby_infected); entity->any.type = ENTITY_TYPE_VIRUS; @@ -283,9 +282,8 @@ static ix2_search_status_t virus_search(void *cb_context, ix2_object_t *ix2_obje return IX2_SEARCH_STOP_HIT; case ENTITY_TYPE_ADULT: - /* convert adult into inanimate virus (of the viruses array) */ - stage_free(entity->any.node); - entity->any.node = virus_node_new(&(stage_conf_t){ .parent = search->game->viruses_node, .name = "adult-virus", .active = 1, .alpha = 1.f }, &entity->any.model_x); + /* convert adult into inanimate virus (off the viruses array) */ + (void) virus_node_new(&(stage_conf_t){ .parent = entity->any.node, .adopt = 1, .name = "adult-virus", .active = 1, .alpha = 1.f }, &entity->any.model_x); sfx_play(sfx.adult_infected); search->game->state = GAME_STATE_OVER; return IX2_SEARCH_STOP_HIT; |