diff options
| author | Sebastiano Tronto <sebastiano@tronto.net> | 2025-04-22 18:45:12 +0200 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano@tronto.net> | 2025-04-22 18:45:12 +0200 |
| commit | 77fbe3d7cbd8448f8124dba143bc5110344c6b49 (patch) | |
| tree | 43a4f9f8966855a54f1e2749e6bfc6861d5f5732 /src/utils/constants.h | |
| parent | bab22e1946a656088804b61cf765461b48744971 (diff) | |
| download | nissy-core-77fbe3d7cbd8448f8124dba143bc5110344c6b49.tar.gz nissy-core-77fbe3d7cbd8448f8124dba143bc5110344c6b49.zip | |
Progress
Diffstat (limited to 'src/utils/constants.h')
| -rw-r--r-- | src/utils/constants.h | 363 |
1 files changed, 2 insertions, 361 deletions
diff --git a/src/utils/constants.h b/src/utils/constants.h index 5ccff06..da0a813 100644 --- a/src/utils/constants.h +++ b/src/utils/constants.h | |||
| @@ -9,6 +9,8 @@ | |||
| 9 | #define COMB_12_4 INT64_C(495) | 9 | #define COMB_12_4 INT64_C(495) |
| 10 | #define COMB_8_4 INT64_C(70) | 10 | #define COMB_8_4 INT64_C(70) |
| 11 | 11 | ||
| 12 | #define UINT8_ERROR UINT8_MAX | ||
| 13 | |||
| 12 | STATIC int64_t binomial[12][12] = { | 14 | STATIC int64_t binomial[12][12] = { |
| 13 | {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | 15 | {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, |
| 14 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, | 16 | {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, |
| @@ -23,364 +25,3 @@ STATIC int64_t binomial[12][12] = { | |||
| 23 | {1, 10, 45, 120, 210, 252, 210, 120, 45, 10, 1, 0}, | 25 | {1, 10, 45, 120, 210, 252, 210, 120, 45, 10, 1, 0}, |
| 24 | {1, 11, 55, 165, 330, 462, 462, 330, 165, 55, 11, 1}, | 26 | {1, 11, 55, 165, 330, 462, 462, 330, 165, 55, 11, 1}, |
| 25 | }; | 27 | }; |
| 26 | |||
| 27 | #define MOVE_U UINT8_C(0) | ||
| 28 | #define MOVE_U2 UINT8_C(1) | ||
| 29 | #define MOVE_U3 UINT8_C(2) | ||
| 30 | #define MOVE_D UINT8_C(3) | ||
| 31 | #define MOVE_D2 UINT8_C(4) | ||
| 32 | #define MOVE_D3 UINT8_C(5) | ||
| 33 | #define MOVE_R UINT8_C(6) | ||
| 34 | #define MOVE_R2 UINT8_C(7) | ||
| 35 | #define MOVE_R3 UINT8_C(8) | ||
| 36 | #define MOVE_L UINT8_C(9) | ||
| 37 | #define MOVE_L2 UINT8_C(10) | ||
| 38 | #define MOVE_L3 UINT8_C(11) | ||
| 39 | #define MOVE_F UINT8_C(12) | ||
| 40 | #define MOVE_F2 UINT8_C(13) | ||
| 41 | #define MOVE_F3 UINT8_C(14) | ||
| 42 | #define MOVE_B UINT8_C(15) | ||
| 43 | #define MOVE_B2 UINT8_C(16) | ||
| 44 | #define MOVE_B3 UINT8_C(17) | ||
| 45 | |||
| 46 | #define TRANS_UFr UINT8_C(0) | ||
| 47 | #define TRANS_ULr UINT8_C(1) | ||
| 48 | #define TRANS_UBr UINT8_C(2) | ||
| 49 | #define TRANS_URr UINT8_C(3) | ||
| 50 | #define TRANS_DFr UINT8_C(4) | ||
| 51 | #define TRANS_DLr UINT8_C(5) | ||
| 52 | #define TRANS_DBr UINT8_C(6) | ||
| 53 | #define TRANS_DRr UINT8_C(7) | ||
| 54 | #define TRANS_RUr UINT8_C(8) | ||
| 55 | #define TRANS_RFr UINT8_C(9) | ||
| 56 | #define TRANS_RDr UINT8_C(10) | ||
| 57 | #define TRANS_RBr UINT8_C(11) | ||
| 58 | #define TRANS_LUr UINT8_C(12) | ||
| 59 | #define TRANS_LFr UINT8_C(13) | ||
| 60 | #define TRANS_LDr UINT8_C(14) | ||
| 61 | #define TRANS_LBr UINT8_C(15) | ||
| 62 | #define TRANS_FUr UINT8_C(16) | ||
| 63 | #define TRANS_FRr UINT8_C(17) | ||
| 64 | #define TRANS_FDr UINT8_C(18) | ||
| 65 | #define TRANS_FLr UINT8_C(19) | ||
| 66 | #define TRANS_BUr UINT8_C(20) | ||
| 67 | #define TRANS_BRr UINT8_C(21) | ||
| 68 | #define TRANS_BDr UINT8_C(22) | ||
| 69 | #define TRANS_BLr UINT8_C(23) | ||
| 70 | |||
| 71 | #define TRANS_UFm UINT8_C(24) | ||
| 72 | #define TRANS_ULm UINT8_C(25) | ||
| 73 | #define TRANS_UBm UINT8_C(26) | ||
| 74 | #define TRANS_URm UINT8_C(27) | ||
| 75 | #define TRANS_DFm UINT8_C(28) | ||
| 76 | #define TRANS_DLm UINT8_C(29) | ||
| 77 | #define TRANS_DBm UINT8_C(30) | ||
| 78 | #define TRANS_DRm UINT8_C(31) | ||
| 79 | #define TRANS_RUm UINT8_C(32) | ||
| 80 | #define TRANS_RFm UINT8_C(33) | ||
| 81 | #define TRANS_RDm UINT8_C(34) | ||
| 82 | #define TRANS_RBm UINT8_C(35) | ||
| 83 | #define TRANS_LUm UINT8_C(36) | ||
| 84 | #define TRANS_LFm UINT8_C(37) | ||
| 85 | #define TRANS_LDm UINT8_C(38) | ||
| 86 | #define TRANS_LBm UINT8_C(39) | ||
| 87 | #define TRANS_FUm UINT8_C(40) | ||
| 88 | #define TRANS_FRm UINT8_C(41) | ||
| 89 | #define TRANS_FDm UINT8_C(42) | ||
| 90 | #define TRANS_FLm UINT8_C(43) | ||
| 91 | #define TRANS_BUm UINT8_C(44) | ||
| 92 | #define TRANS_BRm UINT8_C(45) | ||
| 93 | #define TRANS_BDm UINT8_C(46) | ||
| 94 | #define TRANS_BLm UINT8_C(47) | ||
| 95 | |||
| 96 | #define AXIS_UD UINT8_C(0) | ||
| 97 | #define AXIS_RL UINT8_C(1) | ||
| 98 | #define AXIS_FB UINT8_C(2) | ||
| 99 | |||
| 100 | #define NMOVES (1+MOVE_B3) | ||
| 101 | #define NTRANS (1+TRANS_BLm) | ||
| 102 | |||
| 103 | #define MM_ALLMOVES UINT32_C(0x3FFFF) | ||
| 104 | #define MM_NOHALFTURNS UINT32_C(0x2DB6D) | ||
| 105 | #define MM_SINGLE(m) (UINT32_C(1) << (uint32_t)(m)) | ||
| 106 | #define MM_FACE(m) (UINT32_C(7) << (uint32_t)(m)) | ||
| 107 | #define MM_EO (\ | ||
| 108 | MM_FACE(MOVE_U) | MM_FACE(MOVE_D) |\ | ||
| 109 | MM_FACE(MOVE_R) | MM_FACE(MOVE_L) |\ | ||
| 110 | MM_SINGLE(MOVE_F2) | MM_SINGLE(MOVE_B2)) | ||
| 111 | #define MM_DR (\ | ||
| 112 | MM_FACE(MOVE_U) | MM_FACE(MOVE_D) |\ | ||
| 113 | MM_SINGLE(MOVE_R2) | MM_SINGLE(MOVE_L2) |\ | ||
| 114 | MM_SINGLE(MOVE_F2) | MM_SINGLE(MOVE_B2)) | ||
| 115 | #define MM_HTR (MM_ALLMOVES & ~MM_NOHALFTURNS) | ||
| 116 | |||
| 117 | #define TM_ALLTRANS UINT64_C(0xFFFFFFFFFFFF) | ||
| 118 | #define TM_SINGLE(t) (UINT64_C(1) << (uint64_t)(t)) | ||
| 119 | #define TM_UDRLFIX (\ | ||
| 120 | TM_SINGLE(TRANS_UFr) | TM_SINGLE(TRANS_UBr) | TM_SINGLE(TRANS_UFm) | \ | ||
| 121 | TM_SINGLE(TRANS_UBm) | TM_SINGLE(TRANS_DFr) | TM_SINGLE(TRANS_DBr) | \ | ||
| 122 | TM_SINGLE(TRANS_DFm) | TM_SINGLE(TRANS_DBm)) | ||
| 123 | #define TM_UDFIX (\ | ||
| 124 | TM_SINGLE(TRANS_UFr) | TM_SINGLE(TRANS_UBr) | TM_SINGLE(TRANS_URr) | \ | ||
| 125 | TM_SINGLE(TRANS_ULr) | TM_SINGLE(TRANS_UFm) | TM_SINGLE(TRANS_UBm) | \ | ||
| 126 | TM_SINGLE(TRANS_URm) | TM_SINGLE(TRANS_ULm) | TM_SINGLE(TRANS_DFr) | \ | ||
| 127 | TM_SINGLE(TRANS_DBr) | TM_SINGLE(TRANS_DRr) | TM_SINGLE(TRANS_DLr) | \ | ||
| 128 | TM_SINGLE(TRANS_DFm) | TM_SINGLE(TRANS_DBm) | TM_SINGLE(TRANS_DRm) | \ | ||
| 129 | TM_SINGLE(TRANS_DLm)) | ||
| 130 | |||
| 131 | #define CORNER_UFR UINT8_C(0) | ||
| 132 | #define CORNER_UBL UINT8_C(1) | ||
| 133 | #define CORNER_DFL UINT8_C(2) | ||
| 134 | #define CORNER_DBR UINT8_C(3) | ||
| 135 | #define CORNER_UFL UINT8_C(4) | ||
| 136 | #define CORNER_UBR UINT8_C(5) | ||
| 137 | #define CORNER_DFR UINT8_C(6) | ||
| 138 | #define CORNER_DBL UINT8_C(7) | ||
| 139 | |||
| 140 | #define EDGE_UF UINT8_C(0) | ||
| 141 | #define EDGE_UB UINT8_C(1) | ||
| 142 | #define EDGE_DB UINT8_C(2) | ||
| 143 | #define EDGE_DF UINT8_C(3) | ||
| 144 | #define EDGE_UR UINT8_C(4) | ||
| 145 | #define EDGE_UL UINT8_C(5) | ||
| 146 | #define EDGE_DL UINT8_C(6) | ||
| 147 | #define EDGE_DR UINT8_C(7) | ||
| 148 | #define EDGE_FR UINT8_C(8) | ||
| 149 | #define EDGE_FL UINT8_C(9) | ||
| 150 | #define EDGE_BL UINT8_C(10) | ||
| 151 | #define EDGE_BR UINT8_C(11) | ||
| 152 | |||
| 153 | #define EOSHIFT UINT8_C(4) | ||
| 154 | #define COSHIFT UINT8_C(5) | ||
| 155 | |||
| 156 | #define PBITS UINT8_C(0xF) | ||
| 157 | #define ESEPBIT_1 UINT8_C(0x4) | ||
| 158 | #define ESEPBIT_2 UINT8_C(0x8) | ||
| 159 | #define CSEPBIT UINT8_C(0x4) | ||
| 160 | #define EOBIT UINT8_C(0x10) | ||
| 161 | #define COBITS UINT8_C(0xF0) | ||
| 162 | #define COBITS_2 UINT8_C(0x60) | ||
| 163 | #define CTWIST_CW UINT8_C(0x20) | ||
| 164 | #define CTWIST_CCW UINT8_C(0x40) | ||
| 165 | #define EFLIP UINT8_C(0x10) | ||
| 166 | #define UINT8_ERROR UINT8_MAX | ||
| 167 | |||
| 168 | STATIC const uint32_t allowedmask[] = { | ||
| 169 | UINT32_C(0x3FFF8), | ||
| 170 | UINT32_C(0x3FFC0), | ||
| 171 | UINT32_C(0x3FE3F), | ||
| 172 | UINT32_C(0x3F03F), | ||
| 173 | UINT32_C(0x38FFF), | ||
| 174 | UINT32_C(0x00FFF) | ||
| 175 | }; | ||
| 176 | |||
| 177 | STATIC const char *cornerstr[] = { | ||
| 178 | [CORNER_UFR] = "UFR", | ||
| 179 | [CORNER_UBL] = "UBL", | ||
| 180 | [CORNER_DFL] = "DFL", | ||
| 181 | [CORNER_DBR] = "DBR", | ||
| 182 | [CORNER_UFL] = "UFL", | ||
| 183 | [CORNER_UBR] = "UBR", | ||
| 184 | [CORNER_DFR] = "DFR", | ||
| 185 | [CORNER_DBL] = "DBL" | ||
| 186 | }; | ||
| 187 | |||
| 188 | STATIC const char *cornerstralt[] = { | ||
| 189 | [CORNER_UFR] = "URF", | ||
| 190 | [CORNER_UBL] = "ULB", | ||
| 191 | [CORNER_DFL] = "DLF", | ||
| 192 | [CORNER_DBR] = "DRB", | ||
| 193 | [CORNER_UFL] = "ULF", | ||
| 194 | [CORNER_UBR] = "URB", | ||
| 195 | [CORNER_DFR] = "DRF", | ||
| 196 | [CORNER_DBL] = "DLB" | ||
| 197 | }; | ||
| 198 | |||
| 199 | STATIC const char *edgestr[] = { | ||
| 200 | [EDGE_UF] = "UF", | ||
| 201 | [EDGE_UB] = "UB", | ||
| 202 | [EDGE_DB] = "DB", | ||
| 203 | [EDGE_DF] = "DF", | ||
| 204 | [EDGE_UR] = "UR", | ||
| 205 | [EDGE_UL] = "UL", | ||
| 206 | [EDGE_DL] = "DL", | ||
| 207 | [EDGE_DR] = "DR", | ||
| 208 | [EDGE_FR] = "FR", | ||
| 209 | [EDGE_FL] = "FL", | ||
| 210 | [EDGE_BL] = "BL", | ||
| 211 | [EDGE_BR] = "BR" | ||
| 212 | }; | ||
| 213 | |||
| 214 | STATIC const char *movestr[] = { | ||
| 215 | [MOVE_U] = "U", | ||
| 216 | [MOVE_U2] = "U2", | ||
| 217 | [MOVE_U3] = "U'", | ||
| 218 | [MOVE_D] = "D", | ||
| 219 | [MOVE_D2] = "D2", | ||
| 220 | [MOVE_D3] = "D'", | ||
| 221 | [MOVE_R] = "R", | ||
| 222 | [MOVE_R2] = "R2", | ||
| 223 | [MOVE_R3] = "R'", | ||
| 224 | [MOVE_L] = "L", | ||
| 225 | [MOVE_L2] = "L2", | ||
| 226 | [MOVE_L3] = "L'", | ||
| 227 | [MOVE_F] = "F", | ||
| 228 | [MOVE_F2] = "F2", | ||
| 229 | [MOVE_F3] = "F'", | ||
| 230 | [MOVE_B] = "B", | ||
| 231 | [MOVE_B2] = "B2", | ||
| 232 | [MOVE_B3] = "B'", | ||
| 233 | }; | ||
| 234 | |||
| 235 | STATIC const char *transstr[] = { | ||
| 236 | [TRANS_UFr] = "rotation UF", | ||
| 237 | [TRANS_UFm] = "mirrored UF", | ||
| 238 | [TRANS_ULr] = "rotation UL", | ||
| 239 | [TRANS_ULm] = "mirrored UL", | ||
| 240 | [TRANS_UBr] = "rotation UB", | ||
| 241 | [TRANS_UBm] = "mirrored UB", | ||
| 242 | [TRANS_URr] = "rotation UR", | ||
| 243 | [TRANS_URm] = "mirrored UR", | ||
| 244 | [TRANS_DFr] = "rotation DF", | ||
| 245 | [TRANS_DFm] = "mirrored DF", | ||
| 246 | [TRANS_DLr] = "rotation DL", | ||
| 247 | [TRANS_DLm] = "mirrored DL", | ||
| 248 | [TRANS_DBr] = "rotation DB", | ||
| 249 | [TRANS_DBm] = "mirrored DB", | ||
| 250 | [TRANS_DRr] = "rotation DR", | ||
| 251 | [TRANS_DRm] = "mirrored DR", | ||
| 252 | [TRANS_RUr] = "rotation RU", | ||
| 253 | [TRANS_RUm] = "mirrored RU", | ||
| 254 | [TRANS_RFr] = "rotation RF", | ||
| 255 | [TRANS_RFm] = "mirrored RF", | ||
| 256 | [TRANS_RDr] = "rotation RD", | ||
| 257 | [TRANS_RDm] = "mirrored RD", | ||
| 258 | [TRANS_RBr] = "rotation RB", | ||
| 259 | [TRANS_RBm] = "mirrored RB", | ||
| 260 | [TRANS_LUr] = "rotation LU", | ||
| 261 | [TRANS_LUm] = "mirrored LU", | ||
| 262 | [TRANS_LFr] = "rotation LF", | ||
| 263 | [TRANS_LFm] = "mirrored LF", | ||
| 264 | [TRANS_LDr] = "rotation LD", | ||
| 265 | [TRANS_LDm] = "mirrored LD", | ||
| 266 | [TRANS_LBr] = "rotation LB", | ||
| 267 | [TRANS_LBm] = "mirrored LB", | ||
| 268 | [TRANS_FUr] = "rotation FU", | ||
| 269 | [TRANS_FUm] = "mirrored FU", | ||
| 270 | [TRANS_FRr] = "rotation FR", | ||
| 271 | [TRANS_FRm] = "mirrored FR", | ||
| 272 | [TRANS_FDr] = "rotation FD", | ||
| 273 | [TRANS_FDm] = "mirrored FD", | ||
| 274 | [TRANS_FLr] = "rotation FL", | ||
| 275 | [TRANS_FLm] = "mirrored FL", | ||
| 276 | [TRANS_BUr] = "rotation BU", | ||
| 277 | [TRANS_BUm] = "mirrored BU", | ||
| 278 | [TRANS_BRr] = "rotation BR", | ||
| 279 | [TRANS_BRm] = "mirrored BR", | ||
| 280 | [TRANS_BDr] = "rotation BD", | ||
| 281 | [TRANS_BDm] = "mirrored BD", | ||
| 282 | [TRANS_BLr] = "rotation BL", | ||
| 283 | [TRANS_BLm] = "mirrored BL", | ||
| 284 | }; | ||
| 285 | |||
| 286 | static uint8_t inverse_trans_table[48] = { | ||
| 287 | [TRANS_UFr] = TRANS_UFr, | ||
| 288 | [TRANS_UFm] = TRANS_UFm, | ||
| 289 | [TRANS_ULr] = TRANS_URr, | ||
| 290 | [TRANS_ULm] = TRANS_ULm, | ||
| 291 | [TRANS_UBr] = TRANS_UBr, | ||
| 292 | [TRANS_UBm] = TRANS_UBm, | ||
| 293 | [TRANS_URr] = TRANS_ULr, | ||
| 294 | [TRANS_URm] = TRANS_URm, | ||
| 295 | [TRANS_DFr] = TRANS_DFr, | ||
| 296 | [TRANS_DFm] = TRANS_DFm, | ||
| 297 | [TRANS_DLr] = TRANS_DLr, | ||
| 298 | [TRANS_DLm] = TRANS_DRm, | ||
| 299 | [TRANS_DBr] = TRANS_DBr, | ||
| 300 | [TRANS_DBm] = TRANS_DBm, | ||
| 301 | [TRANS_DRr] = TRANS_DRr, | ||
| 302 | [TRANS_DRm] = TRANS_DLm, | ||
| 303 | [TRANS_RUr] = TRANS_FRr, | ||
| 304 | [TRANS_RUm] = TRANS_FLm, | ||
| 305 | [TRANS_RFr] = TRANS_LFr, | ||
| 306 | [TRANS_RFm] = TRANS_RFm, | ||
| 307 | [TRANS_RDr] = TRANS_BLr, | ||
| 308 | [TRANS_RDm] = TRANS_BRm, | ||
| 309 | [TRANS_RBr] = TRANS_RBr, | ||
| 310 | [TRANS_RBm] = TRANS_LBm, | ||
| 311 | [TRANS_LUr] = TRANS_FLr, | ||
| 312 | [TRANS_LUm] = TRANS_FRm, | ||
| 313 | [TRANS_LFr] = TRANS_RFr, | ||
| 314 | [TRANS_LFm] = TRANS_LFm, | ||
| 315 | [TRANS_LDr] = TRANS_BRr, | ||
| 316 | [TRANS_LDm] = TRANS_BLm, | ||
| 317 | [TRANS_LBr] = TRANS_LBr, | ||
| 318 | [TRANS_LBm] = TRANS_RBm, | ||
| 319 | [TRANS_FUr] = TRANS_FUr, | ||
| 320 | [TRANS_FUm] = TRANS_FUm, | ||
| 321 | [TRANS_FRr] = TRANS_RUr, | ||
| 322 | [TRANS_FRm] = TRANS_LUm, | ||
| 323 | [TRANS_FDr] = TRANS_BUr, | ||
| 324 | [TRANS_FDm] = TRANS_BUm, | ||
| 325 | [TRANS_FLr] = TRANS_LUr, | ||
| 326 | [TRANS_FLm] = TRANS_RUm, | ||
| 327 | [TRANS_BUr] = TRANS_FDr, | ||
| 328 | [TRANS_BUm] = TRANS_FDm, | ||
| 329 | [TRANS_BRr] = TRANS_LDr, | ||
| 330 | [TRANS_BRm] = TRANS_RDm, | ||
| 331 | [TRANS_BDr] = TRANS_BDr, | ||
| 332 | [TRANS_BDm] = TRANS_BDm, | ||
| 333 | [TRANS_BLr] = TRANS_RDr, | ||
| 334 | [TRANS_BLm] = TRANS_LDm, | ||
| 335 | }; | ||
| 336 | |||
| 337 | static uint8_t trans_move_table[48][3] = { | ||
| 338 | [TRANS_UFr] = { MOVE_U, MOVE_R, MOVE_F }, | ||
| 339 | [TRANS_UFm] = { MOVE_U, MOVE_L, MOVE_F }, | ||
| 340 | [TRANS_ULr] = { MOVE_U, MOVE_F, MOVE_L }, | ||
| 341 | [TRANS_ULm] = { MOVE_U, MOVE_F, MOVE_R }, | ||
| 342 | [TRANS_UBr] = { MOVE_U, MOVE_L, MOVE_B }, | ||
| 343 | [TRANS_UBm] = { MOVE_U, MOVE_R, MOVE_B }, | ||
| 344 | [TRANS_URr] = { MOVE_U, MOVE_B, MOVE_R }, | ||
| 345 | [TRANS_URm] = { MOVE_U, MOVE_B, MOVE_L }, | ||
| 346 | [TRANS_DFr] = { MOVE_D, MOVE_L, MOVE_F }, | ||
| 347 | [TRANS_DFm] = { MOVE_D, MOVE_R, MOVE_F }, | ||
| 348 | [TRANS_DLr] = { MOVE_D, MOVE_B, MOVE_L }, | ||
| 349 | [TRANS_DLm] = { MOVE_D, MOVE_B, MOVE_R }, | ||
| 350 | [TRANS_DBr] = { MOVE_D, MOVE_R, MOVE_B }, | ||
| 351 | [TRANS_DBm] = { MOVE_D, MOVE_L, MOVE_B }, | ||
| 352 | [TRANS_DRr] = { MOVE_D, MOVE_F, MOVE_R }, | ||
| 353 | [TRANS_DRm] = { MOVE_D, MOVE_F, MOVE_L }, | ||
| 354 | [TRANS_RUr] = { MOVE_R, MOVE_F, MOVE_U }, | ||
| 355 | [TRANS_RUm] = { MOVE_L, MOVE_F, MOVE_U }, | ||
| 356 | [TRANS_RFr] = { MOVE_R, MOVE_D, MOVE_F }, | ||
| 357 | [TRANS_RFm] = { MOVE_L, MOVE_D, MOVE_F }, | ||
| 358 | [TRANS_RDr] = { MOVE_R, MOVE_B, MOVE_D }, | ||
| 359 | [TRANS_RDm] = { MOVE_L, MOVE_B, MOVE_D }, | ||
| 360 | [TRANS_RBr] = { MOVE_R, MOVE_U, MOVE_B }, | ||
| 361 | [TRANS_RBm] = { MOVE_L, MOVE_U, MOVE_B }, | ||
| 362 | [TRANS_LUr] = { MOVE_L, MOVE_B, MOVE_U }, | ||
| 363 | [TRANS_LUm] = { MOVE_R, MOVE_B, MOVE_U }, | ||
| 364 | [TRANS_LFr] = { MOVE_L, MOVE_U, MOVE_F }, | ||
| 365 | [TRANS_LFm] = { MOVE_R, MOVE_U, MOVE_F }, | ||
| 366 | [TRANS_LDr] = { MOVE_L, MOVE_F, MOVE_D }, | ||
| 367 | [TRANS_LDm] = { MOVE_R, MOVE_F, MOVE_D }, | ||
| 368 | [TRANS_LBr] = { MOVE_L, MOVE_D, MOVE_B }, | ||
| 369 | [TRANS_LBm] = { MOVE_R, MOVE_D, MOVE_B }, | ||
| 370 | [TRANS_FUr] = { MOVE_F, MOVE_L, MOVE_U }, | ||
| 371 | [TRANS_FUm] = { MOVE_F, MOVE_R, MOVE_U }, | ||
| 372 | [TRANS_FRr] = { MOVE_F, MOVE_U, MOVE_R }, | ||
| 373 | [TRANS_FRm] = { MOVE_F, MOVE_U, MOVE_L }, | ||
| 374 | [TRANS_FDr] = { MOVE_F, MOVE_R, MOVE_D }, | ||
| 375 | [TRANS_FDm] = { MOVE_F, MOVE_L, MOVE_D }, | ||
| 376 | [TRANS_FLr] = { MOVE_F, MOVE_D, MOVE_L }, | ||
| 377 | [TRANS_FLm] = { MOVE_F, MOVE_D, MOVE_R }, | ||
| 378 | [TRANS_BUr] = { MOVE_B, MOVE_R, MOVE_U }, | ||
| 379 | [TRANS_BUm] = { MOVE_B, MOVE_L, MOVE_U }, | ||
| 380 | [TRANS_BRr] = { MOVE_B, MOVE_D, MOVE_R }, | ||
| 381 | [TRANS_BRm] = { MOVE_B, MOVE_D, MOVE_L }, | ||
| 382 | [TRANS_BDr] = { MOVE_B, MOVE_L, MOVE_D }, | ||
| 383 | [TRANS_BDm] = { MOVE_B, MOVE_R, MOVE_D }, | ||
| 384 | [TRANS_BLr] = { MOVE_B, MOVE_U, MOVE_L }, | ||
| 385 | [TRANS_BLm] = { MOVE_B, MOVE_U, MOVE_R }, | ||
| 386 | }; | ||
