3.13 SDK Mod-breaking Changes

Seven05

Warmonger
Joined
Dec 5, 2005
Messages
2,056
Location
USA
Ok, there are a LOT of little changes in the 3.13 SDK so we might as well share them as we come across them. Fortunately all of my changes were fairly well encapsulated and easy to merge in so the only issue I had to repair was the lack of using the std namespace.

What this means for most of us is that everything from the std library now needs to be changed from something like:

max(iVariable,1)

To:

std::max(iVariable,1)

This includes most common C++ functions, structures, classes, etc. from the standard library. Fortunately, your compiler *should* spot them right away for you and return an error. So, if you see errors check for the use of these standard funtions and fix them as shown above. This will hit a lot of math functions in particular like min(), max(), abs(), sin(), etc.

More to come... :)
 
I'm going to sticky this for now since it affects us all. Keep them coming along with helpful advice. :)
 
No, I don't think so. Especially if you were already using Solver's unofficial patch. But then I guess that depends on how you inserted your changes :)

So far I haven't seen any big changes to the classes or anything like that so chances are, with the excpetion of the namespace change, what worked before will still work now. While I was merging my changes in I did see several methods that took more args than before but I didn't check to see if they added overloads or included default args.

There are a few more methods and subsequently member variables exposed to python but nothing has been removed. So with python mods chances are they will still work without any changes.
 
Is modular XML loading broken? After upgrading to 3.13 none of the XML files in my Assets/Modules are loading. (I double-checked my config file, so that's not the problem)
 
Is modular XML loading broken? After upgrading to 3.13 none of the XML files in my Assets/Modules are loading. (I double-checked my config file, so that's not the problem)
It's now controlled by the mod's ini file, look in the mod folder and you'll see that BTS backed-up your old one and created a new one with the new settings, enable modular loading there and it'll work. This is a really nice change :)
 
the only issue I had to repair was the lack of using the std namespace.

What this means for most of us is that everything from the std library now needs to be changed from something like:

max(iVariable,1) to: std::max(iVariable,1)

This includes most common C++ functions, structures, classes, etc. from the standard library. Fortunately, your compiler *should* spot them right away for you and return an error. So, if you see errors check for the use of these standard funtions and fix them as shown above. This will hit a lot of math functions in particular like min(), max(), abs(), sin(), etc.
Is this absolutly nessisary to prefix every standard c++ with the sdt:: prefix. can't we simply set some namespace? :mad:
 
Is this absolutly bessisary to prefix every standard c++ with the sdt:: prefix. can't we simply set some namespace? :mad:
You can add the following line up after the includes:

using namespace std;

You could also just specifiy that for the standard library functions you're using, for instance- using std::max;

Normally when you stop using a namespace there's a reason for it, such as writing your own function or method named max(). I haven't dug through every line of the new SDK code to see why they stopped. Maybe they just realized they were only using a few of the standard library functions and didn't really need to use the entire namespace?
 
I've been trying to compile the SDK and I've come up with a problem.

in CvTextScreens.cpp "CvTextMgr.h" is included but I cannot find the file
anywhere.

*nvm changing the build target to Final Release Win32 solved it :)
 
I've been trying to compile the SDK and I've come up with a problem.

in CvTextScreens.cpp "CvTextMgr.h" is included but I cannot find the file
anywhere.

*nvm changing the build target to Final Release Win32 solved it :)



Whoa wait, I'm popping up with this error too.. what exactly did he do to fix it? :eek:
 
Change your active solution config to "Final Release". By default it's on "Debug" which won't work right for you.
 
Back
Top Bottom