Ahh...the AMUL15.ITM VVC error is either an old BG2 fixpack error or EasyTutu (which uses an older BG2 fixpack as a repair base).
I don't think it's been changed. But that field should play either SPARMORI.BAM or ICARMOR.VVC (which uses sparmori.bam). If NI claims it's necessarily a VVC, NI is wrong. Anyway, it's not really a crucial bug, but if you think it's an oversight, you could report it.
Yea, my thinking is to restore both the mirror and the box (forgot about this one) and all other mods have to work around this. It would be nice to have a couple of custom icons made for each and just use the sack icon for the ground icons and they already each have a respective description BAM.
As I said, Aurora already does this, and has icons for both inventory and ground BAMs, for both items. UB can just copy those.
One more thing...the original BG1 had a generic dead female body [MISC79], but they ended up only using the male. It might be nice to replace a couple of males with females for a bit more realism. You'd have to revise Arkion's dialog with an OR(2) since it's only looking for a male body!
UB already does this (in the Scar component), though not via OR() since that doesn't work in BG1. It neglects the bodies in ar0225 (Central Sewers) however, and the outlines of the container there suggest male and female corpses rather than two males.
It might be cool if Arkion offered to buy any other bodies found, at a reduced price no doubt (there are perhaps 8 in all not counting the one UB replaces). I don't think there's anything else you can do with them. In fact the original dialogue seems to suggest he'll take bodies plural (there's one singular reference to "body" but the rest are plural: e.g. "them", "'em" and "corpses"). I don't know what other folks would think of this though. I started to have a go at it but realised UB, BG1 NPC and who knows what other mods already mess with arkion.dlg so I decided to shelve it.
Anyway, here is code that addresses the mirror, box (non-BG1 only) and bodies in the central sewers. I coded it so that it will be compatible with any other mod that uses the same code.
//Copy the BAMs from aurora/tbam
//Not sure why UB needs separate folders for BAMs - should be same on all platforms except prefix
ACTION_IF NOT FILE_EXISTS_IN_GAME ~imisc02.bam~ BEGIN
COPY ~bg1ub/bam/gmisc02.bam~ ~override/%tutu_var%gmisc02.bam~
~bg1ub/bam/imisc02.bam~ ~override/%tutu_var%imisc02.bam~
~bg1ub/bam/gmisc03.bam~ ~override~
~bg1ub/bam/imisc03.bam~ ~override~
END
COPY_EXISTING ~%tutu_var%misc02.itm~ ~override~ //Mirror
PATCH_IF SOURCE_SIZE > 0x71 BEGIN
SAY UNIDENTIFIED_DESC @291
WRITE_SHORT 0x1c 0xc //Item type (shield)
WRITE_SHORT 0x42 20 //Lore to ID
PATCH_IF GAME_IS ~bg1 totsc~ BEGIN
SAY DESC @292
LPF DELETE_ITEM_EQEFFECT
INT_VAR opcode_to_delete = 100
END
LPF ADD_ITEM_EQEFFECT
INT_VAR opcode = 100 //Protection from creature type
target = 1 //Self
timing = 2 //While equipped
parameter1 = 102 //Basilisk
parameter2 = 4 //Race
resist_dispel = 2 //Not dispel & bypass
END
END ELSE BEGIN
SAY DESC @293
LPF DELETE_ITEM_EQEFFECT
INT_VAR opcode_to_delete = 197
END
LPF ADD_ITEM_EQEFFECT
INT_VAR opcode = 197 //Bounce projectile
target = 1 //Self
timing = 2 //While equipped
parameter2 = 64 //Gaze
resist_dispel = 2 //Not dispel & bypass
probability1 = 24
END
END
END
BUT_ONLY
COPY_EXISTING ~misc03.itm~ ~override~ //Small Box (no tutu_var because no _misc03 in Tutu)
PATCH_IF SOURCE_SIZE > 0x71 BEGIN
SAY UNIDENTIFIED_DESC @294
READ_BYTE 0x18 fl //Flags
WRITE_BYTE 0x18 (fl BOR 0b00000001) //Unsellable
WRITE_SHORT 0x1c 0x24 //Item type (bag)
WRITE_LONG 0x34 100 //Price
END
BUT_ONLY
ACTION_IF NOT GAME_IS ~bg1 totsc~ BEGIN //Bags don't work in BG1 without excessive hackery
COPY ~bg1ub/sto/misc03.sto~ ~override~ //Copy this from aurora/sto
SAY NAME2 #6962 //Small Box
COPY_EXISTING ~%tutu_var%friend.sto~ ~override~ //Bentley Mirrorshade (ar2301 Friendly Arm L1)
PATCH_IF SOURCE_SIZE > 0x9b BEGIN
REMOVE_STORE_ITEM ~misc03~
ADD_STORE_ITEM ~misc03~ LAST #0 #0 #0 ~IDENTIFIED~ #1 //Small Box
END
BUT_ONLY
END
//Restore mirror to ar4807 if missing
COPY_EXISTING ~%Nashkel_House1%.are~ ~override~ //Nashkel House 1
found = 0
READ_LONG 0x70 con_off
READ_SHORT 0x74 con_cnt
READ_LONG 0x78 itm_off
FOR (i = 0; i < con_cnt; i += 1) BEGIN
READ_ASCII (i * 0xc0 + con_off) con_name (32) NULL
PATCH_IF (~%con_name%~ STRING_EQUAL_CASE ~Container 1~ = 1) BEGIN
READ_LONG (i * 0xc0 + con_off + 0x40) itm_idx
READ_LONG (i * 0xc0 + con_off + 0x44) itm_num
FOR (j = 0; j < itm_num; j += 1) BEGIN
READ_ASCII (j * 0x14 + itm_off) itm_name
PATCH_IF (~%itm_name%~ STRING_EQUAL_CASE ~%tutu_var%MISC02~ = 1) BEGIN
found = 1
j = itm_num
END
END
i = con_cnt
END
END
PATCH_IF found = 0 BEGIN
LPF ADD_AREA_ITEM
INT_VAR container_to_add_to = 1
STR_VAR item_to_add = EVALUATE_BUFFER ~%tutu_var%MISC02~
END
END
BUT_ONLY
//Replace 1 body in Container 1 with a female corpse (outline suggests both a male and female)
COPY_EXISTING ~%CSewers%.are~ ~override~ //Central Sewers (AR0225)
READ_LONG 0x70 con_off
READ_SHORT 0x74 con_cnt
READ_LONG 0x78 itm_off
FOR (i = 0; i < con_cnt; i += 1) BEGIN
READ_ASCII (i * 0xc0 + con_off) con_name (32) NULL
PATCH_IF (~%con_name%~ STRING_EQUAL_CASE ~Container 1~ = 1) BEGIN
READ_LONG (i * 0xc0 + con_off + 0x40) itm_idx
READ_LONG (i * 0xc0 + con_off + 0x44) itm_num
FOR (j = 0; j < itm_num; j += 1) BEGIN
READ_ASCII (j * 0x14 + itm_off) itm_name
PATCH_IF (~%itm_name%~ STRING_EQUAL_CASE ~%tutu_var%MISC80~ = 1) AND (j > 0) BEGIN
WRITE_ASCIIE (j * 0x14 + itm_off) ~%tutu_var%MISC79~ #8
j = itm_num
END
END
i = con_cnt
END
END
BUT_ONLY
Edit: oh, forgot the setup.tra entries. Just copied them from Aurora (had to add one for BG1 though) - feel free to renumber them.
@291 = ~This is an ordinary, medium-sized, hand-held mirror.~
@292 = ~This is a medium-sized, hand-held mirror with a tin alloy frame. It presents an exceptionally clear reflection, so the metal behind the glass may be of silver. Though impractical as a normal defense, anyone bearing this mirror is protected from basilisks.
STATISTICS:
Equipped Ability:
Protection from basilisks
Weight: 1~
@293 = ~This is a medium-sized, hand-held mirror with a tin alloy frame. It presents an exceptionally clear reflection, so the metal behind the glass may be of silver. Though impractical as a normal defense, anyone bearing this mirror as a shield has a chance of reflecting the gaze attacks of basilisks and other such creatures.
STATISTICS:
Equipped Ability:
25% chance to reflect gaze attacks
Weight: 1~
@294 = ~This sturdy wooden box is enameled with lacquer and clasped with bronze. It is small but serviceable, and can hold a few smaller items.
STATISTICS:
Capacity: 12 items
Weight: 5~