Awesome, thanks guys.
There are quite a few issues here, and I have most of them figured out. Most are merely reference issues.
The sacks is using the wrong tackler. That's fixed.
The yardage showing 0 yards gained, and then gaining 22 yards is also just a misuse of the yards. I didn't actually fill out the yards field till the play was done, and therefore on the pass completion sometimes it would say 0 yards. This is fixed too.
The breaks through the line thing is similar to what it was before, and the string was misplaced. It's actually the start of the play, and it's keying off the position, so it's always inside the line. I've eliminated that line, and it reads much better.
Not finishing. This actually isn't a big deal. Most likely it means there is a case (or key) that I didn't create a string for. I'll try to find the ones that slipped through and make them finish correctly.
These are the 3 that are most concerning to me, and the ones that I'm fixing immediately.
1. Targeting a player and throwing to him at a different location. Currently we only use the previous segment to make sure we are not targeting a previous player. This seems to have never been vetted properly. I'm going to change the structure to store every receiver that was targeted and if we can't find an open receiver and we choose one that we already looked at then it will throw to him at the current location.
2. Knocked down and then intercepted. Or tackled and then slipped into the endzone. This is a flow problem and somewhere is likely missing a check to see if the play is dead. I'll go through the touchdown and interception logic to find out where the hole is.
3. Tackling short of where the catch is made. I guess I didn't get rid of enough of the random decisions, ha. Each step of the play we recalculate the random decision on what the yardage is based on the location of the pass. This should be stored and referenced at the end. Shouldn't be too big of an issue to fix.
Hopefully I'll get all of these wrapped up and out on wednesday, and we can see where we are.