Difference between revisions of "0005e0cc"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
m (formatting and stuff)
Line 1: Line 1:
 
 
 
Checking if Attack Hits?
 
Checking if Attack Hits?
  
0005e0cc: 27bdffe0 addiu r29,r29,0xffe0
+
Args:
 
 
0005e0d0: afb00010 sw r16,0x0010(r29)
 
 
 
0005e0d4: 00808021 addu r16,r4,r0         r16 = Base Hit
 
 
 
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 = Evade Type's Evade%
 
 
 
0005e0e8: 00500018 mult r2,r16         Random * Base Hit
 
 
 
0005e0ec: 00001012 mflo r2
 
 
 
0005e0f0: 04410002 bgez r2,0x0005e0fc         Check if result is >= 0
 
 
 
0005e0f4: 00000000 nop
 
 
 
0005e0f8: 24427fff addiu r2,r2,0x7fff         Make value positive
 
 
 
0005e0fc: 000213c3 sra r2,r2,0x0f         Result / 8000h
 
 
 
0005e100: 0051102a slt r2,r2,r17
 
 
 
0005e104: 38420001 xori r2,r2,0x0001         r2 = 1 if Result >= Evade Type's
 
Evade%
 
 
 
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
+
* r4: Base Hit%
 +
* r5: Evade%
  
0005e11c: 00000000 nop
+
0005e0cc: 27bdffe0 addiu r29,r29,0xffe0
 +
0005e0d0: afb00010 sw r16,0x0010(r29)
 +
0005e0d4: 00808021 addu r16,r4,r0          r16 = Base Hit%
 +
0005e0d8: afb10014 sw r17,0x0014(r29)
 +
0005e0dc: afbf0018 sw r31,0x0018(r29)
 +
0005e0e0: 0c0088c3 jal 0x[[0002230c]]          r2 = rand 0x0..0x7fff
 +
0005e0e4: 00a08821 addu r17,r5,r0          r17 = Evade%
 +
0005e0e8: 00500018 mult r2,r16              Random * Base Hit%
 +
0005e0ec: 00001012 mflo r2
 +
0005e0f0: 04410002 bgez r2,0x0005e0fc      if result <= 0:
 +
0005e0f4: 00000000 nop
 +
0005e0f8: 24427fff addiu r2,r2,0x7fff          Make result positive
 +
0005e0fc: 000213c3 sra r2,r2,0x0f          Result / 8000h    //r2 = floatrand 0...1
 +
0005e100: 0051102a slt r2,r2,r17
 +
0005e104: 38420001 xori r2,r2,0x0001        r2 = 1 if Result >= Evade%
 +
Evade%
 +
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

Revision as of 23:42, 7 February 2016

Checking if Attack Hits?

Args:

  • r4: Base Hit%
  • r5: Evade%
0005e0cc: 27bdffe0 addiu r29,r29,0xffe0
0005e0d0: afb00010 sw r16,0x0010(r29)
0005e0d4: 00808021 addu r16,r4,r0           r16 = Base Hit%
0005e0d8: afb10014 sw r17,0x0014(r29)
0005e0dc: afbf0018 sw r31,0x0018(r29)
0005e0e0: 0c0088c3 jal 0x0002230c           r2 = rand 0x0..0x7fff
0005e0e4: 00a08821 addu r17,r5,r0           r17 = Evade%
0005e0e8: 00500018 mult r2,r16              Random * Base Hit%
0005e0ec: 00001012 mflo r2
0005e0f0: 04410002 bgez r2,0x0005e0fc       if result <= 0:
0005e0f4: 00000000 nop
0005e0f8: 24427fff addiu r2,r2,0x7fff           Make result positive
0005e0fc: 000213c3 sra r2,r2,0x0f           Result / 8000h    //r2 = floatrand 0...1
0005e100: 0051102a slt r2,r2,r17
0005e104: 38420001 xori r2,r2,0x0001        r2 = 1 if Result >= Evade%
Evade%
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