Check if Status Should/Can be Added

From Final Fantasy Hacktics Wiki
Revision as of 16:34, 22 February 2015 by Choto (talk | contribs)
Jump to navigation Jump to search
Check if Status Should/Can be Added
r4 =  clockticks till unit acts
0xX0 - set to use * 8
0x0X - status to check for (0x80 srav 0x0X)
0019ef24: 00804021 addu r8,r4,r0		r8 = Clockticks Required (CT till unit acts)
0019ef28: 04c10002 bgez r6,0x0019ef34		Branch if Status Mod >= 0
0019ef2c: 00c01021 addu r2,r6,r0		r2 = Status Mod
0019ef30: 24c20007 addiu r2,r6,0x0007
0019ef34: 000210c3 sra r2,r2,0x03		Status Mod / 8
0019ef38: 00a23821 addu r7,r5,r2
0019ef3c: 90e40058 lbu r4,0x0058(r7)		Load Unit's Statuses
0019ef40: 000210c0 sll r2,r2,0x03		Status Mod / 8 * 8
0019ef44: 00c21023 subu r2,r6,r2		Status Mod MOD 8
0019ef48: 34030080 ori r3,r0,0x0080		Current Status = 0x80
0019ef4c: 00431807 srav r3,r3,r2		(get chosen status)
0019ef50: 00832024 and r4,r4,r3
0019ef54: 10800013 beq r4,r0,0x0019efa4		Branch if Chosen Status isn't present
0019ef58: 34020005 ori r2,r0,0x0005		r2 = 5
0019ef5c: 14c20004 bne r6,r2,0x0019ef70		Branch if not checking for Dead
0019ef60: 28c20018 slti r2,r6,0x0018
0019ef64: 90a2015d lbu r2,0x015d(r5)		Load Unit's Current Ability CT
0019ef68: 08067be7 j 0x0019ef9c
0019ef6c: 0048102a slt r2,r2,r8			(Check for CT < Clockticks Required)
0019ef70: 1440000d bne r2,r0,0x0019efa8		Branch if Status doesn't have a CT
0019ef74: 34020001 ori r2,r0,0x0001		r2 = 1 (Fail)
0019ef78: 90e2004e lbu r2,0x004e(r7)		Load Innate Statuses
0019ef7c: 00000000 nop
0019ef80: 00431024 and r2,r2,r3
0019ef84: 14400008 bne r2,r0,0x0019efa8		Branch if Chosen Status is Innate
0019ef88: 34020001 ori r2,r0,0x0001		r2 = 1 (Fail)
0019ef8c: 00a61021 addu r2,r5,r6
0019ef90: 90420045 lbu r2,0x0045(r2)		Load Status' CT
0019ef94: 00000000 nop
0019ef98: 0048102a slt r2,r2,r8
0019ef9c: 10400002 beq r2,r0,0x0019efa8		Branch if CT >= Clockticks Required
0019efa0: 34020001 ori r2,r0,0x0001		r2 = 1 (Fail)
0019efa4: 00001021 addu r2,r0,r0		r2 = 0 (Success)
0019efa8: 03e00008 jr r31
0019efac: 00000000 nop
return r2 = 1 if