diff --git a/Doxygen_files/doxygen_gtkradiant.css b/Doxygen_files/doxygen_gtkradiant.css index b875556..ad85caf 100644 --- a/Doxygen_files/doxygen_gtkradiant.css +++ b/Doxygen_files/doxygen_gtkradiant.css @@ -1,34 +1,34 @@ -body { background-color: black; } -IMG { border-color: #222222; border: 0; } -em { font-size: 11px; font-style: italic; font-weight: normal; color: #888888; } -H1 { text-align: center; font-size: 15px; color: #2222AA; font-family: Geneva, Verdana, Helvetica, Arial, sans-serif; } -H3 { text-align: center; font-size: 18px; color: #2222AA; font-family: Geneva, Verdana, Helvetica, Arial, sans-serif; } -A { text-decoration: none; color: #6666DD; } -A:HOVER { text-decoration: underline; color: #4444FF; } -A:VISITED { text-decoration: none; color: #8888AA; } -A.qindex { text-decoration: none; color: #6666DD; font-size: 11px; } -A.qindex:HOVER { text-decoration: underline; color: #4444FF; font-size: 11px; } -A.qindex:VISITED { text-decoration: none; color: #8888AA; font-size: 11px; } -A.qindexRef { font-size: 11px; } -A.el { text-decoration: none; font-weight: bold; } -A.elRef { font-weight: bold; } -A.code { text-decoration: none; font-weight: normal; color: #6666DD; } -A.code:HOVER { text-decoration: underline; font-weight: normal; color: #4444FF; } -A.code:VISITED { text-decoration: none; font-weight: normal; color: #8888AA; } -A.codeRef { text-decoration: none; font-weight: normal; color: #6666DD; } -A.codeRef:HOVER { text-decoration: underline; font-weight: normal; color: #4444FF; } -A.codeRef:VISITED { text-decoration: none; font-weight: normal; color: #8888AA; } -DL.el { margin-left: 2cm; width: 99%; } -DIV.fragment { background-color: #FFFFFF; width: 99%; } -DIV.ah { background-color: #AAAAAA; width: 99%; margin-bottom: 3; margin-top: 3; } -TD.md { cellpadding: 0; background-color: #DDDDDD; border: 0; width: 99%; color: #222222; } -DIV.groupHeader { margin-left: 16; margin-top: 12; margin-bottom: 6; font-weight: bold; color: #222222; } -DIV.groupText { margin-left: 16; font-style: italic; font-size: smaller; } -FONT.keyword { color: #0080A0; } -FONT.keywordtype { color: #604020; } -FONT.keywordflow { color: #E08000; } -FONT.comment { color: #800000; } -FONT.comment { color: #009900; text-decoration: italic; } -FONT.preprocessor { color: #806020; } -FONT.stringliteral{ color: #002080; } -FONT.charliteral { color: #008080; } +body { background-color: black; } +IMG { border-color: #222222; border: 0; } +em { font-size: 11px; font-style: italic; font-weight: normal; color: #888888; } +H1 { text-align: center; font-size: 15px; color: #2222AA; font-family: Geneva, Verdana, Helvetica, Arial, sans-serif; } +H3 { text-align: center; font-size: 18px; color: #2222AA; font-family: Geneva, Verdana, Helvetica, Arial, sans-serif; } +A { text-decoration: none; color: #6666DD; } +A:HOVER { text-decoration: underline; color: #4444FF; } +A:VISITED { text-decoration: none; color: #8888AA; } +A.qindex { text-decoration: none; color: #6666DD; font-size: 11px; } +A.qindex:HOVER { text-decoration: underline; color: #4444FF; font-size: 11px; } +A.qindex:VISITED { text-decoration: none; color: #8888AA; font-size: 11px; } +A.qindexRef { font-size: 11px; } +A.el { text-decoration: none; font-weight: bold; } +A.elRef { font-weight: bold; } +A.code { text-decoration: none; font-weight: normal; color: #6666DD; } +A.code:HOVER { text-decoration: underline; font-weight: normal; color: #4444FF; } +A.code:VISITED { text-decoration: none; font-weight: normal; color: #8888AA; } +A.codeRef { text-decoration: none; font-weight: normal; color: #6666DD; } +A.codeRef:HOVER { text-decoration: underline; font-weight: normal; color: #4444FF; } +A.codeRef:VISITED { text-decoration: none; font-weight: normal; color: #8888AA; } +DL.el { margin-left: 2cm; width: 99%; } +DIV.fragment { background-color: #FFFFFF; width: 99%; } +DIV.ah { background-color: #AAAAAA; width: 99%; margin-bottom: 3; margin-top: 3; } +TD.md { cellpadding: 0; background-color: #DDDDDD; border: 0; width: 99%; color: #222222; } +DIV.groupHeader { margin-left: 16; margin-top: 12; margin-bottom: 6; font-weight: bold; color: #222222; } +DIV.groupText { margin-left: 16; font-style: italic; font-size: smaller; } +FONT.keyword { color: #0080A0; } +FONT.keywordtype { color: #604020; } +FONT.keywordflow { color: #E08000; } +FONT.comment { color: #800000; } +FONT.comment { color: #009900; text-decoration: italic; } +FONT.preprocessor { color: #806020; } +FONT.stringliteral{ color: #002080; } +FONT.charliteral { color: #008080; } diff --git a/Doxygen_files/example/doxygen_gtkradiant.css b/Doxygen_files/example/doxygen_gtkradiant.css index c0ddae2..30bf207 100644 --- a/Doxygen_files/example/doxygen_gtkradiant.css +++ b/Doxygen_files/example/doxygen_gtkradiant.css @@ -1,35 +1,35 @@ -body { background-color: black; } -IMG { border-color: #222222; border: 1; } -em { font-size: 11px; font-style: italic; font-weight: normal; color: #888888; } -H1 { text-align: center; font-size: 15px; color: #2222AA; font-family: Geneva, Verdana, Helvetica, Arial, sans-serif; } -H3 { text-align: center; font-size: 18px; color: #2222AA; font-family: Geneva, Verdana, Helvetica, Arial, sans-serif; } -A { text-decoration: none; color: #6666DD; } -A:HOVER { text-decoration: underline; color: #4444FF; } -A:VISITED { text-decoration: none; color: #8888AA; } -A.qindex { text-decoration: none; color: #6666DD; font-size: 11px; } -A.qindex:HOVER { text-decoration: underline; color: #4444FF; font-size: 11px; } -A.qindex:VISITED { text-decoration: none; color: #8888AA; font-size: 11px; } -A.qindexRef { font-size: 11px; } -A.el { text-decoration: none; font-weight: bold; } -A.elRef { font-weight: bold; } -A.code { text-decoration: none; font-weight: normal; color: #6666DD; } -A.code:HOVER { text-decoration: underline; font-weight: normal; color: #4444FF; } -A.code:VISITED { text-decoration: none; font-weight: normal; color: #8888AA; } -A.codeRef { text-decoration: none; font-weight: normal; color: #6666DD; } -A.codeRef:HOVER { text-decoration: underline; font-weight: normal; color: #4444FF; } -A.codeRef:VISITED { text-decoration: none; font-weight: normal; color: #8888AA; } -DL.el { margin-left: 2cm; width: 99%; } -DIV.fragment { background-color: #FFFFFF; width: 99%; } -DIV.ah { background-color: #AAAAAA; width: 99%; margin-bottom: 3; margin-top: 3; } -TD.md { cellpadding: 2; background-color: #DDDDDD; border: 1; width: 99%; color: #222222; } -DIV.groupHeader { margin-left: 16; margin-top: 12; margin-bottom: 6; font-weight: bold; color: #222222; } -DIV.groupText { margin-left: 16; font-style: italic; font-size: smaller; } -FONT.keyword { color: #0080A0; } -FONT.keywordtype { color: #604020; } -FONT.keywordflow { color: #E08000; } -FONT.comment { color: #800000; } -FONT.comment { color: #009900; text-decoration: italic; } -FONT.preprocessor { color: #806020; } -FONT.stringliteral{ color: #002080; } -FONT.charliteral { color: #008080; } - +body { background-color: black; } +IMG { border-color: #222222; border: 1; } +em { font-size: 11px; font-style: italic; font-weight: normal; color: #888888; } +H1 { text-align: center; font-size: 15px; color: #2222AA; font-family: Geneva, Verdana, Helvetica, Arial, sans-serif; } +H3 { text-align: center; font-size: 18px; color: #2222AA; font-family: Geneva, Verdana, Helvetica, Arial, sans-serif; } +A { text-decoration: none; color: #6666DD; } +A:HOVER { text-decoration: underline; color: #4444FF; } +A:VISITED { text-decoration: none; color: #8888AA; } +A.qindex { text-decoration: none; color: #6666DD; font-size: 11px; } +A.qindex:HOVER { text-decoration: underline; color: #4444FF; font-size: 11px; } +A.qindex:VISITED { text-decoration: none; color: #8888AA; font-size: 11px; } +A.qindexRef { font-size: 11px; } +A.el { text-decoration: none; font-weight: bold; } +A.elRef { font-weight: bold; } +A.code { text-decoration: none; font-weight: normal; color: #6666DD; } +A.code:HOVER { text-decoration: underline; font-weight: normal; color: #4444FF; } +A.code:VISITED { text-decoration: none; font-weight: normal; color: #8888AA; } +A.codeRef { text-decoration: none; font-weight: normal; color: #6666DD; } +A.codeRef:HOVER { text-decoration: underline; font-weight: normal; color: #4444FF; } +A.codeRef:VISITED { text-decoration: none; font-weight: normal; color: #8888AA; } +DL.el { margin-left: 2cm; width: 99%; } +DIV.fragment { background-color: #FFFFFF; width: 99%; } +DIV.ah { background-color: #AAAAAA; width: 99%; margin-bottom: 3; margin-top: 3; } +TD.md { cellpadding: 2; background-color: #DDDDDD; border: 1; width: 99%; color: #222222; } +DIV.groupHeader { margin-left: 16; margin-top: 12; margin-bottom: 6; font-weight: bold; color: #222222; } +DIV.groupText { margin-left: 16; font-style: italic; font-size: smaller; } +FONT.keyword { color: #0080A0; } +FONT.keywordtype { color: #604020; } +FONT.keywordflow { color: #E08000; } +FONT.comment { color: #800000; } +FONT.comment { color: #009900; text-decoration: italic; } +FONT.preprocessor { color: #806020; } +FONT.stringliteral{ color: #002080; } +FONT.charliteral { color: #008080; } + diff --git a/contrib/bobtoolz/bt/bt-el1.txt b/contrib/bobtoolz/bt/bt-el1.txt index f6485f9..d49e356 100644 --- a/contrib/bobtoolz/bt/bt-el1.txt +++ b/contrib/bobtoolz/bt/bt-el1.txt @@ -14,4 +14,4 @@ common/origin common/trigger common/weapclip liquid -fog \ No newline at end of file +fog diff --git a/contrib/bobtoolz/bt/ctf-blue.txt b/contrib/bobtoolz/bt/ctf-blue.txt index 5a5f6ca..a3af594 100644 --- a/contrib/bobtoolz/bt/ctf-blue.txt +++ b/contrib/bobtoolz/bt/ctf-blue.txt @@ -58,4 +58,4 @@ team_icon/the fallen_blue team_icon/intruders_blue team_icon/crusaders_blue team_icon/pagans_blue -team_icon/stroggs_blue \ No newline at end of file +team_icon/stroggs_blue diff --git a/contrib/bobtoolz/bt/ctf-red.txt b/contrib/bobtoolz/bt/ctf-red.txt index 8dec85e..4b37582 100644 --- a/contrib/bobtoolz/bt/ctf-red.txt +++ b/contrib/bobtoolz/bt/ctf-red.txt @@ -58,4 +58,4 @@ team_icon/the fallen_red team_icon/intruders_red team_icon/crusaders_red team_icon/pagans_red -team_icon/stroggs_red \ No newline at end of file +team_icon/stroggs_red diff --git a/contrib/bobtoolz/bt/door-tex-trim.txt b/contrib/bobtoolz/bt/door-tex-trim.txt index d52ef76..f0ab077 100644 --- a/contrib/bobtoolz/bt/door-tex-trim.txt +++ b/contrib/bobtoolz/bt/door-tex-trim.txt @@ -2,4 +2,4 @@ base_support/support1rust base_support/support1shiny base_support/support2rust base_support/wplat1_1 -base_support/plate2_5 \ No newline at end of file +base_support/plate2_5 diff --git a/contrib/bobtoolz/bt/door-tex.txt b/contrib/bobtoolz/bt/door-tex.txt index 6962998..efcb96a 100644 --- a/contrib/bobtoolz/bt/door-tex.txt +++ b/contrib/bobtoolz/bt/door-tex.txt @@ -7,4 +7,4 @@ gothic_door/door02_i_ornate5_fin gothic_door/door02_j gothic_door/door02_j3 gothic_door/door02_j4 -gothic_door/door02_k2b \ No newline at end of file +gothic_door/door02_k2b diff --git a/contrib/bobtoolz/bt/tp_ent.txt b/contrib/bobtoolz/bt/tp_ent.txt index f0645b3..0909657 100644 --- a/contrib/bobtoolz/bt/tp_ent.txt +++ b/contrib/bobtoolz/bt/tp_ent.txt @@ -11,4 +11,4 @@ "pitch" "-5" "5" "yaw" "0" "360" "scale" "1" "1.3" -} \ No newline at end of file +} diff --git a/contrib/bobtoolz/txt/readme.txt b/contrib/bobtoolz/txt/readme.txt index 5c0fedd..271a018 100644 --- a/contrib/bobtoolz/txt/readme.txt +++ b/contrib/bobtoolz/txt/readme.txt @@ -74,4 +74,4 @@ Thanx: Thx to RKone, for improving my q3w sig. Azr for giving me ops in #qeradiant, k3wl :] Everyone at the Quake3World Forums, I think of you all as my little worshippers :P - id Software, of course. \ No newline at end of file + id Software, of course. diff --git a/contrib/prtview/PrtView.txt b/contrib/prtview/PrtView.txt index 50228e0..b88e610 100644 --- a/contrib/prtview/PrtView.txt +++ b/contrib/prtview/PrtView.txt @@ -9,4 +9,4 @@ and the hint shader may have to be modified to set it. As of this writing, I do not know all the details. Geoffrey DeWan -gdewan@prairienet.org \ No newline at end of file +gdewan@prairienet.org diff --git a/docs/developer/RegExp/replace.pl b/docs/developer/RegExp/replace.pl index 83d8a88..b0e6181 100644 --- a/docs/developer/RegExp/replace.pl +++ b/docs/developer/RegExp/replace.pl @@ -14,4 +14,4 @@ s/Sys_Printf\(/Sys_FPrintf \(SYS_VRB,/; print OFILE; } close(OFILE); -close(FILE); \ No newline at end of file +close(FILE); diff --git a/docs/developer/RegExp/tstscrpt.pl b/docs/developer/RegExp/tstscrpt.pl index a7194b1..9b06376 100644 --- a/docs/developer/RegExp/tstscrpt.pl +++ b/docs/developer/RegExp/tstscrpt.pl @@ -14,4 +14,4 @@ s/Sys_Printf\(/Sys_FPrintf \(SYS_VRB,/; print OFILE; } close(OFILE); -close(FILE); \ No newline at end of file +close(FILE); diff --git a/docs/developer/q3mapfeedback.txt b/docs/developer/q3mapfeedback.txt index 94e0038..0f3aa7f 100644 --- a/docs/developer/q3mapfeedback.txt +++ b/docs/developer/q3mapfeedback.txt @@ -30,4 +30,4 @@ uses xml_Select as other warnings, switched xml_Select to error or warn -> both in Desktop_p_leaf.map, contributed by y_lavanant@vistech.ie Mesh lightmap miscount -(no test map) \ No newline at end of file +(no test map) diff --git a/docs/manual/Q3Rad_Manual/styles/q3rad.css b/docs/manual/Q3Rad_Manual/styles/q3rad.css index b4daab9..c53fbcc 100644 --- a/docs/manual/Q3Rad_Manual/styles/q3rad.css +++ b/docs/manual/Q3Rad_Manual/styles/q3rad.css @@ -1,23 +1,23 @@ -body { font: 12pt "Times New Roman"; - margin-left: 5mm; - margin-right: 5mm; - text-align: justify; - background: #ffffff; - color: #000000 } -h1 { font: bold 24pt Arial, Helvetica } -h2 { font: bold italic 18pt Arial, Helvetica } -.subheading { font: bold 16pt Arial, Helvetica } -:link {color: blue; - text-decoration: none; } -:visited {color: purple; - text-decoration: none; } -h6 { font: 10pt "Times New Roman" } -.MsoToc2 { font: bold small-caps 12pt "Times New Roman" } -.MsoTitle { text-align:center; - font: bold 24pt "BankGothic Md BT"; - letter-spacing:2.5pt } -.heading { font: italic 10pt "Times New Roman" } -.subcontents { font: 10pt "Times New Roman" } -.tip { font: 10pt "Comic Sans MS" } -.type { font: 10pt "Courier New" } -.menu { font: 10pt Arial, Helvetica } \ No newline at end of file +body { font: 12pt "Times New Roman"; + margin-left: 5mm; + margin-right: 5mm; + text-align: justify; + background: #ffffff; + color: #000000 } +h1 { font: bold 24pt Arial, Helvetica } +h2 { font: bold italic 18pt Arial, Helvetica } +.subheading { font: bold 16pt Arial, Helvetica } +:link {color: blue; + text-decoration: none; } +:visited {color: purple; + text-decoration: none; } +h6 { font: 10pt "Times New Roman" } +.MsoToc2 { font: bold small-caps 12pt "Times New Roman" } +.MsoTitle { text-align:center; + font: bold 24pt "BankGothic Md BT"; + letter-spacing:2.5pt } +.heading { font: italic 10pt "Times New Roman" } +.subcontents { font: 10pt "Times New Roman" } +.tip { font: 10pt "Comic Sans MS" } +.type { font: 10pt "Courier New" } +.menu { font: 10pt Arial, Helvetica } diff --git a/docs/manual/quake3/Model_Manual/styles/q3rad.css b/docs/manual/quake3/Model_Manual/styles/q3rad.css index b4daab9..c53fbcc 100644 --- a/docs/manual/quake3/Model_Manual/styles/q3rad.css +++ b/docs/manual/quake3/Model_Manual/styles/q3rad.css @@ -1,23 +1,23 @@ -body { font: 12pt "Times New Roman"; - margin-left: 5mm; - margin-right: 5mm; - text-align: justify; - background: #ffffff; - color: #000000 } -h1 { font: bold 24pt Arial, Helvetica } -h2 { font: bold italic 18pt Arial, Helvetica } -.subheading { font: bold 16pt Arial, Helvetica } -:link {color: blue; - text-decoration: none; } -:visited {color: purple; - text-decoration: none; } -h6 { font: 10pt "Times New Roman" } -.MsoToc2 { font: bold small-caps 12pt "Times New Roman" } -.MsoTitle { text-align:center; - font: bold 24pt "BankGothic Md BT"; - letter-spacing:2.5pt } -.heading { font: italic 10pt "Times New Roman" } -.subcontents { font: 10pt "Times New Roman" } -.tip { font: 10pt "Comic Sans MS" } -.type { font: 10pt "Courier New" } -.menu { font: 10pt Arial, Helvetica } \ No newline at end of file +body { font: 12pt "Times New Roman"; + margin-left: 5mm; + margin-right: 5mm; + text-align: justify; + background: #ffffff; + color: #000000 } +h1 { font: bold 24pt Arial, Helvetica } +h2 { font: bold italic 18pt Arial, Helvetica } +.subheading { font: bold 16pt Arial, Helvetica } +:link {color: blue; + text-decoration: none; } +:visited {color: purple; + text-decoration: none; } +h6 { font: 10pt "Times New Roman" } +.MsoToc2 { font: bold small-caps 12pt "Times New Roman" } +.MsoTitle { text-align:center; + font: bold 24pt "BankGothic Md BT"; + letter-spacing:2.5pt } +.heading { font: italic 10pt "Times New Roman" } +.subcontents { font: 10pt "Times New Roman" } +.tip { font: 10pt "Comic Sans MS" } +.type { font: 10pt "Courier New" } +.menu { font: 10pt Arial, Helvetica } diff --git a/docs/manual/quake3/Q3AShader_Manual/styles/q3rad.css b/docs/manual/quake3/Q3AShader_Manual/styles/q3rad.css index b4daab9..c53fbcc 100644 --- a/docs/manual/quake3/Q3AShader_Manual/styles/q3rad.css +++ b/docs/manual/quake3/Q3AShader_Manual/styles/q3rad.css @@ -1,23 +1,23 @@ -body { font: 12pt "Times New Roman"; - margin-left: 5mm; - margin-right: 5mm; - text-align: justify; - background: #ffffff; - color: #000000 } -h1 { font: bold 24pt Arial, Helvetica } -h2 { font: bold italic 18pt Arial, Helvetica } -.subheading { font: bold 16pt Arial, Helvetica } -:link {color: blue; - text-decoration: none; } -:visited {color: purple; - text-decoration: none; } -h6 { font: 10pt "Times New Roman" } -.MsoToc2 { font: bold small-caps 12pt "Times New Roman" } -.MsoTitle { text-align:center; - font: bold 24pt "BankGothic Md BT"; - letter-spacing:2.5pt } -.heading { font: italic 10pt "Times New Roman" } -.subcontents { font: 10pt "Times New Roman" } -.tip { font: 10pt "Comic Sans MS" } -.type { font: 10pt "Courier New" } -.menu { font: 10pt Arial, Helvetica } \ No newline at end of file +body { font: 12pt "Times New Roman"; + margin-left: 5mm; + margin-right: 5mm; + text-align: justify; + background: #ffffff; + color: #000000 } +h1 { font: bold 24pt Arial, Helvetica } +h2 { font: bold italic 18pt Arial, Helvetica } +.subheading { font: bold 16pt Arial, Helvetica } +:link {color: blue; + text-decoration: none; } +:visited {color: purple; + text-decoration: none; } +h6 { font: 10pt "Times New Roman" } +.MsoToc2 { font: bold small-caps 12pt "Times New Roman" } +.MsoTitle { text-align:center; + font: bold 24pt "BankGothic Md BT"; + letter-spacing:2.5pt } +.heading { font: italic 10pt "Times New Roman" } +.subcontents { font: 10pt "Times New Roman" } +.tip { font: 10pt "Comic Sans MS" } +.type { font: 10pt "Courier New" } +.menu { font: 10pt Arial, Helvetica } diff --git a/libs/multimon.h b/libs/multimon.h index 638e353..85e7654 100644 --- a/libs/multimon.h +++ b/libs/multimon.h @@ -378,4 +378,4 @@ typedef struct { #endif // WIN32 -#endif // __MULTIMON_H \ No newline at end of file +#endif // __MULTIMON_H diff --git a/libs/synapse/doc/design.txt b/libs/synapse/doc/design.txt index e3da4dc..ba96ebc 100644 --- a/libs/synapse/doc/design.txt +++ b/libs/synapse/doc/design.txt @@ -187,4 +187,4 @@ Configuration ------------- the config info needs to go down to the clients too -for instance, mapxml loaded for q3map or radiant, doesn't rely on the same major? \ No newline at end of file +for instance, mapxml loaded for q3map or radiant, doesn't rely on the same major? diff --git a/libs/synapse/doc/runtime.txt b/libs/synapse/doc/runtime.txt index fd376d5..d9657e9 100644 --- a/libs/synapse/doc/runtime.txt +++ b/libs/synapse/doc/runtime.txt @@ -56,4 +56,4 @@ without this config file though, as it is looked up by the main program and hand over to synapse before init? Possibly .. we'll just pass a NULL config node ptr Add the config file path to CSynpaseServer::Initialize, pass the loaded XML file to -the clients. Do we need to wrap in an object with some convenience functions? \ No newline at end of file +the clients. Do we need to wrap in an object with some convenience functions? diff --git a/plugins/model/model.def b/plugins/model/model.def index 18e255e..01cee0f 100644 --- a/plugins/model/model.def +++ b/plugins/model/model.def @@ -5,4 +5,4 @@ DESCRIPTION 'MODEL Windows Dynamic Link Library' EXPORTS ; Explicit exports can go here - Synapse_EnumerateInterfaces @1 \ No newline at end of file + Synapse_EnumerateInterfaces @1 diff --git a/plugins/model/surface.h b/plugins/model/surface.h index 43d9b27..38a28ac 100644 --- a/plugins/model/surface.h +++ b/plugins/model/surface.h @@ -35,4 +35,4 @@ protected: int refCount; aabb_t m_BBox; IShader *m_pShader; -}; \ No newline at end of file +}; diff --git a/plugins/textool/changelog.txt b/plugins/textool/changelog.txt index 9d660cb..bd67a17 100644 --- a/plugins/textool/changelog.txt +++ b/plugins/textool/changelog.txt @@ -5,4 +5,4 @@ here is the TODO-list for next release, ( most certainly a wish list ) - TODO: add hooks with the selected face and selected patch data. tell the plugin when selected face or selected patch has changed. the hooks should use a generic interface inside Radiant for "observers" -- TODO: add other usefull texturing tools, if designers come up with good ideas \ No newline at end of file +- TODO: add other usefull texturing tools, if designers come up with good ideas diff --git a/radiant/mainframe.cpp b/radiant/mainframe.cpp index c1010f9..cd9f248 100644 --- a/radiant/mainframe.cpp +++ b/radiant/mainframe.cpp @@ -124,6 +124,7 @@ SCommandInfo g_Commands[] = {"CSGMerge", 'U', 0x04, ID_SELECTION_CSGMERGE, "menu_selection_csgmerge"}, {"CSGSubtract", 'U', 0x01, ID_SELECTION_CSGSUBTRACT, "menu_selection_csgsubstract"}, // {"ViewGroups", 'G', 0x00, ID_VIEW_GROUPS, "menu_view_groups"}, (temporary disabled) + {"SelectFuncGroup", 'G', 0x00, ID_SELECT_FUNC_GROUP, "menu_select_func_group"}, {"HideSelected", 'H', 0x00, ID_VIEW_HIDESHOW_HIDESELECTED, "menu_view_hideshow_hideselected"}, {"ShowHidden", 'H', 0x01, ID_VIEW_HIDESHOW_SHOWHIDDEN, "menu_view_hideshow_showhidden"}, {"BendMode", 'B', 0x00, ID_PATCH_BEND, "menu_patch_bend"}, @@ -426,6 +427,7 @@ gint HandleCommand (GtkWidget *widget, gpointer data) case ID_TOGGLECONSOLE: g_pParentWnd->OnToggleconsole (); break; case ID_VIEW_ENTITY: g_pParentWnd->OnViewEntity (); break; case ID_VIEW_GROUPS: g_pParentWnd->OnViewGroups (); break; + case ID_SELECT_FUNC_GROUP: g_pParentWnd->OnSelectFuncGroup(); break; case ID_TOGGLEVIEW: g_pParentWnd->OnToggleview (); break; case ID_TOGGLEVIEW_YZ: g_pParentWnd->OnToggleviewYz (); break; case ID_TOGGLEVIEW_XZ: g_pParentWnd->OnToggleviewXz (); break; @@ -1202,6 +1204,7 @@ void MainFrame::create_main_menu (GtkWidget *window, GtkWidget *vbox) GTK_SIGNAL_FUNC (HandleCommand), ID_SELECTION_SELECTPARTIALTALL); create_menu_item_with_mnemonic (menu_in_menu, "Select _Inside", GTK_SIGNAL_FUNC (HandleCommand), ID_SELECTION_SELECTINSIDE); + create_menu_item_with_mnemonic (menu_in_menu, "Select Func _Group", GTK_SIGNAL_FUNC (HandleCommand), ID_SELECT_FUNC_GROUP); #ifndef QUAKE3 create_menu_item_with_mnemonic (menu_in_menu, "Nudge Left", GTK_SIGNAL_FUNC (HandleCommand), ID_SELECTION_SELECT_NUDGELEFT); @@ -7059,6 +7062,23 @@ void MainFrame::OnPatchTab() } } +void MainFrame::OnSelectFuncGroup() +{ + // check to see if the selected brush is part of a func group + // if it is, deselect everything and reselect the next brush + // in the group + brush_t *b2, *b = selected_brushes.next; + entity_t * e; + if (b != &selected_brushes) + { + if (strcmpi(b->owner->eclass->name, "worldspawn") != 0) + { + e = b->owner; + Select_SelectGroup(e); + } + } +} + void MainFrame::OnCameraForward(bool keydown) { if (g_PrefsDlg.m_bCamDiscrete && (m_pCamWnd && !m_pCamWnd->m_bFreeMove) ) diff --git a/radiant/mainframe.h b/radiant/mainframe.h index 23a4264..6f3d52f 100644 --- a/radiant/mainframe.h +++ b/radiant/mainframe.h @@ -407,6 +407,8 @@ struct SKeyInfo #define ID_COLORS_MINOR_ALT 40230 #define ID_COLORS_MAJOR_ALT 40231 +#define ID_SELECT_FUNC_GROUP 40233 + // those must have their own ID chunk ID_GRID_025 <= ID_GRID <= ID_GRID_256 #define ID_GRID_025 40300 #define ID_GRID_05 40301 @@ -891,6 +893,7 @@ public: void OnFilterPaths(); void OnFilterClusterportals(); void OnFilterLightgrid(); + void OnSelectFuncGroup(); private: EViewStyle m_nCurrentStyle; diff --git a/radiant/select.cpp b/radiant/select.cpp index f563d2d..470cb77 100644 --- a/radiant/select.cpp +++ b/radiant/select.cpp @@ -1372,6 +1372,30 @@ void Select_Inside (void) Sys_UpdateWindows (W_ALL); } +void Select_SelectGroup(entity_t* group) +{ + brush_t* b; + //brush_t* next; + + Undo_Start ("select func group"); + Undo_AddBrushList (&selected_brushes); + Undo_End(); + + Select_Deselect(); + + b = &group->brushes; + + do + { + b = b->onext; + Brush_RemoveFromList(b); + Brush_AddToList(b, &selected_brushes); + } while( b->onext != &group->brushes ); + + Sys_UpdateWindows (W_ALL); +} + + void Select_Ungroup(void) { int numselectedgroups; diff --git a/radiant/select.h b/radiant/select.h index 4271816..5cf2181 100644 --- a/radiant/select.h +++ b/radiant/select.h @@ -65,6 +65,8 @@ void Select_AllOfType(); void Select_Reselect(); void Select_FitTexture(int nHeight = 1, int nWidth = 1); +void Select_SelectGroup(entity_t* group); + // absolute texture coordinates // TTimo NOTE: this is stuff for old brushes format and rotation texture lock .. sort of in-between with bush primitives void ComputeAbsolute(face_t* f, vec3_t& p1, vec3_t& p2, vec3_t& p3); diff --git a/tools/quake2/qdata_heretic2/anorms.h b/tools/quake2/qdata_heretic2/anorms.h index f240902..30fb228 100644 --- a/tools/quake2/qdata_heretic2/anorms.h +++ b/tools/quake2/qdata_heretic2/anorms.h @@ -180,4 +180,4 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA {-0.425325f, 0.688191f, -0.587785f}, {-0.425325f, -0.688191f, -0.587785f}, {-0.587785f, -0.425325f, -0.688191f}, - {-0.688191f, -0.587785f, -0.425325f}, \ No newline at end of file + {-0.688191f, -0.587785f, -0.425325f}, diff --git a/tools/quake3/q3map2/bsp.c b/tools/quake3/q3map2/bsp.c index ed3d243..55b741a 100644 --- a/tools/quake3/q3map2/bsp.c +++ b/tools/quake3/q3map2/bsp.c @@ -44,6 +44,76 @@ functions ------------------------------------------------------------------------------- */ +/* +ProcessAdvertisements() +copies advertisement info into the BSP structures +*/ + +static void ProcessAdvertisements( void ) { + int i; + const char* className; + const char* modelKey; + int modelNum; + bspModel_t* adModel; + bspDrawSurface_t* adSurface; + + Sys_FPrintf( SYS_VRB, "--- ProcessAdvertisements ---\n" ); + + for( i = 0; i < numEntities; i++ ) { + + /* is an advertisement? */ + className = ValueForKey( &entities[ i ], "classname" ); + + if( !Q_stricmp( "advertisement", className ) ) { + + modelKey = ValueForKey( &entities[ i ], "model" ); + + if( strlen( modelKey ) > MAX_QPATH - 1 ) { + Error( "Model Key for entity exceeds ad struct string length." ); + } else { + if( numBSPAds < MAX_MAP_ADVERTISEMENTS ) { + bspAds[numBSPAds].cellId = IntForKey( &entities[ i ], "cellId" ); + strncpy( bspAds[numBSPAds].model, modelKey, sizeof( bspAds[numBSPAds].model ) ); + + modelKey++; + modelNum = atoi( modelKey ); + adModel = &bspModels[modelNum]; + + if( adModel->numBSPSurfaces != 1 ) { + Error( "Ad cell id %d has more than one surface.", bspAds[numBSPAds].cellId ); + } + + adSurface = &bspDrawSurfaces[adModel->firstBSPSurface]; + + // store the normal for use at run time.. all ad verts are assumed to + // have identical normals (because they should be a simple rectangle) + // so just use the first vert's normal + VectorCopy( bspDrawVerts[adSurface->firstVert].normal, bspAds[numBSPAds].normal ); + + // store the ad quad for quick use at run time + if( adSurface->surfaceType == MST_PATCH ) { + int v0 = adSurface->firstVert + adSurface->patchHeight - 1; + int v1 = adSurface->firstVert + adSurface->numVerts - 1; + int v2 = adSurface->firstVert + adSurface->numVerts - adSurface->patchWidth; + int v3 = adSurface->firstVert; + VectorCopy( bspDrawVerts[v0].xyz, bspAds[numBSPAds].rect[0] ); + VectorCopy( bspDrawVerts[v1].xyz, bspAds[numBSPAds].rect[1] ); + VectorCopy( bspDrawVerts[v2].xyz, bspAds[numBSPAds].rect[2] ); + VectorCopy( bspDrawVerts[v3].xyz, bspAds[numBSPAds].rect[3] ); + } else { + Error( "Ad cell %d has an unsupported Ad Surface type.", bspAds[numBSPAds].cellId ); + } + + numBSPAds++; + } else { + Error( "Maximum number of map advertisements exceeded." ); + } + } + } + } + + Sys_FPrintf( SYS_VRB, "%9d in-game advertisements\n", numBSPAds ); +} /* SetCloneModelNumbers() - ydnar @@ -840,6 +910,9 @@ int BSPMain( int argc, char **argv ) /* set light styles from targetted light entities */ SetLightStyles(); + /* process in game advertisements */ + ProcessAdvertisements(); + /* finish and write bsp */ EndBSPFile(); diff --git a/tools/quake3/q3map2/bspfile_abstract.c b/tools/quake3/q3map2/bspfile_abstract.c index ae2fec3..88b251c 100644 --- a/tools/quake3/q3map2/bspfile_abstract.c +++ b/tools/quake3/q3map2/bspfile_abstract.c @@ -239,6 +239,24 @@ void SwapBSPFile( void ) bspFogs[ i ].brushNum = LittleLong( bspFogs[ i ].brushNum ); bspFogs[ i ].visibleSide = LittleLong( bspFogs[ i ].visibleSide ); } + + /* advertisements */ + for( i = 0; i < numBSPAds; i++ ) + { + bspAds[ i ].cellId = LittleLong( bspAds[ i ].cellId ); + bspAds[ i ].normal[ 0 ] = LittleFloat( bspAds[ i ].normal[ 0 ] ); + bspAds[ i ].normal[ 1 ] = LittleFloat( bspAds[ i ].normal[ 1 ] ); + bspAds[ i ].normal[ 2 ] = LittleFloat( bspAds[ i ].normal[ 2 ] ); + + for( j = 0; j < 4; j++ ) + { + bspAds[ i ].rect[j][ 0 ] = LittleFloat( bspAds[ i ].rect[j][ 0 ] ); + bspAds[ i ].rect[j][ 1 ] = LittleFloat( bspAds[ i ].rect[j][ 1 ] ); + bspAds[ i ].rect[j][ 2 ] = LittleFloat( bspAds[ i ].rect[j][ 2 ] ); + } + + //bspAds[ i ].model[ MAX_QPATH ]; + } } diff --git a/tools/quake3/q3map2/bspfile_ibsp.c b/tools/quake3/q3map2/bspfile_ibsp.c index 71b982d..5671460 100644 --- a/tools/quake3/q3map2/bspfile_ibsp.c +++ b/tools/quake3/q3map2/bspfile_ibsp.c @@ -63,7 +63,8 @@ into the abstracted bsp file used by q3map2. #define LUMP_LIGHTMAPS 14 #define LUMP_LIGHTGRID 15 #define LUMP_VISIBILITY 16 -#define HEADER_LUMPS 17 +#define LUMP_ADVERTISEMENTS 17 +#define HEADER_LUMPS 18 /* types */ @@ -452,8 +453,6 @@ static void AddLightGridLumps( FILE *file, ibspHeader_t *header ) free( buffer ); } - - /* LoadIBSPFile() loads a quake 3 bsp file into memory @@ -512,7 +511,10 @@ void LoadIBSPFile( const char *filename ) bspEntDataSize = CopyLump( (bspHeader_t*) header, LUMP_ENTITIES, bspEntData, 1); CopyLightGridLumps( header ); - + + /* advertisements */ + numBSPAds = CopyLump( (bspHeader_t*) header, LUMP_ADVERTISEMENTS, bspAds, sizeof( bspAdvertisement_t ) ); + /* free the file buffer */ free( header ); } @@ -570,7 +572,10 @@ void WriteIBSPFile( const char *filename ) AddLump( file, (bspHeader_t*) header, LUMP_ENTITIES, bspEntData, bspEntDataSize ); AddLump( file, (bspHeader_t*) header, LUMP_FOGS, bspFogs, numBSPFogs * sizeof( bspFog_t ) ); AddLump( file, (bspHeader_t*) header, LUMP_DRAWINDEXES, bspDrawIndexes, numBSPDrawIndexes * sizeof( bspDrawIndexes[ 0 ] ) ); - + + /* advertisements */ + AddLump( file, (bspHeader_t*) header, LUMP_ADVERTISEMENTS, bspAds, numBSPAds * sizeof( bspAdvertisement_t ) ); + /* emit bsp size */ size = ftell( file ); Sys_Printf( "Wrote %.1f MB (%d bytes)\n", (float) size / (1024 * 1024), size ); diff --git a/tools/quake3/q3map2/game_quake3.h b/tools/quake3/q3map2/game_quake3.h index 9b55787..d42219d 100644 --- a/tools/quake3/q3map2/game_quake3.h +++ b/tools/quake3/q3map2/game_quake3.h @@ -107,7 +107,7 @@ game_t struct qfalse, /* flares */ "flareshader", /* default flare shader */ "IBSP", /* bsp file prefix */ - 46, /* bsp file version */ + 47, /* bsp file version */ LoadIBSPFile, /* bsp load function */ WriteIBSPFile, /* bsp write function */ @@ -171,7 +171,6 @@ game_t struct { "nodlight", 0, 0, Q_SURF_NODLIGHT, 0, 0, 0 }, { "dust", 0, 0, Q_SURF_DUST, 0, 0, 0 }, - /* null */ { NULL, 0, 0, 0, 0, 0, 0 } } diff --git a/tools/quake3/q3map2/light.c b/tools/quake3/q3map2/light.c index 670c9a0..32e155c 100644 --- a/tools/quake3/q3map2/light.c +++ b/tools/quake3/q3map2/light.c @@ -322,6 +322,10 @@ void CreateEntityLights( void ) if( light->style < LS_NORMAL || light->style >= LS_NONE ) Error( "Invalid lightstyle (%d) on entity %d", light->style, i ); + if( light->style != LS_NORMAL ) { + Sys_FPrintf (SYS_WRN, "WARNING: Styled light found targeting %s\n **", target ); + } + /* set light intensity */ intensity = FloatForKey( e, "_light" ); if( intensity == 0.0f ) diff --git a/tools/quake3/q3map2/light_shadows.c b/tools/quake3/q3map2/light_shadows.c index df7cdd8..d482bbc 100644 --- a/tools/quake3/q3map2/light_shadows.c +++ b/tools/quake3/q3map2/light_shadows.c @@ -121,4 +121,4 @@ void SetupShadows( void ) } } } -} \ No newline at end of file +} diff --git a/tools/quake3/q3map2/mesh.c b/tools/quake3/q3map2/mesh.c index 9e205da..6348d57 100644 --- a/tools/quake3/q3map2/mesh.c +++ b/tools/quake3/q3map2/mesh.c @@ -381,7 +381,8 @@ mesh_t *SubdivideMesh( mesh_t in, float maxError, float minLength ) float len; mesh_t out; - static bspDrawVert_t expand[MAX_EXPANDED_AXIS][MAX_EXPANDED_AXIS]; + /* ydnar: static for os x */ + MAC_STATIC bspDrawVert_t expand[MAX_EXPANDED_AXIS][MAX_EXPANDED_AXIS]; out.width = in.width; @@ -547,7 +548,8 @@ mesh_t *SubdivideMesh2( mesh_t in, int iterations ) bspDrawVert_t prev, next, mid; mesh_t out; - static bspDrawVert_t expand[ MAX_EXPANDED_AXIS ][ MAX_EXPANDED_AXIS ]; + /* ydnar: static for os x */ + MAC_STATIC bspDrawVert_t expand[ MAX_EXPANDED_AXIS ][ MAX_EXPANDED_AXIS ]; /* initial setup */ @@ -652,7 +654,8 @@ mesh_t *RemoveLinearMeshColumnsRows( mesh_t *in ) { vec3_t proj, dir; mesh_t out; - static bspDrawVert_t expand[MAX_EXPANDED_AXIS][MAX_EXPANDED_AXIS]; + /* ydnar: static for os x */ + MAC_STATIC bspDrawVert_t expand[MAX_EXPANDED_AXIS][MAX_EXPANDED_AXIS]; out.width = in->width; @@ -728,8 +731,7 @@ mesh_t *SubdivideMeshQuads( mesh_t *in, float minLength, int maxsize, int *width vec3_t dir; float length, maxLength, amount; mesh_t out; - - static bspDrawVert_t expand[MAX_EXPANDED_AXIS][MAX_EXPANDED_AXIS]; + bspDrawVert_t expand[MAX_EXPANDED_AXIS][MAX_EXPANDED_AXIS]; out.width = in->width; out.height = in->height; diff --git a/tools/quake3/q3map2/q3map2.h b/tools/quake3/q3map2/q3map2.h index b3402c7..5e90c76 100644 --- a/tools/quake3/q3map2/q3map2.h +++ b/tools/quake3/q3map2/q3map2.h @@ -168,7 +168,6 @@ constants #define C_ANTIPORTAL 0x00004000 /* like hint, but doesn't generate portals */ #define C_SKIP 0x00008000 /* like hint, but skips this face (doesn't split bsp) */ #define C_NOMARKS 0x00010000 /* no decals */ - #define C_DETAIL 0x08000000 /* THIS MUST BE THE SAME AS IN RADIANT! */ @@ -321,6 +320,7 @@ abstracted bsp file #define MAX_MAP_DRAW_VERTS 0x80000 #define MAX_MAP_DRAW_INDEXES 0x80000 +#define MAX_MAP_ADVERTISEMENTS 30 /* key / value pair sizes in the entities lump */ #define MAX_KEY 32 @@ -500,6 +500,14 @@ typedef struct bspDrawSurface_t; +/* advertisements */ +typedef struct { + int cellId; + vec3_t normal; + vec3_t rect[4]; + char model[ MAX_QPATH ]; +} bspAdvertisement_t; + /* ------------------------------------------------------------------------------- @@ -2270,6 +2278,8 @@ Q_EXTERN bspDrawSurface_t *bspDrawSurfaces Q_ASSIGN( NULL ); Q_EXTERN int numBSPFogs Q_ASSIGN( 0 ); Q_EXTERN bspFog_t bspFogs[ MAX_MAP_FOGS ]; +Q_EXTERN int numBSPAds Q_ASSIGN( 0 ); +Q_EXTERN bspAdvertisement_t bspAds[ MAX_MAP_ADVERTISEMENTS ]; /* end marker */ diff --git a/tools/quake3/q3map2/q3map2.vcproj b/tools/quake3/q3map2/q3map2.vcproj index d2a775d..d9402c1 100644 --- a/tools/quake3/q3map2/q3map2.vcproj +++ b/tools/quake3/q3map2/q3map2.vcproj @@ -63,6 +63,8 @@ AdditionalDependencies="md5lib.lib ddslib.lib l_net.lib mathlib.lib picomodel.lib jpeg6.lib libxml2.lib libpng.lib glib-2.0.lib gobject-2.0.lib Wsock32.lib" AdditionalLibraryDirectories=""$(SolutionDir)\..\libxml2\lib";"$(SolutionDir)\..\gtk2\lib";"$(SolutionDir)\build\$(ConfigurationName)\libs"" GenerateDebugInformation="true" + StackReserveSize="2097152" + StackCommitSize="2097152" TargetMachine="1" /> diff --git a/tools/quake3/q3map2/shaders.c b/tools/quake3/q3map2/shaders.c index a098893..24e97f0 100644 --- a/tools/quake3/q3map2/shaders.c +++ b/tools/quake3/q3map2/shaders.c @@ -338,12 +338,13 @@ void WriteMapShaderFile( void ) /* print it to the file */ fprintf( file, "%s%s\n", si->shader, si->shaderText ); - //% Sys_Printf( "%s%s\n", si->shader, si->shaderText ); /* FIXME: remove debugging code */ + //Sys_Printf( "%s%s\n", si->shader, si->shaderText ); /* FIXME: remove debugging code */ Sys_FPrintf( SYS_VRB, "." ); } /* close the shader */ + fflush( file ); fclose( file ); Sys_FPrintf( SYS_VRB, "\n" ); diff --git a/tools/quake3/q3map2/writebsp.c b/tools/quake3/q3map2/writebsp.c index 7fb51d8..caeb1be 100644 --- a/tools/quake3/q3map2/writebsp.c +++ b/tools/quake3/q3map2/writebsp.c @@ -400,6 +400,8 @@ void EndBSPFile( void ) char path[ 1024 ]; + Sys_FPrintf( SYS_VRB, "--- EndBSPFile ---\n" ); + EmitPlanes(); numBSPEntities = numEntities;