http://ufoai.org/w/api.php?action=feedcontributions&user=RudolfoWood&feedformat=atomUFO:AI - User contributions [en]2024-03-29T05:26:45ZUser contributionsMediaWiki 1.35.4http://ufoai.org/w/index.php?title=Scripteditors/EMFText&diff=27455Scripteditors/EMFText2010-06-01T18:29:07Z<p>RudolfoWood: Team Project Set link</p>
<hr />
<div>The EMFText script editor tries to provide an editor with syntax highlighting, script code navigation and additional restriction checks. It is based on [http://www.emftext.org/index.php/EMFText EMFText], which provides a framework to generate all needed files from a simple syntax model.<br />
<br />
As EMFText and UfoEditor are work in progress, there are some things that have to receive attention:<br />
- As for now, we need the current trunk version of EMFText, so see [https://sourceforge.net/apps/trac/ufoai/browser/ufoai/eclipse/emftext.psf this] Team Project Set to check out and get the required plugins for extending the UfoEditor plugins. You won't need those for just using the plugins.<br />
- EMFText requires Eclipse EMF Feature<br />
- As EMFText has (known) problems with duplicate keywords, some of the syntax scripts have to be altered until EMFText provides a better solution (scannerless parsers)<br />
<br />
==Usage==<br />
UfoEditor is automatically associated with *.ufo files if the project has the appropriate project nature.<br />
<br />
==Overview==<br />
Model Plugin:<br />
<br />
* model/ufo.ecore: Model for syntax elements<br />
* model/ufo.genmodel: needed file for code generation<br />
* model/ufo.cs: Main Syntax file, contains references to syntax modules<br />
* model/ufo*.cs: syntax modules for easier handling<br />
* src/...: generated classes for model<br />
<br />
Main Editor Plugin:<br />
<br />
* src/...resource.ufo.analysis: reference resolvers<br />
* src/...resource.ufo.analysis.finder: reuseable resolver stubs, rely on cache<br />
* src/...resource.ufo.cache: current cache implementation, CacheAdder knows which values must be added to cache.<br />
<br />
==Extend UfoEditor==<br />
Basically these steps are necessary to extend:<br />
# make your changes to sub-cs file<br />
# regenerate code for sub-cs file and main cs file<br />
# for now: delete UfoPlugin from MainEditorPlugin/src-generated/...mopp, it gets overridden by generation, but original version is needed until better cache solution is found (EMFText Sokan is currently in evaluation)<br />
<br />
==Additional Stuff==<br />
* additional post processors for syntax checks (e.g. correct path usage for icons/models) may be registered to UfoOptionProvider<br />
* for now CacheAdder has to be extended if other objects have to be cached to be resolved later via cache<br />
<br />
==Hints==<br />
* special token definitions used in sub-cs files must also be included in main cs file<br />
* Choices won't be recognized without proper parenthesis around them, so don't forget to add them<br />
* order of defines token definitions determines, which ones get higher priority<br />
<br />
<br />
[[Category:UFO-Scripts]]</div>RudolfoWoodhttp://ufoai.org/w/index.php?title=Talk:TODO/UFORadiant&diff=20043Talk:TODO/UFORadiant2009-02-03T17:03:33Z<p>RudolfoWood: /* Compiler warnings */</p>
<hr />
<div>== Radiant warnings ==<br />
accelerator already in-use: <Shift>x<br />
accelerator already in-use: j<br />
accelerator already in-use: e<br />
<br />
== GTK warnings ==<br />
Gtk-WARNING **: GtkSpinButton: setting an adjustment with non-zero page size is deprecated<br />
<br />
Gtk-WARNING **: GtkSpinButton: setting an adjustment with non-zero page size is deprecated<br />
<br />
: fixed by setting page-size to 0 on adjustment - [[User:RudolfoWood|RudolfoWood]] 17:01, 3 February 2009 (UTC)<br />
<br />
Gtk-CRITICAL **: gtk_accel_group_connect: assertion `GTK_IS_ACCEL_GROUP (accel_group)' failed<br />
<br />
== Compiler warnings ==<br />
<br />
src/tools/radiant/radiant/exec.cpp: In function 'void exec_run(Exec*)':<br />
src/tools/radiant/radiant/exec.cpp:379: warning: ignoring return value of 'int pipe(int*)', declared with attribute warn_unused_result<br />
<br />
src/tools/radiant/radiant/console.cpp: In function 'size_t Sys_Print(int, const char*, size_t)':<br />
src/tools/radiant/radiant/console.cpp:155: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
<br />
src/tools/radiant/radiant/renderstate.cpp: In member function 'void OpenGLShader::construct(const char*)':<br />
src/tools/radiant/radiant/renderstate.cpp:1317: warning: dereferencing type-punned pointer will break strict-aliasing rules<br />
src/tools/radiant/radiant/renderstate.cpp:1317: warning: dereferencing type-punned pointer will break strict-aliasing rules<br />
<br />
src/tools/radiant/radiant/textures.cpp: In function 'void Textures_constructPreferences(PreferencesPage&)':<br />
src/tools/radiant/radiant/textures.cpp:676: warning: dereferencing type-punned pointer will break strict-aliasing rules<br />
src/tools/radiant/radiant/textures.cpp: In function 'void Textures_Construct()':<br />
src/tools/radiant/radiant/textures.cpp:702: warning: dereferencing type-punned pointer will break strict-aliasing rules<br />
src/tools/radiant/radiant/textures.cpp:704: warning: dereferencing type-punned pointer will break strict-aliasing rules<br />
src/tools/radiant/radiant/textures.cpp:704: warning: dereferencing type-punned pointer will break strict-aliasing rules<br />
<br />
src/tools/radiant/radiant/treemodel.cpp: In function 'std::_Rb_tree_iterator<std::pair<const std::pair<String<CopiedBuffer<DefaultAllocator<char> > >, scene::Node*>, GraphTreeNode*> > graph_iterator_read_tree_iter(GtkTreeIter*)':<br />
src/tools/radiant/radiant/treemodel.cpp:137: warning: dereferencing type-punned pointer will break strict-aliasing rules<br />
src/tools/radiant/radiant/treemodel.cpp: In function 'void graph_iterator_write_tree_iter(std::_Rb_tree_iterator<std::pair<const std::pair<String<CopiedBuffer<DefaultAllocator<char> > >, scene::Node*>, GraphTreeNode*> >, GtkTreeIter*)':<br />
src/tools/radiant/radiant/treemodel.cpp:143: warning: dereferencing type-punned pointer will break strict-aliasing rules<br />
src/tools/radiant/radiant/treemodel.cpp:143: warning: dereferencing type-punned pointer will break strict-aliasing rules<br />
<br />
src/tools/radiant/radiant/xywindow.cpp: In function 'void WXY_Print()':<br />
src/tools/radiant/radiant/xywindow.cpp:574: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
src/tools/radiant/radiant/xywindow.cpp:576: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
src/tools/radiant/radiant/xywindow.cpp:578: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
src/tools/radiant/radiant/xywindow.cpp:580: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
src/tools/radiant/radiant/xywindow.cpp:582: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
src/tools/radiant/radiant/xywindow.cpp:584: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
src/tools/radiant/radiant/xywindow.cpp:590: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
src/tools/radiant/radiant/xywindow.cpp:592: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
src/tools/radiant/radiant/xywindow.cpp:594: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
src/tools/radiant/radiant/xywindow.cpp:596: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
src/tools/radiant/radiant/xywindow.cpp:598: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
src/tools/radiant/radiant/xywindow.cpp:600: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
src/tools/radiant/radiant/xywindow.cpp:602: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
src/tools/radiant/radiant/xywindow.cpp:604: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
src/tools/radiant/radiant/xywindow.cpp:606: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
src/tools/radiant/radiant/xywindow.cpp:608: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
src/tools/radiant/radiant/xywindow.cpp:610: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
<br />
src/tools/radiant/radiant/dialogs/texteditor.cpp: In function 'void editor_save(GtkWidget*, void*)':<br />
src/tools/radiant/radiant/dialogs/texteditor.cpp:72: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
src/tools/radiant/radiant/dialogs/texteditor.cpp:76: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
src/tools/radiant/radiant/dialogs/texteditor.cpp: In function 'void DoTextEditor(const char*, int, const char*)':<br />
src/tools/radiant/radiant/dialogs/texteditor.cpp:172: warning: ignoring return value of 'size_t fread(void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
<br />
src/tools/radiant/libs/profile/profile.cpp: In function 'bool save_var(const char*, const char*, const char*, const char*)':<br />
src/tools/radiant/libs/profile/profile.cpp:109: warning: ignoring return value of 'size_t fread(void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result<br />
<br />
<br />
* "dereferencing type-punned pointer will break strict-aliasing rules" comes from reinterpret-cast, should these be removed?<br />
* "ignoring return value of 'size_t fwrite" returns the actually written bytes, we could check whether these are the expected values or ignore this? [[User:RudolfoWood|RudolfoWood]] 17:03, 3 February 2009 (UTC)<br />
<br />
== Valgrind ==<br />
<br />
==11265== 512 bytes in 1 blocks are still reachable in loss record 362 of 483<br />
==11265== at 0x4025D2E: malloc (vg_replace_malloc.c:207)<br />
==11265== by 0x818E3BC: R_ResampleTexture(void const*, int, int, void*, int, int, int) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x81900A3: LoadTextureRGBA(qtexture_t*, unsigned char*, int, int) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8190349: qtexture_realise(qtexture_t&, std::pair<LoadImageCallback, String<CopiedBuffer<DefaultAllocator<char> > > > const&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8192307: TexturesMap::capture(LoadImageCallback const&, char const*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x54AEF1D: ???<br />
==11265== by 0x54B0277: ???<br />
==11265== by 0x54B06D8: ???<br />
==11265== by 0x54B485C: ???<br />
==11265== by 0x8163F7B: OpenGLShader::construct(char const*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x816B568: OpenGLShaderCache::capture(char const*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x80DB1A6: FaceShader::captureShader() (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== 256 bytes in 1 blocks are definitely lost in loss record 349 of 483<br />
==11265== at 0x402573E: operator new(unsigned) (vg_replace_malloc.c:224)<br />
==11265== by 0x54FD65F: ???<br />
==11265== by 0x54F9391: ???<br />
==11265== by 0x54F6C56: ???<br />
==11265== by 0x815D414: ModelResource_load(ModelLoader*, char const*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x815EC88: Model_load(ModelLoader*, char const*, char const*, char const*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8163066: ModelResource::load() (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x543CE24: ???<br />
==11265== by 0x815F8AA: ModelResource::attach(ModuleObserver&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x54483FF: ???<br />
==11265== by 0x545C8A8: ???<br />
==11265== by 0x543ED5A: ???<br />
==11265==<br />
==11265==<br />
==11265== 256 bytes in 1 blocks are definitely lost in loss record 350 of 483<br />
==11265== at 0x402573E: operator new(unsigned) (vg_replace_malloc.c:224)<br />
==11265== by 0x545FD24: ???<br />
==11265== by 0x545FF07: ???<br />
==11265== by 0x80E3044: InstanceSubgraphWalker::pre(scene::Node&) const (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x813A9C4: TraversableNodeSet::traverse(scene::Traversable::Walker const&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x816E587: CompiledGraph::insert_root(scene::Node&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x813AFD9: Map::realise() (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x815F8AA: ModelResource::attach(ModuleObserver&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8136CC8: Map_LoadFile(char const*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8136F3B: OpenMap() (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x49863D3: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.1800.2)<br />
==11265== by 0x4978C4A: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1800.2)<br />
==11265==<br />
==11265==<br />
==11265== 256 bytes in 1 blocks are definitely lost in loss record 351 of 483<br />
==11265== at 0x402573E: operator new(unsigned) (vg_replace_malloc.c:224)<br />
==11265== by 0x547137C: ???<br />
==11265== by 0x54715A7: ???<br />
==11265== by 0x80E3044: InstanceSubgraphWalker::pre(scene::Node&) const (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x813A9C4: TraversableNodeSet::traverse(scene::Traversable::Walker const&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x816E587: CompiledGraph::insert_root(scene::Node&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x813AFD9: Map::realise() (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x815F8AA: ModelResource::attach(ModuleObserver&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8136CC8: Map_LoadFile(char const*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8136F3B: OpenMap() (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x49863D3: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.1800.2)<br />
==11265== by 0x4978C4A: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1800.2)<br />
==11265==<br />
==11265==<br />
==11265== 256 bytes in 1 blocks are definitely lost in loss record 352 of 483<br />
==11265== at 0x402573E: operator new(unsigned) (vg_replace_malloc.c:224)<br />
==11265== by 0x54FE7FC: ???<br />
==11265== by 0x54FE977: ???<br />
==11265== by 0x80E3044: InstanceSubgraphWalker::pre(scene::Node&) const (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x543CAD2: ???<br />
==11265== by 0x813A9F1: TraversableNodeSet::traverse(scene::Traversable::Walker const&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x816E587: CompiledGraph::insert_root(scene::Node&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x813AFD9: Map::realise() (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x815F8AA: ModelResource::attach(ModuleObserver&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8136CC8: Map_LoadFile(char const*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8136F3B: OpenMap() (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x49863D3: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.1800.2)<br />
==11265==<br />
==11265==<br />
==11265== 256 bytes in 1 blocks are still reachable in loss record 353 of 483<br />
==11265== at 0x402573E: operator new(unsigned) (vg_replace_malloc.c:224)<br />
==11265== by 0x80E87D4: BrushInstance::BrushInstance(Stack<Reference<scene::Node> > const&, scene::Instance*, Brush&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x80E89E9: BrushNode::create(Stack<Reference<scene::Node> > const&, scene::Instance*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x80E3044: InstanceSubgraphWalker::pre(scene::Node&) const (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x545882F: ???<br />
==11265== by 0x81AC0DD: XYWnd::NewBrushDrag(int, int) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x81AC8F5: XYWnd::XY_MouseMoved(int, int, unsigned) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x80FD38C: DeferredMotion::deferred(DeferredMotion*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x49E87C0: (within /usr/lib/libglib-2.0.so.0.1800.2)<br />
==11265== by 0x49EA6F7: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.1800.2)<br />
==11265== by 0x49EDDA2: (within /usr/lib/libglib-2.0.so.0.1800.2)<br />
==11265== by 0x49EE2C1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.1800.2)<br />
==11265==<br />
==11265==<br />
==11265== 256 bytes in 1 blocks are definitely lost in loss record 354 of 483<br />
==11265== at 0x402573E: operator new(unsigned) (vg_replace_malloc.c:224)<br />
==11265== by 0x545AC94: ???<br />
==11265== by 0x545AE47: ???<br />
==11265== by 0x80E3044: InstanceSubgraphWalker::pre(scene::Node&) const (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x813D85F: MapRoot::insert(scene::Node&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x81364B4: Node_insertChildFirst(scene::Node&, scene::Node&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x81365A4: createWorldspawn() (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x81365F4: Map_UpdateWorldspawn(Map&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8136621: Map_FindOrInsertWorldspawn(Map&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x81AC0B3: XYWnd::NewBrushDrag(int, int) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x81AC8F5: XYWnd::XY_MouseMoved(int, int, unsigned) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x80FD38C: DeferredMotion::deferred(DeferredMotion*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265==<br />
==11265==<br />
==11265== 256 bytes in 1 blocks are definitely lost in loss record 355 of 483<br />
==11265== at 0x402573E: operator new(unsigned) (vg_replace_malloc.c:224)<br />
==11265== by 0x5456309: ???<br />
==11265== by 0x543A1BF: ???<br />
==11265== by 0x8136581: createWorldspawn() (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x81365F4: Map_UpdateWorldspawn(Map&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8136621: Map_FindOrInsertWorldspawn(Map&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x81AC0B3: XYWnd::NewBrushDrag(int, int) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x81AC8F5: XYWnd::XY_MouseMoved(int, int, unsigned) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x80FD38C: DeferredMotion::deferred(DeferredMotion*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x49E87C0: (within /usr/lib/libglib-2.0.so.0.1800.2)<br />
==11265== by 0x49EA6F7: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.1800.2)<br />
==11265== by 0x49EDDA2: (within /usr/lib/libglib-2.0.so.0.1800.2)<br />
==11265==<br />
==11265==<br />
==11265== 256 bytes in 1 blocks are still reachable in loss record 356 of 483<br />
==11265== at 0x402573E: operator new(unsigned) (vg_replace_malloc.c:224)<br />
==11265== by 0x80E51A3: BrushNode::BrushNode() (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x80E5351: UFOBrushCreator::createBrush() (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x81AC08E: XYWnd::NewBrushDrag(int, int) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x81AC8F5: XYWnd::XY_MouseMoved(int, int, unsigned) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x80FD38C: DeferredMotion::deferred(DeferredMotion*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x49E87C0: (within /usr/lib/libglib-2.0.so.0.1800.2)<br />
==11265== by 0x49EA6F7: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.1800.2)<br />
==11265== by 0x49EDDA2: (within /usr/lib/libglib-2.0.so.0.1800.2)<br />
==11265== by 0x49EE2C1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.1800.2)<br />
==11265== by 0x432D3A8: gtk_main (in /usr/lib/libgtk-x11-2.0.so.0.1400.4)<br />
==11265== by 0x81274FF: main (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265==<br />
==11265==<br />
==11265== 256 bytes in 1 blocks are definitely lost in loss record 357 of 483<br />
==11265== at 0x402573E: operator new(unsigned) (vg_replace_malloc.c:224)<br />
==11265== by 0x545361C: ???<br />
==11265== by 0x5453847: ???<br />
==11265== by 0x80E3044: InstanceSubgraphWalker::pre(scene::Node&) const (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x813A9C4: TraversableNodeSet::traverse(scene::Traversable::Walker const&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x816E587: CompiledGraph::insert_root(scene::Node&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x813AFD9: Map::realise() (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x815F8AA: ModelResource::attach(ModuleObserver&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8136CC8: Map_LoadFile(char const*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8136F3B: OpenMap() (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x49863D3: g_cclosure_marshal_VOID__VOID (in /usr/lib/libgobject-2.0.so.0.1800.2)<br />
==11265== by 0x4978C4A: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.1800.2)<br />
==11265==<br />
==11265==<br />
==11265== 256 bytes in 1 blocks are definitely lost in loss record 358 of 483<br />
==11265== at 0x402573E: operator new(unsigned) (vg_replace_malloc.c:224)<br />
==11265== by 0x5473372: ???<br />
==11265== by 0x546EA76: ???<br />
==11265== by 0x543A144: ???<br />
==11265== by 0x54947E5: ???<br />
==11265== by 0x54956CC: ???<br />
==11265== by 0x54958BE: ???<br />
==11265== by 0x549255D: ???<br />
==11265== by 0x815D935: MapResource_loadFile(MapFormat const&, scene::Node&, char const*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x815EAD6: MapResource_load(MapFormat const&, char const*, char const*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x815ED1A: Model_load(ModelLoader*, char const*, char const*, char const*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8163066: ModelResource::load() (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265==<br />
==11265==<br />
==11265== 904 bytes in 113 blocks are still reachable in loss record 321 of 483<br />
==11265== at 0x402573E: operator new(unsigned) (vg_replace_malloc.c:224)<br />
==11265== by 0x81CF9CB: accel_group_add_accelerator(_GtkAccelGroup*, Accelerator, Callback0<void> const&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x81CFB60: global_accel_group_add_accelerator(Accelerator, Callback0<void> const&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x81CFBAF: global_accel_group_connect(Accelerator const&, Callback0<void> const&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8123598: create_check_menu_item_with_mnemonic(_GtkMenu*, char const*, char const*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x81206F9: Filters_constructMenu(_GtkMenu*) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8129A68: _ZL16create_main_menuN9MainFrame10EViewStyleE (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x812D821: MainFrame::Create() (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x812E620: MainFrame::MainFrame() (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x81273C2: main (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265==<br />
==11265==<br />
==11265== 1,080 bytes in 45 blocks are still reachable in loss record 329 of 483<br />
==11265== at 0x402573E: operator new(unsigned) (vg_replace_malloc.c:224)<br />
==11265== by 0x81538F3: std::_Rb_tree<String<CopiedBuffer<DefaultAllocator<char> > >, std::pair<String<CopiedBuffer<DefaultAllocator<char> > > const, String<CopiedBuffer<DefaultAllocator<char> > > >, std::_Select1st<std::pair<String<CopiedBuffer<DefaultAllocator<char> > > const, String<CopiedBuffer<DefaultAllocator<char> > > > >, std::less<String<CopiedBuffer<DefaultAllocator<char> > > >, std::allocator<std::pair<String<CopiedBuffer<DefaultAllocator<char> > > const, String<CopiedBuffer<DefaultAllocator<char> > > > > >::_M_insert_(std::_Rb_tree_node_base const*, std::_Rb_tree_node_base const*, std::pair<String<CopiedBuffer<DefaultAllocator<char> > > const, String<CopiedBuffer<DefaultAllocator<char> > > > const&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8153AAC: std::_Rb_tree<String<CopiedBuffer<DefaultAllocator<char> > >, std::pair<String<CopiedBuffer<DefaultAllocator<char> > > const, String<CopiedBuffer<DefaultAllocator<char> > > >, std::_Select1st<std::pair<String<CopiedBuffer<DefaultAllocator<char> > > const, String<CopiedBuffer<DefaultAllocator<char> > > > >, std::less<String<CopiedBuffer<DefaultAllocator<char> > > >, std::allocator<std::pair<String<CopiedBuffer<DefaultAllocator<char> > > const, String<CopiedBuffer<DefaultAllocator<char> > > > > >::_M_insert_unique(std::pair<String<CopiedBuffer<DefaultAllocator<char> > > const, String<CopiedBuffer<DefaultAllocator<char> > > > const&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8150FFF: CGameDescription::CGameDescription(_xmlDoc*, String<CopiedBuffer<DefaultAllocator<char> > > const&) (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x815120F: CGameDialog::Init() (in /home/mattn/dev/ufoai/radiant/radiant)<br />
==11265== by 0x8127123: main (in /home/mattn/dev/ufoai/radiant/radiant)</div>RudolfoWoodhttp://ufoai.org/w/index.php?title=Include_new_notify_types&diff=18858Include new notify types2008-10-28T11:50:36Z<p>RudolfoWood: /* Step by Step */ + define/use category</p>
<hr />
<div>This HowTo explains, how new notify types can be added to code to make them configureable.<br />
<br />
Message options allow you to configure, whether you want to receive notification messages for each type, whether a notification sound should be played (if associated) and whether game should stop on that event.<br />
These settings are stored in game data, so you could change settings as you wish depending on actual game advance.<br />
<br />
==Step by Step==<br />
# add new enumeration values to <code>nt_strings</code> ({{path|src/client/menu/m_messages.c}}) and <code>notify_t</code> ({{path|src/client/menu/m_messages.h}})<br />
#* do not include any whitespaces in <code>nt_strings</code> - these codes are used to store settings and have to be read by <code>MSG_ReadString</code> as one string<br />
#* feel free to rearrange defined types to group them (in the definitions) - as long as order is same for both definitions<br />
#* see [[UFO-Scripts/msgcategories.ufo|msgcategory definition]] to see how types can be grouped for options<br />
#* don't forget to surround <code>nt_strings</code> value with <code>N_()</code> to get them found for translation<br />
# replace call of <code>MN_AddNewMessage</code> with <code>MSO_CheckAddNewMessage</code> with defined <code>notify_t</code> type<br />
# check whether to add default settings for new category to {{path|base/ufos/msgoptions.ufo}}<br />
#* each line contains one "positive" setting - negative ones are not stored<br />
# check whether to add newly defined type to either existing msgcategory or define a new one (in {{path|base/ufos/msgcategories.ufo}})<br />
<br />
[[Category:Contribute]]</div>RudolfoWoodhttp://ufoai.org/w/index.php?title=UFO-Scripts/msgcategories.ufo&diff=18857UFO-Scripts/msgcategories.ufo2008-10-28T11:48:00Z<p>RudolfoWood: New page: This script file allows you to define categories for notify types. These categories are used to group settings for those types. Every line in a msgcategory definition contains one notify ...</p>
<hr />
<div>This script file allows you to define categories for notify types. These categories are used to group settings for those types.<br />
<br />
Every line in a msgcategory definition contains one notify type (as defined in nt_strings in {{path|src/client/menu/m_messages.c}})<br />
<br />
<pre><br />
msgcategory "_install_equipment" {<br />
installation_installed<br />
installation_removed<br />
installation_replaced<br />
}<br />
</pre><br />
<br />
* category names should include no whitespace and must be marked translateable (by surrounding them with <b>"_</b><category_name><b>"</b>)<br />
* each notify type should occur only in one category<br />
* definition order in {{path|msgcategories.ufo}} defines order visible in options menu<br />
<br />
[[Category:UFO-Scripts]]</div>RudolfoWoodhttp://ufoai.org/w/index.php?title=UFO-Scripts/msgoptions.ufo&diff=18855UFO-Scripts/msgoptions.ufo2008-10-28T11:40:54Z<p>RudolfoWood: update link + naming</p>
<hr />
<div>This script file allows you to define default settings for message notifications on game startup. These settings are stored for every savegame, as it is intended that default settings may be changed during gameplay (e.g. you are no longer interested in some message categories). <br />
<br />
Actually there is only one default msgoptions section, which contains lines in the following format. Every line describes a positiv (checked) option - all missing values are considered to be unchecked.<br />
<br />
<pre><br />
msgoptions default {<br />
<notify_type> <pause|notify|sound><br />
}<br />
</pre><br />
<br />
;pause<br />
:stop game time if event associated with notify_type occurs<br />
;notify<br />
:create a notification message for notify_type event<br />
;sound<br />
:play notification sound for message if available<br />
<br />
See {{path|src/client/menu/m_messages.c}} and {{path|src/client/menu/m_messages.h}} for available notification types. '''MSO_CheckAddNewMessage''' should be used to add new messages. This method checks whether to add a message, play sound and whether to stop game time.<br />
<br />
See [[Include new notify types|this howto]] to include more notify types.<br />
<br />
[[Category:UFO-Scripts]]</div>RudolfoWoodhttp://ufoai.org/w/index.php?title=User:RudolfoWood&diff=17813User:RudolfoWood2008-08-19T15:21:44Z<p>RudolfoWood: /* Just some information to make red link blue */</p>
<hr />
<div>==Just some information to make red link blue==<br />
* Christoph Hartwig<br />
* 10.12.1981<br />
* working as software developer in Dresden</div>RudolfoWood