diff --git a/similar/main/multi.cpp b/similar/main/multi.cpp index 0f33f4b97..d5f2a7963 100644 --- a/similar/main/multi.cpp +++ b/similar/main/multi.cpp @@ -5725,7 +5725,10 @@ void multi_object_to_object_rw(const vobjptr_t obj, object_rw *obj_rw) obj_rw->ctype.ai_info.path_length = obj->ctype.ai_info.path_length; obj_rw->ctype.ai_info.cur_path_index = obj->ctype.ai_info.cur_path_index; obj_rw->ctype.ai_info.danger_laser_num = obj->ctype.ai_info.danger_laser_num; - obj_rw->ctype.ai_info.danger_laser_signature = obj->ctype.ai_info.danger_laser_signature.get(); + if (obj->ctype.ai_info.danger_laser_num != object_none) + obj_rw->ctype.ai_info.danger_laser_signature = obj->ctype.ai_info.danger_laser_signature.get(); + else + obj_rw->ctype.ai_info.danger_laser_signature = 0; #if defined(DXX_BUILD_DESCENT_I) obj_rw->ctype.ai_info.follow_path_start_seg = segment_none; obj_rw->ctype.ai_info.follow_path_end_seg = segment_none; @@ -5885,7 +5888,8 @@ void multi_object_rw_to_object(object_rw *obj_rw, const vobjptr_t obj) obj->ctype.ai_info.path_length = obj_rw->ctype.ai_info.path_length; obj->ctype.ai_info.cur_path_index = obj_rw->ctype.ai_info.cur_path_index; obj->ctype.ai_info.danger_laser_num = obj_rw->ctype.ai_info.danger_laser_num; - obj->ctype.ai_info.danger_laser_signature = object_signature_t{static_cast(obj_rw->ctype.ai_info.danger_laser_signature)}; + if (obj->ctype.ai_info.danger_laser_num != object_none) + obj->ctype.ai_info.danger_laser_signature = object_signature_t{static_cast(obj_rw->ctype.ai_info.danger_laser_signature)}; #if defined(DXX_BUILD_DESCENT_I) #elif defined(DXX_BUILD_DESCENT_II) obj->ctype.ai_info.dying_sound_playing = obj_rw->ctype.ai_info.dying_sound_playing; diff --git a/similar/main/state.cpp b/similar/main/state.cpp index ea926cc13..065632283 100644 --- a/similar/main/state.cpp +++ b/similar/main/state.cpp @@ -225,7 +225,10 @@ static void state_object_to_object_rw(const vcobjptr_t obj, object_rw *const obj obj_rw->ctype.ai_info.path_length = obj->ctype.ai_info.path_length; obj_rw->ctype.ai_info.cur_path_index = obj->ctype.ai_info.cur_path_index; obj_rw->ctype.ai_info.danger_laser_num = obj->ctype.ai_info.danger_laser_num; - obj_rw->ctype.ai_info.danger_laser_signature = obj->ctype.ai_info.danger_laser_signature.get(); + if (obj->ctype.ai_info.danger_laser_num != object_none) + obj_rw->ctype.ai_info.danger_laser_signature = obj->ctype.ai_info.danger_laser_signature.get(); + else + obj_rw->ctype.ai_info.danger_laser_signature = 0; #if defined(DXX_BUILD_DESCENT_I) obj_rw->ctype.ai_info.follow_path_start_seg = segment_none; obj_rw->ctype.ai_info.follow_path_end_seg = segment_none; @@ -399,7 +402,8 @@ static void state_object_rw_to_object(const object_rw *const obj_rw, const vobjp obj->ctype.ai_info.path_length = obj_rw->ctype.ai_info.path_length; obj->ctype.ai_info.cur_path_index = obj_rw->ctype.ai_info.cur_path_index; obj->ctype.ai_info.danger_laser_num = obj_rw->ctype.ai_info.danger_laser_num; - obj->ctype.ai_info.danger_laser_signature = object_signature_t{static_cast(obj_rw->ctype.ai_info.danger_laser_signature)}; + if (obj->ctype.ai_info.danger_laser_num != object_none) + obj->ctype.ai_info.danger_laser_signature = object_signature_t{static_cast(obj_rw->ctype.ai_info.danger_laser_signature)}; #if defined(DXX_BUILD_DESCENT_I) #elif defined(DXX_BUILD_DESCENT_II) obj->ctype.ai_info.dying_sound_playing = obj_rw->ctype.ai_info.dying_sound_playing;