changeset 210:13aed87e472a

More work towards user-selectable palettes.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 29 Aug 2018 15:37:37 +0300
parents edc628a79dd3
children 6d866e284dd2
files files.pde mpui.js
diffstat 2 files changed, 30 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/files.pde	Wed Aug 29 15:20:45 2018 +0300
+++ b/files.pde	Wed Aug 29 15:37:37 2018 +0300
@@ -233,11 +233,6 @@
 // XXX TODO: Make this support other platforms than C64
 boolean mpLoadPalette(String fname)
 {
-    if (g_map[13] != C64)
-    {
-        return false;
-    }
-
     byte fdata[] = mpLoadbinaryFile(fname);
     if (fdata == null ||
         fdata.length != 772 ||
--- a/mpui.js	Wed Aug 29 15:20:45 2018 +0300
+++ b/mpui.js	Wed Aug 29 15:37:37 2018 +0300
@@ -146,6 +146,29 @@
 }
 
 
+function mpMachineChanged()
+{
+  var tmp = stGetSelIndex("machineID");
+  var velem = stGE("paletteID");
+  var palID = mpMachines[tmp][2];
+  velem.style.display = (palID >= 0) ? "block" : "none";
+  velem.disabled = true;
+  stClearChildren(velem);
+  if (palID >= 0)
+  {
+    var vlist = mpPalettes[palID];
+    for (var n = 0; n < vlist.length; n++)
+    {
+      var mp = vlist[n];
+      var opt = stCE("option");
+      opt.value = n;
+      opt.textContent = mp;
+      velem.appendChild(opt);
+    }
+  }
+}
+
+
 function mpShowLauncher()
 {
   var mpCanvas = stGE("mpCanvas");
@@ -163,7 +186,6 @@
   mobj.textContent = "Target machine / mode:";
   mdiv.appendChild(mobj);
 
-
   mobj = stCreateSelect("machineID", mpMachines,
     function (vn, vopt, val)
     {
@@ -176,11 +198,17 @@
     });
 
   mdiv.appendChild(mobj);
+  stAddEventOb(mobj.name, mobj, "change", mpMachineChanged);
+
   mobj = stCE("button", "selectID");
   mobj.textContent = "RUN";
   stAddEventOb(mobj.name, mobj, "click", mpLauncherDone);
   mdiv.appendChild(mobj);
 
+  mobj = stCE("div");
+  mdiv.appendChild(mobj);
+  mobj.appendChild(stCE("select", "paletteID"));
+
 
   mdiv = stCE("div", "mdimensions");
   mpUI.appendChild(mdiv);
@@ -195,6 +223,7 @@
   mdiv.appendChild(stCreateSelect("scalesID", mpUIScales,
     function (vn, vopt, val) { vopt.value = val; vopt.textContent = " x "+ val; }));
 
+  mpMachineChanged();
 
   mobj = stCE("div");
   mobj.innerHTML =