Io sinceramente non c'ho capito molto... c'è qualche anima pia che possa chiarirmi il concetto?
I codici dei pulsanti standard sono i codici ASCII, ma se dovessi mappare un Pad?
In effetti spiegato come hai trovato tu è un bordello.
Allora, le SDL danno un numero ad ogni pad connesso al pc.
Solo che ad esempio (ma qua anche con poseidon) se hai un pad con una croce direzionale e 2 analogici, per le SDL hai 3 pad connessi al pc.
Detto questo vba pare usare una maschera esadecimale per definire i pad ed i bottoni.
Quando trovi in modo generico assi x ed y si riferiscono al pad digitale, mentre gli "hat" sono i "pomelli" degli analogici.
Tu hai quindi 4 bit che identificano (in VBA) il "pad in generale" : Y X X X
Se Y < 1 stai definendo la tastiera
Se Y è > 0 vuol dire che stai definendo un pad, ed il numero del pad nelle strutture sdl è y-1.
Perciò se trovi ad esempio 0222, il bit y è < 1 quindi xxx vuol dire un tasto della tastiera
Se trovi 1222 il bit y è > 0 e quindi stai usando il pad in questo caso il pad che ha come id y-1 ovvero 0 (il primo pad)
Se stai usando il pad se il resto dei bit xxx è minore di 20, xxx è il numero dell'asse del pad moltiplicato per 2 + la direzione (0 è in genere l'asse x, 1 è l'asse y) se il numero è dispari= sinistra, pari=destra, per l'asse x e per l'asse y se il numero è dispari= su , pari=giù
Presumo che se xxx in decimale == 3, l'asse sarà la y e la direzione è su.
Se invece il resto dei bit xxx è >= 20 ma minore di 30, singifica che stai usando lo stick analogico in questo caso XXX significa che l'id del joy analogico è (xxx-direzione)/4 con idjoy*4+0 = giù ,id*4+1=su etc.
A naso direi che se hai 27 come XXX in decimale id=parte intera di 27/4= joy n°6, direzione= parte decimale di (27/4) * 4 =3=sinistra
mentre 80>=xxx>100 indicano i bottoni premuti, facendo bottone= XXX-080.
E' una scelta macchinosissima però.
Se vedi ad esempio il define # Left Left Arrow (0114)
0 vuol dire keyboard
114 in decimale è 276 guardando il SDL_keysym.h salta fuori che è SDLK_LEFT= 276
Spero di non essere stato troppo contorto nella spiegazione, ma pare che sia questo quello che fa il vba