]> git.tdb.fi Git - libs/game.git/blobdiff - examples/bassteroids/source/bassteroids.cpp
Load the various setups through resources
[libs/game.git] / examples / bassteroids / source / bassteroids.cpp
index 317b6944f4ce7600b75684008862c1d85d4cb696..5e9d929dea217acd12bf87950919849ce3c0bbbc 100644 (file)
@@ -4,23 +4,33 @@
 #include <msp/game/transform.h>
 #include <msp/game/transformpropagator.h>
 #include "controls.h"
+#include "damagedealer.h"
 #include "gamecontroller.h"
 #include "physics.h"
 #include "playercontroller.h"
+#include "setups.h"
 
 using namespace Msp;
 
+BassteroidsResources::BassteroidsResources()
+{
+       add_type<AsteroidSetup>().suffix(".roid.setup");
+       add_type<BulletSetup>().suffix(".bullet.setup");
+       add_type<ShipSetup>().suffix(".ship.setup");
+}
+
+
 Bassteroids::Bassteroids(int, char **):
        event_observer(director.get_event_bus()),
        game_stage(director.create_stage()),
        pf_setup({ .size={ 80, 45 }}),
        playfield(game_stage.get_root(), pf_setup),
-       cam_setup({ .field_of_view_y=Geometry::Angle<float>::zero(), .size={ 80, 45 }, .near_clip=-30, .far_clip=30, .sequence_name="space.seq" }),
        cam_entity(game_stage.get_root(), Game::TransformValues()),
-       camera(const_cast<const Game::Owned<Game::Entity> &>(cam_entity), cam_setup)
+       camera(cam_entity, resources.get<Game::CameraSetup>("main.camera.setup"))
 {
        game_stage.add_system<GameController>();
        game_stage.add_system<Physics>();
+       game_stage.add_system<DamageDealer>();
        game_stage.add_system<Game::TransformPropagator>();
        player_controller = &game_stage.add_system<PlayerController>();