mirror of
https://github.com/zeldaret/ss
synced 2026-08-31 01:20:25 -04:00
43 lines
1012 B
C++
43 lines
1012 B
C++
#include "d/snd/d_snd_rng.h"
|
|
|
|
#include "rvl/OS/OSTime.h"
|
|
|
|
dSndRng_c::dSndRng_c() : field_0x08(0), field_0x10(0) {
|
|
init();
|
|
}
|
|
|
|
void dSndRng_c::init() {
|
|
u32 tick = OSGetTick();
|
|
field_0x08 = ((tick << 0x10) & 0xFFF0000) | tick >> 0x10;
|
|
field_0x10 = field_0x08;
|
|
}
|
|
|
|
u32 dSndRng_c::rndInt(s32 max) {
|
|
// TODO
|
|
return 0;
|
|
/*
|
|
s32 temp_r0;
|
|
s32 temp_r11;
|
|
|
|
temp_r11 = this->unkC;
|
|
this->unkC = (temp_r11 * 0xB2E3D431) + 0x508EBD;
|
|
temp_r0 = MULTU_HI(temp_r11, 0xB2E3D431) + (this->unk8 * 0xB2E3D431) + (temp_r11 * 0x690379B2) + M2C_CARRY;
|
|
this->unk8 = temp_r0;
|
|
return MULTU_HI(temp_r0, arg0) + (0 * arg0);
|
|
=>
|
|
|
|
lo_1 = (lo_0 * 0xB2E3D431) + 0x508EBD;
|
|
hi_1 = MULTU_HI(lo_0, 0xB2E3D431) + (hi_0 * 0xB2E3D431) + (lo_0 * 0x690379B2) + M2C_CARRY;
|
|
return MULTU_HI(hi_1, arg0) + (0 * arg0);
|
|
*/
|
|
}
|
|
|
|
bool dSndRng_c::rndBool(s32 chance) {
|
|
if (chance >= 100) {
|
|
return true;
|
|
} else if (chance <= 0) {
|
|
return false;
|
|
}
|
|
return rndInt(100) < chance;
|
|
}
|