GLboolean renderspuChoosePixelFormat(ContextInfo *context, AGLPixelFormat *pix) { GLbitfield visAttribs = context->visual->visAttribs; GLint attribs[32]; GLint ind = 0; #define ATTR_ADD(s) ( attribs[ind++] = (s) ) #define ATTR_ADDV(s,v) ( ATTR_ADD((s)), ATTR_ADD((v)) ) CRASSERT(render_spu.ws.aglChoosePixelFormat); ATTR_ADD(AGL_RGBA); /* ATTR_ADDV(AGL_RED_SIZE, 1); ATTR_ADDV(AGL_GREEN_SIZE, 1); ATTR_ADDV(AGL_BLUE_SIZE, 1); */ /* if( render_spu.fullscreen )*/ /* ATTR_ADD(AGL_FULLSCREEN);*/ if( visAttribs & CR_ALPHA_BIT ) ATTR_ADDV(AGL_ALPHA_SIZE, 1); if( visAttribs & CR_DOUBLE_BIT ) ATTR_ADD(AGL_DOUBLEBUFFER); if( visAttribs & CR_STEREO_BIT ) ATTR_ADD(AGL_STEREO); if( visAttribs & CR_DEPTH_BIT ) ATTR_ADDV(AGL_DEPTH_SIZE, 1); if( visAttribs & CR_STENCIL_BIT ) ATTR_ADDV(AGL_STENCIL_SIZE, 1); if( visAttribs & CR_ACCUM_BIT ) { ATTR_ADDV(AGL_ACCUM_RED_SIZE, 1); ATTR_ADDV(AGL_ACCUM_GREEN_SIZE, 1); ATTR_ADDV(AGL_ACCUM_BLUE_SIZE, 1); if( visAttribs & CR_ALPHA_BIT ) ATTR_ADDV(AGL_ACCUM_ALPHA_SIZE, 1); } if( visAttribs & CR_MULTISAMPLE_BIT ) { ATTR_ADDV(AGL_SAMPLE_BUFFERS_ARB, 1); ATTR_ADDV(AGL_SAMPLES_ARB, 4); } if( visAttribs & CR_OVERLAY_BIT ) ATTR_ADDV(AGL_LEVEL, 1); ATTR_ADD(AGL_NONE); *pix = render_spu.ws.aglChoosePixelFormat( NULL, 0, attribs ); return (*pix != NULL); }
/* @breif sub lamu basic attribute */ int sub_lamu_basic_attire(sprite_t *p, pet_t *pet, int change_value) { #define ATTR_ADD(a, v) \ a = a + v; \ if (v > 0) a = ((a) > 100 ? 100 : (a)); \ else a = ((a) > 100 ? 0 : (a)); /*sub basic attirbute*/ ATTR_ADD(pet->hungry, change_value); ATTR_ADD(pet->thirsty, change_value); ATTR_ADD(pet->sanitary, change_value); ATTR_ADD(pet->spirit, change_value); pet->stamp = now.tv_sec; db_update_pet_attr(0, pet->stamp, change_value, change_value, change_value, change_value, pet->id, p->id); return 0; }