ID:1745574
 
I've been grappling with a "few" errors for quite a while, I can only assume this is one of those easily missed details that only a computer would care about since I can't find the problem to save my life. The snippet starts on line 26 and ends with line 37.
Code:
Equip(/obj/Inventory/Equipment/E)
if(!istype(E) || !E.AllowEquip() || !(E.slot in src.vars) || src.vars["[E.slot]"])
return 0
src << "You equip {E}."
src.vars ["[E.slot]"] = E
E.suffix = "Equipped"
Unequip(obj/Inventory/Equipment/E)
if(!istype(E) || !E.AllowUnequip() || !(E.slot in src.vars) || src.vars["[E.slot]"]!=E)
return 0
src << "You unequip [E]"
src.vars ["[E.slot]"] = null
E.suffix = ""


Upon compile I get this error report:
loading World.dme
loading Nyerface.dmf
World.dm:27:error: E: undefined var
World.dm:27:error: E.AllowEquip: undefined var
World.dm:27:error: E.slot: undefined var
World.dm:27:error: E.slot: undefined var
World.dm:30:error: E.slot: undefined var
World.dm:30:error: E: undefined var
World.dm:31:error: E.suffix: undefined var
World.dm:33:error: E.AllowUnequip: undefined proc
World.dmb - 8 errors, 0 warnings

Further details
These are mob procs called by objs, Obviously E is equipment which is obj, E.AllowEquip is actually a boolean, and slot of course is the item identifier to determine which slot on the equipment list the item would take up.



Look into E's type. Does it exist? Did you type it correctly?
Correction, AllowEquip() is an obj proc which returns 1 by default.
Okay, yep, I was right and now I feel stupid, thanks for the input.
The type path did not exist because "Inventory" was a subtype of another obj, indentation flaw.