Showing preview only (8,399K chars total). Download the full file or copy to clipboard to get everything.
Repository: ezQuake/ezquake-source
Branch: master
Commit: 7d97990f80ae
Files: 615
Total size: 7.9 MB
Directory structure:
gitextract_jn4z67cv/
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug-report.md
│ │ └── feature_request.md
│ └── workflows/
│ └── main.yml
├── .gitignore
├── .gitmodules
├── BUILD.md
├── CMakeLists.txt
├── CMakePresets.json
├── LICENSE
├── README.md
├── bootstrap.ps1
├── bootstrap.sh
├── build-linux.sh
├── cmake/
│ ├── AddResources.cmake
│ ├── CheckDependency.cmake
│ ├── FindSpeex.cmake
│ ├── FindSpeexDSP.cmake
│ ├── GitUtils.cmake
│ ├── ResourceCompiler.cmake
│ └── triplets/
│ ├── arm64-osx.cmake
│ ├── x64-mingw-static.cmake
│ ├── x64-osx.cmake
│ └── x86-mingw-static.cmake
├── dist/
│ ├── gen-release.sh
│ ├── linux/
│ │ ├── io.github.ezQuake.appdata.xml
│ │ └── io.github.ezQuake.desktop
│ ├── macOS/
│ │ ├── MacOSXBundleInfo.plist.in
│ │ ├── ezquake.entitlements.plist
│ │ └── ezquake.icns
│ └── windows/
│ └── ezQuake.rc.in
├── help_cmdline_params.json
├── help_commands.json
├── help_macros.json
├── help_variables.json
├── misc/
│ ├── appimage/
│ │ ├── appimage-manual_creation.sh
│ │ └── ezquake.appdata.xml.template
│ ├── cfg/
│ │ ├── cams.cfg
│ │ ├── cams.tcl
│ │ ├── eq260.cfg
│ │ ├── ezhud.cfg
│ │ ├── gfx_gl_eyecandy.cfg
│ │ ├── gfx_gl_faithful.cfg
│ │ ├── gfx_gl_fast.cfg
│ │ ├── gfx_gl_higheyecandy.cfg
│ │ ├── gfx_sw_default.cfg
│ │ ├── gfx_sw_fast.cfg
│ │ ├── how_to_use_these_files.txt
│ │ ├── hud_aas.cfg
│ │ ├── hud_berzerk.cfg
│ │ ├── hud_corner.cfg
│ │ ├── hud_dobbz.cfg
│ │ ├── hud_empezar.cfg
│ │ ├── hud_murdoc.cfg
│ │ ├── hud_senft.cfg
│ │ ├── hud_vleesh.cfg
│ │ ├── movement.cfg
│ │ ├── mvdhud_1on1.cfg
│ │ ├── mvdhud_2on2.cfg
│ │ ├── mvdhud_3on3.cfg
│ │ ├── mvdhud_4on4.cfg
│ │ ├── mvdhud_base.cfg
│ │ ├── mvdhud_base_2.cfg
│ │ ├── mvdhud_base_3.cfg
│ │ ├── mvdhud_base_4.cfg
│ │ ├── mvdhud_base_del.cfg
│ │ ├── mvdhud_base_other.cfg
│ │ ├── mvdhud_custom.cfg
│ │ ├── pingdump.cfg
│ │ ├── teamplay.cfg
│ │ └── teamtime.cfg
│ ├── pak.lst
│ └── sb/
│ ├── au-sv.txt
│ ├── cache/
│ │ └── empty
│ ├── check_sources.sh
│ ├── ctf.txt
│ ├── eu-4on4.txt
│ ├── eu-sv.txt
│ ├── global.txt
│ ├── na-sv.txt
│ ├── qizmo.txt
│ ├── sa-sv.txt
│ ├── sources.txt
│ ├── tf.txt
│ └── update_sources.bat
├── src/
│ ├── Ctrl.c
│ ├── Ctrl.h
│ ├── Ctrl_EditBox.c
│ ├── Ctrl_EditBox.h
│ ├── Ctrl_PageViewer.c
│ ├── Ctrl_PageViewer.h
│ ├── Ctrl_ScrollBar.c
│ ├── Ctrl_Tab.c
│ ├── Ctrl_Tab.h
│ ├── EX_FileList.c
│ ├── EX_FileList.h
│ ├── EX_browser.c
│ ├── EX_browser.h
│ ├── EX_browser_net.c
│ ├── EX_browser_pathfind.c
│ ├── EX_browser_ping.c
│ ├── EX_browser_qtvlist.c
│ ├── EX_browser_sources.c
│ ├── EX_qtvlist.c
│ ├── EX_qtvlist.h
│ ├── anorm_dots.h
│ ├── anorms.h
│ ├── bspfile.h
│ ├── cd_linux.c
│ ├── cd_null.c
│ ├── cd_win.c
│ ├── cdaudio.h
│ ├── central.c
│ ├── central.h
│ ├── cl_cam.c
│ ├── cl_cmd.c
│ ├── cl_demo.c
│ ├── cl_ents.c
│ ├── cl_input.c
│ ├── cl_main.c
│ ├── cl_multiview.c
│ ├── cl_nqdemo.c
│ ├── cl_parse.c
│ ├── cl_pred.c
│ ├── cl_screen.c
│ ├── cl_screenshot.c
│ ├── cl_skygroups.c
│ ├── cl_slist.c
│ ├── cl_slist.h
│ ├── cl_tent.c
│ ├── cl_view.c
│ ├── cl_view.h
│ ├── client.h
│ ├── cmd.c
│ ├── cmd.h
│ ├── cmdline_params.h
│ ├── cmdline_params_ids.h
│ ├── cmodel.c
│ ├── cmodel.h
│ ├── collision.c
│ ├── com_msg.c
│ ├── common.c
│ ├── common.h
│ ├── common_draw.c
│ ├── common_draw.h
│ ├── config_manager.c
│ ├── config_manager.h
│ ├── console.c
│ ├── console.h
│ ├── crc.c
│ ├── crc.h
│ ├── cvar.c
│ ├── cvar.h
│ ├── cvar_groups.h
│ ├── demo_controls.c
│ ├── demo_controls.h
│ ├── demo_spawnwarn.c
│ ├── demo_spawnwarn.h
│ ├── document_rendering.c
│ ├── document_rendering.h
│ ├── draw.h
│ ├── ez_button.c
│ ├── ez_button.h
│ ├── ez_controls.c
│ ├── ez_controls.h
│ ├── ez_label.c
│ ├── ez_label.h
│ ├── ez_listview.c
│ ├── ez_listview.h
│ ├── ez_listviewitem.c
│ ├── ez_listviewitem.h
│ ├── ez_scrollbar.c
│ ├── ez_scrollbar.h
│ ├── ez_scrollpane.c
│ ├── ez_scrollpane.h
│ ├── ez_slider.c
│ ├── ez_slider.h
│ ├── ez_window.c
│ ├── ez_window.h
│ ├── ezquake-icon.c
│ ├── fchecks.c
│ ├── fchecks.h
│ ├── fmod.c
│ ├── fmod.h
│ ├── fonts.c
│ ├── fonts.h
│ ├── fragstats.c
│ ├── fs.c
│ ├── fs.h
│ ├── g_public.h
│ ├── gl_aliasmodel.c
│ ├── gl_aliasmodel_md3.c
│ ├── gl_buffers.c
│ ├── gl_debug.c
│ ├── gl_drawcall_wrappers.c
│ ├── gl_framebuffer.c
│ ├── gl_framebuffer.h
│ ├── gl_local.h
│ ├── gl_misc.c
│ ├── gl_model.h
│ ├── gl_program.c
│ ├── gl_sdl.c
│ ├── gl_sprite3d.c
│ ├── gl_sprite3d.h
│ ├── gl_state.c
│ ├── gl_texture.c
│ ├── gl_texture.h
│ ├── gl_texture_functions.c
│ ├── gl_texture_internal.h
│ ├── glc_aliasmodel.c
│ ├── glc_aliasmodel_mesh.c
│ ├── glc_bloom.c
│ ├── glc_brushmodel.c
│ ├── glc_draw.c
│ ├── glc_framebuffer.c
│ ├── glc_lightmaps.c
│ ├── glc_local.h
│ ├── glc_main.c
│ ├── glc_matrix.c
│ ├── glc_matrix.h
│ ├── glc_md3.c
│ ├── glc_misc.c
│ ├── glc_particles.c
│ ├── glc_performance.c
│ ├── glc_sdl.c
│ ├── glc_sky.c
│ ├── glc_sprite3d.c
│ ├── glc_state.c
│ ├── glc_state.h
│ ├── glc_surf.c
│ ├── glc_turb_surface.c
│ ├── glc_vao.c
│ ├── glc_vao.h
│ ├── glc_warp.c
│ ├── glm_aliasmodel.c
│ ├── glm_brushmodel.c
│ ├── glm_brushmodel.h
│ ├── glm_draw.c
│ ├── glm_draw.h
│ ├── glm_framebuffer.c
│ ├── glm_lightmaps.c
│ ├── glm_local.h
│ ├── glm_main.c
│ ├── glm_md3.c
│ ├── glm_misc.c
│ ├── glm_particles.c
│ ├── glm_particles.h
│ ├── glm_performance.c
│ ├── glm_rmain.c
│ ├── glm_rsurf.c
│ ├── glm_sdl.c
│ ├── glm_sprite.c
│ ├── glm_sprite3d.c
│ ├── glm_state.c
│ ├── glm_texture_arrays.c
│ ├── glm_texture_arrays.h
│ ├── glm_vao.c
│ ├── glm_vao.h
│ ├── glsl/
│ │ ├── common.glsl
│ │ ├── constants.glsl
│ │ ├── draw_aliasmodel.fragment.glsl
│ │ ├── draw_aliasmodel.vertex.glsl
│ │ ├── draw_sprites.fragment.glsl
│ │ ├── draw_sprites.vertex.glsl
│ │ ├── draw_world.fragment.glsl
│ │ ├── draw_world.vertex.glsl
│ │ ├── fx_world_geometry.fragment.glsl
│ │ ├── fx_world_geometry.vertex.glsl
│ │ ├── glc/
│ │ │ ├── glc_aliasmodel_shadow.fragment.glsl
│ │ │ ├── glc_aliasmodel_shadow.vertex.glsl
│ │ │ ├── glc_aliasmodel_shell.fragment.glsl
│ │ │ ├── glc_aliasmodel_shell.vertex.glsl
│ │ │ ├── glc_aliasmodel_std.fragment.glsl
│ │ │ ├── glc_aliasmodel_std.vertex.glsl
│ │ │ ├── glc_caustics.fragment.glsl
│ │ │ ├── glc_caustics.vertex.glsl
│ │ │ ├── glc_draw_sprites.fragment.glsl
│ │ │ ├── glc_draw_sprites.vertex.glsl
│ │ │ ├── glc_hud_images.fragment.glsl
│ │ │ ├── glc_hud_images.vertex.glsl
│ │ │ ├── glc_post_process_screen.fragment.glsl
│ │ │ ├── glc_post_process_screen.vertex.glsl
│ │ │ ├── glc_sky.fragment.glsl
│ │ │ ├── glc_sky.vertex.glsl
│ │ │ ├── glc_turbsurface.fragment.glsl
│ │ │ ├── glc_turbsurface.vertex.glsl
│ │ │ ├── glc_world_drawflat.fragment.glsl
│ │ │ ├── glc_world_drawflat.vertex.glsl
│ │ │ ├── glc_world_secondpass.fragment.glsl
│ │ │ ├── glc_world_secondpass.vertex.glsl
│ │ │ ├── glc_world_textured.fragment.glsl
│ │ │ └── glc_world_textured.vertex.glsl
│ │ ├── hud_draw_circle.fragment.glsl
│ │ ├── hud_draw_circle.vertex.glsl
│ │ ├── hud_draw_image.fragment.glsl
│ │ ├── hud_draw_image.geometry.glsl
│ │ ├── hud_draw_image.vertex.glsl
│ │ ├── hud_draw_line.fragment.glsl
│ │ ├── hud_draw_line.vertex.glsl
│ │ ├── hud_draw_polygon.fragment.glsl
│ │ ├── hud_draw_polygon.vertex.glsl
│ │ ├── lighting.compute.glsl
│ │ ├── post_process_screen.fragment.glsl
│ │ ├── post_process_screen.vertex.glsl
│ │ ├── shared/
│ │ │ └── fxaa.h.glsl
│ │ ├── simple.fragment.glsl
│ │ ├── simple.vertex.glsl
│ │ ├── simple3d.fragment.glsl
│ │ └── simple3d.vertex.glsl
│ ├── hash.c
│ ├── hash.h
│ ├── help.c
│ ├── help.h
│ ├── help_files.c
│ ├── host.c
│ ├── hud.c
│ ├── hud.h
│ ├── hud_262.c
│ ├── hud_ammo.c
│ ├── hud_armor.c
│ ├── hud_autoid.c
│ ├── hud_centerprint.c
│ ├── hud_clock.c
│ ├── hud_common.c
│ ├── hud_common.h
│ ├── hud_editor.c
│ ├── hud_editor.h
│ ├── hud_face.c
│ ├── hud_frags.c
│ ├── hud_gamesummary.c
│ ├── hud_groups.c
│ ├── hud_guns.c
│ ├── hud_health.c
│ ├── hud_items.c
│ ├── hud_net.c
│ ├── hud_performance.c
│ ├── hud_qtv.c
│ ├── hud_radar.c
│ ├── hud_scores.c
│ ├── hud_speed.c
│ ├── hud_teaminfo.c
│ ├── hud_tracking.c
│ ├── hud_weapon_stats.c
│ ├── ignore.c
│ ├── ignore.h
│ ├── image.c
│ ├── image.h
│ ├── in_osx.h
│ ├── in_osx.m
│ ├── in_sdl2.c
│ ├── input.h
│ ├── irc.c
│ ├── irc.h
│ ├── irc_filter.c
│ ├── irc_filter.h
│ ├── keys.c
│ ├── keys.h
│ ├── linux_signals.c
│ ├── localtime.h
│ ├── localtime_posix.c
│ ├── localtime_win.c
│ ├── logging.c
│ ├── logging.h
│ ├── macro_definitions.h
│ ├── macro_ids.h
│ ├── match_tools.c
│ ├── match_tools_challenge.c
│ ├── mathlib.c
│ ├── mathlib.h
│ ├── md4.c
│ ├── menu.c
│ ├── menu.h
│ ├── menu_demo.c
│ ├── menu_demo.h
│ ├── menu_ingame.c
│ ├── menu_ingame.h
│ ├── menu_multiplayer.c
│ ├── menu_multiplayer.h
│ ├── menu_options.c
│ ├── menu_options.h
│ ├── menu_proxy.c
│ ├── menu_proxy.h
│ ├── modelgen.h
│ ├── movie.c
│ ├── movie.h
│ ├── movie_avi.c
│ ├── movie_avi.h
│ ├── mvd_autotrack.c
│ ├── mvd_utils.c
│ ├── mvd_utils.h
│ ├── mvd_utils_common.h
│ ├── mvd_xmlstats.c
│ ├── net.c
│ ├── net.h
│ ├── net_chan.c
│ ├── parser.c
│ ├── parser.h
│ ├── particles_classic.h
│ ├── pmove.c
│ ├── pmove.h
│ ├── pmovetst.c
│ ├── pr2.h
│ ├── pr2_cmds.c
│ ├── pr2_edict.c
│ ├── pr2_exec.c
│ ├── pr_cmds.c
│ ├── pr_comp.h
│ ├── pr_edict.c
│ ├── pr_exec.c
│ ├── progdefs.h
│ ├── progs.h
│ ├── q_platform.h
│ ├── q_shared.c
│ ├── q_shared.h
│ ├── qmb_particles.h
│ ├── qsound.h
│ ├── qtv.c
│ ├── qtv.h
│ ├── quakedef.h
│ ├── qwsvdef.h
│ ├── r_aliasmodel.c
│ ├── r_aliasmodel.h
│ ├── r_aliasmodel_md3.c
│ ├── r_aliasmodel_md3.h
│ ├── r_aliasmodel_mesh.c
│ ├── r_aliasmodel_skins.c
│ ├── r_atlas.c
│ ├── r_bloom.c
│ ├── r_brushmodel.c
│ ├── r_brushmodel.h
│ ├── r_brushmodel_bspx.c
│ ├── r_brushmodel_load.c
│ ├── r_brushmodel_sky.c
│ ├── r_brushmodel_sky.h
│ ├── r_brushmodel_surfaces.c
│ ├── r_brushmodel_textures.c
│ ├── r_brushmodel_warpsurfaces.c
│ ├── r_brushmodel_warpsurfaces_sin.h
│ ├── r_buffers.c
│ ├── r_buffers.h
│ ├── r_chaticons.c
│ ├── r_chaticons.h
│ ├── r_draw.c
│ ├── r_draw.h
│ ├── r_draw_charset.c
│ ├── r_draw_circle.c
│ ├── r_draw_image.c
│ ├── r_draw_line.c
│ ├── r_draw_polygon.c
│ ├── r_framestats.h
│ ├── r_hud.c
│ ├── r_lighting.h
│ ├── r_lightmaps.c
│ ├── r_lightmaps.h
│ ├── r_lightmaps_internal.h
│ ├── r_local.h
│ ├── r_main.c
│ ├── r_matrix.c
│ ├── r_matrix.h
│ ├── r_misc.c
│ ├── r_misc.cpp
│ ├── r_model.c
│ ├── r_netgraph.c
│ ├── r_palette.c
│ ├── r_part.c
│ ├── r_part_trails.c
│ ├── r_particles_qmb.c
│ ├── r_particles_qmb.h
│ ├── r_particles_qmb_spawn.c
│ ├── r_particles_qmb_trails.c
│ ├── r_performance.c
│ ├── r_performance.h
│ ├── r_program.h
│ ├── r_refrag.c
│ ├── r_renderer.h
│ ├── r_renderer_structure.h
│ ├── r_rlight.c
│ ├── r_rmain.c
│ ├── r_rmisc.c
│ ├── r_shared.h
│ ├── r_sprite3d.c
│ ├── r_sprite3d.h
│ ├── r_sprite3d_internal.h
│ ├── r_sprites.c
│ ├── r_state.h
│ ├── r_states.c
│ ├── r_texture.c
│ ├── r_texture.h
│ ├── r_texture_cvars.c
│ ├── r_texture_internal.h
│ ├── r_texture_load.c
│ ├── r_texture_util.c
│ ├── r_trace.h
│ ├── r_vao.h
│ ├── render.h
│ ├── resource.h
│ ├── rulesets.c
│ ├── rulesets.h
│ ├── sbar.c
│ ├── sbar.h
│ ├── screen.h
│ ├── server.h
│ ├── settings.h
│ ├── settings_page.c
│ ├── settings_page.h
│ ├── sha1.c
│ ├── sha1.h
│ ├── sha3.c
│ ├── sha3.h
│ ├── skin.c
│ ├── snd_main.c
│ ├── snd_mem.c
│ ├── snd_mix.c
│ ├── snd_qizmo.c
│ ├── snd_voip.c
│ ├── spritegn.h
│ ├── stats_grid.c
│ ├── stats_grid.h
│ ├── sv_ccmds.c
│ ├── sv_demo.c
│ ├── sv_demo_misc.c
│ ├── sv_demo_qtv.c
│ ├── sv_ents.c
│ ├── sv_init.c
│ ├── sv_log.h
│ ├── sv_login.c
│ ├── sv_main.c
│ ├── sv_master.c
│ ├── sv_mod_frags.c
│ ├── sv_mod_frags.h
│ ├── sv_move.c
│ ├── sv_nchan.c
│ ├── sv_null.c
│ ├── sv_phys.c
│ ├── sv_save.c
│ ├── sv_send.c
│ ├── sv_sys_unix.c
│ ├── sv_sys_win.c
│ ├── sv_user.c
│ ├── sv_world.c
│ ├── sv_world.h
│ ├── sys.h
│ ├── sys_osx.m
│ ├── sys_posix.c
│ ├── sys_sdl2.c
│ ├── sys_win.c
│ ├── teamplay.c
│ ├── teamplay.h
│ ├── teamplay_locfiles.c
│ ├── textencoding.c
│ ├── textencoding.h
│ ├── tp_msgs.c
│ ├── tp_msgs.h
│ ├── tp_triggers.c
│ ├── tp_triggers.h
│ ├── tr_types.h
│ ├── utils.c
│ ├── utils.h
│ ├── version.c
│ ├── version.h
│ ├── vfs.h
│ ├── vfs_doomwad.c
│ ├── vfs_gzip.c
│ ├── vfs_mmap.c
│ ├── vfs_os.c
│ ├── vfs_pak.c
│ ├── vfs_tar.c
│ ├── vfs_tar.h
│ ├── vfs_tcp.c
│ ├── vfs_zip.c
│ ├── vid.h
│ ├── vid_common_gl.c
│ ├── vid_sdl2.c
│ ├── vid_vsync.c
│ ├── vk_blending.c
│ ├── vk_buffers.c
│ ├── vk_debug.c
│ ├── vk_draw.c
│ ├── vk_graphics_pipeline.c
│ ├── vk_instance.c
│ ├── vk_lightmaps.c
│ ├── vk_local.h
│ ├── vk_main.c
│ ├── vk_md3.c
│ ├── vk_misc.c
│ ├── vk_physical_devices.c
│ ├── vk_renderpass.c
│ ├── vk_sdl.c
│ ├── vk_swapchain.c
│ ├── vk_vao.c
│ ├── vk_vao.h
│ ├── vk_window_surface.c
│ ├── vm.c
│ ├── vm.h
│ ├── vm_interpreted.c
│ ├── vm_local.h
│ ├── vm_x86.c
│ ├── vx_camera.c
│ ├── vx_camera.h
│ ├── vx_coronas.c
│ ├── vx_stuff.c
│ ├── vx_stuff.h
│ ├── vx_tracker.c
│ ├── vx_tracker.h
│ ├── vx_vertexlights.c
│ ├── vx_vertexlights.h
│ ├── wad.c
│ ├── wad.h
│ ├── winquake.rc
│ ├── xsd.c
│ ├── xsd.h
│ ├── xsd_document.c
│ ├── xsd_document.h
│ ├── zone.c
│ └── zone.h
└── vcpkg.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/ISSUE_TEMPLATE/bug-report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: 'BUG: <description>'
labels: ''
assignees: ''
---
Please search for existing issues and check for potential duplicates before filing yours.
**ezQuake version:**
(Specify the Git commit hash if using a non-stable build - this is available through the `/version` command)
**OS/device including version:**
Specify GPU model, drivers, and the renderer (classic or modern) if graphics-related.
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
Also please attach your config (.cfg) file
**Additional context**
Add any other context about the problem here.
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: 'REQ: <description>'
labels: ''
assignees: ''
---
Please ensure that your request is predominantly client-based, and not better suited to being logged with the server or mod aspects of QuakeWorld (e.g. mvdsv or ktx)
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
**Impact on server or mods**
================================================
FILE: .github/workflows/main.yml
================================================
name: main
on:
push:
# Only build branches on push, tags will be handled by 'release' job.
branches:
- '**'
pull_request:
workflow_dispatch:
release:
types: [published]
jobs:
build:
strategy:
matrix:
include:
- os: windows-latest
configurePreset: msbuild-x64
buildPreset: msbuild-x64-release
name: ezQuake-windows-x64
artifact: "ezquake.exe"
container: null
- os: macos-latest
configurePreset: macos-arm64
buildPreset: macos-arm64-release
name: ezQuake-macOS-arm64
artifact: "ezQuake.zip"
packages: ["autoconf", "automake", "libtool"]
container: null
- os: macos-latest
configurePreset: macos-x64
buildPreset: macos-x64-release
name: ezQuake-macOS-x64
artifact: "ezQuake.zip"
packages: ["autoconf", "automake", "libtool"]
container: null
- os: ubuntu-latest
configurePreset: dynamic
buildPreset: dynamic-release
name: ezQuake-linux-x86_64
artifact: "ezQuake-x86_64.AppImage"
cflags: "-march=nehalem"
packages: ["build-essential", "ca-certificates", "cmake", "curl", "file", "git", "libcurl4-openssl-dev", "libexpat1-dev", "libfreetype-dev", "libfuse3-dev", "libjansson-dev", "libjpeg-dev", "libminizip-dev", "libpcre2-dev", "libpng-dev", "libsdl2-2.0-0", "libsdl2-dev", "libsndfile1-dev", "libspeex-dev", "libspeexdsp-dev", "ninja-build", "unzip"]
container:
image: debian:testing
options: --privileged
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
container: ${{ matrix.container }}
steps:
- name: Prepare Linux environment
run: |
apt-get -qq update && apt-get -qq install --no-install-recommends ${{ join(matrix.packages, ' ') }}
git config --global --add safe.directory $PWD
if: matrix.os == 'ubuntu-latest'
- name: Prepare macOS environment
run: brew install -q ${{ join(matrix.packages, ' ') }}
if: matrix.os == 'macos-latest'
- name: Check out code
uses: actions/checkout@v4
with:
submodules: true
# To get correct revision which is needed by server to detect certain client bugs
fetch-depth: 0
- name: Fetch upstream tags for version metadata
run: |
git remote add upstream https://github.com/QW-Group/ezquake-source.git
git fetch --tags --no-recurse-submodules upstream
if: github.repository != 'QW-Group/ezquake-source'
- name: Set library build type to release
shell: bash
run: |
# Hopefully overrideable via environment in the future. Done here as
# vcpkg is chainloaded before cmake, and doesn't seem to apply args.
# Avoids building both -dbg and -rel versions of static libraries.
for x in {cmake/triplets/*,vcpkg/triplets/{*,community/*}}; do
if [[ -f $x ]]; then
echo >> $x
echo 'set(VCPKG_BUILD_TYPE release)' >> $x
fi
done
if: matrix.os != 'ubuntu-latest'
- uses: lukka/get-cmake@latest
with:
cmakeVersion: "~3.28.0"
if: matrix.os != 'ubuntu-latest'
- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
if: matrix.os != 'ubuntu-latest'
- name: Run CMake
uses: lukka/run-cmake@v10
with:
configurePreset: ${{ matrix.configurePreset }}
buildPreset: ${{ matrix.buildPreset }}
env:
CFLAGS: ${{ matrix.cflags }}
- name: Generate Linux AppImage
run: |
export EXECUTABLE=$(echo build-${{ matrix.configurePreset }}/Release/ezquake*)
./misc/appimage/appimage-manual_creation.sh
mv ezQuake-x86_64.AppImage build-${{ matrix.configurePreset }}/Release/
if: matrix.os == 'ubuntu-latest'
- name: Preserve macOS executable bit
run: |
zip -r -9 ezQuake.zip ezQuake.app
working-directory: build-${{ matrix.configurePreset }}/Release
if: matrix.os == 'macos-latest'
- name: Archive client
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.name }}
path: |
build-${{ matrix.configurePreset }}/Release/${{ matrix.artifact }}
compression-level: 9
macos-universal:
needs: build
name: "ezQuake-macOS-universal"
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Download ARM64 Build
uses: actions/download-artifact@v4
with:
name: ezQuake-macOS-arm64
path: artifacts/arm64
- name: Download Intel Build
uses: actions/download-artifact@v4
with:
name: ezQuake-macOS-x64
path: artifacts/x64
- name: Create Universal Binary
run: |
(cd artifacts/x64 && unzip -qq ezQuake.zip) && (cd artifacts/arm64 && unzip -qq ezQuake.zip)
cp -r artifacts/arm64/ezQuake.app .
lipo -create -output ezQuake.app/Contents/MacOS/ezQuake \
artifacts/x64/ezQuake.app/Contents/MacOS/ezQuake \
artifacts/arm64/ezQuake.app/Contents/MacOS/ezQuake
codesign --force --sign - --entitlements dist/macOS/ezquake.entitlements.plist --options runtime --timestamp ezQuake.app
zip -r ezQuake-macOS-universal.zip ezQuake.app
- name: Delete macOS arch specific builds
uses: geekyeggo/delete-artifact@v5
with:
name: |
ezQuake-macOS-arm64
ezQuake-macOS-x64
- name: Upload Build Artifact
uses: actions/upload-artifact@v4
with:
name: ezQuake-macOS-universal
path: ezQuake-macOS-universal.zip
compression-level: 9
upload:
if: github.repository == 'QW-group/ezquake-source' && ((github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'release')
needs: [macos-universal]
runs-on: ubuntu-latest
steps:
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Checkout
uses: actions/checkout@v4
with:
path: ezquake
submodules: true
# To get correct revision when generating version.json for source release tarball
fetch-depth: 0
if: github.event_name == 'release'
- name: Get release date
run: |
REF_NAME="${{ github.ref_name || github.event.release.tag_name }}"
RELEASE_DATE=$(git log -1 --format=%cI "$REF_NAME")
echo "RELEASE_DATE=$RELEASE_DATE" >> $GITHUB_ENV
working-directory: ezquake
if: github.event_name == 'release'
- name: Collect GitHub release artifacts
run: |
set -e
dist_dir="${GITHUB_WORKSPACE}/dist"
mkdir "${dist_dir}"
# Reset timestamp to time of commit before compression
find "artifacts" -type f -exec touch --date="${RELEASE_DATE}" {} +
# Set executable bit for all files
find "artifacts" -type f -exec chmod 755 {} +
# Recompress before attaching to release, avoiding double-zip of macOS
(
cd artifacts
for target in *; do
if ls "${target}"/*.zip &> /dev/null; then
cp "${target}"/*.zip "${dist_dir}/${target}.zip"
else
(cd "${target}"; zip -o -9 "${dist_dir}/${target}.zip" *)
fi
done;
)
# Generate source release with submodule, version.json etc
(
cd "${GITHUB_WORKSPACE}/ezquake"
dist/gen-release.sh
mv *.tar.gz "${dist_dir}/"
)
find "${dist_dir}" -type f -execdir sha256sum {} \; > "checksums.txt"
mv "checksums.txt" "${dist_dir}/"
# Reset timestamp to time of commit for all release artifacts
find "${dist_dir}" -type f -exec touch --date="${RELEASE_DATE}" {} +
echo "Release artifacts:"
ls -lR "${dist_dir}"
echo "Checksums:"
cat "${dist_dir}/checksums.txt"
echo "GITHUB_ARTIFACTS=$dist_dir" >> $GITHUB_ENV
if: github.event_name == 'release'
- name: Attach artifacts to GitHub release
uses: softprops/action-gh-release@v2
with:
files: ${{ env.GITHUB_ARTIFACTS }}/*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: github.event_name == 'release'
- name: Prepare Upload Environemnt
run: |
sudo apt-get -qq update
sudo apt-get -qq --no-install-recommends install openssh-client
- name: Setup SSH
run: |
ssh-agent -a $SSH_AUTH_SOCK > /dev/null
ssh-add - <<< "${{ secrets.SSH_PRIVATE_KEY }}"
env:
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
- name: Prepare upload to builds.quakeworld.nu
run: |
# Build file structure for uploading
# snapshots:
# upload/snapshots/latest/$os/$arch/$filename
# upload/snapshots/$os/$arch/$prefix_$filename
# releases:
# upload/releases/latest/$os/$arch/$filename
# upload/releases/$tag/$os/$arch/$filename
set -e
upload_dir="${GITHUB_WORKSPACE}/upload"
if [[ $GITHUB_REF == refs/tags/* ]]; then
main_dir="${upload_dir}/releases/${{ github.ref_name }}"
latest_dir="${upload_dir}/releases/latest"
prefix=""
upload_prefix="releases"
else
main_dir="${upload_dir}/snapshots"
latest_dir="${upload_dir}/snapshots/latest"
date=$(TZ="Europe/Amsterdam" date "+%Y%m%d-%H%M%S")
prefix="${date}_${GITHUB_SHA::7}_"
upload_prefix="snapshots"
fi
# Collect upload structure
for artifact in artifacts/*/*; do
artifact_file=$(basename "${artifact}")
artifact_dir=$(dirname "${artifact}")
IFS='-' read -r ezq os arch <<< "${artifact_dir}"
mkdir -p "${main_dir}/${os}/${arch}" "${latest_dir}/${os}/${arch}"
cp "${artifact}" "${main_dir}/${os}/${arch}/${prefix}${artifact_file}"
cp "${artifact}" "${latest_dir}/${os}/${arch}/${artifact_file}"
done
# Set executable bit for all files
find "${upload_dir}" -type f -exec chmod 755 {} +
# Generate checksums
for artifact in $(find "${upload_dir}" -type f); do
artifact_file=$(basename "${artifact}")
artifact_dir=$(dirname "${artifact}")
(cd "${artifact_dir}" && md5sum "${artifact_file}" > "${artifact_file}.md5")
done
# Reset timestamp to time of commit
find "${upload_dir}" -type f -exec touch --date="${RELEASE_DATE}" {} +
echo "Upload artifacts:"
ls -lR "${upload_dir}"
echo "UPLOAD_PREFIX=${upload_prefix}" >> $GITHUB_ENV
- name: Upload to builds.quakeworld.nu
env:
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
run: |
sftp -rp -o 'StrictHostKeyChecking no' -o 'UserKnownHostsFile /dev/null' -P ${{ secrets.SFTP_PORT }} ${{ secrets.SFTP_USERNAME }}@${{ secrets.SFTP_HOST }}:/${{ env.UPLOAD_PREFIX }} <<< $'put -rp upload/${{ env.UPLOAD_PREFIX }}/*'
================================================
FILE: .gitignore
================================================
ezquake
ezquake.exe
ezquake-*.exe
ezquake-*-*
ezQuake.aps
*.vcxproj*.user
*.vcxproj*.cache
SysPrintf.log
.ezquake/
.vs
/.vscode
*.json.c
*.glsl.c
vcpkg_installed/
src/.msversion.h
/build*/
!.gitignore
# Local documentation files (not for repository)
CR*.md
EZQUAKE_HUD_*.md
TRACKER_*.md
================================================
FILE: .gitmodules
================================================
[submodule "src/qwprot"]
path = src/qwprot
url = https://github.com/QW-Group/qwprot.git
branch = master
[submodule "vcpkg"]
path = vcpkg
url = https://github.com/Microsoft/vcpkg
================================================
FILE: BUILD.md
================================================
# Compiling ezQuake
## Introduction
To provide a consistent build on Windows, Linux, macOS and BSD across various compilers,
dynamic and static linking, all described in one single file, [CMake][cmake] is used, with
the help of [vcpkg][vcpkg] to support static linking.
In its most basic form on Linux/BSD, with dynamic linking, a build can be invoked as follows:
```shell
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release # Configuration phase
make -j $(nproc) # Build phase
```
This will locate all system-wide dependencies and show a clear message if a mandatory
dependency is not installed. Check the output to see if it matches your expectations
in regard to optional dependencies.
When configure phase passes, the build phase will produce a dynamically linked binary.
The resulting binary can be found in the build directory at `build/ezquake-linux-x86_64`.
The default mode of compilation is to not show the full command line, only errors and
warnings. To enable verbose mode, set `CMAKE_VERBOSE_MAKEFILE` to `ON`.
While CMake can be configured via `CMAKE_C_CFLAGS`, it also supports picking up `CFLAGS`
from the aptly named environment variable `CFLAGS`.
The ezQuake build also declares a few options on its own to customize the resulting executable.
Unfortunately CMake CLI has no built-in command to list them, so check `CMakeLists.txt`:
```shell
grep -E ^option CMakeLists.txt
```
Putting the above customizations to work may look like this:
```shell
export CFLAGS=-march=native
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=ON -DRENDERER_CLASSIC_OPENGL=OFF
make -j $(nproc)
```
CMake caches as much as possible when the build is initialized to allow for fast iteration
when developing. Should an option not activate as expected, removing the build directory
and starting over is always a failsafe. Static dependencies are [cached elsewhere](#Caches)
and will not have to be rebuilt if only the build directory is removed.
## CMake Presets
[CMake presets][cmake-presets] can be seen as aliases that associates a number of build
settings to a name. While this may not add much value for the trivial dynamically linked
Linux/BSD build, the presets do add some desirable conveniences for other targets as is
seen in later sections.
There are two types of presets relevant to the ezQuake build:
* Configuration Presets
* Build Presets
The available presets can be listed via:
```shell
$ cmake --list-presets
Available configure presets:
"mingw64-x64-cross"
"mingw64-i686-cross"
...
$ cmake --build --list-presets
Available build presets:
"msbuild-x64-debug" - Build msbuild-x64 debug
"msbuild-x64-release" - Build msbuild-x64 release
"msbuild-x64-relwithdebinfo" - Build msbuild-x64 release with debug info
...
```
These can be invoked, regardless of underlying build system, via:
```shell
# Creates build-dynamic directory, and initializes the build
cmake --preset dynamic
# Builds executable in build-dynamic/Release/ezquake
cmake --build --preset dynamic-release
# ...or if skipping the build preset, pass path to build directory instead
camke --build build-dynamic --config Release
```
The build directory is by convention always called `build-${presetName}` when using presets.
All declared presets are of type _Multi-Config_ so they're able to produce _Debug_,
_Release_, and _RelWithDebInfo_ variants from the same configuration.
While build presets are somewhat optional when building from the terminal, they add
convenience when working from within an editor with CMake support.
## Static linking
Static builds are supported on Windows, Linux and macOS and offloads building of
dependencies to [vcpkg][vcpkg]. The CMake configuration is agnostic to dynamic or
static linking and enabling of static linking happens via parametrizing the CMake
invocation with the vcpkg toolchain. This is done automatically by using any of the
Windows, macOS, or the static presets.
Before starting a static build, vcpkg needs to be initialized. This is done by invoking
`bootstrap.sh` on *nix-like platforms. Depending on which [type of build](#Visual-Studio)
is used on Windows, the `bootstrap.ps1` PowerShell script does the equivalent.
The invocation of a Linux static build is near identical to a dynamic build:
```shell
./bootstrap.sh
cmake --preset static
cmake --build build-static --config Release
```
If you haven't compiled a static version before, or if the project has updated the vcpkg
repository version since last build, this will take a few minutes.
Note that for Linux/BSD builds, you have to install the appropriate X11/Wayland development
headers for the static build to work with each of those targets.
## Cross-Compilation to Windows
Any *nix environment can produce a Windows build via:
```shell
./bootstrap.sh
cmake --preset mingw64-x64-cross
cmake --build build-mingw64-x64-cross --config Release
```
Be sure to install mingw-w64 before running the above commands. A native compiler is also needed as parts of the vcpkg
build need to execute on the host.
## Visual Studio
### CMake Mode
Microsoft is highly invested in both CMake and vcpkg, so native support in Visual Studio has
existed for a number of years by now. Importing the project in Visual Studio 17 detects the
CMake and vcpkg combination and builds the dependencies.
Once done, the build presets will be listed in the _Configurations_ drop down. The `msbuild-*`
or `ninja-msvc-*` related build presets are typically a good fit.
To run ezQuake against a specific game directory, go via menu to _Debug_ > _Debug and Launch
Settings for ezquake_ which will open up the `launch_schema.json` file where you introduce
`currentDir` similar to the following:
```json
{
"version": "...",
"defaults": {},
"configurations": [
{
"type": "...",
"currentDir": "C:\\Quake"
}
]
}
```
### Visual Studio Solution Mode
As the Visual Studio Solution is generated first after CMake configuration phase has finished,
the `./bootstrap.ps1` PowerShell script must be invoked the first time to initialize vcpkg.
```shell
powershell -File bootstrap.ps1
cmake --preset msbuild-x64
```
Once done you will have a Visual Studio Solution in `build-msbuild-x64/ezquake.sln`.
Any compilation changes that should be upstreamed must be updated in `CMakeLists.txt`.
During the configuration phase, if a `ezquake.vcxproj.user` file exists in the top directory,
this will be copied to the build directory next to the Visual Studio Solution to allow for
persisting custom settings as the solution is generated.
## Xcode / macOS
To simplify bundling static linking is used to build ezQuake on macOS, so start off by
invoking `bootstrap.sh` first. When initializing for example the `macos-arm64` preset
an Xcode project will be produced at `build-macos-arm64/ezquake.xcodeproj` with similar
structure to that of Visual Studio.
The same preset is also used when building via the terminal:
```
./bootstrap.sh
cmake --preset macos-arm64
cmake --build build-macos-arm64 --config Release
```
This will produce `ezQuake.app` under `build-macos-arm64/Release/ezQuake.app` by invoking
`xcodebuild` behind the scenes to do the actual building and bundling.
## Caches
If you don't intend to build ezQuake again and want to reclaim some space, you can find the shared vcpkg cache at:
* All platforms
* `./vcpkg/buildtrees`
* *nix
* `~/.cache/vcpkg/`
* Windows
* `c:\Users\$UserName\AppData\Local\vcpkg`
## Developer Tidbits
### Adding new files to the project
In [CMakeLists.txt](CMakeLists.txt) source files are categorized into their approximate use
cases (client, server, common, sys, etc), and this also applies to header files. The reason
for this is to serve editors with the correct context, and if generating either a Xcode or
Visual Studio project this categorization is also visualized in the project tree view.
Looking forward, this will allow adding a `ezquake-sv` target by just reusing the relevant
subset of source files.
### Managing static dependencies
Vcpkg is used in [manifest mode][vcpkg-manifest], with the dependencies declared in `vcpkg.json`.
While it's possible to lock dependencies at a specific version, this is not used today. Instead
the vcpkg submodule dictates the set of dependency versions the project relies on.
If adding a new mandatory dependency that static versions of ezQuake should use, first find it
at [vcpkg.io][vcpkg-list], and if missing, read up on [overlay ports][vcpkg-overlay].
### Target platforms
If a specific platform requires customizations to how the static dependencies are built a [_triplet_][vcpkg-triplets]
for this platform can be introduced. An example of such an override is the [x64 MinGW](cmake/triplets/x64-mingw-static.cmake)
triplet that adds `-march=nehalem` when building dependencies.
[cmake]: https://cmake.org/
[cmake-presets]: https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html
[cmake-cflags]: https://cmake.org/cmake/help/latest/envvar/CFLAGS.html
[vcpkg]: https://learn.microsoft.com/en-us/vcpkg/
[vcpkg-manifest]: https://learn.microsoft.com/en-us/vcpkg/concepts/manifest-mode
[vcpkg-list]: https://vcpkg.io/en/
[vcpkg-overlay]: https://learn.microsoft.com/en-us/vcpkg/concepts/overlay-ports
[vcpkg-triplets]: https://learn.microsoft.com/en-us/vcpkg/users/triplets
[vscmake]: https://learn.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio
================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.22)
project(ezquake C)
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
enable_language(OBJC)
endif()
option(USE_SYSTEM_LIBS "Use system libraries instead of VCPKG" ON)
option(RENDERER_MODERN_OPENGL "Enable modern OpenGL renderer" ON)
option(RENDERER_CLASSIC_OPENGL "Enable classic OpenGL renderer" ON)
option(DEBUG_MEMORY_ALLOCATIONS "Enable debug prints for memory allocations" OFF)
option(ENABLE_SANDBOX "Enables application sandboxing (macOS)" ON)
option(ENABLE_LTO "Enable Link Time Optimization" ON)
if(NOT RENDERER_CLASSIC_OPENGL AND NOT RENDERER_MODERN_OPENGL)
message(FATAL_ERROR "At least one of RENDERER_CLASSIC_OPENGL or RENDERER_MODERN_OPENGL must be enabled.")
endif()
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake)
include(GitUtils)
include(AddResources)
include(CheckIPOSupported)
include(CheckCCompilerFlag)
include(CheckDependency)
git_refresh_submodules()
git_extract_version(git_version)
# Xcode has its own LTO features.
if(ENABLE_LTO AND NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin")
check_ipo_supported(RESULT USE_LTO)
if(USE_LTO)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO TRUE)
else()
message(FATAL_ERROR "Link Time Optimization requested, but not available.")
endif()
endif()
if(ENABLE_LTO)
message("-- Link Time Optimization: Enabled")
endif()
if(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
add_compile_options(
/nologo
/W3
/WX-
/diagnostics:column
)
set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded$<$<CONFIG:Debug>:Debug>)
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT $<$<CONFIG:Debug>:ProgramDatabase>)
# Enable automatic parallelization of MSBuild
set(CMAKE_VS_GLOBALS
"UseMultiToolTask=true"
"EnforceProcessCountAcrossBuilds=true"
)
if(EXISTS "${PROJECT_SOURCE_DIR}/ezquake.vcxproj.user")
configure_file("${PROJECT_SOURCE_DIR}/ezquake.vcxproj.user" "${CMAKE_BINARY_DIR}/ezquake.vcxproj.user" COPYONLY)
endif()
else()
add_compile_options(
-std=gnu89
-Wall
-Wno-pointer-to-int-cast
-Wno-int-to-pointer-cast
-Wno-strict-aliasing
-Wno-deprecated-declarations
-fvisibility=hidden
-Werror=format
-Werror=strict-prototypes
-Werror=old-style-definition
$<$<CONFIG:Release>:-Werror=unused-function>
$<$<CONFIG:Release>:-Werror=unused-variable>
)
check_c_compiler_flag("-Wstrlcpy-strlcat-size" HAS_STRLCPY_STRLCAT_SIZE)
if(HAS_STRLCPY_STRLCAT_SIZE)
add_compile_options("-Werror=strlcpy-strlcat-size")
endif()
check_c_compiler_flag("-Wformat-truncation" HAS_FORMAT_TRUNCATION)
if(HAS_FORMAT_TRUNCATION)
add_compile_options("-Wno-error=format-truncation" "-Wno-format-truncation")
endif()
check_c_compiler_flag("-Wparentheses" HAS_PARENTHESIS)
if(HAS_PARENTHESIS)
add_compile_options("-Wno-parentheses")
endif()
check_c_compiler_flag("-Wmisleading-indentation" HAS_MISLEADING_INDENTATION)
if(HAS_MISLEADING_INDENTATION)
add_compile_options("-Wno-misleading-indentation")
endif()
# While not gnu89, it's in practice allowed by all supported compilers
check_c_compiler_flag("-Wtypedef-redefinition" HAS_TYPE_REDEFINITION)
if(HAS_TYPE_REDEFINITION)
add_compile_options("-Wno-typedef-redefinition")
endif()
# Should mostly be fixed in mvdsv, and next sync can remove this
check_c_compiler_flag("-Wshorten-64-to-32" HAS_SHORTEN_64_TO_32)
if(HAS_TYPE_REDEFINITION)
add_compile_options("-Wno-shorten-64-to-32")
endif()
endif()
find_library(MATH m)
# Override by configuring with -DOpenGL_GL_PREFERENCE=GLVND
if(NOT OpenGL_GL_PREFERENCE)
set(OpenGL_GL_PREFERENCE LEGACY)
endif()
find_package(OpenGL REQUIRED)
find_package(Threads REQUIRED)
# Args: target name, pkg-config name, vcpkg package name, vcpkg target name, extra args
check_dependency(Expat "expat" "EXPAT" "expat::expat" REQUIRED CONFIG)
check_dependency(FreeType "freetype2" "Freetype" "Freetype::Freetype" OPTIONAL)
check_dependency(JPEG "libjpeg" "JPEG" "JPEG::JPEG" REQUIRED)
check_dependency(Jansson "jansson" "jansson" "jansson::jansson" REQUIRED)
check_dependency(MiniZip "minizip" "unofficial-minizip" "unofficial::minizip::minizip" REQUIRED)
check_dependency(PCRE2 "libpcre2-8" "PCRE2" "pcre2::pcre2-8-static" REQUIRED)
check_dependency(PNG "libpng" "PNG" "PNG::PNG" REQUIRED)
check_dependency(SDL2 "sdl2" "SDL2" "SDL2::SDL2-static" REQUIRED)
check_dependency(SndFile "sndfile" "SndFile" "SndFile::sndfile" REQUIRED)
check_dependency(Speex "speex" "Speex" "SPEEX::SPEEX" OPTIONAL)
check_dependency(SpeexDSP "speexdsp" "SpeexDSP" "SPEEX::SPEEXDSP" OPTIONAL)
check_dependency(cURL "libcurl" "CURL" "CURL::libcurl" REQUIRED CONFIG)
check_dependency(zlib "zlib" "ZLIB" "ZLIB::ZLIB" REQUIRED)
if(USE_SYSTEM_LIBS AND HAVE_MINIZIP)
find_path(EZQUAKE_MINIZIP_INCLUDE_DIR
NAMES unzip.h
HINTS ${MiniZip_INCLUDE_DIRS}
PATH_SUFFIXES minizip
REQUIRED
)
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
find_library(FRAMEWORK_APPKIT AppKit REQUIRED)
find_library(FRAMEWORK_FOUNDATION Foundation REQUIRED)
find_library(FRAMEWORK_CORESERVICES CoreServices REQUIRED)
find_library(FRAMEWORK_GAMECONTROLLER GameController REQUIRED)
endif()
# Place special CMake targets in separate VS/Xcode folder
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set_property(GLOBAL PROPERTY VS_STARTUP_PROJECT "ezquake")
set(SOURCE_DIR ${PROJECT_SOURCE_DIR}/src)
set(common_headers
${SOURCE_DIR}/bspfile.h
${SOURCE_DIR}/cmd.h
${SOURCE_DIR}/cmdline_params.h
${SOURCE_DIR}/cmdline_params_ids.h
${SOURCE_DIR}/cmodel.h
${SOURCE_DIR}/common.h
${SOURCE_DIR}/crc.h
${SOURCE_DIR}/cvar.h
${SOURCE_DIR}/cvar_groups.h
${SOURCE_DIR}/fs.h
${SOURCE_DIR}/hash.h
${SOURCE_DIR}/macro_definitions.h
${SOURCE_DIR}/macro_ids.h
${SOURCE_DIR}/mathlib.h
${SOURCE_DIR}/net.h
${SOURCE_DIR}/parser.h
${SOURCE_DIR}/pmove.h
${SOURCE_DIR}/q_platform.h
${SOURCE_DIR}/q_shared.h
${SOURCE_DIR}/sha1.h
${SOURCE_DIR}/sha3.h
${SOURCE_DIR}/version.h
${SOURCE_DIR}/vfs.h
${SOURCE_DIR}/vfs_tar.h
${SOURCE_DIR}/zone.h
)
set(common
${SOURCE_DIR}/cmd.c
${SOURCE_DIR}/cmodel.c
${SOURCE_DIR}/com_msg.c
${SOURCE_DIR}/common.c
${SOURCE_DIR}/crc.c
${SOURCE_DIR}/cvar.c
${SOURCE_DIR}/fs.c
${SOURCE_DIR}/hash.c
${SOURCE_DIR}/mathlib.c
${SOURCE_DIR}/md4.c
${SOURCE_DIR}/net.c
${SOURCE_DIR}/net_chan.c
${SOURCE_DIR}/parser.c
${SOURCE_DIR}/pmove.c
${SOURCE_DIR}/pmovetst.c
${SOURCE_DIR}/q_shared.c
${SOURCE_DIR}/sha1.c
${SOURCE_DIR}/sha3.c
${SOURCE_DIR}/version.c
${SOURCE_DIR}/vfs_doomwad.c
${SOURCE_DIR}/vfs_gzip.c
${SOURCE_DIR}/vfs_mmap.c
${SOURCE_DIR}/vfs_os.c
${SOURCE_DIR}/vfs_pak.c
${SOURCE_DIR}/vfs_tar.c
${SOURCE_DIR}/vfs_tcp.c
${SOURCE_DIR}/vfs_zip.c
${SOURCE_DIR}/zone.c
${common_headers}
)
source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/common" FILES ${common})
source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/common" FILES ${common_headers})
set(QWPROT_SOURCE_DIR ${SOURCE_DIR}/qwprot/src)
set(qwprot_headers
${QWPROT_SOURCE_DIR}/protocol.h
)
source_group(TREE ${QWPROT_SOURCE_DIR} PREFIX "Header Files/qwprot" FILES ${qwprot_headers})
set(server_headers
${SOURCE_DIR}/g_public.h
${SOURCE_DIR}/pr2.h
${SOURCE_DIR}/pr_comp.h
${SOURCE_DIR}/progdefs.h
${SOURCE_DIR}/progs.h
${SOURCE_DIR}/qwsvdef.h
${SOURCE_DIR}/server.h
${SOURCE_DIR}/sv_log.h
${SOURCE_DIR}/sv_mod_frags.h
${SOURCE_DIR}/sv_world.h
${SOURCE_DIR}/vm.h
${SOURCE_DIR}/vm_local.h
)
set(server
${SOURCE_DIR}/pr2_cmds.c
${SOURCE_DIR}/pr2_edict.c
${SOURCE_DIR}/pr2_exec.c
${SOURCE_DIR}/pr_cmds.c
${SOURCE_DIR}/pr_edict.c
${SOURCE_DIR}/pr_exec.c
${SOURCE_DIR}/sv_ccmds.c
${SOURCE_DIR}/sv_demo.c
${SOURCE_DIR}/sv_demo_misc.c
${SOURCE_DIR}/sv_demo_qtv.c
${SOURCE_DIR}/sv_ents.c
${SOURCE_DIR}/sv_init.c
${SOURCE_DIR}/sv_login.c
${SOURCE_DIR}/sv_main.c
${SOURCE_DIR}/sv_master.c
${SOURCE_DIR}/sv_mod_frags.c
${SOURCE_DIR}/sv_move.c
${SOURCE_DIR}/sv_nchan.c
${SOURCE_DIR}/sv_phys.c
${SOURCE_DIR}/sv_save.c
${SOURCE_DIR}/sv_send.c
${SOURCE_DIR}/sv_user.c
${SOURCE_DIR}/sv_world.c
${SOURCE_DIR}/vm.c
${SOURCE_DIR}/vm_interpreted.c
${SOURCE_DIR}/vm_x86.c
${server_headers}
)
source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/server" FILES ${server})
source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/server" FILES ${server_headers})
if(RENDERER_MODERN_OPENGL OR RENDERER_CLASSIC_OPENGL)
set(SHARED_GLSL_DIR ${SOURCE_DIR}/glsl/shared)
add_resources(shaders_shared
${SHARED_GLSL_DIR}/fxaa.h.glsl
)
source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/shared_opengl" FILES ${shared_opengl})
source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/shared_opengl" FILES ${shared_opengl_headers})
endif()
if(RENDERER_MODERN_OPENGL)
set(MODERN_GLSL_DIR ${SOURCE_DIR}/glsl)
add_resources(shaders_modern
${MODERN_GLSL_DIR}/common.glsl
${MODERN_GLSL_DIR}/constants.glsl
${MODERN_GLSL_DIR}/draw_aliasmodel.fragment.glsl
${MODERN_GLSL_DIR}/draw_aliasmodel.vertex.glsl
${MODERN_GLSL_DIR}/draw_sprites.fragment.glsl
${MODERN_GLSL_DIR}/draw_sprites.vertex.glsl
${MODERN_GLSL_DIR}/draw_world.fragment.glsl
${MODERN_GLSL_DIR}/draw_world.vertex.glsl
${MODERN_GLSL_DIR}/fx_world_geometry.fragment.glsl
${MODERN_GLSL_DIR}/fx_world_geometry.vertex.glsl
${MODERN_GLSL_DIR}/hud_draw_circle.fragment.glsl
${MODERN_GLSL_DIR}/hud_draw_circle.vertex.glsl
${MODERN_GLSL_DIR}/hud_draw_image.fragment.glsl
${MODERN_GLSL_DIR}/hud_draw_image.geometry.glsl
${MODERN_GLSL_DIR}/hud_draw_image.vertex.glsl
${MODERN_GLSL_DIR}/hud_draw_line.fragment.glsl
${MODERN_GLSL_DIR}/hud_draw_line.vertex.glsl
${MODERN_GLSL_DIR}/hud_draw_polygon.fragment.glsl
${MODERN_GLSL_DIR}/hud_draw_polygon.vertex.glsl
${MODERN_GLSL_DIR}/lighting.compute.glsl
${MODERN_GLSL_DIR}/post_process_screen.fragment.glsl
${MODERN_GLSL_DIR}/post_process_screen.vertex.glsl
${MODERN_GLSL_DIR}/simple.fragment.glsl
${MODERN_GLSL_DIR}/simple.vertex.glsl
${MODERN_GLSL_DIR}/simple3d.fragment.glsl
${MODERN_GLSL_DIR}/simple3d.vertex.glsl
)
set(modern_opengl_headers
${SOURCE_DIR}/glm_brushmodel.h
${SOURCE_DIR}/glm_draw.h
${SOURCE_DIR}/glm_local.h
${SOURCE_DIR}/glm_particles.h
${SOURCE_DIR}/glm_texture_arrays.h
${SOURCE_DIR}/glm_vao.h
)
set(modern_opengl
${SOURCE_DIR}/glm_aliasmodel.c
${SOURCE_DIR}/glm_brushmodel.c
${SOURCE_DIR}/glm_draw.c
${SOURCE_DIR}/glm_framebuffer.c
${SOURCE_DIR}/glm_lightmaps.c
${SOURCE_DIR}/glm_main.c
${SOURCE_DIR}/glm_md3.c
${SOURCE_DIR}/glm_misc.c
${SOURCE_DIR}/glm_particles.c
${SOURCE_DIR}/glm_performance.c
${SOURCE_DIR}/glm_rmain.c
${SOURCE_DIR}/glm_rsurf.c
${SOURCE_DIR}/glm_sdl.c
${SOURCE_DIR}/glm_sprite.c
${SOURCE_DIR}/glm_sprite3d.c
${SOURCE_DIR}/glm_state.c
${SOURCE_DIR}/glm_texture_arrays.c
${SOURCE_DIR}/glm_vao.c
${modern_opengl_headers}
)
source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/modern_opengl" FILES ${modern_opengl})
source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/modern_opengl" FILES ${modern_opengl_headers})
endif()
if(RENDERER_CLASSIC_OPENGL)
set(CLASSIC_GLSL_DIR ${SOURCE_DIR}/glsl/glc)
add_resources(shaders_classic
${CLASSIC_GLSL_DIR}/glc_aliasmodel_shadow.fragment.glsl
${CLASSIC_GLSL_DIR}/glc_aliasmodel_shadow.vertex.glsl
${CLASSIC_GLSL_DIR}/glc_aliasmodel_shell.fragment.glsl
${CLASSIC_GLSL_DIR}/glc_aliasmodel_shell.vertex.glsl
${CLASSIC_GLSL_DIR}/glc_aliasmodel_std.fragment.glsl
${CLASSIC_GLSL_DIR}/glc_aliasmodel_std.vertex.glsl
${CLASSIC_GLSL_DIR}/glc_caustics.fragment.glsl
${CLASSIC_GLSL_DIR}/glc_caustics.vertex.glsl
${CLASSIC_GLSL_DIR}/glc_draw_sprites.fragment.glsl
${CLASSIC_GLSL_DIR}/glc_draw_sprites.vertex.glsl
${CLASSIC_GLSL_DIR}/glc_hud_images.fragment.glsl
${CLASSIC_GLSL_DIR}/glc_hud_images.vertex.glsl
${CLASSIC_GLSL_DIR}/glc_post_process_screen.fragment.glsl
${CLASSIC_GLSL_DIR}/glc_post_process_screen.vertex.glsl
${CLASSIC_GLSL_DIR}/glc_sky.fragment.glsl
${CLASSIC_GLSL_DIR}/glc_sky.vertex.glsl
${CLASSIC_GLSL_DIR}/glc_turbsurface.fragment.glsl
${CLASSIC_GLSL_DIR}/glc_turbsurface.vertex.glsl
${CLASSIC_GLSL_DIR}/glc_world_drawflat.fragment.glsl
${CLASSIC_GLSL_DIR}/glc_world_drawflat.vertex.glsl
${CLASSIC_GLSL_DIR}/glc_world_secondpass.fragment.glsl
${CLASSIC_GLSL_DIR}/glc_world_secondpass.vertex.glsl
${CLASSIC_GLSL_DIR}/glc_world_textured.fragment.glsl
${CLASSIC_GLSL_DIR}/glc_world_textured.vertex.glsl
)
set(classic_opengl_headers
${SOURCE_DIR}/glc_local.h
${SOURCE_DIR}/glc_matrix.h
${SOURCE_DIR}/glc_state.h
${SOURCE_DIR}/glc_vao.h
)
set(classic_opengl
${SOURCE_DIR}/glc_aliasmodel.c
${SOURCE_DIR}/glc_aliasmodel_mesh.c
${SOURCE_DIR}/glc_bloom.c
${SOURCE_DIR}/glc_brushmodel.c
${SOURCE_DIR}/glc_draw.c
${SOURCE_DIR}/glc_framebuffer.c
${SOURCE_DIR}/glc_lightmaps.c
${SOURCE_DIR}/glc_main.c
${SOURCE_DIR}/glc_matrix.c
${SOURCE_DIR}/glc_md3.c
${SOURCE_DIR}/glc_misc.c
${SOURCE_DIR}/glc_particles.c
${SOURCE_DIR}/glc_performance.c
${SOURCE_DIR}/glc_sdl.c
${SOURCE_DIR}/glc_sky.c
${SOURCE_DIR}/glc_sprite3d.c
${SOURCE_DIR}/glc_state.c
${SOURCE_DIR}/glc_surf.c
${SOURCE_DIR}/glc_turb_surface.c
${SOURCE_DIR}/glc_vao.c
${SOURCE_DIR}/glc_warp.c
${classic_opengl_headers}
)
source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/classic_opengl" FILES ${classic_opengl})
source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/classic_opengl" FILES ${classic_opengl_headers})
endif()
set(common_opengl_headers
${SOURCE_DIR}/gl_framebuffer.h
${SOURCE_DIR}/gl_local.h
${SOURCE_DIR}/gl_sprite3d.h
${SOURCE_DIR}/gl_texture.h
${SOURCE_DIR}/gl_texture_internal.h
)
set(common_opengl
${SOURCE_DIR}/gl_aliasmodel.c
${SOURCE_DIR}/gl_aliasmodel_md3.c
${SOURCE_DIR}/gl_buffers.c
${SOURCE_DIR}/gl_debug.c
${SOURCE_DIR}/gl_drawcall_wrappers.c
${SOURCE_DIR}/gl_framebuffer.c
${SOURCE_DIR}/gl_misc.c
${SOURCE_DIR}/gl_program.c
${SOURCE_DIR}/gl_sdl.c
${SOURCE_DIR}/gl_sprite3d.c
${SOURCE_DIR}/gl_state.c
${SOURCE_DIR}/gl_texture.c
${SOURCE_DIR}/gl_texture_functions.c
${SOURCE_DIR}/vid_common_gl.c
${SOURCE_DIR}/r_vao.h
${common_opengl_headers}
)
source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/common_opengl" FILES ${common_opengl})
source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/common_opengl" FILES ${common_opengl_headers})
set(common_renderer_headers
${SOURCE_DIR}/anorm_dots.h
${SOURCE_DIR}/anorms.h
${SOURCE_DIR}/draw.h
${SOURCE_DIR}/gl_model.h
${SOURCE_DIR}/modelgen.h
${SOURCE_DIR}/particles_classic.h
${SOURCE_DIR}/qmb_particles.h
${SOURCE_DIR}/quakedef.h
${SOURCE_DIR}/r_aliasmodel.h
${SOURCE_DIR}/r_aliasmodel_md3.h
${SOURCE_DIR}/r_brushmodel.h
${SOURCE_DIR}/r_brushmodel_sky.h
${SOURCE_DIR}/r_brushmodel_warpsurfaces_sin.h
${SOURCE_DIR}/r_buffers.h
${SOURCE_DIR}/r_chaticons.h
${SOURCE_DIR}/r_draw.h
${SOURCE_DIR}/r_framestats.h
${SOURCE_DIR}/r_lighting.h
${SOURCE_DIR}/r_lightmaps.h
${SOURCE_DIR}/r_lightmaps_internal.h
${SOURCE_DIR}/r_local.h
${SOURCE_DIR}/r_matrix.h
${SOURCE_DIR}/r_particles_qmb.h
${SOURCE_DIR}/r_performance.h
${SOURCE_DIR}/r_program.h
${SOURCE_DIR}/r_renderer.h
${SOURCE_DIR}/r_renderer_structure.h
${SOURCE_DIR}/r_shared.h
${SOURCE_DIR}/r_sprite3d.h
${SOURCE_DIR}/r_sprite3d_internal.h
${SOURCE_DIR}/r_state.h
${SOURCE_DIR}/r_texture.h
${SOURCE_DIR}/r_texture_internal.h
${SOURCE_DIR}/r_trace.h
${SOURCE_DIR}/render.h
${SOURCE_DIR}/spritegn.h
${SOURCE_DIR}/vx_camera.h
${SOURCE_DIR}/vx_stuff.h
${SOURCE_DIR}/vx_tracker.h
${SOURCE_DIR}/vx_vertexlights.h
)
set(common_renderer
${SOURCE_DIR}/r_aliasmodel.c
${SOURCE_DIR}/r_aliasmodel_md3.c
${SOURCE_DIR}/r_aliasmodel_mesh.c
${SOURCE_DIR}/r_aliasmodel_skins.c
${SOURCE_DIR}/r_atlas.c
${SOURCE_DIR}/r_bloom.c
${SOURCE_DIR}/r_brushmodel.c
${SOURCE_DIR}/r_brushmodel_bspx.c
${SOURCE_DIR}/r_brushmodel_load.c
${SOURCE_DIR}/r_brushmodel_sky.c
${SOURCE_DIR}/r_brushmodel_surfaces.c
${SOURCE_DIR}/r_brushmodel_textures.c
${SOURCE_DIR}/r_brushmodel_warpsurfaces.c
${SOURCE_DIR}/r_buffers.c
${SOURCE_DIR}/r_chaticons.c
${SOURCE_DIR}/r_draw.c
${SOURCE_DIR}/r_draw_charset.c
${SOURCE_DIR}/r_draw_circle.c
${SOURCE_DIR}/r_draw_image.c
${SOURCE_DIR}/r_draw_line.c
${SOURCE_DIR}/r_draw_polygon.c
${SOURCE_DIR}/r_hud.c
${SOURCE_DIR}/r_lightmaps.c
${SOURCE_DIR}/r_main.c
${SOURCE_DIR}/r_matrix.c
${SOURCE_DIR}/r_misc.c
${SOURCE_DIR}/r_model.c
${SOURCE_DIR}/r_netgraph.c
${SOURCE_DIR}/r_palette.c
${SOURCE_DIR}/r_part.c
${SOURCE_DIR}/r_part_trails.c
${SOURCE_DIR}/r_particles_qmb.c
${SOURCE_DIR}/r_particles_qmb_spawn.c
${SOURCE_DIR}/r_particles_qmb_trails.c
${SOURCE_DIR}/r_performance.c
${SOURCE_DIR}/r_refrag.c
${SOURCE_DIR}/r_rlight.c
${SOURCE_DIR}/r_rmain.c
${SOURCE_DIR}/r_rmisc.c
${SOURCE_DIR}/r_sprite3d.c
${SOURCE_DIR}/r_sprites.c
${SOURCE_DIR}/r_states.c
${SOURCE_DIR}/r_texture.c
${SOURCE_DIR}/r_texture_cvars.c
${SOURCE_DIR}/r_texture_load.c
${SOURCE_DIR}/r_texture_util.c
${SOURCE_DIR}/vx_camera.c
${SOURCE_DIR}/vx_coronas.c
${SOURCE_DIR}/vx_stuff.c
${SOURCE_DIR}/vx_vertexlights.c
${common_renderer_headers}
)
source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/common_renderer" FILES ${common_renderer})
source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/common_renderer" FILES ${common_renderer_headers})
set(common_hud_headers
${SOURCE_DIR}/common_draw.h
${SOURCE_DIR}/hud.h
${SOURCE_DIR}/hud_common.h
${SOURCE_DIR}/hud_editor.h
)
set(common_hud
${SOURCE_DIR}/hud.c
${SOURCE_DIR}/hud_262.c
${SOURCE_DIR}/hud_ammo.c
${SOURCE_DIR}/hud_armor.c
${SOURCE_DIR}/hud_autoid.c
${SOURCE_DIR}/hud_centerprint.c
${SOURCE_DIR}/hud_clock.c
${SOURCE_DIR}/hud_common.c
${SOURCE_DIR}/hud_editor.c
${SOURCE_DIR}/hud_face.c
${SOURCE_DIR}/hud_frags.c
${SOURCE_DIR}/hud_gamesummary.c
${SOURCE_DIR}/hud_groups.c
${SOURCE_DIR}/hud_guns.c
${SOURCE_DIR}/hud_health.c
${SOURCE_DIR}/hud_items.c
${SOURCE_DIR}/hud_net.c
${SOURCE_DIR}/hud_performance.c
${SOURCE_DIR}/hud_qtv.c
${SOURCE_DIR}/hud_radar.c
${SOURCE_DIR}/hud_scores.c
${SOURCE_DIR}/hud_speed.c
${SOURCE_DIR}/hud_teaminfo.c
${SOURCE_DIR}/hud_tracking.c
${SOURCE_DIR}/hud_weapon_stats.c
${common_hud_headers}
)
source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/common_hud" FILES ${common_hud})
source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/common_hud" FILES ${common_hud_headers})
set(DOCUMENTATION_DIR ${PROJECT_SOURCE_DIR})
add_resources(documentation
${DOCUMENTATION_DIR}/help_cmdline_params.json
${DOCUMENTATION_DIR}/help_commands.json
${DOCUMENTATION_DIR}/help_macros.json
${DOCUMENTATION_DIR}/help_variables.json
)
set(client_headers
${SOURCE_DIR}/Ctrl.h
${SOURCE_DIR}/Ctrl_EditBox.h
${SOURCE_DIR}/Ctrl_PageViewer.h
${SOURCE_DIR}/Ctrl_Tab.h
${SOURCE_DIR}/EX_FileList.h
${SOURCE_DIR}/EX_browser.h
${SOURCE_DIR}/EX_qtvlist.h
${SOURCE_DIR}/cdaudio.h
${SOURCE_DIR}/cl_slist.h
${SOURCE_DIR}/cl_view.h
${SOURCE_DIR}/client.h
${SOURCE_DIR}/config_manager.h
${SOURCE_DIR}/console.h
${SOURCE_DIR}/demo_controls.h
${SOURCE_DIR}/document_rendering.h
${SOURCE_DIR}/ez_button.h
${SOURCE_DIR}/ez_controls.h
${SOURCE_DIR}/ez_label.h
${SOURCE_DIR}/ez_listview.h
${SOURCE_DIR}/ez_listviewitem.h
${SOURCE_DIR}/ez_scrollbar.h
${SOURCE_DIR}/ez_scrollpane.h
${SOURCE_DIR}/ez_slider.h
${SOURCE_DIR}/ez_window.h
${SOURCE_DIR}/fchecks.h
${SOURCE_DIR}/fmod.h
${SOURCE_DIR}/fonts.h
${SOURCE_DIR}/help.h
${SOURCE_DIR}/ignore.h
${SOURCE_DIR}/image.h
${SOURCE_DIR}/input.h
${SOURCE_DIR}/keys.h
${SOURCE_DIR}/logging.h
${SOURCE_DIR}/menu.h
${SOURCE_DIR}/menu_demo.h
${SOURCE_DIR}/menu_ingame.h
${SOURCE_DIR}/menu_multiplayer.h
${SOURCE_DIR}/menu_options.h
${SOURCE_DIR}/menu_proxy.h
${SOURCE_DIR}/movie.h
${SOURCE_DIR}/movie_avi.h
${SOURCE_DIR}/mvd_utils.h
${SOURCE_DIR}/mvd_utils_common.h
${SOURCE_DIR}/qsound.h
${SOURCE_DIR}/qtv.h
${SOURCE_DIR}/rulesets.h
${SOURCE_DIR}/sbar.h
${SOURCE_DIR}/screen.h
${SOURCE_DIR}/settings.h
${SOURCE_DIR}/settings_page.h
${SOURCE_DIR}/demo_spawnwarn.h
${SOURCE_DIR}/stats_grid.h
${SOURCE_DIR}/sys.h
${SOURCE_DIR}/teamplay.h
${SOURCE_DIR}/textencoding.h
${SOURCE_DIR}/tp_msgs.h
${SOURCE_DIR}/tp_triggers.h
${SOURCE_DIR}/tr_types.h
${SOURCE_DIR}/utils.h
${SOURCE_DIR}/vid.h
${SOURCE_DIR}/wad.h
${SOURCE_DIR}/xsd.h
${SOURCE_DIR}/xsd_document.h
)
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
list(APPEND client_headers ${SOURCE_DIR}/movie_avi.h)
endif()
set(client
${SOURCE_DIR}/Ctrl.c
${SOURCE_DIR}/Ctrl_EditBox.c
${SOURCE_DIR}/Ctrl_PageViewer.c
${SOURCE_DIR}/Ctrl_ScrollBar.c
${SOURCE_DIR}/Ctrl_Tab.c
${SOURCE_DIR}/EX_FileList.c
${SOURCE_DIR}/EX_browser.c
${SOURCE_DIR}/EX_browser_net.c
${SOURCE_DIR}/EX_browser_pathfind.c
${SOURCE_DIR}/EX_browser_ping.c
${SOURCE_DIR}/EX_browser_qtvlist.c
${SOURCE_DIR}/EX_browser_sources.c
${SOURCE_DIR}/EX_qtvlist.c
${SOURCE_DIR}/cd_null.c
${SOURCE_DIR}/cl_cam.c
${SOURCE_DIR}/cl_cmd.c
${SOURCE_DIR}/cl_demo.c
${SOURCE_DIR}/cl_ents.c
${SOURCE_DIR}/cl_input.c
${SOURCE_DIR}/cl_main.c
${SOURCE_DIR}/cl_multiview.c
${SOURCE_DIR}/cl_nqdemo.c
${SOURCE_DIR}/cl_parse.c
${SOURCE_DIR}/cl_pred.c
${SOURCE_DIR}/cl_screen.c
${SOURCE_DIR}/cl_screenshot.c
${SOURCE_DIR}/cl_skygroups.c
${SOURCE_DIR}/cl_slist.c
${SOURCE_DIR}/cl_tent.c
${SOURCE_DIR}/cl_view.c
${SOURCE_DIR}/collision.c
${SOURCE_DIR}/common_draw.c
${SOURCE_DIR}/config_manager.c
${SOURCE_DIR}/console.c
${SOURCE_DIR}/demo_controls.c
${SOURCE_DIR}/document_rendering.c
${SOURCE_DIR}/ez_button.c
${SOURCE_DIR}/ez_controls.c
${SOURCE_DIR}/ez_label.c
${SOURCE_DIR}/ez_scrollbar.c
${SOURCE_DIR}/ez_scrollpane.c
${SOURCE_DIR}/ez_slider.c
${SOURCE_DIR}/ez_window.c
${SOURCE_DIR}/fchecks.c
${SOURCE_DIR}/fmod.c
${SOURCE_DIR}/fonts.c
${SOURCE_DIR}/fragstats.c
${SOURCE_DIR}/help.c
${SOURCE_DIR}/help_files.c
${SOURCE_DIR}/host.c
${SOURCE_DIR}/ignore.c
${SOURCE_DIR}/image.c
${SOURCE_DIR}/in_sdl2.c
${SOURCE_DIR}/irc.c
${SOURCE_DIR}/irc_filter.c
${SOURCE_DIR}/keys.c
${SOURCE_DIR}/logging.c
${SOURCE_DIR}/match_tools.c
${SOURCE_DIR}/match_tools_challenge.c
${SOURCE_DIR}/menu.c
${SOURCE_DIR}/menu_demo.c
${SOURCE_DIR}/menu_ingame.c
${SOURCE_DIR}/menu_multiplayer.c
${SOURCE_DIR}/menu_options.c
${SOURCE_DIR}/menu_proxy.c
${SOURCE_DIR}/movie.c
${SOURCE_DIR}/mvd_autotrack.c
${SOURCE_DIR}/mvd_utils.c
${SOURCE_DIR}/mvd_xmlstats.c
${SOURCE_DIR}/demo_spawnwarn.c
${SOURCE_DIR}/qtv.c
${SOURCE_DIR}/rulesets.c
${SOURCE_DIR}/sbar.c
${SOURCE_DIR}/settings_page.c
${SOURCE_DIR}/skin.c
${SOURCE_DIR}/snd_main.c
${SOURCE_DIR}/snd_mem.c
${SOURCE_DIR}/snd_mix.c
${SOURCE_DIR}/snd_qizmo.c
${SOURCE_DIR}/snd_voip.c
${SOURCE_DIR}/stats_grid.c
${SOURCE_DIR}/sys_sdl2.c
${SOURCE_DIR}/teamplay.c
${SOURCE_DIR}/teamplay_locfiles.c
${SOURCE_DIR}/textencoding.c
${SOURCE_DIR}/tp_msgs.c
${SOURCE_DIR}/tp_triggers.c
${SOURCE_DIR}/utils.c
${SOURCE_DIR}/vid_sdl2.c
${SOURCE_DIR}/vid_vsync.c
${SOURCE_DIR}/vx_tracker.c
${SOURCE_DIR}/wad.c
${SOURCE_DIR}/xsd.c
${SOURCE_DIR}/xsd_document.c
${client_headers}
)
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
list(APPEND client ${SOURCE_DIR}/movie_avi.c)
endif()
source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/client" FILES ${client})
source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/client" FILES ${client_headers})
set(sys_headers ${SOURCE_DIR}/localtime.h)
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(sys ${SOURCE_DIR}/localtime_win.c)
else()
set(sys
${SOURCE_DIR}/localtime_posix.c
${SOURCE_DIR}/linux_signals.c
)
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
list(APPEND sys_headers
${SOURCE_DIR}/in_osx.h
)
list(APPEND sys
${SOURCE_DIR}/in_osx.m
${SOURCE_DIR}/sys_osx.m
)
endif()
list(APPEND sys ${sys_headers})
source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/sys" FILES ${sys})
source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/sys" FILES ${sys_headers})
set(central_headers
${SOURCE_DIR}/central.h
)
set(central
${SOURCE_DIR}/central.c
${central_headers}
)
source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/central" FILES ${central})
source_group(TREE ${SOURCE_DIR} PREFIX "Header Files/central" FILES ${central_headers})
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(main ${SOURCE_DIR}/sys_win.c)
else()
set(main ${SOURCE_DIR}/sys_posix.c)
endif()
source_group(TREE ${SOURCE_DIR} PREFIX "Source Files/main" FILES ${main})
get_target_property(version_major git_version VERSION_MAJOR)
get_target_property(version_minor git_version VERSION_MINOR)
get_target_property(version_patch git_version VERSION_PATCH)
get_target_property(version_build git_version REVISION)
get_target_property(version_commit git_version COMMIT)
# macOS icon
set(macos_icon "${PROJECT_SOURCE_DIR}/dist/macOS/ezquake.icns")
set_source_files_properties(${macos_icon} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
# Windows icon, and exe metadata
set(windows_icon "${CMAKE_CURRENT_BINARY_DIR}/ezQuake.rc")
set(EZQUAKE_RESOURCE_AUTHOR "QW-Group")
set(EZQUAKE_RESOURCE_NAME "ezQuake")
set(EZQUAKE_RESOURCE_DESCRIPTION "ezQuake - a QuakeWorld client")
set(EZQUAKE_RESOURCE_ICON "${PROJECT_SOURCE_DIR}/dist/windows/ezquake.ico")
set(EZQUAKE_RESOURCE_VERSION "${version_major},${version_minor},${version_patch},${version_build}")
set(EZQUAKE_RESOURCE_COMMIT "${version_commit}")
configure_file("${PROJECT_SOURCE_DIR}/dist/windows/ezQuake.rc.in" ${windows_icon} @ONLY)
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
# Mark the executable as a non-console application
set(TARGET_TYPE WIN32)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
# Mark the executable for bundling as .app
set(TARGET_TYPE MACOSX_BUNDLE)
endif()
add_executable(ezquake ${TARGET_TYPE}
${main}
${sys}
${central}
${common}
${common_hud}
${server}
${client}
${common_opengl}
${common_renderer}
$<$<BOOL:${RENDERER_MODERN_OPENGL}>:${modern_opengl}>
$<$<BOOL:${RENDERER_CLASSIC_OPENGL}>:${classic_opengl}>
${qwprot_headers}
$<IF:$<PLATFORM_ID:Darwin>,${macos_icon},>
$<IF:$<PLATFORM_ID:Windows>,${windows_icon},>
)
target_include_directories(ezquake PRIVATE
${SOURCE_DIR}/qwprot/src
${EZQUAKE_MINIZIP_INCLUDE_DIR}
)
target_compile_definitions(ezquake PRIVATE
BUILDSTRING="${CMAKE_SYSTEM_NAME}"
CPUSTRING="${CMAKE_SYSTEM_PROCESSOR}"
JSS_CAM
USE_PR2
WITH_NQPROGS
$<$<BOOL:${DEBUG_MEMORY_ALLOCATIONS}>:DEBUG_MEMORY_ALLOCATIONS>
$<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:WITH_RENDERING_TRACE>
$<$<PLATFORM_ID:Darwin>:GL_SILENCE_DEPRECATION>
$<$<BOOL:${RENDERER_MODERN_OPENGL}>:RENDERER_OPTION_MODERN_OPENGL>
$<$<BOOL:${RENDERER_CLASSIC_OPENGL}>:RENDERER_OPTION_CLASSIC_OPENGL>
WITH_PNG
WITH_JPEG
WITH_ZIP
WITH_ZLIB
$<$<BOOL:${HAVE_FREETYPE}>:EZ_FREETYPE_SUPPORT>
$<$<BOOL:${HAVE_FREETYPE}>:EZ_FREETYPE_SUPPORT_STATIC>
$<$<AND:$<BOOL:${HAVE_SPEEX}>,$<BOOL:${HAVE_SPEEXDSP}>>:WITH_SPEEX>
PCRE2_CODE_UNIT_WIDTH=8
)
target_link_libraries(ezquake PRIVATE
$<$<BOOL:${RENDERER_MODERN_OPENGL}>:shaders_modern>
$<$<BOOL:${RENDERER_CLASSIC_OPENGL}>:shaders_classic>
shaders_shared
documentation
git_version
${CMAKE_DL_LIBS}
Dep::zlib
Dep::cURL
Dep::Expat
Dep::JPEG
Dep::PCRE2
Dep::SDL2
Dep::Jansson
Dep::SndFile
Dep::PNG
Dep::MiniZip
$<$<BOOL:${HAVE_FREETYPE}>:Dep::FreeType>
$<$<AND:$<BOOL:${HAVE_SPEEX}>,$<BOOL:${HAVE_SPEEXDSP}>>:Dep::Speex>
$<$<AND:$<BOOL:${HAVE_SPEEX}>,$<BOOL:${HAVE_SPEEXDSP}>>:Dep::SpeexDSP>
OpenGL::GL
Threads::Threads
${FRAMEWORK_APPKIT}
${FRAMEWORK_FOUNDATION}
${FRAMEWORK_CORESERVICES}
${FRAMEWORK_GAMECONTROLLER}
)
if(MATH)
target_link_libraries(ezquake PRIVATE ${MATH})
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
string(TOLOWER "ezQuake" EXECUTABLE_NAME)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
string(TOLOWER "ezquake" EXECUTABLE_NAME)
else()
string(TOLOWER "ezquake-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}" EXECUTABLE_NAME)
endif()
set_target_properties(ezquake PROPERTIES OUTPUT_NAME ${EXECUTABLE_NAME})
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
get_target_property(version git_version GIT_DESCRIBE)
set_target_properties(ezquake PROPERTIES
XCODE_ATTRIBUTE_PRODUCT_NAME "ezQuake"
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.ezquake.ezQuake"
XCODE_ATTRIBUTE_MARKETING_VERSION "${version}"
XCODE_ATTRIBUTE_CURRENT_PROJECT_VERSION "${version}"
XCODE_ATTRIBUTE_LLVM_LTO $<IF:$<OR:$<CONFIG:Debug>,$<NOT:$<BOOL:${ENABLE_LTO}>>>,NO,Monolithic>
XCODE_ATTRIBUTE_GCC_OPTIMIZATION_LEVEL $<IF:$<CONFIG:Debug>,0,3>
XCODE_ATTRIBUTE_DEAD_CODE_STRIPPING YES
XCODE_ATTRIBUTE_GENERATE_INFOPLIST_FILE YES
XCODE_ATTRIBUTE_INFOPLIST_KEY_CFBundleDisplayName "ezQuake"
XCODE_ATTRIBUTE_INFOPLIST_KEY_LSApplicationCategoryType "public.app-category.action-games"
XCODE_ATTRIBUTE_INFOPLIST_KEY_NSHumanReadableCopyright "GNU General Public License, version 2"
XCODE_ATTRIBUTE_INFOPLIST_FILE "${PROJECT_SOURCE_DIR}/dist/macOS/MacOSXBundleInfo.plist.in"
)
if(ENABLE_SANDBOX)
set_target_properties(ezquake PROPERTIES
XCODE_ATTRIBUTE_ENABLE_APP_SANDBOX YES
XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME YES
XCODE_ATTRIBUTE_CODE_SIGN_INJECT_BASE_ENTITLEMENTS[variant=Debug] YES
XCODE_ATTRIBUTE_CODE_SIGN_INJECT_BASE_ENTITLEMENTS[variant=RelWithDebInfo] YES
XCODE_ATTRIBUTE_CODE_SIGN_INJECT_BASE_ENTITLEMENTS[variant=Release] NO
XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "dist/macOS/ezquake.entitlements.plist"
)
endif()
endif()
================================================
FILE: CMakePresets.json
================================================
{
"version": 3,
"cmakeMinimumRequired": {
"major": 3,
"minor": 22,
"patch": 0
},
"configurePresets": [
{
"name": "template-common",
"hidden": true,
"binaryDir": "${sourceDir}/build-${presetName}",
"cacheVariables": {
"CMAKE_VERBOSE_MAKEFILE": "OFF",
"CMAKE_COLOR_DIAGNOSTICS": "ON",
"CMAKE_CONFIGURATION_TYPES": "Debug;RelWithDebInfo;Release"
}
},
{
"name": "template-vcpkg",
"hidden": true,
"inherits": "template-common",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": {
"type": "FILEPATH",
"value": "vcpkg/scripts/buildsystems/vcpkg.cmake"
},
"VCPKG_OVERLAY_TRIPLETS": "${sourceDir}/cmake/triplets",
"VCPKG_LIBRARY_LINKAGE": "static",
"VCPKG_CRT_LINKAGE": "dynamic",
"VCPKG_INSTALL_OPTIONS": "--clean-after-build",
"VCPKG_ENABLE_METRICS": "0",
"VCPKG_APPLOCAL_DEPS": "OFF",
"USE_SYSTEM_LIBS": "OFF"
}
},
{
"name": "template-gcc-mingw-cross",
"hidden": true,
"cacheVariables": {
"CMAKE_SYSTEM_NAME": "Windows"
}
},
{
"name": "template-gcc-mingw-i686",
"hidden": true,
"inherits": "template-vcpkg",
"cacheVariables": {
"CMAKE_C_COMPILER": "i686-w64-mingw32-gcc",
"CMAKE_CXX_COMPILER": "i686-w64-mingw32-g++",
"CMAKE_RC_COMPILER": "i686-w64-mingw32-windres",
"CMAKE_C_FLAGS": "-msse2"
}
},
{
"name": "template-gcc-mingw-x64",
"hidden": true,
"inherits": "template-vcpkg",
"cacheVariables": {
"CMAKE_C_COMPILER": "x86_64-w64-mingw32-gcc",
"CMAKE_CXX_COMPILER": "x86_64-w64-mingw32-g++",
"CMAKE_RC_COMPILER": "x86_64-w64-mingw32-windres",
"CMAKE_C_FLAGS": "-march=nehalem"
}
},
{
"name": "msbuild-x64",
"description": "Configure as Visual Studio project",
"generator": "Visual Studio 17 2022",
"inherits": "template-vcpkg",
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": "x64-windows-static"
},
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "msbuild-arm64",
"description": "Configure as Visual Studio project",
"generator": "Visual Studio 17 2022",
"inherits": "template-vcpkg",
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": "arm64-windows-static"
},
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "msvc-x64",
"description": "Configure using Ninja to build with msvc",
"generator": "Ninja Multi-Config",
"inherits": "template-vcpkg",
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": "x64-windows-static"
},
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "mingw64-x64-shared",
"hidden": true,
"description": "Configure using Ninja to build with mingw64 for x64",
"generator": "Ninja Multi-Config",
"inherits": "template-gcc-mingw-x64",
"architecture": {
"value": "x64",
"strategy": "external"
},
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": "x64-mingw-static",
"CMAKE_SYSTEM_PROCESSOR": "x86_64"
}
},
{
"name": "mingw64-x64",
"inherits": ["mingw64-x64-shared"],
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "mingw64-x64-cross",
"inherits": ["mingw64-x64-shared", "template-gcc-mingw-cross"],
"condition": {
"type": "notEquals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "mingw64-i686-shared",
"hidden": true,
"description": "Configure with Ninja to build with mingw64 for i686",
"generator": "Ninja Multi-Config",
"inherits": ["template-gcc-mingw-i686"],
"architecture": {
"value": "x86",
"strategy": "external"
},
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": "x86-mingw-static",
"CMAKE_SYSTEM_PROCESSOR": "x86"
}
},
{
"name": "mingw64-i686",
"inherits": ["mingw64-i686-shared"],
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "mingw64-i686-cross",
"inherits": ["mingw64-i686-shared", "template-gcc-mingw-cross"],
"cacheVariables": {
"CMAKE_SYSTEM_PROCESSOR": "i686"
},
"condition": {
"type": "notEquals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "macos",
"hidden": true,
"description": "Configure XCode project file",
"generator": "Xcode",
"inherits": "template-vcpkg",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Darwin"
}
},
{
"name": "macos-arm64",
"displayName": "XCode (arm64)",
"inherits": "macos",
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": "arm64-osx",
"CMAKE_OSX_ARCHITECTURES": "arm64",
"CMAKE_OSX_DEPLOYMENT_TARGET": "11.0"
}
},
{
"name": "macos-x64",
"displayName": "XCode (x64)",
"inherits": "macos",
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": "x64-osx",
"CMAKE_OSX_ARCHITECTURES": "x86_64",
"CMAKE_OSX_DEPLOYMENT_TARGET": "11.0"
}
},
{
"name": "dynamic",
"description": "Configure XCode project file",
"generator": "Ninja Multi-Config",
"inherits": "template-common",
"cacheVariables": {
"USE_SYSTEM_LIBS": "ON"
}
},
{
"name": "static",
"description": "Configure XCode project file",
"generator": "Ninja Multi-Config",
"inherits": "template-vcpkg"
}
],
"buildPresets": [
{
"name": "msbuild-x64-debug",
"configurePreset": "msbuild-x64",
"displayName": "Build msbuild-x64 debug",
"description": "Build Visual Studio Debug configuration",
"configuration": "Debug"
},
{
"name": "msbuild-x64-release",
"configurePreset": "msbuild-x64",
"displayName": "Build msbuild-x64 release",
"description": "Build Visual Studio Release configuration",
"configuration": "Release"
},
{
"name": "msbuild-x64-relwithdebinfo",
"configurePreset": "msbuild-x64",
"displayName": "Build msbuild-x64 release with debug info",
"description": "Build Visual Studio Release configuration",
"configuration": "RelWithDebInfo"
},
{
"name": "msbuild-arm64-debug",
"configurePreset": "msbuild-arm64",
"displayName": "Build msbuild-arm64 debug",
"description": "Build Visual Studio Debug configuration",
"configuration": "Debug"
},
{
"name": "msbuild-arm64-release",
"configurePreset": "msbuild-arm64",
"displayName": "Build msbuild-arm64 release",
"description": "Build Visual Studio Release configuration",
"configuration": "Release"
},
{
"name": "msbuild-arm64-relwithdebinfo",
"configurePreset": "msbuild-arm64",
"displayName": "Build msbuild-arm64 release with debug info",
"description": "Build Visual Studio Release configuration",
"configuration": "RelWithDebInfo"
},
{
"name": "msvc-x64-debug",
"configurePreset": "msvc-x64",
"displayName": "Build msvc-x64 debug",
"description": "Build MSVC debug configuration",
"configuration": "Debug"
},
{
"name": "msvc-x64-release",
"configurePreset": "msvc-x64",
"displayName": "Build ninja-msvc-x64 release",
"description": "Build MSVC release configuration",
"configuration": "Release"
},
{
"name": "msvc-x64-relwithdebinfo",
"configurePreset": "msvc-x64",
"displayName": "Build MSVC release with debug symbols",
"description": "Build MSVC release with debug info configuration",
"configuration": "RelWithDebInfo"
},
{
"name": "mingw64-x64-debug",
"configurePreset": "mingw64-x64",
"displayName": "Build mingw64-x64 debug",
"description": "Build Windows Subsystem for Linux Debug configuration",
"configuration": "Debug"
},
{
"name": "mingw64-x64-cross-debug",
"configurePreset": "mingw64-x64-cross",
"displayName": "Build mingw64-x64 debug",
"description": "Cross-compile with mingw64-x64 Debug configuration",
"configuration": "Debug"
},
{
"name": "mingw64-x64-release",
"configurePreset": "mingw64-x64",
"displayName": "Build mingw64-x64 release",
"description": "Build Windows Subsystem for Linux Release configuration",
"configuration": "Release"
},
{
"name": "mingw64-x64-cross-release",
"configurePreset": "mingw64-x64-cross",
"displayName": "Build mingw64-x64 release",
"description": "Cross-compile with mingw64-x64 Release configuration",
"configuration": "Release"
},
{
"name": "mingw64-x64-relwithdebinfo",
"configurePreset": "mingw64-x64",
"displayName": "Build mingw64-x64 release with debug info",
"description": "Build Windows Subsystem for Linux Release with debug info configuration",
"configuration": "RelWithDebInfo"
},
{
"name": "mingw64-x64-cross-relwithdebinfo",
"configurePreset": "mingw64-x64-cross",
"displayName": "Build mingw64-x64 release with debug info",
"description": "Cross-compile with mingw64-x64 Release with debug info configuration",
"configuration": "RelWithDebInfo"
},
{
"name": "mingw64-i686-debug",
"configurePreset": "mingw64-i686",
"displayName": "Build mingw64-i686 debug",
"description": "Build Windows Subsystem for Linux Debug configuration",
"configuration": "Debug"
},
{
"name": "mingw64-i686-cross-debug",
"configurePreset": "mingw64-i686-cross",
"displayName": "Build mingw64-i686 debug",
"description": "Build Windows Subsystem for Linux Debug configuration",
"configuration": "Debug"
},
{
"name": "mingw64-i686-release",
"configurePreset": "mingw64-i686",
"displayName": "Build mingw64-i686 release",
"description": "Build Windows Subsystem for Linux Debug configuration",
"configuration": "Release"
},
{
"name": "mingw64-i686-cross-release",
"configurePreset": "mingw64-i686-cross",
"displayName": "Build mingw64-i686 release",
"description": "Build Windows Subsystem for Linux Debug configuration",
"configuration": "Release"
},
{
"name": "mingw64-i686-relwithdebinfo",
"configurePreset": "mingw64-i686",
"displayName": "Build mingw64-i686 release with debug info",
"description": "Build Windows Subsystem for Linux Debug configuration",
"configuration": "RelWithDebInfo"
},
{
"name": "mingw64-i686-cross-relwithdebinfo",
"configurePreset": "mingw64-i686-cross",
"displayName": "Build mingw64-i686 release with debug info",
"description": "Cross-compile with mingw64-i686 Release with debug info configuration",
"configuration": "RelWithDebInfo"
},
{
"name": "macos-arm64-debug",
"configurePreset": "macos-arm64",
"displayName": "Build Xcode debug",
"description": "Build Xcode Debug configuration",
"configuration": "Debug"
},
{
"name": "macos-arm64-release",
"configurePreset": "macos-arm64",
"displayName": "Build Xcode release",
"description": "Build Xcode Release configuration",
"configuration": "Release"
},
{
"name": "macos-arm64-relwithdebinfo",
"configurePreset": "macos-arm64",
"displayName": "Build Xcode release with debug info",
"description": "Build Xcode Release with debug info configuration",
"configuration": "RelWithDebInfo"
},
{
"name": "macos-x64-debug",
"configurePreset": "macos-x64",
"displayName": "Build Xcode debug",
"description": "Build Xcode Debug configuration",
"configuration": "Debug"
},
{
"name": "macos-x64-release",
"configurePreset": "macos-x64",
"displayName": "Build Xcode release",
"description": "Build Xcode Release configuration",
"configuration": "Release"
},
{
"name": "macos-x64-relwithdebinfo",
"configurePreset": "macos-x64",
"displayName": "Build Xcode release with debug info",
"description": "Build Xcode Release with debug info configuration",
"configuration": "RelWithDebInfo"
},
{
"name": "dynamic-debug",
"configurePreset": "dynamic",
"displayName": "Build native dynamically linked release",
"description": "Build with community release triplet",
"configuration": "Debug"
},
{
"name": "dynamic-release",
"configurePreset": "dynamic",
"displayName": "Build native dynamically linked release",
"description": "Build with community release triplet",
"configuration": "Release"
},
{
"name": "dynamic-relwithdebinfo",
"configurePreset": "dynamic",
"displayName": "Build native dynamically linked release",
"description": "Build with community release triplet",
"configuration": "RelWithDebInfo"
},
{
"name": "static-debug",
"configurePreset": "static",
"displayName": "Build native statically linked debug",
"description": "Build with statically linked debug",
"configuration": "Debug"
},
{
"name": "static-release",
"configurePreset": "static",
"displayName": "Build native statically linked release",
"description": "Build with statically linked release",
"configuration": "Release"
},
{
"name": "static-relwithdebinfo",
"configurePreset": "static",
"displayName": "Build native statically linked release with debug info",
"description": "Build with statically linked release with debug info",
"configuration": "RelWithDebInfo"
}
]
}
================================================
FILE: LICENSE
================================================
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification follow.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
================================================
FILE: README.md
================================================
# ezQuake — Modern QuakeWorld Client
Homepage: [https://ezquake.com][homepage]
Community discord: [http://discord.quake.world][discord]
This is the right place to start playing QuakeWorld® — the fastest first
person shooter action game ever.
Combining the features of all modern QuakeWorld® clients, ezQuake makes
QuakeWorld® easier to start and play. The immortal first person shooter
Quake® in the brand new skin with superb graphics and extremely fast
gameplay.
## Features
* Modern graphics
* [QuakeTV][qtv] support
* Rich menus
* Multiview support
* Tons of features to serve latest pro-gaming needs
* Built in server browser & MP3 player control
* Recorded games browser
* Customization of all possible graphics elements of the game including Heads Up Display
* All sorts of scripting possibilities
* Windows, Linux, MacOSX and FreeBSD platforms supported (SDL2).
Our client comes only with bare minimum of game media. If you want to
experience ezQuake with modern graphics and other additional media including
custom configurations, maps, textures and more, try using the [nQuake][nQuake]-installer.
## Support
Need help with using ezQuake? Try #dev-corner on [discord][discord]
Or (less populated these days) visit us on IRC at QuakeNet, channel #ezQuake: [webchat][webchat] or [IRC][IRC].
Sometimes help from other users of ezQuake might be more useful to you so you
can also try visiting the [quakeworld.nu Client Talk-forums][forum].
If you have found a bug, please report it [here][issues]
## Installation guide
To play Quakeworld you need the files *pak0.pak* and *pak1.pak* from the original Quake-game.
### Install ezQuake to an existing Quake-installation
If you have an existing Quake-installation simply extract the ezQuake executable into your Quake-directory.
A typical error message when installing ezQuake into a pre-existing directory is about *glide2x.dll* missing.
To get rid of this error, remove the file *opengl32.dll* from your Quake directory.
### Upgrade an nQuake-installation
If you have a version of [nQuake][nQuake] already installed you can upgrade ezQuake by extracting the new executable into the nQuake-directory.
### Minimal clean installation
If you want to make a clean installation of ezQuake you can do this by following these steps:
1. Create a new directory
2. Extract the ezQuake-executable into this directory
3. Create a subdirectory called *id1*
4. Copy *pak0.pak* and *pak1.pak* into this subdirectory
## Compiling
On Linux, `./build-linux.sh` produces an ezQuake binary in the top directory.
For a more in-depth description of how to build on all platforms, have a look at
[BUILD.md](BUILD.md).
## Nightly builds
Nightly builds can be found [here][nightly]
[nQuake]: http://nquake.com/
[webchat]: http://webchat.quakenet.org/?channels=#ezquake
[IRC]: irc://irc.quakenet.org/#ezquake
[forum]: http://www.quakeworld.nu/forum/8
[qtv]: http://qtv.quakeworld.nu/
[nightly]: https://builds.quakeworld.nu/ezquake/snapshots/
[releases]: https://github.com/ezQuake/ezquake-source/releases
[issues]: https://github.com/ezQuake/ezquake-source/issues
[homepage]: https://ezquake.com
[discord]: http://discord.quake.world/
================================================
FILE: bootstrap.ps1
================================================
function Show-MessageBox {
param ([string]$message)
Add-Type -AssemblyName PresentationFramework
[System.Windows.MessageBox]::Show($message, "Bootstrap Error", 'OK', 'Warning')
}
if (-not (Get-Command git -ErrorAction SilentlyContinue)) {
Show-MessageBox "Git is needed to checkout vcpkg, but it's not installed or not available in PATH."
exit 1
}
git submodule update --init --recursive
if (-not (Test-Path "vcpkg/.git")) {
if (-not (Test-Path "version.json")) {
Show-MessageBox "Unable to checkout correct version of vcpkg without 'version.json'."
exit 1
}
try {
$versionData = Get-Content -Raw -Path "version.json" | ConvertFrom-Json
} catch {
Show-MessageBox "version.json is not valid JSON."
exit 1
}
$vcpkgVersion = $versionData.vcpkg
if (Test-Path "vcpkg") {
Remove-Item -Recurse -Force "vcpkg"
}
git clone --branch $vcpkgVersion --depth 1 https://github.com/microsoft/vcpkg.git "vcpkg"
$cloneExitCode = $LASTEXITCODE
if ($cloneExitCode -ne 0) {
Show-MessageBox "Checkout of vcpkg failed."
exit 1
}
}
& "vcpkg/bootstrap-vcpkg.bat" -disableMetrics
================================================
FILE: bootstrap.sh
================================================
#!/bin/sh -e
show_error() {
printf "\e[31mError\e[0m: $1\n"
exit 1
}
required_commands="cmake ninja git automake autoconf pkg-config curl zip unzip tar"
missing_deps=""
for cmd in $required_commands; do
if ! command -v "$cmd" >/dev/null 2>&1; then
missing_deps="$missing_deps $cmd"
fi
done
# naming differs on macOS/Linux
if ! command -v "libtoolize" >/dev/null 2>&1 && ! command -v "glibtoolize" >/dev/null 2>&1; then
missing_deps="$missing_deps libtool";
fi
if [ -n "$missing_deps" ]; then
show_error "Install packages that provide support for:$missing_deps"
fi
if [ -e ".git" ]; then
echo "Updating submodules..."
git submodule update --init --recursive
fi
if [ ! -e "vcpkg/.git" ]; then
if [ ! -f "version.json" ]; then
show_error "Unable to checkout vcpkg without 'version.json'."
fi
vcpkg_version=$(sed -n 's/.*"vcpkg": *"\(.*\)".*/\1/p' version.json)
if [ -z "$vcpkg_version" ]; then
show_error "Could not extract vcpkg version from version.json."
fi
if [ -d "vcpkg" ]; then
rm -rf "vcpkg"
fi
git clone --branch "$vcpkg_version" --depth 1 https://github.com/microsoft/vcpkg.git "vcpkg"
if [ $? -ne 0 ]; then
show_error "Checkout of vcpkg failed."
fi
fi
vcpkg/bootstrap-vcpkg.sh -disableMetrics
if [ $? -ne 0 ]; then
show_error "vcpkg bootstrap failed."
fi
================================================
FILE: build-linux.sh
================================================
#!/bin/sh -e
# simple build script for linux
# ANSI color codes
RED='\e[31m'
GREEN='\e[32m'
YELLOW='\e[33m'
NC='\e[0m'
BUILD_LOG=/tmp/ezquake-build.log
SKIP_DEPS="${SKIP_DEPS:-0}"
PKGS_DEB="git cmake build-essential libsdl2-2.0-0 libsdl2-dev libjansson-dev libexpat1-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libspeex-dev libspeexdsp-dev libfreetype-dev libsndfile1-dev libpcre2-dev libminizip-dev"
PKGS_RPM="pcre2-devel cmake mesa-libGL-devel SDL2-devel make gcc jansson-devel expat-devel libcurl-devel libpng-devel libjpeg-turbo-devel speex-devel speexdsp-devel freetype-devel libsndfile-devel libXxf86vm-devel minizip-devel"
PKGS_ARCH="base-devel cmake libpng libjpeg-turbo sdl2 expat libcurl-compat freetype2 speex speexdsp jansson libsndfile minizip"
PKGS_VOID="base-devel cmake SDL2-devel pcre2-devel jansson-devel expat-devel libcurl-devel libpng-devel libjpeg-turbo-devel speex-devel speexdsp-devel freetype-devel libsndfile-devel libXxf86vm-devel minizip"
CPU=$(uname -m | sed -e s/i.86/i386/ -e s/amd64/x86_64/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/ -e s/alpha/axp/)
error() {
[ ! -e $BUILD_LOG ] || cat $BUILD_LOG
printf "${RED}[ERROR]${NC} %s\n" "$*"
exit 1
}
step() {
printf "${GREEN}[STEP ]${NC} %s\n" "$*"
}
info() {
printf "[INFO ] %s\n" "$*"
}
warn() {
printf "${YELLOW}[WARN ]${NC} %s\n" "$*"
}
install_check_deb() {
step "Install/check dependecies (packages)..."
info "You might be prompted to input your password as superuser privileges are required."
info "Updating apt repo list... (running with sudo)"
sudo apt-get update -y -qq || error "Failed to update package sources. Exiting."
info "Checking/installing required packages... (running with sudo)"
sudo apt-get install -y -q $PKGS_DEB >>$BUILD_LOG 2>&1 || error "Failed to install required packages. Exiting."
}
install_check_rpm() {
step "Install/check dependecies (packages)..."
info "You might be prompted to input your password as superuser privileges are required."
info "Updating yum repo list... (running with sudo)"
sudo yum clean all -yqqq && sudo yum check-update -yqqq >>$BUILD_LOG 2>&1 || error "Failed to update repo list. Exiting."
info "Checking/installing required packages... (running with sudo)"
sudo yum install -yq $PKGS_RPM >>$BUILD_LOG 2>&1 || error "Failed to install required packages. Exiting."
}
install_check_arch() {
step "Install/check dependecies (packages)..."
info "You might be prompted to input your password as superuser privileges are required."
sudo pacman -Sy >>$BUILD_LOG 2>&1 || error "Failed to update repository cache. Exiting."
sudo pacman -S --needed --noconfirm $PKGS_ARCH >>$BUILD_LOG 2>&1 || error "Failed to install required packages. Exiting."
}
install_check_void() {
step "Install/check dependencies (packages)..."
info "You might be prompted to input your password as superuser privileges are required."
info "Updating xbps repo list... (running with sudo)"
sudo xbps-install -Sy >>$BUILD_LOG 2>&1 || error "Failed to update package sources. Exiting."
info "Checking/installing required packages... (running with sudo)"
sudo xbps-install -y $PKGS_VOID >>$BUILD_LOG 2>&1 || error "Failed to install required packages. Exiting."
}
if [ -f $BUILD_LOG ];then
rm -f $BUILD_LOG ||:
fi
[ -e CMakeLists.txt ] || error "Cannot find 'CMakeLists.txt', please run this script from the source code directory."
if [ $SKIP_DEPS -eq 0 ];then
command -v sudo &>/dev/null || error "Could not find sudo, please install it. Exiting."
if [ -f /etc/os-release ]; then
. /etc/os-release || error "Failed to source os-release file"
else
error "Your environment isn't supported by this script. Exiting."
fi
[ -n "${ID}" ] || error "Your dist does not specify ID in /etc/os-release. Exiting."
[ -n "${VERSION_ID}" ] || VERSION_ID=0
case $ID in
arch)
install_check_arch
;;
manjaro)
install_check_arch
;;
void)
install_check_void
;;
linuxmint)
[ $VERSION_ID -ge 18 ] || error "Your Linux Mint version '$VERSION_ID' is too old. Exiting."
install_check_deb
;;
ubuntu)
VERSION_ID=${VERSION_ID%.*}
[ $VERSION_ID -ge 16 ] || error "Your Ubuntu version '$VERSION_ID' is too old. Exiting."
install_check_deb
;;
devuan)
if [ $VERSION_ID -gt 0 ] && [ $VERSION_ID -lt 4 ] ; then
error "Your Devuan version '$VERSION_ID' is too old. Exiting."
fi
# Includes Devuan testing/unstable as they don't provide a VERSION_ID
install_check_deb
;;
debian)
if [ $VERSION_ID -gt 0 ] && [ $VERSION_ID -lt 8 ]; then
error "Your Debian version '$VERSION_ID' is too old. Exiting."
fi
# Includes Debian testing/unstable as they don't provide a VERSION_ID
install_check_deb
;;
pop)
VERSION_ID=${VERSION_ID%.*}
[ $VERSION_ID -ge 17 ] || error "Your Pop!_OS version '$VERSION_ID' is too old. Exiting."
install_check_deb
;;
centos|rhel|fedora)
# FIXME: Versions checks?
install_check_rpm
;;
*)
error "Your dist '$ID' isn't supported by this script. Exiting."
;;
esac
fi
if [ -d ".git" ]; then
step "Checking out git submodules..."
git submodule update --init --recursive >> $BUILD_LOG 2>&1 || error "Failed to checkout git submodules. Exiting."
fi
if [ ! -f src/qwprot/src/protocol.h ]; then
error "Bad source code directory, not a git repository, and lacks src/qwprot/src/protocol.h." \
"Download an official source release or checkout the official git repository."
fi
step "Configure build..."
if command -v ninja >/dev/null 2>&1; then
GENERATOR="-G Ninja"
fi
cmake -B build "${GENERATOR}" -DCMAKE_BUILD_TYPE=Release
step "Compiling sources (this might take a while, please wait)..."
cmake --build build --parallel
printf "\n${GREEN}Build completed successfully.${NC}\n"
printf "Copy ${YELLOW}build/ezquake-linux-${CPU}${NC} into your quake directory.\n\n"
================================================
FILE: cmake/AddResources.cmake
================================================
# Generate C source code that embeds arbitrary files via calling the
# ResourceCompiler CMake script using CMake itself.
#
# Declared like this:
# const unsigned char blabla[] = {
# 0x23,0x76,0x65,...,
# };
# const unsigned int blabla_len = 581;
find_program(JQ_EXECUTABLE jq)
macro(add_resources target_var)
add_library(${target_var} OBJECT)
set(RESOURCE_COMPILER "${PROJECT_SOURCE_DIR}/cmake/ResourceCompiler.cmake")
set(generated_base_directory "${CMAKE_CURRENT_BINARY_DIR}/${target_var}.dir/resources")
foreach(source_file ${ARGN})
file(RELATIVE_PATH source_file_relative "${CMAKE_SOURCE_DIR}" "${source_file}")
get_filename_component(source_file_dir "${source_file}" DIRECTORY)
get_filename_component(source_file_dir_relative "${source_file_relative}" DIRECTORY)
set(generated_directory "${generated_base_directory}/${source_file_dir_relative}")
file(MAKE_DIRECTORY ${generated_directory})
get_filename_component(source_file_name "${source_file}" NAME)
set(generated_file_name "${generated_directory}/${source_file_name}.c")
get_filename_component(source_ext "${source_file}" EXT)
if (source_ext STREQUAL ".json" AND JQ_EXECUTABLE)
set(validation_command ${JQ_EXECUTABLE} empty "${source_file}")
endif()
add_custom_command(
OUTPUT ${generated_file_name}
COMMAND ${validation_command}
COMMAND ${CMAKE_COMMAND} -P ${RESOURCE_COMPILER} "${source_file}" "${generated_file_name}"
WORKING_DIRECTORY "${source_file_dir}"
DEPENDS ${source_file} ${RESOURCE_COMPILER}
COMMENT "Generating C file from ${source_file_relative}"
VERBATIM
)
target_sources(${target_var} PRIVATE ${generated_file_name} ${source_file})
set_source_files_properties("${CMAKE_SOURCE_DIR}/${source_file}" PROPERTIES HEADER_FILE_ONLY TRUE)
set_source_files_properties("${generated_file_name}" PROPERTIES GENERATED TRUE)
source_group(TREE "${CMAKE_SOURCE_DIR}" PREFIX "Source Files" FILES ${source_file})
source_group(TREE "${generated_base_directory}" PREFIX "Generated Sources" FILES ${generated_file_name})
endforeach()
endmacro()
================================================
FILE: cmake/CheckDependency.cmake
================================================
# Check if a dependency exists and declare a target named Dep::$name.
# If USE_SYSTEM_LIBS variable is set, find dependency via pkg-config.
if (USE_SYSTEM_LIBS)
find_package(PkgConfig REQUIRED)
endif()
macro(check_dependency target_var pkg_config_name vcpkg_name vcpkg_target_name)
cmake_parse_arguments(_ARG "REQUIRED;CONFIG" "" "" ${ARGN})
set(_REQUIRED "")
if (_ARG_REQUIRED)
set(_REQUIRED "REQUIRED")
endif()
set(_CONFIG "")
if (_ARG_CONFIG)
set(_CONFIG "CONFIG")
endif()
string(TOUPPER ${target_var} _TARGET_VAR_UPPER)
set(HAVE_${_TARGET_VAR_UPPER} FALSE)
if (USE_SYSTEM_LIBS)
pkg_check_modules(${target_var} ${_REQUIRED} IMPORTED_TARGET ${pkg_config_name})
if (${target_var}_FOUND)
add_library(Dep::${target_var} ALIAS PkgConfig::${target_var})
set(HAVE_${_TARGET_VAR_UPPER} TRUE)
endif()
else()
find_package(${vcpkg_name} ${_CONFIG} ${_REQUIRED})
if (TARGET ${vcpkg_target_name})
set(actual_target ${vcpkg_target_name})
get_target_property(aliased_target ${actual_target} ALIASED_TARGET)
if (aliased_target AND NOT "${aliased_target}" MATCHES "NOTFOUND")
set(actual_target ${aliased_target})
endif()
add_library(Dep::${target_var} ALIAS ${actual_target})
set(HAVE_${_TARGET_VAR_UPPER} TRUE)
endif()
endif()
endmacro()
================================================
FILE: cmake/FindSpeex.cmake
================================================
# Can be removed once vcpkg speexdsp package has gained a proper cmake-wrapper.
set(_VCPKG_ARCH_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}")
find_path(SPEEX_INCLUDE_DIR NAMES speex/speex.h PATHS "${_VCPKG_ARCH_DIR}/include" NO_DEFAULT_PATH REQUIRED)
find_library(SPEEX_LIB_RELEASE NAMES speex PATHS "${_VCPKG_ARCH_DIR}/lib" NO_DEFAULT_PATH)
find_library(SPEEX_LIB_DEBUG NAMES speex PATHS "${_VCPKG_ARCH_DIR}/debug/lib" NO_DEFAULT_PATH)
if(NOT SPEEX_LIB_RELEASE AND NOT SPEEX_LIB_DEBUG)
message(FATAL_ERROR "Speex library not found")
endif()
add_library(SPEEX::SPEEX STATIC IMPORTED)
set_target_properties(SPEEX::SPEEX PROPERTIES
IMPORTED_CONFIGURATIONS "Debug;Release"
IMPORTED_LOCATION_RELEASE "${SPEEX_LIB_RELEASE}"
IMPORTED_LOCATION_DEBUG "${SPEEX_LIB_DEBUG}"
INTERFACE_INCLUDE_DIRECTORIES "${SPEEX_INCLUDE_DIR}"
)
================================================
FILE: cmake/FindSpeexDSP.cmake
================================================
# Can be removed once vcpkg speexdsp package has gained a proper cmake-wrapper.
set(_VCPKG_ARCH_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}")
find_path(SPEEXDSP_INCLUDE_DIR NAMES speex/speexdsp_types.h PATHS "${_VCPKG_ARCH_DIR}/include" NO_DEFAULT_PATH REQUIRED)
find_library(SPEEXDSP_LIB_RELEASE NAMES speexdsp PATHS "${_VCPKG_ARCH_DIR}/lib" NO_DEFAULT_PATH)
find_library(SPEEXDSP_LIB_DEBUG NAMES speexdsp PATHS "${_VCPKG_ARCH_DIR}/debug/lib" NO_DEFAULT_PATH)
if(NOT SPEEXDSP_LIB_RELEASE AND NOT SPEEXDSP_LIB_DEBUG)
message(FATAL_ERROR "SpeexDSP library not found")
endif()
add_library(SPEEX::SPEEXDSP STATIC IMPORTED)
set_target_properties(SPEEX::SPEEXDSP PROPERTIES
IMPORTED_CONFIGURATIONS "Debug;Release"
IMPORTED_LOCATION_RELEASE "${SPEEXDSP_LIB_RELEASE}"
IMPORTED_LOCATION_DEBUG "${SPEEXDSP_LIB_DEBUG}"
INTERFACE_INCLUDE_DIRECTORIES "${SPEEXDSP_INCLUDE_DIR}"
)
================================================
FILE: cmake/GitUtils.cmake
================================================
find_package(Git QUIET)
function(git_refresh_submodules)
if (GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
option(GIT_SUBMODULE "Check submodules during build" ON)
if (GIT_SUBMODULE)
message(STATUS "Submodule update")
execute_process(
COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
RESULT_VARIABLE GIT_SUBMOD_RESULT
OUTPUT_QUIET
)
if (NOT GIT_SUBMOD_RESULT EQUAL "0")
message(FATAL_ERROR "git submodule update --init --recursive failed with ${GIT_SUBMOD_RESULT}, please checkout submodules")
endif()
endif()
endif()
endfunction()
# Will load the version from 'version.json' file on configuration time if it exists.
#
# The content of this file looks like this:
# {
# "version": "3.6.5-92-g8e3875f40",
# "revision": 7739,
# "commit": "595806cd2449d4b17024b892c6e5b169512be5e0",
# "date": "2024-08-18T16:53:29+02:00",
# "vcpkg": "2024-02-14"
# }
function(git_extract_version target_var)
if (GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-parse --is-shallow-repository
OUTPUT_VARIABLE GIT_IS_SHALLOW
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
if (GIT_IS_SHALLOW MATCHES "true")
message(WARNING "Shallow repository detected, revision not available.")
set(GIT_REVISION "0")
else()
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-list HEAD --count
OUTPUT_VARIABLE GIT_REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
endif()
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
execute_process(
COMMAND ${GIT_EXECUTABLE} describe --tags --always
OUTPUT_VARIABLE GIT_DESCRIBE
RESULT_VARIABLE GIT_DESCRIBE_RESULT
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
elseif (EXISTS "${PROJECT_SOURCE_DIR}/version.json")
message("-- Loading version from 'version.json'")
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/version.json" VERSION_CONTENT)
string(JSON GIT_DESCRIBE GET "${VERSION_CONTENT}" "version")
string(JSON GIT_REVISION GET "${VERSION_CONTENT}" "revision")
string(JSON GIT_COMMIT_HASH GET "${VERSION_CONTENT}" "commit")
endif()
if (NOT GIT_DESCRIBE)
set(GIT_DESCRIBE "0.0.0-0-g00000000")
endif()
if (NOT GIT_REVISION)
set(GIT_REVISION "0")
endif()
if (NOT GIT_COMMIT_HASH)
set(GIT_COMMIT_HASH "0000000000000000000000000000000000000000")
endif()
string(SUBSTRING ${GIT_COMMIT_HASH} 0 9 GIT_COMMIT_SHORT_HASH)
add_library(${target_var} INTERFACE)
target_compile_definitions(${target_var} INTERFACE
REVISION=${GIT_REVISION}
VERSION="${GIT_REVISION}~${GIT_COMMIT_SHORT_HASH}"
)
set(VERSION_MAJOR 0)
set(VERSION_MINOR 0)
set(VERSION_PATCH 0)
string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+).*" "\\1;\\2;\\3" SEMVER_MATCH "${GIT_DESCRIBE}")
list(LENGTH SEMVER_MATCH PARTS_SIZE)
if(SEMVER_MATCH)
if(PARTS_SIZE GREATER 0)
list(GET SEMVER_MATCH 0 VERSION_MAJOR)
endif()
if(PARTS_SIZE GREATER 1)
list(GET SEMVER_MATCH 1 VERSION_MINOR)
endif()
if(PARTS_SIZE GREATER 2)
list(GET SEMVER_MATCH 2 VERSION_PATCH)
endif()
else()
message(WARNING "Upstream tags missing. Using default version 0.0.0")
endif()
set_target_properties(${target_var} PROPERTIES
REVISION "${GIT_REVISION}"
VERSION "${GIT_REVISION}~${GIT_COMMIT_SHORT_HASH}"
COMMIT "${GIT_COMMIT_HASH}"
GIT_DESCRIBE "${GIT_DESCRIBE}"
VERSION_MAJOR "${VERSION_MAJOR}"
VERSION_MINOR "${VERSION_MINOR}"
VERSION_PATCH "${VERSION_PATCH}"
)
message(STATUS "Version: ${GIT_DESCRIBE} (${GIT_REVISION}~${GIT_COMMIT_SHORT_HASH})")
endfunction()
================================================
FILE: cmake/ResourceCompiler.cmake
================================================
# Generate C code with some content encoded as an array of unsigned char.
# See AddResources.cmake for more information.
set(input_file "${CMAKE_ARGV3}")
set(output_file "${CMAKE_ARGV4}")
get_filename_component(base_name "${input_file}" NAME)
string(REGEX REPLACE "[.]" "_" variable_name "${base_name}")
file(READ "${input_file}" content HEX)
string(LENGTH "${content}" content_length)
math(EXPR data_length "${content_length} / 2")
string(REGEX REPLACE "([0-9a-f][0-9a-f])" "0x\\1," data "${content}")
string(APPEND data "0x00,")
file(WRITE "${output_file}" "const unsigned char ${variable_name}[] = {\n${data}\n};\nconst unsigned int ${variable_name}_len = ${data_length};\n")
================================================
FILE: cmake/triplets/arm64-osx.cmake
================================================
set(VCPKG_TARGET_ARCHITECTURE arm64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
set(VCPKG_OSX_ARCHITECTURES arm64)
set(VCPKG_OSX_DEPLOYMENT_TARGET "11.0")
================================================
FILE: cmake/triplets/x64-mingw-static.cmake
================================================
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_ENV_PASSTHROUGH PATH)
set(VCPKG_CMAKE_SYSTEM_NAME MinGW)
set(VCPKG_C_FLAGS "-march=nehalem ")
set(VCPKG_CXX_FLAGS "-march=nehalem ")
================================================
FILE: cmake/triplets/x64-osx.cmake
================================================
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
set(VCPKG_OSX_ARCHITECTURES x86_64)
set(VCPKG_OSX_DEPLOYMENT_TARGET "11.0")
================================================
FILE: cmake/triplets/x86-mingw-static.cmake
================================================
set(VCPKG_TARGET_ARCHITECTURE x86)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_ENV_PASSTHROUGH PATH)
set(VCPKG_CMAKE_SYSTEM_NAME MinGW)
set(VCPKG_C_FLAGS "-msse2 ")
set(VCPKG_CXX_FLAGS "-msse2 ")
================================================
FILE: dist/gen-release.sh
================================================
#!/bin/sh
TOP_DIR=$(git rev-parse --show-toplevel)
cd "${TOP_DIR}"
git submodule update --init --recursive
rm -rf release
mkdir release
cd release
EZQ_DIR=$(git rev-parse --absolute-git-dir)
VCPKG_DIR=$(git -C "${TOP_DIR}/vcpkg" rev-parse --absolute-git-dir)
QWPROT_DIR=$(git -C "${TOP_DIR}/src/qwprot" rev-parse --absolute-git-dir)
GIT_REVISION=$(git --git-dir="${EZQ_DIR}" rev-list HEAD --count)
GIT_COMMIT_HASH=$(git --git-dir="${EZQ_DIR}" rev-parse HEAD)
GIT_DESCRIBE=$(git --git-dir="${EZQ_DIR}" describe --tags)
GIT_COMMIT_DATE=$(git --git-dir="${EZQ_DIR}" log -1 --format=%cI)
GIT_COMMIT_TIMESTAMP=$(git --git-dir="${EZQ_DIR}" log -1 --format=%cd --date=format-local:%Y%m%d%H%M.%S)
VCPKG_TAG=$(git --git-dir="${VCPKG_DIR}" describe --tags)
EZQ_NAME="ezquake-source-${GIT_DESCRIBE}"
EZQ_TAR="${EZQ_NAME}.tar"
EZQ_VERSION="${EZQ_NAME}/version.json"
EZQ_CHECKSUM="${EZQ_NAME}/checksum"
QWPROT_TAR="qwprot.tar"
echo "* Release: ${GIT_DESCRIBE} (rev: ${GIT_REVISION}, vcpkg: ${VCPKG_TAG})"
echo "* Creating ${EZQ_TAR}"
git --git-dir="${EZQ_DIR}" archive --format=tar --prefix="${EZQ_NAME}/" HEAD > "${EZQ_TAR}"
echo "* Creating ${QWPROT_TAR}"
git --git-dir="${QWPROT_DIR}" archive --format=tar --prefix=src/qwprot/ HEAD > "${QWPROT_TAR}"
echo "* Prepare merging tarballs"
tar -xf "${EZQ_TAR}"
tar -xf "${QWPROT_TAR}" -C "${EZQ_NAME}/"
echo "* Generating ${EZQ_VERSION}"
cat > "${EZQ_VERSION}" <<EOF
{
"version": "${GIT_DESCRIBE}",
"revision": ${GIT_REVISION},
"commit": "${GIT_COMMIT_HASH}",
"date": "${GIT_COMMIT_DATE}",
"vcpkg": "${VCPKG_TAG}"
}
EOF
echo "* Generating ${EZQ_CHECKSUM}"
echo "${GIT_DESCRIBE}" >> "${EZQ_CHECKSUM}"
shasum "${EZQ_VERSION}" >> "${EZQ_CHECKSUM}"
git --git-dir="${EZQ_DIR}" ls-tree -r HEAD >> "${EZQ_CHECKSUM}"
git --git-dir="${QWPROT_DIR}" ls-tree -r HEAD >> "${EZQ_CHECKSUM}"
echo "* Resetting timestamp of generated files"
touch -t $GIT_COMMIT_TIMESTAMP "${EZQ_VERSION}"
touch -t $GIT_COMMIT_TIMESTAMP "${EZQ_CHECKSUM}"
echo "* Assembling ${EZQ_TAR}.gz"
tar cfz "${TOP_DIR}/${EZQ_TAR}.gz" "${EZQ_NAME}"
cd "${TOP_DIR}"
rm -rf release
================================================
FILE: dist/linux/io.github.ezQuake.appdata.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2019 Kevin Degeling -->
<component type="desktop">
<id>io.github.ezQuake</id>
<name>ezQuake</name>
<summary>a modern QuakeWorld client focused on competitive online play</summary>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-2.0</project_license>
<developer_name>ezQuake team</developer_name>
<update_contact>ezquake @ github</update_contact>
<url type="homepage">https://ezquake.github.io/</url>
<url type="bugtracker">https://github.com/ezQuake/ezquake-source</url>
<url type="help">https://ezquake.github.io/manual.html</url>
<url type="contact">https://www.quakeworld.nu/forum</url>
<launchable type="desktop-id">io.github.ezQuake.desktop</launchable>
<description>
<p>
Welcome to the home of ezQuake, a modern QuakeWorld client focused on competitive online play. Combining the features of modern QuakeWorld® clients, ezQuake makes QuakeWorld® easier to start and play. The immortal first person shooter Quake® in a brand new skin with superb graphics and extremely fast gameplay.
</p>
<ul>
<li>Modern Graphics: Particle explosions, shaft beam, gunshots, nails, rocket and grenade trails, blood, and others, MD3 models, fog, water effects, killing spree messages, rain</li>
<li>Modern competitive gaming features: Fullbright skins, forcing team/enemy colors, advanced weapon handling, teamplay messages, auto game recording, automated screenshots and console logging</li>
<li>Graphics customization: Customize your HUD, colors of walls and liquids, turn superfluous graphics effects off, change world textures, crosshair, sky picture, console background, game font</li>
<li>Independent Physics: Get the smoothest experience possible without being limited by server or network settings</li>
<li>Integrated Server Browser: Easy searching and filtering of online servers</li>
<li>Enhanced demo/QTV playback: View recorded games from multiple points of view, watch action on radar, all player stats in a handy table, autotrack the strongest player</li>
</ul>
<p>
Commercial data files are required to run the supported games. These can be aquired though a multitude of sources. See the manual for more info on this.
</p>
</description>
<screenshots>
<screenshot type="default">
<image>https://ezquake.github.io/screenshots/armor_battle.png</image>
<caption>Battle for armor</caption>
</screenshot>
<screenshot>
<image>https://ezquake.github.io/screenshots/bloom.jpg</image>
<caption>Bloom effect</caption>
</screenshot>
<screenshot>
<image>https://ezquake.github.io/screenshots/shambler_cutf_bluefog.jpg</image>
<caption>Special effects</caption>
</screenshot>
</screenshots>
<releases>
<release version="3.2.3" date="2021-02-10">
</release>
<release version="3.2.2" date="2020-09-23">
</release>
<release version="3.2.1" date="2020-06-24">
</release>
<release version="3.2.0" date="2020-03-19">
</release>
<release version="3.1.0" date="2019-09-24">
</release>
</releases>
<content_rating type="oars-1.1">
<content_attribute id="violence-realistic">moderate</content_attribute>
<content_attribute id="violence-bloodshed">moderate</content_attribute>
<content_attribute id="violence-desecration">moderate</content_attribute>
<!-- Full multiplayer functionality with voicechat support -->
<content_attribute id="social-chat">intense</content_attribute>
<content_attribute id="social-audio">intense</content_attribute>
</content_rating>
</component>
================================================
FILE: dist/linux/io.github.ezQuake.desktop
================================================
[Desktop Entry]
Comment=A modern QuakeWorld client focused on competitive online play
Categories=Game;Shooter;
Exec=ezquake.sh
Icon=io.github.ezQuake
Name=ezQuake
StartupNotify=true
PrefersNonDefaultGPU=true
Terminal=false
Type=Application
Keywords=quake;first;person;shooter;multiplayer;
================================================
FILE: dist/macOS/MacOSXBundleInfo.plist.in
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleIconFile</key>
<string>ezquake.icns</string>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>mvd</string>
<string>qwd</string>
<string>dem</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>ezquake.icns</string>
<key>CFBundleTypeName</key>
<string>Quake demo</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
</array>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>QW</string>
<key>CFBundleURLSchemes</key>
<array>
<string>qw</string>
</array>
</dict>
</array>
<key>NSHighResolutionCapable</key>
<true/>
</dict>
</plist>
================================================
FILE: dist/macOS/ezquake.entitlements.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.device.audio-input</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
<key>com.apple.security.files.bookmarks.app-scope</key>
<true/>
</dict>
</plist>
================================================
FILE: dist/windows/ezQuake.rc.in
================================================
#include <winres.h>
IDI_ICON1 ICON "@EZQUAKE_RESOURCE_ICON@"
VS_VERSION_INFO VERSIONINFO
FILEVERSION @EZQUAKE_RESOURCE_VERSION@
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "@EZQUAKE_RESOURCE_DESCRIPTION@\0"
VALUE "ProductName", "@EZQUAKE_RESOURCE_NAME@\0"
VALUE "ProductVersion", "@EZQUAKE_RESOURCE_COMMIT@\0"
VALUE "LegalCopyright", "@EZQUAKE_RESOURCE_AUTHOR@\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
================================================
FILE: help_cmdline_params.json
================================================
{
"-allowmultiple": {
"description": "On Windows, launch multiple copies of ezQuake rather than re-using the existing instance",
"systems": [
"windows"
]
},
"-basedir": {
"arguments": "<path>",
"description": "The \"base\" directory is the path to the directory holding the quake.exe and all game directories.\n\nThis can be overridden with the \"-basedir\" command line parm to allow code debugging in a different directory."
},
"-bpp": {
"arguments": "<integer>",
"description": "Allows setting of 'r_colorbits' cvar during start-up"
},
"-cdaudio": {
"flags": [
"incomplete"
]
},
"-cddev": {
"arguments": "<path>",
"description": "On Linux, specifies the cd device to use. Must specify -cdaudio for this to have effect",
"remarks": "(is this only used in meson build?)",
"systems": [
"linux"
]
},
"-cheats": {
"description": "enable cheats on local server (/noclip etc)"
},
"-clientport": {
"flags": [
"incomplete"
]
},
"-conbufsize": {
"arguments": "<size-in-kb>",
"description": "set size of console buffer",
"remarks": "between 32KB & 4MB, default is 64KB"
},
"-condebug": {
"description": "log all console output to qw/qconsole.log"
},
"-conheight": {
"description": "set vid_conheight during startup"
},
"-conwidth": {
"description": "set vid_conwidth during startup"
},
"-data": {
"system-generated": true
},
"-democache": {
"arguments": "<size-in-kb>",
"description": "create memory buffer during startup, used instead of writing directly to disk when recording demos",
"remarks": "Minimum value 2048KB"
},
"-detailtrails": {
"description": "sets /gl_particle_fulldetail 1 during startup"
},
"-dev": {
"system-generated": true
},
"-display": {
"flags": [
"incomplete"
]
},
"-enablelocalcommand": {
"flags": [
"incomplete"
]
},
"-forceTextureReload": {
"flags": [
"incomplete"
]
},
"-forcetexturereload": {
"system-generated": true
},
"-freq": {
"flags": [
"incomplete"
]
},
"-game": {
"flags": [
"incomplete"
]
},
"-gamma": {
"flags": [
"incomplete"
]
},
"-gl-debug": {
"description": "enables OpenGL debug output. Must be used in conjunction with -dev"
},
"-gl-forward-only-profile": {
"system-generated": true
},
"-gl_ext": {
"flags": [
"incomplete"
]
},
"-glsl-renderer": {
"flags": [
"incomplete"
]
},
"-heapsize": {
"flags": [
"incomplete"
]
},
"-height": {
"flags": [
"incomplete"
]
},
"-ip": {
"flags": [
"incomplete"
]
},
"-maxtmu2": {
"flags": [
"incomplete"
]
},
"-mem": {
"flags": [
"incomplete"
]
},
"-minmemory": {
"flags": [
"incomplete"
]
},
"-no-accel-visuals": {
"description": "Requests un-accelerated graphics (used in debugging to create OpenGL 1.1 context)"
},
"-no-triple-gl-buffer": {
"flags": [
"incomplete"
]
},
"-no24bit": {
"flags": [
"incomplete"
]
},
"-noatlas": {
"system-generated": true
},
"-noconinput": {
"flags": [
"incomplete"
]
},
"-nodesktopres": {
"system-generated": true
},
"-nohome": {
"flags": [
"incomplete"
]
},
"-nohwgamma": {
"flags": [
"incomplete"
]
},
"-nohwtimer": {
"flags": [
"incomplete"
]
},
"-noindphys": {
"flags": [
"incomplete"
]
},
"-noinvlmaps": {
"flags": [
"incomplete"
]
},
"-nolibjpeg": {
"flags": [
"incomplete"
]
},
"-nolibpng": {
"flags": [
"incomplete"
]
},
"-nomouse": {
"flags": [
"incomplete"
]
},
"-nomtex": {
"flags": [
"incomplete"
]
},
"-nonpot": {
"system-generated": true
},
"-nopriority": {
"flags": [
"incomplete"
]
},
"-norjscripts": {
"flags": [
"incomplete"
]
},
"-noscripts": {
"flags": [
"incomplete"
]
},
"-nosound": {
"flags": [
"incomplete"
]
},
"-nostdout": {
"flags": [
"incomplete"
]
},
"-oldgamma": {
"system-generated": true
},
"-particles": {
"flags": [
"incomplete"
]
},
"-port": {
"flags": [
"incomplete"
]
},
"-progtype": {
"flags": [
"incomplete"
]
},
"-r-debug": {
"system-generated": true
},
"-r-no-amd-fix": {
"system-generated": true
},
"-r-nocallback": {
"system-generated": true
},
"-r-nomultibind": {
"system-generated": true
},
"-r-novao": {
"system-generated": true
},
"-r-trace": {
"system-generated": true
},
"-r-verify": {
"system-generated": true
},
"-r-dump-shaders": {
"description": "Write expanded shader source to qw/shaders/<name>.<type>"
},
"-ruleset": {
"flags": [
"incomplete"
]
},
"-showliberrors": {
"flags": [
"incomplete"
]
},
"-startwindowed": {
"flags": [
"incomplete"
]
},
"-userdir": {
"flags": [
"incomplete"
]
},
"-width": {
"flags": [
"incomplete"
]
},
"-window": {
"flags": [
"incomplete"
]
}
}
================================================
FILE: help_commands.json
================================================
{
"+attack": {
"description": "When active the player will fire the weapon he is currently holding.\nThis is the primary command used to make the player fire the gun.\nFor as long as the key that is bound to this command is held down and this command is active the player will keep on firing the gun."
},
"+attack2": {
"description": "Secondary attack button."
},
"+back": {
"description": "When active the player will move backwards."
},
"+cl_wp_stats": {
"system-generated": true
},
"+fire": {
"system-generated": true
},
"+fire_ar": {
"system-generated": true
},
"+forward": {
"description": "When active the player will move forward."
},
"+jump": {
"description": "When active the player will do a single jump. The next jump won't be performed until \"-jump\" has been issued."
},
"+klook": {
"description": "When active, \"+forward\" and \"+back\" become \"+lookup\" and \"+lookdown\" respectively.\nThis command is useful if the player needs to look at objects which are above or below him."
},
"+left": {
"description": "When active the player will turn left."
},
"+lookdown": {
"description": "When active the player will look down."
},
"+lookup": {
"description": "When active the player will look up."
},
"+mlook": {
"description": "When active moving the mouse or joystick forwards and backwards performs \"+lookup\" and \"+lookdown\" respectively.\nThis command is very useful if the player needs to look at objects which are above or below him.\nMost players execute this command and never remove it. This way they can use the keyboard to move the player forward and back and strafe left and right, while using the mouse to turn the player left and right and to make him look up and down.\nIn order to have this command set permanently you will have to create a file called autoexec.cfg in the qw/ directory and put in the line \"+mlook\" into that file.\nBy doing this the game will automatically execute the autoexec.cfg file and it will also active that command.\nAlmost every player uses this command nowadays, because the combination of using mouse and keyboard is widely considered the best."
},
"+movedown": {
"description": "When active the player will swim down when in the water."
},
"+moveleft": {
"description": "When active the player will strafe left."
},
"+moveright": {
"description": "When active the player will strafe right."
},
"+moveup": {
"description": "When active the player will swim up when in the water."
},
"+qtv_delay": {
"system-generated": true
},
"+right": {
"description": "When active the player will turn right."
},
"+showscores": {
"description": "Display scoreboard."
},
"+showteamscores": {
"description": "Display team scoreboard."
},
"+speed": {
"description": "When active the player will run."
},
"+strafe": {
"description": "When active, \"+left\" and \"+right\" function like \"+moveleft\" and \"+moveright\", strafing in that direction."
},
"+use": {
"description": "When used it will activate objects in the game that have been designed to react at \"+use\""
},
"+voip": {
"system-generated": true
},
"+zoom": {
"system-generated": true
},
"-attack": {
"description": "When used the player will stop firing the gun if \"+attack\" is active."
},
"-attack2": {
"description": "Secondary attack button."
},
"-back": {
"description": "When used the player will stop moving back if \"+back\" is active."
},
"-cl_wp_stats": {
"system-generated": true
},
"-fire": {
"system-generated": true
},
"-fire_ar": {
"system-generated": true
},
"-forward": {
"description": "When used the player will stop moving forward if \"+forward\" is active."
},
"-jump": {
"description": "When used the player will stop jumping if \"+jump\" is active."
},
"-klook": {
"description": "When used the forward and back keys will stop making the player look up and down if \"+klook\" is active."
},
"-left": {
"description": "When used the player will stop turning left if \"+left\" is active."
},
"-lookdown": {
"description": "When used the player will stop looking down if \"+lookdown\" is active."
},
"-lookup": {
"description": "When used the player will stop looking up if \"+lookup\" is active."
},
"-mlook": {
"description": "When used the mouse forward and back movement will stop making the player look up and down if \"+mlook\" is active."
},
"-movedown": {
"description": "When used the player will stop moving down if \"+movedown\" is active."
},
"-moveleft": {
"description": "When used the player will stop moving left if \"+moveleft\" is active."
},
"-moveright": {
"description": "When used the player will stop moving right if \"+moveright\" is active."
},
"-moveup": {
"description": "When used the player will stop moving up if \"+moveup\" is active."
},
"-qtv_delay": {
"system-generated": true
},
"-right": {
"description": "When used the player will stop turning right if \"+right\" is active."
},
"-showscores": {
"description": "When used the score screen will disappear if +showscores is active."
},
"-showteamscores": {
"description": "When used the score screen will disappear if +showteamscores is active."
},
"-speed": {
"description": "When used the player will walk."
},
"-strafe": {
"description": "When used the turn left and turn right keys will once again perform their original functions."
},
"-use": {
"description": "When used it will stop activating objects in the game that have been designed to react at \"+use\"."
},
"-voip": {
"system-generated": true
},
"-zoom": {
"system-generated": true
},
"acc_block": {
"system-generated": true
},
"acc_create": {
"system-generated": true
},
"acc_list": {
"system-generated": true
},
"acc_remove": {
"system-generated": true
},
"acc_unblock": {
"system-generated": true
},
"addip": {
"description": "Add a single IP or a domain of IPs to the IP list of the server.\nVery useful for banning people or for specifying which IPs only have access to the server.\n\nExamples:\naddip 123.123.123.123\naddip 123.123.123",
"syntax": "<ip>"
},
"addloc": {
"arguments": [
{
"description": "The name of the loc.",
"name": "locname"
}
],
"description": "Adds a new loc with the specified name at current location.",
"syntax": "\"locname\""
},
"addserver": {
"description": "Server Browser: This allows you to add a server to the UNBOUND source.\nThis can be used to quickly bookmark servers."
},
"alias": {
"description": "Used to create a reference to a command or list of commands.\nWhen used without parameters, displays all current aliases.",
"remarks": "Enclose multiple commands within quotes and separate each command with a semi-colon."
},
"alias_in": {
"arguments": [
{
"description": "Alias to be changed",
"name": "alias"
},
{
"description": "Variable whose value is inserted into alias",
"name": "variable"
},
{
"description": "Bitmask:\n0 - insert from left\n1 - from right side\n2 - check in advance whether a string being inserted already exists in alias\n4 - print an error message if the inserted string is already present in the alias\n8 - automatically create an alias if it doesn't exist yet",
"name": "options"
}
],
"description": "Inserts contents of variable into alias.",
"syntax": "<alias> <variable> [<options>]"
},
"alias_out": {
"system-generated": true
},
"aliasedit": {
"description": "Allows you to edit your alias in console manually.",
"syntax": "<alias>"
},
"aliaslist": {
"arguments": [
{
"description": "Prints only [regexp] matching aliases",
"name": "[regexp]"
}
],
"description": "Prints all aliases.",
"syntax": "[regexp]"
},
"align": {
"system-generated": true
},
"allskins": {
"description": "Downloads all skins that is currently in use.\nUseful for refreshing skins without exiting the level."
},
"authenticate": {
"system-generated": true
},
"autotrack": {
"description": "Toggles auto-tracking.\nAuto-tracking switches views for you when you are a spectator or when you are watching a demo or a broadcasted QTV match.\nIt chooses the best available autotrack - if you are spectator, looks for server-side command autotrack, if you are watching a demo or QTV stream, turns on both demo_autotrack and mvd_autotrack, mvd_autotrack will get turned off as soon as demo_autotrack data are found.\nAs a last resort if all previous autotrack are not available, cl_hightrack will be used."
},
"bar_armor": {
"description": "HUD element that displays a bar representing your amount of armor."
},
"bar_health": {
"description": "HUD element that displays a bar representing your amount of health."
},
"batteryinfo": {
"system-generated": true
},
"bf": {
"description": "This command shows a background screen flash that is the same one that is produced when the player picked up an item in the game.\nThis command basically serves no useful function except when people want to use it in scripts to give the user some visual feedback when an aliases is used for example."
},
"bind": {
"description": "This command binds one or several commands to a key.\nTo bind multiple commands to a key, enclose the commands in double-quotes (\") and separate them with semicolons (;)."
},
"bindedit": {
"description": "Allows you to edit your bind in the console.",
"syntax": "<key>"
},
"bindlist": {
"description": "Prints all binds."
},
"calc_fov": {
"arguments": [
{
"description": "The old wide aspect FOV used in v2.x",
"name": "old_fov"
}
],
"description": "Converts (ezq2) wide aspect FOV to new FOV."
},
"calendar": {
"description": "Same as \"date\" but also shows a small calendar of the month. Nice :)"
},
"cam_angles": {
"arguments": [
{
"description": "",
"name": "pitch"
},
{
"description": "",
"name": "yaw"
}
],
"description": "Set new camera angles.",
"syntax": "<pitch> <yaw> or cam_angles \"pitch yaw\""
},
"cam_pos": {
"arguments": [
{
"description": "X coordinate",
"name": "x"
},
{
"description": "Y coordinate",
"name": "y"
},
{
"description": "Z coordinate",
"name": "z"
}
],
"description": "Set new camera position.",
"syntax": "<x> <y> <z> or cam_pos \"x y z"
},
"cancel": {
"system-generated": true
},
"cd": {
"description": "cd play 5 plays cd track #5",
"remarks": "You need -cdaudio to use this command."
},
"centerview": {
"description": "Centers the player's view ahead after +lookup or +lookdown."
},
"cfg_load": {
"description": "This will do a cfg_reset and then execute filename.cfg (ezquake/configs).",
"syntax": "<filename>"
},
"cfg_reset": {
"description": "This command will unbind all keys, delete all aliases, msg_triggers, reset all plus commands, teamplay settings and reset all variables.\nUser made variables (created with set/seta) are deleted.\nAfter resetting all the above, it executes default.cfg and then autoexec.cfg."
},
"cfg_save": {
"description": "This command will dump all aliases, bindings, plus commands, msg_triggers, teamplay settings and variables to filename.cfg .\nUser made variables (created with set/seta) are saved as well.",
"remarks": "Configs saved with cfg_save are saved in quake/ezquake/configs/*.cfg",
"syntax": "<filename>"
},
"check_maps": {
"system-generated": true
},
"cl_messages": {
"description": "Prints amount and size of messages sent from server to ezQuake client."
},
"clear": {
"description": "This command clears the console screen of any text."
},
"clearlocs": {
"description": "Clear all currently loaded locs."
},
"clipboard": {
"description": "Copies all the following arguments to the system clipboard"
},
"cmd": {
"description": "Sends a command directly to the server."
},
"cmdlist": {
"description": "Prints a list of all available commands into the console."
},
"cmdlist_re": {
"description": "This command same as cmdlist, but supports (perl) regexp matching."
},
"color": {
"description": "This command sets the color for the player's shirt and pants.",
"remarks": "If only the shirt color is given, the pant color will match."
},
"connect": {
"arguments": [
{
"description": "IP address of a QuakeWorld server.",
"name": "address"
}
],
"description": "Connects your client to a QuakeWorld server.",
"syntax": "<address>"
},
"connectbr": {
"description": "Connects to given server via fastest available path (ping-wise)."
},
"cuff": {
"system-generated": true
},
"cvar_in": {
"system-generated": true
},
"cvar_out": {
"system-generated": true
},
"cvar_reset": {
"description": "Resets the cvar to default.\n\nExample:\ncvar_reset topcolor\n - sets topcolor to default.",
"syntax": "<cvar>"
},
"cvar_reset_re": {
"description": "Resets cvar(s) matching the regex to default.\n\nExample:\ncvar_reset ^gl_.*\n- resets all gl_ settings to default values.",
"syntax": "[regex]"
},
"cvaredit": {
"system-generated": true
},
"cvarlist": {
"description": "Print cvars."
},
"cvarlist_re": {
"description": "This command same as cvarlist, but supports (perl) regexp matching."
},
"date": {
"description": "Shows current time, date, month and year."
},
"demo_capture": {
"arguments": [
{
"description": "Tells the client to start capturing.",
"name": "start"
},
{
"description": "Duration of the capture, in seconds.\nCan be float value. Must be positive. Required argument.",
"name": "time"
},
{
"description": "An .avi file is saved instead of screenshots. See demo_capture_codec.",
"name": "avifile"
},
{
"description": "Stop the capture manually before <time>.\nExample: demo_capture stop",
"name": "stop"
}
],
"description": "Captures a series of screenshots or an .avi file.",
"syntax": "<start> <time> [avifile] | <stop>"
},
"demo_controls": {
"system-generated": true
},
"demo_jump": {
"description": "Jumps playback to a point in time.\n\nExamples:\ndemo_jump 120\n - Jump playback to 120 seconds from the start of the demo.\ndemo_jump 4:30\n - Jump playback to 4 minutes and 30 seconds from the start of the demo.",
"syntax": "[+|-][m:]<s>"
},
"demo_jump_end": {
"system-generated": true
},
"demo_jump_mark": {
"system-generated": true
},
"demo_jump_status": {
"arguments": [
{
"description": "For example h<1 +rl or +lg",
"name": "condition"
}
],
"description": "Fast-forward in the demo playback until certain condition holds.",
"syntax": "<condition>"
},
"demo_playlist_clear": {
"description": "Clears the demo playlist."
},
"demo_playlist_next": {
"description": "Goes to the next demo in the playlist."
},
"demo_playlist_prev": {
"description": "Goes to the previous demo in the playlist."
},
"demo_playlist_stop": {
"description": "Stops the demo playlist playback."
},
"demo_setspeed": {
"description": "You can vary the speed of demo playback with the 'demo_setspeed' command.\n'demo_setspeed x' sets the playback speed to x% of normal speed so that 'demo_setspeed 50' is half speed and 'demo_setspeed 300' gives you triple speed.",
"syntax": "[default: 100]"
},
"describe": {
"description": "Prints manual info about given variable or command into the console.",
"syntax": "<variable or command name>"
},
"dev_cache_print": {
"system-generated": true
},
"dev_cache_report": {
"system-generated": true
},
"dev_dump_defaults": {
"system-generated": true
},
"dev_gfxbenchmarklightmaps": {
"system-generated": true
},
"dev_gfxtrace": {
"system-generated": true
},
"dev_help_issues": {
"system-generated": true
},
"dev_help_verify_config": {
"system-generated": true
},
"dev_hunk_print": {
"system-generated": true
},
"dev_physicsnormalsave": {
"system-generated": true
},
"dev_physicsnormalset": {
"system-generated": true
},
"dev_physicsnormalshow": {
"system-generated": true
},
"dev_pointfile": {
"description": "The pointfile command will load a .pts file and give a dotted line indicating where the leak(s) are on the level.",
"remarks": "If a leak exists in the level, qbsp generates a non-zero .pts file in the maps directory.",
"syntax": "<filename>"
},
"devmap": {
"description": "Try it in cheats mode, start a map (devmap dm6) and type fly."
},
"dir": {
"system-generated": true
},
"disconnect": {
"description": "This command will disconnect you from the server/demo/proxy you are currently connected to."
},
"dns": {
"description": "Performs DNS lookups and reverse lookups.",
"syntax": "<address>"
},
"download": {
"description": "Manually download a quake file from the server.\n\nExample:\ndownload skins/foo.pcx"
},
"easyrecord": {
"description": "This start recording demo and rename it like you have put with match_* settings."
},
"echo": {
"description": "This command will print text to your local console.",
"syntax": "<text>"
},
"edict": {
"description": "Reports information on a given edict in the game."
},
"edictcount": {
"description": "Displays summary information on the edicts in the game."
},
"edicts": {
"description": "Displays information on all edicts in the game."
},
"enemycolor": {
"description": "This will override enemy color.\n\nExample:\nenemycolor 12 13",
"remarks": "If only the shirt color is given, the pant color will match."
},
"eval": {
"arguments": [
{
"description": "Arithmetic expression, can also contain strings",
"name": "expression"
}
],
"description": "Evaluates given expression and prints the result into the console.",
"syntax": "<expression>"
},
"exec": {
"description": "Executes a config file from \\qw, \\id1 or \\ezquake."
},
"f_modified": {
"description": "All the usual dm models, sounds, palettes etc are included in the check.\nIn Team Fortress the TF flag, dispensers and sentry guns are also checked. There is also an f_modified command which will print your f_modified response.",
"remarks": "You need to install security files."
},
"f_ruleset": {
"system-generated": true
},
"f_server": {
"description": "Prints proxies you are using."
},
"filter": {
"description": "Message filtering system. Only team messages are filtered.\nUse filter with no parameters to list current filters and filter clear to remove all filters.\n\nExample:\nfilter #a say_team i can see this message #a.\nsay_team i can't see this message #d."
},
"find": {
"description": "Lists all the players on all servers. Based on QTV."
},
"find_and_follow": {
"description": "Find a player by name and connect to the same server. Based on QTV."
},
"find_update": {
"description": "Update the database of the current players on all servers. Based on QTV."
},
"floodprot": {
"arguments": [
{
"description": "Number of allowed messages per client in given time period.",
"name": "messages"
},
{
"description": "Time period in which more than <messages> cannot be sent by a client.",
"name": "seconds"
},
{
"description": "Time the flooding player will be muted for.",
"name": "silence"
}
],
"description": "Sets flood protection parameters.",
"syntax": "<messages> <seconds> <silence>"
},
"floodprotmsg": {
"system-generated": true
},
"flush": {
"description": "This command will clear the current game cache.\nIt is usually used by developers to flush the memory of all game information and objects to test if the mechanism which handles the loading of the necessary files into memory works properly.\nSometimes the game cache can become filled with unnecessary information and may need to be flushed manually. This is usually not necessary since the game automatically flushes all the data between every map."
},
"fly": {
"description": "You can fly around the map with flymode on.",
"remarks": "Needs cheat support by server."
},
"fontlist": {
"description": "Lists TrueType fonts available on the system."
},
"fontload": {
"description": "Loads specified TrueType font for use where _proportional is set."
},
"force_centerview": {
"description": "This command centers the player's screen.\nIt was created because the original \"centerview\" command did not work when \"+mlook\" was enabled.\nThis command will center the screen in any mode no matter commands are active."
},
"fraglogfile": {
"description": "Enables logging of kills to a file.\nUseful for external frag polling programs.\nThe file name is frag_##.log"
},
"fs_diff": {
"system-generated": true
},
"fs_dir": {
"system-generated": true
},
"fs_loadpak": {
"system-generated": true
},
"fs_locate": {
"system-generated": true
},
"fs_path": {
"system-generated": true
},
"fs_removepak": {
"system-generated": true
},
"fs_restart": {
"system-generated": true
},
"fs_search": {
"description": "Search the filesystem cache by suffix."
},
"fullinfo": {
"description": "Used by QuakeSpy and Qlist to set setinfo variables.\n\nExample:\nfullinfo \"\\quote\\I am the only Lamer!\\\"",
"remarks": "Use the setinfo command to see the output."
},
"gamedir": {
"description": "Specifies the directory where the QWPROGS.DAT file is found and other additional files such as maps, models, sound, and skins for Quake modifications.",
"remarks": "This command can be specified while a game is in progress, after the current map ends this command will take effect."
},
"gamma": {
"description": "You can edit brightness.",
"remarks": "This is a shortcut for sw_gamma in vga and gl_gamma in gl."
},
"give": {
"description": "Give user a certain amount of an item.\nItems:\n1 - Axe\n2 - Shotgun\n3 - Double-Barrelled Shotgun\n4 - Nailgun\n5 - Super Nailgun\n6 - Grenade Launcher\n7 - Rocket Launcher\n8 - ThunderBolt\nC - Cells\nH - Health\nN - Nails\nR - Rockets\nS - Shells\n\nExamples:\ngive 1234 R 99\n - gives 99 rockets to user 1234\ngive 1234 7\n - gives the rocket launcher to user 1234",
"remarks": "The -cheats parameter must be used to launch the server to use the give command. Also the key and value *cheats ON will be displayed in the serverinfo information."
},
"gl_checkmodels": {
"description": "Not well implemented yet. Quickly looks at the pmodel and emodel listed in every player's infokey and reports anything unusual it finds.\nBasically it saves you having to type \"users. user x\" and then comparing the models for everyone."
},
"gl_inferno": {
"description": "Clientside (no one else can see it) hard-striking rocket, serves well for your entertainment."
},
"gl_setmode": {
"description": "Quickly sets many variables to fit pre-defined scheme.\nTry using \"newtrails\" or \"vultwah\".",
"syntax": "<modename>"
},
"god": {
"description": "You are immortal with god mode on.",
"remarks": "Needs cheats support by server."
},
"hash": {
"system-generated": true
},
"heartbeat": {
"description": "Forces a heartbeat to be sent to the master server.\nA heartbeat informs the master server of the server's IP address thus making sure that the master server knows that the server is still alive."
},
"help": {
"description": "Enters manual pages. Use arrows, [Page Down], [Page Up], [Tab] and [Enter] for navigation."
},
"hide": {
"system-generated": true
},
"hud262_add": {
"arguments": [
{
"description": "Can be cvar or str",
"name": "type"
},
{
"description": "String or cvarname",
"name": "param"
}
],
"description": "Creates or changes a HUD element with hud_name.\nThe following types of HUD elements are available:\ncvar - a value of a variable is displayed; in this case param must be a name of this variable.\nstr - a string defined by param is displayed\nCvar and %macros expansion is performed every time element is shown.",
"syntax": "<hud_name> <type> <param>"
},
"hud262_alpha": {
"arguments": [
{
"description": "HUD element's name",
"name": "name"
},
{
"description": "From 0 up to 1 (0 - invisible, 1 - opaque)",
"name": "value"
}
],
"description": "Sets a transparency for strings-HUD element.",
"syntax": "<name> <value>"
},
"hud262_bg": {
"arguments": [
{
"description": "HUD element's name",
"name": "hud_name"
},
{
"description": "color 111 - yellow, 79 - red, etc",
"name": "bg_color"
}
],
"description": "Defines a color of the HUD element background.\n0 - transparent (default).",
"syntax": "<hud_name> <bg_color>"
},
"hud262_blink": {
"arguments": [
{
"description": "HUD element's name",
"name": "name"
},
{
"description": "Blinking period in milliseconds",
"name": "period"
},
{
"description": "Defines what exactly should blink:\n0 - nothing\n1 - text only\n2 - background only\n3 - text and background",
"name": "mask"
}
],
"description": "Allows to make blinking strings-HUD elements.",
"syntax": "<name> <period> <mask>"
},
"hud262_bringtofront": {
"arguments": [
{
"description": "HUD element's name",
"name": "name"
}
],
"description": "Transfers all HUD elements created after hud_name element (including) to the end of drawing list, that in short means that they will be displayed above all other elements which could be present on that place already.",
"syntax": "<name>"
},
"hud262_disable": {
"arguments": [
{
"description": "HUD element's name",
"name": "hud_name"
}
],
"description": "Prohibits to display one or more HUD elements.",
"syntax": "<hud_name> [hud_name2...]"
},
"hud262_enable": {
"arguments": [
{
"description": "HUD element's name",
"name": "hud_name"
}
],
"description": "Allows to display one or more HUD elements.",
"syntax": "<hud_name> [hud_name2...]"
},
"hud262_list": {
"arguments": [
{
"description": "Print only [regexp] matching HUDs",
"name": "regexp"
}
],
"description": "Prints a list of strings-HUD elements.",
"syntax": "[regexp]"
},
"hud262_move": {
"arguments": [
{
"description": "HUD element's name",
"name": "hud_name"
},
{
"description": "Horizontal shift",
"name": "dx"
},
{
"description": "Vertical shift",
"name": "dy"
}
],
"description": "Moves a HUD element.\ndx and dy deviations are measured in symbols.",
"syntax": "<hud_name> <dx> <dy>"
},
"hud262_position": {
"arguments": [
{
"description": "Name of your HUD element",
"name": "hud_name"
},
{
"description": "Position:\n1 - upper left corner\n2 - upper right corner\n3 - lower right corner\n4 - lower left corner\n5 - upper central position\n6 - lower central position",
"name": "pos"
},
{
"description": "Horizontal offset",
"name": "x"
},
{
"description": "Vertical offset",
"name": "y"
}
],
"description": "Indicates position of a HUD element on the screen.",
"syntax": "<hud_name> <pos> <x> <y>"
},
"hud262_remove": {
"arguments": [
{
"description": "HUD element's name",
"name": "hud_name"
}
],
"description": "Kills a HUD element.",
"syntax": "<hud_name>"
},
"hud262_width": {
"arguments": [
{
"description": "HUD element's name",
"name": "hud_name"
},
{
"description": "The range of width is 0-128, the value 0 (default) cancels the width forcing.",
"name": "width"
}
],
"description": "Forces a HUD element width and cuts undesired space or adds it when needed.",
"syntax": "<hud_name> <width>"
},
"hud_editor": {
"description": "Toggles the HUD editor on or off."
},
"hud_export": {
"arguments": [
{
"description": "Name (with optional path) of saved file. If .cfg extension is not present it will be automatically added.",
"name": "filename"
}
],
"description": "Saves setup of your HUD (scr_newHUD 1) into a separate .cfg file.",
"syntax": "<filename>"
},
"hud_fps_min_reset": {
"system-generated": true
},
"hud_recalculate": {
"description": "Refresh the positions of your HUD elements."
},
"hunk_print": {
"system-generated": true
},
"if": {
"arguments": [
{
"description": "A string where you usually use your own text, macros, and values of variables (like $volume).",
"name": "expr1"
},
{
"description": "==, =, !=, <>, >, <, >=, <=, isin, !isin\nWhere 'isin' means \"expr1 is a substring of expr2\" and '!isin' is a negation of this.\nThe others are standard mathematical comparison.",
"name": "operator"
},
{
"description": "See expr1",
"name": "expr2"
},
{
"description": "Will get executed if the binary operation succeeds.",
"name": "cmd1"
},
{
"description": "Will get executed if the binary operation fails.",
"name": "cmd2"
}
],
"description": "Condition clause.",
"syntax": "<expr1> <operator> <expr2> <cmd1> [else <cmd1>]"
},
"if_exists": {
"description": "If an object <name> of a type <type> exists, a command <cmd1> will be issued, or a command <cmd2> if such object could not be found.\nThe type of the object can be either cvar, alias, trigger or HUD.",
"syntax": "<type> <name> <cmd1> [<cmd2>]"
},
"ignore": {
"description": "You can give ignore either a player's name (name completion is useful for this) or a user ID (ignore <name|userid>).\nIgnore without any command line parameters displays your ignore list.",
"syntax": "<name|userid>"
},
"ignore_id": {
"description": "Identical to ignore, except it only accepts user IDs (only useful if there is a player whose name is the user ID of someone you want to ignore).",
"syntax": "<userid>"
},
"ignore_team": {
"description": "Ignores a team instead of players.\n\nExample:\nignore_team nine\n - ignores whole clan nine."
},
"ignore_voip": {
"system-generated": true
},
"ignorelist": {
"description": "Prints ignore list."
},
"impulse": {
"description": "This command calls a game function or QuakeC function.\nOften impulses are used by the mod by defining aliases for game functions like \"ready\" and \"break\" that call certain impulses."
},
"in_evdevlist": {
"description": "Prints list of evdev devices.\nIf the list is empty, you probably don't have access rights to /dev/input/eventX\nsudo chmod 644 /dev/input/event* should help you."
},
"in_restart": {
"system-generated": true
},
"inc": {
"description": "Increments a variable by one or adds to it the optional second argument.\nThere are no 'add' or 'dec' commands because 'inc' can handle both addition and subtraction.\n\nExample:\ninc sensitivity -2\n - subtracts 2 from sensitivity."
},
"itemsclock": {
"description": "HUD element displaying items that will spawn soon in the game. Works only in MVD and QTV playback."
},
"join": {
"description": "Joins a specified server as player.\nIf no address is specified, join will reconnect to the last visited server as a player.\n\nExample:\njoin 123.124.125.126",
"syntax": "<address>"
},
"joyadvancedupdate": {
"description": "This command must be run to apply changes made to the joyadvaxis[xyzruv] or joyindex cvars."
},
"kick": {
"description": "Removes a user from the server. Use the status command to receive the user's id.\n\nExample:\nkick 1234",
"syntax": "<userid>"
},
"kill": {
"description": "Suicide. (-2 frags on ktpro/kteam servers)"
},
"legacyquake": {
"arguments": [
{
"description": "Optional argument, when specified, will disable only new features from specified client version",
"name": "ver"
}
],
"description": "Command that turns off new features added to the client that may confuse experienced users who don't like new features :-)",
"syntax": "[ver]"
},
"listip": {
"description": "Prints out the current list of IPs on the server list. Not to be confused with the status command which prints out the list of the IPs of the connected players."
},
"load": {
"description": "Load 123 loads saved game 123.",
"syntax": "<filename>"
},
"loadFragfile": {
"system-generated": true
},
"loadcharset": {
"description": "You can change your console font from within ezQuake. Put all your charset images in qw/textures/charsets/*.png (and *.tga) and use /loadcharset XXX to load XXX.png (or tga).\n\"/loadcharset original\" will restore the 8bit font in your gfx.wad (this is default).",
"remarks": "This command is just a 'shortcut' for the new gl_consolefont variable."
},
"loadfont": {
"system-generated": true
},
"loadfragfile": {
"description": "Loads the specified fragfile.",
"syntax": "<filename>"
},
"loadloc": {
"description": "Loads a loc file (must be located in id1/locs, qw/locs, or ezquake/locs.\nThe \".loc\" extension is optional, for example, \"loadloc dm6\"; if the file name has no extension, use its explicit name (\"loadloc dm6.\").",
"syntax": "<filename>"
},
"loadpak": {
"system-generated": true
},
"loadsky": {
"description": "Loads your skybox (qw\\env).\n\nExample:\nloadsky snow",
"syntax": "<filename>"
},
"localinfo": {
"description": "Shows or sets localinfo variables. Useful for mod programmers who need to allow the admin to change settings.\nThis is an alternative storage space to the serverinfo space for mod variables. The variables stored in this space are not broadcast on the network.\nThis space also has a 32-kilobyte limit which is much greater then the 512-byte limit on the serverinfo space.\nSpecial Keys: (current map) (next map) - Using this combination will allow the creation of a custom map cycle without editing code.\n\nExamples:\nlocalinfo dm2 dm4\nlocalinfo dm4 dm6\nlocalinfo dm6 dm2"
},
"locate": {
"system-generated": true
},
"locations_add": {
"system-generated": true
},
"locations_clearall": {
"system-generated": true
},
"locations_loadfile": {
"system-generated": true
},
"locations_remove": {
"system-generated": true
},
"locations_savefile": {
"system-generated": true
},
"locname": {
"description": "Create a new location in the current spot."
},
"log": {
"description": "If you type \"log filename\" it will log console to filename.log in your gamedir.\nIt overwrites logs without asking.",
"syntax": "<filename>"
},
"logerrors": {
"system-generated": true
},
"logfile": {
"system-generated": true
},
"logplayers": {
"system-generated": true
},
"logrcon": {
"system-generated": true
},
"logtelnet": {
"system-generated": true
},
"ls": {
"system-generated": true
},
"macrolist": {
"description": "Prints a list of all available macros."
},
"map": {
"description": "Loads a map and starts a game.\n\nExample:\nmap e1m1"
},
"mapgroup": {
"description": "mapgroup 2fort5r 2fort5: will make 2fort5r and 2fort5 use the 2fort5r textures, locs and etc...",
"syntax": "mapgroup [map1] [map2] ..."
},
"master_rcon_password": {
"system-generated": true
},
"match_forcestart": {
"description": "Simulates the start of a match (so that auto recording etc is triggered).\nUseful if you join a ktpro server after countdown has started, or you are playing a mode that doesn't have a proper countdown (eg race mode).\nMost importantly this is useful for TF servers, since you can use a msg_trigger to execute match_forcestart on \"MATCH BEGINS NOW\"."
},
"match_format_macrolist": {
"description": "Prints a list of the macros and their meaning for autorecording and autoscreenshots."
},
"match_save": {
"description": "If you are using 'match_auto_record 1' then a temp demo will be recorded to c:\\quake\\ezquake\\temp\\_!_temp_!_.qwd each time a map starts.\nThis temp demo will be overwritten when the next match starts.\nIf you want to keep the temp demo, use the \"match_save\" command. This will move the demo to the same folder and filename that easyrecord would have used."
},
"menu_demos": {
"description": "This command will display the demos menu."
},
"menu_fps": {
"description": "This command will display the fps menu."
},
"menu_help": {
"description": "This command will display the help menu."
},
"menu_keys": {
"description": "This command will display the keys menu."
},
"menu_load": {
"description": "This command will display the singleplayer load menu."
},
"menu_main": {
"description": "This command will display the main menu."
},
"menu_mp3_control": {
"description": "This command will display the mp3 menu."
},
"menu_mp3_playlist": {
"description": "This command will display the mp3 playlist menu."
},
"menu_multiplayer": {
"description": "This command will display the multiplayer menu."
},
"menu_options": {
"description": "This command will display the options menu."
},
"menu_quit": {
"description": "This command will display the quit menu."
},
"menu_save": {
"description": "This command will display the singleplayer save menu."
},
"menu_setup": {
"description": "This command will display the setup menu."
},
"menu_singleplayer": {
"description": "This command will display the singleplayer menu."
},
"menu_slist": {
"description": "This command will display the server browser."
},
"menu_video": {
"description": "This command will display the video menu."
},
"messagemode": {
"description": "Prompts for string to broadcast to all other players."
},
"messagemode2": {
"description": "Prompts for string to broadcast to team members."
},
"messagemodeqtvtogame": {
"description": "Go into message mode for chatting in the QTV chat."
},
"mod": {
"system-generated": true
},
"modfraglogfile": {
"system-generated": true
},
"move": {
"system-generated": true
},
"mp3_fadeout": {
"description": "Like stop but fades out."
},
"mp3_fforward": {
"description": "Fast forward 5seconds."
},
"mp3_loadplaylist": {
"description": "Loads the playlist filename.m3u\n\nExample:\nmp3_loadplaylist top10\n - loads top10.m3u.",
"syntax": "<filename>"
},
"mp3_next": {
"description": "Next song."
},
"mp3_pause": {
"description": "Pause mp3."
},
"mp3_play": {
"description": "Play mp3."
},
"mp3_playlist": {
"description": "Displays playlist. Currently playing track is highlighted."
},
"mp3_playtrack": {
"description": "Play track number #num from playlist.\n\nExample:\nmp3_playtrack 5\n - plays track 5 from playlist.",
"syntax": "<track>"
},
"mp3_prev": {
"description": "Previous song."
},
"mp3_repeat": {
"description": "Repeat playlist.",
"syntax": "<off|on>"
},
"mp3_rewind": {
"description": "Rewind 5seconds."
},
"mp3_shuffle": {
"description": "Shuffle mp3s.",
"syntax": "<off|on>"
},
"mp3_songinfo": {
"description": "Displays song title and other info like time elapsed, total time, and whether paused, stopped or playing."
},
"mp3_startwinamp": {
"description": "Starts winamp if it is not running."
},
"mp3_stop": {
"description": "Stop mp3."
},
"mp3_volume": {
"system-generated": true
},
"msg_trigger": {
"arguments": [
{
"description": "The name of the alias you want to be executed when trigger matches the string.",
"name": "alias"
},
{
"description": "Case-sensitive substring of the message you want to catch in this trigger.",
"name": "string"
},
{
"description": "Level of the message.\n0 - pickup messages\n1 - death messages\n2 - critical messages\n3 - chat messages\nEverything else is level 4.",
"name": "level"
}
],
"description": "Allows you to set rules that will automatically execute actions when a certain message is sent from a server.\nThis is very useful in Team Fortress, in deathmatch it can be used for example for auto-reporting \"quad in 30\" when you receive \"Quad Damage is wearing out\" message.",
"remarks": "Only some server messages can be triggered. Usually no pickup messages nor your teammates text is triggered.",
"syntax": "<alias> <string> [-l] <level>"
},
"mute": {
"system-generated": true
},
"mutesound": {
"system-generated": true
},
"mvd_dumpstats": {
"description": "Dumps statistics gathered from a MVD demo into a \"stats.xml\" file in the current working directory."
},
"mvd_list_items": {
"system-generated": true
},
"mvd_name_item": {
"system-generated": true
},
"mvd_remove_item": {
"system-generated": true
},
"mvdrecord": {
"system-generated": true
},
"mvdstop": {
"system-generated": true
},
"netproblem": {
"description": "HUD element - icon displayed when network traffic is experiencing problems like lost packets, large delay, etc."
},
"noclip": {
"description": "You can fly and go thru objects free mode as spectator",
"remarks": "Needs cheats support by server."
},
"nslookup": {
"system-generated": true
},
"observe": {
"description": "Connects you to a server as a spectator. If no address is specified, observe will reconnect to the last visited server as a spectator.\n\nExample:\nobserve 123.124.125.126",
"syntax": "<address>"
},
"observebr": {
"description": "Connects to given server as spectator via fastest available path (ping-wise)."
},
"observeqtv": {
"system-generated": true
},
"order": {
"system-generated": true
},
"packet": {
"description": "Sends a packet with specified contents to the destination.\n\nExample:\npacket 123.123.123.123:27500 \"status\"",
"syntax": "<address>"
},
"password": {
"description": "Set the password to enter a password protected server."
},
"path": {
"description": "Shows what paths ezQuake is using."
},
"pause": {
"description": "Pauses a game.",
"remarks": "Servers must support pausing."
},
"penaltylist": {
"system-generated": true
},
"penaltyremove": {
"system-generated": true
},
"place": {
"system-generated": true
},
"play": {
"description": "Plays a sound effect.\n\nExample:\nplay misc/runekey.wav",
"syntax": "<filename>"
},
"playdemo": {
"description": "Plays a recorded demo.\n\nExample:\nplaydemo thresh.qwd",
"syntax": "<filename>"
},
"playvol": {
"description": "Plays a sound at a given volume.\n\nExamples:\nplayvol items/protect.wav .5\nplayvol items/protect.wav 2",
"syntax": "<filename> (volume)"
},
"profile": {
"description": "Reports information about QuakeC stuff."
},
"qstat": {
"system-generated": true
},
"qtv": {
"arguments": [
{
"description": "IP address of the internet QTV broadcasting some QW action",
"name": "address"
}
],
"description": "Connects you to internet QTV broadcasting some action, using your local proxy.\nStarts local QTV proxy, tells it what broadcasting proxy it should connect to and by connecting to it you'll see the action broadcasted on the IP you've specified.",
"syntax": "<address>"
},
"qtv_close": {
"system-generated": true
},
"qtv_fixuser": {
"system-generated": true
},
"qtv_list": {
"system-generated": true
},
"qtv_query_demolist": {
"system-generated": true
},
"qtv_query_sourcelist": {
"system-generated": true
},
"qtv_reconnect": {
"description": "Reconnect to last QTV server the client was connected to."
},
"qtv_status": {
"system-generated": true
},
"qtv_update": {
"system-generated": true
},
"qtvplay": {
"system-generated": true
},
"qtvreconnect": {
"system-generated": true
},
"qtvusers": {
"system-generated": true
},
"quit": {
"description": "Exit - disconnects from the server and closes the client."
},
"qwurl": {
"system-generated": true
},
"radar": {
"description": "HUD element showing a map overview.",
"syntax": "<property> <value>"
},
"rcon": {
"description": "Issue the set of commands to the server you are currently connected to or have set in rcon_address.\nYou must know the rcon password for that specific server."
},
"re_trigger": {
"arguments": [
{
"description": "re_trigger name",
"name": "rt_name"
},
{
"description": "Regexp defines which messages (or whatever) will activate a trigger.\nThe client uses the PCRE library (Perl-compatible regular expression library).\nYou can find information how to write regexps in the PCRE's documentation.",
"name": "regexp"
}
],
"description": "When used w/o parameter, prints a list of all triggers.\nWhen regexp is not defined prints options set for rt_name trigger; otherwise creates or changes rt_name trigger.",
"syntax": "re_trigger [rt_name [regexp]]"
},
"re_trigger_delete": {
"arguments": [
{
"description": "re_trigger name",
"name": "rt_name"
}
],
"description": "Deletes the corresponding trigger.",
"syntax": "re_trigger_delete rt_name"
},
"re_trigger_disable": {
"arguments": [
{
"description": "Re_trigger name. Can be REGEXP.",
"name": "rt_name"
}
],
"description": "Disables activation of one or more triggers.",
"syntax": "re_trigger_disable rt_name1 [rt_name2...]"
},
"re_trigger_enable": {
"arguments": [
{
"description": "Re_trigger name. Can be REGEXP.",
"name": "rt_name"
}
],
"description": "Enables activation of one or more triggers.",
"syntax": "re_trigger_enable rt_name1 [rt_name2...]"
},
"re_trigger_match": {
"arguments": [
{
"description": "re_trigger name",
"name": "trigger_name"
},
{
"description": "Your string",
"name": "string"
}
],
"description": "Allows to direct a <string> to a trigger <trigger_name>. If this string match regexp, then a corresponding alias is activated.",
"syntax": "re_trigger_match <trigger_name> <string>"
},
"re_trigger_options": {
"arguments": [
{
"description": "Value represents a bit mask which determines which types of messages can cause activation of a trigger:\n1 - pickup messages\n2 - death messages\n4 - critical messages (most of Team Fortress messages)\n8 - chat\n16 - centerprint\n32 - echo command output\n64 - other strings printed in the console\nThe default mask for any trigger equals 31.",
"name": "mask"
},
{
"description": "Sets a minimal interval of trigger activation (in seconds). If a second activation happened earlier than the value time, it is ignored.\nDefault is 0.",
"name": "interval"
},
{
"description": "If activation of this trigger happened, the remaining (in the list of triggers) triggers are not checked.\nTriggers are checked in a reversed order of their definition.",
"name": "final"
},
{
"description": "Activation of such trigger doesn't stop the checking of other triggers (default).",
"name": "notfinal"
},
{
"description": "A string which caused activation of a trigger is not printed on the screen.",
"name": "remove"
},
{
"description": "A string which caused activation of a trigger is printed on the screen (default).",
"name": "noremove"
},
{
"description": "A string which caused activation of a trigger is not added to a log-file.",
"name": "log"
},
{
"description": "A string which caused activation of a trigger is added to a log-file (default).",
"name": "nolog"
},
{
"description": "A corresponding alias is not executed upon a trigger activation.\nThere is no need to exec alias if all you need is to use remove option :)",
"name": "noaction"
},
{
"description": "A corresponding alias is executed upon a trigger activation (default).",
"name": "action"
}
],
"description": "Changes options for a corresponding trigger.",
"syntax": "re_trigger_options rt_name option_list"
},
"reconnect": {
"description": "Reconnects to the last server/proxy."
},
"record": {
"description": "Records a demo.\n\nExample:\nrecord test\n - records test.qwd to qw folder",
"syntax": "<filename>"
},
"recordqwd": {
"system-generated": true
},
"register_qwurl_protocol": {
"system-generated": true
},
"removeip": {
"description": "Removes an IP address from the server IP list.\n\nExamples:\nremoveip 123.123.123.123\nremoveip 123.123.123",
"syntax": "<ip>"
},
"removeloc": {
"description": "Remove the closest location (use teamsay to see which)."
},
"removepak": {
"system-generated": true
},
"reset": {
"system-generated": true
},
"rm": {
"system-generated": true
},
"rmdir": {
"system-generated": true
},
"rotate": {
"description": "Rotates the player by x degrees.\n\nExample: \"rotate 180\"\n - rotates your POV by 180 degrees.",
"remarks": "Negative values can also be used for the desired angle."
},
"s_audiodevicelist": {
"system-generated": true
},
"s_listdrivers": {
"system-generated": true
},
"s_restart": {
"system-generated": true
},
"save": {
"description": "Saves a game in singleplayer.\n\nExample:\nsave 123"
},
"saveloc": {
"arguments": [
{
"description": "The .loc file the locs should be saved in.",
"name": "filename"
}
],
"description": "Saves the current locs in memory to the specified file.",
"syntax": "<filename>"
},
"say": {
"description": "Broadcasts a string to all other players.\n\nExample:\nsay ezQuake rules!"
},
"say_team": {
"description": "Broadcasts a string to teammates.\n\nExample:\nsay_team stop boring!"
},
"sb_buildpingtree": {
"system-generated": true
},
"sb_pingsdump": {
"description": "Dumps a list of pairs (IP address, ping) into the console based on the current content of the Server Browser list."
},
"sb_proxygetpings": {
"system-generated": true
},
"sb_refresh": {
"description": "Causes Server Browser refresh ping and status info for all servers."
},
"sb_sourceadd": {
"arguments": [
{
"description": "Name of the source",
"name": "name"
},
{
"description": "(IP) address of master server or filename of the server list file",
"name": "source"
},
{
"description": "\"master\" for master server or \"file\" for server list file",
"name": "type"
}
],
"description": "Adds new server list source.",
"syntax": "<name> <source> <type>"
},
"sb_sourcemark": {
"description": "Marks \"source-name\" as selected server source list.",
"syntax": "<source-name>"
},
"sb_sourcesupdate": {
"description": "Reload server lists from all marked server sources."
},
"sb_sourceunmarkall": {
"description": "Unmarks all servers sources."
},
"score_difference": {
"description": "HUD element which displays the frag difference between you (your team) and your enemy (enemy team)."
},
"score_enemy": {
"description": "HUD element which displays amount of frags made by all the enemies."
},
"score_own": {
"description": "HUD element which display your (or the person's you are observing) amount of frags."
},
"score_position": {
"description": "HUD element which displays your position on the frag leaders board."
},
"screenshot": {
"arguments": [
{
"description": "Optional. When used tells the destination filename.\nIf extension is not preset it will be added automatically according to sshot_format setting.",
"name": "name"
}
],
"description": "Saves a still picture of current screen to your hard drive.",
"syntax": "[name]"
},
"script": {
"system-generated": true
},
"serverexec": {
"system-generated": true
},
"serverinfo": {
"description": "Reports the current server info."
},
"serverstatus": {
"description": "Prints the status of the ezQuake server."
},
"set": {
"arguments": [
{
"description": "Name of variable or custom variable.",
"name": "varname"
},
{
"description": "Value you want to store in the variable.",
"name": "value"
}
],
"description": "Sets a variable to a given value.",
"syntax": "<varname> <value>"
},
"set_alias_str": {
"description": "Assigns variable a value which contains an indicated alias.",
"syntax": "<cvar> <alias>"
},
"set_bind_str": {
"description": "Assigns variable a value which contains anything bound to an indicated key.",
"syntax": "<cvar> <key>"
},
"set_calc": {
"arguments": [
{
"description": "Name of variable you want to save the result in.",
"name": "cvar"
},
{
"description": "Possible commands:\nstrlen - gets length of given string\nint - converts given float value to integer\nsubstr - return substring of given string\nset_substr - replaces given position in string with another string\npos - gets position of substring in given string",
"name": "command"
},
{
"description": "Arguments of commands:\nstrlen <string>\nint <float>\nsubstr <sourcestr> <position> [<length>]\nset_substr <replacestr> <position>\npos <haystack> <needle>",
"name": "cmdargs"
},
{
"description": "First argument",
"name": "arg1"
},
{
"description": "Possible operators: +, -, *, /, div, %%, and, or, xor.",
"name": "oper"
},
{
"description": "Second argument.",
"name": "arg2"
}
],
"description": "Advanced variables customization.",
"syntax": "<cvar command cmdargs> | <cvar arg1 oper arg2>"
},
"set_eval": {
"system-generated": true
},
"set_ex": {
"description": "Assigns a new value to a variable, expansion of %macros and variables is performed even in case if a parameter is inside the dual quotation marks.",
"syntax": "<cvar> <value>"
},
"set_ex2": {
"system-generated": true
},
"set_tp": {
"system-generated": true
},
"setinfo": {
"description": "Sets information about your FuhWorld user.\nUsed without a key it will list all of your current settings. Specifying a non-existent key and a value will create the new key."
},
"setmaster": {
"description": "Lists the server with up to eight masters.\nWhen a server is listed with a master, the master is aware of the server's IP address and port and it is added to the list of current server connected to a master. A heartbeat is sent to the master from the server to indicated that the server is still running and alive.\n\nExamples:\nsetmaster 192.246.40.12:27002\nsetmaster 192.246.40.12:27002 192.246.40.12:27004"
},
"show": {
"system-generated": true
},
"showskins": {
"system-generated": true
},
"sizedown": {
"description": "Reduces the screen size."
},
"sizeup": {
"description": "Increases the screen size."
},
"skins": {
"description": "Refreshes skin settings.",
"remarks": "If you have set noskins to 0 and do this it will download all skins that players are using on server."
},
"skygroup": {
"description": "In basics works same as mapgroup.",
"syntax": "skyboxname map1 [map2] ..."
},
"skywind": {
"description": "Sets the animation parameters of the skybox. Requires a skybox with some level of transparency.",
"syntax": "skywind [distance] [yaw] [period] [pitch]"
},
"skywind_load": {
"description": "Loads the skywind config for the loaded skymap. The file is expected to contain: skywind [distance] [yaw] [period] [pitch]."
},
"skywind_lookdir": {
"description": "Updates the skywind direction to current point of view with optional overrides of period and distance.",
"syntax": "skywind_lookdir [period] [distance]"
},
"skywind_rotate": {
"description": "Updates the skywind direction with yaw (horizontal) and pitch (vertical) adjustment.",
"syntax": "skywind_rotate [yaw] [pitch]"
},
"skywind_save": {
"description": "Saves the current skywind configuration as gfx/env/$skybox_wind.cfg."
},
"snap": {
"description": "Remote screenshot from a player.\n\nExample:\nsnap 1234\n - server requests remote screenshot from user 1234",
"syntax": "<userid>"
},
"snapall": {
"description": "Remote screenshots from all players."
},
"soundinfo": {
"description": "Reports information on the sound system."
},
"soundlist": {
"description": "Reports a list of sounds in the cache."
},
"spectator_password": {
"description": "Sets spectator password to ezQuake local server.",
"remarks": "Spectators must use \"spectator <password>\" to connect to a server with a spectator password."
},
"speed": {
"description": "Shows your current movement speed."
},
"speed2": {
"description": "An alternative speed-o-meter that is drawn as a half-circle."
},
"status": {
"description": "Reports information on the current connected clients and the server."
},
"stop": {
"description": "Stops demo recording."
},
"stopqwd": {
"system-generated": true
},
"stopsound": {
"description": "Stops all sounds currently being played."
},
"stopsound_script": {
"system-generated": true
},
"sv_democancel": {
"system-generated": true
},
"sv_demoeasyrecord": {
"system-generated": true
},
"sv_demoembedinfo": {
"system-generated": true
},
"sv_demoinfo": {
"system-generated": true
},
"sv_demoinfoadd": {
"system-generated": true
},
"sv_demoinforemove": {
"system-generated": true
},
"sv_demolist": {
"system-generated": true
},
"sv_demolistr": {
"system-generated": true
},
"sv_demolistregex": {
"system-generated": true
},
"sv_demonumremove": {
"system-generated": true
},
"sv_demorecord": {
"system-generated": true
},
"sv_demoremove": {
"system-generated": true
},
"sv_demostop": {
"system-generated": true
},
"sv_gamedir": {
"description": "Displays or determines the value of the serverinfo *gamedir variable.\nThis is the directory clients will use.\n\nExamples:\ngamedir tf2_5; sv_gamedir fortress\ngamedir ctf4_2; sv_gamedir ctf\ngamedir ktffa; sv_gamedir qw // FFA servers should use default *gamedir",
"remarks": "Useful when the physical gamedir directory has a different name than the widely accepted gamedir directory."
},
"sv_lastscores": {
"system-generated": true
},
"sv_status": {
"system-generated": true
},
"sv_usercmdtrace": {
"system-generated": true
},
"svadmin": {
"system-generated": true
},
"sys_forget_sandbox": {
"description": "Clears the currently selected sandbox directory. On the next restart, ezQuake will prompt you to select a directory again.",
"remarks": "macOS only"
},
"tcl_eval": {
"description": "Execute <string> as Tcl code.",
"syntax": "<string>"
},
"tcl_exec": {
"description": "Execute a config as Tcl script.",
"syntax": "<filename>"
},
"tcl_proc": {
"description": "Execute a Tcl procedure <name> with parameters <parameters>. Procedure must be defined before thru tcl_eval or tcl_exec commands.",
"syntax": "<name> [parameters]"
},
"tcpconnect": {
"arguments": [
{
"description": "IP address of a QuakeWorld server.",
"name": "address"
},
{
"description": "TCP port of a QuakeWorld server.",
"name": "port"
}
],
"description": "Connects your client to a QuakeWorld server via TCP.",
"syntax": "<address>:<port>"
},
"teamcolor": {
"description": "This will override team color.\n\nExample:\nteamcolor 12 13",
"remarks": "If only the shirt color is given, the pant color will match."
},
"teamholdbar": {
"description": "Displays overall map control per team when watching multiview demo."
},
"teamholdinfo": {
"description": "Displays items possession stats per team when watching multiview demo."
},
"tempalias": {
"description": "Sets a temporary alias.\nTempaliases will not save to your config."
},
"timedemo": {
"description": "This command will load and play a demo at full speed. It will then divide the total number of frames in the demo by the total time it took finish, and calculate the average frames-per-second rate.\n\nExample:\ntimedemo demoname",
"syntax": "<filename>"
},
"timedemo2": {
"system-generated": true
},
"timerefresh": {
"description": "This command will perform a 360 degree turn and calculate the frames-per-second rate."
},
"toggle": {
"description": "You can turn off/on cvars.\n\nExample:\ntoggle sensitivity turns off sensitivity and toggle sensitivity again turns on."
},
"toggle_re": {
"description": "You can turn variable values ON and OFF.\n\nExample:\ntoggle ^gl_part.* - turns all particle effects on/off.",
"syntax": "[cvar_regexp1] [cvar_regexp2] ... [cvar_regexpN]"
},
"toggleconsole": {
"description": "Brings the console up and down."
},
"togglehud": {
"system-generated": true
},
"togglemenu": {
"description": "Displays the menu screens."
},
"toggleproxymenu": {
"system-generated": true
},
"togglespec": {
"system-generated": true
},
"tp_msgcoming": {
"description": "Will send a message to your teammates telling them where you are coming from, and what your status is.\nDoubles as tp_lost when you are dead (because you can't be coming from somewhere if you're dead)."
},
"tp_msgenemypwr": {
"description": "This command could be used for all cases involving players with powerup.\nIf you, a teammate, or enemy has powerup, this bind will report it.\nIf eyes is in your point, we assume enemy only because this is tp_ENEMYpwr, otherwise there is no way to tell if a player with ring is enemy or teammate."
},
"tp_msggetpent": {
"description": "Informs your teammates to get the pent.\nWill print enemy/team pent if you, teammate, or enemy has pent and they're in your point.\nWill print nothing if eyes is in point."
},
"tp_msggetquad": {
"description": "Informs your teammates to get the quad.\nReports team/enemy quad if you, a teammate, or an enemy has quad and they are in your point.\nReports nothing if eyes is in your point."
},
"tp_msghelp": {
"description": "Requests help at a location. Also gives your status."
},
"tp_msgitemsoon": {
"system-generated": true
},
"tp_msgkillme": {
"system-generated": true
},
"tp_msglost": {
"description": "Will send a message to your teammates telling them you died at a location.\nAlso tells them how many enemies are there, and what weapon (if any) you dropped."
},
"tp_msgneed": {
"description": "Equivalent of %u (need macro).\nWill display what you need (health/armor/ammo)."
},
"tp_msgnocancel": {
"system-generated": true
},
"tp_msgpoint": {
"description": "Will report to your team item you see in your point at its location.\nWill report team/enemy powerup if you, a teammate, or an enemy has a powerup and are in your point.",
"remarks": "Note that tp_pointpriorities defaults to 1 and it is strongly suggested to keep this value. You can alter the priorities of this bind by altering tp_point."
},
"tp_msgquaddead": {
"description": "Reports quad is dead. Will print enemy/team powerup if you, a teammate, or an enemy have quad and are in your point."
},
"tp_msgreplace": {
"description": "Requests a teammate to replace you at your location."
},
"tp_msgreport": {
"description": "Will send a message to your teammates about your current status: health, armor, location, powerups, weapon.\nDoubles as tp_lost when you are dead."
},
"tp_msgsafe": {
"description": "Will send a message to your teammates informing them your current location is safe.\nWill print nothing if there is enemy in your point.\nAlso reports your status."
},
"tp_msgslipped": {
"system-generated": true
},
"tp_msgtfconced": {
"system-generated": true
},
"tp_msgtook": {
"description": "Informs your team of the last item you took.\nSaves each item in memory for 15 seconds."
},
"tp_msgtrick": {
"description": "Requests a trick at a location.\nBest for cases like dm2 when you need a teammate to help you get quad from stairs."
},
"tp_msgutake": {
"system-generated": true
},
"tp_msgwaiting": {
"system-generated": true
},
"tp_msgyesok": {
"system-generated": true
},
"tp_pickup": {
"description": "Item can be: quad, pent, ring, suit, ra, ya, ga, mh, health, lg, rl, gl, sng, ng, ssg, pack, cells, rockets, nails, shells, flag, armor, weapons, powerups, ammo, all, default, none"
},
"tp_point": {
"description": "Specifies which items will be used in point (%x or $point) macro.\nIf you point at an item and such item is not listed here, your message will be tp_name_nothing (default: \"nothing\").\nSupported items: powerups, quad, pent, ring, armor, ra, ya, ga, weapons, lg, rl, gl, sng, ng, ssg, ammo, cells, rockets, nails, shells, players, eyes, teammate, enemy, mh, health, pack, flag, all, default, none, suit\nItem names can be customized with tp_name_item.",
"syntax": "item1 item2 ... DO NOT USE QUOTES"
},
"tp_took": {
"description": "Specifies which items will be included in the took (%X or $took) macro.\nIf you took an item and it's not listed in tp_took list, %X and $took macro will display tp_name_nothing (default: \"nothing\").\nSupported items: quad, pent, ring, suit, ra, ya, ga, mh, health, lg, rl, gl, sng, ng, ssg, pack, cells, rockets, nails, shells, flag, armor, weapons, powerups, ammo, all, default, none\nItem names can be customized with tp_name_item.",
"syntax": "item1 item2 ... DO NOT USE QUOTES"
},
"track": {
"system-generated": true
},
"track-": {
"description": "This means when you are spectating or watching an mvd, keys will automatically be assigned to track certain players.\nSo in a 4v4 8 keys are needed, the first 4 make you track the 4 players in the first team and the last 4 make you track the second team."
},
"track1": {
"system-generated": true
},
"track2": {
"system-generated": true
},
"track3": {
"system-generated": true
},
"track4": {
"system-generated": true
},
"trackkiller": {
"description": "Will switch view to the player who killed the player we are tracking at the moment."
},
"trackteam
gitextract_jn4z67cv/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug-report.md │ │ └── feature_request.md │ └── workflows/ │ └── main.yml ├── .gitignore ├── .gitmodules ├── BUILD.md ├── CMakeLists.txt ├── CMakePresets.json ├── LICENSE ├── README.md ├── bootstrap.ps1 ├── bootstrap.sh ├── build-linux.sh ├── cmake/ │ ├── AddResources.cmake │ ├── CheckDependency.cmake │ ├── FindSpeex.cmake │ ├── FindSpeexDSP.cmake │ ├── GitUtils.cmake │ ├── ResourceCompiler.cmake │ └── triplets/ │ ├── arm64-osx.cmake │ ├── x64-mingw-static.cmake │ ├── x64-osx.cmake │ └── x86-mingw-static.cmake ├── dist/ │ ├── gen-release.sh │ ├── linux/ │ │ ├── io.github.ezQuake.appdata.xml │ │ └── io.github.ezQuake.desktop │ ├── macOS/ │ │ ├── MacOSXBundleInfo.plist.in │ │ ├── ezquake.entitlements.plist │ │ └── ezquake.icns │ └── windows/ │ └── ezQuake.rc.in ├── help_cmdline_params.json ├── help_commands.json ├── help_macros.json ├── help_variables.json ├── misc/ │ ├── appimage/ │ │ ├── appimage-manual_creation.sh │ │ └── ezquake.appdata.xml.template │ ├── cfg/ │ │ ├── cams.cfg │ │ ├── cams.tcl │ │ ├── eq260.cfg │ │ ├── ezhud.cfg │ │ ├── gfx_gl_eyecandy.cfg │ │ ├── gfx_gl_faithful.cfg │ │ ├── gfx_gl_fast.cfg │ │ ├── gfx_gl_higheyecandy.cfg │ │ ├── gfx_sw_default.cfg │ │ ├── gfx_sw_fast.cfg │ │ ├── how_to_use_these_files.txt │ │ ├── hud_aas.cfg │ │ ├── hud_berzerk.cfg │ │ ├── hud_corner.cfg │ │ ├── hud_dobbz.cfg │ │ ├── hud_empezar.cfg │ │ ├── hud_murdoc.cfg │ │ ├── hud_senft.cfg │ │ ├── hud_vleesh.cfg │ │ ├── movement.cfg │ │ ├── mvdhud_1on1.cfg │ │ ├── mvdhud_2on2.cfg │ │ ├── mvdhud_3on3.cfg │ │ ├── mvdhud_4on4.cfg │ │ ├── mvdhud_base.cfg │ │ ├── mvdhud_base_2.cfg │ │ ├── mvdhud_base_3.cfg │ │ ├── mvdhud_base_4.cfg │ │ ├── mvdhud_base_del.cfg │ │ ├── mvdhud_base_other.cfg │ │ ├── mvdhud_custom.cfg │ │ ├── pingdump.cfg │ │ ├── teamplay.cfg │ │ └── teamtime.cfg │ ├── pak.lst │ └── sb/ │ ├── au-sv.txt │ ├── cache/ │ │ └── empty │ ├── check_sources.sh │ ├── ctf.txt │ ├── eu-4on4.txt │ ├── eu-sv.txt │ ├── global.txt │ ├── na-sv.txt │ ├── qizmo.txt │ ├── sa-sv.txt │ ├── sources.txt │ ├── tf.txt │ └── update_sources.bat ├── src/ │ ├── Ctrl.c │ ├── Ctrl.h │ ├── Ctrl_EditBox.c │ ├── Ctrl_EditBox.h │ ├── Ctrl_PageViewer.c │ ├── Ctrl_PageViewer.h │ ├── Ctrl_ScrollBar.c │ ├── Ctrl_Tab.c │ ├── Ctrl_Tab.h │ ├── EX_FileList.c │ ├── EX_FileList.h │ ├── EX_browser.c │ ├── EX_browser.h │ ├── EX_browser_net.c │ ├── EX_browser_pathfind.c │ ├── EX_browser_ping.c │ ├── EX_browser_qtvlist.c │ ├── EX_browser_sources.c │ ├── EX_qtvlist.c │ ├── EX_qtvlist.h │ ├── anorm_dots.h │ ├── anorms.h │ ├── bspfile.h │ ├── cd_linux.c │ ├── cd_null.c │ ├── cd_win.c │ ├── cdaudio.h │ ├── central.c │ ├── central.h │ ├── cl_cam.c │ ├── cl_cmd.c │ ├── cl_demo.c │ ├── cl_ents.c │ ├── cl_input.c │ ├── cl_main.c │ ├── cl_multiview.c │ ├── cl_nqdemo.c │ ├── cl_parse.c │ ├── cl_pred.c │ ├── cl_screen.c │ ├── cl_screenshot.c │ ├── cl_skygroups.c │ ├── cl_slist.c │ ├── cl_slist.h │ ├── cl_tent.c │ ├── cl_view.c │ ├── cl_view.h │ ├── client.h │ ├── cmd.c │ ├── cmd.h │ ├── cmdline_params.h │ ├── cmdline_params_ids.h │ ├── cmodel.c │ ├── cmodel.h │ ├── collision.c │ ├── com_msg.c │ ├── common.c │ ├── common.h │ ├── common_draw.c │ ├── common_draw.h │ ├── config_manager.c │ ├── config_manager.h │ ├── console.c │ ├── console.h │ ├── crc.c │ ├── crc.h │ ├── cvar.c │ ├── cvar.h │ ├── cvar_groups.h │ ├── demo_controls.c │ ├── demo_controls.h │ ├── demo_spawnwarn.c │ ├── demo_spawnwarn.h │ ├── document_rendering.c │ ├── document_rendering.h │ ├── draw.h │ ├── ez_button.c │ ├── ez_button.h │ ├── ez_controls.c │ ├── ez_controls.h │ ├── ez_label.c │ ├── ez_label.h │ ├── ez_listview.c │ ├── ez_listview.h │ ├── ez_listviewitem.c │ ├── ez_listviewitem.h │ ├── ez_scrollbar.c │ ├── ez_scrollbar.h │ ├── ez_scrollpane.c │ ├── ez_scrollpane.h │ ├── ez_slider.c │ ├── ez_slider.h │ ├── ez_window.c │ ├── ez_window.h │ ├── ezquake-icon.c │ ├── fchecks.c │ ├── fchecks.h │ ├── fmod.c │ ├── fmod.h │ ├── fonts.c │ ├── fonts.h │ ├── fragstats.c │ ├── fs.c │ ├── fs.h │ ├── g_public.h │ ├── gl_aliasmodel.c │ ├── gl_aliasmodel_md3.c │ ├── gl_buffers.c │ ├── gl_debug.c │ ├── gl_drawcall_wrappers.c │ ├── gl_framebuffer.c │ ├── gl_framebuffer.h │ ├── gl_local.h │ ├── gl_misc.c │ ├── gl_model.h │ ├── gl_program.c │ ├── gl_sdl.c │ ├── gl_sprite3d.c │ ├── gl_sprite3d.h │ ├── gl_state.c │ ├── gl_texture.c │ ├── gl_texture.h │ ├── gl_texture_functions.c │ ├── gl_texture_internal.h │ ├── glc_aliasmodel.c │ ├── glc_aliasmodel_mesh.c │ ├── glc_bloom.c │ ├── glc_brushmodel.c │ ├── glc_draw.c │ ├── glc_framebuffer.c │ ├── glc_lightmaps.c │ ├── glc_local.h │ ├── glc_main.c │ ├── glc_matrix.c │ ├── glc_matrix.h │ ├── glc_md3.c │ ├── glc_misc.c │ ├── glc_particles.c │ ├── glc_performance.c │ ├── glc_sdl.c │ ├── glc_sky.c │ ├── glc_sprite3d.c │ ├── glc_state.c │ ├── glc_state.h │ ├── glc_surf.c │ ├── glc_turb_surface.c │ ├── glc_vao.c │ ├── glc_vao.h │ ├── glc_warp.c │ ├── glm_aliasmodel.c │ ├── glm_brushmodel.c │ ├── glm_brushmodel.h │ ├── glm_draw.c │ ├── glm_draw.h │ ├── glm_framebuffer.c │ ├── glm_lightmaps.c │ ├── glm_local.h │ ├── glm_main.c │ ├── glm_md3.c │ ├── glm_misc.c │ ├── glm_particles.c │ ├── glm_particles.h │ ├── glm_performance.c │ ├── glm_rmain.c │ ├── glm_rsurf.c │ ├── glm_sdl.c │ ├── glm_sprite.c │ ├── glm_sprite3d.c │ ├── glm_state.c │ ├── glm_texture_arrays.c │ ├── glm_texture_arrays.h │ ├── glm_vao.c │ ├── glm_vao.h │ ├── glsl/ │ │ ├── common.glsl │ │ ├── constants.glsl │ │ ├── draw_aliasmodel.fragment.glsl │ │ ├── draw_aliasmodel.vertex.glsl │ │ ├── draw_sprites.fragment.glsl │ │ ├── draw_sprites.vertex.glsl │ │ ├── draw_world.fragment.glsl │ │ ├── draw_world.vertex.glsl │ │ ├── fx_world_geometry.fragment.glsl │ │ ├── fx_world_geometry.vertex.glsl │ │ ├── glc/ │ │ │ ├── glc_aliasmodel_shadow.fragment.glsl │ │ │ ├── glc_aliasmodel_shadow.vertex.glsl │ │ │ ├── glc_aliasmodel_shell.fragment.glsl │ │ │ ├── glc_aliasmodel_shell.vertex.glsl │ │ │ ├── glc_aliasmodel_std.fragment.glsl │ │ │ ├── glc_aliasmodel_std.vertex.glsl │ │ │ ├── glc_caustics.fragment.glsl │ │ │ ├── glc_caustics.vertex.glsl │ │ │ ├── glc_draw_sprites.fragment.glsl │ │ │ ├── glc_draw_sprites.vertex.glsl │ │ │ ├── glc_hud_images.fragment.glsl │ │ │ ├── glc_hud_images.vertex.glsl │ │ │ ├── glc_post_process_screen.fragment.glsl │ │ │ ├── glc_post_process_screen.vertex.glsl │ │ │ ├── glc_sky.fragment.glsl │ │ │ ├── glc_sky.vertex.glsl │ │ │ ├── glc_turbsurface.fragment.glsl │ │ │ ├── glc_turbsurface.vertex.glsl │ │ │ ├── glc_world_drawflat.fragment.glsl │ │ │ ├── glc_world_drawflat.vertex.glsl │ │ │ ├── glc_world_secondpass.fragment.glsl │ │ │ ├── glc_world_secondpass.vertex.glsl │ │ │ ├── glc_world_textured.fragment.glsl │ │ │ └── glc_world_textured.vertex.glsl │ │ ├── hud_draw_circle.fragment.glsl │ │ ├── hud_draw_circle.vertex.glsl │ │ ├── hud_draw_image.fragment.glsl │ │ ├── hud_draw_image.geometry.glsl │ │ ├── hud_draw_image.vertex.glsl │ │ ├── hud_draw_line.fragment.glsl │ │ ├── hud_draw_line.vertex.glsl │ │ ├── hud_draw_polygon.fragment.glsl │ │ ├── hud_draw_polygon.vertex.glsl │ │ ├── lighting.compute.glsl │ │ ├── post_process_screen.fragment.glsl │ │ ├── post_process_screen.vertex.glsl │ │ ├── shared/ │ │ │ └── fxaa.h.glsl │ │ ├── simple.fragment.glsl │ │ ├── simple.vertex.glsl │ │ ├── simple3d.fragment.glsl │ │ └── simple3d.vertex.glsl │ ├── hash.c │ ├── hash.h │ ├── help.c │ ├── help.h │ ├── help_files.c │ ├── host.c │ ├── hud.c │ ├── hud.h │ ├── hud_262.c │ ├── hud_ammo.c │ ├── hud_armor.c │ ├── hud_autoid.c │ ├── hud_centerprint.c │ ├── hud_clock.c │ ├── hud_common.c │ ├── hud_common.h │ ├── hud_editor.c │ ├── hud_editor.h │ ├── hud_face.c │ ├── hud_frags.c │ ├── hud_gamesummary.c │ ├── hud_groups.c │ ├── hud_guns.c │ ├── hud_health.c │ ├── hud_items.c │ ├── hud_net.c │ ├── hud_performance.c │ ├── hud_qtv.c │ ├── hud_radar.c │ ├── hud_scores.c │ ├── hud_speed.c │ ├── hud_teaminfo.c │ ├── hud_tracking.c │ ├── hud_weapon_stats.c │ ├── ignore.c │ ├── ignore.h │ ├── image.c │ ├── image.h │ ├── in_osx.h │ ├── in_osx.m │ ├── in_sdl2.c │ ├── input.h │ ├── irc.c │ ├── irc.h │ ├── irc_filter.c │ ├── irc_filter.h │ ├── keys.c │ ├── keys.h │ ├── linux_signals.c │ ├── localtime.h │ ├── localtime_posix.c │ ├── localtime_win.c │ ├── logging.c │ ├── logging.h │ ├── macro_definitions.h │ ├── macro_ids.h │ ├── match_tools.c │ ├── match_tools_challenge.c │ ├── mathlib.c │ ├── mathlib.h │ ├── md4.c │ ├── menu.c │ ├── menu.h │ ├── menu_demo.c │ ├── menu_demo.h │ ├── menu_ingame.c │ ├── menu_ingame.h │ ├── menu_multiplayer.c │ ├── menu_multiplayer.h │ ├── menu_options.c │ ├── menu_options.h │ ├── menu_proxy.c │ ├── menu_proxy.h │ ├── modelgen.h │ ├── movie.c │ ├── movie.h │ ├── movie_avi.c │ ├── movie_avi.h │ ├── mvd_autotrack.c │ ├── mvd_utils.c │ ├── mvd_utils.h │ ├── mvd_utils_common.h │ ├── mvd_xmlstats.c │ ├── net.c │ ├── net.h │ ├── net_chan.c │ ├── parser.c │ ├── parser.h │ ├── particles_classic.h │ ├── pmove.c │ ├── pmove.h │ ├── pmovetst.c │ ├── pr2.h │ ├── pr2_cmds.c │ ├── pr2_edict.c │ ├── pr2_exec.c │ ├── pr_cmds.c │ ├── pr_comp.h │ ├── pr_edict.c │ ├── pr_exec.c │ ├── progdefs.h │ ├── progs.h │ ├── q_platform.h │ ├── q_shared.c │ ├── q_shared.h │ ├── qmb_particles.h │ ├── qsound.h │ ├── qtv.c │ ├── qtv.h │ ├── quakedef.h │ ├── qwsvdef.h │ ├── r_aliasmodel.c │ ├── r_aliasmodel.h │ ├── r_aliasmodel_md3.c │ ├── r_aliasmodel_md3.h │ ├── r_aliasmodel_mesh.c │ ├── r_aliasmodel_skins.c │ ├── r_atlas.c │ ├── r_bloom.c │ ├── r_brushmodel.c │ ├── r_brushmodel.h │ ├── r_brushmodel_bspx.c │ ├── r_brushmodel_load.c │ ├── r_brushmodel_sky.c │ ├── r_brushmodel_sky.h │ ├── r_brushmodel_surfaces.c │ ├── r_brushmodel_textures.c │ ├── r_brushmodel_warpsurfaces.c │ ├── r_brushmodel_warpsurfaces_sin.h │ ├── r_buffers.c │ ├── r_buffers.h │ ├── r_chaticons.c │ ├── r_chaticons.h │ ├── r_draw.c │ ├── r_draw.h │ ├── r_draw_charset.c │ ├── r_draw_circle.c │ ├── r_draw_image.c │ ├── r_draw_line.c │ ├── r_draw_polygon.c │ ├── r_framestats.h │ ├── r_hud.c │ ├── r_lighting.h │ ├── r_lightmaps.c │ ├── r_lightmaps.h │ ├── r_lightmaps_internal.h │ ├── r_local.h │ ├── r_main.c │ ├── r_matrix.c │ ├── r_matrix.h │ ├── r_misc.c │ ├── r_misc.cpp │ ├── r_model.c │ ├── r_netgraph.c │ ├── r_palette.c │ ├── r_part.c │ ├── r_part_trails.c │ ├── r_particles_qmb.c │ ├── r_particles_qmb.h │ ├── r_particles_qmb_spawn.c │ ├── r_particles_qmb_trails.c │ ├── r_performance.c │ ├── r_performance.h │ ├── r_program.h │ ├── r_refrag.c │ ├── r_renderer.h │ ├── r_renderer_structure.h │ ├── r_rlight.c │ ├── r_rmain.c │ ├── r_rmisc.c │ ├── r_shared.h │ ├── r_sprite3d.c │ ├── r_sprite3d.h │ ├── r_sprite3d_internal.h │ ├── r_sprites.c │ ├── r_state.h │ ├── r_states.c │ ├── r_texture.c │ ├── r_texture.h │ ├── r_texture_cvars.c │ ├── r_texture_internal.h │ ├── r_texture_load.c │ ├── r_texture_util.c │ ├── r_trace.h │ ├── r_vao.h │ ├── render.h │ ├── resource.h │ ├── rulesets.c │ ├── rulesets.h │ ├── sbar.c │ ├── sbar.h │ ├── screen.h │ ├── server.h │ ├── settings.h │ ├── settings_page.c │ ├── settings_page.h │ ├── sha1.c │ ├── sha1.h │ ├── sha3.c │ ├── sha3.h │ ├── skin.c │ ├── snd_main.c │ ├── snd_mem.c │ ├── snd_mix.c │ ├── snd_qizmo.c │ ├── snd_voip.c │ ├── spritegn.h │ ├── stats_grid.c │ ├── stats_grid.h │ ├── sv_ccmds.c │ ├── sv_demo.c │ ├── sv_demo_misc.c │ ├── sv_demo_qtv.c │ ├── sv_ents.c │ ├── sv_init.c │ ├── sv_log.h │ ├── sv_login.c │ ├── sv_main.c │ ├── sv_master.c │ ├── sv_mod_frags.c │ ├── sv_mod_frags.h │ ├── sv_move.c │ ├── sv_nchan.c │ ├── sv_null.c │ ├── sv_phys.c │ ├── sv_save.c │ ├── sv_send.c │ ├── sv_sys_unix.c │ ├── sv_sys_win.c │ ├── sv_user.c │ ├── sv_world.c │ ├── sv_world.h │ ├── sys.h │ ├── sys_osx.m │ ├── sys_posix.c │ ├── sys_sdl2.c │ ├── sys_win.c │ ├── teamplay.c │ ├── teamplay.h │ ├── teamplay_locfiles.c │ ├── textencoding.c │ ├── textencoding.h │ ├── tp_msgs.c │ ├── tp_msgs.h │ ├── tp_triggers.c │ ├── tp_triggers.h │ ├── tr_types.h │ ├── utils.c │ ├── utils.h │ ├── version.c │ ├── version.h │ ├── vfs.h │ ├── vfs_doomwad.c │ ├── vfs_gzip.c │ ├── vfs_mmap.c │ ├── vfs_os.c │ ├── vfs_pak.c │ ├── vfs_tar.c │ ├── vfs_tar.h │ ├── vfs_tcp.c │ ├── vfs_zip.c │ ├── vid.h │ ├── vid_common_gl.c │ ├── vid_sdl2.c │ ├── vid_vsync.c │ ├── vk_blending.c │ ├── vk_buffers.c │ ├── vk_debug.c │ ├── vk_draw.c │ ├── vk_graphics_pipeline.c │ ├── vk_instance.c │ ├── vk_lightmaps.c │ ├── vk_local.h │ ├── vk_main.c │ ├── vk_md3.c │ ├── vk_misc.c │ ├── vk_physical_devices.c │ ├── vk_renderpass.c │ ├── vk_sdl.c │ ├── vk_swapchain.c │ ├── vk_vao.c │ ├── vk_vao.h │ ├── vk_window_surface.c │ ├── vm.c │ ├── vm.h │ ├── vm_interpreted.c │ ├── vm_local.h │ ├── vm_x86.c │ ├── vx_camera.c │ ├── vx_camera.h │ ├── vx_coronas.c │ ├── vx_stuff.c │ ├── vx_stuff.h │ ├── vx_tracker.c │ ├── vx_tracker.h │ ├── vx_vertexlights.c │ ├── vx_vertexlights.h │ ├── wad.c │ ├── wad.h │ ├── winquake.rc │ ├── xsd.c │ ├── xsd.h │ ├── xsd_document.c │ ├── xsd_document.h │ ├── zone.c │ └── zone.h └── vcpkg.json
Showing preview only (610K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (7032 symbols across 410 files)
FILE: src/Ctrl.c
function UI_DrawCharacter (line 28) | void UI_DrawCharacter (int cx, int line, int num)
function UI_Print (line 33) | void UI_Print (int cx, int cy, const char *str, int red)
function UI_DrawSlider (line 52) | int UI_DrawSlider (int x, int y, float range) {
function UI_SliderWidth (line 64) | int UI_SliderWidth(void) { return (SLIDER_RANGE+1)*LETTERWIDTH; }
function UI_Print3 (line 66) | void UI_Print3 (int cx, int cy, const char *str, clrinfo_t *clr, int clr...
function UI_Print_Center (line 83) | void UI_Print_Center (int cx, int cy, int w, const char *str, int red)
function UI_Print_Center3 (line 94) | void UI_Print_Center3 (int cx, int cy, int w, char *str, clrinfo_t *clr,...
function UI_MakeLine (line 100) | void UI_MakeLine(char *buf, int w)
function UI_MakeLine2 (line 108) | void UI_MakeLine2(char *buf, int w)
function UI_DrawColoredAlphaBox (line 116) | void UI_DrawColoredAlphaBox(int x, int y, int w, int h, color_t color)
function UI_DrawGrayBox (line 121) | void UI_DrawGrayBox(int x, int y, int w, int h)
function UI_DrawBox (line 137) | void UI_DrawBox(int x, int y, int w, int h)
function qbool (line 142) | qbool UI_PrintTextBlock(int x, int y, int w, int h, const char* text, qb...
FILE: src/Ctrl.h
type ScrollBar (line 59) | typedef struct ScrollBar_s {
FILE: src/Ctrl_EditBox.c
function CEditBox_Init (line 27) | void CEditBox_Init(CEditBox *e, int width, int max)
function CEditBox_Draw (line 36) | void CEditBox_Draw(CEditBox *e, int x, int y, qbool active)
function CEditBox_Key (line 54) | void CEditBox_Key(CEditBox *e, int key, wchar unichar)
FILE: src/Ctrl_EditBox.h
type CEditBox (line 29) | typedef struct CEditBox_s
FILE: src/Ctrl_PageViewer.c
function LeaveNavigationMode (line 28) | static void LeaveNavigationMode(CPageViewer_t *viewer)
function EnterNavigationMode (line 39) | static void EnterNavigationMode(CPageViewer_t *viewer)
function MakeString (line 92) | static void MakeString(char *buf, byte *mem, int len)
function FreePageRendered (line 100) | static void FreePageRendered(CPageViewer_page_t *page)
function FreePage (line 105) | static void FreePage(CPageViewer_page_t *page)
function RenderDocument (line 116) | static void RenderDocument(CPageViewer_t *viewer, int width)
function AddPage (line 151) | static void AddPage(CPageViewer_t *viewer)
function CPageViewer_Init (line 160) | void CPageViewer_Init(CPageViewer_t *viewer)
function CPageViewer_t (line 168) | CPageViewer_t * CPageViewer_New(void)
function CPageViewer_GoUrl (line 177) | void CPageViewer_GoUrl(CPageViewer_t *viewer, char *url)
function CPageViewer_Go (line 186) | void CPageViewer_Go(CPageViewer_t *viewer, char *url, xml_document_t *doc)
function CPageViewer_Draw (line 195) | void CPageViewer_Draw(CPageViewer_t *viewer, int x, int y, int w, int h)
function qbool (line 332) | qbool CPageViewer_Key(CPageViewer_t *viewer, int key, wchar unichar)
function CPageViewer_Back (line 410) | void CPageViewer_Back(CPageViewer_t *viewer, int level)
function CPageViewer_Clear (line 424) | void CPageViewer_Clear(CPageViewer_t *viewer)
function CPageViewer_Free (line 443) | void CPageViewer_Free(CPageViewer_t *viewer)
FILE: src/Ctrl_PageViewer.h
type CPageViewer_page_t (line 28) | typedef struct CPageViewer_page_s
type CPageViewer_t (line 47) | typedef struct CPageViewer_s
FILE: src/Ctrl_ScrollBar.c
function ScrollBars_Init (line 41) | void ScrollBars_Init(void)
function PScrollBar (line 59) | PScrollBar ScrollBar_Create(ScrollPos_setter pos_setter, const char* name)
function ScrollBar_Delete (line 75) | void ScrollBar_Delete(PScrollBar scrbar)
function qbool (line 81) | qbool ScrollBar_MouseEvent(PScrollBar scrbar, const mouse_state_t *ms)
function SCRB_DrawPics (line 108) | static void SCRB_DrawPics(PScrollBar scrbar, int x, int y, int h)
function SCRB_DrawNoPics (line 135) | static void SCRB_DrawNoPics(PScrollBar scrbar, int x, int y, int h)
function ScrollBar_Draw (line 148) | void ScrollBar_Draw(PScrollBar scrbar, int x, int y, int h)
FILE: src/Ctrl_Tab.c
function CTab_Init (line 26) | void CTab_Init(CTab_t *tab)
function CTab_Clear (line 35) | void CTab_Clear(CTab_t *tab)
function CTab_t (line 43) | CTab_t * CTab_New(void)
function CTab_Free (line 52) | void CTab_Free(CTab_t *tab)
function CTab_AddPage (line 60) | void CTab_AddPage(CTab_t *tab, const char *name, int id, const CTabPage_...
function CTab_Draw_PageLinks (line 94) | static int CTab_Draw_PageLinks(CTab_t *tab, int x, int y, int w, int h)
function CTab_Draw (line 143) | void CTab_Draw(CTab_t *tab, int x, int y, int w, int h)
function CTab_Key (line 177) | int CTab_Key(CTab_t *tab, int key, wchar unichar)
function qbool (line 241) | static qbool CTab_Navi_Mouse_Event (CTab_t *tab, const mouse_state_t *ms)
function qbool (line 265) | qbool CTab_Mouse_Event(CTab_t *tab, const mouse_state_t *ms)
function CTabPage_t (line 293) | CTabPage_t * CTab_GetCurrent(CTab_t *tab)
function CTab_GetCurrentId (line 300) | int CTab_GetCurrentId(CTab_t *tab)
function CTab_SetCurrentId (line 314) | void CTab_SetCurrentId(CTab_t *tab, int id)
function SetCurrentPage (line 330) | void SetCurrentPage(CTab_t *tab, char *name)
FILE: src/Ctrl_Tab.h
type CTab_s (line 29) | struct CTab_s
type CTabPage_s (line 30) | struct CTabPage_s
type CTab_s (line 33) | struct CTab_s
type CTabPage_s (line 33) | struct CTabPage_s
type CTab_s (line 34) | struct CTab_s
type CTabPage_s (line 34) | struct CTabPage_s
type qbool (line 35) | typedef qbool (*CTabPage_MouseMoveType) (const mouse_state_t * ms);
type CTabPage_Handlers_t (line 37) | typedef struct CTabPage_Handlers_s
type CTabPage_t (line 46) | typedef struct CTabPage_s
type CTab_t (line 54) | typedef struct CTab_s
FILE: src/EX_FileList.c
function EX_FileList_Init (line 73) | void EX_FileList_Init(void)
function FL_Init (line 95) | void FL_Init(filelist_t *fl, char *initdir)
function FL_Shutdown (line 122) | void FL_Shutdown(filelist_t* fl)
function FL_SetCurrentDir (line 130) | void FL_SetCurrentDir(filelist_t *fl, const char *dir)
function FL_AddFileType (line 176) | void FL_AddFileType(filelist_t *fl, int id, char *ext)
function FL_SetDirUpOption (line 195) | void FL_SetDirUpOption(filelist_t *fl, qbool show)
function FL_SetDirsOption (line 204) | void FL_SetDirsOption(filelist_t *fl, qbool show)
function filedesc_t (line 213) | filedesc_t * FL_GetCurrentEntry(filelist_t *fl)
function FL_GetCurrentEntryType (line 246) | int FL_GetCurrentEntryType(filelist_t *fl)
function qbool (line 257) | qbool FL_IsCurrentDir(filelist_t *fl)
function qbool (line 269) | qbool FL_IsCurrentArchive(filelist_t *fl)
function FL_StripFileName (line 280) | void FL_StripFileName(filelist_t *fl, filedesc_t *f)
function FL_GotoFile (line 377) | void FL_GotoFile(filelist_t *fl, char *name)
function FL_CompareFunc (line 402) | int FL_CompareFunc(const void * p_d1, const void * p_d2)
function FL_SortDir (line 471) | void FL_SortDir (filelist_t *fl)
function FL_FindRegisteredType (line 495) | static int FL_FindRegisteredType(filelist_t *fl, sys_dirent *ent)
function FL_FindHighlightEntry (line 522) | static void FL_FindHighlightEntry (filelist_t *fl)
function FL_ReadArchive (line 558) | void FL_ReadArchive (filelist_t *fl)
function FL_ReadDir (line 696) | void FL_ReadDir(filelist_t *fl)
function qbool (line 841) | qbool FL_Search(filelist_t *fl)
function FL_ChangeArchive (line 902) | void FL_ChangeArchive(filelist_t *fl, char *archive)
function FL_ChangeDirUp (line 913) | void FL_ChangeDirUp(filelist_t *fl)
function FL_ChangeDir (line 947) | void FL_ChangeDir(filelist_t *fl, char *newdir)
function FL_CheckPosition (line 1005) | void FL_CheckPosition(filelist_t *fl)
function FL_CompressFile (line 1017) | void FL_CompressFile (filelist_t *fl)
function FL_DecompressFile (line 1041) | void FL_DecompressFile (filelist_t *fl)
function FL_DeleteFile (line 1072) | void FL_DeleteFile(filelist_t *fl)
function FL_CheckDisplayPosition (line 1084) | void FL_CheckDisplayPosition(filelist_t *fl)
function qbool (line 1107) | qbool FL_Key(filelist_t *fl, int key)
function qbool (line 1379) | qbool FL_Mouse_Event(filelist_t *fl, const mouse_state_t *ms)
function Add_Column (line 1416) | static void Add_Column(char *line, int *pos, char *t, int w)
function FL_Draw (line 1441) | void FL_Draw(filelist_t *fl, int x, int y, int w, int h)
function OnChange_file_browser_sort_mode (line 1838) | static void OnChange_file_browser_sort_mode(cvar_t *var, char *string, q...
FILE: src/EX_FileList.h
type filetype_t (line 55) | typedef struct filetype_s
type filedesc_t (line 66) | typedef struct filedesc_s
type filelist_t (line 90) | typedef struct filelist_s
FILE: src/EX_browser.c
type info_filter_t (line 43) | typedef struct info_filter_s {
function sb_trigger_resort (line 119) | static void sb_trigger_resort(cvar_t* var, char* value, qbool* cancel)
type sb_column_t (line 170) | typedef struct sb_column_t {
function SB_ServerList_Lock (line 191) | void SB_ServerList_Lock(void)
function SB_ServerList_Unlock (line 196) | void SB_ServerList_Unlock(void)
function qbool (line 201) | static qbool SB_Is_Selected_Proxy(const server_data *s)
function SB_Proxy_Unselect (line 208) | static void SB_Proxy_Unselect(const server_data *s)
function SB_Proxy_Select (line 240) | static void SB_Proxy_Select(const server_data *s)
function SB_Select_QWfwd (line 257) | static void SB_Select_QWfwd(server_data *s)
function SB_Browser_Hide (line 282) | static void SB_Browser_Hide(const server_data *s)
function Join_Server (line 294) | static void Join_Server (server_data *s)
function Join_Server_Direct (line 308) | static void Join_Server_Direct(server_data *s)
function Observe_Server (line 317) | static void Observe_Server (server_data *s)
function CopyServerToClipboard (line 330) | static void CopyServerToClipboard (server_data *s)
function PasteServerToConsole (line 344) | static void PasteServerToConsole (server_data *s)
function server_data (line 363) | server_data * Create_Server (char *ip)
function server_data (line 388) | server_data* Clone_Server(server_data* source)
function server_data (line 422) | server_data * Create_Server2 (netadr_t n)
function Reset_Server (line 437) | void Reset_Server (server_data *s)
function Delete_Server (line 462) | void Delete_Server (server_data *s)
function SB_Confirmation (line 473) | void SB_Confirmation (const char *text, void (*func)(void))
function SB_Confirmation_Draw (line 480) | void SB_Confirmation_Draw (void)
function SB_Confirmation_Key (line 500) | void SB_Confirmation_Key (int key)
function Sources_Compare_Func (line 546) | int Sources_Compare_Func (const void * p_s1, const void * p_s2)
function Sort_Sources (line 590) | void Sort_Sources (void)
function Serverinfo_Stop (line 609) | void Serverinfo_Stop(void)
function Serverinfo_Start (line 616) | void Serverinfo_Start (server_data *s)
function Serverinfo_Change (line 649) | void Serverinfo_Change (server_data *s)
function qbool (line 670) | qbool AddUnboundServer(char *addr)
function AddServer_f (line 708) | void AddServer_f(void)
function SB_PingsDump_f (line 725) | void SB_PingsDump_f(void)
function Add_ColumnColored (line 744) | void Add_ColumnColored(int x, int y, int *pos, const char *t, int w, con...
function Add_Column2 (line 757) | void Add_Column2(int x, int y, int *pos, const char *t, int w, int red)
function Draw_Server_Statusbar (line 767) | void Draw_Server_Statusbar(int x, int y, int w, int h, server_data *s, i...
function Add_Server_Draw (line 883) | void Add_Server_Draw(void)
function SB_Servers_OnShow (line 914) | void SB_Servers_OnShow (void)
function SB_Servers_Hovered_Column (line 947) | static unsigned int SB_Servers_Hovered_Column(int w)
function SB_Servers_Draw_ColumnHeaders (line 965) | int SB_Servers_Draw_ColumnHeaders(int x, int y, int w)
function SB_Servers_Draw (line 1000) | void SB_Servers_Draw (int x, int y, int w, int h)
function PingPhase_Draw (line 1154) | void PingPhase_Draw(void)
function UpdatingSources_Draw (line 1180) | void UpdatingSources_Draw(void)
function Serverinfo_Help_Draw (line 1205) | void Serverinfo_Help_Draw(int x, int y, int wPixels)
function Serverinfo_Draw (line 1246) | void Serverinfo_Draw (void)
function Serverinfo_Players_Draw (line 1320) | void Serverinfo_Players_Draw(int x, int y, int w, int h)
function Serverinfo_Rules_Draw (line 1478) | void Serverinfo_Rules_Draw(int x, int y, int w, int h)
function IsInSource (line 1506) | int IsInSource(source_data *source, server_data *serv)
function Serverinfo_Sources_Draw (line 1515) | void Serverinfo_Sources_Draw(int x, int y, int w, int h)
function Add_Source_Draw (line 1568) | void Add_Source_Draw(void)
function SB_Sources_Draw (line 1612) | void SB_Sources_Draw (int x, int y, int w, int h)
function SB_Players_Draw (line 1716) | void SB_Players_Draw (int x, int y, int w, int h)
function SB_SourceUnmarkAll (line 1783) | void SB_SourceUnmarkAll(void)
function SB_SourceMark (line 1790) | void SB_SourceMark(void)
function MarkDefaultSources (line 1808) | void MarkDefaultSources(void) {
function WriteSourcesConfiguration (line 1822) | void WriteSourcesConfiguration(FILE *f)
function SB_Source_Add_f (line 1831) | void SB_Source_Add_f(void)
function SB_NewSource_Shift (line 1861) | static void SB_NewSource_Shift(void)
function Add_Source_Key (line 1867) | void Add_Source_Key(int key, wchar unichar)
function Add_Server_Key (line 1940) | void Add_Server_Key(int key, wchar unichar)
function qbool (line 2005) | qbool SearchNextServer (int pos)
function SB_Servers_Toggle_Column_Show (line 2023) | static void SB_Servers_Toggle_Column_Show(int colidx)
function SB_Servers_Toggle_Column_Sort (line 2030) | static void SB_Servers_Toggle_Column_Sort(char key)
function SB_Servers_Key (line 2054) | int SB_Servers_Key(int key)
function Serverinfo_Key (line 2179) | void Serverinfo_Key(int key)
function Serverinfo_Players_Key (line 2297) | void Serverinfo_Players_Key(int key)
function Serverinfo_Rules_Key (line 2320) | void Serverinfo_Rules_Key(int key)
function Serverinfo_Sources_Key (line 2343) | void Serverinfo_Sources_Key(int key)
function SB_RemoveSourceProc (line 2382) | void SB_RemoveSourceProc(void)
function SB_Sources_Key (line 2391) | int SB_Sources_Key(int key)
function qbool (line 2495) | qbool SearchNextPlayer(int pos)
function SB_Players_Key (line 2513) | int SB_Players_Key(int key)
function qbool (line 2644) | qbool SB_Servers_Mouse_Event(const mouse_state_t *ms)
function qbool (line 2671) | qbool SB_Sources_Mouse_Event(const mouse_state_t *ms)
function qbool (line 2685) | qbool SB_Players_Mouse_Event(const mouse_state_t *ms)
function SB_Specials_Draw (line 2694) | void SB_Specials_Draw(void)
function qbool (line 2702) | qbool SB_Specials_Key(int key, wchar unichar)
function Servers_Compare_Ping_Func (line 2759) | static int Servers_Compare_Ping_Func(const server_data *s1, const server...
function Servers_Occupancy_Sort_Rating (line 2768) | static int Servers_Occupancy_Sort_Rating(server_occupancy oc) {
function Servers_Compare_Natural (line 2784) | static int Servers_Compare_Natural(const server_data *s1, const server_d...
function Servers_Compare_Func (line 2805) | int Servers_Compare_Func(const void * p_s1, const void * p_s2)
function Filter_Servers (line 2876) | void Filter_Servers(void)
function Sort_Servers (line 2929) | void Sort_Servers (void)
function All_Players_Compare_Func (line 2945) | int All_Players_Compare_Func(const void * p_p1, const void * p_p2)
function Sort_All_Players (line 3012) | void Sort_All_Players(void)
function Rebuild_All_Players (line 3017) | void Rebuild_All_Players(void)
function SB_Sources_Update_f (line 3057) | void SB_Sources_Update_f(void)
function SB_Serverlist_Serialize (line 3070) | void SB_Serverlist_Serialize(FILE *f)
function SB_Serverlist_Unserialize (line 3094) | int SB_Serverlist_Unserialize(FILE *f)
function SB_Serverlist_Serialize_f (line 3156) | void SB_Serverlist_Serialize_f(void)
function SB_Serverlist_Unserialize_f (line 3177) | void SB_Serverlist_Unserialize_f(void)
function SB_ProxyDumpPing (line 3210) | void SB_ProxyDumpPing(netadr_t adr, short dist)
function SB_ProxyGetPings_f (line 3216) | void SB_ProxyGetPings_f(void)
function SB_Shutdown (line 3235) | void SB_Shutdown(void)
function Browser_Init (line 3253) | void Browser_Init (void)
function Browser_Init2 (line 3313) | void Browser_Init2 (void)
function SB_ExecuteQueuedTriggers (line 3337) | void SB_ExecuteQueuedTriggers(void) {
function qbool (line 3354) | static qbool SB_InfoFilter_Exec(info_filter_t* info_filters, int info_fi...
function info_filter_t (line 3403) | static info_filter_t* SB_InfoFilter_Parse(int* count)
function SB_InfoFilter_Free (line 3458) | static void SB_InfoFilter_Free(info_filter_t* info_filters, int info_fil...
FILE: src/EX_browser.h
type columns (line 86) | typedef struct column_s
type playerinfo (line 100) | typedef struct playerinfo_s
type server_occupancy (line 114) | typedef enum {
type server_data (line 118) | typedef struct server_data_s
type sb_source_type_t (line 140) | typedef enum sb_source_type_e {
type source_data (line 147) | typedef struct source_data_s
type player_host (line 168) | typedef struct player_host_s
type serverbrowser_window_t (line 174) | typedef struct serverbrowser_window_s {
FILE: src/EX_browser_net.c
type infohost (line 48) | typedef struct infohost_s
function ReadInt (line 62) | int ReadInt (char *playerinfo, int *i)
function ReadString (line 77) | int ReadString (char *playerinfo, char *str)
function SetPing (line 104) | void SetPing(server_data *s, int ping)
function SB_Server_SetBestPing (line 116) | void SB_Server_SetBestPing(server_data *s, int bestping)
function qbool (line 126) | qbool SB_AllServersDead(void)
function qbool (line 139) | qbool SB_IsServerQWfwd(server_data *s)
function Parse_Serverinfo (line 154) | void Parse_Serverinfo(server_data *s, char *info)
function GetServerInfo (line 332) | void GetServerInfo(server_data *serv)
function GetServerInfosProc (line 379) | int GetServerInfosProc(void * lpParameter)
function GetServerPing (line 534) | void GetServerPing(server_data *serv)
function GetServerPingsAndInfosProc (line 556) | int GetServerPingsAndInfosProc(void * lpParameter)
function GetServerPingsAndInfos (line 611) | void GetServerPingsAndInfos(int full)
function GetServerPingsAndInfos_f (line 640) | void GetServerPingsAndInfos_f(void)
function AutoupdateProc (line 653) | int AutoupdateProc(void * lpParameter)
function Start_Autoupdate (line 682) | void Start_Autoupdate(server_data *s)
function Alter_Autoupdate (line 690) | void Alter_Autoupdate(server_data *s)
FILE: src/EX_browser_pathfind.c
type nodeid_t (line 61) | typedef int nodeid_t;
type dist_t (line 65) | typedef short dist_t;
type ipaddr_t (line 68) | typedef struct ipaddr_t {
type ping_node_t (line 72) | typedef struct ping_node_t {
type ping_neighbour_t (line 84) | typedef struct ping_neighbour_t {
type proxy_query_request_t (line 89) | typedef struct proxy_query_request_t {
type proxy_request_queue (line 95) | typedef struct proxy_request_queue_t {
function SB_PingTree_Assertions (line 116) | static void SB_PingTree_Assertions(void)
function SB_PingTree_FindIp (line 137) | static int SB_PingTree_FindIp(ipaddr_t ipaddr)
function SB_PingTree_AddNode (line 151) | static int SB_PingTree_AddNode(ipaddr_t ipaddr, unsigned short proxport)
function SB_PingTree_AddNeighbour (line 177) | static int SB_PingTree_AddNeighbour(nodeid_t neighbour_id, dist_t dist)
function ipaddr_t (line 189) | static ipaddr_t SB_DummyIpAddr(void)
function SB_PingTree_AddSelf (line 195) | static void SB_PingTree_AddSelf(void)
function SB_PingTree_Clear (line 200) | static void SB_PingTree_Clear(void)
function ipaddr_t (line 207) | static ipaddr_t SB_Netaddr2Ipaddr(const netadr_t *netadr)
function qbool (line 214) | static qbool SB_PingTree_IsServerDead(const server_data *data)
function qbool (line 219) | static qbool SB_PingTree_IsProxyFiltered(const server_data *data)
function nodeid_t (line 238) | static nodeid_t SB_PingTree_AddServer(const server_data *data)
function SB_PingTree_AddProxyPing (line 252) | static void SB_PingTree_AddProxyPing(netadr_t adr, dist_t dist)
function SB_Proxy_ParseReply (line 266) | static void SB_Proxy_ParseReply(const byte *buf, size_t buflen, proxy_pi...
function SB_Proxy_QueryForPingList (line 295) | void SB_Proxy_QueryForPingList(const netadr_t *address, proxy_ping_repor...
function SB_PingTree_AddNodes (line 348) | static void SB_PingTree_AddNodes(void)
function netadr_t (line 362) | static netadr_t SB_NodeNetadr_Get(nodeid_t id)
function SB_PingTree_SendQueryThread (line 371) | int SB_PingTree_SendQueryThread(void *thread_arg)
function SB_Proxylist_Serialize_Start (line 431) | void SB_Proxylist_Serialize_Start(FILE *f)
function SB_Proxylist_Serialize_Reply (line 440) | void SB_Proxylist_Serialize_Reply(FILE *f, netadr_t proxy, void *buf, si...
function SB_Proxylist_Serialize_End (line 447) | void SB_Proxylist_Serialize_End(FILE *f)
function qbool (line 455) | static qbool SB_PingTree_RecvQuery(proxy_request_queue *queue, FILE *f)
function SB_PingTree_ScanProxies (line 535) | static void SB_PingTree_ScanProxies(void)
function nodeid_t (line 623) | static nodeid_t SB_PingTree_NearestNodeGet(void)
function SB_PingTree_Dijkstra (line 640) | static void SB_PingTree_Dijkstra(void)
function SB_PingTree_Phase1 (line 662) | static void SB_PingTree_Phase1(void)
function SB_PingTree_UpdateServerList (line 668) | static void SB_PingTree_UpdateServerList(void)
function SB_PingTree_Phase2 (line 684) | int SB_PingTree_Phase2(void *ignored_arg)
function qbool (line 698) | qbool SB_PingTree_Built(void)
function SB_PingTree_Build (line 706) | void SB_PingTree_Build(void)
function SB_PingTree_DumpPath (line 726) | void SB_PingTree_DumpPath(const netadr_t *addr)
function SB_PingTree_GetPathLen (line 747) | int SB_PingTree_GetPathLen(const netadr_t *addr)
function SB_PingTree_ConnectBestPath (line 771) | void SB_PingTree_ConnectBestPath(const netadr_t *addr)
function SB_Proxylist_Unserialize (line 812) | int SB_Proxylist_Unserialize(FILE *f)
function SB_Proxylist_Unserialize_f (line 854) | void SB_Proxylist_Unserialize_f(void)
function qbool (line 890) | qbool SB_PingTree_IsBuilding(void)
function SB_PingTree_Init (line 895) | void SB_PingTree_Init(void)
function SB_PingTree_Shutdown (line 900) | void SB_PingTree_Shutdown(void)
FILE: src/EX_browser_ping.c
type IP_header_t (line 74) | typedef struct IP_header_s
type ICMP_header_t (line 90) | typedef struct ICMP_header_s
type IP_packet_t (line 106) | typedef union IP_Packet_u {
type ICMP_packet_t (line 111) | typedef union ICMP_Packet_u {
type pinghost_t (line 117) | typedef struct pinghost_s
type pinghost_list_t (line 127) | typedef struct {
function ParseServerIp (line 154) | static int ParseServerIp(char *server_port, int *addr, unsigned short *p...
function pinghost_t (line 185) | static pinghost_t *ParseServerList(server_data *servs[], int servsn, int...
function FillServerListPings (line 231) | static void FillServerListPings(server_data *servs[], int servsn,
function ICMP_header_t (line 265) | static ICMP_header_t *IP_DecodePacket(IP_packet_t *ip_packet, int bytes,
function ICMP_GetEchoResponseTime (line 295) | static int ICMP_GetEchoResponseTime(ICMP_header_t *icmp_hdr)
function ICMP_Checksum (line 303) | static unsigned short ICMP_Checksum(ICMP_packet_t *packet, int size)
function ICMP_FillData (line 328) | static void ICMP_FillData(ICMP_packet_t *packet, int datasize)
function SB_RootInit (line 345) | void SB_RootInit(void)
function oldPingHost (line 354) | int oldPingHost(char *host_to_ping, int count)
function oldPingHosts (line 451) | int oldPingHosts(server_data *servs[], int servsn, int count)
function PingSendParrallelMultiHosts (line 604) | void PingSendParrallelMultiHosts(pinghost_t *phosts, int nelms, int coun...
function PingRecvProc (line 649) | int PingRecvProc(void *lpParameter)
function PingHost (line 699) | int PingHost(char *host_to_ping, unsigned short port, int count, int tim...
function PingHosts (line 755) | int PingHosts(server_data *servs[], int servsn, int count)
function SB_Test_GetPackets (line 822) | void SB_Test_GetPackets(void)
function SB_Test_SendPacket (line 878) | void SB_Test_SendPacket(void)
function SB_Test_CalcNet (line 929) | void SB_Test_CalcNet(void)
function SB_Test_Draw (line 1034) | void SB_Test_Draw(void)
function SB_Test_Init (line 1057) | void SB_Test_Init(char *address)
function SB_Test_Change (line 1078) | void SB_Test_Change(char *address)
function SB_Test_Frame (line 1092) | void SB_Test_Frame(void)
FILE: src/EX_browser_qtvlist.c
type sb_qtvplayer_t (line 32) | typedef struct sb_qtvplayer_s {
type sb_qtventry_t (line 44) | typedef struct sb_qtventry_s {
type sb_qtvlist_parse_position_t (line 56) | typedef enum {
type sb_qtvlist_status_t (line 62) | typedef enum {
type sb_qtvlist_parse_state_t (line 72) | typedef struct sb_qtvlist_parse_state_s {
type sb_qtvlist_cache_t (line 78) | typedef struct sb_qtvlist_cache_s {
function sb_qtventry_t (line 85) | static sb_qtventry_t *QTVList_New_Entry(void)
function sb_qtvplayer_t (line 94) | static sb_qtvplayer_t *QTVList_New_Player(void)
function QTVList_Parse_StartElement (line 103) | static void QTVList_Parse_StartElement(void *userData, const XML_Char *n...
function QTVList_Parse_CharacterData (line 138) | void QTVList_Parse_CharacterData(void *userData, const XML_Char *s, int ...
function QTVList_Parse_EndElement (line 155) | void QTVList_Parse_EndElement(void *userData, const XML_Char *name)
function sb_qtvlist_parse_state_t (line 215) | sb_qtvlist_parse_state_t *QTVList_Parse_Init(void)
function QTVList_Entry_Destroy (line 225) | void QTVList_Entry_Destroy(sb_qtventry_t *entry)
function QTVList_Parse_Destroy (line 236) | void QTVList_Parse_Destroy(sb_qtvlist_parse_state_t *parse)
function QTVList_Process_Full_List (line 246) | void QTVList_Process_Full_List(vfsfile_t *f, sb_qtvlist_parse_state_t *s...
function QTVList_Cache_File_Download (line 277) | void QTVList_Cache_File_Download(void)
function vfsfile_t (line 310) | static vfsfile_t *QTVList_Cache_File_Open(char *mode)
function QTVList_Resolve_Hostnames (line 315) | static void QTVList_Resolve_Hostnames(void)
function qbool (line 329) | static qbool QTVList_Cache_File_Is_Old(void)
function QTVList_Refresh_Cache (line 363) | void QTVList_Refresh_Cache(qbool force_redownload)
function QTVList_Length (line 398) | static size_t QTVList_Length(const sb_qtventry_t *first)
function QTVList_Player_Count (line 411) | static size_t QTVList_Player_Count(const sb_qtventry_t *entry)
function QTVList_Entry_Cmp (line 424) | int QTVList_Entry_Cmp(const void *a_v, const void *b_v)
function QTVList_Print (line 440) | static void QTVList_Print(void)
function QTVList_Refresh_Cache_Thread (line 480) | int QTVList_Refresh_Cache_Thread(void *userData)
function QTVList_Download_And_Print_Thread (line 487) | int QTVList_Download_And_Print_Thread(void *userData)
function QTVList_Print_Global (line 498) | void QTVList_Print_Global(void)
function QTVList_Initialize_Streammap (line 511) | void QTVList_Initialize_Streammap(void)
function netadr_t (line 524) | static netadr_t QTVList_Current_IP(void)
function QTVList_Observeqtv_f (line 541) | void QTVList_Observeqtv_f(void)
function QTVList_Init (line 579) | void QTVList_Init(void)
FILE: src/EX_browser_sources.c
type curl_buf (line 42) | struct curl_buf
function source_data (line 52) | source_data * Create_Source(void)
function Reset_Source (line 66) | void Reset_Source(source_data *s)
function Delete_Source (line 82) | void Delete_Source(source_data *s)
function qbool (line 90) | qbool Update_Source_From_File(source_data *s, char *fname, server_data *...
function SB_URL_to_FileName (line 122) | static size_t SB_URL_to_FileName(const char *str, char *dest, size_t size)
function SB_URL_To_Filename_Length (line 151) | static size_t SB_URL_To_Filename_Length(const char *s)
function Precache_Source (line 156) | static void Precache_Source(source_data *s)
function SB_Process_URL_Buffer (line 207) | static void SB_Process_URL_Buffer(const struct curl_buf *curl_buf, serve...
type curl_buf (line 229) | struct curl_buf
type curl_buf (line 232) | struct curl_buf
type curl_buf (line 232) | struct curl_buf
function curl_buf_deinit (line 238) | static void curl_buf_deinit(struct curl_buf *curl_buf)
function curl_write_func (line 244) | static size_t curl_write_func( void *ptr, size_t size, size_t nmemb, voi...
function SB_Cache_Source (line 259) | int SB_Cache_Source(const source_data *s, const struct curl_buf *curl_buf)
type curl_buf (line 281) | struct curl_buf
type curl_buf (line 285) | struct curl_buf
function SB_Update_Source_From_URL (line 313) | static void SB_Update_Source_From_URL(const source_data *s, server_data ...
function Update_Source (line 340) | void Update_Source(source_data *s)
type infohost (line 487) | typedef struct infohost_s
function Update_Multiple_Sources_Proc (line 496) | int Update_Multiple_Sources_Proc(void * lpParameter)
function Update_Init (line 673) | void Update_Init(source_data *s[], int sn)
function Update_Multiple_Sources_Begin (line 684) | void Update_Multiple_Sources_Begin(source_data *s[], int sn)
function Update_Multiple_Sources (line 693) | void Update_Multiple_Sources(source_data *s[], int sn)
function SB_Sources_Update (line 699) | void SB_Sources_Update(qbool full)
function SB_Sources_Update_Begin (line 707) | void SB_Sources_Update_Begin(qbool full)
function SB_Sources_Marked_Count (line 713) | unsigned int SB_Sources_Marked_Count(void)
function Toggle_Source (line 727) | void Toggle_Source(source_data *s)
function Mark_Source (line 733) | void Mark_Source(source_data *s)
function Unmark_Source (line 742) | void Unmark_Source(source_data *s)
function qbool (line 775) | qbool SB_Sources_Dump(void)
function SB_Source_Add (line 814) | int SB_Source_Add(const char* name, const char* address, sb_source_type_...
function SB_Source_Remove (line 854) | void SB_Source_Remove(int i)
function Reload_Sources (line 880) | void Reload_Sources(void)
function Rebuild_Servers_List (line 987) | void Rebuild_Servers_List(void)
function DumpSource (line 1035) | void DumpSource(source_data *s)
function AddUnbound (line 1069) | static void AddUnbound(server_data *s)
function RemoveFromFileSource (line 1082) | void RemoveFromFileSource(source_data *source, server_data *serv)
function AddToFileSource (line 1119) | void AddToFileSource(source_data *source, server_data *serv)
FILE: src/EX_qtvlist.c
function qtvlist_curl_callback (line 34) | static size_t qtvlist_curl_callback(char *content, size_t size, size_t n...
type str_buf (line 65) | struct str_buf
function qtvlist_json_load_and_verify_string (line 92) | static void qtvlist_json_load_and_verify_string(const char *input)
function qtvlist_print_server_and_qtvaddress_list (line 137) | static void qtvlist_print_server_and_qtvaddress_list(void)
function qtvlist_find_player (line 202) | static void qtvlist_find_player(const char *name, qbool list_all)
function qtvlist_find_and_follow_player (line 276) | static void qtvlist_find_and_follow_player(const char *name)
function qtvlist_get_gameaddress (line 349) | static void qtvlist_get_gameaddress(const char *qtvaddress, char *out_ad...
function qtvlist_qtv_cmd (line 404) | static void qtvlist_qtv_cmd(void)
function qtvlist_update (line 481) | static int qtvlist_update(void *unused)
function qtvlist_find_player_cmd (line 518) | static void qtvlist_find_player_cmd(void)
function qtvlist_find_and_follow_player_cmd (line 548) | static void qtvlist_find_and_follow_player_cmd(void)
function qtvlist_spawn_updater (line 571) | static void qtvlist_spawn_updater(void)
function qtvlist_joinfromqtv_cmd (line 590) | void qtvlist_joinfromqtv_cmd(void)
function qtvlist_init (line 629) | void qtvlist_init(void)
function qtvlist_deinit (line 653) | void qtvlist_deinit(void)
FILE: src/EX_qtvlist.h
type str_buf (line 23) | struct str_buf {
FILE: src/bspfile.h
type lump_t (line 61) | typedef struct
type dmodel_t (line 88) | typedef struct
type dheader_t (line 98) | typedef struct
type dmiptexlump_t (line 104) | typedef struct
type miptex_t (line 111) | typedef struct miptex_s
type dvertex_t (line 119) | typedef struct
type dplane_t (line 135) | typedef struct
type dnode_t (line 151) | typedef struct
type dnode29a_t (line 161) | typedef struct
type dnode_bsp2_t (line 171) | typedef struct
type dclipnode_t (line 181) | typedef struct
type dclipnode29a_t (line 187) | typedef struct
type mclipnode_t (line 193) | typedef struct
type texinfo_t (line 199) | typedef struct texinfo_s
type dedge_t (line 209) | typedef struct {
type dedge29a_t (line 213) | typedef struct {
type dface_t (line 218) | typedef struct {
type dface29a_t (line 231) | typedef struct {
type dleaf_t (line 253) | typedef struct {
type dleaf29a_t (line 266) | typedef struct {
type dleaf_bsp2_t (line 279) | typedef struct {
type dlminfo_t (line 292) | typedef struct {
FILE: src/cd_linux.c
function CDAudio_Eject (line 57) | static void CDAudio_Eject(void)
function CDAudio_CloseDoor (line 72) | static void CDAudio_CloseDoor(void)
type ioc_toc_header (line 89) | struct ioc_toc_header
type cdrom_tochdr (line 91) | struct cdrom_tochdr
type ioc_read_toc_entry (line 132) | struct ioc_read_toc_entry
type cd_toc_entry (line 133) | struct cd_toc_entry
type ioc_play_track (line 134) | struct ioc_play_track
type cdrom_tocentry (line 136) | struct cdrom_tocentry
type cdrom_ti (line 137) | struct cdrom_ti
function CDAudio_Stop (line 236) | void CDAudio_Stop(void)
function CDAudio_Pause (line 256) | void CDAudio_Pause(void)
function CDAudio_Resume (line 277) | void CDAudio_Resume(void)
function CD_f (line 304) | void CD_f (void) {
function CDAudio_Update (line 388) | void CDAudio_Update(void)
function CDAudio_Init (line 453) | int CDAudio_Init(void)
function CDAudio_Shutdown (line 488) | void CDAudio_Shutdown(void)
FILE: src/cd_null.c
function CDAudio_Play (line 20) | void CDAudio_Play(byte track, qbool looping)
function CDAudio_Stop (line 24) | void CDAudio_Stop(void)
function CDAudio_Pause (line 28) | void CDAudio_Pause(void)
function CDAudio_Resume (line 32) | void CDAudio_Resume(void)
function CD_f (line 36) | void CD_f (void) {
function CDAudio_Update (line 39) | void CDAudio_Update(void)
function CDAudio_Init (line 43) | int CDAudio_Init(void)
function CDAudio_Shutdown (line 48) | void CDAudio_Shutdown(void)
FILE: src/cd_win.c
function CDAudio_Eject (line 43) | static void CDAudio_Eject(void)
function CDAudio_CloseDoor (line 52) | static void CDAudio_CloseDoor(void)
function CDAudio_GetAudioDiskInfo (line 61) | static int CDAudio_GetAudioDiskInfo(void)
function CDAudio_Play (line 102) | void CDAudio_Play(byte track, qbool looping)
function CDAudio_Stop (line 177) | void CDAudio_Stop(void)
function CDAudio_Pause (line 196) | void CDAudio_Pause(void)
function CDAudio_Resume (line 216) | void CDAudio_Resume(void)
function CD_f (line 249) | void CD_f (void) {
function LONG (line 334) | LONG CDAudio_MessageHandler(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM ...
function CDAudio_Update (line 369) | void CDAudio_Update(void)
function CDAudio_Init (line 392) | int CDAudio_Init(void)
function CDAudio_Shutdown (line 441) | void CDAudio_Shutdown(void)
FILE: src/central.c
type curl_httppost (line 33) | struct curl_httppost
type curl_httppost (line 33) | struct curl_httppost
type web_request_data_s (line 42) | struct web_request_data_s
type web_request_data_s (line 44) | struct web_request_data_s
type web_request_data_t (line 46) | typedef struct web_request_data_s {
function Web_StandardTokenWrite (line 68) | static size_t Web_StandardTokenWrite(void* buffer, size_t size, size_t n...
function Web_SubmitRequestFormGeneric (line 85) | static void Web_SubmitRequestFormGeneric(const char* url, struct curl_ht...
type response_field_t (line 111) | typedef struct response_field_s {
function ProcessWebResponse (line 116) | static int ProcessWebResponse(web_request_data_t* req, response_field_t*...
function utf8Encode (line 160) | static int utf8Encode(char in, char* out1, char* out2) {
function Auth_GenerateChallengeResponse (line 174) | static void Auth_GenerateChallengeResponse(web_request_data_t* req, qboo...
function Central_GenerateChallenge (line 217) | void Central_GenerateChallenge(client_t* client, const char* username, q...
function Auth_ProcessLoginAttempt (line 258) | void Auth_ProcessLoginAttempt(web_request_data_t* req, qbool valid)
function Central_VerifyChallengeResponse (line 318) | void Central_VerifyChallengeResponse(client_t* client, const char* chall...
function qbool (line 358) | static qbool CheckFileExists(const char* path)
function Web_PostResponse (line 368) | void Web_PostResponse(web_request_data_t* req, qbool valid)
function Web_SubmitRequestFormServer (line 449) | static void Web_SubmitRequestFormServer(const char* url, struct curl_htt...
function Web_ConstructServerURL (line 460) | static void Web_ConstructServerURL(char* url, const char* path, int size...
function Web_SendRequest (line 465) | static void Web_SendRequest(qbool post)
function Web_GetRequest_f (line 518) | static void Web_GetRequest_f(void)
function Web_PostRequest_f (line 523) | static void Web_PostRequest_f(void)
function Web_PostFileRequest_f (line 528) | static void Web_PostFileRequest_f(void)
function Web_PeriodicCheck (line 595) | static void Web_PeriodicCheck(qbool server_busy)
function Web_ConstructGenericURL (line 614) | static void Web_ConstructGenericURL(const char* base_url, char* url, con...
function Central_ProcessResponses (line 626) | void Central_ProcessResponses(void)
function Central_Shutdown (line 691) | void Central_Shutdown(void)
function Central_Init (line 699) | void Central_Init(void)
function Web_ConstructClientURL (line 723) | static void Web_ConstructClientURL(char* url, const char* path, int size...
function Auth_FindChallengeResponse (line 729) | void Auth_FindChallengeResponse(web_request_data_t* req, qbool valid)
function Central_FindChallengeResponse (line 770) | void Central_FindChallengeResponse(const char* token, const char* challe...
FILE: src/cl_cam.c
function CL_Cam_SetKiller (line 63) | void CL_Cam_SetKiller(int killernum, int victimnum) {
function vectoangles (line 70) | void vectoangles(vec3_t vec, vec3_t ang) {
function Cam_SetViewPlayer (line 92) | void Cam_SetViewPlayer (void)
function qbool (line 110) | qbool Cam_DrawViewModel(void) {
function qbool (line 119) | static qbool Cam_FirstPersonMode(void)
function qbool (line 125) | qbool Cam_DrawPlayer(int playernum)
function Cam_Unlock (line 132) | void Cam_Unlock(void)
function Cam_Lock (line 169) | void Cam_Lock(int playernum)
function trace_t (line 209) | trace_t Cam_DoTrace(vec3_t vec1, vec3_t vec2) {
function Cam_TryFlyby (line 215) | static float Cam_TryFlyby(player_state_t *self, player_state_t *player, ...
function qbool (line 246) | static qbool Cam_IsVisible(player_state_t *player, vec3_t vec) {
function qbool (line 259) | static qbool InitFlyby(player_state_t *self, player_state_t *player, int...
function Cam_CheckHighTarget (line 345) | static void Cam_CheckHighTarget(void)
function Cam_Track (line 369) | void Cam_Track(usercmd_t *cmd)
function qbool (line 496) | qbool Cam_JumpCheck(usercmd_t *cmd)
function qbool (line 512) | qbool Cam_MoveDownCheck(usercmd_t *cmd)
function Cam_FinishMove (line 527) | void Cam_FinishMove(usercmd_t *cmd)
function Cam_Reset (line 615) | void Cam_Reset(void)
function Cam_TryLock (line 624) | void Cam_TryLock (void) {
function Cam_Pos_Set (line 699) | void Cam_Pos_Set(float x, float y, float z)
function Cam_Pos_f (line 718) | static void Cam_Pos_f (void)
function Cam_Angles_Set (line 745) | void Cam_Angles_Set(float pitch, float yaw, float roll)
function Cam_Angles_f (line 753) | static void Cam_Angles_f (void)
function CL_InitCam (line 791) | void CL_InitCam(void)
function Cam_MainTrackNum (line 829) | static int Cam_MainTrackNum(void)
function CL_Track (line 844) | void CL_Track (int trackview)
function CL_Track_f (line 936) | void CL_Track_f(void)
function CL_Trackkiller_f (line 941) | void CL_Trackkiller_f(void)
function CL_Autotrack_f (line 954) | void CL_Autotrack_f(void)
function Cam_TrackNum (line 1024) | int Cam_TrackNum(void)
function WhoIsSpectated (line 1047) | int WhoIsSpectated (void)
FILE: src/cl_cmd.c
type coloredtextfilterlevel_e (line 45) | typedef enum coloredtextfilterlevel_e
function Cmd_ForwardToServer (line 59) | void Cmd_ForwardToServer (void) {
function CL_ForwardToServer_f (line 84) | void CL_ForwardToServer_f (void) {
function CL_Cmd_SayString_FilterWhite (line 174) | static void CL_Cmd_SayString_FilterWhite(char *s)
function CL_Cmd_SayString_FilterColoredText (line 189) | static void CL_Cmd_SayString_FilterColoredText(char *s)
function CL_Cmd_SayString_ApplyFilters (line 210) | static void CL_Cmd_SayString_ApplyFilters(char *s)
function CL_Cmd_SayString_InsertAppendix (line 223) | static void CL_Cmd_SayString_InsertAppendix(char *s, char *appendix)
function CL_Cmd_SayString_SendBase (line 239) | static void CL_Cmd_SayString_SendBase(char *s, char *appendix)
function qbool (line 257) | static qbool CL_Cmd_SayString_IsColored(char *s)
function CL_Cmd_SayString_Send (line 268) | static void CL_Cmd_SayString_Send(char *s)
function CL_Say_f (line 288) | void CL_Say_f (void) {
function CL_Pause_f (line 385) | void CL_Pause_f (void) {
function CL_Packet_f (line 394) | void CL_Packet_f(void) {
function CL_PrintQStatReply (line 449) | void CL_PrintQStatReply (char *s) {
function CL_QStat_f (line 521) | void CL_QStat_f (void)
function CL_Rcon_f (line 548) | void CL_Rcon_f (void) {
function qbool (line 627) | qbool CL_Download_Accept(const char *filename)
function CL_Download_f (line 648) | void CL_Download_f (void){
function CL_User_f (line 702) | void CL_User_f (void) {
function CL_Users_f (line 723) | void CL_Users_f (void) {
function CL_Color_f (line 739) | void CL_Color_f (void) {
function CL_FullInfo_f (line 764) | void CL_FullInfo_f (void) {
function CL_SetInfo_f (line 803) | void CL_SetInfo_f (void) {
function CL_UserInfo_f (line 822) | void CL_UserInfo_f (void) {
function CL_Quit_f (line 830) | void CL_Quit_f (void) {
function CL_Userdir_f (line 846) | void CL_Userdir_f (void)
function CL_Serverinfo_f (line 860) | void CL_Serverinfo_f (void)
type z_ext_map_t (line 878) | typedef struct
function get_z_ext_list (line 899) | int get_z_ext_list(int bits, char *buf, int bufsize)
function CL_Z_Ext_List_f (line 919) | void CL_Z_Ext_List_f (void)
function CL_InitCommands (line 929) | void CL_InitCommands (void) {
function CL_Changing_f (line 988) | void CL_Changing_f (void) {
function CL_FullServerinfo_f (line 1026) | void CL_FullServerinfo_f (void) {
function CL_R_DrawViewModel_f (line 1041) | void CL_R_DrawViewModel_f (void) {
type svcmd_t (line 1049) | typedef struct {
function qbool (line 1066) | qbool CL_CheckServerCommand (void) {
function usermainbuttons_t (line 1081) | usermainbuttons_t CL_GetLastCmd(int player_slot)
FILE: src/cl_demo.c
type qizmo_status_t (line 89) | typedef enum {
function qbool (line 156) | static qbool CL_Demo_Open(char *name)
function CL_Demo_Close (line 168) | static void CL_Demo_Close(void)
function CL_Demo_Write (line 180) | static void CL_Demo_Write(const void *data, int size)
function CL_WriteDemoCmd (line 233) | void CL_WriteDemoCmd (usercmd_t *pcmd)
function CL_WriteDemoMessage (line 271) | void CL_WriteDemoMessage (sizebuf_t *msg)
function CL_WriteDemoEntities (line 306) | void CL_WriteDemoEntities (void)
function CL_WriteStartupDemoMessage (line 330) | static void CL_WriteStartupDemoMessage (sizebuf_t *msg, int seq)
function CL_WriteSetDemoMessage (line 365) | static void CL_WriteSetDemoMessage (void)
function CL_WriteServerdata (line 411) | void CL_WriteServerdata (sizebuf_t *msg)
function CL_WriteStartupData (line 487) | static void CL_WriteStartupData (void)
function CL_MVD_DemoWrite (line 848) | static void CL_MVD_DemoWrite (void *data, int len)
function CL_WriteRecordMVDMessage (line 859) | static void CL_WriteRecordMVDMessage (sizebuf_t *msg)
function CL_WriteRecordMVDStatsMessage (line 885) | static void CL_WriteRecordMVDStatsMessage (sizebuf_t *msg, int client)
function CL_WriteMVDStartupData (line 912) | void CL_WriteMVDStartupData(void)
function CL_StopMvd_f (line 1417) | void CL_StopMvd_f(void)
function CL_RecordMvd_f (line 1458) | void CL_RecordMvd_f(void)
function CL_Demo_PB_Init (line 1542) | void CL_Demo_PB_Init(void *buf, int buflen)
function CL_StreamRead (line 1563) | static int CL_StreamRead(void* buf, int size, qbool peek)
function CL_Demo_Read (line 1587) | int CL_Demo_Read(void *buf, int size, qbool peek)
function pb_raw_read (line 1620) | static int pb_raw_read(void *buf, int size)
function qbool (line 1643) | qbool pb_ensure(void)
function CL_PeekDemoTime (line 1691) | static double CL_PeekDemoTime(void)
function CL_ConsumeDemoTime (line 1743) | static void CL_ConsumeDemoTime(void)
function CL_DemoReadDemCmd (line 1760) | static void CL_DemoReadDemCmd(void)
function qbool (line 1811) | static qbool CL_DemoReadDemRead(void)
function CL_DemoReadDemSet (line 1846) | static void CL_DemoReadDemSet(void)
function qbool (line 1863) | static qbool CL_DemoShouldWeReadNextMessage(double demotime)
function qbool (line 1964) | qbool CL_GetDemoMessage (void)
function OnChange_demo_dir (line 2185) | static void OnChange_demo_dir(cvar_t *var, char *string, qbool *cancel)
function OnChange_demo_format (line 2216) | static void OnChange_demo_format(cvar_t *var, char *string, qbool *cancel)
function CL_WriteDemoPimpMessage (line 2240) | static void CL_WriteDemoPimpMessage(void)
function CL_StopRecording (line 2258) | static void CL_StopRecording (void)
function CL_Stop_f (line 2282) | void CL_Stop_f (void)
function CL_Record_f (line 2333) | void CL_Record_f (void)
function qbool (line 2444) | static qbool CL_MatchRecordDemo(char *dir, char *name, qbool autorecord)
function CL_EasyRecord_f (line 2545) | void CL_EasyRecord_f (void)
function CL_AutoRecord_StopMatch (line 2608) | void CL_AutoRecord_StopMatch(void)
function CL_AutoRecord_CancelMatch (line 2634) | void CL_AutoRecord_CancelMatch(void)
function CL_AutoRecord_StartMatch (line 2662) | void CL_AutoRecord_StartMatch(char *demoname)
function qbool (line 2707) | qbool CL_AutoRecord_Status(void)
function CL_AutoRecord_SaveMatch (line 2715) | void CL_AutoRecord_SaveMatch(void)
function qbool (line 2792) | qbool Sys_QizmoRunning(void)
function qbool (line 2797) | qbool Sys_LaunchExternalDemoProcess(const char* cmdline, const char* path)
function qizmo_status_t (line 2822) | qizmo_status_t Sys_QizmoStatus(void)
function qbool (line 2855) | qbool Sys_QizmoRunning(void)
function qbool (line 2860) | static qbool Sys_LaunchExternalDemoProcess(const char* cmdline, const ch...
function qizmo_status_t (line 2890) | qizmo_status_t Sys_QizmoStatus(void)
function qbool (line 2926) | qbool Sys_QizmoRunning(void)
function qbool (line 2931) | static qbool Sys_LaunchExternalDemoProcess(const char* cmdline, const ch...
function qizmo_status_t (line 2937) | qizmo_status_t Sys_QizmoStatus(void)
function qbool (line 2943) | static qbool CL_CompressExternally(const char* qwdname)
function qbool (line 2981) | static qbool CL_DecompressExternally(const char* qwz_name)
function CL_Demo_RemoveQWD (line 2998) | static void CL_Demo_RemoveQWD(void)
function CL_Demo_GetCompressedName (line 3006) | static void CL_Demo_GetCompressedName(char* cdemo_name)
function CL_Demo_RemoveCompressed (line 3019) | static void CL_Demo_RemoveCompressed(void)
function StopQWZPlayback (line 3029) | static void StopQWZPlayback (void)
function CL_CheckQizmoCompletion (line 3044) | void CL_CheckQizmoCompletion(void)
function PlayQWZDemo (line 3123) | static void PlayQWZDemo(const char* name)
function qbool (line 3185) | static qbool CL_Demo_Compress(char* qwdname)
function qbool (line 3213) | static qbool CL_UnpackAndOpenDemo(char *play_path, char* unpacked_path, ...
function CL_Demo_DumpBenchmarkResult (line 3280) | void CL_Demo_DumpBenchmarkResult(int frames, float timet)
function CL_StopPlayback (line 3324) | void CL_StopPlayback(void)
function CL_GetDemoLength (line 3457) | float CL_GetDemoLength(void)
type demoprobe_parse_type_t (line 3462) | typedef enum demoprobe_parse_type_e
function qbool (line 3494) | qbool CL_ProbeDemo(vfsfile_t *demfile, demoprobe_parse_type_t probetype,...
function qbool (line 3656) | qbool CL_GetIsMVD(vfsfile_t *demfile)
function CL_CalculateDemoTime (line 3664) | float CL_CalculateDemoTime(vfsfile_t *demfile)
function qbool (line 3676) | qbool CL_IsDemoExtension(const char *filename)
function CL_DemoPlaybackInit (line 3689) | static void CL_DemoPlaybackInit(void)
function CL_StartDemoCommand (line 3762) | static void CL_StartDemoCommand(void)
function CL_DemoStartPlayback (line 3885) | static void CL_DemoStartPlayback(const char* name)
function qbool (line 3903) | qbool CL_DemoExtensionMatch(const char* path)
function CL_Play_f (line 3922) | static void CL_Play_f(void)
function vfsfile_t (line 3937) | static vfsfile_t* CL_Open_Demo_File(const char* name, qbool searchpaks, ...
function CL_TimeDemo_f (line 3979) | void CL_TimeDemo_f(void)
function QTV_CloseRequest (line 4040) | void QTV_CloseRequest(qbool warn)
function CL_QTVPoll (line 4057) | void CL_QTVPoll (void)
function CL_QTVList_f (line 4363) | void CL_QTVList_f (void)
function CL_QTVPlay (line 4421) | void CL_QTVPlay (vfsfile_t *newf, void *buf, int buflen)
function CL_QTVReconnect_f (line 4494) | void CL_QTVReconnect_f (void)
function qbool (line 4507) | static qbool CL_QTVPlay_URL_format(void)
function CL_QTVPlay_f (line 4526) | void CL_QTVPlay_f (void)
function CL_Demo_SetSpeed_f (line 4755) | void CL_Demo_SetSpeed_f (void)
function CL_Demo_Stop_Rewinding (line 4771) | void CL_Demo_Stop_Rewinding(void)
function CL_Demo_Check_For_Rewind (line 4796) | void CL_Demo_Check_For_Rewind(float nextdemotime)
function CL_Demo_Jump_f (line 4839) | void CL_Demo_Jump_f (void)
function CL_Demo_Jump_Mark_f (line 4938) | void CL_Demo_Jump_Mark_f (void)
function CL_Demo_Jump_End_f (line 4959) | void CL_Demo_Jump_End_f(void)
function CL_Demo_Jump_Status_Free (line 4984) | static void CL_Demo_Jump_Status_Free (demoseekingstatus_condition_t *con...
function demoseekingstatus_condition_t (line 4995) | static demoseekingstatus_condition_t *CL_Demo_Jump_Status_Condition_New ...
function CL_Demo_Jump_Status_Condition_Negate (line 5008) | static void CL_Demo_Jump_Status_Condition_Negate (demoseekingstatus_cond...
function qbool (line 5037) | static qbool CL_Demo_Jump_Status_Match (demoseekingstatus_condition_t *c...
function CL_Demo_Jump_Status_Check (line 5079) | void CL_Demo_Jump_Status_Check (void)
function CL_Demo_Jump_Status_Parse_Weapon (line 5092) | static int CL_Demo_Jump_Status_Parse_Weapon (const char *arg)
function CL_Demo_Jump_Status_Parse_Constraint (line 5115) | static int CL_Demo_Jump_Status_Parse_Constraint (const char *arg, int *v...
function CL_Demo_Jump_Status_f (line 5137) | static void CL_Demo_Jump_Status_f (void)
function CL_Demo_Jump (line 5256) | void CL_Demo_Jump(double seconds, int relative, demoseekingtype_t seeking)
function Demo_GetSpeed (line 5275) | double Demo_GetSpeed(void)
function Demo_AdjustSpeed (line 5286) | void Demo_AdjustSpeed(void)
function CL_QTVFixUser_f (line 5353) | void CL_QTVFixUser_f(void) {
function CL_Demo_Init (line 5429) | void CL_Demo_Init(void)
function qbool (line 5504) | qbool CL_Demo_NotForTrackedPlayer(void)
function qbool (line 5516) | qbool CL_Demo_SkipMessage (qbool skip_if_seeking)
function qbool (line 5528) | qbool SCR_QTVBufferToBeDrawn(int options)
function Demo_BufferSize (line 5533) | int Demo_BufferSize(int* ms)
FILE: src/cl_ents.c
type predicted_player (line 39) | struct predicted_player {
function CL_InitEnts (line 59) | void CL_InitEnts(void) {
function qbool (line 157) | static qbool is_monster (int modelindex)
function CL_ClearScene (line 168) | void CL_ClearScene(void) {
function CL_AddEntityToList (line 177) | void CL_AddEntityToList(visentlist_t* list, visentlist_entrytype_t visty...
function CL_AddEntity (line 220) | void CL_AddEntity(entity_t *ent)
function dlighttype_t (line 263) | dlighttype_t dlightColor(float f, dlighttype_t def, qbool random) {
function customlight_t (line 274) | customlight_t *dlightColorEx(float f, char *str, dlighttype_t def, qbool...
function dlight_t (line 295) | dlight_t *CL_AllocDlight(int key)
function CL_NewDlight (line 338) | void CL_NewDlight (int key, vec3_t origin, float radius, float time, dli...
function CL_NewDlightEx (line 349) | void CL_NewDlightEx (int key, vec3_t origin, float radius, float time, c...
function CL_DecayLights (line 366) | void CL_DecayLights(void)
function qbool (line 402) | qbool NewLerp_AbleModel(int idx)
function CL_SetupPacketEntity (line 408) | void CL_SetupPacketEntity (int number, entity_state_t *state, qbool chan...
function FlushEntityPacket (line 607) | void FlushEntityPacket (void) {
function CL_ParsePacketEntities (line 634) | void CL_ParsePacketEntities (qbool delta)
function qbool (line 855) | static qbool CL_SetAlphaByDistance(entity_t* ent)
function CL_LinkPacketEntities (line 873) | void CL_LinkPacketEntities(void)
type projectile_t (line 1164) | typedef struct
function CL_ClearProjectiles (line 1178) | void CL_ClearProjectiles (void)
function CL_ParseProjectiles (line 1197) | void CL_ParseProjectiles (qbool indexed)
function CL_LinkProjectiles (line 1242) | void CL_LinkProjectiles (void)
function SetupPlayerEntity (line 1262) | void SetupPlayerEntity(int num, player_state_t *state)
function MVD_WeaponModelNumber (line 1315) | static int MVD_WeaponModelNumber (int cweapon)
function CL_ParsePlayerinfo (line 1328) | void CL_ParsePlayerinfo (void)
function CL_AddFlagModels (line 1676) | void CL_AddFlagModels (entity_t *ent, int team)
function qbool (line 1732) | static qbool CL_AddVWepModel (entity_t *ent, int vw_index, int old_vw_fr...
function CL_PlayerTime (line 1770) | static double CL_PlayerTime (void)
function CL_StorePausePredictionLocations (line 1778) | void CL_StorePausePredictionLocations(void)
function CL_LinkPlayers (line 1790) | static void CL_LinkPlayers(void)
function CL_SetSolidEntities (line 2116) | void CL_SetSolidEntities (void)
function CL_SetUpPlayerPrediction (line 2160) | void CL_SetUpPlayerPrediction(qbool dopred)
function CL_SetSolidPlayers (line 2222) | void CL_SetSolidPlayers (int playernum)
function CL_EmitEntities (line 2262) | void CL_EmitEntities (void)
function MVD_TranslateFlags (line 2289) | static int MVD_TranslateFlags(int src)
function MVD_AdjustAngle (line 2309) | static float MVD_AdjustAngle(float current, float ideal, float fraction) {
function MVD_InitInterpolation (line 2321) | static void MVD_InitInterpolation(void) {
function MVD_Interpolate (line 2413) | void MVD_Interpolate(void)
function CL_ClearPredict (line 2509) | void CL_ClearPredict(void) {
function CL_CalcPlayerFPS (line 2514) | void CL_CalcPlayerFPS(player_info_t *info, int msec)
function qbool (line 2541) | qbool CL_DrawnPlayerPosition(int player_num, float* pos, int* msec)
FILE: src/cl_input.c
function KeyDown_common (line 100) | void KeyDown_common(kbutton_t* b, int k)
function qbool (line 124) | qbool KeyUp_common(kbutton_t* b, int k)
function KeyDown (line 152) | void KeyDown(kbutton_t* b)
function qbool (line 164) | qbool KeyUp(kbutton_t* b)
function IN_KLookDown (line 176) | void IN_KLookDown(void)
function IN_KLookUp (line 180) | void IN_KLookUp(void)
function IN_MLookDown (line 185) | void IN_MLookDown(void)
function IN_MLookUp (line 189) | void IN_MLookUp(void)
function IN_UpDown (line 208) | void IN_UpDown(void) { PROTECTEDKEY(); KeyDown(&in_up); }
function IN_UpUp (line 209) | void IN_UpUp(void) { PROTECTEDKEY(); KeyUp(&in_up); }
function IN_DownDown (line 210) | void IN_DownDown(void) { PROTECTEDKEY(); KeyDown(&in_down); }
function IN_DownUp (line 211) | void IN_DownUp(void) { PROTECTEDKEY(); KeyUp(&in_down); }
function IN_LeftDown (line 212) | void IN_LeftDown(void) { PROTECTEDKEY(); KeyDown(&in_left); }
function IN_LeftUp (line 213) | void IN_LeftUp(void) { PROTECTEDKEY(); KeyUp(&in_left); }
function IN_RightDown (line 214) | void IN_RightDown(void) { PROTECTEDKEY(); KeyDown(&in_right); }
function IN_RightUp (line 215) | void IN_RightUp(void) { PROTECTEDKEY(); KeyUp(&in_right); }
function IN_ForwardDown (line 216) | void IN_ForwardDown(void) { PROTECTEDKEY(); KeyDown(&in_forward); }
function IN_ForwardUp (line 217) | void IN_ForwardUp(void) { PROTECTEDKEY(); KeyUp(&in_forward); }
function IN_BackDown (line 218) | void IN_BackDown(void) { PROTECTEDKEY(); KeyDown(&in_back); }
function IN_BackUp (line 219) | void IN_BackUp(void) { PROTECTEDKEY(); KeyUp(&in_back); }
function IN_LookupDown (line 220) | void IN_LookupDown(void) { PROTECTEDKEY(); KeyDown(&in_lookup); }
function IN_LookupUp (line 221) | void IN_LookupUp(void) { PROTECTEDKEY(); KeyUp(&in_lookup); }
function IN_LookdownDown (line 222) | void IN_LookdownDown(void) { PROTECTEDKEY(); KeyDown(&in_lookdown); }
function IN_LookdownUp (line 223) | void IN_LookdownUp(void) { PROTECTEDKEY(); KeyUp(&in_lookdown); }
function IN_MoveleftDown (line 224) | void IN_MoveleftDown(void) { PROTECTEDKEY(); KeyDown(&in_moveleft); }
function IN_MoveleftUp (line 225) | void IN_MoveleftUp(void) { PROTECTEDKEY(); KeyUp(&in_moveleft); }
function IN_MoverightDown (line 226) | void IN_MoverightDown(void) { PROTECTEDKEY(); KeyDown(&in_moveright); }
function IN_MoverightUp (line 227) | void IN_MoverightUp(void) { PROTECTEDKEY(); KeyUp(&in_moveright); }
function IN_SpeedDown (line 229) | void IN_SpeedDown(void) { KeyDown(&in_speed); }
function IN_SpeedUp (line 230) | void IN_SpeedUp(void) { KeyUp(&in_speed); }
function IN_StrafeDown (line 231) | void IN_StrafeDown(void) { KeyDown(&in_strafe); }
function IN_StrafeUp (line 232) | void IN_StrafeUp(void) { KeyUp(&in_strafe); }
function qbool (line 235) | qbool Key_TryMovementProtected(const char* cmd, qbool down, int key)
function IN_AttackDown (line 261) | void IN_AttackDown(void)
function qbool (line 272) | static qbool IN_IsLastArgKeyCode(void)
function IN_AntiRolloverFireKeyDown (line 277) | static void IN_AntiRolloverFireKeyDown(int key_code)
function IN_AntiRolloverFireKeyUp (line 300) | static void IN_AntiRolloverFireKeyUp(int key_code)
function IN_FireDown (line 333) | void IN_FireDown(void)
function IN_AttackUp_CommonHide (line 370) | static void IN_AttackUp_CommonHide(void)
function IN_FireUp (line 385) | void IN_FireUp(void)
function IN_AttackUp (line 403) | void IN_AttackUp(void)
function IN_UseDown (line 411) | void IN_UseDown(void) { KeyDown(&in_use); }
function IN_UseUp (line 412) | void IN_UseUp(void) { KeyUp(&in_use); }
function IN_Attack2Down (line 413) | void IN_Attack2Down(void) { KeyDown(&in_attack2); }
function IN_Attack2Up (line 414) | void IN_Attack2Up(void) { KeyUp(&in_attack2); }
function IN_JumpDown (line 417) | void IN_JumpDown(void)
function IN_JumpUp (line 441) | void IN_JumpUp(void)
function IN_RememberWpOrder (line 449) | void IN_RememberWpOrder(void)
function IN_BestWeapon (line 463) | int IN_BestWeapon(qbool rendering_only)
function IN_BestWeaponReal (line 471) | int IN_BestWeaponReal(qbool rendering_only)
function IN_BestWeapon_Common (line 477) | static int IN_BestWeapon_Common(int implicit, int* weapon_order, qbool p...
function IN_Impulse (line 539) | void IN_Impulse(void)
function IN_Weapon (line 556) | void IN_Weapon(void)
function CL_KeyState (line 642) | float CL_KeyState(kbutton_t* key, qbool lookbutton)
function CL_Rotate_f (line 684) | void CL_Rotate_f(void)
function CL_AdjustAngles (line 700) | void CL_AdjustAngles(void)
function CL_BaseMove (line 752) | void CL_BaseMove(usercmd_t* cmd)
function MakeChar (line 887) | int MakeChar(int i)
function CL_FinishMove (line 897) | void CL_FinishMove(usercmd_t* cmd)
function CL_SendClientCommand (line 966) | void CL_SendClientCommand(qbool reliable, char* format, ...)
function CL_ApplySafestrafe (line 991) | void CL_ApplySafestrafe(usercmd_t *cmd)
function CL_SendCmd (line 1047) | void CL_SendCmd(void)
function CL_InitInput (line 1230) | void CL_InitInput(void)
function IN_ClearProtectedKeys (line 1328) | void IN_ClearProtectedKeys(void)
FILE: src/cl_main.c
function simple_crypt (line 310) | static void simple_crypt (char *buf, int len) {
function CL_FixupModelNames (line 315) | static void CL_FixupModelNames (void) {
function OnChange_AppliedAfterReconnect (line 320) | void OnChange_AppliedAfterReconnect (cvar_t *var, char *value, qbool *ca...
function CL_ClientState (line 395) | int CL_ClientState (void)
function CL_MakeActive (line 400) | void CL_MakeActive(void)
function CL_UserinfoChanged (line 434) | void CL_UserinfoChanged (char *key, char *string)
function CL_SupportedFTEExtensions (line 460) | unsigned int CL_SupportedFTEExtensions (void)
function CL_SupportedFTEExtensions2 (line 521) | unsigned int CL_SupportedFTEExtensions2 (void)
function CL_SupportedMVDExtensions1 (line 537) | unsigned int CL_SupportedMVDExtensions1(void)
function CL_SendConnectPacket (line 574) | static void CL_SendConnectPacket(
function CL_BeginServerConnect (line 713) | void CL_BeginServerConnect(void)
function CL_QWURL_f (line 729) | void CL_QWURL_f (void)
function CL_Connect_f (line 812) | void CL_Connect_f (void)
function CL_Connect_BestRoute_f (line 907) | void CL_Connect_BestRoute_f(void)
function CL_TCPConnect_f (line 929) | void CL_TCPConnect_f (void)
function qbool (line 1004) | qbool CL_ConnectedToProxy(void)
function CL_Join_f (line 1040) | void CL_Join_f (void)
function CL_Observe_f (line 1077) | void CL_Observe_f (void)
function CL_Observe_BestRoute_f (line 1109) | void CL_Observe_BestRoute_f(void)
function Cl_ToggleSpec_f (line 1135) | void Cl_ToggleSpec_f (void)
function CL_Hash_f (line 1143) | void CL_Hash_f(void)
function CL_DNS_f (line 1154) | void CL_DNS_f(void)
function CL_ClearState (line 1197) | void CL_ClearState (void)
function CL_Disconnect (line 1287) | void CL_Disconnect (void)
function CL_Disconnect_f (line 1380) | void CL_Disconnect_f (void)
function CL_Reconnect_f (line 1400) | void CL_Reconnect_f (void)
function qbool (line 1662) | qbool CL_GetMessage (void)
function CL_ReadPackets (line 1675) | static void CL_ReadPackets(void)
function CL_SendToServer (line 1740) | void CL_SendToServer (void)
function CL_OnChange_name_validate (line 1760) | void CL_OnChange_name_validate(cvar_t *var, char *val, qbool *cancel)
function CL_InitLocal (line 1791) | static void CL_InitLocal(void)
function GFX_Init (line 2057) | void GFX_Init (void)
function ReloadPaletteAndColormap (line 2069) | void ReloadPaletteAndColormap(void)
function CL_Init (line 2093) | void CL_Init (void)
function CL_BeginLocalConnection (line 2181) | void CL_BeginLocalConnection (void)
function CL_CheckAutoPause (line 2197) | static void CL_CheckAutoPause (void)
function CL_MinFrameTime (line 2218) | static double CL_MinFrameTime (void)
function MinPhysFrameTime (line 2253) | static double MinPhysFrameTime (void)
function onchange_hud_performance_average (line 2274) | void onchange_hud_performance_average(cvar_t* var, char* value, qbool* c...
function CL_CalcFPS (line 2282) | void CL_CalcFPS(void)
function Cl_Reset_Min_fps_f (line 2326) | void Cl_Reset_Min_fps_f(void)
function CL_LinkEntities (line 2337) | void CL_LinkEntities (void)
function CL_SoundFrame (line 2364) | void CL_SoundFrame (void)
function CL_ServerFrame (line 2389) | static void CL_ServerFrame(double frametime)
function CL_Frame (line 2404) | void CL_Frame(double time)
function CL_Shutdown (line 2783) | void CL_Shutdown (void)
function CL_UpdateCaption (line 2811) | void CL_UpdateCaption(qbool force)
function OnChangeDemoTeamplay (line 2849) | void OnChangeDemoTeamplay (cvar_t *var, char *value, qbool *cancel)
function Dev_PhysicsNormalShow (line 2865) | void Dev_PhysicsNormalShow(void)
function Dev_PhysicsNormalSet (line 2898) | void Dev_PhysicsNormalSet(void)
function Dev_PhysicsNormalSave (line 2964) | void Dev_PhysicsNormalSave(void)
function Cache_Flush (line 2990) | void Cache_Flush(void)
function AuthUsernameChanged (line 2996) | static void AuthUsernameChanged(cvar_t* var, char* value, qbool* cancel)
function CL_Authenticate_f (line 3061) | static void CL_Authenticate_f(void)
FILE: src/cl_multiview.c
type mv_viewrect_t (line 78) | typedef struct mv_viewrect_s
function CL_IncrLoop (line 106) | static int CL_IncrLoop(int cview, int max)
function CL_NextPlayer (line 111) | int CL_NextPlayer(int plr)
function CL_PrevPlayer (line 136) | int CL_PrevPlayer(int plr)
function SCR_OnChangeMVHudPos (line 161) | void SCR_OnChangeMVHudPos (cvar_t *var, char *newval, qbool *cancel)
function SCR_SetMVStatusPosition (line 183) | void SCR_SetMVStatusPosition (int position, mv_viewrect_t *view, int hud...
function SCR_SetMVStatusGatheredPosition (line 231) | void SCR_SetMVStatusGatheredPosition (mv_viewrect_t *view, int hud_width...
function SCR_MV_SetBoundValue (line 296) | void SCR_MV_SetBoundValue (int *var, int val)
function SCR_MV_DrawName (line 303) | void SCR_MV_DrawName (int x, int y, int *width, int *height)
function SCR_MV_DrawArmor (line 312) | void SCR_MV_DrawArmor (int x, int y, int *width, int *height, int style)
function SCR_MV_DrawHealth (line 366) | void SCR_MV_DrawHealth (int x, int y, int *width, int *height, int style)
function SCR_MV_DrawPowerups (line 410) | void SCR_MV_DrawPowerups (int x, int y)
function mpic_t (line 445) | static mpic_t *SCR_GetActiveWeaponIcon (void)
function SCR_MV_DrawCurrentWeapon (line 450) | static void SCR_MV_DrawCurrentWeapon (int x, int y, int *width, int *hei...
function SCR_MV_DrawCurrentAmmo (line 465) | void SCR_MV_DrawCurrentAmmo (int x, int y, int *width, int *height)
function mpic_t (line 473) | mpic_t *SCR_GetWeaponIconByWeaponNumber (int num)
function SCR_MV_DrawWeapons (line 486) | void SCR_MV_DrawWeapons (int x, int y, int *width, int *height, int hud_...
function SCR_DrawMVStatusView (line 515) | void SCR_DrawMVStatusView (mv_viewrect_t *view, int style, int position,...
function SCR_SetMVStatusTwoViewRect (line 652) | void SCR_SetMVStatusTwoViewRect (mv_viewrect_t *view)
function SCR_SetMVStatusTwoInsetViewRect (line 670) | void SCR_SetMVStatusTwoInsetViewRect(mv_viewrect_t *view)
function SCR_SetMVStatusThreeViewRect (line 691) | void SCR_SetMVStatusThreeViewRect (mv_viewrect_t *view)
function SCR_SetMVStatusFourViewRect (line 716) | void SCR_SetMVStatusFourViewRect (mv_viewrect_t *view)
function SCR_DrawMVStatus (line 748) | void SCR_DrawMVStatus (void)
function SCR_DrawMVStatusStrings (line 796) | void SCR_DrawMVStatusStrings (void)
function CL_Multiview (line 1135) | static void CL_Multiview (void)
type mv_temp_cvar_t (line 1305) | typedef struct mv_temp_cvar_s {
function CL_MultiviewSaveValues (line 1318) | void CL_MultiviewSaveValues (void)
function CL_MultiviewRestoreValues (line 1327) | void CL_MultiviewRestoreValues (void)
function CL_MultiviewOverrideValues (line 1338) | static void CL_MultiviewOverrideValues (void)
function qbool (line 1364) | static qbool CL_MultiviewCvarResetRequired (void)
function CL_MultiviewNextPlayer (line 1371) | int CL_MultiviewNextPlayer (void)
function CL_MultiviewCurrentView (line 1379) | int CL_MultiviewCurrentView (void)
function CL_MultiviewNumberViews (line 1384) | int CL_MultiviewNumberViews (void)
function CL_MultiviewResetCvars (line 1389) | void CL_MultiviewResetCvars (void)
function qbool (line 1398) | qbool CL_MultiviewEnabled (void)
function qbool (line 1416) | qbool CL_MultiviewInsetEnabled (void)
function qbool (line 1421) | qbool CL_MultiviewInsetView (void)
function CL_MultiviewActiveViews (line 1426) | int CL_MultiviewActiveViews (void)
function CL_MultiviewFrameStart (line 1440) | void CL_MultiviewFrameStart (void)
function CL_MultiviewFrameFinish (line 1445) | void CL_MultiviewFrameFinish (void)
function CL_MultiviewDemoStart (line 1452) | void CL_MultiviewDemoStart (void)
function CL_MultiviewDemoFinish (line 1459) | void CL_MultiviewDemoFinish (void)
function CL_MultiviewDemoStopRewind (line 1463) | void CL_MultiviewDemoStopRewind (void)
function CL_MultiviewDemoStartRewind (line 1470) | void CL_MultiviewDemoStartRewind (void)
function CL_MultiviewTrackingAdjustment (line 1477) | void CL_MultiviewTrackingAdjustment (int adjustment)
function CL_MultiviewInitialise (line 1482) | void CL_MultiviewInitialise (void)
function CL_TrackMV1_f (line 1487) | void CL_TrackMV1_f (void)
function CL_TrackMV2_f (line 1492) | void CL_TrackMV2_f (void)
function CL_TrackMV3_f (line 1496) | void CL_TrackMV3_f (void)
function CL_TrackMV4_f (line 1500) | void CL_TrackMV4_f (void)
function CL_TrackTeam_f (line 1505) | void CL_TrackTeam_f (void)
function CL_MultiviewSetTrackSlot (line 1560) | void CL_MultiviewSetTrackSlot (int trackSlot, int player)
function CL_MultiviewPreUpdateScreen (line 1571) | void CL_MultiviewPreUpdateScreen (void)
function qbool (line 1581) | qbool CL_MultiviewAdvanceView (void)
function CL_MultiviewMainView (line 1588) | int CL_MultiviewMainView (void)
function CL_MultiviewAutotrackSlot (line 1593) | int CL_MultiviewAutotrackSlot (void)
function qbool (line 1598) | qbool CL_MultiviewGetCrosshairCoordinates(qbool use_screen_coords, float...
function SCR_DrawMultiviewBorders (line 1704) | void SCR_DrawMultiviewBorders(void)
function CL_MultiviewInsetSetScreenCoordinates (line 1729) | void CL_MultiviewInsetSetScreenCoordinates(int x, int y, int width, int ...
function centity_t (line 1737) | centity_t* CL_WeaponModelForView(void)
function CL_MultiviewInsetRestoreStats (line 1744) | void CL_MultiviewInsetRestoreStats(void)
FILE: src/cl_nqdemo.c
function CL_CheckForNQDSeekPointFound (line 114) | static void CL_CheckForNQDSeekPointFound(void)
function qbool (line 151) | static qbool CL_GetNQDemoMessage (void)
function NQD_BumpEntityCount (line 196) | static void NQD_BumpEntityCount (int num)
function NQD_ParseClientdata (line 203) | static void NQD_ParseClientdata (int bits)
function NQD_SetSpectatorFlag (line 315) | static void NQD_SetSpectatorFlag(player_info_t* player)
function NQD_SetSpectatorFlags (line 320) | void NQD_SetSpectatorFlags(void)
function NQD_ParseUpdatecolors (line 333) | static void NQD_ParseUpdatecolors (void)
function NQD_ParsePrint (line 387) | static void NQD_ParsePrint (void)
function ReadPQByte (line 401) | static int ReadPQByte (void) {
function ReadPQShort (line 407) | static int ReadPQShort (void) {
function NQD_ParseStufftext (line 419) | static void NQD_ParseStufftext (void)
function NQD_ParseServerData (line 463) | static void NQD_ParseServerData(void)
function NQD_ParseStartSoundPacket (line 612) | static void NQD_ParseStartSoundPacket(void)
function CL_ParseParticleEffect (line 657) | static void CL_ParseParticleEffect (void)
function NQD_ParseUpdate (line 685) | static void NQD_ParseUpdate (int bits)
function NQD_LerpPoint (line 841) | static float NQD_LerpPoint (void)
function NQD_LerpPlayerinfo (line 874) | static void NQD_LerpPlayerinfo (float f)
function NQD_FirstPersonCamera (line 893) | static int NQD_FirstPersonCamera(void)
function NQD_LinkEntities (line 900) | void NQD_LinkEntities (void)
function NQD_ParseServerMessage (line 1077) | static void NQD_ParseServerMessage (void)
function NQD_ReadPackets (line 1337) | void NQD_ReadPackets (void)
function NQD_StartPlayback (line 1353) | void NQD_StartPlayback (void)
FILE: src/cl_parse.c
type cl_message_t (line 154) | typedef struct cl_message_s
function Cl_Messages_Init (line 167) | void Cl_Messages_Init(void)
function CL_Messages_qsort (line 179) | static int CL_Messages_qsort(const void *a, const void *b)
function CL_Messages_f (line 193) | static void CL_Messages_f(void)
function CL_CalcNet (line 233) | int CL_CalcNet (void)
function CL_CalcNetStatistics (line 311) | int CL_CalcNetStatistics(
function qbool (line 479) | qbool CL_CheckOrDownloadFile(char *filename)
function CL_FindModelNumbers (line 535) | void CL_FindModelNumbers (void)
function CL_ProxyEnter (line 555) | void CL_ProxyEnter (void)
function CL_TransmitModelCrc (line 577) | static void CL_TransmitModelCrc (int index, char *info_key)
function CL_Prespawn (line 589) | void CL_Prespawn (void)
function VWepModel_NextDownload (line 642) | void VWepModel_NextDownload (void)
function Model_NextDownload (line 704) | void Model_NextDownload (void)
function Sound_NextDownload (line 757) | void Sound_NextDownload (void)
function CL_RequestADownloadChunk (line 810) | int CL_RequestADownloadChunk(void)
function CL_SendChunkDownloadReq (line 835) | void CL_SendChunkDownloadReq(void)
function CL_Parse_OOB_ChunkedDownload (line 870) | void CL_Parse_OOB_ChunkedDownload(void)
function CL_ParseChunkedDownload (line 900) | void CL_ParseChunkedDownload(void)
function CL_RequestNextDownload (line 1026) | void CL_RequestNextDownload (void)
function CL_FinishDownload (line 1050) | void CL_FinishDownload(void)
function CL_ParseDownload (line 1082) | void CL_ParseDownload (void)
function CL_NextUpload (line 1192) | void CL_NextUpload(void)
function CL_StartUpload (line 1258) | void CL_StartUpload (byte *data, int size)
function ReplaceChar (line 1277) | static void ReplaceChar(char *s, char from, char to)
function CL_StartFileUpload (line 1289) | void CL_StartFileUpload (void)
function qbool (line 1357) | qbool CL_IsUploading(void)
function CL_StopUpload (line 1364) | void CL_StopUpload(void)
function CL_ParseServerData (line 1390) | void CL_ParseServerData (void)
function CL_ParseSoundlist (line 1654) | void CL_ParseSoundlist (void)
function CL_ParseBaseline (line 1820) | void CL_ParseBaseline (entity_state_t *es)
function CL_ParseSpawnBaseline2 (line 1849) | static void CL_ParseSpawnBaseline2 (void)
function CL_ParseStatic (line 1868) | void CL_ParseStatic (qbool extended)
function CL_ParseStaticSound (line 1918) | void CL_ParseStaticSound (void)
function CL_ParseStartSoundPacket (line 1948) | void CL_ParseStartSoundPacket(void)
function CL_ParseClientdata (line 1993) | void CL_ParseClientdata (void)
function CL_NewTranslation (line 2039) | void CL_NewTranslation (int slot)
function CL_ProcessUserInfo (line 2102) | void CL_ProcessUserInfo(int slot, player_info_t *player, char *key)
function CL_NotifyOnFull (line 2192) | void CL_NotifyOnFull(void)
function CL_PlayerEnterSlot (line 2211) | void CL_PlayerEnterSlot(player_info_t *player)
function CL_PlayerLeaveSlot (line 2221) | void CL_PlayerLeaveSlot(player_info_t *player)
function CL_UpdateUserinfo (line 2226) | void CL_UpdateUserinfo (void)
function CL_SetInfo (line 2264) | void CL_SetInfo (void)
function CL_PEXT_Fix (line 2290) | static void CL_PEXT_Fix(void)
function CL_ProcessServerInfo (line 2338) | void CL_ProcessServerInfo (void)
function CL_ParseVWepPrecache (line 2455) | void CL_ParseVWepPrecache (char *str)
function CL_ParseServerInfoChange (line 2512) | void CL_ParseServerInfoChange (void)
function wchar (line 2559) | static wchar* CL_ColorizeFragMessage (const wchar *source, cfrags_format...
function FlushString (line 2627) | static void FlushString (const wchar *s, int level, qbool team, int offset)
function SeparateChat (line 2716) | int SeparateChat(char *chat, int *out_type, char **out_msg)
function CL_ProcessPrint (line 2867) | void CL_ProcessPrint (int level, char* s0)
function CL_ParsePrint (line 3109) | void CL_ParsePrint (void)
function CL_ParseStufftext (line 3121) | void CL_ParseStufftext (void)
function CL_SetStat (line 3346) | void CL_SetStat (int stat, int value)
function CL_MuzzleFlash (line 3423) | void CL_MuzzleFlash (void)
function CL_ParseQizmoVoice (line 3557) | void CL_ParseQizmoVoice (void)
function CL_RotateCmd (line 3582) | static void CL_RotateCmd(usercmd_t* cmd, float yaw_delta)
function CL_ParseServerMessage (line 3594) | void CL_ParseServerMessage (void)
function CL_DemoMessageBufferOverflow (line 4168) | static void CL_DemoMessageBufferOverflow(struct sizebuf_s* buf, int length)
function CL_InitialiseDemoMessageIfRequired (line 4179) | static void CL_InitialiseDemoMessageIfRequired(void)
function CL_ParseHiddenDataMessage (line 4193) | void CL_ParseHiddenDataMessage(void)
function CL_ParseDemoInfo (line 4247) | static void CL_ParseDemoInfo(int size)
function CL_ParseAntilagPosition (line 4285) | static void CL_ParseAntilagPosition(int size)
function CL_ParseDemoWeaponInstruction (line 4335) | static void CL_ParseDemoWeaponInstruction(int size)
function CL_ParseDemoWeapon (line 4395) | static void CL_ParseDemoWeapon(int size, qbool server_side)
function CL_ParseDamageDone (line 4457) | static void CL_ParseDamageDone(int size)
function CL_ParseUserCommand (line 4488) | static void CL_ParseUserCommand(int size)
FILE: src/cl_pred.c
function CL_PredictUsercmd (line 40) | void CL_PredictUsercmd (player_state_t *from, player_state_t *to, usercm...
function CL_CategorizePosition (line 95) | void CL_CategorizePosition (void) {
function CL_CalcCrouch (line 109) | void CL_CalcCrouch (void)
function CL_DisableLerpMove (line 159) | void CL_DisableLerpMove(void)
function CL_LerpMove (line 164) | static void CL_LerpMove (qbool angles_lerp)
function check_standing_on_entity (line 292) | static void check_standing_on_entity(void)
function CL_PredictMove (line 303) | void CL_PredictMove (qbool physframe) {
function CL_InitPrediction (line 418) | void CL_InitPrediction(void)
FILE: src/cl_screen.c
function OnFovChange (line 166) | void OnFovChange (cvar_t *var, char *value, qbool *cancel)
function OnDefaultFovChange (line 211) | void OnDefaultFovChange (cvar_t *var, char *value, qbool *cancel)
function CalcFov (line 225) | static void CalcFov(float fov, float *fov_x, float *fov_y, float width, ...
function SCR_CalcRefdef (line 296) | void SCR_CalcRefdef(void)
function SCR_SizeUp_f (line 385) | void SCR_SizeUp_f(void)
function SCR_SizeDown_f (line 392) | void SCR_SizeDown_f(void)
function SCR_ZoomIn_f (line 398) | void SCR_ZoomIn_f(void)
function SCR_ZoomOut_f (line 410) | void SCR_ZoomOut_f(void)
function SCR_DrawAccel (line 423) | void SCR_DrawAccel (void) {
function SCR_DrawTurtle (line 452) | void SCR_DrawTurtle(void)
function SCR_DrawNet (line 461) | static void SCR_DrawNet(void)
function SCR_DrawPause (line 473) | static void SCR_DrawPause (void) {
function SCR_DrawLoading (line 491) | void SCR_DrawLoading (void) {
function SCR_BeginLoadingPlaque (line 503) | void SCR_BeginLoadingPlaque (void) {
function SCR_EndLoadingPlaque (line 522) | void SCR_EndLoadingPlaque (void) {
function SCR_SetUpToDrawConsole (line 531) | void SCR_SetUpToDrawConsole (void) {
function SCR_DrawConsole (line 565) | void SCR_DrawConsole (void) {
function SCR_TileClear (line 578) | void SCR_TileClear(void)
function SCR_GetCursorScale (line 610) | static double SCR_GetCursorScale(void)
function SCR_DrawCursor (line 615) | static void SCR_DrawCursor(void)
function SCR_UpdateCursor (line 646) | static void SCR_UpdateCursor(void)
function SCR_VoiceMeter (line 660) | static void SCR_VoiceMeter(void)
function SCR_DrawMultiviewOverviewElements (line 693) | void SCR_DrawMultiviewOverviewElements (void)
function SCR_DrawMultiviewIndividualElements (line 699) | void SCR_DrawMultiviewIndividualElements(void)
function SCR_DrawElements (line 731) | static void SCR_DrawElements(void)
function qbool (line 836) | qbool SCR_UpdateScreenPrePlayerView (void)
function SCR_UpdateScreenPlayerView (line 909) | void SCR_UpdateScreenPlayerView(int flags)
function SCR_DrawNewHudElements (line 950) | static void SCR_DrawNewHudElements(void)
function SCR_UpdateScreenHudOnly (line 983) | void SCR_UpdateScreenHudOnly(void)
function SCR_UpdateScreenPostPlayerView (line 1001) | void SCR_UpdateScreenPostPlayerView(void)
function qbool (line 1016) | qbool SCR_UpdateScreen(void)
function SCR_UpdateWholeScreen (line 1032) | void SCR_UpdateWholeScreen(void)
function mpic_t (line 1038) | mpic_t *SCR_LoadCursorImage(char *cursorimage)
function tmp_calc_fov (line 1057) | static void tmp_calc_fov(void)
function SCR_Init (line 1074) | void SCR_Init (void)
function mpic_t (line 1146) | mpic_t * SCR_GetWeaponIconByFlag (int flag)
function SCR_SetupDamageIndicators (line 1196) | void SCR_SetupDamageIndicators(void)
function SCR_DrawDamageIndicators (line 1234) | static void SCR_DrawDamageIndicators(void)
function SCR_DamageInit (line 1260) | static void SCR_DamageInit(scr_damage_t * dmg, int damage, vec3_t origin...
function CL_SpawnDamageIndicatorDirect (line 1299) | static void CL_SpawnDamageIndicatorDirect(int deathtype, vec3_t origin, ...
function CL_SpawnDamageIndicator (line 1332) | void CL_SpawnDamageIndicator(int deathtype, int targ_ent, int damage, qb...
function CL_ReadKtxDamageIndicatorString (line 1345) | void CL_ReadKtxDamageIndicatorString(const char* s)
function SCR_RegisterDamageIndicatorCvars (line 1368) | static void SCR_RegisterDamageIndicatorCvars(void)
FILE: src/cl_screenshot.c
function image_format_t (line 66) | static image_format_t SShot_FormatForName(char *name)
function applyHWGamma (line 115) | static void applyHWGamma(byte *buffer, size_t size)
function SCR_Screenshot (line 139) | int SCR_Screenshot(char *name, qbool movie_capture)
function SCR_ScreenshotWrite (line 170) | int SCR_ScreenshotWrite(scr_sshot_target_t* target_params)
function SCR_GetScreenShotName (line 224) | int SCR_GetScreenShotName(char *name, int name_size, char *sshot_dir)
function SCR_ScreenShot_f (line 282) | void SCR_ScreenShot_f(void)
function SCR_RSShot_f (line 312) | void SCR_RSShot_f(void)
function qbool (line 366) | qbool SCR_TakingAutoScreenshot(void)
function SCR_CheckAutoScreenshot (line 371) | void SCR_CheckAutoScreenshot(void)
function SCR_AutoScreenshot (line 415) | void SCR_AutoScreenshot(char *matchname)
function SCR_Movieshot (line 424) | void SCR_Movieshot(char *name)
function OnChange_scr_allowsnap (line 472) | static void OnChange_scr_allowsnap(cvar_t *var, char *s, qbool *cancel)
function SShot_RegisterCvars (line 477) | void SShot_RegisterCvars(void)
FILE: src/cl_skygroups.c
type skygroup_t (line 28) | typedef struct skygroup_s {
function skygroup_t (line 40) | static skygroup_t *GetSkyGroupWithName(char *groupname)
function skygroup_t (line 51) | static skygroup_t *GetSkyGroupWithMember(char *member)
function DeleteSkyGroup (line 65) | static void DeleteSkyGroup(skygroup_t *group)
function ResetSkyGroupMembers (line 88) | static void ResetSkyGroupMembers(skygroup_t *group)
function DeleteSkyGroupMember (line 101) | static void DeleteSkyGroupMember(skygroup_t *group, char *member)
function AddSkyGroupMember (line 122) | static void AddSkyGroupMember(skygroup_t *group, char *member)
function MT_SkyGroup_f (line 138) | void MT_SkyGroup_f(void)
function MT_AddSkyGroups (line 258) | void MT_AddSkyGroups(void)
function DumpSkyGroups (line 283) | void DumpSkyGroups(FILE *f)
FILE: src/cl_slist.c
function SList_Init (line 31) | void SList_Init(void) {
function SList_Shutdown (line 35) | void SList_Shutdown(void) {
function SList_Set (line 52) | void SList_Set (int i, char *addr, char *desc) {
function SList_Reset_NoFree (line 65) | void SList_Reset_NoFree (int i) {
function SList_Reset (line 72) | void SList_Reset (int i) {
function SList_Switch (line 87) | void SList_Switch (int a, int b) {
function SList_Length (line 100) | int SList_Length (void) {
function SList_Load (line 108) | void SList_Load (void) {
function SList_Save (line 150) | void SList_Save (FILE *f) {
FILE: src/cl_slist.h
type server_entry_t (line 23) | typedef struct {
FILE: src/cl_tent.c
type beam_t (line 37) | typedef struct
type explosion_t (line 51) | typedef struct explosion_s
function CL_InitTEnts (line 74) | void CL_InitTEnts(void)
function CL_InitTEntsCvar (line 85) | void CL_InitTEntsCvar(void)
function CL_ClearTEnts (line 96) | void CL_ClearTEnts(void)
function explosion_t (line 113) | explosion_t *CL_AllocExplosion(void)
function CL_FreeExplosion (line 140) | void CL_FreeExplosion(explosion_t *ex)
function CL_ParseBeam (line 151) | static void CL_ParseBeam(int type, vec3_t end)
function CL_ExplosionSprite (line 313) | void CL_ExplosionSprite(vec3_t pos)
function CL_Parse_TE_WIZSPIKE (line 325) | static void CL_Parse_TE_WIZSPIKE(vec3_t pos)
function CL_Parse_TE_KNIGHTSPIKE (line 341) | static void CL_Parse_TE_KNIGHTSPIKE(vec3_t pos)
function CL_Parse_TE_SPIKE (line 357) | static void CL_Parse_TE_SPIKE(vec3_t pos)
function CL_Parse_TE_SUPERSPIKE (line 384) | static void CL_Parse_TE_SUPERSPIKE(vec3_t pos)
function CL_Parse_TE_EXPLOSION (line 411) | static void CL_Parse_TE_EXPLOSION(vec3_t pos)
function CL_Parse_TE_TAREXPLOSION (line 500) | static void CL_Parse_TE_TAREXPLOSION(vec3_t pos)
function CL_Parse_TE_TELEPORT (line 516) | static void CL_Parse_TE_TELEPORT(vec3_t pos)
function CL_Parse_TE_GUNSHOT (line 532) | static void CL_Parse_TE_GUNSHOT(vec3_t pos)
function CL_Parse_TE_BLOOD (line 559) | static void CL_Parse_TE_BLOOD(vec3_t pos)
function CL_Parse_TE_LIGHTNINGBLOOD (line 604) | static void CL_Parse_TE_LIGHTNINGBLOOD(vec3_t pos)
function CL_ParseTEnt (line 625) | void CL_ParseTEnt (void)
function fakeshaft_policy (line 743) | static float fakeshaft_policy (void)
function CL_UpdateBeams (line 753) | static void CL_UpdateBeams(void)
function CL_UpdateExplosions (line 930) | static void CL_UpdateExplosions(void)
function CL_UpdateTEnts (line 957) | void CL_UpdateTEnts (void)
FILE: src/cl_view.c
function Change_v_idle (line 106) | void Change_v_idle (cvar_t *var, char *value, qbool *cancel) {
function V_CalcRoll (line 111) | float V_CalcRoll (vec3_t angles, vec3_t velocity) {
function V_CalcBob (line 129) | float V_CalcBob (void) {
function Force_Centerview_f (line 164) | void Force_Centerview_f (void)
function V_StartPitchDrift (line 172) | void V_StartPitchDrift (void) {
function V_StopPitchDrift (line 183) | void V_StopPitchDrift (void) {
function V_DriftPitch (line 198) | void V_DriftPitch (void) {
function V_ParseDamage (line 267) | void V_ParseDamage (void)
function V_TF_FlashSettings (line 332) | void V_TF_FlashSettings(qbool flashed)
function V_TF_FlashStuff (line 364) | void V_TF_FlashStuff (void)
function V_cshift_f (line 412) | void V_cshift_f (void) {
function V_BonusFlash_f (line 428) | void V_BonusFlash_f (void) {
function V_SetContentsColor (line 446) | void V_SetContentsColor (int contents)
function V_CalcPowerupCshift (line 496) | void V_CalcPowerupCshift(void)
function V_CalcBlend (line 529) | void V_CalcBlend (void)
function V_AddLightBlend (line 588) | void V_AddLightBlend(float r, float g, float b, float a2, qbool suppress...
function V_TF_ClearGrenadeEffects (line 722) | void V_TF_ClearGrenadeEffects (void)
function angledelta (line 753) | float angledelta (float a) {
function V_BoundOffsets (line 760) | void V_BoundOffsets (void) {
function V_AddIdle (line 781) | void V_AddIdle (void) {
function V_CalcViewRoll (line 788) | void V_CalcViewRoll (void) {
function V_CurrentWeaponModel (line 815) | static int V_CurrentWeaponModel(void)
function V_AddViewWeapon (line 862) | static void V_AddViewWeapon(float bob)
function V_CalcIntermissionRefdef (line 929) | static void V_CalcIntermissionRefdef(void)
function V_CalcRefdef (line 946) | static void V_CalcRefdef(void)
function DropPunchAngle (line 1020) | void DropPunchAngle (void) {
function qbool (line 1042) | qbool V_PreRenderView(void)
function V_Init (line 1127) | void V_Init (void) {
FILE: src/client.h
type static_sound_t (line 42) | typedef struct
type skin_texture_t (line 58) | typedef enum {
type skin_t (line 69) | typedef struct
type player_state_t (line 88) | typedef struct
type gender_id (line 128) | typedef enum {
type player_info_t (line 135) | typedef struct player_info_s
type interpolate_t (line 200) | typedef struct
type frame_t (line 209) | typedef struct
type centity_trail_t (line 228) | typedef struct centity_trail_s {
type centity_t (line 233) | typedef struct
type cshift_t (line 264) | typedef struct
type dlighttype_t (line 282) | typedef enum {lt_default, lt_muzzleflash, lt_explosion, lt_rocket,
type dlight_t (line 286) | typedef struct {
type customlight_t (line 299) | typedef struct customlight_s {
type lightstyle_t (line 305) | typedef struct {
type cactive_t (line 314) | typedef enum {
type dltype_t (line 322) | typedef enum
type demoseekingtype_t (line 332) | typedef enum demoseekingtype_e
type demoseekingstatus_matchtype_t (line 343) | typedef enum
type demoseekingstatus_condition_t (line 353) | typedef struct demoseekingstatus_condition_s demoseekingstatus_condition_t;
type demoseekingstatus_condition_s (line 355) | struct demoseekingstatus_condition_s {
type demoseekingstatus_t (line 363) | typedef struct {
type perfinfo_t (line 376) | typedef struct {
type clientPersistent_t (line 387) | typedef struct
type antilag_pos_t (line 534) | typedef struct antilag_pos_s {
type antilag_stats_t (line 541) | typedef struct antilag_stats_s {
type scr_damage_t (line 554) | typedef struct scr_damage_s {
type clientState_t (line 567) | typedef struct {
type visentlist_entrytype_t (line 792) | typedef enum visentlist_entrytype_s {
type visentity_t (line 803) | typedef struct visentity_s {
type visentlist_t (line 813) | typedef struct visentlist_s {
type usermainbuttons_t (line 902) | typedef struct {
type packet_status (line 958) | typedef enum{packet_ok, packet_dropped, packet_choked,
type packet_info_t (line 961) | typedef struct packet_info_s
type net_stat_result_t (line 979) | typedef struct net_stat_result_s
type cl_modelindex_t (line 1053) | typedef enum cl_modelindex_s {
type cl_delayed_packet_t (line 1213) | typedef struct cl_delayed_packet_s
type image_format_t (line 1256) | typedef enum image_format_s {IMAGE_PCX, IMAGE_TGA, IMAGE_JPEG, IMAGE_PNG...
type scr_sshot_target_t (line 1258) | typedef struct scr_sshot_target_s {
FILE: src/cmd.c
type macro_command_t (line 37) | typedef struct {
function OnChange_remote_capabilities (line 84) | static void OnChange_remote_capabilities(cvar_t *var, char *string, qboo...
function qbool (line 143) | qbool CL_IsDownloadableFileExtension(const char *filename)
function Cmd_Wait_f (line 168) | void Cmd_Wait_f (void)
function Cmd_Clipboard_f (line 177) | void Cmd_Clipboard_f(void) {
function Cbuf_AddText (line 187) | void Cbuf_AddText (const char *text)
function Cbuf_InsertText (line 192) | void Cbuf_InsertText (const char *text)
function Cbuf_Execute (line 197) | void Cbuf_Execute (void)
function Cbuf_Flush (line 205) | void Cbuf_Flush(cbuf_t* cbuf)
function Cbuf_Register (line 216) | static void Cbuf_Register (cbuf_t *cbuf, int maxsize)
function Cbuf_Init (line 226) | void Cbuf_Init (void)
function Cbuf_AddTextEx (line 236) | void Cbuf_AddTextEx (cbuf_t *cbuf, const char *text)
function Cbuf_InsertTextEx (line 265) | void Cbuf_InsertTextEx (cbuf_t *cbuf, const char *text)
function Cbuf_ExecuteEx (line 295) | void Cbuf_ExecuteEx (cbuf_t *cbuf)
function Cbuf_AddEarlyCommands (line 467) | void Cbuf_AddEarlyCommands (void)
function qbool (line 480) | qbool Cmd_IsAllowedStuffCmdsCommand(const char *str)
function Cmd_StuffCmds_f (line 507) | void Cmd_StuffCmds_f (void)
function Cmd_Exec_f (line 552) | void Cmd_Exec_f (void)
function Cmd_Echo_f (line 623) | void Cmd_Echo_f (void)
function cmd_alias_t (line 660) | cmd_alias_t *Cmd_FindAlias (const char *name)
function Cmd_Viewalias_f (line 687) | void Cmd_Viewalias_f (void)
function Cmd_AliasCompare (line 727) | int Cmd_AliasCompare (const void *p1, const void *p2)
function Cmd_AliasList_f (line 753) | void Cmd_AliasList_f (void)
function Cmd_AliasEdit_f (line 789) | void Cmd_AliasEdit_f (void)
function cmd_alias_t (line 824) | static cmd_alias_t* Cmd_AliasCreate (char* name)
function Cmd_Alias_f (line 842) | void Cmd_Alias_f (void)
function qbool (line 912) | qbool Cmd_DeleteAlias (char *name)
function Cmd_UnAlias (line 956) | void Cmd_UnAlias (qbool use_regex)
function Cmd_UnAlias_f (line 1000) | void Cmd_UnAlias_f (void)
function Cmd_UnAlias_re_f (line 1005) | void Cmd_UnAlias_re_f (void)
function Cmd_UnAliasAll_f (line 1014) | void Cmd_UnAliasAll_f (void)
function DeleteServerAliases (line 1042) | void DeleteServerAliases(void)
function Cmd_AddLegacyCommand (line 1062) | void Cmd_AddLegacyCommand(char *oldname, char *newname)
function qbool (line 1074) | qbool Cmd_IsLegacyCommand (char *oldname)
function qbool (line 1085) | static qbool Cmd_LegacyCommand (void)
function Cmd_ArgcEx (line 1133) | int Cmd_ArgcEx (tokenizecontext_t *ctx)
function Cmd_TokenizeStringEx2 (line 1173) | void Cmd_TokenizeStringEx2(tokenizecontext_t *ctx, const char *text, qbo...
function Cmd_TokenizeStringEx (line 1216) | void Cmd_TokenizeStringEx(tokenizecontext_t* ctx, const char* text)
function Cmd_Argc (line 1223) | int Cmd_Argc (void)
function Cmd_TokenizeString (line 1247) | void Cmd_TokenizeString (const char *text)
function Cmd_SaveContext (line 1253) | void Cmd_SaveContext(tokenizecontext_t *ctx)
function Cmd_RestoreContext (line 1259) | void Cmd_RestoreContext(tokenizecontext_t *ctx)
function Cmd_AddCommand (line 1264) | void Cmd_AddCommand (char *cmd_name, xcommand_t function)
function qbool (line 1300) | qbool Cmd_AddRemCommand (char *cmd_name, xcommand_t function)
function cmd_function_t (line 1329) | cmd_function_t *Cmd_RemoveCommand_Hash(char *cmd_name)
function cmd_function_t (line 1355) | cmd_function_t *Cmd_RemoveCommand_List (char *cmd_name)
function Cmd_RemoveCommand (line 1377) | void Cmd_RemoveCommand (char *cmd_name)
function qbool (line 1396) | qbool Cmd_Exists (char *cmd_name)
function cmd_function_t (line 1409) | cmd_function_t *Cmd_FindCommand (const char *cmd_name)
function Cmd_CompleteCountPossible (line 1463) | int Cmd_CompleteCountPossible (char *partial)
function Cmd_AliasCompleteCountPossible (line 1489) | int Cmd_AliasCompleteCountPossible (char *partial)
function Cmd_CommandCompare (line 1505) | int Cmd_CommandCompare (const void *p1, const void *p2)
function Cmd_CmdList (line 1510) | void Cmd_CmdList (qbool use_regex)
function Cmd_CmdList_f (line 1555) | void Cmd_CmdList_f (void)
function Cmd_CmdList_re_f (line 1560) | void Cmd_CmdList_re_f (void)
function Cmd_ReInitAllMacro (line 1565) | void Cmd_ReInitAllMacro(void)
function Cmd_AddMacroEx (line 1577) | void Cmd_AddMacroEx(macro_id id, char *(*f) (void), int teamplay)
function Cmd_AddMacro (line 1587) | void Cmd_AddMacro (macro_id id, char *(*f) (void))
function Cmd_MacroCompare (line 1624) | static int Cmd_MacroCompare (const void *p1, const void *p2)
function qbool (line 1634) | qbool Cmd_MacroTeamplayRestricted(macro_id id)
function Cmd_MacroList_f (line 1639) | void Cmd_MacroList_f (void)
function Cmd_ExpandString (line 1675) | void Cmd_ExpandString (const char *data, char *dest)
function Commands_Compare_Func (line 1757) | int Commands_Compare_Func (const void * arg1, const void * arg2)
function qbool (line 1796) | qbool AllowedImpulse(int imp)
function qbool (line 1822) | static qbool Cmd_IsCommandAllowedInMessageTrigger( const char *command )
function qbool (line 1832) | static qbool Cmd_IsCommandAllowedInTeamPlayMacros( const char *command )
function Cmd_ExecuteStringEx (line 1843) | static void Cmd_ExecuteStringEx (cbuf_t *context, char *text)
function Cmd_ExecuteString (line 2018) | void Cmd_ExecuteString (char *text)
function qbool (line 2023) | static qbool is_numeric (char *c)
function Cmd_CatchTriggerSubpatterns (line 2033) | void Cmd_CatchTriggerSubpatterns(const char *s, size_t* offsets, int num)
function Cmd_If_New (line 2039) | void Cmd_If_New(void)
function Cmd_If_Old (line 2138) | void Cmd_If_Old (void)
function Cmd_If_f (line 2237) | void Cmd_If_f(void) {
function Cmd_If_Exists_f (line 2246) | void Cmd_If_Exists_f(void)
function Cmd_Eval_f (line 2285) | void Cmd_Eval_f(void)
function qbool (line 2316) | static qbool do_in(char *buf, char *orig, char *str, int options)
function qbool (line 2331) | static qbool do_out(char *orig, char *str, int options)
function Cmd_Alias_In_f (line 2344) | void Cmd_Alias_In_f (void)
function Cmd_Alias_Out_f (line 2391) | void Cmd_Alias_Out_f (void)
function Cmd_Cvar_In_f (line 2423) | void Cmd_Cvar_In_f (void)
function Cmd_Cvar_Out_f (line 2464) | void Cmd_Cvar_Out_f (void)
function Cmd_Init (line 2501) | void Cmd_Init (void)
function Cmd_Shutdown (line 2543) | void Cmd_Shutdown(void)
FILE: src/cmd.h
type cbuf_t (line 35) | typedef struct cbuf_s {
type cmd_function_t (line 86) | typedef struct cmd_function_s {
type tokenizecontext_t (line 121) | typedef struct tokenizecontext_s
type cmd_alias_t (line 196) | typedef struct cmd_alias_s {
type legacycmd_t (line 224) | typedef struct legacycmd_s
FILE: src/cmdline_params.h
type cmdline_param_id (line 7) | typedef enum {
FILE: src/cmodel.c
type cnode_t (line 27) | typedef struct cnode_s {
type cleaf_t (line 37) | typedef struct cleaf_s {
type bspx_lump_t (line 81) | typedef struct {
function CM_InitBoxHull (line 108) | static void CM_InitBoxHull(void)
function hull_t (line 133) | hull_t *CM_HullForBox (vec3_t mins, vec3_t maxs)
function CM_CachedHullPointContents (line 145) | int CM_CachedHullPointContents(hull_t* hull, int num, vec3_t p, float* m...
function CM_HullPointContents (line 177) | int CM_HullPointContents(hull_t *hull, int num, vec3_t p)
type hulltrace_local_t (line 214) | typedef struct {
function RecursiveHullTrace (line 221) | int RecursiveHullTrace (hulltrace_local_t *htl, int num, float p1f, floa...
function trace_t (line 340) | trace_t CM_HullTrace (hull_t *hull, vec3_t start, vec3_t end)
function CM_NumInlineModels (line 371) | int CM_NumInlineModels (void)
function CM_Leafnum (line 381) | int CM_Leafnum (const cleaf_t *leaf)
function CM_LeafAmbientLevel (line 387) | int CM_LeafAmbientLevel (const cleaf_t *leaf, int ambient_channel)
function cleaf_t (line 396) | cleaf_t *CM_PointInLeaf (const vec3_t p)
function byte (line 420) | byte *CM_LeafPVS (const cleaf_t *leaf)
function byte (line 432) | byte *CM_LeafPHS (const cleaf_t *leaf)
function AddToFatPVS_r (line 459) | static void AddToFatPVS_r (cnode_t *node)
function byte (line 501) | byte *CM_FatPVS (vec3_t org)
function FindTouchedLeafs_r (line 522) | static void FindTouchedLeafs_r(const cnode_t *node)
function CM_FindTouchedLeafs (line 569) | int CM_FindTouchedLeafs (const vec3_t mins, const vec3_t maxs, int leafs...
function CM_LoadEntities (line 600) | static void CM_LoadEntities (byte *buffer, int length)
function CM_LoadSubmodels (line 616) | static void CM_LoadSubmodels (byte *buffer, int length)
function CM_SetParent (line 685) | static void CM_SetParent (cnode_t *node, cnode_t *parent)
function CM_LoadNodes (line 699) | static void CM_LoadNodes (byte *buffer, int length)
function CM_LoadNodes29a (line 730) | static void CM_LoadNodes29a(byte *buffer, int length)
function CM_LoadNodesBSP2 (line 759) | static void CM_LoadNodesBSP2(byte *buffer, int length)
function CM_LoadLeafs (line 791) | static void CM_LoadLeafs (byte *buffer, int length)
function CM_LoadLeafs29a (line 815) | static void CM_LoadLeafs29a (byte *buffer, int length)
function CM_LoadLeafsBSP2 (line 842) | static void CM_LoadLeafsBSP2 (byte *buffer, int length)
function CM_LoadClipnodes (line 874) | static void CM_LoadClipnodes(byte *buffer, int length)
function CM_LoadClipnodesBSP2 (line 896) | static void CM_LoadClipnodesBSP2(byte *buffer, int length)
function qbool (line 918) | static qbool CM_LoadPhysicsNormalsData(byte* data, int datalength)
function CM_LoadPhysicsNormals (line 946) | static void CM_LoadPhysicsNormals(byte *physnormals, int len_physnormals)
function CM_MakeHull0 (line 1008) | static void CM_MakeHull0(void)
function CM_LoadPlanes (line 1039) | static void CM_LoadPlanes(byte *buffer, size_t length)
function byte (line 1074) | static byte *DecompressVis(byte *in)
function CM_BuildPVS (line 1114) | static void CM_BuildPVS(byte *visdata, int vis_len, byte *leaf_buf, int ...
function CM_BuildPVS29a (line 1141) | static void CM_BuildPVS29a(byte *visdata, int vis_len, byte *leaf_buf, i...
function CM_BuildPVSBSP2 (line 1168) | static void CM_BuildPVSBSP2(byte *visdata, int vis_len, byte *leaf_buf, ...
function CM_BuildPHS (line 1201) | static void CM_BuildPHS (void)
function CM_InvalidateMap (line 1247) | void CM_InvalidateMap (void)
function vfsfile_t (line 1262) | static vfsfile_t *CM_OpenMap(char *name, dheader_t *header)
function qbool (line 1315) | static qbool CM_CalcChecksum(vfsfile_t *f, dheader_t *header, unsigned *...
function byte (line 1358) | static byte *CM_ReadLump(vfsfile_t *vf, lump_t *lump)
function cmodel_t (line 1384) | cmodel_t *CM_LoadMap (char *name, qbool clientload, unsigned *checksum, ...
function cmodel_t (line 1480) | cmodel_t *CM_InlineModel (char *name)
function CM_Init (line 1494) | void CM_Init (void)
function CM_PhysicsNormalSet (line 1502) | void CM_PhysicsNormalSet(int num, float x, float y, float z, int flags)
function CM_PhysicsNormalDump (line 1511) | void CM_PhysicsNormalDump(FILE* out, float rampjump, float maxgroundspeed)
function mphysicsnormal_t (line 1521) | mphysicsnormal_t CM_PhysicsNormal(int num)
function CM_BSPX_FindOffset (line 1540) | static int CM_BSPX_FindOffset(dheader_t *header, int filesize)
function qbool (line 1555) | static qbool CM_BSPX_LoadLumps(bspx_lump_t *lump, int numlumps, int file...
function bspx_header_t (line 1598) | bspx_header_t* Mod_LoadBSPX(int filesize, byte* mod_base)
function byte (line 1629) | static byte* CM_BSPX_ReadLump(vfsfile_t *vf, bspx_header_t *xheader, bsp...
function bspx_lump_t (line 1664) | static bspx_lump_t* CM_LoadBSPX(vfsfile_t *vf, dheader_t *header, bspx_h...
FILE: src/cmodel.h
type mplane_t (line 36) | typedef struct mplane_s {
type hull_t (line 45) | typedef struct {
type plane_t (line 54) | typedef struct {
type mphysicsnormal_t (line 59) | typedef struct mphysicsnormal_s {
type trace_t (line 75) | typedef struct {
type cmodel_t (line 89) | typedef struct {
type cleaf_s (line 99) | struct cleaf_s
type cleaf_s (line 100) | struct cleaf_s
type cleaf_s (line 101) | struct cleaf_s
type cleaf_s (line 102) | struct cleaf_s
type cleaf_s (line 103) | struct cleaf_s
type bspx_header_t (line 113) | typedef struct bspx_header_s {
FILE: src/collision.c
function CL_TraceLine (line 21) | float CL_TraceLine (vec3_t start, vec3_t end, vec3_t impact, vec3_t normal)
FILE: src/com_msg.c
function MSG_FromCoord (line 36) | float MSG_FromCoord(coorddata c, int bytes)
function coorddata (line 50) | coorddata MSG_ToCoord(float f, int bytes) //return value should be treat...
function coorddata (line 73) | coorddata MSG_ToAngle(float f, int bytes) //return value is NOT byteswap...
function MSG_WriteChar (line 106) | void MSG_WriteChar (sizebuf_t *sb, int c)
function MSG_WriteByte (line 119) | void MSG_WriteByte (sizebuf_t *sb, int c)
function MSG_WriteShort (line 132) | void MSG_WriteShort (sizebuf_t *sb, int c)
function MSG_WriteLong (line 146) | void MSG_WriteLong (sizebuf_t *sb, int c)
function MSG_WriteFloat (line 157) | void MSG_WriteFloat (sizebuf_t *sb, float f)
function MSG_WriteString (line 170) | void MSG_WriteString (sizebuf_t *sb, const char *s)
function MSG_WriteUnterminatedString (line 178) | void MSG_WriteUnterminatedString (sizebuf_t *sb, char *s)
function MSG_WriteCoord (line 184) | void MSG_WriteCoord (sizebuf_t *sb, float f)
function MSG_WriteAngle16 (line 194) | void MSG_WriteAngle16 (sizebuf_t *sb, float f)
function MSG_WriteAngle (line 199) | void MSG_WriteAngle (sizebuf_t *sb, float f)
function MSG_WriteDeltaUsercmd (line 211) | int MSG_WriteDeltaUsercmd(sizebuf_t *buf, struct usercmd_s *from, struct...
function MSG_WriteDeltaEntity (line 262) | void MSG_WriteDeltaEntity (entity_state_t *from, entity_state_t *to, siz...
function MSG_BeginReading (line 475) | void MSG_BeginReading (void)
function MSG_GetReadCount (line 481) | int MSG_GetReadCount(void)
function MSG_ReadChar (line 487) | int MSG_ReadChar (void)
function MSG_ReadByte (line 502) | int MSG_ReadByte (void)
function MSG_ReadShort (line 517) | int MSG_ReadShort (void)
function MSG_ReadLong (line 534) | int MSG_ReadLong (void)
function MSG_ReadFloat (line 553) | float MSG_ReadFloat (void)
function MSG_ReadCoord (line 619) | float MSG_ReadCoord (void)
function MSG_ReadFloatCoord (line 634) | float MSG_ReadFloatCoord(void)
function MSG_WriteLongCoord (line 641) | void MSG_WriteLongCoord(sizebuf_t* sb, float f)
function MSG_ReadAngle16 (line 648) | float MSG_ReadAngle16 (void)
function MSG_ReadAngle (line 653) | float MSG_ReadAngle (void)
function MSG_ReadDeltaUsercmd (line 679) | void MSG_ReadDeltaUsercmd (usercmd_t *from, usercmd_t *move, int protove...
function MSG_ReadData (line 736) | void MSG_ReadData (void *data, int len)
function MSG_ReadSkip (line 744) | void MSG_ReadSkip(int bytes)
function byte (line 753) | byte MSG_EncodeMVDSVWeaponFlags(int deathmatch, int weaponmode, int weap...
function MSG_DecodeMVDSVWeaponFlags (line 793) | void MSG_DecodeMVDSVWeaponFlags(int flags, int* weaponmode, int* weaponh...
FILE: src/common.c
type commandline_option_t (line 45) | typedef struct commandline_option_s {
function COM_StoreOriginalCmdline (line 89) | void COM_StoreOriginalCmdline (int argc, char **argv)
function COM_StripExtension (line 208) | void COM_StripExtension (const char *in, char *out, int out_size)
function COM_FileBase (line 239) | void COM_FileBase (const char *in, char *out)
function COM_DefaultExtension (line 268) | void COM_DefaultExtension (char *path, char *extension, size_t path_size)
function COM_ForceExtension (line 286) | void COM_ForceExtension (char *path, char *extension)
function COM_ForceExtensionEx (line 299) | void COM_ForceExtensionEx (char *path, char *extension, size_t path_size)
function COM_GetTempDir (line 323) | int COM_GetTempDir(char *buf, int bufsize)
function qbool (line 349) | qbool COM_WriteToUniqueTempFileVFS(char* path, int path_buffer_size, con...
function qbool (line 371) | qbool COM_WriteToUniqueTempFile(char *path, int path_buffer_size, const ...
function qbool (line 438) | qbool COM_FileExists (char *path)
function COM_AddParm (line 669) | void COM_AddParm (char *parm)
function COM_FindParm (line 678) | int COM_FindParm(const char* parm)
function COM_CheckParm (line 691) | int COM_CheckParm(cmdline_param_id id)
function COM_CheckParmOffset (line 701) | int COM_CheckParmOffset(cmdline_param_id id, int offset)
function COM_Argc (line 727) | int COM_Argc (void)
function COM_ClearArgv (line 741) | void COM_ClearArgv(int arg)
function COM_InitArgv (line 749) | void COM_InitArgv(int argc, char **argv)
function COM_Init (line 778) | void COM_Init(void)
function COM_GetFloatTokens (line 807) | int COM_GetFloatTokens(const char *s, float *fl_array, int fl_array_size)
function Info_RemoveKey (line 867) | void Info_RemoveKey (char *s, char *key) {
function Info_RemovePrefixedKeys (line 907) | void Info_RemovePrefixedKeys (char *start, char prefix) {
function Info_SetValueForStarKeyEx (line 943) | void Info_SetValueForStarKeyEx (char *s, char *key, char *value, int max...
function Info_SetValueForStarKey (line 1015) | void Info_SetValueForStarKey (char *s, char *key, char *value, int maxsize)
function Info_SetValueForKeyEx (line 1020) | void Info_SetValueForKeyEx (char *s, char *key, char *value, int maxsize...
function Info_SetValueForKey (line 1031) | void Info_SetValueForKey (char *s, char *key, char *value, int maxsize)
function Info_Print (line 1037) | void Info_Print (char *s) {
function Info_HashKey (line 1081) | static unsigned int Info_HashKey (const char *str)
function info_t (line 1095) | static info_t *_Info_Get (ctxinfo_t *ctx, const char *name)
function qbool (line 1133) | qbool Info_SetStar (ctxinfo_t *ctx, const char *name, const char *value)
function qbool (line 1228) | qbool Info_Set (ctxinfo_t *ctx, const char *name, const char *value)
function _Info_Free (line 1246) | static void _Info_Free(info_t *a)
function qbool (line 1256) | qbool Info_Remove (ctxinfo_t *ctx, const char *name)
function Info_RemoveAll (line 1310) | void Info_RemoveAll (ctxinfo_t *ctx)
function qbool (line 1330) | qbool Info_Convert(ctxinfo_t *ctx, char *str)
function qbool (line 1361) | qbool Info_ReverseConvert(ctxinfo_t *ctx, char *str, int size)
function qbool (line 1395) | qbool Info_CopyStar(ctxinfo_t *ctx_from, ctxinfo_t *ctx_to)
function Info_PrintList (line 1417) | void Info_PrintList(ctxinfo_t *ctx)
function byte (line 1478) | byte COM_BlockSequenceCRCByte (byte *base, int length, int sequence) {
function Com_BeginRedirect (line 1509) | void Com_BeginRedirect (void (*RedirectedPrint) (char *)) {
function Com_EndRedirect (line 1513) | void Com_EndRedirect (void) {
function Com_Printf (line 1522) | void Com_Printf (char *fmt, ...)
function Com_DPrintf (line 1550) | void Com_DPrintf (char *fmt, ...)
function Com_Printf_State (line 1566) | void Com_Printf_State(int state, const char *fmt, ...)
function Com_PrintVerticalBar (line 1619) | void Com_PrintVerticalBar(int width)
function COM_ParseIPCData (line 1632) | void COM_ParseIPCData(const char *buf, unsigned int bufsize)
function qbool (line 1656) | qbool COM_CheckArgsForPlayableFiles(char *commandbuf_out, unsigned int c...
function Q_normalizetext_Init (line 1700) | static void Q_normalizetext_Init (void)
type csentry_t (line 1799) | typedef struct {
function Com_TranslateMapChecksum (line 1819) | int Com_TranslateMapChecksum (const char *mapname, int checksum)
function AdjustAngle (line 1832) | float AdjustAngle(float current, float ideal, float fraction)
function Q_namecmp (line 1844) | int Q_namecmp(const char* s1, const char* s2)
FILE: src/common.h
type texture_ref (line 50) | typedef struct texture_ref_s { unsigned int index; } texture_ref;
type modtype_t (line 58) | typedef enum
type com_tokentype_t (line 180) | typedef enum {TTP_UNKNOWN, TTP_STRING} com_tokentype_t;
type cache_user_s (line 234) | struct cache_user_s
type info_t (line 270) | typedef struct info_s {
type ctxinfo_t (line 279) | typedef struct ctxinfo_s {
type coorddata (line 361) | typedef union { //note: reading from packets can be misaligned
type usercmd_s (line 377) | struct usercmd_s
type usercmd_s (line 379) | struct usercmd_s
type usercmd_s (line 392) | struct usercmd_s
type usercmd_s (line 392) | struct usercmd_s
type usercmd_s (line 412) | struct usercmd_s
type usercmd_s (line 412) | struct usercmd_s
FILE: src/common_draw.c
function Draw_CenterString (line 37) | void Draw_CenterString (int y, char *str)
function Draw_CenterAltString (line 42) | void Draw_CenterAltString (int y, char *str)
function SCR_DrawDemoStatus (line 53) | int SCR_DrawDemoStatus(void)
function PrepareCrosshair (line 110) | void PrepareCrosshair(int num, byte tab[10][10])
function SCR_DrawClients (line 375) | void SCR_DrawClients(void)
function qbool (line 471) | qbool CachePic_Remove(const char *path)
function qbool (line 506) | qbool CachePic_RemoveByPic(mpic_t* pic)
function mpic_t (line 544) | mpic_t *CachePic_Find(const char *path, qbool inc_refcount)
function mpic_t (line 563) | mpic_t *CachePic_Add(const char *path, mpic_t *pic)
function CachePics_Shutdown (line 592) | void CachePics_Shutdown(void)
function color_t (line 613) | color_t RGBA_TO_COLOR(byte r, byte g, byte b, byte a)
function color_t (line 618) | color_t RGBAVECT_TO_COLOR(byte rgba[4])
function color_t (line 623) | color_t RGBAVECT_TO_COLOR_PREMULT(byte rgba[4])
function color_t (line 636) | color_t RGBAVECT_TO_COLOR_PREMULT_SPECIFIC(byte rgba[4], float alpha)
function byte (line 648) | byte* COLOR_TO_RGBA(color_t i, byte rgba[4])
function byte (line 658) | byte* COLOR_TO_RGBA_PREMULT(color_t i, byte rgba[4])
function Draw_FitAlphaSubPic (line 690) | void Draw_FitAlphaSubPic (int x, int y, int target_width, int target_hei...
function Draw_SubPicTiled (line 704) | void Draw_SubPicTiled(int x, int y,
type tm (line 743) | struct tm
function SCR_GetClockStringWidth (line 794) | int SCR_GetClockStringWidth(const char *s, qbool big, float scale, qbool...
function SCR_GetClockStringHeight (line 808) | int SCR_GetClockStringHeight(qbool big, float scale)
function Draw_GetBigfontSourceCoords (line 844) | void Draw_GetBigfontSourceCoords(char c, int char_width, int char_height...
function qbool (line 882) | qbool Draw_BigFontAvailable(void)
function SCR_DrawWadString (line 888) | void SCR_DrawWadString(int x, int y, float scale, const char *t)
function SCR_HUD_DrawBar (line 934) | void SCR_HUD_DrawBar(int direction, int value, float max_value, byte *co...
FILE: src/common_draw.h
type cachepic_t (line 30) | typedef struct cachepic_s
type cachepic_node_t (line 36) | typedef struct cachepic_node_s
FILE: src/config_manager.c
function DumpBindings (line 78) | void DumpBindings (FILE *f)
function qbool (line 105) | static qbool Config_Unsaved_Cvar(const char *name)
function DumpVariables (line 115) | static void DumpVariables(FILE *f)
function DumpVariablesDefaults_f (line 256) | void DumpVariablesDefaults_f(void)
function DumpAliases (line 298) | static void DumpAliases(FILE *f)
function DumpPlusCommand (line 406) | static void DumpPlusCommand(FILE *f, kbutton_t *b, const char *name)
function DumpPlusCommands (line 414) | static void DumpPlusCommands(FILE *f)
function DumpTeamplay (line 438) | static void DumpTeamplay(FILE *f)
function DumpFloodProtSettings (line 457) | void DumpFloodProtSettings(FILE *f)
function DumpMisc (line 464) | void DumpMisc(FILE *f)
function DumpCmdLine (line 494) | void DumpCmdLine(FILE *f)
function DumpHUD262 (line 499) | void DumpHUD262(FILE *f)
function ResetVariables (line 533) | static void ResetVariables(int cvar_flags, qbool resetting_before_load)
function DeleteUserAliases (line 561) | static void DeleteUserAliases(void)
function DeleteUserVariables (line 573) | static void DeleteUserVariables(void)
function ResetPlusCommands (line 587) | static void ResetPlusCommands(void)
function ResetBinds (line 606) | void ResetBinds(void)
function ResetTeamplayCommands (line 664) | static void ResetTeamplayCommands(void)
function ResetMiscCommands (line 673) | static void ResetMiscCommands(void)
function Config_PrintBorder (line 690) | static void Config_PrintBorder(FILE *f)
function Config_PrintLine (line 701) | static void Config_PrintLine(FILE *f, char *title, int width)
function Config_PrintHeading (line 719) | static void Config_PrintHeading(FILE *f, char *title)
function Config_PrintPreamble (line 729) | static void Config_PrintPreamble(FILE *f)
function Cfg_ExecuteDefaultConfig (line 755) | void Cfg_ExecuteDefaultConfig(void)
function ResetConfigs (line 775) | static void ResetConfigs(qbool explicit_reset, qbool read_legacy_configs)
function Cfg_GetConfigPath (line 799) | void Cfg_GetConfigPath(char* path, size_t max_length, const char* name)
function DumpConfig (line 818) | void DumpConfig(char *name)
function DumpHUD (line 882) | void DumpHUD(const char *name)
function SaveConfig (line 931) | static void SaveConfig(const char *cfgname)
function SaveConfig_f (line 976) | void SaveConfig_f(void)
function Config_QuitSave (line 981) | void Config_QuitSave(void)
function ResetConfigs_f (line 988) | void ResetConfigs_f(void)
function qbool (line 1004) | qbool LoadCfg(FILE *f)
function LoadConfig_f (line 1041) | void LoadConfig_f(void)
function DumpHUD_f (line 1117) | void DumpHUD_f(void)
function Config_TroubleShoot_Tip (line 1133) | void Config_TroubleShoot_Tip(const char* problem, const char* description,
function Config_TroubleShoot_f (line 1162) | void Config_TroubleShoot_f(void)
function ConfigManager_Init (line 1219) | void ConfigManager_Init(void)
FILE: src/console.c
function Date_f (line 124) | void Date_f (void)
function qbool (line 138) | static qbool Con_MenuWillDrawConsole(void)
function MakeStringRed (line 146) | void MakeStringRed(char *s)
function MakeStringYellow (line 156) | void MakeStringYellow(char *s)
function Calendar_f (line 171) | void Calendar_f(void)
function Con_ToggleConsole_f (line 238) | void Con_ToggleConsole_f (void) {
function Con_SetColor (line 259) | void Con_SetColor(int idx_from, int count, int c) {
function Con_SetWhite (line 272) | void Con_SetWhite (void) {
function Con_Clear_f (line 279) | void Con_Clear_f (void) {
function Con_ClearNotify (line 289) | void Con_ClearNotify (void) {
function Con_MessageMode_Common (line 296) | void Con_MessageMode_Common (chat_type t) {
function Con_MessageMode_f (line 307) | void Con_MessageMode_f (void) {
function Con_MessageMode2_f (line 311) | void Con_MessageMode2_f (void) {
function Con_MessageModeIRC_f (line 324) | void Con_MessageModeIRC_f (void) {
function Con_MessageModeQTVtoGAME_f (line 329) | void Con_MessageModeQTVtoGAME_f (void) {
function Con_CheckResize (line 334) | void Con_CheckResize (void) {
function Con_CreateReadableChars (line 413) | static void Con_CreateReadableChars(void) {
function Con_InitConsoleBuffer (line 428) | static void Con_InitConsoleBuffer(console_t *conbuffer, int size) {
function Con_Init (line 434) | void Con_Init (void) {
function Con_Shutdown (line 513) | void Con_Shutdown (void) {
function Con_Linefeed (line 518) | void Con_Linefeed (void) {
function Con_SafePrintf (line 546) | void Con_SafePrintf (char *fmt, ...)
function Con_PrintW (line 563) | void Con_PrintW(wchar *txt)
function Con_DrawInput (line 704) | static void Con_DrawInput(void) {
function Con_FirstNotifyLine (line 739) | static int Con_FirstNotifyLine (int notification_lines, float notificati...
function qbool (line 758) | static qbool Con_NotifyMessageLine(float posX, float posY, float width, ...
function Con_DrawNotify (line 837) | void Con_DrawNotify(void)
function SCR_DrawNotify (line 845) | void SCR_DrawNotify(int posX, int posY, float scale, int notifyTime, int...
function Con_DrawConsole (line 901) | void Con_DrawConsole (int lines) {
FILE: src/console.h
type console_t (line 29) | typedef struct
type cfrags_format (line 43) | typedef struct cfrags_format_s {
FILE: src/crc.c
function CRC_Init (line 72) | void CRC_Init(unsigned short *crcvalue)
function CRC_ProcessByte (line 77) | void CRC_ProcessByte(unsigned short *crcvalue, byte data)
function CRC_Value (line 82) | unsigned short CRC_Value(unsigned short crcvalue)
function CRC_Block (line 87) | unsigned short CRC_Block (byte *start, unsigned int count)
function CRC_AddBlock (line 98) | void CRC_AddBlock (unsigned short *crcvalue, byte *start, int count)
FILE: src/cvar.c
function cvar_t (line 61) | cvar_t* Cvar_Next(cvar_t *var)
function cvar_t (line 71) | cvar_t *Cvar_Find(const char *var_name)
function Cvar_Value (line 85) | float Cvar_Value (const char *var_name)
function Cvar_SetEx (line 116) | void Cvar_SetEx(cvar_t *var, char *value, qbool ignore_callback)
function Cvar_SetIgnoreCallback (line 268) | void Cvar_SetIgnoreCallback(cvar_t *var, char *value)
function Cvar_Set (line 273) | void Cvar_Set(cvar_t *var, char *value)
function Cvar_ForceSet (line 278) | void Cvar_ForceSet (cvar_t *var, char *value)
function Cvar_SetByName (line 291) | void Cvar_SetByName (const char *var_name, char *value)
function Cvar_ValueToString (line 305) | static void Cvar_ValueToString(char* val, int size, float value)
function Cvar_SetValue (line 319) | void Cvar_SetValue (cvar_t *var, const float value)
function Cvar_SetValueByName (line 328) | void Cvar_SetValueByName(const char *var_name, const float value)
function Cvar_Register (line 336) | void Cvar_Register(cvar_t *var)
function Cvar_ApplyLatchedUpdate (line 457) | static void Cvar_ApplyLatchedUpdate(cvar_t* var)
function qbool (line 471) | qbool Cvar_Command (void)
function Cvar_Toggle_f_base (line 535) | static void Cvar_Toggle_f_base (qbool use_regex)
function Cvar_Toggle_f (line 574) | void Cvar_Toggle_f (void)
function Cvar_Toggle_re_f (line 579) | void Cvar_Toggle_re_f (void)
function Cvar_Toggle (line 584) | void Cvar_Toggle (cvar_t *var)
function Cvar_CvarCompare (line 589) | int Cvar_CvarCompare (const void *p1, const void *p2)
function Cvar_CvarList_f (line 654) | void Cvar_CvarList_f (void)
function Cvar_CvarList_re_f (line 659) | void Cvar_CvarList_re_f (void)
function Cvar_CvarEdit_f (line 664) | static void Cvar_CvarEdit_f(void)
function cvar_t (line 692) | cvar_t *Cvar_Create(const char *name, const char *string, int cvarflags)
function qbool (line 733) | qbool Cvar_Delete(const char *name)
function Cvar_Set_f (line 782) | void Cvar_Set_f (void)
function Cvar_Inc_f (line 808) | void Cvar_Inc_f(void)
function Cvar_GetFlags (line 830) | int Cvar_GetFlags (cvar_t *var)
function qbool (line 836) | qbool Cvar_ForceCallback(cvar_t *var)
function Cvar_ResetVar (line 847) | void Cvar_ResetVar (cvar_t *var)
function Cvar_Reset (line 854) | void Cvar_Reset(qbool use_regex)
function Cvar_Reset_f (line 896) | void Cvar_Reset_f (void)
function Cvar_Reset_re_f (line 901) | void Cvar_Reset_re_f (void)
function Cvar_SetDefaultAndValue (line 906) | void Cvar_SetDefaultAndValue(cvar_t *var, float default_value, float act...
function Cvar_CompleteCountPossible (line 942) | int Cvar_CompleteCountPossible (char *partial)
function Cvar_RulesetSet (line 958) | void Cvar_RulesetSet(cvar_t *var, char *val, int m)
function Cvar_AutoSet (line 978) | void Cvar_AutoSet(cvar_t *var, char *value)
function Cvar_AutoSetInt (line 990) | void Cvar_AutoSetInt(cvar_t *var, int value)
function Cvar_AutoReset (line 1006) | void Cvar_AutoReset(cvar_t *var)
function Cvar_LatchedSet (line 1016) | void Cvar_LatchedSet(cvar_t *var, char *value)
function Cvar_LatchedSetValue (line 1032) | void Cvar_LatchedSetValue(cvar_t *var, float value)
function Cvar_SetFlags (line 1047) | void Cvar_SetFlags(cvar_t *var, int flags)
function cvar_group_t (line 1059) | static cvar_group_t *Cvar_AddGroup(char *name)
function Cvar_SetCurrentGroup (line 1085) | void Cvar_SetCurrentGroup(char *name)
function Cvar_ResetCurrentGroup (line 1098) | void Cvar_ResetCurrentGroup(void)
function Cvar_AddCvarToGroup (line 1103) | static void Cvar_AddCvarToGroup(cvar_t *var)
function Cvar_Set_tp_f (line 1115) | void Cvar_Set_tp_f(void)
function Cvar_Set_ex_f (line 1147) | static void Cvar_Set_ex_f(void)
function Cvar_Set_Alias_Str_f (line 1185) | void Cvar_Set_Alias_Str_f (void)
function Cvar_Set_Bind_Str_f (line 1223) | void Cvar_Set_Bind_Str_f(void)
function Cvar_UnSet (line 1269) | void Cvar_UnSet (qbool use_regex)
function Cvar_UnSet_f (line 1322) | void Cvar_UnSet_f(void)
function Cvar_UnSet_re_f (line 1327) | void Cvar_UnSet_re_f(void)
function Cvar_Set_Calc_f (line 1336) | void Cvar_Set_Calc_f(void)
function Cvar_Set_Eval_f (line 1494) | void Cvar_Set_Eval_f(void)
function qbool (line 1551) | qbool Cvar_CreateTempVar (void)
function Cvar_CleanUpTempVars (line 1560) | void Cvar_CleanUpTempVars (void)
function Cvar_Init (line 1572) | void Cvar_Init(void)
function Cvar_Shutdown (line 1604) | void Cvar_Shutdown(void)
function Cvar_ExecuteQueuedChanges (line 1637) | void Cvar_ExecuteQueuedChanges(void)
function Cvar_ClearAllModifiedFlags (line 1678) | void Cvar_ClearAllModifiedFlags(int flags)
function qbool (line 1689) | qbool Cvar_AnyModified(int flags)
FILE: src/cvar.h
type cvar_t (line 61) | typedef struct cvar_s {
type cvar_group_t (line 88) | typedef struct cvar_group_s {
FILE: src/demo_controls.c
function DemoControls_SetTimeLabelText (line 63) | static void DemoControls_SetTimeLabelText(ez_label_t *label, double time)
function DemoControls_Destroy (line 68) | static void DemoControls_Destroy(void)
function DemoControls_Draw (line 76) | void DemoControls_Draw(void)
function DemoControls_SliderChanged (line 104) | static int DemoControls_SliderChanged(ez_control_t *self, void *payload,...
function DemoControls_Slider_OnMouseEnter (line 121) | static int DemoControls_Slider_OnMouseEnter(ez_control_t *self, void *pa...
function DemoControls_Slider_OnMouseLeave (line 127) | static int DemoControls_Slider_OnMouseLeave(ez_control_t *self, void *pa...
function DemoControls_Slider_OnMouseHover (line 133) | static int DemoControls_Slider_OnMouseHover(ez_control_t *self, void *pa...
function DemoControls_SetSpeedLabel (line 145) | static void DemoControls_SetSpeedLabel(void)
function DemoControls_SetDemoSpeed (line 154) | static void DemoControls_SetDemoSpeed(double speed)
function DemoControls_SpeedButton_OnMouseClick (line 167) | static int DemoControls_SpeedButton_OnMouseClick(ez_control_t *self, voi...
function DemoControls_PlayButton_OnMouseClick (line 176) | static int DemoControls_PlayButton_OnMouseClick(ez_control_t *self, void...
function DemoControls_PauseButton_OnMouseClick (line 191) | static int DemoControls_PauseButton_OnMouseClick(ez_control_t *self, voi...
function DemoControls_StopButton_OnMouseClick (line 197) | static int DemoControls_StopButton_OnMouseClick(ez_control_t *self, void...
function DemoControls_Window_OnMouseEnter (line 205) | static int DemoControls_Window_OnMouseEnter(ez_control_t *self, void *pa...
function DemoControls_Window_OnMouseLeave (line 211) | static int DemoControls_Window_OnMouseLeave(ez_control_t *self, void *pa...
function DemoControls_Window_OnCloseClick (line 217) | static int DemoControls_Window_OnCloseClick(ez_control_t *self, void *pa...
function DemoControls_Init (line 223) | static void DemoControls_Init(void)
function qbool (line 414) | qbool DemoControls_MouseEvent(mouse_state_t *ms)
function DemoControls_Toggle (line 419) | static void DemoControls_Toggle(void)
function qbool (line 435) | qbool DemoControls_KeyEvent(int key, int unichar, qbool down)
function DemoControls_f (line 447) | void DemoControls_f(void)
FILE: src/demo_spawnwarn.c
type demo_spawnwarn_entity_t (line 29) | typedef struct
type demo_spawnwarn_teleport_destination_t (line 40) | typedef struct
type demo_spawnwarn_teleport_trigger_t (line 46) | typedef struct
function CL_SpawnWarn_ResetState (line 65) | static void CL_SpawnWarn_ResetState(void)
function qbool (line 74) | static qbool CL_SpawnWarn_ParseEntityOrigin(const char *value, vec3_t or...
function CL_SpawnWarn_WarnOverflow (line 79) | static void CL_SpawnWarn_WarnOverflow(void)
function CL_SpawnWarn_AddPoint (line 89) | static void CL_SpawnWarn_AddPoint(const vec3_t origin)
function CL_SpawnWarn_ClearEntity (line 103) | static void CL_SpawnWarn_ClearEntity(demo_spawnwarn_entity_t *entity)
function CL_SpawnWarn_AddTeleportTrigger (line 108) | static void CL_SpawnWarn_AddTeleportTrigger(
function CL_SpawnWarn_AddTeleportDestination (line 129) | static void CL_SpawnWarn_AddTeleportDestination(
function CL_SpawnWarn_CollectPointData (line 151) | static void CL_SpawnWarn_CollectPointData(
function CL_SpawnWarn_ResolveTeleportExitPoints (line 180) | static void CL_SpawnWarn_ResolveTeleportExitPoints(
function qbool (line 203) | static qbool CL_SpawnWarn_ParseEntityBlock(
function qbool (line 260) | static qbool CL_SpawnWarn_ParseEntityLump(const char *entstring)
function CL_SpawnWarn_LoadPoints (line 307) | void CL_SpawnWarn_LoadPoints(void)
function qbool (line 319) | static qbool CL_SpawnWarn_BoxesTouch(
function CL_SpawnWarn_CheckTeleportSuppression (line 331) | static void CL_SpawnWarn_CheckTeleportSuppression(double current_time)
function CL_SpawnWarn_SuppressWarning (line 361) | static void CL_SpawnWarn_SuppressWarning(void)
function CL_SpawnWarn_ClearPoints (line 373) | void CL_SpawnWarn_ClearPoints(void)
function CL_SpawnWarn_SuppressAfterRespawn (line 378) | void CL_SpawnWarn_SuppressAfterRespawn(void)
function CL_SpawnWarn_SuppressAfterTeleport (line 383) | void CL_SpawnWarn_SuppressAfterTeleport(void)
function CL_SpawnWarn_UpdateWarning (line 388) | void CL_SpawnWarn_UpdateWarning(void)
FILE: src/document_rendering.c
type document_rendering_context_t (line 32) | typedef struct document_rendering_context_s
function IsBlockElement (line 77) | static int IsBlockElement(document_tag_t *tag)
function LineFeed (line 96) | static void LineFeed(document_rendering_context_t *cx)
function AddBlankLine (line 155) | static void AddBlankLine(document_rendering_context_t *cx)
function AddInlineLink (line 178) | static void AddInlineLink(document_rendering_context_t *cx, document_ren...
function ChangeColor (line 252) | static char ChangeColor(char c)
function Render_String (line 262) | static void Render_String(document_rendering_context_t *cx, char *text)
function Render_P (line 351) | static void Render_P(document_rendering_context_t *cx, document_tag_p_t *p)
function Render_Section (line 374) | static void Render_Section(document_rendering_context_t *cx, document_ta...
function Render_H (line 392) | static void Render_H(document_rendering_context_t *cx, document_tag_h_t *h)
function Render_Pre (line 410) | static void Render_Pre(document_rendering_context_t *cx, document_tag_pr...
function Render_Hr (line 502) | static void Render_Hr(document_rendering_context_t *cx, document_tag_hr_...
function Render_List (line 524) | static void Render_List(document_rendering_context_t *cx, document_tag_l...
function Render_Dict (line 618) | static void Render_Dict(document_rendering_context_t *cx, document_tag_d...
function document_tag_t (line 884) | static document_tag_t * RenderInlineChain(document_rendering_context_t *...
function RenderBlockChain (line 905) | static void RenderBlockChain(document_rendering_context_t *cx, document_...
function XSD_RenderDocumentOnce (line 965) | static int XSD_RenderDocumentOnce(xml_document_t *doc, byte *buf, int wi...
function XSD_RenderDocument (line 1016) | int XSD_RenderDocument(document_rendered_t *ret, xml_document_t *doc, in...
function RenderFreeSection (line 1071) | void RenderFreeSection(document_rendered_section_t *section)
function XSD_RenderClear (line 1090) | void XSD_RenderClear(document_rendered_t *r)
FILE: src/document_rendering.h
type document_rendered_link_t (line 22) | typedef struct document_rendered_link_s
type document_rendered_section_t (line 32) | typedef struct document_rendered_section_s
type document_rendered_t (line 43) | typedef struct document_renered_s
FILE: src/draw.h
type mpic_t (line 27) | typedef struct
type cache_pic_id_t (line 34) | typedef enum {
type color_t (line 75) | typedef int color_t;
type clrinfo_t (line 104) | typedef struct clrinfo_s
type text_alignment_t (line 110) | typedef enum {
type wadpic_t (line 310) | typedef struct wadpic_s {
FILE: src/ez_button.c
function EZ_button_RecalculateLabelPosition (line 41) | static void EZ_button_RecalculateLabelPosition(ez_button_t *button)
function EZ_button_OnLabelTextChanged (line 135) | static int EZ_button_OnLabelTextChanged(ez_control_t *self, void *payloa...
function ez_button_t (line 154) | ez_button_t *EZ_button_Create(ez_tree_t *tree, ez_control_t *parent,
function EZ_button_SetColorOrBackground (line 178) | static void EZ_button_SetColorOrBackground(ez_control_t *self, mpic_t *b...
function EZ_button_Init (line 195) | void EZ_button_Init(ez_button_t *button, ez_tree_t *tree, ez_control_t *...
function EZ_button_Destroy (line 253) | void EZ_button_Destroy(ez_control_t *self, qbool destroy_children)
function EZ_button_OnAction (line 267) | int EZ_button_OnAction(ez_control_t *self, void *ext_event_info)
function EZ_button_OnResize (line 278) | int EZ_button_OnResize(ez_control_t *self, void *ext_event_info)
function EZ_button_SetUseImages (line 295) | void EZ_button_SetUseImages(ez_button_t *button, qbool useimages)
function EZ_button_SetToggleable (line 303) | void EZ_button_SetToggleable(ez_button_t *button, qbool toggleable)
function qbool (line 311) | qbool EZ_button_GetIsToggled(ez_button_t *button)
function EZ_button_SetText (line 319) | void EZ_button_SetText(ez_button_t *button, const char *text)
function EZ_button_SetTextAlignment (line 327) | void EZ_button_SetTextAlignment(ez_button_t *button, ez_textalign_t text...
function EZ_button_AddOnTextAlignmentChanged (line 337) | void EZ_button_AddOnTextAlignmentChanged(ez_button_t *button, ez_eventha...
function EZ_button_AddOnToggled (line 346) | void EZ_button_AddOnToggled(ez_button_t *button, ez_eventhandler_fp OnTo...
function EZ_button_SetNormalImage (line 355) | void EZ_button_SetNormalImage(ez_button_t *button, const char *normal_im...
function EZ_button_SetHoverImage (line 363) | void EZ_button_SetHoverImage(ez_button_t *button, const char *hover_image)
function EZ_button_SetPressedImage (line 371) | void EZ_button_SetPressedImage(ez_button_t *button, const char *pressed_...
function EZ_button_SetToggledHoverImage (line 379) | void EZ_button_SetToggledHoverImage(ez_button_t *button, const char *tog...
function EZ_button_SetNormalColor (line 387) | void EZ_button_SetNormalColor(ez_button_t *self, byte r, byte g, byte b,...
function EZ_button_SetPressedColor (line 398) | void EZ_button_SetPressedColor(ez_button_t *self, byte r, byte g, byte b...
function EZ_button_SetHoverColor (line 409) | void EZ_button_SetHoverColor(ez_button_t *self, byte r, byte g, byte b, ...
function EZ_button_SetToggledHoverColor (line 420) | void EZ_button_SetToggledHoverColor(ez_button_t *self, byte r, byte g, b...
function EZ_button_SetFocusedColor (line 431) | void EZ_button_SetFocusedColor(ez_button_t *self, byte r, byte g, byte b...
function EZ_button_AddOnAction (line 442) | void EZ_button_AddOnAction(ez_button_t *self, ez_eventhandler_fp OnActio...
function EZ_button_OnDraw (line 451) | int EZ_button_OnDraw(ez_control_t *self, void *ext_event_info)
function EZ_button_OnTextAlignmentChanged (line 480) | int EZ_button_OnTextAlignmentChanged(ez_control_t *self, void *ext_event...
function EZ_button_OnMouseClick (line 493) | int EZ_button_OnMouseClick(ez_control_t *self, mouse_state_t *mouse_state)
function EZ_button_OnToggled (line 517) | int EZ_button_OnToggled(ez_control_t *self, void *ext_event_info)
function EZ_button_OnMouseEnter (line 538) | int EZ_button_OnMouseEnter(ez_control_t *self, mouse_state_t *mouse_state)
function EZ_button_OnMouseLeave (line 560) | int EZ_button_OnMouseLeave(ez_control_t *self, mouse_state_t *mouse_state)
function EZ_button_OnMouseDown (line 582) | int EZ_button_OnMouseDown(ez_control_t *self, mouse_state_t *mouse_state)
function EZ_button_OnMouseUp (line 596) | int EZ_button_OnMouseUp(ez_control_t *self, mouse_state_t *mouse_state)
FILE: src/ez_button.h
type ez_button_eventcount_t (line 37) | typedef struct ez_button_eventcount_s
type ez_button_events_t (line 44) | typedef struct ez_button_events_s
type ez_button_eventhandlers_t (line 51) | typedef struct ez_button_eventhandlers_s
type ez_button_iflags_t (line 58) | typedef enum ez_button_iflags_e
type ez_button_flags_t (line 63) | typedef enum ez_button_flags_e
type ez_textalign_t (line 69) | typedef enum ez_textalign_e
type ez_button_t (line 82) | typedef struct ez_button_s
FILE: src/ez_controls.c
function EZ_double_linked_list_Add (line 40) | void EZ_double_linked_list_Add(ez_double_linked_list_t *list, void *payl...
function ez_dllist_node_t (line 74) | ez_dllist_node_t *EZ_double_linked_list_FindByPayload(const ez_double_li...
function ez_dllist_node_t (line 94) | ez_dllist_node_t *EZ_double_linked_list_FindByIndex(const ez_double_link...
function EZ_double_linked_list_RemoveRange (line 176) | void EZ_double_linked_list_RemoveRange(ez_double_linked_list_t *list, in...
function EZ_double_linked_list_Sort (line 218) | void EZ_double_linked_list_Sort(ez_double_linked_list_t *list, PtFuncCom...
function EZ_tree_SetDrawBounds (line 258) | static void EZ_tree_SetDrawBounds(ez_control_t *control)
function EZ_tree_Draw (line 325) | static void EZ_tree_Draw(ez_tree_t *tree)
function EZ_tree_RaiseRepeatedMouseButtonEvents (line 436) | static void EZ_tree_RaiseRepeatedMouseButtonEvents(ez_tree_t *tree)
function EZ_tree_EventLoop (line 472) | void EZ_tree_EventLoop(ez_tree_t *tree)
function qbool (line 504) | qbool EZ_tree_MouseEvent(ez_tree_t *tree, mouse_state_t *ms)
function EZ_tree_Refresh (line 555) | void EZ_tree_Refresh(ez_tree_t *tree)
function EZ_tree_ChangeFocus (line 581) | void EZ_tree_ChangeFocus(ez_tree_t *tree, qbool next_control)
function qbool (line 625) | qbool EZ_tree_KeyEvent(ez_tree_t *tree, int key, int unichar, qbool down)
function EZ_tree_UnOrphanizeChildren (line 666) | void EZ_tree_UnOrphanizeChildren(ez_tree_t *tree)
function EZ_tree_Destroy (line 701) | void EZ_tree_Destroy(ez_tree_t *tree)
function EZ_tree_DrawOrderFunc (line 717) | static int EZ_tree_DrawOrderFunc(const void *val1, const void *val2)
function EZ_tree_OrderDrawList (line 728) | void EZ_tree_OrderDrawList(ez_tree_t *tree)
function EZ_tree_TabOrderFunc (line 736) | static int EZ_tree_TabOrderFunc(const void *val1, const void *val2)
function EZ_tree_OrderTabList (line 747) | void EZ_tree_OrderTabList(ez_tree_t *tree)
function ez_control_t (line 759) | ez_control_t *EZ_control_Create(ez_tree_t *tree, ez_control_t *parent,
function EZ_control_GetDrawingPosition (line 785) | void EZ_control_GetDrawingPosition(ez_control_t *self, int *x, int *y)
function ez_eventhandler_t (line 802) | ez_eventhandler_t *EZ_eventhandler_Create(void *event_func, int func_typ...
function EZ_eventhandler_Remove (line 841) | void EZ_eventhandler_Remove(ez_eventhandler_t *eventhandler, void *event...
function EZ_eventhandler_Exec (line 877) | void EZ_eventhandler_Exec(ez_eventhandler_t *event_handler, ez_control_t...
function EZ_control_Init (line 918) | void EZ_control_Init(ez_control_t *control, ez_tree_t *tree, ez_control_...
function EZ_control_Destroy (line 1041) | int EZ_control_Destroy(ez_control_t *self, qbool destroy_children)
function EZ_control_AddOnDestroy (line 1124) | void EZ_control_AddOnDestroy(ez_control_t *self, ez_destroy_eventhandler...
function EZ_control_AddOnFlagsChanged (line 1133) | void EZ_control_AddOnFlagsChanged(ez_control_t *self, ez_eventhandler_fp...
function EZ_control_AddOnLayoutChildren (line 1142) | void EZ_control_AddOnLayoutChildren(ez_control_t *self, ez_eventhandler_...
function EZ_control_AddOnMove (line 1151) | void EZ_control_AddOnMove(ez_control_t *self, ez_eventhandler_fp OnMove,...
function EZ_control_AddOnScroll (line 1160) | void EZ_control_AddOnScroll(ez_control_t *self, ez_eventhandler_fp OnScr...
function EZ_control_AddOnResize (line 1169) | void EZ_control_AddOnResize(ez_control_t *self, ez_eventhandler_fp OnRes...
function EZ_control_AddOnParentResize (line 1178) | void EZ_control_AddOnParentResize(ez_control_t *self, ez_eventhandler_fp...
function EZ_control_AddOnMinVirtualResize (line 1187) | void EZ_control_AddOnMinVirtualResize(ez_control_t *self, ez_eventhandle...
function EZ_control_AddOnVirtualResize (line 1196) | void EZ_control_AddOnVirtualResize(ez_control_t *self, ez_eventhandler_f...
function EZ_control_AddOnKeyEvent (line 1205) | void EZ_control_AddOnKeyEvent(ez_control_t *self, ez_key_eventhandler_fp...
function EZ_control_AddOnLostFocus (line 1214) | void EZ_control_AddOnLostFocus(ez_control_t *self, ez_eventhandler_fp On...
function EZ_control_AddOnGotFocus (line 1223) | void EZ_control_AddOnGotFocus(ez_control_t *self, ez_eventhandler_fp OnG...
function EZ_control_AddOnMouseHover (line 1232) | void EZ_control_AddOnMouseHover(ez_control_t *self, ez_mouse_eventhandle...
function EZ_control_AddOnMouseLeave (line 1241) | void EZ_control_AddOnMouseLeave(ez_control_t *self, ez_mouse_eventhandle...
function EZ_control_AddOnMouseEnter (line 1250) | void EZ_control_AddOnMouseEnter(ez_control_t *self, ez_mouse_eventhandle...
function EZ_control_AddOnMouseClick (line 1259) | void EZ_control_AddOnMouseClick(ez_control_t *self, ez_mouse_eventhandle...
function EZ_control_AddOnMouseUp (line 1268) | void EZ_control_AddOnMouseUp(ez_control_t *self, ez_mouse_eventhandler_f...
function EZ_control_AddOnMouseUpOutside (line 1277) | void EZ_control_AddOnMouseUpOutside(ez_control_t *self, ez_mouse_eventha...
function EZ_control_AddOnMouseDown (line 1286) | void EZ_control_AddOnMouseDown(ez_control_t *self, ez_mouse_eventhandler...
function EZ_control_AddOnMouseEvent (line 1295) | void EZ_control_AddOnMouseEvent(ez_control_t *self, ez_mouse_eventhandle...
function EZ_control_AddOnDraw (line 1304) | void EZ_control_AddOnDraw(ez_control_t *self, ez_eventhandler_fp OnDraw,...
function EZ_control_AddOnEventHandlerChanged (line 1313) | void EZ_control_AddOnEventHandlerChanged(ez_control_t *self, ez_eventhan...
function EZ_control_AddOnResizeHandleThicknessChanged (line 1322) | void EZ_control_AddOnResizeHandleThicknessChanged(ez_control_t *self, ez...
function EZ_control_AddOnChildMoved (line 1331) | void EZ_control_AddOnChildMoved(ez_control_t *self, ez_eventhandler_fp O...
function EZ_control_AddOnChildResize (line 1340) | void EZ_control_AddOnChildResize(ez_control_t *self, ez_eventhandler_fp ...
function qbool (line 1349) | qbool EZ_control_SetFocus(ez_control_t *self)
function qbool (line 1357) | qbool EZ_control_SetFocusByNode(ez_control_t *self, ez_dllist_node_t *node)
function EZ_control_SetBackgroundImage (line 1422) | void EZ_control_SetBackgroundImage(ez_control_t *self, const char *backg...
function EZ_control_SetBackgroundImageOpacity (line 1430) | void EZ_control_SetBackgroundImageOpacity(ez_control_t *self, float opac...
function EZ_control_SetBackgroundImageEdgePercentage (line 1438) | void EZ_control_SetBackgroundImageEdgePercentage(ez_control_t *self, int...
function EZ_control_SetBackgroundTileCenter (line 1447) | void EZ_control_SetBackgroundTileCenter(ez_control_t *self, qbool tilece...
function EZ_control_SetBackgroundTileEdges (line 1455) | void EZ_control_SetBackgroundTileEdges(ez_control_t *self, qbool tileedges)
function EZ_control_SetContained (line 1463) | void EZ_control_SetContained(ez_control_t *self, qbool contained)
function EZ_control_SetEnabled (line 1472) | void EZ_control_SetEnabled(ez_control_t *self, qbool enabled)
function EZ_control_SetMovable (line 1482) | void EZ_control_SetMovable(ez_control_t *self, qbool movable)
function EZ_control_SetFocusable (line 1491) | void EZ_control_SetFocusable(ez_control_t *self, qbool focusable)
function EZ_control_SetResizeableHorizontally (line 1500) | void EZ_control_SetResizeableHorizontally(ez_control_t *self, qbool resi...
function EZ_control_SetResizeableBoth (line 1509) | void EZ_control_SetResizeableBoth(ez_control_t *self, qbool resize)
function EZ_control_SetResizeable (line 1518) | void EZ_control_SetResizeable(ez_control_t *self, qbool resizeable)
function EZ_control_SetResizeableVertically (line 1528) | void EZ_control_SetResizeableVertically(ez_control_t *self, qbool resize...
function EZ_control_SetVisible (line 1537) | void EZ_control_SetVisible(ez_control_t *self, qbool visible)
function EZ_control_SetScrollable (line 1548) | void EZ_control_SetScrollable(ez_control_t *self, qbool scrollable)
function EZ_control_SetMovesParent (line 1557) | void EZ_control_SetMovesParent(ez_control_t *self, qbool moves_parent)
function EZ_control_SetIgnoreMouse (line 1566) | void EZ_control_SetIgnoreMouse(ez_control_t *self, qbool ignore_mouse)
function EZ_control_SetListenToRepeatedMouseClicks (line 1576) | void EZ_control_SetListenToRepeatedMouseClicks(ez_control_t *self, qbool...
function EZ_control_SetRepeatMouseClickDelay (line 1586) | void EZ_control_SetRepeatMouseClickDelay(ez_control_t *self, double delay)
function EZ_control_SetFlags (line 1594) | void EZ_control_SetFlags(ez_control_t *self, ez_control_flags_t flags)
function ez_control_flags_t (line 1603) | ez_control_flags_t EZ_control_GetFlags(ez_control_t *self)
function ez_anchor_t (line 1611) | ez_anchor_t EZ_control_GetAnchor(ez_control_t *self)
function EZ_control_SetTabOrder (line 1619) | void EZ_control_SetTabOrder(ez_control_t *self, int tab_order)
function EZ_control_CalculatePositionPercentages (line 1628) | static void EZ_control_CalculatePositionPercentages(ez_control_t *self)
function EZ_control_UpdateAnchorGap (line 1654) | static void EZ_control_UpdateAnchorGap(ez_control_t *self)
function EZ_control_SetAnchor (line 1690) | void EZ_control_SetAnchor(ez_control_t *self, ez_anchor_t anchor_flags)
function EZ_control_SetDrawOrder (line 1700) | void EZ_control_SetDrawOrder(ez_control_t *self, int draw_order, qbool u...
function EZ_control_SetPayload (line 1726) | void EZ_control_SetPayload(ez_control_t *self, void *payload)
function EZ_control_SetSize (line 1734) | void EZ_control_SetSize(ez_control_t *self, int width, int height)
function EZ_control_SetResizeHandleThickness (line 1751) | void EZ_control_SetResizeHandleThickness(ez_control_t *self, int thickness)
function EZ_control_SetMaxSize (line 1759) | void EZ_control_SetMaxSize(ez_control_t *self, int max_width, int max_he...
function EZ_control_SetMinSize (line 1774) | void EZ_control_SetMinSize(ez_control_t *self, int min_width, int min_he...
function EZ_control_SetBackgroundColor (line 1789) | void EZ_control_SetBackgroundColor(ez_control_t *self, byte r, byte g, b...
function EZ_control_SetPosition (line 1800) | void EZ_control_SetPosition(ez_control_t *self, int x, int y)
function EZ_control_SetScrollPosition (line 1813) | void EZ_control_SetScrollPosition(ez_control_t *self, int scroll_x, int ...
function EZ_control_SetScrollChange (line 1839) | void EZ_control_SetScrollChange(ez_control_t *self, int delta_scroll_x, ...
function EZ_control_SetVirtualSize (line 1847) | void EZ_control_SetVirtualSize(ez_control_t *self, int virtual_width, in...
function EZ_control_SetMinVirtualSize (line 1866) | void EZ_control_SetMinVirtualSize(ez_control_t *self, int min_virtual_wi...
function qbool (line 1877) | qbool EZ_control_IsRoot(ez_control_t *self)
function EZ_control_AddChild (line 1885) | void EZ_control_AddChild(ez_control_t *self, ez_control_t *child)
function ez_control_t (line 1903) | ez_control_t *EZ_control_RemoveChild(ez_control_t *self, ez_control_t *c...
function EZ_control_OnAnchorChanged (line 1911) | int EZ_control_OnAnchorChanged(ez_control_t *self, void *ext_event_info)
function EZ_control_OnGotFocus (line 1932) | int EZ_control_OnGotFocus(ez_control_t *self, void *ext_event_info)
function EZ_control_OnLostFocus (line 1947) | int EZ_control_OnLostFocus(ez_control_t *self, void *ext_event_info)
function EZ_control_OnResize (line 1962) | int EZ_control_OnResize(ez_control_t *self, void *ext_event_info)
function EZ_control_OnParentResize (line 2014) | int EZ_control_OnParentResize(ez_control_t *self, void *ext_event_info)
function EZ_control_OnMinVirtualResize (line 2120) | int EZ_control_OnMinVirtualResize(ez_control_t *self, void *ext_event_info)
function EZ_control_SetHiddenByParent (line 2142) | static void EZ_control_SetHiddenByParent(ez_control_t *self, qbool hidden)
function EZ_control_OnVisibilityChanged (line 2161) | int EZ_control_OnVisibilityChanged(ez_control_t *self, void *ext_event_i...
function EZ_control_OnFlagsChanged (line 2173) | int EZ_control_OnFlagsChanged(ez_control_t *self, void *ext_event_info)
function EZ_control_OnResizeHandleThicknessChanged (line 2182) | int EZ_control_OnResizeHandleThicknessChanged(ez_control_t *self, void *...
function EZ_control_OnVirtualResize (line 2191) | int EZ_control_OnVirtualResize(ez_control_t *self, void *ext_event_info)
function EZ_control_OnMove (line 2201) | int EZ_control_OnMove(ez_control_t *self, void *ext_event_info)
function EZ_control_OnScroll (line 2299) | int EZ_control_OnScroll(ez_control_t *self, void *ext_event_info)
function EZ_control_OnParentScroll (line 2325) | int EZ_control_OnParentScroll(ez_control_t *self, void *ext_event_info)
function EZ_control_OnLayoutChildren (line 2334) | int EZ_control_OnLayoutChildren(ez_control_t *self, void *ext_event_info)
function EZ_control_OnEventHandlerChanged (line 2343) | int EZ_control_OnEventHandlerChanged(ez_control_t *self, void *ext_event...
function EZ_control_DrawBackgroundImage (line 2352) | static void EZ_control_DrawBackgroundImage(ez_control_t *self)
function EZ_control_OnDraw (line 2454) | int EZ_control_OnDraw(ez_control_t *self, void *ext_event_info)
function EZ_control_OnKeyDown (line 2487) | int EZ_control_OnKeyDown(ez_control_t *self, int key, int unichar)
function EZ_control_OnKeyUp (line 2499) | int EZ_control_OnKeyUp(ez_control_t *self, int key, int unichar)
function EZ_control_OnKeyEvent (line 2511) | int EZ_control_OnKeyEvent(ez_control_t *self, int key, int unichar, qboo...
type resize_direction_t (line 2536) | typedef enum
function EZ_control_ResizeByDirection (line 2547) | static void EZ_control_ResizeByDirection(ez_control_t *self, mouse_state...
function EZ_control_OnMouseEvent (line 2608) | int EZ_control_OnMouseEvent(ez_control_t *self, mouse_state_t *ms)
function EZ_control_OnMouseClick (line 2783) | int EZ_control_OnMouseClick(ez_control_t *self, mouse_state_t *mouse_state)
function EZ_control_OnMouseEnter (line 2793) | int EZ_control_OnMouseEnter(ez_control_t *self, mouse_state_t *mouse_state)
function EZ_control_OnMouseLeave (line 2804) | int EZ_control_OnMouseLeave(ez_control_t *self, mouse_state_t *mouse_state)
function EZ_control_OnMouseUpOutside (line 2818) | int EZ_control_OnMouseUpOutside(ez_control_t *self, mouse_state_t *ms)
function EZ_control_OnMouseUp (line 2836) | int EZ_control_OnMouseUp(ez_control_t *self, mouse_state_t *mouse_state)
function EZ_control_OnMouseDown (line 2862) | int EZ_control_OnMouseDown(ez_control_t *self, mouse_state_t *ms)
function EZ_control_OnMouseHover (line 2979) | int EZ_control_OnMouseHover(ez_control_t *self, mouse_state_t *mouse_state)
function EZ_control_SetOpacity (line 2994) | void EZ_control_SetOpacity(ez_control_t *self, float opacity)
function EZ_control_OnOpacityChanged (line 3003) | int EZ_control_OnOpacityChanged(ez_control_t *self, void *ext_event_info)
function EZ_control_ResizeVirtualSizeBasedOnChild (line 3027) | static void EZ_control_ResizeVirtualSizeBasedOnChild(ez_control_t *self,...
function EZ_control_OnChildMoved (line 3055) | int EZ_control_OnChildMoved(ez_control_t *self, ez_control_t *child)
function EZ_control_OnChildResize (line 3066) | int EZ_control_OnChildResize(ez_control_t *self, ez_control_t *child)
FILE: src/ez_controls.h
type ez_control_id_t (line 167) | typedef enum ez_control_id_e
type ez_dllist_node_t (line 189) | typedef struct ez_dllist_node_s
type ez_double_linked_list_t (line 196) | typedef struct ez_double_linked_list_s
type ez_tree_t (line 253) | typedef struct ez_tree_s
type ez_control_s (line 312) | struct ez_control_s
type ez_control_s (line 313) | struct ez_control_s
type ez_control_s (line 314) | struct ez_control_s
type ez_control_s (line 315) | struct ez_control_s
type ez_control_s (line 316) | struct ez_control_s
type ez_control_s (line 317) | struct ez_control_s
type ez_control_s (line 317) | struct ez_control_s
type ez_control_s (line 322) | struct ez_control_s
type ez_control_s (line 323) | struct ez_control_s
type ez_control_s (line 324) | struct ez_control_s
type ez_control_s (line 325) | struct ez_control_s
type ez_control_s (line 326) | struct ez_control_s
type ez_control_s (line 327) | struct ez_control_s
type ez_control_s (line 327) | struct ez_control_s
type ez_eventhandlerfunction_t (line 336) | typedef union ez_eventhandlerfunction_u
type ez_eventhandler_t (line 346) | typedef struct ez_eventhandler_s
type ez_control_eventcount_t (line 521) | typedef struct ez_control_eventcount_s
type ez_control_events_t (line 556) | typedef struct ez_control_events_s
type ez_control_eventhandlers_t (line 591) | typedef struct ez_control_eventhandlers_s
type ez_anchor_t (line 626) | typedef enum ez_anchor_e
type ez_control_flags_t (line 638) | typedef enum ez_control_flags_e
type ez_control_iflags_t (line 662) | typedef enum ez_control_iflags_e
type ez_control_t (line 676) | typedef struct ez_control_s
FILE: src/ez_label.c
function ez_label_t (line 41) | ez_label_t *EZ_label_Create(ez_tree_t *tree, ez_control_t *parent,
function EZ_label_Init (line 66) | void EZ_label_Init(ez_label_t *label, ez_tree_t *tree, ez_control_t *par...
function EZ_label_Destroy (line 110) | int EZ_label_Destroy(ez_control_t *self, qbool destroy_children)
function EZ_label_AddOnTextChanged (line 132) | void EZ_label_AddOnTextChanged(ez_label_t *label, ez_eventhandler_fp OnT...
function EZ_label_AddOnTextScaleChanged (line 141) | void EZ_label_AddOnTextScaleChanged(ez_label_t *label, ez_eventhandler_f...
function EZ_label_AddOnTextOnCaretMoved (line 150) | void EZ_label_AddOnTextOnCaretMoved(ez_label_t *label, ez_eventhandler_f...
function EZ_label_CalculateWordwraps (line 159) | static void EZ_label_CalculateWordwraps(ez_label_t *label)
function EZ_label_SetLargeFont (line 243) | void EZ_label_SetLargeFont(ez_label_t *label, qbool large_font)
function EZ_label_SetAutoSize (line 252) | void EZ_label_SetAutoSize(ez_label_t *label, qbool auto_size)
function EZ_label_SetAutoEllipsis (line 261) | void EZ_label_SetAutoEllipsis(ez_label_t *label, qbool auto_ellipsis)
function EZ_label_SetWrapText (line 270) | void EZ_label_SetWrapText(ez_label_t *label, qbool wrap_text)
function EZ_label_SetTextSelectable (line 279) | void EZ_label_SetTextSelectable(ez_label_t *label, qbool selectable)
function EZ_label_SetReadOnly (line 288) | void EZ_label_SetReadOnly(ez_label_t *label, qbool read_only)
function EZ_label_SetTextFlags (line 297) | void EZ_label_SetTextFlags(ez_label_t *label, ez_label_flags_t flags)
function ez_label_flags_t (line 306) | ez_label_flags_t EZ_label_GetTextFlags(ez_label_t *label)
function EZ_label_SetTextScale (line 314) | void EZ_label_SetTextScale(ez_label_t *label, float scale)
function EZ_label_SetTextColor (line 324) | void EZ_label_SetTextColor(ez_label_t *label, byte r, byte g, byte b, by...
function EZ_label_HideCaret (line 332) | void EZ_label_HideCaret(ez_label_t *label)
function EZ_label_DeselectText (line 340) | void EZ_label_DeselectText(ez_label_t *label)
function EZ_label_GetSelectedTextSize (line 350) | int EZ_label_GetSelectedTextSize(ez_label_t *label)
function EZ_label_GetSelectedText (line 363) | void EZ_label_GetSelectedText(ez_label_t *label, char *target, int targe...
function EZ_label_AppendText (line 379) | void EZ_label_AppendText(ez_label_t *label, int position, const char *ap...
function EZ_label_RemoveText (line 409) | void EZ_label_RemoveText(ez_label_t *label, int start_index, int end_index)
function EZ_label_SetText (line 432) | void EZ_label_SetText(ez_label_t *label, const char *text)
function EZ_label_OnTextFlagsChanged (line 450) | int EZ_label_OnTextFlagsChanged(ez_control_t *self, void *ext_event_info)
function EZ_label_OnTextScaleChanged (line 487) | int EZ_label_OnTextScaleChanged(ez_control_t *self, void *ext_event_info)
function EZ_label_OnResize (line 505) | int EZ_label_OnResize(ez_control_t *self, void *ext_event_info)
function EZ_label_OnDraw (line 523) | int EZ_label_OnDraw(ez_control_t *self, void *ext_event_info)
function EZ_label_FindRowColumnByIndex (line 615) | static void EZ_label_FindRowColumnByIndex(ez_label_t *label, int index, ...
function EZ_label_FindIndexByRowColumn (line 648) | static int EZ_label_FindIndexByRowColumn(ez_label_t *label, int row, int...
function EZ_label_FindMouseTextIndex (line 675) | static int EZ_label_FindMouseTextIndex(ez_label_t *label, mouse_state_t ...
function EZ_label_SetCaretPosition (line 700) | void EZ_label_SetCaretPosition(ez_label_t *label, int caret_pos)
function EZ_label_MoveCaretVertically (line 719) | static void EZ_label_MoveCaretVertically(ez_label_t *label, int amount)
function EZ_label_OnCaretMoved (line 737) | int EZ_label_OnCaretMoved(ez_control_t *self, void *ext_event_info)
function EZ_label_OnTextChanged (line 830) | int EZ_label_OnTextChanged(ez_control_t *self, void *ext_event_info)
function EZ_label_PageUpDnKeyDown (line 861) | static void EZ_label_PageUpDnKeyDown(ez_label_t *label, int key)
function EZ_label_GetNextWordBoundary (line 887) | static int EZ_label_GetNextWordBoundary(ez_label_t *label, int cur_pos, ...
function EZ_label_ArrowKeyDown (line 913) | static void EZ_label_ArrowKeyDown(ez_label_t *label, int key)
function EZ_label_EndHomeKeyDown (line 961) | static void EZ_label_EndHomeKeyDown(ez_label_t *label, int key)
function EZ_label_BackspaceDeleteKeyDown (line 1014) | static void EZ_label_BackspaceDeleteKeyDown(ez_label_t *label, int key)
function EZ_label_CtrlComboKeyDown (line 1056) | static void EZ_label_CtrlComboKeyDown(ez_label_t *label, int key)
function EZ_label_InputKeyDown (line 1106) | static void EZ_label_InputKeyDown(ez_label_t *label, int key)
function EZ_label_OnKeyDown (line 1154) | int EZ_label_OnKeyDown(ez_control_t *self, int key, int unichar)
function EZ_label_OnKeyUp (line 1241) | int EZ_label_OnKeyUp(ez_control_t *self, int key, int unichar)
function EZ_label_OnMouseHover (line 1271) | int EZ_label_OnMouseHover(ez_control_t *self, mouse_state_t *ms)
function EZ_label_OnMouseDown (line 1294) | int EZ_label_OnMouseDown(ez_control_t *self, mouse_state_t *ms)
function EZ_label_OnMouseUp (line 1320) | int EZ_label_OnMouseUp(ez_control_t *self, mouse_state_t *ms)
FILE: src/ez_label.h
type ez_label_flags_t (line 31) | typedef enum ez_label_flags_e
type ez_label_iflags_t (line 43) | typedef enum ez_label_iflags_e
type ez_label_eventcount_t (line 54) | typedef struct ez_label_eventcount_s
type ez_label_events_t (line 62) | typedef struct ez_label_events_s
type ez_label_eventhandlers_t (line 70) | typedef struct ez_label_eventhandlers_s
type ez_label_textpos_t (line 78) | typedef struct ez_label_textpos_s
type ez_label_t (line 85) | typedef struct ez_label_s
FILE: src/ez_listview.c
function EZ_listview_Layout (line 36) | static void EZ_listview_Layout(ez_listview_t *self)
function EZ_listview_OnHeaderMouseClick (line 64) | static int EZ_listview_OnHeaderMouseClick(ez_control_t *self, void *payl...
function ez_listview_t (line 84) | ez_listview_t *EZ_listview_Create(ez_tree_t *tree, ez_control_t *parent,
function EZ_listview_Init (line 108) | void EZ_listview_Init(ez_listview_t *listview, ez_tree_t *tree, ez_contr...
function EZ_listview_CleanupRangeItem (line 168) | static void EZ_listview_CleanupRangeItem(void *payload)
function EZ_listview_Destroy (line 180) | int EZ_listview_Destroy(ez_control_t *self, qbool destroy_children)
function EZ_listview_AddItem (line 198) | void EZ_listview_AddItem(ez_listview_t *self, const ez_listview_subitem_...
function EZ_listview_OnItemAdded (line 220) | int EZ_listview_OnItemAdded(ez_control_t *self, void *ext_event_info)
function EZ_listview_SetHeaderText (line 235) | void EZ_listview_SetHeaderText(ez_listview_t *self, int column, const ch...
function EZ_listview_RemoveItemByIndex (line 248) | void EZ_listview_RemoveItemByIndex(ez_listview_t *self, int index)
function EZ_listview_RemoveItemByPayload (line 261) | void EZ_listview_RemoveItemByPayload(ez_listview_t *self, void *payload)
function EZ_listview_RemoveRange (line 274) | void EZ_listview_RemoveRange(ez_listview_t *self, int start, int end)
function EZ_listview_ColumnCompareFunc (line 282) | static int EZ_listview_ColumnCompareFunc(const void *it1, const void *it2)
function EZ_listview_SortByUserFunc (line 305) | void EZ_listview_SortByUserFunc(ez_listview_t *self, PtFuncCompare compa...
function EZ_listview_SortByColumn (line 313) | void EZ_listview_SortByColumn(ez_listview_t *self)
function EZ_listview_SetSortColumn (line 321) | void EZ_listview_SetSortColumn(ez_listview_t *self, int column)
function EZ_listview_SetRowGap (line 348) | void EZ_listview_SetRowGap(ez_listview_t *self, int gap)
function EZ_listview_OnRowGapChanged (line 359) | int EZ_listview_OnRowGapChanged(ez_control_t *self, void *ext_event_info)
function EZ_listview_SetColumnGap (line 373) | void EZ_listview_SetColumnGap(ez_listview_t *self, int gap)
function EZ_listview_OnColumnGapChanged (line 382) | int EZ_listview_OnColumnGapChanged(ez_control_t *self, void *ext_event_i...
function EZ_listview_SetColumnWidth (line 411) | void EZ_listview_SetColumnWidth(ez_listview_t *self, int column, int width)
function EZ_listview_OnColumnWidthChanged (line 426) | int EZ_listview_OnColumnWidthChanged(ez_control_t *self, void *ext_event...
function EZ_listview_SetRowHeight (line 450) | void EZ_listview_SetRowHeight(ez_listview_t *self, int row_height)
function EZ_listview_OnRowHeightChanged (line 460) | int EZ_listview_OnRowHeightChanged(ez_control_t *self, void *ext_event_i...
FILE: src/ez_listview.h
type ez_listview_changeinfo_t (line 36) | typedef struct ez_listview_changeinfo_s
type ez_listview_eventcount_t (line 44) | typedef struct ez_listview_eventcount_s
type ez_listview_events_t (line 53) | typedef struct ez_listview_events_s
type ez_listview_eventhandlers_t (line 62) | typedef struct ez_listview_eventhandlers_s
type ez_listview_t (line 71) | typedef struct ez_listview_s
FILE: src/ez_listviewitem.c
function ez_listviewitem_t (line 34) | ez_listviewitem_t *EZ_listviewitem_Create(ez_tree_t *tree, ez_control_t ...
function EZ_listviewitem_Init (line 58) | void EZ_listviewitem_Init(ez_listviewitem_t *listviewitem, ez_tree_t *tr...
function EZ_listviewitem_Destroy (line 89) | int EZ_listviewitem_Destroy(ez_control_t *self, qbool destroy_children)
function EZ_listviewitem_AddColumn (line 115) | void EZ_listviewitem_AddColumn(ez_listviewitem_t *self, ez_listview_subi...
function EZ_listviewitem_OnColumnAdded (line 142) | int EZ_listviewitem_OnColumnAdded(ez_control_t *self, void *column)
function EZ_listviewitem_LayoutControl (line 156) | void EZ_listviewitem_LayoutControl(ez_listviewitem_t *self)
function ez_label_t (line 182) | ez_label_t *EZ_listviewitem_GetColumn(ez_listviewitem_t *self, int column)
function EZ_listviewitem_SetColumnVisible (line 190) | void EZ_listviewitem_SetColumnVisible(ez_listviewitem_t *self, int colum...
function EZ_listviewitem_OnColumnVisibilityChanged (line 204) | int EZ_listviewitem_OnColumnVisibilityChanged(ez_control_t *self, void *...
function EZ_listviewitem_SetColumnGap (line 213) | void EZ_listviewitem_SetColumnGap(ez_listviewitem_t *self, int gap)
function EZ_listviewitem_OnColumnGapChanged (line 223) | int EZ_listviewitem_OnColumnGapChanged(ez_control_t *self, void *ext_eve...
function EZ_listviewitem_SetColumnWidth (line 235) | void EZ_listviewitem_SetColumnWidth(ez_listviewitem_t *self, int column,...
function EZ_listviewitem_OnColumnWidthChanged (line 248) | int EZ_listviewitem_OnColumnWidthChanged(ez_control_t *self, void *ext_e...
function EZ_listviewitem_OnSubItemChanged (line 263) | int EZ_listviewitem_OnSubItemChanged(ez_control_t *self, void *ext_event...
function EZ_listviewitem_OnLabelTextChanged (line 275) | static int EZ_listviewitem_OnLabelTextChanged(ez_control_t *self, void *...
FILE: src/ez_listviewitem.h
type ez_listview_subitem_t (line 34) | typedef struct ez_listview_subitem_s
type ez_listviewitem_changeinfo_t (line 43) | typedef struct ez_listviewitem_changeinfo_s
type ez_listviewitem_eventcount_t (line 51) | typedef struct ez_listviewitem_eventcount_s
type ez_listviewitem_events_t (line 60) | typedef struct ez_listviewitem_events_s
type ez_listviewitem_eventhandlers_t (line 69) | typedef struct ez_listviewitem_eventhandlers_s
type ez_listviewitem_t (line 78) | typedef struct ez_listviewitem_s
FILE: src/ez_scrollbar.c
function EZ_scrollbar_OnSliderMouseDown (line 41) | int EZ_scrollbar_OnSliderMouseDown(ez_control_t *self, void *payload, mo...
function EZ_scrollbar_OnScrollButtonMouseDown (line 61) | static void EZ_scrollbar_OnScrollButtonMouseDown(ez_scrollbar_t *scrollb...
function EZ_scrollbar_OnBackButtonMouseDown (line 84) | static int EZ_scrollbar_OnBackButtonMouseDown(ez_control_t *self, void *...
function EZ_scrollbar_OnForwardButtonMouseDown (line 102) | static int EZ_scrollbar_OnForwardButtonMouseDown(ez_control_t *self, voi...
function ez_scrollbar_t (line 120) | ez_scrollbar_t *EZ_scrollbar_Create(ez_tree_t *tree, ez_control_t *parent,
function EZ_scrollbar_Init (line 144) | void EZ_scrollbar_Init(ez_scrollbar_t *scrollbar, ez_tree_t *tree, ez_co...
function EZ_scrollbar_Destroy (line 200) | int EZ_scrollbar_Destroy(ez_control_t *self, qbool destroy_children)
function EZ_scrollbar_CalculateParentScrollPosition (line 215) | static void EZ_scrollbar_CalculateParentScrollPosition(ez_scrollbar_t *s...
function EZ_scrollbar_UpdateSliderBasedOnTarget (line 243) | static void EZ_scrollbar_UpdateSliderBasedOnTarget(ez_scrollbar_t *scrol...
function EZ_scrollbar_SetTargetIsParent (line 292) | void EZ_scrollbar_SetTargetIsParent(ez_scrollbar_t *scrollbar, qbool tar...
function EZ_scrollbar_SetSliderMinSize (line 300) | void EZ_scrollbar_SetSliderMinSize(ez_scrollbar_t *scrollbar, int minsize)
function EZ_scrollbar_SetScrollDelta (line 308) | void EZ_scrollbar_SetScrollDelta(ez_scrollbar_t *scrollbar, int scroll_d...
function EZ_scrollbar_SetIsVertical (line 317) | void EZ_scrollbar_SetIsVertical(ez_scrollbar_t *scrollbar, qbool is_vert...
function EZ_scrollbar_CalculateSliderSize (line 325) | static void EZ_scrollbar_CalculateSliderSize(ez_scrollbar_t *scrollbar, ...
function EZ_scrollbar_RepositionScrollButtons (line 352) | static void EZ_scrollbar_RepositionScrollButtons(ez_scrollbar_t *scrollbar)
function EZ_scrollbar_OnTargetScroll (line 399) | static int EZ_scrollbar_OnTargetScroll(ez_control_t *self, void *payload...
function EZ_scrollbar_OnTargetResize (line 421) | static int EZ_scrollbar_OnTargetResize(ez_control_t *self, void *payload...
function EZ_scrollbar_SetTarget (line 443) | void EZ_scrollbar_SetTarget(ez_scrollbar_t *scrollbar, ez_control_t *tar...
function EZ_scrollbar_OnTargetChanged (line 459) | int EZ_scrollbar_OnTargetChanged(ez_control_t *self, void *ext_event_info)
function EZ_scrollbar_OnResize (line 476) | int EZ_scrollbar_OnResize(ez_control_t *self, void *ext_event_info)
function EZ_scrollbar_OnParentResize (line 498) | int EZ_scrollbar_OnParentResize(ez_control_t *self, void *ext_event_info)
function EZ_scrollbar_OnMouseDown (line 517) | int EZ_scrollbar_OnMouseDown(ez_control_t *self, mouse_state_t *ms)
function EZ_scrollbar_OnMouseUpOutside (line 532) | int EZ_scrollbar_OnMouseUpOutside(ez_control_t *self, mouse_state_t *ms)
function EZ_scrollbar_OnMouseEvent (line 549) | int EZ_scrollbar_OnMouseEvent(ez_control_t *self, mouse_state_t *ms)
function EZ_scrollbar_OnParentScroll (line 613) | int EZ_scrollbar_OnParentScroll(ez_control_t *self, void *ext_event_info)
FILE: src/ez_scrollbar.h
type ez_orientation_t (line 32) | typedef enum ez_orientation_s
type ez_scrollbar_flags_t (line 38) | typedef enum ez_scrollbar_flags_e
type ez_scrollbar_iflags_t (line 43) | typedef enum ez_scrollbar_iflags_e
type ez_scrollbar_eventcount_t (line 49) | typedef struct ez_scrollbar_eventcount_s
type ez_scrollbar_events_t (line 54) | typedef struct ez_scrollbar_events_s
type ez_scrollbar_eventhandlers_t (line 59) | typedef struct ez_scrollbar_eventhandlers_s
type ez_scrollbar_t (line 64) | typedef struct ez_scrollbar_s
FILE: src/ez_scrollpane.c
function EZ_scrollpane_AdjustTargetSize (line 41) | static void EZ_scrollpane_AdjustTargetSize(ez_scrollpane_t *scrollpane)
function EZ_scrollpane_ResizeScrollbars (line 64) | static void EZ_scrollpane_ResizeScrollbars(ez_scrollpane_t *scrollpane)
function EZ_scrollpane_DetermineScrollbarVisibility (line 101) | static void EZ_scrollpane_DetermineScrollbarVisibility(ez_scrollpane_t *...
function EZ_scrollpane_OnTargetVirtualResize (line 112) | static int EZ_scrollpane_OnTargetVirtualResize(ez_control_t *self, void ...
function ez_scrollpane_t (line 132) | ez_scrollpane_t *EZ_scrollpane_Create(ez_tree_t *tree, ez_control_t *par...
function EZ_scrollpane_Init (line 156) | void EZ_scrollpane_Init(ez_scrollpane_t *scrollpane, ez_tree_t *tree, ez...
function EZ_scrollpane_Destroy (line 220) | int EZ_scrollpane_Destroy(ez_control_t *self, qbool destroy_children)
function EZ_scrollpane_SetAlwaysShowVerticalScrollbar (line 236) | void EZ_scrollpane_SetAlwaysShowVerticalScrollbar(ez_scrollpane_t *scrol...
function EZ_scrollpane_SetAlwaysShowHorizontalScrollbar (line 244) | void EZ_scrollpane_SetAlwaysShowHorizontalScrollbar(ez_scrollpane_t *scr...
function EZ_scrollpane_SetTarget (line 252) | void EZ_scrollpane_SetTarget(ez_scrollpane_t *scrollpane, ez_control_t *...
function EZ_scrollpane_SetScrollbarThickness (line 262) | void EZ_scrollpane_SetScrollbarThickness(ez_scrollpane_t *scrollpane, in...
function EZ_scrollpane_OnResize (line 271) | int EZ_scrollpane_OnResize(ez_control_t *self, void *ext_event_info)
function EZ_scrollpane_OnTargetChanged (line 292) | int EZ_scrollpane_OnTargetChanged(ez_control_t *self, void *ext_event_info)
function EZ_scrollpane_OnScrollbarThicknessChanged (line 347) | int EZ_scrollpane_OnScrollbarThicknessChanged(ez_control_t *self, void *...
FILE: src/ez_scrollpane.h
type ez_scrollpane_flags_t (line 32) | typedef enum ez_scrollpane_flags_e
type ez_scrollpane_iflags_t (line 38) | typedef enum ez_scrollpane_iflags_e
type ez_scrollpane_eventcount_t (line 45) | typedef struct ez_scrollpane_eventcount_s
type ez_scrollpane_events_t (line 51) | typedef struct ez_scrollpane_events_s
type ez_scrollpane_eventhandlers_t (line 59) | typedef struct ez_scrollpane_eventhandlers_s
type ez_scrollpane_t (line 67) | typedef struct ez_scrollpane_s
FILE: src/ez_slider.c
function ez_slider_t (line 38) | ez_slider_t *EZ_slider_Create(ez_tree_t *tree, ez_control_t *parent,
function EZ_slider_Init (line 62) | void EZ_slider_Init(ez_slider_t *slider, ez_tree_t *tree, ez_control_t *...
function EZ_slider_CalculateRealSliderPos (line 99) | static inline void EZ_slider_CalculateRealSliderPos(ez_slider_t *slider)
function EZ_slider_CalculateGapSize (line 111) | static inline void EZ_slider_CalculateGapSize(ez_slider_t *slider)
function EZ_slider_AddOnSliderPositionChanged (line 123) | void EZ_slider_AddOnSliderPositionChanged(ez_slider_t *slider, ez_eventh...
function EZ_slider_AddOnMaxValueChanged (line 132) | void EZ_slider_AddOnMaxValueChanged(ez_slider_t *slider, ez_eventhandler...
function EZ_slider_AddOnMinValueChanged (line 141) | void EZ_slider_AddOnMinValueChanged(ez_slider_t *slider, ez_eventhandler...
function EZ_slider_AddOnScaleChanged (line 150) | void EZ_slider_AddOnScaleChanged(ez_slider_t *slider, ez_eventhandler_fp...
function EZ_slider_GetPositionFromMouse (line 159) | int EZ_slider_GetPositionFromMouse(ez_slider_t *slider, float mouse_x, f...
function EZ_slider_GetPosition (line 169) | int EZ_slider_GetPosition(ez_slider_t *slider)
function EZ_slider_SetPosition (line 177) | void EZ_slider_SetPosition(ez_slider_t *slider, int slider_pos)
function EZ_slider_SetMax (line 189) | void EZ_slider_SetMax(ez_slider_t *slider, int max_value)
function EZ_slider_SetMin (line 199) | void EZ_slider_SetMin(ez_slider_t *slider, int min_value)
function EZ_slider_SetScale (line 209) | void EZ_slider_SetScale(ez_slider_t *slider, float scale)
function EZ_slider_OnScaleChanged (line 219) | int EZ_slider_OnScaleChanged(ez_control_t *self, void *ext_event_info)
function EZ_slider_OnDraw (line 237) | int EZ_slider_OnDraw(ez_control_t *self, void *ext_event_info)
function EZ_slider_OnMaxValueChanged (line 267) | int EZ_slider_OnMaxValueChanged(ez_control_t *self, void *ext_event_info)
function EZ_slider_OnMinValueChanged (line 285) | int EZ_slider_OnMinValueChanged(ez_control_t *self, void *ext_event_info)
function EZ_slider_OnSliderPositionChanged (line 303) | int EZ_slider_OnSliderPositionChanged(ez_control_t *self, void *ext_even...
function EZ_slider_SetJumpToClick (line 319) | void EZ_slider_SetJumpToClick(ez_slider_t *slider, qbool jump_to_click)
function EZ_slider_OnMouseDown (line 328) | int EZ_slider_OnMouseDown(ez_control_t *self, mouse_state_t *ms)
function EZ_slider_OnMouseUpOutside (line 373) | int EZ_slider_OnMouseUpOutside(ez_control_t *self, mouse_state_t *ms)
function EZ_slider_OnMouseEvent (line 391) | int EZ_slider_OnMouseEvent(ez_control_t *self, mouse_state_t *ms)
function EZ_slider_OnResize (line 421) | int EZ_slider_OnResize(ez_control_t *self, void *ext_event_info)
function EZ_slider_OnKeyDown (line 439) | int EZ_slider_OnKeyDown(ez_control_t *self, int key, int unichar)
FILE: src/ez_slider.h
type ez_slider_iflags_t (line 31) | typedef enum ez_slider_iflags_e
type ez_slider_flags_t (line 36) | typedef enum ez_slider_flags_e
type ez_slider_eventcount_t (line 41) | typedef struct ez_slider_eventcount_s
type ez_slider_events_t (line 49) | typedef struct ez_slider_events_s
type ez_slider_eventhandlers_t (line 57) | typedef struct ez_slider_eventhandlers_s
type ez_slider_t (line 65) | typedef struct ez_slider_s
FILE: src/ez_window.c
function ez_window_t (line 40) | ez_window_t *EZ_window_Create(ez_tree_t *tree, ez_control_t *parent,
function EZ_window_Init (line 64) | void EZ_window_Init(ez_window_t *window, ez_tree_t *tree, ez_control_t *...
function EZ_window_Destroy (line 149) | int EZ_window_Destroy(ez_control_t *self, qbool destroy_children)
function EZ_window_SetWindowAreaMinVirtualSize (line 164) | void EZ_window_SetWindowAreaMinVirtualSize(ez_window_t *window, int min_...
function EZ_window_AddChild (line 175) | void EZ_window_AddChild(ez_window_t *window, ez_control_t *child)
FILE: src/ez_window.h
type ez_window_t (line 34) | typedef struct ez_window_s
FILE: src/fchecks.c
function FChecks_VersionResponse (line 53) | static void FChecks_VersionResponse (void)
function FChecks_FServerResponse (line 71) | static void FChecks_FServerResponse (void)
function FChecks_SkinsResponse (line 81) | static void FChecks_SkinsResponse (float fbskins)
function FChecks_ScriptsResponse (line 91) | static void FChecks_ScriptsResponse (void)
function qbool (line 101) | static qbool FChecks_ScriptsRequest (const char *s)
function FChecks_FakeshaftResponse (line 115) | static void FChecks_FakeshaftResponse (void)
function qbool (line 127) | static qbool FChecks_FakeshaftRequest (const char *s)
function qbool (line 141) | static qbool FChecks_VersionRequest (const char *s)
function qbool (line 155) | static qbool FChecks_SkinRequest (const char *s)
function qbool (line 174) | static qbool FChecks_CheckFModRequest (const char *s)
function qbool (line 188) | static qbool FChecks_CheckFServerRequest (const char *s)
function FChecks_RulesetFeatureAppend (line 204) | void FChecks_RulesetFeatureAppend(qbool on, const char *code, char *feat...
function qbool (line 250) | static qbool FChecks_CheckFRulesetRequest (const char *s)
function FChecks_FRuleset_cmd (line 289) | void FChecks_FRuleset_cmd(void)
function qbool (line 308) | static qbool FChecks_CmdlineRequest (const char *s)
function qbool (line 329) | static qbool FChecks_SystemRequest (const char *s)
function FChecks_CheckRequest (line 352) | void FChecks_CheckRequest (const char *s)
function FChecks_Init (line 370) | void FChecks_Init (void)
FILE: src/fmod.c
type qbool (line 27) | typedef qbool (*pRulesetFilter)(const char* modelName);
type check_models_hashes_entry_t (line 29) | typedef struct check_models_hashes_entry_s {
type check_models_t (line 290) | typedef struct check_models_s {
function qbool (line 304) | static qbool FMod_IsModelModified (const char *name, const int flags, co...
function FMod_AddModel (line 345) | static int FMod_AddModel (const char *name, const qbool flags, const voi...
function FMod_AddModelAlt (line 359) | static void FMod_AddModelAlt (int cm_num, check_models_hashes_entry_t *h...
function FMod_CheckModel (line 369) | void FMod_CheckModel (const char *name, const void *buf, const size_t len)
function FMod_Init (line 398) | void FMod_Init (void)
function FMod_Response (line 656) | void FMod_Response (void)
FILE: src/fonts.c
type glyphinfo_t (line 34) | typedef struct glyphinfo_s {
type gradient_def_t (line 76) | typedef struct gradient_def_s {
function FontSetColor (line 86) | static void FontSetColor(byte* color, byte alpha, gradient_def_t* gradie...
function SimpleOutline (line 111) | static void SimpleOutline(byte* image_buffer, int base_font_width, int b...
function FontLoadBitmap (line 146) | static void FontLoadBitmap(int ch, FT_Face face, int base_font_width, in...
function FontClear (line 180) | static void FontClear(int grouping)
function qbool (line 191) | static qbool FontCreate(int grouping, const char* userpath)
function FontFixedWidth (line 399) | int FontFixedWidth(int max_length, float scale, qbool digits_only, qbool...
function OnChange_font_facepath (line 408) | static void OnChange_font_facepath(cvar_t* cvar, char* newvalue, qbool* ...
function Draw_LoadFont_f (line 419) | void Draw_LoadFont_f(void)
function Draw_ListFonts_f (line 447) | void Draw_ListFonts_f(void)
function FontInitialise (line 495) | void FontInitialise(void)
function qbool (line 518) | qbool FontAlterCharCoordsWide(float* x, float* y, wchar ch, qbool bigcha...
function FontCharacterWidthWide (line 542) | float FontCharacterWidthWide(wchar ch, float scale, qbool proportional)
function FontCharacterWidth (line 560) | float FontCharacterWidth(char ch_, float scale, qbool proportional)
function Draw_InitFont (line 579) | void Draw_InitFont(void)
FILE: src/fragstats.c
type msgtype_t (line 58) | typedef enum msgtype_s {
type wclass_t (line 74) | typedef struct wclass_s {
type fragmsg_t (line 84) | typedef struct fragmsg_s {
type fragdef_t (line 91) | typedef struct fragdef_s {
function Compare_FragMsg (line 117) | int Compare_FragMsg (const void *p1, const void *p2) {
function Build_FragMsg_Indices (line 139) | static void Build_FragMsg_Indices(void) {
function InitFragDefs (line 162) | static void InitFragDefs(qbool restart)
function LoadFragFile (line 221) | static void LoadFragFile(char *filename, qbool quiet)
function Load_FragFile_f (line 485) | void Load_FragFile_f(void) {
type fragstats_t (line 497) | typedef struct fragstats_s {
function Stats_ParsePrintLine (line 521) | static void Stats_ParsePrintLine(const char *s, cfrags_format *cff, int ...
function Stats_ParsePrint (line 751) | void Stats_ParsePrint(char *s, int level, cfrags_format *cff) {
function Stats_Reset (line 782) | void Stats_Reset(void) {
function Stats_NewMap (line 787) | void Stats_NewMap(void) {
function Stats_EnterSlot (line 802) | void Stats_EnterSlot(int num) {
function Stats_GetBasicStats (line 822) | void Stats_GetBasicStats(int num, int *playerstats) {
function Stats_GetFlagStats (line 832) | void Stats_GetFlagStats(int num, int *playerstats) {
function qbool (line 845) | qbool Stats_IsActive(void) {
function qbool (line 849) | qbool Stats_IsFlagsParsed(void) {
function Stats_Init (line 853) | void Stats_Init(void) {
function InitColoredWeapon (line 879) | static void InitColoredWeapon (int num, const byte *color)
function Stats_Shutdown (line 1006) | void Stats_Shutdown(void)
FILE: src/fs.c
function FS_FileLength (line 127) | int FS_FileLength (FILE *f)
function FS_FileOpenRead (line 145) | int FS_FileOpenRead (char *path, FILE **hndl)
function FS_Path_f (line 163) | void FS_Path_f (void)
function FS_FCreateFile (line 189) | int FS_FCreateFile (char *filename, FILE **file, char *path, char *mode)
function qbool (line 215) | static qbool FS_WriteFileRelative(const char *filename, const void *data...
function qbool (line 242) | qbool FS_WriteFile(const char *filename, const void *data, int len)
function qbool (line 249) | qbool FS_WriteFile_2(const char *filename, const void *data, int len)
function FILE (line 256) | FILE *FS_WriteFileOpen (char *filename) //like fopen, but based around q...
function FS_CreatePath (line 281) | void FS_CreatePath(char *path)
function FS_AddUserDirectory (line 559) | void FS_AddUserDirectory(char *dir)
function FS_SetGamedir (line 594) | void FS_SetGamedir(char* dir, qbool force)
function FS_ShutDown (line 668) | void FS_ShutDown( void ) {
function FS_InitFilesystemEx (line 697) | void FS_InitFilesystemEx( qbool guess_cwd ) {
function FS_InitFilesystem (line 821) | void FS_InitFilesystem( void ) {
function VFS_CHECKCALL (line 872) | void VFS_CHECKCALL (struct vfsfile_s *vf, void *fld, char *emsg) {
function VFS_CLOSE (line 877) | void VFS_CLOSE (struct vfsfile_s *vf) {
function VFS_TELL (line 883) | unsigned long VFS_TELL (struct vfsfile_s *vf) {
function VFS_GETLEN (line 889) | unsigned long VFS_GETLEN (struct vfsfile_s *vf) {
function VFS_SEEK (line 904) | int VFS_SEEK (struct vfsfile_s *vf, unsigned long pos, int whence) {
function VFS_READ (line 910) | int VFS_READ (struct vfsfile_s *vf, void *buffer, int bytestoread, vfser...
function VFS_WRITE (line 917) | int VFS_WRITE (struct vfsfile_s *vf, const void *buffer, int bytestowrit...
function VFS_FLUSH (line 923) | void VFS_FLUSH (struct vfsfile_s *vf) {
type vfsfile_s (line 930) | struct vfsfile_s
function qbool (line 965) | qbool VFS_COPYPROTECTED(struct vfsfile_s *vf) {
function vfsfile_t (line 983) | vfsfile_t *FS_OpenVFS(const char *filename, char *mode, relativeto_t rel...
type pak_operation_t (line 1116) | typedef enum { PAKOP_ADD, PAKOP_REM } pak_operation_t;
function qbool (line 1118) | static qbool FS_PakOperation(char* pakfile, pak_operation_t op)
function qbool (line 1128) | static qbool FS_PakOper_NoPath(char* pakfile, pak_operation_t op)
function FS_PakOper_Process (line 1151) | static void FS_PakOper_Process(pak_operation_t op)
function FS_PakAdd_f (line 1175) | void FS_PakAdd_f(void) { FS_PakOper_Process(PAKOP_ADD); }
function FS_PakRem_f (line 1176) | void FS_PakRem_f(void) { FS_PakOper_Process(PAKOP_REM); }
function FS_GZipPack (line 1182) | int FS_GZipPack (char *source_path,
function FS_GZipUnpack (line 1237) | int FS_GZipUnpack (char *source_path, // The path to the compressed sou...
function FS_ZlibInflate (line 1336) | int FS_ZlibInflate(FILE *source, FILE *dest)
function FS_ZlibUnpack (line 1416) | int FS_ZlibUnpack (char *source_path, // The path to the compressed sou...
function FS_ZipBreakupArchivePath (line 1582) | int FS_ZipBreakupArchivePath (char *archive_extension, // The extensio...
function qbool (line 1620) | qbool FS_IsArchive (char *zip_path)
function unzFile (line 1625) | unzFile FS_ZipUnpackOpenFile (const char *zip_path)
function FS_ZipUnpackCloseFile (line 1630) | int FS_ZipUnpackCloseFile (unzFile zip_file)
function FS_ZipMakeDirent (line 1643) | static void FS_ZipMakeDirent (sys_dirent *ent, char *filename_inzip, unz...
function FS_ZipUnpack (line 1666) | int FS_ZipUnpack(
function FS_ZipUnpackOneFile (line 1710) | int FS_ZipUnpackOneFile (unzFile zip_file, // The zip file opened wit...
function FS_ZipUnpackCurrentFile (line 1739) | int FS_ZipUnpackCurrentFile (unzFile zip_file,
function FS_ZipGetDetails (line 1882) | static int FS_ZipGetDetails (unzFile zip_file, sys_dirent *ent)
function FS_ZipGetFirst (line 1904) | int FS_ZipGetFirst (unzFile zip_file, sys_dirent *ent)
function FS_ZipGetNextFile (line 1923) | int FS_ZipGetNextFile (unzFile zip_file, sys_dirent *ent)
function FS_InitModuleFS (line 1948) | void FS_InitModuleFS (void)
function searchpath_t (line 1997) | static searchpath_t *FS_AddPathHandle(char *probablepath, searchpathfunc...
function FS_Dir_List (line 2043) | static int FS_Dir_List(char *name, int size, void *parm)
function FS_Dir_f (line 2068) | void FS_Dir_f(void)
function FS_Locate_f (line 2113) | void FS_Locate_f (void)
function FS_FlushFSHash (line 2154) | void FS_FlushFSHash(void)
function FS_RebuildFSHash (line 2164) | void FS_RebuildFSHash(void)
function FS_FLocateFile (line 2205) | int FS_FLocateFile(const char *filename, FSLF_ReturnType_e returntype, f...
function qbool (line 2326) | qbool Sys_PathProtection(const char *pattern)
type gzheader_t (line 2350) | typedef struct {
function vfsfile_t (line 2370) | vfsfile_t *FS_DecompressGZip(vfsfile_t *infile, gzheader_t *header)
function vfsfile_t (line 2502) | vfsfile_t *VFS_Filter(const char *filename, vfsfile_t *handle)
function FS_Rename2 (line 2528) | int FS_Rename2(char *oldf, char *newf, relativeto_t oldrelativeto, relat...
function FS_Rename (line 2591) | int FS_Rename(char *oldf, char *newf, relativeto_t relativeto)
function FS_Remove (line 2631) | int FS_Remove(char *fname, int relativeto)
function FS_CreatePathRelative (line 2665) | static void FS_CreatePathRelative(const char *pname, int relativeto)
type wildpaks_t (line 2710) | typedef struct {
function FS_AddWildDataFiles (line 2716) | static int FS_AddWildDataFiles (char *descriptor, int size, void *vparam)
function FS_AddDataFiles (line 2751) | static void FS_AddDataFiles(char *pathto, searchpath_t *parent, char *ex...
function FS_RefreshFSCache_f (line 2785) | void FS_RefreshFSCache_f(void)
function FS_FlushFSCache (line 2790) | void FS_FlushFSCache(void)
function FS_AddGameDirectory (line 2805) | void FS_AddGameDirectory (char *dir, FS_Load_File_Types loadstuff)
function FS_AddHomeDirectory (line 2844) | void FS_AddHomeDirectory (char *dir, FS_Load_File_Types loadstuff)
function FS_ForceToPure (line 2871) | void FS_ForceToPure(char *str, const char *crcs, int seed)
function FS_ReloadPackFilesFlags (line 2989) | void FS_ReloadPackFilesFlags(FS_Load_File_Types reloadflags)
function FS_UnloadPackFiles (line 3041) | void FS_UnloadPackFiles(void)
function FS_ReloadPackFiles (line 3046) | void FS_ReloadPackFiles(void)
function FS_ReloadPackFiles_f (line 3051) | void FS_ReloadPackFiles_f(void)
function FS_ListFiles_f (line 3066) | void FS_ListFiles_f(void)
function FS_EnumerateFiles (line 3093) | void FS_EnumerateFiles (char *match, int (*func)(char *, int, void *), v...
function FS_DiffFile_f (line 3110) | static void FS_DiffFile_f(void)
function qbool (line 3210) | qbool FS_UnsafeFilename(const char* fileName)
function FS_Shutdown (line 3220) | void FS_Shutdown(void)
function FS_SaveGameDirectory (line 3235) | void FS_SaveGameDirectory(char* buffer, int buffer_size)
FILE: src/fs.h
type vfserrno_t (line 45) | typedef enum {
type vfsfile_t (line 50) | typedef struct vfsfile_s {
type relativeto_t (line 63) | typedef enum {
type vfsfile_s (line 75) | struct vfsfile_s
type vfsfile_s (line 76) | struct vfsfile_s
type vfsfile_s (line 77) | struct vfsfile_s
type vfsfile_s (line 78) | struct vfsfile_s
type vfsfile_s (line 79) | struct vfsfile_s
type vfsfile_s (line 80) | struct vfsfile_s
type vfsfile_s (line 81) | struct vfsfile_s
type vfsfile_s (line 82) | struct vfsfile_s
type vfsfile_s (line 88) | struct vfsfile_s
type FS_Load_File_Types (line 96) | typedef enum {
FILE: src/g_public.h
type gameImport_t (line 70) | typedef enum
type gameExport_t (line 184) | typedef enum
type fieldtype_t (line 227) | typedef enum
type field_t (line 241) | typedef struct
type field_vm_t (line 248) | typedef struct
type gameData_t (line 255) | typedef struct
type gameData_vm_t (line 265) | typedef struct
type fileHandle_t (line 274) | typedef int fileHandle_t;
type fsMode_t (line 276) | typedef enum {
type fsOrigin_t (line 285) | typedef enum {
FILE: src/gl_aliasmodel_md3.c
function GLM_MakeAlias3DisplayLists (line 33) | void GLM_MakeAlias3DisplayLists(model_t* model)
FILE: src/gl_buffers.c
function qbool (line 56) | static qbool R_Stub_BufferNotValid(r_buffer_id id)
type buffer_data_t (line 61) | typedef struct buffer_data_s {
function GLenum (line 75) | static GLenum GL_BufferTypeToTarget(buffertype_t type)
function GLenum (line 94) | static GLenum GL_BufferUsageToGLUsage(bufferusage_t usage)
function buffer_data_t (line 151) | static buffer_data_t* GL_BufferAllocateSlot(r_buffer_id id, buffertype_t...
function GL_GenFixedBuffer (line 182) | static void GL_GenFixedBuffer(r_buffer_id id, buffertype_t type, const c...
function qbool (line 201) | static qbool GL_CreateFixedBuffer(r_buffer_id id, buffertype_t type, con...
function GL_UpdateBuffer (line 300) | static void GL_UpdateBuffer(r_buffer_id id, int size, void* data)
function GL_BufferSize (line 325) | static size_t GL_BufferSize(r_buffer_id id)
function GL_ResizeBuffer (line 334) | static void GL_ResizeBuffer(r_buffer_id id, int size, void* data)
function GL_UpdateBufferSection (line 375) | static void GL_UpdateBufferSection(r_buffer_id id, ptrdiff_t offset, int...
function GL_BufferShutdown (line 419) | static void GL_BufferShutdown(void)
function GL_BindBufferBase (line 443) | static void GL_BindBufferBase(r_buffer_id id, unsigned int index)
function GL_BindBufferRange (line 451) | static void GL_BindBufferRange(r_buffer_id id, unsigned int index, ptrdi...
function qbool (line 466) | static qbool GL_BindBufferImpl(GLenum target, GLuint buffer)
function GL_BindBuffer (line 497) | static void GL_BindBuffer(r_buffer_id id)
function GL_InitialiseBufferState (line 518) | static void GL_InitialiseBufferState(void)
function GL_UnBindBuffer (line 527) | static void GL_UnBindBuffer(buffertype_t type)
function qbool (line 534) | static qbool GL_BufferValid(r_buffer_id id)
function GL_SetElementArrayBuffer (line 540) | static void GL_SetElementArrayBuffer(r_buffer_id id)
function GL_EnsureBufferSize (line 550) | static void GL_EnsureBufferSize(r_buffer_id id, int size)
function GL_BufferStartFrame (line 560) | static void GL_BufferStartFrame(void)
function GL_BufferEndFrame (line 571) | static void GL_BufferEndFrame(void)
function GL_BufferOffset (line 582) | static uintptr_t GL_BufferOffset(r_buffer_id id)
function qbool (line 587) | static qbool GL_BuffersReady(void)
function GL_PrintBufferState (line 598) | static void GL_PrintBufferState(FILE* debug_frame_out, int debug_frame_d...
function R_Stub_NoOperation (line 613) | void R_Stub_NoOperation(void)
function qbool (line 617) | qbool R_Stub_True(void)
function qbool (line 622) | qbool R_Stub_False(void)
function R_Stub_BufferZero (line 627) | uintptr_t R_Stub_BufferZero(r_buffer_id ref)
function GL_InitialiseBufferHandling (line 632) | void GL_InitialiseBufferHandling(api_buffers_t* api)
FILE: src/gl_debug.c
function MessageCallback (line 58) | void APIENTRY MessageCallback(GLenum source,
function GL_InitialiseDebugging (line 106) | void GL_InitialiseDebugging(void)
function R_TraceEnterRegion (line 133) | void R_TraceEnterRegion(const char* regionName, qbool trace_only)
function R_TraceLeaveRegion (line 150) | void R_TraceLeaveRegion(qbool trace_only)
function qbool (line 165) | qbool R_TraceLoggingEnabled(void)
function R_TraceAPI (line 170) | void R_TraceAPI(const char* format, ...)
function R_TraceLogAPICallDirect (line 188) | void R_TraceLogAPICallDirect(const char* format, ...)
function R_TraceResetRegion (line 203) | void R_TraceResetRegion(qbool start)
function GL_TraceObjectLabelSet (line 257) | void GL_TraceObjectLabelSet(GLenum identifier, GLuint name, int length, ...
function GL_TraceObjectLabelGet (line 264) | void GL_TraceObjectLabelGet(GLenum identifier, GLuint name, int bufSize,...
function GL_TextureLabelSet (line 272) | void GL_TextureLabelSet(texture_ref ref, const char* label)
function GL_TextureLabelGet (line 277) | void GL_TextureLabelGet(texture_ref ref, int bufSize, int* length, char*...
function Dev_VidFrameStart (line 282) | void Dev_VidFrameStart(void)
function Dev_VidFrameTrace (line 288) | void Dev_VidFrameTrace(void)
function R_TraceDebugState (line 293) | void R_TraceDebugState(void)
function Dev_VidTextureDump (line 303) | void Dev_VidTextureDump(void)
FILE: src/gl_drawcall_wrappers.c
function GL_LoadDrawFunctions (line 48) | void GL_LoadDrawFunctions(void)
function GL_MultiDrawArrays (line 128) | void GL_MultiDrawArrays(GLenum mode, GLint* first, GLsizei* count, GLsiz...
function GL_DrawArrays (line 143) | void GL_DrawArrays(GLenum mode, GLint first, GLsizei count)
function GL_DrawElementsBaseVertex (line 160) | void GL_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, ...
function qbool (line 174) | qbool GL_DrawElementsBaseVertexAvailable(void)
function GL_DrawElements (line 179) | void GL_DrawElements(GLenum mode, GLsizei count, GLenum type, const GLvo...
function GL_MultiDrawArraysIndirect (line 186) | void GL_MultiDrawArraysIndirect(GLenum mode, const void* indirect, GLsiz...
function GL_MultiDrawElementsIndirect (line 202) | void GL_MultiDrawElementsIndirect(GLenum mode, GLenum type, const void* ...
function GL_DrawElementsIndirect (line 218) | void GL_DrawElementsIndirect(GLenum mode, GLenum type, GLvoid* indirect)
function GL_DrawElementsInstancedBaseVertexBaseInstance (line 224) | void GL_DrawElementsInstancedBaseVertexBaseInstance(GLenum mode, GLsizei...
function GL_UniformBlockBinding (line 235) | void GL_UniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GL...
function GLuint (line 240) | GLuint GL_GetUniformBlockIndex(GLuint program, const GLchar *uniformBloc...
FILE: src/gl_framebuffer.c
type framebuffer_data_t (line 75) | typedef struct framebuffer_data_s {
type r_depthformat (line 204) | typedef enum { r_depthformat_best, r_depthformat_16bit, r_depthformat_24...
function GL_InitialiseFramebufferHandling (line 216) | void GL_InitialiseFramebufferHandling(void)
function GL_FramebufferSetFiltering (line 291) | void GL_FramebufferSetFiltering(qbool linear)
function qbool (line 303) | static qbool GL_FramebufferCreateRenderingTexture(framebuffer_data_t* fb...
function qbool (line 314) | qbool GL_FramebufferCreate(framebuffer_id id, int width, int height)
function qbool (line 475) | qbool GL_FramebufferStartWorldNormals(framebuffer_id id)
function GL_MultiSamplingResolve (line 524) | static void GL_MultiSamplingResolve(framebuffer_id src, framebuffer_id t...
function qbool (line 563) | qbool GL_FramebufferEndWorldNormals(framebuffer_id id)
function GL_FramebufferDelete (line 588) | void GL_FramebufferDelete(framebuffer_id id)
function GL_FramebufferStartUsing (line 610) | void GL_FramebufferStartUsing(framebuffer_id id)
function GL_FramebufferStartUsingScreen (line 615) | void GL_FramebufferStartUsingScreen(void)
function texture_ref (line 624) | texture_ref GL_FramebufferTextureReference(framebuffer_id id, fbtex_id t...
function GL_RenderBufferStorage (line 631) | static void GL_RenderBufferStorage(GLuint renderBuffer, GLenum internalf...
function GL_RenderBufferStorageMultisample (line 645) | static void GL_RenderBufferStorageMultisample(GLuint renderBuffer, GLsiz...
function GL_FramebufferRenderbuffer (line 659) | static void GL_FramebufferRenderbuffer(GLuint fbref, GLenum attachment, ...
function GL_GenRenderBuffers (line 673) | static void GL_GenRenderBuffers(GLsizei n, GLuint* buffers)
function GLenum (line 685) | static GLenum GL_CheckFramebufferStatus(GLuint fbref)
function GL_FramebufferTexture (line 700) | static void GL_FramebufferTexture(GLuint framebuffer, GLenum attachment,...
function GL_GenFramebuffers (line 714) | static void GL_GenFramebuffers(GLsizei n, GLuint* buffers)
function GL_FrameBufferWidth (line 724) | int GL_FrameBufferWidth(framebuffer_id id)
function GL_FrameBufferHeight (line 729) | int GL_FrameBufferHeight(framebuffer_id id)
function GL_FramebufferBlitSimple (line 734) | static void GL_FramebufferBlitSimple(framebuffer_id source_id, framebuff...
function qbool (line 778) | qbool GL_FramebufferEnabled3D(void)
function qbool (line 785) | qbool GL_FramebufferEnabled2D(void)
function VID_FramebufferFlip (line 792) | static void VID_FramebufferFlip(void)
function GL_FramebufferEnsureCreated (line 823) | static void GL_FramebufferEnsureCreated(framebuffer_id id, int width, in...
function GL_FramebufferEnsureDeleted (line 838) | static void GL_FramebufferEnsureDeleted(framebuffer_id id)
function framebuffer_id (line 847) | static framebuffer_id VID_MultisampledAlternateId(framebuffer_id id)
function qbool (line 855) | static qbool VID_FramebufferInit(framebuffer_id id, int effective_width,...
function GL_FramebufferScreenDrawStart (line 884) | void GL_FramebufferScreenDrawStart(void)
function qbool (line 891) | qbo
Condensed preview — 615 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (9,088K chars).
[
{
"path": ".github/ISSUE_TEMPLATE/bug-report.md",
"chars": 938,
"preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: 'BUG: <description>'\nlabels: ''\nassignees: ''\n\n---"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.md",
"chars": 810,
"preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: 'REQ: <description>'\nlabels: ''\nassignees: ''\n\n"
},
{
"path": ".github/workflows/main.yml",
"chars": 11460,
"preview": "name: main\n\non:\n push:\n # Only build branches on push, tags will be handled by 'release' job.\n branches:\n - "
},
{
"path": ".gitignore",
"chars": 312,
"preview": "ezquake\r\nezquake.exe\r\nezquake-*.exe\r\nezquake-*-*\r\nezQuake.aps\r\n*.vcxproj*.user\r\n*.vcxproj*.cache\r\nSysPrintf.log\r\n.ezquak"
},
{
"path": ".gitmodules",
"chars": 183,
"preview": "[submodule \"src/qwprot\"]\n\tpath = src/qwprot\n\turl = https://github.com/QW-Group/qwprot.git\n\tbranch = master\n[submodule \"v"
},
{
"path": "BUILD.md",
"chars": 9503,
"preview": "# Compiling ezQuake\n\n## Introduction\n\nTo provide a consistent build on Windows, Linux, macOS and BSD across various comp"
},
{
"path": "CMakeLists.txt",
"chars": 34952,
"preview": "cmake_minimum_required(VERSION 3.22)\n\nproject(ezquake C)\n\nif(CMAKE_SYSTEM_NAME STREQUAL \"Darwin\")\n enable_language(OB"
},
{
"path": "CMakePresets.json",
"chars": 17113,
"preview": "{\n \"version\": 3,\n \"cmakeMinimumRequired\": {\n \"major\": 3,\n \"minor\": 22,\n \"patch\": 0\n },\n "
},
{
"path": "LICENSE",
"chars": 14882,
"preview": "GNU GENERAL PUBLIC LICENSE\nVersion 2, June 1991 \n\nCopyright (C) 1989, 1991 Free Software Foundation, Inc. \n59 Temple Pl"
},
{
"path": "README.md",
"chars": 3220,
"preview": "# ezQuake — Modern QuakeWorld Client\nHomepage: [https://ezquake.com][homepage]\n\nCommunity discord: [http://discord.quake"
},
{
"path": "bootstrap.ps1",
"chars": 1194,
"preview": "function Show-MessageBox {\n param ([string]$message)\n Add-Type -AssemblyName PresentationFramework\n [System.Win"
},
{
"path": "bootstrap.sh",
"chars": 1390,
"preview": "#!/bin/sh -e\n\nshow_error() {\n printf \"\\e[31mError\\e[0m: $1\\n\"\n exit 1\n}\n\nrequired_commands=\"cmake ninja git automa"
},
{
"path": "build-linux.sh",
"chars": 5867,
"preview": "#!/bin/sh -e\n# simple build script for linux\n\n# ANSI color codes\nRED='\\e[31m'\nGREEN='\\e[32m'\nYELLOW='\\e[33m'\nNC='\\e[0m'\n"
},
{
"path": "cmake/AddResources.cmake",
"chars": 2291,
"preview": "# Generate C source code that embeds arbitrary files via calling the\n# ResourceCompiler CMake script using CMake itself."
},
{
"path": "cmake/CheckDependency.cmake",
"chars": 1455,
"preview": "# Check if a dependency exists and declare a target named Dep::$name.\n# If USE_SYSTEM_LIBS variable is set, find depende"
},
{
"path": "cmake/FindSpeex.cmake",
"chars": 862,
"preview": "# Can be removed once vcpkg speexdsp package has gained a proper cmake-wrapper.\nset(_VCPKG_ARCH_DIR \"${VCPKG_INSTALLED_D"
},
{
"path": "cmake/FindSpeexDSP.cmake",
"chars": 910,
"preview": "# Can be removed once vcpkg speexdsp package has gained a proper cmake-wrapper.\nset(_VCPKG_ARCH_DIR \"${VCPKG_INSTALLED_D"
},
{
"path": "cmake/GitUtils.cmake",
"chars": 4587,
"preview": "find_package(Git QUIET)\n\nfunction(git_refresh_submodules)\n if (GIT_FOUND AND EXISTS \"${PROJECT_SOURCE_DIR}/.git\")\n "
},
{
"path": "cmake/ResourceCompiler.cmake",
"chars": 686,
"preview": "# Generate C code with some content encoded as an array of unsigned char.\n# See AddResources.cmake for more information."
},
{
"path": "cmake/triplets/arm64-osx.cmake",
"chars": 213,
"preview": "set(VCPKG_TARGET_ARCHITECTURE arm64)\nset(VCPKG_CRT_LINKAGE dynamic)\nset(VCPKG_LIBRARY_LINKAGE static)\n\nset(VCPKG_CMAKE_S"
},
{
"path": "cmake/triplets/x64-mingw-static.cmake",
"chars": 244,
"preview": "set(VCPKG_TARGET_ARCHITECTURE x64)\nset(VCPKG_CRT_LINKAGE dynamic)\nset(VCPKG_LIBRARY_LINKAGE static)\nset(VCPKG_ENV_PASSTH"
},
{
"path": "cmake/triplets/x64-osx.cmake",
"chars": 212,
"preview": "set(VCPKG_TARGET_ARCHITECTURE x64)\nset(VCPKG_CRT_LINKAGE dynamic)\nset(VCPKG_LIBRARY_LINKAGE static)\n\nset(VCPKG_CMAKE_SYS"
},
{
"path": "cmake/triplets/x86-mingw-static.cmake",
"chars": 228,
"preview": "set(VCPKG_TARGET_ARCHITECTURE x86)\nset(VCPKG_CRT_LINKAGE dynamic)\nset(VCPKG_LIBRARY_LINKAGE static)\nset(VCPKG_ENV_PASSTH"
},
{
"path": "dist/gen-release.sh",
"chars": 2097,
"preview": "#!/bin/sh\n\nTOP_DIR=$(git rev-parse --show-toplevel)\n\ncd \"${TOP_DIR}\"\n\ngit submodule update --init --recursive\n\nrm -rf re"
},
{
"path": "dist/linux/io.github.ezQuake.appdata.xml",
"chars": 3668,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- Copyright 2019 Kevin Degeling -->\n\n<component type=\"desktop\">\n <id>io.githu"
},
{
"path": "dist/linux/io.github.ezQuake.desktop",
"chars": 289,
"preview": "[Desktop Entry]\nComment=A modern QuakeWorld client focused on competitive online play\nCategories=Game;Shooter;\nExec=ezqu"
},
{
"path": "dist/macOS/MacOSXBundleInfo.plist.in",
"chars": 888,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "dist/macOS/ezquake.entitlements.plist",
"chars": 546,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "dist/windows/ezQuake.rc.in",
"chars": 586,
"preview": "#include <winres.h>\n\nIDI_ICON1 ICON \"@EZQUAKE_RESOURCE_ICON@\"\n\nVS_VERSION_INFO VERSIONINFO\n FILEVERSION @EZQUAKE_RESOURC"
},
{
"path": "help_cmdline_params.json",
"chars": 5386,
"preview": "{\n \"-allowmultiple\": {\n \"description\": \"On Windows, launch multiple copies of ezQuake rather than re-using the exist"
},
{
"path": "help_commands.json",
"chars": 74595,
"preview": "{\n \"+attack\": {\n \"description\": \"When active the player will fire the weapon he is currently holding.\\nThis is the p"
},
{
"path": "help_macros.json",
"chars": 9429,
"preview": "{\n \"ammo\": {\n \"description\": \"returns amount of ammo held for currently selected weapon\",\n \"teamplay-restricted\":"
},
{
"path": "help_variables.json",
"chars": 694556,
"preview": "{\n \"groups\": [\n {\n \"id\": \"0\",\n \"major-group\": \"Miscellaneous\",\n \"name\": \"(added by system)\"\n },\n "
},
{
"path": "misc/appimage/appimage-manual_creation.sh",
"chars": 3863,
"preview": "#!/bin/bash\n\nset -e\n\nSKIP_DEPS=\"${SKIP_DEPS:-0}\"\n\nARCH=$(uname -m)\nARCHDASH=$(echo \"$ARCH\"|tr '_' '-')\nAPPIMAGETOOL=\"htt"
},
{
"path": "misc/appimage/ezquake.appdata.xml.template",
"chars": 3617,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<component type=\"desktop-application\">\n <id>io.github.ezQuake</id>\n <name>ezQua"
},
{
"path": "misc/cfg/cams.cfg",
"chars": 4765,
"preview": "//\n// Camera positions bookmarks 1.2\n//\n// Use [Ctrl]+[0], [1], ..., [9] to store cam positions\n// Use [0], [1], ..., [9"
},
{
"path": "misc/cfg/cams.tcl",
"chars": 4742,
"preview": "#\n# Camera positions bookmarks 1.1\n#\n# Use [Ctrl]+[0], [1], ..., [9] to store cam positions\n# Use [0], [1], ..., [9] to "
},
{
"path": "misc/cfg/eq260.cfg",
"chars": 35768,
"preview": "\n//---CREDITS-----------------------------------------------------------------------------------------------------------"
},
{
"path": "misc/cfg/ezhud.cfg",
"chars": 11407,
"preview": "//\n// ------------------- ezHUD --------------------\n// Head Up Display configuration script\n// Made by johnnycz 2006\n//"
},
{
"path": "misc/cfg/gfx_gl_eyecandy.cfg",
"chars": 5619,
"preview": "//FPS and EyeCandy Settings\ncl_deadbodyFilter \"1\"\ncl_gibFilter \"1\"\ncl_hidenails "
},
{
"path": "misc/cfg/gfx_gl_faithful.cfg",
"chars": 5603,
"preview": "//FPS and EyeCandy Settings\ncl_deadbodyFilter \"1\"\ncl_gibFilter \"1\"\ncl_hidenails "
},
{
"path": "misc/cfg/gfx_gl_fast.cfg",
"chars": 5585,
"preview": "//FPS and EyeCandy Settings\ncl_deadbodyFilter \"2\"\ncl_gibFilter \"1\"\ncl_hidenails "
},
{
"path": "misc/cfg/gfx_gl_higheyecandy.cfg",
"chars": 5789,
"preview": "//FPS and EyeCandy Settings\r\ncl_deadbodyFilter \"0\"\r\ncl_gibFilter \"0\"\r\ncl_hidenails "
},
{
"path": "misc/cfg/gfx_sw_default.cfg",
"chars": 3352,
"preview": "//FPS and EyeCandy Settings\ncl_deadbodyFilter \"0\"\ncl_gibFilter \"0\"\ncl_maxfps "
},
{
"path": "misc/cfg/gfx_sw_fast.cfg",
"chars": 3190,
"preview": "//FPS and EyeCandy Settings\ncl_deadbodyFilter \"2\"\ncl_gibFilter \"1\"\ncl_maxfps "
},
{
"path": "misc/cfg/how_to_use_these_files.txt",
"chars": 1163,
"preview": "Configuration files (configs) stored in this folder contain variety\nof scripts and settings of features.\n\nYou can execut"
},
{
"path": "misc/cfg/hud_aas.cfg",
"chars": 37095,
"preview": "//\r\n// Head Up Display Configuration Dump\r\n//\r\n\r\nscr_newhud \"1\"\r\nhud_ammo1_align \"right"
},
{
"path": "misc/cfg/hud_berzerk.cfg",
"chars": 20091,
"preview": "echo Berzerk's Head Up Display Configuration\n\nscr_newhud \"1\"\nhud_ammo1_align \"right\"\nhud_am"
},
{
"path": "misc/cfg/hud_corner.cfg",
"chars": 19999,
"preview": "echo ezQuake Cornered Head Up Configuration\necho Use with conwidth 512\n\n//\n// Head Up Display Configuration Dump\n//\n\nscr"
},
{
"path": "misc/cfg/hud_dobbz.cfg",
"chars": 20047,
"preview": "echo Head Up Configuration by Dobbz\necho Use with conwidth 400 and higher\n\n//\n// Head Up Display Configuration Dump\n//\n\n"
},
{
"path": "misc/cfg/hud_empezar.cfg",
"chars": 5279,
"preview": "echo Empezar's Head Up Display \n\nscr_newhud 1\ncvar_reset_re hud_.\nhide gameclock\nhide mp3_title\nshow tracking\nplace trac"
},
{
"path": "misc/cfg/hud_murdoc.cfg",
"chars": 1989,
"preview": "echo Murdoc's Head Up Display Configuration File\necho made for conwidth 512 conheigh 412\n\nscr_newhud 1\ncvar_reset_re hud"
},
{
"path": "misc/cfg/hud_senft.cfg",
"chars": 31112,
"preview": "scr_newhud \"1\"\nhud_ammo1_align \"right\"\nhud_ammo1_align_x \"center\"\nhud_ammo1"
},
{
"path": "misc/cfg/hud_vleesh.cfg",
"chars": 19494,
"preview": "echo Vleesh's Head Up Display Configuration\necho made for all console resolutions\n\nscr_newhud \"1\"\nhud_a"
},
{
"path": "misc/cfg/movement.cfg",
"chars": 3169,
"preview": "//\n// --- basic settings ---\n//\n\nbind ` \"toggleconsole\"\nbind ~ \"toggleconsole\"\nbind TAB "
},
{
"path": "misc/cfg/mvdhud_1on1.cfg",
"chars": 271,
"preview": "// backup keyboard bindings\nset_bind_str mvdhuddel del\n\necho \"press $[Delete$] to remove 1on1 hud\"\n\nbind del \"bind del $"
},
{
"path": "misc/cfg/mvdhud_2on2.cfg",
"chars": 307,
"preview": "exec cfg/mvdhud_base_del.cfg\n\ncl_multiview 4\n\n// Default radar group\nset radar_group\t2\n\nexec cfg/mvdhud_base.cfg\nexec cf"
},
{
"path": "misc/cfg/mvdhud_3on3.cfg",
"chars": 307,
"preview": "exec cfg/mvdhud_base_del.cfg\n\ncl_multiview 3\n\n// Default radar group\nset radar_group\t3\n\nexec cfg/mvdhud_base.cfg\nexec cf"
},
{
"path": "misc/cfg/mvdhud_4on4.cfg",
"chars": 332,
"preview": "exec cfg/mvdhud_base_del.cfg\n\ncl_multiview 4\n\n// Default radar group is #2 (top right corner)\nset radar_group\t2\n\nexec cf"
},
{
"path": "misc/cfg/mvdhud_base.cfg",
"chars": 1284,
"preview": "//\n// ######################################## BASIC ALIASES #########################################\n//\n\nif $cl_multiv"
},
{
"path": "misc/cfg/mvdhud_base_2.cfg",
"chars": 654,
"preview": "//\n// ########################################### VIEW GROUPS ########################################\n//\ncl_multiview 2"
},
{
"path": "misc/cfg/mvdhud_base_3.cfg",
"chars": 895,
"preview": "//\n// ########################################### VIEW GROUPS ########################################\n//\ncl_multiview 3"
},
{
"path": "misc/cfg/mvdhud_base_4.cfg",
"chars": 1093,
"preview": "//\n// ########################################### VIEW GROUPS ########################################\n//\n//cl_multiview"
},
{
"path": "misc/cfg/mvdhud_base_del.cfg",
"chars": 210,
"preview": "// backup keyboard bindings\nset_bind_str mvdhuddel del\n\necho \"press $[Delete$] to remove auto mvdhud\"\n\nbind del \"bind de"
},
{
"path": "misc/cfg/mvdhud_base_other.cfg",
"chars": 1801,
"preview": "//\n// ########################################### OTHER HUD ELEMENTS ########################################\n//\n\n//\n// "
},
{
"path": "misc/cfg/mvdhud_custom.cfg",
"chars": 700,
"preview": "exec cfg/mvdhud_base_del.cfg\nexec cfg/mvdhud_4on4.cfg\n\n//\n// ######################################## ALIASES ##########"
},
{
"path": "misc/cfg/pingdump.cfg",
"chars": 417,
"preview": "echo \"ping dump script by JohnNy_cz\"\r\n\r\nalias f_sbrefreshdone \"log pingdump;sb_pingsdump;log stop;echo ping dumping to $"
},
{
"path": "misc/cfg/teamplay.cfg",
"chars": 36646,
"preview": "// shaman's ezQuake teamplay configuration file\n// e-mail: post at o2 dot pl\n// (C) Hugo Dworak 2000-2004\n\n// LEDs:\n// $"
},
{
"path": "misc/cfg/teamtime.cfg",
"chars": 8446,
"preview": "// ***** BEGIN LICENSE BLOCK ***** \n// Version: MPL 1.1/GPL 2.0/LGPL 2.1 \n// \n// The contents of this file are subject t"
},
{
"path": "misc/pak.lst",
"chars": 66,
"preview": "base.pk3\r\nhelp.pk3\r\nhud.pk3\r\nprogs.pk3\r\nlocs.pk3\r\nlevelshots.pk3\r\n"
},
{
"path": "misc/sb/au-sv.txt",
"chars": 958,
"preview": "159.196.248.221:27600\n103.195.53.179:28501\n103.195.53.179:28502\n103.195.53.179:28503\n103.25.59.27:28000\n103.25.59.27:285"
},
{
"path": "misc/sb/cache/empty",
"chars": 0,
"preview": ""
},
{
"path": "misc/sb/check_sources.sh",
"chars": 105,
"preview": "for source in *.txt; do\n cat $source | grep -v -E -e \"^[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+:[0-9]{5}$\" \ndone\n\n"
},
{
"path": "misc/sb/ctf.txt",
"chars": 139,
"preview": "72.83.103.37:28505\n54.94.165.196:30000\n159.196.248.221:27601\n98.144.80.46:27500\n149.28.240.2:28507\n45.76.23.209:28507\n15"
},
{
"path": "misc/sb/eu-4on4.txt",
"chars": 3764,
"preview": "144.24.188.96:28501\n89.66.241.225:28501\n209.38.242.238:28501\n128.199.52.100:28502\n128.199.52.100:28503\n128.199.52.100:28"
},
{
"path": "misc/sb/eu-sv.txt",
"chars": 5916,
"preview": "144.24.188.96:28501\n89.66.241.225:30000\n89.66.241.225:28501\n185.73.44.100:27500\n193.227.134.114:27500\n193.227.134.114:27"
},
{
"path": "misc/sb/global.txt",
"chars": 13014,
"preview": "177.71.158.196:27500\n177.71.158.196:27502\n144.22.145.206:27504\n144.22.145.206:27506\n144.22.145.206:27502\n144.22.145.206:"
},
{
"path": "misc/sb/na-sv.txt",
"chars": 4446,
"preview": "130.162.236.198:28500\n34.148.103.12:27500\n71.69.230.224:27500\n192.227.172.145:28000\n192.227.172.145:30000\n192.227.172.14"
},
{
"path": "misc/sb/qizmo.txt",
"chars": 41,
"preview": "95.216.202.86:27666\n124.189.251.43:27666\n"
},
{
"path": "misc/sb/sa-sv.txt",
"chars": 1110,
"preview": "177.71.158.196:27500\n177.71.158.196:27502\n144.22.145.206:27504\n144.22.145.206:27506\n144.22.145.206:27502\n144.22.145.206:"
},
{
"path": "misc/sb/sources.txt",
"chars": 508,
"preview": "url \"QuakeServers URL\" http://www.quakeservers.net/lists/servers/global.txt\nmaster \"QuakeServers.net\" master.quakeserver"
},
{
"path": "misc/sb/tf.txt",
"chars": 1234,
"preview": "177.71.158.196:27500\n177.71.158.196:27502\n144.22.145.206:27504\n144.22.145.206:27506\n144.22.145.206:27502\n144.22.145.206:"
},
{
"path": "misc/sb/update_sources.bat",
"chars": 792,
"preview": "wget -m -nd --no-if-modified-since https://www.quakeservers.net/lists/australia/au-sv.txt\nwget -m -nd --no-if-modified-s"
},
{
"path": "src/Ctrl.c",
"chars": 5697,
"preview": "/*\nCopyright (C) 2011 azazello and ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it"
},
{
"path": "src/Ctrl.h",
"chars": 3049,
"preview": "/*\nCopyright (C) 2011 azazello and ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it"
},
{
"path": "src/Ctrl_EditBox.c",
"chars": 2696,
"preview": "/*\nCopyright (C) 2011 azazello\n\nThis program is free software; you can redistribute it and/or\nmodify it under the terms "
},
{
"path": "src/Ctrl_EditBox.h",
"chars": 1194,
"preview": "/*\nCopyright (C) 2011 azazello and ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it"
},
{
"path": "src/Ctrl_PageViewer.c",
"chars": 12135,
"preview": "/*\nCopyright (C) 2011 azazello\n\nThis program is free software; you can redistribute it and/or\nmodify it under the terms "
},
{
"path": "src/Ctrl_PageViewer.h",
"chars": 2109,
"preview": "/*\nCopyright (C) 2011 azazello and ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it"
},
{
"path": "src/Ctrl_ScrollBar.c",
"chars": 4429,
"preview": "/*\nCopyright (C) 2011 johnnycz\n\nThis program is free software; you can redistribute it and/or\nmodify it under the terms "
},
{
"path": "src/Ctrl_Tab.c",
"chars": 7692,
"preview": "/*\nCopyright (C) 2011 azazello and ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it"
},
{
"path": "src/Ctrl_Tab.h",
"chars": 2613,
"preview": "/*\nCopyright (C) 2011 azazello and ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it"
},
{
"path": "src/EX_FileList.c",
"chars": 41195,
"preview": "/*\nCopyright (C) 2011 azazello and ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it"
},
{
"path": "src/EX_FileList.h",
"chars": 4539,
"preview": "/*\nCopyright (C) 2011 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the te"
},
{
"path": "src/EX_browser.c",
"chars": 81528,
"preview": "/*\nCopyright (C) 2011-2015 azazello and ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodi"
},
{
"path": "src/EX_browser.h",
"chars": 8934,
"preview": "/*\nCopyright (C) 2011 azazello and ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it"
},
{
"path": "src/EX_browser_net.c",
"chars": 18714,
"preview": "/*\nCopyright (C) 2011 azazello and ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it"
},
{
"path": "src/EX_browser_pathfind.c",
"chars": 22888,
"preview": "/*\nCopyright (C) 2011 johnnycz\n\nThis program is free software; you can redistribute it and/or\nmodify it under the terms "
},
{
"path": "src/EX_browser_ping.c",
"chars": 27907,
"preview": "/*\nCopyright (C) 2007 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the te"
},
{
"path": "src/EX_browser_qtvlist.c",
"chars": 14250,
"preview": "/*\nCopyright (C) 2010 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under "
},
{
"path": "src/EX_browser_sources.c",
"chars": 27343,
"preview": "/*\nCopyright (C) 2011 azazello and ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it"
},
{
"path": "src/EX_qtvlist.c",
"chars": 16704,
"preview": "/*\nCopyright (C) 2015 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the te"
},
{
"path": "src/EX_qtvlist.h",
"chars": 986,
"preview": "/*\nCopyright (C) 2015 dimman\n\nThis program is free software; you can redistribute it and/or\nmodify it under the terms of"
},
{
"path": "src/anorm_dots.h",
"chars": 37857,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/anorms.h",
"chars": 6295,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/bspfile.h",
"chars": 7275,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/cd_linux.c",
"chars": 10542,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/cd_null.c",
"chars": 937,
"preview": "/*\nCopyright (C) 2011 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the te"
},
{
"path": "src/cd_win.c",
"chars": 9999,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/cdaudio.h",
"chars": 935,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/central.c",
"chars": 22709,
"preview": "\n// central.c - communication with central server\n\n#include \"qwsvdef.h\"\n#include <curl/curl.h>\n#ifndef SERVER_ONLY\n#incl"
},
{
"path": "src/central.h",
"chars": 687,
"preview": "\n#ifndef CENTRAL_H\n#define CENTRAL_H\n\n#include \"server.h\"\n\nvoid Central_Init(void);\nvoid Central_Shutdown(void);\nvoid Ce"
},
{
"path": "src/cl_cam.c",
"chars": 26225,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/cl_cmd.c",
"chars": 29509,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/cl_demo.c",
"chars": 139465,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\nCopyright (C) 2007-2015 ezQuake team\n\nThis program is free software; you ca"
},
{
"path": "src/cl_ents.c",
"chars": 69380,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/cl_input.c",
"chars": 36799,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\nThis program is free software; you can redistribute it and/or\nmodify it und"
},
{
"path": "src/cl_main.c",
"chars": 79174,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/cl_multiview.c",
"chars": 46739,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/cl_nqdemo.c",
"chars": 32322,
"preview": "/*\nCopyright (C) 2011 tonik\n\nThis program is free software; you can redistribute it and/or\nmodify it under the terms of "
},
{
"path": "src/cl_parse.c",
"chars": 116367,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/cl_pred.c",
"chars": 11329,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/cl_screen.c",
"chars": 33957,
"preview": "/*\nCopyright (C) 1996-2003 Id Software, Inc., A Nourai\n\nThis program is free software; you can redistribute it and/or\nmo"
},
{
"path": "src/cl_screenshot.c",
"chars": 12437,
"preview": "/*\nCopyright (C) 1996-2003 Id Software, Inc., A Nourai\n\nThis program is free software; you can redistribute it and/or\nmo"
},
{
"path": "src/cl_skygroups.c",
"chars": 6522,
"preview": "/*\n\nCopyright (C) 2002-2003 A Nourai\n\nThis program is free software; you can redistribute it and/or\nmodify it unde"
},
{
"path": "src/cl_slist.c",
"chars": 3733,
"preview": "/*\nCopyright (C) 1999,2000 contributors of the QuakeForge project\n\nThis program is free software; you can redistribute "
},
{
"path": "src/cl_slist.h",
"chars": 1157,
"preview": "/*\nCopyright (C) 1999,2000 contributors of the QuakeForge project\n\nThis program is free software; you can redistribute "
},
{
"path": "src/cl_tent.c",
"chars": 21833,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/cl_view.c",
"chars": 35166,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/cl_view.h",
"chars": 1197,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/client.h",
"chars": 36597,
"preview": "/**\n\t\\file\n\n\t\\brief\n\tMain client structures\n**/\n\n/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free soft"
},
{
"path": "src/cmd.c",
"chars": 61131,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/cmd.h",
"chars": 7780,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/cmdline_params.h",
"chars": 261,
"preview": "\n#ifndef EZQUAKE_CMDLINE_PARAMS_H\n#define EZQUAKE_CMDLINE_PARAMS_H\n\n#define CMDLINE_DEF(x, str) cmdline_param_ ## x\n\ntyp"
},
{
"path": "src/cmdline_params_ids.h",
"chars": 3287,
"preview": "\nCMDLINE_DEF(client_nosound, \"-nosound\"),\nCMDLINE_DEF(client_democache, \"-democache\"),\nCMDLINE_DEF(client_norjscripts, \""
},
{
"path": "src/cmodel.c",
"chars": 39871,
"preview": "/*\nThis program is free software; you can redistribute it and/or\nmodify it under the terms of the GNU General Public Lic"
},
{
"path": "src/cmodel.h",
"chars": 3776,
"preview": "/*\nThis program is free software; you can redistribute it and/or\nmodify it under the terms of the GNU General Public Lic"
},
{
"path": "src/collision.c",
"chars": 967,
"preview": "/*\nCopyright (C) 2011 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the te"
},
{
"path": "src/com_msg.c",
"chars": 16382,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/common.c",
"chars": 40510,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/common.h",
"chars": 16949,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/common_draw.c",
"chars": 21940,
"preview": "/*\nModule for common graphics (soft and GL)\n\nCopyright (C) 2011 ezQuake team and kazik\n\nThis program is free software; y"
},
{
"path": "src/common_draw.h",
"chars": 2454,
"preview": "/*\nCopyright (C) 2011 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the te"
},
{
"path": "src/config_manager.c",
"chars": 33940,
"preview": "/*\nCopyright (C) 2001-2002 A Nourai\n\nThis program is free software; you can redistribute it and/or\nmodify it under the t"
},
{
"path": "src/config_manager.h",
"chars": 1099,
"preview": "/*\n\nCopyright (C) 2001-2002 A Nourai\n\nThis program is free software; you can redistribute it and/or\nmodify it unde"
},
{
"path": "src/console.c",
"chars": 26173,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/console.h",
"chars": 2563,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/crc.c",
"chars": 3809,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/crc.h",
"chars": 1084,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/cvar.c",
"chars": 36991,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/cvar.h",
"chars": 7647,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/cvar_groups.h",
"chars": 4590,
"preview": "/*\n\nCopyright (C) 2001-2002 A Nourai\n\nThis program is free software; you can redistribute it and/or\nmodify it unde"
},
{
"path": "src/demo_controls.c",
"chars": 14757,
"preview": "\n/*\nCopyright (C) 2007 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the t"
},
{
"path": "src/demo_controls.h",
"chars": 958,
"preview": "\n/*\nCopyright (C) 2007 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the t"
},
{
"path": "src/demo_spawnwarn.c",
"chars": 10418,
"preview": "/*\n * Copyright (C) 2026 Oscar Linderholm <osm@recv.se>\n *\n * This program is free software; you can redistribute it and"
},
{
"path": "src/demo_spawnwarn.h",
"chars": 1146,
"preview": "/*\n * Copyright (C) 2026 Oscar Linderholm <osm@recv.se>\n *\n * This program is free software; you can redistribute it and"
},
{
"path": "src/document_rendering.c",
"chars": 26190,
"preview": "/*\nCopyright (C) 2011 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the te"
},
{
"path": "src/document_rendering.h",
"chars": 1613,
"preview": "/*\nCopyright (C) 2011 azazello and ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it"
},
{
"path": "src/draw.h",
"chars": 11175,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/ez_button.c",
"chars": 17000,
"preview": "\n/*\nCopyright (C) 2007 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the t"
},
{
"path": "src/ez_button.h",
"chars": 8659,
"preview": "\n#ifndef __EZ_BUTTON_H__\n#define __EZ_BUTTON_H__\n/*\nCopyright (C) 2007 ezQuake team\n\nThis program is free software; you "
},
{
"path": "src/ez_controls.c",
"chars": 93130,
"preview": "\n/*\nCopyright (C) 2007 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the t"
},
{
"path": "src/ez_controls.h",
"chars": 49507,
"preview": "#ifndef __EZ_CONTROLS_H__\n#define __EZ_CONTROLS_H__\n/*\nCopyright (C) 2007 ezQuake team\n\nThis program is free software; y"
},
{
"path": "src/ez_label.c",
"chars": 35994,
"preview": "\n/*\nCopyright (C) 2007 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the t"
},
{
"path": "src/ez_label.h",
"chars": 9040,
"preview": "\n#ifndef __EZ_LABEL_H__\n#define __EZ_LABEL_H__\n/*\nCopyright (C) 2007 ezQuake team\n\nThis program is free software; you ca"
},
{
"path": "src/ez_listview.c",
"chars": 13880,
"preview": "\r\n/*\r\nCopyright (C) 2007 ezQuake team\r\n\r\nThis program is free software; you can redistribute it and/or\r\nmodify it under "
},
{
"path": "src/ez_listview.h",
"chars": 7238,
"preview": "\r\n#ifndef __EZ_LISTVIEW_H__\r\n#define __EZ_LISTVIEW_H__\r\n/*\r\nCopyright (C) 2007 ezQuake team\r\n\r\nThis program is free soft"
},
{
"path": "src/ez_listviewitem.c",
"chars": 9245,
"preview": "\r\n/*\r\nCopyright (C) 2008 ezQuake team\r\n\r\nThis program is free software; you can redistribute it and/or\r\nmodify it under "
},
{
"path": "src/ez_listviewitem.h",
"chars": 6041,
"preview": "\r\n#ifndef __EZ_LISTVIEWITEM_H__\r\n#define __EZ_LISTVIEWITEM_H__\r\n/*\r\nCopyright (C) 2008 ezQuake team\r\n\r\nThis program is f"
},
{
"path": "src/ez_scrollbar.c",
"chars": 19789,
"preview": "\n/*\nCopyright (C) 2007 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the t"
},
{
"path": "src/ez_scrollbar.h",
"chars": 4972,
"preview": "\n#ifndef __EZ_SCROLLBAR_H__\n#define __EZ_SCROLLBAR_H__\n/*\nCopyright (C) 2007 ezQuake team\n\nThis program is free software"
},
{
"path": "src/ez_scrollpane.c",
"chars": 13687,
"preview": "\n/*\nCopyright (C) 2007 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the t"
},
{
"path": "src/ez_scrollpane.h",
"chars": 4389,
"preview": "\n#ifndef __EZ_SCROLLPANE_H__\n#define __EZ_SCROLLPANE_H__\n/*\nCopyright (C) 2007 ezQuake team\n\nThis program is free softwa"
},
{
"path": "src/ez_slider.c",
"chars": 13664,
"preview": "\n/*\nCopyright (C) 2007 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the t"
},
{
"path": "src/ez_slider.h",
"chars": 6274,
"preview": "\n#ifndef __EZ_SLIDER_H__\n#define __EZ_SLIDER_H__\n/*\nCopyright (C) 2007 ezQuake team\n\nThis program is free software; you "
},
{
"path": "src/ez_window.c",
"chars": 6347,
"preview": "\n/*\nCopyright (C) 2007 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the t"
},
{
"path": "src/ez_window.h",
"chars": 2542,
"preview": "\n#ifndef __EZ_WINDOW_H__\n#define __EZ_WINDOW_H__\n/*\nCopyright (C) 2007 ezQuake team\n\nThis program is free software; you "
},
{
"path": "src/ezquake-icon.c",
"chars": 22084,
"preview": "/* GIMP RGBA C-Source image dump (ezquake-icon.c) */\n\nstatic const struct {\n unsigned int \t width;\n unsigned int \t hei"
},
{
"path": "src/fchecks.c",
"chars": 10014,
"preview": "/*\nCopyright (C) 2001-2002 A Nourai\n\nThis program is free software; you can redistribute it and/or\nmodify it under"
},
{
"path": "src/fchecks.h",
"chars": 948,
"preview": "/*\nCopyright (C) 2001-2002 A Nourai\n\nThis program is free software; you can redistribute it and/or\nmodify it under"
},
{
"path": "src/fmod.c",
"chars": 46640,
"preview": "/*\nCopyright (C) 2001-2002 A Nourai\n\nThis program is free software; you can redistribute it and/or\nmodify it under the t"
},
{
"path": "src/fmod.h",
"chars": 1026,
"preview": "/*\nCopyright (C) 2001-2002 A Nourai\n\nThis program is free software; you can redistribute it and/or\nmodify it under"
},
{
"path": "src/fonts.c",
"chars": 19060,
"preview": "/*\nCopyright (C) 2018 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the te"
},
{
"path": "src/fonts.h",
"chars": 571,
"preview": "\n#ifndef EZQUAKE_FONTS_HEADER\n#define EZQUAKE_FONTS_HEADER\n\n#ifdef EZ_FREETYPE_SUPPORT\nvoid FontInitialise(void);\nint Fo"
},
{
"path": "src/fragstats.c",
"chars": 28706,
"preview": "/*\nCopyright (C) 2003 A Nourai\n\nThis program is free software; you can redistribute it and/or\nmodify it under the "
},
{
"path": "src/fs.c",
"chars": 75662,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/fs.h",
"chars": 7393,
"preview": "/*\nCopyright (C) 2011 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the te"
},
{
"path": "src/g_public.h",
"chars": 6779,
"preview": "/*\n * QW262\n * Copyright (C) 2004 [sd] angel\n *\n * This code is based on Q3 VM code by Id Software, Inc.\n *\n *\n * T"
},
{
"path": "src/gl_aliasmodel.c",
"chars": 865,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/gl_aliasmodel_md3.c",
"chars": 3211,
"preview": "/*\nCopyright (C) 2011 fuh and ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it unde"
},
{
"path": "src/gl_buffers.c",
"chars": 25640,
"preview": "/*\nCopyright (C) 2018 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the te"
},
{
"path": "src/gl_debug.c",
"chars": 12638,
"preview": "/*\nCopyright (C) 2002-2003 A Nourai\n\nThis program is free software; you can redistribute it and/or\nmodify it under the t"
},
{
"path": "src/gl_drawcall_wrappers.c",
"chars": 10340,
"preview": "/*\nCopyright (C) 2018 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the te"
},
{
"path": "src/gl_framebuffer.c",
"chars": 37858,
"preview": "/*\nCopyright (C) 2011 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the te"
},
{
"path": "src/gl_framebuffer.h",
"chars": 2163,
"preview": "/*\nCopyright (C) 2011 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the te"
},
{
"path": "src/gl_local.h",
"chars": 17900,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/gl_misc.c",
"chars": 11777,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/gl_model.h",
"chars": 16710,
"preview": "/*\nCopyright (C) 1996-1997 Id Software, Inc.\n\nThis program is free software; you can redistribute it and/or\nmodify it un"
},
{
"path": "src/gl_program.c",
"chars": 68194,
"preview": "/*\nCopyright (C) 2018 ezQuake team\n\nThis program is free software; you can redistribute it and/or\nmodify it under the te"
},
{
"path": "src/gl_sdl.c",
"chars": 4011,
"preview": "/*\n===========================================================================\nCopyright (C) 1999-2005 Id Software, Inc."
}
]
// ... and 415 more files (download for full content)
About this extraction
This page contains the full source code of the ezQuake/ezquake-source GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 615 files (7.9 MB), approximately 2.1M tokens, and a symbol index with 7032 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.