diff --git a/src/lara.h b/src/lara.h index 8e2f5267..0b7dd66f 100644 --- a/src/lara.h +++ b/src/lara.h @@ -524,9 +524,8 @@ struct Lara : Character { if (level->version & TR::VER_TR1) meshSwap(1, TR::MODEL_LARA_SPEC, JOINT_MASK_UPPER | JOINT_MASK_LOWER); } else { - if (level->id == TR::LVL_TR2_HOUSE) - wpnSet(TR::Entity::SHOTGUN); - else + int *wpnAmmo = game->invCount(TR::Entity::PISTOLS); + if (wpnAmmo && *wpnAmmo > 0) wpnSet(TR::Entity::PISTOLS); } diff --git a/src/level.h b/src/level.h index 40d8c7e3..f1580d11 100644 --- a/src/level.h +++ b/src/level.h @@ -809,6 +809,14 @@ struct Level : IGame { Core::fogParams = TR::getFogParams(level.id); + inventory->game = this; + + if (!level.isCutsceneLevel()) { + inventory->reset(); + memset(&saveStats, 0, sizeof(saveStats)); + saveStats.level = level.id; + } + initTextures(); mesh = new MeshBuilder(&level, atlas); initOverrides(); @@ -862,14 +870,6 @@ struct Level : IGame { } */ - inventory->game = this; - - if (!level.isCutsceneLevel()) { - inventory->reset(); - memset(&saveStats, 0, sizeof(saveStats)); - saveStats.level = level.id; - } - saveResult = SAVE_RESULT_SUCCESS; if (loadSlot != -1 && saveSlots[loadSlot].getLevelID() == level.id) { parseSaveSlot(saveSlots[loadSlot]);