int do_setpath(const char *filename,uint64_t lv,uint32_t ts,char *ptr) { uint32_t inode; static uint8_t *path = NULL; static uint32_t pathsize = 0; (void)ts; EAT(ptr,filename,lv,'('); GETU32(inode,ptr); EAT(ptr,filename,lv,','); GETPATH(path,pathsize,ptr,filename,lv,')'); EAT(ptr,filename,lv,')'); return fs_log_setpath(inode,path); }
uint8_t do_setpath(uint64_t lv,uint32_t ts,char *ptr) { uint32_t inode; static uint8_t *path; static uint32_t pathsize; (void)ts; EAT(ptr,lv,'('); GETU32(inode,ptr); EAT(ptr,lv,','); GETPATH(path,pathsize,ptr,lv,')'); EAT(ptr,lv,')'); return shadow_fs_setpath(inode,path); }
int do_symlink(const char *filename,uint64_t lv,uint32_t ts,char *ptr) { uint32_t parent,uid,gid,inode; uint8_t name[256]; static uint8_t *path = NULL; static uint32_t pathsize = 0; EAT(ptr,filename,lv,'('); GETU32(parent,ptr); EAT(ptr,filename,lv,','); GETNAME(name,ptr,filename,lv,','); EAT(ptr,filename,lv,','); GETPATH(path,pathsize,ptr,filename,lv,','); EAT(ptr,filename,lv,','); GETU32(uid,ptr); EAT(ptr,filename,lv,','); GETU32(gid,ptr); EAT(ptr,filename,lv,')'); EAT(ptr,filename,lv,':'); GETU32(inode,ptr); return fs_log_symlink(ts,parent,strlen((char*)name),name,path,uid,gid,inode); }
uint8_t do_symlink(uint64_t lv,uint32_t ts,char *ptr) { uint32_t parent,uid,gid,inode; uint8_t name[256]; static uint8_t *path; static uint32_t pathsize; EAT(ptr,lv,'('); GETU32(parent,ptr); EAT(ptr,lv,','); GETNAME(name,ptr,lv,','); EAT(ptr,lv,','); GETPATH(path,pathsize,ptr,lv,','); EAT(ptr,lv,','); GETU32(uid,ptr); EAT(ptr,lv,','); GETU32(gid,ptr); EAT(ptr,lv,')'); EAT(ptr,lv,':'); GETU32(inode,ptr); return shadow_fs_symlink(ts,parent,strlen((char*)name),name,path,uid,gid,inode); }
bool bBoard::create() { guard(bBoard::create); ball_size = BALL_COUNT; ball = new bBall*[ball_size]; ball[0] = new bBall( bVector( ball_data[0].x, ball_data[0].y ), bVector( 0, 0 ), bVector( 0, 0 ), 0.3, 1.0, 1.0f, 1.0f, 1.0f ); for( int i=1; i<BALL_COUNT; ++i ) { ball[i] = new bBall( bVector( ball_data[i].x, ball_data[i].y ), bVector( 0, 0 ), bVector( 0, 0 ), 0.3, 1.0, 0.5f+((float)(rand()%10))/20.0f, 0.5f+((float)(rand()%10))/20.0f, 0.5f+((float)(rand()%10))/20.0f ); } band_size = BOARD_SEGMENTS; band = new bBand*[band_size]; for( int i=0; i<BOARD_SEGMENTS-1; ++i ) { band[i] = new bBand( bVector( board_data[i].x, board_data[i].y ), bVector( board_data[i+1].x, board_data[i+1].y ) ); } band[BOARD_SEGMENTS-1] = new bBand( bVector( board_data[BOARD_SEGMENTS-1].x, board_data[BOARD_SEGMENTS-1].y ), bVector( board_data[0].x, board_data[0].y ) ); luball.create( ball_size ); luband.create( ball_size, band_size, false ); glTexGeni( GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP ); glTexGeni( GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP ); if( !ball_tex.load( GETPATH("../../tex/ball.bmp") ) ) { if( !ball_tex.load( GETPATH("../tex/ball.bmp") ) ) { BLOG( "!! Error loading ball texture!\n" ); } } if( !ball_num.load( GETPATH("../../tex/xball.bmp") ) ) { if( !ball_num.load( GETPATH("../tex/xball.bmp") ) ) { BLOG( "!! Error loading ball texture!\n" ); } } if( !desk.load( GETPATH("../../tex/desk.bmp") ) ) { if( !desk.load( GETPATH("../tex/desk.bmp") ) ) { BLOG( "!! Error loading desk texture!\n" ); } } if( !band_tex.load( GETPATH("../../tex/band.bmp") ) ) { if( !band_tex.load( GETPATH("../tex/band.bmp") ) ) { BLOG( "!! Error loading band texture!\n" ); } } if( !shadow.load( GETPATH("../../tex/shadow.bmp") ) ) { if( !shadow.load( GETPATH("../tex/shadow.bmp") ) ) { BLOG( "!! Error loading shadow texture!\n" ); } } if( bShader::is_supported() ) { if( !ball_shader.load_fragment( GETPATH("../../shaders/ball_frag.cg") ) ) { if( !ball_shader.load_fragment( GETPATH("../shaders/ball_frag.cg") ) ) { BLOG( "!! Error loading ball shader!\n" ); } } if( !ball_shader.load_vertex( GETPATH("../../shaders/ball_vert.cg") ) ) { if( !ball_shader.load_vertex( GETPATH("../shaders/ball_vert.cg") ) ) { BLOG( "!! Error loading ball shader!\n" ); } } if( !board_shader.load_fragment( GETPATH("../../shaders/board_frag.cg") ) ) { if( !board_shader.load_fragment( GETPATH("../shaders/board_frag.cg") ) ) { BLOG( "!! Error loading board shader!\n" ); } } } else { BLOG( "!! Shaders are not supported!\n" ); } if( !glewIsSupported("GL_ARB_multitexture") ) { BLOG( "!! Multitexturing is not supported!\n" ); } return true; unguard; }