From 436e68293ec0b3420a2c2fe77289fc14324c1f26 Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Sun, 26 Jul 2020 10:16:25 +0200 Subject: [PATCH] Support for passing a random seed. --- CInterface/Battling/Battle.cpp | 4 ++-- src/Battling/Models/Battle.hpp | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CInterface/Battling/Battle.cpp b/CInterface/Battling/Battle.cpp index 8e39123..e406485 100644 --- a/CInterface/Battling/Battle.cpp +++ b/CInterface/Battling/Battle.cpp @@ -4,9 +4,9 @@ using namespace CreatureLib::Battling; export uint8_t CreatureLib_Battle_Construct(Battle*& out, const BattleLibrary* library, BattleParty* partyArr[], size_t numberOfParties, bool canFlee, uint8_t numberOfSides, - uint8_t creaturesPerSide) { + uint8_t creaturesPerSide, uint_fast32_t randomSeed) { Try(ArbUt::List parties(partyArr, partyArr + numberOfParties); - out = new Battle(library, parties, canFlee, numberOfSides, creaturesPerSide);) + out = new Battle(library, parties, canFlee, numberOfSides, creaturesPerSide, randomSeed);) } export void CreatureLib_Battle_Destruct(const Battle* p) { delete p; } diff --git a/src/Battling/Models/Battle.hpp b/src/Battling/Models/Battle.hpp index 9b65a01..f85cf1e 100644 --- a/src/Battling/Models/Battle.hpp +++ b/src/Battling/Models/Battle.hpp @@ -34,9 +34,12 @@ namespace CreatureLib::Battling { public: Battle(const BattleLibrary* library, ArbUt::List parties, bool canFlee = true, - uint8_t numberOfSides = 2, uint8_t creaturesPerSide = 1) + uint8_t numberOfSides = 2, uint8_t creaturesPerSide = 1, + uint_fast32_t randomSeed = std::chrono::duration_cast( + std::chrono::system_clock::now().time_since_epoch()) + .count()) : _library(library), _parties(parties.GetStdList()), _canFlee(canFlee), _numberOfSides(numberOfSides), - _creaturesPerSide(creaturesPerSide), _sides(numberOfSides) { + _creaturesPerSide(creaturesPerSide), _sides(numberOfSides), _random(randomSeed) { AssertNotNull(_library); AssertAllNotNull(parties);