Functions return their values through the EAX register, which is 4 bytes. So a function can't return a short or a char. Shorts and chars are normally used for storing low-precision values or text, but not for number calculation.

So, you'll normally use

int INVIsAllowed(RPGInventory* Inv,RPGItem* Item)
{
return(Inv->AllowedItems & Item->ItemType);
}

However I'll implement short and char return in one of the next updates for compatibility reasons.