v38

His Dad [04-29-18 - 06:47]
v38
Morrowind Skillquest's and Public Dungeons
Signed-off-by: His Dad <John@hisdad.org>
Filename
HistOffline.lua
data/Group1.lua
data/Group2.lua
data/Public.lua
data/Quest.lua
data/de/de.lua
data/en/en.lua
data/fr/fr.lua
data/ids.lua
data/keys.lua
data/utility.lua
diff --git a/HistOffline.lua b/HistOffline.lua
index 6fc672f..9e5a0c4 100644
--- a/HistOffline.lua
+++ b/HistOffline.lua
@@ -11,10 +11,10 @@ local FG_Colour_Complete = "#000000"
 local BG_Colour_Not_Complete = "#FFB67D"
 local BG_Colour_Complete = "#A4FF5A"
 local Colour_Heading_Complete = "#58FA58"
---force_lang = "fr"   --	or "de" or "en"  for debugging
+--force_lang = "de"   --	or "de" or "en"  for debugging

 -- ========================
-version= "38"
+version= "39"
 require( "iuplua" )
 require( "iupluacontrols" )
 iup.SetGlobal("UTF8MODE","YES")
@@ -404,9 +404,9 @@ end



-  for _,i in ipairs(Pub_Dat.key) do
-	  dung.pub.key[i] = {}
-  end
+--  for _,i in ipairs(Pub_Dat.key) do
+--	  dung.pub.key[i] = {}
+--  end

   for _,i in ipairs(DLC2key) do
 	  dung.DLC.key[i] = {}
@@ -487,6 +487,9 @@ end
 					iup.SetAttribute(me.Grp[i].box, bgcolour, BG_Colour_Complete)
 					-- Add char to dungeon
 					key = tostring(Gdat.L .. Gdat.C)
+					if  dung.Grp[i].key[key] == nil then
+						print ("dung.Grp[i].key[key]   key:  " .. key .. " is nil.")
+					end
 					dung.Grp[i].key[key][playerID] = true
 				else
 					bgcolour = "BGCOLOR" .. Gdat.L .. ":" .. Gdat.C
@@ -586,6 +589,9 @@ end
 				iup.SetAttribute(me.Pub_box, bgcolour, BG_Colour_Complete)
 				-- Add char to dungeon
 				local key = tostring(Pub_Dat.id[id].L .. Pub_Dat.id[id].C)
+				if dung.pub.key[key] == nil then	-- Add if needed
+					dung.pub.key[key]  = {}
+				end
 				dung.pub.key[key][playerID] = true
 			else
 				iup.SetAttribute(me.Pub_box, bgcolour, BG_Colour_Not_Complete)
@@ -992,9 +998,16 @@ iup.Append(accounts[acc].char_tabs, accounts[acc].log_tab)

    -- Generic function for populating these tables
 	populate = function(ADung,Grp_key)
+		if ADung.key == nil  then
+			print ("ADung.key  is nil (fatal)")
+		end
 		for line, key in ipairs(Grp_key) do  -- for lines going down, get the key
 		-- does that char exist in the table. Check by PlayerID
 			for col,playerID in ipairs(accounts[acc].playerIDs) do	-- over each char in order
+				if ADung.key[key] == nil  then
+				ADung.key[key] = {}
+				end
+
 				if ADung.key[key][playerID]  then
 					ADung.box:setcell(line,col, L.YesLabel)
 					iup.SetAttribute(ADung.box,"BGCOLOR" .. tostring(line) .. ":" .. tostring(col), BG_Colour_Complete)
@@ -1028,6 +1041,7 @@ iup.Append(accounts[acc].char_tabs, accounts[acc].log_tab)
 	iup.SetAttribute(dung.pub.box, "READONLY", "YES")

 	-- Populate with character data ============================
+	-- print ("Populating Pub")
 	populate(dung.pub,Pub_Dat.key)

 	-- Create Pub Dungeon Tab ==================================
@@ -1045,6 +1059,7 @@ iup.Append(accounts[acc].char_tabs, accounts[acc].log_tab)
 	for _,i in ipairs (Grp_Order) do
 		iup.Append(accounts[acc].dung_tabs, dung.Grp[i].tab)
 		-- Populate with character data ============================
+		-- print ("populate Grp,i: " .. i)
 		populate(dung.Grp[i], Grp_Dat[i].key)
 	end

@@ -1100,6 +1115,7 @@ iup.Append(accounts[acc].char_tabs, accounts[acc].log_tab)
 		for _,i in ipairs (Craglorn_Order) do
 			iup.Append(accounts[acc].dung_tabs, dung.Craglorn[i].tab)
 			-- Populate with character data ============================
+		--	print ("populate Craglorn")
 			populate(dung.Craglorn[i], Craglorn_Dat[i].key)
 		end
 	end -- has vet chars
diff --git a/data/Group1.lua b/data/Group1.lua
index bfebb85..c428ac2 100644
--- a/data/Group1.lua
+++ b/data/Group1.lua
@@ -20,12 +20,12 @@ Grp_Dat["1N"].id = {
 [81]= {L=4, C=3},		-- "Tempest Island Vanquisher"
 [417]= {L=5, C=3},		-- "Selene's Web Vanquisher"

-[570]= {L=5, C=4},		-- "Vaults of Madness Vanquisher"
+[570]= {L=1, C=4},		-- "Vaults of Madness Vanquisher"
 }
 Grp_Dat["1N"].vet = false
 Grp_Dat["1N"].lines = 5		-- Number of lines in Grid
 Grp_Dat["1N"].key=grp1tokey	-- from keys.lua file
-
+Grp_Dat["1N"].name="Grp_Dat[\"1N\"]"

 Grp_Dat["1V"].id = {
 [1556]= {L=1, C=1},		-- "Fungal Grotto I Conqueror"
@@ -46,11 +46,12 @@ Grp_Dat["1V"].id = {
 [1617]= {L=4, C=3},		-- "Tempest Island Conqueror"
 [1635]= {L=5, C=3},		-- "Selene's Web Conqueror"

-[1653]= {L=5, C=4},		-- "Vaults of Madness Conqueror"
+[1653]= {L=1, C=4},		-- "Vaults of Madness Conqueror"
 }
 Grp_Dat["1V"].vet = true
 Grp_Dat["1V"].lines = 5		-- Number of lines in Grid
 Grp_Dat["1V"].key=grp1tokey	-- from keys.lua file
+Grp_Dat["1V"].name="Grp_Dat[\"1V\"]"

 --Hard Mode
 Grp_Dat["1VH"].id = {
@@ -72,9 +73,10 @@ Grp_Dat["1VH"].id = {
 [1617]= {L=4, C=3},		-- "Tempest Island Conqueror"
 [1640]= {L=5, C=3},		-- "All Wrapped Up"

-[1658]= {L=5, C=4},		-- "New Mayor of Crazy Town"
+[1658]= {L=1, C=4},		-- "New Mayor of Crazy Town"
 }

 Grp_Dat["1VH"].vet = true
 Grp_Dat["1VH"].lines = 5		-- Number of lines in Grid
 Grp_Dat["1VH"].key=grp1tokey	-- from keys.lua file
+Grp_Dat["1VH"].name="Grp_Dat[\"1VH\"]"
diff --git a/data/Group2.lua b/data/Group2.lua
index 1bf008d..94a51a8 100644
--- a/data/Group2.lua
+++ b/data/Group2.lua
@@ -27,6 +27,7 @@ Grp_Dat["2N"].id = {
 Grp_Dat["2N"].vet = false
 Grp_Dat["2N"].lines = 3		-- Number of lines in Grid
 Grp_Dat["2N"].key=grp2tokey	-- from keys.lua file
+Grp_Dat["2N"].name="Grp_Dat[\"2N\"]"

 Grp_Dat["2V"].id = {
 [343]= {L=1, C=1},		-- "Fungal Grotto II Conqueror"
@@ -52,6 +53,7 @@ Grp_Dat["2V"].id = {
 Grp_Dat["2V"].vet = true
 Grp_Dat["2V"].lines = 3		-- Number of lines in Grid
 Grp_Dat["2V"].key=grp2tokey	-- from keys.lua file
+Grp_Dat["2V"].name="Grp_Dat[\"2V\"]"

 -- Hard Mode Activated
 Grp_Dat["2VH"].id = {
@@ -78,3 +80,4 @@ Grp_Dat["2VH"].id = {
 Grp_Dat["2VH"].vet = true
 Grp_Dat["2VH"].lines = 3		-- Number of lines in Grid
 Grp_Dat["2VH"].key=grp2tokey	-- from keys.lua file
+Grp_Dat["2VH"].name="Grp_Dat[\"2VH\"]"
diff --git a/data/Public.lua b/data/Public.lua
index ac7ff9d..e38da42 100644
--- a/data/Public.lua
+++ b/data/Public.lua
@@ -20,8 +20,11 @@ Pub_Dat.id = {
 [1051]= {L=4, C=3},		-- Crimson Cove Conqueror"
 [1052]= {L=5, C=3},		-- The Vile Manse Conqueror"

-[1056]= {L=5, C=4},		-- Village of the Lost Conqueror"
+[1056]= {L=1, C=4},		-- Village of the Lost Conqueror
+[1857]= {L=2, C=4},		-- Forgotten Wastes Conqueror
+[1854]= {L=3, C=4},		-- "Nchuleftingth Conqueror",
 }
 Pub_Dat.vet = false
-Pub_Dat.key=grp1tokey	-- from keys.lua file
+Pub_Dat.key=pubtokey	-- from keys.lua file
+Pub_Dat.name="Pub_Dat"

diff --git a/data/Quest.lua b/data/Quest.lua
index b14f20a..0ff1523 100644
--- a/data/Quest.lua
+++ b/data/Quest.lua
@@ -87,6 +87,7 @@ SQ_dat = {


 [1870] = {L=2, C=4, ["link1"] = "http://en.uesp.net/wiki/Online:Naryu%27s_Confidant"},	--"Naryu's Confidant"
+[1869] = {L=2, C=4, ["link1"] = "http://en.uesp.net/wiki/Online:Rising_Sun"},	-- Rising Sun
 -- [614] = {L=2, C=4, ["link1"] = "http://www.uesp.net/wiki/Online:The_Final_Assault"},
 -- [612] = {L=2, C=4, ["link1"] = "http://www.uesp.net/wiki/Online:Light_from_the_Darkness"},
 }
diff --git a/data/de/de.lua b/data/de/de.lua
index c4644cc..b17bd02 100644
--- a/data/de/de.lua
+++ b/data/de/de.lua
@@ -1,5 +1,5 @@
 -- Translation by Joklix and Snakefish, Thankyou!
-
+dateformat = "%d-%m-%Y, %H:%M"

 Area_names = {
 	[1] = { short= "EP",
@@ -33,6 +33,7 @@ DLC_names = {
 			medium = "Hist",
 			long = "Schatten des Hist"},
 }
+
 L = {
 		GrpDungeon = "Gruppenverlies",
 		PubDungeon = "Offenes Verlies",
@@ -128,7 +129,10 @@ pub_names = {
 	["43"]= "Die Blutgrotten" ,
 	["53"]= "Düsteres Herrenhaus" ,
 --Coldharbour
-	["54"]= "Dorf der Verlorenen" ,
+	["14"]= "Dorf der Verlorenen" ,
+--Morrowind
+	["24"]= "Vergessenen Ödlands",
+	["34"]= "Nchuleftingth Conqueror",
 	}

 grp_names = {
@@ -151,7 +155,11 @@ grp_names = {
 	["43"]= "Orkaninsel",
 	["53"]= "Selenes Netz",
 --Coldharbour
-	["54"]= "Kammern des Wahnsinns",
+	["14"]= "Kammern des Wahnsinns",
+
+--Morrowind
+	["24"]= "Forgotten Wastes",
+	["34"]= "Nchuleftingth Conqueror",
 }


@@ -200,6 +208,8 @@ Locations = {
 		["53"] = "Schnittermark",
 --Coldharbour
 		["14"] = "Kalthafen",
+		--Coldharbour
+		["24"] = "Morrowind",
 }

 DLC_Location_names = {
diff --git a/data/en/en.lua b/data/en/en.lua
index 1de1b8a..8e09d4b 100644
--- a/data/en/en.lua
+++ b/data/en/en.lua
@@ -1,3 +1,4 @@
+
 dateformat = "%Y-%m-%d, %H:%M"

 Area_names = {
@@ -127,7 +128,10 @@ pub_names = {
 	["43"]= "Crimson Cove" ,
 	["53"]= "The Vile Manse" ,
 --Coldharbour
-	["54"]= "Village of the Lost" ,
+	["14"]= "Village of the Lost" ,
+--Morrowind
+	["24"]= "Forgotten Wastes",
+	["34"]= "Nchuleftingth Conqueror",
 	}

 grp_names = {
@@ -150,7 +154,7 @@ grp_names = {
 	["43"]= "Tempest Island",
 	["53"]= "Selene's Web",
 --Coldharbour
-	["54"]= "Vaults of Madness",
+	["14"]= "Vaults of Madness",
 }


diff --git a/data/fr/fr.lua b/data/fr/fr.lua
index d452648..298d918 100644
--- a/data/fr/fr.lua
+++ b/data/fr/fr.lua
@@ -33,6 +33,7 @@ DLC_names = {
 			medium = "Hist",
 			long = "Ombres de l\'Hist"},
 }
+
 	L = {
 		GrpDungeon = "Grp Dungeon",
 		PubDungeon = "Pub Dungeon",
@@ -127,7 +128,11 @@ pub_names = {
 	["43"]= "Crique écarlate" ,
 	["53"]= "Presbytère infâme" ,
 --Coldharbour
-	["54"]= "Village des perdus" ,
+	["14"]= "Village des perdus" ,
+
+--Morrowind
+	["24"]= "Landes oubliées",
+	["34"]= "Nchuleftingth Conqueror",
 	}

 grp_names = {
@@ -150,7 +155,7 @@ grp_names = {
 	["43"]= "L'île des Tempêtes",
 	["53"]= "Toile de Sélène",
 --Coldharbour
-	["54"]= "Chambres de la folie",
+	["14"]= "Chambres de la folie",
 }

 Craglorn_Names= {}
@@ -177,8 +182,8 @@ Craglorn_Names["VH"] = {
 	["31"] = "Sanctum Ophidia difficulté maximale",
 	["41"] = "L'Étoile du dragon Conquérant",
 }
-
-
+
+
 Locations = {
 --EP
 		["11"] = "Stonefalls",
@@ -200,6 +205,8 @@ Locations = {
 		["53"] = "Reaper's March",
 --Coldharbour
 		["14"] = "Coldharbour",
+--Morrowind
+		["24"] = "Morrowind",
 }
 DLC_Location_names = {
 ["11"]	= "Rkindaleft",
diff --git a/data/ids.lua b/data/ids.lua
index 5d49c0d..1c8cc0b 100644
--- a/data/ids.lua
+++ b/data/ids.lua
@@ -142,6 +142,7 @@ hist.IDs = {
 [363] = true,
 [364] = true,
 [365] = true,
+[1869] = true,
 [1870] = true,
 [538] = true,
 [99999999] = true,
diff --git a/data/keys.lua b/data/keys.lua
index 5254c3f..bc8342a 100644
--- a/data/keys.lua
+++ b/data/keys.lua
@@ -20,7 +20,8 @@ grp1tokey = {
 "43",
 "53",
 --Coldharbour
-"54",
+"14",
+--Morrowind
 }

 --Some are missing
@@ -34,6 +35,32 @@ grp2tokey = {
 "23",	--Elden Hollow
 "33",	--City of Ash
 }
+
+pubtokey = {
+--EP
+"11",
+"21",
+"31",
+"41",
+"51",
+--DC
+"12",
+"22",
+"32",
+"42",
+"52",
+--AD
+"13",
+"23",
+"33",
+"43",
+"53",
+--Coldharbour
+"14",
+--Morrowind
+"24",
+"34",
+}
 DLC2key={
 --Orsinium
 "11",
diff --git a/data/utility.lua b/data/utility.lua
index f8b112c..918bd14 100644
--- a/data/utility.lua
+++ b/data/utility.lua
@@ -11,6 +11,12 @@ dump = function (o)
    end
 end

+dumpf = function (o)
+	outfile=io.open("dump-file.txt", "w")
+
+	outfile:write(dump(o))
+	outfile:close()
+end

 -- Minimally effective quoting
 quote = function (astring)
@@ -69,7 +75,7 @@ reverse_id = function (Adata)	-- given a grp-id table like this
 		if rev[key] == nil then
 			rev[key] = ach
 		else
-			print ("error dup " .. key)
+			print ("Reverse_id, error dup key: " .. key)
 		end
 	end
 	return rev
@@ -96,12 +102,12 @@ box_mousemove_cb = 	function (self, l, c)

 		local ach = self.dat.reverse_id[key]

-		if ach == nil then
+		if ach == nil then
 			blank_detail()
 	--		detail_name.title = "No reverse lookup on " .. key	-- Normal on Group 2 and Pub panel with enpty spaces
 			return
 		end
-
+
 		if Ach_Detail[ach] == nil then
 			detail_name.title = "No Achievement for " .. ach
 			return
@@ -111,7 +117,7 @@ box_mousemove_cb = 	function (self, l, c)

 	end

-
+
 box_leavewindow_cb = function (self)
 	blank_detail()
 end