Code:
case CON_IFPINVENTORY:
{
insptr++;
j = 0;
switch (*insptr++)
{
case GET_STEROIDS:
if (g_player[g_p].ps->steroids_amount != *insptr)
j = 1;
break;
case GET_SHIELD:
if (g_player[g_p].ps->shield_amount != g_player[g_p].ps->max_shield_amount)
j = 1;
break;
case GET_SCUBA:
if (g_player[g_p].ps->scuba_amount != *insptr) j = 1;
break;
ifpinventory GET_SHIELD is hardcoded to ignore the value you put in and use the max shield amount. I guess this bug probably goes back to the original source, but if it doesn't it should definitely be fixed.
It messed me up because I wanted to do an inventory hack using the shield for a mod that uses only 1.5 CON commands.