diff --git a/src/controller.h b/src/controller.h index b8338ce..90e6991 100644 --- a/src/controller.h +++ b/src/controller.h @@ -1466,7 +1466,7 @@ struct Controller { mask |= layers[i].mask; // set meshes visibility for (int j = 0; j < model->mCount; j++) - joints[j].w = (vmask & (1 << j)) ? 1.0f : -1.0f; // hide invisible parts + joints[j].w = (vmask & (1 << j)) ? 1.0f : 0.0f; // hide invisible parts if (explodeMask) { ASSERT(explodeParts); diff --git a/src/inventory.h b/src/inventory.h index 724792a..b8a437c 100644 --- a/src/inventory.h +++ b/src/inventory.h @@ -727,11 +727,12 @@ struct Inventory { if (smart) { switch (type) { case TR::Entity::INV_PISTOLS : - case TR::Entity::INV_AMMO_PISTOLS : + case TR::Entity::INV_AMMO_PISTOLS : + count = UNLIMITED_AMMO; // pistols always has unlimited ammo addAmmo(type, count, 10, TR::Entity::INV_PISTOLS, TR::Entity::INV_AMMO_PISTOLS); break; case TR::Entity::INV_SHOTGUN : - case TR::Entity::INV_AMMO_SHOTGUN : + case TR::Entity::INV_AMMO_SHOTGUN : addAmmo(type, count, 2, TR::Entity::INV_SHOTGUN, TR::Entity::INV_AMMO_SHOTGUN); break; case TR::Entity::INV_MAGNUMS : @@ -739,7 +740,7 @@ struct Inventory { addAmmo(type, count, 25, TR::Entity::INV_MAGNUMS, TR::Entity::INV_AMMO_MAGNUMS); break; case TR::Entity::INV_UZIS : - case TR::Entity::INV_AMMO_UZIS : + case TR::Entity::INV_AMMO_UZIS : addAmmo(type, count, 50, TR::Entity::INV_UZIS, TR::Entity::INV_AMMO_UZIS); break; default : ; diff --git a/src/lara.h b/src/lara.h index b9f5f9f..a90cda0 100644 --- a/src/lara.h +++ b/src/lara.h @@ -1673,7 +1673,7 @@ struct Lara : Character { if (hitType == TR::HIT_LAVA) { for (int i = 0; i < 10; i++) - Flame::add(game, this, int(randf() * 24.0f)); + Flame::add(game, this, rand() % getModel()->mCount); } if (state != oldState) diff --git a/src/trigger.h b/src/trigger.h index 8cc76a0..7ff90c3 100644 --- a/src/trigger.h +++ b/src/trigger.h @@ -145,7 +145,8 @@ struct Flame : Sprite { if (flame) { flame->owner = owner; - flame->jointIndex = jCount > 1 ? (jointIndex % jCount) : -1; + flame->jointIndex = jCount > 1 ? jointIndex : -1; + ASSERT(flame->jointIndex < jCount); } return flame; }