parent
c78dc50f50
commit
72c27ed92e
|
@ -3,12 +3,12 @@
|
|||
|
||||
#define MAX_TEXTURES 16
|
||||
#define MAX_SPRITES 64
|
||||
#define MAX_SOUNDS 16
|
||||
#define MAX_SOUNDS 32
|
||||
#define MAX_FONTS 4
|
||||
#define MAX_N_TILES 4096
|
||||
#define MAX_NAME_LEN 32
|
||||
#define MAX_LEVEL_PACK 4
|
||||
#define N_SFX 18
|
||||
#define N_SFX 32
|
||||
#define MAX_EMITTER_CONF 8
|
||||
//#define MAX_PARTICLE_EMITTER 8
|
||||
#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_bland", BOULDER_LAND_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;
|
||||
scene.scene.engine = &engine;
|
||||
|
|
|
@ -32,5 +32,6 @@ typedef enum SFXTag {
|
|||
BOMB_RELEASE_SFX,
|
||||
EXPLOSION_SFX,
|
||||
BUBBLE_SFX,
|
||||
COIN_SFX,
|
||||
} SFXTag_t;
|
||||
#endif
|
||||
|
|
|
@ -281,6 +281,7 @@ void destroy_entity(Scene_t* scene, TileGrid_t* tilemap, Entity_t* p_ent)
|
|||
.update_func = &simple_particle_system_update,
|
||||
};
|
||||
play_particle_emitter(&scene->part_sys, &emitter);
|
||||
play_sfx(scene->engine, COIN_SFX);
|
||||
}
|
||||
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,
|
||||
};
|
||||
play_particle_emitter(&scene->part_sys, &emitter);
|
||||
play_sfx(scene->engine, ARROW_DESTROY_SFX);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
else if (p_ent->m_tag == CRATES_ENT_TAG)
|
||||
{
|
||||
play_sfx(scene->engine, WOOD_LAND_SFX);
|
||||
}
|
||||
}
|
||||
if (p_mstate->water_state == 0b01)
|
||||
{
|
||||
|
@ -1755,15 +1761,19 @@ void container_destroy_system(Scene_t* scene)
|
|||
{
|
||||
case CONTAINER_LEFT_ARROW:
|
||||
new_ent = create_arrow(&scene->ent_manager, 0);
|
||||
play_sfx(scene->engine, ARROW_RELEASE_SFX);
|
||||
break;
|
||||
case CONTAINER_RIGHT_ARROW:
|
||||
new_ent = create_arrow(&scene->ent_manager, 1);
|
||||
play_sfx(scene->engine, ARROW_RELEASE_SFX);
|
||||
break;
|
||||
case CONTAINER_UP_ARROW:
|
||||
new_ent = create_arrow(&scene->ent_manager, 2);
|
||||
play_sfx(scene->engine, ARROW_RELEASE_SFX);
|
||||
break;
|
||||
case CONTAINER_DOWN_ARROW:
|
||||
new_ent = create_arrow(&scene->ent_manager, 3);
|
||||
play_sfx(scene->engine, ARROW_RELEASE_SFX);
|
||||
break;
|
||||
case CONTAINER_BOMB:
|
||||
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;
|
||||
}
|
||||
new_ent = create_bomb(&scene->ent_manager, launch_dir);
|
||||
play_sfx(scene->engine, BOMB_RELEASE_SFX);
|
||||
}
|
||||
else
|
||||
{
|
||||
new_ent = create_explosion(&scene->ent_manager);
|
||||
play_sfx(scene->engine, EXPLOSION_SFX);
|
||||
}
|
||||
break;
|
||||
case CONTAINER_EXPLOSION:
|
||||
new_ent = create_explosion(&scene->ent_manager);
|
||||
play_sfx(scene->engine, EXPLOSION_SFX);
|
||||
break;
|
||||
default:
|
||||
new_ent = NULL;
|
||||
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)
|
||||
{
|
||||
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);
|
||||
p_ctransform->grav_delay = 7;
|
||||
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);
|
||||
p_move->ground_state |= 3;
|
||||
|
||||
add_component(p_crate, CMOVEMENTSTATE_T);
|
||||
|
||||
add_component(p_crate, CTILECOORD_COMP_T);
|
||||
CHurtbox_t* p_hurtbox = add_component(p_crate, CHURTBOX_T);
|
||||
|
|
Loading…
Reference in New Issue