Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typedef unsigned int tm_engine;
- #define MASK_engine_eye 255
- #define MASK_engine_leg 16128
- #define MASK_engine_arm 114688
- #define NBITS_engine_eye 8
- #define NBITS_engine_leg 6
- #define NBITS_engine_arm 3
- #define MAXV_engine_eye 255
- #define MAXV_engine_leg 63
- #define MAXV_engine_arm 7
- #define SHIFT_engine_eye 0
- #define SHIFT_engine_leg 8
- #define SHIFT_engine_arm 14
- #define MREAD_engine_eye(x) (((x)&(MASK_engine_eye))>>(SHIFT_engine_eye))
- #define MREAD_engine_leg(x) (((x)&(MASK_engine_leg))>>(SHIFT_engine_leg))
- #define MREAD_engine_arm(x) (((x)&(MASK_engine_arm))>>(SHIFT_engine_arm))
- #define MWRITE_engine_eye(dest,val) ((dest))=((((dest))&(~(MASK_engine_eye)))|(val<<SHIFT_engine_eye))
- #define MWRITE_engine_leg(dest,val) ((dest))=((((dest))&(~(MASK_engine_leg)))|(val<<SHIFT_engine_leg))
- #define MWRITE_engine_arm(dest,val) ((dest))=((((dest))&(~(MASK_engine_arm)))|(val<<SHIFT_engine_arm))
- unsigned char CMWRITE_engine_eye(tm_engine dest, tm_engine val)
- {
- if(val>MAXV_engine_eye) { printf("[ERR] out of limits in engine_eye\n"); return 0; }
- MWRITE_engine_eye(dest,val); return 1;
- }
- unsigned char CMWRITE_engine_leg(tm_engine dest, tm_engine val)
- {
- if(val>MAXV_engine_leg) { printf("[ERR] out of limits in engine_leg\n"); return 0; }
- MWRITE_engine_leg(dest,val); return 1;
- }
- unsigned char CMWRITE_engine_arm(tm_engine dest, tm_engine val)
- {
- if(val>MAXV_engine_arm) { printf("[ERR] out of limits in engine_arm\n"); return 0; }
- MWRITE_engine_arm(dest,val); return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement