Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve support for old mods #116

Merged
merged 11 commits into from
Jul 23, 2021
Merged

Improve support for old mods #116

merged 11 commits into from
Jul 23, 2021

Conversation

res2k
Copy link
Contributor

@res2k res2k commented Apr 13, 2021

...such as those you'd find in the GOG version of Quake II.

  • A 32-bit dedicated server build is provided, so old gamex86.dll game libraries can be used.
  • Inhibition of other config files when autoexec.cfg is present was removed. That behavior broke mods that rely on default.cfg being executed.
  • Texture and model asset loading was adjusted so a baseq2 "better quality" asset doesn't automatically override assets from the game. This is allows mods to actually replace models, textures and images.

Limitations:

  • Since it's a dedicated server, only multiplayer games work.
  • No Linux support. It should probably work, but I don't really have any i386 mods to test with.

But hey, it's enough to play against some bots -
start a server with q2rtxded_x86.exe +set game eraser, set bot_num to some value in the terminal, and connect with q2rtx.exe +connect localhost.

res2k added 11 commits April 13, 2021 00:54
…fg again

...but also always execute baseq2/autoexec.cfg, if present.
This hopefully strikes a balance between "user preference" and "properly support mods" -
they may set things in default.cfg that are required to make things work.
...even if their format is 'worse' (ie PCX).
This behaviour prevents image from baseq2 to override images from a game,
even if it's customized there, but with a format of lower precedence.
This ensures the correct 'aesthetic' is applied.
This behaviour prevents md3s from baseq2 to override md2s from a game,
allowing mods to, well, modify appearances.
On some custom maps, offsetting one normal meant the 'center' actually
ended inside some other geometry, which unfortunately means "not inside
any BSP leaf".
Scaling down the normal so it's only a little over the plane fixes
these cases while still providing a point that's can be associated
with a BSP leaf.
Fixes detection of skins ending with UPPERCASE icon file suffixes
@apanteleev apanteleev merged commit ae6cd7d into NVIDIA:master Jul 23, 2021
@apanteleev
Copy link
Collaborator

Merged with some changes. Specifically, I didn't like the idea of calling the CMake generator from a CMake file, so I changed the configuration to work for both 64-bit targets (full build) and 32-bit targets (server and game only build).

Thank you for the contribution!

@res2k
Copy link
Contributor Author

res2k commented Jul 24, 2021

The motivation behind the nested CMake call was that 64-bit client, 64-server, but also 32-bit server could be built with a single action; there was no need to manually set up a separate build directory or copy the 32-bit server to the right place...

@apanteleev
Copy link
Collaborator

I understand the idea, but I believe that CMake should be used for its primary purpose only, i.e. generating solutions or makefiles. When the same system is used to do other things, such as pulling dependencies or building things, that complicates the configuration process, makes it more fragile and less flexible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants