X-Git-Url: http://git.localhorst.tv/?p=blobs.git;a=blobdiff_plain;f=src%2Fcreature%2Fcreature.cpp;h=f51f52ca4a16427cf75ab870577b8f5e71df45b6;hp=4345bd9837b668bdd96a2cc612514c22a25ae686;hb=c475ecb15fb2222977cf64ca7bdbea0f303a4192;hpb=69dade793864169f7773cc133d54277eea9bf760 diff --git a/src/creature/creature.cpp b/src/creature/creature.cpp index 4345bd9..f51f52c 100644 --- a/src/creature/creature.cpp +++ b/src/creature/creature.cpp @@ -1,6 +1,7 @@ #include "Creature.hpp" #include "Genome.hpp" #include "Memory.hpp" +#include "NameGenerator.hpp" #include "Situation.hpp" #include "Steering.hpp" @@ -16,6 +17,7 @@ #include "../world/TileType.hpp" #include +#include #include #include @@ -371,7 +373,7 @@ void Split(Creature &c) { Creature *a = new Creature(c.GetSimulation()); const Situation &s = c.GetSituation(); // TODO: generate names - a->Name("Blobby"); + a->Name(c.GetSimulation().Assets().name.Sequential()); // TODO: mutate c.GetGenome().Configure(*a); s.GetPlanet().AddCreature(a); @@ -382,7 +384,7 @@ void Split(Creature &c) { a->BuildVAO(); Creature *b = new Creature(c.GetSimulation()); - b->Name("Sir Blobalot"); + b->Name(c.GetSimulation().Assets().name.Sequential()); c.GetGenome().Configure(*b); s.GetPlanet().AddCreature(b); b->GetSituation().SetPlanetSurface( @@ -427,6 +429,20 @@ void Memory::TrackStay(const Location &l, double t) { } +NameGenerator::NameGenerator() +: counter(0) { +} + +NameGenerator::~NameGenerator() { +} + +std::string NameGenerator::Sequential() { + std::stringstream ss; + ss << "Blob " << ++counter; + return ss.str(); +} + + Situation::Situation() : planet(nullptr) , position(0.0)