1) Created new config subdir and moved the last remaining files into

appropriate subdirs (only main.cpp and main_loop.?pp are now directly
   in the src directory).
2) Cleaned up all #include directives, so that all files now use
   the right subdirectories.
3) Some minor code cleanup.


git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/branches/irrlicht@3606 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
hikerstk
2009-06-11 10:00:43 +00:00
parent 2eceacbd70
commit ee90eca26e
86 changed files with 186 additions and 653 deletions

View File

@@ -12,10 +12,6 @@ supertuxkart_SOURCES = \
main.cpp \
main_loop.cpp \
main_loop.hpp \
stk_config.cpp \
stk_config.hpp \
user_config.cpp \
user_config.hpp \
audio/music.hpp \
audio/music_information.cpp \
audio/music_information.hpp \
@@ -34,6 +30,11 @@ supertuxkart_SOURCES = \
challenges/challenge_data.hpp \
challenges/unlock_manager.cpp \
challenges/unlock_manager.hpp \
config/player.hpp \
config/stk_config.cpp \
config/stk_config.hpp \
config/user_config.cpp \
config/user_config.hpp \
graphics/camera.cpp \
graphics/camera.hpp \
graphics/explosion.cpp \
@@ -50,8 +51,6 @@ supertuxkart_SOURCES = \
graphics/moving_texture.hpp \
graphics/nitro.cpp \
graphics/nitro.hpp \
graphics/particle_system.cpp \
graphics/particle_system.hpp \
graphics/scene.cpp \
graphics/scene.hpp \
graphics/shadow.cpp \
@@ -196,7 +195,6 @@ supertuxkart_SOURCES = \
physics/triangle_mesh.cpp \
physics/triangle_mesh.hpp \
physics/user_pointer.hpp \
player.hpp \
race/grand_prix_data.cpp \
race/grand_prix_data.hpp \
race/grand_prix_manager.cpp \

View File

@@ -22,8 +22,8 @@
#include <stdexcept>
#include <sstream>
#include "user_config.hpp"
#include "audio/music_ogg.hpp"
#include "config/user_config.hpp"
#include "lisp/lisp.hpp"
#include "lisp/parser.hpp"
#include "tracks/track.hpp"

View File

@@ -28,7 +28,7 @@
# include <AL/al.h>
#endif
#include "user_config.hpp"
#include "config/user_config.hpp"
MusicOggStream::MusicOggStream()
{

View File

@@ -21,8 +21,8 @@
#ifndef HEADER_SFX_HPP
#define HEADER_SFX_HPP
#include "user_config.hpp"
#include "audio/sfx_manager.hpp"
#include "config/user_config.hpp"
class Vec3;

View File

@@ -37,8 +37,8 @@
# include <AL/alc.h>
#endif
#include "user_config.hpp"
#include "audio/sfx_openal.hpp"
#include "config/user_config.hpp"
#include "io/file_manager.hpp"
#include "race/race_manager.hpp"

View File

@@ -31,7 +31,7 @@
# include <AL/al.h>
#endif
#include "user_config.hpp"
#include "config/user_config.hpp"
#include "io/file_manager.hpp"
SFXOpenAL::SFXOpenAL(ALuint buffer, bool positional, float rolloff, float gain) : SFXBase()

View File

@@ -30,9 +30,9 @@
# include <AL/alc.h>
#endif
#include "user_config.hpp"
#include "audio/music_ogg.hpp"
#include "audio/sfx_openal.hpp"
#include "config/user_config.hpp"
#include "io/file_manager.hpp"
#include "utils/string_utils.hpp"

View File

@@ -17,13 +17,13 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "unlock_manager.hpp"
#include "challenges/unlock_manager.hpp"
#include <set>
#include <string>
#include <stdio.h>
#include "user_config.hpp"
#include "config/user_config.hpp"
#include "challenges/challenge_data.hpp"
#include "io/file_manager.hpp"
#include "race/race_manager.hpp"

View File

@@ -17,7 +17,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "stk_config.hpp"
#include "config/stk_config.hpp"
#include <stdexcept>
#include <stdio.h>

View File

@@ -18,7 +18,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "user_config.hpp"
#include "config/user_config.hpp"
#include <stdio.h>
#include <stdexcept>
@@ -34,8 +34,8 @@
# include <direct.h>
#endif
#include "stk_config.hpp"
#include "challenges/unlock_manager.hpp"
#include "config/stk_config.hpp"
#include "io/file_manager.hpp"
#include "lisp/lisp.hpp"
#include "lisp/parser.hpp"

View File

@@ -45,8 +45,9 @@
#include <string>
#include <map>
#include <vector>
#include "config/player.hpp"
#include "input/input.hpp"
#include "player.hpp"
#include "lisp/lisp.hpp"
#include "lisp/parser.hpp"
#include "lisp/writer.hpp"

View File

@@ -20,8 +20,8 @@
#include "graphics/camera.hpp"
#include "user_config.hpp"
#include "audio/sound_manager.hpp"
#include "config/user_config.hpp"
#include "graphics/irr_driver.hpp"
#include "karts/player_kart.hpp"
#include "modes/world.hpp"

View File

@@ -27,9 +27,10 @@
# endif
#endif
#include "material_manager.hpp"
#include "user_config.hpp"
#include "config/user_config.hpp"
#include "graphics/material_manager.hpp"
#include "gui/engine.hpp"
#include "gui/font.hpp"
#include "gui/state_manager.hpp"
#include "io/file_manager.hpp"
#include "items/item_manager.hpp"
@@ -38,8 +39,6 @@
#include "items/projectile_manager.hpp"
#include "karts/kart_properties_manager.hpp"
#include "modes/world.hpp"
#include "material_manager.hpp"
#include "gui/font.hpp"
IrrDriver *irr_driver = NULL;

View File

@@ -21,7 +21,7 @@
#include <stdexcept>
#include "stk_config.hpp"
#include "config/stk_config.hpp"
#include "graphics/irr_driver.hpp"
#include "io/file_manager.hpp"
#include "io/xml_node.hpp"

View File

@@ -1,243 +0,0 @@
/*
$Id$
PLIB - A Suite of Portable Game Libraries
Copyright (C) 1998,2002 Steve Baker
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 3 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
For further information visit http://plib.sourceforge.net
*/
#include "particle_system.hpp"
#include <algorithm>
#include "scene.hpp"
#include "utils/vec3.hpp"
ParticleSystem::ParticleSystem ( int num, float create_rate, int ttf, float sz)
// : ssgVtxTable(GL_QUADS,
// new ssgVertexArray (num*4, new sgVec3[num*4] ),
// new ssgNormalArray (num*4, new sgVec3[num*4] ),
// new ssgTexCoordArray(num*4, new sgVec2[num*4] ),
// new ssgColourArray (num*4, new sgVec4[num*4] )
// )
//FIXME LEAK: these arrays are never freed!
{
#ifdef DEBUG
//setName("particle-system");
#endif
m_turn_to_face = ttf;
m_create_error = 0 ;
m_create_rate = create_rate;
m_size = sz;
//bsphere.setRadius(100); // a better value is computed in update
//bsphere.setCenter(0, 0, 0);
m_num_particles = num ;
m_num_verts = num * 4 ;
m_particles = new Particle[num];
int i ;
for ( i = 0 ; i < m_num_verts ; i++ )
{
//sgSetVec3 (getNormal(i), 0, -1, 0 );
//sgSetVec4 (getColour(i), 1, 1, 1, 1 );
//sgZeroVec3(getVertex(i) );
}
for ( i = 0 ; i < m_num_particles ; i++ )
{
//sgSetVec2(getTexCoord(i*4+0), 0, 0 );
//sgSetVec2(getTexCoord(i*4+1), 1, 0 );
//sgSetVec2(getTexCoord(i*4+2), 1, 1 );
//sgSetVec2(getTexCoord(i*4+3), 0, 1 );
}
m_num_active = 0 ;
//stk_scene->add(this);
} // ParticleSystem
//-----------------------------------------------------------------------------
void ParticleSystem::init(int initial_num)
{
for ( int i = 0 ; i < initial_num ; i++ )
particle_create(i, & m_particles [ i ] ) ;
} // init
//-----------------------------------------------------------------------------
/** Update the bounding sphere for this particle system. This function is only
* called during setup, from then on the bounding sphere is always updated
* during update(), and so the correct value is always set. So no actual
* computation is done here.
*/
void ParticleSystem::recalcBSphere()
{
//bsphere.setRadius( 1000.0f );
//bsphere.setCenter( 0, 0, 0 );
} // recalcBSphere
//-----------------------------------------------------------------------------
void ParticleSystem::draw_geometry ()
{
#ifndef HAVE_IRRLICHT
sgVec3 nxny, xxny, xxyy, nxyy ;
float SZ = m_size / 2.0f ;
if ( m_turn_to_face )
{
sgMat4 mat ;
glGetFloatv ( GL_MODELVIEW_MATRIX, (float *) mat ) ;
sgVec3 xx, yy ;
sgSetVec3 ( xx, mat[0][0] * SZ, mat[1][0] * SZ, mat[2][0] * SZ ) ;
sgSetVec3 ( yy, mat[0][1] * SZ, mat[1][1] * SZ, mat[2][1] * SZ ) ;
sgSetVec3 ( nxny, -xx[0]-yy[0], -xx[1]-yy[1], -xx[2]-yy[2] ) ;
sgSetVec3 ( nxyy, -xx[0]+yy[0], -xx[1]+yy[1], -xx[2]+yy[2] ) ;
sgSetVec3 ( xxny, xx[0]-yy[0], xx[1]-yy[1], xx[2]-yy[2] ) ;
sgSetVec3 ( xxyy, xx[0]+yy[0], xx[1]+yy[1], xx[2]+yy[2] ) ;
}
else
{
sgSetVec3 ( xxny , SZ, 0, -SZ ) ;
sgSetVec3 ( nxny , -SZ, 0, -SZ ) ;
sgSetVec3 ( nxyy , -SZ, 0, SZ ) ;
sgSetVec3 ( xxyy, SZ, 0, SZ ) ;
}
int j = 0 ;
for ( int i = 0 ; i < m_num_particles ; i++ )
{
/* Make them disappear if not needed */
if ( m_particles[i].m_time_to_live <= 0.0f )
continue ;
sgCopyVec4 ( getColour ( j + 0 ), m_particles[i].m_col ) ;
sgCopyVec4 ( getColour ( j + 1 ), m_particles[i].m_col ) ;
sgCopyVec4 ( getColour ( j + 2 ), m_particles[i].m_col ) ;
sgCopyVec4 ( getColour ( j + 3 ), m_particles[i].m_col ) ;
sgAddScaledVec3 ( getVertex ( j + 0 ), m_particles[i].m_pos,
nxny, m_particles[i].m_size ) ;
sgAddScaledVec3 ( getVertex ( j + 1 ), m_particles[i].m_pos,
xxny, m_particles[i].m_size ) ;
sgAddScaledVec3 ( getVertex ( j + 2 ), m_particles[i].m_pos,
xxyy, m_particles[i].m_size ) ;
sgAddScaledVec3 ( getVertex ( j + 3 ), m_particles[i].m_pos,
nxyy, m_particles[i].m_size ) ;
j += 4 ;
}
rawSetNumVertices ( j ) ; /* Avoid drawing more than 'j' vertices. */
if ( j > 0 )
{
glDisable ( GL_CULL_FACE ) ;
glDepthMask ( 0 ) ;
ssgVtxTable::draw_geometry () ;
glDepthMask ( 1 ) ;
glEnable ( GL_CULL_FACE ) ;
}
#endif
} // draw_geometry
//-----------------------------------------------------------------------------
ParticleSystem::~ParticleSystem ()
{
// TODO we should call particle_delete here, but that's not possible, because
// the functions are virtual (illegal in destructor)
delete[] m_particles ;
} // ~ParticleSystem
//-----------------------------------------------------------------------------
void ParticleSystem::update ( float t )
{
#ifndef HAVE_IRRLICHT
int i ;
m_create_error += m_create_rate * t ;
m_num_active = 0 ;
/* Call the update routine for all the particles */
for ( i = 0 ; i < m_num_particles ; i++ )
if ( m_particles [ i ] . m_time_to_live > 0.0f )
{
m_particles [ i ] . update ( t ) ;
particle_update( t, i, & m_particles [ i ] ) ;
}
Vec3 xyz_min(10000), xyz_max(-10000);
/* Check for death of particles */
for ( i = 0 ; i < m_num_particles ; i++ )
{
if ( m_particles [ i ] . m_time_to_live <= 0.0 )
{
particle_delete ( i, & m_particles [ i ] ) ;
m_particles [ i ] . m_pos [ 2 ] = -1000000.0f ;
if ( m_create_error >= 1.0f )
{
particle_create( i, & m_particles [ i ] ) ;
m_create_error -= 1.0f ;
Vec3 p(m_particles[i].m_pos);
xyz_min.min(p);
xyz_max.max(p);
}
}
else // m_time_to_live >0
{
m_num_active++ ;
Vec3 p(m_particles[i].m_pos);
xyz_min.min(p);
xyz_max.max(p);
}
} // for i
// Update the bounding sphere
// ==========================
// Determine a bounding sphere by taking the medium of min and max as the
// center. Then use the longest distance along one axis(!) to get a maxium
// boundary box - the radius of a boundary sphere can then be estimated to
// be less then sqrt(x*x+y*y+z*z) = sqrt(3*max(x,y,z)^2) = max(xyz)*sqrt(3)
// (This avoids more expensive computations for the distance of each
// particle: a 2nd loop to determine the distance of each particle to the
// center to get the correct maximum distance, which is the radius).
Vec3 center = 0.5*(xyz_min+xyz_max);
bsphere.setCenter(center.toFloat());
float diameter = xyz_max.getX() - xyz_min.getX();
diameter = std::max(diameter, xyz_max.getY() - xyz_min.getY());
diameter = std::max(diameter, xyz_max.getZ() - xyz_min.getZ());
if(diameter<0) diameter= 0; // happens if no particles exist.
// add the size of the actual quad to the radius on both ends
bsphere.setRadius((diameter*0.5f+2*m_size)*1.733f); // 1.733 approx. sqrt(3)
bsphere_is_invalid = 0;
#endif
} // update
/* EOF */

View File

@@ -1,107 +0,0 @@
/*
$Id$
PLIB - A Suite of Portable Game Libraries
Copyright (C) 1998,2002 Steve Baker
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 3 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
For further information visit http://plib.sourceforge.net */
#ifndef PARTICLE_SYSTEM_HPP
#define PARTICLE_SYSTEM_HPP
/** This is basically the ssgaParticle, but this implementation supports
* methods to be used to create, update and delete the objects instead
* of function pointer as the original plib.
*/
class Particle
{
public:
//sgVec4 m_col ;
//sgVec3 m_pos ;
//sgVec3 m_vel ;
//sgVec3 m_acc ;
float m_size ;
float m_time_to_live ;
void *m_user_data ;
void update ( float dt )
{
//sgAddScaledVec3 ( m_vel, m_acc, dt ) ;
//sgAddScaledVec3 ( m_pos, m_vel, dt ) ;
m_time_to_live -= dt ;
}
Particle ()
{
//sgSetVec4 ( m_col, 1, 1, 1, 1 ) ;
//sgZeroVec3 ( m_pos ) ;
//sgZeroVec3 ( m_vel ) ;
//sgZeroVec3 ( m_acc ) ;
m_time_to_live = 0 ;
m_user_data = 0 ;
m_size = 1.0f ;
}
} ;
/** This is basically the ssgaParticleSystem, but this implementation supports
* methods to be used to create, update and delete the objects instead
* of function pointer as the original plib.
*/
class ParticleSystem //: public ssgVtxTable
{
int m_num_particles ;
int m_num_verts ;
int m_turn_to_face ;
int m_num_active ;
Particle* m_particles ;
float m_create_error ;
float m_create_rate ;
float m_size ;
public:
ParticleSystem ( int num, float _create_rate, int _turn_to_face,
float sz);
virtual ~ParticleSystem () ;
virtual void update ( float t ) ;
virtual void particle_create( int index, Particle *p ) = 0;
virtual void particle_update( float deltaTime, int index, Particle *p ) = 0;
virtual void particle_delete( int index, Particle* p ) {};
void init(int initial_num);
void recalcBSphere();
void setSize ( float sz ) { m_size = sz ; }
float getSize () const { return m_size ; }
void draw_geometry () ;
void setCreationRate ( float cr ) { m_create_rate = cr ; }
float getCreationRate () const { return m_create_rate ; }
int getNumParticles () const { return m_num_particles ; }
int getNumActiveParticles () const { return m_num_active ; }
} ;
#endif
/* EOF */

View File

@@ -16,37 +16,31 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "material_manager.hpp"
#include "material.hpp"
#include "camera.hpp"
#include "modes/world.hpp"
#include "tracks/track.hpp"
#include "user_config.hpp"
#include "graphics/scene.hpp"
#include "btBulletDynamicsCommon.h"
#include "scene.hpp"
#include "config/user_config.hpp"
#include "graphics/camera.hpp"
#include "graphics/material.hpp"
#include "graphics/material_manager.hpp"
#include "modes/world.hpp"
#include "tracks/track.hpp"
Scene *stk_scene = 0;
Scene::Scene() //: m_scenegraph(new ssgRoot)
Scene::Scene()
{
}
//-----------------------------------------------------------------------------
Scene::~Scene ()
{
// delete m_scenegraph;
}
//-----------------------------------------------------------------------------
void Scene::clear ()
{
// if(m_scenegraph != 0)
// {
// m_scenegraph->removeAllKids();
// }
for (Cameras::iterator i = m_cameras.begin(); i != m_cameras.end(); ++i)
delete *i;
@@ -64,19 +58,6 @@ Camera *Scene::createCamera(int playerId, const Kart* kart)
return cam;
}
//-----------------------------------------------------------------------------
/*
void Scene::add(ssgEntity *kid)
{
m_scenegraph->addKid( kid );
}
//-----------------------------------------------------------------------------
void Scene::remove(ssgEntity *kid)
{
m_scenegraph->removeKid( kid );
}*/
//-----------------------------------------------------------------------------
void Scene::reset()
{
@@ -91,37 +72,6 @@ void Scene::draw(float dt)
glEnable ( GL_DEPTH_TEST ) ;
const Track* TRACK = RaceManager::getTrack();
#ifndef HAVE_IRRLICHT
ssgGetLight ( 0 ) -> setPosition ( TRACK->getSunPos() ) ;
ssgGetLight ( 0 ) -> setColour ( GL_AMBIENT , TRACK->getAmbientCol() ) ;
ssgGetLight ( 0 ) -> setColour ( GL_DIFFUSE , TRACK->getDiffuseCol() ) ;
ssgGetLight ( 0 ) -> setColour ( GL_SPECULAR, TRACK->getSpecularCol() ) ;
if (TRACK->useFog())
{
glEnable ( GL_FOG ) ;
glFogf ( GL_FOG_DENSITY, TRACK->getFogDensity() ) ;
glFogfv( GL_FOG_COLOR , TRACK->getFogColor() ) ;
glFogf ( GL_FOG_START , TRACK->getFogStart() ) ;
glFogf ( GL_FOG_END , TRACK->getFogEnd() ) ;
glFogi ( GL_FOG_MODE , GL_EXP2 ) ;
glHint ( GL_FOG_HINT , GL_NICEST ) ;
/* Clear the screen */
glClearColor (TRACK->getFogColor()[0],
TRACK->getFogColor()[1],
TRACK->getFogColor()[2],
TRACK->getFogColor()[3]);
}
else
{
/* Clear the screen */
glClearColor (TRACK->getSkyColor()[0],
TRACK->getSkyColor()[1],
TRACK->getSkyColor()[2],
TRACK->getSkyColor()[3]);
}
#endif
glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ) ;

View File

@@ -17,7 +17,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "shadow.hpp"
#include "graphics/shadow.hpp"
#include "irrlicht.h"

View File

@@ -19,7 +19,7 @@
#include "graphics/skid_marks.hpp"
#include "scene.hpp"
#include "graphics/scene.hpp"
#include "karts/kart.hpp"
#include "physics/btKart.hpp"
#include "utils/coord.hpp"

View File

@@ -17,7 +17,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "smoke.hpp"
#include "graphics/smoke.hpp"
#include "graphics/material_manager.hpp"
#include "graphics/irr_driver.hpp"

View File

@@ -17,7 +17,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "water_splash.hpp"
#include "graphics/water_splash.hpp"
#include "graphics/material_manager.hpp"
#include "graphics/irr_driver.hpp"

View File

@@ -17,17 +17,19 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "user_config.hpp"
#include "gui/credits.hpp"
#include "gui/engine.hpp"
#include "io/file_manager.hpp"
#include <fstream>
#include <irrString.h>
#include <fstream>
#include "irrString.h"
using irr::core::stringw;
using irr::core::stringc;
#include "config/user_config.hpp"
#include "gui/engine.hpp"
#include "io/file_manager.hpp"
namespace GUIEngine
{
const float TIME_SECTION_FADE = 0.4f;

View File

@@ -1,6 +1,9 @@
#ifndef HEADER_CREDITS_HPP
#define HEADER_CREDITS_HPP
#include "irrlicht.h"
using namespace irr;
#include "utils/ptr_vector.hpp"
namespace GUIEngine

View File

@@ -17,10 +17,11 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "gui/font.hpp"
#include <vector>
#include "user_config.hpp"
#include "gui/font.hpp"
#include "config/user_config.hpp"
#include "io/file_manager.hpp"
#include "utils/string_utils.hpp"

View File

@@ -20,8 +20,8 @@
#include "gui/race_gui.hpp"
#include "user_config.hpp"
#include "audio/sound_manager.hpp"
#include "config/user_config.hpp"
#include "graphics/irr_driver.hpp"
#include "graphics/material_manager.hpp"
#include "gui/font.hpp"

View File

@@ -21,15 +21,14 @@
#ifndef HEADER_RACEGUI_HPP
#define HEADER_RACEGUI_HPP
#ifdef HAVE_IRRLICHT
#include "irrlicht.h"
using namespace irr;
#endif
#include <string>
#include <vector>
#include "player.hpp"
#include "irrlicht.h"
using namespace irr;
#include "config/player.hpp"
#include "graphics/material.hpp"
#include "karts/kart.hpp"
#include "karts/player_kart.hpp"

View File

@@ -1,8 +1,10 @@
#include "gui/state_manager.hpp"
#include <vector>
#include "main_loop.hpp"
#include "user_config.hpp"
#include "audio/sound_manager.hpp"
#include "config/user_config.hpp"
#include "graphics/irr_driver.hpp"
#include "gui/credits.hpp"
#include "gui/engine.hpp"
@@ -17,8 +19,6 @@
#include "race/race_manager.hpp"
#include "utils/translation.hpp"
#include <vector>
using namespace GUIEngine;
/**

View File

@@ -201,14 +201,6 @@
RelativePath="..\..\main_loop.cpp"
>
</File>
<File
RelativePath="../../../src\stk_config.cpp"
>
</File>
<File
RelativePath="../../../src\user_config.cpp"
>
</File>
<Filter
Name="gui"
>
@@ -516,10 +508,6 @@
RelativePath="..\..\graphics\nitro.cpp"
>
</File>
<File
RelativePath="..\..\graphics\particle_system.cpp"
>
</File>
<File
RelativePath="..\..\graphics\scene.cpp"
>
@@ -693,60 +681,28 @@
>
</File>
</Filter>
<Filter
Name="config"
>
<File
RelativePath="..\..\config\stk_config.cpp"
>
</File>
<File
RelativePath="..\..\config\user_config.cpp"
>
</File>
</Filter>
</Filter>
<Filter
Name="Headerdateien"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\..\gui\help_page_one.hpp"
>
</File>
<File
RelativePath="..\..\gui\help_page_two.hpp"
>
</File>
<File
RelativePath="../../../src\herring_manager.hpp"
>
</File>
<File
RelativePath="..\..\main_loop.hpp"
>
</File>
<File
RelativePath="../../../src\material.hpp"
>
</File>
<File
RelativePath="../../../src\material_manager.hpp"
>
</File>
<File
RelativePath="../../../src\player.hpp"
>
</File>
<File
RelativePath="..\..\position.hpp"
>
</File>
<File
RelativePath="../../../src\ssg_help.hpp"
>
</File>
<File
RelativePath="../../../src\stk_config.hpp"
>
</File>
<File
RelativePath="../../../src\user_config.hpp"
>
</File>
<File
RelativePath="..\..\vec3.hpp"
>
</File>
<Filter
Name="gui"
>
@@ -1170,10 +1126,6 @@
RelativePath="..\..\graphics\nitro.hpp"
>
</File>
<File
RelativePath="..\..\graphics\particle_system.hpp"
>
</File>
<File
RelativePath="..\..\graphics\scene.hpp"
>
@@ -1311,6 +1263,22 @@
>
</File>
</Filter>
<Filter
Name="config"
>
<File
RelativePath="..\..\config\player.hpp"
>
</File>
<File
RelativePath="..\..\config\stk_config.hpp"
>
</File>
<File
RelativePath="..\..\config\user_config.hpp"
>
</File>
</Filter>
</Filter>
<Filter
Name="Ressourcendateien"

View File

@@ -1,10 +1,11 @@
#include "graphics/irr_driver.hpp"
#include "input/device_manager.hpp"
#include "io/file_manager.hpp"
#include <iostream>
#include <fstream>
#include "user_config.hpp"
#include "config/user_config.hpp"
#include "graphics/irr_driver.hpp"
#include "io/file_manager.hpp"
DeviceManager::DeviceManager()
{

View File

@@ -26,8 +26,8 @@
#include <algorithm>
#include "main_loop.hpp"
#include "player.hpp"
#include "user_config.hpp"
#include "config/player.hpp"
#include "config/user_config.hpp"
#include "graphics/irr_driver.hpp"
#include "gui/options_screen.hpp"
#include "gui/state_manager.hpp"
@@ -47,9 +47,8 @@ InputManager *input_manager;
//-----------------------------------------------------------------------------
/** Initialise input
*/
InputManager::InputManager()
: m_sensed_input(0),
m_mode(BOOTSTRAP), m_mouse_val_x(0), m_mouse_val_y(0)
InputManager::InputManager() : m_sensed_input(0), m_mode(BOOTSTRAP),
m_mouse_val_x(0), m_mouse_val_y(0)
{
m_device_manager = new DeviceManager();

View File

@@ -19,8 +19,8 @@
#include "items/attachment.hpp"
#include "stk_config.hpp"
#include "user_config.hpp"
#include "config/stk_config.hpp"
#include "config/user_config.hpp"
#include "graphics/irr_driver.hpp"
#include "items/attachment_manager.hpp"
#include "items/projectile_manager.hpp"

View File

@@ -20,7 +20,7 @@
#ifndef HEADER_ATTACHMENT_HPP
#define HEADER_ATTACHMENT_HPP
#include "stk_config.hpp"
#include "config/stk_config.hpp"
#include "utils/random_generator.hpp"
class Kart;

View File

@@ -25,7 +25,7 @@
using namespace irr;
#endif
#include "flyable.hpp"
#include "items/flyable.hpp"
class Bowling : public Flyable
{

View File

@@ -23,7 +23,7 @@
#include "irrlicht.h"
using namespace irr;
#include "flyable.hpp"
#include "items/flyable.hpp"
class Cake : public Flyable
{

View File

@@ -17,72 +17,25 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "items/item_manager.hpp"
#include <stdexcept>
#include <string>
#include <sstream>
#include "user_config.hpp"
#include "config/user_config.hpp"
#include "graphics/irr_driver.hpp"
#include "graphics/material.hpp"
#include "graphics/material_manager.hpp"
#include "io/file_manager.hpp"
#include "items/item_manager.hpp"
#include "items/bubblegumitem.hpp"
#include "karts/kart.hpp"
#include "network/network_manager.hpp"
#include "utils/string_utils.hpp"
/** Simple shadow class, only used here for default items. */
class Shadow
{
//ssgBranch *sh ;
public:
Shadow ( float x1, float x2, float y1, float y2 ) { /* TODO */ }
// ssgEntity *getRoot () { return sh ; }
}
; // Shadow
#if 0
//-----------------------------------------------------------------------------
Shadow::Shadow ( float x1, float x2, float y1, float y2 )
{
ssgVertexArray *va = new ssgVertexArray () ; sgVec3 v ;
ssgNormalArray *na = new ssgNormalArray () ; sgVec3 n ;
ssgColourArray *ca = new ssgColourArray () ; sgVec4 c ;
ssgTexCoordArray *ta = new ssgTexCoordArray () ; sgVec2 t ;
sgSetVec4 ( c, 0.0f, 0.0f, 0.0f, 1.0f ) ; ca->add(c) ;
sgSetVec3 ( n, 0.0f, 0.0f, 1.0f ) ; na->add(n) ;
sgSetVec3 ( v, x1, y1, 0.10f ) ; va->add(v) ;
sgSetVec3 ( v, x2, y1, 0.10f ) ; va->add(v) ;
sgSetVec3 ( v, x1, y2, 0.10f ) ; va->add(v) ;
sgSetVec3 ( v, x2, y2, 0.10f ) ; va->add(v) ;
sgSetVec2 ( t, 0.0f, 0.0f ) ; ta->add(t) ;
sgSetVec2 ( t, 1.0f, 0.0f ) ; ta->add(t) ;
sgSetVec2 ( t, 0.0f, 1.0f ) ; ta->add(t) ;
sgSetVec2 ( t, 1.0f, 1.0f ) ; ta->add(t) ;
sh = new ssgBranch ;
sh -> clrTraversalMaskBits ( SSGTRAV_ISECT|SSGTRAV_HOT ) ;
sh -> setName ( "Shadow" ) ;
ssgVtxTable *gs = new ssgVtxTable ( GL_TRIANGLE_STRIP, va, na, ta, ca ) ;
gs -> clrTraversalMaskBits ( SSGTRAV_ISECT|SSGTRAV_HOT ) ;
#ifndef HAVE_IRRLICHT
gs -> setState ( fuzzy_gst ) ;
#endif
sh -> addKid ( gs ) ;
sh -> ref () ; /* Make sure it doesn't get deleted by mistake */
} // Shadow
#endif
//=============================================================================
ItemManager* item_manager;
//-----------------------------------------------------------------------------
typedef std::map<std::string,scene::IMesh*>::const_iterator CI_type;
ItemManager::ItemManager()

View File

@@ -22,7 +22,7 @@
#include "irrlicht.h"
using namespace irr;
#include "flyable.hpp"
#include "items/flyable.hpp"
class RubberBand;
class Kart;

View File

@@ -19,10 +19,10 @@
#include "items/powerup.hpp"
#include "user_config.hpp"
#include "stk_config.hpp"
#include "audio/sfx_base.hpp"
#include "audio/sfx_manager.hpp"
#include "config/user_config.hpp"
#include "config/stk_config.hpp"
#include "items/item_manager.hpp"
#include "items/projectile_manager.hpp"
#include "karts/kart.hpp"

View File

@@ -17,7 +17,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "rubber_band.hpp"
#include "items/rubber_band.hpp"
#include "graphics/irr_driver.hpp"
#include "graphics/material_manager.hpp"

View File

@@ -23,13 +23,12 @@
#include <math.h>
#include <iostream>
#include "bullet/Demos/OpenGL/GL_ShapeDrawer.h"
#include "user_config.hpp"
#include "audio/sound_manager.hpp"
#include "audio/sfx_manager.hpp"
#include "audio/sfx_base.hpp"
#include "config/user_config.hpp"
#include "graphics/material_manager.hpp"
#include "graphics/nitro.hpp"
#include "graphics/shadow.hpp"

View File

@@ -19,8 +19,8 @@
#include "karts/kart_model.hpp"
#include "stk_config.hpp"
#include "user_config.hpp"
#include "config/stk_config.hpp"
#include "config/user_config.hpp"
#include "graphics/irr_driver.hpp"
#include "graphics/mesh_tools.hpp"
#include "io/file_manager.hpp"

View File

@@ -17,12 +17,13 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "kart_properties.hpp"
#include "karts/kart_properties.hpp"
#include <iostream>
#include <stdexcept>
#include "stk_config.hpp"
#include "user_config.hpp"
#include "config/stk_config.hpp"
#include "config/user_config.hpp"
#include "graphics/material_manager.hpp"
#include "io/file_manager.hpp"
#include "karts/kart_model.hpp"

View File

@@ -23,9 +23,9 @@
#include <algorithm>
#include <ctime>
#include "stk_config.hpp"
#include "user_config.hpp"
#include "challenges/unlock_manager.hpp"
#include "config/stk_config.hpp"
#include "config/user_config.hpp"
#include "io/file_manager.hpp"
#include "karts/kart_properties.hpp"
#include "utils/string_utils.hpp"

View File

@@ -20,7 +20,7 @@
#include "karts/moveable.hpp"
#include "user_config.hpp"
#include "config/user_config.hpp"
#include "graphics/irr_driver.hpp"
#include "graphics/material.hpp"
#include "graphics/material_manager.hpp"

View File

@@ -20,13 +20,13 @@
#include "karts/player_kart.hpp"
#include "player.hpp"
#include "input/input_manager.hpp"
#include "audio/sfx_manager.hpp"
#include "audio/sfx_base.hpp"
#include "audio/sfx_manager.hpp"
#include "config/player.hpp"
#include "graphics/camera.hpp"
#include "graphics/scene.hpp"
#include "gui/race_gui.hpp"
#include "input/input_manager.hpp"
#include "items/item.hpp"
#include "modes/world.hpp"
#include "race/history.hpp"

View File

@@ -22,7 +22,7 @@
#ifndef HEADER_PLAYERKART_HPP
#define HEADER_PLAYERKART_HPP
#include "player.hpp"
#include "config/player.hpp"
#include "karts/kart.hpp"
class SFXBase;

View File

@@ -17,7 +17,7 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "lisp.hpp"
#include "lisp/lisp.hpp"
namespace lisp
{

View File

@@ -21,7 +21,7 @@
#define __LISPPARSER_H__
#include <string>
#include "lexer.hpp"
#include "lisp/lexer.hpp"
namespace lisp
{

View File

@@ -38,12 +38,12 @@
#include <sstream>
#include <algorithm>
#include "user_config.hpp"
#include "main_loop.hpp"
#include "stk_config.hpp"
#include "audio/sound_manager.hpp"
#include "audio/sfx_manager.hpp"
#include "challenges/unlock_manager.hpp"
#include "config/stk_config.hpp"
#include "config/user_config.hpp"
#include "graphics/irr_driver.hpp"
#include "graphics/material_manager.hpp"
#include "graphics/scene.hpp"

View File

@@ -21,8 +21,8 @@
#include <assert.h>
#include "user_config.hpp"
#include "audio/sound_manager.hpp"
#include "config/user_config.hpp"
#include "graphics/irr_driver.hpp"
#include "graphics/material_manager.hpp"
#include "graphics/scene.hpp"

View File

@@ -17,9 +17,9 @@
#include "modes/clock.hpp"
#include "stk_config.hpp"
#include "audio/sfx_manager.hpp"
#include "audio/sfx_base.hpp"
#include "config/stk_config.hpp"
#include "network/network_manager.hpp"
//-----------------------------------------------------------------------------

View File

@@ -15,12 +15,13 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "user_config.hpp"
#include "modes/follow_the_leader.hpp"
#include "audio/sound_manager.hpp"
#include "challenges/unlock_manager.hpp"
#include "config/user_config.hpp"
#include "gui/race_gui.hpp"
#include "items/powerup_manager.hpp"
#include "modes/follow_the_leader.hpp"
#include "tracks/track.hpp"
#include "utils/translation.hpp"

View File

@@ -17,8 +17,8 @@
#include "modes/standard_race.hpp"
#include "user_config.hpp"
#include "challenges/unlock_manager.hpp"
#include "config/user_config.hpp"
//-----------------------------------------------------------------------------
StandardRace::StandardRace() : LinearWorld()

View File

@@ -25,11 +25,11 @@
#include <algorithm>
#include <ctime>
#include "user_config.hpp"
#include "audio/sound_manager.hpp"
#include "audio/sfx_manager.hpp"
#include "audio/sfx_base.hpp"
#include "challenges/unlock_manager.hpp"
#include "config/user_config.hpp"
#include "graphics/camera.hpp"
#include "graphics/scene.hpp"
#include "gui/race_gui.hpp"

View File

@@ -26,7 +26,7 @@
# include <unistd.h>
#endif
#include "user_config.hpp"
#include "config/user_config.hpp"
#include "karts/kart_properties_manager.hpp"
#include "tracks/track_manager.hpp"

View File

@@ -16,7 +16,9 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "kart_control_message.hpp"
#include "network/kart_control_message.hpp"
#include "modes/world.hpp"
#include "network/network_kart.hpp"

View File

@@ -16,7 +16,9 @@
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "kart_update_message.hpp"
#include "network/kart_update_message.hpp"
#include "modes/world.hpp"
#include "karts/kart.hpp"

View File

@@ -17,7 +17,8 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "message.hpp"
#include "network/message.hpp"
#include <string>
#include <math.h>
#include <stdexcept>

View File

@@ -17,10 +17,10 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "network_manager.hpp"
#include "network/network_manager.hpp"
#include "stk_config.hpp"
#include "user_config.hpp"
#include "config/stk_config.hpp"
#include "config/user_config.hpp"
#include "karts/kart_properties_manager.hpp"
#include "modes/world.hpp"
#include "network/connect_message.hpp"

View File

@@ -27,7 +27,7 @@
#endif
#include "network/message.hpp"
#include "race_manager.hpp"
#include "race/race_manager.hpp"
class NumPlayersMessage : public Message
{

View File

@@ -19,7 +19,7 @@
#include "physics/physics.hpp"
#include "user_config.hpp"
#include "config/user_config.hpp"
#include "network/race_state.hpp"
#include "physics/btKart.hpp"
#include "physics/btUprightConstraint.hpp"

View File

@@ -17,7 +17,8 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "triangle_mesh.hpp"
#include "physics/triangle_mesh.hpp"
#include "modes/world.hpp"
// -----------------------------------------------------------------------------

View File

@@ -22,7 +22,7 @@
#include <stdexcept>
#include <sstream>
#include "user_config.hpp"
#include "config/user_config.hpp"
#include "io/file_manager.hpp"
#include "lisp/parser.hpp"
#include "lisp/writer.hpp"

View File

@@ -21,9 +21,9 @@
#include <iostream>
#include "user_config.hpp"
#include "stk_config.hpp"
#include "challenges/unlock_manager.hpp"
#include "config/user_config.hpp"
#include "config/stk_config.hpp"
#include "graphics/scene.hpp"
#include "karts/kart_properties_manager.hpp"
#include "modes/follow_the_leader.hpp"

View File

@@ -19,7 +19,7 @@
#ifdef HAVE_GHOST_REPLAY
#include "replay_base.hpp"
#include "replay/replay_base.hpp"
const std::string ReplayBase::REPLAY_FOLDER = "replay";

View File

@@ -25,7 +25,7 @@
#include <string>
#include "replay_buffers.hpp"
#include "replay/replay_buffers.hpp"
// the data stored for each kart in each frame

View File

@@ -19,11 +19,11 @@
#ifdef HAVE_GHOST_REPLAY
#include "replay/replay_buffers.hpp"
#include <cassert>
#include "replay_base.hpp"
#include "replay_buffers.hpp"
#include "replay/replay_base.hpp"
#define REPLAY_SAVE_STATISTIC

View File

@@ -25,7 +25,7 @@
#include <cstdio>
#include "replay_buffer_tpl.hpp"
#include "replay/replay_buffer_tpl.hpp"
struct ReplayKartState;
struct ReplayFrame;

View File

@@ -19,10 +19,11 @@
#ifdef HAVE_GHOST_REPLAY
#include "kart_properties_manager.hpp"
#include "kart_properties.hpp"
#include "replay/replay_player.hpp"
#include "replay_player.hpp"
#include "graphics/scene.hpp"
#include "karts/kart_properties_manager.hpp"
#include "karts/kart_properties.hpp"
ReplayKart::ReplayKart()
@@ -68,8 +69,6 @@ bool ReplayKart::init( const std::string &strKartIdent )
return true;
}
#include "scene.hpp"
ReplayPlayer::ReplayPlayer()
: ReplayBase(), m_current_frame_index(-1)
{

View File

@@ -23,7 +23,7 @@
#ifdef HAVE_GHOST_REPLAY
#include <vector>
#include "replay_base.hpp"
#include "replay/replay_base.hpp"
class KartProperties;

View File

@@ -19,9 +19,10 @@
#ifdef HAVE_GHOST_REPLAY
#include "replay/replay_recorder.hpp"
#include <cassert>
#include "replay_recorder.hpp"
#include "modes/world.hpp"
const float ReplayRecorder::REPLAY_TIME_STEP_MIN = 1.0f / (float)ReplayRecorder::REPLAY_FREQUENCY_MAX;

View File

@@ -22,7 +22,7 @@
#ifdef HAVE_GHOST_REPLAY
#include "replay_base.hpp"
#include "replay/replay_base.hpp"
// class managing:

View File

@@ -32,12 +32,13 @@
#endif
#include "default_robot.hpp"
#include "robots/default_robot.hpp"
#include <cstdlib>
#include <ctime>
#include <cstdio>
#include <iostream>
#include "graphics/scene.hpp"
#include "modes/linear_world.hpp"
#include "network/network_manager.hpp"

View File

@@ -34,7 +34,7 @@
#include "modes/world.hpp"
#include "empty_robot.hpp"
#include "robot/empty_robot.hpp"
EmptyRobot::EmptyRobot(const KartProperties *kart_properties, int position,
sgCoord init_pos) :

View File

@@ -20,7 +20,7 @@
#ifndef HEADER_EMPTY_HPP
#define HEADER_EMPTY_HPP
#include "auto_kart.hpp"
#include "karts/auto_kart.hpp"
class EmptyRobot : public AutoKart
{

View File

@@ -19,7 +19,7 @@
#include "tracks/quad_graph.hpp"
#include "user_config.hpp"
#include "config/user_config.hpp"
#include "graphics/irr_driver.hpp"
#include "io/file_manager.hpp"
#include "io/xml_node.hpp"

View File

@@ -87,6 +87,3 @@ bool Quad::pointInQuad(const Vec3& p) const
}
} // pointInQuad
#include "quad.hpp"

View File

@@ -19,7 +19,7 @@
#include "tracks/quad_graph.hpp"
#include "user_config.hpp"
#include "config/user_config.hpp"
#include "graphics/irr_driver.hpp"
#include "io/file_manager.hpp"
#include "io/xml_node.hpp"

View File

@@ -17,7 +17,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "quad_set.hpp"
#include "tracks/quad_set.hpp"
#include <stdlib.h>

View File

@@ -17,16 +17,18 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "track.hpp"
#include "tracks/track.hpp"
#include <iostream>
#include <stdexcept>
#include <sstream>
#include "irrlicht.h"
#include "stk_config.hpp"
#include "user_config.hpp"
#include "irrlicht.h"
using namespace irr;
#include "audio/sound_manager.hpp"
#include "config/stk_config.hpp"
#include "config/user_config.hpp"
#include "graphics/irr_driver.hpp"
#include "graphics/material_manager.hpp"
#include "graphics/mesh_tools.hpp"

View File

@@ -24,8 +24,8 @@
#include <algorithm>
#include <sstream>
#include "stk_config.hpp"
#include "audio/sound_manager.hpp"
#include "config/stk_config.hpp"
#include "io/file_manager.hpp"
#include "tracks/track.hpp"

View File

@@ -23,7 +23,7 @@
#include "LinearMath/btTransform.h"
#include "constants.hpp"
#include "utils/constants.hpp"
#include "utils/vec3.hpp"
/** A class that stores a translation and rotation. It is used to convert

View File

@@ -17,7 +17,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "random_generator.hpp"
#include "utils/random_generator.hpp"
#include <stdlib.h>
#include <ctime>

View File

@@ -18,9 +18,10 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "utils/string_utils.hpp"
#include <algorithm>
#include <cstring>
#include "string_utils.hpp"
namespace StringUtils
{

View File

@@ -18,7 +18,8 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "utils/vec3.hpp"
#include "constants.hpp"
#include "utils/constants.hpp"
void Vec3::setHPR(const btMatrix3x3& m)
{