Skip to content

Commit d6e6827

Browse files
committed
Merge branch 'startingcell' into 'master'
Lua startingCell to return the original cell Closes #9010 See merge request OpenMW/openmw!4973
2 parents 3d0adb9 + 8087165 commit d6e6827

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ message(STATUS "Configuring OpenMW...")
8282
set(OPENMW_VERSION_MAJOR 0)
8383
set(OPENMW_VERSION_MINOR 51)
8484
set(OPENMW_VERSION_RELEASE 0)
85-
set(OPENMW_LUA_API_REVISION 116)
85+
set(OPENMW_LUA_API_REVISION 117)
8686
set(OPENMW_POSTPROCESSING_API_REVISION 5)
8787

8888
set(OPENMW_VERSION_COMMITHASH "")

apps/openmw/mwlua/objectbindings.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,13 @@ namespace MWLua
319319
objectT["rotation"] = sol::readonly_property([](const ObjectT& o) -> LuaUtil::TransformQ {
320320
return { toQuat(o.ptr().getRefData().getPosition(), o.ptr().getClass().isActor()) };
321321
});
322+
objectT["startingCell"] = sol::readonly_property([](const ObjectT& o) -> sol::optional<Cell<ObjectT>> {
323+
const MWWorld::Ptr& ptr = o.ptr();
324+
MWWorld::WorldModel* wm = MWBase::Environment::get().getWorldModel();
325+
if (ptr.isInCell() && ptr.getCell() != &wm->getDraftCell())
326+
return Cell<ObjectT>{ ptr.getCell()->getOriginCell(ptr) };
327+
return sol::nullopt;
328+
});
322329
objectT["startingPosition"] = sol::readonly_property(
323330
[](const ObjectT& o) -> osg::Vec3f { return o.ptr().getCellRef().getPosition().asVec3(); });
324331
objectT["startingRotation"] = sol::readonly_property([](const ObjectT& o) -> LuaUtil::TransformQ {

files/lua_api/openmw/core.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@
166166
-- @field openmw.util#Vector3 position Object position.
167167
-- @field #number scale Object scale.
168168
-- @field openmw.util#Transform rotation Object rotation.
169+
-- @field #Cell startingCell The object's original cell. Returns nil if `cell` of the object is nil.
169170
-- @field openmw.util#Vector3 startingPosition The object original position
170171
-- @field openmw.util#Transform startingRotation The object original rotation
171172
-- @field #ObjectOwner owner Ownership information

0 commit comments

Comments
 (0)