MCPcopy Create free account
hub / github.com/DFHack/dfhack / NumberSequence

Class NumberSequence

plugins/cxxrandom.cpp:118–146  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

116
117
118class NumberSequence
119{
120private:
121 unsigned short m_position = 0;
122 std::vector<int64_t> m_numbers;
123public:
124 NumberSequence(){}
125 NumberSequence( int64_t start, int64_t end ) {
126 for( int64_t i = start; i <= end; ++i ) {
127 m_numbers.push_back( i );
128 }
129 }
130 void Add( int64_t num ) { m_numbers.push_back( num ); }
131 void Reset() { m_numbers.clear(); }
132 int64_t Next() {
133 if(m_position >= m_numbers.size()) {
134 m_position = 0;
135 }
136 return m_numbers[m_position++];
137 }
138 void Shuffle( uint64_t engID ) {
139 std::shuffle( std::begin( m_numbers ), std::end( m_numbers ), EnginesKeeper::Instance().RNG(engID));
140 }
141 void Print() {
142 for( auto v : m_numbers ) {
143 cout->print("{} ", v);
144 }
145 }
146};
147
148#define SK_ID_BASE 0
149

Callers 1

MakeNumSequenceMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected