Prev: 28807 Up: Map Next: 28829
28808: Contextual Random Number
Used by the routine at ObjectPlacement_SpecialTerrain.
Input
H Seed value
Output
A Random number betwen 0-255
ContextualRandomNumber 28808 CALL GetRandomNumber E=random number between 0-255.
28811 LD E,A
28812 LD A,H Get the seed number.
CheckSeedNumber 28813 CP 159 Jump to ReturnFullValue if the seed number in H is lower than 159.
28815 JR C,ReturnFullValue
28817 JR Z,ReturnBoolean Jump to ReturnBoolean if the seed number in H is equal to 159.
Else, subtract 5 and loop back to try again.
28819 SUB 5 Subtract 5 from the seed number.
28821 JR CheckSeedNumber Jump back to CheckSeedNumber.
Return either 0 or 1 using bit 0 of the random number.
ReturnBoolean 28823 LD A,E A=bit 0 of the random number stored in E (ensure it is either 0 or 1).
28824 AND %00000001
28826 RET Return.
Just return the full random number between 0-255.
ReturnFullValue 28827 LD A,E A=the random number stored in E.
28828 RET Return.
Prev: 28807 Up: Map Next: 28829