Git Product home page Git Product logo

slade's Introduction

SLADE

It's a Doom Editor

About

SLADE3 is a modern editor for Doom-engine based games and source ports. It has the ability to view, modify, and write many different game-specific formats, and even convert between some of them, or from/to other generic formats such as PNG.

SLADE3 can be considered a successor to both SLumpEd and SLADE - it combines the features of both, to create an all-in-one editor. Why does it keep the name of what was previously just a map editor? Because it fits :)

Features

Here is a brief list of features implemented in the current version of SLADE:

Basic archive/resource editing
All the basic resource management features you'd expect: Create/Open/Save archives, import/export, ordering, rename, etc.

Simple tabbed interface
Open multiple archives at once and switch between them easily via tabs. This enables simple copy/paste from one archive to another, among many other benefits.

Many supported game formats
In addition to full Doom WAD and ZIP/PK3 support, many other game formats are supported, including:

  • Quake PAK/WAD2 and HUD image format
  • Build GRP and ART format images
  • Shadowcaster DAT/LIB along with most of its image formats
  • Amulets & Armor RES, MipImage and UI gfx
  • Many more

Advanced text editor
The SLADE3 text editor can recognise many text based languages, and provide syntax hilighting, function calltips and autocomplete for them. It also has a bunch of other useful text editing features such as autoindent and find / replace.

Graphic conversion
All supported graphic formats can be converted to PNG/DoomGfx/DoomFlat and more, with an advanced graphic conversion dialog that provides conversion options and previews.

Texture editing
Edit Doom composite textures (TEXTUREx) with the easy-to-use SLADE3 texture editor. Also fully supports ZDoom's enhanced composite texture format (TEXTURES).

Supporting SLADE

If you wish to help support SLADE development, feel free to make a small donation, though by no means is this a requirement for continued development. I work on SLADE in my free time as a hobby project and generally enjoy it, which is enough for me.

Additionally, any help on the coding side of things is greatly appreciated - take a look at the list of issues, and feel free to submit a pull request.

slade's People

Contributors

alexander-wilms avatar alexey-lysiuk avatar altazimuth avatar anotak avatar blue-shadow avatar blzut3 avatar bodbdearg avatar chewi avatar crisisinaptica avatar danfe avatar eevee avatar flykespice avatar gaerzi avatar ill avatar jan200101 avatar jengelh avatar jmickle66666666 avatar kevans91 avatar kscl avatar landfillbaby avatar lioncash avatar matthew-mcallister avatar monsterovich avatar mykola-ambar avatar pedro-beirao avatar sirjuddington avatar steelt1 avatar talon1024 avatar thezerobit avatar viciious avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

slade's Issues

Used Textures in Texture Select Screen

As a certain other Doom Build(er)ing program uses, Used Textures can allow mappers to use the textures that's currently being used in the map without going through their texture list. Which can grow large if mappers are using a Texture set.

Linedefs sometimes written out with multiple vertices, et al.

In a map built from scratch with SLADE 3.1b3, I have the following:

linedef//#67
{
v1=36;
v2=36;
sidefront=-1;
v2=37;
sidefront=89;
v1=38;
blocking=true;
}

I suspect this might have happened when I tried to delete a vertex by dragging it on top of a neighboring vertex. They were successfully merged, but the line doesn't seem to have survived intact.

As a bonus issue: in the presence of conflicting vertices (and probably other properties), both the map preview and ZDoom itself use the last definition, but the map editor uses the first, so the map is all screwy in-game and I can't fix it with the editor because it thinks everything is fine.

Forum: Crash after Undo

I made a sector. Laying down linedefs and removing them by backtracking works.
After closing the sector, when I undo either with Ctrl+Z or from Edit - Undo, Slade3 stops working.

Tool bar weirdness when resizing

If you reduce the window size so that the toolbar goes on two (or more) lines, then extend it back to its original size so that the toolbar icons all go on a single line again, the toolbar's vertical range does not shrink back to a single line.

Forum: No search in TEXTURE Editor

The other day I opened cc4-tex.wad in the TEXTURE Editor to have a look at the texture COMPTIL2.

There are a lot of lumps and not sorted alphabetically. Just staying with the C key scrolled the lumps down too fast. It was a bit troublesome to find.

Could there be a search function for texture names, similar to the Filter function on the Entries display?

http://mancubus.net/forums/index.php/topic,1205.0.html

Wolfenstein archives can't reliably be opened on case sensitive file systems

On Linux or oddly configured OS X systems. It is possible that non-vswap wolfenstein 3d archives can not be opened. This is because Slade expects all files to be named in upper case. The proper solution would be to get the list of files in the directory and then do a manual insensitive search (like ECWolf does).

https://bitbucket.org/Blzut3/ecwolf/src/992b243f5bf7b7595e0e54f40d203e00e2eec3aa/src/filesys.cpp?at=default#cl-360

If that solution is deemed too complex, better error reporting would be desirable as well as at least supporting all lower case.

Characters † and à prevent saving entries properly

Due to how sometimes the previous versions had a memory leak I found these spammed everywhere a really long time ago. Note that there's an extra "space" of sorts when you select a certain portion of the title, and then use shift + left arrow (just drag your mouse over it with the cursor to start off with), you'll see it takes two times to go over them.

It will cause the entries to automatically be saved as markers with 0 bytes, erasing everything inside of them. This is just DECORATE editing too.

Drag-and-drop on startpage is handled by the system

Before moving to wxWebView, dragging and dropping an archive on the startpage opened it. Now it results in a system window asking if we want to save this "file downloaded from the Internet"... I'm not sure how to intercept drag and drop events from a webview. I've tried using SetDropTarget on html_startpage, but it had no effect.

Undoing in map editor does not update display

When you undo an action in the map editor, it'll still show the action as having been done. Hovering over where the {vertex|line|sector|thing} is will show the hilight glow properly, but until you move it, it'll display in the spot where it was pre-undo.

Map split/merge feature

It would be nice if there was a feature to split/combine maps from/to wads which use custom textures.

A practical example:

  • Take Sunder.wad, copy/paste lumps MAP09 till BLOCKMAP to a new wad.
  • Discover missing patches, flats and music
  • Painstakingly find, copy/paste flats, TEXTURE1 entries, MAPINFO entries, and MIDIs

At least it automagically copies patches when TEXTURE1 entries are pasted, but it would be nice if this extends all the way to pasting a SIDEDEFS lump.

For pasting a map into a wad already containing textures, the flats and TEXTURE1 entries should be merged, and a warning shown when there are conflicts (entries with the same name but different data)

Request: Expandable and contractible text/code

One nice touch would to be able to contract scripts and actors down to just a writable title so that you can limit how much is actually displayed when trying to get through a lot of code.

Next to each actor or script start could have a small box off to the left with a minus that contracts the related code down, then the box changes to a plus to allow it to contract. If you have tons of actors, to contract it down to just a few lines would be amazing convenience.

Nothing of huge importance but a nice touch.

Mouse-driven texture composite offsetting for TEXTURES editor

You can offset the entire graphic around with the aid of the text fields below, but it would be much easier drag the box containing all of the patches around, as one can outside the editor. Perhaps a modifier (SHIFT/CTRL/ALT) or a way to select the box itself.

Gfx panel update

Gfx in GfxEntryPanel don't update when modified via conversion or mass offset edit

Image filtering in the graphic editor

Is there any means to disable it? I don't think it was supposed to display everything THAT ugly:

I am using Windows XP and have an ATI graphics card.

Error compiling in Linux

Ubuntu 13.04 64-bit, nothing special about the setup. Happy to provide additional info if needed.

error log:

[ 3%] Built target bz2
Linking CXX executable ../slade
CMakeFiles/slade.dir/ActionSpecialDialog.o: In function ActionSpecialTreeView::onItemEdit(wxDataViewEvent&)': ActionSpecialDialog.cpp:(.text+0x0): multiple definition ofActionSpecialTreeView::onItemEdit(wxDataViewEvent&)'
CMakeFiles/slade.dir/ActionSpecialTreeView.o:ActionSpecialTreeView.cpp:(.text+0x0): first defined here
CMakeFiles/slade.dir/ActionSpecialDialog.o: In function ActionSpecialTreeView::onItemActivated(wxDataViewEvent&)': ActionSpecialDialog.cpp:(.text+0x10): multiple definition ofActionSpecialTreeView::onItemActivated(wxDataViewEvent&)'
CMakeFiles/slade.dir/ActionSpecialTreeView.o:ActionSpecialTreeView.cpp:(.text+0x10): first defined here
CMakeFiles/slade.dir/ActionSpecialDialog.o: In function ActionSpecialTreeView::~ActionSpecialTreeView()': ActionSpecialDialog.cpp:(.text+0x70): multiple definition ofActionSpecialTreeView::~ActionSpecialTreeView()'
CMakeFiles/slade.dir/ActionSpecialTreeView.o:ActionSpecialTreeView.cpp:(.text+0x40): first defined here
CMakeFiles/slade.dir/ActionSpecialDialog.o: In function ActionSpecialTreeView::~ActionSpecialTreeView()': ActionSpecialDialog.cpp:(.text+0x70): multiple definition ofActionSpecialTreeView::~ActionSpecialTreeView()'
CMakeFiles/slade.dir/ActionSpecialTreeView.o:ActionSpecialTreeView.cpp:(.text+0x40): first defined here
CMakeFiles/slade.dir/ActionSpecialDialog.o: In function non-virtual thunk to ActionSpecialTreeView::~ActionSpecialTreeView()': ActionSpecialDialog.cpp:(.text+0x120): multiple definition ofnon-virtual thunk to ActionSpecialTreeView::~ActionSpecialTreeView()'
CMakeFiles/slade.dir/ActionSpecialTreeView.o:ActionSpecialTreeView.cpp:(.text+0xf0): first defined here
CMakeFiles/slade.dir/ActionSpecialDialog.o: In function ActionSpecialTreeView::~ActionSpecialTreeView()': ActionSpecialDialog.cpp:(.text+0x130): multiple definition ofActionSpecialTreeView::~ActionSpecialTreeView()'
CMakeFiles/slade.dir/ActionSpecialTreeView.o:ActionSpecialTreeView.cpp:(.text+0x100): first defined here
CMakeFiles/slade.dir/ActionSpecialDialog.o: In function non-virtual thunk to ActionSpecialTreeView::~ActionSpecialTreeView()': ActionSpecialDialog.cpp:(.text+0x1f0): multiple definition ofnon-virtual thunk to ActionSpecialTreeView::~ActionSpecialTreeView()'
CMakeFiles/slade.dir/ActionSpecialTreeView.o:ActionSpecialTreeView.cpp:(.text+0x1c0): first defined here
CMakeFiles/slade.dir/ActionSpecialDialog.o: In function ActionSpecialTreeView::specialNumber(wxDataViewItem)': ActionSpecialDialog.cpp:(.text+0x200): multiple definition ofActionSpecialTreeView::specialNumber(wxDataViewItem)'
CMakeFiles/slade.dir/ActionSpecialTreeView.o:ActionSpecialTreeView.cpp:(.text+0x1d0): first defined here
CMakeFiles/slade.dir/ActionSpecialDialog.o: In function ActionSpecialTreeView::showSpecial(int)': ActionSpecialDialog.cpp:(.text+0x300): multiple definition ofActionSpecialTreeView::showSpecial(int)'
CMakeFiles/slade.dir/ActionSpecialTreeView.o:ActionSpecialTreeView.cpp:(.text+0x2d0): first defined here
CMakeFiles/slade.dir/ActionSpecialDialog.o: In function ActionSpecialTreeView::selectedSpecial()': ActionSpecialDialog.cpp:(.text+0x530): multiple definition ofActionSpecialTreeView::selectedSpecial()'
CMakeFiles/slade.dir/ActionSpecialTreeView.o:ActionSpecialTreeView.cpp:(.text+0x500): first defined here
CMakeFiles/slade.dir/ActionSpecialDialog.o: In function ActionSpecialTreeView::getGroup(wxString)': ActionSpecialDialog.cpp:(.text+0x750): multiple definition ofActionSpecialTreeView::getGroup(wxString)'
CMakeFiles/slade.dir/ActionSpecialTreeView.o:ActionSpecialTreeView.cpp:(.text+0x530): first defined here
CMakeFiles/slade.dir/ActionSpecialDialog.o: In function ActionSpecialTreeView::ActionSpecialTreeView(wxWindow*)': ActionSpecialDialog.cpp:(.text+0xcb0): multiple definition ofActionSpecialTreeView::ActionSpecialTreeView(wxWindow_)'
CMakeFiles/slade.dir/ActionSpecialTreeView.o:ActionSpecialTreeView.cpp:(.text+0xa90): first defined here
CMakeFiles/slade.dir/ActionSpecialDialog.o: In function ActionSpecialTreeView::ActionSpecialTreeView(wxWindow_)': ActionSpecialDialog.cpp:(.text+0xcb0): multiple definition of ActionSpecialTreeView::ActionSpecialTreeView(wxWindow_)'
CMakeFiles/slade.dir/ActionSpecialTreeView.o:ActionSpecialTreeView.cpp:(.text+0xa90): first defined here
collect2: error: ld returned 1 exit status
make[2]: *_* [slade] Error 1
make[1]: *** [src/CMakeFiles/slade.dir/all] Error 2
make: *** [all] Error 2

wxString::FromUTF8() issue

I was trying to build right now when I came across this:

src/CVar.cpp: In function ‘void read_cvar(string, string)’:
src/CVar.cpp:165:58: error: no matching function for call to ‘wxString::FromUTF8(string&)’
     *((CStringCVar*) cvars[c]) = wxString::FromUTF8(value);
                                                          ^
src/CVar.cpp:165:58: note: candidate is:
In file included from src/Main.h:22:0,
                 from src/CVar.cpp:31:
/usr/include/wx-3.0/wx/string.h:1742:21: note: static wxString wxString::FromUTF8(const char*, size_t)
     static wxString FromUTF8(const char *utf8, size_t len = npos)
                     ^
/usr/include/wx-3.0/wx/string.h:1742:21: note:   no known conversion for argument 1 from ‘string {aka wxString}’ to ‘const char*’
src/CMakeFiles/slade.dir/build.make:1598: recipe for target 'src/CMakeFiles/slade.dir/CVar.o' failed

Seems like an easy fix (I guess).

Light levels over 255 don't work

Found this by looking at D2TWID's MAP31 in the map editor. It has several sectors with a light level of 256, which appear dark in SLADE.

[3D Mode] Selecting both upper and lower texture of line makes toggles cancel out

To reproduce:

  • Make a sector.
  • Make a sector directly attached to that sector.
  • Raise its floor and lower its ceiling so that both its lower and upper texture are visible.
  • Go into 3D mode and select both textures.
  • Hit U or L to toggle upper or lower unpegged.

The unpegged flags never actually change; my guess is because it's being toggled for each texture selected, not each line selected.

Left/right button for the TEXTURES editor tab

If one has a lot of TEXTURES files, then selecting some of the textures you want to modify becomes hard thanks to it being pushed off screen, having to instead relying on repositioning the files in the archive.

Graphic offsets cannot be interactively modified in WADs/PK3s with no corresponding file

Steps to reproduce:

  1. Open up SLADE 3.
  2. Open a new WAD.
  3. Import an image. It doesn't matter what type of image.
  4. Drag the image around in the inline image viewer, or change the offsets in the offset textboxes.

It will immediately snap back to its old position, rather than changing the offets. Using the Modify Gfx Offsets option will change offsets appropriately.

Entry Contents doesn't refresh

Using Ubuntu 13.04 64-bit using the packages I build on drdteam (which i just updated to the latest git as of this writing), the entry contents panel doesn't update when scrolling through the graphics. I need to hover my mouse over the graphic for it to update most of the time.

I've tried updating the statically linked wxWidgets to the latest SVN but there appears to be no change.

Only warn once when png optimization paths aren't set up

If you select multiple PNG entries to optimize and don't have paths to the PNG tools set up (which can happen if you have different versions of SLADE installed), it displays the error for each entry rather than just once.

SLADE 3.1.0 b1 crash on startup

Hi, looking forward to trying out the new features in Slade. For now it crashes on me as soon as I run it. I'm on WinXP and have installed the MS C++ runtimes.

As soon as I try to run Slade I get the "has encountered a problem and needs to close" message. Clicking for more information gives the following:
Error signature
AppName: slade.exe AppVer: 3.0.1.0 ModName: slade.exe
ModVer: 3.0.1.0 Offset: 00005e1c

Clicking for technical information gives a long screen of Exception Information, Modules, and some data in Hex -- what I presume is a stack trace, as in the screenshot. I can't select any of that text to copy it though, it's far too long to screenshot it all, and I don't see any logs or anything in the directory where I unzipped Slade.

sladecrash

I've pasted the contents of that appcompat.txt file to http://pastebin.ca/2464467, in case they help.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.