Yeah, I am aware that Titanium isn't working perfectly yet. I think it is a structure issue with the spawn struct and maybe the player profile as well. SoF seems to be working perfectly from the limited testing I did so far. The only reason I updated the SVN with this change before it was complete is because there is quite a bit of updating that had to be done to clean some stuff up. The actual change that is affecting Titanium would be easy to back out of if needed, but I am pretty sure I can get it working perfectly and properly as well.
Also, even after the changes go in to correct how this stuff works, people will almost certainly have to do a facechange in game to get their character looking the way that it used to again. I am sure that would be the case if it is actually a structure issue. Though, if it is some other non-structure related issue, then they may not need to. I think as long as NPCs look correct after the change, then the change should be a good fix. I know most NPC settings were pulled directly from EQLive, so for those, they should mimic live appearance exactly. If they don't, then we have something wrong with a structure (which is my best guess to the problem atm).
I think one of the things that might make this change more complex is that it is hard to know which NPCs in the database are exact copies from Live and which were added manually by EQEmu people. Also, the hack that was previously in place may cause some unwanted effects after this code is corrected. Basically, with players, any features that were set to 0 were being converted to 99 and saved and then when they were loaded again, it converted them back from 99 to 0 again. So, since after my change, it no longer converts 99 back to 0 (or the other way around either), anyone who had a feature that should have been set to 0 would now load 99 instead, which is always bald or broken features. This may be the same case for NPCs as well, because it seems like those were all being converted to 255 (0xFF) and saved and then converted from 255 back to 0 when loading them again. There may be a simple solution for NPCs to correct this though. We could probably just run a simple query for each of the feature fields in the npc_types table and convert anything that is set to 255 down to being set to 0 as it should. I haven't really looked too closely at the table to see what is going on with that yet, but I will.
I am pretty confident that we should be able to get this working 100% perfectly for any client without having to use the previous hacks. The only thing that we may need to do special is that we might need to put certain conditions for some of the player races so that they automatically block certain fields from being set. I haven't fully tested that just yet, but I will try to tonight if I have time.
***EDIT***
After looking over my own DB (1.5 year old PEQ included), it seems like most of the feature fields look normal and none of them are set to 255 with the exception of the face field. For some reason, it seems that about have of them have face set to 255. It is possible that this is due to an issue with the code that was previously doing those conversions, but I am not quite sure.
Last edited by trevius; 05-15-2009 at 06:01 AM..
|