/** * @sa CL_Shutdown * @sa CL_InitAfter */ void CL_Init (void) { /* i18n through gettext */ char languagePath[MAX_OSPATH]; cvar_t* fs_i18ndir; isdown = false; if (sv_dedicated->integer) return; /* nothing running on the client */ OBJZERO(cls); fs_i18ndir = Cvar_Get("fs_i18ndir", "", 0, "System path to language files"); /* i18n through gettext */ setlocale(LC_ALL, "C"); setlocale(LC_MESSAGES, ""); /* use system locale dir if we can't find in gamedir */ if (fs_i18ndir->string[0] != '\0') Q_strncpyz(languagePath, fs_i18ndir->string, sizeof(languagePath)); else #ifdef LOCALEDIR Com_sprintf(languagePath, sizeof(languagePath), LOCALEDIR); #else Com_sprintf(languagePath, sizeof(languagePath), "%s/" BASEDIRNAME "/i18n/", FS_GetCwd()); #endif Com_DPrintf(DEBUG_CLIENT, "...using mo files from %s\n", languagePath); bindtextdomain(TEXT_DOMAIN, languagePath); bind_textdomain_codeset(TEXT_DOMAIN, "UTF-8"); /* load language file */ textdomain(TEXT_DOMAIN); CL_InitMemPools(); /* all archived variables will now be loaded */ Con_Init(); CIN_Init(); VID_Init(); SCR_DrawLoadingScreen(false, 0); S_Init(); SCR_Init(); CL_InitLocal(); Irc_Init(); CL_ViewInit(); CL_ClearState(); /* cvar feedback */ for (const cvar_t* var = Cvar_GetFirst(); var; var = var->next) { if (var->flags & CVAR_R_CONTEXT) Cvar_RegisterChangeListener(var->name, CL_RContextCvarChange); if (var->flags & CVAR_R_IMAGES) Cvar_RegisterChangeListener(var->name, CL_RImagesCvarChange); } }
/** * @brief Callback every time the parent window is opened (pushed into the active window stack) */ static void UI_CvarListenerNodeBind (uiNode_t* node) { cvarChangeListener_t* l; l = Cvar_RegisterChangeListener(node->name, UI_CvarListenerNodeCallback); if (l == nullptr) { Com_Printf("Node %s is not binded: cvar %s not found\n", UI_GetPath(node), node->name); return; } if (LIST_GetPointer(static_cast<linkedList_t*>(l->data), node) == nullptr) { LIST_AddPointer(reinterpret_cast<linkedList_t**>(&l->data), node); } }
static void R_RegisterSystemVars (void) { const cmdList_t *commands; r_driver = Cvar_Get("r_driver", "", CVAR_ARCHIVE | CVAR_R_CONTEXT, "You can define the opengl driver you want to use - empty if you want to use the system default"); r_drawentities = Cvar_Get("r_drawentities", "1", 0, "Draw the local entities"); r_drawworld = Cvar_Get("r_drawworld", "1", 0, "Draw the world brushes"); r_isometric = Cvar_Get("r_isometric", "0", CVAR_ARCHIVE, "Draw the world in isometric mode"); r_nocull = Cvar_Get("r_nocull", "0", 0, "Don't perform culling for brushes and entities"); r_anisotropic = Cvar_Get("r_anisotropic", "1", CVAR_ARCHIVE); r_texture_lod = Cvar_Get("r_texture_lod", "0", CVAR_ARCHIVE); r_screenshot_format = Cvar_Get("r_screenshot_format", "jpg", CVAR_ARCHIVE, "png, jpg or tga are valid screenshot formats"); r_screenshot_jpeg_quality = Cvar_Get("r_screenshot_jpeg_quality", "75", CVAR_ARCHIVE, "jpeg quality in percent for jpeg screenshots"); r_threads = Cvar_Get("r_threads", "0", CVAR_ARCHIVE, "Activate threads for the renderer"); r_materials = Cvar_Get("r_materials", "1", CVAR_ARCHIVE, "Activate material subsystem"); r_default_specular = Cvar_Get("r_default_specular", "0.2", CVAR_R_CONTEXT, "Default specular exponent"); r_default_hardness = Cvar_Get("r_default_hardness", "0.2", CVAR_R_CONTEXT, "Default specular brightness"); Cvar_RegisterChangeListener("r_default_specular", R_UpdateDefaultMaterial); Cvar_RegisterChangeListener("r_default_hardness", R_UpdateDefaultMaterial); r_checkerror = Cvar_Get("r_checkerror", "0", CVAR_ARCHIVE, "Check for opengl errors"); r_shadows = Cvar_Get("r_shadows", "1", CVAR_ARCHIVE, "Multiplier for the alpha of the shadows"); r_stencilshadows = Cvar_Get("r_stencilshadows", "0", CVAR_ARCHIVE, "Activate or deactivate stencil shadows"); r_maxtexres = Cvar_Get("r_maxtexres", "2048", CVAR_ARCHIVE | CVAR_R_IMAGES, "The maximum texture resolution UFO should use"); r_texturemode = Cvar_Get("r_texturemode", "GL_LINEAR_MIPMAP_LINEAR", CVAR_ARCHIVE, "change the filtering and mipmapping for textures"); r_texturealphamode = Cvar_Get("r_texturealphamode", "GL_RGBA", CVAR_ARCHIVE); r_texturesolidmode = Cvar_Get("r_texturesolidmode", "GL_RGB", CVAR_ARCHIVE); r_wire = Cvar_Get("r_wire", "0", 0, "Draw the scene in wireframe mode"); r_showbox = Cvar_Get("r_showbox", "0", CVAR_ARCHIVE, "1=Shows model bounding box, 2=show also the brushes bounding boxes"); r_lightmap = Cvar_Get("r_lightmap", "0", CVAR_R_PROGRAMS, "Draw only the lightmap"); r_lightmap->modified = false; r_deluxemap = Cvar_Get("r_deluxemap", "0", CVAR_R_PROGRAMS, "Draw only the deluxemap"); r_deluxemap->modified = false; r_debug_normals = Cvar_Get("r_debug_normals", "0", CVAR_R_PROGRAMS, "Draw dot(normal, light_0 direction)"); r_debug_normals->modified = false; r_debug_tangents = Cvar_Get("r_debug_tangents", "0", CVAR_R_PROGRAMS, "Draw tangent, bitangent, and normal dotted with light dir as RGB espectively"); r_debug_tangents->modified = false; r_debug_lights = Cvar_Get("r_debug_lights", "0", CVAR_ARCHIVE, "Draw active light sources"); r_ext_texture_compression = Cvar_Get("r_ext_texture_compression", "0", CVAR_ARCHIVE | CVAR_R_CONTEXT); r_ext_nonpoweroftwo = Cvar_Get("r_ext_nonpoweroftwo", "1", CVAR_ARCHIVE, "Enable or disable the non power of two extension"); r_ext_s3tc_compression = Cvar_Get("r_ext_s3tc_compression", "1", CVAR_ARCHIVE, "Also see r_ext_texture_compression"); r_intel_hack = Cvar_Get("r_intel_hack", "1", CVAR_ARCHIVE, "Intel cards have activated texture compression and no shaders until this is set to 0"); r_vertexbuffers = Cvar_Get("r_vertexbuffers", "0", CVAR_ARCHIVE | CVAR_R_CONTEXT, "Controls usage of OpenGL Vertex Buffer Objects (VBO) versus legacy vertex arrays."); r_maxlightmap = Cvar_Get("r_maxlightmap", "2048", CVAR_ARCHIVE | CVAR_LATCH, "Reduce this value on older hardware"); Cvar_SetCheckFunction("r_maxlightmap", R_CvarCheckMaxLightmap); r_drawbuffer = Cvar_Get("r_drawbuffer", "GL_BACK"); r_swapinterval = Cvar_Get("r_swapinterval", "0", CVAR_ARCHIVE | CVAR_R_CONTEXT, "Controls swap interval synchronization (V-Sync). Values between 0 and 2"); r_multisample = Cvar_Get("r_multisample", "0", CVAR_ARCHIVE | CVAR_R_CONTEXT, "Controls multisampling (anti-aliasing). Values between 0 and 4"); r_warp = Cvar_Get("r_warp", "1", CVAR_ARCHIVE, "Activates or deactivates warping surface rendering"); r_shownormals = Cvar_Get("r_shownormals", "0", CVAR_ARCHIVE, "Show normals on bsp surfaces"); r_bumpmap = Cvar_Get("r_bumpmap", "1.0", CVAR_ARCHIVE | CVAR_R_PROGRAMS, "Activate bump mapping"); r_specular = Cvar_Get("r_specular", "1.0", CVAR_ARCHIVE, "Controls specular parameters"); r_hardness = Cvar_Get("r_hardness", "1.0", CVAR_ARCHIVE, "Hardness control for GLSL shaders (specular, bump, ...)"); r_parallax = Cvar_Get("r_parallax", "1.0", CVAR_ARCHIVE, "Controls parallax parameters"); r_fog = Cvar_Get("r_fog", "1", CVAR_ARCHIVE | CVAR_R_PROGRAMS, "Activate or deactivate fog"); r_flares = Cvar_Get("r_flares", "1", CVAR_ARCHIVE, "Activate or deactivate flares"); r_coronas = Cvar_Get("r_coronas", "1", CVAR_ARCHIVE, "Activate or deactivate coronas"); r_particles = Cvar_Get("r_particles", "1", 0, "Activate or deactivate particle rendering"); r_drawtags = Cvar_Get("r_drawtags", "0", 0, "Activate or deactivate tag rendering"); for (commands = r_commands; commands->name; commands++) Cmd_AddCommand(commands->name, commands->function, commands->description); }