by Dr.Zin Mon Aug 15, 2011 11:07 pm
It is not enough to assign a value figure to the MAXWALLTILES and MAXDOORS. There are a large number of changes which must be made due to the fact that the original Wolf3D code used what could be described essentially as a status register to determine if the block being hit was a solid wall or a usable door. Due to memory constraints in the period when the original Wolf3D code was being written, this had to be somewhat small in size and therefor created a limit based upon how many bits were allocated within this wall status register for walls and for doors. Because it was housed within a byte, that meant that there could be a maximum of 256 wall and door blocks. Therefor, it is necessary to expand this status register to 16 bits, allowing more walls and doors than you're ever going to use. This means you must go through every function related to doors and walls and update the code which is used to determine if a particular block is a door or a wall and how the engine handles the block's ID so that it knows that the new blocks with a 16-bit value are what they're supposed to be. A helpful hint, the first 40-50 (depending on if you're using Spear of Wolf3d) new values numbered 1000 to 1050 (decimal) are duplicates of the original 0 through how many ever.
Just implement the code changes you see in the links given to you by Chokster37 in r8. Change the red lines on the left to look like the green lines on the right. Do it properly, take your time and ensure you've copied and pasted in the right places and it will work. Lonewolf is on revision 14 so the feature we're discussing right now is 110% guaranteed to work if you implement it properly. I will not offer technical support because the links that have been given to you are just like tutorials. So, if it doesn't work, it means you've not copied something right.
And last but not least, make a second copy of your code before you begin making these changes to it, then begin working on it. You don't want to have to waste time trying to undo the code changes you've made if you decide you find yourself unable or unwilling to make them. It is the worst feeling in the world to have to go undo a bunch of stuff lol. It's why I began using free google SVN hosting for projects like this. I STRONGLY recommend you get one for your project if you are serious about it. They're free and allow you to back up your code in stages, allowing you to go back to previous versions of your code and so on. It is also good if you decide to get extra coders on your team if you do that.