parent
c78dc50f50
commit
72c27ed92e
|
@ -3,12 +3,12 @@
|
||||||
|
|
||||||
#define MAX_TEXTURES 16
|
#define MAX_TEXTURES 16
|
||||||
#define MAX_SPRITES 64
|
#define MAX_SPRITES 64
|
||||||
#define MAX_SOUNDS 16
|
#define MAX_SOUNDS 32
|
||||||
#define MAX_FONTS 4
|
#define MAX_FONTS 4
|
||||||
#define MAX_N_TILES 4096
|
#define MAX_N_TILES 4096
|
||||||
#define MAX_NAME_LEN 32
|
#define MAX_NAME_LEN 32
|
||||||
#define MAX_LEVEL_PACK 4
|
#define MAX_LEVEL_PACK 4
|
||||||
#define N_SFX 18
|
#define N_SFX 32
|
||||||
#define MAX_EMITTER_CONF 8
|
#define MAX_EMITTER_CONF 8
|
||||||
//#define MAX_PARTICLE_EMITTER 8
|
//#define MAX_PARTICLE_EMITTER 8
|
||||||
#define MAX_ACTIVE_PARTICLE_EMITTER 32
|
#define MAX_ACTIVE_PARTICLE_EMITTER 32
|
||||||
|
|
|
@ -48,6 +48,14 @@ int main(void)
|
||||||
load_sfx(&engine, "snd_wdrop", WATER_IN_SFX);
|
load_sfx(&engine, "snd_wdrop", WATER_IN_SFX);
|
||||||
load_sfx(&engine, "snd_bland", BOULDER_LAND_SFX);
|
load_sfx(&engine, "snd_bland", BOULDER_LAND_SFX);
|
||||||
load_sfx(&engine, "snd_bubble", BUBBLE_SFX);
|
load_sfx(&engine, "snd_bubble", BUBBLE_SFX);
|
||||||
|
load_sfx(&engine, "snd_mdestroy", METAL_DESTROY_SFX);
|
||||||
|
load_sfx(&engine, "snd_wdestroy", WOOD_DESTROY_SFX);
|
||||||
|
load_sfx(&engine, "snd_cland", WOOD_LAND_SFX);
|
||||||
|
load_sfx(&engine, "snd_explsn", EXPLOSION_SFX);
|
||||||
|
load_sfx(&engine, "snd_coin", COIN_SFX);
|
||||||
|
load_sfx(&engine, "snd_arrhit", ARROW_DESTROY_SFX);
|
||||||
|
load_sfx(&engine, "snd_launch", ARROW_RELEASE_SFX);
|
||||||
|
load_sfx(&engine, "snd_launch", BOMB_RELEASE_SFX);
|
||||||
|
|
||||||
LevelScene_t scene;
|
LevelScene_t scene;
|
||||||
scene.scene.engine = &engine;
|
scene.scene.engine = &engine;
|
||||||
|
|
|
@ -32,5 +32,6 @@ typedef enum SFXTag {
|
||||||
BOMB_RELEASE_SFX,
|
BOMB_RELEASE_SFX,
|
||||||
EXPLOSION_SFX,
|
EXPLOSION_SFX,
|
||||||
BUBBLE_SFX,
|
BUBBLE_SFX,
|
||||||
|
COIN_SFX,
|
||||||
} SFXTag_t;
|
} SFXTag_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -281,6 +281,7 @@ void destroy_entity(Scene_t* scene, TileGrid_t* tilemap, Entity_t* p_ent)
|
||||||
.update_func = &simple_particle_system_update,
|
.update_func = &simple_particle_system_update,
|
||||||
};
|
};
|
||||||
play_particle_emitter(&scene->part_sys, &emitter);
|
play_particle_emitter(&scene->part_sys, &emitter);
|
||||||
|
play_sfx(scene->engine, COIN_SFX);
|
||||||
}
|
}
|
||||||
else if (p_ent->m_tag == ARROW_ENT_TAG)
|
else if (p_ent->m_tag == ARROW_ENT_TAG)
|
||||||
{
|
{
|
||||||
|
@ -294,6 +295,7 @@ void destroy_entity(Scene_t* scene, TileGrid_t* tilemap, Entity_t* p_ent)
|
||||||
.update_func = &simple_particle_system_update,
|
.update_func = &simple_particle_system_update,
|
||||||
};
|
};
|
||||||
play_particle_emitter(&scene->part_sys, &emitter);
|
play_particle_emitter(&scene->part_sys, &emitter);
|
||||||
|
play_sfx(scene->engine, ARROW_DESTROY_SFX);
|
||||||
}
|
}
|
||||||
|
|
||||||
remove_entity_from_tilemap(&scene->ent_manager, tilemap, p_ent);
|
remove_entity_from_tilemap(&scene->ent_manager, tilemap, p_ent);
|
||||||
|
@ -1470,6 +1472,10 @@ void state_transition_update_system(Scene_t* scene)
|
||||||
{
|
{
|
||||||
play_sfx(scene->engine, BOULDER_LAND_SFX);
|
play_sfx(scene->engine, BOULDER_LAND_SFX);
|
||||||
}
|
}
|
||||||
|
else if (p_ent->m_tag == CRATES_ENT_TAG)
|
||||||
|
{
|
||||||
|
play_sfx(scene->engine, WOOD_LAND_SFX);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (p_mstate->water_state == 0b01)
|
if (p_mstate->water_state == 0b01)
|
||||||
{
|
{
|
||||||
|
@ -1755,15 +1761,19 @@ void container_destroy_system(Scene_t* scene)
|
||||||
{
|
{
|
||||||
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);
|
||||||
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);
|
||||||
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);
|
||||||
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);
|
||||||
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)
|
||||||
|
@ -1782,19 +1792,37 @@ void container_destroy_system(Scene_t* scene)
|
||||||
launch_dir.x = -1;
|
launch_dir.x = -1;
|
||||||
}
|
}
|
||||||
new_ent = create_bomb(&scene->ent_manager, launch_dir);
|
new_ent = create_bomb(&scene->ent_manager, launch_dir);
|
||||||
|
play_sfx(scene->engine, BOMB_RELEASE_SFX);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
new_ent = create_explosion(&scene->ent_manager);
|
new_ent = create_explosion(&scene->ent_manager);
|
||||||
|
play_sfx(scene->engine, EXPLOSION_SFX);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case CONTAINER_EXPLOSION:
|
case CONTAINER_EXPLOSION:
|
||||||
new_ent = create_explosion(&scene->ent_manager);
|
new_ent = create_explosion(&scene->ent_manager);
|
||||||
|
play_sfx(scene->engine, EXPLOSION_SFX);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
new_ent = NULL;
|
new_ent = NULL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (
|
||||||
|
p_container->item != CONTAINER_EXPLOSION
|
||||||
|
&& p_container->item != CONTAINER_BOMB
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if (p_container->material == WOODEN_CONTAINER)
|
||||||
|
{
|
||||||
|
play_sfx(scene->engine, WOOD_DESTROY_SFX);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
play_sfx(scene->engine, METAL_DESTROY_SFX);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (new_ent != NULL)
|
if (new_ent != NULL)
|
||||||
{
|
{
|
||||||
CTransform_t* new_p_ct = get_component(new_ent, CTRANSFORM_COMP_T);
|
CTransform_t* new_p_ct = get_component(new_ent, CTRANSFORM_COMP_T);
|
||||||
|
|
|
@ -46,9 +46,7 @@ Entity_t* create_crate(EntityManager_t* ent_manager, bool metal, ContainerItem_t
|
||||||
CTransform_t* p_ctransform = add_component(p_crate, CTRANSFORM_COMP_T);
|
CTransform_t* p_ctransform = add_component(p_crate, CTRANSFORM_COMP_T);
|
||||||
p_ctransform->grav_delay = 7;
|
p_ctransform->grav_delay = 7;
|
||||||
p_ctransform->shape_factor = metal ? (Vector2){0.7,0.7} : (Vector2){0.8,0.8} ;
|
p_ctransform->shape_factor = metal ? (Vector2){0.7,0.7} : (Vector2){0.8,0.8} ;
|
||||||
CMovementState_t* p_move = add_component(p_crate, CMOVEMENTSTATE_T);
|
add_component(p_crate, CMOVEMENTSTATE_T);
|
||||||
p_move->ground_state |= 3;
|
|
||||||
|
|
||||||
|
|
||||||
add_component(p_crate, CTILECOORD_COMP_T);
|
add_component(p_crate, CTILECOORD_COMP_T);
|
||||||
CHurtbox_t* p_hurtbox = add_component(p_crate, CHURTBOX_T);
|
CHurtbox_t* p_hurtbox = add_component(p_crate, CHURTBOX_T);
|
||||||
|
|
Loading…
Reference in New Issue