From 4e1b6d08f4ac55f422a75b97fdab073b206bb814 Mon Sep 17 00:00:00 2001 From: Ykkrosh Date: Sat, 14 Aug 2010 22:11:32 +0000 Subject: [PATCH] Fix lithobolos size and projectile. Fix projectiles launching from actors with no ammo prop. Fix default camera location on maps with no civ centers. Avoid units getting stuck on the edges of buildings. This was SVN commit r7950. --- .../public/art/actors/props/units/weapons/rock.xml | 13 +++++++++++++ .../public/art/actors/units/hellenes/siege_rock.xml | 3 +++ .../units/hele_mechanical_siege_lithobolos.xml | 2 +- source/graphics/MapReader.cpp | 2 ++ .../components/CCmpObstructionManager.cpp | 5 ++++- .../components/CCmpProjectileManager.cpp | 2 +- 6 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 binaries/data/mods/public/art/actors/props/units/weapons/rock.xml 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; }