From c72641f5e795ed0e0d58a38d79860cc92597e4da Mon Sep 17 00:00:00 2001 From: divverent Date: Wed, 8 Jul 2009 15:32:32 +0000 Subject: [PATCH] doxygen comments and config file git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@9052 d7cf8633-e32d-0410-b094-e92efae38249 --- Doxyfile | 1503 ++++++++++++++++++++++++++++++++++++++++++++++++++++ client.h | 66 +-- cmd.h | 67 +-- common.h | 68 ++- console.c | 21 +- console.h | 49 +- cvar.h | 20 +- fs.c | 145 ++--- fs.h | 2 +- gl_draw.c | 2 +- gl_rmain.c | 84 +-- input.h | 6 +- jpeg.h | 5 +- mathlib.h | 64 ++- menu.c | 4 +- menu.h | 2 +- netconn.c | 24 +- netconn.h | 221 ++++---- quakedef.h | 92 ++-- sbar.h | 4 +- server.h | 140 ++--- sys.h | 34 +- world.c | 2 +- world.h | 12 +- 24 files changed, 2098 insertions(+), 539 deletions(-) create mode 100644 Doxyfile diff --git a/Doxyfile b/Doxyfile new file mode 100644 index 00000000..322052e0 --- /dev/null +++ b/Doxyfile @@ -0,0 +1,1503 @@ +# Doxyfile 1.5.9 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = darkplaces + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = docs + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English +# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, +# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, +# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = YES + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it parses. +# With this tag you can assign which parser to use for a given extension. +# Doxygen has a built-in mapping, but you can override or extend it using this tag. +# The format is ext=language, where ext is a file extension, and language is one of +# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, +# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat +# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C. Note that for custom extensions you also need to set +# FILE_PATTERNS otherwise the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate getter +# and setter methods for a property. Setting this option to YES (the default) +# will make doxygen to replace the get and set methods by a property in the +# documentation. This will only work if the methods are indeed getting or +# setting a simple type. If this is not the case, or you want to show the +# methods anyway, you should set this option to NO. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = NO + +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to +# determine which symbols to keep in memory and which to flush to disk. +# When the cache is full, less often used symbols will be written to disk. +# For small to medium size projects (<1000 input files) the default value is +# probably good enough. For larger projects a too small cache size can cause +# doxygen to be busy swapping symbols to and from disk most of the time +# causing a significant performance penality. +# If the system has enough physical memory increasing the cache will improve the +# performance by keeping more symbols in memory. Note that the value works on +# a logarithmic scale so increasing the size by one will rougly double the +# memory usage. The cache size is given by this formula: +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols + +SYMBOL_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespace are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = YES + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. +# This will remove the Files entry from the Quick Index and from the +# Folder Tree View (if specified). The default is YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the +# Namespaces page. This will remove the Namespaces entry from the Quick Index +# and from the Folder Tree View (if specified). The default is YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by +# doxygen. The layout file controls the global structure of the generated output files +# in an output format independent way. The create the layout file that represents +# doxygen's defaults, run doxygen with the -l option. You can optionally specify a +# file name after the option, if omitted DoxygenLayout.xml will be used as the name +# of the layout file. + +LAYOUT_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = . + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 + +FILE_PATTERNS = + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. Otherwise they will link to the documentation. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OSX 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# it at startup. +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. + +GENERATE_DOCSET = NO + +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# feed. A documentation feed provides an umbrella under which multiple +# documentation sets from a single provider (such as a company or product suite) +# can be grouped. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that +# should uniquely identify the documentation set bundle. This should be a +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen +# will append .docset to the name. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING +# is used to encode HtmlHelp index (hhk), content (hhc) and project file +# content. + +CHM_INDEX_ENCODING = + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER +# are set, an additional index file will be generated that can be used as input for +# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated +# HTML documentation. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can +# be used to specify the file name of the resulting .qch file. +# The path specified is relative to the HTML output folder. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#namespace + +QHP_NAMESPACE = + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#virtual-folders + +QHP_VIRTUAL_FOLDER = doc + +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. +# For more information please see +# http://doc.trolltech.com/qthelpproject.html#custom-filters + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see +# Qt Help Project / Custom Filters. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's +# filter section matches. +# Qt Help Project / Filter Attributes. + +QHP_SECT_FILTER_ATTRS = + +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can +# be used to specify the location of Qt's qhelpgenerator. +# If non-empty doxygen will try to run qhelpgenerator on the generated +# .qhp file. + +QHG_LOCATION = + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. +# If the tag value is set to FRAME, a side panel will be generated +# containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. Other possible values +# for this tag are: HIERARCHIES, which will generate the Groups, Directories, +# and Class Hierarchy pages using a tree view instead of an ordered list; +# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which +# disables this behavior completely. For backwards compatibility with previous +# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE +# respectively. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +# Use this tag to change the font size of Latex formulas included +# as images in the HTML documentation. The default is 10. Note that +# when you change the font size after a successful doxygen run you need +# to manually remove any form_*.png images from the HTML output directory +# to force them to be regenerated. + +FORMULA_FONTSIZE = 10 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +# If LATEX_SOURCE_CODE is set to YES then doxygen will include +# source code with syntax highlighting in the LaTeX output. +# Note that which sources are shown also depends on other settings +# such as SOURCE_BROWSER. + +LATEX_SOURCE_CODE = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# By default doxygen will write a font called FreeSans.ttf to the output +# directory and reference it in all dot files that doxygen generates. This +# font does not include all possible unicode characters however, so when you need +# these (or just want a differently looking font) you can specify the font name +# using DOT_FONTNAME. You need need to make sure dot is able to find the font, +# which can be done by putting it in a standard location or by setting the +# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory +# containing the font. + +DOT_FONTNAME = FreeSans + +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. +# The default size is 10pt. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the output directory to look for the +# FreeSans.ttf font (which doxygen will put there itself). If you specify a +# different font using DOT_FONTNAME you can set the path where dot +# can find it using this tag. + +DOT_FONTPATH = + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT options are set to YES then +# doxygen will generate a call dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable call graphs +# for selected functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then +# doxygen will generate a caller dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable caller +# graphs for selected functions only using the \callergraph command. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the +# number of direct children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not +# seem to support this out of the box. Warning: Depending on the platform used, +# enabling this option may lead to badly anti-aliased labels on the edges of +# a graph (i.e. they become hard to read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Options related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO diff --git a/client.h b/client.h index af05f85c..1fcaa400 100644 --- a/client.h +++ b/client.h @@ -28,7 +28,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // LordHavoc: 256 dynamic lights #define MAX_DLIGHTS 256 -// this is the maximum number of input packets that can be predicted +/// this is the maximum number of input packets that can be predicted #define CL_MAX_USERCMDS 256 // flags for rtlight rendering @@ -69,37 +69,37 @@ typedef struct rtlight_s // note that the world to light matrices are inversely scaled (divided) by lightradius // core properties - // matrix for transforming light filter coordinates to world coordinates + /// matrix for transforming light filter coordinates to world coordinates matrix4x4_t matrix_lighttoworld; - // matrix for transforming world coordinates to light filter coordinates + /// matrix for transforming world coordinates to light filter coordinates matrix4x4_t matrix_worldtolight; - // typically 1 1 1, can be lower (dim) or higher (overbright) + /// typically 1 1 1, can be lower (dim) or higher (overbright) vec3_t color; - // size of the light (remove?) + /// size of the light (remove?) vec_t radius; - // light filter + /// light filter char cubemapname[64]; - // light style to monitor for brightness + /// light style to monitor for brightness int style; - // whether light should render shadows + /// whether light should render shadows int shadow; - // intensity of corona to render + /// intensity of corona to render vec_t corona; - // radius scale of corona to render (1.0 means same as light radius) + /// radius scale of corona to render (1.0 means same as light radius) vec_t coronasizescale; - // ambient intensity to render + /// ambient intensity to render vec_t ambientscale; - // diffuse intensity to render + /// diffuse intensity to render vec_t diffusescale; - // specular intensity to render + /// specular intensity to render vec_t specularscale; - // LIGHTFLAG_* flags + /// LIGHTFLAG_* flags int flags; // generated properties - // used only for shadow volumes + /// used only for shadow volumes vec3_t shadoworigin; - // culling + /// culling vec3_t cullmins; vec3_t cullmaxs; // culling @@ -110,40 +110,40 @@ typedef struct rtlight_s // rendering properties, updated each time a light is rendered // this is rtlight->color * d_lightstylevalue vec3_t currentcolor; - // used by corona updates, due to occlusion query + /// used by corona updates, due to occlusion query float corona_visibility; unsigned int corona_queryindex_visiblepixels; unsigned int corona_queryindex_allpixels; - // this is R_Shadow_Cubemap(rtlight->cubemapname) + /// this is R_Shadow_Cubemap(rtlight->cubemapname) rtexture_t *currentcubemap; - // static light info - // true if this light should be compiled as a static light + /// static light info + /// true if this light should be compiled as a static light int isstatic; - // true if this is a compiled world light, cleared if the light changes + /// true if this is a compiled world light, cleared if the light changes int compiled; - // premade shadow volumes to render for world entity + /// premade shadow volumes to render for world entity shadowmesh_t *static_meshchain_shadow_zpass; shadowmesh_t *static_meshchain_shadow_zfail; - // used for visibility testing (more exact than bbox) + /// used for visibility testing (more exact than bbox) int static_numleafs; int static_numleafpvsbytes; int *static_leaflist; unsigned char *static_leafpvs; - // surfaces seen by light + /// surfaces seen by light int static_numsurfaces; int *static_surfacelist; - // flag bits indicating which triangles of the world model should cast - // shadows, and which ones should be lit - // - // this avoids redundantly scanning the triangles in each surface twice - // for whether they should cast shadows, once in culling and once in the - // actual shadowmarklist production. + /// flag bits indicating which triangles of the world model should cast + /// shadows, and which ones should be lit + /// + /// this avoids redundantly scanning the triangles in each surface twice + /// for whether they should cast shadows, once in culling and once in the + /// actual shadowmarklist production. int static_numshadowtrispvsbytes; unsigned char *static_shadowtrispvs; - // this allows the lighting batch code to skip backfaces andother culled - // triangles not relevant for lighting - // (important on big surfaces such as terrain) + /// this allows the lighting batch code to skip backfaces andother culled + /// triangles not relevant for lighting + /// (important on big surfaces such as terrain) int static_numlighttrispvsbytes; unsigned char *static_lighttrispvs; } diff --git a/cmd.h b/cmd.h index d2ae07d7..38d43463 100644 --- a/cmd.h +++ b/cmd.h @@ -37,27 +37,30 @@ The game starts with a Cbuf_AddText ("exec quake.rc\n"); Cbuf_Execute (); #ifndef CMD_H #define CMD_H +/// allocates an initial text buffer that will grow as needed void Cbuf_Init (void); -// allocates an initial text buffer that will grow as needed void Cmd_Init_Commands (void); void Cbuf_Shutdown (void); +/*! as new commands are generated from the console or keybindings, + * the text is added to the end of the command buffer. + */ void Cbuf_AddText (const char *text); -// as new commands are generated from the console or keybindings, -// the text is added to the end of the command buffer. +/*! when a command wants to issue other commands immediately, the text is + * inserted at the beginning of the buffer, before any remaining unexecuted + * commands. + */ void Cbuf_InsertText (const char *text); -// when a command wants to issue other commands immediately, the text is -// inserted at the beginning of the buffer, before any remaining unexecuted -// commands. +/*! Pulls off terminated lines of text from the command buffer and sends + * them through Cmd_ExecuteString. Stops when the buffer is empty. + * Normally called once per frame, but may be explicitly invoked. + * \note Do not call inside a command function! + */ void Cbuf_Execute (void); -// Pulls off \n terminated lines of text from the command buffer and sends -// them through Cmd_ExecuteString. Stops when the buffer is empty. -// Normally called once per frame, but may be explicitly invoked. -// Do not call inside a command function! //=========================================================================== @@ -76,9 +79,9 @@ typedef void (*xcommand_t) (void); typedef enum { - src_client, // came in over a net connection as a clc_stringcmd - // host_client will be valid during this state. - src_command // from the command buffer + src_client, ///< came in over a net connection as a clc_stringcmd + ///< host_client will be valid during this state. + src_command ///< from the command buffer } cmd_source_t; extern cmd_source_t cmd_source; @@ -92,12 +95,12 @@ void Cmd_AddCommand (const char *cmd_name, xcommand_t function, const char *desc // register commands and functions to call for them. // The cmd_name is referenced later, so it should not be in temp memory +/// used by the cvar code to check for cvar / command name overlap qboolean Cmd_Exists (const char *cmd_name); -// used by the cvar code to check for cvar / command name overlap +/// attempts to match a partial command for automatic command line completion +/// returns NULL if nothing fits const char *Cmd_CompleteCommand (const char *partial); -// attempts to match a partial command for automatic command line completion -// returns NULL if nothing fits int Cmd_CompleteAliasCountPossible (const char *partial); @@ -124,37 +127,37 @@ const char *Cmd_Args (void); // functions. Cmd_Argv () will return an empty string, not a NULL // if arg > argc, so string operations are always safe. +/// Returns the position (1 to argc-1) in the command's argument list +/// where the given parameter apears, or 0 if not present int Cmd_CheckParm (const char *parm); -// Returns the position (1 to argc-1) in the command's argument list -// where the given parameter apears, or 0 if not present //void Cmd_TokenizeString (char *text); // Takes a null terminated string. Does not need to be /n terminated. // breaks the string up into arg tokens. +/// Parses a single line of text into arguments and tries to execute it. +/// The text can come from the command buffer, a remote client, or stdin. void Cmd_ExecuteString (const char *text, cmd_source_t src); -// Parses a single line of text into arguments and tries to execute it. -// The text can come from the command buffer, a remote client, or stdin. +/// adds the string as a clc_stringcmd to the client message. +/// (used when there is no reason to generate a local command to do it) void Cmd_ForwardStringToServer (const char *s); -// adds the string as a clc_stringcmd to the client message. -// (used when there is no reason to generate a local command to do it) +/// adds the current command line as a clc_stringcmd to the client message. +/// things like godmode, noclip, etc, are commands directed to the server, +/// so when they are typed in at the console, they will need to be forwarded. void Cmd_ForwardToServer (void); -// adds the current command line as a clc_stringcmd to the client message. -// things like godmode, noclip, etc, are commands directed to the server, -// so when they are typed in at the console, they will need to be forwarded. +/// used by command functions to send output to either the graphics console or +/// passed as a print message to the client void Cmd_Print(const char *text); -// used by command functions to send output to either the graphics console or -// passed as a print message to the client +/// quotes a string so that it can be used as a command argument again; +/// quoteset is a string that contains one or more of ", \, $ and specifies +/// the characters to be quoted (you usually want to either pass "\"\\" or +/// "\"\\$"). Returns true on success, and false on overrun (in which case out +/// will contain a part of the quoted string). qboolean Cmd_QuoteString(char *out, size_t outlen, const char *in, const char *quoteset); -// quotes a string so that it can be used as a command argument again; -// quoteset is a string that contains one or more of ", \, $ and specifies -// the characters to be quoted (you usually want to either pass "\"\\" or -// "\"\\$"). Returns true on success, and false on overrun (in which case out -// will contain a part of the quoted string). #endif diff --git a/common.h b/common.h index c48ed390..40634807 100644 --- a/common.h +++ b/common.h @@ -21,11 +21,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #ifndef COMMON_H #define COMMON_H -// many buffers use this size +/// many buffers use this size #define MAX_INPUTLINE 16384 -// MSVC has a different name for several standard functions +/// MSVC has a different name for several standard functions #ifdef WIN32 # define strcasecmp _stricmp # define strncasecmp _strnicmp @@ -37,15 +37,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #endif #ifdef SUNOS -#include // Needed for FNDELAY +#include ///< Needed for FNDELAY #endif //============================================================================ typedef struct sizebuf_s { - qboolean allowoverflow; // if false, do a Sys_Error - qboolean overflowed; // set to true if the buffer size failed + qboolean allowoverflow; ///< if false, do a Sys_Error + qboolean overflowed; ///< set to true if the buffer size failed unsigned char *data; int maxsize; int cursize; @@ -102,9 +102,17 @@ void Com_BlockFullChecksum (void *buffer, int len, unsigned char *outbuf); # endif #endif +/*! \name Byte order functions. + * @{ + */ +/// Swaps the byte order of the given short \p l. short ShortSwap (short l); + +/// Swaps the byte order of the given long \p l. int LongSwap (int l); + +/// Swaps the byte order of the given float \p f. float FloatSwap (float f); #if BYTE_ORDER == LITTLE_ENDIAN @@ -125,11 +133,18 @@ float FloatSwap (float f); #define LittleFloat(l) FloatSwap(l) #endif +/// Extract a big endian long from the given \p buffer. unsigned int BuffBigLong (const unsigned char *buffer); + +/// Extract a big endian short from the given \p buffer. unsigned short BuffBigShort (const unsigned char *buffer); + +/// Extract a little endian long from the given \p buffer. unsigned int BuffLittleLong (const unsigned char *buffer); -unsigned short BuffLittleShort (const unsigned char *buffer); +/// Extract a little endian short from the given \p buffer. +unsigned short BuffLittleShort (const unsigned char *buffer); +//@} //============================================================================ @@ -138,23 +153,28 @@ unsigned short BuffLittleShort (const unsigned char *buffer); typedef enum protocolversion_e { PROTOCOL_UNKNOWN, - PROTOCOL_DARKPLACES7, // added QuakeWorld-style movement protocol to allow more consistent prediction - PROTOCOL_DARKPLACES6, // various changes - PROTOCOL_DARKPLACES5, // uses EntityFrame5 entity snapshot encoder/decoder which is based on a Tribes networking article at http://www.garagegames.com/articles/networking1/ - PROTOCOL_DARKPLACES4, // various changes - PROTOCOL_DARKPLACES3, // uses EntityFrame4 entity snapshot encoder/decoder which is broken, this attempted to do partial snapshot updates on a QuakeWorld-like protocol, but it is broken and impossible to fix - PROTOCOL_DARKPLACES2, // various changes - PROTOCOL_DARKPLACES1, // uses EntityFrame entity snapshot encoder/decoder which is a QuakeWorld-like entity snapshot delta compression method - PROTOCOL_QUAKEDP, // darkplaces extended quake protocol (used by TomazQuake and others), backwards compatible as long as no extended features are used - PROTOCOL_NEHAHRAMOVIE, // Nehahra movie protocol, a big nasty hack dating back to early days of the Quake Standards Group (but only ever used by neh_gl.exe), this is potentially backwards compatible with quake protocol as long as no extended features are used (but in actuality the neh_gl.exe which wrote this protocol ALWAYS wrote the extended information) - PROTOCOL_QUAKE, // quake (aka netquake/normalquake/nq) protocol - PROTOCOL_QUAKEWORLD, // quakeworld protocol - PROTOCOL_NEHAHRABJP, // same as QUAKEDP but with 16bit modelindex - PROTOCOL_NEHAHRABJP2, // same as NEHAHRABJP but with 16bit soundindex - PROTOCOL_NEHAHRABJP3, // same as NEHAHRABJP2 but with some changes + PROTOCOL_DARKPLACES7, ///< added QuakeWorld-style movement protocol to allow more consistent prediction + PROTOCOL_DARKPLACES6, ///< various changes + PROTOCOL_DARKPLACES5, ///< uses EntityFrame5 entity snapshot encoder/decoder which is based on a Tribes networking article at http://www.garagegames.com/articles/networking1/ + PROTOCOL_DARKPLACES4, ///< various changes + PROTOCOL_DARKPLACES3, ///< uses EntityFrame4 entity snapshot encoder/decoder which is broken, this attempted to do partial snapshot updates on a QuakeWorld-like protocol, but it is broken and impossible to fix + PROTOCOL_DARKPLACES2, ///< various changes + PROTOCOL_DARKPLACES1, ///< uses EntityFrame entity snapshot encoder/decoder which is a QuakeWorld-like entity snapshot delta compression method + PROTOCOL_QUAKEDP, ///< darkplaces extended quake protocol (used by TomazQuake and others), backwards compatible as long as no extended features are used + PROTOCOL_NEHAHRAMOVIE, ///< Nehahra movie protocol, a big nasty hack dating back to early days of the Quake Standards Group (but only ever used by neh_gl.exe), this is potentially backwards compatible with quake protocol as long as no extended features are used (but in actuality the neh_gl.exe which wrote this protocol ALWAYS wrote the extended information) + PROTOCOL_QUAKE, ///< quake (aka netquake/normalquake/nq) protocol + PROTOCOL_QUAKEWORLD, ///< quakeworld protocol + PROTOCOL_NEHAHRABJP, ///< same as QUAKEDP but with 16bit modelindex + PROTOCOL_NEHAHRABJP2, ///< same as NEHAHRABJP but with 16bit soundindex + PROTOCOL_NEHAHRABJP3, ///< same as NEHAHRABJP2 but with some changes } protocolversion_t; +/*! \name Message IO functions. + * Handles byte ordering and avoids alignment errors + * @{ + */ + void MSG_WriteChar (sizebuf_t *sb, int c); void MSG_WriteByte (sizebuf_t *sb, int c); void MSG_WriteShort (sizebuf_t *sb, int c); @@ -200,7 +220,7 @@ float MSG_ReadCoord32f (void); float MSG_ReadCoord (protocolversion_t protocol); void MSG_ReadVector (float *v, protocolversion_t protocol); float MSG_ReadAngle (protocolversion_t protocol); - +//@} //============================================================================ typedef float (*COM_WordWidthFunc_t) (void *passthrough, const char *w, size_t *length, float maxWidth); // length is updated to the longest fitting string into maxWidth; if maxWidth < 0, all characters are used and length is used as is @@ -307,7 +327,7 @@ void COM_ToUpperString (const char *in, char *out, size_t size_out); typedef struct stringlist_s { - // maxstrings changes as needed, causing reallocation of strings[] array + /// maxstrings changes as needed, causing reallocation of strings[] array int maxstrings; int numstrings; char **strings; @@ -335,7 +355,7 @@ void InfoString_Print(char *buffer); #endif #ifndef HAVE_STRLCAT -/* +/*! * Appends src to string dst of size siz (unlike strncat, siz is the * full size of dst, not space left). At most siz-1 characters * will be copied. Always NUL terminates (unless siz <= strlen(dst)). @@ -346,7 +366,7 @@ size_t strlcat(char *dst, const char *src, size_t siz); #endif // #ifndef HAVE_STRLCAT #ifndef HAVE_STRLCPY -/* +/*! * Copy src to string dst of size siz. At most siz-1 characters * will be copied. Always NUL terminates (unless siz == 0). * Returns strlen(src); if retval >= siz, truncation occurred. diff --git a/console.c b/console.c index 7d49db56..12df5d1a 100644 --- a/console.c +++ b/console.c @@ -309,6 +309,8 @@ LOGGING ============================================================================== */ +/// \name Logging +//@{ cvar_t log_file = {0, "log_file","", "filename to log messages to"}; cvar_t log_dest_udp = {0, "log_dest_udp","", "UDP address to log messages to (in QW rcon compatible format); multiple destinations can be separated by spaces; DO NOT SPECIFY DNS NAMES HERE"}; char log_dest_buffer[1400]; // UDP packet @@ -322,7 +324,7 @@ size_t logq_ind = 0; size_t logq_size = 0; void Log_ConPrint (const char *msg); - +//@} /* ==================== Log_DestBuffer_Init @@ -589,8 +591,6 @@ void Con_ToggleConsole_f (void) /* ================ Con_ClearNotify - -Clear all notify lines. ================ */ void Con_ClearNotify (void) @@ -647,8 +647,6 @@ void Con_CommandMode_f (void) /* ================ Con_CheckResize - -If the line width has changed, reformat the buffer. ================ */ void Con_CheckResize (void) @@ -836,7 +834,7 @@ void Con_PrintToHistory(const char *txt, int mask) } } -/* The translation table between the graphical font and plain ASCII --KB */ +/*! The translation table between the graphical font and plain ASCII --KB */ static char qfont_table[256] = { '\0', '#', '#', '#', '#', '.', '#', '#', '#', 9, 10, '#', ' ', 13, '.', '.', @@ -905,10 +903,9 @@ void Con_Rcon_Redirect_Abort() /* ================ Con_Rcon_AddChar - -Adds a character to the rcon buffer ================ */ +/// Adds a character to the rcon buffer. void Con_Rcon_AddChar(int c) { if(log_dest_buffer_appending) @@ -1004,8 +1001,6 @@ static char Sys_Con_NearestColor(const unsigned char _r, const unsigned char _g, /* ================ Con_Print - -Prints to all appropriate console targets, and adds timestamps ================ */ extern cvar_t timestamps; @@ -1270,8 +1265,6 @@ void Con_Print(const char *msg) /* ================ Con_Printf - -Prints to all appropriate console targets ================ */ void Con_Printf(const char *fmt, ...) @@ -1289,8 +1282,6 @@ void Con_Printf(const char *fmt, ...) /* ================ Con_DPrint - -A Con_Print that only shows up if the "developer" cvar is set ================ */ void Con_DPrint(const char *msg) @@ -1303,8 +1294,6 @@ void Con_DPrint(const char *msg) /* ================ Con_DPrintf - -A Con_Printf that only shows up if the "developer" cvar is set ================ */ void Con_DPrintf(const char *fmt, ...) diff --git a/console.h b/console.h index 74e44839..10009bf1 100644 --- a/console.h +++ b/console.h @@ -32,42 +32,54 @@ void Con_Rcon_Redirect_Init(lhnetsocket_t *sock, lhnetaddress_t *dest); void Con_Rcon_Redirect_End(); void Con_Rcon_Redirect_Abort(); +/// If the line width has changed, reformat the buffer. void Con_CheckResize (void); void Con_Init (void); void Con_Init_Commands (void); void Con_Shutdown (void); void Con_DrawConsole (int lines); + +/// Prints to all appropriate console targets, and adds timestamps void Con_Print(const char *txt); + +/// Prints to all appropriate console targets. void Con_Printf(const char *fmt, ...) DP_FUNC_PRINTF(1); + +/// A Con_Print that only shows up if the "developer" cvar is set. void Con_DPrint(const char *msg); + +/// A Con_Printf that only shows up if the "developer" cvar is set void Con_DPrintf(const char *fmt, ...) DP_FUNC_PRINTF(1); void Con_Clear_f (void); void Con_DrawNotify (void); + +/// Clear all notify lines. void Con_ClearNotify (void); void Con_ToggleConsole_f (void); qboolean GetMapList (const char *s, char *completedname, int completednamebufferlength); -// wrapper function to attempt to either complete the command line -// or to list possible matches grouped by type -// (i.e. will display possible variables, aliases, commands -// that match what they've typed so far) +/// wrapper function to attempt to either complete the command line +/// or to list possible matches grouped by type +/// (i.e. will display possible variables, aliases, commands +/// that match what they've typed so far) void Con_CompleteCommandLine(void); -// Generic libs/util/console.c function to display a list -// formatted in columns on the console +/// Generic libs/util/console.c function to display a list +/// formatted in columns on the console void Con_DisplayList(const char **list); -// -// log -// +/*! \name log + * @{ + */ void Log_Init (void); void Log_Close (void); void Log_Start (void); -void Log_DestBuffer_Flush (void); // call this once per frame to send out replies to rcon streaming clients +void Log_DestBuffer_Flush (void); ///< call this once per frame to send out replies to rcon streaming clients void Log_Printf(const char *logfilename, const char *fmt, ...) DP_FUNC_PRINTF(2); +//@} #define CON_MASK_HIDENOTIFY 128 #define CON_MASK_CHAT 1 @@ -79,9 +91,9 @@ typedef struct con_lineinfo_s size_t len; int mask; - // used only by console.c + /// used only by console.c double addtime; - int height; // recalculated line height when needed (-1 to unset) + int height; ///< recalculated line height when needed (-1 to unset) } con_lineinfo_t; @@ -92,7 +104,7 @@ typedef struct conbuffer_s int maxlines; con_lineinfo_t *lines; int lines_first; - int lines_count; // cyclic buffer + int lines_count; ///< cyclic buffer } conbuffer_t; @@ -103,9 +115,20 @@ conbuffer_t; void ConBuffer_Init(conbuffer_t *buf, int textsize, int maxlines, mempool_t *mempool); void ConBuffer_Clear (conbuffer_t *buf); void ConBuffer_Shutdown(conbuffer_t *buf); + +/*! Notifies the console code about the current time + * (and shifts back times of other entries when the time + * went backwards) + */ void ConBuffer_FixTimes(conbuffer_t *buf); + +/// Deletes the first line from the console history. void ConBuffer_DeleteLine(conbuffer_t *buf); + +/// Deletes the last line from the console history. void ConBuffer_DeleteLastLine(conbuffer_t *buf); + +/// Appends a given string as a new line to the console. void ConBuffer_AddLine(conbuffer_t *buf, const char *line, int len, int mask); int ConBuffer_FindPrevLine(conbuffer_t *buf, int mask_must, int mask_mustnot, int start); int ConBuffer_FindNextLine(conbuffer_t *buf, int mask_must, int mask_mustnot, int start); diff --git a/cvar.h b/cvar.h index fa706597..9014c50f 100644 --- a/cvar.h +++ b/cvar.h @@ -136,15 +136,15 @@ void Cvar_MenuString(cvar_t *variable, int menu); void Cvar_MenuOption(cvar_t *variable, int menu, int value[16], const char *name[16]); */ +/// registers a cvar that already has the name, string, and optionally the +/// archive elements set. void Cvar_RegisterVariable (cvar_t *variable); -// registers a cvar that already has the name, string, and optionally the -// archive elements set. +/// equivelant to " " typed at the console void Cvar_Set (const char *var_name, const char *value); -// equivelant to " " typed at the console +/// expands value to a string and calls Cvar_Set void Cvar_SetValue (const char *var_name, float value); -// expands value to a string and calls Cvar_Set void Cvar_SetQuick (cvar_t *var, const char *value); void Cvar_SetValueQuick (cvar_t *var, float value); @@ -191,20 +191,20 @@ const char **Cvar_CompleteBuildList (const char *partial); // Thanks to Fett erich@heintz.com // Thanks to taniwha +/// Prints a list of Cvars including a count of them to the user console +/// Referenced in cmd.c in Cmd_Init hence it's inclusion here. +/// Added by EvilTypeGuy eviltypeguy@qeradiant.com +/// Thanks to Matthias "Maddes" Buecher, http://www.inside3d.com/qip/ void Cvar_List_f (void); -// Prints a list of Cvars including a count of them to the user console -// Referenced in cmd.c in Cmd_Init hence it's inclusion here -// Added by EvilTypeGuy eviltypeguy@qeradiant.com -// Thanks to Matthias "Maddes" Buecher, http://www.inside3d.com/qip/ void Cvar_Set_f (void); void Cvar_SetA_f (void); // commands to create new cvars (or set existing ones) // seta creates an archived cvar (saved to config) +/// allocates a cvar by name and returns its address, +/// or merely sets its value if it already exists. cvar_t *Cvar_Get (const char *name, const char *value, int flags, const char *newdescription); -// allocates a cvar by name and returns its address, -// or merely sets its value if it already exists. extern char *cvar_dummy_description; // ALWAYS the same pointer extern cvar_t *cvar_vars; // used to list all cvars diff --git a/fs.c b/fs.c index 0dfc6eaa..b5262f63 100644 --- a/fs.c +++ b/fs.c @@ -66,7 +66,7 @@ # define dup _dup #endif -/* +/** \page fs File System All of Quake's data access is through a hierchal file system, but the contents of the file system can be transparently merged from several sources. @@ -141,67 +141,66 @@ TYPES ============================================================================= */ -// Zlib stream (from zlib.h) -// Warning: some pointers we don't use directly have -// been cast to "void*" for a matter of simplicity +/*! Zlib stream (from zlib.h) + * \warning: some pointers we don't use directly have + * been cast to "void*" for a matter of simplicity + */ typedef struct { - unsigned char *next_in; // next input byte - unsigned int avail_in; // number of bytes available at next_in - unsigned long total_in; // total nb of input bytes read so far + unsigned char *next_in; ///< next input byte + unsigned int avail_in; ///< number of bytes available at next_in + unsigned long total_in; ///< total nb of input bytes read so far - unsigned char *next_out; // next output byte should be put there - unsigned int avail_out; // remaining free space at next_out - unsigned long total_out; // total nb of bytes output so far + unsigned char *next_out; ///< next output byte should be put there + unsigned int avail_out; ///< remaining free space at next_out + unsigned long total_out; ///< total nb of bytes output so far - char *msg; // last error message, NULL if no error - void *state; // not visible by applications + char *msg; ///< last error message, NULL if no error + void *state; ///< not visible by applications - void *zalloc; // used to allocate the internal state - void *zfree; // used to free the internal state - void *opaque; // private data object passed to zalloc and zfree + void *zalloc; ///< used to allocate the internal state + void *zfree; ///< used to free the internal state + void *opaque; ///< private data object passed to zalloc and zfree - int data_type; // best guess about the data type: ascii or binary - unsigned long adler; // adler32 value of the uncompressed data - unsigned long reserved; // reserved for future use + int data_type; ///< best guess about the data type: ascii or binary + unsigned long adler; ///< adler32 value of the uncompressed data + unsigned long reserved; ///< reserved for future use } z_stream; -// inside a package (PAK or PK3) +/// inside a package (PAK or PK3) #define QFILE_FLAG_PACKED (1 << 0) -// file is compressed using the deflate algorithm (PK3 only) +/// file is compressed using the deflate algorithm (PK3 only) #define QFILE_FLAG_DEFLATED (1 << 1) -// file is actually already loaded data +/// file is actually already loaded data #define QFILE_FLAG_DATA (1 << 2) #define FILE_BUFF_SIZE 2048 typedef struct { z_stream zstream; - size_t comp_length; // length of the compressed file - size_t in_ind, in_len; // input buffer current index and length - size_t in_position; // position in the compressed file + size_t comp_length; ///< length of the compressed file + size_t in_ind, in_len; ///< input buffer current index and length + size_t in_position; ///< position in the compressed file unsigned char input [FILE_BUFF_SIZE]; } ztoolkit_t; struct qfile_s { int flags; - int handle; // file descriptor - fs_offset_t real_length; // uncompressed file size (for files opened in "read" mode) - fs_offset_t position; // current position in the file - fs_offset_t offset; // offset into the package (0 if external file) - int ungetc; // single stored character from ungetc, cleared to EOF when read + int handle; ///< file descriptor + fs_offset_t real_length; ///< uncompressed file size (for files opened in "read" mode) + fs_offset_t position; ///< current position in the file + fs_offset_t offset; ///< offset into the package (0 if external file) + int ungetc; ///< single stored character from ungetc, cleared to EOF when read // Contents buffer - fs_offset_t buff_ind, buff_len; // buffer current index and length + fs_offset_t buff_ind, buff_len; ///< buffer current index and length unsigned char buff [FILE_BUFF_SIZE]; - // For zipped files - ztoolkit_t* ztk; + ztoolkit_t* ztk; ///< For zipped files. - // for data files - const unsigned char *data; + const unsigned char *data; ///< For data files. }; @@ -213,11 +212,11 @@ typedef struct pk3_endOfCentralDir_s { unsigned int signature; unsigned short disknum; - unsigned short cdir_disknum; // number of the disk with the start of the central directory - unsigned short localentries; // number of entries in the central directory on this disk - unsigned short nbentries; // total number of entries in the central directory on this disk - unsigned int cdir_size; // size of the central directory - unsigned int cdir_offset; // with respect to the starting disk number + unsigned short cdir_disknum; ///< number of the disk with the start of the central directory + unsigned short localentries; ///< number of entries in the central directory on this disk + unsigned short nbentries; ///< total number of entries in the central directory on this disk + unsigned int cdir_size; ///< size of the central directory + unsigned int cdir_offset; ///< with respect to the starting disk number unsigned short comment_size; } pk3_endOfCentralDir_t; @@ -237,12 +236,14 @@ typedef struct dpackheader_s } dpackheader_t; -// Packages in memory -// the offset in packfile_t is the true contents offset +/*! \name Packages in memory + * @{ + */ +/// the offset in packfile_t is the true contents offset #define PACKFILE_FLAG_TRUEOFFS (1 << 0) -// file compressed using the deflate algorithm +/// file compressed using the deflate algorithm #define PACKFILE_FLAG_DEFLATED (1 << 1) -// file is a symbolic link +/// file is a symbolic link #define PACKFILE_FLAG_SYMLINK (1 << 2) typedef struct packfile_s @@ -250,8 +251,8 @@ typedef struct packfile_s char name [MAX_QPATH]; int flags; fs_offset_t offset; - fs_offset_t packsize; // size in the package - fs_offset_t realsize; // real file size (uncompressed) + fs_offset_t packsize; ///< size in the package + fs_offset_t realsize; ///< real file size (uncompressed) } packfile_t; typedef struct pack_s @@ -259,13 +260,13 @@ typedef struct pack_s char filename [MAX_OSPATH]; char shortname [MAX_QPATH]; int handle; - int ignorecase; // PK3 ignores case + int ignorecase; ///< PK3 ignores case int numfiles; packfile_t *files; } pack_t; +//@} - -// Search paths for files (including packages) +/// Search paths for files (including packages) typedef struct searchpath_s { // only one of filename / pack will be used @@ -360,7 +361,7 @@ static dllfunction_t zlibfuncs[] = {NULL, NULL} }; -// Handle for Zlib DLL +/// Handle for Zlib DLL static dllhandle_t zlib_dll = NULL; #ifdef WIN32 @@ -833,13 +834,12 @@ void FS_Path_f (void) /* ================= FS_LoadPackPAK - -Takes an explicit (not game tree related) path to a pak file. - -Loads the header and directory, adding the files at the beginning -of the list so they override previous pack files. ================= */ +/*! Takes an explicit (not game tree related) path to a pak file. + *Loads the header and directory, adding the files at the beginning + *of the list so they override previous pack files. + */ pack_t *FS_LoadPackPAK (const char *packfile) { dpackheader_t header; @@ -921,17 +921,18 @@ pack_t *FS_LoadPackPAK (const char *packfile) /* ================ FS_AddPack_Fullpath - -Adds the given pack to the search path. -The pack type is autodetected by the file extension. - -Returns true if the file was successfully added to the -search path or if it was already included. - -If keep_plain_dirs is set, the pack will be added AFTER the first sequence of -plain directories. ================ */ +/*! Adds the given pack to the search path. + * The pack type is autodetected by the file extension. + * + * Returns true if the file was successfully added to the + * search path or if it was already included. + * + * If keep_plain_dirs is set, the pack will be added AFTER the first sequence of + * plain directories. + * + */ static qboolean FS_AddPack_Fullpath(const char *pakfile, const char *shortname, qboolean *already_loaded, qboolean keep_plain_dirs) { searchpath_t *search; @@ -1017,17 +1018,17 @@ static qboolean FS_AddPack_Fullpath(const char *pakfile, const char *shortname, /* ================ FS_AddPack - -Adds the given pack to the search path and searches for it in the game path. -The pack type is autodetected by the file extension. - -Returns true if the file was successfully added to the -search path or if it was already included. - -If keep_plain_dirs is set, the pack will be added AFTER the first sequence of -plain directories. ================ */ +/*! Adds the given pack to the search path and searches for it in the game path. + * The pack type is autodetected by the file extension. + * + * Returns true if the file was successfully added to the + * search path or if it was already included. + * + * If keep_plain_dirs is set, the pack will be added AFTER the first sequence of + * plain directories. + */ qboolean FS_AddPack(const char *pakfile, qboolean *already_loaded, qboolean keep_plain_dirs) { char fullpath[MAX_QPATH]; diff --git a/fs.h b/fs.h index 9f01461d..938eb734 100644 --- a/fs.h +++ b/fs.h @@ -32,7 +32,7 @@ typedef struct qfile_s qfile_t; #ifdef WIN32 //typedef long fs_offset_t; // 32bit -typedef __int64 fs_offset_t; // 64bit (lots of warnings, and read/write still don't take 64bit on win64) +typedef __int64 fs_offset_t; ///< 64bit (lots of warnings, and read/write still don't take 64bit on win64) #else typedef long long fs_offset_t; #endif diff --git a/gl_draw.c b/gl_draw.c index 2724c60d..d71e836f 100644 --- a/gl_draw.c +++ b/gl_draw.c @@ -941,7 +941,7 @@ void DrawQ_Fill(float x, float y, float width, float height, float red, float gr R_Mesh_Draw(0, 4, 0, 2, NULL, polygonelements, 0, 0); } -// color tag printing +/// color tag printing static const vec4_t string_colors[] = { // Quake3 colors diff --git a/gl_rmain.c b/gl_rmain.c index 8f7c8cd4..ded1c7f4 100644 --- a/gl_rmain.c +++ b/gl_rmain.c @@ -28,7 +28,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. mempool_t *r_main_mempool; rtexturepool_t *r_main_texturepool; -static int r_frame = 0; // used only by R_GetCurrentTexture +static int r_frame = 0; ///< used only by R_GetCurrentTexture // // screen size info @@ -152,7 +152,7 @@ static struct r_bloomstate_s int bloomwidth, bloomheight; int screentexturewidth, screentextureheight; - rtexture_t *texture_screen; // also used for motion blur if enabled! + rtexture_t *texture_screen; /// \note also used for motion blur if enabled! int bloomtexturewidth, bloomtextureheight; rtexture_t *texture_bloom; @@ -166,7 +166,7 @@ r_bloomstate; r_waterstate_t r_waterstate; -// shadow volume bsp struct with automatically growing nodes buffer +/// shadow volume bsp struct with automatically growing nodes buffer svbsp_t r_svbsp; rtexture_t *r_texture_blanknormalmap; @@ -188,7 +188,7 @@ unsigned int r_maxqueries; char r_qwskincache[MAX_SCOREBOARD][MAX_QPATH]; skinframe_t *r_qwskincache_skinframe[MAX_SCOREBOARD]; -// vertex coordinates for a quad that covers the screen exactly +/// vertex coordinates for a quad that covers the screen exactly const static float r_screenvertex3f[12] = { 0, 0, 0, @@ -1124,23 +1124,23 @@ shadermodeinfo_t; typedef enum shaderpermutation_e { - SHADERPERMUTATION_DIFFUSE = 1<<0, // (lightsource) whether to use directional shading - SHADERPERMUTATION_VERTEXTEXTUREBLEND = 1<<1, // indicates this is a two-layer material blend based on vertex alpha (q3bsp) - SHADERPERMUTATION_COLORMAPPING = 1<<2, // indicates this is a colormapped skin - SHADERPERMUTATION_CONTRASTBOOST = 1<<3, // r_glsl_contrastboost boosts the contrast at low color levels (similar to gamma) - SHADERPERMUTATION_FOG = 1<<4, // tint the color by fog color or black if using additive blend mode - SHADERPERMUTATION_CUBEFILTER = 1<<5, // (lightsource) use cubemap light filter - SHADERPERMUTATION_GLOW = 1<<6, // (lightmap) blend in an additive glow texture - SHADERPERMUTATION_SPECULAR = 1<<7, // (lightsource or deluxemapping) render specular effects - SHADERPERMUTATION_EXACTSPECULARMATH = 1<<8, // (lightsource or deluxemapping) use exact reflection map for specular effects, as opposed to the usual OpenGL approximation - SHADERPERMUTATION_REFLECTION = 1<<9, // normalmap-perturbed reflection of the scene infront of the surface, preformed as an overlay on the surface - SHADERPERMUTATION_OFFSETMAPPING = 1<<10, // adjust texcoords to roughly simulate a displacement mapped surface - SHADERPERMUTATION_OFFSETMAPPING_RELIEFMAPPING = 1<<11, // adjust texcoords to accurately simulate a displacement mapped surface (requires OFFSETMAPPING to also be set!) - SHADERPERMUTATION_GAMMARAMPS = 1<<12, // gamma (postprocessing only) - SHADERPERMUTATION_POSTPROCESSING = 1<<13, // user defined postprocessing - SHADERPERMUTATION_SATURATION = 1<<14, // user defined postprocessing - SHADERPERMUTATION_LIMIT = 1<<15, // size of permutations array - SHADERPERMUTATION_COUNT = 15 // size of shaderpermutationinfo array + SHADERPERMUTATION_DIFFUSE = 1<<0, ///< (lightsource) whether to use directional shading + SHADERPERMUTATION_VERTEXTEXTUREBLEND = 1<<1, ///< indicates this is a two-layer material blend based on vertex alpha (q3bsp) + SHADERPERMUTATION_COLORMAPPING = 1<<2, ///< indicates this is a colormapped skin + SHADERPERMUTATION_CONTRASTBOOST = 1<<3, ///< r_glsl_contrastboost boosts the contrast at low color levels (similar to gamma) + SHADERPERMUTATION_FOG = 1<<4, ///< tint the color by fog color or black if using additive blend mode + SHADERPERMUTATION_CUBEFILTER = 1<<5, ///< (lightsource) use cubemap light filter + SHADERPERMUTATION_GLOW = 1<<6, ///< (lightmap) blend in an additive glow texture + SHADERPERMUTATION_SPECULAR = 1<<7, ///< (lightsource or deluxemapping) render specular effects + SHADERPERMUTATION_EXACTSPECULARMATH = 1<<8, ///< (lightsource or deluxemapping) use exact reflection map for specular effects, as opposed to the usual OpenGL approximation + SHADERPERMUTATION_REFLECTION = 1<<9, ///< normalmap-perturbed reflection of the scene infront of the surface, preformed as an overlay on the surface + SHADERPERMUTATION_OFFSETMAPPING = 1<<10, ///< adjust texcoords to roughly simulate a displacement mapped surface + SHADERPERMUTATION_OFFSETMAPPING_RELIEFMAPPING = 1<<11, ///< adjust texcoords to accurately simulate a displacement mapped surface (requires OFFSETMAPPING to also be set!) + SHADERPERMUTATION_GAMMARAMPS = 1<<12, ///< gamma (postprocessing only) + SHADERPERMUTATION_POSTPROCESSING = 1<<13, ///< user defined postprocessing + SHADERPERMUTATION_SATURATION = 1<<14, ///< user defined postprocessing + SHADERPERMUTATION_LIMIT = 1<<15, ///< size of permutations array + SHADERPERMUTATION_COUNT = 15 ///< size of shaderpermutationinfo array } shaderpermutation_t; @@ -1164,21 +1164,21 @@ shaderpermutationinfo_t shaderpermutationinfo[SHADERPERMUTATION_COUNT] = {"#define USESATURATION\n", " saturation"}, }; -// this enum is multiplied by SHADERPERMUTATION_MODEBASE +/// this enum is multiplied by SHADERPERMUTATION_MODEBASE typedef enum shadermode_e { - SHADERMODE_GENERIC, // (particles/HUD/etc) vertex color, optionally multiplied by one texture - SHADERMODE_POSTPROCESS, // postprocessing shader (r_glsl_postprocess) - SHADERMODE_DEPTH_OR_SHADOW, // (depthfirst/shadows) vertex shader only - SHADERMODE_FLATCOLOR, // (lightmap) modulate texture by uniform color (q1bsp, q3bsp) - SHADERMODE_VERTEXCOLOR, // (lightmap) modulate texture by vertex colors (q3bsp) - SHADERMODE_LIGHTMAP, // (lightmap) modulate texture by lightmap texture (q1bsp, q3bsp) - SHADERMODE_LIGHTDIRECTIONMAP_MODELSPACE, // (lightmap) use directional pixel shading from texture containing modelspace light directions (q3bsp deluxemap) - SHADERMODE_LIGHTDIRECTIONMAP_TANGENTSPACE, // (lightmap) use directional pixel shading from texture containing tangentspace light directions (q1bsp deluxemap) - SHADERMODE_LIGHTDIRECTION, // (lightmap) use directional pixel shading from fixed light direction (q3bsp) - SHADERMODE_LIGHTSOURCE, // (lightsource) use directional pixel shading from light source (rtlight) - SHADERMODE_REFRACTION, // refract background (the material is rendered normally after this pass) - SHADERMODE_WATER, // refract background and reflection (the material is rendered normally after this pass) + SHADERMODE_GENERIC, ///< (particles/HUD/etc) vertex color, optionally multiplied by one texture + SHADERMODE_POSTPROCESS, ///< postprocessing shader (r_glsl_postprocess) + SHADERMODE_DEPTH_OR_SHADOW, ///< (depthfirst/shadows) vertex shader only + SHADERMODE_FLATCOLOR, ///< (lightmap) modulate texture by uniform color (q1bsp, q3bsp) + SHADERMODE_VERTEXCOLOR, ///< (lightmap) modulate texture by vertex colors (q3bsp) + SHADERMODE_LIGHTMAP, ///< (lightmap) modulate texture by lightmap texture (q1bsp, q3bsp) + SHADERMODE_LIGHTDIRECTIONMAP_MODELSPACE, ///< (lightmap) use directional pixel shading from texture containing modelspace light directions (q3bsp deluxemap) + SHADERMODE_LIGHTDIRECTIONMAP_TANGENTSPACE, ///< (lightmap) use directional pixel shading from texture containing tangentspace light directions (q1bsp deluxemap) + SHADERMODE_LIGHTDIRECTION, ///< (lightmap) use directional pixel shading from fixed light direction (q3bsp) + SHADERMODE_LIGHTSOURCE, ///< (lightsource) use directional pixel shading from light source (rtlight) + SHADERMODE_REFRACTION, ///< refract background (the material is rendered normally after this pass) + SHADERMODE_WATER, ///< refract background and reflection (the material is rendered normally after this pass) SHADERMODE_COUNT } shadermode_t; @@ -1202,11 +1202,11 @@ shadermodeinfo_t shadermodeinfo[SHADERMODE_COUNT] = typedef struct r_glsl_permutation_s { - // indicates if we have tried compiling this permutation already + /// indicates if we have tried compiling this permutation already qboolean compiled; - // 0 if compilation failed + /// 0 if compilation failed int program; - // locations of detected uniforms in program object, or -1 if not found + /// locations of detected uniforms in program object, or -1 if not found int loc_Texture_First; int loc_Texture_Second; int loc_Texture_GammaRamps; @@ -1245,8 +1245,8 @@ typedef struct r_glsl_permutation_s int loc_DiffuseColor; int loc_SpecularColor; int loc_LightDir; - int loc_ContrastBoostCoeff; // 1 - 1/ContrastBoost - int loc_GammaCoeff; // 1 / gamma + int loc_ContrastBoostCoeff; ///< 1 - 1/ContrastBoost + int loc_GammaCoeff; ///< 1 / gamma int loc_DistortScaleRefractReflect; int loc_ScreenScaleRefractReflect; int loc_ScreenCenterRefractReflect; @@ -1264,9 +1264,9 @@ typedef struct r_glsl_permutation_s } r_glsl_permutation_t; -// information about each possible shader permutation +/// information about each possible shader permutation r_glsl_permutation_t r_glsl_permutations[SHADERMODE_COUNT][SHADERPERMUTATION_LIMIT]; -// currently selected permutation +/// currently selected permutation r_glsl_permutation_t *r_glsl_permutation; static char *R_GLSL_GetText(const char *filename, qboolean printfromdisknotice) @@ -2742,7 +2742,7 @@ static void R_View_UpdateEntityVisible (void) } } -// only used if skyrendermasked, and normally returns false +/// only used if skyrendermasked, and normally returns false int R_DrawBrushModelsSky (void) { int i, sky; diff --git a/input.h b/input.h index 3f98f68d..e157294f 100644 --- a/input.h +++ b/input.h @@ -17,7 +17,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -// input.h -- external (non-keyboard) input devices +/// \file input.h -- external (non-keyboard) input devices #ifndef INPUT_H #define INPUT_H @@ -43,11 +43,11 @@ typedef struct int weaponbit; int ammostat; int ammomin; - // TODO add a parameter for the picture to be used by the sbar, and use it there + /// \TODO add a parameter for the picture to be used by the sbar, and use it there } in_bestweapon_info_t; extern in_bestweapon_info_t in_bestweapon_info[IN_BESTWEAPON_MAX]; -void IN_BestWeapon_ResetData(void); // call before each map so QC can start from a clean state +void IN_BestWeapon_ResetData(void); ///< call before each map so QC can start from a clean state #endif diff --git a/jpeg.h b/jpeg.h index f0f27c67..3b8738cd 100644 --- a/jpeg.h +++ b/jpeg.h @@ -29,7 +29,10 @@ qboolean JPEG_OpenLibrary (void); void JPEG_CloseLibrary (void); unsigned char* JPEG_LoadImage_BGRA (const unsigned char *f, int filesize); qboolean JPEG_SaveImage_preflipped (const char *filename, int width, int height, unsigned char *data); -size_t JPEG_SaveImage_to_Buffer (char *jpegbuf, size_t jpegsize, int width, int height, unsigned char *data); // returns 0 if failed, or the size actually used + +/*! \returns 0 if failed, or the size actually used. + */ +size_t JPEG_SaveImage_to_Buffer (char *jpegbuf, size_t jpegsize, int width, int height, unsigned char *data); qboolean Image_Compress(const char *imagename, size_t maxsize, void **buf, size_t *size); diff --git a/mathlib.h b/mathlib.h index c862564e..ffabf2ae 100644 --- a/mathlib.h +++ b/mathlib.h @@ -49,27 +49,28 @@ extern vec3_t vec3_origin; #define max(A,B) ((A) > (B) ? (A) : (B)) #endif -// LordHavoc: this function never returns exactly MIN or exactly MAX, because -// of a QuakeC bug in id1 where the line -// self.nextthink = self.nexthink + random() * 0.5; -// can result in 0 (self.nextthink is 0 at this point in the code to begin -// with), causing "stone monsters" that never spawned properly, also MAX is -// avoided because some people use random() as an index into arrays or for -// loop conditions, where hitting exactly MAX may be a fatal error +/// LordHavoc: this function never returns exactly MIN or exactly MAX, because +/// of a QuakeC bug in id1 where the line +/// self.nextthink = self.nexthink + random() * 0.5; +/// can result in 0 (self.nextthink is 0 at this point in the code to begin +/// with), causing "stone monsters" that never spawned properly, also MAX is +/// avoided because some people use random() as an index into arrays or for +/// loop conditions, where hitting exactly MAX may be a fatal error #define lhrandom(MIN,MAX) (((double)(rand() + 0.5) / ((double)RAND_MAX + 1)) * ((MAX)-(MIN)) + (MIN)) #define invpow(base,number) (log(number) / log(base)) -// returns log base 2 of "n" (WARNING: "n" MUST be a power of 2!) +/// returns log base 2 of "n" +/// \WARNING: "n" MUST be a power of 2! #define log2i(n) ((((n) & 0xAAAAAAAA) != 0 ? 1 : 0) | (((n) & 0xCCCCCCCC) != 0 ? 2 : 0) | (((n) & 0xF0F0F0F0) != 0 ? 4 : 0) | (((n) & 0xFF00FF00) != 0 ? 8 : 0) | (((n) & 0xFFFF0000) != 0 ? 16 : 0)) -// TOCHECK: what is this function supposed to do? +/// \TODO: what is this function supposed to do? #define bit2i(n) log2i((n) << 1) -// boolean XOR (why doesn't C have the ^^ operator for this purpose?) +/// boolean XOR (why doesn't C have the ^^ operator for this purpose?) #define boolxor(a,b) (!(a) != !(b)) -// returns the smallest integer greater than or equal to "value", or 0 if "value" is too big +/// returns the smallest integer greater than or equal to "value", or 0 if "value" is too big unsigned int CeilPowerOf2(unsigned int value); #define DEG2RAD(a) ((a) * ((float) M_PI / 180.0f)) @@ -120,16 +121,17 @@ unsigned int CeilPowerOf2(unsigned int value); (n)[2] = ((a)[0] - (b)[0]) * ((c)[1] - (b)[1]) - ((a)[1] - (b)[1]) * ((c)[0] - (b)[0]) \ ) -// fast PointInfrontOfTriangle -// subtracts v1 from v0 and v2, combined into a crossproduct, combined with a -// dotproduct of the light location relative to the first point of the -// triangle (any point works, since any triangle is obviously flat), and -// finally a comparison to determine if the light is infront of the triangle -// (the goal of this statement) we do not need to normalize the surface -// normal because both sides of the comparison use it, therefore they are -// both multiplied the same amount... furthermore a subtract can be done on -// the point to eliminate one dotproduct -// this is ((p - a) * cross(a-b,c-b)) +/*! Fast PointInfrontOfTriangle. + * subtracts v1 from v0 and v2, combined into a crossproduct, combined with a + * dotproduct of the light location relative to the first point of the + * triangle (any point works, since any triangle is obviously flat), and + * finally a comparison to determine if the light is infront of the triangle + * (the goal of this statement) we do not need to normalize the surface + * normal because both sides of the comparison use it, therefore they are + * both multiplied the same amount... furthermore a subtract can be done on + * the point to eliminate one dotproduct + * this is ((p - a) * cross(a-b,c-b)) + */ #define PointInfrontOfTriangle(p,a,b,c) \ ( ((p)[0] - (a)[0]) * (((a)[1] - (b)[1]) * ((c)[2] - (b)[2]) - ((a)[2] - (b)[2]) * ((c)[1] - (b)[1])) \ + ((p)[1] - (a)[1]) * (((a)[2] - (b)[2]) * ((c)[0] - (b)[0]) - ((a)[0] - (b)[0]) * ((c)[2] - (b)[2])) \ @@ -205,8 +207,12 @@ float r2is = 1.0f / sin(r2);\ #define VectorCopy4(a,b) {(b)[0]=(a)[0];(b)[1]=(a)[1];(b)[2]=(a)[2];(b)[3]=(a)[3];} vec_t Length (vec3_t v); -float VectorNormalizeLength (vec3_t v); // returns vector length -float VectorNormalizeLength2 (vec3_t v, vec3_t dest); // returns vector length + +/// returns vector length +float VectorNormalizeLength (vec3_t v); + +/// returns vector length +float VectorNormalizeLength2 (vec3_t v, vec3_t dest); #define NUMVERTEXNORMALS 162 extern float m_bytenormals[NUMVERTEXNORMALS][3]; @@ -218,14 +224,14 @@ void R_ConcatRotations (const float in1[3*3], const float in2[3*3], float out[3* void R_ConcatTransforms (const float in1[3*4], const float in2[3*4], float out[3*4]); void AngleVectors (const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up); -// LordHavoc: proper matrix version of AngleVectors +/// LordHavoc: proper matrix version of AngleVectors void AngleVectorsFLU (const vec3_t angles, vec3_t forward, vec3_t left, vec3_t up); -// LordHavoc: builds a [3][4] matrix +/// LordHavoc: builds a [3][4] matrix void AngleMatrix (const vec3_t angles, const vec3_t translate, vec_t matrix[][4]); -// LordHavoc: calculates pitch/yaw/roll angles from forward and up vectors +/// LordHavoc: calculates pitch/yaw/roll angles from forward and up vectors void AnglesFromVectors (vec3_t angles, const vec3_t forward, const vec3_t up, qboolean flippitch); -// LordHavoc: like AngleVectors, but taking a forward vector instead of angles, useful! +/// LordHavoc: like AngleVectors, but taking a forward vector instead of angles, useful! void VectorVectors(const vec3_t forward, vec3_t right, vec3_t up); void VectorVectorsDouble(const double *forward, double *right, double *up); @@ -240,7 +246,7 @@ void BoxPlaneCornerDistances_Separate(const vec3_t emins, const vec3_t emaxs, co #define PlaneDist(point,plane) ((plane)->type < 3 ? (point)[(plane)->type] : DotProduct((point), (plane)->normal)) #define PlaneDiff(point,plane) (((plane)->type < 3 ? (point)[(plane)->type] : DotProduct((point), (plane)->normal)) - (plane)->dist) -// LordHavoc: minimal plane structure +/// LordHavoc: minimal plane structure typedef struct tinyplane_s { float normal[3], dist; @@ -258,8 +264,8 @@ void RotatePointAroundVector(vec3_t dst, const vec3_t dir, const vec3_t point, f float RadiusFromBounds (const vec3_t mins, const vec3_t maxs); float RadiusFromBoundsAndOrigin (const vec3_t mins, const vec3_t maxs, const vec3_t origin); -// print a matrix to the console struct matrix4x4_s; +/// print a matrix to the console void Matrix4x4_Print(const struct matrix4x4_s *in); int Math_atov(const char *s, vec3_t out); diff --git a/menu.c b/menu.c index 936e0d70..7417844b 100644 --- a/menu.c +++ b/menu.c @@ -105,7 +105,7 @@ static void M_GameOptions_Key (int key, int ascii); static void M_ServerList_Key (int key, int ascii); static void M_ModList_Key (int key, int ascii); -static qboolean m_entersound; // play after drawing a frame, so caching won't disrupt the sound +static qboolean m_entersound; ///< play after drawing a frame, so caching won't disrupt the sound void M_Update_Return_Reason(char *s) { @@ -810,7 +810,7 @@ static void M_SinglePlayer_Key (int key, int ascii) //============================================================================= /* LOAD/SAVE MENU */ -static int load_cursor; // 0 < load_cursor < MAX_SAVEGAMES +static int load_cursor; ///< 0 < load_cursor < MAX_SAVEGAMES #define MAX_SAVEGAMES 12 static char m_filenames[MAX_SAVEGAMES][SAVEGAME_COMMENT_LENGTH+1]; diff --git a/menu.h b/menu.h index 4cb3e857..dd7eed7f 100644 --- a/menu.h +++ b/menu.h @@ -90,7 +90,7 @@ typedef struct video_resolution_s const char *type; int width, height; int conwidth, conheight; - double pixelheight; // pixel aspect + double pixelheight; ///< pixel aspect } video_resolution_t; extern video_resolution_t video_resolutions[]; diff --git a/netconn.c b/netconn.c index 1820db4c..ae0022f7 100755 --- a/netconn.c +++ b/netconn.c @@ -105,12 +105,12 @@ int masterreplycount = 0; int serverquerycount = 0; int serverreplycount = 0; -// this is only false if there are still servers left to query +/// this is only false if there are still servers left to query static qboolean serverlist_querysleep = true; static qboolean serverlist_paused = false; -// this is pushed a second or two ahead of realtime whenever a master server -// reply is received, to avoid issuing queries while master replies are still -// flooding in (which would make a mess of the ping times) +/// this is pushed a second or two ahead of realtime whenever a master server +/// reply is received, to avoid issuing queries while master replies are still +/// flooding in (which would make a mess of the ping times) static double serverlist_querywaittime = 0; static unsigned char sendbuffer[NET_HEADERSIZE+NET_MAXMESSAGE]; @@ -163,8 +163,8 @@ void NetConn_UpdateFavorites() } } -// helper function to insert a value into the viewset -// spare entries will be removed +/// helper function to insert a value into the viewset +/// spare entries will be removed static void _ServerList_ViewList_Helper_InsertBefore( int index, serverlist_entry_t *entry ) { int i; @@ -180,7 +180,7 @@ static void _ServerList_ViewList_Helper_InsertBefore( int index, serverlist_entr serverlist_viewlist[index] = entry; } -// we suppose serverlist_viewcount to be valid, ie > 0 +/// we suppose serverlist_viewcount to be valid, ie > 0 static void _ServerList_ViewList_Helper_Remove( int index ) { serverlist_viewcount--; @@ -188,7 +188,7 @@ static void _ServerList_ViewList_Helper_Remove( int index ) serverlist_viewlist[index] = serverlist_viewlist[index + 1]; } -// returns true if A should be inserted before B +/// \returns true if A should be inserted before B static qboolean _ServerList_Entry_Compare( serverlist_entry_t *A, serverlist_entry_t *B ) { int result = 0; // > 0 if for numbers A > B and for text if A < B @@ -1453,7 +1453,7 @@ static void NetConn_ClientParsePacket_ServerList_ParseDPList(lhnetaddress_t *sen { const char *ifname; - // TODO: make some basic checks of the IP address (broadcast, ...) + /// \TODO: make some basic checks of the IP address (broadcast, ...) ifname = LHNETADDRESS_GetInterfaceName(senderaddress); if (ifname != NULL) @@ -2037,7 +2037,7 @@ static void NetConn_BuildChallengeString(char *buffer, int bufferlength) buffer[i] = 0; } -// (div0) build the full response only if possible; better a getinfo response than no response at all if getstatus won't fit +/// (div0) build the full response only if possible; better a getinfo response than no response at all if getstatus won't fit static qboolean NetConn_BuildStatusResponse(const char* challenge, char* out_msg, size_t out_size, qboolean fullstatus) { char qcstatus[256]; @@ -2074,7 +2074,7 @@ static qboolean NetConn_BuildStatusResponse(const char* challenge, char* out_msg } } - // TODO: we should add more information for the full status string + /// \TODO: we should add more information for the full status string length = dpsnprintf(out_msg, out_size, "\377\377\377\377%s\x0A" "\\gamename\\%s\\modname\\%s\\gameversion\\%d\\sv_maxclients\\%d" @@ -2288,7 +2288,7 @@ qboolean plaintext_matching(const char *password, const char *hash, const char * return !strcmp(password, hash); } -// returns a string describing the user level, or NULL for auth failure +/// returns a string describing the user level, or NULL for auth failure const char *RCon_Authenticate(const char *password, const char *s, const char *endpos, rcon_matchfunc_t comparator, const char *cs, int cslen) { const char *text; diff --git a/netconn.h b/netconn.h index 29670ccb..09c6b72f 100755 --- a/netconn.h +++ b/netconn.h @@ -39,73 +39,74 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define NET_PROTOCOL_VERSION 3 #define NET_EXTRESPONSE_MAX 16 -// This is the network info/connection protocol. It is used to find Quake -// servers, get info about them, and connect to them. Once connected, the -// Quake game protocol (documented elsewhere) is used. -// -// -// General notes: -// game_name is currently always "QUAKE", but is there so this same protocol -// can be used for future games as well; can you say Quake2? -// -// CCREQ_CONNECT -// string game_name "QUAKE" -// byte net_protocol_version NET_PROTOCOL_VERSION -// -// CCREQ_SERVER_INFO -// string game_name "QUAKE" -// byte net_protocol_version NET_PROTOCOL_VERSION -// -// CCREQ_PLAYER_INFO -// byte player_number -// -// CCREQ_RULE_INFO -// string rule -// -// CCREQ_RCON -// string password -// string command -// -// -// -// CCREP_ACCEPT -// long port -// -// CCREP_REJECT -// string reason -// -// CCREP_SERVER_INFO -// string server_address -// string host_name -// string level_name -// byte current_players -// byte max_players -// byte protocol_version NET_PROTOCOL_VERSION -// -// CCREP_PLAYER_INFO -// byte player_number -// string name -// long colors -// long frags -// long connect_time -// string address -// -// CCREP_RULE_INFO -// string rule -// string value -// -// CCREP_RCON -// string reply - -// note: -// There are two address forms used above. The short form is just a -// port number. The address that goes along with the port is defined as -// "whatever address you receive this reponse from". This lets us use -// the host OS to solve the problem of multiple host addresses (possibly -// with no routing between them); the host will use the right address -// when we reply to the inbound connection request. The long from is -// a full address and port in a string. It is used for returning the -// address of a server that is not running locally. +/// \page netconn The network info/connection protocol. +/// It is used to find Quake +/// servers, get info about them, and connect to them. Once connected, the +/// Quake game protocol (documented elsewhere) is used. +/// +/// +/// General notes:\code +/// game_name is currently always "QUAKE", but is there so this same protocol +/// can be used for future games as well; can you say Quake2? +/// +/// CCREQ_CONNECT +/// string game_name "QUAKE" +/// byte net_protocol_version NET_PROTOCOL_VERSION +/// +/// CCREQ_SERVER_INFO +/// string game_name "QUAKE" +/// byte net_protocol_version NET_PROTOCOL_VERSION +/// +/// CCREQ_PLAYER_INFO +/// byte player_number +/// +/// CCREQ_RULE_INFO +/// string rule +/// +/// CCREQ_RCON +/// string password +/// string command +/// +/// +/// +/// CCREP_ACCEPT +/// long port +/// +/// CCREP_REJECT +/// string reason +/// +/// CCREP_SERVER_INFO +/// string server_address +/// string host_name +/// string level_name +/// byte current_players +/// byte max_players +/// byte protocol_version NET_PROTOCOL_VERSION +/// +/// CCREP_PLAYER_INFO +/// byte player_number +/// string name +/// long colors +/// long frags +/// long connect_time +/// string address +/// +/// CCREP_RULE_INFO +/// string rule +/// string value +/// +/// CCREP_RCON +/// string reply +/// \endcode +/// \note +/// There are two address forms used above. The short form is just a +/// port number. The address that goes along with the port is defined as +/// "whatever address you receive this reponse from". This lets us use +/// the host OS to solve the problem of multiple host addresses (possibly +/// with no routing between them); the host will use the right address +/// when we reply to the inbound connection request. The long from is +/// a full address and port in a string. It is used for returning the +/// address of a server that is not running locally. #define CCREQ_CONNECT 0x01 #define CCREQ_SERVER_INFO 0x02 @@ -129,29 +130,31 @@ typedef struct netconn_s // this is mostly identical to qsocket_t from quake - // if this time is reached, kick off peer + /// if this time is reached, kick off peer double connecttime; double timeout; double lastMessageTime; double lastSendTime; - // writing buffer to send to peer as the next reliable message - // can be added to at any time, copied into sendMessage buffer when it is - // possible to send a reliable message and then cleared + /// writing buffer to send to peer as the next reliable message + /// can be added to at any time, copied into sendMessage buffer when it is + /// possible to send a reliable message and then cleared + /// @{ sizebuf_t message; unsigned char messagedata[NET_MAXMESSAGE]; + /// @} - // reliable message that is currently sending - // (for building fragments) + /// reliable message that is currently sending + /// (for building fragments) int sendMessageLength; unsigned char sendMessage[NET_MAXMESSAGE]; - // reliable message that is currently being received - // (for putting together fragments) + /// reliable message that is currently being received + /// (for putting together fragments) int receiveMessageLength; unsigned char receiveMessage[NET_MAXMESSAGE]; - // used by both NQ and QW protocols + /// used by both NQ and QW protocols unsigned int outgoing_unreliable_sequence; struct netconn_nq_s @@ -175,20 +178,20 @@ typedef struct netconn_s float frame_latency; // rolling average float frame_rate; - int drop_count; // dropped packets, cleared each level - int good_count; // cleared each level + int drop_count; ///< dropped packets, cleared each level + int good_count; ///< cleared each level int qport; // sequencing variables int incoming_sequence; int incoming_acknowledged; - int incoming_reliable_acknowledged; // single bit + int incoming_reliable_acknowledged; ///< single bit - int incoming_reliable_sequence; // single bit, maintained local + int incoming_reliable_sequence; ///< single bit, maintained local - int reliable_sequence; // single bit - int last_reliable_sequence; // sequence number of last send + int reliable_sequence; ///< single bit + int last_reliable_sequence; ///< sequence number of last send } qw; @@ -241,42 +244,42 @@ typedef enum serverlist_maskop_e SLMO_NOTSTARTSWITH } serverlist_maskop_t; -// struct with all fields that you can search for or sort by +/// struct with all fields that you can search for or sort by typedef struct serverlist_info_s { - // address for connecting + /// address for connecting char cname[128]; - // ping time for sorting servers + /// ping time for sorting servers int ping; - // name of the game + /// name of the game char game[32]; - // name of the mod + /// name of the mod char mod[32]; - // name of the map + /// name of the map char map[32]; - // name of the session + /// name of the session char name[128]; - // qc-defined short status string + /// qc-defined short status string char qcstatus[128]; - // frags/ping/name list (if they fit in the packet) + /// frags/ping/name list (if they fit in the packet) char players[1400]; - // max client number + /// max client number int maxplayers; - // number of currently connected players (including bots) + /// number of currently connected players (including bots) int numplayers; - // number of currently connected players that are bots + /// number of currently connected players that are bots int numbots; - // number of currently connected players that are not bots + /// number of currently connected players that are not bots int numhumans; - // number of free slots + /// number of free slots int freeslots; - // protocol version + /// protocol version int protocol; - // game data version - // (an integer that is used for filtering incompatible servers, - // not filterable by QC) + /// game data version + /// (an integer that is used for filtering incompatible servers, + /// not filterable by QC) int gameversion; - // favorite server flag + /// favorite server flag qboolean isfavorite; } serverlist_info_t; @@ -317,14 +320,14 @@ typedef enum typedef struct serverlist_entry_s { - // used to determine whether this entry should be included into the final view + /// used to determine whether this entry should be included into the final view serverlist_query_state query; - // used to count the number of times the host has tried to query this server already + /// used to count the number of times the host has tried to query this server already unsigned querycounter; - // used to calculate ping when update comes in + /// used to calculate ping when update comes in double querytime; - // query protocol to use on this server - int protocol; // may be PROTOCOL_QUAKEWORLD or PROTOCOL_DARKPLACES7 + /// query protocol to use on this server, may be PROTOCOL_QUAKEWORLD or PROTOCOL_DARKPLACES7 + int protocol; serverlist_info_t info; @@ -413,13 +416,13 @@ void Net_Slist_f(void); void Net_SlistQW_f(void); void Net_Refresh_f(void); -// ServerList interface (public) -// manually refresh the view set, do this after having changed the mask or any other flag +/// ServerList interface (public) +/// manually refresh the view set, do this after having changed the mask or any other flag void ServerList_RebuildViewList(void); void ServerList_ResetMasks(void); void ServerList_QueryList(qboolean resetcache, qboolean querydp, qboolean queryqw, qboolean consoleoutput); -// called whenever net_slist_favorites changes +/// called whenever net_slist_favorites changes void NetConn_UpdateFavorites(); #endif diff --git a/quakedef.h b/quakedef.h index d53fcfd1..efd7bf39 100644 --- a/quakedef.h +++ b/quakedef.h @@ -22,7 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #ifndef QUAKEDEF_H #define QUAKEDEF_H -// on UNIX platforms we need to define this so that video saving does not cause a SIGFSZ (file size) signal when a video clip exceeds 2GB +/// on UNIX platforms we need to define this so that video saving does not cause a SIGFSZ (file size) signal when a video clip exceeds 2GB #define _FILE_OFFSET_BITS 64 // for cd_linux.c @@ -56,14 +56,14 @@ extern char engineversion[128]; #define MAX_NUM_ARGVS 50 -#define MAX_QPATH 128 // max length of a quake game pathname -#define MAX_OSPATH 1024 // max length of a filesystem pathname +#define MAX_QPATH 128 ///< max length of a quake game pathname +#define MAX_OSPATH 1024 ///< max length of a filesystem pathname -#define ON_EPSILON 0.1 // point on plane side epsilon +#define ON_EPSILON 0.1 ///< point on plane side epsilon -#define MAX_PACKETFRAGMENT 1024 // max length of packet fragment +#define MAX_PACKETFRAGMENT 1024 ///< max length of packet fragment #define NET_MAXMESSAGE 65536 -#define NET_MINRATE 1000 // limits "rate" and "sv_maxrate" cvars +#define NET_MINRATE 1000 ///< limits "rate" and "sv_maxrate" cvars // // per-level limits @@ -97,43 +97,43 @@ extern char engineversion[128]; #define STAT_ACTIVEWEAPON 10 #define STAT_TOTALSECRETS 11 #define STAT_TOTALMONSTERS 12 -#define STAT_SECRETS 13 // bumped on client side by svc_foundsecret -#define STAT_MONSTERS 14 // bumped by svc_killedmonster -#define STAT_ITEMS 15 // FTE, DP -#define STAT_VIEWHEIGHT 16 // FTE, DP -//#define STAT_TIME 17 // FTE -//#define STAT_VIEW2 20 // FTE -#define STAT_VIEWZOOM 21 // DP -#define STAT_MOVEVARS_WARSOWBUNNY_AIRFORWARDACCEL 226 // DP -#define STAT_MOVEVARS_WARSOWBUNNY_ACCEL 227 // DP -#define STAT_MOVEVARS_WARSOWBUNNY_TOPSPEED 228 // DP -#define STAT_MOVEVARS_WARSOWBUNNY_TURNACCEL 229 // DP -#define STAT_MOVEVARS_WARSOWBUNNY_BACKTOSIDERATIO 230 // DP -#define STAT_MOVEVARS_AIRSTOPACCELERATE 231 // DP -#define STAT_MOVEVARS_AIRSTRAFEACCELERATE 232 // DP -#define STAT_MOVEVARS_MAXAIRSTRAFESPEED 233 // DP -#define STAT_MOVEVARS_AIRCONTROL 234 // DP -#define STAT_FRAGLIMIT 235 // DP -#define STAT_TIMELIMIT 236 // DP -#define STAT_MOVEVARS_WALLFRICTION 237 // DP -#define STAT_MOVEVARS_FRICTION 238 // DP -#define STAT_MOVEVARS_WATERFRICTION 239 // DP -#define STAT_MOVEVARS_TICRATE 240 // DP -#define STAT_MOVEVARS_TIMESCALE 241 // DP -#define STAT_MOVEVARS_GRAVITY 242 // DP -#define STAT_MOVEVARS_STOPSPEED 243 // DP -#define STAT_MOVEVARS_MAXSPEED 244 // DP -#define STAT_MOVEVARS_SPECTATORMAXSPEED 245 // DP -#define STAT_MOVEVARS_ACCELERATE 246 // DP -#define STAT_MOVEVARS_AIRACCELERATE 247 // DP -#define STAT_MOVEVARS_WATERACCELERATE 248 // DP -#define STAT_MOVEVARS_ENTGRAVITY 249 // DP -#define STAT_MOVEVARS_JUMPVELOCITY 250 // DP -#define STAT_MOVEVARS_EDGEFRICTION 251 // DP -#define STAT_MOVEVARS_MAXAIRSPEED 252 // DP -#define STAT_MOVEVARS_STEPHEIGHT 253 // DP -#define STAT_MOVEVARS_AIRACCEL_QW 254 // DP -#define STAT_MOVEVARS_AIRACCEL_SIDEWAYS_FRICTION 255 // DP +#define STAT_SECRETS 13 ///< bumped on client side by svc_foundsecret +#define STAT_MONSTERS 14 ///< bumped by svc_killedmonster +#define STAT_ITEMS 15 ///< FTE, DP +#define STAT_VIEWHEIGHT 16 ///< FTE, DP +//#define STAT_TIME 17 ///< FTE +//#define STAT_VIEW2 20 ///< FTE +#define STAT_VIEWZOOM 21 ///< DP +#define STAT_MOVEVARS_WARSOWBUNNY_AIRFORWARDACCEL 226 ///< DP +#define STAT_MOVEVARS_WARSOWBUNNY_ACCEL 227 ///< DP +#define STAT_MOVEVARS_WARSOWBUNNY_TOPSPEED 228 ///< DP +#define STAT_MOVEVARS_WARSOWBUNNY_TURNACCEL 229 ///< DP +#define STAT_MOVEVARS_WARSOWBUNNY_BACKTOSIDERATIO 230 ///< DP +#define STAT_MOVEVARS_AIRSTOPACCELERATE 231 ///< DP +#define STAT_MOVEVARS_AIRSTRAFEACCELERATE 232 ///< DP +#define STAT_MOVEVARS_MAXAIRSTRAFESPEED 233 ///< DP +#define STAT_MOVEVARS_AIRCONTROL 234 ///< DP +#define STAT_FRAGLIMIT 235 ///< DP +#define STAT_TIMELIMIT 236 ///< DP +#define STAT_MOVEVARS_WALLFRICTION 237 ///< DP +#define STAT_MOVEVARS_FRICTION 238 ///< DP +#define STAT_MOVEVARS_WATERFRICTION 239 ///< DP +#define STAT_MOVEVARS_TICRATE 240 ///< DP +#define STAT_MOVEVARS_TIMESCALE 241 ///< DP +#define STAT_MOVEVARS_GRAVITY 242 ///< DP +#define STAT_MOVEVARS_STOPSPEED 243 ///< DP +#define STAT_MOVEVARS_MAXSPEED 244 ///< DP +#define STAT_MOVEVARS_SPECTATORMAXSPEED 245 ///< DP +#define STAT_MOVEVARS_ACCELERATE 246 ///< DP +#define STAT_MOVEVARS_AIRACCELERATE 247 ///< DP +#define STAT_MOVEVARS_WATERACCELERATE 248 ///< DP +#define STAT_MOVEVARS_ENTGRAVITY 249 ///< DP +#define STAT_MOVEVARS_JUMPVELOCITY 250 ///< DP +#define STAT_MOVEVARS_EDGEFRICTION 251 ///< DP +#define STAT_MOVEVARS_MAXAIRSPEED 252 ///< DP +#define STAT_MOVEVARS_STEPHEIGHT 253 ///< DP +#define STAT_MOVEVARS_AIRACCEL_QW 254 ///< DP +#define STAT_MOVEVARS_AIRACCEL_SIDEWAYS_FRICTION 255 ///< DP // stock defines @@ -322,9 +322,9 @@ extern cvar_t developer_loading; # define DP_ARCH_STR "x86" #endif -// incremented every frame, never reset +/// incremented every frame, never reset extern int host_framecount; -// not bounded in any way, changed at start of every frame, never reset +/// not bounded in any way, changed at start of every frame, never reset extern double realtime; void Host_InitCommands(void); @@ -340,7 +340,7 @@ void Host_NoOperation_f(void); void Host_AbortCurrentFrame(void); -// skill level for currently loaded level (in case the user changes the cvar while the level is running, this reflects the level actually in use) +/// skill level for currently loaded level (in case the user changes the cvar while the level is running, this reflects the level actually in use) extern int current_skill; // diff --git a/sbar.h b/sbar.h index b59d5b23..4b566b6d 100644 --- a/sbar.h +++ b/sbar.h @@ -23,14 +23,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define SBAR_HEIGHT 24 -extern int sb_lines; // scan lines to draw +extern int sb_lines; ///< scan lines to draw extern cvar_t sbar_alpha_bg; extern cvar_t sbar_alpha_fg; void Sbar_Init (void); +/// called every frame by screen void Sbar_Draw (void); -// called every frame by screen #endif diff --git a/server.h b/server.h index 03d92650..0b21d37d 100644 --- a/server.h +++ b/server.h @@ -24,15 +24,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. typedef struct server_static_s { - // number of svs.clients slots (updated by maxplayers command) + /// number of svs.clients slots (updated by maxplayers command) int maxclients, maxclients_next; - // client slots + /// client slots struct client_s *clients; - // episode completion information + /// episode completion information int serverflags; - // cleared when at SV_SpawnServer + /// cleared when at SV_SpawnServer qboolean changelevel_issued; - // server infostring + /// server infostring char serverinfo[MAX_SERVERINFO_STRING]; // performance data float perf_cpuload; @@ -70,15 +70,15 @@ server_connectfloodaddress_t; typedef struct server_s { - // false if only a net client + /// false if only a net client qboolean active; qboolean paused; double pausedstart; - // handle connections specially + /// handle connections specially qboolean loadgame; - // one of the PROTOCOL_ values + /// one of the PROTOCOL_ values protocolversion_t protocol; double time; @@ -94,12 +94,12 @@ typedef struct server_s int csqc_progsize; // -1 = no progs char csqc_progname[MAX_QPATH]; // copied from csqc_progname at level start - // collision culling data + /// collision culling data world_t world; - // map name + /// map name char name[64]; - // maps/.bsp, for model_precache[0] + /// maps/.bsp, for model_precache[0] char modelname[64]; struct model_s *worldmodel; // NULL terminated @@ -112,7 +112,7 @@ typedef struct server_s // updated by SV_SoundIndex char sound_precache[MAX_SOUNDS][MAX_QPATH]; char lightstyles[MAX_LIGHTSTYLES][64]; - // some actions are only valid during load + /// some actions are only valid during load server_state_t state; sizebuf_t datagram; @@ -123,12 +123,12 @@ typedef struct server_s unsigned char reliable_datagram_buf[NET_MAXMESSAGE]; sizebuf_t signon; - // LordHavoc: increased signon message buffer from 8192 + /// LordHavoc: increased signon message buffer from 8192 unsigned char signon_buf[NET_MAXMESSAGE]; - // connection flood blocking - // note this is in server_t rather than server_static_t so that it is - // reset on each map command (such as New Game in singleplayer) + /// connection flood blocking + /// note this is in server_t rather than server_static_t so that it is + /// reset on each map command (such as New Game in singleplayer) server_connectfloodaddress_t connectfloodaddresses[MAX_CONNECTFLOODADDRESSES]; #define SV_MAX_PARTICLEEFFECTNAME 256 @@ -155,7 +155,7 @@ typedef struct server_s int sententities[MAX_EDICTS]; int sententitiesconsideration[MAX_EDICTS]; - // legacy support for self.Version based csqc entity networking + /// legacy support for self.Version based csqc entity networking unsigned char csqcentityversion[MAX_EDICTS]; // legacy } server_t; @@ -175,50 +175,50 @@ typedef struct csqcentityframedb_s typedef struct client_s { - // false = empty client slot + /// false = empty client slot qboolean active; - // false = don't do ClientDisconnect on drop + /// false = don't do ClientDisconnect on drop qboolean clientconnectcalled; - // false = don't send datagrams + /// false = don't send datagrams qboolean spawned; - // 1 = send svc_serverinfo and advance to 2, 2 doesn't send, then advances to 0 (allowing unlimited sending) when prespawn is received + /// 1 = send svc_serverinfo and advance to 2, 2 doesn't send, then advances to 0 (allowing unlimited sending) when prespawn is received int sendsignon; - // requested rate in bytes per second + /// requested rate in bytes per second int rate; - // realtime this client connected + /// realtime this client connected double connecttime; - // keepalive messages must be sent periodically during signon + /// keepalive messages must be sent periodically during signon double keepalivetime; - // communications handle + /// communications handle netconn_t *netconnection; int movesequence; - // movement + /// movement usercmd_t cmd; - // intended motion calced from cmd + /// intended motion calced from cmd vec3_t wishdir; - // PRVM_EDICT_NUM(clientnum+1) + /// PRVM_EDICT_NUM(clientnum+1) prvm_edict_t *edict; #ifdef NUM_PING_TIMES float ping_times[NUM_PING_TIMES]; - // ping_times[num_pings%NUM_PING_TIMES] + /// ping_times[num_pings%NUM_PING_TIMES] int num_pings; #endif - // LordHavoc: can be used for prediction or whatever... + /// LordHavoc: can be used for prediction or whatever... float ping; - // this is used by sv_clmovement_minping code + /// this is used by sv_clmovement_minping code double clmovement_disabletimeout; - // this is used by sv_clmovement_inputtimeout code + /// this is used by sv_clmovement_inputtimeout code float clmovement_inputtimeout; -// spawn parms are carried from level to level +/// spawn parms are carried from level to level float spawn_parms[NUM_SPAWN_PARMS]; // properties that are sent across the network only when changed @@ -228,10 +228,10 @@ typedef struct client_s char playermodel[MAX_QPATH], old_model[MAX_QPATH]; char playerskin[MAX_QPATH], old_skin[MAX_QPATH]; - // netaddress support + /// netaddress support char netaddress[MAX_QPATH]; - // visibility state + /// visibility state float visibletime[MAX_EDICTS]; // scope is whether an entity is currently being networked to this client @@ -246,17 +246,17 @@ typedef struct client_s csqcentityframedb_t csqcentityframehistory[NUM_CSQCENTITYDB_FRAMES]; int csqcentityframehistory_next; - // prevent animated names + /// prevent animated names float nametime; - // latest received clc_ackframe (used to detect packet loss) + /// latest received clc_ackframe (used to detect packet loss) int latestframenum; - // cache weaponmodel name lookups + /// cache weaponmodel name lookups char weaponmodel[MAX_QPATH]; int weaponmodelindex; - // clientcamera (entity to use as camera) + /// clientcamera (entity to use as camera) int clientcamera; entityframe_database_t *entitydatabase; @@ -274,7 +274,7 @@ typedef struct client_s // information on an active download if any qfile_t *download_file; - int download_expectedposition; // next position the client should ack + int download_expectedposition; ///< next position the client should ack qboolean download_started; char download_name[MAX_QPATH]; qboolean download_deflate; @@ -283,7 +283,7 @@ typedef struct client_s qboolean fixangle_angles_set; vec3_t fixangle_angles; - // demo recording + /// demo recording qfile_t *sv_demo_file; } client_t; @@ -291,29 +291,29 @@ typedef struct client_s //============================================================================= // edict->movetype values -#define MOVETYPE_NONE 0 // never moves +#define MOVETYPE_NONE 0 ///< never moves #define MOVETYPE_ANGLENOCLIP 1 #define MOVETYPE_ANGLECLIP 2 -#define MOVETYPE_WALK 3 // gravity -#define MOVETYPE_STEP 4 // gravity, special edge handling +#define MOVETYPE_WALK 3 ///< gravity +#define MOVETYPE_STEP 4 ///< gravity, special edge handling #define MOVETYPE_FLY 5 -#define MOVETYPE_TOSS 6 // gravity -#define MOVETYPE_PUSH 7 // no clip to world, push and crush +#define MOVETYPE_TOSS 6 ///< gravity +#define MOVETYPE_PUSH 7 ///< no clip to world, push and crush #define MOVETYPE_NOCLIP 8 -#define MOVETYPE_FLYMISSILE 9 // extra size to monsters +#define MOVETYPE_FLYMISSILE 9 ///< extra size to monsters #define MOVETYPE_BOUNCE 10 -#define MOVETYPE_BOUNCEMISSILE 11 // bounce w/o gravity -#define MOVETYPE_FOLLOW 12 // track movement of aiment -#define MOVETYPE_FAKEPUSH 13 // tenebrae's push that doesn't push +#define MOVETYPE_BOUNCEMISSILE 11 ///< bounce w/o gravity +#define MOVETYPE_FOLLOW 12 ///< track movement of aiment +#define MOVETYPE_FAKEPUSH 13 ///< tenebrae's push that doesn't push // edict->solid values -#define SOLID_NOT 0 // no interaction with other objects -#define SOLID_TRIGGER 1 // touch on edge, but not blocking -#define SOLID_BBOX 2 // touch on edge, block -#define SOLID_SLIDEBOX 3 // touch on edge, but not an onground -#define SOLID_BSP 4 // bsp clip, touch on edge, block +#define SOLID_NOT 0 ///< no interaction with other objects +#define SOLID_TRIGGER 1 ///< touch on edge, but not blocking +#define SOLID_BBOX 2 ///< touch on edge, block +#define SOLID_SLIDEBOX 3 ///< touch on edge, but not an onground +#define SOLID_BSP 4 ///< bsp clip, touch on edge, block // LordHavoc: corpse code -#define SOLID_CORPSE 5 // same as SOLID_BBOX, except it behaves as SOLID_NOT against SOLID_SLIDEBOX objects (players/monsters) +#define SOLID_CORPSE 5 ///< same as SOLID_BBOX, except it behaves as SOLID_NOT against SOLID_SLIDEBOX objects (players/monsters) // edict->deadflag values #define DEAD_NO 0 @@ -335,9 +335,9 @@ typedef struct client_s #define FL_NOTARGET 128 #define FL_ITEM 256 #define FL_ONGROUND 512 -#define FL_PARTIALGROUND 1024 // not all corners are valid -#define FL_WATERJUMP 2048 // player jumping out of water -#define FL_JUMPRELEASED 4096 // for jump debouncing +#define FL_PARTIALGROUND 1024 ///< not all corners are valid +#define FL_WATERJUMP 2048 ///< player jumping out of water +#define FL_JUMPRELEASED 4096 ///< for jump debouncing #define SPAWNFLAG_NOT_EASY 256 #define SPAWNFLAG_NOT_MEDIUM 512 @@ -448,9 +448,9 @@ extern cvar_t timelimit; extern mempool_t *sv_mempool; -// persistant server info +/// persistant server info extern server_static_t svs; -// local server +/// local server extern server_t sv; extern client_t *host_client; @@ -499,18 +499,20 @@ qboolean SV_PlayerCheckGround (prvm_edict_t *ent); qboolean SV_CheckBottom (prvm_edict_t *ent); qboolean SV_movestep (prvm_edict_t *ent, vec3_t move, qboolean relink, qboolean noenemy, qboolean settrace); -// Needs to be called any time an entity changes origin, mins, maxs, or solid -// sets ent->v.absmin and ent->v.absmax -// if touchtriggers, calls prog functions for the intersected triggers +/*! Needs to be called any time an entity changes origin, mins, maxs, or solid + * sets ent->v.absmin and ent->v.absmax + * if touchtriggers, calls prog functions for the intersected triggers + */ void SV_LinkEdict (prvm_edict_t *ent, qboolean touch_triggers); -// move an entity that is stuck by small amounts in various directions to try to nudge it back into the collision hull -// returns true if it found a better place +/*! move an entity that is stuck by small amounts in various directions to try to nudge it back into the collision hull + * returns true if it found a better place + */ qboolean SV_UnstickEntity (prvm_edict_t *ent); -// calculates hitsupercontentsmask for a generic qc entity +/// calculates hitsupercontentsmask for a generic qc entity int SV_GenericHitSuperContentsMask(const prvm_edict_t *edict); -// traces a box move against worldmodel and all entities in the specified area +/// traces a box move against worldmodel and all entities in the specified area trace_t SV_Move(const vec3_t start, const vec3_t mins, const vec3_t maxs, const vec3_t end, int type, prvm_edict_t *passedict, int hitsupercontentsmask); int SV_PointSuperContents(const vec3_t point); @@ -531,7 +533,7 @@ void SV_SetupVM(void); void SV_VM_Begin(void); void SV_VM_End(void); -const char *Host_TimingReport(); // for output in Host_Status_f +const char *Host_TimingReport(); ///< for output in Host_Status_f #endif diff --git a/sys.h b/sys.h index 23f16b27..aa99f79b 100644 --- a/sys.h +++ b/sys.h @@ -44,48 +44,54 @@ typedef struct dllfunction_s } dllfunction_t; -// "dllnames" is an NULL terminated array of possible names for the DLL you want to load +/*! Loads a library. + * \param dllnames a NULL terminated array of possible names for the DLL you want to load. + * \param handle + * \param fcts + */ qboolean Sys_LoadLibrary (const char** dllnames, dllhandle_t* handle, const dllfunction_t *fcts); void Sys_UnloadLibrary (dllhandle_t* handle); void* Sys_GetProcAddress (dllhandle_t handle, const char* name); -// called early in Host_Init +/// called early in Host_Init void Sys_InitConsole (void); -// called after command system is initialized but before first Con_Print +/// called after command system is initialized but before first Con_Print void Sys_Init_Commands (void); -// returns current timestamp +/// \returns current timestamp char *Sys_TimeString(const char *timeformat); // // system IO interface (these are the sys functions that need to be implemented in a new driver atm) // + +/// an error will cause the entire program to exit void Sys_Error (const char *error, ...) DP_FUNC_PRINTF(1); -// an error will cause the entire program to exit +/// (may) output text to terminal which launched program void Sys_PrintToTerminal(const char *text); -// (may) output text to terminal which launched program -void Sys_Shutdown (void); //INFO: This is only called by Host_Shutdown so we dont need testing for recursion +/// INFO: This is only called by Host_Shutdown so we dont need testing for recursion +void Sys_Shutdown (void); void Sys_Quit (int returnvalue); -// on some build/platform combinations (such as Linux gcc with the -pg -// profiling option) this can turn on/off profiling, used primarily to limit -// profiling to certain areas of the code, such as ingame performance without -// regard for loading/shutdown performance (-profilegameonly on commandline) +/*! on some build/platform combinations (such as Linux gcc with the -pg + * profiling option) this can turn on/off profiling, used primarily to limit + * profiling to certain areas of the code, such as ingame performance without + * regard for loading/shutdown performance (-profilegameonly on commandline) + */ void Sys_AllowProfiling (qboolean enable); double Sys_DoubleTime (void); char *Sys_ConsoleInput (void); +/// called to yield for a little bit so as not to hog cpu when paused or debugging void Sys_Sleep(int microseconds); -// called to yield for a little bit so as -// not to hog cpu when paused or debugging +/// Perform Key_Event () callbacks until the input que is empty void Sys_SendKeyEvents (void); -// Perform Key_Event () callbacks until the input que is empty char *Sys_GetClipboardData (void); diff --git a/world.c b/world.c index 52e25354..d1352d39 100644 --- a/world.c +++ b/world.c @@ -36,7 +36,7 @@ void World_Init(void) //============================================================================ -// World_ClearLink is used for new headnodes +/// World_ClearLink is used for new headnodes void World_ClearLink (link_t *l) { l->entitynumber = 0; diff --git a/world.h b/world.h index 216e67c9..b95af6f8 100644 --- a/world.h +++ b/world.h @@ -70,21 +70,21 @@ void World_InsertLinkBefore(link_t *l, link_t *before, int entitynumber); void World_Init(void); -// called after the world model has been loaded, before linking any entities +/// called after the world model has been loaded, before linking any entities void World_SetSize(world_t *world, const char *filename, const vec3_t mins, const vec3_t maxs); -// unlinks all entities (used before reallocation of edicts) +/// unlinks all entities (used before reallocation of edicts) void World_UnlinkAll(world_t *world); void World_PrintAreaStats(world_t *world, const char *worldname); -// call before removing an entity, and before trying to move one, -// so it doesn't clip against itself +/// call before removing an entity, and before trying to move one, +/// so it doesn't clip against itself void World_UnlinkEdict(struct prvm_edict_s *ent); -// Needs to be called any time an entity changes origin, mins, maxs +/// Needs to be called any time an entity changes origin, mins, maxs void World_LinkEdict(world_t *world, struct prvm_edict_s *ent, const vec3_t mins, const vec3_t maxs); -// returns list of entities touching a box +/// \returns list of entities touching a box int World_EntitiesInBox(world_t *world, const vec3_t mins, const vec3_t maxs, int maxlist, struct prvm_edict_s **list); #endif -- 2.39.2