Skip to content
This repository was archived by the owner on Dec 11, 2025. It is now read-only.

Improve support for old mods#116

Merged
apanteleev merged 11 commits intoNVIDIA:masterfrom
res2k:mod_support
Jul 23, 2021
Merged

Improve support for old mods#116
apanteleev merged 11 commits intoNVIDIA:masterfrom
res2k:mod_support

Conversation

@res2k
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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 subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants