MenuManipulator

Allows you to manipulate what's in the engine's default menu's main-choice. Variable #3341 tells the system how many commands are there to choose from (only values of 0 to 8 are valid), while #3342 to #3349 contain identifier-IDs for the commands themselves (0: default, 1: inventory, 2: skills, 3: equipment, 4: save, 5: status, 6: row, 7: order, 8: ATB). The quit-command is still always auto-attached to the command-window's end.

Originally made and first released by bugmenot.

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/6

Offsets

RPG2003
1.0.8.0
1.0.8.0
00476DA0h
000761A0h

Sourcecode

			NOP
			CALL PROC__004B4D21h

Bytes

90 E87BDF0300

Segment 2/6

Offsets

RPG2003
1.0.8.0
1.0.8.0
004A0CF3h
000A00F3h

Sourcecode

			CALL PROC__004A109Eh

Bytes

E8A6030000

Segment 3/6

Offsets

RPG2003
1.0.8.0
1.0.8.0
004A0F75h
000A0375h

Sourcecode

			CALL PROC__004A109Eh

Bytes

E824010000

Segment 4/6

Offsets

RPG2003
1.0.8.0
1.0.8.0
004A0FDBh
000A03DBh

Sourcecode

			CALL PROC__004A109Eh

Bytes

E8BE000000

Segment 5/6

Offsets

RPG2003
1.0.8.0
1.0.8.0
004A109Ch
000A049Ch

Sourcecode

			JMP __004A105Ch
PROC__004A109Eh:
			MOV EAX, [004CDC0Ch]
			PUSH EAX
			MOV EAX, [004CDC7Ch]		; TLcfgSystem
			MOV EAX, [EAX]
			MOV EDX, 3341			; VariableID
			CALL PROC__0048B398h		; TLcfgSystem.GetVariable
			CMP EAX, 0
			JNE __004A10C4h
			POP EAX
			PUSH EAX
			MOV EAX, [EAX]
			MOV EAX, [EAX+A8h]
__004A10C4h:
			MOV ECX, EAX
			POP EAX
			PUSH EAX
			MOV EAX, [EAX]
			MOV [EAX+A8h], ECX
			POP EAX
			RET
			NOP
			NOP

Bytes

EBBE
A10CDC4C00 50 A17CDC4C00 8B00 BA0D0D0000 E8E3A2FEFF
83F800 750A
58 50 8B00 8B80A8000000 89C1 58 50 8B00 8988A8000000 58 C3 90 90

Segment 6/6

Offsets

RPG2003
1.0.8.0
1.0.8.0
004B4D1Ch
000B411Ch

Sourcecode

			JMP __004BED9Ch
PROC__004B4D21h:
			MOV EAX, [EAX+ACh]
			PUSH EAX
			PUSH EDX
			MOV EAX, [004CDC7Ch]		; TLcfgSystem
			MOV EAX, [EAX]
			MOV EDX, 3342			; VariableID-Base
			POP ECX
			PUSH ECX
			ADD EDX, ECX
			CALL PROC__0048B398h		; TLcfgSystem.GetVariable
			CMP EAX, 0
			JNE __004B4D46h
			POP EAX
			PUSH EAX
			INC EAX
__004B4D46h:
			MOV ECX, EAX
			POP EDX
			POP EAX
			MOV BYTE PTR [EAX+EDX*2], CL
			RET
			NOP
			NOP
			NOP
			NOP

Bytes

E97BA00000
8B80AC000000 50 52 A17CDC4C00 8B00 BA0E0D0000 59 51 01CA E85A66FDFF
83F800 7503
58 50 40 89C1 5A 58 880C50 C3 90 90 90 90