Era name & icon
Posted: Sun Dec 18, 2011 12:34 am
by Marth8880
I am adding an era to some stock maps to see how well it plays there (gee, I wonder what this era could be? :s), and the name/icon is only working for the custom map; the era/icon shows up as "New Jedi Order" for the stock maps. Also, the era is loaded correctly and everything in the stock maps; again, the name/icon is the only problem.
addme.lua
addme.lua
Hidden/Spoiler:
[code]-- recursively merges the second given table into the first given table
function MergeTables( mission, newFlags )
--for each table entry,
local array = type({})
for key,value in pairs(newFlags) do
--check for nested tables
if type(value) == array then
--mission must have this key as a table too
if type(mission[key]) ~= array then
mission[key] = {}
end
--merge these two tables recursively
MergeTables(mission[key], value)
else
--the key is a simple variable, so simply store it
mission[key] = value
end
end
end
--Search through the missionlist to find a map that matches mapName,
--then insert the new flags into said entry.
--Use this when you know the map already exists, but this content patch is just
--adding new gamemodes (otherwise you should just add whole new entries to the missionlist)
function AddNewGameModes(missionList, mapName, newFlags)
for i, mission in missionList do
if mission.mapluafile == mapName then
MergeTables(mission, newFlags)
end
end
end
ReadDataFile("..\\..\\addon\\PLU\\data\\_LVL_PC\\shell.lvl")
--insert totally new maps here:
local sp_n = 0
local mp_n = 0
sp_n = table.getn(sp_missionselect_listbox_contents)
sp_missionselect_listbox_contents[sp_n+1] = { red = 0, green = 0, blue = 200, isModLevel = 1, mapluafile = "PLU%s_%s", era_g = 1, era_n = 1, mode_con_g = 1, mode_con_n = 1, change = {
era_n = { name="Mass Effect", icon2="era_icon_n7" }, }, }
mp_n = table.getn(mp_missionselect_listbox_contents)
mp_missionselect_listbox_contents[mp_n+1] = sp_missionselect_listbox_contents[sp_n+1]
-- associate this mission name with the current downloadable content directory
-- (this tells the engine which maps are downloaded, so you need to include all new mission lua's here)
-- first arg: mapluafile from above
-- second arg: mission script name
-- third arg: level memory modifier. the arg to LuaScript.cpp: DEFAULT_MODEL_MEMORY_PLUS(x)
------ Stock maps begin ------
AddNewGameModes(
sp_missionselect_listbox_contents,
"myg1%s_%s",
{
era_n = 1,
mode_con_n = 1,
change = {
era_n = { name="Mass Effect", icon2="era_icon_n7" },
},
}
)
AddNewGameModes(
sp_missionselect_listbox_contents,
"pol1%s_%s",
{
era_n = 1,
mode_con_n = 1,
change = {
era_n = { name="Mass Effect", icon2="era_icon_n7" },
},
}
)
AddNewGameModes(
sp_missionselect_listbox_contents,
"tan1%s_%s",
{
era_n = 1,
mode_con_n = 1,
change = {
era_n = { name="Mass Effect", icon2="era_icon_n7" },
},
}
)
AddNewGameModes(
sp_missionselect_listbox_contents,
"tat2%s_%s",
{
era_n = 1,
mode_con_n = 1,
change = {
era_n = { name="Mass Effect", icon2="era_icon_n7" },
},
}
)
------ Stock maps end ------
------ Custom maps begin ------
AddDownloadableContent("PLU","PLUg_con",4)
AddDownloadableContent("PLU","PLUn_con",4)
------ Custom maps end ------
------ Stock maps begin ------
AddDownloadableContent("myg1","myg1n_con",4)
AddDownloadableContent("pol1","pol1n_con",4)
AddDownloadableContent("tan1","tan1n_con",4)
AddDownloadableContent("tat2","tat2n_con",4)
------ Stock maps end ------
-- all done
newEntry = nil
n = nil
-- Now load our core.lvl into the shell to add our localize keys
ReadDataFile("..\\..\\addon\\PLU\\data\\_LVL_PC\\core.lvl")
[/code]
function MergeTables( mission, newFlags )
--for each table entry,
local array = type({})
for key,value in pairs(newFlags) do
--check for nested tables
if type(value) == array then
--mission must have this key as a table too
if type(mission[key]) ~= array then
mission[key] = {}
end
--merge these two tables recursively
MergeTables(mission[key], value)
else
--the key is a simple variable, so simply store it
mission[key] = value
end
end
end
--Search through the missionlist to find a map that matches mapName,
--then insert the new flags into said entry.
--Use this when you know the map already exists, but this content patch is just
--adding new gamemodes (otherwise you should just add whole new entries to the missionlist)
function AddNewGameModes(missionList, mapName, newFlags)
for i, mission in missionList do
if mission.mapluafile == mapName then
MergeTables(mission, newFlags)
end
end
end
ReadDataFile("..\\..\\addon\\PLU\\data\\_LVL_PC\\shell.lvl")
--insert totally new maps here:
local sp_n = 0
local mp_n = 0
sp_n = table.getn(sp_missionselect_listbox_contents)
sp_missionselect_listbox_contents[sp_n+1] = { red = 0, green = 0, blue = 200, isModLevel = 1, mapluafile = "PLU%s_%s", era_g = 1, era_n = 1, mode_con_g = 1, mode_con_n = 1, change = {
era_n = { name="Mass Effect", icon2="era_icon_n7" }, }, }
mp_n = table.getn(mp_missionselect_listbox_contents)
mp_missionselect_listbox_contents[mp_n+1] = sp_missionselect_listbox_contents[sp_n+1]
-- associate this mission name with the current downloadable content directory
-- (this tells the engine which maps are downloaded, so you need to include all new mission lua's here)
-- first arg: mapluafile from above
-- second arg: mission script name
-- third arg: level memory modifier. the arg to LuaScript.cpp: DEFAULT_MODEL_MEMORY_PLUS(x)
------ Stock maps begin ------
AddNewGameModes(
sp_missionselect_listbox_contents,
"myg1%s_%s",
{
era_n = 1,
mode_con_n = 1,
change = {
era_n = { name="Mass Effect", icon2="era_icon_n7" },
},
}
)
AddNewGameModes(
sp_missionselect_listbox_contents,
"pol1%s_%s",
{
era_n = 1,
mode_con_n = 1,
change = {
era_n = { name="Mass Effect", icon2="era_icon_n7" },
},
}
)
AddNewGameModes(
sp_missionselect_listbox_contents,
"tan1%s_%s",
{
era_n = 1,
mode_con_n = 1,
change = {
era_n = { name="Mass Effect", icon2="era_icon_n7" },
},
}
)
AddNewGameModes(
sp_missionselect_listbox_contents,
"tat2%s_%s",
{
era_n = 1,
mode_con_n = 1,
change = {
era_n = { name="Mass Effect", icon2="era_icon_n7" },
},
}
)
------ Stock maps end ------
------ Custom maps begin ------
AddDownloadableContent("PLU","PLUg_con",4)
AddDownloadableContent("PLU","PLUn_con",4)
------ Custom maps end ------
------ Stock maps begin ------
AddDownloadableContent("myg1","myg1n_con",4)
AddDownloadableContent("pol1","pol1n_con",4)
AddDownloadableContent("tan1","tan1n_con",4)
AddDownloadableContent("tat2","tat2n_con",4)
------ Stock maps end ------
-- all done
newEntry = nil
n = nil
-- Now load our core.lvl into the shell to add our localize keys
ReadDataFile("..\\..\\addon\\PLU\\data\\_LVL_PC\\core.lvl")
[/code]