Added some randomness to collision sound delays and synced robot-player collision sprites to same steps
This commit is contained in:
parent
81de582264
commit
6038280726
|
@ -4,6 +4,7 @@ D1X-Rebirth Changelog
|
||||||
--------
|
--------
|
||||||
main/collide.c, main/physics.c: Adjusted D1 Lifter collision damage according to D2 to scale with FPS as Melee combats can happen in every frame; Actually set velocity from movement when colliding with objects
|
main/collide.c, main/physics.c: Adjusted D1 Lifter collision damage according to D2 to scale with FPS as Melee combats can happen in every frame; Actually set velocity from movement when colliding with objects
|
||||||
arch/sdl/jukebox.c: Use a 2D array to allow playing of songs by track number in future
|
arch/sdl/jukebox.c: Use a 2D array to allow playing of songs by track number in future
|
||||||
|
main/collide.c: Added some randomness to collision sound delays and synced robot-player collision sprites to same steps
|
||||||
|
|
||||||
20081230
|
20081230
|
||||||
--------
|
--------
|
||||||
|
|
|
@ -826,7 +826,7 @@ bool g3_draw_bitmap(vms_vector *pos,fix width,fix height,grs_bitmap *bm, object
|
||||||
glDepthFunc(GL_ALWAYS);
|
glDepthFunc(GL_ALWAYS);
|
||||||
|
|
||||||
glBegin(GL_QUADS);
|
glBegin(GL_QUADS);
|
||||||
|
|
||||||
// Define alpha by looking for object TYPE or ID. We do this here so we have it seperated from the rest of the code.
|
// Define alpha by looking for object TYPE or ID. We do this here so we have it seperated from the rest of the code.
|
||||||
if (PlayerCfg.OglAlphaEffects && // if -gl_transparency draw following bitmaps
|
if (PlayerCfg.OglAlphaEffects && // if -gl_transparency draw following bitmaps
|
||||||
(obj->type==OBJ_FIREBALL || // all types of explosions and energy-effects
|
(obj->type==OBJ_FIREBALL || // all types of explosions and energy-effects
|
||||||
|
|
|
@ -84,12 +84,13 @@ int Ugly_robot_texture = 0;
|
||||||
|
|
||||||
#define STANDARD_EXPL_DELAY (f1_0/4)
|
#define STANDARD_EXPL_DELAY (f1_0/4)
|
||||||
|
|
||||||
int check_collision_sound_exec()
|
int check_collision_delayfunc_exec()
|
||||||
{
|
{
|
||||||
static int last_play_time=0;
|
static fix last_play_time=0;
|
||||||
if (last_play_time + (F1_0/3) < GameTime || last_play_time > GameTime)
|
if (last_play_time + (F1_0/3) < GameTime || last_play_time > GameTime)
|
||||||
{
|
{
|
||||||
last_play_time = GameTime;
|
last_play_time = GameTime;
|
||||||
|
last_play_time -= (d_rand()/2); // add some randomness
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -663,9 +664,17 @@ void collide_robot_and_player( object * robot, object * player, vms_vector *coll
|
||||||
multi_robot_request_change(robot, player->id);
|
multi_robot_request_change(robot, player->id);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
if (check_collision_sound_exec())
|
|
||||||
|
if (check_collision_delayfunc_exec())
|
||||||
|
{
|
||||||
|
int collision_seg = find_point_seg(collision_point, player->segnum);
|
||||||
|
|
||||||
digi_link_sound_to_pos( SOUND_ROBOT_HIT_PLAYER, player->segnum, 0, collision_point, 0, F1_0 );
|
digi_link_sound_to_pos( SOUND_ROBOT_HIT_PLAYER, player->segnum, 0, collision_point, 0, F1_0 );
|
||||||
|
|
||||||
|
if (collision_seg != -1)
|
||||||
|
object_create_explosion( collision_seg, collision_point, Weapon_info[0].impact_size, Weapon_info[0].wall_hit_vclip );
|
||||||
|
}
|
||||||
|
|
||||||
bump_two_objects(robot, player, 1);
|
bump_two_objects(robot, player, 1);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -753,7 +762,7 @@ void collide_player_and_controlcen( object * controlcen, object * player, vms_ve
|
||||||
ai_do_cloak_stuff(); // In case player cloaked, make control center know where he is.
|
ai_do_cloak_stuff(); // In case player cloaked, make control center know where he is.
|
||||||
}
|
}
|
||||||
|
|
||||||
if (check_collision_sound_exec())
|
if (check_collision_delayfunc_exec())
|
||||||
digi_link_sound_to_pos( SOUND_ROBOT_HIT_PLAYER, player->segnum, 0, collision_point, 0, F1_0 );
|
digi_link_sound_to_pos( SOUND_ROBOT_HIT_PLAYER, player->segnum, 0, collision_point, 0, F1_0 );
|
||||||
|
|
||||||
bump_two_objects(controlcen, player, 1);
|
bump_two_objects(controlcen, player, 1);
|
||||||
|
@ -1024,7 +1033,7 @@ void collide_hostage_and_player( object * hostage, object * player, vms_vector *
|
||||||
//##}
|
//##}
|
||||||
|
|
||||||
void collide_player_and_player( object * player1, object * player2, vms_vector *collision_point ) {
|
void collide_player_and_player( object * player1, object * player2, vms_vector *collision_point ) {
|
||||||
if (check_collision_sound_exec())
|
if (check_collision_delayfunc_exec())
|
||||||
digi_link_sound_to_pos( SOUND_ROBOT_HIT_PLAYER, player1->segnum, 0, collision_point, 0, F1_0 );
|
digi_link_sound_to_pos( SOUND_ROBOT_HIT_PLAYER, player1->segnum, 0, collision_point, 0, F1_0 );
|
||||||
|
|
||||||
bump_two_objects(player1, player2, 1);
|
bump_two_objects(player1, player2, 1);
|
||||||
|
@ -1372,7 +1381,7 @@ void collide_player_and_powerup( object * player, object * powerup, vms_vector *
|
||||||
//##}
|
//##}
|
||||||
|
|
||||||
void collide_player_and_clutter( object * player, object * clutter, vms_vector *collision_point ) {
|
void collide_player_and_clutter( object * player, object * clutter, vms_vector *collision_point ) {
|
||||||
if (check_collision_sound_exec())
|
if (check_collision_delayfunc_exec())
|
||||||
digi_link_sound_to_pos( SOUND_ROBOT_HIT_PLAYER, player->segnum, 0, collision_point, 0, F1_0 );
|
digi_link_sound_to_pos( SOUND_ROBOT_HIT_PLAYER, player->segnum, 0, collision_point, 0, F1_0 );
|
||||||
|
|
||||||
bump_two_objects(clutter, player, 1);
|
bump_two_objects(clutter, player, 1);
|
||||||
|
|
Loading…
Reference in a new issue