the game engine has 'boxes' that model the ship's compartments. Let's say a box extends above and below the waterline. Now let's say you shell that compartment below the waterline. Let's also say that the shell induced enough damage in the compartment to start flooding. Now the game engine will flood that entire compartment over the time specified * (%damage incurred/maximum HP for compartment) - laymens terms. The more damage you incur to that compartment the faster it will flood.
The only way to model floors and watertight doors is to completely redo ALL the ship's boxes which is one hell of an undertaking

It's bad enough just adding some new boxes for flooding and capsizing with my FX_Update mod