juegos

Juegos de terminal de Pancho: Catan (TUI, GUI, web, servidor, PicoCalc), ajedrez, calculadora y minijuegos
git clone https://git.lu3dhn.xyz/juegos.git
Log | Files | Refs

mini.h (1718B)


      1 /* mini.h - lo comun de los minijuegos de la PicoCalc: arranque, menus, cartel,
      2  * records en la SD y texto grande. Usa solo hal.h (corre igual en el simulador). */
      3 #ifndef MINI_H
      4 #define MINI_H
      5 
      6 #include "hal.h"
      7 #include "form.h"
      8 #include "rng.h"
      9 
     10 /* hal_init, semilla del azar, lectura del .SAV y fondo de los menus */
     11 void mini_start(const char *title, Color accent);
     12 extern Rng mini_rng;
     13 int  mini_rand(int n);                          /* 0..n-1 */
     14 void mini_shuffle(uint8_t *a, int n);
     15 
     16 /* Menus: dibuja el formulario sobre el fondo del juego y lo maneja.
     17  * Devuelve el id del boton elegido o FORM_CANCEL (Esc). */
     18 int  mini_form(Form *f);
     19 void mini_notice(const char *title, const char *text);
     20 /* Dibujo extra debajo del titulo de los menus (NULL: nada) y fila donde empieza el cuadro. */
     21 extern void (*mini_art)(Surface *s);
     22 extern int mini_menu_top;
     23 
     24 /* Guardado: pares "clave valor" en el .SAV de la SD. mini_set* cambian la copia en
     25  * memoria; mini_save la escribe (hacerlo al terminar una partida, no en cada cuadro). */
     26 long        mini_get(const char *key, long def);
     27 const char *mini_get_str(const char *key);      /* NULL si no esta */
     28 void        mini_set(const char *key, long v);
     29 void        mini_set_str(const char *key, const char *v);   /* sin espacios ni '\n' */
     30 bool        mini_save(void);
     31 
     32 /* Texto escalado (cada pixel de la fuente es un cuadrado de scale x scale). */
     33 int  mini_big_text(Surface *s, const Font *f, int x, int y, int scale, const char *t, Color c);
     34 int  mini_big_w(const Font *f, int scale, const char *t);
     35 void mini_big_center(Surface *s, const Font *f, int y, int scale, const char *t, Color c);
     36 /* "m:ss" */
     37 int  str_time(char *buf, int n, int pos, uint32_t ms);
     38 
     39 #endif