Prev: 7087 Up: Map Next: 709D
7088: Contextual Random Number
Used by the routine at ObjectPlacement_SpecialTerrain.
Input
H Seed value
Output
A Random number betwen 00-FF
ContextualRandomNumber 7088 CALL GetRandomNumber E=random number between 00-FF.
708B LD E,A
708C LD A,H Get the seed number.
CheckSeedNumber 708D CP $9F Jump to ReturnFullValue if the seed number in H is lower than 9F.
708F JR C,ReturnFullValue
7091 JR Z,ReturnBoolean Jump to ReturnBoolean if the seed number in H is equal to 9F.
Else, subtract 05 and loop back to try again.
7093 SUB $05 Subtract 05 from the seed number.
7095 JR CheckSeedNumber Jump back to CheckSeedNumber.
Return either 00 or 01 using bit 0 of the random number.
ReturnBoolean 7097 LD A,E A=bit 0 of the random number stored in E (ensure it is either 00 or 01).
7098 AND %00000001
709A RET Return.
Just return the full random number between 00-FF.
ReturnFullValue 709B LD A,E A=the random number stored in E.
709C RET Return.
Prev: 7087 Up: Map Next: 709D