Update: I've got an initial version working with all slots functional, including both ring slots, although if the merc has two rings equipped and you try to give the merc a different one, it will always replace the ring in the second slot. And again, the weapon restrictions on each merc type remains in place.
For the code edits to work correctly, a new hireling inventory image needs to be added and changes need to be made to inventory.txt. These can be taken directly from one of the PC hireling plugins.
The offsets given are for the 1.10b version of Diablo II (Carbon).
Code: Select all
000878e4: 38800033 li r4,51
...
000878f4: 40820020 bne- 0x87914
...
000878fc: 3880002D li r4,45
...
0008790c: 40820008 bne- 0x87914
0008a5c8: 38800033 li r4,51
...
0008a5d8: 40820028 bne- 0x8a600
...
0008a5e0: 3880002D li r4,45
...
0008a5f0: 40820010 bne- 0x8a600
0029db68: 38800033 li r4,51
...
0029db78: 40820020 bne- 0x29db98
...
0029db80: 3880002D li r4,45
...
0029db90: 40820008 bne- 0x29db98
0029dff0: 40820010 bne- 0x29e000
0029dff4: 7f24cb78 mr r4,r25
0029dff8: 38600000 li r3,0
0029dffc: 4bf02af5 bl 0x1a0af0
0029e000: 83d90060 lwz r30,96(r25)
0029e004: 281e0000 cmplwi r30,0
0029e008: 4082000c bne- 0x29e014
0029e00c: 38600000 li r3,0
0029e010: 48000324 b 0x29e334
0029e014: 7f43d378 mr r3,r26
0029e018: 38810039 addi r4,SP,57
0029e01c: 38a10038 addi r5,SP,56
0029e020: 4bf1d511 bl 0x1bb530
0029e024: 88810039 lbz r4,57(SP)
0029e028: 7fc3f378 mr r3,r30
0029e02c: 4bf00a45 bl 0x19ea70
0029e030: 88810038 lbz r4,56(SP)
0029e034: 7c7c1b78 mr r28,r3
0029e038: 7fc3f378 mr r3,r30
0029e03c: 4bf00a35 bl 0x19ea70
0029e040: 7c7b1b78 mr r27,r3
0029e044: 88010039 lbz r0,57(SP)
0029e048: 2c000006 cmplwi r0,6
0029e04c: 4082000c bne- 0x29e058
0029e050: 2c1c0000 cmplwi r28,0
0029e054: 40820034 bne- 0x29e088
0029e058: 28190000 cmplwi r25,0
0029e05c: 4182000c beq- 0x29e068
0029e060: 80190004 lwz r0,4(r25)
0029e064: 48000008 b 0x29e06c
0029e068: 3800ffff li r0,-1
0029e06c: 28000167 cmplwi r0,359
0029e070: 40820020 bne- 0x29e090
0029e074: 7f43d378 mr r3,r26
0029e078: 38800002 li r4,2
0029e07c: 4bf17d35 bl 0x1b5db0
Edit: Fixed up some of the offsets in the last section and corrected a typo caused by late night posting that would mess things up a bit.
- Contrail