Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions src/OpenSHC/Random/RNG/Constructor_RNG.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#include "OpenSHC/Random/RNG.func.hpp"
#include "OpenSHC/Random/RNG.hpp"

namespace OpenSHC {
namespace Random {

// FUNCTION: STRONGHOLDCRUSADER 0x00471810
RNG* RNG::Constructor_RNG()
{
MACRO_CALL_MEMBER(RNG_Func::setTimeBasedSeed, this)();
MACRO_CALL_MEMBER(RNG_Func::populateRNG1040, this)();
return this;
}

}
}
18 changes: 18 additions & 0 deletions src/OpenSHC/Random/RNG/nextRandomNumber1.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@

#include "OpenSHC/Random/RNG.hpp"

namespace OpenSHC {
namespace Random {

// FUNCTION: STRONGHOLDCRUSADER 0x0046A800
void RNG::nextRandomNumber1()
{
this->currentNumber1 = this->randomNumbers[this->index1];
this->index1 += 1;
if (20000 <= this->index1) {
this->index1 = 0;
}
}
}

}
18 changes: 18 additions & 0 deletions src/OpenSHC/Random/RNG/nextRandomNumber2.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@

#include "OpenSHC/Random/RNG.hpp"

namespace OpenSHC {
namespace Random {

// FUNCTION: STRONGHOLDCRUSADER 0x0046a7d0
void RNG::nextRandomNumber2()
{
this->currentNumber2 = this->randomNumbers[this->index2];
this->index2 = this->index2 + 1;
if (20000 <= this->index2) {
this->index2 = 0;
}
}
}

}
27 changes: 27 additions & 0 deletions src/OpenSHC/Random/RNG/populateRNG1040.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#include "OpenSHC/Global.func.hpp"
#include "OpenSHC/OS.func.hpp"
#include "OpenSHC/Random/RNG.func.hpp"
#include "OpenSHC/Random/RNG.hpp"

namespace OpenSHC {
namespace Random {

// FUNCTION: STRONGHOLDCRUSADER 0x0046a760
void RNG::populateRNG1040()
{
MACRO_CALL(OpenSHC::Global_Func::SetRNGSeed)(this->seed);
this->index2 = 0;
this->index1 = 0;
for (int i = 0; i < 20000; i++) {
this->randomNumbers[i] = MACRO_CALL(OpenSHC::OS_Func::_rand)();
}

this->currentNumber2 = this->randomNumbers[this->index2];
this->index2 += 1;

this->currentNumber1 = this->randomNumbers[this->index1];
this->index1 += 1;
}

}
}
17 changes: 17 additions & 0 deletions src/OpenSHC/Random/RNG/setTimeBasedSeed.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#include "OpenSHC/OS.func.hpp"
#include "OpenSHC/Random/RNG.func.hpp"
#include "OpenSHC/Random/RNG.hpp"
#include <time.h>

namespace OpenSHC {
namespace Random {

// FUNCTION: STRONGHOLDCRUSADER 0x0046A740
void RNG::setTimeBasedSeed()
{
__time64_t time = MACRO_CALL(OpenSHC::OS_Func::__time64)((__time64_t*)0x0);
this->seed = (int)time;
}

}
}
10 changes: 5 additions & 5 deletions status/addresses-SHC-3BB0A8C1.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10168,10 +10168,10 @@ SHC_3BB0A8C1_0x0046A4C4 | 0.0% | Pending
SHC_3BB0A8C1_0x0046A4C8 | 0.0% | Pending
Comment thread
TheRedDaemon marked this conversation as resolved.
SHC_3BB0A8C1_0x0046A4D0 | 0.0% | Pending
SHC_3BB0A8C1_0x0046A720 | 0.0% | Pending
SHC_3BB0A8C1_0x0046A740 | 0.0% | Pending
SHC_3BB0A8C1_0x0046A760 | 0.0% | Pending
SHC_3BB0A8C1_0x0046A7D0 | 0.0% | Pending
SHC_3BB0A8C1_0x0046A800 | 0.0% | Pending
SHC_3BB0A8C1_0x0046A740 | 100.0% | Reimplemented
SHC_3BB0A8C1_0x0046A760 | 100.0% | Reimplemented
SHC_3BB0A8C1_0x0046A7D0 | 100.0% | Reimplemented
SHC_3BB0A8C1_0x0046A800 | 100.0% | Reimplemented
SHC_3BB0A8C1_0x0046A830 | 0.0% | Pending
SHC_3BB0A8C1_0x0046A850 | 0.0% | Pending
SHC_3BB0A8C1_0x0046A890 | 0.0% | Pending
Expand Down Expand Up @@ -10475,7 +10475,7 @@ SHC_3BB0A8C1_0x004717F8 | 0.0% | Pending
SHC_3BB0A8C1_0x004717FC | 0.0% | Pending
SHC_3BB0A8C1_0x00471800 | 0.0% | Pending
SHC_3BB0A8C1_0x00471804 | 0.0% | Pending
SHC_3BB0A8C1_0x00471810 | 0.0% | Pending
SHC_3BB0A8C1_0x00471810 | 100.0% | Reimplemented
SHC_3BB0A8C1_0x00471830 | 0.0% | Pending
SHC_3BB0A8C1_0x00471860 | 0.0% | Pending
SHC_3BB0A8C1_0x00471890 | 0.0% | Pending
Expand Down