i think you were fine. she ended up being a major headache and on top of that you are way young. as much as I feel terrible for the child, i'm not really sure what you could have done in this situation. maybe, just maybe, if she crawls back you can lay some very strong ground rules that she has to follow (which should definitely include the payment of rent for her room and the car (and of course, you can adjust it so that it within her budget)). make sure she understands your needs/desires but that you will also respect the fact that she has a baby with her and want to help her until she gets on her feet. Also, make it clear that once she is financially able to, she should assume that she will need to leave and find her own apt and mode of transportation (and that it is completely within your discretion as to when/if that happens). finally, let her know that you will be reasonable but that if gets to be too much, you will kick her out again (and above all, let her know that you aren't signing her up as a co-tenant or anything like that; this is all merely a gift for her so that she can get back on her feet (don't want the legal headache of a landlord/tenant relationship); although, if she ever did take you to court she may be able to assert rights as a tenant because she was paying for housing; you may be in a better position if you don't charge anything for the apt (but you could make her pay for gas and whatnot)).
only thing i disagree with that you did was allowing your friends to smoke in your apt when you knew there was a baby there.
other than that, you're not fvcking married to this woman and these are the prime years of your life; she better fvcking realize that.
edit: AND, if she has warrants (!) outstanding, just realize that if the cops arrest her in YOUR home, make sure you have NOTHING that can be used against you (i.e. weed, etc.) in plain-view. She is a major liability with outstanding warrants.
AND, i'm not an attorney so don't take my statements as fact.