/* Checks to see if client cl needs it's statusbar updated */ static void sv_net_update_statusbar(client_t *cl) { weap_type_t *wt; int change = 0; CHECK_CHANGE(health); if( change && cl->ent->health < 0 ) cl->health = 0; /* Health is sent as byte, so no negative values */ CHECK_CHANGE(weapon); CHECK_CHANGE(frags); wt = weapon_type( cl->ent->weapon ); if( cl->ammo != cl->ent->ammo[ wt->ammo_type ] ) { cl->ammo = cl->ent->ammo[ wt->ammo_type ]; change = 1; } if( change ) sv_netmsg_send_update_statusbar(cl); }
static void var_validate_change(const struct fb_var_screeninfo *old, int error) { CHECK_CHANGE_AND_ROUNDING(xres); CHECK_CHANGE_AND_ROUNDING(yres); CHECK_CHANGE_AND_ROUNDING(xres_virtual); CHECK_CHANGE_AND_ROUNDING(yres_virtual); CHECK_CHANGE_AND_ROUNDING(xoffset); CHECK_CHANGE_AND_ROUNDING(yoffset); CHECK_CHANGE_AND_ROUNDING(bits_per_pixel); CHECK_CHANGE(grayscale); CHECK_CHANGE_AND_ROUNDING(red.offset); CHECK_CHANGE_AND_ROUNDING(red.length); CHECK_CHANGE(red.msb_right); CHECK_CHANGE_AND_ROUNDING(green.offset); CHECK_CHANGE_AND_ROUNDING(green.length); CHECK_CHANGE_AND_ROUNDING(green.length); CHECK_CHANGE(green.msb_right); CHECK_CHANGE_AND_ROUNDING(blue.offset); CHECK_CHANGE_AND_ROUNDING(blue.length); CHECK_CHANGE_AND_ROUNDING(blue.length); CHECK_CHANGE(blue.msb_right); CHECK_CHANGE_AND_ROUNDING(transp.offset); CHECK_CHANGE_AND_ROUNDING(transp.length); CHECK_CHANGE_AND_ROUNDING(transp.length); CHECK_CHANGE(transp.msb_right); CHECK_CHANGE(nonstd); CHECK_CHANGE(activate); CHECK_CHANGE_AND_ROUNDING(height); CHECK_CHANGE_AND_ROUNDING(width); CHECK_CHANGE(accel_flags); CHECK_CHANGE_AND_ROUNDING(pixclock); CHECK_CHANGE_AND_ROUNDING(left_margin); CHECK_CHANGE_AND_ROUNDING(right_margin); CHECK_CHANGE_AND_ROUNDING(upper_margin); CHECK_CHANGE_AND_ROUNDING(lower_margin); CHECK_CHANGE_AND_ROUNDING(hsync_len); CHECK_CHANGE_AND_ROUNDING(vsync_len); CHECK_CHANGE(sync); CHECK_CHANGE(vmode); CHECK_CHANGE(reserved[0]); CHECK_CHANGE(reserved[1]); CHECK_CHANGE(reserved[2]); CHECK_CHANGE(reserved[3]); CHECK_CHANGE(reserved[4]); CHECK_CHANGE(reserved[5]); var_validate(); }
static int tab_key( Widget* tab, SDL_Event *event ) { int change; SDLKey key, bind_key; SDLMod mod, bind_mod; Window *wdw; int ret; /* Event info. */ key = event->key.keysym.sym; mod = input_translateMod( event->key.keysym.mod ); /* Handle tab changing. */ change = -1; CHECK_CHANGE( "switchtab1", 0 ); CHECK_CHANGE( "switchtab2", 1 ); CHECK_CHANGE( "switchtab3", 2 ); CHECK_CHANGE( "switchtab4", 3 ); CHECK_CHANGE( "switchtab5", 4 ); CHECK_CHANGE( "switchtab6", 5 ); CHECK_CHANGE( "switchtab7", 6 ); CHECK_CHANGE( "switchtab8", 7 ); CHECK_CHANGE( "switchtab9", 8 ); CHECK_CHANGE( "switchtab0", 9 ); /* Window. */ ret = 0; wdw = window_wget( tab->dat.tab.windows[ tab->dat.tab.active ] ); /* Handle keypresses. */ switch (key) { case SDLK_TAB: if (mod & NMOD_SHIFT) { if (mod & NMOD_CTRL) change = (tab->dat.tab.active - 1) % tab->dat.tab.ntabs; else change = (tab->dat.tab.active + 1) % tab->dat.tab.ntabs; } else { if (mod & NMOD_CTRL) toolkit_prevFocus( wdw ); else toolkit_nextFocus( wdw ); } ret = 1; break; default: break; } /* Switch to the selected tab if it exists. */ if ((change != -1) && (change < tab->dat.tab.ntabs)) { tab->dat.tab.active = change; /* Create event. */ if (tab->dat.tab.onChange != NULL) tab->dat.tab.onChange( tab->wdw, tab->name, tab->dat.tab.active ); ret = 1; } return ret; }