diff options
| author | Dan Goodliffe <dan@randomdan.homeip.net> | 2026-04-03 14:17:38 +0100 |
|---|---|---|
| committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2026-04-03 14:17:38 +0100 |
| commit | 5795e8939bcd5e849c5e63e2c443bada03c93a20 (patch) | |
| tree | ae7b9297ce96135a58b6b121fd1ad62da2defe9d /game/vehicles | |
| parent | Add light support to RailVehicleClass (diff) | |
| download | ilt-main.tar.bz2 ilt-main.tar.xz ilt-main.zip | |
Diffstat (limited to 'game/vehicles')
| -rw-r--r-- | game/vehicles/railVehicle.cpp | 1 | ||||
| -rw-r--r-- | game/vehicles/railVehicle.h | 2 | ||||
| -rw-r--r-- | game/vehicles/railVehicleClass.cpp | 4 | ||||
| -rw-r--r-- | game/vehicles/railVehicleClass.h | 6 |
4 files changed, 5 insertions, 8 deletions
diff --git a/game/vehicles/railVehicle.cpp b/game/vehicles/railVehicle.cpp index c11d817..b5de833 100644 --- a/game/vehicles/railVehicle.cpp +++ b/game/vehicles/railVehicle.cpp @@ -20,6 +20,7 @@ RailVehicle::RailVehicle(RailVehicleClassPtr rvc, GlobalPosition3D position) : Location {.pos = position + RelativePosition3D {0, -rvc->wheelBase / 2.F, 0}, .rot = {}}))}, rvClass {std::move(rvc)} { + lightsEnable(rvClass, get()->body.index); } void diff --git a/game/vehicles/railVehicle.h b/game/vehicles/railVehicle.h index 0f341f9..c02c19e 100644 --- a/game/vehicles/railVehicle.h +++ b/game/vehicles/railVehicle.h @@ -8,7 +8,7 @@ template<typename> class Ray; class Train; -class RailVehicle : Selectable, RailVehicleClass::Instance { +class RailVehicle : Selectable, RailVehicleClass::Instance, public InstanceLights { public: explicit RailVehicle(RailVehicleClassPtr rvc, GlobalPosition3D = {}); diff --git a/game/vehicles/railVehicleClass.cpp b/game/vehicles/railVehicleClass.cpp index 5ee778b..cfdc52d 100644 --- a/game/vehicles/railVehicleClass.cpp +++ b/game/vehicles/railVehicleClass.cpp @@ -12,9 +12,7 @@ bool RailVehicleClass::persist(Persistence::PersistenceStore & store) { return STORE_TYPE && STORE_MEMBER(length) && STORE_MEMBER(wheelBase) && STORE_MEMBER(maxSpeed) - && STORE_NAME_HELPER("bogie", bogies, Asset::MeshArrayConstruct) - && STORE_HELPER(pointLight, Persistence::Appender<decltype(pointLight)>) - && STORE_HELPER(spotLight, Persistence::Appender<decltype(spotLight)>) + && STORE_NAME_HELPER("bogie", bogies, Asset::MeshArrayConstruct) && AssetLights::persist(store) && STORE_HELPER(bodyMesh, Asset::MeshConstruct) && Asset::persist(store); } diff --git a/game/vehicles/railVehicleClass.h b/game/vehicles/railVehicleClass.h index b7f6c59..1ea87cd 100644 --- a/game/vehicles/railVehicleClass.h +++ b/game/vehicles/railVehicleClass.h @@ -1,7 +1,7 @@ #pragma once #include "assetFactory/asset.h" -#include "assetFactory/lights.h" +#include "game/mixins/lights.h" #include "gfx/gl/instanceVertices.h" #include "gfx/models/mesh.h" #include "gfx/models/texture.h" @@ -13,7 +13,7 @@ class SceneShader; class ShadowMapper; class Location; -class RailVehicleClass : public Renderable, public Asset { +class RailVehicleClass : public Renderable, public Asset, public AssetLights { public: void render(const SceneShader & shader, const Frustum &) const override; void shadows(const ShadowMapper & shadowMapper, const Frustum &) const override; @@ -27,8 +27,6 @@ public: std::array<Mesh::Ptr, 2> bogies; Mesh::Ptr bodyMesh; Texture::Ptr texture; - std::vector<SpotLight::Ptr> spotLight; - std::vector<PointLight::Ptr> pointLight; float wheelBase; float length; float maxSpeed; |
