diff --git a/binaries/data/mods/public/art/actors/props/units/weapons/rock.xml b/binaries/data/mods/public/art/actors/props/units/weapons/rock.xml
new file mode 100644
index 0000000000..7cc0f1200e
--- /dev/null
+++ b/binaries/data/mods/public/art/actors/props/units/weapons/rock.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+ props/onager_projectile.dae
+ gaia/stone_temperate_granite.dds
+
+
+
+
diff --git a/binaries/data/mods/public/art/actors/units/hellenes/siege_rock.xml b/binaries/data/mods/public/art/actors/units/hellenes/siege_rock.xml
index ad9030d7c0..7935373192 100644
--- a/binaries/data/mods/public/art/actors/units/hellenes/siege_rock.xml
+++ b/binaries/data/mods/public/art/actors/units/hellenes/siege_rock.xml
@@ -7,6 +7,9 @@
structural/hele_sr.pmd
structural/hele_siege.dds
+
+
+
diff --git a/binaries/data/mods/public/simulation/templates/units/hele_mechanical_siege_lithobolos.xml b/binaries/data/mods/public/simulation/templates/units/hele_mechanical_siege_lithobolos.xml
index 23e90309d5..6d73702419 100644
--- a/binaries/data/mods/public/simulation/templates/units/hele_mechanical_siege_lithobolos.xml
+++ b/binaries/data/mods/public/simulation/templates/units/hele_mechanical_siege_lithobolos.xml
@@ -29,6 +29,6 @@
3.5
-
+
diff --git a/source/graphics/MapReader.cpp b/source/graphics/MapReader.cpp
index 953d708d03..b973a18757 100644
--- a/source/graphics/MapReader.cpp
+++ b/source/graphics/MapReader.cpp
@@ -221,6 +221,8 @@ int CMapReader::ApplyData()
*pLightEnv = m_LightEnv;
}
+ pGameView->ResetCameraTarget(pGameView->GetCamera()->GetFocus());
+
if (m_CameraStartupTarget != INVALID_ENTITY && pGameView)
{
CmpPtr cmpPosition(*pSimulation2, m_CameraStartupTarget);
diff --git a/source/simulation2/components/CCmpObstructionManager.cpp b/source/simulation2/components/CCmpObstructionManager.cpp
index d846f2c9a5..7e0f3a17a9 100644
--- a/source/simulation2/components/CCmpObstructionManager.cpp
+++ b/source/simulation2/components/CCmpObstructionManager.cpp
@@ -471,7 +471,10 @@ bool CCmpObstructionManager::Rasterise(Grid& grid)
// we maybe want to expand the square a bit so we're less likely to think there's
// free space between buildings when there isn't. But this is just a random guess
// and needs to be tweaked until everything works nicely.
- entity_pos_t expand = entity_pos_t::FromInt(CELL_SIZE / 2);
+ //entity_pos_t expand = entity_pos_t::FromInt(CELL_SIZE / 2);
+ // Actually that's bad because units get stuck when the A* pathfinder thinks they're
+ // blocked on all sides, so it's better to underestimate
+ entity_pos_t expand = entity_pos_t::FromInt(0);
CFixedVector2D halfSize(it->second.hw + expand, it->second.hh + expand);
CFixedVector2D halfBound = Geometry::GetHalfBoundingBox(it->second.u, it->second.v, halfSize);
diff --git a/source/simulation2/components/CCmpProjectileManager.cpp b/source/simulation2/components/CCmpProjectileManager.cpp
index 6d4c6e7569..4671bdfa55 100644
--- a/source/simulation2/components/CCmpProjectileManager.cpp
+++ b/source/simulation2/components/CCmpProjectileManager.cpp
@@ -162,7 +162,7 @@ void CCmpProjectileManager::LaunchProjectile(entity_id_t source, CFixedVector3D
if (sourcePos.null())
return;
- CVector3D sourceVec(sourcePos->GetPosition());
+ sourceVec = sourcePos->GetPosition();
sourceVec.Y += 3.f;
}