t_client *create_client(t_info *info) { t_client *client; client = xmalloc(sizeof(*client)); client->x = get_random(info->x, CLIENT(info->clients->data)->x); client->y = get_random(info->y, CLIENT(info->clients->data)->y); return (client); }
int count_list_with_same_lvl(t_list *t, int lvl) { int i; i = 0; while (t) { if (CLIENT(t->data)->level == lvl && (CLIENT(t->data)->status == ST_CLIENT || CLIENT(t->data)->status == ST_DISCONNECT)) i++; t = t->next; } return (i); }
static void client_set_property(GObject *object, guint property_id,const GValue *value, GParamSpec *pspec) { Client * obj = CLIENT(object); switch (property_id) { case CLIENT_NAME: obj->name = g_value_dup_string(value); break; case CLIENT_ID: obj->id = g_value_dup_string(value); break; case CLIENT_ID_TYPE: obj->idtype = g_value_dup_string(value); break; case CLIENT_IP_STR: obj->ip = inet_addr(g_value_get_string(value)); break; case CLIENT_ROOM: obj->room = g_value_dup_string(value); break; case CLIENT_IP: obj->ip = g_value_get_uint(value); break; case CLIENT_ENABLE: obj->enable = g_value_get_boolean(value); break; default: g_warn_if_reached(); break; } }
client_t * client_get_thread_local () { if (unlikely (! thread_local_client)) { thread_local_client = CLIENT (caching_client_new ()); } return thread_local_client; }
void send_to_obs(t_list *obs, char *str) { while (obs) { strcat(CLIENT(obs->data)->buf_write, str); obs = obs->next; } }
int main() { while((i=fork())==-1); if (!i)SERVER(); while((i=fork())==-1); if (!i)CLIENT(); wait(0); wait(0); }
void obs_new_client(t_list *obs, t_client *client, t_info *info, char is_a_bird) { while (obs) { obs_add_client_in_char(CLIENT(obs->data)->buf_write, client, info, is_a_bird); obs = obs->next; } }
static void put_clients(t_info *info, int anim) { t_list *t; t_param p; sort_client_list(&info->clients); t = info->clients; while (t) { if (!anim) put_direction_to_anim(t->data); p.x = (CLIENT(t->data)->x + 1) * FLOOR_X; p.y = CLIENT(t->data)->y * FLOOR_Y; p.anim = CLIENT(t->data)->anim + (16 * (CLIENT(t->data)->level - 1)); p.gfx = BIBI + (CLIENT(t->data)->team_id % NB_CHARACTER); set_object(info->gfx, &p); t = t->next; } }
void *get_client_from_list(t_list *t, int id) { if (!t) return ((void *) -1); while (t) { if (CLIENT(t->data)->id == id) return (t->data); t = t->next; } return (NULL); }
void sort_client_list(t_list **begin) { t_list *p; t_list *swap; p = *begin; while ((*begin)->next) { if (CLIENT((*begin)->data)->y > CLIENT((*begin)->next->data)->y) { printf("petit swap\n"); swap = (*begin)->next->data; (*begin)->next->data = (*begin)->data; (*begin)->data = swap; *begin = p; } else *begin = (*begin)->next; } *begin = p; }
int DataBaseMgr::SearchNick(const std::string nick, unsigned int index) { std::string nickQuery = "SELECT * FROM dbo.user_table WHERE Nick = '"; nickQuery += nick + "'"; int num = 0; if (Query(nickQuery, index) == SQL_NO_DATA) { std::string SearchID = "SELECT * FROM dbo.user_table WHERE ID = " + std::to_string(num); while (ThereIsQuery(SearchID) != SQL_NO_DATA) { SearchID = "SELECT * FROM dbo.user_table WHERE ID = " + std::to_string(++num); } Vector2f mRandPos(rand()%100, rand()%100); std::string CreateQuery = "INSERT INTO dbo.user_table VALUES (" + std::to_string(num) + ", '" + nick + "', 1, " + std::to_string(mRandPos.x) + ", " + std::to_string(mRandPos.y) + ", 1, 1, 1, 100)"; CLIENT(index).info.mPos.x = mRandPos.x; CLIENT(index).info.mPos.y = mRandPos.y; Query(CreateQuery); Query(nickQuery, index); } return num; }
static void client_get_property(GObject *object, guint property_id,GValue *value, GParamSpec *pspec) { Client * obj = CLIENT(object); gchar * ip_str; switch (property_id) { case CLIENT_NAME: g_value_set_string(value,obj->name); break; case CLIENT_ID: g_value_set_string(value,obj->id); break; case CLIENT_ID_TYPE: g_value_set_string(value,obj->idtype); break; case CLIENT_IP_STR: ip_str = g_strdup_printf("%03d.%03d.%03d.%03d", ((guchar*)&(obj->ip))[0], ((guchar*)&(obj->ip))[1], ((guchar*)&(obj->ip))[2], ((guchar*)&(obj->ip))[3]); g_value_take_string(value,ip_str); break; case CLIENT_ROOM: g_value_set_string(value,obj->room); break; case CLIENT_IP: g_value_set_uint(value,obj->ip); break; case CLIENT_ENABLE: g_value_set_boolean(value,obj->enable); break; default: g_warn_if_reached(); break; } }
Window subSubtleFocus(int focus) { int sid = 0; SubClient *c = NULL; SubScreen *s = NULL; /* Get current screen */ s = subScreenCurrent(&sid); /* Find next window */ if(focus) { int i; /* Check focus history */ for(i = 1; i < HISTORYSIZE; i++) { if((c = CLIENT(subSubtleFind(subtle->windows.focus[i], CLIENTID)))) { /* Check visibility on current screen */ if(c->screen == sid && ALIVE(c) && VISIBLE(subtle->visible_tags, c) && c->win != subtle->windows.focus[0]) { subClientFocus(c); subClientWarp(c, True); return c->win; } } } /* Check client list backwards to get fullscreen first */ for(i = subtle->clients->ndata - 1; i > 0; i--) { c = CLIENT(subtle->clients->data[i]); /* Check visibility on current screen */ if(c->screen == sid && ALIVE(c) && VISIBLE(subtle->visible_tags, c) && c->win != subtle->windows.focus[0]) { subClientFocus(c); subClientWarp(c, True); return c->win; } } } /* Fallback to root */ subtle->windows.focus[0] = ROOT; subGrabSet(ROOT); XSetInputFocus(subtle->dpy, ROOT, RevertToPointerRoot, CurrentTime); subScreenUpdate(); subScreenRender(); /* EWMH: Current destop */ subEwmhSetCardinals(ROOT, SUB_EWMH_NET_CURRENT_DESKTOP, (long *)&s->vid, 1); return ROOT; } /* }}} */
void subPanelRender(SubPanel *p, Drawable drawable) { assert(p); /* Draw separator before panel */ if(0 < subtle->separator.width && p->flags & SUB_PANEL_SEPARATOR1) PanelSeparator(SUB_PANEL_SEPARATOR1, p, drawable); /* Handle panel item type */ switch(p->flags & (SUB_PANEL_ICON|SUB_PANEL_KEYCHAIN| SUB_PANEL_SUBLET|SUB_PANEL_TITLE|SUB_PANEL_VIEWS)) { case SUB_PANEL_ICON: /* {{{ */ { int y = 0, icony = 0; y = subtle->font->y + STYLE_TOP(subtle->styles.separator); icony = p->icon->height > y ? subtle->styles.separator.margin.top : y - p->icon->height; subSharedTextIconDraw(subtle->dpy, subtle->gcs.draw, drawable, p->x + 2 + subtle->styles.separator.padding.left, icony, p->icon->width, p->icon->height, subtle->styles.sublets.fg, subtle->styles.sublets.bg, p->icon->pixmap, p->icon->bitmap); } break; /* }}} */ case SUB_PANEL_KEYCHAIN: /* {{{ */ if(p->keychain && p->keychain->keys) { subSharedTextDraw(subtle->dpy, subtle->gcs.draw, subtle->font, drawable, p->x + STYLE_LEFT(subtle->styles.separator), subtle->font->y + STYLE_TOP(subtle->styles.separator), subtle->styles.title.fg, subtle->styles.title.bg, p->keychain->keys, strlen(p->keychain->keys)); } break; /* }}} */ case SUB_PANEL_SUBLET: /* {{{ */ { SubStyle *s = &subtle->styles.sublets, *style = NULL; /* Select style */ if(s->styles && (style = subArrayGet(s->styles, p->sublet->style))) s = style; /* Set window background and border*/ PanelRect(drawable, p->x, p->width, s); /* Render text parts */ subSharedTextRender(subtle->dpy, subtle->gcs.draw, subtle->font, drawable, p->x + STYLE_LEFT((*s)), subtle->font->y + STYLE_TOP((*s)), s->fg, s->icon, s->bg, p->sublet->text); } break; /* }}} */ case SUB_PANEL_TITLE: /* {{{ */ if(0 < subtle->clients->ndata) { SubClient *c = NULL; if((c = CLIENT(subSubtleFind(subtle->windows.focus[0], CLIENTID))) && !(c->flags & SUB_CLIENT_TYPE_DESKTOP)) { int x = 0, y = 0, width = 0, len = 0; char buf[5] = { 0 }; SubStyle *s = &subtle->styles.title; DEAD(c); PanelModes(c, buf, &width); /* Set window background and border*/ PanelRect(drawable, p->x, p->width, s); /* Draw modes and title */ len = strlen(c->name); x = p->x + STYLE_LEFT(subtle->styles.title); y = subtle->font->y + STYLE_TOP(subtle->styles.title); subSharedTextDraw(subtle->dpy, subtle->gcs.draw, subtle->font, drawable, x, y, s->fg, s->bg, buf, strlen(buf)); subSharedTextDraw(subtle->dpy, subtle->gcs.draw, subtle->font, drawable, x + width, y, s->fg, s->bg, c->name, /* Limit string length */ len > subtle->styles.clients.right ? subtle->styles.clients.right : len); } } break; /* }}} */ case SUB_PANEL_VIEWS: /* {{{ */ if(0 < subtle->views->ndata) { int i, vx = p->x; /* View buttons */ for(i = 0; i < subtle->views->ndata; i++) { int x = 0; SubView *v = VIEW(subtle->views->data[i]); SubStyle *s = PanelViewStyle(v, (p->screen->vid == i)); /* Check dynamic views */ if(v->flags & SUB_VIEW_DYNAMIC && !(subtle->client_tags & v->tags)) continue; /* Set window background and border*/ PanelRect(drawable, vx, v->width + STYLE_WIDTH((*s)), s); x += STYLE_LEFT((*s)); /* Draw view icon and/or text */ if(v->flags & SUB_VIEW_ICON) { int y = 0, icony = 0; y = subtle->font->y + STYLE_TOP((*s)); icony = v->icon->height > y ? s->margin.top : y - v->icon->height; subSharedTextIconDraw(subtle->dpy, subtle->gcs.draw, drawable, vx + x, icony, v->icon->width, v->icon->height, s->icon, s->bg, v->icon->pixmap, v->icon->bitmap); } if(!(v->flags & SUB_VIEW_ICON_ONLY)) { if(v->flags & SUB_VIEW_ICON) x += v->icon->width + 3; subSharedTextDraw(subtle->dpy, subtle->gcs.draw, subtle->font, drawable, vx + x, subtle->font->y + STYLE_TOP((*s)), s->fg, s->bg, v->name, strlen(v->name)); } vx += v->width + STYLE_WIDTH((*s)); } } break; /* }}} */ } /* Draw separator after panel */ if(0 < subtle->separator.width && p->flags & SUB_PANEL_SEPARATOR2) PanelSeparator(SUB_PANEL_SEPARATOR2, p, drawable); } /* }}} */
void subPanelUpdate(SubPanel *p) { assert(p); /* Handle panel item type */ switch(p->flags & (SUB_PANEL_ICON|SUB_PANEL_KEYCHAIN| SUB_PANEL_SUBLET|SUB_PANEL_TITLE|SUB_PANEL_VIEWS)) { case SUB_PANEL_ICON: /* {{{ */ p->width = p->icon->width + subtle->styles.separator.padding.left + subtle->styles.separator.padding.right + 4; break; /* }}} */ case SUB_PANEL_KEYCHAIN: /* {{{ */ p->width = 0; if(p->keychain && p->keychain->keys) { /* Font offset, panel border and padding */ p->width = subSharedTextWidth(subtle->dpy, subtle->font, p->keychain->keys, p->keychain->len, NULL, NULL, True) + subtle->styles.separator.padding.left + subtle->styles.separator.padding.right; } break; /* }}} */ case SUB_PANEL_SUBLET: /* {{{ */ { SubStyle *s = &subtle->styles.sublets, *style = NULL; /* Select style */ if(s->styles && (style = subArrayGet(s->styles, p->sublet->style))) s = style; /* Ensure min width */ p->width = MAX(s->min, p->sublet->width); } break; /* }}} */ case SUB_PANEL_TITLE: /* {{{ */ p->width = subtle->styles.clients.min; if(0 < subtle->clients->ndata) { SubClient *c = NULL; /* Find focus window */ if((c = CLIENT(subSubtleFind(subtle->windows.focus[0], CLIENTID)))) { assert(c); DEAD(c); /* Exclude desktop type windows */ if(!(c->flags & SUB_CLIENT_TYPE_DESKTOP)) { char buf[5] = { 0 }; int width = 0, len = strlen(c->name); PanelModes(c, buf, &width); /* Font offset, panel border and padding */ p->width = subSharedTextWidth(subtle->dpy, subtle->font, c->name, /* Limit string length */ len > subtle->styles.clients.right ? subtle->styles.clients.right : len, NULL, NULL, True) + width + STYLE_WIDTH(subtle->styles.title); /* Ensure min width */ p->width = MAX(subtle->styles.clients.min, p->width); } } } break; /* }}} */ case SUB_PANEL_VIEWS: /* {{{ */ p->width = subtle->styles.views.min; if(0 < subtle->views->ndata) { int i; /* Update for each view */ for(i = 0; i < subtle->views->ndata; i++) { SubView *v = VIEW(subtle->views->data[i]); SubStyle *s = PanelViewStyle(v, (p->screen->vid == i)); /* Check dynamic views */ if(v->flags & SUB_VIEW_DYNAMIC && !(subtle->client_tags & v->tags)) continue; p->width += MAX(s->min, v->width) + STYLE_WIDTH((*s)); } } break; /* }}} */ } } /* }}} */
SQLRETURN DataBaseMgr::Query(std::string str, unsigned int index) { int char_id = 0; wchar_t char_name[100] = { 0, }; int char_level = 0; float posX = 0, posY = 0; int exp = 0; int atk = 0; int def = 0; int hp = 0; mNodata = true; SQLINTEGER pIndicators[10]; retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); // Process data if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) { retcode = SQLExecDirect(hstmt, // ID -> 1, Name -> 2, CLevel -> 3 column //(SQLCHAR*)"INSERT INTO dbo.exp_user_table VALUES (2, 'Hello', 1, 2.2, 3.3, 3, 5, 8)", //(SQLCHAR*)"SELECT ID, Nick, CLevel, XPos, YPos, EXP, Attack, Defence FROM dbo.exp_user_table", //(SQLCHAR*)"SELECT ID, Nick, CLevel, XPos, YPos, EXP, Attack, Defence FROM dbo.exp_user_table", //(SQLCHAR*)"EXEC dbo.SELECT_HIGHLEVEL 10", //(SQLCHAR*)"SELECT * FROM dbo.user_table WHERE Nick = 'Hello'", (SQLCHAR*)str.c_str(), SQL_NTS); if (retcode != SQL_ERROR) { // Retrieve data from row set. SQLBindCol(hstmt, 1, SQL_C_LONG, (SQLPOINTER)&char_id, sizeof(char_id), &pIndicators[0]); // Retrieve data from row set. SQLBindCol(hstmt, 2, SQL_C_WCHAR, (SQLPOINTER)char_name, sizeof(char_name), &pIndicators[1]); // Retrieve data from row set. SQLBindCol(hstmt, 3, SQL_C_LONG, (SQLPOINTER)&char_level, sizeof(char_level), &pIndicators[2]); SQLBindCol(hstmt, 4, SQL_C_FLOAT, (SQLPOINTER)&posX, sizeof(posX), &pIndicators[3]); SQLBindCol(hstmt, 5, SQL_C_FLOAT, (SQLPOINTER)&posY, sizeof(posY), &pIndicators[4]); SQLBindCol(hstmt, 6, SQL_C_LONG, (SQLPOINTER)&exp, sizeof(exp), &pIndicators[5]); SQLBindCol(hstmt, 7, SQL_C_LONG, (SQLPOINTER)&atk, sizeof(atk), &pIndicators[6]); SQLBindCol(hstmt, 8, SQL_C_LONG, (SQLPOINTER)&def, sizeof(def), &pIndicators[7]); SQLBindCol(hstmt, 9, SQL_C_LONG, (SQLPOINTER)&hp, sizeof(hp), &pIndicators[8]); while ((retcode = SQLFetch(hstmt)) == SQL_SUCCESS) { CLIENT(index).info.mPos.x = posX; CLIENT(index).info.mPos.y = posY; CLIENT(index).info.hp = hp; CLIENT(index).info.atk = atk; CLIENT(index).info.def = def; CLIENT(index).info.exp = exp; CLIENT(index).info.id = char_id; CLIENT(index).info.level = char_level; wcscpy_s(CLIENT(index).info.char_id, char_name); std::wcout << "char_id: " << char_id << "\n"; std::wcout << "char_name: " << char_name << "\n"; std::wcout << "pos: " << posX << ", " << posY << "\n"; std::wcout << "exp: " << exp << "\n"; std::wcout << "atk: " << atk << "\n"; std::wcout << "def: " << def << "\n"; std::wcout << "hp: " << hp << "\n"; mNodata = false; } if ((retcode == SQL_NO_DATA) && mNodata) { std::cout << "NO DATA" << std::endl; return retcode; } } else { // Error Handle HandleDiagnosticRecord(hstmt, SQL_HANDLE_STMT, retcode); } } SQLFreeHandle(SQL_HANDLE_STMT, hstmt); return SQL_SUCCESS; }
void subScreenConfigure(void) { int i; SubScreen *s = NULL; SubView *v = NULL; /* Reset visible tags, views and avaiclients */ subtle->visible_tags = 0; subtle->visible_views = 0; subtle->client_tags = 0; /* Either check each client or just get visibles */ if(0 < subtle->clients->ndata) { int j; /* Check each client */ for(i = 0; i < subtle->clients->ndata; i++) { SubClient *c = CLIENT(subtle->clients->data[i]); int gravity = 0, screen = 0, view = 0, visible = 0; /* Ignore dead or just iconified clients */ if(c->flags & SUB_CLIENT_DEAD) continue; /* Set client tags to ease lookups */ subtle->client_tags |= c->tags; /* Check views of each screen */ for(j = 0; j < subtle->screens->ndata; j++) { s = SCREEN(subtle->screens->data[j]); v = VIEW(subtle->views->data[s->vid]); /* Set visible tags and views to ease lookups */ subtle->visible_tags |= v->tags; subtle->visible_views |= (1L << (s->vid + 1)); /* Find visible clients */ if(VISIBLE(v->tags, c)) { gravity = c->gravities[s->vid]; view = s->vid; screen = j; visible++; /* Keep stick screen */ if(c->flags & SUB_CLIENT_MODE_STICK) screen = c->screen; } } /* After all screens are checked.. */ if(0 < visible) { /* Update client */ subClientArrange(c, gravity, screen); XMapWindow(subtle->dpy, c->win); subEwmhSetWMState(c->win, NormalState); /* Warp after gravity and screen have been set */ if(c->flags & SUB_CLIENT_MODE_URGENT) subClientWarp(c, True); /* EWMH: Desktop, screen */ subEwmhSetCardinals(c->win, SUB_EWMH_NET_WM_DESKTOP, (long *)&view, 1); subEwmhSetCardinals(c->win, SUB_EWMH_SUBTLE_CLIENT_SCREEN, (long *)&screen, 1); } else ///< Unmap other windows { c->flags |= SUB_CLIENT_UNMAP; ///< Ignore next unmap subEwmhSetWMState(c->win, WithdrawnState); XUnmapWindow(subtle->dpy, c->win); } } } else { /* Check views of each screen */ for(i = 0; i < subtle->screens->ndata; i++) { s = SCREEN(subtle->screens->data[i]); v = VIEW(subtle->views->data[s->vid]); /* Set visible tags and views to ease lookups */ subtle->visible_tags |= v->tags; subtle->visible_views |= (1L << (s->vid + 1)); } } /* EWMH: Visible tags, views */ subEwmhSetCardinals(ROOT, SUB_EWMH_SUBTLE_VISIBLE_TAGS, (long *)&subtle->visible_tags, 1); subEwmhSetCardinals(ROOT, SUB_EWMH_SUBTLE_VISIBLE_VIEWS, (long *)&subtle->visible_views, 1); XSync(subtle->dpy, False); ///< Sync before going on /* Hook: Configure */ subHookCall(SUB_HOOK_TILE, NULL); subSharedLogDebugSubtle("Configure: type=screen\n"); } /* }}} */