Files
tp/include/JSystem/JParticle/JPARandom.h
T
TakaRikka 5867eaf68b general cleanup, d_menu_quit / d_a_obj_testcube mostly done, d_msg_scrn_explain debug (#3065)
* typedef for cPhs_Step

* make sdk includes consistent

* d_menu_quit / d_msg_scrn_explain debug

* d_a_obj_testcube mostly done

* d_debug_pad mostly done

* jstudio tool library headers

* some JStudioCameraEditor headers

* d_jcam_editor mostly done

* try fixing some shield regressions

* d_bg_parts mostly done

* fix merge errors

* debug fix
2026-01-24 23:36:23 -08:00

44 lines
780 B
C++

#ifndef JPARANDOM_H
#define JPARANDOM_H
#include <dolphin/types.h>
/**
* @ingroup jsystem-jparticle
*
*/
struct JPARandom {
public:
JPARandom() { mSeed = 0; }
JPARandom(u32 seed) { mSeed = seed; }
~JPARandom() {}
void set_seed(u32 seed) { mSeed = seed; }
u32 get_rndm_u() { return mSeed = mSeed * 0x19660du + 0x3c6ef35fu; }
f32 get_rndm_f() {
union {
u32 u;
f32 f;
} a;
a.u = ((get_rndm_u() >> 9) | 0x3f800000);
return a.f - 1.0f;
}
f32 get_rndm_zp() {
f32 f = get_rndm_f();
return (f + f) - 1.0f;
}
f32 get_rndm_zh() {
return get_rndm_f() - 0.5f;
}
s16 get_rndm_ss() { return (s16)(get_rndm_u() >> 16); }
public:
u32 mSeed;
};
#endif