X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=radiant%2Fmap.h;h=2e6799088078eba42fdd31f7f4ccba4095efbc30;hb=961fb5bd5f3998167bb7df90556d9c3941049bd1;hp=e74d89816e55840dda0b7b5a00a43e93ab7de128;hpb=6ee91d153ea09f2dafa62ed2f022f4183c090168;p=xonotic%2Fnetradiant.git diff --git a/radiant/map.h b/radiant/map.h index e74d8981..2e679908 100644 --- a/radiant/map.h +++ b/radiant/map.h @@ -1,170 +1,71 @@ /* -Copyright (C) 1999-2006 Id Software, Inc. and contributors. -For a list of contributors, see the accompanying CONTRIBUTORS file. - -This file is part of GtkRadiant. - -GtkRadiant is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -GtkRadiant 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 General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GtkRadiant; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#if !defined(INCLUDED_MAP_H) -#define INCLUDED_MAP_H - -#include "iscenegraph.h" -#include "generic/callback.h" -#include "signal/signalfwd.h" -#include "string/stringfwd.h" - -class Map; -extern Map g_map; - -class MapFormat; - -void Map_addValidCallback(Map& map, const SignalHandler& handler); -bool Map_Valid(const Map& map); - -class DeferredDraw -{ - Callback m_draw; - bool m_defer; - bool m_deferred; -public: - DeferredDraw(const Callback& draw) : m_draw(draw), m_defer(false), m_deferred(false) - { - } - void defer() - { - m_defer = true; - } - void draw() - { - if(m_defer) - { - m_deferred = true; - } - else - { - m_draw(); - } - } - void flush() - { - if(m_defer && m_deferred) - { - m_draw(); - } - m_deferred = false; - m_defer = false; - } -}; + Copyright (C) 1999-2007 id Software, Inc. and contributors. + For a list of contributors, see the accompanying CONTRIBUTORS file. -inline void DeferredDraw_onMapValidChanged(DeferredDraw& self) -{ - if(Map_Valid(g_map)) - { - self.flush(); - } - else - { - self.defer(); - } -} -typedef ReferenceCaller DeferredDrawOnMapValidChangedCaller; + This file is part of GtkRadiant. + GtkRadiant is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + GtkRadiant 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 General Public License for more details. -const char* Map_Name(const Map& map); -const MapFormat& Map_getFormat(const Map& map); -bool Map_Unnamed(const Map& map); + You should have received a copy of the GNU General Public License + along with GtkRadiant; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +// map.h -- the state of the current world that all views are displaying -namespace scene -{ - class Node; - class Graph; -} +extern char currentmap[1024]; -scene::Node* Map_GetWorldspawn(const Map& map); -scene::Node* Map_FindWorldspawn(Map& map); -scene::Node& Map_FindOrInsertWorldspawn(Map& map); +// head/tail of doubly linked lists +extern brush_t active_brushes; // brushes currently being displayed +extern brush_t selected_brushes; // highlighted -template class BasicVector3; -typedef BasicVector3 Vector3; +extern CPtrArray& g_ptrSelectedFaces; +extern CPtrArray& g_ptrSelectedFaceBrushes; -extern Vector3 region_mins, region_maxs; -extern bool region_active; +extern brush_t filtered_brushes; // brushes that have been filtered or regioned -// used to be #defines, multiple engine support suggests we should go towards dynamic -extern float g_MaxWorldCoord; -extern float g_MinWorldCoord; +extern entity_t entities; +extern entity_t *world_entity; // the world entity is NOT included in + // the entities chain -void Map_LoadFile(const char* filename); -bool Map_SaveFile(const char* filename); +extern int modified; // for quit confirmations -void Map_New(); -void Map_Free(); +extern vec3_t region_mins, region_maxs; +extern qboolean region_active; -void Map_RegionOff(); +extern brush_t *region_sides[6]; -bool Map_SaveRegion(const char* filename); +void Map_Init(); -class TextInputStream; -class TextOutputStream; +void Map_LoadFile( const char *filename ); +void Map_SaveFile( const char *filename, qboolean use_region ); -void Map_ImportSelected(TextInputStream& in, const MapFormat& format); -void Map_ExportSelected(TextOutputStream& out, const MapFormat& format); +void Map_New( void ); +void Map_Free( void ); +void Map_BuildBrushData( void ); -bool Map_Modified(const Map& map); -void Map_SetModified(Map& map, bool modified); +void Map_RegionOff( void ); +void Map_RegionXY( void ); +void Map_RegionTallBrush( void ); +void Map_RegionBrush( void ); +void Map_RegionSelectedBrushes( void ); +qboolean Map_IsBrushFiltered( brush_t *b ); -bool Map_Save(); -bool Map_SaveAs(); +void Map_ImportFile( const char *filename ); +void Map_SaveSelected( const char* filename ); +//void Map_SaveSelected(MemStream* pMemFile, MemStream* pPatchFile = NULL); +//void Map_ImportBuffer (char* buf); -scene::Node& Node_Clone(scene::Node& node); +void Map_StartPosition( void ); +void Region_SpawnPoint( FILE *f ); -void DoMapInfo(); - -void Scene_parentSelectedBrushesToEntity(scene::Graph& graph, scene::Node& parent); -std::size_t Scene_countSelectedBrushes(scene::Graph& graph); - -void Scene_parentSelected(); - -void OnUndoSizeChanged(); - -void NewMap(); -void OpenMap(); -void ImportMap(); -void SaveMapAs(); -void SaveMap(); -void ExportMap(); -void SaveRegion(); - - -void Map_Traverse(scene::Node& root, const scene::Traversable::Walker& walker); - - -void SelectBrush (int entitynum, int brushnum); - -extern CopiedString g_strLastMap; -extern bool g_bLoadLastMap; - -void Map_Construct(); -void Map_Destroy(); - - -void Map_gatherNamespaced(scene::Node& root); -void Map_mergeClonedNames(); - -#endif +void Map_Import( IDataStream *in, const char* type, bool bAddSelected = false ); +void Map_Export( IDataStream *out, const char* type, bool bRegionOnly = false, bool bSelectedOnly = false );