Effect Code Script 0x1d

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
801a2c28: 3c02801c lui r2,0x801c
801a2c2c: 8c42bf84 lw r2,-0x407c(r2)                #   *0x801bbf84							// Misc. Timed display pointer
801a2c30: 84830028 lh r3,0x0028(r4)                 #   effectBlock.0x28						// current effect timer
801a2c34: 94420002 lhu r2,0x0002(r2)                #   *(*0x801bbf84 + 2)						// effect length
801a2c38: 00000000 nop
801a2c3c: 0062182a slt r3,r3,r2                     
801a2c40: 14600008 bne r3,r0,0x801a2c64             #   if (effectBlock.0x28 >= *(*0x801bbf84 + 2)) {			// branch if timer is not yet at effect length
801a2c44: 00000000 nop
801a2c48: 84820006 lh r2,0x0006(r4)                 #       effectBlock.offset
801a2c4c: 8c830008 lw r3,0x0008(r4)                 #       effectBlock.basePointer
801a2c50: 00000000 nop
801a2c54: 00431021 addu r2,r2,r3                    #       commandPtr = effectBlock.offset + effectBlock.basePointer
801a2c58: 94420002 lhu r2,0x0002(r2)                #       *(commandPtr + 2)
801a2c5c: 08068b1d j 0x801a2c74
801a2c60: a4820006 sh r2,0x0006(r4)                 #       effectBlock.offset = *(commandPtr + 2)			// set script counter to arg2 if exceeded max timer.
                                                    #   } else {
801a2c64: 94820006 lhu r2,0x0006(r4)                #       effectBlock.offset
801a2c68: 00000000 nop
801a2c6c: 24420004 addiu r2,r2,0x0004               #       effectBlock.offset + 4					// else add 4, execute next instruction.
801a2c70: a4820006 sh r2,0x0006(r4)                 #       effectBlock.offset = effectBlock.offset + 4
                                                    #   }
801a2c74: 03e00008 jr r31                           #   return 1;
801a2c78: 34020001 ori r2,r0,0x0001