Jump to content

Questions about making a mod and dealing with dlls...


Dusty

Recommended Posts

So I have an OpenJK-based Single Player mod... and some observations/questions about it.

 

1. People seem to need to have Visual Studio 2013 installed to play my mod. I compile my code with Visual Studio 2013. Is there some connection? Or is it that OpenJK uses some code libraries from Visual Studio 2013?

 

I tried having them just download the Visual C++ 2013 redistributables but that just wasn't cutting it (single player is written in C++). They seem to need the whole package.

 

 

2. How does OpenJK load dlls? I'm under the impression that first it goes to fs_basepath, then fs_homepath, then fs_cdpath. Does the last set loaded take priority or the first?

 

 

3. Can I overwrite the jagamex86 dll in the gamedata folder, so that way the mod doesn't need to be loaded or set in fs_game? It didn't seem to work when I tried it. Maybe the dll was being overwritten from somewhere else?

 

 

4. If I want my mod to use a renderer dll of a different name, or at least one that doesn't overwrite OpenJK's renderer dll, how would I do that? I know MB2 does it.

Link to comment

So I have an OpenJK-based Single Player mod... and some observations/questions about it.

 

1. People seem to need to have Visual Studio 2013 installed to play my mod. I compile my code with Visual Studio 2013. Is there some connection? Or is it that OpenJK uses some code libraries from Visual Studio 2013?

 

I tried having them just download the Visual C++ 2013 redistributables but that just wasn't cutting it (single player is written in C++). They seem to need the whole package.

Make sure you compile a release build of your mod and that players have the VS2013 redistributable installed. Any of the standard library functions will require the redistributable.

 

2. How does OpenJK load dlls? I'm under the impression that first it goes to fs_basepath, then fs_homepath, then fs_cdpath. Does the last set loaded take priority or the first?

It should be homepath, basepath, cdpath. People should never need to put anything in their basepath or cdpath, it should all go in homepath. This is contrary to what people have been doing for the past so many years, so it's difficult to get people to change :P

 

3. Can I overwrite the jagamex86 dll in the gamedata folder, so that way the mod doesn't need to be loaded or set in fs_game? It didn't seem to work when I tried it. Maybe the dll was being overwritten from somewhere else?

You should be able to. If you run your code through Visual Studio, it tells you which DLLs are being loaded in the output window.

 

4. If I want my mod to use a renderer dll of a different name, or at least one that doesn't overwrite OpenJK's renderer dll, how would I do that? I know MB2 does it.

Search around for where the word 'vanilla' is used in the code - that should give you all the places you need to change to change the renderer and DLL name.
eezstreet and Dusty like this
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...