2k3RowManipulatorForBAEP

Addon for Better AEP that allows reading and change of rows inside battle.

To read row, set variable #3350 (or whatever has been set for BAEP) to 0, #3370 to a party-slot (1~4) and #3371 to 0, then use the command for event-process-canceling. Variable #3371 will change from 0 to either 1 (Front), 2 (Back) or -1 (no actor in slot).

To set row, set variables #3350 and #3370 as described above, then set #3371 to either 1 (Front) or 2 (Back). Now use the command for event-process-canceling, the actor in defined slot will change row (if the slot is empty, variable #3371 changes to -1 instead).

This patch utilizes offsets that go beyond CODE-sections defined area, into zeroed bytes that normally are just there for alignment.

Originally made and first released by Cherry.

RPG2003
1.00UNKNOWN1UNKNOWN21.0.2.1
1.0.2.1
1.0.3.0
1.0.4.0
1.0.5.0
1.0.5.0
1.0.6.0
1.0.6.0
1.0.7.0
1.0.7.0
1.0.8.0
1.0.8.0
1.0.9.1
1.0.9.1
1.101.111.12mp210414

Segment 1/2

Offsets

RPG2003
1.0.8.0
1.0.8.0
00490A7Fh
0008FE7Fh

Sourcecode

			PUSHAD
			MOV EAX, [004CDC7Ch]
			MOV EAX, [EAX]
			PUSH EAX
			MOV EDX, 3370
			CALL PROC__0048B398h
			TEST EAX, EAX
			JZ __00490B0Ah
			MOV ESI, EAX
			POP EAX
			PUSH EAX
			MOV EDX, 3371
			CALL PROC__0048B398h
			MOV EDI, EAX
			MOV EAX, [004CDB74h]
			MOV EAX, [EAX]
			LEA EDX, [ESI-01h]
			CALL PROC__00490AD7h
			TEST EDI, EDI
			JZ __00490AC3h
			DEC EDI
			MOV [EAX+70h], EDI
			MOV [EAX+74h], EDI
			NOP
			JMP __00490B07h
__00490AC3h:
			MOV ECX, [EAX+74h]
			INC ECX
			MOV EDX, 3371
			POP EAX
			CALL PROC__0048B3B0h
			JMP __00490B08h
			3 NOPs
__00490AD7h:
			CALL PROC_004A6014h
			TEST EAX, EAX
			JZ __00490AE1h
			RET
__00490AE1h:
			MOV ECX, -1
			MOV EDX, 3371
			POP EAX
			POP EAX
			CALL PROC__0048B3B0h
			JMP __00490B08h
			19 NOPs
__00490B07h:
			POP EAX
__00490B08h:
			POPAD
			RET
__00490B0Ah:
			POP EAX
			POPAD
			JMP __00480C8Ch

Bytes

60 A17CDC4C00 8B00 50 BA2A0D0000 E806A9FFFF
85C0 7474
8BF0 58 50 BA2B0D0000 E8F4A8FFFF
8BF8 A174DB4C00 8B00 8D56FF E822000000
85FF 740A
4F 89 78 70 89 78 7490
EB44
8B4874 41 BA2B0D0000 58 E8DEA8FFFF
EB34
90 90 90 E838550100
85C0 7401
C3

B9FFFFFFFF BA2B0D0000 58 58 E8BEA8FFFF
EB14

90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90

58 61 C3

58 61 E97B010200

Segment 2/2

Offsets

RPG2003
1.0.8.0
1.0.8.0
004C9DE5h
000C91E5h

Sourcecode

			JMP __00490A7Fh

Bytes

E9956CFCFF