Doesn't this delete the first 5 characters and store only the numerical part?
Code:
str_parse_head(AbyssNumberString, AbyssNameString, "Abyss"); //store number that comes after 'abyss'



What bothers me is that I think it's crashing right from the first if statement. My str_printf line doesn't print anything when I run my tests.