2024-05-07 22:10:15 +00:00
|
|
|
#include "fumocommon.h"
|
|
|
|
#include "fumoengine.h"
|
2024-05-14 04:20:20 +00:00
|
|
|
#include "tetra.h"
|
2024-05-07 22:10:15 +00:00
|
|
|
|
2024-05-08 22:07:31 +00:00
|
|
|
#define BINDS_N 12
|
2024-05-07 22:10:15 +00:00
|
|
|
|
|
|
|
|
2024-05-10 07:38:08 +00:00
|
|
|
enum FumotrisControls {
|
2024-05-07 22:10:15 +00:00
|
|
|
LEFT,
|
|
|
|
RIGHT,
|
|
|
|
SOFT_DROP,
|
|
|
|
HARD_DROP,
|
|
|
|
ROTATE_CCW,
|
|
|
|
ROTATE_CW,
|
|
|
|
ROTATE_180,
|
|
|
|
SWAP,
|
|
|
|
ESC,
|
2024-05-10 07:38:08 +00:00
|
|
|
|
2024-05-07 22:10:15 +00:00
|
|
|
VSCROLL,
|
|
|
|
HSCROLL,
|
2024-05-10 07:38:08 +00:00
|
|
|
|
2024-05-07 22:10:15 +00:00
|
|
|
MOUSE
|
|
|
|
};
|
|
|
|
|
2024-05-08 22:07:31 +00:00
|
|
|
|
2024-05-10 07:38:08 +00:00
|
|
|
u16 controls_g[BINDS_N] = {
|
|
|
|
LEFT,
|
|
|
|
RIGHT,
|
|
|
|
SOFT_DROP,
|
|
|
|
HARD_DROP,
|
|
|
|
ROTATE_CCW,
|
|
|
|
ROTATE_CW,
|
|
|
|
ROTATE_180,
|
|
|
|
SWAP,
|
|
|
|
ESC,
|
|
|
|
|
|
|
|
VSCROLL,
|
|
|
|
HSCROLL,
|
|
|
|
|
|
|
|
MOUSE,
|
|
|
|
};
|
|
|
|
|
|
|
|
u16 codes_g[BINDS_N] = {
|
|
|
|
0x25,
|
|
|
|
0x27,
|
|
|
|
0x28,
|
|
|
|
0x20,
|
|
|
|
'Z',
|
|
|
|
'X',
|
|
|
|
'A',
|
|
|
|
'C',
|
|
|
|
0x1B,
|
|
|
|
|
|
|
|
0,
|
|
|
|
1,
|
|
|
|
|
|
|
|
0
|
|
|
|
};
|
|
|
|
|
|
|
|
u16 types_g[BINDS_N] = {
|
|
|
|
BUTTON,
|
|
|
|
BUTTON,
|
|
|
|
BUTTON,
|
|
|
|
BUTTON,
|
|
|
|
BUTTON,
|
|
|
|
BUTTON,
|
|
|
|
BUTTON,
|
|
|
|
BUTTON,
|
|
|
|
BUTTON,
|
|
|
|
|
|
|
|
AXIS,
|
|
|
|
AXIS,
|
|
|
|
|
|
|
|
JOYSTICK
|
2024-05-07 22:10:15 +00:00
|
|
|
};
|
|
|
|
|
2024-05-14 04:20:20 +00:00
|
|
|
struct TetraTemplate I = {
|
|
|
|
.blks = &(u8) {
|
|
|
|
0, 0, 0, 0,
|
|
|
|
0, 0, 0, 0,
|
|
|
|
1, 1, 1, 1,
|
|
|
|
0, 0, 0, 0
|
|
|
|
},
|
|
|
|
.wid = 4,
|
|
|
|
.hgt = 4
|
2024-05-07 22:10:15 +00:00
|
|
|
};
|
|
|
|
|
2024-05-14 04:20:20 +00:00
|
|
|
struct TetraTemplate O = {
|
|
|
|
.blks = &(u8) {
|
|
|
|
1, 1,
|
|
|
|
1, 1
|
|
|
|
},
|
|
|
|
.wid = 2,
|
|
|
|
.hgt = 2
|
2024-05-07 22:10:15 +00:00
|
|
|
};
|
|
|
|
|
2024-05-14 04:20:20 +00:00
|
|
|
struct TetraTemplate T = {
|
|
|
|
.blks = &(u8) {
|
|
|
|
0, 1, 0,
|
|
|
|
1, 1, 1,
|
|
|
|
0, 0, 0
|
|
|
|
},
|
|
|
|
.wid = 3,
|
|
|
|
.hgt = 3
|
2024-05-07 22:10:15 +00:00
|
|
|
};
|
|
|
|
|
2024-05-14 04:20:20 +00:00
|
|
|
struct TetraTemplate S = {
|
|
|
|
.blks = &(u8) {
|
|
|
|
0, 1, 1,
|
|
|
|
1, 1, 0,
|
|
|
|
0, 0, 0
|
|
|
|
},
|
|
|
|
.wid = 3,
|
|
|
|
.hgt = 3
|
2024-05-07 22:10:15 +00:00
|
|
|
};
|
|
|
|
|
2024-05-14 04:20:20 +00:00
|
|
|
struct TetraTemplate Z = {
|
|
|
|
.blks = &(u8) {
|
|
|
|
1, 1, 0,
|
|
|
|
0, 1, 1,
|
|
|
|
0, 0, 0
|
|
|
|
},
|
|
|
|
.wid = 3,
|
|
|
|
.hgt = 3
|
2024-05-07 22:10:15 +00:00
|
|
|
};
|
|
|
|
|
2024-05-14 04:20:20 +00:00
|
|
|
struct TetraTemplate J = {
|
|
|
|
.blks = &(u8) {
|
|
|
|
1, 0, 0,
|
|
|
|
1, 1, 1,
|
|
|
|
0, 0, 0
|
|
|
|
},
|
|
|
|
.wid = 3,
|
|
|
|
.hgt = 3
|
2024-05-07 22:10:15 +00:00
|
|
|
};
|
|
|
|
|
2024-05-14 04:20:20 +00:00
|
|
|
struct TetraTemplate L = {
|
|
|
|
.blks = &(u8) {
|
|
|
|
0, 0, 1,
|
|
|
|
1, 1, 1,
|
|
|
|
0, 0, 0
|
|
|
|
},
|
|
|
|
.wid = 3,
|
|
|
|
.hgt = 3
|
2024-05-07 22:10:15 +00:00
|
|
|
};
|