deep
as in Deepsea
Posts: 1066
Registered: 09-01 |
Quasar said:
I DO hope there is going to be some commentary and/or changelogs from the prboom guys on how this is done so that other ports can share the modifications. No other port authors have ever been kind enough to point out a *complete* list of signed short bottlenecks that must be eliminated in order to support large maps, as well as making sure that their changes do not break compatibility in any way.
You really don't need that. I think it would be faster for one to just change one's own code vs plodding some other code. Anyway, it was pretty trivial for me to change JDOOM's code to handle this.
If you use MSVC (and BC and others assuming you havent turned the error off), what happens is that the unsigned vs signed comparison error pops up. Not too many of those.
To make this "easy" change the internal format to int when reading in a PWAD and nodes, hence that part of the code (that works with the internal format) works ok.
The other thing is that when reading in a PWAD, you typically can't use -1 for a "not present" check. So you need a special "define for -1" here since it can't be a signed comparision (at load time), and then store -1 in the internal "int" format. Hence the rest of the code works as intended.
That's the basic drill. There are some other issues that come up since now maps are much larger, hence if you have any "limits", they will get reached. Just grab a large PWAD and these sort of things just pop right out.
Don't recall how long it took me, but it was within 1 day and way shorter than the editor :) I wasn't even familiar with JDOOM.
|