wallabra Posted September 3, 2019 (edited) This is a map editor which has ZetaBot path node capabilities. It's kind of like adding path nodes in UnrealEd, but easier (and you don't need to rebuild paths, as those are dynamic!). As many of you may know, Eureka is a map editor that works on Linux, among other platforms. I am not able to make builds for other platforms, currently, but I will try to do so using a Windows Server 2008 virtual machine I have got to run with Visual Stupido. Capabilities: You can use all of the supported navigation types (including relatively internal ones, like NT_TARGET). There is functionality to automatically plop nodes in basic locations (the approximate middle of subsectors, more precisely). Limitations: Unfortunately, you can not preview node paths yet (they're dynamic!). ZetaBot 0.8.1 and earlier: you must copy text from the ZBNODES lump in the saved WAD, and paste inside a CVAR called nodelist when you're playing the map. Then, "summon ZTPromptNodes" to parse the list and plop the nodes for you. Bugs: Deleting existing path nodes, then loading another map, will cause a segmentation fault (aka fatal program error). I dunno why, but it seems to have something to do with the undo history. Despite the bugs, the editor is mostly functional, and is available to the public: Source code Linux binaries: Zeureka 2019w36r2.zip Edited September 8, 2019 by Gustavo6046 1 Quote Share this post Link to post
wallabra Posted September 7, 2019 Mostly fixed. There is a segfault if I delete pathnodes before loading another map. This happens in the routine that clears the undo history. It says "free: invalid pointer". Can anyone (C++ experts in particular) help me figure out what is happening? 0 Quote Share this post Link to post
andrewj Posted September 8, 2019 9 hours ago, Gustavo6046 said: Mostly fixed. There is a segfault if I delete pathnodes before loading another map. This happens in the routine that clears the undo history. It says "free: invalid pointer". Can anyone (C++ experts in particular) help me figure out what is happening? I had a browse around and didn't see anything obviously wrong. The following line in RawDeletePathNode is kinda odd though: int *result = (int*) &*(PathNodes.begin() + objnum); I suggest just doing it like the other structures do: (int *) PathNodes[objnum] 2 Quote Share this post Link to post
wallabra Posted September 8, 2019 (edited) Oh, I can't disagree. After fixing that misuse of iterators, I managed to vanquish the bug! I will supply a new, fixed version in a second, once I implement aiming path nodes at the mouse cursor as well. EDIT 1 --- Apparently, saving a map will duplicate every single node... '-' EDIT 2 --- A temporary fix is set in place. A new version is to be uploaded soon. EDIT 3 --- 2019w36r2 is up there in the first post! Edited September 8, 2019 by Gustavo6046 0 Quote Share this post Link to post
VGA Posted September 9, 2019 Is this meant to open maps and add nodes for that specific bot? To existing maps? 0 Quote Share this post Link to post
wallabra Posted September 10, 2019 19 hours ago, VGA said: Is this meant to open maps and add nodes for that specific bot? To existing maps? It is just like any other map editor, except it can add nodes. So it can add nodes to new maps as well! You can try pressing F1 and using the basic plopping functionality, but be careful: it will add a bunch of nodes! (because subsectors) 0 Quote Share this post Link to post
wallabra Posted September 17, 2019 I don't know what to add to Zeureka now. Any useful ideas? I'm sure the People have many of them :) 0 Quote Share this post Link to post
printz Posted September 17, 2019 1 hour ago, Gustavo6046 said: I don't know what to add to Zeureka now. Any useful ideas? I'm sure the People have many of them :) UDMF support would be great. 1 Quote Share this post Link to post
therektafire Posted September 18, 2019 12 hours ago, Gustavo6046 said: I don't know what to add to Zeureka now. Any useful ideas? I'm sure the People have many of them :) Yeah pk3 and uDMF support are the 2 big things Eureka is missing, of course adding UDMF would probably require rewriting some parts of the editor, like for one thing you would probably need to add a hardware renderer considering that I believe eureka uses a software renderer currently, which while that allows it to run on basically any pc regardless of what gpu it has or whether or not you have admin on the account you are using because you don't need to install a particular version of directx or opengl unlike GZDB, it also means that a lot of the more advanced udmf features aren't available since they need a hardware renderer to work 0 Quote Share this post Link to post
wallabra Posted September 18, 2019 I don't think PK3 can store maps, it's wildly different from the structure of a WAD. As for UDMF, I might take a look at it. I don't know if I will borrow OpenGL code from GZDoom, or write it myself. I'm sure it'll be painful either way :) 0 Quote Share this post Link to post
printz Posted September 19, 2019 UDMF is a data format, it has nothing to do with OpenGL. I guess the biggest challenge will be fitting its features in the GUI. 0 Quote Share this post Link to post
fabian Posted September 19, 2019 Are you going to contribute your code back to the original project? 0 Quote Share this post Link to post
ketmar Posted September 19, 2019 (edited) basic UDMF would be easy. but nobody needs *basic* UDMF! ;-) implementing all properties of at least zdoom namespace will require massive improvements in UI (tbh, i don't even know how to do that without either making UI a mess, or making using UDMF properties a PITA; but i universally sux at UI design anyway). also, built-in nodes builder will require fixes for non-integral vertex coords too. also, pk3 support is not maps, it is for resources. and parsing decorate to extract doomed numbers will be great too. p.s.: yeah, this is all in my TODO list... when i'll finish k8vavoom. we know what that means. Edited September 19, 2019 by ketmar 0 Quote Share this post Link to post
Graf Zahl Posted September 19, 2019 30 minutes ago, ketmar said: p.s.: yeah, this is all in my TODO list... when i'll finish k8vavoom. we know what that means. You should know from the history of other ports: The work NEVER ends if your goal is to add new features. ;) The only ports that could be reasonably completed are those whose sole focus was on preserving backwards compatibility, because you'd eventually reach the point where there's nothing more to do, aside from a little bit of maintenance. 0 Quote Share this post Link to post
ketmar Posted September 19, 2019 Just now, Graf Zahl said: You should know from the history of other ports: The work NEVER ends if your goal is to add new features. ;) that's exactly what i meant. ;-) 0 Quote Share this post Link to post
wallabra Posted September 19, 2019 My only goal really was to support adding nodes. A top-down view was all necessary to know where to add them, and subsectors would help to auto-add them otherwise. I have no affairs with the actual Eureka editor, nor will I. It kind of doomed itself by using FLTK and software rendering instead of a proper GUI libary and OpenGL. (Also, .NET can go to the deepest fires of hell.) I do realize OpenGL wants triangles and primitives and bla-bla-bla, while sectors are subtractive space. That's enough to stop me. Thank you very much. 0 Quote Share this post Link to post
andrewj Posted September 20, 2019 11 hours ago, Gustavo6046 said: It kind of doomed itself by using FLTK and software rendering instead of a proper GUI libary and OpenGL. I'm curious now, why didn't you modify SLADE instead? And what exactly makes FLTK not a proper GUI? 0 Quote Share this post Link to post
ketmar Posted September 20, 2019 54 minutes ago, andrewj said: And what exactly makes FLTK not a proper GUI? it is not <instert-your-toolikt-of-preference-here>. also, it is small and fast, which is unacceptable for modern gui toolkits. 1 Quote Share this post Link to post
printz Posted September 20, 2019 18 hours ago, Gustavo6046 said: It kind of doomed itself by using FLTK and software rendering instead of a proper GUI libary and OpenGL. You can always replace FLTK and software rendering with better alternatives. I also have an Eureka fork and I want to make it the best editor on Mac, and no FLTK or software rendering is going to stop me. 0 Quote Share this post Link to post
andrewj Posted September 20, 2019 Btw it is possible to use OpenGL in FLTK, you could make UI_Canvas be a subclass of Fl_Gl_Window and then draw everything using GL calls. You'd probably want to use the same canvas widget for both 2D and 3D, plus of course doing a massive task to create an OpenGL renderer (borrowing code from prBoom may help). If I had any scrap of motivation to work on Eureka, this would be the way forward for a 2.0 version. 1 Quote Share this post Link to post
ketmar Posted September 20, 2019 you all almost made me to fork Eureka. nice try. 1 Quote Share this post Link to post
wallabra Posted September 20, 2019 I have no further plans anymore. 0 Quote Share this post Link to post
-TDRR- Posted September 20, 2019 1 hour ago, Gustavo6046 said: I have no further plans anymore. Not even making it output a CVAR nodelist you can put into a .cfg file with the "set" command included? :) 0 Quote Share this post Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.