Start New Effect

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
#   ROUTINE: Start new effect?
#       Parameters:
#           r4 = (EffectID) Effect ID
#           r5 = (p2) ? -> whether the effect is centered on an area or a target?
#           r6 = (p3) ? (If p2 == 1, a pointer, but if p2 == 0, an int8?) -> pointer to ? something related to caster vs. target ID?

8008dd10: 27bdff20 addiu r29,r29,-0x00e0
8008dd14: 00803821 addu r7,r4,r0                    #   EffectID
8008dd18: 34030001 ori r3,r0,0x0001                 #   1
8008dd1c: afbf00d8 sw r31,0x00d8(r29)
8008dd20: a7a30010 sh r3,0x0010(r29)                #   data.0x00 = 1
8008dd24: a7a000b4 sh r0,0x00b4(r29)                #   data.0xa4 = 0
8008dd28: 14a00005 bne r5,r0,0x8008dd40
8008dd2c: a3a000b6 sb r0,0x00b6(r29)                #   data.0xa6 = 0
                                                    #   if (p2 == 0) {
8008dd30: a7a00014 sh r0,0x0014(r29)                #       data.0x04 = 0
8008dd34: a3a60016 sb r6,0x0016(r29)                #       data.0x06 = p3
8008dd38: 08023761 j 0x8008dd84
8008dd3c: a3a00017 sb r0,0x0017(r29)                #       data.0x07 = 0
                                                    #   } else {
8008dd40: 34020001 ori r2,r0,0x0001
8008dd44: 14a2000b bne r5,r2,0x8008dd74             #       if (p2 == 1) {
8008dd48: 00000000 nop
8008dd4c: a7a30014 sh r3,0x0014(r29)                #           data.0x04 = 1
8008dd50: 94c20000 lhu r2,0x0000(r6)                #           *p3
8008dd54: 00000000 nop
8008dd58: a7a20016 sh r2,0x0016(r29)                #           data.0x06 = *p3
8008dd5c: 94c20004 lhu r2,0x0004(r6)                #           *(p3 + 4)
8008dd60: 00000000 nop
8008dd64: a7a2001a sh r2,0x001a(r29)                #           data.0x0a = *(p3 + 4)
8008dd68: 94c20002 lhu r2,0x0002(r6)                #           *(p3 + 2)
8008dd6c: 08023761 j 0x8008dd84
8008dd70: a7a20018 sh r2,0x0018(r29)                #           data.0x08 = *(p3 + 2)
                                                    #       } else {
8008dd74: a7a00014 sh r0,0x0014(r29)                #           data.0x04 = 0
8008dd78: a3a60016 sb r6,0x0016(r29)                #           data.0x06 = p3
8008dd7c: a3a00017 sb r0,0x0017(r29)                #           data.0x07 = 0
8008dd80: a3a600b6 sb r6,0x00b6(r29)                #           data.0xa6 = p3
                                                    #       }
                                                    #   }
8008dd84: a3a00012 sb r0,0x0012(r29)                #   data.0x02 = 0
8008dd88: 00002021 addu r4,r0,r0
8008dd8c: 00e02821 addu r5,r7,r0
8008dd90: 0c06856d jal 0x801a15b4                   #   Effect Related (0x1a15b4) (0, EffectID, data);
8008dd94: 27a60010 addiu r6,r29,0x0010
8008dd98: 8fbf00d8 lw r31,0x00d8(r29)
8008dd9c: 27bd00e0 addiu r29,r29,0x00e0
8008dda0: 03e00008 jr r31
8008dda4: 00000000 nop