diff --git a/common/main/fwd-object.h b/common/main/fwd-object.h index 614678bb6..4436cc283 100644 --- a/common/main/fwd-object.h +++ b/common/main/fwd-object.h @@ -223,7 +223,7 @@ void obj_unlink(object_base &objnum); objptridx_t obj_create(object_type_t type, ubyte id, vsegptridx_t segnum, const vms_vector &pos, const vms_matrix *orient, fix size, ubyte ctype, ubyte mtype, ubyte rtype); // make a copy of an object. returs num of new object -objptridx_t obj_create_copy(vobjptridx_t objnum, const vms_vector &new_pos, vsegptridx_t newsegnum); +objptridx_t obj_create_copy(const object &srcobj, const vms_vector &new_pos, vsegptridx_t newsegnum); // remove object from the world void obj_delete(vobjptridx_t objnum); diff --git a/similar/main/newdemo.cpp b/similar/main/newdemo.cpp index fd9a7e40c..211aafb96 100644 --- a/similar/main/newdemo.cpp +++ b/similar/main/newdemo.cpp @@ -2033,7 +2033,7 @@ static int newdemo_read_frame_information(int rewrite) case ND_EVENT_RENDER_OBJECT: // Followed by an object structure { - const objptridx_t obj = obj_allocate(); + const auto &&obj = obj_allocate(); if (obj==object_none) break; nd_read_object(obj); @@ -2291,7 +2291,7 @@ static int newdemo_read_frame_information(int rewrite) if (newdemo_read( md->submodel_active, sizeof(md->submodel_active), 1 )!=1) { done=-1; break; } if (newdemo_read( md->submodel_startpoints, sizeof(md->submodel_startpoints), 1 )!=1) { done=-1; break; } #endif - const objptridx_t obj = obj_allocate(); + const auto &&obj = obj_allocate(); if (obj==object_none) break; nd_read_object(obj); diff --git a/similar/main/object.cpp b/similar/main/object.cpp index be8731618..80a1fa94f 100644 --- a/similar/main/object.cpp +++ b/similar/main/object.cpp @@ -1072,7 +1072,7 @@ objptridx_t obj_create(object_type_t type, ubyte id,vsegptridx_t segnum,const vm } // Find next free object - const objptridx_t obj = obj_allocate(); + const auto &&obj = obj_allocate(); if (obj == object_none) //no free objects return object_none; @@ -1162,15 +1162,15 @@ objptridx_t obj_create(object_type_t type, ubyte id,vsegptridx_t segnum,const vm #if DXX_USE_EDITOR //create a copy of an object. returns new object number -objptridx_t obj_create_copy(const vobjptridx_t objnum, const vms_vector &new_pos, const vsegptridx_t newsegnum) +objptridx_t obj_create_copy(const object &srcobj, const vms_vector &new_pos, const vsegptridx_t newsegnum) { // Find next free object - const objptridx_t obj = obj_allocate(); + const auto &&obj = obj_allocate(); if (obj == object_none) return object_none; - *obj = *objnum; + *obj = srcobj; obj->pos = obj->last_pos = new_pos;