projects
/
oweals
/
minetest.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use true distance for block priority.
[oweals/minetest.git]
/
src
/
serverobject.cpp
diff --git
a/src/serverobject.cpp
b/src/serverobject.cpp
index beb17d31f90dacfefe97d15668b7d98c2d69041b..191247829304b48cd0bbb126a61c4d6b74f5902a 100644
(file)
--- a/
src/serverobject.cpp
+++ b/
src/serverobject.cpp
@@
-38,33
+38,37
@@
ServerActiveObject::~ServerActiveObject()
{
}
{
}
-ServerActiveObject* ServerActiveObject::create(
u8
type,
+ServerActiveObject* ServerActiveObject::create(
ActiveObjectType
type,
ServerEnvironment *env, u16 id, v3f pos,
const std::string &data)
{
// Find factory function
ServerEnvironment *env, u16 id, v3f pos,
const std::string &data)
{
// Find factory function
-
core::map<u16, Factory>::Node *
n;
+
std::map<u16, Factory>::iterator
n;
n = m_types.find(type);
n = m_types.find(type);
- if(n == NULL)
- {
+ if(n == m_types.end()) {
+ // These are 0.3 entity types, return without error.
+ if (ACTIVEOBJECT_TYPE_ITEM <= type && type <= ACTIVEOBJECT_TYPE_MOBV2) {
+ return NULL;
+ }
+
// If factory is not found, just return.
// If factory is not found, just return.
-
dstream<<"WARNING:
ServerActiveObject: No factory for type="
+
warningstream<<"
ServerActiveObject: No factory for type="
<<type<<std::endl;
return NULL;
}
<<type<<std::endl;
return NULL;
}
- Factory f = n->
getValue()
;
+ Factory f = n->
second
;
ServerActiveObject *object = (*f)(env, pos, data);
return object;
}
void ServerActiveObject::registerType(u16 type, Factory f)
{
ServerActiveObject *object = (*f)(env, pos, data);
return object;
}
void ServerActiveObject::registerType(u16 type, Factory f)
{
-
core::map<u16, Factory>::Node *
n;
+
std::map<u16, Factory>::iterator
n;
n = m_types.find(type);
n = m_types.find(type);
- if(n)
+ if(n
!= m_types.end()
)
return;
return;
- m_types
.insert(type, f)
;
+ m_types
[type] = f
;
}
float ServerActiveObject::getMinimumSavedMovement()
}
float ServerActiveObject::getMinimumSavedMovement()
@@
-78,7
+82,7
@@
ItemStack ServerActiveObject::getWieldedItem() const
if(inv)
{
const InventoryList *list = inv->getList(getWieldList());
if(inv)
{
const InventoryList *list = inv->getList(getWieldList());
- if(list
)
+ if(list
&& (getWieldIndex() < (s32)list->getSize()))
return list->getItem(getWieldIndex());
}
return ItemStack();
return list->getItem(getWieldIndex());
}
return ItemStack();
@@
-86,17
+90,11
@@
ItemStack ServerActiveObject::getWieldedItem() const
bool ServerActiveObject::setWieldedItem(const ItemStack &item)
{
bool ServerActiveObject::setWieldedItem(const ItemStack &item)
{
- Inventory *inv = getInventory();
- if(inv)
- {
- InventoryList *list = inv->getList(getWieldList());
- if (list)
- {
+ if(Inventory *inv = getInventory()) {
+ if (InventoryList *list = inv->getList(getWieldList())) {
list->changeItem(getWieldIndex(), item);
list->changeItem(getWieldIndex(), item);
- setInventoryModified();
return true;
}
}
return false;
}
return true;
}
}
return false;
}
-