Skip to content

Commit 87829cd

Browse files
authoredApr 18, 2020
script: Move SAO usability check so that it covers all functions (#9698)
see also 91eef64
1 parent 4fb6b6a commit 87829cd

File tree

1 file changed

+4
-12
lines changed

1 file changed

+4
-12
lines changed
 

‎src/script/lua_api/l_object.cpp

+4-12
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ ObjectRef* ObjectRef::checkobject(lua_State *L, int narg)
5050
ServerActiveObject* ObjectRef::getobject(ObjectRef *ref)
5151
{
5252
ServerActiveObject *co = ref->m_object;
53+
if (co && co->isGone())
54+
return NULL;
5355
return co;
5456
}
5557

@@ -60,8 +62,6 @@ LuaEntitySAO* ObjectRef::getluaobject(ObjectRef *ref)
6062
return NULL;
6163
if (obj->getType() != ACTIVEOBJECT_TYPE_LUAENTITY)
6264
return NULL;
63-
if (obj->isGone())
64-
return NULL;
6565
return (LuaEntitySAO*)obj;
6666
}
6767

@@ -72,8 +72,6 @@ PlayerSAO* ObjectRef::getplayersao(ObjectRef *ref)
7272
return NULL;
7373
if (obj->getType() != ACTIVEOBJECT_TYPE_PLAYER)
7474
return NULL;
75-
if (obj->isGone())
76-
return NULL;
7775
return (PlayerSAO*)obj;
7876
}
7977

@@ -132,7 +130,6 @@ int ObjectRef::l_set_pos(lua_State *L)
132130
{
133131
NO_MAP_LOCK_REQUIRED;
134132
ObjectRef *ref = checkobject(L, 1);
135-
//LuaEntitySAO *co = getluaobject(ref);
136133
ServerActiveObject *co = getobject(ref);
137134
if (co == NULL) return 0;
138135
// pos
@@ -147,7 +144,6 @@ int ObjectRef::l_move_to(lua_State *L)
147144
{
148145
NO_MAP_LOCK_REQUIRED;
149146
ObjectRef *ref = checkobject(L, 1);
150-
//LuaEntitySAO *co = getluaobject(ref);
151147
ServerActiveObject *co = getobject(ref);
152148
if (co == NULL) return 0;
153149
// pos
@@ -1102,17 +1098,13 @@ int ObjectRef::l_add_player_velocity(lua_State *L)
11021098
ObjectRef *ref = checkobject(L, 1);
11031099
v3f vel = checkFloatPos(L, 2);
11041100

1105-
RemotePlayer *player = getplayer(ref);
11061101
PlayerSAO *co = getplayersao(ref);
1107-
if (!player || !co)
1102+
if (!co)
11081103
return 0;
11091104

1110-
session_t peer_id = player->getPeerId();
1111-
if (peer_id == PEER_ID_INEXISTENT)
1112-
return 0;
11131105
// Do it
11141106
co->setMaxSpeedOverride(vel);
1115-
getServer(L)->SendPlayerSpeed(peer_id, vel);
1107+
getServer(L)->SendPlayerSpeed(co->getPeerID(), vel);
11161108
return 0;
11171109
}
11181110

0 commit comments

Comments
 (0)
Please sign in to comment.