这篇教程C++ Com_Print函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中Com_Print函数的典型用法代码示例。如果您正苦于以下问题:C++ Com_Print函数的具体用法?C++ Com_Print怎么用?C++ Com_Print使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了Com_Print函数的27个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: Svc_RemoteCommand/* * @brief A client issued an rcon command. Shift down the remaining args and * redirect all output to the invoking client. */static void Svc_RemoteCommand(void) { const _Bool auth = Sv_RconAuthenticate(); const char *addr = Net_NetaddrToString(&net_from); // first print to the server console if (auth) Com_Print("Rcon from %s:/n%s/n", addr, net_message.data + 4); else Com_Print("Bad rcon from %s:/n%s/n", addr, net_message.data + 4); // then redirect the remaining output back to the client Com_BeginRedirect(RD_PACKET, sv_outputbuf, SV_OUTPUTBUF_LENGTH, Sv_FlushRedirect); if (auth) { char remaining[MAX_STRING_CHARS]; int32_t i; remaining[0] = 0; for (i = 2; i < Cmd_Argc(); i++) { strcat(remaining, Cmd_Argv(i)); strcat(remaining, " "); } Cmd_ExecuteString(remaining); } else { Com_Print("Bad rcon_password/n"); } Com_EndRedirect();}
开发者ID:jayschwa,项目名称:quake2world,代码行数:35,
示例2: Cl_Ping_f/* * Cl_Ping_f */void Cl_Ping_f(void) { net_addr_t addr; cl_server_info_t *server; if (Cmd_Argc() != 2) { Com_Print("Usage: %s <address>/n", Cmd_Argv(0)); return; } server = NULL; if (!Net_StringToNetaddr(Cmd_Argv(1), &addr)) { Com_Print("Invalid address/n"); return; } if (!addr.port) // use default addr.port = (unsigned short) BigShort(PORT_SERVER); server = Cl_ServerForNetaddr(&addr); if (!server) { // add it server = Cl_AddServer(&addr); server->source = SERVER_SOURCE_USER; } server->ping_time = cls.real_time; server->ping = 0; Com_Print("Pinging %s/n", Net_NetaddrToString(server->addr)); Netchan_OutOfBandPrint(NS_CLIENT, server->addr, "info %i", PROTOCOL);}
开发者ID:darkshade9,项目名称:aq2w,代码行数:36,
示例3: R_Init/* * @brief Creates the OpenGL context and initializes all GL state. */void R_Init(void) { Com_Print("Video initialization.../n"); R_InitLocal(); R_InitContext(); R_InitConfig(); R_EnforceGlVersion(); R_InitGlExtensions(); R_InitState(); R_InitPrograms(); R_InitMedia(); R_InitImages(); R_InitDraw(); R_InitModels(); R_InitView(); Com_Print( "Video initialized %dx%dx%dbpp %s/n", r_context.width, r_context.height, (r_context.red_bits + r_context.green_bits + r_context.blue_bits + r_context.alpha_bits), (r_context.fullscreen ? "fullscreen" : "windowed"));}
开发者ID:devilx4,项目名称:quake2world,代码行数:38,
示例4: Cl_Record_f/** * @brief record <demo name> * * Begin recording a demo from the current frame until `stop` is issued. */void Cl_Record_f(void) { if (Cmd_Argc() != 2) { Com_Print("Usage: %s <demo name>/n", Cmd_Argv(0)); return; } if (cls.demo_file) { Com_Print("Already recording/n"); return; } if (cls.state != CL_ACTIVE) { Com_Print("You must be in a level to record/n"); return; } g_snprintf(cls.demo_filename, sizeof(cls.demo_filename), "demos/%s.demo", Cmd_Argv(1)); // open the demo file if (!(cls.demo_file = Fs_OpenWrite(cls.demo_filename))) { Com_Warn("Couldn't open %s/n", cls.demo_filename); return; } Com_Print("Recording to %s/n", cls.demo_filename);}
开发者ID:jdolan,项目名称:quetoo,代码行数:32,
示例5: Cl_Bind_f/* * Cl_Bind_f */static void Cl_Bind_f(void) { int i, c, b; char cmd[1024]; c = Cmd_Argc(); if (c < 2) { Com_Print("Usage: %s <key> [command] : attach a command to a key/n", Cmd_Argv(0)); return; } b = Cl_StringToKeyNum(Cmd_Argv(1)); if (b == -1) { Com_Print("/"%s/" isn't a valid key/n", Cmd_Argv(1)); return; } if (c == 2) { if (ks->binds[b]) Com_Print("/"%s/" = /"%s/"/n", Cmd_Argv(1), ks->binds[b]); else Com_Print("/"%s/" is not bound/n", Cmd_Argv(1)); return; } // copy the rest of the command line cmd[0] = 0; // start out with a null string for (i = 2; i < c; i++) { strcat(cmd, Cmd_Argv(i)); if (i != (c - 1)) strcat(cmd, " "); } Cl_Bind(b, cmd);}
开发者ID:darkshade9,项目名称:aq2w,代码行数:38,
示例6: Cl_Record_f/* * Cl_Record_f * * record <demo name> * * Begin recording a demo from the current frame until `stop` is issued. */void Cl_Record_f(void) { if (Cmd_Argc() != 2) { Com_Print("Usage: %s <demo name>/n", Cmd_Argv(0)); return; } if (cls.demo_file) { Com_Print("Already recording./n"); return; } if (cls.state != CL_ACTIVE) { Com_Print("You must be in a level to record./n"); return; } // open the demo file snprintf(cls.demo_path, sizeof(cls.demo_path), "%s/demos/%s.dem", Fs_Gamedir(), Cmd_Argv(1)); Fs_CreatePath(cls.demo_path); cls.demo_file = fopen(cls.demo_path, "wb"); if (!cls.demo_file) { Com_Warn("Cl_Record_f: couldn't open %s./n", cls.demo_path); return; } // don't start saving messages until a non-delta compressed message is received cls.demo_waiting = true; // update user info var to inform server to send angles Cvar_ForceSet("recording", "1"); Com_Print("Requesting demo support from server.../n");}
开发者ID:darkshade9,项目名称:aq2w,代码行数:42,
示例7: Ms_AddServer/* * @brief Adds the specified server to the master. */static void Ms_AddServer(struct sockaddr_in *from) { struct sockaddr_in addr; if (Ms_GetServer(from)) { Com_Print("Duplicate ping from %s/n", inet_ntoa(from->sin_addr)); return; } if (Ms_BlacklistServer(from)) { Com_Print("Server %s has been blacklisted/n", inet_ntoa(from->sin_addr)); return; } ms_server_t *server = Z_Malloc(sizeof(*server)); server->ip = *from; server->last_heartbeat = time(0); server->port = from->sin_port; ms_servers = g_list_prepend(ms_servers, server); Com_Print("Server %s registered/n", inet_ntoa(from->sin_addr)); // send an acknowledgment addr.sin_addr = server->ip.sin_addr; addr.sin_family = AF_INET; addr.sin_port = server->port; memset(&addr.sin_zero, 0, sizeof(addr.sin_zero)); sendto(ms_sock, "/xFF/xFF/xFF/xFF" "ack", 7, 0, (struct sockaddr*) &addr, sizeof(addr));}
开发者ID:devilx4,项目名称:quake2world,代码行数:32,
示例8: CalcVis/* * @brief */static void CalcVis(void) { uint32_t i; RunThreadsOn(map_vis.num_portals * 2, true, BaseVis); SortPortals(); // fast vis just uses migh_tsee for a very loose bound if (fastvis) { for (i = 0; i < map_vis.num_portals * 2; i++) { map_vis.portals[i].vis = map_vis.portals[i].flood; map_vis.portals[i].status = stat_done; } } else { RunThreadsOn(map_vis.num_portals * 2, true, FinalVis); } // assemble the leaf vis lists by OR-ing and compressing the portal lists for (i = 0; i < map_vis.portal_clusters; i++) ClusterMerge(i); if (map_vis.portal_clusters) Com_Print("Average clusters visible: %i/n", visibility_count / map_vis.portal_clusters); else Com_Print("Average clusters visible: 0/n");}
开发者ID:jayschwa,项目名称:quake2world,代码行数:29,
示例9: S_Init/* * S_Init */void S_Init(void) { int freq, channels; unsigned short format; memset(&s_env, 0, sizeof(s_env)); if (Cvar_GetValue("s_disable")) { Com_Warn("Sound disabled./n"); return; } Com_Print("Sound initialization.../n"); s_rate = Cvar_Get("s_rate", "44100", CVAR_ARCHIVE | CVAR_S_DEVICE, "Sound sampling rate in Hz."); s_reverse = Cvar_Get("s_reverse", "0", CVAR_ARCHIVE, "Reverse left and right channels."); s_volume = Cvar_Get("s_volume", "1.0", CVAR_ARCHIVE, "Global sound volume level."); Cmd_AddCommand("s_restart", S_Restart_f, "Restart the sound subsystem"); Cmd_AddCommand("s_play", S_Play_f, NULL); Cmd_AddCommand("s_stop", S_Stop_f, NULL); Cmd_AddCommand("s_list", S_List_f, NULL); if (SDL_WasInit(SDL_INIT_EVERYTHING) == 0) { if (SDL_Init(SDL_INIT_AUDIO) < 0) { Com_Warn("S_Init: %s./n", SDL_GetError()); return; } } else if (SDL_WasInit(SDL_INIT_AUDIO) == 0) { if (SDL_InitSubSystem(SDL_INIT_AUDIO) < 0) { Com_Warn("S_Init: %s./n", SDL_GetError()); return; } } if (Mix_OpenAudio(s_rate->integer, MIX_DEFAULT_FORMAT, 2, 1024) == -1) { Com_Warn("S_Init: %s/n", Mix_GetError()); return; } if (Mix_QuerySpec(&freq, &format, &channels) == 0) { Com_Warn("S_Init: %s/n", Mix_GetError()); return; } if (Mix_AllocateChannels(MAX_CHANNELS) != MAX_CHANNELS) { Com_Warn("S_Init: %s/n", Mix_GetError()); return; } Mix_ChannelFinished(S_FreeChannel); Com_Print("Sound initialized %dKHz %d channels./n", freq, channels); s_env.initialized = true; S_InitMusic();}
开发者ID:darkshade9,项目名称:aq2w,代码行数:63,
示例10: AAS_Main/* * @brief Generates ${bsp_name}.aas for AI navigation. */int32_t AAS_Main(void) { Com_Print("/n----- AAS -----/n/n"); const time_t start = time(NULL); LoadBSPFile(bsp_name); if (d_bsp.num_nodes == 0) { Com_Error(ERR_FATAL, "No nodes"); } memset(&d_aas, 0, sizeof(d_aas)); CreateAASNodes(); PruneAASNodes(); WriteAASFile(); const time_t end = time(NULL); const time_t duration = end - start; Com_Print("/nAAS Time: "); if (duration > 59) Com_Print("%d Minutes ", (int32_t) (duration / 60)); Com_Print("%d Seconds/n", (int32_t) (duration % 60)); return 0;}
开发者ID:EEmmanuel7,项目名称:quetoo,代码行数:32,
示例11: Sv_UserInfoChanged/* * Sv_UserInfoChanged * * Enforces safe user_info data before passing onto game module. */void Sv_UserInfoChanged(sv_client_t *cl) { char *val; size_t i; if (*cl->user_info == '/0') { // catch empty user_info Com_Print("Empty user_info from %s/n", Sv_NetaddrToString(cl)); Sv_KickClient(cl, "Bad user info"); return; } if (strchr(cl->user_info, '/xFF')) { // catch end of message exploit Com_Print("Illegal user_info contained xFF from %s/n", Sv_NetaddrToString(cl)); Sv_KickClient(cl, "Bad user info"); return; } if (!ValidateUserInfo(cl->user_info)) { // catch otherwise invalid user_info Com_Print("Invalid user_info from %s/n", Sv_NetaddrToString(cl)); Sv_KickClient(cl, "Bad user info"); return; } val = GetUserInfo(cl->user_info, "skin"); if (strstr(val, "..")) // catch malformed skins SetUserInfo(cl->user_info, "skin", "enforcer/qforcer"); // call game code to allow overrides svs.game->ClientUserInfoChanged(cl->edict, cl->user_info); // name for C code, mask off high bit strncpy(cl->name, GetUserInfo(cl->user_info, "name"), sizeof(cl->name) - 1); for (i = 0; i < sizeof(cl->name); i++) { cl->name[i] &= 127; } // rate command val = GetUserInfo(cl->user_info, "rate"); if (*val != '/0') { cl->rate = atoi(val); if (cl->rate > CLIENT_RATE_MAX) cl->rate = CLIENT_RATE_MAX; else if (cl->rate < CLIENT_RATE_MIN) cl->rate = CLIENT_RATE_MIN; } // limit the print messages the client receives val = GetUserInfo(cl->user_info, "message_level"); if (*val != '/0') { cl->message_level = atoi(val); } // start/stop sending view angles for demo recording val = GetUserInfo(cl->user_info, "recording"); cl->recording = atoi(val) == 1;}
开发者ID:darkshade9,项目名称:aq2w,代码行数:62,
示例12: CalcPHS/* * @brief Calculate the PHS (Potentially Hearable Set) * by ORing together all the PVS visible from a leaf */static void CalcPHS(void) { uint32_t i, j, k, l, index; int32_t bitbyte; long *dest, *src; byte *scan; int32_t count; byte uncompressed[MAX_BSP_LEAFS / 8]; byte compressed[MAX_BSP_LEAFS / 8]; Com_Verbose("Building PHS.../n"); count = 0; for (i = 0; i < map_vis.portal_clusters; i++) { scan = map_vis.uncompressed + i * map_vis.leaf_bytes; memcpy(uncompressed, scan, map_vis.leaf_bytes); for (j = 0; j < map_vis.leaf_bytes; j++) { bitbyte = scan[j]; if (!bitbyte) continue; for (k = 0; k < 8; k++) { if (!(bitbyte & (1 << k))) continue; // OR this pvs row into the phs index = ((j << 3) + k); if (index >= map_vis.portal_clusters) Com_Error(ERR_FATAL, "Bad bit vector in PVS/n"); // pad bits should be 0 src = (long *) (map_vis.uncompressed + index * map_vis.leaf_bytes); for (l = 0; l < map_vis.leaf_longs; l++) ((long *) uncompressed)[l] |= src[l]; } } for (j = 0; j < map_vis.portal_clusters; j++) if (uncompressed[j >> 3] & (1 << (j & 7))) count++; // compress the bit string j = CompressVis(uncompressed, compressed); dest = (long *) map_vis.pointer; map_vis.pointer += j; if (map_vis.pointer > map_vis.end) Com_Error(ERR_FATAL, "Overflow/n"); d_vis->bit_offsets[i][DVIS_PHS] = (byte *) dest - map_vis.base; memcpy(dest, compressed, j); } if (map_vis.portal_clusters) Com_Print("Average clusters hearable: %i/n", count / map_vis.portal_clusters); else Com_Print("Average clusters hearable: 0/n");}
开发者ID:jayschwa,项目名称:quake2world,代码行数:58,
示例13: BSP_Main/* * BSP_Main */int BSP_Main(void){ time_t start, end; char base[MAX_OSPATH]; int total_bsp_time; #ifdef _WIN32 char title[MAX_OSPATH]; sprintf(title, "Q2WMap [Compiling BSP]"); SetConsoleTitle(title); #endif Com_Print("/n----- BSP -----/n/n"); start = time(NULL); StripExtension(map_name, base); // clear the whole bsp structure memset(&d_bsp, 0, sizeof(d_bsp)); // delete portal and line files remove(va("%s.prt", base)); remove(va("%s.lin", base)); // if onlyents, just grab the entities and re-save if(onlyents){ LoadBSPFile(bsp_name); num_entities = 0; LoadMapFile(map_name); SetModelNumbers(); UnparseEntities(); WriteBSPFile(bsp_name); } else { // start from scratch LoadMapFile(map_name); SetModelNumbers(); ProcessModels(); } end = time(NULL); total_bsp_time = (int)(end - start); Com_Print("/nBSP Time: "); if(total_bsp_time > 59) Com_Print("%d Minutes ", total_bsp_time / 60); Com_Print("%d Seconds/n", total_bsp_time % 60); return 0;}
开发者ID:darkshade9,项目名称:aq2w,代码行数:56,
示例14: S_ListMedia_f/* * @brief Prints information about all currently loaded media to the console. */void S_ListMedia_f(void) { Com_Print("Loaded media:/n"); GList *key = s_media_state.keys; while (key) { s_media_t *media = g_hash_table_lookup(s_media_state.media, key->data); Com_Print("%s/n", media->name); key = key->next; }}
开发者ID:jayschwa,项目名称:quake2world,代码行数:16,
示例15: Ms_RemoveServer/* * @brief Removes the specified server. */static void Ms_RemoveServer(struct sockaddr_in *from, ms_server_t *server) { if (!server) // resolve from address server = Ms_GetServer(from); if (!server) { Com_Print("Shutdown from unregistered server %s/n", inet_ntoa(from->sin_addr)); return; } Com_Print("Shutdown from %s/n", inet_ntoa(from->sin_addr)); Ms_DropServer(server);}
开发者ID:devilx4,项目名称:quake2world,代码行数:16,
示例16: Cl_Stop_f/** * @brief Stop recording a demo */void Cl_Stop_f(void) { int32_t len = -1; if (!cls.demo_file) { Com_Print("Not recording a demo/n"); return; } // finish up Fs_Write(cls.demo_file, &len, sizeof(len), 1); Fs_Close(cls.demo_file); cls.demo_file = NULL; Com_Print("Stopped demo/n");}
开发者ID:jdolan,项目名称:quetoo,代码行数:18,
示例17: Sv_InitServer/* * @brief Entry point for spawning a new server or changing maps / demos. Brings any * connected clients along for the ride by broadcasting a reconnect before * clearing state. Special effort is made to ensure that a locally connected * client sees the reconnect message immediately. */void Sv_InitServer(const char *server, sv_state_t state) {#ifdef BUILD_CLIENT extern void Cl_Disconnect(void);#endif char path[MAX_QPATH]; Com_Debug("Sv_InitServer: %s (%d)/n", server, state); Cbuf_CopyToDefer(); // ensure that the requested map or demo exists if (state == SV_ACTIVE_DEMO) g_snprintf(path, sizeof(path), "demos/%s.dem", server); else g_snprintf(path, sizeof(path), "maps/%s.bsp", server); if (!Fs_Exists(path)) { Com_Print("Couldn't open %s/n", path); return; } // inform any connected clients to reconnect to us Sv_ShutdownMessage("Server restarting.../n", true);#ifdef BUILD_CLIENT // disconnect any local client, they'll immediately reconnect Cl_Disconnect();#endif // clear the sv_server_t structure Sv_ClearState(); Com_Print("Server initialization.../n"); // initialize the clients, loading the game module if we need it Sv_InitClients(); // load the map or demo and related media Sv_LoadMedia(server, state); sv.state = state; Sb_Init(&sv.multicast, sv.multicast_buffer, sizeof(sv.multicast_buffer)); Com_Print("Server initialized/n"); Com_InitSubsystem(Q2W_SERVER); svs.initialized = true;}
开发者ID:devilx4,项目名称:quake2world,代码行数:54,
示例18: Sv_ConnectionlessPacket/* * @brief A connection-less packet has four leading 0xff bytes to distinguish * it from a game channel. Clients that are in the game can still send these, * and they will be handled here. */static void Sv_ConnectionlessPacket(void) { Net_BeginReading(&net_message); Net_ReadLong(&net_message); // skip the -1 marker const char *s = Net_ReadStringLine(&net_message); Cmd_TokenizeString(s); const char *c = Cmd_Argv(0); const char *a = Net_NetaddrToString(&net_from); Com_Debug("Packet from %s: %s/n", a, c); if (!g_strcmp0(c, "ping")) Svc_Ping(); else if (!g_strcmp0(c, "ack")) Svc_Ack(); else if (!g_strcmp0(c, "status")) Svc_Status(); else if (!g_strcmp0(c, "info")) Svc_Info(); else if (!g_strcmp0(c, "get_challenge")) Svc_GetChallenge(); else if (!g_strcmp0(c, "connect")) Svc_Connect(); else if (!g_strcmp0(c, "rcon")) Svc_RemoteCommand(); else Com_Print("Bad connectionless packet from %s:/n%s/n", a, s);}
开发者ID:jayschwa,项目名称:quake2world,代码行数:36,
示例19: Ms_SendServersList/* * @brief */static void Ms_SendServersList(struct sockaddr_in *from) { int32_t buflen; char buff[0xffff]; buflen = 0; memset(buff, 0, sizeof(buff)); memcpy(buff, "/xFF/xFF/xFF/xFF""servers ", 12); buflen += 12; GList *s = ms_servers; while (s) { const ms_server_t *server = (ms_server_t *) s->data; if (server->validated) { memcpy(buff + buflen, &server->ip.sin_addr, 4); buflen += 4; memcpy(buff + buflen, &server->port, 2); buflen += 2; } s = s->next; } if ((sendto(ms_sock, buff, buflen, 0, (struct sockaddr *) from, sizeof(*from))) == -1) Com_Warn("Socket error on send: %s./n", strerror(errno)); else Com_Print("Sent server list to %s/n", inet_ntoa(from->sin_addr));}
开发者ID:devilx4,项目名称:quake2world,代码行数:30,
示例20: Cl_BindList_f/* * Cl_Bindlist_f */static void Cl_BindList_f(void) { unsigned short i; for (i = K_FIRST; i < K_LAST; i++) if (ks->binds[i] && ks->binds[i][0]) Com_Print("%s /"%s/"/n", Cl_KeyNumToString(i), ks->binds[i]);}
开发者ID:darkshade9,项目名称:aq2w,代码行数:10,
示例21: R_InitConfig/* * @brief Populates the GL config structure by querying the implementation. */static void R_InitConfig(void) { memset(&r_config, 0, sizeof(r_config)); r_config.renderer_string = (const char *) glGetString(GL_RENDERER); r_config.vendor_string = (const char *) glGetString(GL_VENDOR); r_config.version_string = (const char *) glGetString(GL_VERSION); r_config.extensions_string = (const char *) glGetString(GL_EXTENSIONS); glGetIntegerv(GL_MAX_TEXTURE_UNITS, &r_config.max_texunits); glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &r_config.max_teximage_units); Com_Print(" Renderer: ^2%s^7/n", r_config.renderer_string); Com_Print(" Vendor: ^2%s^7/n", r_config.vendor_string); Com_Print(" Version: ^2%s^7/n", r_config.version_string);}
开发者ID:devilx4,项目名称:quake2world,代码行数:19,
示例22: Cl_Unbind_f/* * Cl_Unbind_f */static void Cl_Unbind_f(void) { int b; if (Cmd_Argc() != 2) { Com_Print("Usage: %s <key> : remove commands from a key/n", Cmd_Argv(0)); return; } b = Cl_StringToKeyNum(Cmd_Argv(1)); if (b == -1) { Com_Print("/"%s/" isn't a valid key/n", Cmd_Argv(1)); return; } Cl_Bind(b, "");}
开发者ID:darkshade9,项目名称:aq2w,代码行数:19,
示例23: Sv_HeartbeatMasters/* * @brief Sends heartbeat messages to master servers every 300s. */void Sv_HeartbeatMasters(void) { const char *string; int32_t i; if (!dedicated->value) return; // only dedicated servers report to masters if (!sv_public->value) return; // a private dedicated game if (!svs.initialized) // we're not up yet return; if (svs.next_heartbeat > quetoo.time) return; // not time to send yet svs.next_heartbeat = quetoo.time + HEARTBEAT_SECONDS * 1000; // send the same string that we would give for a status command string = Sv_StatusString(); // send to each master server for (i = 0; i < MAX_MASTERS; i++) { if (svs.masters[i].port) { Com_Print("Sending heartbeat to %s/n", Net_NetaddrToString(&svs.masters[i])); Netchan_OutOfBandPrint(NS_UDP_SERVER, &svs.masters[i], "heartbeat/n%s", string); } }}
开发者ID:EEmmanuel7,项目名称:quetoo,代码行数:32,
示例24: WriteAASFile/* * @brief */void WriteAASFile(void) { char path[MAX_QPATH]; file_t *f; StripExtension(bsp_name, path); g_strlcat(path, ".aas", sizeof(path)); if (!(f = Fs_OpenWrite(path))) { Com_Error(ERR_FATAL, "Couldn't open %s for writing/n", path); } Com_Print("Writing %d AAS nodes../n", d_aas.num_nodes); SwapAASFile(); d_bsp_header_t header; memset(&header, 0, sizeof(header)); header.ident = LittleLong(AAS_IDENT); header.version = LittleLong(AAS_VERSION); Fs_Write(f, &header, 1, sizeof(header)); d_bsp_lump_t *lump = &header.lumps[AAS_LUMP_NODES]; WriteLump(f, lump, d_aas.nodes, sizeof(d_aas_node_t) * d_aas.num_nodes); // rewrite the header with the populated lumps Fs_Seek(f, 0); Fs_Write(f, &header, 1, sizeof(header)); Fs_Close(f);}
开发者ID:EEmmanuel7,项目名称:quetoo,代码行数:36,
示例25: Cl_InitConsole/* * @brief Initializes the client console. */void Cl_InitConsole(void) { memset(&cl_console, 0, sizeof(cl_console)); cl_console.Append = Cl_Print; Con_AddConsole(&cl_console); file_t *file = Fs_OpenRead("history"); if (file) { Con_ReadHistory(&cl_console, file); Fs_Close(file); } else { Com_Debug("Couldn't read history"); } memset(&cl_chat_console, 0, sizeof(cl_chat_console)); cl_chat_console.level = PRINT_CHAT | PRINT_TEAM_CHAT; cl_draw_chat = Cvar_Get("cl_draw_chat", "1", 0, "Draw recent chat messages"); cl_draw_notify = Cvar_Get("cl_draw_notify", "1", 0, "Draw recent console activity"); cl_notify_lines = Cvar_Get("cl_console_notify_lines", "3", CVAR_ARCHIVE, NULL); cl_notify_time = Cvar_Get("cl_notify_time", "3.0", CVAR_ARCHIVE, NULL); cl_chat_lines = Cvar_Get("cl_chat_lines", "3", CVAR_ARCHIVE, NULL); cl_chat_time = Cvar_Get("cl_chat_time", "10.0", CVAR_ARCHIVE, NULL); Cmd_Add("cl_toggle_console", Cl_ToggleConsole_f, CMD_SYSTEM | CMD_CLIENT, "Toggle the console"); Cmd_Add("cl_message_mode", Cl_MessageMode_f, CMD_CLIENT, "Activate chat"); Cmd_Add("cl_message_mode_2", Cl_MessageMode2_f, CMD_CLIENT, "Activate team chat"); Com_Print("Client console initialized/n");}
开发者ID:chrisnew,项目名称:quetoo,代码行数:37,
示例26: GetThreadWork/* * GetThreadWork * * Return an iteration of work, updating progress when appropriate. */static int GetThreadWork(void){ int r; int f; ThreadLock(); if(thread_work.index == thread_work.count){ // done ThreadUnlock(); return -1; } // update work fraction and output progress if desired f = 10 * thread_work.index / thread_work.count; if(f != thread_work.fraction){ thread_work.fraction = f; if(thread_work.progress && !(verbose || debug)){ Com_Print("%i...", f); fflush(stdout); } } // assign the next work iteration r = thread_work.index; thread_work.index++; ThreadUnlock(); return r;}
开发者ID:darkshade9,项目名称:aq2w,代码行数:34,
示例27: Cl_CheckPredictionError/* * Cl_CheckPredictionError */void Cl_CheckPredictionError(void) { int frame; short delta[3]; vec3_t fdelta; if (!cl_predict->value || (cl.frame.ps.pmove.pm_flags & PMF_NO_PREDICTION)) return; // calculate the last usercmd_t we sent that the server has processed frame = cls.netchan.incoming_acknowledged; frame &= CMD_MASK; // compare what the server returned with what we had predicted it to be VectorSubtract(cl.frame.ps.pmove.origin, cl.predicted_origins[frame], delta); VectorScale(delta, 0.125, fdelta); // denormalize back to floats if (VectorLength(fdelta) > 256.0) { // assume a teleport or something VectorClear(cl.prediction_error); } else { // save the prediction error for interpolation if (cl_show_prediction_misses->value && (delta[0] || delta[1] || delta[2])) Com_Print("Prediction miss on %i: %3.2f %3.2f %3.2f/n", cl.frame.server_frame, fdelta[0], fdelta[1], fdelta[2]); VectorCopy(cl.frame.ps.pmove.origin, cl.predicted_origins[frame]); VectorCopy(fdelta, cl.prediction_error); }}
开发者ID:darkshade9,项目名称:aq2w,代码行数:32,
注:本文中的Com_Print函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ Com_Printf函数代码示例 C++ Com_Milliseconds函数代码示例 |