]> git.tdb.fi Git - r2c2.git/blobdiff - source/network/client.h
Don't crash if a train has no router
[r2c2.git] / source / network / client.h
index a8f043e575e0fde9996adaec7f314a3a8983488d..94fa78545da9ef52b977acac9084b694256f7636 100644 (file)
@@ -15,6 +15,7 @@ class Client: Msp::Net::PacketReceiver<DriverStatePacket>,
        Msp::Net::PacketReceiver<TrainInfoPacket>,
        Msp::Net::PacketReceiver<TrainFunctionPacket>,
        Msp::Net::PacketReceiver<TrainControlPacket>,
+       Msp::Net::PacketReceiver<TrainAIControlPacket>,
        Msp::Net::PacketReceiver<TrainStatusPacket>,
        Msp::Net::PacketReceiver<RouteInfoPacket>,
        Msp::Net::PacketReceiver<TrainRoutePacket>,
@@ -28,7 +29,7 @@ public:
        sigc::signal<void, const std::string &> signal_error;
 
 private:
-       const Catalogue &catalogue;
+       Catalogue &catalogue;
        Protocol proto;
        Msp::Net::StreamSocket *socket;
        Msp::Net::Communicator *comm;
@@ -39,7 +40,7 @@ private:
        std::map<unsigned, NetTrain *> trains;
 
 public:
-       Client(const Catalogue &);
+       Client(Catalogue &);
        ~Client();
 
        void use_event_dispatcher(Msp::IO::EventDispatcher &);
@@ -49,10 +50,12 @@ public:
        void send(const P &pkt)
        { if(comm) comm->send(pkt); }
 
-       const Catalogue &get_catalogue() const { return catalogue; }
+       Catalogue &get_catalogue() const { return catalogue; }
        const std::list<std::string> &get_routes() const { return routes; }
        void set_power(bool);
        void set_halt(bool);
+       bool get_power() const { return power; }
+       bool get_halt() const { return halt; }
        NetTrain &get_train(unsigned) const;
        const std::map<unsigned, NetTrain *> &get_trains() const { return trains; }
 
@@ -62,6 +65,7 @@ private:
        virtual void receive(const TrainInfoPacket &);
        virtual void receive(const TrainControlPacket &);
        virtual void receive(const TrainFunctionPacket &);
+       virtual void receive(const TrainAIControlPacket &);
        virtual void receive(const TrainStatusPacket &);
        virtual void receive(const RouteInfoPacket &);
        virtual void receive(const TrainRoutePacket &);