New Command
<command name="custom_inventory_cmd">
<pattern type="string">^i$|^inv$|^inventory$</pattern>
<synonyms type="stringlist">
<value>i</value>
<value>inv</value>
<value>inventory</value>
</synonyms>
<script>
list = FormatObjectList (Template ("CarryingListHeader"), game.pov, Template ("And"), ".")
if (list = "") {
msg ("You are empty-handed.")
}
else {
CustomInventory
}
</script>
</command>
New Functions
<function name="CustomInventory"><![CDATA[
msg ("You have:")
stuff = GetDirectChildren(game.pov)
stuff = ListExclude(stuff, hangover)
stuff = ListExclude (stuff, no_tea)
indents = 1
foreach (o, stuff) {
worn = ""
if (GetBoolean(o, "worn")) {
worn = " (being worn)"
}
msg (Spaces(indents) + GetDisplayName(o) + worn)
PrintContentsWithIndents (o, indents)
}
]]></function>
<function name="PrintContentsWithIndents " parameters="o, indents"><![CDATA[
if (GetBoolean (o, "feature_container") and (GetBoolean(o, "isopen") or GetBoolean (o, "transparent"))) {
stuff = GetDirectChildren (o)
stuff = ListExclude(stuff, FilterByAttribute (stuff, "scenery", true))
stuff = FilterByAttribute (stuff, "visible", true)
if (ListCount (stuff) > 0) {
msg (Spaces(indents) + "It looks like " + GetDefiniteName(o) + " contains:")
indents = indents + 1
foreach (obj, stuff) {
msg (Spaces(indents) + GetDisplayName(obj))
PrintContentsWithIndents (obj, indents)
}
}
}
]]></function>
Modified functions
<function name="_SetGarmentAlias" parameters="object"><![CDATA[
ext = GetDescriptor(object)
// object.alias = object.display + ext
if (HasString(object, "listalias")) {
if (StartsWith(object.listalias, "<span style=\"color:blue\">")) {
object.listalias = null
do (object, "colourmylistalias")
}
else {
object.listalias = object.original_listalias + ext
}
}
]]></function>
<function name="GetDefiniteName" parameters="obj" type="string">
result = GetDisplayAlias(obj)
if (not DoesInherit(obj, "namedmale") and not DoesInherit(obj, "namedfemale") and not result = "me" and not result = "you" and GetBoolean(obj, "usedefaultprefix")) {
result = "the " + result
}
return (result)
</function>