diff --git a/pepe_runner_dx.lua b/pepe_runner_dx.lua index 3fbfaaf..b62e576 100644 --- a/pepe_runner_dx.lua +++ b/pepe_runner_dx.lua @@ -21,6 +21,15 @@ BLOC3 = 178 PEPE_C = 2 MALO_C = 88 +-- Glifs del marc del HUD. Codis triats per a no col·lidir amb cap glif +-- de cap skin (la native usa 224, 233, 216-220, etc.). +FRAME_H = 240 +FRAME_V = 241 +FRAME_TL = 242 +FRAME_TR = 243 +FRAME_BL = 244 +FRAME_BR = 245 + -- Skins: cada skin es una taula tile_id → codi_de_glif_a_pintar. -- "custom" usa els mateixos codis CP437 (redibuixats amb setchar). -- "native" remapeja als glifs que ja existeixen al ROM d'ascii @@ -126,6 +135,16 @@ function definir_glifs() setchar(88, 0x00,0xC3,0x66,0x3C,0x18,0x3C,0x66,0xC3) -- MALO X end +-- Glifs del marc del HUD (sempre, independent de la skin del joc) +function definir_marc() + setchar(FRAME_H, 0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00) -- horitzontal centrada + setchar(FRAME_V, 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18) -- vertical centrada + setchar(FRAME_TL, 0x00,0x00,0x00,0x1F,0x1F,0x18,0x18,0x18) -- ┌ + setchar(FRAME_TR, 0x00,0x00,0x00,0xF8,0xF8,0x18,0x18,0x18) -- ┐ + setchar(FRAME_BL, 0x18,0x18,0x18,0x1F,0x1F,0x00,0x00,0x00) -- └ + setchar(FRAME_BR, 0x18,0x18,0x18,0xF8,0xF8,0x00,0x00,0x00) -- ┘ +end + -- ==================================================================== -- SFX (l'original no tenia so — afegim els minims raonables) -- ==================================================================== @@ -676,13 +695,25 @@ end function pintar_hud() color(colors.hud_text, colors.hud_bg) local blank = " " - -- Banda inferior completa (5 files, rows 25..29) per a un HUD equilibrat: - -- 25: filler superior - -- 26: LEVEL / SCORE / LIVES (text centrat amb gaps regulars) - -- 27: filler intermig - -- 28: HI-SCORE i nom (centrat) - -- 29: filler inferior + -- Banda inferior completa (5 files, rows 25..29) amb marc decoratiu + -- al voltant (cantoneres + linies fines) i text als rows 26 i 28. for y = 25, 29 do print(blank, 0, y) end + + -- Marc + print(chr(FRAME_TL), 0, 25) + print(chr(FRAME_TR), 39, 25) + print(chr(FRAME_BL), 0, 29) + print(chr(FRAME_BR), 39, 29) + for x = 1, 38 do + print(chr(FRAME_H), x, 25) + print(chr(FRAME_H), x, 29) + end + for y = 26, 28 do + print(chr(FRAME_V), 0, y) + print(chr(FRAME_V), 39, y) + end + + -- Text dins del marc print("NIVELL "..string.format("%02d", level), 3, 26) print("PUNTS "..string.format("%03d", score), 16, 26) print("VIDES "..tostr(pepe.vides), 29, 26) @@ -713,6 +744,7 @@ function init() border(colors.border) color(colors.bg, colors.bg) -- ink no importa, paper=bg perque el cls() final empleni amb bg definir_glifs() + definir_marc() carregar_records() init_title() set_estat(ESTAT_TITLE)