34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#define CVALUE(x) UVALUE(x,TY_CLASS)
#define MVALUE(x) UVALUE(x,TY_MESSAGE)
#define ZVALUE(x) UVALUE(x,TY_STRING)
#define OVALUE(x) ((x)==VOIDLINK?NVALUE(0):UVALUE(x,objects[x]->generation))
#define ValueTo64(v) (((sqlite3_int64)((v).u))|(((sqlite3_int64)((v).t))<<32))
#define ValueEq(x,y) ((x).t==(y).t && (x).u==(y).u)
#define N_MESSAGES 27
extern const char*const standard_message_names[];
extern const char*const standard_sound_names[];
extern const char*const heromesh_key_names[256];
extern sqlite3*userdb;
extern xrm_db*resourcedb;
extern const char*basefilename;
|
|
>
|
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
#define CVALUE(x) UVALUE(x,TY_CLASS)
#define MVALUE(x) UVALUE(x,TY_MESSAGE)
#define ZVALUE(x) UVALUE(x,TY_STRING)
#define OVALUE(x) ((x)==VOIDLINK?NVALUE(0):UVALUE(x,objects[x]->generation))
#define ValueTo64(v) (((sqlite3_int64)((v).u))|(((sqlite3_int64)((v).t))<<32))
#define ValueEq(x,y) ((x).t==(y).t && (x).u==(y).u)
#define N_MESSAGES 28
#define N_STANDARD_SOUNDS 49
extern const char*const standard_message_names[];
extern const char*const standard_sound_names[];
extern const char*const heromesh_key_names[256];
extern sqlite3*userdb;
extern xrm_db*resourcedb;
extern const char*basefilename;
|
238
239
240
241
242
243
244
245
246
247
248
249
250
251
|
#define NO_SCORE ((Sint32)(0x80000000))
#define ANI_STOP 0x00
#define ANI_ONCE 0x01
#define ANI_LOOP 0x02
#define ANI_OSC 0x08
#define ANI_SYNC 0x80
typedef struct {
Uint8 flag,start,end;
union {
Uint8 speed; // unsynchronized
Uint8 slot; // synchronized
};
|
>
>
>
|
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
|
#define NO_SCORE ((Sint32)(0x80000000))
#define ANI_STOP 0x00
#define ANI_ONCE 0x01
#define ANI_LOOP 0x02
#define ANI_OSC 0x08
#define ANI_SYNC 0x80
// Special key codes; used in encoded move lists and in some cases also values for Key
#define KEY_XY 1
typedef struct {
Uint8 flag,start,end;
union {
Uint8 speed; // unsynchronized
Uint8 slot; // synchronized
};
|