Tweaked the logic surrounding login requests to prevent multiple concurrent login requests and re-requests after successful auth.
BUGFIX: Account name should be set on login, not on character selection.
fill_n() is quite nifty.
BUGFIX: ChangeFame() now does not use the hardcoded fame.
Started mocking up the item seal process.
Added a list of item sealing error codes from the client, but I don't think they're needed because the client handles its own error checking (if they're bypassing that, they don't really need a response).
Implemented checks for sealed/rented items to prevent them from being placed in the inn, traded, merchanted, sold to NPCs or destroyed.
Renamed ITEM_FLAG_NONBOUND to ITEM_FLAG_NOT_BOUND (makes a little more sense).
Moved some of the generic logout code to CUser::ResetWindows() (used on zone change / warps as well), which now handles closing vendor stalls & telling vendors we're no longer looking at their stall.
Removed CUser::EventMoneyItemGet(); all it's meant to be used for is logging, which doesn't need to be done there.
CUser::TestPacket() is unused also.
Removed more unused methods that were otherwise removed a while back.
Increased the size of the quest array to 600 bytes (limit of 200 quests -- from 133.3 repeater...). Also made it a binary field.
Implemented a better quest storage map, temporary conversion code (until Aujard's removed) & CUser::CheckExistEvent(). Refs #16.
Implemented the chicken/beginner flag now that we can read quest states.
Fixed a typo as a result of flipping the logic (but seriously, this shouldn't even behave like this).
Implemented a partial handler for WIZ_QUEST (CUser::QuestDataRequest()). This behaves barely anything like 1.298, so a lot more research here is needed.
BUGFIX: _ITEM_TABLE::isDagger() checks for a dagger now (duh). Added isShield().
Added isWarrior(), isRogue(), isPriest(), isMage() checks. CheckClass() is also fed default values now (as opposed to specifying the default values manually).
Implemented an additional resistance bonus (set by passives) & started on implementing passive skill bonuses. Also fixed a potential NULL pointer crash when not having a weapon equipped. Refs #25.