114 lines
2.8 KiB
Lua
114 lines
2.8 KiB
Lua
-- Glifs personalitzats compartits per totes les escenes.
|
|
--
|
|
-- Cada glif es defineix com 8 bytes (files de 8 px, MSB esquerra). Ens
|
|
-- reservem el rang 1..15 (caracters de control que no usem) per als
|
|
-- glifs propis del joc. Aixi no pisem caracters del CP437 que despres
|
|
-- voldrem imprimir en text.
|
|
|
|
local M = {}
|
|
|
|
-- Codis simbolics per evitar magic numbers en la resta del codi.
|
|
-- IMPORTANT: la ROM d'ascii NO es CP437 estandar — chr(176..178) son
|
|
-- lletres gregues i chr(219) es un patro quadriculat, no els shades
|
|
-- esperats. Per aixo redefinim els shades nosaltres a un rang lliure.
|
|
M.PEPE = 1 -- contorn de pinguinet (Pepe)
|
|
M.MALO = 2 -- enemic
|
|
M.POT = 3 -- pot de pintura
|
|
M.GOTA = 4 -- gota caient
|
|
M.ARR_AMUNT = 5
|
|
M.ARR_AVALL = 6
|
|
M.ARR_ESQ = 7
|
|
M.ARR_DRETA = 8
|
|
M.SHADE_25 = 9 -- equivalent a CP437 chr(176) — trama clara
|
|
M.SHADE_50 = 10 -- equivalent a CP437 chr(177) — trama escacs
|
|
M.SHADE_75 = 11 -- equivalent a CP437 chr(178) — trama densa
|
|
M.BLOCK = 12 -- equivalent a CP437 chr(219) — bloc ple
|
|
|
|
-- Bitmaps. Cada fila es un byte (8 px). 1 = pixel encés.
|
|
local BITMAPS = {
|
|
[M.PEPE] = {
|
|
0x18, -- ..XX....
|
|
0x3C, -- .XXXX...
|
|
0x3C, -- .XXXX...
|
|
0x18, -- ..XX....
|
|
0x7E, -- .XXXXXX.
|
|
0x18, -- ..XX....
|
|
0x24, -- ..X..X..
|
|
0x42, -- .X....X.
|
|
},
|
|
[M.MALO] = {
|
|
0x3C,
|
|
0x66,
|
|
0xDB, -- ulls
|
|
0xFF,
|
|
0xFF,
|
|
0xDB,
|
|
0x66,
|
|
0x3C,
|
|
},
|
|
[M.POT] = {
|
|
0x00,
|
|
0x7E, -- vora superior
|
|
0x42,
|
|
0x42,
|
|
0x42,
|
|
0x42,
|
|
0x7E,
|
|
0x00,
|
|
},
|
|
[M.GOTA] = {
|
|
0x00,
|
|
0x18,
|
|
0x18,
|
|
0x3C,
|
|
0x3C,
|
|
0x18,
|
|
0x00,
|
|
0x00,
|
|
},
|
|
[M.ARR_AMUNT] = {
|
|
0x18, 0x3C, 0x7E, 0xFF,
|
|
0x18, 0x18, 0x18, 0x00,
|
|
},
|
|
[M.ARR_AVALL] = {
|
|
0x00, 0x18, 0x18, 0x18,
|
|
0xFF, 0x7E, 0x3C, 0x18,
|
|
},
|
|
[M.ARR_ESQ] = {
|
|
0x00, 0x10, 0x30, 0x7F,
|
|
0x7F, 0x30, 0x10, 0x00,
|
|
},
|
|
[M.ARR_DRETA] = {
|
|
0x00, 0x08, 0x0C, 0xFE,
|
|
0xFE, 0x0C, 0x08, 0x00,
|
|
},
|
|
|
|
-- Shades CP437 per a fades. Patrons alternats de bits.
|
|
[M.SHADE_25] = {
|
|
0x88, 0x22, 0x88, 0x22,
|
|
0x88, 0x22, 0x88, 0x22,
|
|
},
|
|
[M.SHADE_50] = {
|
|
0x55, 0xAA, 0x55, 0xAA,
|
|
0x55, 0xAA, 0x55, 0xAA,
|
|
},
|
|
[M.SHADE_75] = {
|
|
0x77, 0xDD, 0x77, 0xDD,
|
|
0x77, 0xDD, 0x77, 0xDD,
|
|
},
|
|
[M.BLOCK] = {
|
|
0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF,
|
|
},
|
|
}
|
|
|
|
function M.instala()
|
|
for codi, fila in pairs(BITMAPS) do
|
|
setchar(codi,
|
|
fila[1], fila[2], fila[3], fila[4],
|
|
fila[5], fila[6], fila[7], fila[8])
|
|
end
|
|
end
|
|
|
|
return M
|