static void tglgrid_motion(t_tg* tg, t_floatarg dx, t_floatarg dy) { int row,col; tg->mouse_x += dx; tg->mouse_y += dy; col_and_row(tg,tg->glist,tg->mouse_x,tg->mouse_y,&col,&row); if (col < tg->cols && row < tg->rows && col >= 0 && row >= 0 && (col != tg->tgld_col || row != tg->tgld_row) && (toggle_val(tg,col,row) != tg->mouse_tgld) ) { do_toggle(tg,row,col); tg->tgld_col = col; tg->tgld_row = row; } }
static int tglgrid_click(t_gobj *z, struct _glist *glist, int xpix, int ypix, int shift, int alt, int dbl, int doit) { t_tg* tg = (t_tg *)z; int row,col; UNUSED(shift); UNUSED(alt); UNUSED(dbl); col_and_row(tg,glist,xpix,ypix,&col,&row); if (doit && row>=0) { tg->mouse_tgld = do_toggle(tg,row,col); tg->tgld_col = col; tg->tgld_row = row; tg->mouse_x = xpix; tg->mouse_y = ypix; glist_grab(glist,&tg->x_obj.te_g, (t_glistmotionfn)tglgrid_motion,0,xpix,ypix); } return 1; }
void tg_off(t_tg* tg, t_floatarg cf, t_floatarg rf) { t_int c = (int)cf; t_int r = (int)rf; if (toggle_val(tg,c,r)!='0') do_toggle(tg,r,c); }
void tg_tgl(t_tg* tg, t_floatarg cf, t_floatarg rf) { t_int c = (int)cf; t_int r = (int)rf; do_toggle(tg,r,c); }
void do_cmd(comedi_t *dev,comedi_cmd *cmd) { int total=0; int ret; int go; fd_set rdset; struct timeval timeout; ret=comedi_command_test(dev,cmd); printf("test ret=%d\n",ret); if(ret<0){ printf("errno=%d\n",errno); comedi_perror("comedi_command_test"); return; } dump_cmd(stdout,cmd); ret=comedi_command_test(dev,cmd); printf("test ret=%d\n",ret); if(ret<0){ printf("errno=%d\n",errno); comedi_perror("comedi_command_test"); return; } dump_cmd(stdout,cmd); ret=comedi_command(dev,cmd); printf("ret=%d\n",ret); if(ret<0){ printf("errno=%d\n",errno); comedi_perror("comedi_command"); return; } go=1; while(go){ FD_ZERO(&rdset); FD_SET(comedi_fileno(dev),&rdset); timeout.tv_sec = 0; timeout.tv_usec = 50000; ret = select(comedi_fileno(dev)+1,&rdset,NULL,NULL,&timeout); if(ret<0){ perror("select"); }else if(ret==0){ /* timeout */ }else if(FD_ISSET(comedi_fileno(dev),&rdset)){ ret=read(comedi_fileno(dev),buf,BUFSZ); if(ret<0){ if(errno==EAGAIN){ go = 0; perror("read"); } }else if(ret==0){ go = 0; }else{ //int i; total+=ret; //printf("read %d %d\n",ret,total); //printf("count = %d\n",count); do_toggle(); #if 0 for(i=0;i<ret;i+=sizeof(sampl_t)){ do_toggle(); } #endif } } } }
void vo_MainAction(void){ if(item_selected == 2) do_toggle(vo_invincibility); if(item_selected == 3) do_toggle(vo_flywalls); if(item_selected == 4) do_toggle(vo_stick_to_ground); if(item_selected == 5) do_toggle(vo_booster); if(item_selected == 6) do_toggle(vo_helispeed); if(item_selected == 7){ if(IS_CHAR_IN_ANY_CAR(pPlayer)){ Vehicle pveh; uint lock; GET_CAR_CHAR_IS_USING(pPlayer,&pveh); GET_CAR_DOOR_LOCK_STATUS(pveh,&lock); if(lock == VEHICLE_DOOR_UNLOCKED) LOCK_CAR_DOORS(pveh,VEHICLE_DOOR_LOCKED_BOTH_SIDES); else LOCK_CAR_DOORS(pveh,VEHICLE_DOOR_UNLOCKED); menu_items_set = false; menu_clean(); } } if(item_selected == 8){ if(IS_CHAR_IN_ANY_CAR(pPlayer)){ Vehicle pveh; GET_CAR_CHAR_IS_USING(pPlayer,&pveh); FIX_CAR(pveh); SET_VEHICLE_DIRT_LEVEL(pveh,0.0); print("Vehicle fixed & washed!"); } } if(item_selected == 9){ if(IS_CHAR_IN_ANY_CAR(pPlayer)){ Vehicle pveh; GET_CAR_CHAR_IS_USING(pPlayer,&pveh); SET_CAR_ON_GROUND_PROPERLY(pveh); } } if(item_selected == 10){ if(IS_CHAR_IN_ANY_CAR(pPlayer)){ Vehicle pveh; Ped driver; GET_CAR_CHAR_IS_USING(pPlayer,&pveh); GET_DRIVER_OF_CAR(pveh,&driver); if(driver == pPlayer){ DELETE_CAR(&pveh); MARK_CAR_AS_NO_LONGER_NEEDED(&pveh); } else print("You must be the driver of this vehicle"); } } if(item_selected == 11){ if(IS_CHAR_IN_ANY_CAR(pPlayer)){ Vehicle pveh[2]; GET_CAR_CHAR_IS_USING(pPlayer,&pveh[0]); if(network){ GET_NETWORK_ID_FROM_VEHICLE(pveh[0],&pveh[1]); if(!network_control(pveh[1])){ error("Network Control"); return; } float x,y,z; GET_CHAR_COORDINATES(pPlayer,&x,&y,&z); teleport_char(pPlayer,0.0f,4000.0f,0.0f); WAIT(100); teleport_char(pPlayer,x,y,z); } } } return; }