Browse Source

NESPalette method argument idx renamed to reduce confusion... to me. lol

dev-tmpl
Bryan Miller 6 years ago
parent
commit
f2ee7d464e
1 changed files with 37 additions and 15 deletions
  1. +37
    -15
      app/js/NESPalette.js

+ 37
- 15
app/js/NESPalette.js View File

]; ];
} }


set_palette(idx, p=8){
set_palette(apci, p=8){
if (typeof(p) != 'number') if (typeof(p) != 'number')
throw new TypeError("First argument expected to be a number."); throw new TypeError("First argument expected to be a number.");
if (!(idx instanceof Array))
if (!(apci instanceof Array))
throw new TypeError("Expected an array of color index values."); throw new TypeError("Expected an array of color index values.");
if (p < 0 || p >= 8){ // Setting ALL palettes! if (p < 0 || p >= 8){ // Setting ALL palettes!
if (idx.length != 25)
if (apci.length != 25)
throw new RangeError("Color array must contain 25 color values to fill all palettes."); throw new RangeError("Color array must contain 25 color values to fill all palettes.");
this.__BGColor = idx[0]; this.__BGColor = idx[0];
for (var i=0; i < 24; i++){ for (var i=0; i < 24; i++){
this.__palette[i] = idx[i+1]
if (typeof(apci[i+1]) == 'number'){
this.__palette[i] = apci[i+1]
}
} }
} else { // Setting a specific palette. } else { // Setting a specific palette.
if (idx.length != 3)
if (apci.length != 3)
throw new RangeError("Color array must contain three color values."); throw new RangeError("Color array must contain three color values.");
p *= 3; p *= 3;
for (var i=0; i < 4; i++){ for (var i=0; i < 4; i++){
if (typeof(idx[i]) === 'number'){
this.__palette[p+i] = idx[i];
if (typeof(apci[i]) === 'number'){
this.__palette[p+i] = apci[i];
} }
} }
} }
return this;
}

set_palette_syscolor_index(p, pci, sci){
if (typeof(p) != 'number' || typeof(pci) != 'number' || typeof(sci) != 'number')
throw new TypeError("Palette, palette color, and system color index expected to be numbers.");
if (p < 0 || p >= 8){
throw new RangeError("Palette index is out of bounds.");
}
if (pci < 0 || pci >= 4){
throw new RangeError("Palette color index is out of bounds.");
}
if (sci < 0 || sci >= 64){
throw new RangeError("System color index is out of bounds.");
}
if (pci == 0)
this.__BGColor = sci;
else
this.__palette[(p*3) + (pci-1)] = sci;
return this;
} }


get_palette_syscolor_index(p, idx){
if (typeof(p) != 'number' || typeof(idx) != 'number')
get_palette_syscolor_index(p, pci){
if (typeof(p) != 'number' || typeof(pci) != 'number')
throw new TypeError("Palette and color index expected to be numbers."); throw new TypeError("Palette and color index expected to be numbers.");
if (p < 0 || p >= 8){ if (p < 0 || p >= 8){
throw new RangeError("Palette index is out of bounds."); throw new RangeError("Palette index is out of bounds.");
} }
if (idx < 0 || idx >= 4){
if (pci < 0 || pci >= 4){
throw new RangeError("Palette color index is out of bounds."); throw new RangeError("Palette color index is out of bounds.");
} }
return (idx === 0) ? this.__BGColor : this.__palette[(p*3)+(idx-1)];
return (pci === 0) ? this.__BGColor : this.__palette[(p*3)+(pci-1)];
} }


get_palette_color(p, idx){
if (typeof(p) != 'number' || typeof(idx) != 'number')
get_palette_color(p, pci){
if (typeof(p) != 'number' || typeof(pci) != 'number')
throw new TypeError("Palette and color index expected to be numbers."); throw new TypeError("Palette and color index expected to be numbers.");
if (p < 0 || p >= 8){ if (p < 0 || p >= 8){
throw new RangeError("Palette index is out of bounds."); throw new RangeError("Palette index is out of bounds.");
} }
if (idx < 0 || idx >= 4){
if (pci < 0 || pci >= 4){
throw new RangeError("Palette color index is out of bounds."); throw new RangeError("Palette color index is out of bounds.");
} }
return NESPalette.SystemColor(this.get_palette_syscolor_index(p, idx));
return NESPalette.SystemColor(this.get_palette_syscolor_index(p, pci));
} }


to_asm(memname="PaletteData"){ to_asm(memname="PaletteData"){

Loading…
Cancel
Save