Small transparency fix for robot weapons; Some timer-Failsafe in robot/boss dying frames; Fixed logical flaw in create_small_fireball_on_object() closing out sound effects on robots
This commit is contained in:
parent
74fd36d2f9
commit
996748bdba
|
@ -4,6 +4,7 @@ D2X-Rebirth Changelog
|
||||||
--------
|
--------
|
||||||
main/ai2.c: When we reached MAX_BOSS_TELEPORT_SEGS in init_boss_segments, make sure we also escape out of the for-loop - otherwise we still might overflow
|
main/ai2.c: When we reached MAX_BOSS_TELEPORT_SEGS in init_boss_segments, make sure we also escape out of the for-loop - otherwise we still might overflow
|
||||||
main/piggy.c: Corrected a small logical mistake in Shareware-HAM recognition
|
main/piggy.c: Corrected a small logical mistake in Shareware-HAM recognition
|
||||||
|
arch/ogl/ogl.c, main/ai2.c, main/object.c: Small transparency fix for robot weapons; Some timer-Failsafe in robot/boss dying frames; Fixed logical flaw in create_small_fireball_on_object() closing out sound effects on robots
|
||||||
|
|
||||||
20081119
|
20081119
|
||||||
--------
|
--------
|
||||||
|
|
|
@ -827,7 +827,7 @@ bool g3_draw_bitmap(vms_vector *pos,fix width,fix height,grs_bitmap *bm, int ori
|
||||||
// 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
|
||||||
(obj->type==OBJ_WEAPON && (obj->id != PROXIMITY_ID && obj->id != SUPERPROX_ID)) || // weapon fire except bombs
|
(obj->type==OBJ_WEAPON && (obj->id != PROXIMITY_ID && obj->id != SUPERPROX_ID && obj->id != ROBOT_SUPERPROX_ID && obj->id != PMINE_ID)) || // weapon fire except bombs
|
||||||
obj->id==POW_EXTRA_LIFE || // extra life
|
obj->id==POW_EXTRA_LIFE || // extra life
|
||||||
obj->id==POW_ENERGY || // energy powerup
|
obj->id==POW_ENERGY || // energy powerup
|
||||||
obj->id==POW_SHIELD_BOOST || // shield boost
|
obj->id==POW_SHIELD_BOOST || // shield boost
|
||||||
|
|
|
@ -2069,7 +2069,7 @@ int do_robot_dying_frame(object *objp, fix start_time, fix roll_duration, sbyte
|
||||||
} else if (d_rand() < FrameTime*8)
|
} else if (d_rand() < FrameTime*8)
|
||||||
create_small_fireball_on_object(objp, (F1_0/2 + d_rand()) * (16 * expl_scale/F1_0)/8, 1);
|
create_small_fireball_on_object(objp, (F1_0/2 + d_rand()) * (16 * expl_scale/F1_0)/8, 1);
|
||||||
|
|
||||||
if (start_time + roll_duration < GameTime)
|
if (start_time + roll_duration < GameTime || GameTime+(F1_0*2) < start_time)
|
||||||
return 1;
|
return 1;
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2092,6 +2092,7 @@ void do_boss_dying_frame(object *objp)
|
||||||
rval = do_robot_dying_frame(objp, Boss_dying_start_time, BOSS_DEATH_DURATION, &Boss_dying_sound_playing, Robot_info[objp->id].deathroll_sound, F1_0*4, F1_0*4);
|
rval = do_robot_dying_frame(objp, Boss_dying_start_time, BOSS_DEATH_DURATION, &Boss_dying_sound_playing, Robot_info[objp->id].deathroll_sound, F1_0*4, F1_0*4);
|
||||||
|
|
||||||
if (rval) {
|
if (rval) {
|
||||||
|
Boss_dying_start_time=GameTime; // make sure following only happens one time!
|
||||||
do_controlcen_destroyed_stuff(NULL);
|
do_controlcen_destroyed_stuff(NULL);
|
||||||
explode_object(objp, F1_0/4);
|
explode_object(objp, F1_0/4);
|
||||||
digi_link_sound_to_object2(SOUND_BADASS_EXPLOSION, objp-Objects, 0, F2_0, F1_0*512);
|
digi_link_sound_to_object2(SOUND_BADASS_EXPLOSION, objp-Objects, 0, F2_0, F1_0*512);
|
||||||
|
@ -2110,6 +2111,7 @@ int do_any_robot_dying_frame(object *objp)
|
||||||
rval = do_robot_dying_frame(objp, objp->ctype.ai_info.dying_start_time, min(death_roll/2+1,6)*F1_0, &objp->ctype.ai_info.dying_sound_playing, Robot_info[objp->id].deathroll_sound, death_roll*F1_0/8, death_roll*F1_0/2);
|
rval = do_robot_dying_frame(objp, objp->ctype.ai_info.dying_start_time, min(death_roll/2+1,6)*F1_0, &objp->ctype.ai_info.dying_sound_playing, Robot_info[objp->id].deathroll_sound, death_roll*F1_0/8, death_roll*F1_0/2);
|
||||||
|
|
||||||
if (rval) {
|
if (rval) {
|
||||||
|
objp->ctype.ai_info.dying_start_time = GameTime; // make sure following only happens one time!
|
||||||
explode_object(objp, F1_0/4);
|
explode_object(objp, F1_0/4);
|
||||||
digi_link_sound_to_object2(SOUND_BADASS_EXPLOSION, objp-Objects, 0, F2_0, F1_0*512);
|
digi_link_sound_to_object2(SOUND_BADASS_EXPLOSION, objp-Objects, 0, F2_0, F1_0*512);
|
||||||
if ((Current_level_num < 0) && (Robot_info[objp->id].thief))
|
if ((Current_level_num < 0) && (Robot_info[objp->id].thief))
|
||||||
|
|
|
@ -657,7 +657,7 @@ void create_small_fireball_on_object(object *objp, fix size_scale, int sound_fla
|
||||||
fix vol = F1_0/2;
|
fix vol = F1_0/2;
|
||||||
if (objp->type == OBJ_ROBOT)
|
if (objp->type == OBJ_ROBOT)
|
||||||
vol *= 2;
|
vol *= 2;
|
||||||
else if (sound_flag)
|
if (sound_flag)
|
||||||
digi_link_sound_to_object(SOUND_EXPLODING_WALL, objp-Objects, 0, vol);
|
digi_link_sound_to_object(SOUND_EXPLODING_WALL, objp-Objects, 0, vol);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue