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... :)
 

woodelf

Bard
Retired Moderator
Joined
Jun 12, 2003
Messages
15,036
Location
Gallery
I'm going to sticky this for now since it affects us all. Keep them coming along with helpful advice. :)
 

Seven05

Warmonger
Joined
Dec 5, 2005
Messages
2,056
Location
USA
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.
 

lulu135

Warlord
Joined
Aug 4, 2007
Messages
135
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)
 

Seven05

Warmonger
Joined
Dec 5, 2005
Messages
2,056
Location
USA
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 :)
 

Fanatic Demon

Student in Wizardry
Joined
Aug 6, 2004
Messages
404
Location
The Netherlands
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:
 

Seven05

Warmonger
Joined
Dec 5, 2005
Messages
2,056
Location
USA
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?
 

Primax

CivPlayers Modder
Joined
Jul 31, 2006
Messages
73
Location
Australia
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'm your Daddy

Your just my play thing
Joined
Oct 18, 2007
Messages
93
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:
 

Dale

Mohawk Games Developer
Joined
Mar 14, 2002
Messages
7,450
Change your active solution config to "Final Release". By default it's on "Debug" which won't work right for you.
 
Top Bottom