Bug Tracker – Bug 1164

Improved IWAD Support

Last modified: 2016-09-16 00:12:54 CDT
Bug 1164 - (ARRAY(0x4cbf348)) Improved IWAD Support
(ARRAY(0x4cbf348))
Improved IWAD Support
Status: NEW
Product: Odamex
Classification: Unclassified
Component: Server & Client
0.7.x
All All
: P1 enhancement
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2015-09-12 23:25:27 CDT by HeX_Vulture
Modified: 2016-09-16 00:12 CDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description HeX_Vulture 2015-09-12 23:25:27 CDT
Currently, we allow mixing of iwads (example: Freedoom2 and Doom2) so that users that wish to use alternatives can join a server that uses pwads to replace the level. This allows flexibility with users that do not own a copy of retail Doom to not miss any of the action.

However this is currently limited to only iwad exceptions in the current source code. While this is seemingly enough, now we have run into the issue of having to constantly update the list of hashes every time an iwad is modified. FreeDoom 0.9 is the latest version but since our current release was before FreeDoom 0.9 was released, we have no way of allowing FreeDoom to join a Doom 2 server unless we either update Odamex or tell servers to modify the source code and rebuild.

My attempt to resolve this is to allow Odamex to look at an external list of iwad hashes that tells the server what is allowed as a substitute. My solution is to have odasrv look for a file called "hashes.cfg" and use a simple format that tells odasrv what hash to allow as a substitute for another.

For example:
<Doom2hash>:<FreeDoom2-0.9hash>

This way hosts can easily tell Odasrv what is allowed as an iwad substitute even if the hash does not exist in the source. If hashes.cfg does not exist, odasrv ignores it and continues to rely on the list internally. Not only does this benefit FreeDoom, it also allows future iwads that may be released to be used as a substitute.