#ifndef EXTENSIONTLOS_H
#define EXTENSIONTLOS_H

#include "ActorTLO.h"
#include "Character.h"
#include "EQ2.h"

using namespace std;

class ExtensionTLOs
{
public:
    static Character Me()
    {
        return Character(GetTopLevelObject("Me"));
    }

    static EQ2 EQ2()
    {
        return EQ2::EQ2(GetTopLevelObject("EQ2"));
    }

    static ActorTLO Actor()
    {
        log << "ExtensionTLOs::Actor" << std::endl;
        return ActorTLO();
    }

private:
    static shared_ptr<LSObject> GetTopLevelObject(const string &name)
    {
        const auto topLevelObject = pISInterface->IsTopLevelObject(name.c_str());
        LSOBJECT response;
        topLevelObject(0, nullptr, response);
        return make_shared<LSObject>(LSObject(response));
    }
};

#endif // EXTENSIONTLOS_H
