<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AInfobox_Location</id>
	<title>Module:Infobox Location - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AInfobox_Location"/>
	<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Infobox_Location&amp;action=history"/>
	<updated>2026-05-16T04:58:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://wiki.runerealm.org/index.php?title=Module:Infobox_Location&amp;diff=34994&amp;oldid=prev</id>
		<title>Alex: Created page with &quot;-------------------------- -- Module for Template:Infobox Location ------------------------ local p = {}  local onmain = require(&#039;Module:Mainonly&#039;).on_main local infobox = require(&#039;Module:Infobox&#039;)  local type_categories = { 	[&#039;agility course&#039;] = &#039;Agility courses&#039;, 	building = &#039;Buildings&#039;, 	settlement = &#039;Settlements&#039;, 	dungeon = &#039;Dungeons&#039;, 	guild = &#039;Guilds&#039;, 	mine = &#039;Mines&#039;, 	river = &#039;Rivers&#039;, 	mountain = &#039;Mountains&#039;, 	volcano = &#039;Volcanoes&#039;, 	realm = &#039;Realms&#039;, 	isla...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Infobox_Location&amp;diff=34994&amp;oldid=prev"/>
		<updated>2024-10-16T23:12:19Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;-------------------------- -- Module for &lt;a href=&quot;/w/Template:Infobox_Location&quot; title=&quot;Template:Infobox Location&quot;&gt;Template:Infobox Location&lt;/a&gt; ------------------------ local p = {}  local onmain = require(&amp;#039;Module:Mainonly&amp;#039;).on_main local infobox = require(&amp;#039;Module:Infobox&amp;#039;)  local type_categories = { 	[&amp;#039;agility course&amp;#039;] = &amp;#039;Agility courses&amp;#039;, 	building = &amp;#039;Buildings&amp;#039;, 	settlement = &amp;#039;Settlements&amp;#039;, 	dungeon = &amp;#039;Dungeons&amp;#039;, 	guild = &amp;#039;Guilds&amp;#039;, 	mine = &amp;#039;Mines&amp;#039;, 	river = &amp;#039;Rivers&amp;#039;, 	mountain = &amp;#039;Mountains&amp;#039;, 	volcano = &amp;#039;Volcanoes&amp;#039;, 	realm = &amp;#039;Realms&amp;#039;, 	isla...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--------------------------&lt;br /&gt;
-- Module for [[Template:Infobox Location]]&lt;br /&gt;
------------------------&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local onmain = require(&amp;#039;Module:Mainonly&amp;#039;).on_main&lt;br /&gt;
local infobox = require(&amp;#039;Module:Infobox&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local type_categories = {&lt;br /&gt;
	[&amp;#039;agility course&amp;#039;] = &amp;#039;Agility courses&amp;#039;,&lt;br /&gt;
	building = &amp;#039;Buildings&amp;#039;,&lt;br /&gt;
	settlement = &amp;#039;Settlements&amp;#039;,&lt;br /&gt;
	dungeon = &amp;#039;Dungeons&amp;#039;,&lt;br /&gt;
	guild = &amp;#039;Guilds&amp;#039;,&lt;br /&gt;
	mine = &amp;#039;Mines&amp;#039;,&lt;br /&gt;
	river = &amp;#039;Rivers&amp;#039;,&lt;br /&gt;
	mountain = &amp;#039;Mountains&amp;#039;,&lt;br /&gt;
	volcano = &amp;#039;Volcanoes&amp;#039;,&lt;br /&gt;
	realm = &amp;#039;Realms&amp;#039;,&lt;br /&gt;
	island = &amp;#039;Islands&amp;#039;,&lt;br /&gt;
	[&amp;#039;hunter area&amp;#039;] = &amp;#039;Hunter areas&amp;#039;,&lt;br /&gt;
	windmill = &amp;#039;Windmills&amp;#039;,&lt;br /&gt;
	woods = &amp;#039;Woods&amp;#039;,&lt;br /&gt;
	region = &amp;#039;Regions&amp;#039;,&lt;br /&gt;
	sea = &amp;#039;Seas&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Main function called with invokes&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local ret = infobox.new(args)&lt;br /&gt;
&lt;br /&gt;
	ret:defineParams{&lt;br /&gt;
		{ name = &amp;#039;name&amp;#039;, func = &amp;#039;name&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;image&amp;#039;, func = &amp;#039;image&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;release&amp;#039;, func = &amp;#039;release&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;aka&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;members&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;floors&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;location&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;capital&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;banktype&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;pollbooth&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;depositbox&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;tellers&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;requirement&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;race&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;wilderness&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;teleport&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;music&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;map&amp;#039;, func = maparg },&lt;br /&gt;
		{ name = &amp;#039;diary&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
&lt;br /&gt;
        { name = &amp;#039;usesinfobox&amp;#039;, func = { name = tostring, params = { &amp;#039;Location&amp;#039; }, flag = &amp;#039;r&amp;#039; } },&lt;br /&gt;
		{ name = &amp;#039;type&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	ret:defineLinks({ hide = true })&lt;br /&gt;
&lt;br /&gt;
	ret:create()&lt;br /&gt;
	ret:cleanParams()&lt;br /&gt;
&lt;br /&gt;
    ret:useSMWSubobject({&lt;br /&gt;
		members = &amp;#039;Is members only&amp;#039;,&lt;br /&gt;
		usesinfobox = &amp;#039;Uses infobox&amp;#039;,&lt;br /&gt;
    })&lt;br /&gt;
&lt;br /&gt;
	ret:customButtonPlacement(true)&lt;br /&gt;
	ret:addButtonsCaption()&lt;br /&gt;
&lt;br /&gt;
	ret:defineName(&amp;#039;Infobox Location&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	ret:addRow{&lt;br /&gt;
		{ tag = &amp;#039;argh&amp;#039;, content = &amp;#039;name&amp;#039;, class=&amp;#039;infobox-header&amp;#039;, colspan = &amp;#039;5&amp;#039; }&lt;br /&gt;
	}&lt;br /&gt;
	:addRow{&lt;br /&gt;
		{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;image&amp;#039;, class=&amp;#039;infobox-image infobox-full-width-content&amp;#039;, colspan = &amp;#039;5&amp;#039; }&lt;br /&gt;
	}&lt;br /&gt;
	:pad(5)&lt;br /&gt;
	:addRow{&lt;br /&gt;
		{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Released&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
		{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;release&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
	}&lt;br /&gt;
	if ret:paramDefined(&amp;#039;aka&amp;#039;) then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Also called&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;aka&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	ret:addRow{&lt;br /&gt;
		{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;[[Members]]&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
		{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;members&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
	}&lt;br /&gt;
	if ret:paramDefined(&amp;#039;floors&amp;#039;) then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Floors&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;floors&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	if ret:paramDefined(&amp;#039;location&amp;#039;) then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Location&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;location&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	if ret:paramDefined(&amp;#039;capital&amp;#039;) then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Capital&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;capital&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	if ret:paramDefined(&amp;#039;banktype&amp;#039;) then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Type of bank&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;banktype&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	if ret:paramDefined(&amp;#039;tellers&amp;#039;) then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Number of tellers&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;tellers&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	if ret:paramDefined(&amp;#039;pollbooth&amp;#039;) then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Poll booth&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;pollbooth&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	if ret:paramDefined(&amp;#039;depositbox&amp;#039;) then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Deposit box&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;depositbox&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	if ret:paramDefined(&amp;#039;requirement&amp;#039;) then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Requirements&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;requirement&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	if ret:paramDefined(&amp;#039;race&amp;#039;) then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Inhabitants&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;race&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	if ret:paramDefined(&amp;#039;wilderness&amp;#039;) then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Wilderness level&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;wilderness&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	if ret:paramDefined(&amp;#039;teleport&amp;#039;) then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Teleports&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;teleport&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	if ret:paramDefined(&amp;#039;music&amp;#039;) then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Music&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;music&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	if ret:paramDefined(&amp;#039;diary&amp;#039;) then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Diary&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;diary&amp;#039;, colspan = &amp;#039;3&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	ret:pad(5)&lt;br /&gt;
&lt;br /&gt;
	local map_defined = ret:paramGrep(&amp;#039;map&amp;#039;, function(x) return string.lower(x or &amp;#039;n/a&amp;#039;) ~= &amp;#039;n/a&amp;#039; end)&lt;br /&gt;
	if map_defined then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Map&amp;#039;, class = &amp;#039;infobox-subheader&amp;#039;, colspan = &amp;#039;5&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
		:addRow{&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;map&amp;#039;, colspan = &amp;#039;5&amp;#039;, class = &amp;#039;infobox-full-width-content infobox-image&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if ret:paramDefined(&amp;#039;type&amp;#039;) then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Advanced data&amp;#039;, class = &amp;#039;infobox-subheader&amp;#039;, colspan = &amp;#039;5&amp;#039; },&lt;br /&gt;
			meta = {addClass = &amp;#039;advanced-data&amp;#039;}&lt;br /&gt;
		}&lt;br /&gt;
		:pad(5, &amp;#039;advanced-data&amp;#039;)&lt;br /&gt;
		:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Type&amp;#039;, colspan = &amp;#039;2&amp;#039; },&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;type&amp;#039;,  colspan = &amp;#039;3&amp;#039; },&lt;br /&gt;
			meta = {addClass = &amp;#039;advanced-data&amp;#039;}&lt;br /&gt;
		}&lt;br /&gt;
		:pad(5, &amp;#039;advanced-data&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if onmain() then&lt;br /&gt;
		local a1 = ret:param(&amp;#039;all&amp;#039;)&lt;br /&gt;
		local a2 = ret:categoryData()&lt;br /&gt;
		ret:wikitext(addcategories(a1, a2))&lt;br /&gt;
	end&lt;br /&gt;
	return ret:tostring()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function maparg(arg)&lt;br /&gt;
	if not infobox.isDefined(arg) then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Return images and Mapframes/NPC map unmodified&lt;br /&gt;
	if string.find(arg, &amp;#039;%[&amp;#039;) or string.find(arg, &amp;#039;mapframe&amp;#039;) then&lt;br /&gt;
		return arg&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return &amp;#039;N/A&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function addcategories(args, catargs)&lt;br /&gt;
	local ret = { &amp;#039;Locations&amp;#039; }&lt;br /&gt;
&lt;br /&gt;
	-- Add the associated category if the parameter doesn&amp;#039;t have content&lt;br /&gt;
	local notdefined_args = {&lt;br /&gt;
		image = &amp;#039;Needs image&amp;#039;,&lt;br /&gt;
		members = &amp;#039;Needs members status&amp;#039;,&lt;br /&gt;
		release = &amp;#039;Needs release date&amp;#039;,&lt;br /&gt;
		map = &amp;#039;Needs map&amp;#039;,&lt;br /&gt;
	}&lt;br /&gt;
	for n, v in pairs(notdefined_args) do&lt;br /&gt;
		if catargs[n] and catargs[n].all_defined == false then&lt;br /&gt;
			table.insert(ret, v)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Add the associated category if the parameter does have content&lt;br /&gt;
	local defined_args = {&lt;br /&gt;
		requirement = &amp;#039;Locations with requirements&amp;#039;,&lt;br /&gt;
	}&lt;br /&gt;
	for n, v in pairs(defined_args) do&lt;br /&gt;
		if catargs[n] and catargs[n].one_defined then&lt;br /&gt;
			table.insert(ret, v)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add category based on type param&lt;br /&gt;
	if args[&amp;#039;type&amp;#039;] then&lt;br /&gt;
		for type_dj in string.gmatch(args[&amp;#039;type&amp;#039;].d or &amp;#039;&amp;#039;, &amp;quot;[^,]+&amp;quot;) do&lt;br /&gt;
			local trimmed = type_dj:gsub(&amp;quot;^%s*(.-)%s*$&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
			if type_categories[trimmed] then&lt;br /&gt;
				table.insert(ret, type_categories[trimmed])&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if args[&amp;#039;type&amp;#039;].switches then&lt;br /&gt;
			for _, type_i in ipairs(args[&amp;#039;type&amp;#039;].switches) do&lt;br /&gt;
				for type_ij in string.gmatch(type_i or &amp;#039;&amp;#039;, &amp;quot;[^,]+&amp;quot;) do&lt;br /&gt;
					local trimmed = type_ij:gsub(&amp;quot;^%s*(.-)%s*$&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
					if type_categories[trimmed] then&lt;br /&gt;
						table.insert(ret, type_categories[trimmed])&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local cat_map = {&lt;br /&gt;
		-- Parameters that have text&lt;br /&gt;
		-- map a category to a value&lt;br /&gt;
		matches = {&lt;br /&gt;
			members = { yes = &amp;#039;Members\&amp;#039; locations&amp;#039;, no = &amp;#039;Free-to-play locations&amp;#039; },&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	-- searches&lt;br /&gt;
	for n, v in pairs(cat_map.matches) do&lt;br /&gt;
		for m, w in pairs(v) do&lt;br /&gt;
			if args[n] then&lt;br /&gt;
				if string.lower(tostring(args[n].d) or &amp;#039;&amp;#039;) == m then&lt;br /&gt;
					table.insert(ret, w)&lt;br /&gt;
				end&lt;br /&gt;
				if args[n].switches then&lt;br /&gt;
					for _, x in ipairs(args[n].switches) do&lt;br /&gt;
						if string.lower(tostring(x)) == m then&lt;br /&gt;
							table.insert(ret, w)&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- combine table and format category wikicode&lt;br /&gt;
	for i, v in ipairs(ret) do&lt;br /&gt;
		if (v ~= &amp;#039;&amp;#039;) then&lt;br /&gt;
			ret[i] = string.format(&amp;#039;[[Category:%s]]&amp;#039;, v)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(ret, &amp;#039;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
</feed>