Learn English – sequence of tenses in complex sentence

sequence-of-tensestensetense-agreement

This is the blockquote from the book that I read

They were about as smart as dogs, too. But what they lacked in brainpower, they made up for in sheer tenacity. He had seen them hurl themselves at their enemies until the ground was piled high with their corpses … and their opponents had depleted their ammunition.

I can't understand sequence of tenses in the last sentence. I see the grammar structure of sentence as follows:

[principal clause | past perfect] [subordinate object clause | present simple] until [subordinate adverbal clause of condition | past simple] … and [subordinate adverbal clause of result | past perfect]

First clause (principal) is in past perfect tense because it describes events that happened before than other context (correct me if I'm wrong). But I can't explain tenses in other clauses neither with attracted nor natural sequence of tenses.

Best Answer

He had seen them hurl themselves at their enemies until the ground was piled high with their corpses … and their opponents had depleted their ammunition.

One way to look at it is this:

The switch to the past simple here (until the ground was piled high with their corpses) hinges on the word "until," which is a ... hmm ... a time indicator. Time establisher. Whatever. It's in the same category as "when," "before," "after," etc. You're saying it should have stayed in the past simple ("until [...] their opponents depleted their ammunition"), but it would be wrong. The past perfect here is used to show that, in fact, the opponents' ammunition was, in fact, depleted. "... until their opponents' ammunition was depleted."

Another way (a more complex one in this case, so don't pay it much heed) ... another way of looking at it is as follows:

Once we've established that the action takes place in the past perfect ("He had seen"), the rest can continue in the simple past. (The explanation about using the active voice rather than the passive ("... they had depleted ... " instead of " ... was depleted ...") is the same as above).

Related Topic