So the logs above have nothing to do with my issue. I'm working my way through the code and here is my research thus far:
I hooked a debugger up to the zone.exe process, logged in and clicked on the book in North Qeynos. The debugger output then pointed me to the Client::ZonePC method. To this section:
Code:
pShortZoneName = database.GetZoneName(zoneID);
database.GetZoneLongName(pShortZoneName, &pZoneName);
iZoneNameLength = strlen(pZoneName); <--- Access violation here.
I thought that was kind of odd, so I put it some debug out put to get the values of things as I'm going along. And it turns out that Database::GetZoneLongName is actually not putting anything into the reference of pZoneName, so it remains null. So when you call the strlen function on a null value, you get the access violation. What I haven't figured out yet is why GetZoneLongName doesn't actually put a value into the reference. I'm not getting any errors back from the call I'm at a loss at this point. I'm going to keep pushing debug into it until I figure it out.
Interestingly, I've noticed when I was playing that when I'd zone, the message in the chat window that came up after you zoned, the one after "Loading please wait...", was always "You have entered Long name missing..", but it didn't seem to affect anything so I ignored it. I looked in the DB and the long names are certainly there. Since everyone is not having this problem, I'm wondering why I am. But now it seems related to the PoK books and #zone command. Anyway, if anyone has ideas, let me know. Thanks.