+ for (; i != select; i++, owned = owned->next);
+ own_map_object(&world.map_objs, &mo->owns, owned->id);
+ }
+ if (mo == get_player())
+ {
+ playerbonus_drop(owns_none);
+ }
+}
+
+
+
+extern void actor_pick(struct MapObj * mo)
+{
+ struct MapObj * picked;
+ for (picked = world.map_objs; NULL != picked; picked = picked->next)
+ {
+ if (picked != mo && yx_uint16_cmp(&picked->pos, &mo->pos))
+ {
+ break;
+ }
+ }
+ if (NULL != picked)
+ {
+ own_map_object(&mo->owns, &world.map_objs, picked->id);
+ set_object_position(picked, mo->pos);
+ }
+ if (mo == get_player())
+ {
+ playerbonus_pick(NULL != picked);
+ }
+}
+
+
+
+extern void actor_use(struct MapObj * mo)
+{
+ uint8_t wrong_object = 1;
+ uint8_t no_object = (NULL == mo->owns);
+ if (!no_object)
+ {
+ uint8_t select = mo->arg;
+ uint8_t i = 0;
+ struct MapObj * selected = mo->owns;
+ for (; i != select; i++, selected = selected->next);