Check if Random is greater/equal to Chance

From Final Fantasy Hacktics Wiki
Revision as of 15:27, 24 February 2012 by Choto (talk | contribs) (Created page with " Check if Random >= Chance 0005e0cc: 27bdffe0 addiu r29,r29,0xffe0 (if the RNG doesn't use r4/r5, r16/r17 aren't needed) 0005e0d0: afb00010 sw r16,0x0010(r29) 0005e0d4: 00...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Check if Random >= Chance
0005e0cc: 27bdffe0 addiu r29,r29,0xffe0		(if the RNG doesn't use r4/r5, r16/r17 aren't needed)
0005e0d0: afb00010 sw r16,0x0010(r29)
0005e0d4: 00808021 addu r16,r4,r0		r16 = Random MOD
0005e0d8: afb10014 sw r17,0x0014(r29)
0005e0dc: afbf0018 sw r31,0x0018(r29)
0005e0e0: 0c0088c3 jal 0x0002230c		Random number generator
0005e0e4: 00a08821 addu r17,r5,r0		r17 = Chance
0005e0e8: 00500018 mult r2,r16			Random * MOD
0005e0ec: 00001012 mflo r2
0005e0f0: 04410002 bgez r2,0x 0005e0fc		Check if result is >= 0 (always positive)
0005e0f4: 00000000 nop
0005e0f8: 24427fff addiu r2,r2,0x7fff		Make value positive
0005e0fc: 000213c3 sra r2,r2,0x0f		Result / 0x8000
0005e100: 0051102a slt r2,r2,r17
0005e104: 38420001 xori r2,r2,0x0001		r2 = 1 if Result >= Chance
0005e108: 8fbf0018 lw r31,0x0018(r29)
0005e10c: 8fb10014 lw r17,0x0014(r29)
0005e110: 8fb00010 lw r16,0x0010(r29)
0005e114: 27bd0020 addiu r29,r29,0x0020
0005e118: 03e00008 jr r31
0005e11c: 00000000 nop