/// \brief Get an in-game Entity by its string ID. /// /// @param id string ID of Entity to be retrieved. /// @return pointer to Entity retrieved, or zero if it was not found. LocatedEntity * BaseWorld::getEntity(const std::string & id) const { long intId = integerId(id); EntityDict::const_iterator I = m_eobjects.find(intId); if (I != m_eobjects.end()) { assert(I->second != 0); return I->second; } else { return 0; } }
CyPy_MemEntity::CyPy_MemEntity(Py::PythonClassInstanceWeak* self, Py::Tuple& args, Py::Dict& kwds) : CyPy_LocatedEntityBase(self, args, kwds) { args.verify_length(1); auto arg = args.front(); if (arg.isString()) { auto id = verifyString(args.front()); long intId = integerId(id); if (intId == -1L) { throw Py::TypeError("MemEntity() requires string/int ID"); } m_value = new MemEntity(id, intId); } else if (CyPy_MemEntity::check(arg)) { m_value = CyPy_MemEntity::value(arg); } else { throw Py::TypeError("MemEntity() requires string ID or MemEntity"); } }