From 59d7be34d4cf6411996b15551d603ee60e40976d Mon Sep 17 00:00:00 2001 From: Marco Cawthorne Date: Mon, 14 Nov 2022 18:14:07 -0800 Subject: [PATCH] Insert the idTech 4 src tree conventions. --- src/CodeStyleConventions.rtf | 580 +++++++++++++++++++++++++++++++++++ 1 file changed, 580 insertions(+) create mode 100644 src/CodeStyleConventions.rtf diff --git a/src/CodeStyleConventions.rtf b/src/CodeStyleConventions.rtf new file mode 100644 index 0000000..99cbf0b --- /dev/null +++ b/src/CodeStyleConventions.rtf @@ -0,0 +1,580 @@ +{\rtf1\ansi\deff3\adeflang1025 +{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\fmodern\fprq0\fcharset0 Courier New;}{\f6\fnil\fprq2\fcharset0 Noto Sans CJK SC;}{\f7\fnil\fprq2\fcharset0 Noto Sans Devanagari;}{\f8\fswiss\fprq0\fcharset128 Noto Sans Devanagari;}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;} +{\stylesheet{\s0\snext0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052 Normal;} +{\s1\sbasedon0\snext0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\hich\af5\loch\ilvl0\outlinelevel0\ql\nowidctlpar\ltrpar\cf0\f5\fs24\lang1033\dbch\af0 Heading 1;} +{\s2\sbasedon0\snext0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\hich\af5\loch\ilvl1\outlinelevel1\ql\nowidctlpar\li0\ri-1440\lin0\rin-1440\fi0\keepn\ltrpar\cf0\f5\fs24\lang1033\b\dbch\af0 Heading 2;} +{\*\cs15\snext15 WW8Num1z0;} +{\*\cs16\snext16 WW8Num1z1;} +{\*\cs17\snext17 WW8Num1z2;} +{\*\cs18\snext18 WW8Num1z3;} +{\*\cs19\snext19 WW8Num1z4;} +{\*\cs20\snext20 WW8Num1z5;} +{\*\cs21\snext21 WW8Num1z6;} +{\*\cs22\snext22 WW8Num1z7;} +{\*\cs23\snext23 WW8Num1z8;} +{\*\cs24\snext24 Default Paragraph Font;} +{\s25\sbasedon0\snext26\rtlch\af7\afs28\alang1025 \ltrch\lang1033\hich\af4\loch\ql\nowidctlpar\sb240\sa120\keepn\ltrpar\cf0\f4\fs28\lang1033\dbch\af6 Heading;} +{\s26\sbasedon0\snext26\rtlch\af5\afs24\alang1025\ab \ltrch\lang1033\hich\af5\loch\ql\nowidctlpar\li0\ri-1440\lin0\rin-1440\fi0\ltrpar\cf0\f5\fs24\lang1033\b\dbch\af0 Text Body;} +{\s27\sbasedon26\snext27\rtlch\af8\afs24\alang1025\ab \ltrch\lang1033\hich\af5\loch\ql\nowidctlpar\li0\ri-1440\lin0\rin-1440\fi0\ltrpar\cf0\f5\fs24\lang1033\b\dbch\af0 List;} +{\s28\sbasedon0\snext28\rtlch\af8\afs24\alang1025\ai \ltrch\lang1033\hich\af5\loch\ql\nowidctlpar\sb120\sa120\noline\ltrpar\cf0\f5\fs24\lang1033\i\dbch\af0 Caption;} +{\s29\sbasedon0\snext29\rtlch\af8\afs24\alang255 \ltrch\lang255\langfe255\hich\af5\loch\ql\nowidctlpar\noline\ltrpar\cf0\f5\fs24\lang255\dbch\af0\langfe255 Index;} +}{\*\listtable{\list\listtemplateid1 +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}\listid1} +{\list\listtemplateid2 +{\listlevel\levelnfc0\leveljc0\levelstartat1\levelfollow0{\leveltext \'02\'00.;}{\levelnumbers\'01;}\fi-720\li1080}\listid2} +}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}}{\*\generator LibreOffice/7.2.5.2$Linux_X86_64 LibreOffice_project/499f9727c189e6ef3471021d6132d4c694f357e5}{\info{\title GENERAL}{\author Administrator}{\creatim\yr2004\mo11\dy8\hr11\min5}{\author Jim Dose}{\revtim\yr2005\mo4\dy5\hr14\min26}{\printim\yr0\mo0\dy0\hr0\min0}}{\*\userprops}\deftab720 +\hyphauto1\viewscale100 +{\*\pgdsctbl +{\pgdsc0\pgdscuse451\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\pgdscnxt0 Default Page Style;}} +\formshade\paperh15840\paperw12240\margl1800\margr1800\margt1440\margb1440\sectd\sbknone\pgndec\sftnnar\saftnnrlc\sectunlocked1\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc +{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\tx8550\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\afs28\ab \ltrch\loch\b\loch +GENERAL} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\afs28\ab \ltrch\loch\b\loch +-------} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\afs28\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Use real tabs that equal 4 spaces.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Use typically trailing braces everywhere (if, else, functions, structures, typedefs, class definitions, etc.)} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +if ( x ) \{} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\}} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +The else statement starts on the same line as the last closing brace.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +if ( x ) \{} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\} else \{\line \}} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch\b\loch +Pad parenthesized expressions with spaces} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +if ( x ) \{} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\}} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +Instead of } +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +if (x) \{} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\}} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +And} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +x = ( y * 0.5f );} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +Instead of} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +x = (y * 0.5f);} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch\b\loch +Use precision specification for floating point values unless there is an explicit need for a double.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch +float f = 0.5f;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch\b\loch +Instead of} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch +float f = 0.5;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch + +\par \pard\plain \s2\rtlch\af5\afs24\alang1025 \ltrch\lang1033\hich\af5\loch\ilvl1\outlinelevel1\ql\nowidctlpar\li0\ri-1440\lin0\rin-1440\fi0\keepn\ltrpar\cf0\f5\fs24\lang1033\b\dbch\af0\loch{\listtext\pard\plain \tab}\ls1 \li0\ri-1440\lin0\rin-1440\fi0\li0\ri-1440\lin0\rin-1440\fi0{\loch +And} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch +float f = 1.0f;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch\b\loch +Instead of} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch +float f = 1.f;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Function names start with an upper case:} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +void Function( void );} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +In multi-word function names each word starts with an upper case:} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +void ThisFunctionDoesSomething( void );} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +The standard header for functions is:} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +/*} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +====================} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +FunctionName} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\dbch\af5 + }{\rtlch\af5 \ltrch\loch +Description} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +====================} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +*/} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Variable names start with a lower case character.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +float x;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +In multi-word variable names the first word starts with a lower case character and each successive word starts with an upper case.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +float maxDistanceFromPlane;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s1\rtlch\af5\afs24\alang1025 \ltrch\lang1033\hich\af5\loch\ilvl0\outlinelevel0\ql\nowidctlpar\ltrpar\cf0\f5\fs24\lang1033\dbch\af0\loch{\listtext\pard\plain \tab}\ls1 \li0\ri-1440\lin0\rin-1440\fi0\li0\ri-1440\lin0\rin-1440\fi0\keepn{\rtlch\af5\ab \ltrch\loch\b\loch +Typedef names use the same naming convention as variables, however they always end with "_t".} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +typedef int fileHandle_t;} +\par \pard\plain \s1\rtlch\af5\afs24\alang1025 \ltrch\lang1033\hich\af5\loch\ilvl0\outlinelevel0\ql\nowidctlpar\ltrpar\cf0\f5\fs24\lang1033\dbch\af0\loch{\listtext\pard\plain \tab}\ls1 \li0\ri-1440\lin0\rin-1440\fi0\li0\ri-1440\lin0\rin-1440\fi0\keepn\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s1\rtlch\af5\afs24\alang1025 \ltrch\lang1033\hich\af5\loch\ilvl0\outlinelevel0\ql\nowidctlpar\ltrpar\cf0\f5\fs24\lang1033\dbch\af0\loch{\listtext\pard\plain \tab}\ls1 \li0\ri-1440\lin0\rin-1440\fi0\li0\ri-1440\lin0\rin-1440\fi0\keepn\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s1\rtlch\af5\afs24\alang1025 \ltrch\lang1033\hich\af5\loch\ilvl0\outlinelevel0\ql\nowidctlpar\ltrpar\cf0\f5\fs24\lang1033\dbch\af0\loch{\listtext\pard\plain \tab}\ls1 \li0\ri-1440\lin0\rin-1440\fi0\li0\ri-1440\lin0\rin-1440\fi0\keepn{\rtlch\af5\ab \ltrch\loch\b\loch +Struct names use the same naming convention as variables, however they always end with "_t".} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +struct renderEntity_t;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Enum names use the same naming convention as variables, however they always end with "_t". The enum constants use all upper case characters. Multiple words are separated with an underscore.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +enum contact_t \{} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\tab CONTACT_NONE,} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\tab CONTACT_EDGE,} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\tab CONTACT_MODELVERTEX,} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\tab CONTACT_TRMVERTEX} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\};} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s1\rtlch\af5\afs24\alang1025 \ltrch\lang1033\hich\af5\loch\ilvl0\outlinelevel0\ql\nowidctlpar\ltrpar\cf0\f5\fs24\lang1033\dbch\af0\loch{\listtext\pard\plain \tab}\ls1 \li0\ri-1440\lin0\rin-1440\fi0\li0\ri-1440\lin0\rin-1440\fi0\keepn{\rtlch\af5\ab \ltrch\loch\b\loch +Names of recursive functions end with "_r"} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +void WalkBSP_r( int node );} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Defined names use all upper case characters. Multiple words are separated with an underscore.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +#define SIDE_FRONT\tab \tab 0} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Use \u8216\'91const\u8217\'92 as much as possible.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Use:} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +const int *p;\tab \tab \tab // pointer to const int} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +int * const p;\tab \tab \tab // const pointer to int} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +const int * const p;\tab // const pointer to const int} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Don\u8217\'92t use}{\rtlch\af5 \ltrch\loch +:} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +int const *p;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\afs28\ab \ltrch\loch\b\loch +CLASSES} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\afs28\ab \ltrch\loch\b\loch +-------} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\afs28\ab \ltrch\loch\b\loch + +\par \pard\plain \s1\rtlch\af5\afs24\alang1025 \ltrch\lang1033\hich\af5\loch\ilvl0\outlinelevel0\ql\nowidctlpar\ltrpar\cf0\f5\fs24\lang1033\dbch\af0\loch{\listtext\pard\plain \tab}\ls1 \li0\ri-1440\lin0\rin-1440\fi0\li0\ri-1440\lin0\rin-1440\fi0\keepn{\rtlch\af5\ab \ltrch\loch\b\loch +The standard header for a class is:} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\widctlpar\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\afs20 \ltrch\loch\fs20\loch +/*} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\widctlpar\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\afs20 \ltrch\loch\fs20\loch +===============================================================================} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\widctlpar\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\afs20 \ltrch\loch\fs20\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\widctlpar\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\afs20 \ltrch\loch\fs20\loch +\tab Description} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\widctlpar\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\afs20 \ltrch\loch\fs20\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\widctlpar\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\afs20 \ltrch\loch\fs20\loch +===============================================================================} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\widctlpar\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\afs20 \ltrch\loch\fs20\loch +*/} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\afs20 \ltrch\loch + +\par \pard\plain \s1\rtlch\af5\afs24\alang1025 \ltrch\lang1033\hich\af5\loch\ilvl0\outlinelevel0\ql\nowidctlpar\ltrpar\cf0\f5\fs24\lang1033\dbch\af0\loch{\listtext\pard\plain \tab}\ls1 \li0\ri-1440\lin0\rin-1440\fi0\li0\ri-1440\lin0\rin-1440\fi0\keepn{\rtlch\af5\ab \ltrch\loch\b\loch +Class names start with "id" and each successive word starts with an upper case.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +class idVec3;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Class variables have the same naming convention as variables.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +class idVec3 \{} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\tab float\tab \tab x;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi720{\rtlch\af5 \ltrch\loch +float\tab \tab y;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi720{\rtlch\af5 \ltrch\loch +float\tab \tab z;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\}} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Class methods have the same naming convention as functions.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +class idVec3 \{} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\tab float\tab \tab Length( void ) const;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\}} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Indent the names of class variables and class methods to make nice columns. The variable type or method return type is in the first column and the variable name or method name is in the second column.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +class idVec3 \{} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\tab float\tab \tab x;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi720{\rtlch\af5 \ltrch\loch +float\tab \tab y;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi720{\rtlch\af5 \ltrch\loch +float\tab \tab z;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\tab float\tab \tab Length( void ) const;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\tab const float *\tab ToFloatPtr( void ) const;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\}} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +The * of the pointer is in the first column because it improves readability when considered part of the type.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Ording of class variables and methods should be as follows:} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch{\listtext\pard\plain 1.\tab}\ilvl0\ls2 \li2160\ri-1440\lin2160\rin-1440\fi-720\li1080\ri-1440\lin1080\rin-1440\fi-720{\rtlch\af5 \ltrch\loch +list of friend classes} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch{\listtext\pard\plain 2.\tab}\ilvl0\ls2 \li2160\ri-1440\lin2160\rin-1440\fi-720\li1080\ri-1440\lin1080\rin-1440\fi-720{\rtlch\af5 \ltrch\loch +public variables} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch{\listtext\pard\plain 3.\tab}\ilvl0\ls2 \li2160\ri-1440\lin2160\rin-1440\fi-720\li1080\ri-1440\lin1080\rin-1440\fi-720{\rtlch\af5 \ltrch\loch +public methods} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch{\listtext\pard\plain 4.\tab}\ilvl0\ls2 \li2160\ri-1440\lin2160\rin-1440\fi-720\li1080\ri-1440\lin1080\rin-1440\fi-720{\rtlch\af5 \ltrch\loch +protected variables} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch{\listtext\pard\plain 5.\tab}\ilvl0\ls2 \li2160\ri-1440\lin2160\rin-1440\fi-720\li1080\ri-1440\lin1080\rin-1440\fi-720{\rtlch\af5 \ltrch\loch +protected methods} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch{\listtext\pard\plain 6.\tab}\ilvl0\ls2 \li2160\ri-1440\lin2160\rin-1440\fi-720\li1080\ri-1440\lin1080\rin-1440\fi-720{\rtlch\af5 \ltrch\loch +private variables} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch{\listtext\pard\plain 7.\tab}\ilvl0\ls2 \li2160\ri-1440\lin2160\rin-1440\fi-720\li1080\ri-1440\lin1080\rin-1440\fi-720{\rtlch\af5 \ltrch\loch +private methods} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +This allows the public interface to be easily found at the beginning of the class.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Always make class methods \u8216\'91const\u8217\'92 when they do not modify any class variables.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Avoid use of \u8216\'91const_cast\u8217\'92. When object is needed to be modified, but only const versions are accessible, create a function that clearly gives an editable version of the object. This keeps the control of the \u8216\'91const-ness\u8217\'92 in the hands of the object and not the user.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Return \u8216\'91const\u8217\'92 objects unless the general usage of the object is to change its state. For example, media objects like idDecls should be const to a majority of the code, while idEntity objects tend to have their state modified by a variety of systems, and so are ok to leave} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +non-const.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Function overloading should be avoided in most cases. For example, instead of:} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\tab const idAnim *\tab GetAnim( int index ) const;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\tab const idAnim *\tab GetAnim( const char *name ) const;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\tab const idAnim *\tab GetAnim( float randomDiversity ) const;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Use:} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\tab const idAnim *\tab GetAnimByIndex( int index ) const;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\tab const idAnim *\tab GetAnimByName( const char *name ) const;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\tab const idAnim *\tab GetRandomAnim( float randomDiversity ) const;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Explicitly named functions tend to be less prone to programmer error and inadvertent calls to functions due to wrong data types being passed in as arguments. Example:} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +Anim = GetAnim( 0 );} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +\line This could be meant as a call to get a random animation, but the compiler would interpret it as a call to get one by index.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +Overloading functions for the sake of adding \u8216\'91const\u8217\'92 accessible function is allowable:} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +class idAnimatedEntity : public idEntity \{} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi720{\rtlch\af5 \ltrch\loch +idAnimator * \tab \tab GetAnimator( void );} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi720{\rtlch\af5 \ltrch\loch +const idAnimator * \tab GetAnimator( void ) const;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\};} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +In this case, a const version of GetAnimator was provided in order to allow GetAnimator to be called from const functions. Since idAnimatedEntity is normally a non-const object, this is allowable. For a media type, which is normally const, operator overloading should be avoided:} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +\line }{\rtlch\af5 \ltrch\loch +class idDeclMD5 : public idDecl \{} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi720{\rtlch\af5 \ltrch\loch +const idMD5Anim *\tab GetAnim( animHandle_t handle ) const;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi720{\rtlch\af5 \ltrch\loch +idMD5Anim *\tab \tab GetEditableAnim( animHandle_t handle );} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +\};} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +id Studio Names} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +---------------} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\widctlpar\aspalpha{\rtlch\af5\afs20 \ltrch\loch +idDlg\~\~\~ \~\~//\~dialog class} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052{\rtlch\af5\afs20 \ltrch\loch +idCtrl\~\~\~ \~// dialog control class} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052{\rtlch\af5\afs20 \ltrch\loch +idFrm\~\~ \~\~ // frame window} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052{\rtlch\af5\afs20 \ltrch\loch +idView\~ \~\~ // view window} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052{\rtlch\af5\afs20 \ltrch\loch +id\~\~\~\~\~\~\~\~\~// any other class} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\ab \ltrch\loch\b\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +FILE NAMES} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\afs28\ab \ltrch\loch\b\loch +---------} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5\afs28\ab \ltrch\loch\b\loch + +\par \pard\plain \s26\rtlch\af5\afs24\alang1025\ab \ltrch\lang1033\hich\af5\loch\ql\nowidctlpar\li0\ri-1440\lin0\rin-1440\fi0\ltrpar\cf0\f5\fs24\lang1033\b\dbch\af0{\loch +Each class should be in a seperate source file unless it makes sense to group several smaller classes.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5\ab \ltrch\loch\b\loch +The file name should be the same as the name of the class without the "id" prefix. (Upper/lower case is preserved.)} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +class idWinding;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +files:} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +Winding.cpp} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +Winding.h} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s26\rtlch\af5\afs24\alang1025\ab \ltrch\lang1033\hich\af5\loch\ql\nowidctlpar\li0\ri-1440\lin0\rin-1440\fi0\ltrpar\cf0\f5\fs24\lang1033\b\dbch\af0{\loch +When a class spans across multiple files these files have a name that starts with the name of the class without "id", followed by an underscore and a subsection name.} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +class idRenderWorld;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +files:} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +RenderWorld_load.cpp} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +RenderWorld_demo.cpp} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +RenderWorld_portals.cpp} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s26\rtlch\af5\afs24\alang1025\ab \ltrch\lang1033\hich\af5\loch\ql\nowidctlpar\li0\ri-1440\lin0\rin-1440\fi0\ltrpar\cf0\f5\fs24\lang1033\b\dbch\af0{\loch +When a class is a public virtual interface to a subsystem the public interface is implemented in a header file with the name of the class without "id". The definition of the class that implements the subsystem is placed in a header file with the name of the class without "id" and ends with "_local.h". The implementation of the subsystem is placed in a cpp file with the name of the class without "id".} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +class idRenderWorld;} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +RenderWorld.h\tab \tab \tab // public virtual idRenderWorld interface} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +RenderWorld_local.h\tab \tab // definition of class idRenderWorldLocal} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0{\rtlch\af5 \ltrch\loch +RenderWorld.cpp\tab \tab // implementation of idRenderWorldLocal} +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par \pard\plain \s0\rtlch\af5\afs24\alang1025 \ltrch\lang1033\langfe2052\hich\af5\loch\ql\nowidctlpar\ltrpar\hyphpar0\cf0\f5\fs24\lang1033\dbch\af0\langfe2052\loch\li0\ri-1440\lin0\rin-1440\fi0\rtlch\af5 \ltrch\loch + +\par } \ No newline at end of file