Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ALTV-426 Add Interior class #106

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions ICore.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#include "script-objects/IWebView.h"
#include "script-objects/IStatData.h"
#include "script-objects/IHandlingData.h"
#include "script-objects/IInterior.h"
#include "script-objects/IAudioCategory.h"
#include "script-objects/INative.h"
#include "script-objects/IMapData.h"
Expand Down Expand Up @@ -180,6 +181,8 @@ namespace alt
virtual std::vector<std::shared_ptr<alt::IWeaponData>> GetAllWeaponData() const = 0;
virtual std::shared_ptr<alt::IAudioCategory> GetAudioCategory(const std::string& name) const = 0;

virtual std::shared_ptr<alt::IInterior> GetInterior(uint32_t interiorId) const = 0;

virtual void TriggerServerEvent(const std::string& ev, MValueArgs args) = 0;
virtual void TriggerServerEventUnreliable(const std::string& ev, MValueArgs args) = 0;
/**
Expand Down
33 changes: 33 additions & 0 deletions script-objects/IInterior.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#pragma once
#include <cstdint>
//#ifdef ALT_CLIENT_API

namespace alt
{
class IInteriorRoom;
class IInteriorPortal;

class IInterior
{
protected:
virtual ~IInterior() = default;

public:
struct ExtentInfo
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we rename this struct to AABB (Axis-aligned bounding box) and move to some shared file ie (types/AABB.h)

{
alt::Position min;
alt::Position max;
};

virtual std::shared_ptr<alt::IInteriorRoom> GetRoomByHash(uint32_t hash) const = 0;
virtual std::shared_ptr<alt::IInteriorRoom> GetRoomByIndex(uint32_t roomIndex) const = 0;
virtual std::shared_ptr<alt::IInteriorPortal> GetPortalByIndex(uint32_t portalIndex) const = 0;

virtual uint16_t GetRoomCount() const = 0;
virtual uint16_t GetPortalCount() const = 0;
virtual alt::Position GetPosition() const = 0;
virtual alt::Rotation GetRotation() const = 0;
virtual alt::IInterior::ExtentInfo GetEntitiesExtents() const = 0;
};
}
//##endif
36 changes: 36 additions & 0 deletions script-objects/IInteriorPortal.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#pragma once
#include <cstdint>

#include "cpp-sdk/deps/alt-math/alt-math.h"

namespace alt
{
class IInteriorPortal
{
protected:
virtual ~IInteriorPortal() = default;

public:
virtual uint32_t GetIndex() const = 0;
virtual uint16_t GetCornerCount() const = 0;
virtual Position GetCornerPosition(uint32_t cornerIndex) const = 0;
virtual int32_t GetRoomFrom() const = 0;
virtual int32_t GetRoomTo() const = 0;
virtual int32_t GetFlag() const = 0;

virtual uint16_t GetEntityCount() const = 0;
virtual uint32_t GetEntityArcheType(uint32_t entityIndex) const = 0;
virtual int32_t GetEntityFlag(uint32_t entityIndex) const = 0;
virtual alt::Position GetEntityPosition(uint32_t entityIndex) const = 0;
virtual alt::Rotation GetEntityRotation(uint32_t entityIndex) const = 0;


virtual void SetCornerPosition(uint32_t cornerIndex,
const alt::Position& position) = 0;
virtual void SetRoomFrom(uint32_t roomFrom) = 0;
virtual void SetRoomTo(uint32_t roomTo) = 0;
virtual void SetFlag(uint32_t flag) = 0;
virtual void SetEntityFlag(uint32_t entityIndex, uint32_t flag) = 0;

};
}
24 changes: 24 additions & 0 deletions script-objects/IInteriorRoom.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#pragma once
#include <string>

#include "IInterior.h"

namespace alt
{
class IInteriorRoom
{
protected:
virtual ~IInteriorRoom() = default;
public:
virtual uint32_t GetIndex() const = 0;
virtual std::string GetName() const = 0;
virtual uint32_t GetNameHash() const = 0;
virtual int32_t GetFlag() const = 0;
virtual uint32_t GetTimecycle() const = 0;
virtual alt::IInterior::ExtentInfo GetExtents() const = 0;

virtual void SetFlag(uint32_t flag) = 0;
virtual void SetTimecycle(uint32_t timecycleHash) = 0;
virtual void SetExtents(alt::IInterior::ExtentInfo extentInfo) = 0;
};
}