It's impossible to explain every detail in the script, so some scripting knowledge might be handy.
It's NOT adviced to make any changes to the (bays of the) engine's and ambulances, because they have a far more advanced script logic. Patience is required to do this.
Lets say you want to replace the USAR squad with the Watertender, because they have about the same size and only one of them can be parked in the bay.
-------------------------------------------------------------------------------------
Files which are necessary to change:
LAFireStationStart.script (to spawn the vehicle at start)
LAFireStation.script (for crew and gate information at fire station)
LAToFireStation.script (park command)
LABattalionChief.script (call command)
Other:
Adding the "Go to fire station" command to the new vehicle
Removing the "Go to fire station" command to the replaced vehicle
-------------------------------------------------------------------------------------
LAFireStationStart.script
First thing you can try is to let it spawn at the right spot with crew when you start a new game. LAFireStationStart.script does nothing more than that. Some analizing of LAFireStationStart.script reveals that the prototype of the USAR squad is mentioned in line 23. Changing that prototype to any other prototype is enough to spawn another object. in this case "water_tender.e4p".
You don't need to change the constants or anything else. Same thing counts for other things explained later.
When you further look for USAR, you should eventually find line 230 which should say
ActorList l12 = Game::GetActors(VO_USAR);The lines below are important. They set number of passengers (and sometimes transports), speed and the crew that enters the vehicle at start. Notice the numer that is used in the crew line. The code of that line refers to another script and calls a single unit for that vehicle. The numbers refer to the certain unit (USAR firefighter in this case).
List of possible units:
1 = FF/PM with case
2 = FF/PM's with stretcher
3 = FF/EMT
4 = Battalion Chief
5 = FF HAZMAT
6 = USAR FF
7 = FF/EMT's with stretcher
-------------------------------------------------------------------------------------
Important tips: You can do millions of things with C++, it's impossible to explain everything, just compare your code with other codes in the scripts. For example: When you want to add 4 firefighters instead of 2 just look at other parts in the script. Besides that, testing is very important. If you fail first time, please try it again before going to the forum. And remember kids, it's like sex, you don't immediatly run to mommy and daddy when you can't get it up at your first date.
That's it for now. I hope most people understand this. When I have more time I will see if I can explain the other scripts.