From a32d9f01a12de7e8d6d04570bf1eb76283ec93ad Mon Sep 17 00:00:00 2001 From: Kp Date: Sat, 9 Jan 2016 16:38:13 +0000 Subject: [PATCH] Remove return value truncation in find_object_seg --- common/main/fwd-object.h | 2 +- similar/editor/eobject.cpp | 5 +++-- similar/main/object.cpp | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/common/main/fwd-object.h b/common/main/fwd-object.h index 127b1aed6..404744924 100644 --- a/common/main/fwd-object.h +++ b/common/main/fwd-object.h @@ -261,7 +261,7 @@ int update_object_seg(vobjptridx_t obj); // any segment, returns -1. Note: This function is defined in // gameseg.h, but object.h depends on gameseg.h, and object.h is where // object is defined...get it? -segnum_t find_object_seg(vobjptr_t obj); +segptridx_t find_object_seg(vobjptr_t obj); // go through all objects and make sure they have the correct segment // numbers used when debugging is on diff --git a/similar/editor/eobject.cpp b/similar/editor/eobject.cpp index 98999ec74..d10eb5365 100644 --- a/similar/editor/eobject.cpp +++ b/similar/editor/eobject.cpp @@ -828,8 +828,9 @@ static void move_object_to_position(const vobjptridx_t objp, const vms_vector &n if (fate == HIT_WALL) { objp->pos = hit_info.hit_pnt; - auto new_segnum = find_object_seg(objp); - obj_relink(objp, vsegptridx(new_segnum)); + const auto &&segp = find_object_seg(objp); + if (segp != segment_none) + obj_relink(objp, segp); } else { editor_status("Attempted to move object out of mine. Object not moved."); } diff --git a/similar/main/object.cpp b/similar/main/object.cpp index 64b4a869b..7a09e811d 100644 --- a/similar/main/object.cpp +++ b/similar/main/object.cpp @@ -1933,7 +1933,7 @@ void reset_objects(int n_objs) } //Tries to find a segment for an object, using find_point_seg() -segnum_t find_object_seg(const vobjptr_t obj) +segptridx_t find_object_seg(const vobjptr_t obj) { return find_point_seg(obj->pos, vsegptridx(obj->segnum)); } @@ -1949,7 +1949,7 @@ int update_object_seg(const vobjptridx_t obj) return 0; if ( newseg != obj->segnum ) - obj_relink(obj, vsegptridx(newseg)); + obj_relink(obj, newseg); return 1; }