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:
TTimo 2008-08-24 03:20:51 +00:00
parent d77fee7551
commit 2def0428da
38 changed files with 340 additions and 171 deletions

View file

@ -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; }

View file

@ -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; }

View file

@ -14,4 +14,4 @@ common/origin
common/trigger
common/weapclip
liquid
fog
fog

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -11,4 +11,4 @@
"pitch" "-5" "5"
"yaw" "0" "360"
"scale" "1" "1.3"
}
}

View file

@ -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.

View file

@ -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

View file

@ -14,4 +14,4 @@ s/Sys_Printf\(/Sys_FPrintf \(SYS_VRB,/;
print OFILE;
}
close(OFILE);
close(FILE);
close(FILE);

View file

@ -14,4 +14,4 @@ s/Sys_Printf\(/Sys_FPrintf \(SYS_VRB,/;
print OFILE;
}
close(OFILE);
close(FILE);
close(FILE);

View 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)

View file

@ -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 }

View file

@ -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 }

View file

@ -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 }

View file

@ -378,4 +378,4 @@ typedef struct {
#endif // WIN32
#endif // __MULTIMON_H
#endif // __MULTIMON_H

View file

@ -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?

View file

@ -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?

View file

@ -5,4 +5,4 @@ DESCRIPTION 'MODEL Windows Dynamic Link Library'
EXPORTS
; Explicit exports can go here
Synapse_EnumerateInterfaces @1
Synapse_EnumerateInterfaces @1

View file

@ -35,4 +35,4 @@ protected:
int refCount;
aabb_t m_BBox;
IShader *m_pShader;
};
};

View file

@ -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

View file

@ -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) )

View file

@ -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;

View file

@ -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;

View file

@ -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);

View file

@ -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},

View file

@ -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();

View file

@ -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 ];
}
}

View file

@ -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 );

View file

@ -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 }
}

View file

@ -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 )

View file

@ -121,4 +121,4 @@ void SetupShadows( void )
}
}
}
}
}

View file

@ -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;

View file

@ -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 */

View file

@ -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="&quot;$(SolutionDir)\..\libxml2\lib&quot;;&quot;$(SolutionDir)\..\gtk2\lib&quot;;&quot;$(SolutionDir)\build\$(ConfigurationName)\libs&quot;"
GenerateDebugInformation="true"
StackReserveSize="2097152"
StackCommitSize="2097152"
TargetMachine="1"
/>
<Tool
@ -88,6 +90,7 @@
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="copy &quot;$(TargetPath)&quot; 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="&quot;$(SolutionDir)\..\libxml2\lib&quot;;&quot;$(SolutionDir)\..\gtk2\lib&quot;;&quot;$(SolutionDir)\build\$(ConfigurationName)\libs&quot;"
GenerateDebugInformation="true"
StackReserveSize="2097152"
StackCommitSize="2097152"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
@ -164,6 +169,7 @@
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="copy &quot;$(TargetPath)&quot; C:\alienbrainWork\QuakeZero\radiant\$(TargetFileName)"
/>
</Configuration>
</Configurations>

View file

@ -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" );

View file

@ -400,6 +400,8 @@ void EndBSPFile( void )
char path[ 1024 ];
Sys_FPrintf( SYS_VRB, "--- EndBSPFile ---\n" );
EmitPlanes();
numBSPEntities = numEntities;