summaryrefslogtreecommitdiff
path: root/src/dungeon_random.c
blob: 6f180d31aac3f145ec88cdb30c375478f80dba8e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "global.h"
#include "dungeon_random.h"

extern u32 gDungeonRngState;

void SetDungeonRNG(u32 value)
{
    gDungeonRngState = (value | 1);
}

s32 DungeonRandom(void)
{
    gDungeonRngState = 1566083941 * gDungeonRngState + 1;
    return gDungeonRngState >> 16;
}

s32 DungeonRandomCapped(s32 cap)
{
    return (((DungeonRandom() & 0xFFFF) * cap) >> 16) & 0xFFFF;
}