Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include "addresses.h"
- #include "containers.h"
- using namespace tibia::objects;
- Containers::Containers(void) {
- }
- Containers::~Containers(void) {
- }
- Backpacks Containers:: getBackpacks() {
- Backpacks backpacks;
- tibia::structures::ContainersEntry* containersInfo = getContainerEntry( getContainerPtr() );
- if (containersInfo->count > 0) {
- tibia::structures::ContainerNode* node = getContainerNode(containersInfo->address);
- node = getContainerNode(node->parent);
- getNextContainer(node, containersInfo->address, &backpacks);
- }
- return backpacks;
- }
- void Containers::getNextContainer(tibia::structures::ContainerNode* containernode, UINT32 address, Backpacks* backpacks) {
- if (containernode->left != address) {
- tibia::structures::ContainerNode* leftNode = getContainerNode(containernode->left);
- getNextContainer(leftNode, address, backpacks);
- }
- ptrContainer container (new Container(getContainer(containernode->address)));
- backpacks->push_back(container);
- if (containernode->right != address) {
- tibia::structures::ContainerNode* rightNode =getContainerNode(containernode->right);
- getNextContainer(rightNode, address, backpacks);
- }
- }
- UINT32 Containers::getContainerPtr() {
- return *(UINT32 *)(tibia::addresses::container::start + tibia::addresses::baseAddress);
- }
- tibia::structures::Container* Containers::getContainer(UINT32 address) {
- return (tibia::structures::Container*)(UINT32*)address;
- }
- tibia::structures::ContainersEntry* Containers::getContainerEntry(UINT32 address) {
- return (tibia::structures::ContainersEntry*)(UINT32*)address;
- }
- tibia::structures::ContainerNode* Containers::getContainerNode(UINT32 address) {
- return (tibia::structures::ContainerNode*)(UINT32*)address;
- }
- void Containers::debug() {
- Backpacks backpacks = getBackpacks();
- printf("\t ::CHECKING CONTAINERS: \n");
- printf("\t Found opened containers: %d \n", backpacks.size());
- BOOST_FOREACH(ptrContainer container, backpacks) {
- printf("\t\t name: %16s \t items: (%d / %d) \n", container->getName(), container->getItemsCount(), container->getSlotsCount());
- auto items = container->getItems();
- BOOST_FOREACH(auto item, items)
- printf("\t\t\t itemid: %d item count: %d \n", item->getId(), item->getCount());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement