Thank you Shendare! I got the changes in and it compiled perfectly this time. I also got it tested and everything I tried worked perfectly. I committed this to SVN R783. It is very cool to finally be able to have options to manipulate objects in game like that. The command will be a huge help to people in need of it, and will make easy work of things that were considerably more time consuming before this was available. So, great job!
From what I have seen so far, the only suggestion I might make would be a way to bool whether or not it is going to move your character when you do a ToMe move. In cases of dealing with large items, the move might be needed, but when trying to fine tune the positioning, it might be nice to just be able to move a slight bit and do another ToMe until it is perfectly placed. Also, having it report it's current loc after being moved that way would be nice, so you could then do an X Y Z move to tweak the position as well. Those are minor things and just things to consider for the future of this command.
I also played with trying to use it to spawn doors, but sadly, I guess door models don't play nice with object packets like I had assumed they would. I guess that anything with a IT<model number> that can be applied to an item as a graphic is considered an object, and anything without that is considered a door and they can't be used interchangeably between the packet types. That puts a bit of a damper on being able to have the option of using object packets to perfectly position doors. I am pretty sure we could still use door packets to do it, but unfortunately I know of no way to remove doors, so it will be a bit harder to do perfectly like with objects without having to restart the zone. If there was any case on live of something considered a door (that uses door packets) that disappears, we could collect that info and make use of it, but I am not aware of a single case of that happening on Live. Maybe ground spawns would work, but I think they work like object packets, so I kinda doubt it.
With the addition of the #object command, I can see other possibilities popping up to make use of spawning and despawning objects in real-time. If a quest command was made that could manipulate them in similar ways, I am sure neat stuff could be done with that. It probably wouldn't get used too often, but is just another neat idea possibility for the future.
Thanks again, Shendare! That is one heck of a chunk of code!
|