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; }