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