html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue https://github.com/ACEmulator/ACE/pull/474#issuecomment-317273132,https://api.github.com/repos/ACEmulator/ACE/issues/474,317273132,MDEyOklzc3VlQ29tbWVudDMxNzI3MzEzMg==,25460553,2017-07-23T18:41:23Z,2017-07-23T18:41:23Z,CONTRIBUTOR,"I could be wrong on this - but I thought in the case of bools, the flag was the data. In all the other cases, the flag tells the client what to read. With bool flags, the flag is the data - and we get and set with bit arithmetic. Again, I could be way off base here. ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,244889108 https://github.com/ACEmulator/ACE/pull/474#issuecomment-317275159,https://api.github.com/repos/ACEmulator/ACE/issues/474,317275159,MDEyOklzc3VlQ29tbWVudDMxNzI3NTE1OQ==,11369233,2017-07-23T19:12:16Z,2017-07-23T19:12:16Z,MEMBER,"I'm not sure I follow what you're saying but let me share what my thinking on this change and see if makes sense... In PropertyBool I noticed several of the bools were either identical in naming or extremely close to the flags of ObjectDescription and PhysicsState. Given that, it leads me believe they were using the bools in some form to affect those two properties.. In the case of PhysicsState, using the bools, its easier to maintain changes from state to state and not have to worry about inadvertently blowing out a flag because the PhysicsState is changed by altering bools in WorldObject instead of using SetPhysicsState which meant you had to read in previous state, alter it (accounting for keeping other states) and send it back out. Examples of the improved way of handling them can be seen in TeleportInternal and HandleCloak. In both cases, I only change bools and don't have to worry about losing other flags set by other things. This is certainly identical, at least in the case of Cloaking, to how it acted in retail. If I turned on cloaking, I wouldn't reappear each time I teleported around the world, but instead would maintain the cloak. I'm not quite yet finished or happy with ObjectDescriptionFlag.. Based on the bools I've found, I suspect it was not as immutable as we are treating it currently.. As an example, I think its possible that in Player.cs, we would default the ObjectDescriptionFlag to be just `ObjectDescriptionFlag = ObjectDescriptionFlag.Player;` Bools would then take over and append Stuck and Attackable flags. Obviously a Player never lost the Stuck flag, but Attackable, PlayerKiller, HiddenAdmin, UiHidden, Admin, FreePkStatus, ImmuneCellRestrictions, and possibly a few of the others were at least somewhat changeable. I could see Player, Book, Vendor, PkSwitch, NpkSwitch, Door, Corpse, Lifestone, Food, Healer, Lockpick, Portal, and Bindstone all being ""base"" ObjectDescriptionFlags set in their respective classes in the initial creation. Those are all likely immutable.. Need to do more research of pcaps + some more better code work on my part than I roughed in yesterday to flesh that out","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,244889108 https://github.com/ACEmulator/ACE/pull/474#issuecomment-317275578,https://api.github.com/repos/ACEmulator/ACE/issues/474,317275578,MDEyOklzc3VlQ29tbWVudDMxNzI3NTU3OA==,25460553,2017-07-23T19:19:07Z,2017-07-23T19:19:07Z,CONTRIBUTOR,"I agree that flag can change - pk to non pk is a perfect example. The only thing I was saying is (and I am sure this is just a data saving measure) with all the other flags, you set it and that tells the client, hey - I am sending this down to you in this message. With bool flags like ObjectDescriptionFlag the flag itself is the data. The flag is sent, but no bools are actually sent to the client in the packet only the flag. If I set Attackable - I do not also send a true down to the client. We can either just make methods like you have to behind the scenes manipulate the flag and just update that one field or we can break each flag out as a bool as you are doing, store and update those, then build the flag from that data. It is really 6 of 1 1/2 dozen of the other. It was just something that tripped me up early on the bool flags are the data - I was looking for actual data in the packet stream and it is not sent. Just wanted to make sure we were all on the same page. ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,244889108 https://github.com/ACEmulator/ACE/pull/474#issuecomment-317312864,https://api.github.com/repos/ACEmulator/ACE/issues/474,317312864,MDEyOklzc3VlQ29tbWVudDMxNzMxMjg2NA==,11369233,2017-07-24T03:49:38Z,2017-07-24T03:49:38Z,MEMBER,"> Is it essential to keep these properties separate from their 32-bit flag field? It appears we have PropertiesBools for them, are these properties that are transmitted to the client? Yes, I believe so. We need a proper way to allow for and track changes to these flags and in some cases these bools are sent as updates, either public or private, which are different from ObjectUpdates. There's a reason these bools are in the client like this imo. I'm adding a commit soonish to demonstrate the work which proves this out. ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,244889108 https://github.com/ACEmulator/ACE/pull/474#issuecomment-317328701,https://api.github.com/repos/ACEmulator/ACE/issues/474,317328701,MDEyOklzc3VlQ29tbWVudDMxNzMyODcwMQ==,11369233,2017-07-24T06:13:37Z,2017-07-24T06:15:45Z,MEMBER,"Added MRT command to prove out changes. In order to make it work, do the following: 1. uncomment `Admin = True` on line 216 in Player.cs and drop/truncate ace_world database so it is empty (base script only) 2. load up server, connect and create a new character 3. /tele 16.7N 57.3E 4. try to enter a house, it should fail assuming the ace_world database is fresh/empty 5. execute /mrt command and try to enter house, it should let you in.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,244889108