if (arm) {
arm->rot.x = mesh ? -M_PI / 8.0 : 0.0;
- model_node_transform(arm);
+ model_node_transform(arm);
}
}
{
ClientPlayerData *data = entity->extra;
+ pthread_mutex_init(&data->mtx_inv, NULL);
+
item_stack_initialize(&data->inventory.left);
item_stack_initialize(&data->inventory.right);
{
ClientPlayerData *data = entity->extra;
+ pthread_mutex_destroy(&data->mtx_inv);
+
item_stack_destroy(&data->inventory.left);
item_stack_destroy(&data->inventory.right);
}
return;
ClientPlayerData *data = entity->extra;
+ pthread_mutex_lock(&data->mtx_inv);
item_stack_deserialize(&data->inventory.left, &pkt->left);
item_stack_deserialize(&data->inventory.right, &pkt->right);
wield_update(data->bones.hand_left, data->bones.arm_left, data->inventory.left.type);
wield_update(data->bones.hand_right, data->bones.arm_right, data->inventory.right.type);
+ pthread_mutex_unlock(&data->mtx_inv);
refcount_drp(&entity->rc);
}