9 # error This is a userspace-only header, not allowed by the current build.
12 #include <sifteo/limits.h>
13 #include <sifteo/macros.h>
14 #include <sifteo/math.h>
15 #include <sifteo/array.h>
70 static const _SYSCubeID
NUM_SLOTS = _SYS_NUM_CUBE_SLOTS;
73 static const _SYSCubeID
UNDEFINED = _SYS_CUBE_ID_INVALID;
91 operator _SYSCubeID()
const {
102 _SYSCubeIDVector
bit()
const {
103 return 0x80000000 >> sys;
128 v.value = _SYS_getAccel(*
this);
129 return vec(v.x, v.y, v.z);
138 return _SYS_isTouching(*
this);
151 return _SYS_getCubeHWID(*
this);
165 _SYS_setVideoBuffer(*
this, 0);
177 _SYS_setMotionBuffer(*
this, 0);
196 return _SYS_cubeBatteryLevel(*
this) / float(_SYS_BATTERY_MAX);
209 CubeID operator ++() {
return ++sys; }
210 CubeID operator ++(
int) {
return sys++; }
211 CubeID operator --() {
return --sys; }
212 CubeID operator --(
int) {
return sys--; }
226 operator _SYSCubeIDVector()
const {
281 result.words[0] = _SYS_getConnectedCubes();
311 operator _SYSNeighborID()
const {
317 return sys < _SYS_NUM_CUBE_SLOTS;
322 return (sys & _SYS_NEIGHBOR_TYPE_MASK) == _SYS_NEIGHBOR_BASE;
327 return sys == _SYS_NEIGHBOR_NONE;
350 _SYSNeighborState sys;
366 operator _SYSNeighborState& () {
379 sys.value = _SYS_getNeighbors(cube);
387 return sys.sides[side];
425 if (sys.sides[side] == cube)