ioan-chera / eureka-editor Goto Github PK
View Code? Open in Web Editor NEWEureka is a cross-platform map editor for the DOOM engine games.
Home Page: http://eureka-editor.sourceforge.net/
Eureka is a cross-platform map editor for the DOOM engine games.
Home Page: http://eureka-editor.sourceforge.net/
Expected:
Lines on the arrow indicating your position appear like lines - ie consecutive rows of pixels of same colour that create an illusion of looking at lines.
Actual:
It looks as if parts of the line were "erased".
Tested on Archlinux. Built at b5f1b50
There's far too much C string handling going on. Upgrading to a more robust OOP usage will improve stability and reduce the code.
Eureka is hard coded to highlight the sector tag in Doom Format, but in ZDoom in Hexen format, the action structure was shuffled to use 5 parameters. The Teleport Destination tag can be any one of the 5 parameters. It can also be a ThingID or lineID, depending on the action that triggered it. Eureka should know how to display the Destination for each particular action.
https://zdoom.org/wiki/Category:Teleport_specials
77:TeleportGroup (tid, source, destination, movesource, fog)
215:Teleport_Line (thisid, destid, flip)
71:Teleport_NoFog (tid, useangle, tag, keepheight)
154:Teleport_NoStop (tid, sectortag, nofog)
76:TeleportOther (tid, destination_tid, fog)
78:TeleportInSector (tag, source_tid, dest_tid, fog, group_tid)
39:Teleport_ZombieChanger (tid, tag)
Users need to know what kinds of files they may load.
Here is the error when I try to build this on Linux:
~/Applications/eureka-editor> make
make: fltk-config: No such file or directory
g++ -O2 -g -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -std=c++17 -fno-strict-aliasing -fwrapv -o obj_linux/Document.o -c src/Document.cc
In file included from src/ui_window.h:27,
from src/e_checks.h:31,
from src/Document.h:23,
from src/Document.cc:19:
src/ui_canvas.h:25:10: fatal error: FL/Fl_Gl_Window.H: No such file or directory
25 | #include <FL/Fl_Gl_Window.H>
| ^~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:136: obj_linux/Document.o] Error 1
It seems no logo is visible now in About. Instead it's just text.
Stuff needed to do:
First to change: fopen.
The name may not fit each button.
Would like to see sector tags labelled in 2D view. Bonus if sector hover displays lines to associated linedefs.
In order to make development safe and also to catch any still-ongoing bugs or wrong behaviour, let's write tests for as much of Eureka as possible before continuing feature development.
Expected:
When you press the t key and then click a thing, then try to place it - it places that thing you chose.
Actual:
The first thing placed is always a health bonus. It has to be then changed to the actual thing you meant to place in first place.
Not a big deal and one can get used to it but it's somewhat counter-intuitive. Tested on Archlinux, built from b5f1b50
Things to do:
I started a project in Doom format, made many maps in a single wad. Switched to Hexen format (hit a voodoo doll snag, solved with scripting). It only changed the format for that individual map. All other maps were still in Doom format. Manually iterated through each map, changed format, saved map. Would like a blanket option or rename "Manage project" to "Manage map".
It seems to always require Hexen format and says that "adding SCRIPTS lump" is only available for it, which is nonsense if user opts for another lump.
Alternatively delete it if it's the job of SLADE.
I need a programmatic build system like CMake or others if I want to effectively create multiple unit test programs which don't link to the entire Eureka. This task is to see whether Meson makes a better option than CMake.
Need continuous integration for rarely used platforms.
I cloned the git repo and after checking to make sure I had all the required packages I ran make
and got this error:
g++ -O2 -g -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -std=c++17 -fno-strict-aliasing -fwrapv -I/usr/include/freetype2 -fstack-clash-protection -D_FORTIFY_SOURCE=2 -mtune=generic -O2 -pipe -g -fvisibility-inlines-hidden -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -o obj_linux/Document.o -c src/Document.cc
In file included from src/e_basis.h:31,
from src/Document.h:22,
from src/Document.cc:19:
src/m_strings.h: In member function 'bool SString::noCaseStartsWith(const char*, int) const':
src/m_strings.h:95:58: error: 'strlen' was not declared in this scope
95 | return !y_strnicmp(data.c_str() + pos, c ? c : "", c ? strlen(c) : 0);
| ^~~~~~
src/m_strings.h:29:1: note: 'strlen' is defined in header ''; did you forget to '#include '?
28 | #include
+++ |+#include
29 |
src/m_strings.h: In member function 'bool SString::startsWith(const char*) const':
src/m_strings.h:109:49: error: 'strlen' was not declared in this scope
109 | return !strncmp(data.c_str(), c ? c : "", c ? strlen(c) : 0);
| ^~~~~~
src/m_strings.h:109:49: note: 'strlen' is defined in header ''; did you forget to '#include '?
src/m_strings.h:109:11: error: 'strncmp' was not declared in this scope
109 | return !strncmp(data.c_str(), c ? c : "", c ? strlen(c) : 0);
| ^~~~~~~
src/m_strings.h:109:11: note: 'strncmp' is defined in header ''; did you forget to '#include '?
make: *** [Makefile:137: obj_linux/Document.o] Error 1
Anyone know what's going on? I'm running void linux btw.
If not even integrate the nodebuilder into the same executable, to simplify stuff and reduce interprocess point of failure.
May be needed for linedefs as well as sectors.
Steps to reproduce the crash:
l
for linedef (or e
w
)r
key and move the mouse, keep moving your mouse cursor outside the boundaries of the wall rectangle (no crash)r
and move around the mouse cursor again - as soon as you move the mouse cursor outside of the rectangle - Eureka will crashTested with 61a308b built on Archlinux
Specifically, the enter/exit and hit ceiling/floor sector actors for Zdoom.
https://zdoom.org/wiki/Classes:SectorAction
The following thing actor flags map to these events:
AMBUSH → monsters can trigger the special.
DORMANT → projectiles can trigger the special.
FRIENDLY → players cannot trigger the special.
STANDSTILL → the special will be triggered only once.
Only the first 2 are listed in the UI.
Expected:
Going to File -> Fresh map should bring up a dialog box which should allow creating another map in the wad.
Actual:
A dialog does open but it only has one input box. Changing the text string in it and pressing enter doesn't do anything.
There's no "OK" button anywhere on the interface.
New-map-related options behave very similarly (dialog only has a text input box) so perhaps the other options are affected the same way:
Everything else in the editor seems to be working fine.
Using Eureka 1.27b
Tested it on Archlinux with the rapoison window manager.
A workaround I'm using is creating new map lumps in another program and then editing the new maps in the wad in Eureka (it works) but that's not very convenient.
It doesn't seem to output any errors to STDOUT or STDERR when this happens.
Possible solutions:
May be related to #28
Expected:
You make a modification. You press Ctrl+T. It asks you if you want to save changes before previewing the map in the game. You click "Save" .....and then the editor either just saves and that's it, or it saves and the game runs the saved wad/map with the modifications you just made.
Actual:
You make a modification. You press Ctrl+T. It asks you if you want to save changes before previewing the map in the game. You click "Save" ....nothing happens
You have to press Ctrl+S and press Ctrl+T and then it previews it as expected.
Tested on Archlinux b5f1b50
Also, just for macOS, give it the standard shortcut (cmd-,)
We need CMake if we want to easily integrate Google Test and make multiple small programs. Start with Linux.
Why not use them?
To do:
Would like to see separate modes for invisible, mapped, and secret tagged linedefs. Useful for optimizing in-game map display.
Built from b5f1b50, tested on Archlinux.
Expected:
Flats and textures shown in the editor sidebar as they would appear in the game/3d view/2d view (without lighting).
At least two cases identified so far:
Instead of suddenly terminating Eureka, they should calmly inform the user and (depending on user experience) either request correction or skip them and close the dialog anyway.
Example:
arg1 (lo-tag): 0
arg2 (type): 1
arg3 (flag): 0
arg4 (opacity): 255
arg5 (hi-tag): 3
sector tag: 768 (3 (hi-tag)*256 + 0(lo-tag))
3D floor will not render.
If lo-tag = 1 and sector tag= 769, 3D floor renders.
Apparently, under Linux, if global::install_dir
isn't set from the command-line, it will look in the following list of potential prefixes:
"/usr/local",
"/usr",
"/opt",
NULL
This suggests it may fail if Eureka was formally installed to another location. We need to test how it behaves and fix it if needed.
Right now it's just a hidden user command
Expected:
When I do git pull
and then make -C build
only the parts that changed get compiled (usually very quick with other projects I do this with)
Actual:
Everything seems to be rebuilt as a whole from scratch every time - even when the change is minor. It takes a good few minutes to compile everything.
Tested on Archlinux 95fae49
I may be doing something wrong. Do I need to pass some argument to only build parts that changed?
Expected:
Going to File->Delete Map and pressing Cancel on the question should just bring me back to the map I was editing.
Actual:
Pressing File->Delete Map->Cancel deletes the map anyway. (deleted map no longer accessible from "Open Map", next one is opened)
Accidentally lost a whole map I was working because of this. (not a big deal as I can make it anew but not super convenient)
Tested it on Archlinux, Eureka built from b5f1b50
Eureka should be able to read both DEHACKED lumps and .deh files loaded as project resources to get any new things for the level.
It looks unprofessional.
One last (and big) step.
Expected:
Placing a new vertex should make the texture in 2d view adjust to the new shape of the sector.
Actual:
The texture seems to look as if nothing was changed.
Steps:
Create a new wad archive.
Press v for vertices.
Place a point inside the rectangle.
Tested on Archlinux, built from b5f1b50
There's no need to keep file handles open and connection to the hard drive, because wads can generally fit in RAM
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.