mirror of
https://github.com/UberGames/GtkRadiant.git
synced 2024-11-24 04:41:34 +00:00
ABToSVK commit
git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/branches/ZeroRadiant.ab@308 8a3a26a2-13c4-0310-b231-cf6edde360e5
This commit is contained in:
parent
d77fee7551
commit
2def0428da
38 changed files with 340 additions and 171 deletions
|
@ -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; }
|
||||
|
|
|
@ -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; }
|
||||
|
||||
|
|
|
@ -14,4 +14,4 @@ common/origin
|
|||
common/trigger
|
||||
common/weapclip
|
||||
liquid
|
||||
fog
|
||||
fog
|
||||
|
|
|
@ -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
|
||||
team_icon/stroggs_blue
|
||||
|
|
|
@ -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
|
||||
team_icon/stroggs_red
|
||||
|
|
|
@ -2,4 +2,4 @@ base_support/support1rust
|
|||
base_support/support1shiny
|
||||
base_support/support2rust
|
||||
base_support/wplat1_1
|
||||
base_support/plate2_5
|
||||
base_support/plate2_5
|
||||
|
|
|
@ -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
|
||||
gothic_door/door02_k2b
|
||||
|
|
|
@ -11,4 +11,4 @@
|
|||
"pitch" "-5" "5"
|
||||
"yaw" "0" "360"
|
||||
"scale" "1" "1.3"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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.
|
||||
id Software, of course.
|
||||
|
|
|
@ -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
|
||||
gdewan@prairienet.org
|
||||
|
|
|
@ -14,4 +14,4 @@ s/Sys_Printf\(/Sys_FPrintf \(SYS_VRB,/;
|
|||
print OFILE;
|
||||
}
|
||||
close(OFILE);
|
||||
close(FILE);
|
||||
close(FILE);
|
||||
|
|
|
@ -14,4 +14,4 @@ s/Sys_Printf\(/Sys_FPrintf \(SYS_VRB,/;
|
|||
print OFILE;
|
||||
}
|
||||
close(OFILE);
|
||||
close(FILE);
|
||||
close(FILE);
|
||||
|
|
|
@ -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 test map)
|
||||
|
|
|
@ -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 }
|
||||
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 }
|
||||
|
|
|
@ -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 }
|
||||
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 }
|
||||
|
|
|
@ -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 }
|
||||
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 }
|
||||
|
|
|
@ -378,4 +378,4 @@ typedef struct {
|
|||
|
||||
#endif // WIN32
|
||||
|
||||
#endif // __MULTIMON_H
|
||||
#endif // __MULTIMON_H
|
||||
|
|
|
@ -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?
|
||||
for instance, mapxml loaded for q3map or radiant, doesn't rely on the same major?
|
||||
|
|
|
@ -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?
|
||||
the clients. Do we need to wrap in an object with some convenience functions?
|
||||
|
|
|
@ -5,4 +5,4 @@ DESCRIPTION 'MODEL Windows Dynamic Link Library'
|
|||
|
||||
EXPORTS
|
||||
; Explicit exports can go here
|
||||
Synapse_EnumerateInterfaces @1
|
||||
Synapse_EnumerateInterfaces @1
|
||||
|
|
|
@ -35,4 +35,4 @@ protected:
|
|||
int refCount;
|
||||
aabb_t m_BBox;
|
||||
IShader *m_pShader;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -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
|
||||
- TODO: add other usefull texturing tools, if designers come up with good ideas
|
||||
|
|
|
@ -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) )
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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},
|
||||
{-0.688191f, -0.587785f, -0.425325f},
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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 ];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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 }
|
||||
}
|
||||
|
|
|
@ -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 )
|
||||
|
|
|
@ -121,4 +121,4 @@ void SetupShadows( void )
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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"
|
||||
/>
|
||||
<Tool
|
||||
|
@ -88,6 +90,7 @@
|
|||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy "$(TargetPath)" C:\alienbrainWork\QuakeZero\radiant\$(TargetFileName)"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
|
@ -137,6 +140,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"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
|
@ -164,6 +169,7 @@
|
|||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy "$(TargetPath)" C:\alienbrainWork\QuakeZero\radiant\$(TargetFileName)"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
|
|
|
@ -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" );
|
||||
|
|
|
@ -400,6 +400,8 @@ void EndBSPFile( void )
|
|||
char path[ 1024 ];
|
||||
|
||||
|
||||
Sys_FPrintf( SYS_VRB, "--- EndBSPFile ---\n" );
|
||||
|
||||
EmitPlanes();
|
||||
|
||||
numBSPEntities = numEntities;
|
||||
|
|
Loading…
Reference in a new issue