Giter VIP home page Giter VIP logo

doomstruct's People

Contributors

derekmd avatar mtrop avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

doomstruct's Issues

Map Detection is Incorrect (GL Lumps)

DoomStruct's map detection (MapUtils.isMapDataLump(String)) should also consider lumps like GL_MAP01 as part of a map, and not a separate one. It currently separates it out.

NameUtils.java regex for valid entry names is too strict

Within NameUtils.java the lump names regex appears to be too strict. It's possible for patches to use the plus character ( + ) in their name, but doing so causes it to throw an error due to invalid characters. A live example of a WAD with this naming can be seen in Otex v1.1 (https://www.doomworld.com/idgames/graphics/otex_1_1)

I'm unsure what other characters may be missing from the regex, if any.

public static final Pattern ENTRY_NAME = Pattern.compile("[A-Z0-9\\[\\]\\-\\_\\^\\\\]{1,8}");

Interface BinaryObject extending MapObject Makes No Sense

I don't know what I was thinking with this one. Remedying this will change object hierarchies, but since MapObject is just a constants interface, the damage would be minimal.

The planned correction would be to separate the two, and re-implement where necessary.

"Tall Patch" Graphics are Absolutely Broken

Most graphics in Doom editing do not always exceed 254 pixels in height. However, a lot of source ports use them, and DoomStruct unfortunately does not support this (in the form of horrible data corruption on write).

A fix will need to be made to support this.

Add Capacity Control to WadBuffer

WadBuffer currently has no way for users to control how its internal buffer expands. This would create problems with large WADs and small heap allocations. FIX!

Add Maven Support and Add to Maven Central

This project should probably end up in Maven Central at some point, but I was lazy about it/didn't anticipate demand.

Stuff that needs to happen on my end:

  • Add the net.mtrop group to Sonatype/Maven Central (for this project and potentially others).
  • Convert the Ant build scripts to a POM.
  • Push to Maven as the doom artifact.

UDMF Readers Need an Incremental Iterator/Reader

Currently, the entirety of a UDMF structure is loaded into memory. This is terrible for maps that are incredibly large, and not all of the map data may be important.

In order to reduce the memory footprint, the UDMF Reader should also optionally employ a parse-and-apply method for reading and resetting a UDMF object's fields, like what can be done with the binary objects.

Legal WAD filenames are incomplete

java.lang.IllegalArgumentException: The provided entry name, "^BRICKS", is invalid. It must be up to 8 characters long; all characters must be A-Z (uppercase only), 0-9, and [ ] - _ plus the backslash \.

This is when trying to load and merge a valid WAD file in the wadmerge utility.

Palette.getColor() -> Color parameter outside of expected range

Hi, 1st I am new to Java and I hope I didn't screwed this up.
I actually want to use some sprites from doom.wad in libGDX as texture. Currently I read from Picture pixel by pixel and call Palette.getColor() which sometimes throws an error.

I tried to debug it but only got hold of java.awt.Color(int r, int g, int b) and for this index the r-component is -93.

(BTW eclipse just told me: Unable to install breakpoints in net.mtrop... due to missing line number attributes. Modify compiler options to generate line number attributes")

public class Test {
	public static void main(String[] args) {
		try {
			WadFile wad = new WadFile("doom.wad");

			final Palette pal = wad.getDataAs("playpal", Palette.class);

			var c2 = pal.getColor(67);
		} catch (Exception e) {
			System.out.println(e);
		}
	}
}

Support Extended DEMO Format

A new version byte was introduced a while back for extended Demo header versions and this will throw an exception in Demo.java if read.

This issue is for adding support or some other handling at some point.

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.