]> de.git.xonotic.org Git - xonotic/netradiant.git/commitdiff
Merge commit '173f350be76237a7dee9c00c389dff4e56b3da4c' into garux-merge
authorThomas Debesse <dev@illwieckz.net>
Mon, 25 May 2020 18:19:04 +0000 (20:19 +0200)
committerThomas Debesse <dev@illwieckz.net>
Mon, 25 May 2020 18:19:04 +0000 (20:19 +0200)
28 files changed:
Makefile
contrib/bobtoolz/visfind.cpp
libs/os/file.h
libs/picomodel/picointernal.c
libs/render.h
plugins/entity/doom3group.cpp
plugins/entity/group.cpp
plugins/entity/light.cpp
radiant/console.cpp
radiant/mainframe.cpp
radiant/preferences.cpp
radiant/texwindow.cpp
radiant/watchbsp.cpp
tools/quake2/common/inout.c
tools/quake2/q2map/qbsp.c
tools/quake2/qdata/images.c
tools/quake2/qdata/video.c
tools/quake2/qdata_heretic2/common/cmdlib.c
tools/quake2/qdata_heretic2/common/inout.c
tools/quake3/common/inout.c
tools/quake3/common/vfs.h
tools/quake3/q3map2/bsp.c
tools/quake3/q3map2/fog.c
tools/quake3/q3map2/light_bounce.c
tools/quake3/q3map2/light_ydnar.c
tools/quake3/q3map2/surface.c
tools/quake3/q3map2/surface_meta.c
tools/quake3/q3map2/tjunction.c

index b7171430b4ff24c39e54095bd0d8baa990591f8c..bf98684f13c36c55cf4768731771b3e33714f9de 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,7 @@ MAKEFILE_CONF      ?= Makefile.conf
 # user customizable stuf
 # you may override this in Makefile.conf or the environment
 BUILD              ?= debug
-# or: release, or: extradebug, or: profile, or: debug
+# or: release, or: debug, or: extradebug, or: profile, or: native
 OS                 ?= $(shell uname)
 # or: Linux, Win32, Darwin
 LDFLAGS            ?=
index 629c163336688a4b1ca5808e84a0f7eef5617801..33aa5bc881b69d032584244de5cf23755c48320c 100644 (file)
@@ -209,7 +209,7 @@ std::list<DWinding*> *CreateTrace( dleaf_t *leaf, int c, vis_header *header, byt
                }
        }
 
-       delete repeatlist;
+       delete [] repeatlist;
 
        return pointlist;
 }
index 144627e65a9dcea34a7ad9adf8a03aef9a613d9d..252085c2b8013628ecbcbd541ed47373410827d6 100644 (file)
 #if GDEF_OS_WINDOWS
 #define S_ISDIR( mode ) ( mode & _S_IFDIR )
 #include <io.h> // _access()
+
+#ifndef F_OK
+#define F_OK 0x00
+#endif
+
+#ifndef W_OK
+#define W_OK 0x02
+#endif
+
+#ifndef R_OK
+#define R_OK 0x04
+#endif
+
 #define access( path, mode ) _access( path, mode )
 #else
 #include <unistd.h> // access()
index 018ee3a130295869d9294409545e6ca6a7792cb6..09145919a1e09d05163f2ee5a168790cee260d03 100644 (file)
@@ -600,12 +600,12 @@ int _pico_nofname( const char *path, char *dest, int destSize ){
  *  string otherwise. given 'path' is not altered. -sea
  */
 const char *_pico_nopath( const char *path ){
-       const char *src;
-       src = path + ( strlen( path ) - 1 );
-
        if ( path == NULL ) {
                return "";
        }
+       const char *src;
+       src = path + ( strlen( path ) - 1 );
+
        if ( !strchr( path,'/' ) && !strchr( path,'\\' ) ) {
                return ( path );
        }
index d568edb386216a826a823d6d6799cf24ce45ec83..b2e6c5e92da32472977e1a439845d3b4deea3350 100644 (file)
@@ -84,7 +84,7 @@ void insert( RenderIndex index ){
        m_data.push_back( index );
 }
 void swap( IndexBuffer& other ){
-       std::swap( m_data, m_data );
+       std::swap( m_data, other.m_data );
 }
 };
 
index ceb19b0b876055350f306b2989fcf0efe567bcac..b3daa405a8320077de5f72b10cbd5c40017111b1 100644 (file)
@@ -91,8 +91,8 @@ NameKeys m_nameKeys;
 TraversableObserverPairRelay m_traverseObservers;
 Doom3GroupOrigin m_funcStaticOrigin;
 RenderablePivot m_renderOrigin;
-RenderableNamedEntity m_renderName;
 mutable Vector3 m_name_origin;
+RenderableNamedEntity m_renderName;
 ModelSkinKey m_skin;
 
 public:
@@ -259,8 +259,8 @@ Doom3Group( EntityClass* eclass, scene::Node& node, const Callback<void()>& tran
        m_named( m_entity ),
        m_nameKeys( m_entity ),
        m_funcStaticOrigin( m_traverse, m_origin ),
-       m_renderName( m_named, m_name_origin ),
        m_name_origin( g_vector3_identity ),
+       m_renderName( m_named, m_name_origin ),
        m_skin( SkinChangedCaller( *this ) ),
        m_curveNURBS( boundsChanged ),
        m_curveCatmullRom( boundsChanged ),
@@ -278,7 +278,8 @@ Doom3Group( const Doom3Group& other, scene::Node& node, const Callback<void()>&
        m_named( m_entity ),
        m_nameKeys( m_entity ),
        m_funcStaticOrigin( m_traverse, m_origin ),
-       m_renderName( m_named, g_vector3_identity ),
+       m_name_origin( g_vector3_identity ),
+       m_renderName( m_named, m_name_origin ),
        m_skin( SkinChangedCaller( *this ) ),
        m_curveNURBS( boundsChanged ),
        m_curveCatmullRom( boundsChanged ),
index bad7fc54e793b102a8bcd2caae1f6bd896497b9d..b2c01e9f1f3496d96509c81c4c87968e3023cf12 100644 (file)
@@ -63,8 +63,8 @@ NameKeys m_nameKeys;
 OriginKey m_originKey;
 Vector3 m_origin;
 
-RenderableNamedEntity m_renderName;
 mutable Vector3 m_name_origin;
+RenderableNamedEntity m_renderName;
 
 Callback<void()> m_transformChanged;
 Callback<void()> m_evaluateTransform;
@@ -83,8 +83,8 @@ Group( EntityClass* eclass, scene::Node& node, const Callback<void()>& transform
        m_nameKeys( m_entity ),
        m_originKey( OriginChangedCaller( *this ) ),
        m_origin( ORIGINKEY_IDENTITY ),
-       m_renderName( m_named, m_name_origin ),
        m_name_origin( g_vector3_identity ),
+       m_renderName( m_named, m_name_origin ),
        m_transformChanged( transformChanged ),
        m_evaluateTransform( evaluateTransform ){
        construct();
@@ -96,7 +96,8 @@ Group( const Group& other, scene::Node& node, const Callback<void()>& transformC
        m_nameKeys( m_entity ),
        m_originKey( OriginChangedCaller( *this ) ),
        m_origin( ORIGINKEY_IDENTITY ),
-       m_renderName( m_named, g_vector3_identity ),
+       m_name_origin( g_vector3_identity ),
+       m_renderName( m_named, m_name_origin ),
        m_transformChanged( transformChanged ),
        m_evaluateTransform( evaluateTransform ){
        construct();
index 65ac614e25ad1aa3b6bb8dfd457f084cda3b0331..890d2e8cd33e49e58a0d660bf0f47063750da519 100644 (file)
@@ -655,11 +655,11 @@ void render( RenderStateFlags state ) const {
        aabb_draw_wire( points );
 }
 };
-
+/*
 inline void default_extents( Vector3& extents ){
        extents = Vector3( 12, 12, 12 );
 }
-
+*/
 class ShaderRef
 {
 CopiedString m_name;
@@ -773,6 +773,8 @@ Doom3GroupOrigin m_funcStaticOrigin;
 LightRadii m_radii;
 Doom3LightRadius m_doom3Radius;
 
+AABB m_aabb_light;
+
 RenderLightRadiiWire m_radii_wire;
 RenderLightRadiiFill m_radii_fill;
 RenderLightRadiiBox m_radii_box;
@@ -805,16 +807,14 @@ RenderLightProjection m_renderProjection;
 
 LightShader m_shader;
 
-AABB m_aabb_light;
-
 Callback<void()> m_transformChanged;
 Callback<void()> m_boundsChanged;
 Callback<void()> m_evaluateTransform;
 
 void construct(){
        default_rotation( m_rotation );
-       m_aabb_light.origin = Vector3( 0, 0, 0 );
-       default_extents( m_aabb_light.extents );
+       //m_aabb_light.origin = Vector3( 0, 0, 0 );
+       //default_extents( m_aabb_light.extents );
 
        m_keyObservers.insert( "classname", ClassnameFilter::ClassnameChangedCaller( m_filter ) );
        m_keyObservers.insert( Static<KeyIsName>::instance().m_nameKey, NamedEntity::IdentifierChangedCaller( m_named ) );
@@ -982,6 +982,7 @@ Light( EntityClass* eclass, scene::Node& node, const Callback<void()>& transform
        m_nameKeys( m_entity ),
        m_funcStaticOrigin( m_traverse, m_originKey.m_origin ),
        m_doom3Radius( EntityClass_valueForKey( m_entity.getEntityClass(), "light_radius" ) ),
+       m_aabb_light( Vector3( 0, 0, 0 ), Vector3( 12, 12, 12 ) ),
        m_radii_wire( m_radii, m_aabb_light.origin ),
        m_radii_fill( m_radii, m_aabb_light.origin ),
        m_radii_box( m_aabb_light.origin ),
@@ -1005,6 +1006,7 @@ Light( const Light& other, scene::Node& node, const Callback<void()>& transformC
        m_nameKeys( m_entity ),
        m_funcStaticOrigin( m_traverse, m_originKey.m_origin ),
        m_doom3Radius( EntityClass_valueForKey( m_entity.getEntityClass(), "light_radius" ) ),
+       m_aabb_light( Vector3( 0, 0, 0 ), Vector3( 12, 12, 12 ) ),
        m_radii_wire( m_radii, m_aabb_light.origin ),
        m_radii_fill( m_radii, m_aabb_light.origin ),
        m_radii_box( m_aabb_light.origin ),
index 82b08e3c2ab5468ca1919e0a094dd0a99af7a9e7..ea837329831319bb94c23af6f0840d847e3e85ba 100644 (file)
@@ -133,6 +133,9 @@ ui::Widget Console_constructWindow( ui::Window toplevel ){
        return scr;
 }
 
+//#pragma GCC push_options
+//#pragma GCC optimize ("O0")
+
 class GtkTextBufferOutputStream : public TextOutputStream
 {
 GtkTextBuffer* textBuffer;
@@ -141,12 +144,14 @@ GtkTextTag* tag;
 public:
 GtkTextBufferOutputStream( GtkTextBuffer* textBuffer, GtkTextIter* iter, GtkTextTag* tag ) : textBuffer( textBuffer ), iter( iter ), tag( tag ){
 }
-std::size_t write( const char* buffer, std::size_t length ){
+std::size_t __attribute__((optimize("O0"))) write( const char* buffer, std::size_t length ){
        gtk_text_buffer_insert_with_tags( textBuffer, iter, buffer, gint( length ), tag, NULL );
        return length;
 }
 };
 
+//#pragma GCC pop_options
+
 std::size_t Sys_Print( int level, const char* buf, std::size_t length ){
        bool contains_newline = std::find( buf, buf + length, '\n' ) != buf + length;
 
index 99d499652de4b903449bdde58a80965ebaf9f20d..eb6561027c6d38df771204ae5d216edd7baa6f77 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
    Copyright (C) 1999-2006 Id Software, Inc. and contributors.
    For a list of contributors, see the accompanying CONTRIBUTORS file.
 
@@ -249,7 +249,7 @@ void HomePaths_Realise(){
                        if ( shfolder ) {
                                FreeLibrary( shfolder );
                        }
-                       if ( SHGetFolderPath( NULL, CSIDL_PERSONAL, NULL, 0, mydocsdir ) ) {
+                       if ( SUCCEEDED( SHGetFolderPath( NULL, CSIDL_PERSONAL, NULL, 0, mydocsdir ) ) ) {
                                path.clear();
                                path << DirectoryCleaned( mydocsdir ) << "My Games/" << ( prefix + 1 ) << "/";
                                // win32: only add it if it already exists
index a342d6c01a859daa8f1d956a45d632360d1e8f5c..4c00125e70fd472b43ffa4d64abce37c770a94c3 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
    Copyright (C) 1999-2006 Id Software, Inc. and contributors.
    For a list of contributors, see the accompanying CONTRIBUTORS file.
 
@@ -107,7 +107,7 @@ CGameDescription::CGameDescription( xmlDocPtr pDoc, const CopiedString& gameFile
        // read the user-friendly game name
        xmlNodePtr pNode = pDoc->children;
 
-       while ( strcmp( (const char*)pNode->name, "game" ) && pNode != 0 )
+       while ( pNode != 0 && strcmp( (const char*)pNode->name, "game" ) )
        {
                pNode = pNode->next;
        }
index 772f80b199dd47919e899c9d9006ab2e6b54e340..416d31789184d02b77e4c610fdbd282296918f86 100644 (file)
@@ -1681,6 +1681,7 @@ void TextureBrowser_constructTreeStore(){
        TextureGroups groups = TextureGroups_constructTreeView();
        auto store = ui::TreeStore::from(gtk_tree_store_new( 1, G_TYPE_STRING ));
        TextureGroups_constructTreeModel( groups, store );
+       std::set<CopiedString>::iterator iter;
 
        gtk_tree_view_set_model(g_TextureBrowser.m_treeViewTree, store);
 
@@ -1688,7 +1689,7 @@ void TextureBrowser_constructTreeStore(){
 }
 
 void TextureBrowser_constructTreeStoreTags(){
-       TextureGroups groups;
+       //TextureGroups groups;
        auto store = ui::TreeStore::from(gtk_tree_store_new( 1, G_TYPE_STRING ));
     auto model = g_TextureBrowser.m_all_tags_list;
 
index 4769bc5d2d193fd9d3606f7a3ba4314dbe4463ac..118d37f47ab950e98812c74b2b44599103d9e00f 100644 (file)
@@ -211,6 +211,7 @@ void BuildMonitor_Construct(){
 
 void BuildMonitor_Destroy(){
        delete g_pWatchBSP;
+       g_pWatchBSP = NULL;
 }
 
 CWatchBSP *GetWatchBSP(){
index f81aff94bd6d46a2daa0fc590e021cf4bedceb1a..b6d272ffdf694588b7c572b0f425cae2d5e87890 100644 (file)
@@ -68,7 +68,7 @@ xmlNodePtr xml_NodeForVec( vec3_t v ){
 
        sprintf( buf, "%f %f %f", v[0], v[1], v[2] );
        ret = xmlNewNode( NULL, "point" );
-       xmlNodeSetContent( ret, buf );
+       xmlNodeAddContent( ret, buf );
        return ret;
 }
 
@@ -146,14 +146,14 @@ void xml_Select( char *msg, int entitynum, int brushnum, qboolean bError ){
        // now build a proper "select" XML node
        sprintf( buf, "Entity %i, Brush %i: %s", entitynum, brushnum, msg );
        node = xmlNewNode( NULL, "select" );
-       xmlNodeSetContent( node, buf );
+       xmlNodeAddContent( node, buf );
        level[0] = (int)'0' + ( bError ? SYS_ERR : SYS_WRN )  ;
        level[1] = 0;
        xmlSetProp( node, "level", (char *)&level );
        // a 'select' information
        sprintf( buf, "%i %i", entitynum, brushnum );
        select = xmlNewNode( NULL, "brush" );
-       xmlNodeSetContent( select, buf );
+       xmlNodeAddContent( select, buf );
        xmlAddChild( node, select );
        xml_SendNode( node );
 
@@ -173,14 +173,14 @@ void xml_Point( char *msg, vec3_t pt ){
        char level[2];
 
        node = xmlNewNode( NULL, "pointmsg" );
-       xmlNodeSetContent( node, msg );
+       xmlNodeAddContent( node, msg );
        level[0] = (int)'0' + SYS_ERR;
        level[1] = 0;
        xmlSetProp( node, "level", (char *)&level );
        // a 'point' node
        sprintf( buf, "%g %g %g", pt[0], pt[1], pt[2] );
        point = xmlNewNode( NULL, "point" );
-       xmlNodeSetContent( point, buf );
+       xmlNodeAddContent( point, buf );
        xmlAddChild( node, point );
        xml_SendNode( node );
 
@@ -197,7 +197,7 @@ void xml_Winding( char *msg, vec3_t p[], int numpoints, qboolean die ){
        int i;
 
        node = xmlNewNode( NULL, "windingmsg" );
-       xmlNodeSetContent( node, msg );
+       xmlNodeAddContent( node, msg );
        level[0] = (int)'0' + SYS_ERR;
        level[1] = 0;
        xmlSetProp( node, "level", (char *)&level );
@@ -214,7 +214,7 @@ void xml_Winding( char *msg, vec3_t p[], int numpoints, qboolean die ){
        }
 
        winding = xmlNewNode( NULL, "winding" );
-       xmlNodeSetContent( winding, buf );
+       xmlNodeAddContent( winding, buf );
        xmlAddChild( node, winding );
        xml_SendNode( node );
 
@@ -261,7 +261,7 @@ void FPrintf( int flag, char *buf ){
        static qboolean bGotXML = false;
        char level[2];
 
-       printf( buf );
+       printf( "%s", buf );
 
        // the following part is XML stuff only.. but maybe we don't want that message to go down the XML pipe?
        if ( flag == SYS_NOXML ) {
@@ -283,7 +283,7 @@ void FPrintf( int flag, char *buf ){
                bGotXML = true;
        }
        node = xmlNewNode( NULL, "message" );
-       xmlNodeSetContent( node, buf );
+       xmlNodeAddContent( node, buf );
        level[0] = (int)'0' + flag;
        level[1] = 0;
        xmlSetProp( node, "level", (char *)&level );
index 0f4591b04bb9a37db65afcc880196fcc1fac5f32..3b8995b2677e70bd8b2c2ffbe69a469369b1522b 100644 (file)
@@ -242,7 +242,7 @@ void ProcessWorldModel( void ){
                        Sys_FPrintf( SYS_NOXML, "**********************\n" );
                        polyline = LeakFile( tree );
                        leaknode = xmlNewNode( NULL, "message" );
-                       xmlNodeSetContent( leaknode, "MAP LEAKED\n" );
+                       xmlNodeAddContent( leaknode, "MAP LEAKED\n" );
                        xmlAddChild( leaknode, polyline );
                        level[0] = (int) '0' + SYS_ERR;
                        level[1] = 0;
index 00f30e05701dd2389ed641576cb42f04d1e19c23..6a50cdb717537d116ad41b0b31ccdcdc67b2c40e 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/*
    Copyright (C) 1999-2007 id Software, Inc. and contributors.
    For a list of contributors, see the accompanying CONTRIBUTORS file.
 
@@ -692,7 +692,7 @@ void Cmd_Mipdir( void ){
        GetToken( false );
        strcpy( mip_prefix, token );
        // create the directory if needed
-       sprintf( filename, "%stextures", gamedir, mip_prefix );
+       sprintf( filename, "%stextures", gamedir );
        Q_mkdir( filename );
        sprintf( filename, "%stextures/%s", gamedir, mip_prefix );
        Q_mkdir( filename );
index b6fe51173cb3a3121c8fd5c6a1cb472ddebd8be2..500ac1f960744b523d91f45e8678eea8aac66a10 100644 (file)
@@ -1194,7 +1194,7 @@ void Cmd_Video( void ){
        // build the dictionary
        for ( frame = startframe ;  ; frame++ )
        {
-               printf( "counting ", frame );
+               printf( "counting %i", frame );
                in = LoadFrame( base, frame, digits, &palette );
                if ( !in.data ) {
                        break;
@@ -1213,7 +1213,7 @@ void Cmd_Video( void ){
        // compress it with the dictionary
        for ( frame = startframe ;  ; frame++ )
        {
-               printf( "packing ", frame );
+               printf( "packing %i", frame );
                in = LoadFrame( base, frame, digits, &palette );
                if ( !in.data ) {
                        break;
index 7a49c52e8e26748d7430381cae21bbe58dc8e6ad..9a06870d246d935bc4da66b47a31fe32e8477da6 100644 (file)
@@ -901,7 +901,7 @@ int ParseNum( const char *str ){
    // all output ends up through here
    void FPrintf (int flag, char *buf)
    {
-   printf(buf);
+   printf( "%s", buf );
 
    }
 
index f81aff94bd6d46a2daa0fc590e021cf4bedceb1a..b6d272ffdf694588b7c572b0f425cae2d5e87890 100644 (file)
@@ -68,7 +68,7 @@ xmlNodePtr xml_NodeForVec( vec3_t v ){
 
        sprintf( buf, "%f %f %f", v[0], v[1], v[2] );
        ret = xmlNewNode( NULL, "point" );
-       xmlNodeSetContent( ret, buf );
+       xmlNodeAddContent( ret, buf );
        return ret;
 }
 
@@ -146,14 +146,14 @@ void xml_Select( char *msg, int entitynum, int brushnum, qboolean bError ){
        // now build a proper "select" XML node
        sprintf( buf, "Entity %i, Brush %i: %s", entitynum, brushnum, msg );
        node = xmlNewNode( NULL, "select" );
-       xmlNodeSetContent( node, buf );
+       xmlNodeAddContent( node, buf );
        level[0] = (int)'0' + ( bError ? SYS_ERR : SYS_WRN )  ;
        level[1] = 0;
        xmlSetProp( node, "level", (char *)&level );
        // a 'select' information
        sprintf( buf, "%i %i", entitynum, brushnum );
        select = xmlNewNode( NULL, "brush" );
-       xmlNodeSetContent( select, buf );
+       xmlNodeAddContent( select, buf );
        xmlAddChild( node, select );
        xml_SendNode( node );
 
@@ -173,14 +173,14 @@ void xml_Point( char *msg, vec3_t pt ){
        char level[2];
 
        node = xmlNewNode( NULL, "pointmsg" );
-       xmlNodeSetContent( node, msg );
+       xmlNodeAddContent( node, msg );
        level[0] = (int)'0' + SYS_ERR;
        level[1] = 0;
        xmlSetProp( node, "level", (char *)&level );
        // a 'point' node
        sprintf( buf, "%g %g %g", pt[0], pt[1], pt[2] );
        point = xmlNewNode( NULL, "point" );
-       xmlNodeSetContent( point, buf );
+       xmlNodeAddContent( point, buf );
        xmlAddChild( node, point );
        xml_SendNode( node );
 
@@ -197,7 +197,7 @@ void xml_Winding( char *msg, vec3_t p[], int numpoints, qboolean die ){
        int i;
 
        node = xmlNewNode( NULL, "windingmsg" );
-       xmlNodeSetContent( node, msg );
+       xmlNodeAddContent( node, msg );
        level[0] = (int)'0' + SYS_ERR;
        level[1] = 0;
        xmlSetProp( node, "level", (char *)&level );
@@ -214,7 +214,7 @@ void xml_Winding( char *msg, vec3_t p[], int numpoints, qboolean die ){
        }
 
        winding = xmlNewNode( NULL, "winding" );
-       xmlNodeSetContent( winding, buf );
+       xmlNodeAddContent( winding, buf );
        xmlAddChild( node, winding );
        xml_SendNode( node );
 
@@ -261,7 +261,7 @@ void FPrintf( int flag, char *buf ){
        static qboolean bGotXML = false;
        char level[2];
 
-       printf( buf );
+       printf( "%s", buf );
 
        // the following part is XML stuff only.. but maybe we don't want that message to go down the XML pipe?
        if ( flag == SYS_NOXML ) {
@@ -283,7 +283,7 @@ void FPrintf( int flag, char *buf ){
                bGotXML = true;
        }
        node = xmlNewNode( NULL, "message" );
-       xmlNodeSetContent( node, buf );
+       xmlNodeAddContent( node, buf );
        level[0] = (int)'0' + flag;
        level[1] = 0;
        xmlSetProp( node, "level", (char *)&level );
index 5ade8802ca7eac347f2ebe14f81c85b36c89802c..1a7c6b8a0be3ff655c8437074dba4fde9d7280c9 100644 (file)
@@ -72,7 +72,7 @@ xmlNodePtr xml_NodeForVec( vec3_t v ){
 
        sprintf( buf, "%f %f %f", v[0], v[1], v[2] );
        ret = xmlNewNode( NULL, (xmlChar*)"point" );
-       xmlNodeSetContent( ret, (xmlChar*)buf );
+       xmlNodeAddContent( ret, (xmlChar*)buf );
        return ret;
 }
 
@@ -150,14 +150,14 @@ void xml_Select( char *msg, int entitynum, int brushnum, qboolean bError ){
        // now build a proper "select" XML node
        sprintf( buf, "Entity %i, Brush %i: %s", entitynum, brushnum, msg );
        node = xmlNewNode( NULL, (xmlChar*)"select" );
-       xmlNodeSetContent( node, (xmlChar*)buf );
+       xmlNodeAddContent( node, (xmlChar*)buf );
        level[0] = (int)'0' + ( bError ? SYS_ERR : SYS_WRN )  ;
        level[1] = 0;
        xmlSetProp( node, (xmlChar*)"level", (xmlChar*)&level );
        // a 'select' information
        sprintf( buf, "%i %i", entitynum, brushnum );
        select = xmlNewNode( NULL, (xmlChar*)"brush" );
-       xmlNodeSetContent( select, (xmlChar*)buf );
+       xmlNodeAddContent( select, (xmlChar*)buf );
        xmlAddChild( node, select );
        xml_SendNode( node );
 
@@ -177,14 +177,14 @@ void xml_Point( char *msg, vec3_t pt ){
        char level[2];
 
        node = xmlNewNode( NULL, (xmlChar*)"pointmsg" );
-       xmlNodeSetContent( node, (xmlChar*)msg );
+       xmlNodeAddContent( node, (xmlChar*)msg );
        level[0] = (int)'0' + SYS_ERR;
        level[1] = 0;
        xmlSetProp( node, (xmlChar*)"level", (xmlChar *)&level );
        // a 'point' node
        sprintf( buf, "%g %g %g", pt[0], pt[1], pt[2] );
        point = xmlNewNode( NULL, (xmlChar*)"point" );
-       xmlNodeSetContent( point, (xmlChar*)buf );
+       xmlNodeAddContent( point, (xmlChar*)buf );
        xmlAddChild( node, point );
        xml_SendNode( node );
 
@@ -201,7 +201,7 @@ void xml_Winding( char *msg, vec3_t p[], int numpoints, qboolean die ){
        int i;
 
        node = xmlNewNode( NULL, (xmlChar*)"windingmsg" );
-       xmlNodeSetContent( node, (xmlChar*)msg );
+       xmlNodeAddContent( node, (xmlChar*)msg );
        level[0] = (int)'0' + SYS_ERR;
        level[1] = 0;
        xmlSetProp( node, (xmlChar*)"level", (xmlChar *)&level );
@@ -218,7 +218,7 @@ void xml_Winding( char *msg, vec3_t p[], int numpoints, qboolean die ){
        }
 
        winding = xmlNewNode( NULL, (xmlChar*)"winding" );
-       xmlNodeSetContent( winding, (xmlChar*)buf );
+       xmlNodeAddContent( winding, (xmlChar*)buf );
        xmlAddChild( node, winding );
        xml_SendNode( node );
 
@@ -289,7 +289,7 @@ void FPrintf( int flag, char *buf ){
        node = xmlNewNode( NULL, (xmlChar*)"message" );
        {
                gchar* utf8 = g_locale_to_utf8( buf, -1, NULL, NULL, NULL );
-               xmlNodeSetContent( node, (xmlChar*)utf8 );
+               xmlNodeAddContent( node, (xmlChar*)utf8 );
                g_free( utf8 );
        }
        level[0] = (int)'0' + flag;
index e47cadbaf41e061a6e794475d6afd697be85224b..efa4257d04cbd7899be8c73807b57b73d416c9cd 100644 (file)
 #else
 #include <wtypes.h>
 #include <io.h>
+
+#ifndef R_OK
+#define R_OK 04
+#endif
+
 #define S_ISDIR( mode ) ( mode & _S_IFDIR )
 #define PATH_MAX 260
 #endif
index 96da9ba864c9f7650f23841b5bcf93ad87d31513..dff448507055cfcf8c0cd1d40f87337e7f4383da 100644 (file)
@@ -349,7 +349,7 @@ void ProcessWorldModel( const char *portalFilePath, const char *lineFilePath ){
                Sys_FPrintf( SYS_NOXML, "**********************\n" );
                polyline = LeakFile( tree, lineFilePath );
                leaknode = xmlNewNode( NULL, (xmlChar*)"message" );
-               xmlNodeSetContent( leaknode, (xmlChar*)"MAP LEAKED\n" );
+               xmlNodeAddContent( leaknode, (xmlChar*)"MAP LEAKED\n" );
                xmlAddChild( leaknode, polyline );
                level[0] = (int) '0' + SYS_ERR;
                level[1] = 0;
index 900e0cb8eb568b01819829942731cf2d2c85c2bc..5b2ca6f79483de33db476d6986f057ed07fffa3d 100644 (file)
@@ -712,7 +712,7 @@ int FogForBounds( vec3_t mins, vec3_t maxs, float epsilon ){
  */
 
 void CreateMapFogs( void ){
-       int i;
+       int i, j;
        entity_t    *entity;
        brush_t     *brush;
        fog_t       *fog;
@@ -759,10 +759,10 @@ void CreateMapFogs( void ){
                                VectorScale( fog->si->fogDir, -1.0f, invFogDir );
 
                                /* find the brush side */
-                               for ( i = 0; i < brush->numsides; i++ )
+                               for ( j = 0; j < brush->numsides; j++ )
                                {
-                                       if ( VectorCompare( invFogDir, mapplanes[ brush->sides[ i ].planenum ].normal ) ) {
-                                               fog->visibleSide = i;
+                                       if ( VectorCompare( invFogDir, mapplanes[ brush->sides[ j ].planenum ].normal ) ) {
+                                               fog->visibleSide = j;
                                                //%     Sys_Printf( "Brush num: %d Side num: %d\n", fog->brushNum, fog->visibleSide );
                                                break;
                                        }
index 478819e7a3abcccd4ac1e8f7d6ea9f943c0b5c62..acf2eacd3ce4af54d09239f04ee93cf19b1ebce8 100644 (file)
@@ -580,7 +580,7 @@ static void RadSubdivideDiffuseLight( int lightmapNum, bspDrawSurface_t *ds, raw
                VectorMA( light->origin, 1.0f, light->normal, light->origin );
                light->dist = DotProduct( light->origin, normal );
 
-               /* optionally create a point splashsplash light for first pass */
+               /* optionally create a point backsplash light for first pass */
                if ( original && si->backsplashFraction > 0 ) {
                        /* allocate a new point light */
                        splash = safe_malloc( sizeof( *splash ) );
index 5f46268f5b7c57fc0ee1e51677b998c93e440103..bc10b2f65f50131c55c6985a6f2781775a123289 100644 (file)
@@ -1817,7 +1817,7 @@ static void SubsampleRawLuxel_r( rawLightmap_t *lm, trace_t *trace, vec3_t sampl
        int b, samples, mapped, lighted;
        int cluster[ 4 ];
        vec4_t luxel[ 4 ];
-       vec3_t deluxel[ 3 ];
+       vec3_t deluxel[ 4 ];
        vec3_t origin[ 4 ], normal[ 4 ];
        float biasDirs[ 4 ][ 2 ] = { { -1.0f, -1.0f }, { 1.0f, -1.0f }, { -1.0f, 1.0f }, { 1.0f, 1.0f } };
        vec3_t color, direction = { 0, 0, 0 }, total;
@@ -3162,7 +3162,6 @@ void IlluminateVertexes( int num ){
 void SetupBrushesFlags( unsigned int mask_any, unsigned int test_any, unsigned int mask_all, unsigned int test_all ){
        int i, j, b;
        unsigned int compileFlags, allCompileFlags;
-       qboolean inside;
        bspBrush_t      *brush;
        bspBrushSide_t  *side;
        bspShader_t     *shader;
@@ -3189,10 +3188,9 @@ void SetupBrushesFlags( unsigned int mask_any, unsigned int test_any, unsigned i
                brush = &bspBrushes[ b ];
 
                /* check all sides */
-               inside = qtrue;
                compileFlags = 0;
                allCompileFlags = ~( 0u );
-               for ( j = 0; j < brush->numSides && inside; j++ )
+               for ( j = 0; j < brush->numSides; j++ )
                {
                        /* do bsp shader calculations */
                        side = &bspBrushSides[ brush->firstSide + j ];
index 96f7270c8d4b37067a3dce8f9d3fb93c04e8b80f..22e41cc5dbdfd8699b8df4eec1df878950dbb196 100644 (file)
@@ -82,7 +82,7 @@ void FinishSurface( mapDrawSurface_t *ds ){
 
 
        /* dummy check */
-       if ( ds->type <= SURFACE_BAD || ds->type >= NUM_SURFACE_TYPES || ds == NULL || ds->shaderInfo == NULL ) {
+       if ( ds == NULL || ds->shaderInfo == NULL || ds->type <= SURFACE_BAD || ds->type >= NUM_SURFACE_TYPES ) {
                return;
        }
 
@@ -3381,7 +3381,7 @@ int AddSurfaceModels( mapDrawSurface_t *ds ){
                        alpha /= ds->numVerts;
                        centroid.color[ 0 ][ 0 ] = 0xFF;
                        centroid.color[ 0 ][ 1 ] = 0xFF;
-                       centroid.color[ 0 ][ 2 ] = 0xFF;
+                       //centroid.color[ 0 ][ 2 ] = 0xFF;
                        centroid.color[ 0 ][ 2 ] = ( alpha > 255.0f ? 0xFF : alpha );
 
                        /* head vert is centroid */
index e189d0648af3f618ceb2818f47bf6d408aeeac1e..994b3a1920fbc1407ccc651217a5742a791edcfe 100644 (file)
@@ -1712,6 +1712,9 @@ static void MetaTrianglesToSurface( int numPossibles, metaTriangle_t *possibles,
                ClearBounds( ds->mins, ds->maxs );
 
                /* clear verts/indexes */
+//             memset( verts, 0, sizeof( verts ) );
+//             memset( indexes, 0, sizeof( indexes ) );
+               //is more correct, but upper works ok too
                memset( verts, 0, sizeof( *verts ) * maxSurfaceVerts );
                memset( indexes, 0, sizeof( *indexes ) * maxSurfaceIndexes );
 
index 1929e3e8b229ee3c09b5104517578374b7b5665b..c6924dbe63f384880c354cb4901fd345ebac0938 100644 (file)
@@ -603,7 +603,7 @@ int EdgeCompare( const void *elem1, const void *elem2 ) {
        if ( d1 < d2 ) {
                return -1;
        }
-       if ( d2 > d1 ) {
+       if ( d1 > d2 ) {
                return 1;
        }
        return 0;