Skip to content

Commit

Permalink
Fixed menustate error when user has no favmaps
Browse files Browse the repository at this point in the history
MENU ERROR: lua/includes/extensions/string.lua:91: bad argument Facepunch#1 to 'string_gmatch' (string expected, got table)
Also fixed some inconsistent use of Garry's C and/or and lua's
Aligned equal signs for map prefixes
  • Loading branch information
mcd1992 committed Oct 7, 2015
1 parent bd5be0f commit ed21af0
Showing 1 changed file with 115 additions and 115 deletions.
230 changes: 115 additions & 115 deletions garrysmod/lua/menu/getmaps.lua
@@ -1,27 +1,27 @@

local MapPatterns = {}
local MapNames = {}
local MapNames = {}

local function UpdateMaps()

MapPatterns = {}
MapNames = {}
MapNames = {}

MapNames[ "aoc_" ] = "Age of Chivalry"

MapPatterns[ "^asi-" ] = "Alien Swarm"
MapNames[ "lobby" ] = "Alien Swarm"

MapNames[ "cp_docks" ] = "Blade Symphony"
MapNames[ "cp_parkour" ] = "Blade Symphony"
MapNames[ "cp_sequence" ] = "Blade Symphony"
MapNames[ "cp_terrace" ] = "Blade Symphony"
MapNames[ "cp_test" ] = "Blade Symphony"
MapNames[ "duel_" ] = "Blade Symphony"
MapNames[ "lobby" ] = "Alien Swarm"

MapNames[ "cp_docks" ] = "Blade Symphony"
MapNames[ "cp_parkour" ] = "Blade Symphony"
MapNames[ "cp_sequence" ] = "Blade Symphony"
MapNames[ "cp_terrace" ] = "Blade Symphony"
MapNames[ "cp_test" ] = "Blade Symphony"
MapNames[ "duel_" ] = "Blade Symphony"
MapNames[ "ffa_community" ] = "Blade Symphony"
MapNames[ "free_" ] = "Blade Symphony"
MapNames[ "practice_box" ] = "Blade Symphony"
MapNames[ "tut_training" ] = "Blade Symphony"
MapNames[ "free_" ] = "Blade Symphony"
MapNames[ "practice_box" ] = "Blade Symphony"
MapNames[ "tut_training" ] = "Blade Symphony"

MapNames[ "ar_" ] = "Counter-Strike"
MapNames[ "cs_" ] = "Counter-Strike"
Expand All @@ -35,29 +35,29 @@ local function UpdateMaps()

MapNames[ "ddd_" ] = "Dino D-Day"

MapNames[ "de_dam" ] = "DIPRIP"
MapNames[ "dm_city" ] = "DIPRIP"
MapNames[ "dm_refinery" ] = "DIPRIP"
MapNames[ "de_dam" ] = "DIPRIP"
MapNames[ "dm_city" ] = "DIPRIP"
MapNames[ "dm_refinery" ] = "DIPRIP"
MapNames[ "dm_supermarket" ] = "DIPRIP"
MapNames[ "dm_village" ] = "DIPRIP"
MapNames[ "ur_city" ] = "DIPRIP"
MapNames[ "ur_refinery" ] = "DIPRIP"
MapNames[ "dm_village" ] = "DIPRIP"
MapNames[ "ur_city" ] = "DIPRIP"
MapNames[ "ur_refinery" ] = "DIPRIP"
MapNames[ "ur_supermarket" ] = "DIPRIP"
MapNames[ "ur_village" ] = "DIPRIP"
MapNames[ "ur_village" ] = "DIPRIP"

MapNames[ "dys_" ] = "Dystopia"
MapNames[ "pb_dojo" ] = "Dystopia"
MapNames[ "pb_rooftop" ] = "Dystopia"
MapNames[ "pb_round" ] = "Dystopia"
MapNames[ "dys_" ] = "Dystopia"
MapNames[ "pb_dojo" ] = "Dystopia"
MapNames[ "pb_rooftop" ] = "Dystopia"
MapNames[ "pb_round" ] = "Dystopia"
MapNames[ "pb_urbandome" ] = "Dystopia"
MapNames[ "sav_dojo6" ] = "Dystopia"
MapNames[ "varena" ] = "Dystopia"
MapNames[ "sav_dojo6" ] = "Dystopia"
MapNames[ "varena" ] = "Dystopia"

MapNames[ "d1_" ] = "Half-Life 2"
MapNames[ "d2_" ] = "Half-Life 2"
MapNames[ "d3_" ] = "Half-Life 2"

MapNames[ "dm_" ] = "Half-Life 2: Deathmatch"
MapNames[ "dm_" ] = "Half-Life 2: Deathmatch"
MapNames[ "halls3" ] = "Half-Life 2: Deathmatch"

MapNames[ "ep1_" ] = "Half-Life 2: Episode 1"
Expand All @@ -67,113 +67,113 @@ local function UpdateMaps()
MapNames[ "d2_lostcoast" ] = "Half-Life 2: Lost Coast"

MapPatterns[ "^c[%d]a" ] = "Half-Life"
MapPatterns[ "^t0a" ] = "Half-Life"
MapPatterns[ "^t0a" ] = "Half-Life"

MapNames[ "boot_camp" ] = "Half-Life Deathmatch"
MapNames[ "bounce" ] = "Half-Life Deathmatch"
MapNames[ "crossfire" ] = "Half-Life Deathmatch"
MapNames[ "datacore" ] = "Half-Life Deathmatch"
MapNames[ "frenzy" ] = "Half-Life Deathmatch"
MapNames[ "boot_camp" ] = "Half-Life Deathmatch"
MapNames[ "bounce" ] = "Half-Life Deathmatch"
MapNames[ "crossfire" ] = "Half-Life Deathmatch"
MapNames[ "datacore" ] = "Half-Life Deathmatch"
MapNames[ "frenzy" ] = "Half-Life Deathmatch"
MapNames[ "lambda_bunker" ] = "Half-Life Deathmatch"
MapNames[ "rapidcore" ] = "Half-Life Deathmatch"
MapNames[ "snarkpit" ] = "Half-Life Deathmatch"
MapNames[ "stalkyard" ] = "Half-Life Deathmatch"
MapNames[ "subtransit" ] = "Half-Life Deathmatch"
MapNames[ "undertow" ] = "Half-Life Deathmatch"
MapNames[ "rapidcore" ] = "Half-Life Deathmatch"
MapNames[ "snarkpit" ] = "Half-Life Deathmatch"
MapNames[ "stalkyard" ] = "Half-Life Deathmatch"
MapNames[ "subtransit" ] = "Half-Life Deathmatch"
MapNames[ "undertow" ] = "Half-Life Deathmatch"

MapNames[ "ins_" ] = "Insurgency"

MapNames[ "l4d_" ] = "Left 4 Dead"

MapPatterns[ "^c[%d]m" ] = "Left 4 Dead 2"
MapNames[ "curling_stadium" ] = "Left 4 Dead 2"
MapNames[ "tutorial_standards" ] = "Left 4 Dead 2"
MapPatterns[ "^c[%d]m" ] = "Left 4 Dead 2"
MapNames[ "curling_stadium" ] = "Left 4 Dead 2"
MapNames[ "tutorial_standards" ] = "Left 4 Dead 2"
MapNames[ "tutorial_standards_vs" ] = "Left 4 Dead 2"

MapNames[ "clocktower" ] = "Nuclear Dawn"
MapNames[ "coast" ] = "Nuclear Dawn"
MapNames[ "downtown" ] = "Nuclear Dawn"
MapNames[ "gate" ] = "Nuclear Dawn"
MapNames[ "hydro" ] = "Nuclear Dawn"
MapNames[ "metro" ] = "Nuclear Dawn"
MapNames[ "clocktower" ] = "Nuclear Dawn"
MapNames[ "coast" ] = "Nuclear Dawn"
MapNames[ "downtown" ] = "Nuclear Dawn"
MapNames[ "gate" ] = "Nuclear Dawn"
MapNames[ "hydro" ] = "Nuclear Dawn"
MapNames[ "metro" ] = "Nuclear Dawn"
MapNames[ "metro_training" ] = "Nuclear Dawn"
MapNames[ "oasis" ] = "Nuclear Dawn"
MapNames[ "oilfield" ] = "Nuclear Dawn"
MapNames[ "silo" ] = "Nuclear Dawn"
MapNames[ "sk_metro" ] = "Nuclear Dawn"
MapNames[ "training" ] = "Nuclear Dawn"
MapNames[ "oasis" ] = "Nuclear Dawn"
MapNames[ "oilfield" ] = "Nuclear Dawn"
MapNames[ "silo" ] = "Nuclear Dawn"
MapNames[ "sk_metro" ] = "Nuclear Dawn"
MapNames[ "training" ] = "Nuclear Dawn"

MapNames[ "bt_" ] = "Pirates, Vikings, & Knights II"
MapNames[ "bt_" ] = "Pirates, Vikings, & Knights II"
MapNames[ "lts_" ] = "Pirates, Vikings, & Knights II"
MapNames[ "te_" ] = "Pirates, Vikings, & Knights II"
MapNames[ "tw_" ] = "Pirates, Vikings, & Knights II"
MapNames[ "te_" ] = "Pirates, Vikings, & Knights II"
MapNames[ "tw_" ] = "Pirates, Vikings, & Knights II"

MapNames[ "escape_" ] = "Portal"
MapNames[ "escape_" ] = "Portal"
MapNames[ "testchmb_" ] = "Portal"

MapNames[ "e1912" ] = "Portal 2"
MapNames[ "e1912" ] = "Portal 2"
MapPatterns[ "^mp_coop_" ] = "Portal 2"
MapPatterns[ "^sp_a" ] = "Portal 2"
MapPatterns[ "^sp_a" ] = "Portal 2"

MapNames[ "achievement_" ] = "Team Fortress 2"
MapNames[ "arena_" ] = "Team Fortress 2"
MapNames[ "cp_" ] = "Team Fortress 2"
MapNames[ "ctf_" ] = "Team Fortress 2"
MapNames[ "arena_" ] = "Team Fortress 2"
MapNames[ "cp_" ] = "Team Fortress 2"
MapNames[ "ctf_" ] = "Team Fortress 2"
MapNames[ "itemtest" ] = "Team Fortress 2"
MapNames[ "koth_" ] = "Team Fortress 2"
MapNames[ "mvm_" ] = "Team Fortress 2"
MapNames[ "pl_" ] = "Team Fortress 2"
MapNames[ "plr_" ] = "Team Fortress 2"
MapNames[ "rd_" ] = "Team Fortress 2"
MapNames[ "pd_" ] = "Team Fortress 2"
MapNames[ "sd_" ] = "Team Fortress 2"
MapNames[ "tc_" ] = "Team Fortress 2"
MapNames[ "tr_" ] = "Team Fortress 2"
MapNames[ "trade_" ] = "Team Fortress 2"
MapNames[ "pass_" ] = "Team Fortress 2"
MapNames[ "koth_" ] = "Team Fortress 2"
MapNames[ "mvm_" ] = "Team Fortress 2"
MapNames[ "pl_" ] = "Team Fortress 2"
MapNames[ "plr_" ] = "Team Fortress 2"
MapNames[ "rd_" ] = "Team Fortress 2"
MapNames[ "pd_" ] = "Team Fortress 2"
MapNames[ "sd_" ] = "Team Fortress 2"
MapNames[ "tc_" ] = "Team Fortress 2"
MapNames[ "tr_" ] = "Team Fortress 2"
MapNames[ "trade_" ] = "Team Fortress 2"
MapNames[ "pass_" ] = "Team Fortress 2"

MapNames[ "zpa_" ] = "Zombie Panic! Source"
MapNames[ "zpl_" ] = "Zombie Panic! Source"
MapNames[ "zpo_" ] = "Zombie Panic! Source"
MapNames[ "zps_" ] = "Zombie Panic! Source"

MapNames[ "bhop_" ] = "Bunny Hop"
MapNames[ "cinema_" ] = "Cinema"
MapNames[ "theater_" ] = "Cinema"
MapNames[ "xc_" ] = "Climb"
MapNames[ "deathrun_" ] = "Deathrun"
MapNames[ "dr_" ] = "Deathrun"
MapNames[ "fm_" ] = "Flood"
MapNames[ "gmt_" ] = "GMod Tower"
MapNames[ "gg_" ] = "Gun Game"
MapNames[ "scoutzknivez" ] = "Gun Game"
MapNames[ "ba_" ] = "Jailbreak"
MapNames[ "jail_" ] = "Jailbreak"
MapNames[ "jb_" ] = "Jailbreak"
MapNames[ "mg_" ] = "Minigames"
MapNames[ "pw_" ] = "Pirate Ship Wars"
MapNames[ "ph_" ] = "Prop Hunt"
MapNames[ "rp_" ] = "Roleplay"
MapNames[ "slb_" ] = "Sled Build"
MapNames[ "sb_" ] = "Spacebuild"
MapNames[ "slender_" ] = "Stop it Slender"
MapNames[ "gms_" ] = "Stranded"
MapNames[ "surf_" ] = "Surf"
MapNames[ "ts_" ] = "The Stalker"
MapNames[ "zm_" ] = "Zombie Survival"
MapNames[ "bhop_" ] = "Bunny Hop"
MapNames[ "cinema_" ] = "Cinema"
MapNames[ "theater_" ] = "Cinema"
MapNames[ "xc_" ] = "Climb"
MapNames[ "deathrun_" ] = "Deathrun"
MapNames[ "dr_" ] = "Deathrun"
MapNames[ "fm_" ] = "Flood"
MapNames[ "gmt_" ] = "GMod Tower"
MapNames[ "gg_" ] = "Gun Game"
MapNames[ "scoutzknivez" ] = "Gun Game"
MapNames[ "ba_" ] = "Jailbreak"
MapNames[ "jail_" ] = "Jailbreak"
MapNames[ "jb_" ] = "Jailbreak"
MapNames[ "mg_" ] = "Minigames"
MapNames[ "pw_" ] = "Pirate Ship Wars"
MapNames[ "ph_" ] = "Prop Hunt"
MapNames[ "rp_" ] = "Roleplay"
MapNames[ "slb_" ] = "Sled Build"
MapNames[ "sb_" ] = "Spacebuild"
MapNames[ "slender_" ] = "Stop it Slender"
MapNames[ "gms_" ] = "Stranded"
MapNames[ "surf_" ] = "Surf"
MapNames[ "ts_" ] = "The Stalker"
MapNames[ "zm_" ] = "Zombie Survival"
MapNames[ "zombiesurvival_" ] = "Zombie Survival"
MapNames[ "zs_" ] = "Zombie Survival"
MapNames[ "zs_" ] = "Zombie Survival"

local GamemodeList = engine.GetGamemodes()

for k, gm in ipairs( GamemodeList ) do
for _, gm in ipairs( GamemodeList ) do

local Name = gm.title or "Unnammed Gamemode"
local Maps = string.Split( gm.maps, "|" )

if ( Maps && gm.maps != "" ) then
if ( Maps and gm.maps != "" ) then

for k, pattern in ipairs( Maps ) do
for _, pattern in ipairs( Maps ) do
-- When in doubt, just try to match it with string.find
MapPatterns[ string.lower( pattern ) ] = Name
end
Expand All @@ -188,7 +188,8 @@ local favmaps

local function LoadFavourites()

favmaps = favmaps or string.Explode( ";", cookie.GetString( "favmaps", {} ) )
local cookiestr = cookie.GetString( "favmaps" )
favmaps = favmaps or (cookiestr and string.Explode( ";", cookiestr ) or {})

end

Expand All @@ -202,23 +203,23 @@ local IgnorePatterns = {

local IgnoreMaps = {
-- Prefixes
[ "sdk_" ] = true,
[ "sdk_" ] = true,
[ "test_" ] = true,
[ "vst_" ] = true,
[ "vst_" ] = true,

-- Maps
[ "c4a1y" ] = true,
[ "credits" ] = true,
[ "d2_coast_02" ] = true,
[ "d3_c17_02_camera" ] = true,
[ "c4a1y" ] = true,
[ "credits" ] = true,
[ "d2_coast_02" ] = true,
[ "d3_c17_02_camera" ] = true,
[ "ep1_citadel_00_demo" ] = true,
[ "intro" ] = true,
[ "test" ] = true
}
[ "intro" ] = true,
[ "test" ] = true
}

local MapList = {}
local MapList = {}

local function RefreshMaps( skip )
local function RefreshMaps( skip )

if ( !skip ) then UpdateMaps() end

Expand All @@ -228,9 +229,8 @@ local function RefreshMaps( skip )
LoadFavourites()

for k, v in ipairs( maps ) do
local name = string.lower( string.gsub( v, "%.bsp$", "" ) )
local prefix = string.match( name, "^(.-_)" )

local name = string.lower( string.gsub( v, "%.bsp$", "" ) )
local prefix = string.match( name, "^(.-_)" )
local Ignore = IgnoreMaps[ name ] or IgnoreMaps[ prefix ]

-- Don't loop if it's already ignored
Expand Down

0 comments on commit ed21af0

Please sign in to comment.