hedgewars/uRandom.pas
changeset 11822 4600dcb9db4f
parent 11046 47a8c19ecb60
child 13358 a79c1206bacd
equal deleted inserted replaced
11821:d8844d4c67de 11822:4600dcb9db4f
    47 n:= (n + 1) and $3F;
    47 n:= (n + 1) and $3F;
    48    cirbuf[n]:= cirbuf[n] xor r;
    48    cirbuf[n]:= cirbuf[n] xor r;
    49 end;
    49 end;
    50 
    50 
    51 function GetNext: Longword; inline;
    51 function GetNext: Longword; inline;
    52 var s : string;
       
    53 begin
    52 begin
    54 n:= (n + 1) and $3F;
    53     n:= (n + 1) and $3F;
    55 cirbuf[n]:=
    54     cirbuf[n]:=
    56            (cirbuf[(n + 40) and $3F] +           {n - 24 mod 64}
    55            (cirbuf[(n + 40) and $3F] +           {n - 24 mod 64}
    57             cirbuf[(n +  9) and $3F])            {n - 55 mod 64}
    56             cirbuf[(n +  9) and $3F])            {n - 55 mod 64}
    58             and $7FFFFFFF;                       {mod 2^31}
    57             and $7FFFFFFF;                       {mod 2^31}
    59 
    58 
    60    GetNext:= cirbuf[n];
    59     GetNext:= cirbuf[n];
    61    str(GetNext, s);
       
    62 end;
    60 end;
    63 
    61 
    64 procedure SetRandomSeed(Seed: shortstring; dropAdditionalPart: boolean);
    62 procedure SetRandomSeed(Seed: shortstring; dropAdditionalPart: boolean);
    65 var i, t, l: Longword;
    63 var i, t, l: Longword;
    66 begin
    64 begin