No, we are creating a new variable bCoolBuilding and setting it to false. Then we write some code that is basically a test, if the conditions in the test are valid, the code will set bCoolBuilding to true.
Code:
if ( (gc.getBuildingInfo(iBuildingType).getMovie()) or (isWorldWonderClass(gc.getBuildingInfo(iBuildingType).getBuildingClassType())) ):
bCoolBuilding = True
ie, if the if check passes (the above if check is: Does the building have a movie set in the XML, OR is the building a world wonder) are met, bCoolBuilding becomes true. Then we replace the normal isWorldWonder class check in the original BtS code with a check to see if the variable bCoolBuilding is true:
Code:
[B]if[/B] ( (not gc.getGame().isNetworkMultiPlayer()) and (pCity.getOwner() == gc.getGame().getActivePlayer()) [B]and bCoolBuilding[/B] ):
And run the function if this test passes.
Is that clear? I can break up all the conditions if need be, but you're a smart girl, I think you can figure this out.
Edit, this is actually one of the important differences with C++ and Python.
With python to declare a variable, you just declare it and set it to something, and that something can be pretty random, like even dictionaries and lists are valid:
dPhungus = {}
That creates a new dictionary stored in the variable dPhungus
Something like:
iLemon = 0
Creates a new integer veriable, iLemon and sets it equal to zero. You can totally change these as you want, like you can do this, declare your variables and then go:
dPhungus = blabla
And suddenly you've wiped out everything stored in the dictionary in the variable dPhungus and turned it into a string with the value "blabla" stored in it. Of course storing a string in a variable dSomething is bad form, as d preceding the variable name should mean that the variable is a dictionary, and i should be an integer, and b should be boolean, etc. But that's just convention to keep you from confusing yourself or others that read your code. You don't have to follow these conventions though, but you'll find it easier if you do.
Anyway with C++, it's an old language that was designed when computer RAM was at a premium. So when you create a variable in C++ you must declare what type it is (and strangely you don't need to set a value either, which can cause problems later. I've noticed some coders here just automatically set variables to something when they declare them to keep any unexpected behavior from popping up. This is also why sometimes you'll see debug dll's not crash, and the standard gamecore will, because a debug dll automatically sets any declared integer variable to 0, and a release gamecore will not).
So with C++ we'd have to write:
bool bCoolBuilding = false;
The bool initializes the variable, and must be done for all variables used, you must initialize them properly, and declare what type of data you intend to store in them (int declares an integer, char declares a character, etc, you can look these up on google). You also don't need to set them to anything, so bool bCoolBuilding; would work, but when you call it later, you should set it to something, otherwise the value returned will be random.